The menu bar at the top of the screen displays the top-level menus in your app. Top-level menus typically include both system-provided menus and custom ones.

A screenshot cropped to show the TextEdit menu bar menus with the Edit menu and Find submenu revealed.

The menu bar and its menus automatically use vibrancy, which makes foreground content stand out against any background. Menu-bar text can be light or dark, depending on the current desktop appearance.

Enable the system-defined menus and menu items that are relevant in your app. People generally expect to find familiar menus and menu items in the apps they use. In many cases, the system implements the behavior and functionality of standard menu items. For example, when people select text in a standard text field, the system enables the Edit > Copy menu item.

Prefer short, one-word menu titles. Various factors — such as different screen sizes and the presence of menu bar extras — can affect the spacing and appearance of your menu bar menus. One-word menu titles work especially well in the menu bar because they take little space and are easy for people to scan.

Enable the keyboard shortcuts defined for the standard menu items you include. People expect to use the keyboard shortcuts they already know for standard menu items, such as Copy, Cut, Paste, Save, and Print.

Define new keyboard shortcuts only for custom menu items that people use frequently. It’s hard for people to remember shortcuts for commands they don’t often use. Minimizing app-specific keyboard shortcuts also helps avoid potential conflicts with other system-wide keyboard shortcuts that may be in place.

Follow best practices for titling and enabling menus and menu items. People use your menu bar menus to navigate your app and learn what it does, so it’s important to provide a consistent, predictable experience. For guidance, see Menu and Menu Item Titles.

Menu Bar Elements

The Apple menu — which is always the first item on the leading side of the menu bar — includes system-defined menu items that are always available. You can’t modify or remove the Apple menu.

When present, the following menus appear after the Apple menu in the order listed below:

Space permitting, the system can display menu bar extras in the trailing end of the menu bar. A menu bar extra provides a menu of app-specific or system-defined items that people can access in most contexts. For example, people can include the system-provided Bluetooth menu bar extra to help them manage Bluetooth connections at any time.

When menu bar space is constrained, the system prioritizes the display of menu bar menus, as well as essential menu bar extras, such as Clock. To ensure that menus remain readable, the system may decrease the space between the titles, truncating them if necessary.

App Menu

The app menu includes menu items that apply to your app as a whole, rather than a specific document or window. To help people quickly identify the active app, the app menu displays your app name in bold.

The app menu typically contains the following top-level menu items, listed in the following order.

Menu item Function
About YourAppName Displays the About window for your app, which includes copyright and version information.
Preferences… Opens the preferences window for your app if it has one. For guidance, see Preferences.
Services Displays a submenu of services from the system and other apps that apply to the current context. For guidance, see Services.
Hide YourAppName Hides your app and all of its windows, and then activates the most recently used app.
Hide Others Hides all other open apps and their windows.
Show All Shows all other open apps and their windows behind your app’s windows.
Quit YourAppName Quits your app. Pressing Option changes Quit YourAppName to Quit and Keep Windows.

Prefer a short, single-word app name of 16 characters or fewer in the app menu title. A short app name leaves more room for other menus and helps avoid possible truncation.

Use the same app name in menu item titles. If you supply a short app name for the title of the app menu, use the same name in the About, Hide, and Quit menu item titles.

Don’t include a version number with your app name. Version information belongs in the About window, not in your app’s menu titles.

Display the About menu item first. Include a separator after the About menu item so that it appears by itself in a group.

Display the Preferences menu item above other app-specific menu items. In general, make Preferences the first app-specific menu item.

Create logical groupings of app-specific menu items. Group the Preferences item with other setting and configuration menu items. Use a separator to isolate these from other app-specific menu items.

Provide document-specific preferences in the File menu, not the app menu. People expect to find app-level preferences in the app menu.

List help menu items in the Help menu, not the app menu. Although help is app-specific, it has a dedicated, well-known menu of its own. For guidance, see Help Menu.

