Context-menu
cubby-ui/context-menuFreeComponent
A context-menu component.
Live preview
live · rendered by the registry
Rendered by cubby-ui on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://cubby-ui.dev/r/context-menu.jsonSource
1"use client";23import * as React from "react";4import { ContextMenu as BaseContextMenu } from "@base-ui/react/context-menu";5import { cn } from "@/lib/utils";6import {7 solidSurface,8 type SurfaceLevel,9} from "@/registry/default/lib/elevated";1011import { HugeiconsIcon } from "@hugeicons/react";12import {13 ArrowRight01Icon,14 CircleIcon,15 Tick02Icon,16} from "@hugeicons/core-free-icons";17function ContextMenu({18 ...props19}: React.ComponentProps<typeof BaseContextMenu.Root>) {20 return <BaseContextMenu.Root data-slot="context-menu" {...props} />;21}2223function ContextMenuTrigger({24 ...props25}: React.ComponentProps<typeof BaseContextMenu.Trigger>) {26 return (27 <BaseContextMenu.Trigger data-slot="context-menu-trigger" {...props} />28 );29}3031function ContextMenuGroup({32 ...props33}: React.ComponentProps<typeof BaseContextMenu.Group>) {34 return <BaseContextMenu.Group data-slot="context-menu-group" {...props} />;35}3637function ContextMenuPortal({38 ...props39}: React.ComponentProps<typeof BaseContextMenu.Portal>) {40 return <BaseContextMenu.Portal data-slot="context-menu-portal" {...props} />;41}4243function ContextMenuPositioner({44 ...props45}: React.ComponentProps<typeof BaseContextMenu.Positioner>) {46 return (47 <BaseContextMenu.Positioner48 data-slot="context-menu-positioner"49 {...props}50 />51 );52}5354function ContextMenuRadioGroup({55 ...props56}: React.ComponentProps<typeof BaseContextMenu.RadioGroup>) {57 return (58 <BaseContextMenu.RadioGroup59 data-slot="context-menu-radio-group"60 {...props}61 />62 );63}6465function ContextMenuContent({66 className,67 sideOffset = 4,68 align = "start",69 level = 3,70 shadowLevel = 3,71 ...props72}: React.ComponentProps<typeof BaseContextMenu.Popup> & {73 align?: BaseContextMenu.Positioner.Props["align"];74 sideOffset?: BaseContextMenu.Positioner.Props["sideOffset"];75 /** Surface elevation level for the popup bg (1-8). Bump when nesting inside a Dialog or other elevated container. Defaults to 3. */76 level?: SurfaceLevel;77 /** Shadow weight (1-8). Pinned to 3 by default so the menu reads the same regardless of nesting depth. */78 shadowLevel?: SurfaceLevel;79}) {80 return (81 <ContextMenuPortal>82 <ContextMenuPositioner83 className="max-h-[var(--available-height)]"84 align={align}85 sideOffset={sideOffset}86 >87 <BaseContextMenu.Popup88 data-slot="context-menu-content"89 data-level={level}90 className={cn(91// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from cubby-ui
All 79 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | cubby-ui | Components | Free | 2 deps | |
| Alertalert | cubby-ui | Components | Free | 1 dep | |
| Alert-dialogalert-dialog | cubby-ui | Components | Free | 2 deps | |
| Aspect-ratioaspect-ratio | cubby-ui | Components | Free | no deps | |
| Autocompleteautocomplete | cubby-ui | Components | Free | 2 deps | |
| Avataravatar | cubby-ui | Components | Free | 1 dep | |
| Badgebadge | cubby-ui | Components | Free | 1 dep | |
| Base Drawerbase-drawer | cubby-ui | Components | Free | 2 deps |
