Skip to content
Drivn

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
classNamestring—Additional CSS classes to apply to the root container
childrenReactNode—ContextMenu sub-components (Trigger, Content)

ContextMenu.Item

PropTypeDefaultDescription
onClick() => void—Callback fired when the item is clicked
iconComponentType | ReactElement—Icon component (Edit) or element (<Edit className="..." />)
shortcutstring—Keyboard shortcut text displayed on the right
destructiveboolean—Applies destructive styling to the item
disabledboolean—Disables the item interaction
childrenReactNode—Item label content

ContextMenu.Sub

PropTypeDefaultDescription
childrenReactNode—Sub-components (SubTrigger, SubContent)
classNamestring—Additional CSS classes to apply

ContextMenu.SubTrigger

PropTypeDefaultDescription
iconComponentType | ReactElement—Icon displayed before the label
childrenReactNode—Trigger label content

ContextMenu.SubContent

PropTypeDefaultDescription
childrenReactNode—Submenu items
classNamestring—Additional CSS classes to apply

ContextMenu.Group

PropTypeDefaultDescription
childrenReactNode—Group content (Label, Item, Separator)
classNamestring—Additional CSS classes to apply

ContextMenu.Label

PropTypeDefaultDescription
childrenReactNode—Label text content
classNamestring—Additional CSS classes to apply

ContextMenu.Separator

PropTypeDefaultDescription
classNamestring—Additional CSS classes to apply