Enter
Overlays

MenuPopover

A dot-menu popover. Items cascade in, and the whole panel scales out of the trigger corner.

Close button

Usage

<MenuPopover
  align="start"
  stagger={30}
  dismissible={false}
  spring="smooth"
  items={[
    { id: "edit", label: "Edit" },
    { id: "delete", label: "Delete", destructive: true },
  ]}
/>

How the motion works

The panel's transform origin is pinned to the trigger corner so it unfolds out of the button rather than appearing centred on itself. Items carry index-proportional transition delays for the cascade. Focus moves into the panel on open and returns to the trigger on close, so the menu is fully operable without a pointer.

useSpringValueusePress

Props

PropTypeDefaultDescription
itemsMenuItem[]Each has id, label and optional icon, destructive, disabled, onSelect.
triggerReactNodeCustom trigger content. Defaults to a three-dot glyph.
align"start" | "end""start"Which edge the panel aligns to.
staggernumber30Delay between item entrances, in ms.