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

Header

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-header é o orquestrador principal de cabeçalho do GovBR-DS. Centraliza a identidade visual do órgão ou sistema público, links de navegação hierárquica, atalhos de funcionalidades, mecanismo de busca e botão de acesso ou autenticação.

Para que serve​

  • Identidade institucional unificada: Apresenta a marca e assinatura visual oficial do Governo Federal e da entidade pública.
  • Navegação e atalhos rápidos: Reúne links para áreas centrais e botões funcionais (como contraste, acessibilidade e suporte).
  • Busca e autenticação integradas: Fornece áreas reservadas e slots para barra de busca rápida e gatilho de login/acesso.
  • Comportamento responsivo e densidades: Adapta-se automaticamente a diferentes telas com suporte a densidades padrão, compacta, pequena e grande.

Quando utilizar​

  • Utilize quando:
    • Desenvolver páginas, portais e sistemas públicos federais que requerem a barra superior padronizada do GovBR-DS.
    • For necessário integrar identidade visual, navegação rápida, busca e acesso em uma estrutura consistente.
  • Evite e prefira outro componente quando:
    • A navegação for exclusivamente lateral ou contextual interna de uma ferramenta gráfica (prefira br-menu ou barras de ferramentas específicas).

Composição e Subcomponentes​

SubcomponentePapelRegra de uso
br-header-functionAção funcional. Botão de utilidade rápida (contraste, ajuda, etc.).Deve ser inserido dentro de um br-header-list no slot functions.
br-header-linkItem de link. Atalho ou hiperlink de navegação institucional.Deve ser inserido dentro de um br-header-list no slot links.
br-header-listAgrupador de lista. Contêiner semântico horizontal para links ou funções.Encaixa-se nos slots links ou functions do br-header.
br-header-logoIdentidade visual. Exibe o logotipo ou brasão institucional.Posicionado nos slots logo ou signature do br-header.
br-headerOrquestrador principal. Estrutura as áreas superior e inferior, gerencia responsividade e densidade.Deve ser declarado como elemento raiz do topo da página.

Como os subcomponentes se relacionam​

O br-header orquestra as áreas da barra através de slots nomeados (logo, signature, links, functions, search, access, menu-trigger, caption, subcaption). Ele observa o tamanho de tela e a densidade configurada, reorganizando os blocos e delegando a exibição correta aos subcomponentes filhos.

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​

caption​

Atributocaption
DescriçãoTexto exibido como título do cabeçalho.
Tipostring
Valor padrãonull

captionUrl​

Atributocaption-url
DescriçãoURL associada ao título do cabeçalho.
Tipostring
Valor padrãonull

compact​

Atributocompact
DescriçãoEstado compacto canônico. Quando informado, tem precedência sobre isCompact.
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'

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

Atributois-compact
DepreciaçãoUse compact.
DescriçãoAtiva o modo compacto do cabeçalho.
Tipoboolean
Valor padrãofalse

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

Atributois-sticky
DepreciaçãoUse sticky.
DescriçãoFixa o cabeçalho no topo durante a rolagem.
Quando compact ou is-compact é definido explicitamente, o modo visual
permanece fixo durante a rolagem. Sem essa configuração, o header sticky
alterna automaticamente entre os modos compacto e expandido.
Tipoboolean
Valor padrãofalse

layoutWidth​

Atributolayout-width
DescriçãoDefine a largura do container interno do cabeçalho.
- contained: largura máxima limitada pela grade no breakpoint desktop (container-lg).
- full: sempre ocupa 100% da largura disponível (container-fluid).
Tipo"contained" | "full"
Valor padrão'contained'
Atributonavigation-mode
DescriçãoControla como os links internos do cabeçalho integram a navegação mantendo href real.
- 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.
Tipo"event" | "native"
Valor padrão'native'

shrinkFirst​

Atributoshrink-first
DescriçãoDefine qual lista encolhe primeiro quando o espaço é limitado.
Tipo"functions" | "links"
Valor padrão'functions'

signature​

Atributosignature
DescriçãoTexto da assinatura exibida ao lado da logo.
Tipostring
Valor padrãonull

sticky​

Atributosticky
DescriçãoFixa o cabeçalho no topo. Quando informado, tem precedência sobre isSticky.
Tipoboolean
Valor padrão---

subcaption​

Atributosubcaption
DescriçãoTexto exibido como subtítulo do cabeçalho.
Tipostring
Valor padrãonull

subcaptionUrl​

Atributosubcaption-url
DescriçãoURL associada ao subtítulo do cabeçalho.
Tipostring
Valor padrãonull

Slots​

