Menubar

A horizontal menu bar with dropdowns, keyboard shortcuts, checkboxes, and submenus — common in desktop applications.

Default

A horizontal bar of menu triggers. Click to open, hover to switch between menus while one is open.

<div class="sui-menubar">
  <div class="sui-menubar-menu">
    <button type="button" class="sui-menubar-trigger">File</button>
    <div class="sui-menubar-content">
      <button type="button" class="sui-menubar-item">New File</button>
      <button type="button" class="sui-menubar-item">Open</button>
      <button type="button" class="sui-menubar-item">Save</button>
      <div class="sui-menubar-separator"></div>
      <button type="button" class="sui-menubar-item">Exit</button>
    </div>
  </div>
  <div class="sui-menubar-menu">
    <button type="button" class="sui-menubar-trigger">Edit</button>
    <div class="sui-menubar-content">
      <button type="button" class="sui-menubar-item">Undo</button>
      <button type="button" class="sui-menubar-item">Redo</button>
      <div class="sui-menubar-separator"></div>
      <button type="button" class="sui-menubar-item">Cut</button>
      <button type="button" class="sui-menubar-item">Copy</button>
      <button type="button" class="sui-menubar-item">Paste</button>
    </div>
  </div>
  <div class="sui-menubar-menu">
    <button type="button" class="sui-menubar-trigger">View</button>
    <div class="sui-menubar-content">
      <button type="button" class="sui-menubar-item">Zoom In</button>
      <button type="button" class="sui-menubar-item">Zoom Out</button>
      <button type="button" class="sui-menubar-item">Reset Zoom</button>
    </div>
  </div>
</div>

With Shortcuts

Add sui-menubar-shortcut to display keyboard shortcuts next to items.

<div class="sui-menubar">
  <div class="sui-menubar-menu">
    <button type="button" class="sui-menubar-trigger">File</button>
    <div class="sui-menubar-content">
      <button type="button" class="sui-menubar-item">New Tab <span class="sui-menubar-shortcut">&#8984;T</span></button>
      <button type="button" class="sui-menubar-item">New Window <span class="sui-menubar-shortcut">&#8984;N</span></button>
      <div class="sui-menubar-separator"></div>
      <button type="button" class="sui-menubar-item">Save <span class="sui-menubar-shortcut">&#8984;S</span></button>
      <button type="button" class="sui-menubar-item">Save As <span class="sui-menubar-shortcut">&#8984;&#8679;S</span></button>
      <div class="sui-menubar-separator"></div>
      <button type="button" class="sui-menubar-item">Print <span class="sui-menubar-shortcut">&#8984;P</span></button>
    </div>
  </div>
  <div class="sui-menubar-menu">
    <button type="button" class="sui-menubar-trigger">Edit</button>
    <div class="sui-menubar-content">
      <button type="button" class="sui-menubar-item">Undo <span class="sui-menubar-shortcut">&#8984;Z</span></button>
      <button type="button" class="sui-menubar-item">Redo <span class="sui-menubar-shortcut">&#8984;&#8679;Z</span></button>
      <div class="sui-menubar-separator"></div>
      <button type="button" class="sui-menubar-item">Find <span class="sui-menubar-shortcut">&#8984;F</span></button>
      <button type="button" class="sui-menubar-item">Replace <span class="sui-menubar-shortcut">&#8984;H</span></button>
    </div>
  </div>
</div>

Checkboxes & Radios

Use sui-menubar-check for check/radio indicators and sui-menubar-label for group labels.

