Checkbox
İşareti çizilerek beliren, belirsiz üst öğeleri, grupları ve hover durumunu paylaşan etiketleri olan bir onay kutusu.
pnpm dlx shadcn@latest add https://hextaui.com/r/checkbox.jsonBileşeni, HextaUI tema token'larını ve bileşenin bağımlı olduğu tüm HextaUI bileşenlerini ekler.
Henüz eklemediyseniz tema token'larını global CSS'inize ekleyin.
Bağımlılıkları yükleyin.
pnpm add @base-ui/react @tabler/icons-react cnAşağıdaki kodu kopyalayıp projenize yapıştırın.
components/ui/checkbox.tsx İçe aktarma yollarını proje yapılandırmanıza uyacak şekilde güncelleyin.
Durumlar
disabled, readOnly, indeterminate ve aria-invalid. Salt okunur bir kutu değerini korur ve odaklanabilir kalır, ancak tıklamaları ve tuşları yok sayar.
Tümünü seç
Bir <CheckboxGroup /> içinde, parent olan bir checkbox allValues içindeki her değeri işaretler. Yalnızca bazıları işaretliyken belirsiz (indeterminate) olur.
İç içe gruplar
Gruplar iç içe geçebilir. Her üst öğe hemen altındaki grubun durumunu yansıtır; en üstteki ise her şeyi kapsar.
Kontrollü
State'i kendi kodunuzda tutmak için checked ve onCheckedChange geçin.
Form
Gizli bir girdi, yerel bir checkbox gibi name ve value gönderir; required ise işaretlenene kadar göndermeyi engeller.
Kardeş etiket
Etiket kutuyu saramıyorsa, checkbox'ı nativeButton ile bir <button> olarak oluşturun ve etiketi htmlFor ile ona yöneltin.
Kartlar
Kartın kendisi tıklama alanı olsun diye tüm kartı etikete sarın ve has-data-checked ile stilleyin.
Uzun içerik
Uzun bir etiket ve kırılmayan metin yanında sararken kutu ilk satırda kalır.
Sağdan sola
Kutu satır içi başlangıç tarafında durur ve etiket okuma yönünü izler.
| Tuş | Action |
|---|---|
| Space | Checkbox'ı işaretler veya işaretini kaldırır. |
| Enter | Checkbox'ın ait olduğu formu, yerel bir checkbox gibi gönderir. Kutuyu asla açıp kapatmaz. |
| Tab | Odağı sonraki checkbox'a taşır. |
- Checkbox'ı ve metnini bir
<label>içine sarın. Etiket checkbox'ı adlandırır; üzerine gelmek veya basmak kutuya, kutunun kendisine gelmekle aynı geri bildirimi verir. - Ekran okuyucuların grubun ne için olduğunu duyurması için her
<CheckboxGroup />bileşenine biraria-labelveyaaria-labelledbyverin. - Tıklama alanı 16px'lik kutunun ötesine uzanır ve dokunmatik ekranlarda büyür.
- İşaretlenince onay işareti çizilir. Azaltılmış harekette çizgi animasyonu olmadan belirir.
Base UI checkbox ve checkbox group üzerine kuruludur. İkisi de sardığı primitive'in prop'larını kabul eder.
| Prop | Tür | Varsayılan |
|---|---|---|
checked | boolean | – |
defaultChecked | boolean | false |
onCheckedChange | (checked: boolean, details) => void | – |
indeterminateBir tire gösterir: ne işaretli ne de işaretsiz. | boolean | false |
disabled | boolean | false |
readOnlyOdaklanabilir, ancak değer değiştirilemez. | boolean | false |
required | boolean | false |
nameİşaretliyken formla birlikte gönderilir. | string | – |
valueBir grubun içindeki kutuyu tanımlar ve formun gönderdiği değerdir. Önce name'e, sonra “on”a geri döner. | string | – |
uncheckedValueİşaretsizken gönderilir. Varsayılan olarak hiçbir şey. | string | – |
parentGrubun allValues içindeki her değeri kontrol eder. Yalnızca bir CheckboxGroup içinde. | boolean | false |
inputRef | Ref<HTMLInputElement> | – |
nativeButtonrender bir <button> olduğunda true yapın. | boolean | false |
render | ReactElement | (props, state) => ReactElement | <span> |
| Öznitelik | Açıklama |
|---|---|
data-slot="checkbox" | CSS'te kutuyu hedefleyin. |
data-checked | İşaretli olduğunda bulunur. |
data-unchecked | İşaretsiz olduğunda bulunur. |
data-indeterminate | Belirsiz (indeterminate) olduğunda bulunur. |
data-disabled | Devre dışıyken bulunur. |
data-readonly | Salt okunur olduğunda bulunur. |
data-required | Zorunlu olduğunda bulunur. |
data-invalid | Bir Base UI Field içinde geçersiz olduğunda bulunur. |
| Prop | Tür | Varsayılan |
|---|---|---|
valueİşaretli checkbox'ların değerleri. | string[] | – |
defaultValue | string[] | – |
onValueChange | (value: string[], details) => void | – |
allValuesGruptaki her değer. Bir üst (parent) checkbox için zorunludur. | string[] | – |
disabled | boolean | false |
render | ReactElement | (props, state) => ReactElement | <div> |
| Öznitelik | Açıklama |
|---|---|
data-slot="checkbox-group" | CSS'te grubu hedefleyin. |
data-disabled | Grup devre dışı olduğunda bulunur. |
- CalendarTekli, aralık ve çoklu seçim için, kayan aylar, aralık önizlemeleri ve dokunmaya uygun boyutta günler içeren bir tarih ızgarası.
- ComboboxÇipler, gruplar ve asenkron sonuçlar içeren, siz yazdıkça boyutu değişen bir açılır pencerede filtrelenebilir bir select.
- Date pickerTek tarihler ve aralıklar için takvimi bir popover içinde, telefonlarda ise alt sayfa olarak açan bir düğme.
- FieldKontrolüne bağlanmış etiketler, açıklamalar ve hatalar; doğrulama durumları ve formlar için düzenler içerir.
- InputÜç boyutlu, geçersiz ve salt okunur durumları, yerel doğrulama stilleri ve telefonların asla yakınlaştırmaması için 16px dokunmatik yazı tipi olan bir metin girişi.
- Input groupSimgeler, metin, düğmeler ya da klavye ipucu eklenmiş; tek kenarlık ve odak halkasını paylaşan bir input.
Kullanıldığı bloklar
Checkbox üzerine kurulan bloklar.
- API keysOpenAI ve Anthropic konsolları gibi bir yapay zeka ürününün API anahtarları sayfası. Kapsamlı izinler ve son kullanma tarihiyle anahtar oluşturun, gizli anahtarı bir kez görün ve kopyalama onaylansın, geri alınabilir şekilde iptal edin, yerinde yeniden adlandırın, ek süreyle döndürün ve anahtar başına kullanımı görün.
- MarkdownYapay zeka yanıtları için geliştirilmiş Markdown. Akıcı biçimde akar ve yarım yazılmış sözdizimini asla göstermez; bağlantı verilebilen başlıklar, Markdown ya da CSV olarak kopyalanabilen tablolar, GitHub callout'ları, görev listeleri, dipnotlar, görseller, satır içi alıntılar ve eksiksiz kod blokları sunar.
- NotificationsBir yapay zeka ürününün ayarlarındaki Bildirimler bölümü. Satır, sütun ve tümü için anahtarları olan kanal ve olay ızgarası, canlı bir sonraki sessiz saat satırlı sessiz saatler, bir e-posta özeti, masaüstü, e-posta, push ve Slack için gerçek test gönderimleri, tarayıcı izni yönetimi ve bir Slack bağlama akışı. Herhangi bir Ayarlar bölümüne eklenebilir.
- SecurityBir yapay zeka ürünü için oturumlar ve güvenlik. Satırları animasyonla kaldıran oturum kapatmalı etkin cihazlar, canlı güç ölçerli parola değişikliği, gerçek QR kodlu iki aşamalı doğrulama kurulumu, 6 haneli bir kontrol ve indirilebilir kurtarma kodları, WebAuthn ile passkey'ler ve yazılı onayla korunan hesap silme.