Web Components · Agent-legible contracts · Apache-2.0
The component foundation built for generative UI.
Standards-first ki-* web components that work in any framework, under
any brand. Agents read the same contract you do — and a guarded catalog keeps what
they render safe.
Rendered from the same token pipeline the package ships. Hover, focus, click — every
state below is the real state matrix.
ButtonsFormsFeedbackOverlaysData
Emphasis
PrimarySecondaryTertiaryQuaternaryGhost
Tone
NeutralSuccessDangerSuccessDanger
Size
xssmmdlgxl
States & slots
Disabled
With slots
<ki-button variant="primary" tone="success" size="md">
Save changes
</ki-button>
eu-westus-eastap-southRun the gate suiteProgressive rollout
Docs, manifests and the catalog derive from one source.
Onlineagent-legibleavailable
Guarded surface
Only catalog components and declared actions reach the renderer.
fail-closed
Agent contract
custom-elements.json + llms.txtsynced
Protocol adapter
Disposable around a neutral catalogA2UI
Focus for a tooltipOpen a dialog
Tokens, proven live
This page runs on @kimen/tokens. Flip it.
← live token values
Every color, radius and type size here resolves primitive → semantic → component.
Reassign the semantic layer and an entire product restyles — proven in CI, not in a
keynote.
Built for agentic development
Legible to agents, by contract.
The component contract is the single source of truth. Everything an agent needs ships
with the package — an API a capable agent cannot wire correctly from its description
alone is treated as a defect.
custom-elements.json
Machine-readable manifest of every prop, event, slot and part.
llms.txt
The whole library, summarized for language models.
@whenToUse / @whenNotToUse
Usage guidance on every component, in the contract itself.
@kimen/catalog
Schema-validated UI specs at the GenUI boundary — the neutral catalog agents emit
against.
Capability status
Consumer catalog registration: your own components behind a JSON facade, validated and rendered through the same fail-closed guardrail
Schema-constrained guarded renderer: untrusted UI specs render only through the neutral catalog, fail-closed
Changed-core mutation quality gate in hardening
A2UI protocol adapter: declarative A2UI messages render through the guarded renderer
MCP Apps adapter: Kimen surfaces reach MCP Apps hosts as self-contained ui:// resources rendered through the guarded renderer
AG-UI and json-render protocol adapters planned
Neutral runtime component catalog with schema-validated UI specs at the GenUI boundary
Machine-readable Web Components foundation with token-driven theming
Categories, not call-outs: “React-only kits” = component libraries coupled to one
framework; “classic WC kits” = web-component design systems without agent contracts.
Quality is a gate, not a promise
Done means gates exit 0.
No self-assessment — a deterministic script proves each gate, identically on a laptop
and in CI: bash scripts/gates/gates-suite.sh
real-browser
Three engines at release
Every component ships with real-browser tests, not JSDOM approximations.
axe-core: 0
Accessibility as a hard gate
Zero violations tolerated. WCAG 2.2 AA and EN 301 549 as the target.
<10 KB
Size budgets per component
Single-digit-KB budgets, checked on packed tarballs on every release dry run.
tokens-only
No hardcoded visual values
Stylelint-enforced: every visual value resolves from a --ki-* token.
RTL
Direction-agnostic by construction
Logical properties only — right-to-left support isn’t a variant, it’s the default.
mutation
Tests that test the tests
Changed-core mutation gating is part of the current hardening work.