Headless UI
Unstyled, accessible UI primitives for React and Vue — keyboard and ARIA built in.
Overview
Headless UI is a collection of completely unstyled, fully accessible UI components built to work seamlessly with Tailwind CSS. The library provides a foundation of interactive components without opinionated styling, allowing developers to apply their own design system.
The components are designed with accessibility as a core principle, supporting keyboard navigation, ARIA attributes, and screen reader compatibility. Headless UI offers support for both React and Vue, making it flexible for different project needs.
Key features
- Completely unstyled components
- Fully accessible (WCAG compliant)
- Keyboard navigation support
- ARIA attributes included
- React and Vue support
- Tailwind CSS integration
- Dropdown menus
- Dialogs and modals
- Tabs and transitions
- Form components
- No styling overhead to override
- Built-in accessibility features
- Works perfectly with Tailwind CSS
- Supports multiple frameworks
- Lightweight and composable
- Requires custom styling implementation
- Steeper learning curve for styling integration
- Limited to React and Vue
Best for
Alternatives
More Component
Compare allDeclarative routing library for React apps with nested routes and data APIs.
Vercel AI SDK component library on shadcn/ui for AI-native apps.
Unstyled, accessible React primitives for dialogs, menus, tabs, and form controls.