Components
Tooltip
A popup that displays information related to an element when hovered or focused.
php artisan blatui:add tooltip
Add to library
<x-ui.tooltip>
<x-ui.tooltip-trigger>
<x-ui.button variant="outline">Hover</x-ui.button>
</x-ui.tooltip-trigger>
<x-ui.tooltip-content>
Add to library
</x-ui.tooltip-content>
</x-ui.tooltip>
Colors
Light tooltip
Something went wrong
{{-- Recolour the tooltip — the arrow inherits the background, so it always matches. --}}
<div class="flex items-center gap-3">
<x-ui.tooltip>
<x-ui.tooltip-trigger>
<x-ui.button variant="outline">Light</x-ui.button>
</x-ui.tooltip-trigger>
<x-ui.tooltip-content class="bg-popover text-popover-foreground border shadow-md">
Light tooltip
</x-ui.tooltip-content>
</x-ui.tooltip>
<x-ui.tooltip>
<x-ui.tooltip-trigger>
<x-ui.button variant="outline">Error</x-ui.button>
</x-ui.tooltip-trigger>
<x-ui.tooltip-content class="bg-destructive text-white">
Something went wrong
</x-ui.tooltip-content>
</x-ui.tooltip>
</div>
Delayed
Appears after a 500ms delay
<x-ui.tooltip :delay="500">
<x-ui.tooltip-trigger><x-ui.button variant="outline">Hover and wait</x-ui.button></x-ui.tooltip-trigger>
<x-ui.tooltip-content>Appears after a 500ms delay</x-ui.tooltip-content>
</x-ui.tooltip>
Icon Button
Add to library
<x-ui.tooltip>
<x-ui.tooltip-trigger>
<x-ui.button variant="outline" size="icon" aria-label="Add to library"><x-lucide-plus aria-hidden="true" /></x-ui.button>
</x-ui.tooltip-trigger>
<x-ui.tooltip-content>Add to library</x-ui.tooltip-content>
</x-ui.tooltip>
No Arrow
No arrow tooltip
{{-- Hide the pointer with the `arrow` prop. --}}
<x-ui.tooltip>
<x-ui.tooltip-trigger>
<x-ui.button variant="outline">Hover</x-ui.button>
</x-ui.tooltip-trigger>
<x-ui.tooltip-content :arrow="false">
No arrow tooltip
</x-ui.tooltip-content>
</x-ui.tooltip>
Rich Content
Keyboard shortcut
Press ⌘ K to open the command menu.
{{-- Multi-line content with a title and a keyboard hint. --}}
<x-ui.tooltip>
<x-ui.tooltip-trigger>
<x-ui.button variant="outline">Hover for details</x-ui.button>
</x-ui.tooltip-trigger>
<x-ui.tooltip-content class="max-w-xs px-3 py-2">
<p class="font-medium">Keyboard shortcut</p>
<p class="text-primary-foreground/80 mt-1">Press <x-ui.kbd class="bg-primary-foreground/15 text-primary-foreground border-0">⌘</x-ui.kbd> <x-ui.kbd class="bg-primary-foreground/15 text-primary-foreground border-0">K</x-ui.kbd> to open the command menu.</p>
</x-ui.tooltip-content>
</x-ui.tooltip>
Sides
Top tooltip
Right tooltip
Bottom tooltip
Left tooltip
<div class="flex flex-wrap items-center justify-center gap-3">
<x-ui.tooltip>
<x-ui.tooltip-trigger><x-ui.button variant="outline">Top</x-ui.button></x-ui.tooltip-trigger>
<x-ui.tooltip-content side="top">Top tooltip</x-ui.tooltip-content>
</x-ui.tooltip>
<x-ui.tooltip>
<x-ui.tooltip-trigger><x-ui.button variant="outline">Right</x-ui.button></x-ui.tooltip-trigger>
<x-ui.tooltip-content side="right">Right tooltip</x-ui.tooltip-content>
</x-ui.tooltip>
<x-ui.tooltip>
<x-ui.tooltip-trigger><x-ui.button variant="outline">Bottom</x-ui.button></x-ui.tooltip-trigger>
<x-ui.tooltip-content side="bottom">Bottom tooltip</x-ui.tooltip-content>
</x-ui.tooltip>
<x-ui.tooltip>
<x-ui.tooltip-trigger><x-ui.button variant="outline">Left</x-ui.button></x-ui.tooltip-trigger>
<x-ui.tooltip-content side="left">Left tooltip</x-ui.tooltip-content>
</x-ui.tooltip>
</div>
API Reference
Props, slots and exposed methods for
<x-ui.tooltip>.
Props
| Prop | Type | Default | Description |
|---|---|---|---|
delay |
int
|
0
|
Milliseconds to wait after hover or focus before the tooltip opens. |
Slots
| Slot | Description |
|---|---|
default |
The tooltip composition: an <x-ui.tooltip-trigger> wrapping the element that opens the tooltip, and an <x-ui.tooltip-content> holding the tooltip text. Content is teleported to <body> and anchored to the trigger. |
trigger |
Use <x-ui.tooltip-trigger> for the hover/focus target. Wrap a button or any focusable element so keyboard users can reveal the tooltip. |
content |
Use <x-ui.tooltip-content> for the floating panel. It accepts side (top, right, bottom, left), align (start, center, end), sideOffset (px) and arrow (bool). Recolor it by passing background/text classes via class. |
Methods
Available on the component's Alpine scope — call them from markup in the slot
(e.g. @click="…").
| Method | Description |
|---|---|
show() |
Open the tooltip after the configured delay. |
hide() |
Cancel any pending delay and close the tooltip immediately. |