Changelog

The notable changes to zits/ui and the Navius brain. Authored in markdown, rendered with Markdig.

July 2026: Initial release

The initial release is the full public cut of zits/ui: the styled helm, the Navius brain it depends on, the registry/CLI distribution path, the docs site, chat components, motion opt-ins, the parity push, and the runtime theme engine.

Component catalog

The complete styled set. zits/ui ships the full styled catalog as copy-paste source you own: every accessible primitive-backed component (Checkbox, Radio Group, Select, the menus, Tooltip, Popover, Slider, Toast, and more), the common layout and display pieces (Alert, Table, Pagination, Breadcrumb, Skeleton), and the heavier surfaces (Calendar, Carousel, Command, Data Table, Date Picker, Resizable, Sidebar, Drawer).

The Navius brain. Behind every interactive component is a headless, accessible primitive engine spanning ARIA, keyboard, focus, and a data-* state contract, driven from C# over a small dependency-free JavaScript engine for focus trap, anchored positioning, roving focus, dismissable layers, teleport, and more.

The styled helm. Tailwind components and an OKLCH token theme sit on top of the brain. The helm keeps familiar part names, but the underlying behavior stays in Navius.

Docs and distribution

This docs site. Built with the components it documents: every live preview is a real Blazor component running in WebAssembly. The site uses the Tailwind v4 standalone CLI, a command palette, a Blocks gallery, and a Markdig content pipeline.

Registry and CLI. The navius CLI and JSON registry distribute both styled helm source and the required brain primitives. The registry includes the full component set, cn, core primitives, chat, button, and the theme engine.

Chat and assistant UI

Chat set. A conversation kit for assistant and messaging UIs: Message, Message Scroller, Bubble, Attachment, and Marker, alongside the Scroll Fade and Shimmer helpers. The Message Scroller anchors turns near the top, follows the live edge until the reader scrolls away, preserves position when older history is prepended, and jumps to a message on demand.

Input, structure, and charts

Input families. Fourteen styled surfaces over Navius primitives, each with a real interactive preview: Date Input, Time Input, Time Picker, Date Range Picker, Color Picker, File Upload, Rating, Masked Input, Currency Input, Tag Input, Split Button, Multi Select, Sortable, and Tree.

Charts. Hand-rolled SVG charts cover bar, line, area, pie, donut, radar, radial bar, and scatter. They share ChartConfig, cascaded --color-<key> tokens, and zero JavaScript chart dependencies.

Timeline and Typography. A presentational Timeline and a Typography component round out the display primitives, wired to the same token system as the rest of the helm.

Dialog Service. ZitsDialogService lets an app await dialogs like function calls: ConfirmAsync, AlertAsync, and ShowAsync, rendered through one ZitsDialogOutlet on top of the brain's focus trap, scroll lock, and dismiss layer.

Motion

Motion package integration. Contract-based opt-ins make motion one class away. The Motion page documents the helm touch points and preset tiers, while the zero-JS baked-spring linear() easings ship as a static stylesheet.

Runtime theme engine

Generated theme CSS. ThemeStylesheet.Generate() writes zits-theme.css from C# using deterministic OKLCH ramps, fixed block order, invariant culture, and a committed-file drift guard.

Six-axis customizer. ZitsThemeService persists mode, base gray, primary, radius, font, and style recipe to localStorage, mirrors them to data-zits-* attributes, and restores full JSON selections before paint through zits-theme-init.js.

Switcher and scopes. ZitsThemeSwitcher provides a live popover customizer with a copyable CSS export. ZitsThemeScope lets any subtree carry its own theme, including forced light and forced dark islands.

Token fixes. The base token file defines --chart-1 through --chart-5 and font-family tokens so charts and typography have documented defaults.