Menubar

An application-level menu bar for top-level navigation commands. Keyboard navigable with full support for sub-menus, checkboxes, radio groups, and keyboard shortcuts display.

Built on Radix UI.

  • Keyboard navigable with arrow keys
  • Supports sub-menus, checkboxes, and radio groups
  • Built on Radix UI Menubar primitive
  • Includes shortcuts display via MenubarShortcut

import { Menubar }from "@aetherstack/ui"

menubar.tsx
import {
  Menubar,
  MenubarMenu,
  MenubarTrigger,
  MenubarContent,
  MenubarItem,
  MenubarSeparator,
  MenubarShortcut,
} from "@/components/ui/menubar"

export function MenubarDemo() {
  return (
    <Menubar>
      <MenubarMenu>
        <MenubarTrigger>File</MenubarTrigger>
        <MenubarContent>
          <MenubarItem>
            New Tab <MenubarShortcut>⌘T</MenubarShortcut>
          </MenubarItem>
          <MenubarItem>
            Save <MenubarShortcut>⌘S</MenubarShortcut>
          </MenubarItem>
        </MenubarContent>
      </MenubarMenu>
      <MenubarMenu>
        <MenubarTrigger>Edit</MenubarTrigger>
        <MenubarContent>
          <MenubarItem>Undo <MenubarShortcut>⌘Z</MenubarShortcut></MenubarItem>
          <MenubarItem>Redo <MenubarShortcut>⇧⌘Z</MenubarShortcut></MenubarItem>
        </MenubarContent>
      </MenubarMenu>
    </Menubar>
  )
}

Usage

With sub-menu

Nest MenubarSub inside any MenubarContent for fly-out sub-menus.

With checkbox items

Use MenubarCheckboxItem for toggleable settings.

Props

PropTypeDefaultDescription

Menubar

PropTypeDefaultDescription
classNamestringAdditional Tailwind classes on the root menubar element.

MenubarItem

PropTypeDefaultDescription
insetbooleanAdds left padding to align text with items that have icons.
disabledbooleanPrevents the item from being selected.

MenubarShortcut

PropTypeDefaultDescription
childrenReactNodeThe keyboard shortcut text to display right-aligned (e.g. ⌘S).

MenubarCheckboxItem

PropTypeDefaultDescription
checkedbooleanControlled checked state.
onCheckedChange(checked: boolean) => voidCallback fired when the checked state changes.

* Required props

Accessibility

  • Menubar follows the ARIA menubar pattern — arrow keys navigate between menus and items.
  • Escape closes the open menu and returns focus to the trigger.
  • Each MenubarMenu is a menu landmark; MenubarContent uses role='menu'.
  • MenubarCheckboxItem has role='menuitemcheckbox' with aria-checked managed by Radix UI.