工具栏
功能
- 完整的键盘导航。
安装
从命令行安装此组件。
$ npm add reka-ui
结构
导入组件。
<script setup lang="ts">
import {
ToolbarButton,
ToolbarLink,
ToolbarRoot,
ToolbarSeparator,
ToolbarToggleGroup,
ToolbarToggleItem,
} from 'reka-ui'
</script>
<template>
<ToolbarRoot>
<ToolbarButton />
<ToolbarSeparator />
<ToolbarLink />
<ToolbarToggleGroup>
<ToolbarToggleItem />
</ToolbarToggleGroup>
</ToolbarRoot>
</template>
API 参考
根组件
包含所有工具栏组件部分。
属性 | 默认 | 类型 |
---|---|---|
as | 'div' | AsTag | Component 此组件应渲染为的元素或组件。可通过 |
asChild | 布尔值 更改默认渲染元素为作为子项传递的元素,合并它们的属性和行为。 阅读我们的 组合指南了解更多详情。 | |
dir | 'ltr' | 'rtl' 适用时,组合框的阅读方向。 | |
loop | 布尔值 当为 | |
orientation | 'horizontal' | 'vertical' | 'horizontal' 工具栏的方向 |
数据属性 | 值 |
---|---|
[data-orientation] | "垂直" | "水平" |
按钮
一个按钮项。
属性 | 默认 | 类型 |
---|---|---|
as | 'button' | AsTag | Component 此组件应渲染为的元素或组件。可通过 |
asChild | 布尔值 更改默认渲染元素为作为子项传递的元素,合并它们的属性和行为。 阅读我们的 组合指南了解更多详情。 | |
disabled | 布尔值 |
数据属性 | 值 |
---|---|
[data-orientation] | "垂直" | "水平" |
链接
一个链接项。
属性 | 默认 | 类型 |
---|---|---|
as | 'a' | AsTag | Component 此组件应渲染为的元素或组件。可通过 |
asChild | 布尔值 更改默认渲染元素为作为子项传递的元素,合并它们的属性和行为。 阅读我们的 组合指南了解更多详情。 |
切换组
一组可切换开/关的双状态按钮。
属性 | 默认 | 类型 |
---|---|---|
as | 'div' | AsTag | Component 此组件应渲染为的元素或组件。可通过 |
asChild | 布尔值 更改默认渲染元素为作为子项传递的元素,合并它们的属性和行为。 阅读我们的 组合指南了解更多详情。 | |
defaultValue | AcceptableValue | AcceptableValue[] 项的默认活动值。 当您不需要控制项的状态时使用。 | |
dir | 'ltr' | 'rtl' 适用时,组合框的阅读方向。 | |
disabled | 布尔值 当为 | |
loop | 布尔值 当 | |
modelValue | AcceptableValue | AcceptableValue[] 活动项的受控值。 当您需要控制项的状态时使用此项。可以通过 | |
name | string 字段的名称。随其所属的表单一起作为名称/值对提交。 | |
orientation | 'vertical' | 'horizontal' 组件的方向,决定了焦点如何移动: | |
required | 布尔值 当为 | |
rovingFocus | 布尔值 当 `false` 时,禁用使用箭头键在项目间导航。 | |
type | 'single' | 'multiple' 确定一次可以选择“单个”或“多个”项。 此属性将覆盖从 |
事件触发 | 载荷 |
---|---|
update:modelValue | [payload: AcceptableValue | AcceptableValue[]] 当切换组件的值改变时调用的事件处理程序。 |
数据属性 | 值 |
---|---|
[data-orientation] | "垂直" | "水平" |
切换项
组中的一个项。
属性 | 默认 | 类型 |
---|---|---|
as | 'div' | AsTag | Component 此组件应渲染为的元素或组件。可通过 |
asChild | 布尔值 更改默认渲染元素为作为子项传递的元素,合并它们的属性和行为。 阅读我们的 组合指南了解更多详情。 | |
disabled | 布尔值 当为 | |
值* | AcceptableValue 切换组项的字符串值。切换组中的所有项都应使用唯一值。 |
数据属性 | 值 |
---|---|
[data-state] | "on" | "off" |
[data-disabled] | 禁用时存在 |
[data-orientation] | "垂直" | "水平" |
分隔符
用于在工具栏中视觉上分隔各项
属性 | 默认 | 类型 |
---|---|---|
as | 'div' | AsTag | Component 此组件应渲染为的元素或组件。可通过 |
asChild | 布尔值 更改默认渲染元素为作为子项传递的元素,合并它们的属性和行为。 阅读我们的 组合指南了解更多详情。 |
数据属性 | 值 |
---|---|
[data-orientation] | "垂直" | "水平" |
示例
与其他基本组件一起使用
我们所有暴露 Trigger
部分的基本组件,例如 Dialog
、AlertDialog
、Popover
、DropdownMenu
,都可以通过使用 asChild
prop 在工具栏中进行组合。
这是一个使用我们的 DropdownMenu
基本组件的示例。
<script setup lang="ts">
import {
DropdownMenuContent,
DropdownMenuRoot,
DropdownMenuTrigger,
ToolbarButton,
ToolbarLink,
ToolbarRoot,
ToolbarSeparator,
ToolbarToggleGroup,
ToolbarToggleItem,
} from 'reka-ui'
</script>
<template>
<ToolbarRoot>
<ToolbarButton>Action 1</ToolbarButton>
<ToolbarSeparator />
<DropdownMenuRoot>
<ToolbarButton as-child>
<DropdownMenuTrigger>Trigger</DropdownMenuTrigger>
</ToolbarButton>
<DropdownMenuContent>…</DropdownMenuContent>
</DropdownMenuRoot>
</ToolbarRoot>
</template>
可访问性
使用 roving tabindex 来管理项之间的焦点移动。
键盘交互
键 | 描述 |
---|---|
Tab 键 | 将焦点移动到组中的第一个项。 |
空格键 | 激活/取消激活该项。 |
回车键 | 激活/取消激活该项。 |
向下箭头键 | 根据 orientation 移动焦点到下一项。 |
向右箭头 | 根据 orientation 移动焦点到下一项。 |
向上箭头键 | 根据 orientation 移动焦点到上一项。 |
向左箭头 | 根据 orientation 移动焦点到上一项。 |
Home 键 | 将焦点移动到第一个项。 |
End 键 | 将焦点移动到最后一个项。 |