bearnie

Context Menu

Displays a menu of actions triggered by a right click.

Right click here

Installation

npx bearnie add context-menu
npx bearnie add context-menu

Usage

import {
  ContextMenu,
  ContextMenuContent,
  ContextMenuItem,
  ContextMenuTrigger,
} from "@/components/bearnie/context-menu"
<ContextMenu>
  <ContextMenuTrigger>Right click here</ContextMenuTrigger>
  <ContextMenuContent>
    <ContextMenuItem>Profile</ContextMenuItem>
    <ContextMenuItem>Settings</ContextMenuItem>
    <ContextMenuItem>Logout</ContextMenuItem>
  </ContextMenuContent>
</ContextMenu>

Examples

Basic

Right click here

With icons

Right click here

With groups

Right click here

Destructive

Right click here

ContextMenuSub opens a second-level menu on hover, click, or ArrowRight. Checkbox and radio items keep the menu open and emit context-menu-checkbox-change / context-menu-radio-change custom events.

Right click here

Anatomy

  • ContextMenu - Root container with event handling
  • ContextMenuTrigger - The area that responds to right-click
  • ContextMenuContent - The menu that appears at cursor position
  • ContextMenuItem - Individual menu actions
  • ContextMenuSeparator - Visual divider between groups
  • ContextMenuLabel - Non-interactive group heading
  • ContextMenuShortcut - Keyboard shortcut hint
  • ContextMenuSub - Wraps a submenu trigger and its content
  • ContextMenuSubTrigger - Item that opens the submenu
  • ContextMenuSubContent - The nested submenu panel
  • ContextMenuCheckboxItem - Toggleable item with a check indicator
  • ContextMenuRadioGroup - Groups radio items with a single selection
  • ContextMenuRadioItem - Selectable item within a radio group

Props

ContextMenuItem

Prop Type Default Description
disabled boolean false Disables the menu item
destructive boolean false Styles as a destructive action
inset boolean false Adds left padding for alignment
class string - Additional CSS classes

ContextMenuLabel

Prop Type Default Description
inset boolean false Adds left padding for alignment
class string - Additional CSS classes

ContextMenuSubTrigger

Prop Type Default Description
disabled boolean false Disables the submenu trigger
inset boolean false Adds left padding for alignment
class string - Additional CSS classes

ContextMenuCheckboxItem

Prop Type Default Description
checked boolean false Initial checked state
disabled boolean false Disables the item
class string - Additional CSS classes

ContextMenuRadioGroup

Prop Type Default Description
defaultValue string - Initially selected value
class string - Additional CSS classes

ContextMenuRadioItem

Prop Type Default Description
value string - The value this item represents (required)
disabled boolean false Disables the item
class string - Additional CSS classes

Events

Event Target Detail Description
context-menu-checkbox-change ContextMenuCheckboxItem { checked: boolean } Fired when a checkbox item is toggled
context-menu-radio-change ContextMenuRadioGroup { value: string } Fired when the radio selection changes