منوی ناوبری (Navigation Menu)
مجموعهای از لینکهای ناوبری با زیرمنوهای پیچیده
معرفی
کامپوننت Navigation Menu برای ایجاد منوهای ناوبری پیچیده با زیرمنوها و محتوای غنی استفاده میشود.
چه زمانی استفاده کنیم:
- برای ناوبری اصلی سایت یا اپلیکیشن در هدر
- وقتی لینکهای ناوبری نیاز به زیرمنو با محتوای غنی دارند
- برای ساختار ناوبری افقی با dropdown های چندستونی
چه زمانی استفاده نکنیم:
- برای application های داخلی با sidebar — از
Sidebarاستفاده کنید - برای منوهای context-sensitive — از
DropdownMenuاستفاده کنید
استفاده
import {
NavigationMenu,
NavigationMenuContent,
NavigationMenuItem,
NavigationMenuLink,
NavigationMenuList,
NavigationMenuTrigger,
} from '@parto-system-design/ui'
export default function MyComponent() {
return (
<NavigationMenu>
<NavigationMenuList>
<NavigationMenuItem>
<NavigationMenuTrigger>شروع</NavigationMenuTrigger>
<NavigationMenuContent>
<ul className="grid gap-3 p-6 md:w-[400px]">
<li>
<NavigationMenuLink href="/docs">مستندات</NavigationMenuLink>
</li>
<li>
<NavigationMenuLink href="/examples">نمونهها</NavigationMenuLink>
</li>
</ul>
</NavigationMenuContent>
</NavigationMenuItem>
<NavigationMenuItem>
<NavigationMenuLink href="/about">درباره ما</NavigationMenuLink>
</NavigationMenuItem>
</NavigationMenuList>
</NavigationMenu>
)
}حالتها و انواع
با محتوای غنی
<NavigationMenu>
<NavigationMenuList>
<NavigationMenuItem>
<NavigationMenuTrigger>محصولات</NavigationMenuTrigger>
<NavigationMenuContent>
<ul className="grid w-[400px] gap-3 p-4 md:w-[500px] md:grid-cols-2">
<li className="row-span-3">
<NavigationMenuLink
href="/"
className="flex h-full w-full select-none flex-col rounded-md bg-gradient-to-b from-muted/50 to-muted p-6"
>
<div className="mb-2 text-lg font-medium">معرفی محصول</div>
<p className="text-sm leading-tight text-muted-foreground">بهترین محصولات ما را کشف کنید</p>
</NavigationMenuLink>
</li>
<li>
<NavigationMenuLink href="/product-1">محصول ۱</NavigationMenuLink>
</li>
<li>
<NavigationMenuLink href="/product-2">محصول ۲</NavigationMenuLink>
</li>
</ul>
</NavigationMenuContent>
</NavigationMenuItem>
</NavigationMenuList>
</NavigationMenu>بدون Viewport
برای منوهای سادهتر:
<NavigationMenu viewport={false}>{/* محتوا */}</NavigationMenu>Props
NavigationMenu
راهنمای استفاده
بکنید
- از
viewport={false}برای منوهای ساده بدون انیمیشن viewport استفاده کنید - لینکهای مستقیم (بدون زیرمنو) را باNavigationMenuLinkتعریف کنید - محتوای غنی در زیرمنو را با grid چندستونی سازماندهی کنید
نکنید
- از NavigationMenu برای اپلیکیشنهای داخلی با ساختار عمیق استفاده نکنید — از
Sidebarاستفاده کنید - بیش از ۵-۶ آیتم سطح اول نگذارید — ناوبری شلوغ میشود
دسترسیپذیری
- پیمایش با
Tabو کلیدهای جهتنما - با
EnterیاSpaceزیرمنو باز میشود - با
Escapeزیرمنو بسته میشود - از
role="navigation"وaria-expandedاستفاده میشود - سازگار با RTL