sigilUI

Context Menu

Right-click menu with nested submenus, checkboxes, and radio items.

@sigil-ui/componentsReact

ContextMenu

Right-click menu with nested submenus, checkboxes, and radio items.

Installation

npx @sigil-ui/cli add context-menu

Preview

Live preview Interactive

Import

import {
  ContextMenu,
  ContextMenuTrigger,
  ContextMenuContent,
  ContextMenuItem,
  ContextMenuSeparator,
  ContextMenuSub,
  ContextMenuSubTrigger,
  ContextMenuSubContent,
  ContextMenuCheckboxItem,
  ContextMenuRadioGroup,
  ContextMenuRadioItem,
  ContextMenuLabel,
} from "@sigil-ui/components";

Usage

<ContextMenu>
  <ContextMenuTrigger className="flex h-[150px] w-[300px] items-center justify-center rounded-[var(--s-radius-md)] border border-dashed border-[color:var(--s-border)]">
    Right click here
  </ContextMenuTrigger>
  <ContextMenuContent>
    <ContextMenuItem>Cut</ContextMenuItem>
    <ContextMenuItem>Copy</ContextMenuItem>
    <ContextMenuItem>Paste</ContextMenuItem>
    <ContextMenuSeparator />
    <ContextMenuItem>Delete</ContextMenuItem>
  </ContextMenuContent>
</ContextMenu>

Examples

With submenus

<ContextMenu>
  <ContextMenuTrigger>Right click</ContextMenuTrigger>
  <ContextMenuContent>
    <ContextMenuItem>Back</ContextMenuItem>
    <ContextMenuItem>Forward</ContextMenuItem>
    <ContextMenuSub>
      <ContextMenuSubTrigger>Share</ContextMenuSubTrigger>
      <ContextMenuSubContent>
        <ContextMenuItem>Email</ContextMenuItem>
        <ContextMenuItem>Slack</ContextMenuItem>
        <ContextMenuItem>Copy link</ContextMenuItem>
      </ContextMenuSubContent>
    </ContextMenuSub>
  </ContextMenuContent>
</ContextMenu>

With checkbox items

<ContextMenu>
  <ContextMenuTrigger>Right click</ContextMenuTrigger>
  <ContextMenuContent>
    <ContextMenuLabel>View</ContextMenuLabel>
    <ContextMenuCheckboxItem checked={showGrid} onCheckedChange={setShowGrid}>
      Show grid
    </ContextMenuCheckboxItem>
    <ContextMenuCheckboxItem checked={showRulers} onCheckedChange={setShowRulers}>
      Show rulers
    </ContextMenuCheckboxItem>
  </ContextMenuContent>
</ContextMenu>

Props

ContextMenuContent

PropTypeDefaultDescription
classNamestring—Additional CSS classes

ContextMenuItem

PropTypeDefaultDescription
insetbooleanfalseAdd left padding for icon alignment
disabledbooleanfalseDisable the item
onSelect() => void—Selection handler

Tokens

This component reads these CSS variables:

  • --s-surface — menu background
  • --s-border — menu border, separator
  • --s-card-radius — menu border radius
  • --s-radius-sm — item border radius
  • --s-shadow-md — menu elevation
  • --s-text — item text, focus state
  • --s-text-muted — disabled items, labels
  • --s-background — item focus background
  • --s-primary — checkbox/radio indicator