Ir para o conteúdo principal
WBC - GovBR-DS
Copiar página como Markdown para IA

Item

Componente estável e recomendada para novos projetos.
Anatomia, uso, comportamento visual e recomendações conceituais são mantidos pelo Padrão Digital de Governo. Esta página documenta a implementação Web Components e sua API executável.

Visão Geral​

O componente br-item é o elemento flexível e padronizado do GovBR-DS para construção de linhas navegáveis, selecionáveis ou de exibição em listas, menus contextuais e painéis suspensos.

Para que serve​

  • Padronização de linhas interativas: Garante espaçamento, tipografia, contraste e efeitos de estado (hover, foco visível, seleção e desativação) em conformidade com os tokens do design system.
  • Polimorfismo semântico: Pode renderizar internamente um botão interativo (<button>), um hiperlink navegável (<a>) ou uma divisão semântica (<div>) dependendo dos atributos fornecidos (href, clickable).
  • Suporte a seleção visual: Oferece suporte a estados de seleção (selected), marcas de verificação e densidades ajustáveis.

Quando utilizar​

  • Utilize quando:
    • Estiver montando linhas de conteúdo em listas (br-list), painéis flutuantes (br-dropdown) ou agrupamentos verticais.
    • Cada entrada representar um item de dado ou uma ação com estilo homogêneo.
  • Evite e prefira outro componente quando:
    • O item pertencer especificamente à navegação de abas (use br-tab-item), etapas de fluxo (use br-step-item) ou seleção em formulário (use br-select-option).

Estrutura e Slots​

O br-item é um componente estrutural direto:

  • default: Slot para inserção do conteúdo livre da linha (textos, ícones, badges ou metadados).

Para a documentação completa de design, incluindo diretrizes de acessibilidade e especificações visuais, consulte o Design System do GovBR.

Exemplo(s)​

Desktop (100%)
Tablet - 768px
iPhone (iOS) - 390x844
Android - 360x800
Padrão
Compartilhar URL
Ativar movimento reduzido
Mudar fundo
Abrir no StackBlitz
Mais opções
Tela cheia
Carregando preview…
HTML
Controles do componente
Console: logs, eventos e erros
Angular (Somente leitura)
React (Somente leitura)
Vue (Somente leitura)
Acessibilidade
Recolher controles e código
Desfazer alteração
Refazer alteração
Comparar alterações
Formatar código
Resetar código para o estado inicial
Escolher formato para copiar

Propriedades​

active​

Atributoactive
DescriçãoEstado ativo canônico. Quando informado, tem precedência sobre isActive.
Tipoboolean
Valor padrão---

button​

Atributobutton
DescriçãoRenderiza o item como botão. Quando informado, tem precedência sobre isButton.
Tipoboolean
Valor padrão---

customId​

Atributocustom-id
DescriçãoIdentificador único do componente.
Quando omitido, um valor é gerado automaticamente.

> Padrão: valor único gerado por generateUniqueId().
Tipostring
Valor padrãogenerateUniqueId()

density​

Atributodensity
DescriçãoDefine a densidade visual do componente.

- small: Alta densidade (componente menor, mais compacto e com menos espaçamento).
- medium: Densidade intermediária, padrão recomendado para a maioria dos casos.
- large: Baixa densidade (componente maior, mais espaçamento e altura).

Valores inválidos usam medium.
Tipo"large" | "medium" | "small"
Valor padrão'medium'

disabled​

Atributodisabled
DescriçãoDesabilita a interação com o componente.
Tipoboolean
Valor padrãofalse

href​

Atributohref
DescriçãoURL ou caminho para o qual o usuário será direcionado ao clicar no item. Quando definido, o item será renderizado como um link.
Tipostring
Valor padrão---

interactive​

Atributointeractive
DescriçãoTorna toda a superfície interativa. Quando informado, tem precedência sobre isInteractive.
Tipoboolean
Valor padrão---

isActive Componente mantido por compatibilidade; prefira a alternativa indicada na documentação.​

Atributois-active
DepreciaçãoUse active.
DescriçãoIndica se o item está no estado ativo.
Se definido como verdadeiro, o item será exibido como ativo.
Tipoboolean
Valor padrãofalse

isButton Componente mantido por compatibilidade; prefira a alternativa indicada na documentação.​

Atributois-button
DepreciaçãoUse button.
DescriçãoQuando definido como true, o item será tratado como um botão.
Tipoboolean
Valor padrãofalse

isInteractive Componente mantido por compatibilidade; prefira a alternativa indicada na documentação.​

Atributois-interactive
DepreciaçãoUse interactive.
DescriçãoMarca o item como interativo, permitindo que toda a superfície do item seja clicável.
Tipoboolean
Valor padrãofalse

isSelected Componente mantido por compatibilidade; prefira a alternativa indicada na documentação.​

