GodUI

Scroll Timeline

A scrollytelling timeline whose progress line grows as you scroll, revealing entries with sticky labels.

A vertical timeline built for storytelling: a progress line traces down the rail as you scroll, entries fade up into place, and each label sticks while its section is in view. Scroll the preview to draw the line.

2021

A single component and a big idea — a design system that feels alive, not templated.

2023

The community took over. Contributions poured in and the library tripled in a single quarter.

2025

From buttons to WebGL globes, every surface got the same obsessive motion polish.

Today

Scroll back up and watch the line trace your journey. The next chapter is yours to write.

Installation

pnpm dlx shadcn@latest add "https://godui.design/r/scroll-timeline.json"

ScrollTimeline measures its track and maps scroll progress to the accent line's height, so the rail fills exactly as far as you've read. Entries fade up once on enter, and the date rail stays sticky while its entry is on screen. Under reduced motion the line is drawn in full and entries appear statically.

Usage

tsx
 
import { ScrollTimeline } from "@/components/godui/scroll-timeline";
tsx
 
<ScrollTimeline
  data={[
    {
      date: "Q1",
      title: "Discovery",
      content: <p>Research, interviews, and a first prototype.</p>,
    },
    {
      date: "Q2",
      title: "Build",
      content: <p>Shipped the beta to early customers.</p>,
    },
  ]}
/>

Props

PropTypeDefaultDescription
dataTimelineEntry[]Entries to render top to bottom.

Each entry is { title: string; date?: string; content: React.ReactNode }. ScrollTimeline also forwards every standard <div> attribute to the root.

On this page

Built with GodUI

Beautifully crafted motion components for modern interfaces.

Star on GitHub