Right-click / long-press menu — Menu's context sibling on Radix ContextMenu.
Anatomy
┌ wrapped surface ─────────────┐
│ (right-click / long-press) │
└──────────────┬───────────────┘
▼ at pointer
┌ Copy address ┐
│ View explorer │
│ ────────────── │
│ Remove │ ← destructive: sell ink
└────────────────┘Props
| Prop | Type | Default | Notes |
|---|---|---|---|
children | ReactNode | required | Trigger surface; rendered asChild — pass one element. |
items | MenuItem[] | required | Same shape as Menu (label/onSelect/destructive?/disabled? or separator). |
className | string | — | cn-merged onto the panel. |
"use client" — Radix ContextMenu.
Motion
Panel: data-[state=open]:fade-in via Radix presets. Item highlight
is instant (keyboard/pointer tracking).
A11y
Radix ContextMenu: arrow keys, typeahead, Escape, outside dismiss,
focus return. Destructive items use sell ink and the word (never
color alone). On touch, Radix maps long-press; still offer a visible
Menu on dense mobile UIs where long-press isn't discoverable.