A semantic chronological list (<ol>) for activity feeds, status histories, and changelogs. Different from Stepper, which represents a sequential process — Timeline is for events that have already happened (or that you're tracking over time).
import {
Timeline,
TimelineItem,
TimelineIndicator,
TimelineConnector,
TimelineContent,
TimelineTitle,
TimelineDescription,
TimelineTime,
} from '@bgunnarsson/react-primitives'| Prop | Type | Default |
|---|---|---|
orientation |
'vertical' | 'horizontal' |
'vertical' |
Renders <ol data-orientation>.
| Prop | Type | Default |
|---|---|---|
state |
'past' | 'current' | 'future' | 'default' |
'default' |
Sets data-state for styling. Renders <li>.
The dot/marker. Inherits data-state from the parent item.
The line between indicators. Inherits data-state and data-orientation.
Container for the item's body. Renders <div>.
| Prop | Type | Default |
|---|---|---|
as |
'h1'–'h6' | 'p' |
'p' |
Renders <p>.
Renders <time>. Pass dateTime for machine-readable timestamps.
<Timeline>
<TimelineItem state="past">
<TimelineIndicator />
<TimelineConnector />
<TimelineContent>
<TimelineTitle as="h4">Order placed</TimelineTitle>
<TimelineTime dateTime="2026-04-24T09:12:00">Apr 24, 09:12</TimelineTime>
</TimelineContent>
</TimelineItem>
<TimelineItem state="current">
<TimelineIndicator />
<TimelineContent>
<TimelineTitle as="h4">Out for delivery</TimelineTitle>
</TimelineContent>
</TimelineItem>
</Timeline>Timelineis unstyled — supply layout viaclassName/style. The semantic structure (ol > li) is preserved.TimelineConnectoris decorative; omit it on the last item.