klyv-ui

Changelog List

Component

About

A list of product updates sorted newest first, for a public changelog page or a compact "what's new" popover, with entries since the reader's last visit marked as new.

Built with React and Tailwind. Copy the prompt and paste it into Claude Code, Cursor or Lovable: your agent adds Changelog List to your project and fits it to your theme.

Code

How Changelog List is used: the demo's code. The component's own source comes with a free account.

Usage.tsx

import {
  ChangelogList,
  type ChangelogEntry,
} from "@/components/ui/changelog-list";

const DAY = 86_400_000;
const daysFromNow = (days: number) => new Date(Date.now() + days * DAY);

// Synthetic release notes for a fictional product — no real company, no third-party marks.
const CHANGELOG: ChangelogEntry[] = [
  {
    id: "c4",
    date: daysFromNow(-1),
    version: "v2.14",
    title: "Workflows can now post to any webhook",
    tags: ["New"],
    body: "Point a workflow at any HTTPS endpoint. Payloads are signed, retried with backoff, and every delivery is listed with its response.",
  },
  {
    id: "c3",
    date: daysFromNow(-6),
    version: "v2.13",
    title: "Dashboards load twice as fast",
    tags: ["Improved"],
    body: "Charts now stream in as their queries finish instead of waiting for the slowest one.",
  },
  {
    id: "c2",
    date: daysFromNow(-15),
    version: "v2.12",
    title: "Fixed CSV exports with non-Latin column names",
    tags: ["Fixed"],
    body: "Exports are now UTF-8 with a byte-order mark, so spreadsheets open them correctly.",
  },
  {
    id: "c1",
    date: daysFromNow(-28),
    version: "v2.11",
    title: "SCIM provisioning for Team and Enterprise",
    tags: ["New", "Security"],
    body: "Create, update and deactivate members from your identity provider.",
  },
];

export default function ChangelogListDemo() {
  return (
    <div className="flex w-full items-center justify-center bg-canvas p-6 text-ink">
      <div className="w-full max-w-[560px] rounded-[var(--radius-card)] border border-line bg-surface p-5 shadow-[var(--shadow-card)]">
        <ChangelogList entries={CHANGELOG} unreadSince={daysFromNow(-10)} />
      </div>
    </div>
  );
}

More by klyv-ui

View all
  • Gantt Chart

    Gantt Chart

    68
  • Klyv Animated Beam

    Klyv Animated Beam

    55
  • Shader Canvas

    Shader Canvas

    54
  • Pareto Chart

    Pareto Chart

    49
  • Sunburst Chart

    Sunburst Chart

    28
  • Gooey Loader

    Gooey Loader

    26
  • Fluid Canvas

    Fluid Canvas

    26
  • Morphing Text

    Morphing Text

    23