Lifeline is a shadcn registry component that builds horizontal and vertical timelines for milestones, events, and media, installable via npx and fully customizable.

Stars

153

7-day growth

No data

Forks

1

Open issues

1

License

MIT

Last updated

2026-07-27

AI repository intelligence
FR-AI / ANALYSIS

Why it is worth attention

It ships as a shadcn registry entry, placing editable source directly in your codebase, and offers smart scroll‑capture embedding, responsive layouts, and multiple starter templates for personal, company, or journey timelines.

Who it is for

  • Next.js developers using shadcn/ui
  • Product designers who need interactive timeline components
  • Content creators documenting career, company, or project histories

Use cases

  • Displaying a personal career timeline with milestones and images
  • Charting a company's founding, key events, and product launches
  • Logging a bounded journey (e.g., a trip or project) day by day
  • Embedding a scrollytelling timeline inside an existing page

Strengths

  • Easy installation via npx shadcn: adds components, data helpers, and keyframes in one command
  • Fully customizable because source code lands in your project (every easing, breakpoint, class is editable)
  • Responsive with automatic horizontal (desktop) and vertical (mobile) layouts at the md breakpoint
  • Embeddable mode with smart scroll capture that yields control back to the page when the rail ends

Considerations

  • Requires Next.js App Router and Tailwind CSS (v3 or v4) – not a standalone library
  • Only a timeline component; no other UI widgets included beyond the shell and theme switcher
  • The embed mode needs manual height assignment and may clip tall content if the container is too small

README quick start

Lifeline

A timeline component for the stories that unfold over time — a career, a company, a journey.

Lifeline lays milestones on a single rail: horizontal and scrubbed by scroll on desktop, vertical on mobile. Years carry events, links, and the people who mattered; media attaches as hover reveals or floating cards that expand into a lightbox. On first load, an intro draws the rail across the years.

It ships as a shadcn registry — the source lands in your codebase, so every easing, breakpoint, and class is yours to change.

Install

Starting from nothing? This gets you a page that runs, framing included:

npx shadcn@latest add evilrabbit/lifeline/page

Components, starter data, the shell, and a route at app/lifeline/page.tsx. If that route already exists, shadcn asks before touching it — answer no and nothing of yours is lost.

Already have a page? Take the shell without the route, so the rail still sits inset and aligned inside your own layout:

npx shadcn@latest add evilrabbit/lifeline/shell

Just want the data template? Pick the starter that matches your subject — each brings the component system plus a commented template file, and no framing:

npx shadcn@latest add evilrabbit/lifeline/personal   # a life, year by year
npx shadcn@latest add evilrabbit/lifeline/company    # founding to today
npx shadcn@latest add evilrabbit/lifeline/journey    # a bounded run, day by day

Or just the component system, no starter and no framing:

npx shadcn@latest add evilrabbit/lifeline/lifeline

The sun/moon toggle from the demo is its own item:

npx shadcn@latest add evilrabbit/lifeline/theme-switcher

Any item installs the components into components/lifeline/, the data helper into lib/lifeline-data.ts, adds the intro keyframes to your CSS, and installs lucide-react + next-themes. The registry is also served at https://evilrabbit.com/r/{name}.json if you prefer URLs.

Use

Define a timeline as milestones keyed by year, and render it:

import { Lifeline, LifelineLegend } from "@/components/lifeline"
import {
  LifelineFooter,
  LifelineNav,
  LifelineShell,
  LifelineStage,
} from "@/components/lifeline-shell"
import { defineLifeline } from "@/lib/lifeline-data"

const life = defineLifeline({
  slug: "web",
  name: "The World Wide We

Description

A timeline component for the stories that unfold over time. Ships as a shadcn registry.

Related repositories

Similar projects matched by category, topics, and programming language.

TanStack
Featured
TanStack GitHub avatar

router

TanStack Router is a type-safe, data-driven React router with built-in caching, prefetching, and nested layouts, while TanStack Start extends it into a full-stack SSR framework.

Web DevelopmentFrontend Frameworks
14,861
vercel-labs
Featured
vercel-labs GitHub avatar

scriptc

scriptc compiles ordinary TypeScript into small, fast native executables without needing Node.js, V8, or any JavaScript runtime in the binary.

Developer ToolsCode Quality & Build
1,985
Jakubantalik
Featured
Jakubantalik GitHub avatar

thinking-orbs

A React component library that renders six hand-tuned animated thought orb loading indicators on a plain 2D canvas, with two purpose-tuned sizes and automatic theme detection for AI and agent UIs.

AI & Machine LearningAI Agents
1,191