Releases
Navius is an early-stage, open-source project. The behaviour contract is intended to be additive and backward compatible.
August 2026: Drawer and Carousel keep their clicks
Published August 8 as Navius.Primitives 0.3.0-preview.6.
Every control inside a Drawer was dead. The sheet-swipe engine took pointer capture on pointerdown to own the drag-to-dismiss gesture. Pointer capture retargets the compatibility mouse events — and therefore click — to the capturing element, so a press on a button inside the drawer dispatched its click on the panel instead: buttons, links, and form fields inside the sheet never fired, Drawer Close included, leaving Escape, an outside press, or a drag as the only ways to close it. The Carousel viewport had the identical defect, killing any control inside a slide.
Both engines now track the press and claim the pointer only once it has travelled past a threshold. A tap keeps its click on the real target; a drag still engages from anywhere on the sheet or slide, which a "skip the gesture when it starts on a control" guard would have given up. Two smaller Drawer defects went with it: a press inside the sheet used to leave the inline transition: none behind, permanently disabling the open/close animation, and a dismissed sheet leaked its drag transform into the next open when the popup stays mounted.
July 2026: Initial release
The initial release is the complete public cut of Navius: the headless primitive brain, the JavaScript engine, the copy-paste registry path, the standalone motion package, Message Scroller, and the parity primitives for date, color, file, token, and structure families.
The headless brain
- The full primitive set, behavior-complete and unstyled: overlays, menus, form controls, fields, selection primitives, utilities, and Navius extras.
- The JavaScript engine: focus trap, scroll lock, anchored positioning without Floating UI, dismissable layers, roving focus, body teleport, size observers, constraint validation, carousel, sheet swipe, and more.
- Controlled and uncontrolled state across stateful primitives, plus the discrete
data-*state contract for styling and animation. - The
naviusCLI and JSON registry for copy-paste distribution through the sibling zits/helm repository. - Verified in a real browser with the Playwright suite and by package/unit tests for the motion engine.
Message Scroller
- A managed scroll region for conversational transcripts (Message Scroller): anchored turns, live-edge follow that releases the moment the reader scrolls, and prepend-safe history keyed on stable message ids. The scroll hot path runs entirely in the engine, so transcript rows never rerender on scroll or stream.
Motion engine (M0 to M3)
- A standalone Blazor motion engine: a closed-form C# spring solver bakes physics into CSS
linear()easings that animate on the compositor, with zero per-frame interop. It holds no reference to the primitives package. - The core toolkit: springs, presence, gestures, and the micro-interaction pack.
- Auto-Animate: one attribute FLIPs every add, remove, and reorder of a list's children, and the FLIP can ride a baked spring.
- The orchestration wave: staggered sequences, in-view reveals, and a spring-driven selection indicator.
- Height Animation: an overflow-clipped container that tweens its height on a collapse, an expand, or a content-size change.
Parity primitives
- Date and time family: segmented spinbutton editors Date Input and Time Input, plus the Time Picker and Date Range Picker that pair them with a popover.
- Token and value inputs: the caret-stable Masked Input and Currency Input, the chip-based Tag Input, and the star-radiogroup Rating.
- Structure and interaction: the HSVA Color Picker, a drag-and-drop File Upload, Sortable with pointer drag plus an APG grab-and-move keyboard model, and Tree with the full WAI-APG TreeView.
- A Keyboard Shortcuts service: an injectable global chord registry with synchronous
preventDefault, cross-platformmodchords, and scope stacking.