Uqudo UIregistry

Dropdown Menu

Displays a menu to the user, triggered by a button.

Installation

npx shadcn@latest add @uqudo/dropdown-menu

Usage

import {
  DropdownMenu,
  DropdownMenuContent,
  DropdownMenuItem,
  DropdownMenuLabel,
  DropdownMenuSeparator,
  DropdownMenuTrigger,
} from "@/components/uqudo/ui/dropdown-menu"
<DropdownMenu>
  <DropdownMenuTrigger>Open</DropdownMenuTrigger>
  <DropdownMenuContent>
    <DropdownMenuLabel>My Account</DropdownMenuLabel>
    <DropdownMenuSeparator />
    <DropdownMenuItem>Profile</DropdownMenuItem>
    <DropdownMenuItem>Billing</DropdownMenuItem>
    <DropdownMenuItem variant="destructive">Log out</DropdownMenuItem>
  </DropdownMenuContent>
</DropdownMenu>

Icons placed inside an item are sized automatically. Add a DropdownMenuShortcut as the last child to right-align a keyboard hint.

Examples

Checkboxes

DropdownMenuCheckboxItem renders a check mark when checked is true.

Radio group

Wrap DropdownMenuRadioItems in a DropdownMenuRadioGroup for a single selection.

API Reference

Prop

Type

Prop

Type

Prop

Type

Prop

Type

Sub-components

ComponentRendersNotes
DropdownMenuDropdownMenu.RootAccepts open, defaultOpen, onOpenChange, modal.
DropdownMenuTriggerDropdownMenu.TriggerUse asChild to wrap your own button.
DropdownMenuPortalDropdownMenu.PortalAlready included in DropdownMenuContent.
DropdownMenuGroupDropdownMenu.GroupGroups related items.
DropdownMenuLabelDropdownMenu.LabelMuted heading. Supports inset.
DropdownMenuSeparatorDropdownMenu.SeparatorThin divider between sections.
DropdownMenuShortcut<span>Right-aligned keyboard hint.
DropdownMenuRadioGroupDropdownMenu.RadioGroupAccepts value and onValueChange.
DropdownMenuSubDropdownMenu.SubWraps a nested menu.
DropdownMenuSubTriggerDropdownMenu.SubTriggerAppends a chevron. Supports inset.
DropdownMenuSubContentDropdownMenu.SubContentThe nested panel.

Data attributes

Items expose data-slot="dropdown-menu-item", data-variant with the resolved variant and data-inset when inset is set. Every other part carries a data-slot named after the component (dropdown-menu-content, dropdown-menu-label, ...).

On this page