Changelog
Release history for Warren UI.
0.13.1 — 2026-08-23
Impeccable polish over the themed surfaces: shiki code blocks legible on dark canvases
(per-[data-theme] dark span palettes), fumadocs chrome re-pinned square, pre-paint
restore moved into <body> (kills the React console trio), custom-themes example isolated
with target={null}, dead sun/moon toggle replaced by the real ThemeSelect in the sidebar
footer and home header, cross-tab storage sync (+2 tests), jade success re-hued away from
primary, grid-dot ink lifted on green-neon/dracula, copy chip solidified, Caps-Label scale
codified in DESIGN.md.
0.13.0 — 2026-08-23
Theme support: dark, jade, green-neon, and dracula join the parchment light palette as
token-for-token [data-theme] override blocks in warren-base (dot-grid ink is now the
--grid-dot token). New @warren/theme-select component applies a theme with optional
localStorage persistence; the docs site ships it in the demo header and nav with pre-paint
restore, and the Text-Grade law is enforced per theme by a unit gate.
0.3.0 — 2026-08-20
Impeccable critique round: the mono/tabular sweep, the micro-feedback pass, and the completed soft-tone token set close the DESIGN.md conformance gaps surfaced by the first heuristic audit; the five core mission-console primitives ship (Tooltip, Popover, Toast, Dialog, Command); and the docs homepage now leads with a live montage instead of prose.
New primitives
- Tooltip — hover/focus anchor popover for detail text.
- Popover —
PARAMS-style anchored panel with keyboard dismissal. - Toast — spike-style transient status announcement.
- Dialog —
SYSTEMmodal with focus trap and Escape close. - Command — Ctrl+K palette for dense-keyboard navigation.
- All five wired into the demo (Ctrl+K palette, SYSTEM dialog, PARAMS popover, spike toast) and documented on their own docs pages (41 pages total).
Design conformance (from the critique)
- Mono sweep —
font-monoadded where consumers rendered sans:statlabel,ledgeritem label + footer,tableheader. - Tabular sweep —
tabular-numsadded toledgercounts,tablecells,log-listtimestamps,bar-charttip values,stepperindices,badgebase. - Micro-feedback pass — button
active:press states, checkbox/switch/native-select hover borders, non-danger alertsrole="status", field erroraria-live="polite". - Token completion —
--primary-pale+ per-tone*-softfills codified inglobals.css; the heatmap/sparkline inlinecolor-mixhacks now reference tokens. - Switch — thumb slides via
translate-x+transition-transform(toggle, not data).
QA & distribution
- Smoke gate hardened to
shadcn add -y -o— all 36 registry items install and the consumer build passes. - 374 tests green across 49 files; 41 docs pages.
0.2.0 — 2026-08-20
Registry: 16 shadcn primitives + the shared @warren/tone item shipped, and the docs migrated
from Storybook to Fumadocs (Next.js 16).
Accessibility
- Tabs — WAI-ARIA roving keyboard navigation: Arrow keys wrap between tabs with automatic
activation,
Home/Endjump to the ends; only the active tab stays in the tab order. - CellGrid — interactive cells (
onCellClick) render as real<button>s witharia-label/aria-pressedinstead ofaria-hiddenspans. - Alert —
role="alert"now applies only to thedangervariant; other variants are plain static content. - ProgressRail — progress mode exposes
role="progressbar"witharia-valuenow(0–1); dots arearia-hiddenbecause the role carries the value. - Button — tone-variant hovers flatten to the neutral
mutedwell (was sub-AA on success/warning/primary), keeping the text-grade label.
API additions
- Panel —
headingLevel?: 1 | 2 | 3(default 2) for the title heading. - Tabs —
label?: stringaccessible name for the tablist (default"tabs"). - Progress —
label?: stringaccessible name (default"progress"). - ProgressRail —
label?: stringaccessible name for the progress gauge. - NativeSelect — wrapper is
w-full; the<select>fills it, so consumerw-fullsizing works. - Table —
bordered?: booleanadds the 2px ink outer frame. - Input / Textarea —
caps?: boolean(defaulttrue) controls the forced uppercase display; setfalsefor case-sensitive data entry. - Field —
descriptionId?: stringwires the hint/error to a control'saria-describedby.
Docs & spec
- Docs pages document every new API and the shared helpers (
sparkline.points(),bar-chart.scale()), plus theCellStatustype table. - Added
CHANGELOG.md(this page) and a Changelog entry to the docs nav. DESIGN.mdliterals reconciled with the implementation:badge-livedot is 6px, the progress-rail gate is 10px.- Dark mode decision documented: single light token set by design; consumers override tokens.
288 tests passing.