Checkbox

18px kutulu native bir checkbox. Birbirinden bağımsız evet/hayır seçimleri ve bir listeden birden fazla öğe seçmek için kullanılır. Her <input type="checkbox"> gibi formla birlikte gönderilir.

KararlıKaynak kod

Import

tsx
import { Checkbox } from "@merid/react";

Örnekler

Açıklamalı

description, etiketin altına ikinci bir satır render'lar ve onu aria-describedby ile bağlar.

Faturalar, makbuzlar ve plan değişiklikleri dahil.

Controlled

Uncontrolled checkbox'lar defaultChecked kullanır. Controlled kullanmak için checked ver ve onChange içinde event.target.checked değerini oku.

checked: false

Belirsiz (indeterminate)

indeterminate, karışık “–” state'ini gösterir; genellikle kısmen seçili bir üst öğede kullanılır. DOM'daki indeterminate özelliğini ayarlar; yardımcı teknolojiler bunu aria-checked="mixed" olarak bildirir.

Devre dışı ve geçersiz

Görünür etiket olmadan

Children vermeden aria-label ver; örneğin bir tablonun seçim kolonunda.

API referansı

Ref ve native input attribute'ları (checked, defaultChecked, onChange, name, value, …) <input>'a gider. className ve style dıştaki sarmalayıcıya gider.

PropTipVarsayılanAçıklama
childrenReactNode–Kutunun yanındaki görünür etiket. Etiketsiz bir checkbox için verme ve aria-label kullan. Bir `Field` içinde checkbox'ı Field'ın etiketi adlandırır, children ise açıklamaya dönüşür.
descriptionReactNode–Etiketin altındaki ikincil satır; aria-describedby ile bağlanır.
indeterminatebooleanfalseKarışık state'i gösterir ve DOM'daki indeterminate özelliğini ayarlar.
invalidboolean–Geçersiz stilini (`data-invalid`) ve `aria-invalid`'i zorla uygular.
checkedboolean–İşaretli state'i (controlled).
defaultCheckedboolean–Başlangıçtaki işaretli state (uncontrolled).
disabledboolean–Input'u devre dışı bırakır ve etiketi soluklaştırır.

Stil verme

SeçiciDeğerler
.mrd-checkboxDış sarmalayıcı; className ve style buraya gelir
.mrd-checkbox__controlKutu kapsayıcısı
.mrd-checkbox__inputNative <input>
.mrd-checkbox__iconTik / çizgi SVG'si
.mrd-checkbox__text, __label, __descriptionEtiket kolonu
data-disabled, data-invalidSarmalayıcı üzerinde
data-invalidGeçersizken input üzerinde; danger halkasını çizer
data-indeterminateKarışık state'teyken input üzerinde

Geçersiz halkasını input üzerindeki data-invalid belirler; anlamı aria-invalid taşır. Checkbox'ın component değişkeni yoktur; --mrd-accent, --mrd-line-strong ve --mrd-danger token'larını kullanır.

Erişilebilirlik

  • Native bir checkbox'tır: işaretli state, devre dışı state ve form gönderimi platformdan gelir.
  • Etiket gerçek bir <label htmlFor> olduğu için metne tıklamak kutuyu değiştirir.
  • Bir Field içinde checkbox'ı Field'ın etiketi adlandırır (aria-labelledby). Children yine tıklanabilir bir etiket olarak render'lanır ama açıklama olarak bağlanır (aria-describedby); böylece kontrol hiçbir zaman iki kez etiketlenmez.
  • İlişkili checkbox'ları legend'lı bir fieldset içinde ya da role="group" ve aria-labelledby taşıyan bir kapsayıcıda grupla.
TuşNe yapar
TabFocus'u checkbox'a taşır.
SpaceCheckbox'ı işaretler ya da işareti kaldırır.

Kullanım ilkeleri

Yap

Etiketleri, işaretliyken doğru olan olumlu ifadeler olarak yaz: “Güncellemeleri e-postayla gönder”.

Kaçın

“Bana e-posta gönderme” gibi olumsuz etiketler kullanmak. İşaretli olanın “hayır” anlamına gelmesi kolayca yanlış okunur.

Yap

Checkbox'ı, form gönderildiğinde kaydedilen bir seçim için kullan.

Kaçın

Hemen etkili olan bir ayar için kullanmak. Bunun için Switch var.

İlgili sayfalar

  • Switch: hemen etkili olan açık/kapalı ayarlar.
  • Radio: bir kümeden tek seçim.
  • Table: checkbox'larla satır seçimi.