Architecture
Focus management, floating positioning, selection, virtualization, accessibility — 234 behavior engines hold it, framework-agnostic. Vue and React are complete renderers over them today; Svelte and Web Components consume the same engines through their own thin bindings — so a fix or a feature lands everywhere at once.
A complete renderer — first-class SFCs with <script setup>, auto-imported in Nuxt. The face this entire site is built on.
A complete renderer — the same components, same props, same behavior over the identical engines. The React parity proves the engine, not the framework, is the product.
Engine bindings today, being elevated to a full custom-element face — the framework-free path, and how Angular consumers adopt Carapace.
Each engine owns one hard problem — floating, focus-trap, roving-tabindex, virtual windowing — and is tested once, used by every framework face.
Keyboard navigation, focus management, and ARIA are handled where the behavior lives — not re-implemented, and forgotten, per component.
All source is JavaScript with JSDoc types — no compile step in your way, no type-only abstractions to fight.
Reusable logic hooks — forms, viewport, toasts, theming — that you compose into your own components, the same primitives the library uses.
One source of truth
This is a Vue face over the shared engines — but the props, behavior, and accessibility are identical on the React face — with Svelte and Web Components consuming the same engines through their own bindings. Drive it; the engine is what's responding.
Sample dashboard
Event volume
Pipeline
Adopt Carapace in Vue, React, or plain Web Components — or have us build your product on it. Let's talk.