Navigation Menu
weekendsuperhero-io-sistine/navigation-menuUnverifiedComponent
A collection of links for navigating websites.
Install it
npx shadcn@latest add https://raw.githubusercontent.com/Weekendsuperhero-io/sistine/main/navigation-menu.jsonSource
1"use client";23import { CaretDownIcon } from "@phosphor-icons/react";4import { cva } from "class-variance-authority";5import { NavigationMenu as NavigationMenuPrimitive } from "radix-ui";6import * as React from "react";78import { type MaterialAxisProps, materialSurface, splitAxisProps } from "@/lib/material";9import { cn } from "@/lib/utils";1011/* Roles: the list bar is borderless adaptive glass; the content and12 viewport flyouts are bordered + veiled. */13const LIST_ROLE = {};14const OVERLAY_ROLE = {15 border: true,16 veil: true,17};1819const NavigationMenu = React.forwardRef<20 React.ElementRef<typeof NavigationMenuPrimitive.Root>,21 React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Root> & {22 viewport?: boolean;23 }24>(({ className, children, viewport = true, ...props }, ref) => (25 <NavigationMenuPrimitive.Root26 ref={ref}27 data-slot="navigation-menu"28 data-viewport={viewport}29 className={cn("group/navigation-menu relative z-10 flex max-w-max flex-1 items-center justify-center", className)}30 {...props}31 >32 {children}33 {viewport && <NavigationMenuViewport />}34 </NavigationMenuPrimitive.Root>35));36NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;3738const NavigationMenuList = React.forwardRef<39 React.ElementRef<typeof NavigationMenuPrimitive.List>,40 React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.List> &41 MaterialAxisProps & {42 variant?: "default" | "glass";43 }44>(({ className, variant = "glass", ...props }, ref) => {45 const [axes, rest] = splitAxisProps(props);46 /* Variant classes carry BEHAVIOR only; the surface comes from materialSurface. */47 const variants = {48 default: "group flex flex-1 list-none items-center justify-center space-x-1",49 glass: "group flex flex-1 list-none items-center justify-center space-x-1 rounded-lg px-2 py-1",50 };5152 const m = materialSurface(variant === "default" ? null : LIST_ROLE, axes);5354 return (55 <NavigationMenuPrimitive.List56 ref={ref}57 data-slot="navigation-menu-list"58 data-material={m?.["data-material"]}59 className={cn(m?.className, variants[variant], className)}60 {...rest}61 />62 );63});64NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;6566const NavigationMenuItem = React.forwardRef<67 React.ElementRef<typeof NavigationMenuPrimitive.Item>,68 React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Item>69>(({ className, ...props }, ref) => (70// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from weekendsuperhero-io/sistine
All 71 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | weekendsuperhero-io/sistine | Components | Unverified | 5 deps · 4 files | |
| Alertalert | weekendsuperhero-io/sistine | Components | Unverified | 3 deps · 4 files | |
| Alert Dialogalert-dialog | weekendsuperhero-io/sistine | Components | Unverified | 4 deps · 4 files | |
| Auto Foregroundauto-foreground | weekendsuperhero-io/sistine | Components | Unverified | no deps | |
| Avataravatar | weekendsuperhero-io/sistine | Components | Unverified | 4 deps · 4 files | |
| Badgebadge | weekendsuperhero-io/sistine | Components | Unverified | 4 deps · 4 files | |
| Breadcrumbbreadcrumb | weekendsuperhero-io/sistine | Components | Unverified | 5 deps · 4 files | |
| Buttonbutton | weekendsuperhero-io/sistine | Components | Unverified | 4 deps · 4 files |
