04 Capítulo 4 · Lección 11

Feedback visual en formularios

Redactado por
Author Sebastian V.
Fecha de publicación

21/07/2025

Tiempo de lectura

6 min

Tema

Interactions

¿Qué es el Feedback en Formularios?

Llenar un formulario web es intrínsecamente aburrido y propenso a errores. El feedback de formularios es la capa de interactividad que guía al usuario campo por campo, informándole en tiempo real dónde está, qué debe escribir y si lo que escribió es correcto o incorrecto.

¿Para qué sirve?

Sin feedback visual, los inputs parecen cajas inertes. Al reaccionar visualmente (cambiando bordes, levantando textos), el usuario nunca se pierde.

  • Ubicación visual (Focus): Resaltar el borde inferior fuertemente ayuda a saber dónde va a aparecer el texto.
  • Retención de contexto (Floating Label): El patrón donde el placeholder se mueve arriba pero no desaparece, permite al usuario saber qué dato está llenando incluso si se distrae.
  • Validación instantánea: Bordes verdes o rojos que evitan la frustración de llenar 10 campos y que el servidor los rechace al final.

¿Cómo se usa?

El patrón moderno CSS-only (Floating Label) se logra usando el orden del DOM y pseudo-clases astutas. Colocas el <label> después del <input>, y usas el selector input:focus ~ label o input:not(:placeholder-shown) ~ label para disparar un translateY y achicar el texto, empujándolo fuera del camino elegantemente sin tocar JavaScript.

Consejo profesional

Aprovecha las pseudo-clases nativas :placeholder-shown y :focus-within. Con ellas puedes crear validaciones y animaciones complejas en contenedores padres de forma puramente declarativa y fluida.

Input moderno con Floating Label y Focus

> _
<div class="input-group">
  <input type="text" id="username" class="modern-input" placeholder=" ">
  <label for="username" class="floating-label">Nombre de usuario</label>
  <div class="focus-border"></div>
</div>
> _

Haz clic dentro del input y escribe para ver cómo el label interactúa y flota.

Errores comunes

01
Perder el placeholder Borrar el placeholder nativo inmediatamente al enfocar. Si el usuario se distrae, olvida qué le estaban pidiendo.
02
Transiciones ruidosas en tiempo real Inyectar animaciones de error agitadas (shake) por cada pulsación de tecla asusta al usuario.

Practica lo aprendido

Implementa el patrón floating label con transición suave en tus inputs.

01 Crea el input con placeholder=' ' (un espacio, no vacío).
02 Coloca el label sobre el input con position: absolute.
03 Usa :placeholder-shown para saber si el input está vacío.
04 En :focus y :not(:placeholder-shown), sube el label con scale y translateY.
05 Añade un borde inferior animado que crece desde el centro.