工具提示

工具提示會在使用者與元素互動時顯示簡短的資訊訊息。


安裝

上述命令僅適用於單獨安裝。如果已全域安裝 @nextui-org/react 則可跳過此步驟。

導入

對於單獨安裝,請注意您應該將 ./node_modules/@nextui-org/theme/dist/components/popover.js 加入您的 tailwind.config.js 檔案中,因為 tooltip 重複使用了 popover 的樣式。

使用方式

帶有箭頭

顏色

位置

偏移量

受控的

帶有延遲

您可以使用 delaycloseDelay 屬性來控制工具提示的 openclose 延遲時間。

將滑鼠懸停在第二個按鈕上會立即顯示工具提示。如果您在懸停到另一個元素之前等待一段延遲時間,則延遲會重新開始。

自訂內容

自訂動態效果

工具提示提供 motionProps 屬性來自訂 enter / exit 動畫。

深入了解 Framer motion 變體,請點擊此處

插槽

  • base:主要的工具提示插槽,它會包覆工具提示的內容。
  • arrow:箭頭插槽,它會包覆工具提示的箭頭,箭頭的位置是根據工具提示的放置位置而定,例如:data-[placement=top]:...

自訂樣式

您可以透過將自訂的 Tailwind CSS 類別傳遞到元件插槽,來自訂 Tooltip 元件。

資料屬性

Tooltipbase 元素上具有下列屬性:

  • data-open:當工具提示開啟時。基於工具提示的狀態。
  • data-placement:工具提示的放置位置。基於 placement 屬性。箭頭元素的位置是根據此屬性而定。
  • data-disabled:當工具提示停用時。基於 isDisabled 屬性。

無障礙功能

  • 鍵盤焦點管理和跨瀏覽器正規化。
  • 懸停管理和跨瀏覽器正規化。
  • 螢幕閱讀器標籤支援 (aria-describedby)。
  • 透過 ARIA 作為工具提示公開給輔助技術。
  • 符合原生工具提示行為,第一次懸停時有延遲,後續工具提示則沒有延遲。

API

工具提示屬性

屬性類型預設值
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>>

工具提示事件

屬性類型預設值
onOpenChange
(isOpen: boolean) => void
shouldCloseOnInteractOutside
(e: HTMLElement) => void
onClose
() => void

工具提示類型

工具提示放置位置

動態屬性