DropdownMenu

16 parts

A button-triggered menu of actions, opened on click and built on top of Menu, so it inherits keyboard navigation, typeahead, nested submenus, and checkbox/radio items. Unlike a context menu, it is anchored to a persistent trigger button rather than the pointer. Use it for action menus on a toolbar, an avatar, or a "more" button — settings, row actions, account menus, and the like. The root owns open state and provides context to every part; bind v-model:open (or listen to update:open) to control or observe whether the menu is open.

Demo

Loading demo…

Anatomy

Import the parts and compose them. Each part forwards attributes to its underlying element.

vue
import {
  DropdownMenuArrow,
  DropdownMenuCheckboxItem,
  DropdownMenuContent,
  DropdownMenuGroup,
  DropdownMenuItem,
  DropdownMenuItemIndicator,
  DropdownMenuLabel,
  DropdownMenuPortal,
  DropdownMenuRadioGroup,
  DropdownMenuRadioItem,
  DropdownMenuRoot,
  DropdownMenuSeparator,
  DropdownMenuSub,
  DropdownMenuSubContent,
  DropdownMenuSubTrigger,
  DropdownMenuTrigger,
} from '@robonen/primitives/menus/dropdown-menu';

<DropdownMenuRoot>
  <DropdownMenuArrow />
  <DropdownMenuCheckboxItem />
  <DropdownMenuContent />
  <DropdownMenuGroup />
  <DropdownMenuItem />
  <DropdownMenuItemIndicator />
  <DropdownMenuLabel />
  <DropdownMenuPortal />
  <DropdownMenuRadioGroup />
  <DropdownMenuRadioItem />
  <DropdownMenuSeparator />
  <DropdownMenuSub />
  <DropdownMenuSubContent />
  <DropdownMenuSubTrigger />
  <DropdownMenuTrigger />
</DropdownMenuRoot>

API Reference