Toolbar vs. Menu Bar (macOS)
A toolbar puts common actions inside a window. The menu bar keeps the app's full set of commands at the top of the screen.
Put common document or selection actions in the toolbar. Keep all commands, keyboard shortcuts, and less common actions in the menu bar.
See what each pattern does
Try each example. Then read about the job it is made to do.
Unified Title Bar Toolbar
A Unified Title Bar Toolbar is a command row built into the window title area. People can change it, and it holds common document or view actions.
A notes app combines sidebar toggle, search, share, and formatting tools in one draggable title-bar region.
- Use it when
- Use it for common commands tied to the current window when direct access and custom choice help the work below.
- Do not use it when
- Do not crowd it with rare or destructive commands. Selection-dependent items can remain in place and update their enabled or selected state. Avoid needless layout shifts, and keep essential commands discoverable in the menu bar.
- Name used in code
AppKit NSToolbar / SwiftUI toolbar
macOS Menu Bar
The macOS Menu Bar is the strip at the top of the screen. The active app puts its full set of commands there in clear menus.
A writing app keeps New, Export, Find, and window commands in predictable File, Edit, and Window menus.
- Use it when
- Put the app's full command set here. Include commands people find by menu name or run with a keyboard shortcut.
- Do not use it when
- Do not use it as navigation inside a window. Keep a command here even if it also appears in a toolbar or context menu. Update commands that depend on the current state.
- Name used in code
AppKit NSMenu / SwiftUI Commands
Quick comparison
| UI pattern | Best for | Not for | Name used in code |
|---|---|---|---|
| Unified Title Bar Toolbar | Use it for common commands tied to the current window when direct access and custom choice help the work below. | Do not crowd it with rare or destructive commands. Selection-dependent items can remain in place and update their enabled or selected state. Avoid needless layout shifts, and keep essential commands discoverable in the menu bar. | AppKit NSToolbar / SwiftUI toolbar |
| macOS Menu Bar | Put the app's full command set here. Include commands people find by menu name or run with a keyboard shortcut. | Do not use it as navigation inside a window. Keep a command here even if it also appears in a toolbar or context menu. Update commands that depend on the current state. | AppKit NSMenu / SwiftUI Commands |
Before you ship
- 01
Write down what the person needs to do.
- 02
Test the keyboard, focus, touch, zoom, loading, empty, and error states.
- 03
Make sure people can get the same information without hover or motion.
- 04
Test with real content on both small and large screens.
Comparison request you can copy
Copy this when your team needs help choosing between the patterns.
Choose the best pattern from Unified Title Bar Toolbar, macOS Menu Bar for our real user flow. Use this rule: A toolbar puts common actions inside a window. The menu bar keeps the app's full set of commands at the top of the screen. Write down the task, amount of content, and cost of stopping the flow. Check keyboard, touch, loading, error, and reduced-motion behavior. Explain your choice, then build the smallest accessible version with the project's design system.