Layout
Switch Profile
<div class="sui-menubar">
  <div class="sui-menubar-menu">
    <button type="button" class="sui-menubar-trigger">View</button>
    <div class="sui-menubar-content">
      <button type="button" class="sui-menubar-item"><span class="sui-menubar-check">&#10003;</span> Show Toolbar</button>
      <button type="button" class="sui-menubar-item"><span class="sui-menubar-check">&#10003;</span> Show Sidebar</button>
      <button type="button" class="sui-menubar-item"><span class="sui-menubar-check"></span> Show Minimap</button>
      <div class="sui-menubar-separator"></div>
      <div class="sui-menubar-label">Layout</div>
      <button type="button" class="sui-menubar-item"><span class="sui-menubar-check">&#8226;</span> Single</button>
      <button type="button" class="sui-menubar-item"><span class="sui-menubar-check"></span> Split Horizontal</button>
      <button type="button" class="sui-menubar-item"><span class="sui-menubar-check"></span> Split Vertical</button>
    </div>
  </div>
  <div class="sui-menubar-menu">
    <button type="button" class="sui-menubar-trigger">Profiles</button>
    <div class="sui-menubar-content">
      <div class="sui-menubar-label">Switch Profile</div>
      <button type="button" class="sui-menubar-item"><span class="sui-menubar-check">&#8226;</span> John Doe</button>
      <button type="button" class="sui-menubar-item"><span class="sui-menubar-check"></span> Work</button>
      <button type="button" class="sui-menubar-item"><span class="sui-menubar-check"></span> Personal</button>
      <div class="sui-menubar-separator"></div>
      <button type="button" class="sui-menubar-item sui-menubar-item-inset">Edit Profiles</button>
    </div>
  </div>
</div>

With Submenu

Nest sui-menubar-sub inside a menu for flyout submenus. They open on hover.

<div class="sui-menubar">
  <div class="sui-menubar-menu">
    <button type="button" class="sui-menubar-trigger">File</button>
    <div class="sui-menubar-content">
      <button type="button" class="sui-menubar-item">New File <span class="sui-menubar-shortcut">&#8984;N</span></button>
      <div class="sui-menubar-sub">
        <button type="button" class="sui-menubar-sub-trigger">Open Recent</button>
        <div class="sui-menubar-sub-content">
          <button type="button" class="sui-menubar-item">project-alpha.config</button>
          <button type="button" class="sui-menubar-item">dashboard.tsx</button>
          <button type="button" class="sui-menubar-item">auth.service.ts</button>
          <div class="sui-menubar-separator"></div>
          <button type="button" class="sui-menubar-item">Clear Recent</button>
        </div>
      </div>
      <div class="sui-menubar-separator"></div>
      <button type="button" class="sui-menubar-item">Save <span class="sui-menubar-shortcut">&#8984;S</span></button>
      <button type="button" class="sui-menubar-item">Exit</button>
    </div>
  </div>
  <div class="sui-menubar-menu">
    <button type="button" class="sui-menubar-trigger">Edit</button>
    <div class="sui-menubar-content">
      <button type="button" class="sui-menubar-item">Undo <span class="sui-menubar-shortcut">&#8984;Z</span></button>
      <button type="button" class="sui-menubar-item">Redo <span class="sui-menubar-shortcut">&#8984;&#8679;Z</span></button>
      <div class="sui-menubar-separator"></div>
      <div class="sui-menubar-sub">
        <button type="button" class="sui-menubar-sub-trigger">Transform</button>
        <div class="sui-menubar-sub-content">
          <button type="button" class="sui-menubar-item">Uppercase</button>
          <button type="button" class="sui-menubar-item">Lowercase</button>
          <button type="button" class="sui-menubar-item">Title Case</button>
        </div>
      </div>
    </div>
  </div>
</div>

Disabled Items

Add disabled class to items that are unavailable.

<div class="sui-menubar">
  <div class="sui-menubar-menu">
    <button type="button" class="sui-menubar-trigger">Edit</button>
    <div class="sui-menubar-content">
      <button type="button" class="sui-menubar-item disabled">Undo <span class="sui-menubar-shortcut">&#8984;Z</span></button>
      <button type="button" class="sui-menubar-item disabled">Redo <span class="sui-menubar-shortcut">&#8984;&#8679;Z</span></button>
      <div class="sui-menubar-separator"></div>
      <button type="button" class="sui-menubar-item">Cut <span class="sui-menubar-shortcut">&#8984;X</span></button>
      <button type="button" class="sui-menubar-item">Copy <span class="sui-menubar-shortcut">&#8984;C</span></button>
      <button type="button" class="sui-menubar-item">Paste <span class="sui-menubar-shortcut">&#8984;V</span></button>
    </div>
  </div>
</div>

With Icons

Add inline SVGs with sui-menubar-icon for a visual indicator next to items.

