For teams that want headless building blocks but prefer a different primitive toolkit than Radix UI, Reakit is a solid alternative centered on accessible, unstyled components. It’s geared toward developers who like to wire up behavior with explicit state and hooks, then apply a fully custom visual system on top.
Reakit’s approach fits design-system work where you need granular control over interactions and structure without inheriting a design language. Compared with a more opinionated component library, it keeps the surface area focused on behavior, allowing styling to be dictated entirely by your own tokens, CSS architecture, and component standards.
This makes it a good option when the UI needs to match a brand precisely, or when building reusable internal primitives that multiple apps will consume. The trade-off versus higher-level alternatives is that you’ll still do the assembly work: composing primitives, creating variants, and maintaining patterns over time.
If Radix UI is close to what you want but you’re optimizing for a hooks-driven, low-level workflow, Reakit is worth considering.