Navigation Menu
Navigation
Overlay
Complex navigation menu with dropdown support and hover interactions for application headers.
Preview
Hover over menu items to see dropdown content
Simple Links
Navigation with simple links only
Props
Component API reference
NavigationMenu
| Prop | Type | Default | Description |
|---|---|---|---|
children* | ReactNode | — | Menu content |
className | string | — | Additional CSS classes |
NavigationMenuTrigger
| Prop | Type | Default | Description |
|---|---|---|---|
id* | string | — | Unique identifier (required) |
children* | ReactNode | — | Trigger content |
NavigationMenuLink
| Prop | Type | Default | Description |
|---|---|---|---|
href* | string | — | Link URL |
icon | LucideIcon | — | Icon component |
description | string | — | Link description |
featured | boolean | false | Highlight as featured |
NavigationMenuDropdown
| Prop | Type | Default | Description |
|---|---|---|---|
width | number | 500 | Dropdown width in pixels |
children* | ReactNode | — | Dropdown content |
Usage
Import and implementation examples
import {
NavigationMenu,
NavigationMenuList,
NavigationMenuItem,
NavigationMenuTrigger,
NavigationMenuContent,
NavigationMenuLink,
NavigationMenuDropdown,
NavigationMenuSimpleLink,
} from '@/components/ui/navigation-menu'
import { Layers, Zap } from 'lucide-react'
// With dropdown menus
<NavigationMenu>
<NavigationMenuList>
<NavigationMenuItem>
<NavigationMenuTrigger id="products">
Products
</NavigationMenuTrigger>
<NavigationMenuContent id="products">
<NavigationMenuDropdown width={600}>
<div className="grid grid-cols-2 gap-3">
<NavigationMenuLink
href="/design-system"
icon={Layers}
description="Build beautiful interfaces"
featured
>
Design System
</NavigationMenuLink>
<NavigationMenuLink
href="/components"
icon={Zap}
description="Lightning-fast development"
>
Components
</NavigationMenuLink>
</div>
</NavigationMenuDropdown>
</NavigationMenuContent>
</NavigationMenuItem>
<NavigationMenuItem>
<NavigationMenuSimpleLink href="/pricing">
Pricing
</NavigationMenuSimpleLink>
</NavigationMenuItem>
</NavigationMenuList>
</NavigationMenu>Features
Built-in functionality
- Hover interactions: Dropdowns open on hover
- Featured items: Highlight important links
- Icon support: Add icons to menu links
- Descriptions: Add context to each link
- Custom widths: Configurable dropdown widths
- Simple links: Direct navigation without dropdowns
- Grid layouts: Flexible dropdown content layouts
- Dark mode: Full dark mode support
Accessibility
Accessibility considerations
ARIA Attributes
Uses role="navigation" for containeraria-haspopup for dropdown triggersaria-expanded for dropdown staterole="menu" for dropdown contentKeyboard Navigation
| Key | Action |
|---|---|
| Enter/Space | Open/close dropdown |
| Escape | Close dropdown |
| Tab | Navigate between items |
| Arrow Keys | Navigate within dropdown |
Notes
- Focus management on dropdown open/close
- Click outside closes dropdown
- Proper link semantics for navigation