Tooltip

A small popup that appears on hover or focus to show additional information. Built on bits-ui tooltip primitives.

Preview

<script>
  import { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } from '@vultra/ui';
  import { Button } from '@vultra/ui';
</script>

<TooltipProvider>
  <Tooltip>
    <TooltipTrigger>
      <Button variant="outline">Hover me</Button>
    </TooltipTrigger>
    <TooltipContent>
      <p>Add to library</p>
    </TooltipContent>
  </Tooltip>
</TooltipProvider>

Sides

<script>
  import { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } from '@vultra/ui';
  import { Button } from '@vultra/ui';
</script>

<TooltipProvider>
  <div class="flex gap-4">
    <Tooltip>
      <TooltipTrigger>
        <Button variant="outline" size="sm">Top</Button>
      </TooltipTrigger>
      <TooltipContent side="top">Top tooltip</TooltipContent>
    </Tooltip>

    <Tooltip>
      <TooltipTrigger>
        <Button variant="outline" size="sm">Right</Button>
      </TooltipTrigger>
      <TooltipContent side="right">Right tooltip</TooltipContent>
    </Tooltip>

    <Tooltip>
      <TooltipTrigger>
        <Button variant="outline" size="sm">Bottom</Button>
      </TooltipTrigger>
      <TooltipContent side="bottom">Bottom tooltip</TooltipContent>
    </Tooltip>

    <Tooltip>
      <TooltipTrigger>
        <Button variant="outline" size="sm">Left</Button>
      </TooltipTrigger>
      <TooltipContent side="left">Left tooltip</TooltipContent>
    </Tooltip>
  </div>
</TooltipProvider>

With Keyboard Shortcut

<script>
  import { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } from '@vultra/ui';
  import { Button } from '@vultra/ui';
  import { Kbd } from '@vultra/ui';
</script>

<TooltipProvider>
  <Tooltip>
    <TooltipTrigger>
      <Button variant="outline" size="sm">Copy</Button>
    </TooltipTrigger>
    <TooltipContent>
      <p>Copy to clipboard <Kbd>⌘C</Kbd></p>
    </TooltipContent>
  </Tooltip>
</TooltipProvider>

Structure

  • TooltipProvider — wraps tooltip group, controls delay and duration
  • Tooltip — root (manages open state)
  • TooltipTrigger — the element that triggers the tooltip
  • TooltipContent — the floating popup

Props

TooltipProvider

PropTypeDefaultDescription
delayDurationnumber700Delay before showing (ms)
skipDelayDurationnumber300Delay to skip when moving between tooltips

TooltipContent

PropTypeDefaultDescription
side'top' \| 'right' \| 'bottom' \| 'left''top'Popup position
sideOffsetnumber0Distance from trigger (px)
classstringAdditional classes

Accessibility

  • Trigger is focusable — tooltip appears on Focus and disappears on Blur.
  • Escape key closes the tooltip.
  • role="tooltip" with aria-describedby linking trigger to content.
  • Delay prevents accidental tooltip flashing during navigation.
  • Arrow pointer connects tooltip visually to trigger.

Install

npx @vultra/cli add tooltip