Breadcrumb
Em andamentoTrilha de navegação do início até a página atual: a casinha para o início, os degraus do meio (links, ou texto quando não têm página) e a página atual em negrito — a única com aria-current="page" (E71). Acima de quatro níveis, o meio recolhe num "…" com menu.
- Função
- Navegação e estrutura
- Também chamado de
- trilha, migalhas, caminho, breadcrumbs
- Mora em
- app/components/molecules/Breadcrumb.tsx
- Última mudança
- 2026-10-01
Prévia
A peça ao vivo, vinda da ficha, na largura escolhida. Em larguras fixas, ela roda num quadro do tamanho de uma tela de verdade.
Na largura da página: 0px
Variantes na ficha
Lidas da ficha no build, na ordem do palco. Cada uma abre sozinha, sem o styleguide em volta — é o endereço que o palco carrega.
Quando usar
No topo de páginas internas com dois ou mais níveis de profundidade — curso dentro de área, post dentro de categoria.
Faça
- Passe os degraus do mais alto ao atual; o último vira a página atual sozinho.
- Use os mesmos nomes que a página e o menu usam.
- Mude o
homeHrefquando o início da área não for a raiz do site, e omaximoDeNiveisse quatro for pouco para a área.
Evite
- Trilha que repete o título da página logo abaixo com outro nome.
- Degrau do meio sem página, a não ser que ele de fato não tenha uma — ele vira texto, sem link.
Quando não usar. Na página inicial e em páginas de primeiro nível, onde a trilha teria só o início. Para navegar entre páginas do mesmo nível, a Navbar; para uma lista longa em partes, a Pagination.
Anatomia
As partes, na ordem em que o olho — e o teclado — passam.
- Início — Link com o ícone de casa, 44×44, nomeado "Início".
- Separador — Seta para a direita, decorativa, antes de cada degrau.
- Degrau — Link em `--muted-foreground`, 44px de altura (E71), sublinhado no hover; sem `href`, texto comum.
- Recolhidos — Acima de `maximoDeNiveis`: um Dropdown só-ícone "Mostrar N níveis escondidos", com os degraus do meio.
- Página atual — Texto em negrito, sem link, com `aria-current="page"` — só o último.
Estados
Os estados que a peça tem no código, e o que muda em cada um.
| Estado | O que muda |
|---|---|
| Degrau | Link em cinza; no hover, vermelho de interface e sublinhado. |
| Degrau sem página | Texto cinza, sem link e sem aria-current (E71). |
| Foco | O anel de foco no link, só no teclado. |
| Página atual | Negrito, sem link e aria-current="page". |
Comportamento
| Situação | O que acontece |
|---|---|
| Último item | Sai como texto, mesmo com href. |
| Item do meio sem `href` | Sai como texto comum — conferido no teste da ficha. Até a E71 também ganhava aria-current="page". |
| Mais de `maximoDeNiveis` (padrão 4) | O primeiro degrau e o último ficam; os do meio vão para o menu do "…" — conferido no teste da ficha. |
| Tela estreita | A lista quebra linha (flex-wrap no ol, E71): a trilha não rola para os lados. |
Relacionados
Como usar no código
A importação e o menor uso, lidos do arquivo. O … marca as props obrigatórias.
import { Breadcrumb } from '@/app/components/molecules/Breadcrumb';
<Breadcrumb items={…}>…</Breadcrumb>Propriedades
Lidas do código da peça no build — não escritas à mão.
| Prop | Tipo | Padrão | Obrigatória | Descrição |
|---|---|---|---|---|
items | BreadcrumbItem[] | — | sim | — |
homeHref | string | '/' | não | — |
maximoDeNiveis | number | 4 | não | Acima deste número de níveis (contando o início), os do meio recolhem num "…" com menu (E71). Padrão 4: a trilha de uma especialização passava de 375px e rolava para os lados. |
Aceita também: React.HTMLAttributes<HTMLElement>.
Medidas
| Parte | Valor | Classe |
|---|---|---|
| Link do início | 44 × 44px | min-h-alvo-toque min-w-alvo-toque |
| Degrau com link | 44px de altura (E71) | min-h-alvo-toque |
Tokens de cor
Os tokens semânticos que o código da peça usa, com o valor de hoje em app/globals.css.
| Token | Valor | Usado como |
|---|---|---|
--foreground | #1A1A1A | text-ink |
--muted | #F4F6F9 | bg-muted |
--muted-foreground | #595959 | text-muted-foreground |
--primary | #D42B2B | text-primary |
Teclado
| Tecla | Faz |
|---|---|
| Tab | Passa pelo Início, pelos degraus com link e pelo "…", nessa ordem; a página atual não recebe foco. |
| Enter | Segue o link em foco; no "…", abre o menu dos degraus escondidos, com as setas do Dropdown — conferido no teste da ficha. |
Leitor de tela
O que é anunciado, e por quê.
- É uma
<nav>"Trilha de navegação" com uma lista ordenada: o leitor diz quantos degraus há e em qual se está. - Uma página atual só, a última (E71).
- Os separadores são
aria-hidden: não são lidos entre os degraus.
O que sustenta o estado
Esta peça usa navegacao. O estado dela é o de quem já foi ouvido com leitor de tela nesses padrões — e não uma passada sobre esta peça em específico.
Falta ouvir: navegacao — ver docs/a11y-screen-reader-checklist.md.
Status e recursos
| Tipo | Recurso | Status |
|---|---|---|
| Código | app/components/molecules/Breadcrumb.tsx | Disponível |
| Ficha | Storybook (abre em outra aba) | Disponível |
| Teste de acessibilidade | axe em npm run test | No gate de todo commit |
| Leitor de tela | Passada da E33 | Falta ouvir |
| Design | Figma | Desativado até a Fase 2 |
Histórico
Os últimos commits que tocaram o arquivo, lidos do git no build.
251416b2026-10-01E159: Testimonials — o vídeo toca dentro do cartão, YouTube e Vimeo
O histórico completo está no GitHub (abre em outra aba).