Links and status
cursor: context-menu in CSS: the menu-badge arrow
context-menu tells people that a menu opens here, usually on right-click. It draws an arrow with a small menu badge, but only on some systems.
cursor: context-menu; Move your mouse over this box Cursors only appear with a mouse or trackpad. Open this page on a computer to see this one. What it shows
On macOS you get the Contextual menu cursor: the arrow with a small menu icon beside it. Linux desktops show their theme's version. Windows has no such system cursor, so Chrome, Edge and Firefox show the plain arrow there.
Usage
When to use it
Use it for
- Elements with their own right-click menu in a web app, such as files in a file manager or rows in a data grid.
- Treat it as a bonus hint: Mac and Linux users get a clue, Windows users simply see the arrow, so it costs nothing.
- Combine it with a visible menu button (three dots) so the menu can be found without the cursor.
Avoid it for
- As the only sign that a menu exists. Most Windows users will never see it.
- On normal links or buttons that navigate or submit.
Code
Copy the snippet
.file-row { cursor: context-menu; } <div class="file-row">
Quarterly report.pdf <button type="button" aria-label="More actions">...</button>
</div> Support
Browsers and systems
| Browser | Support |
|---|---|
| Chrome | partial: macOS and Linux only |
| Edge | partial: plain arrow on Windows |
| Firefox | partial: macOS and Linux only |
| Safari | 3 |
| Safari on iOS | no |
| Chrome on Android | partial: listed from 18 in MDN data; not tested |
| System | Matching cursor |
|---|---|
| Windows role | none (Windows shows Arrow) |
| Windows file | none (aero_arrow.cur is shown) |
| macOS | Contextual menu |
Watch out
Gotchas
- MDN's compatibility data notes that Chrome and Firefox support it only on macOS and Linux. Chromium's Windows code falls back to the arrow.
- If you replace the browser's right-click menu, make your menu reachable from the keyboard too (the Menu key or Shift+F10).
FAQ
Questions
- Why do I see a normal arrow with cursor: context-menu?
- You are probably on Windows. Windows has no context-menu cursor, so Chrome, Edge and Firefox fall back to the arrow.
- Does cursor: context-menu open a menu?
- No. It only changes the cursor. You still handle the contextmenu event or a click and show the menu yourself.
- Can I get the same look on Windows?
- Not from the system. If you need it everywhere, draw the cursor yourself and use url() with context-menu as the fallback keyword.
More