For headless UI component primitives for React, the strongest matches are tailwindlabs/headlessui (Headless UI is a purpose-built library of unstyled, accessible), reach/reach-ui (Reach UI is an accessibility-first, low-level React component library) and radix-ui/primitives (Radix Primitives is the definitive headless React UI primitive). ariakit/ariakit and algolia/autocomplete round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Unstyled, accessible component building blocks for creating custom design systems and complex React user interfaces.
Headless UI is a headless component library and accessible UI component kit that provides logic-only interface elements. It functions as a state-driven UI framework designed to provide functionality without prescribing any specific visual styles. The library is specifically designed for integration with Tailwind CSS, enabling the implementation of custom design systems. It allows users to apply visual styles to components based on whether they are active, selected, or open. The project covers the development of accessible UI components that meet ARIA standards and include built-in keyboard n
Headless UI is a purpose-built library of unstyled, accessible React components (dialog, menu, popover etc.) that provide logic and behavior while leaving styling entirely to you, with TypeScript support and a hooks-based API, making it a perfect match for your search.
Reach UI is an open-source library of accessible, low-level React components designed to serve as a foundation for building design systems and interactive user interfaces. It is an accessibility-first toolkit that handles core concerns like ARIA attributes, focus management, and screen reader support automatically, without requiring developer configuration. The library is built as a collection of standalone packages, each managing its own lifecycle and dependencies, enabling granular adoption and tree-shaking. Components use a polymorphic rendering pattern, accepting an as prop to render as
Reach UI is an accessibility-first, low-level React component library that provides unstyled behavior and logic for dialogs, menus, and popovers, matching the request for headless UI primitives, though it uses components rather than a hooks-first API.
Primitives is a library of unstyled, accessible building blocks designed for creating complex interface elements in React. It functions as a headless component framework, providing the underlying logic, state management, and accessibility compliance while leaving all visual styling and design decisions entirely to the developer. The library distinguishes itself through a composition-based architecture that allows developers to build interactive interfaces by nesting small, single-purpose components. This system automatically handles complex requirements such as WAI-ARIA attribute injection, f
Radix Primitives is the definitive headless React UI primitive library, delivering unstyled, behavior-only components with built-in accessibility and composition-based API — exactly the kind of unstyled, accessible building blocks you need, with full TypeScript support and complete theming flexibility.
Ariakit is a headless component library and accessible UI component toolkit. It provides a set of unstyled web components with built-in accessibility patterns to ensure that screen readers and keyboard navigation function correctly. The project includes an adaptive color engine that calculates high-contrast text and dynamic surface colors for light and dark modes. It also features a concentric layout engine for computing nested padding, margins, and border radii for circular interface elements, alongside a design token system for managing global CSS variables. The toolkit covers broad capabi
Ariakit is a headless, unstyled React component library that provides accessible UI primitives with built-in accessibility patterns, a hooks-based API, TypeScript support, and customizable theming — exactly the kind of behavior-only toolkit this search targets.
This project is a framework-agnostic library for building accessible, search-as-you-type interfaces. It provides a headless logic layer that decouples search state management and result filtering from the visual presentation, allowing developers to maintain full control over the underlying HTML structure and styling. The library distinguishes itself through a highly modular architecture that supports multi-source data aggregation, enabling the combination of results from static arrays, remote APIs, and external indices into a single interface. It features a flexible rendering engine that inte
Algolia Autocomplete is a headless, accessible library specifically for building search-as-you-type comboboxes—it delivers the unstyled behavior and logic you're after, but it focuses solely on autocomplete rather than covering the broader set of primitives (dialogs, menus, popovers) your search expects.
Base UI is a headless component library and unstyled framework providing accessible interface primitives. It decouples behavioral logic and state management from the visual layer, allowing developers to implement complex UI patterns while maintaining total control over the final styling. The library implements WAI-ARIA design patterns to ensure all primitives support standard keyboard navigation and screen reader accessibility. It provides a suite of low-level building blocks that handle the internal mechanics of interface elements without bundling any CSS. The framework covers a broad range
Base UI is a headless, unstyled component library from the MUI team that delivers accessible, behavior-only React primitives (dialogs, menus, etc.) with full WAI-ARIA compliance and no bundled CSS, exactly matching the search for unstyled accessible UI primitives with TypeScript support.
Downshift is a headless UI component library and framework for React that provides the state and interaction primitives necessary to build accessible autocomplete, combobox, and select dropdown components. It functions as a WAI-ARIA UI framework, generating the required ARIA attributes and keyboard event handlers to ensure screen reader compliance without providing any default styling. The library utilizes a headless component pattern to decouple interaction logic from the visual presentation. It manages complex state transitions through reducers and synchronizes internal UI state with extern
Downshift is a headless React library that provides accessible, unstyled behavior and state management for dropdown, combobox, and autocomplete primitives, fitting your intent for headless UI components—though it specializes in these interactions rather than covering a broader set like dialogs or menus.
Ark is a headless UI component library that delivers accessible, cross-framework primitives with behavior governed by finite state machines. It provides unstyled components that encapsulate logic and accessibility — including full keyboard navigation, focus management, and WAI-ARIA support — while leaving visual styling entirely to the consumer. Components expose scoped data attributes for CSS targeting and use state machines to produce predictable, testable interactive behavior across every state transition. The library distinguishes itself through a state propagation model that distributes
Ark is a headless UI primitive library providing accessible, unstyled components and behavior via finite state machines, with full keyboard navigation, focus management, and WAI-ARIA support — exactly the kind of behavior-only React primitives this search asks for, with built-in TypeScript support and composable architecture.
Reka UI is a headless, accessible component primitive library, but it is built for Vue and Nuxt rather than React, so it does not satisfy the React-specific requirement of this search.
Skeleton is a design system and accessible UI component library built on Tailwind CSS. It provides a collection of pre-built interactive components with built-in accessibility and state management, alongside a CSS custom properties theme engine that enables runtime theme switching and dark mode support. The project distinguishes itself through its adaptive design system approach, using CSS custom properties to create themeable tokens that integrate directly with Tailwind's utility-first framework. This allows developers to build visual design systems with customizable colors, fonts, and aesth
Skeleton is a full design system and accessible UI component library with built-in Tailwind CSS styles, not an unstyled, behavior-only primitive library for React as you are looking for.
Park UI is a collection of accessible, pre-styled interface components designed for consistent design across multiple JavaScript frameworks. It functions as a cross-framework user interface kit that provides functional logic and styling hooks for building inclusive web applications. The library utilizes a headless component architecture that delegates state and accessibility logic to a decoupled engine, allowing for flexible styling. By employing a framework-agnostic approach, it ensures that interface elements maintain a unified design language and reliable behavior across various developmen
Park UI is a headless component library with accessible primitives, but it comes pre-styled rather than being truly unstyled, and it is cross-framework rather than React-specific, which does not match the request for behavior-only React hooks primitives.
React Autosuggest is a fully controlled React component that provides an autocomplete input with a dropdown of suggestions as the user types. It delegates all state management to the parent component through callbacks, making it compatible with state management patterns like Flux or Redux. The component implements WAI-ARIA accessibility patterns, including keyboard navigation with arrow keys, Enter, and Escape, along with live region integration for screen reader announcements. The component offers extensive customization through render-prop functions, allowing developers to replace the defau
This is a single autosuggest component with accessible, unstyled behavior and render-prop customization, but it is not a library of multiple UI primitives like dialogs or menus that the visitor is seeking.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| tailwindlabs/headlessui | 28.6K | TypeScript | MIT | |
| reach/reach-ui | 6K | TypeScript | MIT | |
| radix-ui/primitives | 18.6K | TypeScript | mit | |
| ariakit/ariakit | 8.6K | TypeScript | — | |
| algolia/autocomplete | 5.3K | TypeScript | MIT | |
| mui/base-ui | 8.7K | TypeScript | mit | |
| downshift-js/downshift | 12.3K | JavaScript | MIT | |
| chakra-ui/ark | 5K | TypeScript | mit | |
| unovue/reka-ui | 6.6K | Vue | MIT | |
| skeletonlabs/skeleton | 6K | TypeScript | MIT |