Chapter 1: Introduction
Core Idea
Base UI is an unstyled, accessible React component library from the creators of Radix, Material UI, and Floating UI — headless (no bundled CSS, works with any styling engine), fully composable APIs, and WAI-ARIA-driven accessibility as the primary design goal.
Key Concepts
- Package:
@base-ui/react — a single package, tree-shakable, contains all components and utilities.
- Headless: no CSS shipped, no prescribed styling solution — works with Tailwind, CSS Modules, plain CSS, or CSS-in-JS.
- Composable: component APIs are fully open — direct access to each part/node, parts can be added, removed, or wrapped freely.
- Accessible by default: adheres to WAI-ARIA design patterns, tested across browsers/devices/screen readers.
- Origin: built by the team behind Radix UI, Material UI, and Floating UI — Base UI is their unified successor project, not a fork of any one of them.
- React support: React 17+; works with Vite, webpack, Turbopack, Parcel.
- shadcn/ui foundation: shadcn/ui now uses Base UI as its unstyled foundation (via the shadcn
create tool) — this is the same relationship Radix Primitives used to have with shadcn/ui in earlier versions.
- Notable styled libraries built on Base UI: Kumo (Cloudflare), coss ui (cal.com team), Fragments, 9ui, Prototyper UI, Lumi UI, Olyx UI, ReUI, Fig UI, Selia.
- Unofficial ports: base-ui-solid (SolidJS), base-ui-vue (Vue), radix-ng (Angular, adapts Base UI architecture).
- Community: GitHub (github.com/mui/base-ui) for issues/contributions, Discord for support, X/Bluesky for announcements, GitHub Releases for changelog notifications.
Key Takeaways
- Base UI is the spiritual merger of Radix + Material UI + Floating UI expertise — evaluate it as a modern alternative to Radix Primitives, not a wrapper around it.
- As of this documentation, shadcn/ui's underlying primitive layer is Base UI — projects generating components via
npx shadcn create Base-UI-backed components.
- Headless means you own 100% of the visual layer; budget for both functional (positioning/sizing) and presentational CSS from day one — see ch005 (Styling).
Connects To
- ch002 (Getting Started): installation and required app-shell setup (portal stacking, iOS Safari fix).
- ch005 (Styling) / ch006 (Animation): how the unstyled layer is meant to be dressed.
- radix-primitives-docs: sibling skill for Radix Primitives — see this skill's Scope & Limits for how to choose between them.