سوییچ (Switch)
کنترل تغییر وضعیت دوحالته
معرفی
کامپوننت Switch برای تغییر وضعیت بین دو حالت استفاده میشود.
چه زمانی استفاده نکنیم:
- برای پذیرش یک شرط («قبول شرایط») — از
Checkboxاستفاده کنید. هر فیلد روشن/خاموش، چه اثر فوری داشته باشد چه با دکمهٔ «ذخیره» فرم ثبت شود (مانند «ارسال ایمیل»)،Switchاست (جدول «کنترل هر نوع فیلد» درFormRow) - برای انتخاب بین چند گزینه — از
RadioGroupاستفاده کنید
استفاده
import { Switch } from '@partodata/ui'
import { Label } from '@partodata/ui'
export default function MyComponent() {
return (
<div className="flex items-center gap-2">
<Switch id="airplane-mode" />
<Label htmlFor="airplane-mode">حالت هواپیما</Label>
</div>
)
}زمین بازی
با تغییر تنظیمات زیر، سوییچ را به صورت زنده مشاهده کنید.
زمین بازی
تنظیمات
ظاهر
حالت
محتوا
کد این نمونه بهصورت خودکار قابل تولید نیست — برای کد آمادهی copy/paste به بخش «استفاده» در بالای صفحه مراجعه کنید.
اندازهها
کامپوننت Switch از سه اندازه استاندارد پشتیبانی میکند:
<div className="flex items-center gap-4">
<Switch size="sm" />
<Switch size="md" />
<Switch size="lg" />
</div>کوچک (sm)
<Switch size="sm" />ابعاد: ارتفاع 16 پیکسل، عرض 28 پیکسل
متوسط (md) - پیشفرض
<Switch size="md" />
// یا
<Switch />ابعاد: ارتفاع 20 پیکسل، عرض 34 پیکسل
بزرگ (lg)
<Switch size="lg" />ابعاد: ارتفاع 24 پیکسل، عرض 44 پیکسل
حالت غیرفعال
<Switch disabled />
<Switch disabled defaultChecked />کنترل شده
const [checked, setChecked] = React.useState(false)
;<Switch checked={checked} onCheckedChange={setChecked} />راهنمای استفاده
بکنید
- از Switch برای هر فیلد روشن/خاموش استفاده کنید: تنظیمی با اثر فوری (مانند حالت تاریک)، یا فیلدی از فرمی که با
«ذخیره» ثبت میشود (مانند «ارسال ایمیل») - همیشه Switch را با
Labelهمراه کنید تا هدف آن مشخص باشد (در فرم،FormRowبرچسب را میدهد) - بیرون از فرم، اندازه مناسب را بر اساس اهمیت تنظیم انتخاب کنید (smبرای تنظیمات فرعی،lgبرای تنظیمات اصلی)؛ درFormRowاندازه نگذارید
نکنید
- برای پذیرش یک شرط («قبول شرایط») از Switch استفاده نکنید — از
Checkboxاستفاده کنید - برای انتخاب بین چند گزینه از Switch استفاده نکنید — ازRadioGroupاستفاده کنید - Switch را بدون label متنی رها نکنید
Props
دسترسیپذیری
- از
role="switch"استفاده میشود aria-checkedوضعیت روشن/خاموش را اعلام میکند- همیشه با
idوLabel[htmlFor]همراه کنید - از صفحهکلید با Space قابل فعالسازی است
تعامل با کیبورد
Space: تغییر وضعیت (روشن/خاموش) -Tab: انتقال فوکوس
ملاحظات RTL
- انیمیشن حرکت thumb در RTL بهدرستی معکوس میشود
- از CSS variables برای کنترل جهت استفاده میشود