registry:component
Navigation Menu
v1.0.0ga
Top-level navigation primitive with trigger/content panels.
Registry Endpoint
Open JSONhttps://registry.aavya.com/r/ui-navigation-menu.json
npx shadcn@latest add https://registry.aavya.com/r/ui-navigation-menu.json
Live Preview
Usage Snippet
import NavigationMenu from '@/components/ui/navigation-menu.tsx'
export default function Example() {
return (
<div className="p-6">
<NavigationMenu />
</div>
)
}
Source Preview
import * as React from 'react'
import * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu'
import { cva } from 'class-variance-authority'
import { ChevronDownIcon } from 'lucide-react'
import { cn } from '@/lib/utils'
function NavigationMenu({
className,
children,
viewport = true,
...props
}: React.ComponentProps<typeof NavigationMenuPrimitive.Root> & {
viewport?: boolean
}) {
return (
<NavigationMenuPrimitive.Root
data-slot='navigation-menu'
data-viewport={viewport}
className={cn('group/navigation-menu relative flex max-w-max flex-1 items-center justify-center', className)}
{...props}
>
{children}
{viewport && <NavigationMenuViewport />}
</NavigationMenuPrimitive.Root>
)
}
function NavigationMenuList({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.List>) {
return (
<NavigationMenuPrimitive.List
data-slot='navigation-menu-list'
className={cn('group flex flex-1 list-none items-center justify-center gap-1', className)}
{...props}
/>
)
}
function NavigationMenuItem({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Item>) {
return (
<NavigationMenuPrimitive.Item data-slot='navigation-menu-item' className={cn('relative', className)} {...props} />
)
}
const navigationMenuTriggerStyle = cva(
'group bg-backgro