Radio

Küçük ve görünür bir seçenek kümesinden tam olarak birini seç. Radio native bir radio input'tur; RadioGroup ortak name değerini, seçili değeri ve ok tuşlarıyla gezinmeyi sağlar.

KararlıKaynak kod

Import

tsx
import { Radio, RadioGroup } from "@merid/react";

Örnekler

Controlled, açıklamalı

defaultValue grubu uncontrolled yapar. Controlled kullanım için value ve onValueChange ver; onValueChange yeni değeri string olarak alır. description, radio'ya bağlı ikinci bir satır ekler.

3–5 iş günüSonraki iş günü
value: standard

Yatay

Devre dışı ve geçersiz

Grupta disabled tüm radio'ları devre dışı bırakır; tek bir Radio'da yalnızca o seçeneği devre dışı bırakır ve ok tuşları onu atlar. invalid, gruba aria-invalid ekler ve daireleri kırmızıya çevirir.

API referansı

RadioGroup

role="radiogroup" olan bir div render'lar; ref ve diğer div attribute'ları bu elemana iletilir.

PropTipVarsayılanAçıklama
valuestring–Seçili değer (controlled).
defaultValuestring–Başlangıçta seçili değer (uncontrolled).
onValueChange(value: string) => void–Seçim değiştiğinde yeni değerle çağrılır.
namestring–Tüm radio'ların paylaştığı form alanı adı. Verilmezse otomatik üretilir.
orientation"vertical" | "horizontal""vertical"Yerleşim yönü.
disabledbooleanfalseGruptaki tüm radio'ları devre dışı bırakır. `Field` içindeyse ondan devralınır.
requiredbooleanfalseGrubu form doğrulaması için zorunlu yapar. `Field` içindeyse ondan devralınır.
invalidbooleanfalseGrubu geçersiz olarak işaretler (`aria-invalid`; grupta ve her input'ta `data-invalid`). `Field` içindeyse onun `error` değerinden türetilir.
childrenReactNode–Radio elemanları.

Radio

Ref ve native input attribute'ları <input>'a, className ve style ise dış sarmalayıcıya gider.

PropTipVarsayılanAçıklama
valueZorunlustring–Form ile gönderilen ve RadioGroup.onValueChange'e iletilen değer.
childrenReactNode–Dairenin yanındaki görünür etiket.
descriptionReactNode–Etiketin altındaki ikinci satır, aria-describedby ile bağlanır.
disabledboolean–Bu radio'yu devre dışı bırakır. Varsayılanı grubun disabled değeridir.

Stil verme

SeçiciDeğerler
.mrd-radio-groupGrup kapsayıcısı; data-orientation = vertical · horizontal
.mrd-radioRadio sarmalayıcısı; devre dışıyken data-disabled
.mrd-radio__control, __input, __circleNative input ve çizilen dairesi
.mrd-radio__text, __label, __descriptionEtiket kolonu
data-invalidGrupta ve her input'ta; daireleri geçersiz stilde gösterir

Radio'nun component değişkeni yoktur.

Erişilebilirlik

  • Grubun role="radiogroup" rolü vardır. Ona aria-label ile ya da görünür bir başlığı gösteren aria-labelledby ile ad ver. Field içindeyse adını Field etiketinden alır; açıklamasını, hatasını, zorunlu ve devre dışı state'ini de devralır.
  • Grup tek bir Tab durağıdır: Tab seçili radio'ya (hiçbiri seçili değilse ilkine) gelir.
  • Ok tuşları focus'u ve seçimi birlikte taşır, uçlarda başa ya da sona döner; devre dışı radio'lar atlanır. Sağdan sola (RTL) yerleşimde Sol/Sağ yer değiştirir.
TuşNe yapar
TabFocus'u gruba, seçili radio'ya taşır.
↓→Sonraki etkin radio'yu seçer, sondan ilkine döner.
↑←Önceki etkin radio'yu seçer, baştan sonuncuya döner.
Homeİlk etkin radio'yu seçer.
EndSon etkin radio'yu seçer.
SpaceFocus'taki radio seçili değilse onu seçer.

Kullanım ilkeleri

Yap

Radio'ları, insanların yan yana karşılaştırması gereken iki ile altı seçenek için, mantıklı bir varsayılan seçiliyken kullan.

Kaçın

Uzun listeler için radio kullanmak (bunun için NativeSelect var) ya da tek bir evet/hayır için kullanmak (o bir checkbox işi).

İlgili sayfalar