Radix UI
Unstyled, accessible React primitives (dialogs, dropdowns, popovers) that handle the annoying keyboard/focus-trap edge cases for you. Development has slowed since the WorkOS acquisition, but still the safe default for existing projects.
What is Radix UI?
Radix UI is a library of unstyled, accessible React component primitives, dialogs, dropdowns, popovers, tooltips, tabs, and more, that handle the genuinely hard parts of building UI components correctly: keyboard navigation, focus trapping, ARIA attributes, and screen reader behavior. You bring your own styling (commonly Tailwind), Radix handles the interaction and accessibility logic underneath. It's the foundation a lot of popular component libraries, including shadcn/ui, are built directly on top of.
Key features
- Unstyled primitives, so your visual design isn't fighting a library's default look
- Correct keyboard navigation and focus management baked into every component
- ARIA-compliant out of the box, handling accessibility details most teams would get wrong building from scratch
- Composable API that lets you customize component structure without forking the library
- Widely adopted as the base layer under other component systems, notably shadcn/ui
Who it's for
A safe default for any React project that needs interactive components (menus, dialogs, tooltips) built correctly the first time, especially if accessibility compliance matters. Development has slowed since the WorkOS acquisition, so for new projects it's worth checking whether shadcn/ui (which wraps Radix with styling already applied) gets you there faster, but for existing projects already built on it, it remains a safe, stable choice.
Pricing
Free and open-source, no paid tier.