Changelog feed
Release notes you can filter, open in place, and scroll through month by month.
Preview
Changelog feed preview
Live · keyboard ready
Changelog
Halden 4.12 shipped on September 18, 2026
September 2026
- Choose two to five columns for each breakpoint.
- Drag an image and the columns rebalance while you move it.
- Captions fall back to the image alt text.

Gallery by Oda Lindqvist Ceramics, Bergen
August 2026
July 2026
June 2026
That is everything since Halden 4.5 in June.
When to use
- A product changelog or release notes page grouped by month.
- Release notes with type filters such as features, fixes, and improvements.
- Changelogs that should offer an email subscribe action in the header.
When not to use
- Use timeline for a short vertical list of events without filters.
- Use accordion for plain expandable content that is not dated.
shadcn CLI
Also installs (2)
- manicat-foundation
- copy-button
Manual install(+)
registry.jsonjson
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "changelog-feed",
"type": "registry:block",
"title": "Changelog feed",
"description": "Release notes you can filter, open in place, and scroll through month by month.",
"categories": [
"blocks"
],
"dependencies": [
"lucide-react",
"motion"
],
"registryDependencies": [
"https://manicat.viraza.net/r/manicat-foundation.json",
"https://manicat.viraza.net/r/copy-button.json"
],
"files": [
{
"path": "registry/blocks/changelog-feed/changelog-feed.tsx",
"type": "registry:component",
"target": "@components/manicat/blocks/changelog-feed/changelog-feed.tsx"
},
{
"path": "registry/blocks/changelog-feed/changelog-feed.module.css",
"type": "registry:component",
"target": "@components/manicat/blocks/changelog-feed/changelog-feed.module.css"
},
{
"path": "lib/media.ts",
"type": "registry:lib",
"target": "@components/manicat/lib/media.ts"
},
{
"path": "registry/components/copy-button/copy-button.tsx",
"type": "registry:component",
"target": "@components/manicat/copy-button/copy-button.tsx"
},
{
"path": "registry/components/copy-button/copy-button.module.css",
"type": "registry:component",
"target": "@components/manicat/copy-button/copy-button.module.css"
},
{
"path": "lib/use-copy-feedback.ts",
"type": "registry:lib",
"target": "@components/manicat/lib/use-copy-feedback.ts"
}
],
"docs": "Docs and live preview: https://uiarc.dev/components/blocks/changelog-feed",
"meta": {
"tier": "free",
"kind": "block",
"docs": "https://manicat.viraza.net/components/blocks/changelog-feed",
"markdown": "https://uiarc.dev/components/blocks/changelog-feed/markdown"
}
}Usage
Install the component, then copy this into your app. Change the content and the props to fit your screen.
example.tsxtsx
"use client";
import { ChangelogFeed } from "manicat/registry/blocks/changelog-feed/changelog-feed";
export function ChangelogFeedExample() {
return <ChangelogFeed />;
}
Examples
Real screens rather than isolated props. Switch to Code to copy a whole example into your project.
Product changelog A month-by-month feed of what changed.
Product changelog
A month-by-month feed of what changed. preview
Live · keyboard ready
What's new
Everything we shipped this quarter.
September 2026
- Choose two to five columns for each breakpoint.
- Drag an image and the columns rebalance while you move it.
- Captions fall back to the image alt text.

Gallery by Oda Lindqvist Ceramics, Bergen
August 2026
July 2026
June 2026
That is everything since Halden 4.5 in June.
product-changelog-a-month-by-month-feed-of-what-changed-.tsxtsx
"use client";
import { ChangelogFeed } from "manicat/registry/blocks/changelog-feed/changelog-feed";
export function ChangelogFeedProductExample() {
return <ChangelogFeed title="What's new" subtitle="Everything we shipped this quarter." />;
}
Keyboard interactions
| Keys | Action |
|---|---|
| Escape | Cancels the subscribe form and returns to the Subscribe button. |
Accessibility
- Each entry row is a button with aria-expanded and aria-controls pointing at its detail panel.
- Filter chips are toggle buttons with aria-pressed, and the visible count is announced in a polite status region.
- The month nav marks the current month with aria-current, and the scroll area is focusable with an aria-label.
Motion
- Entries open in place on a spring while the chevron rotates; the month label slides in the scroll direction.
- The subscribe control morphs from button to form to a drawn check with a short blur crossfade.
- Reduced motion makes these changes instant.
Responsive behavior
- Below 640px the header stacks, rows move date and type above the text, and the scroller drops from 560px to 520px.
- Below 480px month counts and the shown count are hidden so the month nav fits on one line.
- Hover styles apply only on hover-capable fine pointers.
Performance
- The feed scrolls inside a fixed-height area; entries are not virtualized, so paginate or load older months on demand.
- Scroll tracking for the month bar is batched to one requestAnimationFrame, and a ResizeObserver resyncs it on resize.
Notes for AI
- Use for a product changelog or release notes page.
- Replace the entries array and the imported sample images with data from your release notes source or CMS.
- The subscribe submit only changes local state; post the email to your mailing list provider.