The menu bar at the top of the screen provides a home for the top-level menus in your app. These menus can include standard, system-provided menus, as well as custom menus your app defines.

The menu bar typically includes the following menus, in the following order.

The menu bar and its menus adopt vibrancy and can have a light or dark appearance. This is governed by the user’s appearance preferences. For related guidance, see Translucency.

Always follow menu design best practices. In general, all menus and menu items should be consistently arranged and titled. See Menu Anatomy.

Implement standard menus and submenus. People generally expect most standard menus and menu items to exist unless they’re irrelevant to the current app. In many cases, the behavior and functionality of standard menu items is automatically implemented for you. For example, when the user selects text in a standard text field, the Edit > Copy menu item becomes enabled and functional.

Enable the expected keyboard shortcuts for standard menu items. Keyboard shortcuts for standard menu items like Copy, Cut, Paste, Save, and Print should be consistent in all apps.

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

Consider implementing a Dock menu that can initiate useful actions when your app isn’t frontmost. A Dock menu appears when the user Control-clicks an app’s Dock icon. See Dock Menus.

Consider offering contextual menus in addition to menu bar menus. A contextual menu is displayed by Control-clicking a view or selected element in your app. See Contextual Menus.

Consider offering a menu bar extra that provides quick access to useful actions when your app isn’t frontmost. Many menu bar extras also provide useful information, such as the status of a backup. See Menu Bar Extras.

Apple Menu

The Apple menu includes menu items that are available at all times. The contents of this menu are defined by the system and can’t be modified by your app.

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 menu’s title includes your app name and is displayed in bold.

This 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 your app has a preferences window. See Preferences.
Services Displays a submenu of services from the system and other apps that are applicable to the current context. 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.

If possible, use 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 the possibility of 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 menus.

Separate the About menu item and display it first. Include a separator after the About menu item and don’t group it with other items.

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

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

Expose document-specific preferences in the File menu, not the app menu. See File Menu. Only app-level preferences should be accessible in the app menu.

Expose help menu items from the Help menu, not the app menu. Although help is app-specific, it has a dedicated, well-known menu of its own. See Help Menu.

Separate the Quit menu item and display it last. Include a separator before the Quit menu item and don’t group it with other items.

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

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 an app that’s not file-based, this menu can be renamed or eliminated. For example, there’s no File menu in System Preferences.

This menu typically contains the following top-level menu items, as applicable, listed in the following order.

Menu item Function
New… Creates a new document.
Open… Prompts the user to choose an existing document to open.
Open Recent Displays a submenu that lists recently opened documents. The user can select one to open it.
Close Closes the current document or tab. Changes to Close All when the Option key is pressed. If a document contains unsaved changes, the user is prompted to save.
Close Tab Displayed instead of Close in a tab-based window. Changes to Close Other Tabs when the Option key is pressed. If a tab contains unsaved changes, the user is prompted to save.
Close File Typically appears in file-based apps that support multiple views of the same file. Closes the current document and all its associated windows. If a file contains unsaved changes, the user is prompted to save.
Save Saves the current document. For a new document, prompts the user for a name and output location.
Save All Saves all open documents.
Duplicate Duplicates the current document, leaving both documents open. Changes to Save As… when the Option key is pressed.
Rename… Lets the user change the name of the current document.
Move To… Prompts the user to choose a new location for the document.
Export As... Prompts the user for a name, output location, and export file format. Then, exports the current document. The original document remains open and the exported file does not open after the export is complete.
Revert to Displays a submenu that lists recent document versions (when Auto Save is enabled) and an option to display the version browser. The user can choose a version to restore, replacing the current document. See Auto Save.
Page Setup... Opens a dialog for specifying printing parameters (which are saved with the document) like paper size and printing orientation.
Print... Opens the standard Print dialog, which lets the user print to a printer, send a fax, or save in PDF format. 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 they were last opened, 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, the user may still appreciate the ability to close the entire tabbed window.

