Skip to content
Drivn logoDrivn

Context Menu

Right-click context menu with submenus, keyboard shortcuts, icons, and dot notation API.

Preview

Right-click here

Installation

npx drivn add context-menu

Usage

1import { ContextMenu } from "@/components/ui/context-menu"
2import { Copy, Trash2 } from "lucide-react"
3
4export default function Page() {
5 return (
6 <ContextMenu>
7 <ContextMenu.Trigger>
8 <div>Right-click here</div>
9 </ContextMenu.Trigger>
10 <ContextMenu.Content>
11 <ContextMenu.Item icon={Copy}>
12 Copy
13 </ContextMenu.Item>
14 <ContextMenu.Item icon={Trash2} destructive>
15 Delete
16 </ContextMenu.Item>
17 </ContextMenu.Content>
18 </ContextMenu>
19 )
20}

With Submenu

Right-click here

With Shortcuts

Right-click here

With Groups

Right-click here

API Reference

ContextMenu

PropTypeDefaultDescription
classNamestringAdditional CSS classes to apply to the root container
childrenReactNodeContextMenu sub-components (Trigger, Content)

ContextMenu.Item

PropTypeDefaultDescription
onClick() => voidCallback fired when the item is clicked
iconComponentType | ReactElementIcon component (Edit) or element (<Edit className="..." />)
shortcutstringKeyboard shortcut text displayed on the right
destructivebooleanApplies destructive styling to the item
disabledbooleanDisables the item interaction
childrenReactNodeItem label content

ContextMenu.Sub

PropTypeDefaultDescription
childrenReactNodeSub-components (SubTrigger, SubContent)
classNamestringAdditional CSS classes to apply

ContextMenu.SubTrigger

PropTypeDefaultDescription
iconComponentType | ReactElementIcon displayed before the label
childrenReactNodeTrigger label content

ContextMenu.SubContent

PropTypeDefaultDescription
childrenReactNodeSubmenu items
classNamestringAdditional CSS classes to apply

ContextMenu.Group

PropTypeDefaultDescription
childrenReactNodeGroup content (Label, Item, Separator)
classNamestringAdditional CSS classes to apply

ContextMenu.Label

PropTypeDefaultDescription
childrenReactNodeLabel text content
classNamestringAdditional CSS classes to apply

ContextMenu.Separator

PropTypeDefaultDescription
classNamestringAdditional CSS classes to apply