Navigation Menu
muffled-ui-registry/navigation-menuFreeComponent
Site navigation with dropdown panels.
Live preview
live · rendered by the registry
Rendered by muffled-ui-registry on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://ui.muffled.studio/r/navigation-menu.jsonSource
1import * as React from "react"2import { cva } from "class-variance-authority"3import { NavigationMenu as NavigationMenuPrimitive } from "@base-ui/react/navigation-menu"4import { ChevronDownIcon } from "lucide-react"56import { cn, floatingSurfaceClasses } from "@/registry/lib/surface"7import { ThemedPortalShell } from "@/registry/lib/portal-container"89function NavigationMenu({10 align = "start",11 className,12 children,13 ...props14}: NavigationMenuPrimitive.Root.Props &15 Pick<NavigationMenuPrimitive.Positioner.Props, "align">) {16 return (17 <NavigationMenuPrimitive.Root18 data-slot="navigation-menu"19 className={cn(20 "group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",21 className22 )}23 {...props}24 >25 {children}26 <NavigationMenuPositioner align={align} />27 </NavigationMenuPrimitive.Root>28 )29}3031function NavigationMenuList({32 className,33 ...props34}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.List>) {35 return (36 <NavigationMenuPrimitive.List37 data-slot="navigation-menu-list"38 className={cn(39 "group flex flex-1 list-none items-center justify-center gap-0",40 className41 )}42 {...props}43 />44 )45}4647function NavigationMenuItem({48 className,49 ...props50}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Item>) {51 return (52 <NavigationMenuPrimitive.Item53 data-slot="navigation-menu-item"54 className={cn("relative", className)}55 {...props}56 />57 )58}5960const navigationMenuTriggerStyle = cva(61 "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 outline-none transition-opacity duration-[var(--d-drift)] ease-[var(--ease-drift)] hover:opacity-60 focus-visible:outline focus-visible:outline-offset-2 focus-visible:outline-ring active:opacity-40 active:duration-[var(--d-snap)] active:ease-[var(--ease-snap)] disabled:pointer-events-none disabled:opacity-40 data-popup-open:opacity-60 data-open:opacity-60"62)6364function NavigationMenuTrigger({65 className,66 children,67 ...props68}: NavigationMenuPrimitive.Trigger.Props) {69 return (70 <NavigationMenuPrimitive.Trigger71 data-slot="navigation-menu-trigger"72 className={cn(navigationMenuTriggerStyle(), "group", className)}73 {...props}74 >75 {children}{" "}76 <ChevronDownIcon77// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from muffled-ui-registry
All 55 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | muffled-ui-registry | Components | Free | 2 deps | |
| Alertalert | muffled-ui-registry | Components | Free | 1 dep | |
| Alert Dialogalert-dialog | muffled-ui-registry | Components | Free | 1 dep | |
| Avataravatar | muffled-ui-registry | Components | Free | 1 dep | |
| Badgebadge | muffled-ui-registry | Components | Free | 2 deps | |
| Breadcrumbbreadcrumb | muffled-ui-registry | Components | Free | 2 deps | |
| Buttonbutton | muffled-ui-registry | Components | Free | 2 deps | |
| Button Groupbutton-group | muffled-ui-registry | Components | Free | 2 deps |