Separate the Quit menu item and display it last. Include a separator before the Quit menu item, and avoid grouping it with other items.

Enable expected keyboard shortcuts. People expect the following keyboard shortcuts to work when your app offers the menu items listed below.

Menu item Keyboard shortcut
Preferences… Command-Comma (,)
Hide YourAppName Command-H
Hide Others Option-Command-H
Quit YourAppName Command-Q

File Menu

Most commands in the File menu apply to a single file, often an open, user-created document. In a non-document-based app, you can rename or eliminate this menu. For example, there’s no File menu in System Preferences.

The File menu typically contains the following top-level menu items, listed in the following order.

Menu item Function
New… Creates a new document.
Open… Prompts people to choose an existing document to open.
Open Recent Displays a submenu that lists recently opened documents. People can select a document to open it. Also displays the Clear Menu item.
Close Closes the current document or tab. Pressing Option changes Close to Close All.
Close Tab Closes the current tab (a tab-based window can display this menu item instead of Close). Pressing Option changes Close Tab to Close Other Tabs.
Close File Closes the current file and all its associated windows. This item typically appears in file-based apps that support multiple views of the same file.
Save Saves the current document. For a new document, prompt people for a name and location.
Save All Saves all open documents.
Duplicate Duplicates the current document, leaving both documents open. Pressing Option changes Duplicate to Save As.
Rename… Lets people change the name of the current document.
Move To… Prompts people to choose a new location for the document.
Export As... Prompts people for a name, output location, and export file format. After exporting the file, the current document remains open; the exported file doesn’t open.
Revert to When your app enables Auto Save, displays a submenu that lists recent document versions and an option to display the version browser. People can choose a version to restore, replacing the current document. For guidance, see Auto Save.
Page Setup... Opens a dialog for specifying printing parameters like paper size and printing orientation. Printing parameters are saved with the document.
Print... Opens the standard Print dialog, which lets people print to a printer, send a fax, or save as a PDF. For guidance, see Printing.

Display only document names in the Open Recent menu item’s submenu. In particular, don’t display file paths. People know how to differentiate their documents, and file paths are too long to appear in menus. List the documents in the order people last opened them, with the most recently opened document first.

Consider offering a Close Document or Close Window menu item when the current window is tabbed. For a tabbed window, the Close Tab menu item replaces the Close menu item. However, people may still appreciate the ability to close the entire tabbed window.

Auto-save changes in existing files whenever possible. In general, assume people want to save their changes. Save changes periodically as people work so they don’t need to keep choosing File > Save. Also, rather than prompting to save when people close a document or quit your app, save automatically and let them revert to a previous version if they want to undo those changes. For guidance, see Auto Save.

In general, provide a single Save menu item. If you need to support a Save As command, offer a Duplicate menu item and let people change it to Save As by pressing the Option key. If you need to let people save in multiple formats, provide a pop-up menu in the Save dialog — avoid presenting a separate Save As menu item for each format. For example, Preview’s Save As dialog lets people choose many different output formats, including JPEG, PDF, PNG, and TIFF.

Provide a Duplicate menu item instead of Save As, Export, Copy To, and Save To menu items. Menu items such as Save As, Export, Copy To, and Save To can cause confusion because the relationship between document versions isn’t always obvious. Duplicate uses animation and naming to provide context and clarity: The copy visually emerges from the original, and its title includes the word copy. Duplicate also leaves both document versions open so people can decide where to work next. People can specify a filename, output location, and format when saving the copy.

Include an Export menu item only when you need to let people export in a format your app doesn’t typically handle. For example, Pages includes an Export menu item that can output a document in a format like PDF, Plain Text, and ePub.

Use Page Setup for adjusting document-specific preferences. If people can print from your app, offer a Page Setup menu item to open a dialog that lets them specify page parameters, such as scaling, page orientation, and paper size.

Enable expected keyboard shortcuts. People expect the following keyboard shortcuts to work when your app offers these menu items whether at the top level or in submenus.

