Overlay
Tooltip
A floating label that appears on hover. Supports text, keyboard shortcuts, arrows, positioning, delay, and custom content.
Basic Usage
<script lang="ts">
import { Tooltip, Button } from 'sv5ui';
</script>
<Tooltip text="Add to library">
<Button>Hover me</Button>
</Tooltip>Positions
Place on any side of the trigger.
<Tooltip text="Top" side="top">
<Button variant="outline">Top</Button>
</Tooltip>
<Tooltip text="Right" side="right">
<Button variant="outline">Right</Button>
</Tooltip>
<Tooltip text="Bottom" side="bottom">
<Button variant="outline">Bottom</Button>
</Tooltip>
<Tooltip text="Left" side="left">
<Button variant="outline">Left</Button>
</Tooltip>With Arrow
<Tooltip text="With arrow" arrow>
<Button>Hover me</Button>
</Tooltip>
<Tooltip text="Custom arrow" arrow={{ width: 12, height: 6 }}>
<Button variant="outline">Custom arrow</Button>
</Tooltip>With Keyboard Shortcuts
Show keyboard shortcuts alongside the text.
<Tooltip text="Copy" kbds={['meta', 'c']}>
<Button>Copy</Button>
</Tooltip>
<Tooltip text="Search" kbds={['meta', 'k']}>
<Button variant="outline">Search</Button>
</Tooltip>Custom Content
Use the content snippet for rich content.
<Tooltip>
<Button>Rich tooltip</Button>
{#snippet content()}
<div class="flex flex-col gap-1">
<span class="font-semibold">Custom Content</span>
<span class="text-xs opacity-70">This tooltip uses the content snippet for rich markup.</span>
</div>
{/snippet}
</Tooltip>Disabled
<Tooltip text="You won't see me" disabled>
<Button>Disabled tooltip</Button>
</Tooltip>Delay
Custom delay before showing.
<Tooltip text="Instant" delayDuration={0}>
<Button>No delay</Button>
</Tooltip>
<Tooltip text="Slow" delayDuration={1000}>
<Button variant="outline">1s delay</Button>
</Tooltip>UI Slots
| Slot | Description |
|---|---|
content | Main tooltip content |
arrow | Arrow element |
text | Text content |
kbds | Keyboard shortcuts wrapper |
Snippets
| Snippet | Description |
|---|---|
children | Trigger element (receives open state) |
content | Custom tooltip content |
Props
| Prop | Type | Default |
|---|---|---|
text | string | - |
kbds | (string | KbdProps)[] | - |
arrow | boolean | ArrowProps | false |
transition | boolean | true |
portal | boolean | true |
disabled | boolean | false |
delayDuration | number | - |
open | boolean | - |
side | 'top'|'right'|'bottom'|'left' | 'top' |
align | 'start'|'center'|'end' | 'center' |
sideOffset | number | 8 |
ref | HTMLElement | null | null |
class | string | - |
ui | Record<Slot, Class> | - |