OtpInput

Ver la demo

Ficha

Categoría
Forms
Nivel
molécula
Estado
en revisión
Radix
no
Actualizado
2026-10-26
Fuente
design-system/componentes/OtpInput.md

Código de verificación de 6 dígitos (OTP por correo en Registro/01). Cada dígito es un OtpDigit (468:16079) visual; hay un solo input real.

Cuándo usarlo

  • Códigos de verificación por correo (6 dígitos, 10 min, 3 intentos, reenvío a los 45 s).

Cuándo NO usarlo

  • Códigos de invitación (alfanuméricos, pegados) → TextField.

Anatomía

Etiqueta body/sm-strong · fila de 6 cajas 48×56 radius-3x (borde 06-muted; activa: 2 px brand focus + anillo; error: danger 06-muted) con el dígito heading/md · input real transparente encima · ayuda body/xs.

Props

PropFigmaValoresPor defecto
valueDigit · Populated (por OtpDigit)hasta 6 dígitos—
errorValidation=error (por OtpDigit)booleanfalse
(foco)State=focus (por OtpDigit)derivado del input real—
label, help, onChange, disabled, id—etiqueta visible, ayuda, control—

Estados

default · focus (caja activa) · populated · error · disabled.

Accesibilidad

  • Un input real (autocomplete="one-time-code", inputmode="numeric", maxlength 6) con etiqueta visible; pegar rellena todas las cajas; el error va ligado por aria-describedby y aria-invalid. Las cajas son decorativas.

Contenido

La ayuda dice vencimiento e intentos («vence en 10 minutos», «te quedan 2 intentos»).

Errores conocidos

  • Ninguno medido.

Changelog

  • 2026-10-26 · nace (T-02).

Tokens que consume