سوییچ (Switch)
کنترل تغییر وضعیت دوحالته
معرفی
کامپوننت Switch برای تغییر وضعیت بین دو حالت استفاده میشود.
چه زمانی استفاده نکنیم:
- وقتی تغییر نیاز به submit فرم دارد — از
Checkboxاستفاده کنید - برای انتخاب بین چند گزینه — از
RadioGroupاستفاده کنید - وقتی وضعیت باید confirmed شود — از
Checkbox+ دکمه submit استفاده کنید
استفاده
import { Switch } from '@parto-system-design/ui'
import { Label } from '@parto-system-design/ui'
export default function MyComponent() {
return (
<div className="flex items-center gap-2">
<Switch id="airplane-mode" />
<Label htmlFor="airplane-mode">حالت هواپیما</Label>
</div>
)
}زمین بازی
با تغییر تنظیمات زیر، سوییچ را به صورت زنده مشاهده کنید.
زمین بازی
تنظیمات
import { Switch } from '@parto-system-design/ui'
<Switch />اندازهها
کامپوننت Switch از سه اندازه استاندارد پشتیبانی میکند:
<div className="flex items-center gap-4">
<Switch size="sm" />
<Switch size="md" />
<Switch size="lg" />
</div>کوچک (sm)
<Switch size="sm" />ابعاد: ارتفاع ۱۶ پیکسل، عرض ۲۸ پیکسل
متوسط (md) - پیشفرض
<Switch size="md" />
// یا
<Switch />ابعاد: ارتفاع ۲۰ پیکسل، عرض ۳۴ پیکسل
بزرگ (lg)
<Switch size="lg" />ابعاد: ارتفاع ۲۴ پیکسل، عرض ۴۴ پیکسل
حالت غیرفعال
<Switch disabled />
<Switch disabled defaultChecked />کنترل شده
const [checked, setChecked] = React.useState(false)
;<Switch checked={checked} onCheckedChange={setChecked} />راهنمای استفاده
بکنید
- از Switch برای تنظیماتی استفاده کنید که اثر فوری دارند (مانند روشن/خاموش کردن اعلانها یا حالت تاریک) - همیشه Switch
را با
Labelهمراه کنید تا هدف آن مشخص باشد - اندازه مناسب را بر اساس اهمیت تنظیم انتخاب کنید (smبرای تنظیمات فرعی،lgبرای تنظیمات اصلی)
نکنید
- وقتی تغییر وضعیت نیاز به submit فرم دارد از Switch استفاده نکنید — از
Checkboxاستفاده کنید - برای انتخاب بین چند گزینه از Switch استفاده نکنید — ازRadioGroupاستفاده کنید - Switch را بدون label متنی رها نکنید
Props
دسترسیپذیری
- از
role="switch"استفاده میشود aria-checkedوضعیت روشن/خاموش را اعلام میکند- همیشه با
idوLabel[htmlFor]همراه کنید - از صفحهکلید با Space قابل فعالسازی است
تعامل با کیبورد
Space: تغییر وضعیت (روشن/خاموش) -Tab: انتقال فوکوس
ملاحظات RTL
- انیمیشن حرکت thumb در RTL بهدرستی معکوس میشود
- از CSS variables برای کنترل جهت استفاده میشود