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.
classNamestringRoot element classes.
railClassNamestringRail wrapper classes.
itemClassNamestringPer-item container classes.
labelClassNamestringTop label classes.
captionClassNamestringBottom caption classes.
renderLabel(item, i) => ReactNodeCustom renderer for the top label.
renderCaption(item, i) => ReactNodeCustom renderer for the bottom caption.