Primitives
Primitive

Menubar

Horizontal menu bar for organizing navigation and actions

A horizontal bar of top-level menus, like the File / Edit / View bar in a desktop app. Use it for application-style command surfaces where several menus sit side by side and moving between them keeps the next menu open. For a single menu opened from one button, use Dropdown Menu instead.

Preview

Installation

Usage

Composition

Examples

With Checkboxes and Switches

Use MenubarCheckboxItem for toggles and MenubarRadioGroup for single-choice options. Set indicator="switch" on a checkbox item to swap its checkmark for a switch.

API Reference

The Menubar component is built on top of Base UI's Menubar. All Base UI props are supported. The documentation below only covers custom props and modified defaults specific to our implementation.

For the complete Base UI API, see the Base UI Menubar documentation.

Custom Props

The bar element itself is a subtle inline toolbar that sits visibly elevated above the page.

Prop
Prop
Prop
Prop

Menu item that renders as an anchor (<a>) for navigation links. Wraps Base UI's Menu.LinkItem.

Prop

Toggleable menu item. Wraps Base UI's Menu.CheckboxItem. The indicator sits in a reserved column on the right.

Prop

Mutually exclusive menu item. Wraps Base UI's Menu.RadioItem. Uses the same right-aligned checkmark as MenubarCheckboxItem.

Prop

Standalone label. Renders a plain div, so it can sit anywhere inside MenubarContent.

Prop

Label for a MenubarGroup. Wraps Base UI's Menu.GroupLabel, which names the group for assistive tech. It must have a MenubarGroup ancestor. Use MenubarLabel for a label that is not attached to a group.

Prop
Prop

Modified Defaults

Our implementation changes the following Base UI prop defaults:

  • MenubarTrigger: delay defaults to 0 (Base UI defaults to 600)
  • MenubarTrigger: closeDelay defaults to 0
  • MenubarContent: align defaults to 'start' (Base UI defaults to 'center')
  • MenubarContent: alignOffset defaults to -4
  • MenubarContent: sideOffset defaults to 8 (Base UI defaults to 0)
  • MenubarSubContent: sideOffset defaults to 8