Toolbar
共用一个Tab停靠点、支持方向键导航的控件组。
- 浏览器
- Chrome 123+Firefox 121+Safari 17.5+
- 层级
- 1
- 压缩后大小
- 2.04 kB
- 强制布局预算
- 0 ms
- axe 预算
- 0
- 支持 SSR
- 是
- 公开契约
- 测试环境
交互示例
Toolbar
Default
API
Toolbar.Root
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
dir | "ltr" | "rtl" | — | 书写方向,会反转左、右方向键的行为。 |
loop | boolean | true | 方向键导航是否在第一项和最后一项之间循环。 |
orientation | "horizontal" | "vertical" | "both" | "horizontal" | 指定哪些方向键用于在项目之间移动焦点,以及data-orientation的值。 |
Toolbar.Button
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
selected | boolean | — | 按钮的切换状态:设置aria-pressed;为true时,还设置data-selected并使用主要填充样式。 |
children | ReactNode | — | 按钮内容。 |
className | string | — | 应用于button元素的类名。 |
disabled | boolean | false | 禁用按钮,并将其移出游走焦点顺序。 |
Toolbar.Link
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
children | ReactNode | — | 链接内容。 |
className | string | — | 应用于锚点元素的类名。 |
href* | string | — | 链接目标,无须JavaScript即可导航。 |
Toolbar.Separator
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
className | string | — | 应用于<hr>元素的类名。 |
orientation | "horizontal" | "vertical" | "vertical" | 在分隔线上设置aria-orientation和data-orientation。 |
Toolbar.ToggleGroup
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
id* | string | — | 确定性id和共享输入组名称的基础值。 |
type | "single" | "multiple" | "single" | 允许按下一个还是多个切换按钮,据此选择radio或checkbox输入框。 |
items* | readonly ToggleGroupItem[] | — | 每项为{ value, label, disabled? }。 |
defaultValue | string | readonly string[] | undefined | — | 首次渲染时按下的项。非受控,因此无JavaScript时仍可保持。 |
orientation | "horizontal" | "vertical" | "horizontal" | 切换按钮的排列方向。 |
className | string | — | 应用于组根元素的类名。 |
键盘
| 按键 | 操作 |
|---|---|
| Tab | 将焦点移入或移出控件 |
| Enter / Space | 获得焦点时激活(按钮类控件) |
无障碍
尽可能使用语义化HTML。可在交互示例中检查渲染的标记;仅在原生元素无法满足需求时添加ARIA。
样式钩子
data-disabled