SW Core
SW Core / CSS / Breadcrumb

Breadcrumb CSS

A trilha "Início / Roupas / Camiseta" que mostra onde a pessoa está no site e leva de volta com um clique.

O que é

É a linha pequena no topo da página: "Início / Blog / Como escolher um tênis". Cada parte é um link para voltar um nível; a última é a página atual, sem link. Você escreve um <nav sw-brc> com os itens (classe brc-it) e marca o atual com is-cur. Palavras dentro do sw-brc trocam o separador e o estilo.

É só CSS — não precisa de JavaScript. O separador ("/", "›" ou "•") é desenhado sozinho entre os itens: você não escreve. Os links saem na cor primária do site e o item atual em negrito, na cor do texto. Funciona no tema claro e no escuro.

Quando usar

  • Loja virtual: Início / Categoria / Produto.
  • Blog: Início / Blog / Categoria / Artigo.
  • Painel administrativo: Painel / Clientes / Editar cliente — logo abaixo do topo.
  • Ajuda o Google a entender a estrutura do site (veja a receita com os dados estruturados).

Comece aqui

  1. 1

    Coloque o SW Core no <head>. O breadcrumb é só CSS.

    <link rel="stylesheet" href="swcore/swcore.min.css">
  2. 2

    Escreva os itens dentro do <nav sw-brc>, um ao lado do outro. O último leva is-cur e não é link.

    <nav sw-brc aria-label="Você está aqui">
      <a class="brc-it" href="/">Início</a>
      <a class="brc-it" href="/roupas">Roupas</a>
      <span class="brc-it is-cur" aria-current="page">Camiseta</span>
    </nav>

Todas as variações

Cada quadro abaixo é o componente de verdade, rodando. O código embaixo é exatamente o que está no quadro: copie e cole.

1. Separador

Sem palavra, o separador é "/". Os três primeiros aparecem sozinhos entre os itens.

sw-brc — barra "/" (padrão) <nav sw-brc aria-label="Você está aqui"> <a class="brc-it" href="#">Início</a> <a class="brc-it" href="#">Roupas</a> <span class="brc-it is-cur" aria-current="page">Camiseta</span> </nav>
arrow — seta "›" <nav sw-brc="arrow" aria-label="Você está aqui"> <a class="brc-it" href="#">Início</a> <a class="brc-it" href="#">Roupas</a> <span class="brc-it is-cur" aria-current="page">Camiseta</span> </nav>
dot — ponto "•" <nav sw-brc="dot" aria-label="Você está aqui"> <a class="brc-it" href="#">Início</a> <a class="brc-it" href="#">Roupas</a> <span class="brc-it is-cur" aria-current="page">Camiseta</span> </nav>
chevron — ícone; você coloca um <i class="brc-sep"> entre os itens <nav sw-brc="chevron" aria-label="Você está aqui"> <a class="brc-it" href="#">Início</a> <i class="brc-sep swi-chevron-right"></i> <a class="brc-it" href="#">Roupas</a> <i class="brc-sep swi-chevron-right"></i> <span class="brc-it is-cur" aria-current="page">Camiseta</span> </nav>

2. Estilo

pill transforma cada item numa cápsula (sem separador) e pinta a atual. bar coloca a trilha dentro de uma barra com borda. bar combina com qualquer separador.

pill — cápsulas <nav sw-brc="pill" aria-label="Você está aqui"> <a class="brc-it" href="#">Início</a> <a class="brc-it" href="#">Roupas</a> <span class="brc-it is-cur" aria-current="page">Camiseta</span> </nav>
bar — barra com borda <nav sw-brc="bar" aria-label="Você está aqui"> <a class="brc-it" href="#">Início</a> <a class="brc-it" href="#">Roupas</a> <span class="brc-it is-cur" aria-current="page">Camiseta</span> </nav>
bar arrow <nav sw-brc="bar arrow" aria-label="Você está aqui"> <a class="brc-it" href="#">Início</a> <a class="brc-it" href="#">Roupas</a> <span class="brc-it is-cur" aria-current="page">Camiseta</span> </nav>
bar dot <nav sw-brc="bar dot" aria-label="Você está aqui"> <a class="brc-it" href="#">Início</a> <a class="brc-it" href="#">Roupas</a> <span class="brc-it is-cur" aria-current="page">Camiseta</span> </nav>

3. Tamanho do texto

Sem palavra de tamanho: 14px. Combina com qualquer separador ou estilo.

sm — pequeno (11px) <nav sw-brc="sm" aria-label="Você está aqui"> <a class="brc-it" href="#">Início</a> <a class="brc-it" href="#">Roupas</a> <span class="brc-it is-cur" aria-current="page">Camiseta</span> </nav>
(padrão) — 14px <nav sw-brc aria-label="Você está aqui"> <a class="brc-it" href="#">Início</a> <a class="brc-it" href="#">Roupas</a> <span class="brc-it is-cur" aria-current="page">Camiseta</span> </nav>
lg — grande (15px) <nav sw-brc="lg" aria-label="Você está aqui"> <a class="brc-it" href="#">Início</a> <a class="brc-it" href="#">Roupas</a> <span class="brc-it is-cur" aria-current="page">Camiseta</span> </nav>
bar lg <nav sw-brc="bar lg" aria-label="Você está aqui"> <a class="brc-it" href="#">Início</a> <a class="brc-it" href="#">Roupas</a> <span class="brc-it is-cur" aria-current="page">Camiseta</span> </nav>

