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

Link

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-link é o controle oficial de hiperlink do GovBR-DS, projetado para orientar e conduzir a pessoa usuária em navegações internas entre páginas ou encaminhamentos para destinos externos.

Para que serve​

  • Navegação estruturada: Conduz o usuário para novas URLs, rotas de aplicação, âncoras dentro da mesma página ou arquivos para download.
  • Identificação de links externos: Permite sinalizar visualmente que o link aponta para um domínio externo ou abre em nova aba/janela, adicionando os atributos de segurança e acessibilidade necessários (target="_blank", rel="noopener noreferrer").
  • Estilos inline e de bloco: Adapta-se ao fluxo de leitura textual em parágrafos ou como elemento de navegação isolado com suporte a ícones.

Quando utilizar​

  • Utilize quando:
    • A ação resultar na alteração da URL do navegador, navegação para outra página ou download de arquivo.
  • Evite e prefira outro componente quando:
    • A ação disparar um comportamento na interface sem alterar a URL (como abrir modal, submeter formulário ou acionar filtro): prefira br-button.

Estrutura e Slots​

O br-link é um componente autônomo:

  • default: Slot para o texto do link, ícones auxiliares ou elementos combinados.

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​

ariaCurrent​

Atributoaria-current
DescriçãoValor canônico de aria-current.
Tipostring
Valor padrãonull

ariaDescribedBy​

Atributoaria-describedby
DescriçãoValor canônico de aria-describedby.
Tipostring
Valor padrãonull

ariaExpanded​

Atributoaria-expanded
DescriçãoValor canônico de aria-expanded.
Tipostring
Valor padrãonull

ariaHasPopup​

Atributoaria-haspopup
DescriçãoValor canônico de aria-haspopup.
Tipostring
Valor padrãonull

ariaLabel​

Atributoaria-label
DescriçãoValor canônico de aria-label.
Tipostring
Valor padrãonull

ariaSelected​

Atributoaria-selected
DescriçãoValor canônico de aria-selected.
Tipostring
Valor padrãonull

button​

Atributobutton
DescriçãoExibe o link com o mesmo visual do componente br-button.
Tipoboolean
Valor padrãofalse

disabled​

Atributodisabled
DescriçãoDesativa o link, tornando-o não interativo.
Quando true: remove o href (um <a> sem href sai da ordem de
tabulação e não recebe foco, nem por clique), marca aria-disabled="true"
e bloqueia o clique (sem navegação nem emissão de brNavigate).
Se o link estiver focado no momento da desativação, o foco é removido.
Útil para componentes como br-pagination e br-wizard.
Tipoboolean
Valor padrãofalse

download​

Atributodownload
DescriçãoNome sugerido para download. Uma string vazia preserva o nome definido pelo servidor.
Tipostring
Valor padrão---

href​

Atributohref
DescriçãoURL de destino do link.
Tipostring
Valor padrão'#'

hreflang​

Atributohreflang
DescriçãoIdioma do recurso apontado pelo link.
Tipostring
Valor padrão---

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

Atributois-spa-link-behavior
DepreciaçãoUse navigationMode="event" e o evento brNavigate.
DescriçãoAtiva o comportamento legado de navegação SPA, interceptando cliques simples
para atualizar o histórico e emitir brSpaNavigate.
Tipoboolean
Valor padrãofalse

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

Atributolink-aria-current
DepreciaçãoUse ariaCurrent.
DescriçãoEncaminhamento de aria-current para o elemento âncora interno.
Indica o item ativo em um conjunto de navegação (breadcrumb, menu, paginação).
Valores comuns: "page" (link da página atual), "step" (etapa ativa), "true".
Referência: WCAG 1.3.1 e ARIA aria-current.
Tipostring
Valor padrão---

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

Atributolink-aria-describedby
DepreciaçãoUse ariaDescribedBy.
DescriçãoEncaminhamento de aria-describedby para o elemento âncora interno.
Referencia o id de um elemento externo que descreve o link.
Tipostring
Valor padrão---

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

Atributolink-aria-expanded
DepreciaçãoUse ariaExpanded.
DescriçãoEncaminhamento de aria-expanded para o elemento âncora interno.
Tipostring
Valor padrão---

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

Atributolink-aria-haspopup
DepreciaçãoUse ariaHasPopup.
DescriçãoEncaminhamento de aria-haspopup para o elemento âncora interno.
Tipostring
Valor padrão---

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

Atributolink-aria-label
DepreciaçãoUse ariaLabel.
DescriçãoEncaminhamento de aria-label para o elemento âncora interno.
Fornece nome acessível ao link quando o conteúdo do slot não é descritivo
por si só (ex.: link com ícone sem texto visível).
Tipostring
Valor padrão---

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

Atributolink-aria-selected
DepreciaçãoUse ariaSelected.
DescriçãoEncaminhamento de aria-selected para o elemento âncora interno.
Tipostring
Valor padrão---

linkRole​

Atributolink-role
DescriçãoEncaminhamento de role para o elemento âncora interno.
Tipostring
Valor padrão---
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'

referrerPolicy​

