sigilUI

Menubar

A horizontal menu bar with dropdown menus, keyboard navigation, and submenus. Built on Radix Menubar.

@sigil-ui/componentsReact

Preview

Live preview Interactive

Import

import {
  Menubar, MenubarMenu, MenubarTrigger, MenubarContent,
  MenubarItem, MenubarSeparator, MenubarSub, MenubarSubTrigger,
  MenubarSubContent, MenubarCheckboxItem, MenubarShortcut,
} from "@sigil-ui/components";

Usage

<Menubar>
  <MenubarMenu>
    <MenubarTrigger>File</MenubarTrigger>
    <MenubarContent>
      <MenubarItem>New <MenubarShortcut>⌘N</MenubarShortcut></MenubarItem>
      <MenubarItem>Open <MenubarShortcut>⌘O</MenubarShortcut></MenubarItem>
      <MenubarSeparator />
      <MenubarItem>Quit <MenubarShortcut>⌘Q</MenubarShortcut></MenubarItem>
    </MenubarContent>
  </MenubarMenu>
  <MenubarMenu>
    <MenubarTrigger>Edit</MenubarTrigger>
    <MenubarContent>
      <MenubarItem>Undo <MenubarShortcut>⌘Z</MenubarShortcut></MenubarItem>
      <MenubarItem>Redo <MenubarShortcut>⇧⌘Z</MenubarShortcut></MenubarItem>
    </MenubarContent>
  </MenubarMenu>
</Menubar>

With submenu

<MenubarContent>
  <MenubarSub>
    <MenubarSubTrigger>Share</MenubarSubTrigger>
    <MenubarSubContent>
      <MenubarItem>Email</MenubarItem>
      <MenubarItem>Slack</MenubarItem>
    </MenubarSubContent>
  </MenubarSub>
</MenubarContent>

Token integration

CSS VariableUsed for
--s-surfaceMenu content background
--s-surface-elevatedItem hover background
--s-textItem text
--s-text-mutedShortcut text
--s-borderSeparator and border
--s-radius-mdMenu border radius
--s-shadow-lgMenu elevation
--s-duration-fastOpen/close animation

Props

PropTypeDefaultDescription
disabledbooleanfalseDisable the item
onSelect() => void—Selection handler
classNamestring—Additional CSS classes
childrenReactNode—Item content

Accessibility

  • Full keyboard navigation: arrow keys, Enter, Escape
  • role="menubar" with role="menuitem" children
  • Focus is trapped within open menus