Breadcrumb
Trilha de navegação que mostra a posição da página atual na hierarquia do site
Breadcrumb ajuda o usuário a se localizar quando a aplicação tem hierarquias profundas. Use quando a estrutura de URLs é significativa e o usuário pode querer voltar a um nível intermediário. Para navegação principal, prefira uma Sidebar ou uma barra de navegação.
import {
Breadcrumb,
BreadcrumbItem,
BreadcrumbLink,
BreadcrumbList,
BreadcrumbPage,
BreadcrumbSeparator,
} from '@uranus-workspace/design-system';
export default function BreadcrumbDefault() {
return (
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink href="/">Início</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbLink href="/projetos">Projetos</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbPage>Apollo</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>
);
}
Anatomia
- Breadcrumb — elemento
<nav aria-label="breadcrumb">que delimita a trilha. - BreadcrumbList — a lista ordenada que agrupa os itens.
- BreadcrumbItem — cada segmento da trilha.
- BreadcrumbLink — um link navegável para um nível anterior. Aceita
asChildpara integrar comnext/link. - BreadcrumbPage — o segmento atual, marcado com
aria-current="page", não clicável. - BreadcrumbSeparator — separador visual entre segmentos. Usa um chevron por padrão.
- BreadcrumbEllipsis — comprime segmentos intermediários em trilhas longas.
Trilhas longas
Para hierarquias muito profundas, substitua os segmentos do meio por um BreadcrumbEllipsis. Mantenha visíveis pelo menos o primeiro nível, o pai imediato e a página atual.
import {
Breadcrumb,
BreadcrumbEllipsis,
BreadcrumbItem,
BreadcrumbLink,
BreadcrumbList,
BreadcrumbPage,
BreadcrumbSeparator,
} from '@uranus-workspace/design-system';
export default function BreadcrumbEllipsisExample() {
return (
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink href="/">Início</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbEllipsis />
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbLink href="/projetos/apollo/relatorios">Relatórios</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbPage>Abril 2026</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>
);
}
Uso
import Link from 'next/link';
import {
Breadcrumb,
BreadcrumbItem,
BreadcrumbLink,
BreadcrumbList,
BreadcrumbPage,
BreadcrumbSeparator,
} from '@uranus-workspace/design-system';
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink asChild>
<Link href="/">Início</Link>
</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbPage>Projeto atual</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>Faça
- Comece a trilha no nível raiz relevante (geralmente "Início").
- Use
BreadcrumbPagepara o segmento atual — nunca um link clicável que aponta para a própria página. - Para nomes longos, trunque com ellipsis CSS em vez de abreviar manualmente.
Não faça
- Não use breadcrumb como navegação principal. Ele complementa, não substitui.
- Não inclua a trilha em páginas de topo (landing, dashboard raiz) — não há para onde voltar.
- Não invente níveis que não existem na URL apenas para preencher a trilha.
Acessibilidade
- O componente já renderiza
<nav aria-label="breadcrumb">e marca o item atual comaria-current="page". - Os separadores recebem
role="presentation"earia-hidden="true"para não poluírem leitores de tela. - Prefira sempre
BreadcrumbLink asChildcomnext/linkpara navegação cliente a cliente.