Saltar al contenido

Login

Beta

Acceso con correo institucional y contraseña, con validación al enviar, error de servidor y acceso alternativo.

registry/examples/templates/login.tsx
Abrir en una pestaña nueva ↗

Para probarlo: julia@campus.edu con cualquier contraseña de 8 caracteres o más. Con otro correo muestra el error de servidor.

Qué incluye

  • Input con type="email" y type="password", y el botón Mostrar/Ocultar en iconRight.
  • Checkbox "Recordarme" y Link de recuperación en la misma fila.
  • Button fullWidth con loading mientras responde el servidor; el acceso alternativo es stroke.
  • Divider con texto, Alert color="danger" con role="alert", y Avatar en la cita del panel de marca.

Decisiones

  • Validación al enviar, no al tipear. Nadie quiere ver "correo inválido" antes de terminar de escribirlo. Los errores aparecen con el primer envío, pegados al campo, y desaparecen cuando el campo se corrige y se vuelve a enviar.
  • El error de servidor va arriba, con role="alert". Bloquea el flujo, así que interrumpe al lector de pantalla. Se puede cerrar.
  • Panel de marca solo desde 1024 px. En móvil el formulario es toda la pantalla y el logo pasa arriba del título.
  • autoComplete correctos (email, current-password) para que el navegador y los gestores de contraseñas rellenen solos.
  • Estado de éxito dentro de la misma pantalla. En una app real redirigís; acá lo mostramos para que se vea el cierre del flujo.

Cómo adaptarlo

  • Reemplazá el setTimeout de submit por tu llamada de autenticación y manejá los tres resultados: éxito, credenciales inválidas, error de red.
  • Sin acceso alternativo, sacá el Divider y el segundo botón.
  • Para la pantalla de registro, mismo layout: cambiá los campos y la acción primaria, y mantené el panel de marca.

Instalación

npx shadcn@latest add https://polen.cdc.cool/r/template-login.json

Se instala en app/login/page.tsx con los imports apuntando a components/ds/. Los componentes que usa vienen como dependencias.