Context Menus

In iOS 13 and later, you can use context menus to give people access to additional functionality related to onscreen items without cluttering the interface.

Screenshot showing a preview of a photo above a context menu. The photo shows a man and a woman and the context menu lists the following commands: copy, share, favorite, show in all photos, and remove.

Context menus are similar to Peek and Pop, but with two key differences:

  • Context menus are available on all devices running iOS 13 and later; Peek and Pop is available only on devices that support 3D Touch.
  • Context menus immediately display contextually relevant commands; Peek and Pop requires a swipe up to view commands.

To reveal a context menu, people can use the system-defined touch and hold gesture or 3D Touch (3D Touch can make context menus appear more quickly). When open, a context menu displays a preview of the item and lists the commands that act on it. People can choose a command or drag the item to another area, window, or app.

Adopt context menus consistently. If you provide context menus for items in some places but not in others, people won’t know where they can use the feature and may think there’s a problem with your app.

Include only the most commonly used commands that apply to the item. For example, in the context menu for a Mail message, it makes sense to include commands for replying and moving the message, but it doesn’t make sense to include formatting or mailbox commands. Listing too many commands can overwhelm people.

Include a glyph with each command in a context menu. A glyph reinforces the meaning of a command, helping people instantly understand its function. When you use SF Symbols, you can choose an existing symbol that represents your command or edit a related symbol to create a custom glyph. If your context menu includes a submenu, you don't need a glyph for it because it automatically displays a system-provided chevron symbol that indicates the presence of additional commands.

Use submenus to manage complexity. A submenu is a context menu item that reveals a secondary menu of logically related commands. Give submenus intuitive titles that describe their contents so people can predict the submenu's commands without revealing them. Concise, action-oriented titles also let people skip over submenus they don’t need in their current context.

Keep submenus to one level. Although submenus can shorten a context menu and clarify the commands that people can perform, more than one level of submenu complicates the experience and can be difficult for people to navigate.

Place the most frequently used items at the top of the menu. When people open a context menu, their focus is on the top area of that menu. Placing the most common items at the top of the menu helps people find the item they’re looking for.

Use separators to group related menu items. Creating visual groupings can help people scan a menu more quickly. For example, you might use a separator to group actions related to editing the item and another to group actions related to sharing the item. Typically, you don’t want more than three groups in a context menu.

Avoid providing a context menu and an edit menu for the same item. It can be confusing to people and hard for the system to detect intent when both features are enabled for the same item. For additional guidance, see Edit Menus.

Avoid providing an action button that opens the item preview. People can tap to open the item they’re previewing, so there’s typically no need to provide an explicit Open button.

For developer guidance, see UIContextMenuInteraction.