Cronologia

Uma cronologia é uma lista ordenada com um traço ao lado. Constrói-a a partir de items, ou de filhos timelineItem() quando as entradas não forem suficientemente uniformes para virem de um array.

Cronologia básica

  1. Março de 2026

    Biblioteca de componentes

    O sitelo-ui chega com noventa componentes.

  2. Janeiro de 2026

    Ilhas de servidor

    Páginas estáticas com zonas renderizadas no momento do pedido.

  3. Outubro de 2025

    Primeira versão

    Rotas por ficheiros e um comando de construção.

timeline({
  items: [
    { time: 'Março de 2026', title: 'Biblioteca de componentes', description: 'O sitelo-ui chega com noventa componentes.' },
    { time: 'Janeiro de 2026', title: 'Ilhas de servidor', description: 'Páginas estáticas com zonas renderizadas no momento do pedido.' },
    { time: 'Outubro de 2025', title: 'Primeira versão', description: 'Rotas por ficheiros e um comando de construção.' },
  ],
})

Marcadores coloridos

  1. 12:04

    Publicação bem-sucedida

    204 páginas publicadas.

  2. 12:03

    Lighthouse passou

    Todos os limiares cumpridos.

  3. 12:01

    Aviso na verificação de ligações

    Uma ligação externa esgotou o tempo.

  4. 12:00

    Construção iniciada

timeline({
  items: [
    { time: '12:04', title: 'Publicação bem-sucedida', description: '204 páginas publicadas.', color: 'success' },
    { time: '12:03', title: 'Lighthouse passou', description: 'Todos os limiares cumpridos.', color: 'success' },
    { time: '12:01', title: 'Aviso na verificação de ligações', description: 'Uma ligação externa esgotou o tempo.', color: 'warning' },
    { time: '12:00', title: 'Construção iniciada', color: 'neutral' },
  ],
})

Com ícones

  1. Agora mesmo

    Publicado

  2. Há 2 minutos

    A construir

timeline(
  timelineItem({
    time: 'Agora mesmo',
    title: 'Publicado',
    color: 'success',
    icon: icon('check', { 'stroke-width': 3.4 }),
  }),
  timelineItem({
    time: 'Há 2 minutos',
    title: 'A construir',
    color: 'primary',
  }),
)

Entradas ricas

Os filhos de um item vão por baixo da sua descrição.

  1. v2.7.0

    Secções de página

    herofooterstatstepstimelinemockup
  2. v2.6.3

    Manutenção

    Subida de dependências e uma correção no verificador de ligações.

timeline(
  timelineItem({ time: 'v2.7.0', title: 'Secções de página', color: 'primary' },
    stack({ direction: 'row', gap: 'xs', wrap: true, style: 'margin-top: 0.5rem' },
      chip({ size: 'sm' }, 'hero'),
      chip({ size: 'sm' }, 'footer'),
      chip({ size: 'sm' }, 'stat'),
      chip({ size: 'sm' }, 'steps'),
      chip({ size: 'sm' }, 'timeline'),
      chip({ size: 'sm' }, 'mockup'),
    ),
  ),
  timelineItem({ time: 'v2.6.3', title: 'Manutenção', description: 'Subida de dependências e uma correção no verificador de ligações.' }),
)

A partir de dados

A forma habitual num site estático: um ficheiro de registo de alterações carregado pelo data() e mapeado diretamente para itens.

  1. 2026-03-01

    v2.7.0

    Secções de página

  2. 2026-02-14

    v2.6.3

    Manutenção

  3. 2026-01-20

    v2.6.0

    Ilhas de servidor

return (() => {
  const releases = [
    { version: '2.7.0', date: '2026-03-01', summary: 'Secções de página' },
    { version: '2.6.3', date: '2026-02-14', summary: 'Manutenção' },
    { version: '2.6.0', date: '2026-01-20', summary: 'Ilhas de servidor' },
  ]

  return timeline({
    items: releases.map((release) => ({
      time: release.date,
      title: 'v' + release.version,
      description: release.summary,
      color: 'primary',
    })),
  })
})()

Cronologia ou passos?

Uma cronologia regista o que aconteceu, do mais recente ou do mais antigo, e não tem posição atual. O steps() mostra o progresso ao longo de um percurso, com um passo em curso e os restantes à frente ou atrás dele.

Props

timeline():

PropTipoPredefiniçãoDescrição
itemsArray[]Objetos com as props de timelineItem abaixo.

timelineItem():

PropTipoPredefiniçãoDescrição
timeChild—Quando aconteceu — uma data, uma versão, uma hora.
titleChild—O que aconteceu.
descriptionChild—O detalhe por baixo.
iconChild—Marcação dentro do marcador.
color'primary' | 'neutral' | 'success' | 'warning' | 'danger'—Cor do marcador.

Os filhos de um item são desenhados sob a sua descrição.