Menu item Keyboard shortcut
New… Command-N
Open… Command-O
Close Command-W
Close Tab Command-W
Close File Shift-Command-W
Save Command-S
Duplicate Shift-Command-S
Page Setup... Shift-Command-P
Print... Command-P

Edit Menu

The Edit menu lets people make changes to content in the current document or text container, and provides commands for interacting with the Clipboard. Because many editing commands apply to any editable text, the Edit menu is useful even in apps that aren’t document-based.

The Edit menu typically contains the following top-level menu items, listed in the following order.

Menu item Function
Undo Reverses the effect of the previous user operation.
Redo Reverses the effect of the previous Undo command.
Cut Removes the selected data and stores it on the Clipboard, replacing the previous contents of the Clipboard.
Copy Duplicates the selected data and stores it on the Clipboard.
Paste Inserts the contents of the Clipboard at the current insertion point. The Clipboard contents remain unchanged, permitting people to choose Paste multiple times.
Paste and Match Style Inserts the contents of the Clipboard at the current insertion point, matching the style of the inserted text to the surrounding text.
Delete Removes the selected data but doesn’t place it on the Clipboard.
Select All Highlights all selectable content in the current document or text container.
Find Displays a submenu containing menu items for performing search operations in the current document or text container. Standard submenus include:
  • Find
  • Find and Replace…
  • Find Next
  • Find Previous
  • Use Selection for Find
  • Jump to Selection
For guidance, see Find Windows.
Spelling and Grammar Displays a submenu containing menu items for checking for and correcting spelling and grammar in the current document or text container. Standard submenus include:
  • Show Spelling and Grammar
  • Check Document Now
  • Check Spelling While Typing
  • Check Grammar With Spelling
  • Correct Spelling Automatically
Substitutions Displays a submenu containing menu items that let people toggle automatic substitutions that can occur while they type in a document or text container. Standard submenus include:
  • Show Substitutions
  • Smart Copy/Paste
  • Smart Quotes
  • Smart Dashes
  • Smart Links
  • Data Detectors
  • Text Replacement
Transformations Displays a submenu containing menu items that transform selected text. Standard submenus include:
  • Make Uppercase
  • Make Lowercase
  • Capitalize
Speech Displays a submenu containing Start Speaking and Stop Speaking menu items, which control when the system audibly reads selected text.
Start Dictation Opens the dictation window and converts spoken words into text that’s added at the current insertion point. The system automatically adds the Start Dictation menu item at the bottom of the Edit menu.
Emoji & Symbols Displays a Character Viewer, which includes emoji, symbols, and other characters people can insert at the current insertion point. The system automatically adds the Emoji & Symbols menu item at the bottom of the Edit menu.

Support undo and redo operations whenever possible. In particular, offer undo and redo functionality when people select menu items, enter text, change document content, and perform an operation that requires a lot of effort to repeat.

Clarify the operation that the Undo and Redo menu items target. If the operation is the selection of a menu item, you can append the title of the menu item; for example, Undo Paste and Match Style, and Redo Paste and Match Style. For a text entry operation, you might append the word Typing to give Undo Typing and Redo Typing menu options.

Clearly show when undo and redo actions are unavailable. If undo or redo isn’t available, disable these menu items. Also consider retitling disabled Undo or Redo menu items with phrases like Can’t Undo or Can’t Redo.

Provide a Delete menu item instead of an Erase or Clear menu item. Choosing Delete is the equivalent of pressing the Delete key, so it’s important for the naming to be consistent.

Warn people before performing a destructive action that can’t be undone. For guidance, see Alerts.

Determine whether Find menu items belong in the Edit menu. For example, if your app lets people search for files or other types of objects, Find menu items might be more appropriate in the File menu.

Enable expected keyboard shortcuts. People expect the following keyboard shortcuts to work when your app offers these menu items whether at the top level or in submenus.

