Skip to content

Tooltip 文字提示

极轻量、高性能的文字提示组件。基于业内顶级的 Floating UI 定位引擎驱动。

基础用法

提供 12 个方向的弹出位置,通过 placement 属性配置。

基础用法

多种主题

除了内置的 dark / light 主题外,你还可以通过自定义 effect 的值来轻松定义专属主题样式。

主题风格

自定义主题

通过设置 effect="customized" 并编写对应的 CSS,可以获得极致的视觉效果。

自定义主题

尺寸与样式

支持自定义宽度、最大高度,并支持长内容滚动。

尺寸与自由样式

显示 HTML 内容

内容属性可以设置为 HTML 字符串,通过 raw-content 开启。

HTML 渲染

触发行为

支持悬停、点击、焦点以及右键菜单触发,默认为 hover

触发方式

高级特性

鼠标跟随 (Follow Cursor)

鼠标跟随

内容交互 (Interactive)

允许交互

在 Nuxt 中使用

YH-UI 完美兼容 Nuxt 3。你可以直接在组件中使用,无需手动导入。

Nuxt 3 支持

FAQ

如何在嵌套了 Tooltip 的情况下允许输入框输入空格?

当 Tooltip 包含一个输入框时,在 YH-UI 中,我们确保了交互逻辑不会干扰正常的输入行为。你可以直接在触发层嵌套输入框,空格键将正常工作。

嵌套输入框示例

如何在 Tooltip 中使用跳转链接?

你可以通过 content 插槽在 Tooltip 内部嵌入复杂的交互元素。请确保开启了 interactive 属性。

嵌入外部链接

API

Props

属性名说明类型默认值
content显示文字内容string-
placement弹出位置TooltipPlacement'top'
trigger触发方式TooltipTrigger | TooltipTrigger[]'hover'
disabled是否禁用booleanfalse
effect主题风格string'dark'
offset偏移量 [横向, 纵向][number, number][0, 8]
show-after出现延迟 (ms)number0
hide-after消失延迟 (ms)number200
show-arrow是否显示小三角booleantrue
interactive是否允许鼠标进入提示框booleantrue
visible手动控制可见性boolean | nullnull
raw-content是否将 content 作为 HTML 字符串渲染booleanfalse
follow-cursor是否跟随鼠标移动booleanfalse
persistent隐藏时是否保留弹层 DOM。为 false 时仅在显示时渲染booleantrue
width弹出层宽度string | number'auto'
max-height最大高度string | number'none'
scrollable内容是否可滚动booleanfalse
popper-class弹出层自定义类名string-
popper-style弹出层自定义样式。当前仅对象样式会在运行时被合并;字符串和数组形式虽已声明但未被消费StyleValue{}
content-class内容层自定义类名string-
content-style内容层自定义样式。当前仅对象样式会被运行时合并StyleValue{}
arrow-class已声明的箭头类名属性,当前模板未消费string''
arrow-style已声明的箭头样式属性,当前模板未消费StyleValue{}
arrow-wrapper-class已声明的箭头容器类名属性,当前模板未消费string''
arrow-wrapper-style已声明的箭头容器样式属性,当前模板未消费StyleValue{}
z-index层级number2000
transition动画名称string'yh-tooltip-fade'
teleported是否挂载至 bodybooleantrue

Slots

插槽名说明
default触发元素
content自定义内容 (覆盖 content 属性)

Events

事件名说明回调参数
show提示框显示时触发-
hide提示框隐藏时触发-
update:visible状态改变时触发(visible: boolean)

主题变量 (CSS Variables)

YhTooltip 当前直接消费以下组件级 CSS 变量:

变量名说明默认值
--yh-tooltip-bgTooltip 背景色var(--yh-bg-color-overlay)
--yh-tooltip-borderTooltip 边框色var(--yh-border-color-light)
--yh-tooltip-textTooltip 文字颜色var(--yh-text-color-primary)

其余层级、字号、圆角和阴影继续复用全局主题令牌,例如 --yh-z-index-tooltip--yh-font-size-sm--yh-radius-md--yh-shadow-lg

暗黑模式

html.dark 或使用 effect="dark" 时,Tooltip 会自动切换为深色主题变量:

  • --yh-tooltip-bg: var(--yh-bg-color-overlay-dark)
  • --yh-tooltip-text: var(--yh-text-color-primary-dark)

Expose

名称说明类型
updatePosition手动更新浮层定位。() => Promise<void> | void
visible当前显示状态引用。Ref<boolean>
triggerRef触发元素引用。Ref<HTMLElement | null>
popperRef浮层元素引用。Ref<HTMLElement | null>

类型导出

名称说明
YhTooltipProps组件 Props 类型
YhTooltipEmits组件事件类型
YhTooltipSlots组件插槽类型
YhTooltipExpose组件 Expose 类型
YhTooltipPlacement弹出位置联合类型
YhTooltipTrigger触发方式联合类型
YhTooltipInstance组件实例类型

Released under the MIT License.