NOCTA UI

Context Menu

A context menu component that appears on right-click with full keyboard navigation and submenu support

Installation

Install the Context Menu component using the nocta-ui CLI:

npx nocta-ui add context-menu

Import the component:

import {
  ContextMenu,
  ContextMenuTrigger,
  ContextMenuContent,
  ContextMenuItem,
  ContextMenuSeparator
} from '@/components/ui/context-menu';

Examples

Simple Context Menu

With Separators

Use ContextMenuSeparator to group related menu items.

With Submenu

Create nested menus using ContextMenuSub, ContextMenuSubTrigger, and ContextMenuSubContent.

Disabled State

Both the entire context menu and individual items can be disabled.

API Reference

ContextMenu

PropTypeDefaultDescription
childrenReact.ReactNodeThe trigger and content components
classNamestringAdditional CSS classes

ContextMenuTrigger

PropTypeDefaultDescription
childrenReact.ReactNodeContent that triggers the menu on right-click
disabledbooleanfalseDisable the context menu trigger
classNamestringAdditional CSS classes

ContextMenuContent

PropTypeDefaultDescription
childrenReact.ReactNodeMenu items and separators
classNamestringAdditional CSS classes
size'sm' | 'md' | 'lg''md'Content padding and min‑width

ContextMenuItem

PropTypeDefaultDescription
childrenReact.ReactNodeItem content
disabledbooleanfalseDisable the item
insetbooleanfalseIndent the item content
destructivebooleanfalseDestructive styling (e.g., delete)
classNamestringAdditional CSS classes
onClick() => voidClick handler

ContextMenuSeparator

PropTypeDefaultDescription
classNamestringAdditional CSS classes

ContextMenuSub

PropTypeDefaultDescription
childrenReact.ReactNodeSubmenu trigger and content

ContextMenuSubTrigger

PropTypeDefaultDescription
childrenReact.ReactNodeSubmenu trigger content
disabledbooleanfalseDisable the submenu trigger
insetbooleanfalseIndent the trigger content
destructivebooleanfalseDestructive styling (not typical)
classNamestringAdditional CSS classes

ContextMenuSubContent

PropTypeDefaultDescription
childrenReact.ReactNodeSubmenu items and separators
classNamestringAdditional CSS classes
size'sm' | 'md' | 'lg''md'Content padding and min‑width