Atributois-selected
DepreciaçãoUse selected.
DescriçãoIndica se o item está no estado selecionado.
Se definido como verdadeiro, o item será exibido como selecionado.
Tipoboolean
Valor padrãofalse
Atributonavigation-mode
DescriçãoControla como o componente integra a navegação mantendo href real no elemento navegável.
- native (padrão): preserva o comportamento do navegador, conforme HTML/W3C.
- event: emite brNavigate; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.
Cliques com modificadores, botão do meio ou target diferente de _self permanecem nativos.
Tipo"event" | "native"
Valor padrão'native'

selected​

Atributoselected
DescriçãoEstado selecionado canônico. Em itens interativos, também é atualizado pelo acionamento.
Tipoboolean
Valor padrão---

target​

Atributotarget
DescriçãoDefine o alvo do link quando href está presente. Pode ser:
- _blank para abrir em uma nova aba,
- _self para abrir na mesma aba,
- _parent para abrir na aba pai,
- _top para abrir na aba superior.
Tipo"_blank" | "_parent" | "_self" | "_top"
Valor padrão---

type​

Atributotype
DescriçãoTipo do botão, aplicável apenas se isButton for true. Pode ser:
- 'submit' para enviar um formulário,
- 'reset' para redefinir um formulário,
- 'button' para um botão padrão.
Tipo"button" | "reset" | "submit"
Valor padrão---

value​

Atributovalue
DescriçãoDefine um valor associado ao br-item quando renderizado como um botão, utilizado em contextos de formulário.
Tipostring
Valor padrão---

Slots​

NomeDescrição
"default"Área de conteúdo, podendo conter qualquer componente, exceto botões primários e componentes relacionados à navegação (como carrosséis, paginações, abas, menus, etc.).
"end"Área de recursos complementares, podendo conter componentes interativos, metadados e informações adicionais.
"start"Área de recursos visuais, podendo conter elementos como ícones, avatares e mídias.

Eventos​

EventoDescriçãoDepreciaçãoPropagação
brDidClick Componente mantido por compatibilidade; prefira a alternativa indicada na documentação.Use brItemClick.true
brDidSelect Componente mantido por compatibilidade; prefira a alternativa indicada na documentação.Use brItemSelect.true
brItemClickEvento canônico emitido quando o item com comportamento de botão é acionado.---true
brItemSelectEvento canônico emitido quando a seleção muda.---true
brNavigateEvento cancelável emitido em navigation-mode="event" para cliques primários sem modificadores em links _self. Chame event.preventDefault() no listener para impedir a navegação nativa e entregar event.detail.href ao roteador da SPA.---true

Métodos​

activate​

DescriçãoAtiva o item programaticamente, simulando um clique na superfície.
Utilizado pelo br-list para tratar Enter e Espaço via teclado, e
internamente pelo próprio item quando standalone (fora de br-list).
Assinaturaactivate() => Promise<void>
Parâmetros---

setFocus​

DescriçãoDefine o foco no elemento interno do componente.
Este método pode ser chamado externamente para garantir que o foco seja aplicado ao elemento correto.
AssinaturasetFocus() => Promise<void>
Parâmetros---

setTabIndex​

DescriçãoDefine o tabIndex do elemento interno.
Utilizado pelo br-list para implementar o padrão roving tabindex,
garantindo que apenas um item por vez seja alcançável via Tab.
AssinaturasetTabIndex(value: number) => Promise<void>
Parâmetrosvalue:

CSS Shadow Parts​

NomeDescrição
"item"Elemento principal do item (botão, link ou div).

Migração de Navegação​

Antes, br-item aceitava is-spa-link-behavior quando era renderizado como link.

Agora, use navigation-mode="event" junto com href.

<!-- Antes -->
<br-item href="/servicos" is-spa-link-behavior>Servicos</br-item>

<!-- Agora -->
<br-item href="/servicos" navigation-mode="event">Servicos</br-item>

O evento emitido é brNavigate. Cancele o evento para entregar a navegação ao roteador da SPA. Sem cancelamento, a navegação nativa continua.

Dependências​

Usado por​

Gráfico​

Migração de <br-item> (1.x → 2.x)​

O item mantém os estados de seleção e os links, mas a API atual separa melhor interação, navegação e composição.

Propriedades e eventos​

API 1.xAPI 2.xAção na migração
—navigationModeConfigure quando o item participa da navegação da aplicação.
active, selected, disabled, hrefmesmos nomesMantenha as propriedades canônicas.
hover, open, title—Remova; modele o comportamento com composição e estados atuais.
isActive, isSelected, isInteractive, isButtonactive, selected, interactive, buttonNão use aliases legados no código novo.
eventos de toggle da 1.xbrItemClick / brItemSelectAtualize os listeners para os eventos atuais.

Exemplo​

1.x:

<br-item title="Documentação" href="/docs" active></br-item>

2.x:

<br-item href="/docs" active>Documentação</br-item>
Comece aquiComponentesQuickstartsSobre o projetoRepositório GitLabVersõesDiscordGovBR-DSFAQWikiRedefinir cookies