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/Menubar Component

Menubar Component

An animated application menubar with gliding dropdown panels, responsive menu switching, and interactive highlights for desktop-style web applications.

@base-ui/reactlucide-reactmotiontailwind-merge
DemoDemoDemo

Tune the Real Props

Overview

Menubar brings desktop-style application menus to React, with a row of triggers and a dropdown panel that glides between them instead of closing and reopening. Content slides or fades as categories change, items highlight on hover, and trigger labels can roll.

Use it where users repeatedly reach for grouped commands, such as editors, design tools, project platforms, and admin interfaces. Motion adds continuity, but predictable command behaviour comes first.


Theme and Interaction Customisation

Set size, roundness, pill, line, or no trigger highlight, primary or muted colours, and whether icons and descriptions show. Interaction options include hover or click opening, gliding or separate panels, sliding or fading content, rolling text, press feedback, entrance timing, and fast exits.


Example Production Use Case

A browser-based document editor can place File, Edit, View, and Format above the canvas. Moving from File to Edit glides the panel across, and View holds radio-style display options with a clear selection marker.

A design tool can use click-to-open menus with icons and short descriptions, so new users learn what each command does without leaving the canvas.

A developer console can group project, build, and view commands in a compact menubar, keeping the workspace visible while keyboard users navigate with arrow keys.


Best Used For

  • Document and content editors.
  • Design and creative tools.
  • Productivity applications.
  • SaaS dashboards with workspace commands.
  • Administrative interfaces.
  • Developer tools with desktop-style menus.

Not For

Simple websites with a few page links need a standard header, not an application menubar. A single choice is better served by Dropdown Menu or Radio.

Touch-first interfaces can’t rely on hover, so a click-based or responsive pattern works better.

Deeply nested commands suggest an information architecture problem, and a command palette may serve frequent actions better.


Performance Budget

Animate the shared panel’s position and size without per-frame layout measurement, and keep item delays and stagger short. Use fast exits for prompt closing, and let the latest interaction win when users switch menus mid-animation.


Accessibility and Mobile

Follow application-menubar semantics with labelled triggers and menu-item roles, arrow-key movement between menus, Enter to activate, and Escape to close. Keep hover, focus, and radio selection visually distinct. On touch devices, use tap activation, comfortable targets, and panels inside the viewport, and with reduced motion simplify gliding, content transitions, and rolling text.


Common Mistakes

  • Treating Menubar as ordinary site navigation.
  • Animating the panel out of sync with its content.
  • Leaving a stale menu open after fast trigger switching.
  • Overusing item staggering.
  • Confusing hover highlight with a selected radio item.
  • Making interactions hover-only.
  • Ignoring reduced-motion preferences.

Changelog

v1.0.0

Oct 23, 2026
Initial release

API Reference

PropTypeDefaultDescription
themestringcaffeineColour palette, menus included. With a Primary fill, the bar and item highlights take its primary colour.
modestringdarkLight or dark version of the palette. Starts dark.
animationstringslideHow a menu opens from its trigger.
exitFastbooleanfalseMenus close faster than they open (60% of Duration).
switchAnimationstringglideWhat happens when you move to the next menu while one is open: the panel glides across, or closes and reopens.
contentAnimationstringslideHow the new menu's items appear while the panel glides. Needs Moving over set to Glide.
slideDistancestringlgHow far items slide in when switching menus. Needs Moving over set to Glide and Content animation set to Slides in.
durationnumber0.3How long opening, closing and gliding take, in seconds.
delaynumber0.05Wait before the items start to appear, in seconds.
staggernumber0.03Delay between one item appearing and the next, in seconds.
triggerHighlightstringpillHighlight that follows the pointer along the menu bar.
triggerHighlightColorstringprimaryColour of the bar highlight. Not used when Menu highlight is None.
showChevronsbooleantrueShows a chevron next to each menu name that turns when it opens.
triggerRollingTextbooleantrueMenu names roll to a second copy of themselves on hover.
openOnClickbooleanfalseMenus open on click only; hovering the bar doesn't open them.
pressFeedbackbooleantrueMenu names squeeze slightly when pressed.
itemHighlightstringslideHighlight on the item under the pointer inside a menu.
itemHighlightColorstringprimaryColour of the item highlight. Not used when Item highlight is None.
selectionIndicatorstringcheckMark shown next to chosen options in checkbox and radio items.
showIconsbooleantrueShows an icon before each item.
showDescriptionsbooleantrueShows a second line of help text under items that have one.
rollingTextbooleantrueItem labels roll to a second copy on hover.
sizestringlgText and padding size of the bar and menus.
roundedstringmdCorner radius of the bar, the menus and their items.

Questions, Answered.

What is Menubar?

Menubar is a React component that organises application commands into a row of expandable menus, with animated panels, trigger highlights, item interactions, and keyboard navigation.

How is Menubar different from a standard dropdown menu?

A dropdown offers one set of actions from one trigger. Menubar connects several top-level menus so users move between command groups in one persistent bar.

Can Menubar open separate dropdown panels instead of gliding?

Yes. A separate-popup mode lets each menu open independently instead of sharing one moving panel.

Can Menubar open on click instead of hover?

Yes. Hover is the default, and a click-to-open setting suits touch-oriented interfaces.

Does Menubar support keyboard navigation?

It supports arrow keys between menus. Production use should follow full application-menubar conventions for opening, activating, and restoring focus.

Can Menubar work on mobile?

It can use tap activation, but narrow layouts may need a responsive alternative to a full horizontal menubar.

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
Checkbox Component
motion

Checkbox Component

Components

Dialog Component
@base-ui/reactclass-variance-authoritylucide-react

Dialog Component

Components

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

Drawer Component

Components

Input OTP Component
@base-ui/reactclass-variance-authorityinput-otp

Input OTP Component

Components

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