Menu item Keyboard shortcut
Undo Command-Z
Redo Shift-Command-Z
Cut Command-X
Copy Command-C
Paste Command-V
Paste and Match Style Option-Shift-Command-V
Delete Delete
Select All Command-A
Find Command-F
Find and Replace… Option-Command-F
Find Next Command-G
Find Previous Shift-Command-G
Use Selection for Find Command-E
Jump to Selection Command-J
Show Spelling and Grammar Command-Colon (:)
Check Document Now Command-Semicolon (;)
Start Dictation Function Function
Emoji & Symbols Control-Command-Space

Format Menu

The Format menu lets people adjust text formatting attributes in the current document or text container. You can exclude this menu if your app doesn’t support formatted text editing.

The Format menu typically contains the following top-level menu items, listed in the following order.

Menu item Function
Font Displays a submenu containing menu items for adjusting font attributes of the selected text. Standard submenus include:
  • Show Fonts
  • Bold
  • Italic
  • Underline
  • Bigger
  • Smaller
  • Kern
  • Ligatures
  • Baseline
  • Show Colors
  • Copy Style
  • Paste Style
Text Displays a submenu containing menu items for adjusting text attributes of the selected text. Standard submenus include:
  • Align Left
  • Align Center
  • Justify
  • Align Right
  • Writing Direction
  • Show Ruler
  • Copy Ruler
  • Paste Ruler

Enable expected keyboard shortcuts. People expect the following keyboard shortcuts to work when your app offers these menu items whether at the top level or in submenus.

Menu item Keyboard shortcut
Show Fonts Command-T
Bold Command-B
Italic Command-I
Underline Command-U
Bigger Command-Plus Sign (+)
Smaller Command-Hyphen (-)
Show Colors Shift-Command-C
Copy Style Option-Command-C
Paste Style Option-Command-V
Align Left Command-Left Brace ({)
Align Center Command-Pipe (|)
Align Right Command-Right Brace (})
Copy Ruler Control-Command-C
Paste Ruler Control-Command-V

For guidance, see Typography.

View Menu

The View menu lets people customize the appearance of an app’s windows. Note that the customizations people make apply to all of an app’s windows, regardless of type. The View menu doesn’t include menu items for navigating between or managing specific windows — the Window menu provides these commands.

The View menu typically contains the following top-level menu items, listed in the following order.

Menu item Function
Show/Hide Tab Bar Toggles the visibility of the tab bar above the body area in a tab-based window. For guidance, see Tab Bar.
Show All Tabs/Exit Tab Overview Enters and exits a view (similar to Mission Control) that provides an overview of all open tabs in a tab-based window.
Show/Hide Toolbar In a window that includes a toolbar, toggles the toolbar’s visibility. For guidance, see Toolbars.
Customize Toolbar... In a window that includes a toolbar, opens a dialog that lets people customize toolbar items.
Show/Hide Sidebar In a window that includes a sidebar, toggles the sidebar’s visibility. For guidance, see Sidebars.
Enter/Exit Full Screen Opens the window at full-screen size in a new space. This item is available when the app supports full-screen windows. For guidance, see Full-Screen Mode.

Provide a View menu even if your app supports only a subset of the standard view functions. For example, if your app doesn’t include a tab bar, toolbar, or sidebar, but does support full-screen mode, provide a View menu that includes only the Enter/Exit Full Screen menu item.

Use the Window menu instead of the View menu for window navigation features and to display panels like tool palettes. For guidance, see Window Menu.

Ensure that menu item titles reflect the state of the corresponding view. For example, if the toolbar is hidden, provide a Show Toolbar menu item; if the toolbar is visible, provide a Hide Toolbar menu item.

Enable expected keyboard shortcuts. People expect the following keyboard shortcuts to work when your app offers these menu items in both top-level menus and submenus.

Menu item Keyboard shortcut
Show/Hide Toolbar Option-Command-T
Show/Hide Sidebar Control-Command-S
Enter/Exit Full Screen Control-Command-F

App-Specific Menus

