Skip to content
navius

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 navius CLI 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