4. Com ícone

O item é um link comum: dá para pôr um ícone swi-* dentro (a casinha no "Início", por exemplo).

Casinha no primeiro item <nav sw-brc="arrow" aria-label="Você está aqui"> <a class="brc-it" href="#" aria-label="Início"><i class="swi-home"></i></a> <a class="brc-it" href="#">Blog</a> <span class="brc-it is-cur" aria-current="page">Artigo</span> </nav>
Ícone em cada item (pill) <nav sw-brc="pill" aria-label="Você está aqui"> <a class="brc-it" href="#"><i class="swi-home"></i> Início</a> <span class="brc-it is-cur" aria-current="page"><i class="swi-cart"></i> Carrinho</span> </nav>

Tabela de opções

PalavraO que fazExemplo
Separador (palavra no sw-brc)
(nenhuma)Barra "/" automática.sw-brc
arrowSeta "›" automática.sw-brc="arrow"
dotPonto "•" automático.sw-brc="dot"
chevronTira o separador automático; você coloca <i class="brc-sep swi-chevron-right"> entre os itens.sw-brc="chevron"
Estilo (palavra no sw-brc)
pillCada item vira cápsula; a atual fica colorida. Sem separador.sw-brc="pill"
barTrilha dentro de uma barra com fundo e borda.sw-brc="bar"
Tamanho (palavra no sw-brc)
smPequeno (11px).sw-brc="sm"
(nenhum)Padrão (14px).
lgGrande (15px).sw-brc="lg"
Classes dos itens
brc-itCada item da trilha (link ou texto).<a class="brc-it" href="/">Início</a>
is-curO item da página atual: negrito, cor do texto, sem clique.<span class="brc-it is-cur">
brc-sepO ícone separador do modo chevron.<i class="brc-sep swi-chevron-right"></i>

Receitas prontas — usos reais

Situações que aparecem em quase todo site. Copie a que servir.

Página de produto com dados para o Google Ao vivo
<nav sw-brc aria-label="Você está aqui">
  <a class="brc-it" href="/">Início</a>
  <a class="brc-it" href="/roupas">Roupas</a>
  <span class="brc-it is-cur" aria-current="page">Camiseta</span>
</nav>

<!-- a mesma trilha em formato que o Google entende (aparece no resultado da busca) -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    { "@type": "ListItem", "position": 1, "name": "Início", "item": "https://minhaloja.com.br/" },
    { "@type": "ListItem", "position": 2, "name": "Roupas", "item": "https://minhaloja.com.br/roupas" },
    { "@type": "ListItem", "position": 3, "name": "Camiseta" }
  ]
}
</script>
Lista numerada (ol/li) — mais correta para leitor de tela Ao vivo
  1. Início
  2. Blog
  3. Como escolher um tênis
<ol sw-brc="arrow" aria-label="Você está aqui">
  <li class="brc-it"><a href="/">Início</a></li>
  <li class="brc-it"><a href="/blog">Blog</a></li>
  <li class="brc-it is-cur" aria-current="page">Como escolher um tênis</li>
</ol>
<!-- a classe brc-it vai no <li>, não no <a> -->
Painel administrativo: trilha em barra embaixo do título Ao vivo

Editar cliente

<h1>Editar cliente</h1>
<nav sw-brc="bar sm" aria-label="Você está aqui">
  <a class="brc-it" href="/painel">Painel</a>
  <a class="brc-it" href="/painel/clientes">Clientes</a>
  <span class="brc-it is-cur" aria-current="page">Ana Nunes</span>
</nav>

Precisa de quê

  • swcore.min.css.
  • swcore.compl.min.css — só no modo chevron ou com ícones.

Cuidados — erros comuns

  • Os itens brc-it têm que ser irmãos, um ao lado do outro. Se cada link estiver dentro de uma <li> e a classe ficar no <a>, o separador some — ponha a classe na <li> (veja a receita).
  • No modo chevron, sem o <i class="brc-sep …"> entre os itens não aparece separador nenhum.
  • Não escreva o "/" à mão nos outros modos: ele já é desenhado e ficaria duplicado.
  • O item atual não é link: use <span> (ou <li>) com is-cur e aria-current="page".
  • Dê um nome ao <nav> com aria-label ("Você está aqui"), para o leitor de tela não confundir com o menu principal.

O que ele não faz

  • Trilha comprida quebra em mais de uma linha; não encurta os itens do meio sozinha ("…").
  • Não monta a trilha sozinho a partir do endereço da página: você escreve os itens.