سلکت بومی (NativeSelect)
یک select بومی HTML با استایل بهتر
معرفی
کامپوننت Native Select یک المان select بومی HTML است که با استایل بهتر و سازگار با design system ارائه شده است.
چه زمانی استفاده نکنیم:
- وقتی به styling سفارشی نیاز دارید — از
Selectاستفاده کنید - برای انتخاب چند گزینه — از
MultiSelectاستفاده کنید
زمین بازی
با تغییر تنظیمات زیر، پیشنمایش زنده را مشاهده کنید.
زمین بازی
تنظیمات
داده
3
حالت
کد این نمونه بهصورت خودکار قابل تولید نیست — برای کد آمادهی copy/paste به بخش «استفاده» در بالای صفحه مراجعه کنید.
استفاده
import { NativeSelect, NativeSelectOption } from '@partodata/ui'
export default function MyComponent() {
return (
<NativeSelect>
<NativeSelectOption value="">انتخاب کنید</NativeSelectOption>
<NativeSelectOption value="1">گزینه 1</NativeSelectOption>
<NativeSelectOption value="2">گزینه 2</NativeSelectOption>
<NativeSelectOption value="3">گزینه 3</NativeSelectOption>
</NativeSelect>
)
}با OptGroup
<NativeSelect>
<NativeSelectOptGroup label="گروه اول">
<NativeSelectOption value="1">گزینه 1</NativeSelectOption>
<NativeSelectOption value="2">گزینه 2</NativeSelectOption>
</NativeSelectOptGroup>
<NativeSelectOptGroup label="گروه دوم">
<NativeSelectOption value="3">گزینه 3</NativeSelectOption>
<NativeSelectOption value="4">گزینه 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>اندازهها
مثل Input، پنج اندازهٔ نردبان xs/sm/md/lg/xl را میپذیرد؛ پیشفرض md (38 پیکسل) است، اندازهٔ فیلد فرم. در نوار ابزار و ردیف فیلتر اندازه را به ردیف بسپارید (PageToolbar، FilterBar یا ControlSizeProvider، که sm میکنند) تا با Input و دکمههای کنارش همقد بماند:
<div className="flex flex-col gap-4" dir="rtl">
<NativeSelect size="xs">
<NativeSelectOption value="1">فشرده (xs)</NativeSelectOption>
</NativeSelect>
<NativeSelect size="sm">
<NativeSelectOption value="1">نوار ابزار (sm)</NativeSelectOption>
</NativeSelect>
<NativeSelect>
<NativeSelectOption value="1">پیشفرض (md)</NativeSelectOption>
</NativeSelect>
<NativeSelect size="lg">
<NativeSelectOption value="1">بزرگ (lg)</NativeSelectOption>
</NativeSelect>
</div>راهنمای استفاده
بکنید
- برای فرمهای ساده و لیستهای کوتاه (کمتر از 10 گزینه) از 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 گزینه مناسبتری است