提示信息

提示信息用于显示简短、信息性的消息,当用户与元素交互时出现。


安装

上述命令仅用于单独安装。如果 @heroui/react 已全局安装,则可以跳过此步骤。

导入

对于单独安装,请注意您应该将 ./node_modules/@heroui/theme/dist/components/popover.js 添加到您的 tailwind.config.js 文件中,因为提示信息复用了弹出框样式。

用法

带箭头

颜色

位置

偏移量

受控

带延迟

您可以使用 delaycloseDelay 属性控制提示信息的打开和关闭延迟。

悬停在第二个按钮上会立即显示提示信息。如果您等待一段时间延迟后再悬停在另一个元素上,则延迟会重新开始。

自定义内容

自定义动画

提示信息组件提供了 motionProps 属性来自定义进入/退出动画。

在这里了解更多关于 Framer motion variants 的信息。这里

插槽

  • base: 主要的提示信息插槽,它包裹提示信息内容。
  • arrow: 箭头插槽,它包裹提示信息箭头,箭头的放置位置基于提示信息的位置,例如 data-[placement=top]:...

自定义样式

您可以通过将自定义 Tailwind CSS 类传递给组件插槽来自定义 Tooltip 组件。

数据属性

Tooltip 组件在 base 元素上具有以下属性

  • data-open: 当 tooltip 打开时。基于 tooltip 状态。
  • data-placement: tooltip 的位置。基于 placement 属性。箭头元素会基于此属性定位。
  • data-disabled: 当 tooltip 被禁用时。基于 isDisabled 属性。

无障碍性

  • 键盘焦点管理和跨浏览器标准化。
  • 悬停管理和跨浏览器标准化。
  • 屏幕阅读器标签支持 (aria-describedby)。
  • 通过 ARIA 作为 tooltip 暴露给辅助技术。
  • 匹配原生 tooltip 行为,首次 tooltip 悬停有延迟,后续 tooltip 无延迟。

API

Tooltip Props

属性类型默认值
children*
ReactNode[]
content
ReactNode
size
sm | md | lg
"md"
color
default | primary | secondary | success | warning | danger
"default"
radius
none | sm | md | lg | full
"md"
shadow
none | sm | md | lg
"sm"
placement
TooltipPlacement
"top"
delay
number
"0"
closeDelay
number
"500"
isOpen
boolean
defaultOpen
boolean
offset
number
"7"
containerPadding
number
"12"
crossOffset
number
"0"
showArrow
boolean
false
shouldFlip
boolean
true
triggerScaleOnOpen
boolean
true
shouldBlockScroll
boolean
true
isKeyboardDismissDisabled
boolean
false
isDismissable
boolean
false
shouldCloseOnBlur
boolean
true
motionProps
MotionProps
portalContainer
HTMLElement
"document.body"
updatePositionDeps
any[]
"[]"
isDisabled
boolean
false
disableAnimation
boolean
false
classNames
Partial<Record<"base"|"content", string>>

Tooltip Events

属性类型默认值
onOpenChange
(isOpen: boolean) => void
shouldCloseOnInteractOutside
(e: HTMLElement) => void
onClose
() => void

Tooltip 类型

Tooltip Placement

Motion Props