Headless UI
Headless UI is a library of completely unstyled, fully accessible UI components designed to integrate seamlessly with Tailwind CSS. It offers a range of components for both React and Vue. These components are built with accessibility in mind, adhering to WAI-ARIA design patterns and providing full keyboard navigation support. Because they are unstyled by default, developers have complete control over the look and feel, allowing for easy customization to match any design system. Headless UI components expose state information through data attributes and render props, enabling developers to conditionally apply styles based on component states such as focus, open, selected, or disabled. This approach ensures that the components are both flexible and accessible, making them suitable for building custom, high-quality user interfaces. With Headless UI, developers can create complex UI elements like modals, dropdowns, and tabs without sacrificing accessibility or design flexibility.
Learn more
React Aria
React Aria is a library of unstyled React components and hooks that help you build accessible, high-quality UI components for your application or design system. It provides components for common UI patterns, with accessibility, internationalization, interactions, and behavior built in, allowing you to focus on your unique design and styling rather than rebuilding these challenging aspects. React Aria has been meticulously tested across a wide variety of devices, interaction modalities, and assistive technologies to ensure the best experience possible for all users. React Aria is style-free out of the box, allowing you to build custom designs to fit your application or design system using any styling and animation solution. Each component is broken down into individual parts with built-in states, render props, and slots that make styling a breeze. All components are extensively tested using many popular screen readers and devices.
Learn more
Plate
Plate is a rich-text editor framework for React, designed to simplify complex text editing needs. Built with Slate.js and TypeScript, it offers a highly customizable and extensible editing experience. Plate provides a wide range of plugin packages that enhance the behavior, hooks, serialization, normalization, and other features of the editor. These plugins are "headless," meaning they are unstyled by default, allowing developers to style them as needed. It includes state management with Zustand stores, custom hotkeys, API methods, and transforms accessible through editor.api and editor.transforms. Plate also offers unstyled and accessible components based on Radix UI, serving as the foundation for building high-quality design systems. For those seeking a visually appealing interface, Plate provides pre-built styled components based on shadcn/ui, which can be customized to create a unique, accessible, and visually pleasing user interface.
Learn more
Radix UI
Radix UI is an open source component library optimized for fast development, easy maintenance, and accessibility. It offers two main packages, Radix Primitives and Radix Themes. Radix Primitives is a low-level UI component library focused on accessibility, customization, and developer experience. Components adhere to WAI-ARIA design patterns, are unstyled by default, and provide full keyboard navigation. Radix Themes is a pre-styled component library designed to work out of the box with minimal configuration. It includes layout primitives, typography, and components like buttons and cards, all customizable via the Theme component. Radix Colors offers a comprehensive, accessible color system for designing beautiful, accessible websites and apps. It supports automatic dark mode, transparent variants, and is designed for user interfaces. Radix Icons provides a crisp set of 15×15 icons available as individual React components.
Learn more