ChangelogEntry
Single changelog entry with date, optional version, optional tags, semantic type badge, and body slot — matches the two-column sticky layout of the /changelog page.
The ChangelogEntry component from @publier/shell renders one entry in a changelog feed. Use it inside MDX release notes to document individual sub-changes with semantic type badges. It mirrors the two-column sticky layout used by the auto-injected /changelog listing page.
Usage
import { ChangelogEntry } from '@publier/shell/components';
<ChangelogEntry date="2026-04-15" version="v1.0.0" type="feature" title="Publier v1 is out"> Full rewrite on Astro 6. See the [getting-started guide](/docs/get-started/introduction).</ChangelogEntry>
<ChangelogEntry date="2026-03-20" type="fix" title="Fixed build flake on Linux"> Resolved intermittent failures when the build could not write to `dist/`.</ChangelogEntry>Stack entries chronologically inside a <section> or <ol> — each one renders as its own semantic <article>.
Props
| Prop | Type | Default | Description |
|---|---|---|---|
date | string | required | ISO date (YYYY-MM-DD) of the change. Shown in the left column. |
title | string | required | Short title describing the change. Shown in the right column. |
version | string | undefined | Optional version label (e.g. "v1.2.3"). Shown below the date. |
tags | string[] | undefined | Category labels shown below the version (e.g. ["improvements"]). |
type | 'feature' | 'fix' | 'breaking' | 'security' | 'deprecation' | undefined | Semantic category — rendered as a colored badge in the left column. Takes precedence over tags when both are provided. |
Body content is passed as children and rendered inside the right column.
Behaviour
- Renders as a semantic
<article>element — stacks naturally inside an<ol>or<ul>. - The type badge is only rendered when
typeis provided, and uses a theme-aware color per category. - Version and tags are only rendered when provided.
- Left column metadata (date, version, tags/badge) is visually separated from the content by a thick themed left border.