Skip to content

Tooltip

Problem

A tooltip must follow its trigger and stay visible within clipping boundaries.

Solution

Create a positioner when the tooltip becomes visible; it starts immediately.

ts
import { createPositioner, flip, offset, shift } from '@vielzeug/orbit';

const positioner = createPositioner(trigger, tooltip, {
  middleware: [offset(8), flip(), shift({ padding: 6 })],
  placement: 'top',
});

// On hide:
positioner.dispose();

Pitfalls

  • Create the positioner only after both elements mount.
  • Dispose before removing the floating element.