اسلایدر (Slider)
کنترل انتخاب مقدار با کشیدن
معرفی
کامپوننت Slider برای انتخاب مقدار با کشیدن استفاده میشود.
چه زمانی استفاده نکنیم:
- وقتی مقدار دقیق مهم است — از
Input type="number"استفاده کنید - برای انتخاب از لیست گزینههای گسسته — از
SelectیاRadioGroupاستفاده کنید
استفاده
import { Slider } from '@parto-system-design/ui'
export default function MyComponent() {
return <Slider defaultValue={[50]} max={100} step={1} />
}زمین بازی
با تغییر تنظیمات زیر، اسلایدر را به صورت زنده مشاهده کنید.
زمین بازی
تنظیمات
import { Slider } from '@parto-system-design/ui'
<Slider />حالتها و انواع
پیشفرض
عمودی
<Slider orientation="vertical" defaultValue={[50]} className="h-44" />غیرفعال
<Slider defaultValue={[30]} disabled />محدوده (Range)
<Slider defaultValue={[25, 75]} />راهنمای استفاده
بکنید
- از Slider برای انتخاب مقدار در یک بازه پیوسته استفاده کنید (مانند حجم صدا، درصد، یا فیلتر قیمت) - از
onValueCommitبه جایonValueChangeبرای فراخوانی API استفاده کنید تا از درخواستهای مکرر جلوگیری شود - برای انتخاب بازه (مثلاً فیلتر قیمت) از دو دستگیره با آرایه دو عنصری استفاده کنید
نکنید
- وقتی مقدار دقیق عددی مهم است از Slider استفاده نکنید — از
Input type="number"استفاده کنید - برای انتخاب از گزینههای گسسته و مشخص از Slider استفاده نکنید — ازSelectیاRadioGroupاستفاده کنید - Slider را بدون نمایش مقدار فعلی به کاربر رها نکنید
Props
نکات
- جهت از
dirسند HTML خودکار تشخیص داده میشود (RTL/LTR) - برای جلوگیری از فراخوانی مکرر API، از
onValueCommit(نهonValueChange) استفاده کنید
دسترسیپذیری
- نقش
sliderاز Radix UI بهصورت خودکار اعمال میشود - مقادیر
aria-valuemin،aria-valuemaxوaria-valuenowتوسط Radix مدیریت میشوند - با
aria-labelیاaria-labelledbyبرچسبگذاری کنید
تعامل با کیبورد
Tab: فوکوس روی دستگیره (thumb) -Arrow Left/Right: تغییر مقدار بهصورت گامبهگام (در RTL جهت معکوس میشود) -Arrow Up/Down: تغییر مقدار -Home: حداقل مقدار -End: حداکثر مقدار -Page Up/Down: تغییر مقدار با گام بزرگتر
کامپوننتهای مرتبط
- Input — اگر کاربر باید مقدار عددی دقیق وارد کند، از Input با
type="number"استفاده کنید - RadioGroup — اگر مقادیر گسسته و محدود هستند (مثلاً ۳ سطح کیفیت)، از RadioGroup استفاده کنید