Timeline

An ordered list of events, each with a marker, a title, content and a time.

Preview#

  1. Draft
    Draft opened for review
    2026-10-01 09:12
  2. Checks
    All checks passed
    2026-10-01 10:40
  3. Review
    One reviewer asked for changes
    2026-10-01 14:05
  4. Deploy
    Deploy to staging failed
    2026-10-01 16:30
  5. Release
    Waiting on the release window
    2026-10-02 08:00
Controls
import { Timeline, TimelineContent, TimelineItem, TimelineTime, TimelineTitle } from "raft-ui";

<Timeline>
  <TimelineItem variant="success">
    <TimelineTitle />
    <TimelineContent />
    <TimelineTime />
  </TimelineItem>
</Timeline>

itemPlacement="right" puts the markers on the right and aligns the text to them.

  1. Left
    Markers on the left
    09:00
  2. Left
    The default placement
    10:00
  1. Right
    Markers on the right
    09:00
  2. Right
    Text aligns to the markers
    10:00

Horizontal#

horizontal lays the items out in a row. lineType="dashed" draws a dashed line to the next item.

  1. Order placed
    Mon
  2. Packed
    Tue
  3. Shipped
    Wed
  4. Out for delivery
    Thu

icon replaces the dot and takes the variant's color; iconSize sets the marker size for the whole timeline. color gives one item a custom color.

  1. Shipped
    An icon replaces the dot
  2. In transit
    It takes the variant's color
  3. Custom color
    Or a custom color

API#WIP

sizedefault: "md"
"sm" | "md" | "lg"
Marker and text size.
itemPlacementdefault: "left"
"left" | "right"
Which side the markers sit on. Ignored when horizontal.
horizontaldefault: false
boolean
Lays the items out in a row; each marker is followed by a line to the next.
iconSize
number
Marker size in px. Defaults to 9px for a dot and 14px for an icon, at every size.
...props
ComponentPropsWithRef<"ol">
Native ordered-list attributes.
variantdefault: "default"
"default" | "information" | "success" | "warning" | "danger" | "accent"
Marker color role.
color
string
A custom marker color; overrides variant. Prefer a palette token.
icon
ReactNode
Replaces the dot marker and takes the variant's color.
lineTypedefault: "solid"
"solid" | "dashed"
The line from this item to the next.
...props
ComponentPropsWithRef<"li">
Native list-item attributes. Children render beside the marker.
...props
ComponentPropsWithRef<"div">
Item title; the marker centers on its first line.
...props
ComponentPropsWithRef<"div">
Item body text.
...props
ComponentPropsWithRef<"div">
Muted time or meta line under the content.