Atributoreferrer-policy
DescriçãoPolítica de referrer usada ao buscar o destino.
Tipo"" | "no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url"
Valor padrão---

rel​

Atributorel
DescriçãoRelação entre o documento atual e o destino (rel).
Quando target="_blank", noopener e noreferrer são sempre incluídos
(mesmo que rel seja definido) para mitigar tabnabbing e vazamento de window.opener.
Tipostring
Valor padrão---

target​

Atributotarget
DescriçãoDefine como o link será aberto.
- _self: abre no mesmo contexto de navegação
- _blank: abre em nova aba ou janela
- _parent: abre no contexto pai
- _top: abre no contexto de nível superior
Tipo"_blank" | "_parent" | "_self" | "_top"
Valor padrão---

type​

Atributotype
DescriçãoTipo MIME informativo do recurso apontado.
Tipostring
Valor padrão---

Slots​

NomeDescrição
"default"Conteúdo do link (texto, ícones ou outros elementos).

Eventos​

EventoDescriçãoDepreciaçãoPropagação
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
brSpaNavigate Componente mantido por compatibilidade; prefira a alternativa indicada na documentação.Use brNavigate.true

CSS Shadow Parts​

NomeDescrição
"anchor"Parte exposta para o elemento âncora interno, usada para estilos customizados via ::part(anchor).

Migração de Navegação​

is-spa-link-behavior e brSpaNavigate continuam disponíveis como aliases depreciados para compatibilidade.

Agora, use navigation-mode="event" e trate brNavigate.

<!-- Antes -->
<br-link href="/perfil" is-spa-link-behavior>Perfil</br-link>

<!-- Agora -->
<br-link href="/perfil" navigation-mode="event">Perfil</br-link>
document.addEventListener('brNavigate', (event) => {
event.preventDefault();
router.navigate(event.detail.href);
});

Sem navigation-mode="event", o link usa o modo native e preserva a navegação normal do navegador. Quando navigation-mode="event" e o alias são informados juntos, o modo canônico prevalece.

Eventos nativos​

Elemento HTML de referência​

br-link encapsula <a href>. O host decora a âncora; navigationMode="event" adiciona navegação coordenada pelo Design System.

Como ouvir os eventos​

const link = document.querySelector('br-link');

link.addEventListener('click', (event) => {
console.log(event.target === link);
});

Eventos nativos suportados​

EventoQuando ocorreBubblesComposedCancelableHostObservações
clickativação da âncoraSimSimSimSimPreserva cliques com modificadores e navegação nativa.
focus / blurentrada ou saída de focoNãoSimNãoSimPara delegação, prefira focusin/focusout.

Eventos não aplicáveis ou não suportados​

EventoSituaçãoMotivoAlternativa
input / changeNão aplicávelLink não é controle de valor.Ouça click ou brNavigate.

Eventos customizados do componente​

EventoQuando ocorreDetailBubblesComposedCancelable
brNavigateclique simples em navigationMode="event"destino e metadados de navegaçãoSimSimSim
brSpaNavigatealias depreciado com isSpaLinkBehaviordestino e evento de origemSimSimSim

Valor e estado após o evento​

Consulte href, target, rel, download, hreflang, referrerPolicy, type, navigationMode e disabled no host. Cancelar brNavigate impede a ação coordenada.

Frameworks​

HTML usa addEventListener; React usa onClick ou ref para brNavigate; Angular usa (click)/(brNavigate); Vue usa @click/@brNavigate.

Acessibilidade​

Com href, Enter ativa a âncora. Um link desabilitado perde href e sai da tabulação.

Evidência de teste​

_tests/link.e2e.tsx cobre navegação, cancelamento, modificadores, foco e disabled em Chromium headless. A matriz completa de flags e três engines permanece pendente.

Atributos nativos​

br-link encaminha href, target, rel, download, hreflang, referrer-policy e type para a âncora interna. target="_blank" mantém noopener noreferrer por segurança.

ping não é suportado porque dispara requisições secundárias de rastreamento. Os atributos de navegação não são copiados automaticamente para componentes compostos que usam links internamente.

Dependências​

Usado por​

Gráfico​

O br-link não existia na linha 1.x. Na 2.x, ele encapsula uma âncora e preserva os recursos nativos de navegação.

<br-link href="/servicos">Serviços</br-link>

Use href, target, rel, download, hreflang, referrer-policy e type como faria em uma âncora. O texto ou conteúdo projetado deve explicar o destino do link.

Para rotas controladas por uma SPA, use navigation-mode="event" e trate o evento cancelável brNavigate. Sem esse modo, a navegação permanece nativa. Cliques com modificadores, botão do meio e destinos diferentes de _self também preservam o comportamento do navegador.

is-spa-link-behavior, brSpaNavigate e as propriedades iniciadas por link-aria- são aliases legados da própria linha 2.x. Eles continuam funcionando por compatibilidade, mas novos códigos devem usar navigationMode, brNavigate e os atributos ARIA canônicos.

Comece aquiComponentesQuickstartsSobre o projetoRepositório GitLabVersõesDiscordGovBR-DSFAQWikiRedefinir cookies