Introducing PrimeReact v11-alpha 🎉Discover Now
styledMenu

ContextMenu

A right-click triggered menu with keyboard navigation, nested submenus, and WAI-ARIA support.

preview

Usage#

import { ContextMenu } from '@primereact/ui/contextmenu';
<ContextMenu.Root>
    <ContextMenu.Trigger>
        <div>Right-click here</div>
    </ContextMenu.Trigger>
    <ContextMenu.Portal>
        <ContextMenu.Positioner>
            <ContextMenu.Popup>
                <ContextMenu.List>
                    <ContextMenu.Item>Copy</ContextMenu.Item>
                    <ContextMenu.Item>Paste</ContextMenu.Item>
                    <ContextMenu.Separator />
                    <ContextMenu.Item>Delete</ContextMenu.Item>
                </ContextMenu.List>
            </ContextMenu.Popup>
        </ContextMenu.Positioner>
    </ContextMenu.Portal>
</ContextMenu.Root>

Examples#

Basic#

A standard context menu opened with a right-click on the trigger area.

basic-demo

Nest a ContextMenu.Sub inside any ContextMenu.List. Reuse the same ContextMenu.Portal / ContextMenu.Positioner / ContextMenu.Popup parts at any level — there are no separate sub-prefixed components.

submenu-demo

Global#

Setting the global property on ContextMenu.Root attaches the context menu to the document.

Right-Click anywhere on this page to view the global ContextMenu.

global-demo

API#

Sub-Components#

See Primitive API for ContextMenuRoot, ContextMenuTrigger, ContextMenuPortal, ContextMenuPositioner, ContextMenuPopup, ContextMenuArrow, ContextMenuList, ContextMenuGroup, ContextMenuLabel, ContextMenuSeparator, ContextMenuItem, ContextMenuRadioGroup, ContextMenuSub, ContextMenuSubTrigger, ContextMenuIndicator component documentation.

Hooks#

See Headless API for useContextMenu and useContextMenuSub hook documentation.

Accessibility#

See ContextMenu Primitive for WAI-ARIA compliance details and keyboard support.