Your app’s custom menu bar menus appear between the View menu and the Window menu. For example, Safari’s menu bar includes app-specific History and Bookmarks menus.

Provide app-specific menus for custom commands. People look in the menu bar when searching for app-specific commands, especially when using an app for the first time. Even when commands are available elsewhere in your app, it’s important to list them in the menu bar. Putting commands in the menu bar makes them easier for people to find, lets you assign keyboard shortcuts to them, and makes them more accessible to people using Full Keyboard Access. Excluding commands from the menu bar — even infrequently used or advanced commands — risks making them difficult for everyone to find.

As much as possible, reflect your app’s hierarchy in app-specific menus. For example, Mail lists the Mailbox, Message, and Format menus in an order that mirrors the relationships of these items: mailboxes contain messages, and messages contain formatting.

In general, list universally applicable menus first and more focused menus last. Place universal menus closer to the Apple menu; place focused menus closer to the Help menu.

Window Menu

The Window menu lets people navigate, organize, and manage an app’s windows. The Window menu doesn’t help people customize the appearance of windows or close them. To customize a window, people use commands in the View menu; to close a window, people choose File > Close.

The Window menu typically contains the following top-level menu items, listed in the following order.

Menu item Function
Minimize Minimizes the active window to the Dock. Pressing the Option key changes this item to Minimize All.
Zoom Toggles between a predefined size appropriate to the window’s content and the window size people set. Pressing the Option key changes this item to Zoom All.
Show Previous Tab Shows the tab before the current tab in a tab-based window.
Show Next Tab Shows the tab after the current tab in a tab-based window.
Move Tab to New Window Opens the current tab in a new window.
Merge All Windows Combines all open windows into a single tabbed window.
Bring All to Front Brings all of the app’s open windows to the front, maintaining their onscreen location, size, and layering order. (Clicking the app icon in the Dock has the same effect.) Pressing the Option key changes this item to Arrange in Front. Arrange in Front also brings all of the app’s open windows to the front, but tiles them neatly.

Provide a Window menu even if your app has only one window. Include the Minimize and Zoom menu items so people using Full Keyboard Access can use the keyboard to invoke these functions.

Make sure Zoom toggles between two useful window sizes. Don’t use Zoom to enter or exit full-screen mode; the View menu provides these functions.

Consider including menu items for showing and hiding panels. A panel provides information, configuration options, or tools for interacting with content in a primary window, and typically appears only when people need it. There’s no need to provide access to the font panel or text color panel, because the Format menu lists these panels.

List open windows — not panels — as menu items at the bottom of the Window menu. List the windows in alphabetical order for easy scanning. When people select an open window in the Window menu, it comes to the front of the window stack.

Add the Enter Full Screen menu item to the Window menu if your app doesn’t have a View menu. Position it before the Bring All to Front menu item, and continue providing separate Minimize and Zoom menu items.

Enable expected keyboard shortcuts. People expect the following keyboard shortcuts to work when your app offers these menu items whether at the top level or in submenus.

Menu item Keyboard shortcut
Minimize Command-M
Minimize All Option-Command-M
Show Previous Tab Control-Shift-Tab
Show Next Tab Control-Tab

Help Menu

The Help menu provides access to an app’s onscreen help documentation, typically through the following top-level menu item.

Menu item Function
YourAppName Help Opens your app’s help documentation, typically in Help Viewer.

Put the Help menu last. The Help menu belongs at the trailing end of your menu bar menus.

Provide your help documentation in the standard format. When possible, use the Help Book format to display your documentation in the system’s built-in Help Viewer app. When your app provides documentation in this format, the system automatically inserts a field for searching your help content at the top of the Help menu. For guidance, see Help; for developer guidance, see NSHelpManager.

In general, limit the Help menu to a single menu item that displays your app’s help content. If you want to list more content — like website links, registration information, or release notes — consider linking to these items from your Help book instead of listing them separately in the Help menu.

If you must include additional menu items, separate them from the primary help documentation menu item. Add a separator and make sure they’re distinct.