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/navigation-menu.jsonnpx shadcn@latest add https://kit.dev/r/navigation-menu.jsonpnpm dlx shadcn@latest add https://kit.dev/r/navigation-menu.jsonyarn shadcn@latest add https://kit.dev/r/navigation-menu.jsonInstall the following dependencies:
bun add @ark-ui/react lucide-react tailwind-variantsnpm install @ark-ui/react lucide-react tailwind-variantspnpm add @ark-ui/react lucide-react tailwind-variantsyarn add @ark-ui/react lucide-react tailwind-variantsCopy and paste the following code into your project.
"use client";
import { ark } from "@ark-ui/react/factory";
import { Popover as ArkPopover } from "@ark-ui/react/popover";
import { Portal } from "@ark-ui/react/portal";
import { ChevronDownIcon } from "lucide-react";
import type React from "react";
import { tv } from "tailwind-variants";
import { cn } from "@/lib/utils";
export const NavigationMenu = (props: React.ComponentProps<"nav">) => {
const { className, ...rest } = props;
return (
<nav
className={cn(
"cn-navigation-menu group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",
classNameUpdate 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
NavigationMenuItem
PropType
children?ReactNodeAttributeType
NavigationMenuTrigger
button
PropType
AttributeType
NavigationMenuPositioner
div
PropType
AttributeType
NavigationMenuContent
div
PropType
AttributeType
CSS variableType
--transform-originstringNavigationMenuList
PropType
AttributeType
navigationMenuTriggerStyle
PropType
AttributeType
NavigationMenuLink
a
PropType
AttributeType
NavigationMenuIndicator
PropType
AttributeType
NavigationMenuViewport
PropType
AttributeType