NavigationMenu
Top-of-page marketing / product-site navigation. Each section expands into a popover panel that can hold images, descriptions, or multi-column link grids.
With grid panel
<NavigationMenu>
<NavigationMenuList>
<NavigationMenuItem>
<NavigationMenuTrigger>Getting started</NavigationMenuTrigger>
<NavigationMenuContent>
<ul className="grid gap-3 p-4 md:w-[400px] lg:w-[500px] lg:grid-cols-[.75fr_1fr]">
{/* feature tile */}
<li className="row-span-3">
<NavigationMenuLink asChild>
<a className="flex h-full flex-col justify-end rounded-md bg-muted p-5" href="/">
<div className="mb-2 mt-4 text-lg font-medium">tidal</div>
<p className="text-base leading-6 text-muted-foreground">
Beautifully designed components you can copy into your apps.
</p>
</a>
</NavigationMenuLink>
</li>
<ListItem href="/" title="Introduction">
Re-usable components built using Radix UI and Tailwind CSS.
</ListItem>
{/* …more items */}
</ul>
</NavigationMenuContent>
</NavigationMenuItem>
<NavigationMenuItem>
<NavigationMenuLink className={navigationMenuTriggerStyle()} href="/">
Documentation
</NavigationMenuLink>
</NavigationMenuItem>
</NavigationMenuList>
</NavigationMenu>Simple
<NavigationMenu>
<NavigationMenuList>
<NavigationMenuItem>
<NavigationMenuTrigger>Products</NavigationMenuTrigger>
<NavigationMenuContent>
<ul className="grid w-[360px] gap-2 p-3">
<ListItem href="#" title="Analytics">
Track revenue, sessions, and funnel conversion.
</ListItem>
<ListItem href="#" title="Inbox">
Unified support inbox with shared assignments.
</ListItem>
</ul>
</NavigationMenuContent>
</NavigationMenuItem>
<NavigationMenuItem>
<NavigationMenuLink className={navigationMenuTriggerStyle()} href="#">
Pricing
</NavigationMenuLink>
</NavigationMenuItem>
</NavigationMenuList>
</NavigationMenu>Exports
| Export | Role |
|---|---|
| NavigationMenu | Root. Renders the viewport automatically. |
| NavigationMenuList | Horizontal list of items. |
| NavigationMenuItem | Single section — wraps a Trigger/Content pair or a Link. |
| NavigationMenuTrigger | Button that opens a Content panel. Chevron rotates on open. |
| NavigationMenuContent | Panel body, slotted into the shared Viewport. |
| NavigationMenuLink | Plain navigational link. Combine with navigationMenuTriggerStyle() for top-level links. |
| NavigationMenuIndicator | Small caret that follows the active trigger. |
| NavigationMenuViewport | Animated sliding surface; rendered by default inside Root. |
| navigationMenuTriggerStyle | cva helper for applying the trigger style to plain Links. |
When to use
- Top-of-page marketing nav — grouped link panels under each section (e.g. "Products ▾" opens a grid of product links).
- Prefer over
Menubarwhen items are navigational links (not actions) and panels may include images, descriptions, or multi-column layouts. - Prefer over
Tabswhen the surfaces are separate pages (not a single layered view). - Don't use for app sidebars (
Sidebar), dropdown action menus (DropdownMenu), or simple breadcrumb lists (Breadcrumb).
Source
packages/react/src/components/navigation-menu.tsx · Figma node 2819:28229