HomePluginsToolsWorkflowAboutContact
GetSet

Premium UI/UX layout engines, customizable micro-interaction plugins, and high-performance components for modern web developers.

Plugins

  • Carousel
  • Select
  • Zoom
  • FlexoGrid
  • Sortable
  • Modal
  • Drawer
  • Tooltip
  • Popover
  • Toast
  • ContextMenu
  • Tabs
  • Accordion
  • Reveal
  • Autocomplete
  • Tags
  • Range
  • DatePicker
  • Upload
  • Cropper
  • Table
  • Tree
  • Editor

Company

  • Home
  • Plugins
  • Developer Tools
  • Showcase
  • Our Process
  • About Us
  • Contact

Policies

  • Terms and Conditions
  • Privacy Policy
  • Accessibility Policy
  • Cookie Policy

© 2026 GetSet. All rights reserved.

Crafted for frontend excellence.

Your Bundle

Your bundle is empty

Add plugins from the catalog to build one combined CDN link — like picking font families.

Browse plugins
Overlay Plugin

GS ContextMenu

Right-click & dropdown menus with cursor anchoring + viewport flip, nested submenus, checkbox/radio items, shortcuts and full keyboard navigation.

Latest: v1.0.2
Downloads last month: 150
Visit Demo Website

Install Package

npm i @get-set/gs-contextmenu
or via CDN
<link rel="stylesheet" href="https://cdn.get-set.it/gs-contextmenu/latest/gs-contextmenu.min.css">
<script src="https://cdn.get-set.it/gs-contextmenu/latest/gs-contextmenu.min.js"></script>
Interactive Playground

Live Sandbox

ContextMenu.jsx
1
2
3
4
5
6
7
8
9
import ContextMenu from '@get-set/gs-contextmenu';

export default function App() {
  return (
    <ContextMenu>
      <div className="content">Your ContextMenu content</div>
    </ContextMenu>
  );
}
Live Preview
Right-click anywhere in this area

Options

Configuration Values

Reference?Reference option.
Trigger?How the menu opens. 'contextmenu' (right-click, default) | 'click' (left-click dropdown) | 'both' | 'manual' (API only).
Placement?Anchored placement in click/dropdown mode.
Gap?Distance (px) between the anchor and the menu in anchored mode.
Boundary Padding?Viewport padding kept when flipping/shifting (px).
Submenu Open Delay?Delay (ms) before a hovered submenu opens.
Submenu Close Delay?Delay (ms) before a submenu closes on mouse-out.
Animation?Entrance animation name.
Exit Animation?Separate exit animation.
Animation Duration?Animation duration in ms.
Animation Easing?CSS easing for the enter/exit animation.
Theme?Visual theme. `auto` follows prefers-color-scheme.
Accent Color?Accent color (CSS var --gscm-accent) used for highlight / focus.
Size?Size preset. Default 'md'.
Density?Item density. Default 'comfortable'.
Min Width?Minimum menu width (number = px).
Max Width?Maximum menu width (number = px).
Max Height?Maximum menu height; the list scrolls past this (number = px).
Rounded?Corner radius (number = px).
Elevation?Shadow elevation preset (0–5).
Backdrop?Subtle full-screen backdrop behind the menu.
Class Name?Extra class name applied to the menu root.

Feature Flags

API Specifications

OptionTypeDefaultDescription
referencestringnoneReference.
itemsGSMenuEntry[]noneThe menu entries.
triggerGSContextMenuTrigger'contextmenu'How the menu opens. 'contextmenu' (right-click, default) | 'click' (left-click dropdown) | 'both' | 'manual' (API only).
preventDefaultbooleantruePrevent the native browser context menu (contextmenu triggers). Default true.
placementGSContextMenuPlacement'bottom-start'Anchored placement in click/dropdown mode. Default 'bottom-start'.
offsetGSContextMenuOffsetnoneCustom nudge from the resolved position.
gapnumber4Distance (px) between the anchor and the menu in anchored mode. Default 4.
flipbooleantrueAuto-flip to the opposite side on viewport collision. Default true.
shiftbooleantrueShift the menu along the cross axis to stay on screen. Default true.
boundaryPaddingnumber8Viewport padding kept when flipping/shifting (px). Default 8.
submenuOpenDelaynumber120Delay (ms) before a hovered submenu opens. Default 120.
submenuCloseDelaynumber200Delay (ms) before a submenu closes on mouse-out. Default 200.
closeOnOutsidebooleantrueClose on outside pointerdown. Default true.
closeOnEscbooleantrueClose on Escape. Default true.
closeOnBlurbooleantrueClose when the window loses focus. Default true.
closeOnScrollbooleanfalseClose when the page scrolls. Default false.
closeOnSelectbooleantrueClose after selecting an item (unless the item sets keepOpen). Default true.
animationGSContextMenuAnimation | false'scale'Entrance animation name. `false` disables motion. Default 'scale'.
exitAnimationGSContextMenuAnimation | falsenoneSeparate exit animation. Mirrors `animation` when omitted.
animationDurationnumber | { enter?: number; exit?: number }160Animation duration in ms. Default 160.
animationEasingstring'cubic-bezier(.16,1,.3,1)'CSS easing for the enter/exit animation.
reducedMotion'auto' | boolean'auto'Honor prefers-reduced-motion. 'auto' | true | false. Default 'auto'.
themeGSContextMenuTheme'auto'Visual theme. `auto` follows prefers-color-scheme. Default 'auto'.
accentColorstringnoneAccent color (CSS var --gscm-accent) used for highlight / focus.
rtlbooleanfalseRight-to-left layout. Default false.
sizeGSContextMenuSize'md'Size preset. Default 'md'.
densityGSContextMenuDensity'comfortable'Item density. Default 'comfortable'.
minWidthnumber | string200Minimum menu width (number = px). Default 200.
maxWidthnumber | stringnoneMaximum menu width (number = px).
maxHeightnumber | stringnoneMaximum menu height; the list scrolls past this (number = px).
roundednumber | stringnoneCorner radius (number = px).
elevationnumber3Shadow elevation preset (0–5). Default 3.
backdrop'none' | 'dim' | 'blur''none'Subtle full-screen backdrop behind the menu. 'none' (default) | 'dim' | 'blur'.
classNamestringnoneExtra class name applied to the menu root.

Technical Features

Cursor Anchoring

Opens at the pointer and flips near edges.

Nested Submenus

Static or dynamic child menus on hover/keyboard.

Checkbox & Radio

Stateful items with grouped radios.

Keyboard Nav

Arrow navigation, type-ahead and shortcuts.