Context Menu
---import { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger,} from "@/components/starwind/context-menu";---
<ContextMenu> <ContextMenuTrigger class="flex aspect-video w-full min-w-40 max-w-xs items-center justify-center rounded-xl border border-dashed text-sm"> <span class="hidden pointer-fine:inline-block">Right click here</span> <span class="hidden pointer-coarse:inline-block">Long press here</span> </ContextMenuTrigger> <ContextMenuContent class="w-48"> <ContextMenuGroup> <ContextMenuItem> Back <ContextMenuShortcut>⌘[</ContextMenuShortcut> </ContextMenuItem> <ContextMenuItem disabled> Forward <ContextMenuShortcut>⌘]</ContextMenuShortcut> </ContextMenuItem> <ContextMenuItem> Reload <ContextMenuShortcut>⌘R</ContextMenuShortcut> </ContextMenuItem> <ContextMenuSub> <ContextMenuSubTrigger>More Tools</ContextMenuSubTrigger> <ContextMenuSubContent class="w-44"> <ContextMenuGroup> <ContextMenuItem>Save Page...</ContextMenuItem> <ContextMenuItem>Create Shortcut...</ContextMenuItem> <ContextMenuItem>Name Window...</ContextMenuItem> </ContextMenuGroup> <ContextMenuSeparator /> <ContextMenuGroup> <ContextMenuItem>Developer Tools</ContextMenuItem> </ContextMenuGroup> <ContextMenuSeparator /> <ContextMenuGroup> <ContextMenuItem class="text-destructive data-highlighted:text-destructive focus:text-destructive">Delete</ContextMenuItem> </ContextMenuGroup> </ContextMenuSubContent> </ContextMenuSub> </ContextMenuGroup> <ContextMenuSeparator /> <ContextMenuGroup> <ContextMenuCheckboxItem defaultChecked>Show Bookmarks</ContextMenuCheckboxItem> <ContextMenuCheckboxItem>Show Full URLs</ContextMenuCheckboxItem> </ContextMenuGroup> </ContextMenuContent></ContextMenu>import { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger,} from "@/components/starwind/context-menu";
export function Example() { return ( <ContextMenu> <ContextMenuTrigger className="flex aspect-video w-full min-w-40 max-w-xs items-center justify-center rounded-xl border border-dashed text-sm"> <span className="hidden pointer-fine:inline-block">Right click here</span> <span className="hidden pointer-coarse:inline-block">Long press here</span> </ContextMenuTrigger> <ContextMenuContent className="w-48"> <ContextMenuGroup> <ContextMenuItem> Back <ContextMenuShortcut>⌘[</ContextMenuShortcut> </ContextMenuItem> <ContextMenuItem disabled> Forward <ContextMenuShortcut>⌘]</ContextMenuShortcut> </ContextMenuItem> <ContextMenuItem> Reload <ContextMenuShortcut>⌘R</ContextMenuShortcut> </ContextMenuItem> <ContextMenuSub> <ContextMenuSubTrigger>More Tools</ContextMenuSubTrigger> <ContextMenuSubContent className="w-44"> <ContextMenuGroup> <ContextMenuItem>Save Page...</ContextMenuItem> <ContextMenuItem>Create Shortcut...</ContextMenuItem> <ContextMenuItem>Name Window...</ContextMenuItem> </ContextMenuGroup> <ContextMenuSeparator /> <ContextMenuGroup> <ContextMenuItem>Developer Tools</ContextMenuItem> </ContextMenuGroup> <ContextMenuSeparator /> <ContextMenuGroup> <ContextMenuItem className="text-destructive data-highlighted:text-destructive focus:text-destructive">Delete</ContextMenuItem> </ContextMenuGroup> </ContextMenuSubContent> </ContextMenuSub> </ContextMenuGroup> <ContextMenuSeparator /> <ContextMenuGroup> <ContextMenuCheckboxItem defaultChecked>Show Bookmarks</ContextMenuCheckboxItem> <ContextMenuCheckboxItem>Show Full URLs</ContextMenuCheckboxItem> </ContextMenuGroup> </ContextMenuContent> </ContextMenu> );}Installation
pnpx starwind@latest add context-menunpx starwind@latest add context-menuyarn dlx starwind@latest add context-menuUsage
---import { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger,} from "@/components/starwind/context-menu";---
<ContextMenu> <ContextMenuTrigger class="flex aspect-video w-full min-w-40 max-w-xs items-center justify-center rounded-xl border border-dashed text-sm"> <span class="hidden pointer-fine:inline-block">Right click here</span> <span class="hidden pointer-coarse:inline-block">Long press here</span> </ContextMenuTrigger> <ContextMenuContent class="w-48"> <ContextMenuGroup> <ContextMenuItem> Back <ContextMenuShortcut>⌘[</ContextMenuShortcut> </ContextMenuItem> <ContextMenuItem disabled> Forward <ContextMenuShortcut>⌘]</ContextMenuShortcut> </ContextMenuItem> <ContextMenuItem> Reload <ContextMenuShortcut>⌘R</ContextMenuShortcut> </ContextMenuItem> <ContextMenuSub> <ContextMenuSubTrigger>More Tools</ContextMenuSubTrigger> <ContextMenuSubContent class="w-44"> <ContextMenuGroup> <ContextMenuItem>Save Page...</ContextMenuItem> <ContextMenuItem>Create Shortcut...</ContextMenuItem> <ContextMenuItem>Name Window...</ContextMenuItem> </ContextMenuGroup> <ContextMenuSeparator /> <ContextMenuGroup> <ContextMenuItem>Developer Tools</ContextMenuItem> </ContextMenuGroup> <ContextMenuSeparator /> <ContextMenuGroup> <ContextMenuItem class="text-destructive data-highlighted:text-destructive focus:text-destructive">Delete</ContextMenuItem> </ContextMenuGroup> </ContextMenuSubContent> </ContextMenuSub> </ContextMenuGroup> <ContextMenuSeparator /> <ContextMenuGroup> <ContextMenuCheckboxItem defaultChecked>Show Bookmarks</ContextMenuCheckboxItem> <ContextMenuCheckboxItem>Show Full URLs</ContextMenuCheckboxItem> </ContextMenuGroup> </ContextMenuContent></ContextMenu>import { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger,} from "@/components/starwind/context-menu";
export function Example() { return ( <ContextMenu> <ContextMenuTrigger className="flex aspect-video w-full min-w-40 max-w-xs items-center justify-center rounded-xl border border-dashed text-sm"> <span className="hidden pointer-fine:inline-block">Right click here</span> <span className="hidden pointer-coarse:inline-block">Long press here</span> </ContextMenuTrigger> <ContextMenuContent className="w-48"> <ContextMenuGroup> <ContextMenuItem> Back <ContextMenuShortcut>⌘[</ContextMenuShortcut> </ContextMenuItem> <ContextMenuItem disabled> Forward <ContextMenuShortcut>⌘]</ContextMenuShortcut> </ContextMenuItem> <ContextMenuItem> Reload <ContextMenuShortcut>⌘R</ContextMenuShortcut> </ContextMenuItem> <ContextMenuSub> <ContextMenuSubTrigger>More Tools</ContextMenuSubTrigger> <ContextMenuSubContent className="w-44"> <ContextMenuGroup> <ContextMenuItem>Save Page...</ContextMenuItem> <ContextMenuItem>Create Shortcut...</ContextMenuItem> <ContextMenuItem>Name Window...</ContextMenuItem> </ContextMenuGroup> <ContextMenuSeparator /> <ContextMenuGroup> <ContextMenuItem>Developer Tools</ContextMenuItem> </ContextMenuGroup> <ContextMenuSeparator /> <ContextMenuGroup> <ContextMenuItem className="text-destructive data-highlighted:text-destructive focus:text-destructive">Delete</ContextMenuItem> </ContextMenuGroup> </ContextMenuSubContent> </ContextMenuSub> </ContextMenuGroup> <ContextMenuSeparator /> <ContextMenuGroup> <ContextMenuCheckboxItem defaultChecked>Show Bookmarks</ContextMenuCheckboxItem> <ContextMenuCheckboxItem>Show Full URLs</ContextMenuCheckboxItem> </ContextMenuGroup> </ContextMenuContent> </ContextMenu> );}Composition
Use the following composition to build a ContextMenu:
ContextMenu├── ContextMenuTrigger└── ContextMenuContent ├── ContextMenuGroup │ ├── ContextMenuLabel │ ├── ContextMenuItem │ └── ContextMenuCheckboxItem ├── ContextMenuSeparator └── ContextMenuSub ├── ContextMenuSubTrigger └── ContextMenuSubContent └── ContextMenuGroup ├── ContextMenuItem └── ContextMenuItemBasic
A simple context menu with a few actions.
---import { ContextMenu, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuTrigger,} from "@/components/starwind/context-menu";---
<ContextMenu> <ContextMenuTrigger class="flex aspect-video w-full min-w-40 max-w-xs items-center justify-center rounded-xl border border-dashed text-sm"> <span class="hidden pointer-fine:inline-block">Right click here</span> <span class="hidden pointer-coarse:inline-block">Long press here</span> </ContextMenuTrigger> <ContextMenuContent> <ContextMenuGroup> <ContextMenuItem>Back</ContextMenuItem> <ContextMenuItem disabled>Forward</ContextMenuItem> <ContextMenuItem>Reload</ContextMenuItem> </ContextMenuGroup> </ContextMenuContent></ContextMenu>import { ContextMenu, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuTrigger,} from "@/components/starwind/context-menu";
export function Example() { return ( <> <ContextMenu> <ContextMenuTrigger className="flex aspect-video w-full min-w-40 max-w-xs items-center justify-center rounded-xl border border-dashed text-sm"> <span className="hidden pointer-fine:inline-block">Right click here</span> <span className="hidden pointer-coarse:inline-block">Long press here</span> </ContextMenuTrigger> <ContextMenuContent> <ContextMenuGroup> <ContextMenuItem>Back</ContextMenuItem> <ContextMenuItem disabled>Forward</ContextMenuItem> <ContextMenuItem>Reload</ContextMenuItem> </ContextMenuGroup> </ContextMenuContent> </ContextMenu> </> );}Submenu
Use ContextMenuSub, ContextMenuSubTrigger, and ContextMenuSubContent to nest secondary actions.
---import { ContextMenu, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger,} from "@/components/starwind/context-menu";---
<ContextMenu> <ContextMenuTrigger class="flex aspect-video w-full min-w-40 max-w-xs items-center justify-center rounded-xl border border-dashed text-sm"> <span class="hidden pointer-fine:inline-block">Right click here</span> <span class="hidden pointer-coarse:inline-block">Long press here</span> </ContextMenuTrigger> <ContextMenuContent class="w-48"> <ContextMenuGroup> <ContextMenuItem> Copy <ContextMenuShortcut>⌘C</ContextMenuShortcut> </ContextMenuItem> <ContextMenuItem> Cut <ContextMenuShortcut>⌘X</ContextMenuShortcut> </ContextMenuItem> </ContextMenuGroup> <ContextMenuSub> <ContextMenuSubTrigger>More Tools</ContextMenuSubTrigger> <ContextMenuSubContent class="w-44"> <ContextMenuGroup> <ContextMenuItem>Save Page...</ContextMenuItem> <ContextMenuItem>Create Shortcut...</ContextMenuItem> <ContextMenuItem>Name Window...</ContextMenuItem> </ContextMenuGroup> <ContextMenuSeparator /> <ContextMenuGroup> <ContextMenuItem>Developer Tools</ContextMenuItem> </ContextMenuGroup> <ContextMenuSeparator /> <ContextMenuGroup> <ContextMenuItem class="text-destructive data-highlighted:text-destructive focus:text-destructive">Delete</ContextMenuItem> </ContextMenuGroup> </ContextMenuSubContent> </ContextMenuSub> </ContextMenuContent></ContextMenu>import { ContextMenu, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger,} from "@/components/starwind/context-menu";
export function Example() { return ( <> <ContextMenu> <ContextMenuTrigger className="flex aspect-video w-full min-w-40 max-w-xs items-center justify-center rounded-xl border border-dashed text-sm"> <span className="hidden pointer-fine:inline-block">Right click here</span> <span className="hidden pointer-coarse:inline-block">Long press here</span> </ContextMenuTrigger> <ContextMenuContent className="w-48"> <ContextMenuGroup> <ContextMenuItem> Copy <ContextMenuShortcut>⌘C</ContextMenuShortcut> </ContextMenuItem> <ContextMenuItem> Cut <ContextMenuShortcut>⌘X</ContextMenuShortcut> </ContextMenuItem> </ContextMenuGroup> <ContextMenuSub> <ContextMenuSubTrigger>More Tools</ContextMenuSubTrigger> <ContextMenuSubContent className="w-44"> <ContextMenuGroup> <ContextMenuItem>Save Page...</ContextMenuItem> <ContextMenuItem>Create Shortcut...</ContextMenuItem> <ContextMenuItem>Name Window...</ContextMenuItem> </ContextMenuGroup> <ContextMenuSeparator /> <ContextMenuGroup> <ContextMenuItem>Developer Tools</ContextMenuItem> </ContextMenuGroup> <ContextMenuSeparator /> <ContextMenuGroup> <ContextMenuItem className="text-destructive data-highlighted:text-destructive focus:text-destructive">Delete</ContextMenuItem> </ContextMenuGroup> </ContextMenuSubContent> </ContextMenuSub> </ContextMenuContent> </ContextMenu> </> );}Shortcuts
Add ContextMenuShortcut to show keyboard hints.
---import { ContextMenu, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuTrigger,} from "@/components/starwind/context-menu";---
<ContextMenu> <ContextMenuTrigger class="flex aspect-video w-full min-w-40 max-w-xs items-center justify-center rounded-xl border border-dashed text-sm"> <span class="hidden pointer-fine:inline-block">Right click here</span> <span class="hidden pointer-coarse:inline-block">Long press here</span> </ContextMenuTrigger> <ContextMenuContent> <ContextMenuGroup> <ContextMenuItem> Back <ContextMenuShortcut>⌘[</ContextMenuShortcut> </ContextMenuItem> <ContextMenuItem disabled> Forward <ContextMenuShortcut>⌘]</ContextMenuShortcut> </ContextMenuItem> <ContextMenuItem> Reload <ContextMenuShortcut>⌘R</ContextMenuShortcut> </ContextMenuItem> </ContextMenuGroup> <ContextMenuSeparator /> <ContextMenuGroup> <ContextMenuItem> Save <ContextMenuShortcut>⌘S</ContextMenuShortcut> </ContextMenuItem> <ContextMenuItem> Save As... <ContextMenuShortcut>⇧⌘S</ContextMenuShortcut> </ContextMenuItem> </ContextMenuGroup> </ContextMenuContent></ContextMenu>import { ContextMenu, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuTrigger,} from "@/components/starwind/context-menu";
export function Example() { return ( <> <ContextMenu> <ContextMenuTrigger className="flex aspect-video w-full min-w-40 max-w-xs items-center justify-center rounded-xl border border-dashed text-sm"> <span className="hidden pointer-fine:inline-block">Right click here</span> <span className="hidden pointer-coarse:inline-block">Long press here</span> </ContextMenuTrigger> <ContextMenuContent> <ContextMenuGroup> <ContextMenuItem> Back <ContextMenuShortcut>⌘[</ContextMenuShortcut> </ContextMenuItem> <ContextMenuItem disabled> Forward <ContextMenuShortcut>⌘]</ContextMenuShortcut> </ContextMenuItem> <ContextMenuItem> Reload <ContextMenuShortcut>⌘R</ContextMenuShortcut> </ContextMenuItem> </ContextMenuGroup> <ContextMenuSeparator /> <ContextMenuGroup> <ContextMenuItem> Save <ContextMenuShortcut>⌘S</ContextMenuShortcut> </ContextMenuItem> <ContextMenuItem> Save As... <ContextMenuShortcut>⇧⌘S</ContextMenuShortcut> </ContextMenuItem> </ContextMenuGroup> </ContextMenuContent> </ContextMenu> </> );}With Icons
Combine icons with labels for quick scanning.
---import { ContextMenu, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuSeparator, ContextMenuTrigger,} from "@/components/starwind/context-menu";import Copy from "@tabler/icons/outline/copy.svg";import Edit from "@tabler/icons/outline/edit.svg";import Trash from "@tabler/icons/outline/trash.svg";---
<ContextMenu> <ContextMenuTrigger class="flex aspect-video w-full min-w-40 max-w-xs items-center justify-center rounded-xl border border-dashed text-sm"> <span class="hidden pointer-fine:inline-block">Right click here</span> <span class="hidden pointer-coarse:inline-block">Long press here</span> </ContextMenuTrigger> <ContextMenuContent> <ContextMenuGroup> <ContextMenuItem> <Copy /> Copy </ContextMenuItem> <ContextMenuItem> <Edit /> Rename </ContextMenuItem> </ContextMenuGroup> <ContextMenuSeparator /> <ContextMenuGroup> <ContextMenuItem class="text-destructive data-highlighted:text-destructive focus:text-destructive"> <Trash /> Delete </ContextMenuItem> </ContextMenuGroup> </ContextMenuContent></ContextMenu>import { ContextMenu, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuSeparator, ContextMenuTrigger,} from "@/components/starwind/context-menu";import { IconCopy as Copy } from "@tabler/icons-react";import { IconEdit as Edit } from "@tabler/icons-react";import { IconTrash as Trash } from "@tabler/icons-react";
export function Example() { return ( <> <ContextMenu> <ContextMenuTrigger className="flex aspect-video w-full min-w-40 max-w-xs items-center justify-center rounded-xl border border-dashed text-sm"> <span className="hidden pointer-fine:inline-block">Right click here</span> <span className="hidden pointer-coarse:inline-block">Long press here</span> </ContextMenuTrigger> <ContextMenuContent> <ContextMenuGroup> <ContextMenuItem> <Copy /> Copy </ContextMenuItem> <ContextMenuItem> <Edit /> Rename </ContextMenuItem> </ContextMenuGroup> <ContextMenuSeparator /> <ContextMenuGroup> <ContextMenuItem className="text-destructive data-highlighted:text-destructive focus:text-destructive"> <Trash /> Delete </ContextMenuItem> </ContextMenuGroup> </ContextMenuContent> </ContextMenu> </> );}Checkboxes
Use ContextMenuCheckboxItem for toggle actions.
---import { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuTrigger,} from "@/components/starwind/context-menu";---
<ContextMenu> <ContextMenuTrigger class="flex aspect-video w-full min-w-40 max-w-xs items-center justify-center rounded-xl border border-dashed text-sm"> <span class="hidden pointer-fine:inline-block">Right click here</span> <span class="hidden pointer-coarse:inline-block">Long press here</span> </ContextMenuTrigger> <ContextMenuContent> <ContextMenuGroup> <ContextMenuCheckboxItem defaultChecked>Show Bookmarks Bar</ContextMenuCheckboxItem> <ContextMenuCheckboxItem>Show Full URLs</ContextMenuCheckboxItem> <ContextMenuCheckboxItem defaultChecked>Show Developer Tools</ContextMenuCheckboxItem> </ContextMenuGroup> </ContextMenuContent></ContextMenu>import { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuTrigger,} from "@/components/starwind/context-menu";
export function Example() { return ( <> <ContextMenu> <ContextMenuTrigger className="flex aspect-video w-full min-w-40 max-w-xs items-center justify-center rounded-xl border border-dashed text-sm"> <span className="hidden pointer-fine:inline-block">Right click here</span> <span className="hidden pointer-coarse:inline-block">Long press here</span> </ContextMenuTrigger> <ContextMenuContent> <ContextMenuGroup> <ContextMenuCheckboxItem defaultChecked>Show Bookmarks Bar</ContextMenuCheckboxItem> <ContextMenuCheckboxItem>Show Full URLs</ContextMenuCheckboxItem> <ContextMenuCheckboxItem defaultChecked>Show Developer Tools</ContextMenuCheckboxItem> </ContextMenuGroup> </ContextMenuContent> </ContextMenu> </> );}API Reference
Styled Component API
These props are added or materially changed by the installed styled component. Standard HTML attributes remain available through the inherited interfaces noted below. Expand a prop to see named type definitions and framework-specific imports. Follow the Primitive and Runtime links for lower-level behavior props.
Context Menu Content
Inherits div attributes.
Contains the following additional props:
boolean false
- Description
- Keeps the public Portal wrapper inline instead of moving it to a target.
- Classification
- Wrapper prop
string —
- Description
- Sets the CSS selector for the public Portal wrapper target.
- Classification
- Wrapper prop
Context Menu Item
Inherits div attributes.
Contains the following additional props:
boolean false
- Description
- Adds leading inset spacing for visual alignment.
- Classification
- Wrapper prop
Context Menu Checkbox Item
Inherits div attributes. Omits `aria-checked` and `role`.
Contains the following additional props:
boolean false
- Description
- Closes the containing surface after the item is activated.
- Classification
- Wrapper prop
string —
- Description
- Adds classes to the generated selection indicator.
- Classification
- Wrapper prop
boolean false
- Description
- Adds leading inset spacing for visual alignment.
- Classification
- Wrapper prop
boolean true
- Description
- Shows the generated selection indicator.
- Classification
- Wrapper prop
Context Menu Radio Item
Inherits div attributes. Omits `aria-checked` and `role`.
Contains the following additional props:
boolean false
- Description
- Closes the containing surface after the item is activated.
- Classification
- Wrapper prop
string —
- Description
- Adds classes to the generated selection indicator.
- Classification
- Wrapper prop
boolean false
- Description
- Adds leading inset spacing for visual alignment.
- Classification
- Wrapper prop
boolean true
- Description
- Shows the generated selection indicator.
- Classification
- Wrapper prop
string —
- Description
- Controls or identifies the component value.
- Classification
- Wrapper prop
Context Menu Label
Inherits div attributes.
Contains the following additional props:
boolean false
- Description
- Adds leading inset spacing for visual alignment.
- Classification
- Wrapper prop
Context Menu Sub Trigger
Inherits div attributes.
Contains the following additional props:
boolean false
- Description
- Adds leading inset spacing for visual alignment.
- Classification
- Wrapper prop
Context Menu Sub Content
Inherits div attributes.
Contains the following additional props:
boolean false
- Description
- Keeps the public Portal wrapper inline instead of moving it to a target.
- Classification
- Wrapper prop
string —
- Description
- Sets the CSS selector for the public Portal wrapper target.
- Classification
- Wrapper prop
"top" | "right" | "bottom" | "left" "right"
- Description
- Selects the preferred side for floating content.
- Classification
- Primitive override
- Primitive prop
- context-menu.Popup.side
number 0
- Description
- Sets the distance in pixels between floating content and its anchor.
- Classification
- Primitive override
- Primitive prop
- context-menu.Popup.sideOffset
Primitive And Runtime API
Use these references when you need the lower-level behavior APIs behind Context Menu.
Primitive API
Runtime API
- Context Menu primitive
createContextMenufrom@starwind-ui/runtime/context-menu
Changelog
View version history v2.1.0 3 releases
v2.1.0
- Added
portalContaineranddisablePortaltoContextMenuContentandContextMenuSubContentfor custom portal targets and inline rendering. - Kept touch-opened parent menus active while focus moves into a submenu, which keeps mobile submenus anchored to their triggers.
v2.0.1
- Named the generated aggregate default export so React and Astro tooling can identify the installed component cleanly.
v2.0.0
- Rebuilt Context Menu on Starwind Runtime for opening, keyboard navigation, submenus, and checked items.
- See the Context Menu Primitive for the underlying unstyled anatomy and behavior API.