01 Capítulo 1 · Lección 4

transition timing function

Redactado por
Author Sebastian V.
Fecha de publicación

25/03/2024

Tiempo de lectura

6 min

Tema

CSS Transitions

La personalidad del movimiento

Dos elementos pueden moverse de A hacia B en exactamente 1 segundo, pero pueden sentirse completamente distintos. Uno puede sentirse como un robot, y el otro como un objeto real impulsado por la física. Esa diferencia es el easing o transition-timing-function.

Los valores principales (Curvas de Bézier)

El navegador calcula la velocidad de la transición usando matemáticas (Curvas de Bézier cúbicas). Tienes a tu disposición palabras clave predefinidas:

  • linear: Velocidad constante. Sin aceleración ni frenado. Se siente mecánico, ideal para barras de progreso continuas.
  • ease (por defecto): Comienza lento, acelera rápido, y frena lentamente al final. Es muy orgánico y funciona bien en casi todo.
  • ease-in: Comienza lento y termina rápido. Es como dejar caer un objeto por la gravedad.
  • ease-out: Comienza rápido y desacelera hasta detenerse. Es perfecto para la UI porque el elemento responde inmediatamente a la interacción del usuario y luego "frena" suavemente.
  • cubic-bezier(n,n,n,n): Crea tu propia curva matemática. ¡Incluso puedes hacer que los elementos reboten sobrepasando su destino final!

Consejo profesional

Regla de oro de UX: Cuando un elemento entra en pantalla o responde al hover, usa ease-out (responde rápido, frena suave). Cuando sale, usa ease-in (empieza lento y escapa rápido).

Ejemplo práctico

> _
<div class="race">
  <div class="box linear">linear</div>
  <div class="box ease">ease</div>
  <div class="box ease-in">ease-in</div>
  <div class="box ease-out">ease-out</div>
  <div class="box bouncy">cubic-bezier</div>
</div>
> _
linear
ease
ease-in
ease-out
cubic-bezier
Pasa el cursor sobre la carrera

Pasa el cursor por el contenedor. ¡Todos llegan al mismo tiempo exacto (1s), pero mira cómo el viaje es totalmente diferente!

Errores comunes

01
Usar ease-in para elementos interactivos Si un botón usa ease-in al hacer hover, tardará en reaccionar al principio, haciendo que la UI se sienta poco responsiva y pesada.
02
Abusar del linear El linear rara vez se ve natural, ya que en el mundo real nada arranca y frena a velocidad constante de manera instantánea.

Practica lo aprendido

Controla la curva de velocidad para crear interacciones orgánicas y naturales.

01 Prueba la diferencia entre ease-in (acelerar) y ease-out (desacelerar).
02 Visita cubic-bezier.com para crear tu propia curva personalizada.
03 Usa una curva con rebote para un modal que se abre.
04 Usa linear solo para cosas mecánicas (como un spinner de carga girando).
05 Notarás que ease-out es el mejor amigo de la UI moderna.