Aliases
hint
TooltipNon-interactive hint shown on focus or pointer interaction.
Stage tooltip: closed
Aliases
hint
Foundations
Tooltip for short hints, clarifications, or status details tied to one trigger.Tooltip for interactive content or multiple actions; use Popover.pointer and focus target
trigger The control that reveals the tooltip.
advisory hint surface
surface Compact non-interactive floating shell.
| Name | Type | Default | Description |
|---|---|---|---|
content | string | — | Tooltip text content. |
open | boolean | false | Controlled open state. |
placement | 'top' | 'right' | 'bottom' | 'left' | 'top' | Preferred anchor placement. |
delayMs | number | 300 | Open delay before the tooltip appears. |
disabled | boolean | false | Disables tooltip behavior. |
onOpenChange | (detail: { open: boolean }) => void | — | Runs when the tooltip opens or closes. |
theme | ThemeContract | — | Sets the theme used to resolve component styles. |
| Name | Payload | Description |
|---|---|---|
openchange | { open: boolean } | Fires when an overlay-style component opens or closes through user interaction. |
| Name | Description |
|---|---|
default | Trigger content. |
Variants
top/right/bottom/left: Placement chooses the preferred anchored direction.Sizes
default: Tooltip uses one compact size tuned for hints.States
closed: Tooltip hiddenopen: Tooltip visibleSemantics
Keyboard
Screen readers
Caveats
Checklist
Implementation notes
Popover when the content needs controls.A short hint attached to one trigger.
<Tooltip content="Quality checks passed."><button type="button">Show hint</button></Tooltip> Use different placements when the surrounding layout calls for it.
<Tooltip placement="right" content="Side hint"><button type="button">Show hint</button></Tooltip> Control tooltip visibility only when a workflow needs deterministic open state.
<Tooltip open={isOpen} onOpenChange={(detail) => isOpen = detail.open} content="Checks passed."><button type="button">Show hint</button></Tooltip> Calculated fixtures; browser evidence is not collected. Layout estimates use declared text behavior and maximum token values.