منوی کشویی (Dropdown Menu)
منوی کشویی با آیتمهای مختلف
معرفی
کامپوننت DropdownMenu برای نمایش منوی کشویی با گزینههای مختلف استفاده میشود.
چه زمانی استفاده کنیم:
- برای نمایش لیست اقدامات مرتبط با یک المان (مثلاً دکمه «بیشتر»)
- وقتی فضای کافی برای نمایش همه دکمهها در سطر وجود ندارد
- برای منوهای تنظیمات یا اقدامات ثانویه
چه زمانی استفاده نکنیم:
- برای انتخاب یک مقدار در فرم — از
Selectاستفاده کنید - برای لینکهای navigation اصلی که همیشه نمایش داده میشوند — از
NavigationMenuاستفاده کنید - برای منوهای context-sensitive روی کلیک راست — از
ContextMenuاستفاده کنید
استفاده
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@parto-system-design/ui'
import { Button } from '@parto-system-design/ui'
export default function MyComponent() {
return (
<DropdownMenu>
<DropdownMenuTrigger asChild>
<Button>باز کردن منو</Button>
</DropdownMenuTrigger>
<DropdownMenuContent>
<DropdownMenuItem>ویرایش</DropdownMenuItem>
<DropdownMenuItem>کپی</DropdownMenuItem>
<DropdownMenuItem>حذف</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
)
}Props
DropdownMenu
DropdownMenuContent
DropdownMenuItem
حالتها و انواع
با Checkbox
<DropdownMenu>
<DropdownMenuTrigger asChild>
<Button>تنظیمات نمایش</Button>
</DropdownMenuTrigger>
<DropdownMenuContent>
<DropdownMenuCheckboxItem checked={showGrid}>نمایش جدول</DropdownMenuCheckboxItem>
<DropdownMenuCheckboxItem checked={showChart}>نمایش نمودار</DropdownMenuCheckboxItem>
</DropdownMenuContent>
</DropdownMenu>با زیرمنو
<DropdownMenu>
<DropdownMenuTrigger asChild>
<Button>عملیات</Button>
</DropdownMenuTrigger>
<DropdownMenuContent>
<DropdownMenuItem>ویرایش</DropdownMenuItem>
<DropdownMenuSub>
<DropdownMenuSubTrigger>انتقال به</DropdownMenuSubTrigger>
<DropdownMenuSubContent>
<DropdownMenuItem>پوشه ۱</DropdownMenuItem>
<DropdownMenuItem>پوشه ۲</DropdownMenuItem>
</DropdownMenuSubContent>
</DropdownMenuSub>
</DropdownMenuContent>
</DropdownMenu>راهنمای استفاده
بکنید
- از
asChildروی trigger استفاده کنید تا دکمه دلخواه خودتان را به عنوان trigger قرار دهید - آیتمهای مرتبط را باDropdownMenuSeparatorگروهبندی کنید - برای اقدامات خطرناک (مثل حذف) از رنگdestructiveاستفاده کنید
نکنید
- بیش از ۱۰ آیتم در یک سطح منو نگذارید — از زیرمنو یا گروهبندی استفاده کنید - از DropdownMenu برای انتخاب مقدار در
فرم استفاده نکنید — از
Selectاستفاده کنید
دسترسیپذیری
- با کلیدهای
↑و↓بین آیتمها پیمایش میشود - با
EnterیاSpaceآیتم انتخاب میشود - با
Escapeمنو بسته میشود - از
role="menu"وrole="menuitem"استفاده میشود - focus به trigger برمیگردد پس از بستن منو
تعامل با کیبورد
EnterیاSpace: باز/بسته کردن منو -Arrow Down/Arrow Up: حرکت بین آیتمها -Escape: بستن منو - حروف: جستجوی سریع آیتمها
کامپوننتهای مرتبط
- ContextMenu — وقتی منو باید با کلیک راست باز شود، نه کلیک چپ
- Select — وقتی کاربر باید یک مقدار از لیست انتخاب کند (در فرم)
- Menubar — وقتی چندین منوی کشویی در یک نوار افقی نیاز دارید