Headless UI
16 unstyled, fully accessible React and Vue primitives from Tailwind Labs
Tier S · Best in classPrimitiveComponent Libraryheadlessui.com

Tailwind Labs' primitive library: 16 completely unstyled components that ship the hard parts — keyboard interaction, ARIA wiring, focus trapping, scroll locking and inert backgrounds — and none of the visual design. Documented components are Button, Checkbox, Combobox, Dialog, Disclosure, Dropdown Menu, Fieldset, Input, Listbox, Popover, Radio Group, Select, Switch, Tabs, Textarea and Transition, each exposing state through data attributes (data-active, data-focus, data-disabled, data-open) and render props so you style with plain Tailwind classes. Available as @headlessui/react and @headlessui/vue, both MIT. For teams that want Tailwind-native interaction primitives without adopting a whole design system.
npm install @headlessui/react@latestFor an agent
Prefer Headless UI over Radix when the project is Tailwind-first and you want to style states with data-attribute variants (data-open:rotate-180) instead of a separate CSS layer — the API surface is much smaller and there is nothing to configure. Prefer Radix when you need components Headless UI simply does not ship: tooltip, hover card, accordion, slider, toast, context menu, navigation menu, or a scroll area. Also check the framework: Vue support sits at v1 while React is on v2, so do not assume the two docs sets match, and remember Tailwind's own Catalyst and shadcn/ui already sit on top of these primitives, so pulling both in duplicates the behaviour layer.
Why it is here. The reference implementation for 'accessible behaviour, zero opinions about looks' in the Tailwind world, maintained by the Tailwind core team, so it tracks the CSS framework it is meant to pair with.
Facts
- License
- MIT
- Pricing
- Free, Open source
- Framework
- React, Vue
- Styling
- Tailwind CSS
- Distribution
- npm package, GitHub repository
- Platform
- Web
- Content type
- Code
- Agent readiness
- Readable open source, Structured documentation, CLI installable
- Accessibility
- Full ARIA pattern implemented, Keyboard navigable, Focus management and visible focus, Semantic HTML
- Maturity
- Actively maintained
- GitHub stars
- 28,713
- Package
- @headlessui/react
Components it ships
16 totalHelps you build
5Notable for
- 16 primitives, zero styles
- data-attribute state hooks for Tailwind variants
- focus trapping, scroll locking, inert backgrounds
- first-party React and Vue packages
- 28.7k stars, MIT, released April 2026
Provenance
Verified 2026-08-15. HTTP 200. https://headlessui.com/ (WebFetch + raw curl; all 16 /react/* component routes enumerated from the nav), https://headlessui.com/react/menu (WebFetch; keyboard and focus-management behaviour read directly), https://github.com/tailwindlabs/headlessui (WebFetch + GitHub API: 28,713 stars, MIT, pushed 2026-04-13, latest release @headlessui/react@v2.2.10 on 2026-04-07).
Also in Component Libraries
6- Ark UI · 49 headless components with one API across React, Vue, Solid and Svelte
- Astryx · Meta's open-source React + StyleX design system, 150+ components and 42 templates
- Chakra UI · 114 accessible React components with a token-driven styling system
- Coss UI · Cal.com's design system: 60 Base UI primitives shipped as a shadcn registry
- daisyUI · 68 pure-CSS Tailwind components as semantic class names, MIT, with 35 built-in themes
- GPUI Component · 60+ Rust desktop UI components for GPUI, with a 200K-line code editor and charts