explaingit

radix-ui/primitives

Analysis updated 2026-06-21

18,886TypeScriptAudience · developerComplexity · 2/5Setup · easy

TLDR

A library of unstyled, accessible React UI components, dialogs, dropdowns, tooltips, tabs, with all keyboard navigation and screen reader support built in, ready for you to style however you want.

Mindmap

mindmap
  root((Radix Primitives))
    Components
      Dialogs modals
      Dropdowns menus
      Tooltips tabs
      Checkboxes radios
    Accessibility
      Keyboard navigation
      Screen reader support
      Focus management
    Design Philosophy
      Unstyled by default
      Bring your own CSS
    Audience
      React developers
      Design system builders
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Build a custom design system for your React app with accessible dropdowns, modals, and tooltips without coding accessibility from scratch.

USE CASE 2

Use Radix as the accessible foundation for a company component library you then style with Tailwind or CSS modules.

USE CASE 3

Add a fully keyboard-navigable context menu or command palette to your React web app.

USE CASE 4

Create accessible form components like checkboxes and radio groups that announce correctly to screen readers.

What is it built with?

TypeScriptReact

How does it compare?

radix-ui/primitivesdzhng/deep-researchbaidu/amis
Stars18,88618,89718,863
LanguageTypeScriptTypeScriptTypeScript
Setup difficultyeasymoderateeasy
Complexity2/52/53/5
Audiencedeveloperdeveloperpm founder

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 30min

In plain English

Radix Primitives is an open-source library of low-level UI components for React, focused on accessibility and customization. "Primitives" here means the raw building blocks, things like dialogs, dropdowns, checkboxes, tooltips, and tabs, without any visual styling applied. This is deliberate: it handles the complex, hard-to-get-right behavior (keyboard navigation, screen reader support, focus management, correct ARIA attributes for accessibility) while leaving the visual appearance entirely up to you. The problem Radix solves: building accessible UI components correctly is surprisingly difficult. A dropdown menu, for example, needs to trap focus when open, respond to keyboard shortcuts, announce itself to screen readers, close when you click outside, and handle dozens of edge cases. Doing all of this from scratch for every component in an app takes weeks. Radix provides these behaviors pre-built and tested, so you can style the components however you want without worrying about accessibility regressions. You would use Radix Primitives when building a React web application where you want to implement your own visual design system but don't want to rebuild all the accessibility and interaction behavior yourself. It's commonly used as the foundation for design systems at companies and is the underlying base for popular component libraries like shadcn/ui. The library is written in TypeScript and maintained by WorkOS.

Copy-paste prompts

Prompt 1
Show me how to build a styled dropdown menu in my React app using Radix Primitives with Tailwind CSS classes.
Prompt 2
How do I use Radix Dialog to create a modal popup that traps keyboard focus and closes when I press Escape?
Prompt 3
Set up a Radix Tabs component in React with three tabs and custom CSS styling for the active and hover states.
Prompt 4
Add a Radix Tooltip to my React button that appears on hover and is announced correctly to screen readers.
Prompt 5
How do I install @radix-ui/react-dropdown-menu and build a user account menu with Sign Out and Settings options?

Frequently asked questions

What is primitives?

A library of unstyled, accessible React UI components, dialogs, dropdowns, tooltips, tabs, with all keyboard navigation and screen reader support built in, ready for you to style however you want.

What language is primitives written in?

Mainly TypeScript. The stack also includes TypeScript, React.

How hard is primitives to set up?

Setup difficulty is rated easy, with roughly 30min to a first successful run.

Who is primitives for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub radix-ui on gitmyhub

Verify against the repo before relying on details.