پرتوپرتو

چک‌باکس (Checkbox)

کنترل فرم برای انتخاب چند گزینه‌ای

معرفی

کامپوننت Checkbox برای انتخاب یک یا چند گزینه استفاده می‌شود.

چه زمانی استفاده نکنیم:

  • برای انتخاب منحصر‌به‌فرد (یکی از چند گزینه) — از RadioGroup استفاده کنید
  • برای تنظیم روشن/خاموش با اثر فوری — از Switch استفاده کنید
  • برای انتخاب از لیست بزرگ — از MultiSelect استفاده کنید

استفاده

import { Checkbox } from '@parto-system-design/ui'

export default function MyComponent() {
  return (
    <div className="flex items-center gap-2">
      <Checkbox id="terms" />
      <label htmlFor="terms">قوانین را می‌پذیرم</label>
    </div>
  )
}

زمین بازی

با تغییر تنظیمات زیر، چک‌باکس را به صورت زنده مشاهده کنید.

زمین بازی
تنظیمات
import { Checkbox } from '@parto-system-design/ui'

<Checkbox />

با فرم

import { Checkbox } from '@parto-system-design/ui'
import { Label } from '@parto-system-design/ui'

export default function MyComponent() {
  return (
    <div className="flex items-center gap-2">
      <Checkbox id="remember" />
      <Label htmlFor="remember">مرا به خاطر بسپار</Label>
    </div>
  )
}

حالت نامشخص (Indeterminate)

import { Checkbox } from '@parto-system-design/ui'
;<Checkbox checked="indeterminate" />

مناسب برای checkbox والد در لیست‌های چندسطحی که بعضی فرزندان انتخاب شده و بعضی نه.

حالت‌ها و انواع

حالت‌های مختلف

<div className="flex flex-col gap-4" dir="rtl">
  <div className="flex items-center gap-2">
    <Checkbox id="active" />
    <label htmlFor="active">فعال</label>
  </div>
  <div className="flex items-center gap-2">
    <Checkbox id="checked" defaultChecked />
    <label htmlFor="checked">انتخاب‌شده</label>
  </div>
  <div className="flex items-center gap-2">
    <Checkbox id="disabled-cb" disabled />
    <label htmlFor="disabled-cb">غیرفعال</label>
  </div>
  <div className="flex items-center gap-2">
    <Checkbox id="disabled-checked" disabled defaultChecked />
    <label htmlFor="disabled-checked">غیرفعال و انتخاب‌شده</label>
  </div>
</div>

راهنمای استفاده

بکنید

  • از Checkbox در فرم‌ها برای تأیید شرایط، انتخاب چند گزینه، یا فیلترهای چندگانه استفاده کنید - همیشه Checkbox را با Label همراه کنید تا ناحیه کلیک بزرگ‌تر و هدف مشخص‌تر شود - از حالت indeterminate برای checkbox والد در لیست‌های چندسطحی استفاده کنید

نکنید

  • برای تنظیمات با اثر فوری (مانند روشن/خاموش کردن اعلان‌ها) از Checkbox استفاده نکنید — از Switch استفاده کنید - برای انتخاب منحصربه‌فرد (یکی از چند گزینه) از Checkbox استفاده نکنید — از RadioGroup استفاده کنید - Checkbox را بدون label متنی رها نکنید

Props

Prop

Type

دسترسی‌پذیری

  • از role="checkbox" استفاده می‌شود
  • aria-checked وضعیت انتخاب را اعلام می‌کند (شامل mixed برای indeterminate)
  • همیشه با id و label[for] یا Label[htmlFor] همراه کنید
  • از صفحه‌کلید با Space قابل فعال‌سازی است

تعامل با کیبورد

  • Space: تغییر وضعیت (تیک/بدون تیک) - Tab: انتقال فوکوس

کامپوننت‌های مرتبط

  • Switch — اگر تغییر وضعیت باید اثر فوری داشته باشد (مانند روشن/خاموش)، از Switch استفاده کنید
  • RadioGroup — اگر کاربر باید فقط یک گزینه از بین چند گزینه انتخاب کند، از RadioGroup استفاده کنید
  • MultiSelect — اگر تعداد گزینه‌ها زیاد است و نیاز به جستجو دارید، از MultiSelect استفاده کنید