Timeline

Vertical changelog timeline whose connector line draws with scroll progress, with dots that pop in, content that slides into view, done/current/upcoming states, a pulsing ring on the current step, and a static line under reduced motion.

Preview

Timeline preview width

Install

Add it with the shadcn CLI, or copy the source manually.

$ bunx --bun shadcn add @karaui/timeline
@karaui not found? Add it to components.json
{
  "registries": {
    "@karaui": "https://karaui.kamisama-v0.my.id/r/{name}.json"
  }
}

@karaui is in shadcn's public registry directory, so the latest CLI needs no setup. On an older CLI, merge this into the existing file once and every @karaui/… install resolves.

API Reference

Timeline

scrollContainer?
RefObject<HTMLElement | null>

Scroll container for contained scroll areas. Defaults to the viewport. Drives both the line progress and each item's reveal.

—
className?
string
—

TimelineItem

title
ReactNode
—
date?
ReactNode
—
dateTime?
string

ISO date for the `<time>` element when `date` is a display string.

—
description?
ReactNode
—
icon?
ReactNode
—
status?
"done" | "current" | "upcoming"
—
children?
ReactNode

Extra content under the description (tags, links).

—
className?
string
—

Updated