components

Context Menu

Displays a menu located at the pointer, triggered by a right-click or long press.

Source CodeRadix UI

Installation

pnpm dlx radianui@latest add context-menu

Usage

Imports

components/ui/context-menu.tsx
import {
	ContextMenu,
	ContextMenuCheckboxItem,
	ContextMenuContent,
	ContextMenuGroup,
	ContextMenuItem,
	ContextMenuLabel,
	ContextMenuRadioGroup,
	ContextMenuRadioItem,
	ContextMenuSeparator,
	ContextMenuShortcut,
	ContextMenuSub,
	ContextMenuSubContent,
	ContextMenuSubTrigger,
	ContextMenuTrigger,
} from "@/components/ui/context-menu"

Code

components/ui/context-menu.tsx
<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.


Right click here

With Checkboxes

Use ContextMenuCheckboxItem with checked and onCheckedChange for toggleable options.


Right click here

Inside a Dialog

Context menus work inside modals. Wrap your trigger area with ContextMenu within the dialog content.


Props

<ContextMenu>
NameDefaultValues
External Reference--
<ContextMenuTrigger>
NameDefaultValues
asChildfalseboolean
External Reference--
<ContextMenuContent>
NameDefaultValues
alignstartstartcenterend
alignOffset0number
sideOffset0number
External Reference--
<ContextMenuItem>
NameDefaultValues
insetfalseboolean
variantdefaultdefaulterror
External Reference--
<ContextMenuCheckboxItem>
NameDefaultValues
checkedfalseboolean
onCheckedChange-(checked: boolean) => void
External Reference--
<ContextMenuRadioGroup>
NameDefaultValues
External Reference--
<ContextMenuRadioItem>
NameDefaultValues
value*-string
External Reference--
<ContextMenuLabel>
NameDefaultValues
insetfalseboolean
External Reference--
<ContextMenuSeparator>
NameDefaultValues
External Reference--
<ContextMenuSub>
NameDefaultValues
External Reference--
<ContextMenuSubTrigger>
NameDefaultValues
insetfalseboolean
External Reference--
<ContextMenuSubContent>
NameDefaultValues
External Reference--
<ContextMenuShortcut>
NameDefaultValues
className-string
<ContextMenuGroup>
NameDefaultValues
External Reference--
<ContextMenuPortal>
NameDefaultValues
External Reference--