@sigx/zero · v0.2.0-beta.1

Zero

Headless, accessible compound components that render a stable, machine-readable anatomy and no styling — and design systems as pure data, compiled to plain layered CSS. Swap the whole look of an app with one import; generate a new one against the published manifest.

Unstyled, by contract

Every part renders data-scope / data-part / data-state and nothing else. No classes, no inline styles — the anatomy is a machine-readable contract a stylesheet selects on.

One two-way model prop

model={() => state.open} binds a signal property both ways. No value / defaultValue / onValueChange triplets — a named model per extra piece of state when a component has more than one.

Native platform first

<dialog> and the top layer instead of a Portal, the popover attribute, <details> disclosure, real form inputs that post before hydration. The platform does the work; zero adds the anatomy.

A design system is data

Typed tokens and per-part recipes, compiled by @sigx/zero-kit into plain layered CSS. Swap the whole look of an app by swapping one import; keep the components.

Generatable, and validated

The anatomy manifest ships as JSON with ready-made selectors, so a design system can be generated against it — and sigx zero:validate checks token completeness, WCAG contrast and state coverage before it ships.

Typed to the design system

One import of a design system’s generated /register module narrows every color, size and variant prop to exactly what its compiled CSS answers to. Or use its ./components module for vendor-named props.

Core
sigx
Router
@sigx/router
Store
@sigx/store
Use
@sigx/use