v0.6.0 Now with Alpine/Laravel + Qwik adapters

Devoid
of style.

45+ Lit 3 web components with zero visual CSS.
Theming flows through tokens. You own the style.
Use a modern theme with clean defaults or roll your own.

$ npm i @voidable/ui @voidable/theme
One library. Every framework.
React Solid Vue Svelte Angular Hotwire Alpine LiveView Qwik Astro Lit Vanilla
Foundation

Built on a single
architectural decision.

Shadow DOM solves encapsulation. Voidable solves the opposite problem: components that are deliberately transparent to their environment.

Light DOM rendering

No Shadow DOM barrier. Your CSS reaches into every component without ::part() incantations.

Token-driven theming

Three-layer token system. Override CSS custom properties; the entire library remaps.

Federation-ready

Singleton-safe customElements.define(). Same library loads once across federated modules.

Embedded-grade bundles

Pairs with Solid + UnoCSS for bundle sizes that are IoT friendly. Tree-shakes to component-level granularity.

Agent-friendly markup

Semantic void-* custom elements with reflected attributes. Stable selectors for Playwright, AI agents, screen readers.

Sharp / curvy shapes

data-shape="sharp" zeros every radius globally or locally. Brand toggle without CSS rewrites.

Theming

Tokens as
the only API surface.

Three layers. Primitives are raw: color scales, spacing, type, radii. Semantic tokens map to roles: --void-color-bg, --void-color-text-secondary, --void-color-border-strong. Component CSS references only tokens. Override any layer; the whole library follows.

--void-color-bg #000000
--void-color-bg-secondary #0a0a0a
--void-color-text stone-100
--void-color-border white / 14%
--void-color-success #22c55e
--void-radius-lg 12px
--void-shadow-md white-glow
/* Override one variable.
   Watch the entire library remap. */

:root {
  --void-color-accent: #3b82f6;
  --void-color-accent-hover: #2563eb;
  --void-radius-md: 8px;

  --void-color-bg: #0a0e1a;
  --void-color-text: #e5e7eb;
}

[data-shape="sharp"] {
  --void-radius-md: 0;
  --void-radius-lg: 0;
}
Components
Buttons
Default Success Error Warning Info Notice
Default Success Error Warning Info Notice
Badges
Default Success Warning Error Info Notice Highlight
Default Success Warning Error Info Notice Highlight
Form
Product updates Marketing emails Security alerts
Back Continue
45+
web components
10
framework adapters
0
visual CSS in core
38.9 kB
gzipped runtime

Ship structure.
Create style.

Read the docs, copy the install line, render a button. Ten minutes.

Read the docs Star on GitHub