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

PropTypeDefaultDescription
children*ReactNodeMenu content
classNamestringAdditional CSS classes

NavigationMenuTrigger

PropTypeDefaultDescription
id*stringUnique identifier (required)
children*ReactNodeTrigger content

NavigationMenuLink

PropTypeDefaultDescription
href*stringLink URL
iconLucideIconIcon component
descriptionstringLink description
featuredbooleanfalseHighlight as featured

NavigationMenuDropdown

PropTypeDefaultDescription
widthnumber500Dropdown width in pixels
children*ReactNodeDropdown 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 content

Keyboard Navigation

KeyAction
Enter/SpaceOpen/close dropdown
EscapeClose dropdown
TabNavigate between items
Arrow KeysNavigate within dropdown

Notes

  • Focus management on dropdown open/close
  • Click outside closes dropdown
  • Proper link semantics for navigation