About

@human-kit/ui is an open-source library of accessible, typed UI primitives for Svelte 5. It gives you the hard parts — semantics, keyboard interaction, focus management, and state — as unstyled building blocks you can shape into your own design system.

Principles

  • Headless. Components own behavior and accessibility, never appearance. You style them however you like; nothing fights your design.
  • Accessible by default. Each primitive implements a proven interaction pattern out of the box. See Accessibility.
  • Typed. Full TypeScript types for every prop, part, and event, so the editor guides you and refactors stay safe.
  • Composable. Primitives are exposed as small parts (Root, Trigger, Content, Item, …) that you assemble, rather than monolithic components with dozens of props.
  • Lean. Published as native ESM with per-component subpath exports, so bundlers only pull in what you actually import.

Built with

  • Svelte 5 and its runes reactivity model.
  • TypeScript end to end.
  • Floating UI for overlay positioning, with the library's own presence, focus, and layer-stack primitives on top.

The API and interaction contracts are inspired by Base UI and React Aria — two projects that set the bar for accessible, composable, headless primitives. @human-kit/ui adapts their patterns to feel native in Svelte, and owes a lot to the work behind them.

Status

The library is in public beta (1.0.0-beta). The API is close to stable, but small changes may still land before 1.0.0 — the Releases timeline tracks everything.

License & source

@human-kit/ui is MIT licensed. The source, issues, and contribution guide live on GitHub.