explaingit

radix-ui/primitives

18,910TypeScriptAudience · developerComplexity · 2/5MaintainedLicenseSetup · easy

TLDR

Unstyled, accessible React UI building blocks (dialogs, dropdowns, tabs) that handle keyboard navigation, screen readers, and focus management so you can style them however you want.

Mindmap

mindmap
  root((Radix Primitives))
    What it does
      Unstyled components
      Accessibility built-in
      Behavior pre-built
    Components
      Dialogs
      Dropdowns
      Checkboxes
      Tooltips
      Tabs
    Use cases
      Custom design systems
      Accessible apps
      Component libraries
    Tech stack
      React
      TypeScript
      ARIA attributes

Things people build with this

USE CASE 1

Build a custom design system with your own visual style while keeping accessibility features like keyboard navigation and screen reader support.

USE CASE 2

Create a component library for your company without spending weeks rebuilding focus management and ARIA attributes for each component.

USE CASE 3

Extend shadcn/ui or similar libraries by understanding the unstyled primitives they're built on top of.

Tech stack

ReactTypeScript

Getting it running

Difficulty · easy Time to first run · 5min
MIT license, use freely for any purpose, including commercial, as long as you keep the copyright notice.

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 custom dropdown menu using Radix Primitives that works with keyboard navigation and screen readers.
Prompt 2
I want to create a dialog component with my own styling using Radix Primitives. What's the minimal setup?
Prompt 3
How do I use Radix Primitives to build accessible tabs that handle keyboard shortcuts automatically?
Prompt 4
What ARIA attributes does Radix Primitives handle automatically for a checkbox component?
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.