Skip to content

Using Presets

Problem

Common tooltip, dropdown, popover, and context-menu patterns repeat placement and middleware choices.

Solution

Spread a preset into createPositioner() options.

ts
import { createPositioner } from '@vielzeug/orbit';
import { dropdown, tooltip } from '@vielzeug/orbit/presets';

const tooltipPositioner = createPositioner(trigger, tooltipElement, tooltip());
tooltipPositioner.start();

const dropdownPositioner = createPositioner(select, panel, {
  ...dropdown({ offset: 4 }),
  strategy: 'absolute',
});
dropdownPositioner.start();

Pitfalls

  • Presets are ordinary options; override fields after spreading them.
  • Dispose every positioner independently.