Base UI

Base UI is an unstyled React component library for accessible, composable, app-owned UI primitives.

Routing Summary

Load this through Component Library Sources when behavior is the hard part: popovers, dialogs, menus, comboboxes, autocomplete, number fields, sliders, tooltips, forms, tabs, and focus/keyboard interaction. Base UI fits projects that want accessible primitives without imported visual opinions. Source: Base UI docs, 2026-07-07

Position In Kevin's Stack

  • Base UI: accessible unstyled React primitives with no bundled CSS.
  • Radix UI: adjacent primitive layer with similar API shape and strong ecosystem history.
  • shadcn/ui: copy-owned styled component layer; current Base UI docs call it a good pre-styled starting point and note it uses Base UI as an unstyled foundation.
  • Cloudflare Kumo / Blocks.so / Shadcn Space: downstream component or block shelves that explicitly route through Base/Radix-style primitives.

Use Base UI directly when the local design system wants strict visual ownership and stronger primitive coverage than a visual block catalog provides.

Install Shape

pnpm add @base-ui/react
import { Popover } from "@base-ui/react/popover";

The quick-start docs note that the package is tree-shakable and that each docs page has a Markdown view, plus an llms.txt route for agents. Source: Base UI quick start, 2026-07-07

Integration Rules

  • Keep styling local: Tailwind, CSS Modules, plain CSS, or CSS-in-JS can own the visuals.
  • Add the app-root isolation style for portaled components so overlays sit above page content.
  • Treat Base UI and Radix as behavior foundations, not aesthetic sources.
  • Prefer Base UI for complex primitives such as Combobox, Autocomplete, nested dialogs, hover-triggered menus, and input scrubbing when those features matter.
  • Verify keyboard navigation, focus traps, aria labels, collision behavior, and reduced-motion paths after styling.

Timeline

  • 2026-07-07 | Created after Kevin flagged that Base UI was missing from the first-class component-library list. Added as the explicit unstyled primitive route alongside Radix and shadcn. Source: User request, 2026-07-07; https://base-ui.com/; https://github.com/mui/base-ui