ComponentsData display

Release notes

A changelog: one entry per release with a date and version rail that sticks beside it on wide containers, a change-type tag on every change (added, changed, fixed, removed, deprecated, security — or your own) and a linkable anchor per release. Optionally grouped by type or filtered.

Native <ol> / <article> + Keep a Changelog types components/release-notes.tsxtheme · material · accent · density · font
  1. Version 3.8.0

    Saved views, v3.8.0

    Keep a filtered, sorted list one click away and share it with your workspace.
    • AddedSave any filtered list as a view
      Views keep filters, sort order and visible columns.
    • AddedShare a view with the workspace
    • ChangedFilters moved into a single bar above the list
    • FixedExport kept the previous column order
  2. Version 3.7.2

    Reminder fixes, v3.7.2

    • FixedReminders used the server time zone instead of yours
    • SecuritySession cookies now expire after 12 hours of inactivity
  3. Version 3.7.0

    Bulk edit, v3.7.0

    Change the owner, status or due date of up to 500 records at once.
    • AddedBulk edit from the list toolbar
    • DeprecatedThe v1 export endpoint
      It keeps working until 2027-03-31; move to /v2/exports.
    • RemovedThe legacy print layout

Installation

$ pnpm add @vamos-ui/react

The whole kit as one package — get updates by bumping the version. Add the styles to globals.css: @import "@vamos-ui/react/styles.css";

Usage

import { ReleaseNotes } from "@vamos-ui/react";

<ReleaseNotes releases={[
  { version: "3.8.0", date: "2026-11-10", title: "Saved views", changes: [
    { type: "added", title: "Save any filtered list as a view" },
    { type: "fixed", title: "Export kept the previous column order" },
  ] },
]} />

Type tags are words, not just colour; the tone only reinforces them.

The layout switches to the rail at a 42rem container width (container query), so it works in a narrow column too.

Examples

Grouped by type

groupBy="type" puts a sub-heading per type, Keep a Changelog style.

  1. Version 3.8.0

    Saved views, v3.8.0

    Keep a filtered, sorted list one click away and share it with your workspace.

    Added

    • Save any filtered list as a view
      Views keep filters, sort order and visible columns.
    • Share a view with the workspace

    Changed

    • Filters moved into a single bar above the list

    Fixed

    • Export kept the previous column order
  2. Version 3.7.2

    Reminder fixes, v3.7.2

    Fixed

    • Reminders used the server time zone instead of yours

    Security

    • Session cookies now expire after 12 hours of inactivity

Type filter

filter shows a toggle per type with counts; the number of releases shown is announced politely. anchorPrefix changes the ids.

Show3 releases shown
  1. Version 3.8.0

    Saved views, v3.8.0

    Keep a filtered, sorted list one click away and share it with your workspace.
    • AddedSave any filtered list as a view
      Views keep filters, sort order and visible columns.
    • AddedShare a view with the workspace
    • ChangedFilters moved into a single bar above the list
    • FixedExport kept the previous column order
  2. Version 3.7.2

    Reminder fixes, v3.7.2

    • FixedReminders used the server time zone instead of yours
    • SecuritySession cookies now expire after 12 hours of inactivity
  3. Version 3.7.0

    Bulk edit, v3.7.0

    Change the owner, status or due date of up to 500 records at once.
    • AddedBulk edit from the list toolbar
    • DeprecatedThe v1 export endpoint
      It keeps working until 2027-03-31; move to /v2/exports.
    • RemovedThe legacy print layout

Your own types

types maps your keys to a label and a Badge tone; href adds a link to the full notes.

  1. Version 1.4

    Offline drafts, v1.4

    • FeatureDrafts are kept on the device while offline
    • ImprovementThe editor opens 40% faster on large documents
    • FixPasted tables lost their header row
    Read the v1.4 notes

API

ReleaseNotes

PropTypeDefault
releases
Newest first.
Release[]—
types
Change types, merged over the six defaults. Key order is tag and filter order.
Record<string, { label?: string; tone?: BadgeTone }>—
groupBy
One tagged list, or a sub-heading per type.
"none" | "type""none"
filter / defaultTypes
Type filter above the list.
boolean / string[]false / all
headingLevel
Release heading level; type sub-headings are one below.
2 | 32
dateFormat
Rail date.
DatePreset | Intl.DateTimeFormatOptions"long"
anchors / anchorPrefix
"#" link per release; ids via releaseAnchor(version, prefix).
boolean / stringtrue / "v"
stickyRail / stickyTop
Rail sticks beside its release on wide containers; stickyTop clears a fixed navbar (also the scroll margin).
boolean / stringtrue / "1rem"
labels
Dictionary namespace "releaseNotes": type names, version, anchor, filter, shown, empty, readMore.
Partial<ReleaseNotesLabels>—

Release

PropTypeDefault
version / date
"3.8.0" (shown as v3.8.0) and YYYY-MM-DD.
string—
title / summary
Headline (default: the version) and lead.
ReactNode—
changes
The changes.
{ type; title; description? }[]—
href
Full notes — adds a "Read the v… notes" link.
string—
id
Anchor id override.
string—