Timeline
Linha do tempo de leitura: Marcos, eventos e histórico em ordem.
A Timeline (do HeroUI Pro) mostra uma cronologia só de leitura: os Marcos da Jornada de um Pedido, o registro de eventos, a história de versões. Se a pessoa avança por etapas conhecidas, use Stepper. O estado é sempre dito em texto, nunca só pela cor do marcador.
import { Timeline } from "@rastreio-x/ui";
Padrão
Cada Timeline.Item tem status, um trilho (Timeline.Rail) com marcador e conector, e um Timeline.Content. Os ícones dos marcadores são decorativos.
Status
Seis tons de marcador: default, current, success, warning, danger e muted. O item current ganha aria-current.
Registro compacto
density="compact" e size="sm" formam um registro denso de eventos, com horário e uma linha de contexto.
Atrasado
Atrasado combina marcador de aviso, a palavra visível e o texto para o leitor de tela.
Anatomia
Timeline.Item: um evento, comstatus.Timeline.Rail: agrupa marcador e conector.Timeline.Marker: o marcador, com ícone opcional.Timeline.Connector: a linha até o próximo evento (some no último).Timeline.Content: o conteúdo do evento.
Propriedades
Raiz (Timeline):
Item (Timeline.Item):
Animações
A Timeline não anima. Para destacar o evento mais novo, componha com a camada de movimento da fachada (@rastreio-x/ui/motion) respeitando prefers-reduced-motion.
Acessibilidade
- Renderiza uma lista ordenada (
ol) com itensli; passearia-label("Jornada do Pedido ped-8"). - Conectores e marcadores vazios são decorativos e ficam fora da árvore de acessibilidade.
status="current"marca o item comaria-current; no Admin usamosaria-current="step"na Jornada.- Use
<time dateTime>para datas, e diga o estado no texto ("— atrasado").
Boas práticas
Faça
Evite
- Ordem cronológica estável, do mais antigo ao mais novo (ou o inverso, sempre igual).
- Horário previsto e horário real devem ser distinguíveis (rótulo "previsto").
- Evite chip redundante por item; um sinal por estado.
- Para histórico longo, pagine ou recolha.