Warcraft Dropdown Menu
warcraftcn/dropdown-menuFreeComponent
A Warcraft-themed dropdown menu component with fantasy styling and border-image frames
Live preview
live · rendered by the registry
Rendered by warcraftcn on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://www.warcraftcn.com/r/dropdown-menu.jsonSource
1"use client";23import * as React from "react";4import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui";5import { CheckIcon, ChevronRightIcon } from "lucide-react";67import { cn } from "@/lib/utils";89import "@/components/ui/warcraftcn/styles/warcraft.css";1011function DropdownMenu({12 ...props13}: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {14 return <DropdownMenuPrimitive.Root data-slot="dropdown-menu" {...props} />;15}1617function DropdownMenuPortal({18 ...props19}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {20 return (21 <DropdownMenuPrimitive.Portal data-slot="dropdown-menu-portal" {...props} />22 );23}2425function DropdownMenuTrigger({26 ...props27}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {28 return (29 <DropdownMenuPrimitive.Trigger30 data-slot="dropdown-menu-trigger"31 {...props}32 />33 );34}3536function DropdownMenuContent({37 className,38 align = "start",39 sideOffset = 8,40 ...props41}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {42 return (43 <DropdownMenuPrimitive.Portal>44 <DropdownMenuPrimitive.Content45 data-slot="dropdown-menu-content"46 sideOffset={sideOffset}47 align={align}48 className={cn(49 "fantasy z-50 min-w-40 pb-4 overflow-hidden text-amber-100",50 "border-solid wc-dropdown-border [border-image-repeat:stretch] border-12 [border-image-slice:12_fill]",51 "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",52 "data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",53 className54 )}55 {...props}56 />57 </DropdownMenuPrimitive.Portal>58 );59}6061function DropdownMenuGroup({62 ...props63}: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {64 return (65 <DropdownMenuPrimitive.Group data-slot="dropdown-menu-group" {...props} />66 );67}6869function DropdownMenuItem({70 className,71 inset,72 ...props73}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {74 inset?: boolean;75}) {76 return (77 <DropdownMenuPrimitive.Item78 data-slot="dropdown-menu-item"79 data-inset={inset}80 className={cn(81 "fantasy relative flex cursor-pointer select-none items-center gap-2 px-5 py-2 text-sm text-amber-100 outline-none transition-all",82// … truncated
What it pulls in
npm packages
Files it writes
More from warcraftcn
All 16 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Warcraft Accordionaccordion | warcraftcn | Components | Free | 1 dep · 7 files | |
| Warcraft Avataravatar | warcraftcn | Components | Free | no deps · 7 files | |
| Warcraft Badgebadge | warcraftcn | Components | Free | no deps · 4 files | |
| Warcraft Buttonbutton | warcraftcn | Components | Free | no deps · 6 files | |
| Warcraft Cardcard | warcraftcn | Components | Free | no deps · 3 files | |
| Warcraft Checkboxcheckbox | warcraftcn | Components | Free | 1 dep · 12 files | |
| Warcraft Cursorcursor | warcraftcn | Components | Free | no deps · 6 files | |
| Warcraft Inputinput | warcraftcn | Components | Free | no deps · 3 files |
