Skip to content

Data display

ITimeline ​

A vertical run of events in order — an audit trail, a delivery's progress, a document's history.

  1. Invoice created
  2. Sent to client

    Delivered to the billing contact.

  3. Viewed
  4. Paid

    Card ending 4021.

Not a stepper ​

A timeline is a record of what already happened. For a process the reader is moving through, with a current position and steps still to come, use IStepper.

Icons ​

An icon turns the dot into a larger ringed circle, tinted to match the variant.

  1. Invoice created
  2. Sent to client
  3. Payment failed

    Insufficient funds. Retried automatically.

  4. Paid

Variants ​

neutral, primary, success, warning, danger and info. Set one on the timeline for the default and override it per item. Keep the meaning in the title as well, so it survives without the colour.

Time ​

time is rendered exactly as given, so format it where you know the reader's locale. Add datetime — an ISO string — and it becomes a machine-readable <time> element.

ts
const paid = {
  title: 'Paid',
  time: '14:03', //                      what the reader sees
  datetime: '2026-08-22T14:03:00Z', //   what a machine reads
}

Sizes ​

  1. Invoice created
  2. Sent to client

    Delivered to the billing contact.

  3. Viewed
  1. Invoice created
  2. Sent to client

    Delivered to the billing contact.

  3. Viewed

Props ​

PropTypeDefaultDescription
itemsTimelineItem[][]
size'sm' | 'md''md'
variantTimelineVariant'neutral'Applied to any item without its own
unstyledboolean—Skip built-in classes
ui{ root?, item?, rail?, marker?, line?, content?, header?, title?, time?, description? }—Per-element class overrides

TimelineItem ​

FieldTypeDescription
titlestringWhat happened
descriptionstring
timestringShown as given
datetimestringMachine-readable, for the <time> element
iconIconLike
variantTimelineVariant

Slots ​

SlotPropsDescription
item{ item, index }Replaces an item's content
marker{ item, index }Replaces the dot or icon

Accessibility ​

The events render as an ordered list, so a screen reader announces how many there are and where it is in them. The connecting spine is drawn per item, and the last item omits it.