interaction
Context menu
also called right-click menu, contextual menu (hig), shortcut menu
A menu of actions for one specific object, opened on that object by right click, long press, or the context menu key.
What separates a context menu from every other menu is not how it looks but what it is attached to. It belongs to the object you invoked it on, it appears at the pointer rather than at a fixed anchor, and its contents change with the target. Right-click a file and it offers Rename; right-click empty space in the same window and it offers New folder.
That is the line against a kebab menu. Both hold secondary actions, but a kebab is a visible trigger sitting in the layout, discoverable by looking, and it opens in the same place every time. A context menu has no trigger at all. Nothing on screen advertises it, which is its cost and the reason for the rule that follows.
Never put an action only in a context menu. An invisible affordance cannot be found by anyone browsing, cannot be reached on a touch device without a long press nobody was told about, and is a dead end for keyboard and screen reader users unless the context menu key is wired up. Treat it as an accelerator for people who already know the action exists somewhere else.
If you build one on the web, contextmenu is the event, and you must call
preventDefault() or the browser’s own menu opens over yours. Weigh that
carefully. Replacing the native menu takes away Copy, Paste, Inspect, and Open in
new tab, so it is worth doing over a canvas or a file row and rarely worth doing
over ordinary text.
Which word?
| If you want | say |
|---|---|
| actions for the exact thing you invoked them on | context menu |
| extra actions behind three stacked dots | kebab menu |
| the loose word for anything that opens downward | dropdown |
| choices for an action you just started, on a phone | action sheet |
| actions parked behind a row until it is swiped | swipe actions |
| the press that asks for options instead of acting | secondary click |
| a menu chosen by direction from where you pressed | radial menu |
Related
See also: Action list · Share sheet · Bubble toolbar
Implementations
Specimens illustrate the concept; for production use, start here.
| radix | Context Menu |