Timeline Rail

Clean horizontal timeline with dots on a rail, small diagonal labels above, and captions below.

Basic

Variants

Installation

npx shadcn-extras@latest add timeline-rail

Component API

TimelineRail

PropTypeDefaultDescription
itemsTimelineItem[]—Ordered items to render as dots along the rail.
size'sm' | 'md''md'Density of dots and vertical offsets.
emphasizeActiveTrailbooleantrueDarken rail up to the last item with active: true.
labelAnglenumber45Rotation (degrees) for the top labels.
gapClassNamestring'gap-14'Horizontal gap between dots (Tailwind class).
lineColorClassstring'bg-zinc-300 dark:bg-zinc-700'Rail color.
lineThicknessnumber6Rail thickness in pixels.
dotClassstring'bg-zinc-400 dark:bg-zinc-600'Inactive dot class.
dotActiveClassstring'bg-zinc-900 dark:bg-zinc-100'Active dot class.
classNamestring—Root element classes.
railClassNamestring—Rail wrapper classes.
itemClassNamestring—Per-item container classes.
labelClassNamestring—Top label classes.
captionClassNamestring—Bottom caption classes.
renderLabel(item, i) => ReactNode—Custom renderer for the top label.
renderCaption(item, i) => ReactNode—Custom renderer for the bottom caption.