Skip to content

Tooltip

A tooltip that appears on hover/focus after a delay.

html
<span
  data-controller="zag-tooltip"
  data-zag-tooltip-open-delay-value="300"
  class="relative inline-block"
>
  <button
    data-part="trigger"
    class="border-input bg-popover focus-visible:ring-ring rounded-lg border px-4 py-2 text-sm font-medium shadow-sm focus:outline-none focus-visible:ring-2"
  >
    Hover or focus me
  </button>
  <div data-part="positioner">
    <div
      data-part="content"
      hidden
      class="bg-foreground text-background z-50 rounded px-2 py-1 text-xs font-medium shadow"
    >
      Saves your changes (⌘S)
    </div>
  </div>
</span>

Parts

trigger, positioner, arrow, arrow-tip, content.

Values

AttributeTypeDefaultDescription
data-zag-tooltip-open-valueBooleanfalseOpen by default.
data-zag-tooltip-open-delay-valueNumber1000Delay (ms) before showing.
data-zag-tooltip-close-delay-valueNumber500Delay (ms) before hiding.
data-zag-tooltip-placement-valueString"bottom"Popper placement.
data-zag-tooltip-gutter-valueNumber8Gap (px) between trigger and content.
data-zag-tooltip-interactive-valueBooleanfalseKeep open while hovering the content.
data-zag-tooltip-close-on-escape-valueBooleantrueClose on Escape.
data-zag-tooltip-close-on-pointer-down-valueBooleantrueClose when the trigger is pressed.

Events

Emits zag-tooltip:changedetail is { open }.

Programmatic control

open(), close(), isOpen.