Acrylic
Components

Context Menu

The macOS 26 right-click menu — frosted glass panel, 13pt rows, submenus, checkboxes, shortcuts.

A control- / right-click menu rendered on the same frosted Popover material as Combobox and Select — a translucent --acr-panel pane over a backdrop blur. The row geometry is lifted from the kit's 13pt Menu: 13px SF-Medium labels, a 6px-radius highlight bar, a section header, a hairline separator, a muted keyboard-shortcut column, submenus with a trailing chevron, and a red destructive row. Built on Radix Context Menu, so it's fully keyboard-navigable.

Installation

npx shadcn add https://acrylic-ui.vercel.app/r/context-menu.json

Usage

Right-click here
import {
  ContextMenu,
  ContextMenuContent,
  ContextMenuItem,
  ContextMenuSeparator,
  ContextMenuShortcut,
  ContextMenuTrigger,
} from "@/components/acrylic/context-menu"

<ContextMenu>
  <ContextMenuTrigger>Right-click here</ContextMenuTrigger>
  <ContextMenuContent>
    <ContextMenuItem>
      Back
      <ContextMenuShortcut>⌘[</ContextMenuShortcut>
    </ContextMenuItem>
    <ContextMenuSeparator />
    <ContextMenuItem variant="destructive">Delete</ContextMenuItem>
  </ContextMenuContent>
</ContextMenu>

Example — Finder desktop menu

A 1:1 of the kit's Menus / Examples / 13pt artboard. Left is the menu in its full open form (including the open submenu, with the accent-highlighted leaf); right is the same menu live — right-click to open it and hover into Clean Up By.

Full form
New Folder
Get Info
Change Wallpaper…
Desktop Stacks
Use Stacks
Clean Up By
Import from iPhone
Name
Kind
Date Modified
Date Created
Size
Tags
Right-click ↓
Right-click the desktop

Example — full vocabulary

Section header, checkbox + radio groups, a submenu, a shortcut column, and a destructive row — the complete vocabulary on the frosted panel.

Right-click for the full menu

Sizes

The kit ships three menus — 13pt (default), 11pt (sm), 10pt (xs). The number is the text point size; the row height scales with it (24 / 22 / 19px). Set size once on ContextMenuContent — it flows through to every row and submenu, so the whole menu scales without sizing each item. default is the standard system menu. (The section header stays 10pt across sizes, matching the kit.)

default · 13pt
Edit
Copy⌘C
Cut⌘X
Delete
sm · 11pt
Edit
Copy⌘C
Cut⌘X
Delete
xs · 10pt
Edit
Copy⌘C
Cut⌘X
Delete
<ContextMenuContent size="sm">
  <ContextMenuItem>Copy</ContextMenuItem>
  <ContextMenuItem>Cut</ContextMenuItem>
</ContextMenuContent>

Anatomy

partrole
ContextMenuTriggerthe area that opens the menu on right- / control-click
ContextMenuContentthe frosted panel
ContextMenuItema row; inset reserves the leading icon column, variant="destructive" makes it red
ContextMenuCheckboxItema row with a leading checkmark indicator
ContextMenuRadioGroup / ContextMenuRadioItemsingle-choice rows with a dot indicator
ContextMenuLabela section header (kit's 10pt gray label); inset aligns it to the rows
ContextMenuSeparatora hairline divider
ContextMenuShortcutthe right-aligned, muted keyboard-shortcut column
ContextMenuSub / ContextMenuSubTrigger / ContextMenuSubContenta nested submenu with a trailing chevron

Notes

  • The panel uses the shared frosted material (--acr-panel + backdrop-blur-xl), identical to Combobox / Select / Popover — overlay it on busy content to read as glass.
  • The highlight bar is System Blue + white text (the macOS accent), as in the kit's rendered menu. A submenu trigger whose child is open drops to a neutral gray, so focus reads as having moved into the child.
  • All colors resolve through the Acrylic theme tokens, so the menu flips light / dark with the theme.
  • size is set on ContextMenuContent and propagates via React context — see Sizes.

On this page