Saltearse al contenido

Radio

Estilo relleno: al seleccionar, todo el círculo se llena con color.primary.on-light-text (lima en oscuro, navy en claro — mismo token que usan OrbitNavItem/OrbitTabs) en vez de solo dibujar un anillo con un punto chico adentro, con un punto interno en color.primary.on-navy-text encima para contraste (oscuro sobre lima en modo oscuro, claro sobre navy en modo claro — mismo par que usa el thumb marcado de OrbitSwitch). Disabled ignora selected para el color del anillo/relleno — siempre text.disabled, sin importar si estaba marcado; el punto interno sí se sigue mostrando (en field.background) para no perder la referencia de cuál estaba seleccionado antes de deshabilitarse.

Uso

OrbitRadio funciona solo, sin necesitar un grupo — selected/ onClick (web: checked/evento change) controlan su propio estado, como cualquier otro control booleano.

<orbit-radio label="Acepto los términos"></orbit-radio>

Estados

<orbit-radio label="Enabled"></orbit-radio>
<orbit-radio label="Selected" checked></orbit-radio>
<orbit-radio label="Disabled" disabled></orbit-radio>
<orbit-radio label="Disabled selected" checked disabled></orbit-radio>

Grupo

OrbitRadioGroup es el caso común: orquesta la selección mutuamente excluyente entre un set de opciones — mismo patrón que OrbitCardGroup. En web, <orbit-radio-group> da spacing consistente, propaga name a sus hijos y fuerza la exclusividad a mano: cada <orbit-radio> renderiza su <input type="radio"> dentro de su propio Shadow DOM, así que el agrupamiento nativo por name no cruza esos límites — al marcar uno, el grupo desmarca los demás explícitamente.

<orbit-radio-group name="platform">
<orbit-radio value="android" label="Android"></orbit-radio>
<orbit-radio value="ios" label="iOS" checked></orbit-radio>
<orbit-radio value="desktop" label="Desktop"></orbit-radio>
</orbit-radio-group>

Por defecto el grupo se apila vertical — pasa orientation="horizontal" (web) / orientation = OrbitRadioGroupOrientation.Horizontal (Kotlin) para ponerlo en fila.

<orbit-radio-group name="platform" orientation="horizontal">
<orbit-radio value="android" label="Android"></orbit-radio>
<orbit-radio value="ios" label="iOS" checked></orbit-radio>
<orbit-radio value="desktop" label="Desktop"></orbit-radio>
</orbit-radio-group>

Props

OrbitRadio

PropTipoDefaultDescripción
selected / attr checkedboolean—Estado actual.
onClick / evento change() => void—Se dispara al seleccionar.
labelstring?nullTexto junto al radio.
enabled / attr disabledbooleantrueHabilita/deshabilita.

OrbitRadioGroup (Kotlin) / orbit-radio-group (web)

PropTipoDefaultDescripción
options (Kotlin) / hijos <orbit-radio> (web)List<T>—Opciones del grupo.
selectedT?—Valor seleccionado.
onSelectedChange / evento orbit-change(T) => void—Se dispara al cambiar la selección.
optionLabel (Kotlin)(T) => stringtoString()Cómo renderizar cada opción.
enabled (Kotlin) / attr disabled (web)booleantrueDeshabilita todo el grupo.
orientation / attr orientationOrbitRadioGroupOrientation (web: "vertical" | "horizontal")VerticalApila las opciones o las pone en fila.