
WorkOS — Unstyled, accessible primitives that quietly power half of modern React.
Modulz built Radix Primitives starting in 2019 to ship unstyled, accessible component primitives for React. WorkOS acquired Modulz in 2022 and continues to maintain Radix as open source. shadcn/ui, Vercel's design system, and many internal design systems build on Radix Primitives.
WorkOS-supported, open source under MIT. Active maintainer team with a measured release cadence. Radix Themes (a styled layer) ships alongside the unstyled Primitives for teams that want both.
The identity-bearing decisions, rendered. Names and values are illustrative — refer to the system's official tokens reference for the canonical, current set.
Primitives
No tokens — bring your own theme
Radix Colors gray.1
Lightest gray (Radix Colors package)
Radix Colors blue.9
Solid brand color step
Radix Themes accent.9
Primary action (Themes layer)
Radix Themes radius
Configurable global radius
Radix Themes scaling
Global density factor
The full picture — palette, type ramp, spacing grid, radius, elevation and motion, restated in our own structure from Radix UI's public references. Factual values for study; the official docs remain canonical.
Indigo 9 / Accent
Default accent step 9 (solid backgrounds)
--indigo-9
Gray 12 Text
High-contrast text (gray scale step 12)
--gray-12
Gray 11
Low-contrast text (step 11)
--gray-11
Gray 1 Background
App background (step 1)
--gray-1
Gray 3 Surface
Component background (step 3)
--gray-3
Gray 6 Border
Subtle borders (step 6)
--gray-6
Red 9
Errors
--red-9
Green 9
Success
--green-9
-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif
Weights: 400, 500, 700
Base unit 4px (space-1)
Shadow 3
Exactly what ships in radix-ui-design.md — plus the same token snapshot restated as CSS custom properties. Copy either, or feed the Markdown straight to an AI coding tool as styling context.
# Radix UI — Design Style Reference
> **Unofficial, community-authored reference.** Compiled by [designsystems.one](https://www.designsystems.one). Not affiliated with, endorsed by, or sponsored by WorkOS. "Radix UI" and related marks belong to their respective owners. This document describes publicly observable style attributes in original words — it contains no copied documentation, logos, icon artwork, or original token files. Always defer to the official source for canonical, current values.
**System:** Radix UI
**Owner:** WorkOS
**Official documentation:** https://www.radix-ui.com/
**Visual character:** The 12-step scale doctrine: every hue graded for exact use, accessibility encoded in the numbers, aesthetics left to you.
---
## Summary
Unstyled, accessible primitives that quietly power half of modern React.
_Confidence: high. Values are drawn from well-documented public token references._
## Color tokens
| Color | Value | CSS variable | Role |
| --- | --- | --- | --- |
| Indigo 9 / Accent | `#3e63dd` | `--indigo-9` | Default accent step 9 (solid backgrounds) |
| Gray 12 Text | `#1c2024` | `--gray-12` | High-contrast text (gray scale step 12) |
| Gray 11 | `#60646c` | `--gray-11` | Low-contrast text (step 11) |
| Gray 1 Background | `#fcfcfd` | `--gray-1` | App background (step 1) |
| Gray 3 Surface | `#f0f0f3` | `--gray-3` | Component background (step 3) |
| Gray 6 Border | `#d9d9e0` | `--gray-6` | Subtle borders (step 6) |
| Red 9 | `#e5484d` | `--red-9` | Errors |
| Green 9 | `#30a46c` | `--green-9` | Success |
## Typography
- **Body:** Project-defined (Themes default: system) — weights 400, 500, 700 — `-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif`
## Type scale
| Step | Size | Line height |
| --- | --- | --- |
| size-8 | `35px` | `40px` |
| size-6 | `24px` | `30px` |
| size-4 | `18px` | `26px` |
| size-3 | `16px` | `24px` |
| size-2 | `14px` | `20px` |
| size-1 | `12px` | `16px` |
## Spacing
Base unit: `4px (space-1)`
Scale: `4px` · `8px` · `12px` · `16px` · `24px` · `32px` · `40px` · `48px`
## Corner radius
| Name | Value |
| --- | --- |
| radius-2 | `4px` |
| radius-3 | `6px` |
| radius-4 | `8px` |
| full | `9999px` |
## Elevation / shadows
| Name | Value |
| --- | --- |
| shadow-3 | `0 2px 3px -2px rgba(0,0,0,0.3), 0 3px 12px -4px rgba(0,0,0,0.15)` |
## Quick start (CSS)
```css
/* Radix UI — illustrative tokens, restated as CSS custom properties.
Unofficial reference by designsystems.one; values are indicative, not
canonical. Official reference: https://www.radix-ui.com/ */
:root {
/* Color */
--indigo-9: #3e63dd; /* Default accent step 9 (solid backgrounds) */
--gray-12: #1c2024; /* High-contrast text (gray scale step 12) */
--gray-11: #60646c; /* Low-contrast text (step 11) */
--gray-1: #fcfcfd; /* App background (step 1) */
--gray-3: #f0f0f3; /* Component background (step 3) */
--gray-6: #d9d9e0; /* Subtle borders (step 6) */
--red-9: #e5484d; /* Errors */
--green-9: #30a46c; /* Success */
/* Typography */
--font-body: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
/* Type scale */
--text-size-8: 35px /* line-height 40px */;
--text-size-6: 24px /* line-height 30px */;
--text-size-4: 18px /* line-height 26px */;
--text-size-3: 16px /* line-height 24px */;
--text-size-2: 14px /* line-height 20px */;
--text-size-1: 12px /* line-height 16px */;
/* Spacing */
--space-1: 4px;
--space-2: 8px;
--space-3: 12px;
--space-4: 16px;
--space-5: 24px;
--space-6: 32px;
--space-7: 40px;
--space-8: 48px;
/* Radius */
--radius-radius-2: 4px;
--radius-radius-3: 6px;
--radius-radius-4: 8px;
--radius-full: 9999px;
/* Elevation */
--shadow-shadow-3: 0 2px 3px -2px rgba(0,0,0,0.3), 0 3px 12px -4px rgba(0,0,0,0.15);
}
```
## Origin
Modulz built Radix Primitives starting in 2019 to ship unstyled, accessible component primitives for React. WorkOS acquired Modulz in 2022 and continues to maintain Radix as open source. shadcn/ui, Vercel's design system, and many internal design systems build on Radix Primitives.
## Governance
WorkOS-supported, open source under MIT. Active maintainer team with a measured release cadence. Radix Themes (a styled layer) ships alongside the unstyled Primitives for teams that want both.
## Known for
- Accessibility correctness — Radix Primitives are often the reference for proper focus management, ARIA, and keyboard handling in React.
- Composition pattern — every Radix component is a tiny set of building blocks (`Dialog.Root`, `Dialog.Trigger`, `Dialog.Content`) that consumers compose.
- Tiny per-primitive bundle size relative to the accessibility behavior they ship.
## Underrated
- Radix Colors — a separate package shipping accessible color scales with light/dark/alpha pairs. Underused outside the Radix ecosystem.
- Radix Icons — a clean, consistent SVG icon set that pairs naturally with the Primitives.
## Watch out for
- Radix is unstyled — you're responsible for the styling layer (Tailwind, CSS, CSS-in-JS). For teams that just want components that look right, shadcn/ui or Radix Themes is the better entry.
- The composition API is excellent but unfamiliar to teams used to traditional `<Modal isOpen={x} onClose={y}>` props.
## Components worth studying
- **Dialog** — Modal with focus trap, ESC handling, scroll lock, and overlay correctness.
- **DropdownMenu** — Keyboard-navigable menu with submenus, checkboxes, and radio groups.
- **Select** — Accessible select with searchable, scrollable, and grouped variants.
## When to choose Radix UI
Use Radix Primitives whenever you're building your own component library — they handle the hard parts (accessibility, focus, keyboard) so you can focus on visual design. If you don't want to think about styling at all, use Radix Themes or shadcn/ui (which wraps Radix with Tailwind).
## Apply this style with an AI tool
Paste this into your AI coding assistant as a direction, then iterate:
> Design in the spirit of Radix UI by WorkOS — Unstyled, accessible primitives that quietly power half of modern React. Character: The 12-step scale doctrine: every hue graded for exact use, accessibility encoded in the numbers, aesthetics left to you. Use a primary colour near #3e63dd, the typeface "Project-defined (Themes default: system)" (or a close equivalent), corner radius around 4px, a spacing rhythm on a 4px (space-1) base. Lean into what it's known for: Accessibility correctness — Radix Primitives are often the reference for proper focus management, ARIA, and keyboard handling in React. Match the intent, not the pixels; adapt it to my product rather than cloning it.
## Official references
- [Radix Primitives](https://www.radix-ui.com/primitives)
- [Radix Themes](https://www.radix-ui.com/themes)
- [Radix on GitHub](https://github.com/radix-ui/primitives)
---
_Generated by [designsystems.one](https://www.designsystems.one/design-systems/radix-ui) — a catalogue of public design systems. Style facts are reported for reference and education; adapt them to your own product. Report issues or takedown requests via the site._
If you're evaluating this system
Use Radix Primitives whenever you're building your own component library — they handle the hard parts (accessibility, focus, keyboard) so you can focus on visual design. If you don't want to think about styling at all, use Radix Themes or shadcn/ui (which wraps Radix with Tailwind).