在悬停和聚焦时显示上下文标签的工具提示组件。
显示锚定到触发元素的短标签。在悬停时经过可配置的 delay(默认 600ms)后打开,或在聚焦时立即打开。当指针离开或焦点移开时关闭,带有可选的 closeDelay。
side 和 align 属性控制相对于触发器的位置。定位在支持的地方使用 CSS Anchor Positioning,并有 JavaScript 测量回退。
组件由四个部分组成:Root 管理状态和上下文,Trigger 渲染激活工具提示的按钮,Popup 包含标签内容,Arrow 渲染装饰性指针。将多个工具提示包裹在 Tooltip.Provider 中以协调一组工具提示的打开/关闭时序 — 一旦工具提示变为可见,相邻的工具提示在 timeout 窗口内即时打开,跳过正常的 delay。
使用 CSS 自定义属性设置定位偏移:
根据打开状态和过渡阶段设置样式:
触发器在打开时接收指向弹出框的 aria-describedby。弹出框渲染 role="tooltip" 和 popover="manual"。工具提示在聚焦时打开,在焦点离开时关闭,确保仅使用键盘的用户可以访问标签。
将多个工具提示包裹在 Tooltip.Provider 中以共享延迟组。一旦工具提示变为可见,相邻的工具提示在 timeout 窗口内即时打开,跳过正常的 delay。
| 部件 | 描述 |
|---|---|
Tooltip.Provider | 延迟组协调器,管理共享时序 |
Tooltip.Root | 工具提示根组件,管理状态和上下文 |
Tooltip.Trigger | 触发按钮,激活工具提示 |
Tooltip.Popup | 工具提示内容容器 |
Tooltip.Arrow | 装饰性方向箭头 |
| 属性 | 类型 | 默认值 | 描述 |
|---|---|---|---|
side | "top" | "right" | "bottom" | "left" | "top" | 工具提示相对于触发器的位置 |
align | "start" | "center" | "end" | "center" | 工具提示的对齐方式 |
delay | number | 600 | 打开延迟(毫秒) |
closeDelay | number | 0 | 关闭延迟(毫秒) |
| 属性 | 类型 | 默认值 | 描述 |
|---|---|---|---|
delay | number | 600 | 组内工具提示的默认打开延迟 |
closeDelay | number | 0 | 组内工具提示的默认关闭延迟 |
timeout | number | - | 延迟组超时窗口(毫秒) |
| 状态 | 类型 | 描述 |
|---|---|---|
open | boolean | 工具提示是否打开 |
| 属性 | 值 | 描述 |
|---|---|---|
data-open | - | 工具提示打开时存在 |
data-side | "top" | "right" | "bottom" | "left" | 工具提示当前所在的一侧 |
data-align | "start" | "center" | "end" | 工具提示的对齐方式 |
data-starting-style | - | 打开动画开始时存在 |
data-ending-style | - | 关闭动画开始时存在 |
| 属性 | 描述 |
|---|---|
--media-tooltip-side-offset | 工具提示与触发器之间的侧边偏移 |
--media-tooltip-align-offset | 工具提示与触发器之间的对齐偏移 |