Radio Button

Control de selección exclusiva disponible en variante estándar y de tarjeta (Tiled).

Estado: draft

Vista Previa

Radio Default (LG)


Radio Small (SM)


Radio Tiled (LG)


# Componente Radio Button

El componente Radio permite que el usuario seleccione una (y solo una) opción de un conjunto mutuamente excluyente.

Semántica BEM y Atributos

La estructura descansa sobre un <input type="radio"> nativo. Para posibilitar la compatibilidad y exclusiones agilizadas del HTML nativo, cada input aglutinador debe enlazar la propiedad name con exactitud cruzada entre los demás miembros radio de su mismo grupo de selección.

Accesibilidad

- Utiliza .sr-only para extraer el input del flujo visual pero mantenerlo latente a los Screen Readers. - Los focos operan usando una transición pseudo-escalada controlada internamente que dispara el contorno 2px black + box-shadow celeste. - En caso de error, el <input> debe acompañarse semánticamente del atributo de validación nativa aria-invalid="true".

Variantes

1. Predeterminado (LG): Círculo de selección con un diámetro de 24px que instaura un punto sólido interno de escala escalada. 2. Small (SM) .gn-radio--sm: Comprime el diámetro periférico a 19px y los embutidos a ~5px. 3. Tarjeta / Tiled .gn-radio--tiled: Enjabona todo el input en una gran caja perimetrada, facilitando hits móviles al ensanchar el área clickable mediante rellenos.

*La variable .gn-radio--conditional extiende una placa visual para encajar hijos lógicos por debajo (usado en validaciones anidadas).*

HTML

<div class="gn-radio">
  <input class="gn-radio__input" type="radio" name="radio-group-1" id="radio-1" />
  <label class="gn-radio__label" for="radio-1">
    <span class="gn-radio__box">
      <span class="gn-radio__dot"></span>
    </span>
    <span class="gn-radio__content">
      <span class="gn-radio__text">Label text</span>
    </span>
  </label>
</div>