Navigation Menu
uiable/navigation-menuFreeComponent
Navigation Menu component.
Live preview
live · rendered by the registry
Rendered by uiable on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://uiable.com/r/navigation-menu.jsonSource
1import { ComponentPropsWithRef } from "react"2import { NavigationMenu as NavigationMenuPrimitive } from "@base-ui/react/navigation-menu"3import { cva } from "class-variance-authority"4import { ChevronDownIcon } from "lucide-react"56import { cn } from "@/lib/utils"78function NavigationMenu({9 align = "start",10 className,11 children,12 ...props13}: NavigationMenuPrimitive.Root.Props &14 Pick<NavigationMenuPrimitive.Positioner.Props, "align">) {15 return (16 <NavigationMenuPrimitive.Root17 data-slot="navigation-menu"18 className={cn(19 "group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",20 className21 )}22 {...props}23 >24 {children}25 <NavigationMenuPositioner align={align} />26 </NavigationMenuPrimitive.Root>27 )28}2930function NavigationMenuList({31 className,32 ...props33}: ComponentPropsWithRef<typeof NavigationMenuPrimitive.List>) {34 return (35 <NavigationMenuPrimitive.List36 data-slot="navigation-menu-list"37 className={cn(38 "group flex flex-1 list-none items-center justify-center gap-1",39 className40 )}41 {...props}42 />43 )44}4546function NavigationMenuItem({47 className,48 ...props49}: ComponentPropsWithRef<typeof NavigationMenuPrimitive.Item>) {50 return (51 <NavigationMenuPrimitive.Item52 data-slot="navigation-menu-item"53 className={cn("relative", className)}54 {...props}55 />56 )57}5859const navigationMenuTriggerStyle = cva(60 "group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-lg px-2.5 py-1.5 text-base font-medium transition-all outline-none hover:bg-background 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"61)6263function NavigationMenuTrigger({64 className,65 children,66 ...props67}: NavigationMenuPrimitive.Trigger.Props) {68 return (69 <NavigationMenuPrimitive.Trigger70 data-slot="navigation-menu-trigger"71 className={cn(navigationMenuTriggerStyle(), "group", className)}72 {...props}73 >74 {children}{" "}75 <ChevronDownIcon76// … truncated
What it pulls in
npm packages
Files it writes
More from uiable
All 712 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | uiable | Components | Free | 2 deps | |
| Alertalert | uiable | Components | Free | 1 dep | |
| Alert Dialogalert-dialog | uiable | Components | Free | 1 dep | |
| Aspect Ratioaspect-ratio | uiable | Components | Free | no deps | |
| Attachmentattachment | uiable | Components | Free | 2 deps | |
| Avataravatar | uiable | Components | Free | 1 dep | |
| Badgebadge | uiable | Components | Free | 2 deps | |
| Breadcrumbbreadcrumb | uiable | Components | Free | 2 deps |
