Usage

Helpful information
<span class="zui-tooltip">
<button class="zui-button" style="anchor-name: --tooltip-demo" data-tooltip-trigger="tooltip-demo">Hover me</button>
<span popover="manual" id="tooltip-demo" class="zui-tooltip-content zui-tooltip-placement-top" style="position-anchor: --tooltip-demo" role="tooltip">Helpful information</span>
</span>

<script>
document.querySelectorAll('[data-tooltip-trigger]').forEach((trigger) => {
  const popover = document.getElementById(trigger.dataset.tooltipTrigger)
  if (!popover) return
  trigger.addEventListener('mouseenter', () => popover.showPopover())
  trigger.addEventListener('mouseleave', () => popover.hidePopover())
  trigger.addEventListener('focus', () => popover.showPopover())
  trigger.addEventListener('blur', () => popover.hidePopover())
})
</script>

Placement

Tooltips default to top placement. Use the placement prop (or placement class) to change direction.

Appears above Appears below Appears left Appears right
<!-- Top (default) -->
<span class="zui-tooltip">
<button class="zui-button" style="anchor-name: --tt-top" data-tooltip-trigger="tt-top">Top</button>
<span popover="manual" id="tt-top" class="zui-tooltip-content zui-tooltip-placement-top" style="position-anchor: --tt-top" role="tooltip">Appears above</span>
</span>

<!-- Bottom -->
<span class="zui-tooltip">
<button class="zui-button" style="anchor-name: --tt-bottom" data-tooltip-trigger="tt-bottom">Bottom</button>
<span popover="manual" id="tt-bottom" class="zui-tooltip-content zui-tooltip-placement-bottom" style="position-anchor: --tt-bottom" role="tooltip">Appears below</span>
</span>

<!-- Left -->
<span class="zui-tooltip">
<button class="zui-button" style="anchor-name: --tt-left" data-tooltip-trigger="tt-left">Left</button>
<span popover="manual" id="tt-left" class="zui-tooltip-content zui-tooltip-placement-left" style="position-anchor: --tt-left" role="tooltip">Appears left</span>
</span>

<!-- Right -->
<span class="zui-tooltip">
<button class="zui-button" style="anchor-name: --tt-right" data-tooltip-trigger="tt-right">Right</button>
<span popover="manual" id="tt-right" class="zui-tooltip-content zui-tooltip-placement-right" style="position-anchor: --tt-right" role="tooltip">Appears right</span>
</span>

<script>
document.querySelectorAll('[data-tooltip-trigger]').forEach((trigger) => {
  const popover = document.getElementById(trigger.dataset.tooltipTrigger)
  if (!popover) return
  trigger.addEventListener('mouseenter', () => popover.showPopover())
  trigger.addEventListener('mouseleave', () => popover.hidePopover())
  trigger.addEventListener('focus', () => popover.showPopover())
  trigger.addEventListener('blur', () => popover.hidePopover())
})
</script>

CSS custom properties

PropertyDefaultDescription
--zui-tooltip-bglight-dark(var(--color-mist-700), var(--color-mist-200))Background colour
--zui-tooltip-fglight-dark(var(--color-mist-50), var(--color-mist-900))Text colour

Theme

Copy this CSS to your project: