01 Capítulo 1 · Lección 2

transition property

Redactado por
Author Sebastian V.
Fecha de publicación

21/03/2024

Tiempo de lectura

5 min

Tema

CSS Transitions

¿Qué quieres animar exactamente?

Imagina que le dices a un director de orquesta: "Toca música". Probablemente te preguntará: "¿Qué instrumentos quieres que toquen?". En CSS, transition-property es exactamente eso. Le dice al navegador cuáles propiedades específicas deben cambiar suavemente y cuáles deben cambiar de golpe.

Valores principales

Tienes tres opciones principales al definir esta propiedad:

  • all (Por defecto): Le dice al navegador que cualquier propiedad que cambie de valor debe transicionarse. Es fácil, pero puede causar problemas de rendimiento si cambian muchas cosas a la vez.
  • Una propiedad específica: Como transform, opacity o background-color. Solo esa propiedad tendrá una transición.
  • Múltiples propiedades: Puedes separar propiedades por comas, por ejemplo: transform, opacity. Esta es la forma más recomendada y profesional.

¿Por qué no usar simplemente "all"?

Es muy tentador escribir transition: all 0.3s y olvidarse del asunto. El problema es que el navegador intentará interpolar propiedades que quizás no querías animar, o peor aún, propiedades que son muy costosas para el procesador (como `box-shadow` o `margin`). Especificar exactamente qué propiedades van a cambiar hace que tu código sea predecible y mucho más rápido.

Consejo profesional

Siempre que sea posible, prefiere transicionar propiedades que no alteren el flujo del documento, como transform u opacity, en lugar de width o margin para lograr un rendimiento de 60fps.

Ejemplo práctico

> _
<div class="container">
  <button class="btn all">transition: all</button>
  <button class="btn specific">transition: transform</button>
</div>
> _

El primer botón transiciona 'all' (color y posición cambian suavemente). El segundo solo transiciona 'transform' (se mueve suave, pero el color cambia de golpe).

Errores comunes

01
Intentar transicionar propiedades no animables Propiedades como display (de none a block) o font-family no pueden transicionarse y cambiarán de golpe.
02
Olvidar prefijos en producción Aunque hoy en día no es tan común, algunas propiedades experimentales requieren definir su versión con prefijo en transition-property.

Practica lo aprendido

Domina el control de qué propiedades responden a la interacción del usuario.

01 Crea un div que cambie de ancho (width) y color de fondo al hacer hover.
02 Aplica transition-property: background-color.
03 Observa cómo el color es suave, pero el ancho cambia de golpe.
04 Cambia a transition-property: all.
05 Mejor práctica: usa transition-property: width, background-color.