navigation-menu
gr8monk3ys/navigation-menuFreeComponent
navigation-menu (identity-styled).
Install it
npx shadcn@latest add https://ui.lscaturchio.xyz/r/navigation-menu.jsonSource
1import * as React from "react"2import { cva } from "class-variance-authority"3import { ChevronDownIcon } from "lucide-react"4import { NavigationMenu as NavigationMenuPrimitive } from "radix-ui"56import { cn } from "@/lib/utils"78function NavigationMenu({9 className,10 children,11 viewport = true,12 ...props13}: React.ComponentProps<typeof NavigationMenuPrimitive.Root> & {14 viewport?: boolean15}) {16 return (17 <NavigationMenuPrimitive.Root18 data-slot="navigation-menu"19 data-viewport={viewport}20 className={cn(21 "group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",22 className23 )}24 {...props}25 >26 {children}27 {viewport && <NavigationMenuViewport />}28 </NavigationMenuPrimitive.Root>29 )30}3132function NavigationMenuList({33 className,34 ...props35}: React.ComponentProps<typeof NavigationMenuPrimitive.List>) {36 return (37 <NavigationMenuPrimitive.List38 data-slot="navigation-menu-list"39 className={cn(40 "group flex flex-1 list-none items-center justify-center gap-1",41 className42 )}43 {...props}44 />45 )46}4748function NavigationMenuItem({49 className,50 ...props51}: React.ComponentProps<typeof NavigationMenuPrimitive.Item>) {52 return (53 <NavigationMenuPrimitive.Item54 data-slot="navigation-menu-item"55 className={cn("relative", className)}56 {...props}57 />58 )59}6061const navigationMenuTriggerStyle = cva(62 "group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-[color,box-shadow] outline-none hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=open]:bg-accent/50 data-[state=open]:text-accent-foreground data-[state=open]:hover:bg-accent data-[state=open]:focus:bg-accent"63)6465function NavigationMenuTrigger({66 className,67 children,68 ...props69}: React.ComponentProps<typeof NavigationMenuPrimitive.Trigger>) {70 return (71 <NavigationMenuPrimitive.Trigger72 data-slot="navigation-menu-trigger"73 className={cn(navigationMenuTriggerStyle(), "group", className)}74 {...props}75 >76 {children}{" "}77 <ChevronDownIcon78 className="relative top-[1px] ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180"79 aria-hidden="true"80 />81// … truncated
What it pulls in
npm packages
Files it writes
More from gr8monk3ys
All 69 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | gr8monk3ys | Components | Free | 2 deps | |
| ActiveNavLinkactive-nav-link | gr8monk3ys | Components | Free | no deps · 2 files | |
| alertalert | gr8monk3ys | Components | Free | 1 dep | |
| alert-dialogalert-dialog | gr8monk3ys | Components | Free | 1 dep | |
| aspect-ratioaspect-ratio | gr8monk3ys | Components | Free | 1 dep | |
| attachmentattachment | gr8monk3ys | Components | Free | 2 deps | |
| Avataravatar | gr8monk3ys | Components | Free | 1 dep | |
| Badgebadge | gr8monk3ys | Components | Free | 1 dep |
