Radix UI
What is Radix UIโ
Radix ships two products: Radix Themes (a styled, batteries-included component library โ @radix-ui/themes) and Radix Primitives (low-level, unstyled/headless components). This page is about the primitives. Branded "Made by WorkOS," Radix adheres to WAI-ARIA design patterns and was shadcn/ui's original โ and, until July 2026, default โ primitive layer.
npm install radix-ui@latest
import { Popover } from "radix-ui";
The radix-ui package consolidates what used to be many individual @radix-ui/react-* packages into a single import surface.
Why we recommend itโ
- Accessible by default โ WAI-ARIA-compliant behavior, keyboard navigation, and focus management out of the box.
- Unstyled โ no visual opinions; style with Tailwind, CSS Modules, or plain CSS.
- Composable primitives โ small parts you assemble into your own components.
- Battle-tested โ the original foundation under shadcn/ui, widely used in production.
When to useโ
- You're on an existing shadcn/ui project scaffolded on Radix and want to stay consistent.
- You want a mature, widely adopted headless primitive layer.
- You're building a custom design system and want proven primitives.
When NOT to useโ
- Starting a new shadcn/ui project โ the default is now Base UI.
- You want ready-made styled components โ use MUI or shadcn/ui.
note
Radix is not deprecated. Under shadcn/ui it's now opt-in (pnpm dlx shadcn init -b radix), but it remains fully supported and continues to receive new components alongside Base UI.
Resourcesโ
- Radix UI
- Radix Primitives โ Getting Started
- Base UI โ the newer headless library from largely the same original team
- shadcn/ui โ built on Radix (opt-in) or Base UI (default)
- Headless UI Components โ overview and Radix-vs-Base-UI guidance