Navigation Menu
A collection of links for navigating websites, with hover-activated content panels.
0ms
100ms
200ms
400ms
0ms
150ms
300ms
600ms
#Installation
bunx --bun barefoot add navigation-menu#Usage
1"use client"23import {4 NavigationMenu,5 NavigationMenuList,6 NavigationMenuItem,7 NavigationMenuTrigger,8 NavigationMenuContent,9 NavigationMenuLink,10} from '@/components/ui/navigation-menu'1112function BasicNavigationMenu() {13 return (14 <NavigationMenu>15 <NavigationMenuList>16 <NavigationMenuItem value="getting-started">17 <NavigationMenuTrigger>Getting Started</NavigationMenuTrigger>18 <NavigationMenuContent className="w-[400px] md:w-[500px]">19 <ul className="grid gap-3 p-4 md:grid-cols-2">20 <li>21 <NavigationMenuLink href="/docs">22 <div className="text-sm font-medium">Introduction</div>23 <p className="text-sm text-muted-foreground mt-1">24 Learn the basics.25 </p>26 </NavigationMenuLink>27 </li>28 </ul>29 </NavigationMenuContent>30 </NavigationMenuItem>31 </NavigationMenuList>32 </NavigationMenu>33 )34}#Examples
#Basic
1"use client"23import {4 NavigationMenu,5 NavigationMenuList,6 NavigationMenuItem,7 NavigationMenuTrigger,8 NavigationMenuContent,9 NavigationMenuLink,10} from '@/components/ui/navigation-menu'1112function BasicNavigationMenu() {13 return (14 <NavigationMenu>15 <NavigationMenuList>16 <NavigationMenuItem value="getting-started">17 <NavigationMenuTrigger>Getting Started</NavigationMenuTrigger>18 <NavigationMenuContent className="w-[400px] md:w-[500px]">19 <ul className="grid gap-3 p-4 md:grid-cols-2">20 <li>21 <NavigationMenuLink href="/docs">22 <div className="text-sm font-medium">Introduction</div>23 <p className="text-sm text-muted-foreground mt-1">24 Learn the basics.25 </p>26 </NavigationMenuLink>27 </li>28 <li>29 <NavigationMenuLink href="/docs/installation">30 <div className="text-sm font-medium">Installation</div>31 <p className="text-sm text-muted-foreground mt-1">32 How to install and configure.33 </p>34 </NavigationMenuLink>35 </li>36 </ul>37 </NavigationMenuContent>38 </NavigationMenuItem>39 </NavigationMenuList>40 </NavigationMenu>41 )42}#With Links
1"use client"23import {4 NavigationMenu,5 NavigationMenuList,6 NavigationMenuItem,7 NavigationMenuTrigger,8 NavigationMenuContent,9 NavigationMenuLink,10} from '@/components/ui/navigation-menu'1112function NavigationWithLinks() {13 return (14 <NavigationMenu>15 <NavigationMenuList>16 <NavigationMenuItem value="docs">17 <NavigationMenuTrigger>Documentation</NavigationMenuTrigger>18 <NavigationMenuContent className="w-[300px]">19 <ul className="grid gap-3 p-4">20 <li>21 <NavigationMenuLink href="/docs/intro">22 <div className="text-sm font-medium">Introduction</div>23 </NavigationMenuLink>24 </li>25 <li>26 <NavigationMenuLink href="/docs/api" active={true}>27 <div className="text-sm font-medium">API Reference</div>28 </NavigationMenuLink>29 </li>30 </ul>31 </NavigationMenuContent>32 </NavigationMenuItem>3334 <NavigationMenuItem>35 <NavigationMenuLink href="/blog"36 className="h-9 px-4 py-2 inline-flex items-center text-sm font-medium">37 Blog38 </NavigationMenuLink>39 </NavigationMenuItem>40 </NavigationMenuList>41 </NavigationMenu>42 )43}#API Reference
NavigationMenu
| Prop | Type | Default | Description |
|---|---|---|---|
| delayDuration | number | 200 | Delay in ms before opening on hover. |
| closeDelay | number | 300 | Delay in ms before closing after mouse leave. |
NavigationMenuList
Styled list wrapper. Renders as <ul>.
NavigationMenuItem
| Prop | Type | Default | Description |
|---|---|---|---|
| value | string | - | Unique identifier for this item. Required when using Trigger + Content. |
NavigationMenuTrigger
| Prop | Type | Default | Description |
|---|---|---|---|
| children | Child | - | Trigger label text. |
NavigationMenuContent
| Prop | Type | Default | Description |
|---|---|---|---|
| className | string | - | Additional CSS classes. Use to set width (e.g., "w-[400px]"). |
NavigationMenuLink
| Prop | Type | Default | Description |
|---|---|---|---|
| href | string | - | Link URL. |
| active | boolean | false | Whether this link is the current page. Sets aria-current="page". |