Base UI

Unstyled, accessible React components and low-level hooks for building your own design system.

Library
npm
v1.0.0-rc.0
11,220 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
88 /100 Excellent
Development Activity 100
Maintenance 96
Community 68
Maturity 48
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
84 /100 Excellent
Architecture 90
Code Quality 88
Innovation 88
Learning Curve 70

Base UI is a headless React component library from the team behind Material UI, Radix, and Floating UI. It ships fully accessible primitives such as dialogs, menus, comboboxes, selects, tooltips, and form fields with zero built-in styles, so you own every pixel of markup and CSS.

Rather than fighting a pre-styled component kit, you compose Base UI’s unstyled parts and apply your own classes, giving you complete control over appearance while inheriting robust keyboard navigation, focus management, and WAI-ARIA behavior out of the box.

What You Get

  • A broad catalog of unstyled primitives: accordion, dialog, menu, combobox, select, popover, tabs, tooltip, slider, switch, and more
  • Complete accessibility handling with WAI-ARIA roles, keyboard interaction, and focus management built in
  • A full suite of form primitives (field, fieldset, form, input, number field, OTP field, radio, checkbox) with validation wiring
  • A useRender hook and mergeProps utility for composing your own elements and merging behavior onto custom markup
  • First-class TypeScript types and tree-shakeable per-component entry points

Common Use Cases

  • Building a custom design system where you control all styling but need reliable accessibility
  • Replacing a heavier, pre-styled component library with lightweight headless primitives
  • Adding complex interactive widgets (comboboxes, menus, dialogs) without reimplementing ARIA behavior
  • Composing accessible forms with consistent field, validation, and label wiring

Under The Hood

Architecture — Base UI is a pnpm/Lerna monorepo whose primary published package (packages/react) exposes each widget as a set of compound components (for example Switch.Root in src/switch/root/SwitchRoot.tsx). Components are built with React.forwardRef and share behavior through React context and a large src/internals layer (useRenderElement, field/form context providers, use-button, id and labelable helpers). Positioning for popovers, menus, tooltips, and selects is delegated to a bundled Floating UI integration (src/floating-ui-react) plus @floating-ui/react-dom, while a companion @base-ui/utils package supplies low-level hooks like useControlled, useMergedRefs, and useIsoLayoutEffect.

Tech Stack — The library is written almost entirely in TypeScript (99% of the codebase) and targets React 17, 18, and 19 as peer dependencies. Runtime dependencies are deliberately minimal: @babel/runtime, the internal @base-ui/utils, @floating-ui/react-dom, @floating-ui/utils, and use-sync-external-store. Date-based components pick up optional date-fns peers. Builds run through Lerna/Nx with a modern toolchain (tsgo/TypeScript 6, Vitest 4), and each component ships as its own export path for tree-shaking.

Code Quality — The codebase is thoroughly tested, with roughly 286 test files colocated beside components plus dedicated test/ suites (e2e, regressions, bundle-size). Files follow a consistent, deeply-nested convention (component/part directories, *Context, stateAttributesMapping), state is threaded through typed context, and controlled/uncontrolled behavior is centralized via useControlled. Strict typing, ESLint, Stylelint, and Prettier are enforced across the repo.

API Design — The public API leans on the compound-component pattern (Root, Trigger, Popup, Item, etc.) that mirrors the DOM you render, keeping the surface predictable across widgets. A render prop plus the useRender hook and mergeProps let you swap the underlying element or merge Base UI’s behavior onto your own components, and per-component import paths keep bundles lean. Extensive documentation at base-ui.com and consistent naming make it approachable for anyone familiar with Radix-style primitives, though the headless model means you supply all styling yourself.

Used by 51 apps in this directory

TypeScript
97%
Other

nango

Authentication · Automation · Developer Tools

12,963

Build product integrations with AI using 800+ APIs — auth, proxy, and TypeScript functions on production-grade infrastructure.

View details
94
Repo Health
85
Technical
67
Dependency
Built with
TypeScript 97%
Updated 1 weeks ago
TypeScript
97%
GPL 3.0

OpenKnowledge

Code Editors · Knowledge Management · Note Taking

4,674

A beautiful, local-first markdown IDE that turns any git repo into a live collaborative workspace for humans and AI coding agents like Claude, Codex, and OpenCode.

View details
80
Repo Health
89
Technical
64
Dependency
Built with
TypeScript 97%
Updated 6 days ago
TypeScript
84%
MIT

OpenCut

Design Tools · Social Media · Video Editors

95,947

Free, open-source video editor for web, desktop, and mobile — no watermarks, no subscriptions, built with a Rust core and plugin-first architecture

View details
55
Repo Health
67
Technical
77
Dependency
Built with
TypeScript 84%
Rust 14%
Updated 1 months ago
Python
73%
AGPL 3.0

OpenViking

AI Development · AI Memory · Databases

40,705

An open-source context database that gives AI agents a unified filesystem for memory, resources, and skills with hierarchical tiered retrieval.

View details
85
Repo Health
75
Technical
64
Dependency
Built with
Python 73%
TypeScript 12%
Rust 11%
Updated 6 days ago
TypeScript
85%
MIT

openwork

AI Assistants · Automation

24,237

OpenWork is a free, open-source desktop app for running AI agent workflows on your own files with 50+ LLMs, extensible skills, and MCP server support — the open-source alternative to Claude Cowork and Codex.

View details
87
Repo Health
89
Technical
67
Dependency
Built with
TypeScript 85%
Updated 6 days ago
TypeScript
67%
AGPL 3.0

Plane

Collaboration · Productivity · Project Management

61,353

Open-source project management platform to replace Jira, Linear, and ClickUp — with built-in cycles, real-time collaborative docs, and full self-hosting.

View details
92
Repo Health
82
Technical
77
Dependency
Built with
TypeScript 67%
Python 30%
Updated 1 weeks ago
Python
55%
Other

PostHog

Ab Testing Experimentation · Analytics · Developer Tools

40,397

The all-in-one open source product platform combining analytics, session replay, feature flags, error tracking, AI observability, and a built-in data warehouse in a single self-hostable stack.

View details
92
Repo Health
80
Technical
65
Dependency
Built with
Python 55%
TypeScript 36%
Updated 6 days ago
Go
68%
MIT

Probo

Automation · Security

1,476

Open-source GRC platform for engineering and security teams.

View details
87
Repo Health
90
Technical
69
Dependency
Built with
Go 68%
TypeScript 30%
Updated 1 weeks ago
TypeScript
96%
Apache 2.0

rakazo

AI Agents · AI Assistants

5,488

An open-source platform for persistent AI teammates that own their own conversations, memory, routines, and computers — self-hosted, model-agnostic, and available on web, desktop, and mobile.

View details
82
Repo Health
91
Technical
70
Dependency
Built with
TypeScript 96%
Updated 1 weeks ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers