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/aria/navigation-menu.jsonnpx shadcn@latest add https://kit.dev/r/aria/navigation-menu.jsonpnpm dlx shadcn@latest add https://kit.dev/r/aria/navigation-menu.jsonyarn shadcn@latest add https://kit.dev/r/aria/navigation-menu.jsonInstall the following dependencies:
bun add react-aria-components tailwind-variants lucide-reactnpm install react-aria-components tailwind-variants lucide-reactpnpm add react-aria-components tailwind-variants lucide-reactyarn add react-aria-components tailwind-variants lucide-reactCopy and paste the following code into your project.
"use client";
import { ChevronDownIcon } from "lucide-react";
import type React from "react";
import {
Button as ButtonPrimitive,
composeRenderProps,
DialogTrigger,
type DialogTriggerProps,
Link as LinkPrimitive,
type LinkProps,
Popover as PopoverPrimitive,
} from "react-aria-components";
import { tv } from "tailwind-variants";
import { cn } from "@/lib/utils";
export const NavigationMenu = (props: React.ComponentProps<"nav">) => {
const { className, ...rest } = props;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
PropType
AttributeType
NavigationMenuList
PropType
AttributeType
NavigationMenuItem
PropType
AttributeType
navigationMenuTriggerStyle
AttributeType
NavigationMenuTrigger
PropType
AttributeType
NavigationMenuContent
PropType
AttributeType
CSS variableType
--trigger-anchor-pointstringNavigationMenuLink
PropType
AttributeType
NavigationMenuIndicator
PropType
AttributeType
NavigationMenuViewport
PropType
AttributeType
NavigationMenuPositioner
PropType
AttributeType