shadcn.io is not affiliated with official shadcn/ui
Shadcn Navigation Menu for React
A collection of links for navigating a site.
Installation
bunx --bun shadcn@latest add https://kit.dev/r/base/navigation-menu.jsonnpx shadcn@latest add https://kit.dev/r/base/navigation-menu.jsonpnpm dlx shadcn@latest add https://kit.dev/r/base/navigation-menu.jsonyarn shadcn@latest add https://kit.dev/r/base/navigation-menu.jsonInstall the following dependencies:
bun add @base-ui/react lucide-react tailwind-variantsnpm install @base-ui/react lucide-react tailwind-variantspnpm add @base-ui/react lucide-react tailwind-variantsyarn add @base-ui/react lucide-react tailwind-variantsCopy and paste the following code into your project.
"use client";
import { NavigationMenu as NavigationMenuPrimitive } from "@base-ui/react/navigation-menu";
import { ChevronDownIcon } from "lucide-react";
import type React from "react";
import { tv } from "tailwind-variants";
import { cn } from "@/lib/utils";
export const NavigationMenu = (
props: NavigationMenuPrimitive.Root.Props &
Pick<NavigationMenuPrimitive.Positioner.Props, "align">
) => {
const { align = "start", className, children, ...rest } = props;
return (
<NavigationMenuPrimitive.Root
className={cn(
"cn-navigation-menu group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",Update the import paths to match your project setup.
Anatomy
NavigationMenu
├── NavigationMenuList
│ ├── NavigationMenuItem
│ │ ├── NavigationMenuTrigger
│ │ └── NavigationMenuContent
│ │ └── NavigationMenuLink
│ └── NavigationMenuItem
│ └── NavigationMenuLink
└── NavigationMenuIndicatorUsage
import {
NavigationMenu,
NavigationMenuContent,
NavigationMenuItem,
NavigationMenuLink,
NavigationMenuList,
NavigationMenuTrigger,
} from "@/components/ui/navigation-menu";<NavigationMenu>
<NavigationMenuList>
<NavigationMenuItem>
<NavigationMenuTrigger>Item One</NavigationMenuTrigger>
<NavigationMenuContent>
<NavigationMenuLink href="#">Link</NavigationMenuLink>
</NavigationMenuContent>
</NavigationMenuItem>
</NavigationMenuList>
</NavigationMenu>Accessibility
| Key | Description |
|---|---|
Enter | Activate the focused control. |
Space | Activate the focused control. |
ArrowLeft | Move left. |
ArrowRight | Move right. |
Escape | Close the open panel. |
Demos
Rtl
Right-to-left navigation menu. See the RTL configuration guide for document direction.
API Reference
NavigationMenu
nav
PropType
AttributeType
CSS variableType
--trigger-heightstring--trigger-widthstring--trigger-xstring--trigger-ystring--viewport-heightstring--viewport-widthstring--viewport-xstring--viewport-ystringNavigationMenuViewport
div
AttributeType
CSS variableType
--available-widthstring--popup-heightstring--popup-widthstring--positioner-heightstring--positioner-widthstring--transform-originstringNavigationMenuTrigger
button
PropType
AttributeType
NavigationMenuContent
div
PropType
AttributeType
NavigationMenuLink
a
PropType
AttributeType
NavigationMenuList
PropType
AttributeType
NavigationMenuItem
PropType
AttributeType
navigationMenuTriggerStyle
PropType
AttributeType
NavigationMenuPositioner
div
PropType
AttributeType
CSS variableType
--available-widthstring--popup-heightstring--popup-widthstring--positioner-heightstring--positioner-widthstring--transform-originstringNavigationMenuIndicator
PropType
AttributeType