@akhatmirzo/ui

Checkbox

Native checkbox ustidagi belgilash katakchasi: label, izoh va qisman (indeterminate) holat.

Import

import { Checkbox } from '@akhatmirzo/ui';

Qachon ishlatish

  • "Saqlash" tugmasi bor formalarda — tanlov forma yuborilganda kuchga kiradi. Darhol ta'sir qiladigan sozlama uchun Switch ishlating.
  • Bir nechta mustaqil tanlov uchun — bildirishnoma kanallari, filtrlar. Bir nechtadan faqat bittasi tanlanadigan bo'lsa — RadioGroup.
  • Rozilik uchun — "Shartlarga roziman". Majburiy bo'lsa, Field dagi required va error bilan.
  • Label'ni ijobiy shaklda yozing: "Xabarnomalarni yuborish", "Xabarnomalarni yubormaslik" emas.

O'lchamlar

sm — 16px, md (standart) — 20px. Ikkalasida ham ko'rinmas bosish maydoni katakdan kattaroq.

Izoh bilan

description label ostida kichikroq, xira matnda chiqadi va ekran o'quvchiga aria-describedby orqali bog'lanadi.

Qisman tanlangan holat

checked="indeterminate" — "−" belgisi. Odatda "hammasini tanlash" katakchasida: bolalarning bir qismi tanlangan bo'lsa. onCheckedChange faqat boolean qaytaradi — qisman holatni o'zingiz hisoblaysiz.

Holatlar

disabled — katak va label xiralashadi, bosilmaydi. invalid — chegara qizil, input'da aria-invalid.

Field bilan

Field xato va izohni katakchaga ulaydi; error bo'lsa, invalid avtomatik yoqiladi. Katakni belgilab ko'ring.

Davom etish uchun rozilik kerak

Props

Checkbox qolgan barcha <input> atributlarini (name, value, form, onChange ...) qabul qiladi; ref ichki <input> ga tushadi. className esa ildiz <label> ga beriladi.

PropTipStandartTavsif
checkedboolean | 'indeterminate'—Boshqariladigan qiymat
defaultCheckedboolean | 'indeterminate'falseBoshlang'ich qiymat (boshqarilmaydigan rejim)
onCheckedChange(checked: boolean) => void—Foydalanuvchi belgilaganda yoki olib tashlaganda
labelReactNode—Katak yonidagi matn
descriptionReactNode—Label ostidagi izoh
size'sm' | 'md''md'O'lcham: 16 / 20px
invalidboolean—Xato holati (Field ichida error bo'lsa avtomatik)
disabledboolean—O'chirilgan holat
classNamestring—Ildiz <label> elementi klassi

Data atributlari

Ildiz <label> da:

AtributQiymat
data-statechecked · unchecked · indeterminate
data-sizesm · md
data-disableddisabled bo'lganda mavjud
data-invalidXato holatida mavjud

Accessibility

  • Native <input type="checkbox"> — Space bilan almashtiriladi, formaga oddiy checkbox kabi yuboriladi, brauzer tekshiruvi (required) ishlaydi.
  • Label bosilganda ham belgilanadi — butun komponent <label> ichida.
  • Qisman holat ekran o'quvchiga aria-checked="mixed" bilan aytiladi.
  • Fokus halqasi faqat klaviatura bilan kelganda chiqadi.
  • Label'siz katakcha (masalan, jadval qatorida) uchun aria-label bering.

Sahifada