<div class="sui-menubar">
  <div class="sui-menubar-menu">
    <button type="button" class="sui-menubar-trigger">File</button>
    <div class="sui-menubar-content">
      <button type="button" class="sui-menubar-item">
        <svg class="sui-menubar-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
          <path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/>
          <polyline points="14 2 14 8 20 8"/>
        </svg>
        New File <span class="sui-menubar-shortcut">&#8984;N</span>
      </button>
      <button type="button" class="sui-menubar-item">
        <svg class="sui-menubar-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
          <path d="M5 19a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h4l2 2h4a2 2 0 0 1 2 2v1"/>
          <path d="M20 19a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2"/>
          <path d="M22 13H2"/>
        </svg>
        Open <span class="sui-menubar-shortcut">&#8984;O</span>
      </button>
      <button type="button" class="sui-menubar-item">
        <svg class="sui-menubar-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
          <path d="M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"/>
          <polyline points="17 21 17 13 7 13 7 21"/>
          <polyline points="7 3 7 8 15 8"/>
        </svg>
        Save <span class="sui-menubar-shortcut">&#8984;S</span>
      </button>
      <div class="sui-menubar-separator"></div>
      <button type="button" class="sui-menubar-item">
        <svg class="sui-menubar-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
          <path d="M17 3a2.83 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"/>
        </svg>
        Rename
      </button>
    </div>
  </div>
  <div class="sui-menubar-menu">
    <button type="button" class="sui-menubar-trigger">Edit</button>
    <div class="sui-menubar-content">
      <button type="button" class="sui-menubar-item">
        <svg class="sui-menubar-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
          <polyline points="1 4 1 10 7 10"/>
          <path d="M3.51 15a9 9 0 1 0 2.13-9.36L1 10"/>
        </svg>
        Undo <span class="sui-menubar-shortcut">&#8984;Z</span>
      </button>
      <div class="sui-menubar-separator"></div>
      <button type="button" class="sui-menubar-item">
        <svg class="sui-menubar-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
          <rect x="9" y="9" width="13" height="13" rx="2" ry="2"/>
          <path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>
        </svg>
        Copy <span class="sui-menubar-shortcut">&#8984;C</span>
      </button>
      <button type="button" class="sui-menubar-item">
        <svg class="sui-menubar-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
          <rect x="2" y="6" width="20" height="12" rx="2"/>
          <path d="M12 12h.01"/>
        </svg>
        Paste <span class="sui-menubar-shortcut">&#8984;V</span>
      </button>
      <button type="button" class="sui-menubar-item">
        <svg class="sui-menubar-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
          <polyline points="3 6 5 6 21 6"/>
          <path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/>
        </svg>
        Delete
      </button>
    </div>
  </div>
</div>

Hover to Open

Add sui-menubar-hover to open menus on hover instead of click.

<div class="sui-menubar sui-menubar-hover">
  <div class="sui-menubar-menu">
    <button type="button" class="sui-menubar-trigger">File</button>
    <div class="sui-menubar-content">
      <button type="button" class="sui-menubar-item">New File</button>
      <button type="button" class="sui-menubar-item">Open</button>
      <button type="button" class="sui-menubar-item">Save</button>
      <div class="sui-menubar-separator"></div>
      <button type="button" class="sui-menubar-item">Exit</button>
    </div>
  </div>
  <div class="sui-menubar-menu">
    <button type="button" class="sui-menubar-trigger">Edit</button>
    <div class="sui-menubar-content">
      <button type="button" class="sui-menubar-item">Undo</button>
      <button type="button" class="sui-menubar-item">Redo</button>
      <div class="sui-menubar-separator"></div>
      <button type="button" class="sui-menubar-item">Cut</button>
      <button type="button" class="sui-menubar-item">Copy</button>
      <button type="button" class="sui-menubar-item">Paste</button>
    </div>
  </div>
  <div class="sui-menubar-menu">
    <button type="button" class="sui-menubar-trigger">View</button>
    <div class="sui-menubar-content">
      <button type="button" class="sui-menubar-item">Zoom In</button>
      <button type="button" class="sui-menubar-item">Zoom Out</button>
      <button type="button" class="sui-menubar-item">Reset Zoom</button>
    </div>
  </div>
</div>

Delete this item?

This action cannot be undone. This will permanently delete the item and remove all associated data.