Skip to main content

A popup that appears when an element is hovered or focused, showing a hint for sighted users.

<primitives:tooltip.root>
    <primitives:tooltip.trigger />
    <primitives:tooltip.positioner>
        <primitives:tooltip.content>
            <primitives:tooltip.arrow />
        </primitives:tooltip.content>
    </primitives:tooltip.positioner>
</primitives:tooltip.root>
typo3 ui:add tooltip

Read more about installing Components and Primitives.

Control where the tooltip appears relative to the trigger.

Set a custom delay before the tooltip opens.

Set a custom delay before the tooltip closes after the pointer leaves.

Prevent the tooltip from opening on hover.

Common pattern for icon-only buttons that need accessible labels.

The following tables cover the available props of the Fluid Primitives. For a full list of available client side props and methods, see the Zag.js Machine API.

Provides tooltip state and context for the composed parts. Renders no wrapper element.

NameDescriptionRequiredDefault
defaultOpenboolean
The initial open state of the tooltip when rendered. Use when you don't need to control the open state of the tooltip.
No
false
disabledboolean
Whether the tooltip is disabled.
No
false
openDelayinteger
The open delay of the tooltip.
No
400
closeDelayinteger
The close delay of the tooltip.
No
150
closeOnPointerDownboolean
Whether to close the tooltip on pointerdown.
No
true
closeOnEscapeboolean
Whether to close the tooltip when the Escape key is pressed.
No
true
closeOnScrollboolean
Whether the tooltip should close on scroll.
No
true
closeOnClickboolean
Whether the tooltip should close on click.
No
true
interactiveboolean
Whether the tooltip's content is interactive and remains open when hovered.
No
false
positioningarray
The user provided options used to position the popover content.
No
-
rootIdstring
The root ID of the component, used for hydration and identification.
No
-
idsarray
The IDs of of the component parts for composition.
No
[]
autoMountboolean
Whether the client initializes the component on its own. Set it to false to mount it yourself with `mount()`
No
true

Acts as the anchor that opens the tooltip. Renders a <button> element.

NameDescriptionRequiredDefault
valuestring
No
-
attributesarray
Additional attributes that should be rendered on the component where ui:attributes is used.
No
[]
asChildboolean
If true the component uses its child only without the component template. Like Radix UI asChild or Base UI render props.
No
-
classstring
The CSS class(es) to be applied to the component.
No
-

Rendered data attributes

AttributeDescription
data-tooltip-trigger<uid>
data-valueThe value of the item
data-currentPresent when current
data-expandedPresent when expanded
data-state"open" | "closed"

Positions the tooltip content relative to the trigger. Renders a <div> element.

NameDescriptionRequiredDefault
attributesarray
Additional attributes that should be rendered on the component where ui:attributes is used.
No
[]
asChildboolean
If true the component uses its child only without the component template. Like Radix UI asChild or Base UI render props.
No
-
classstring
The CSS class(es) to be applied to the component.
No
-

Displays the tooltip bubble content. Renders a <div> element.

NameDescriptionRequiredDefault
attributesarray
Additional attributes that should be rendered on the component where ui:attributes is used.
No
[]
asChildboolean
If true the component uses its child only without the component template. Like Radix UI asChild or Base UI render props.
No
-
classstring
The CSS class(es) to be applied to the component.
No
-

Rendered data attributes

AttributeDescription
data-tooltip-content<uid>
data-state"open" | "closed"
data-instant
data-placementThe placement of the content
data-sideThe side of the trigger that the content is positioned on

Displays a decorative tooltip arrow. Renders a <div> element.

NameDescriptionRequiredDefault
attributesarray
Additional attributes that should be rendered on the component where ui:attributes is used.
No
[]
asChildboolean
If true the component uses its child only without the component template. Like Radix UI asChild or Base UI render props.
No
-
classstring
The CSS class(es) to be applied to the component.
No
-
NameTypeDescription
openbooleanWhether the tooltip is open.
setOpen(open: boolean) => voidFunction to open the tooltip.
triggerValuestring | nullThe trigger value
setTriggerValue(value: string | null) => voidFunction to set the trigger value
reposition(options?: Partial<PositioningOptions>) => voidFunction to reposition the popover
getTriggerState(props?: TriggerProps) => TriggerStateReturns the state of a specific trigger, including whether it's the currently active one
getContentState() => ContentStateReturns the state of the content
KeyDescription
TabOpens/closes the tooltip without delay.
EscapeIf open, closes the tooltip without delay.