Skip to content
Drivn

Navigation Menu

Horizontal navigation menu with dropdown content panels, click-outside close, and dot notation API.

Preview

Installation

npx drivn add navigation-menu

Usage

1import { NavigationMenu } from "@/components/ui/navigation-menu"
2import { LayoutGrid, MessageSquare } from "lucide-react"
3
4export default function Page() {
5 return (
6 <NavigationMenu>
7 <NavigationMenu.List>
8 <NavigationMenu.Item>
9 <NavigationMenu.Trigger>
10 Components
11 </NavigationMenu.Trigger>
12 <NavigationMenu.Content>
13 <NavigationMenu.Link href="/docs/components/card">
14 <LayoutGrid />
15 <span className="font-medium">Card</span>
16 </NavigationMenu.Link>
17 <NavigationMenu.Link href="/docs/components/dialog">
18 <MessageSquare />
19 <span className="font-medium">Dialog</span>
20 </NavigationMenu.Link>
21 </NavigationMenu.Content>
22 </NavigationMenu.Item>
23 <NavigationMenu.Item>
24 <NavigationMenu.Link href="/docs">
25 Docs
26 </NavigationMenu.Link>
27 </NavigationMenu.Item>
28 </NavigationMenu.List>
29 </NavigationMenu>
30 )
31}

With Icons

With Descriptions

API Reference

NavigationMenu

PropTypeDefaultDescription
classNamestring—Additional CSS classes for the nav element
childrenReactNode—NavigationMenu.List and other content

NavigationMenu.List

PropTypeDefaultDescription
classNamestring—Additional CSS classes for the list
childrenReactNode—NavigationMenu.Item elements

NavigationMenu.Item

PropTypeDefaultDescription
classNamestring—Additional CSS classes for the item
childrenReactNode—Trigger + Content pair or a standalone Link

NavigationMenu.Trigger

PropTypeDefaultDescription
classNamestring—Additional CSS classes for the trigger button
childrenReactNode—Trigger label text

NavigationMenu.Content

PropTypeDefaultDescription
classNamestring—Additional CSS classes for the content panel
childrenReactNode—Content panel children (links, custom layout)

NavigationMenu.Link

PropTypeDefaultDescription
hrefstring—Link destination URL
classNamestring—Additional CSS classes for the link
childrenReactNode—Link content (text, icons, or custom JSX layout)