componentsSource CodeRadix UI
components/ui/context-menu.tsx
components/ui/context-menu.tsx
Context Menu
Displays a menu located at the pointer, triggered by a right-click or long press.
Installation
Usage
Imports
import {
ContextMenu,
ContextMenuCheckboxItem,
ContextMenuContent,
ContextMenuGroup,
ContextMenuItem,
ContextMenuLabel,
ContextMenuRadioGroup,
ContextMenuRadioItem,
ContextMenuSeparator,
ContextMenuShortcut,
ContextMenuSub,
ContextMenuSubContent,
ContextMenuSubTrigger,
ContextMenuTrigger,
} from "@/components/ui/context-menu"Code
<ContextMenu>
<ContextMenuTrigger className="flex aspect-video w-full max-w-xs items-center justify-center rounded-xl border border-dashed text-sm">
Right click here
</ContextMenuTrigger>
<ContextMenuContent className="w-48">
<ContextMenuGroup>
<ContextMenuItem>
Back
<ContextMenuShortcut>⌘[</ContextMenuShortcut>
</ContextMenuItem>
<ContextMenuItem disabled>
Forward
<ContextMenuShortcut>⌘]</ContextMenuShortcut>
</ContextMenuItem>
<ContextMenuItem>
Reload
<ContextMenuShortcut>⌘R</ContextMenuShortcut>
</ContextMenuItem>
</ContextMenuGroup>
<ContextMenuSeparator />
<ContextMenuGroup>
<ContextMenuCheckboxItem checked>Show Bookmarks</ContextMenuCheckboxItem>
<ContextMenuCheckboxItem>Show Full URLs</ContextMenuCheckboxItem>
</ContextMenuGroup>
</ContextMenuContent>
</ContextMenu>Examples
With Submenus
Use ContextMenuSub, ContextMenuSubTrigger, and ContextMenuSubContent to nest related actions.
With Keyboard Shortcuts
Add ContextMenuShortcut inside ContextMenuItem to display keyboard hints aligned to the right.
With Checkboxes
Use ContextMenuCheckboxItem with checked and onCheckedChange for toggleable options.
Inside a Dialog
Context menus work inside modals. Wrap your trigger area with ContextMenu within the dialog content.
Props
<ContextMenu>
| Name | Default | Values |
|---|---|---|
| External Reference | - | - |
<ContextMenuTrigger>
| Name | Default | Values |
|---|---|---|
| asChild | false | boolean |
| External Reference | - | - |
<ContextMenuContent>
| Name | Default | Values |
|---|---|---|
| align | start | startcenterend |
| alignOffset | 0 | number |
| sideOffset | 0 | number |
| External Reference | - | - |
<ContextMenuItem>
| Name | Default | Values |
|---|---|---|
| inset | false | boolean |
| variant | default | defaulterror |
| External Reference | - | - |
<ContextMenuCheckboxItem>
| Name | Default | Values |
|---|---|---|
| checked | false | boolean |
| onCheckedChange | - | (checked: boolean) => void |
| External Reference | - | - |
<ContextMenuRadioGroup>
| Name | Default | Values |
|---|---|---|
| External Reference | - | - |
<ContextMenuRadioItem>
| Name | Default | Values |
|---|---|---|
| value* | - | string |
| External Reference | - | - |
<ContextMenuLabel>
| Name | Default | Values |
|---|---|---|
| inset | false | boolean |
| External Reference | - | - |
<ContextMenuSeparator>
| Name | Default | Values |
|---|---|---|
| External Reference | - | - |
<ContextMenuSub>
| Name | Default | Values |
|---|---|---|
| External Reference | - | - |
<ContextMenuSubTrigger>
| Name | Default | Values |
|---|---|---|
| inset | false | boolean |
| External Reference | - | - |
<ContextMenuSubContent>
| Name | Default | Values |
|---|---|---|
| External Reference | - | - |
<ContextMenuShortcut>
| Name | Default | Values |
|---|---|---|
| className | - | string |
<ContextMenuGroup>
| Name | Default | Values |
|---|---|---|
| External Reference | - | - |
<ContextMenuPortal>
| Name | Default | Values |
|---|---|---|
| External Reference | - | - |