Skip to content

shadcn.io is not affiliated with official shadcn/ui

Shadcn Navigation Menu for React

A collection of links for navigating a site.

Installation

bunx --bun shadcn@latest add https://kit.dev/r/radix/navigation-menu.json

Anatomy

NavigationMenu
├── NavigationMenuList
│   ├── NavigationMenuItem
│   │   ├── NavigationMenuTrigger
│   │   └── NavigationMenuContent
│   │       └── NavigationMenuLink
│   └── NavigationMenuItem
│       └── NavigationMenuLink
└── NavigationMenuIndicator

Usage

import {
  NavigationMenu,
  NavigationMenuContent,
  NavigationMenuItem,
  NavigationMenuLink,
  NavigationMenuList,
  NavigationMenuTrigger,
} from "@/components/ui/navigation-menu";
<NavigationMenu>
  <NavigationMenuList>
    <NavigationMenuItem>
      <NavigationMenuTrigger>Item One</NavigationMenuTrigger>
      <NavigationMenuContent>
        <NavigationMenuLink href="#">Link</NavigationMenuLink>
      </NavigationMenuContent>
    </NavigationMenuItem>
  </NavigationMenuList>
</NavigationMenu>

Accessibility

KeyDescription
Enter
Activate the focused control.
Space
Activate the focused control.
ArrowLeft
Move left.
ArrowRight
Move right.
Escape
Close the open panel.

Demos

Rtl

Right-to-left navigation menu. See the RTL configuration guide for document direction.

API Reference

nav

PropType
value?string
defaultValue?string
childrenReact.ReactNode
isRootMenuboolean
itemValuestring): void
scopeScope
AttributeType
CSS variableType
--trigger-heightstring
--trigger-widthstring
--trigger-xstring
--trigger-ystring
--viewport-heightstring
--viewport-widthstring
--viewport-xstring
--viewport-ystring

div

PropType
value?string
defaultValue?string
childrenReact.ReactNode
isRootMenuboolean
itemValuestring): void
scopeScope
AttributeType
CSS variableType
--radix-navigation-menu-viewport-heightstring
--radix-navigation-menu-viewport-widthstring

button

PropType
value?string
defaultValue?string
childrenReact.ReactNode
isRootMenuboolean
itemValuestring): void
scopeScope
AttributeType

div

PropType
valuestring
defaultValue?string
childrenReact.ReactNode
isRootMenuboolean
itemValuestring): void
scopeScope
AttributeType

div

PropType
value?string
defaultValue?string
childrenReact.ReactNode
isRootMenuboolean
itemValuestring): void
scopeScope
AttributeType

div

PropType
value?string
defaultValue?string
childrenReact.ReactNode
isRootMenuboolean
itemValuestring): void
scopeScope
AttributeType

a

PropType
value?string
defaultValue?string
childrenReact.ReactNode
isRootMenuboolean
itemValuestring): void
scopeScope
active?boolean
AttributeType

div

PropType
value?string
defaultValue?string
childrenReact.ReactNode
isRootMenuboolean
itemValuestring): void
scopeScope
AttributeType
PropType
value?string
defaultValue?string
childrenReact.ReactNode
isRootMenuboolean
itemValuestring): void
scopeScope
AttributeType