Docs
Installation
A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its button, badge dependencies and any missing npm packages, and installs them straight into your project.
npx shadcn add https://staaarter.com/r/split-milestone-changelog.jsonPrefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/changelog/changelog2.tsx instead.
Usage
The file also exports changelog2Demo, 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 { Changelog2, changelog2Demo } from "@/components/blocks/changelog/changelog2"; export default function Page() { return <Changelog2 {...changelog2Demo} />; }
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| heading | string | "Release milestones" | Section heading. |
| description | string | none | Section intro text. |
| releases | SplitRelease[] | none | Release entries, rendered newest first in array order. |
| className | string | none | Extra classes for the outer section element. |
Types
type MetricItem = { value: string; label: string }; type ButtonItem = { label: string; href?: string; variant?: "default" | "secondary" | "outline" | "ghost" | "link" | "destructive"; }; type SplitRelease = { version: string; date: string; latest?: boolean; blurb: string; highlights: string[]; metrics?: MetricItem[]; buttons?: ButtonItem[]; };
Behavior notes
- date is a plain display string supplied by the caller, never computed at render time, so server and client (and the static thumbnail) always agree.
- The "Latest" badge only renders when a release explicitly sets latest: true; nothing infers it from array position or date.
- metrics and buttons are both optional and independent: a release can show highlights with no metrics row, no buttons, or neither, without leaving gaps.
- Every button is decorative: it renders through Button's render={<Link/>} prop when an href is supplied (or a plain, non-interactive button when it isn't) and never wires up a click handler, since there is no real release-notes backend behind this demo.
More Changelog Blocks
View all →Changelog Release Feed
Release feed cards with aligned change-type labels and an optional CTA per card.
Grouped Changelog Board
Releases grouped under bold month headings with aligned version and description columns.
Milestone Changelog Timeline
Vertical timeline of releases with a connecting line, version badges, and tone-coded change types.
Minimal Text Changelog
Ultra-plain, text-only changelog with no badges, cards, or borders.
Categorized Release Notes
Per-release changes grouped into Added, Changed, and Fixed sub-sections.
Featured Release Changelog
The latest release highlighted in a large featured card, older releases condensed below.