productdevbook/ui has 76 GitHub stars and 0 forks. GitHot measured +15 stars in 24 hours. Last checked 2026-11-12 14:48 UTC. Last push 2026-11-05.
适用于 React、Vue、Svelte、Angular 和 Solid 的无头组件。编写一次,以五种方式运行。项目仍在开发中。
实测星标增长
- 24小时
- +15
- 7天
- 更新延迟
- 15天
- 更新延迟
- 1个月
- 更新延迟
各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。
README.md
原文productdevbook/ui
Headless components for React, Vue, Svelte, Angular and Solid. Write it once, run it five ways.
Website · Docs · Compare · Help name it · Early access
[!WARNING] This is work in progress, still research. I'm building it in public. You can follow along on X @productdevbook and on the website.
Why
Focus. Keyboard. ARIA. State. The parts that take months, written once, below the framework. Above it, a thin layer that speaks React, Vue, Svelte, Angular and Solid. No styles. Your rules.
How it works
Three layers. One behavior.
| Layer | What it holds |
|---|---|
core |
State and logic. No framework, no DOM. |
dom |
Focus, keyboard, pointer, positioning, ARIA. No framework. |
| adapters | Components, props and events in your framework: React, Vue, Svelte, Angular, Solid. |
Every adapter runs the same upstream behavior tests, and a parity harness drives the same scenarios with real input in Chromium, Firefox and WebKit and compares the DOM, the events and the focus of all five frameworks. On the Compare page, pick any component and try it in all five frameworks side by side; open one dialog and the other four follow.
Roadmap
On the website now, 38 components in all five frameworks:
- Accordion
- Alert Dialog
- Autocomplete
- Avatar
- Button
- Checkbox
- Checkbox Group
- Collapsible
- Combobox
- Context Menu
- Dialog
- Drawer
- Field
- Filterable Menu
- Form
- Input
- Menu
- Menubar
- Meter
- Navigation Menu
- Number Field
- OTP Field
- Popover
- Preview Card
- Progress
- Radio
- Radio Group
- Scroll Area
- Select
- Separator
- Slider
- Switch
- Tabs
- Toast
- Toggle
- Toggle Group
- Toolbar
- Tooltip
- Server rendering and hydration in React, Vue, Svelte, Angular and Solid
Coming:
- Fieldset
- A name
It does not have a name yet
The package scope is @▢▢▢▢ for now. Suggest one, vote for the ones you like. The shortlist is decided in public.
Early access
No account, no sign-in. Leave your email, the frameworks you use and, if you like, your GitHub username.
Credits
The behavior is ported from Base UI by the MUI team, and its test suite is what every adapter is checked against. This project is not affiliated with MUI.
License
MIT
