Context Menu
Used to provide options specific to an element or area.
context-menu-demo.tsx
"use client"
import {
ContextMenu,
ContextMenuCheckboxItem,
ContextMenuContent,
ContextMenuGroup,
ContextMenuGroupLabel,
ContextMenuItem,
ContextMenuItemShortcut,
ContextMenuRadioGroup,
ContextMenuRadioItem,
ContextMenuSeparator,
ContextMenuSubTrigger,
ContextMenuTrigger,
} from "@/components/ui/context-menu"
export function ContextMenuDemo() {
return (
<div className="w-80">
<ContextMenu>
<ContextMenuTrigger className="flex aspect-video w-full items-center justify-center rounded-lg border border-dashed text-sm">
Right Click Here
</ContextMenuTrigger>
<ContextMenuContent>
<ContextMenuGroup>
<ContextMenuItem>
Back
<ContextMenuItemShortcut>⌘[</ContextMenuItemShortcut>
</ContextMenuItem>
<ContextMenuItem disabled>
Forward
<ContextMenuItemShortcut>⌘]</ContextMenuItemShortcut>
</ContextMenuItem>
<ContextMenuItem>
Reload
<ContextMenuItemShortcut>⌘R</ContextMenuItemShortcut>
</ContextMenuItem>
<ContextMenu>
<ContextMenuSubTrigger>More</ContextMenuSubTrigger>
<ContextMenuContent>
<ContextMenuItem>Save As</ContextMenuItem>
<ContextMenuItem>Print</ContextMenuItem>
<ContextMenuItem>Cast</ContextMenuItem>
<ContextMenuSeparator />
<ContextMenuItem>Inspect</ContextMenuItem>
</ContextMenuContent>
</ContextMenu>
</ContextMenuGroup>
<ContextMenuSeparator />
<ContextMenuGroup>
<ContextMenuGroupLabel>Settings</ContextMenuGroupLabel>
<ContextMenuCheckboxItem>Always on Top</ContextMenuCheckboxItem>
<ContextMenuCheckboxItem>Show full URL</ContextMenuCheckboxItem>
</ContextMenuGroup>
<ContextMenuSeparator />
<ContextMenuGroup>
<ContextMenuGroupLabel>Zoom</ContextMenuGroupLabel>
<ContextMenuRadioGroup defaultValue="100">
<ContextMenuRadioItem value="50">50%</ContextMenuRadioItem>
<ContextMenuRadioItem value="100">100%</ContextMenuRadioItem>
<ContextMenuRadioItem value="150">150%</ContextMenuRadioItem>
</ContextMenuRadioGroup>
</ContextMenuGroup>
</ContextMenuContent>
</ContextMenu>
</div>
)
}
Installation
npx shadcn@latest add https://9ui.dev/r/context-menu
Usage
Imports
import {
ContextMenu,
ContextMenuCheckboxItem,
ContextMenuContent,
ContextMenuGroup,
ContextMenuGroupLabel,
ContextMenuItem,
ContextMenuItemShortcut,
ContextMenuRadioGroup,
ContextMenuRadioItem,
ContextMenuSeparator,
ContextMenuSubTrigger,
ContextMenuTrigger,
} from "@/components/ui/context-menu"
Anatomy
<ContextMenu>
<ContextMenuTrigger />
<ContextMenuContent>
<ContextMenuGroup>
<ContextMenuGroupLabel />
<ContextMenuItem>
<ContextMenuItemShortcut />
</ContextMenuItem>
<ContextMenu>
<ContextMenuSubTrigger />
<ContextMenuContent>
<ContextMenuItem />
</ContextMenuContent>
</ContextMenu>
</ContextMenuGroup>
<ContextMenuSeparator />
<ContextMenuCheckboxItem />
<ContextMenuSeparator />
<ContextMenuRadioGroup>
<ContextMenuRadioItem />
</ContextMenuRadioGroup>
</ContextMenuContent>
</ContextMenu>