Saltar al contenido
Alea0.1
Pro
  1. Alea
  2. Componentes
  3. Formularios
  4. Switch

Formularios

Switch

Un ajuste de encendido y apagado que se aplica al instante: tres tamaños, la etiqueta a cualquier lado, textos cortos dentro del riel, íconos en el control y un estado de guardado.

import { Switch } from '@alea/ui';

Ejemplos

Switch

Se aplica de inmediato.

Filas de ajustes

Etiqueta a la izquierda para listas de ajustes.

Tamaños, etiquetas e íconos

sm, md y lg; onLabel y offLabel dentro del riel (de dos o tres letras); thumbIcon muestra un check y una cruz, o tu propio ícono.

Guardando

isLoading pone un spinner en la manija e ignora los clics mientras se guarda el cambio.

Configuraciones

Cada valor de cada propiedad, lado a lado. Los números coinciden con la leyenda.

start
end
sm
md
lg
  1. Label PositionlabelPosition
  2. Sizesize

Estados

Cada estado de interacción, forzado para compararlos, en ambos temas.

Oscuro

Habilitado
Hover
Foco
Presionado
Disabled
Loading
Selected

Claro

Habilitado
Hover
Foco
Presionado
Disabled
Loading
Selected

Anatomía

Las partes del componente y la clase que da estilo a cada una.

Medidas

Medido del componente renderizado a 2x: alto, ancho, padding, radio e icono.

sizeAltoAnchoPadding (y · x)RadioTamaño de textoIconoSeparación
sm-------
md-------
lg-------

Cada tamaño y espacio es múltiplo de 4 px.

Tokens

Los tokens de diseño que usa este componente, con su valor en el tema actual. Cambia cualquiera para darle otro estilo.

Color

  • --alea-accent…
  • --alea-accent-on…
  • --alea-accent-solid…
  • --alea-accent-strong…
  • --alea-accent-subtle…
  • --alea-border…
  • --alea-border-strong…
  • --alea-focus…
  • --alea-status-danger…
  • --alea-surface…
  • --alea-surface-deep…
  • --alea-surface-raised…
  • --alea-text…
  • --alea-text-faint…
  • --alea-text-muted…

Space

  • --alea-space-2…
  • --alea-space-3…
  • --alea-space-4…

Radius

  • --alea-radius-full…
  • --alea-radius-md…

Type

  • --alea-font-family-body…
  • --alea-font-size-base…
  • --alea-font-size-md…
  • --alea-font-size-sm…
  • --alea-font-size-xs…
  • --alea-font-weight-semibold…

Motion

  • --alea-motion-duration-base…
  • --alea-motion-duration-fast…
  • --alea-motion-ease-out…

Other

  • --alea-control-thumb…

Props

Switch props

Un ajuste de encendido/apagado que se aplica de inmediato: tres tamaños, etiquetas en el riel, íconos en la manija y un estado de carga.

PropTipoPor defectoDescripción
descriptionReactNode-Texto de ayuda bajo la etiqueta.
isLoadingboolean-Muestra un spinner en la manija mientras se guarda el cambio; se ignoran los clics.
labelPosition"start" | "end"'end'Etiqueta a la izquierda (filas de ajustes) o a la derecha (por defecto).
offLabelReactNode-Texto corto dentro del riel cuando está apagado.
onLabelReactNode-Texto corto dentro del riel cuando está encendido, como ON o I. El riel crece para que quepa.
size"sm" | "md" | "lg"'md'sm (36 × 20), md (44 × 24, por defecto) o lg (52 × 28).
thumbIconReactNode-Un ícono en la manija: true para un check y una cruz, o tu propio ícono.

Especificaciones

Generado desde el código: las variantes de los tipos, los estados y tokens del CSS, y los patrones de motion que aplican. Las grillas muestran el componente real en ambos temas; los números se miden en la página.

Size × state

Oscuro

Switch dark
size="sm"size="md"
isSelected="false"
isSelected="true"

Claro

Switch light
size="sm"size="md"
isSelected="false"
isSelected="true"

Medido: alto · padding horizontal · radio de esquina · tamaño de texto, en px, de la grilla oscura.

Variantes
labelPositionstartend
sizesmmdlg
Estados
DisabledHoverSelectedIndeterminateKeyboard focusInvalidPressed
Motion
morphmore
Oscuro y claro
Cada color viene de tokens del tema, así que sigue a data-theme (y a presets como Graphite) en la página o en cualquier contenedor. El contraste se revisa en ambos temas.
Clases para estilos
.alea-check.alea-switch.alea-switch-track.alea-switch-label.alea-switch-thumb.alea-check-text.alea-check-desc
Atributos data
data-appearance=cardsdata-label-position=startdata-size=smdata-size=lgdata-loadingdata-labelsdata-variant=outlinedata-appearance=buttons

Accesibilidad

  • Rol switch: se anuncia como activado o desactivado.

Teclado

TeclaAcción
EspacioLo activa o desactiva

Qué hacer y qué evitar

Hacer

  • Nombra lo que se activa, no la acción: Modo oscuro.

Evitar

  • No lo uses en un formulario que necesita Guardar: usa Checkbox.
Probado con axe, teclado y roles de lector de pantalla