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.
This is the cursor your browser and system draw for context-menu.

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

CSS
.file-row { cursor: context-menu; }
HTML
<div class="file-row">
  Quarterly report.pdf <button type="button" aria-label="More actions">...</button>
</div>

Support

Browsers and systems

Browser support for context-menu
BrowserSupport
Chromepartial: macOS and Linux only
Edgepartial: plain arrow on Windows
Firefoxpartial: macOS and Linux only
Safari3
Safari on iOSno
Chrome on Androidpartial: listed from 18 in MDN data; not tested
The matching operating system cursor
SystemMatching cursor
Windows rolenone (Windows shows Arrow)
Windows filenone (aero_arrow.cur is shown)
macOSContextual 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.