NomeDescrição
"access"Slot para o botão de acesso ou autenticação.
"caption"Slot para o título do cabeçalho.
"functions"Slot para botões de ação no cabeçalho.
"links"Slot para links de navegação principais.
"logo"Slot para a logo do cabeçalho.
"menu-trigger"Slot para o botão que abre o menu.
"search"Slot para o campo de busca.
"signature"Slot para a assinatura visual da organização.
"subcaption"Slot para o subtítulo do cabeçalho.

Eventos​

EventoDescriçãoDepreciaçãoPropagação
brHeaderCompactChangeEvento canônico emitido quando o modo compacto muda.---true
brMenuToggleEvento disparado para alternar o estado de um menu associado.---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
headerCompactChangeEvento disparado quando o cabeçalho entra ou sai do modo compacto. O evento contém os detalhes do estado compacto e o ID do componente pai.---true
headerWidthChangeEvento disparado para indicar qual lista deve encolher primeiro. O evento contém os detalhes do ID do componente pai e o nome da lista.---true

Métodos​

resetHeaderList​

DescriçãoReinicializa o estado das listas do cabeçalho, disparando o evento de redimensionamento.
Pode ser chamado externamente para forçar a atualização das listas.
AssinaturaresetHeaderList() => Promise<void>
Parâmetros---

CSS Shadow Parts​

NomeDescrição
"bottom-left"Área inferior esquerda (menu + título).
"bottom-right"Área inferior direita (busca expandida).
"bottom"Área inferior do header.
"header"Elemento header principal.
"top-left"Área superior esquerda (logo + assinatura).
"top-right"Área superior direita (links + funções + busca + acesso).
"top"Área superior do header.

Acessibilidade​

O br-header renderiza um landmark <header> (::part(header)) e organiza o conteúdo por slots nomeados (logo, signature, links, functions, search, access, menu-trigger, caption, subcaption). O nome/título vem de caption (com link opcional por caption-url).

  • Coloque os links principais no slot links (via br-header-link, que renderiza âncoras reais). Marque o link da rota atual com aria-current="page".
  • O botão no slot menu-trigger tem seu aria-expanded sincronizado com o estado de abertura do br-menu associado (evento brMenuOpenChange).
  • A navegação por teclado segue a ordem natural dos controles projetados; o componente reposiciona o foco na lista de links quando ela muda de layout (compacto ↔ expandido).

Uso​

  • caption deve ser significativo — é o rótulo do cabeçalho.
  • Botões só com ícone nos slots functions/access precisam de aria-label.
  • Em modo sticky/compact, garanta que o conteúdo da página tenha scroll-padding-top suficiente para as âncoras não ficarem atrás do header.

Movimento​

A reorganização entre layouts e o encolhimento (shrink-first) respeitam prefers-reduced-motion: reduce.

Migração de Navegação​

Antes, os links de caption-url e subcaption-url navegavam diretamente pelo navegador.

Agora, br-header aceita navigation-mode="event" e emite brNavigate para esses links.

<!-- Antes -->
<br-header caption="Portal" caption-url="/portal"></br-header>

<!-- Agora -->
<br-header caption="Portal" caption-url="/portal" navigation-mode="event"></br-header>

As propriedades caption-url e subcaption-url continuam com o mesmo nome. O que mudou foi o suporte ao contrato central de navegação.

Dependências​

Subcomponentes​

Depende de​

Gráfico​

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

O header da 1.x concentrava logo, título, busca e ações em propriedades de dados. Na 2.x, a estrutura é composta por slots e subcomponentes, o que permite preservar a semântica e a interação de cada área.

Propriedades e composição​

API 1.xAPI 2.xAção na migração
actionSearch e dados da buscaslot de buscaMova o campo e sua ação para o slot correspondente.
compactcompactMantenha; is-compact é apenas alias legado.
containerFluidlayout-widthUse a configuração de largura atual.
hasMenu / hasSearchslots e subcomponentesRemova as flags e declare menu/busca explicitamente.
image / imageLinklogo slot / br-header-logoMova a marca para a composição de logo.
isStickystickyUse a propriedade canônica atual.
signaturesignatureMantenha quando aplicável.
subtitlesubcaptionRenomeie a propriedade.
titlecaptionRenomeie a propriedade.
titleLinkUrlcaptionUrlRenomeie a propriedade.

Exemplo​

1.x:

<br-header title="Portal" subtitle="Serviços" image="/logo.svg" has-search></br-header>

2.x:

<br-header caption="Portal" subcaption="Serviços" layout-width="fluid">
<br-header-logo slot="logo" src="/logo.svg"></br-header-logo>
<br-input slot="search" label="Buscar"></br-input>
</br-header>
Comece aquiComponentesQuickstartsSobre o projetoRepositório GitLabVersõesDiscordGovBR-DSFAQWikiRedefinir cookies