سلکت بومی (Native Select)
یک select بومی HTML با استایل بهتر
معرفی
کامپوننت Native Select یک المان select بومی HTML است که با استایل بهتر و سازگار با design system ارائه شده است.
چه زمانی استفاده نکنیم:
- وقتی به styling سفارشی نیاز دارید — از
Selectاستفاده کنید - برای انتخاب چند گزینه — از
MultiSelectاستفاده کنید
استفاده
import { NativeSelect, NativeSelectOption } from '@parto-system-design/ui'
export default function MyComponent() {
return (
<NativeSelect>
<NativeSelectOption value="">انتخاب کنید</NativeSelectOption>
<NativeSelectOption value="1">گزینه ۱</NativeSelectOption>
<NativeSelectOption value="2">گزینه ۲</NativeSelectOption>
<NativeSelectOption value="3">گزینه ۳</NativeSelectOption>
</NativeSelect>
)
}با OptGroup
<NativeSelect>
<NativeSelectOptGroup label="گروه اول">
<NativeSelectOption value="1">گزینه ۱</NativeSelectOption>
<NativeSelectOption value="2">گزینه ۲</NativeSelectOption>
</NativeSelectOptGroup>
<NativeSelectOptGroup label="گروه دوم">
<NativeSelectOption value="3">گزینه ۳</NativeSelectOption>
<NativeSelectOption value="4">گزینه ۴</NativeSelectOption>
</NativeSelectOptGroup>
</NativeSelect>غیرفعال
<NativeSelect disabled>
<NativeSelectOption>غیرفعال</NativeSelectOption>
</NativeSelect>با خطا
<NativeSelect aria-invalid="true">
<NativeSelectOption>انتخاب کنید</NativeSelectOption>
</NativeSelect>مزایا
- سرعت بارگذاری بالا
- عملکرد بومی دستگاه
- مصرف حافظه کم
- سازگاری کامل با مرورگرها
- دسترسیپذیری بهتر
کاربردها
- فرمهای ساده
- انتخاب سریع
- دستگاههای موبایل
- وقتی نیاز به جستجو نیست
حالتها و انواع
حالتهای مختلف
<div className="flex flex-col gap-4" dir="rtl">
<NativeSelect>
<NativeSelectOption value="">انتخاب کنید...</NativeSelectOption>
<NativeSelectOption value="1">گزینه اول</NativeSelectOption>
</NativeSelect>
<NativeSelect disabled>
<NativeSelectOption>غیرفعال</NativeSelectOption>
</NativeSelect>
<NativeSelect aria-invalid="true">
<NativeSelectOption>با خطا</NativeSelectOption>
</NativeSelect>
</div>راهنمای استفاده
بکنید
- برای فرمهای ساده و لیستهای کوتاه (کمتر از ۱۰ گزینه) از NativeSelect استفاده کنید - در دستگاههای موبایل
NativeSelect را ترجیح دهید زیرا عملکرد بومی بهتری دارد - از
NativeSelectOptGroupبرای دستهبندی گزینههای مرتبط استفاده کنید
نکنید
- وقتی نیاز به جستجو در بین گزینهها دارید از NativeSelect استفاده نکنید — از
Autocompleteاستفاده کنید - برای انتخاب چند گزینه همزمان از NativeSelect استفاده نکنید — ازMultiSelectاستفاده کنید - وقتی styling سفارشی برای گزینهها نیاز دارید از NativeSelect استفاده نکنید — ازSelectاستفاده کنید
Props
NativeSelect
NativeSelectOption
NativeSelectOptGroup
دسترسیپذیری
- از المان بومی
<select>استفاده میشود و دسترسیپذیری مرورگر بهصورت خودکار فراهم است - همیشه با
Labelهمراه کنید تا screen reader هدف فیلد را اعلام کند - در حالت خطا،
aria-invalid="true"وضعیت را به screen reader منتقل میکند
تعامل با کیبورد
Tab: انتقال فوکوس به select -Space/Enter: باز کردن لیست گزینهها -Arrow Up/Arrow Down: پیمایش بین گزینهها -Escape: بستن لیست
مقایسه با Select
برای موارد پیچیدهتر مثل جستجو، multi-select یا سفارشیسازی بیشتر، از کامپوننت Select استفاده کنید.
کامپوننتهای مرتبط
- Select — اگر نیاز به styling سفارشی یا قابلیتهای پیشرفته دارید، از Select استفاده کنید
- Autocomplete — اگر نیاز به جستجو در بین گزینهها دارید، Autocomplete گزینه مناسبتری است