Dropdown Menu

Displays a menu to the user triggered by a button. Plays open and close sounds.

Displays a menu to the user triggered by a button. The sensory-ui Dropdown Menu plays sounds when opening and closing, confirming the menu interaction.

Pattern: Open / close

Demo

Live demoSwitch sound packs to compare

Installation

npx shadcn@latest add SatyamVyas04/sensory-ui/sensory-ui-dropdown-menu

Import

import {
  DropdownMenu,
  DropdownMenuCheckboxItem,
  DropdownMenuContent,
  DropdownMenuGroup,
  DropdownMenuItem,
  DropdownMenuLabel,
  DropdownMenuRadioGroup,
  DropdownMenuRadioItem,
  DropdownMenuSeparator,
  DropdownMenuShortcut,
  DropdownMenuSub,
  DropdownMenuSubContent,
  DropdownMenuSubTrigger,
  DropdownMenuTrigger,
} from "@/components/ui/sensory-ui/dropdown-menu";

Sound Props

PropTypeDefaultDescription
soundSoundRole | false"overlay.open"Sound played when the menu opens.
closeSoundSoundRole | false"overlay.close"Sound played when the menu closes.
volumenumber1Per-component volume multiplier (0–1).

Default Sound Role

overlay.open on open, overlay.close on close.

Usage

<DropdownMenu>
  <DropdownMenuTrigger>Open</DropdownMenuTrigger>
  <DropdownMenuContent>
    <DropdownMenuItem>Profile</DropdownMenuItem>
    <DropdownMenuItem>Settings</DropdownMenuItem>
    <DropdownMenuItem>Logout</DropdownMenuItem>
  </DropdownMenuContent>
</DropdownMenu>

Custom sounds

<DropdownMenu sound="interaction.tap" closeSound="interaction.subtle">
  {/* ... */}
</DropdownMenu>

Disable sounds

<DropdownMenu sound={false} closeSound={false}>
  {/* ... */}
</DropdownMenu>

Customizations

Action menu

<DropdownMenu sound="overlay.open" closeSound="overlay.close">
  <DropdownMenuTrigger asChild>
    <Button variant="ghost" size="icon">
      <IconDots className="size-4" />
    </Button>
  </DropdownMenuTrigger>
  <DropdownMenuContent>
    <DropdownMenuItem>Edit</DropdownMenuItem>
    <DropdownMenuItem>Duplicate</DropdownMenuItem>
    <DropdownMenuSeparator />
    <DropdownMenuItem className="text-destructive">Delete</DropdownMenuItem>
  </DropdownMenuContent>
</DropdownMenu>

User menu

<DropdownMenu sound="overlay.open" closeSound="overlay.close">
  <DropdownMenuTrigger>
    <Avatar />
  </DropdownMenuTrigger>
  <DropdownMenuContent>
    <DropdownMenuItem>Profile</DropdownMenuItem>
    <DropdownMenuItem>Settings</DropdownMenuItem>
    <DropdownMenuItem>Sign out</DropdownMenuItem>
  </DropdownMenuContent>
</DropdownMenu>

Default Props

PropValue
sound"overlay.open"
closeSound"overlay.close"
volume1

Tasteful Sound Choices

SituationRecommended SoundWhy
Action menuoverlay.open / overlay.closeDefault: clear menu cue
User profile menuoverlay.open / overlay.closeConsistent overlay pattern
Sort/filter optionsinteraction.tapLighter for utility menus
Destructive actionsnotification.warningFor delete/remove items

When to Use

  • Action menus: Card actions, row actions, toolbar overflow
  • User menus: Profile dropdown, account settings
  • Sort/filter: Sort options, filter toggles
  • Navigation: Secondary navigation, settings access

Avoid sound on

  • Dropdowns that open on hover (sounds would be premature)
  • Dropdowns with many items (sound on open is sufficient)

Event Triggers

EventDefault Sound
Menu opensoverlay.open
Menu closesoverlay.close

shadcn/ui Reference

View the original Dropdown Menu documentation.