Loading
Loading
Loading
mobile footer

Build the Interaction Layer Your Website is Missing.

Browse All EffectsBrowse All EffectsBrowse All EffectsUpgrade to ProUpgrade to ProUpgrade to Pro

80+ effects free, forever. No credit card.

© 2026 Hyperiux. All Rights Reserved.

AI Component CatalogueHey AI, Learn About Us
Platform

Vault

  • Documentation
  • Pricing
  • Blog
  • Community
  • NPM
  • MCP

Categories

  • All Effects
  • WebGL
  • Text
  • Backgrounds
  • Buttons
  • Carousels
  • Scroll
  • Components
  • Navigation
  • Cursor
  • Transitions
  • Loaders

Documents

  • Introduction
  • Installation
  • CLI
  • Dependencies
  • License

Legal

  • License Agreement
  • Terms of Service
  • Privacy Policy
  • Refund Policy
Socials
  • Twitter / X
  • LinkedIn
  • GitHub
  • Instagram
Contact Us
  • hello@hyperiux.com
New effects, in your inbox

Every new drop, plus the occasional behind-the-scenes build. No spam. Unsubscribe anytime.

Loading
Home/Dropdown Menu Component

Dropdown Menu Component

An animated dropdown menu with smooth panel expansion, staggered options, sliding highlights, rolling text, and responsive selection feedback.

@base-ui/reactclass-variance-authoritygsapmotiontailwind-merge
DemoDemoDemo

Tune the Real Props

Overview

Dropdown Menu expands its panel from the trigger while items enter in a staggered sequence. A shared highlight glides between rows, labels can roll on hover, and the trigger value rolls when the selection changes. It also supports hover opening, type-to-jump, and a short close delay so users see their choice confirmed.

Use it when related actions or choices should stay available without taking permanent space, such as delivery schedules, notification preferences, report settings, or toolbar commands.


Theme and Interaction Customisation

Adjust title weight, optional item descriptions, a checkmark selection indicator, sliding or top-fill hover highlights, and a plus or chevron trigger icon. Motion controls cover panel animation, duration, delay, stagger, rolling text, press feedback, hover activation, Exit fast, and Close delay on select.


Example Production Use Case

A subscription store can use it on the account page for delivery frequency. Customers see the current schedule in the trigger, pick Every month from a described list, and the trigger rolls to the new value once saved.

A reporting dashboard can place it in the header for date intervals and export formats, keeping the toolbar compact while every option stays a click away.

A project tool can use it as a row action menu for rename, duplicate, and archive, with descriptions clarifying what each command does.


Best Used For

  • Subscription management and recurring-service settings.
  • SaaS application settings with short option lists.
  • Reporting intervals and export settings.
  • Product configuration with a few related options.
  • Application toolbars grouping secondary commands.
  • Project tools configuring review cycles and reminders.
  • Account preferences like notification frequency.
  • Administrative interfaces with infrequent actions.

Not For

When users need to compare alternatives side by side, Radio or a visible option group works better.

Very large option sets need a searchable combobox, since type-to-jump doesn’t replace real search.

It isn’t primary navigation, and destructive actions like deletion or permission changes still need a proper confirmation step.


Performance Budget

Avoid measuring the panel on every frame, keep stagger and rolling labels restrained, and use one shared highlight rather than animating every row. Use Exit fast for quicker dismissal, clear timers and listeners on close, and let the latest open or closed state win.


Accessibility and Mobile

Give the trigger an accessible name and expanded state, support arrow keys, Enter, and Escape, and return focus to the trigger on close. Keep hover and selected states distinct, and choose menu, menuitemradio, or listbox semantics to match the actual use. On mobile, avoid relying on hover, keep items easy to tap and inside the viewport, and with reduced motion simplify the panel, stagger, and rolling text.


Common Mistakes

  • Confusing the hover highlight with the selected value.
  • Delaying the real state change until animations finish.
  • Using long item staggers in short menus.
  • Keeping staggered exits when Exit fast is enabled.
  • Making hover the only way to open the menu.
  • Using the wrong accessibility roles for commands versus selects.
  • Leaving focus inside a closed panel.
  • Letting the popup clip at viewport edges.
  • Assuming a selected value has been saved.
  • Ignoring reduced-motion preferences.

Changelog

v1.0.0

Oct 23, 2026
Initial release

API Reference

PropTypeDefaultDescription
themestringghibliColour palette, menu included. The highlighted item and the selection pill take its primary colour.
modestringdarkLight or dark version of the palette. Starts dark.
animationstringslideHow the menu opens: collapse, slide, scale, reveal or morph.
exitFastbooleanfalseThe menu closes faster than it opens.
durationnumber0.35How long the open animation takes, in seconds.
delaynumber0.1Wait before the menu starts opening, in seconds.
staggernumber0.05Delay between each item appearing, in seconds.
itemHighlightstringslideHow the highlight moves between items: slides, fills from the top, or none.
selectionIndicatorstringdotMark shown on the chosen item: check, dot or bar.
showDescriptionsbooleanfalseShows a short description under each item.
boldbooleantrueMakes the item labels bold.
rollingTextbooleantrueItem labels roll to a second copy on hover.
iconstringplusIcon on the trigger: plus that turns to minus, or a chevron.
rollingValuebooleantrueThe chosen value in the trigger rolls to the new one when it changes.
pressFeedbackbooleantrueItems squeeze slightly when pressed.
openOnHoverbooleanfalseOpens the menu when you hover the trigger, not only on click.
closeDelayOnSelectbooleanfalseWaits a moment after a pick so you see the selection before the menu closes.
typeaheadbooleanfalseWith the menu open, typing a letter moves the highlight to the first item starting with it (P jumps to Paused). Off: letter keys do nothing.

Questions, Answered.

What is Dropdown Menu?

Dropdown Menu is an animated React component that opens a floating panel of actions or selectable options, with staggered entrances, animated highlights, selection indicators, and rolling text.

Can I make the menu close faster than it opens?

Yes. Exit fast shortens the closing transition to 60% of the opening duration and skips staggered item exits.

What is the difference between Delay and Stagger?

Delay sets when items start appearing after the panel opens. Stagger sets the interval between individual item entrances and exits.

Can Dropdown Menu open on hover?

Yes. Open on hover opens the menu when the pointer enters the trigger, while click and keyboard activation remain available.

Does Close delay on select confirm a saved setting?

No. It briefly shows the selected indicator before closing. Saving and confirming the update is handled by the application.

What is the difference between Dropdown Menu and Radio?

Both can hold a single selection. Radio keeps every option visible for comparison, while Dropdown Menu reveals options only when opened.

View MoreView More

Request a Custom Animation

Need a custom effect? Tell us what to create.

Related Effects

Explore All EffectsExplore All EffectsExplore All Effects
Attachment Component
@base-ui/react@gsap/reactclass-variance-authority

Attachment Component

Components

Theme Switch Component
@base-ui/reactclass-variance-authoritygsap

Theme Switch Component

Components

Hover Card Component
@base-ui/reactclass-variance-authoritylucide-react

Hover Card Component

Components

Drawer Component
@base-ui/reactclass-variance-authoritymotion

Drawer Component

Components

All Effects
Featured ComponentsText AnimationsAnimated BackgroundsAnimated ButtonsCarousel EffectsScroll EffectsCreative ComponentsNavigationsCursor EffectsTransitionsLoadersWebGL & 3D Effects
Templates
IntroductionInstallationCLIDependenciesLicense
PricingBlogGithubNPMMCP Doc