Auto-save changes in existing files whenever possible. In general, assume the user wants to save their changes. Save changes periodically as the user works so they don’t need to keep choosing File > Save. Also, rather than prompting to save when the user closes a document or quits your app, save automatically and let the user revert to a previous version if they want to undo those changes. See Auto Save.

In general, provide a single Save menu item. If you need a Save As menu item, include a Duplicate menu item and change it to Save As when the Option key is pressed. Preview uses this approach. If you need to let the user save in multiple formats, provide a pop-up menu in the Save dialog rather than presenting a separate Save As menu item for each. The Save dialog in Preview, for example, lets the user 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. Save As, Export, Copy To, and Save To actions often cause confusion because the relationship between document versions isn’t always obvious. Duplicate uses animation (the copy emerges from the original) and naming (the copy's name actually includes the word copy) to provide context and clarity. Duplicate also leaves both document versions open so the user can decide where to work next. The user can specify a file name, output location, and format when saving the copy. Include an Export menu item only when you need to let the user export in a format your app doesn't normally handle. Pages, for example, includes an Export menu item that can be used to output a document in formats like PDF, Plain Text, and ePub.

Display menu items for adjusting document-specific preferences above the Print menu item and give them descriptive names. Use descriptive names like Page Setup rather than simply Preferences or Settings.

Enable expected keyboard shortcuts. People expect the following keyboard shortcuts to work when your app offers these menu items—either 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 area, such as a text field. It also provides commands for interacting with the Clipboard. Since many editing commands apply to any editable text, the Edit menu is useful even in apps that aren’t document-based.

This menu typically contains the following top-level menu items, as applicable, 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 the user 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 selected data.
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 related guidance, see Find Windows.
Spelling and Grammar Displays a submenu containing menu items for checking for and correcting spelling and grammar issues 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 can be toggled to enable or disable automatic substitutions while typing in a document or text field. 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 Upper Case
  • Make Lower Case
  • Capitalize
Speech Displays a submenu containing Start Speaking and Stop Speaking menu items, which can be chosen to hear the system audibly read selected text.
Start Dictation Opens the dictation window and converts the user’s spoken words into text that’s added at the current insertion point. This menu item is automatically inserted by the system at the bottom of the Edit menu.
Emoji and Symbols Displays a Character Viewer, which includes emoji, symbols, and other characters the user can insert at the current insertion point. This menu item is automatically inserted by the system at the bottom of the Edit menu.

Support undo and redo operations whenever possible. In particular, strive to offer undo and redo functionality when the user selects menu items, enters text, changes document content, and performs an operation that requires a lot of effort to manually repeat.

Add suffixes to the Undo and Redo menu items describing the operations that can be undone or redone, respectively. For the selection a menu item, add the title of the menu item. For example, Undo Paste and Match Style; Redo Paste and Match Style. For text entry, add the word Typing. For example, Undo Typing; Redo Typing.

Make sure it’s clear when undo and redo actions are unavailable. If undo or redo isn’t available, it’s menu item should be disabled. For even greater clarity, consider retitling the menu item to Can’t Undo or Can’t Redo too.

Provide a Delete menu item instead of an Erase or Clear menu item. Choosing Delete should be the equivalent of pressing the Delete key, and the naming should be consistent.

Warn the user before performing a destructive action that can’t be undone. See Alerts.

Determine whether Find menu items belong in the Edit menu. For example, in an app that’s not document-based that 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—either 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 and Symbols Control-Command-Space

Format Menu

The Format menu lets people adjust text formatting attributes in the current document or text area, such as a text field. This menu can be excluded in an app that doesn't support formatted text editing.

This menu typically contains the following top-level menu items, as applicable, listed in the following order.

Menu item Function
Font Displays a submenu containing menu items for adjusting font attributes of 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 selected text. Standard submenus include:
  • Align Left
  • Align Right
  • 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—either 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 Right Command-pipe (|)
Align right Command-right brace (})
Copy Ruler Control-Command-C
Paste Ruler Control-Command-V

For related guidance, see Typography.

