用途:HeadlessUI 为 Vue 3 提供完全无样式、可访问的 UI 组件,组件负责无障碍与交互逻辑,样式全部由开发者提供。安装:npm install @headlessui/vue;图标可选 npm install @heroicons/vue。
主要能力:提供 combobox、dialog、disclosure、focus-trap、listbox、menu、popover、radio-group、switch、tabs 及组合示例,共 30 个 playground 示例,可通过 frontend-components MCP 服务器浏览与获取。
使用方式:采用复合组件与插槽模式,如 Menu/MenuButton/MenuItems/MenuItem;用 as 属性改变渲染元素;通过 v-slot 获取 active、selected、checked、open、disabled 等状态,也可用 data-[focus]、data-[selected]、data-[checked]、data-[open]、data-[disabled] 等数据属性。支持 v-model(Switch、Listbox、Combobox、RadioGroup 等)、name 表单集成、multiple 多选。过渡可用 TransitionRoot/TransitionChild 或 transition 属性;下拉定位用 anchor 属性,如 anchor="bottom start",偏移用 :anchor="{ to: 'bottom', gap: 4 }"。
适用场景:需要自定义外观但保留完整键盘导航、焦点管理与 ARIA 语义的 Vue 3 应用,如弹窗、菜单、选择器、自动完成、开关、标签页等。
限制:组件本身不带样式,需自行编写 CSS 或配合 Tailwind;资料未提供具体版本兼容范围、浏览器支持与收费信息。