Popover

Anchored floating surface on bits-ui Popover. Zoom-fade opens from the trigger corner in 100ms, translates 2px from the anchored side, dismisses on outside click or Esc.

Usage

Inverted

Set variant="inverted" for a dark menu floating over a light app — and a light menu floating over a dark app. Surface tokens swap at the content root, so descendant rows pick up the contrast automatically.

Sides

Popover.Root props

Inherits bits-ui Popover.Root props via spread.

PropTypeDescription
boolean (bindable)Controls visibility. Two-way bindable.
(open: boolean) => voidFires when the open state changes.

Popover.Content props

PropTypeDescription
'top' | 'right' | 'bottom' | 'left'Preferred anchor side. Collision logic may flip.
'start' | 'center' | 'end'Cross-axis alignment relative to the trigger.
numberDistance in px from the trigger edge.
'default' | 'inverted'Surface treatment. Inverted swaps popover/accent CSS vars to render dark on light (and light on dark) — Bloom’s signature menu identity.
ComponentProps<Popover.Portal>Forwarded to the internal portal.
stringMerged onto the floating surface via tailwind-merge.