Staaarter

Version Rail Release Timeline

A two-column release feed: a sticky monospace rail lists every version, clicking one filters the main list down to just that release (clicking it again, or the All pill, resets the filter). Each release shows its tone-coded changes, an accent-bulleted highlight list, and an optional release-notes link.

By Staaarter Team
Changelog
Docs
Live preview

Docs

Installation

A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its badge, button dependencies and any missing npm packages, and installs them straight into your project.

npx shadcn add https://staaarter.com/r/version-rail-release-timeline.json

Prefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/changelog/changelog26.tsx instead.

Usage

The file also exports changelog26Demo, the exact props behind the preview above. Spread it to get a working section in one line, then replace it with your own data.

import { Changelog26, changelog26Demo } from "@/components/blocks/changelog/changelog26";

export default function Page() {
  return <Changelog26 {...changelog26Demo} />;
}

Props

PropTypeDefaultDescription
headingstring"Release history"Section heading.
descriptionstring"Every release, filterable by version."Section subheading.
releasesChangelog26Release[]noneList of releases shown in the rail and the main feed.
classNamestringnoneExtra classes for the outer section element.

Types

type Changelog26ChangeType = "added" | "changed" | "fixed" | "removed";

interface Changelog26Change {
  id: string;
  type: Changelog26ChangeType;
  text: string;
}

interface Changelog26Release {
  id: string;
  version: string;
  date: string;
  changes: Changelog26Change[];
  highlights: string[];
  noteHref?: string;
}

Behavior notes

  • `"use client"` block with real interactivity: a real `useState<string | null>` selected-version filter drives which releases render in the main list; clicking the active version or the All pill clears it.
  • Demo props live in a sibling `changelog26.demo.tsx` (no directive) per the client-component demo-file-split rule, since this component itself is `"use client"`.
  • The release-notes link is a real `<Link>` to a placeholder anchor href, not a live page; no backend action is implied anywhere in this block.