Navigation Menu
gymnopedies/navigation-menuFreeComponent
Navigation Menu — gymnopédies-themed shadcn primitive.
Install it
npx shadcn@latest add https://gymnopedies.shoota.work/r/navigation-menu.jsonSource
1import { NavigationMenu as NavigationMenuPrimitive } from "@base-ui/react/navigation-menu"2import { cva } from "class-variance-authority"34import { cn } from "@/lib/utils"5import { ChevronDownIcon } from "lucide-react"67function NavigationMenu({8 align = "start",9 className,10 children,11 ...props12}: NavigationMenuPrimitive.Root.Props &13 Pick<NavigationMenuPrimitive.Positioner.Props, "align">) {14 return (15 <NavigationMenuPrimitive.Root16 data-slot="navigation-menu"17 className={cn(18 "group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",19 className20 )}21 {...props}22 >23 {children}24 <NavigationMenuPositioner align={align} />25 </NavigationMenuPrimitive.Root>26 )27}2829function NavigationMenuList({30 className,31 ...props32}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.List>) {33 return (34 <NavigationMenuPrimitive.List35 data-slot="navigation-menu-list"36 className={cn(37 "group flex flex-1 list-none items-center justify-center gap-0",38 className39 )}40 {...props}41 />42 )43}4445function NavigationMenuItem({46 className,47 ...props48}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Item>) {49 return (50 <NavigationMenuPrimitive.Item51 data-slot="navigation-menu-item"52 className={cn("relative", className)}53 {...props}54 />55 )56}5758const navigationMenuTriggerStyle = cva(59 "group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-lg px-2.5 py-1.5 text-sm font-medium transition-all outline-none hover:bg-muted focus:bg-muted focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-popup-open:bg-muted/50 data-popup-open:hover:bg-muted data-open:bg-muted/50 data-open:hover:bg-muted data-open:focus:bg-muted"60)6162function NavigationMenuTrigger({63 className,64 children,65 ...props66}: NavigationMenuPrimitive.Trigger.Props) {67 return (68 <NavigationMenuPrimitive.Trigger69 data-slot="navigation-menu-trigger"70 className={cn(navigationMenuTriggerStyle(), "group", className)}71 {...props}72 >73 {children}{" "}74 <ChevronDownIcon className="relative top-px ml-1 size-3 transition duration-300 group-data-popup-open/navigation-menu-trigger:rotate-180 group-data-open/navigation-menu-trigger:rotate-180" aria-hidden="true" />75 </NavigationMenuPrimitive.Trigger>76 )77}7879function NavigationMenuContent({80// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from gymnopedies
All 49 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | gymnopedies | Components | Free | 2 deps | |
| Alertalert | gymnopedies | Components | Free | 1 dep | |
| Alert Dialogalert-dialog | gymnopedies | Components | Free | 1 dep | |
| Articlearticle | gymnopedies | Components | Free | no deps | |
| Aspect Ratioaspect-ratio | gymnopedies | Components | Free | no deps | |
| Avataravatar | gymnopedies | Components | Free | 1 dep | |
| Badgebadge | gymnopedies | Components | Free | 2 deps | |
| Breadcrumbbreadcrumb | gymnopedies | Components | Free | 2 deps |
