🎁 100 free AI Toolkit licenses – apply by August 15.Learn more

将工具栏 UI 组件添加到 Tiptap

Available for free

用于组织相关操作和控件,并支持键盘焦点游移的水平容器。

安装

您可以通过 Tiptap CLI 添加该原语(适用于 Vite 或 Next.js)

npx @tiptap/cli@latest add toolbar

手动集成

对于 Vite 或 Next.js 之外的框架,可以从 开源库 手动添加该原语。

导入样式

该组件需要您导入我们的样式,这些样式已添加到 styles/keyframe-animation.scssstyles/_variables.scss

用法

import { Toolbar, ToolbarGroup, ToolbarSeparator } from '@/components/tiptap-ui-primitive/toolbar'
import { Button } from '@/components/tiptap-ui-primitive/button'
import { BoldIcon } from '@/components/tiptap-icons/bold-icon'
import { ItalicIcon } from '@/components/tiptap-icons/italic-icon'
import { Spacer } from '@/components/tiptap-ui-primitive/spacer'

export default function MyComponent() {
  return (
    <Toolbar variant="fixed">
      <ToolbarGroup>
        <Button data-style="ghost">
          <BoldIcon className="tiptap-button-icon" />
        </Button>
        <Button data-style="ghost">
          <ItalicIcon className="tiptap-button-icon" />
        </Button>
      </ToolbarGroup>

      <ToolbarSeparator />

      <ToolbarGroup>
        <Button data-style="ghost">格式</Button>
      </ToolbarGroup>

      <Spacer />

      <ToolbarGroup>
        <Button data-style="primary">保存</Button>
      </ToolbarGroup>
    </Toolbar>
  )
}

属性

Toolbar

名称类型默认值描述
variant'fixed' | 'floating''fixed'工具栏样式变体
data-plainbooleanundefined是否使用纯样式

ToolbarSeparator

名称类型默认值描述
orientation'horizontal' | 'vertical''vertical'分隔线的方向

键盘行为

工具栏遵循水平焦点游走模式。禁用的控件会被跳过,包括工具栏打开期间其禁用状态发生变化的情况。

按键行为
ArrowLeftArrowRight在启用的控件之间移动,并在任一端循环。
HomeEnd移动到第一个或最后一个启用的控件。
Enter激活获得焦点的控件。
Space使用浏览器的标准行为激活获得焦点的原生按钮。
TabShift+Tab离开工具栏,而不是在其控件之间循环。

工具栏不会处理 Escape;拥有该工具栏的浮动元素或菜单可以处理此按键。