Zero dependencies
Plain ES2022 modules with no runtime package, bundler, or framework to maintain.
UI infrastructure for business software
Thirty-plus accessible, themeable components in plain ES modules — no framework, no build step, no runtime dependencies.
Built forWhy Zx
Practical building blocks for high-volume workflows, designed to stay out of the application’s way and to survive a decade of business software.
Plain ES2022 modules with no runtime package, bundler, or framework to maintain.
Keyboard-complete controls built to the WAI-ARIA Authoring Practices patterns.
Semantic light, dark, cozy, and compact design tokens throughout the whole set.
Inputs, data views, forms, overlays, and complete application layout primitives.
The zx-zeyos binding generates tables, forms, and pickers from a live ZeyOS schema.
Built on dialog, popover, ElementInternals, and other modern browser APIs.
Live components
This showcase imports Zx directly from source. Filter, sort, pick a date, and fire a toast — then switch the theme in the header and watch every token follow.
Quick start
Import the modules in a modern application, or drop the global bundle into a classic ZeyOS screen. Both ship the same API.
<link rel="stylesheet" href="/assets/zx.css">
<script type="module">
import { Toggle } from '/assets/zx.esm.js';
const toggle = new Toggle(null, {
label: 'Notifications'
});
document.body.append(toggle.toElement());
</script>
<link rel="stylesheet" href="/assets/zx.css">
<script src="/assets/zx.global.js"></script>
<script>
const toggle = new zx.Toggle(null, {
label: 'Notifications'
});
document.body.append(toggle.toElement());
</script>