01 Capítulo 1 · Lección 1

¿Qué son las Transitions?

Redactado por
Author Sebastian V.
Fecha de publicación

19/03/2024

Tiempo de lectura

4 min

Tema

CSS Transitions

El problema de los cambios bruscos

Imagina que vas conduciendo un auto a 60 km/h y de repente, en un milisegundo, la velocidad cambia a 0. Tu cuerpo no lo agradecería, ¿verdad? En la vida real, las cosas no cambian de estado instantáneamente; existe aceleración, desaceleración y un tiempo de reacción natural.

Sin embargo, en el mundo web, cuando cambias el estilo de un elemento (por ejemplo, el color de fondo de un botón al pasar el cursor), el navegador aplica el nuevo estilo de inmediato. Esto crea un "salto brusco" que puede sentirse mecánico, robótico y poco amigable.

Aquí es donde entran las Transitions

Las CSS Transitions (Transiciones) existen para solucionar este problema. Te permiten cambiar los valores de las propiedades CSS de manera suave a lo largo de una duración determinada. No crean animaciones complejas e independientes como @keyframes, sino que actúan como un "puente" visual entre un estado A (normal) y un estado B (hover, focus, etc.).

El objetivo principal de una transición es mejorar la Experiencia de Usuario (UX). Una interfaz que reacciona suavemente a nuestras acciones nos transmite la sensación de calidad, atención al detalle y naturalidad.

Diferencia entre Animación y Transición

Es común confundir ambas, pero tienen propósitos distintos:

  • Transitions: Conectan dos estados definidos (por ejemplo, estado normal y :hover). Responden a la interacción y solo ocurren cuando una propiedad CSS cambia de valor.
  • Animations (Keyframes): Pueden ejecutarse solas, sin interacción del usuario, pueden tener múltiples pasos intermedios y repetirse infinitamente.

Ejemplo práctico

> _
<button class="btn">
  Pasa el cursor
</button>
> _

Pasa el cursor sobre el botón. Nota cómo se eleva, cambia de color y la sombra se expande de manera suave, no abrupta.

Errores comunes

01
Aplicar la transición en el estado final (:hover) La transición debe ir en el selector principal, no en el pseudo-estado. Si la pones en el :hover, el elemento cambiará suave al entrar, pero volverá brusco al salir.
02
Transiciones en todo (* { transition: all }) Esto arruinará el rendimiento de tu sitio y creará comportamientos inesperados, como transiciones no deseadas al redimensionar la ventana.
03
Tiempos excesivamente largos Una interacción UI debe sentirse rápida y responsiva. Duraciones mayores a 0.5s suelen sentirse pesadas y letárgicas.

Practica lo aprendido

Crea tu primer botón interactivo aplicando el concepto de interpolación suave entre el estado normal y hover.

01 Crea un div cuadrado con color de fondo sólido.
02 Agrega una pseudo-clase :hover para cambiar su color.
03 Prueba pasar el cursor sin transition. ¿Ves el salto brusco?
04 Agrega transition: background-color 0.4s ease al div principal.
05 Vuelve a probar el hover. Disfruta la suavidad.