Section Rail
Atom
Section Rail mostra as seções de uma página longa e destaca onde a pessoa está.
Use em documentação, detalhe de crise, relatórios ou formulários extensos. O rail orienta leitura; não deve competir com a navegação global nem esconder ações principais.
Exemplos copiáveis
React
React
import * as React from "react"
type SectionRailItem = {
id: string
label: string
}
type PulsoSectionRailProps = {
items: SectionRailItem[]
activeId: string
}
export function PulsoSectionRail({ items, activeId }: PulsoSectionRailProps) {
return (
<nav aria-label="Seções desta página" className="rounded-[var(--radius-md)] border border-[var(--border)] bg-[var(--card)] p-2">
<ol className="grid gap-1">
{items.map((item) => {
const active = item.id === activeId
return (
<li key={item.id}>
<a
href={`#${item.id}`}
aria-current={active ? "location" : undefined}
className="block rounded-[var(--radius-sm)] px-3 py-2 text-sm text-[var(--fg-muted)] hover:bg-[var(--muted)] aria-[current=location]:bg-[var(--primary-soft)] aria-[current=location]:font-medium aria-[current=location]:text-[var(--primary)]"
>
{item.label}
</a>
</li>
)
})}
</ol>
</nav>
)
}<PulsoSectionRail
activeId="evidencias"
items={[
{ id: "resumo", label: "Resumo" },
{ id: "evidencias", label: "Evidências" },
{ id: "decisao", label: "Decisão" },
]}
/>Regras
- Use apenas para seções da página atual.
- Destaque ativo com
aria-current="location", não só por cor. - Não coloque ações destrutivas no rail.
- Em mobile, transforme em índice colapsável ou âncoras no topo.
Last updated on