View Menu

The View menu lets the user customize the appearance of an app’s windows. Note that any customizations made are adopted by all windows of the same type. The View menu doesn’t include menu items for navigating between or managing specific windows. Those functions are provided by the Window menu.

This menu typically contains the following top-level menu items, as applicable, listed in the following order.

Menu item Function
Show Tab Bar/Hide Tab Bar Toggles the visibility of the tab bar above the body area in a tab-based window. See Tabbed Windows.
Show All Tabs/Exit Tab Overview Enters and exits a view (similar to Mission Control) that shows an overview of all open tabs in a tab-based window.
Show Toolbar/Hide Toolbar Toggles the visibility of the toolbar on the current window, if the window has a toolbar. See Toolbars.
Customize Toolbar... Opens a dialog that lets the user customize the items in the toolbar, if the window has a toolbar.
Show Sidebar/Hide Sidebar Toggles the visibility of the side bar, if the window has a sidebar. See Sidebars.
Enter Full Screen/Exit Full Screen Opens the window at full-screen size in a new space. Available when the app supports full-screen windows. See Full-Screen Mode.

Provide a View menu even if your app only supports 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 Full Screen/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. See Window Menu.

Make sure menu item titles always reflect the state of the corresponding view. For example, if the toolbar is hidden, there should be a Show Toolbar menu item. If the toolbar is visible, there should be a Hide Toolbar menu item.

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

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

App-Specific Menus

Your app can implement its own custom menus, as appropriate, between the View menu and the Window menu. The menu bar in Mail, for example, includes History and Bookmarks menus that are app-specific.

Provide app-specific menus for invoking key 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 still a good idea to provide access to them via the menu bar. Doing so 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. It can be appropriate to exclude infrequently used or advanced commands. Just keep in mind that you risk people missing commands that aren’t in the menu bar—even for experienced users.

As much as possible, reflect your app’s hierarchy in app-specific menus. For example, Mail lists its app-specific menus as Mailbox, Message, and Format because mailboxes contain messages, which contain formatting. In this case, it made sense to reposition the Format menu.

In general, place universally-applicable menus together on one side and focused menus together on the other side. Universal menus should be reside closer to the Apple menu. Focused menus should reside closer to the Help menu.

Window Menu

The Window menu lets people navigate, organize, and manage an app’s windows. This menu doesn’t include menu items for customizing the appearance of windows. Those functions are provided by the View menu. The Window menu also doesn’t include a Close menu item. That’s found in the File menu.

This menu typically contains the following top-level menu items, as applicable, listed in the following order.

Menu item Function
Minimize Minimizes the active window to the Dock. Changes to Minimize All when the Option key is pressed.
Zoom Toggles between a predefined size appropriate to the window’s content and the window size the user has set. Changes to Zoom All when the Option key is pressed.
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 window in 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. (This should also happen when the user clicks the app icon in the Dock.) Changes to Arrange in Front when the Option key is pressed. 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 invoke these functions using their keyboard.

Make sure Zoom toggles between two useful window sizes. Don’t use Zoom to enter or exit Full-Screen mode. Those functions are provided in the View menu.

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 is typically displayed only when the user needs it. There’s no need to provide access to the font panel or text color panel. These panels are already accessible from the Format menu.

List open windows, not panels, as menu items at the bottom of the Window menu. List the windows in alphabetical order so they can be located quickly. When a user selects one of these menu items, the corresponding window should come to the front.

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—either 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 the onscreen help documentation of an app.

This menu typically contains the following top-level menu item, as applicable.

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

Position the Help menu on the far right. The Help menu should always be the rightmost app menu in the menu bar.

Provide your help documentation in the standard format. Whenever possible, documentation should be in Help Book format so it can be displayed by 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 related guidance, see Help. For developer guidance, see Apple Help Programming Guide.

In general, limit the Help menu to a single menu item that displays your app’s Help. If you have more content you need to list—like website links, registration information, or release notes—consider linking to them within your Help book rather than 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.