Dropdown Menu

Anchored menu on bits-ui DropdownMenu. Content springs open on mount (snappy scale/opacity) and pointer-proximity tints items as the cursor approaches.

Usage

Inverted

Set variant="inverted" on the content for a dark menu over a light app — Bloom’s signature menu identity. Surface and accent CSS vars swap at the content root, so item rows, separators, and focus rings flip contrast automatically.

Checkboxes & radio

Dialog from menu item

Close the menu first, then open the dialog after one tick — prevents focus from being trapped between two overlays simultaneously.

Inherits bits-ui DropdownMenu.Root props via spread.

PropTypeDescription
boolean (bindable)Controls visibility. Two-way bindable.
(open: boolean) => voidFires when the menu opens or closes.
'ltr' | 'rtl'Reading direction.
PropTypeDescription
numberDistance in px from the trigger edge.
'start' | 'center' | 'end'Cross-axis alignment relative to the trigger.
'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<DropdownMenu.Portal>Forwarded to the internal portal.
stringMerged onto the content surface via tailwind-merge.