Introduction

zits/ui is a set of beautifully designed, accessible components for Blazor that you copy into your app and own. It is the styled layer on top of Navius, a real headless primitive engine.

Two layers

Navius: the brain

Headless primitives that own ARIA roles, keyboard interaction, focus management, and a data-* state contract. No styling. The hard, stable half, shipped as a versioned dependency.

zits/ui: the helm

Tailwind components and an OKLCH token theme on top of the brain. Copy them in with the CLI and edit freely; every class is yours.

Why a separate engine?

Blazor can't synchronously touch the DOM: WebAssembly has no DOM and Server marshals interop asynchronously. So a correct focus trap, scroll lock, anchored positioning, or roving tabindex cannot be pure C#; the behaviour lives in a small JavaScript engine driven from C#. Every other Blazor component kit either skips this (so it isn't really accessible) or hides it. Navius builds it in the open; see How it works.