SuperAPI AI 工具集

headlessui

前端与建站

查看项目

更新于 10-15 15:14

技能介绍

Headless UI 是一套无样式、完全无障碍的 UI 组件原语,由 Tailwind Labs 团队构建,旨在与 Tailwind CSS 良好集成。它提供具备生产级可访问性的组件,而不强加任何设计决策。

主要特点

  • 完全无样式,样式由使用者自行提供
  • 完整的键盘导航
  • 经过屏幕阅读器测试
  • 焦点管理
  • 自动处理 ARIA 属性
  • 支持 TypeScript
  • 兼容 React 18 与 Vue 3
  • 兼容 SSR
  • 使用渲染属性(render props)以获得最大灵活性

安装 React:npm install @headlessui/react Vue:npm install @headlessui/vue

组件目录

Menu(下拉菜单):带键盘导航与 ARIA 支持的可访问下拉菜单。特性包括方向键导航、输入即搜索(type-ahead)、自动焦点管理、按 Escape 关闭、点击外部关闭、用于定位的 Portal 渲染、锚点定位(anchor positioning)API。

Listbox(选择器):自定义的选择/下拉组件,具备完整键盘支持。特性包括单选与多选模式、输入即搜索、方向键导航、受控与非受控模式、支持禁用选项、自定义值比较。

Combobox(自动补全):可搜索、可过滤的选择组件。特性包括带过滤的文本输入、键盘导航、可为空/可选的选择、自定义显示值、支持异步数据加载、多选模式。

Dialog(模态框):可访问的模态对话框,带焦点陷阱(focus trapping)。特性包括焦点陷阱、按 Escape 关闭、滚动锁定、关闭时恢复焦点、Portal 渲染、支持嵌套对话框、初始焦点控制。

Popover:用于工具提示、下拉等的浮动面板。特性包括锚点定位、点击或悬停触发、点击外部关闭、嵌套 Popover、焦点管理、Portal 渲染。

RadioGroup:可访问的单选按钮组。特性包括方向键导航、禁用选项、自定义样式状态、受控模式、描述支持。

Switch(开关):可访问的切换开关。特性包括受控与非受控、标签支持、描述支持、禁用状态、键盘可访问(空格键切换)。

Tab(标签页):可访问的标签页导航。特性包括方向键导航、默认选中标签、手动激活、垂直/水平方向、受控模式。

Disclosure(折叠面板):可展开的内容区块。

适用场景:需要在 React 或 Vue 项目中构建可访问、可自定义样式的交互组件(如下拉菜单、选择器、自动补全、模态框、浮层、单选组、开关、标签页、折叠面板)时使用。

限制:资料中未提供关于收费、价格、平台支持范围或效果的明确说明,暂未提供,请以官方信息为准。