zzzUI

Navigation menu

网站的顶部导航:一排暗色的斜切块,其中一部分可在下方展开链接面板。

安装

terminal
# once per project: where @zzzui items come frompnpm dlx shadcn@latest registry add @zzzui=https://zzzui.catforest.dev/r/{name}.jsonpnpm dlx shadcn@latest add @zzzui/navigation-menu

示例

委托、街区与一条普通链接

navigation-menu-site.tsx
import {  NavigationMenu,  NavigationMenuContent,  NavigationMenuItem,  NavigationMenuLink,  NavigationMenuList,  NavigationMenuTrigger,  navigationMenuTriggerStyle,} from "@/components/zero/navigation-menu";const jobs = [  ["#board", "Job board", "Every open job, by reward or distance."],  ["#rush", "Rush jobs", "Higher rewards, shorter windows."],  ["#taken", "Taken", "What you are carrying now."],  ["#history", "History", "Every job you handed in."],] as const;const districts = [  ["#harbor", "Harbor", "Cranes, crates, the night shift."],  ["#rail-yards", "Rail yards", "Long routes, sealed cargo."],] as const;export default function NavigationMenuSite() {  return (    <NavigationMenu>      <NavigationMenuList>        <NavigationMenuItem>          <NavigationMenuTrigger>Jobs</NavigationMenuTrigger>          <NavigationMenuContent>            <ul className="grid gap-1 sm:w-[28rem] sm:grid-cols-2">              {jobs.map(([href, title, line]) => (                <li key={href}>                  <NavigationMenuLink href={href}>                    <strong>{title}</strong>                    {line}                  </NavigationMenuLink>                </li>              ))}            </ul>          </NavigationMenuContent>        </NavigationMenuItem>        <NavigationMenuItem>          <NavigationMenuTrigger>Districts</NavigationMenuTrigger>          <NavigationMenuContent>            <ul className="grid gap-1 sm:w-64">              {districts.map(([href, title, line]) => (                <li key={href}>                  <NavigationMenuLink href={href}>                    <strong>{title}</strong>                    {line}                  </NavigationMenuLink>                </li>              ))}            </ul>          </NavigationMenuContent>        </NavigationMenuItem>        <NavigationMenuItem>          <a href="#drivers" className={navigationMenuTriggerStyle}>            Drivers          </a>        </NavigationMenuItem>      </NavigationMenuList>    </NavigationMenu>  );}

行为

各菜单共用同一个面板:从一个菜单移到下一个时,面板随之改变尺寸,内容沿移动方向滑过。面板内的每条链接自成一块,包含一行斜体标题(放在 strong 中)和一行说明文字。

导航栏中的普通链接使用 navigationMenuTriggerStyle;指向当前页的链接(aria-current="page")填充强调色。

属性

NavigationMenu

属性类型默认值说明
value / defaultValueany—当前打开的菜单。

另可传入 Base UI NavigationMenu.Root 的全部属性。

NavigationMenuList, NavigationMenuItem, NavigationMenuTrigger, NavigationMenuContent, NavigationMenuLink

另可传入 Base UI NavigationMenu.Trigger 的全部属性。