# Radix UI vs Headless UI
URL: https://wwadd.dev/compare/radix-ui-vs-headless-ui
Last verified: 2026-09-28

Both are unstyled, accessible component primitives that handle focus, keyboard navigation, and ARIA while you bring the styles. Radix is React-only with a larger set of primitives; Headless UI comes from Tailwind Labs and supports React and Vue.

## Verdict
In React with shadcn/ui, Radix is the default. In Vue, Headless UI is the natural pick.

## Pick Radix UI when
- React projects that need many primitive types
- You plan to use shadcn/ui, which is built on Radix

## Pick Headless UI when
- Vue projects, or teams using both React and Vue
- You only need the common pieces and already use Tailwind

## Related tools
- [Radix UI](https://wwadd.dev/tools/radix-ui)
- [Headless UI](https://wwadd.dev/tools/headless-ui)

## What actually differs
- Frameworks: Radix UI — React; Headless UI — React and Vue
- Maintainer: Radix UI — WorkOS; Headless UI — Tailwind Labs
- Breadth: Radix UI — A wide set of primitives (dialogs, menus, popovers, tooltips, sliders, and more); Headless UI — A smaller, focused set of common components
- Ecosystem: Radix UI — The foundation shadcn/ui builds on; Headless UI — Designed alongside Tailwind UI

## Sources
- [Radix Primitives docs](https://www.radix-ui.com/primitives/docs/overview/introduction)
- [Headless UI](https://headlessui.com)

