Navigation Menu
basecn/navigation-menuFreeComponent
A collection of links for navigating websites.
Live preview
live · rendered by the registry
Rendered by basecn on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://basecn.dev/r/navigation-menu.jsonSource
1import * as React 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 className,10 children,11 ...props12}: NavigationMenuPrimitive.Root.Props) {13 return (14 <NavigationMenuPrimitive.Root15 data-slot="navigation-menu"16 className={cn(17 "group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",18 className19 )}20 {...props}21 >22 {children}23 </NavigationMenuPrimitive.Root>24 );25}2627function NavigationMenuList({28 className,29 ...props30}: NavigationMenuPrimitive.List.Props) {31 return (32 <NavigationMenuPrimitive.List33 data-slot="navigation-menu-list"34 className={cn(35 "group flex flex-1 list-none items-center justify-center gap-1",36 className37 )}38 {...props}39 />40 );41}4243function NavigationMenuItem({44 className,45 ...props46}: NavigationMenuPrimitive.Item.Props) {47 return (48 <NavigationMenuPrimitive.Item49 data-slot="navigation-menu-item"50 className={cn("relative", className)}51 {...props}52 />53 );54}5556const navigationMenuTriggerStyle = cva(57 "group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[popup-open]:hover:bg-accent data-[popup-open]:text-accent-foreground data-[popup-open]:focus:bg-accent data-[popup-open]:bg-accent/50 focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1"58);5960function NavigationMenuTrigger({61 className,62 children,63 ...props64}: NavigationMenuPrimitive.Trigger.Props) {65 return (66 <NavigationMenuPrimitive.Trigger67 data-slot="navigation-menu-trigger"68 className={cn(navigationMenuTriggerStyle(), "group", className)}69 {...props}70 >71 {children}{" "}72 <ChevronDownIcon73 className="relative top-[1px] ml-1 size-3 transition duration-300 group-data-[popup-open]:rotate-180"74 aria-hidden="true"75 />76 </NavigationMenuPrimitive.Trigger>77 );78}7980function NavigationMenuContent({81 className,82 ...props83}: NavigationMenuPrimitive.Content.Props) {84 return (85 <NavigationMenuPrimitive.Content86// … truncated
What it pulls in
npm packages
Files it writes
More from basecn
All 56 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | basecn | Components | Free | 2 deps | |
| Alertalert | basecn | Components | Free | 1 dep | |
| Alert Dialogalert-dialog | basecn | Components | Free | 1 dep | |
| Aspect Ratioaspect-ratio | basecn | Components | Free | no deps | |
| Autocompleteautocomplete | basecn | Components | Free | 2 deps | |
| Avataravatar | basecn | Components | Free | 1 dep | |
| Badgebadge | basecn | Components | Free | 2 deps | |
| Breadcrumbbreadcrumb | basecn | Components | Free | 2 deps |
