1. framework components
  2. tooltip

Tooltip

A floating label that appears on hover or focus, providing additional context.

Arrow

You may optionally enable arrows via the Arrow and ArrowTip component parts. Note that Zag.js opts to style these with CSS custom properties, which can be adjusted using a style attribute.

Z-Index

Sibling (10)

Headless

Programmatic Control

This is made possible via the Provider Pattern .

Direction

API Reference

Root

Property Default Type
children -
ReactNode
dir "ltr"
"ltr" | "rtl" | undefined
The document's text/writing direction.
aria-label -
string | undefined
Custom label for the tooltip.
ids -
Partial<{ trigger: string; content: string; arrow: string; positioner: string; }> | undefined
The ids of the elements in the tooltip. Useful for composition.
openDelay 400
number | undefined
The open delay of the tooltip.
closeDelay 150
number | undefined
The close delay of the tooltip.
closeOnPointerDown true
boolean | undefined
Whether to close the tooltip on pointerdown.
closeOnEscape true
boolean | undefined
Whether to close the tooltip when the Escape key is pressed.
closeOnScroll true
boolean | undefined
Whether the tooltip should close on scroll
closeOnClick true
boolean | undefined
Whether the tooltip should close on click
interactive false
boolean | undefined
Whether the tooltip's content is interactive. In this mode, the tooltip will remain open when user hovers over the content.
onOpenChange -
((details: OpenChangeDetails) => void) | undefined
Function called when the tooltip is opened.
positioning -
PositioningOptions | undefined
The user provided options used to position the popover content
disabled -
boolean | undefined
Whether the tooltip is disabled
open -
boolean | undefined
The controlled open state of the tooltip
defaultOpen -
boolean | undefined
The initial open state of the tooltip when rendered. Use when you don't need to control the open state of the tooltip.
getRootNode -
(() => Node | ShadowRoot | Document) | undefined
A root node to correctly resolve document in custom environments. E.x.: Iframes, Electron.

RootProvider

Property Default Type
value -
TooltipApi<PropTypes>
children -
ReactNode

RootContext

Property Default Type
children -
(tooltip: TooltipApi<PropTypes>) => ReactNode

Trigger

Property Default Type
element -
((attributes: HTMLAttributes<"button">) => Element) | undefined
Render the element yourself

Positioner

Property Default Type
element -
((attributes: HTMLAttributes<"div">) => Element) | undefined
Render the element yourself

Content

Property Default Type
element -
((attributes: HTMLAttributes<"div">) => Element) | undefined
Render the element yourself

Arrow

Property Default Type
element -
((attributes: HTMLAttributes<"div">) => Element) | undefined
Render the element yourself

ArrowTip

Property Default Type
element -
((attributes: HTMLAttributes<"div">) => Element) | undefined
Render the element yourself