Uqudo UIregistry

Navigation Menu

A collection of links for navigating websites.

Installation

npx shadcn@latest add @uqudo/navigation-menu

Usage

import {
  NavigationMenu,
  NavigationMenuContent,
  NavigationMenuItem,
  NavigationMenuLink,
  NavigationMenuList,
  NavigationMenuTrigger,
  navigationMenuTriggerStyle,
} from "@/components/uqudo/ui/navigation-menu"
<NavigationMenu>
  <NavigationMenuList>
    <NavigationMenuItem>
      <NavigationMenuTrigger>Products</NavigationMenuTrigger>
      <NavigationMenuContent>
        <ul className="grid w-[300px] gap-1 md:w-[400px]">
          <li>
            <NavigationMenuLink asChild>
              <a href="/products/identity">Identity verification</a>
            </NavigationMenuLink>
          </li>
        </ul>
      </NavigationMenuContent>
    </NavigationMenuItem>
    <NavigationMenuItem>
      <NavigationMenuLink asChild className={navigationMenuTriggerStyle()}>
        <a href="/pricing">Pricing</a>
      </NavigationMenuLink>
    </NavigationMenuItem>
  </NavigationMenuList>
</NavigationMenu>

Use asChild on NavigationMenuLink to render your router's link component. A link placed directly in a NavigationMenuItem gets the same look as a trigger through navigationMenuTriggerStyle().

API Reference

Prop

Type

Prop

Type

Other exports

ComponentWrapsNotes
NavigationMenuListNavigationMenu.ListHorizontal list of items.
NavigationMenuItemNavigationMenu.ItemOne entry; holds a trigger + content or a link.
NavigationMenuTriggerNavigationMenu.TriggerStyled with navigationMenuTriggerStyle, adds a chevron.
NavigationMenuContentNavigationMenu.ContentThe panel revealed by a trigger.
NavigationMenuViewportNavigationMenu.ViewportRendered automatically unless viewport={false}.
NavigationMenuIndicatorNavigationMenu.IndicatorOptional arrow pointing at the active trigger.

The class-variance-authority recipe used by NavigationMenuTrigger. Call it to give a plain link the same height, padding and hover state as a trigger.

<NavigationMenuLink asChild className={navigationMenuTriggerStyle()}>
  <Link href="/docs">Docs</Link>
</NavigationMenuLink>

It has no variants; pass an optional className to merge extra classes.

Data attributes

AttributeValue
data-slotnavigation-menu, navigation-menu-trigger, navigation-menu-link, etc.
data-viewportOn the root: the resolved viewport prop.
data-activeOn a link: true when active is set.

On this page