Transiciones y animaciones

Una transición suaviza el paso de un estado a otro (al pasar el ratón, al cambiar una clase); una animación sigue los pasos de un @keyframes.

transition: Abreviada.

animation: Abreviada.

  • Una transición suaviza el paso de un estado a otro (al pasar el ratón, al cambiar una clase); una animación sigue los pasos de un @keyframes. Respeta a quien pide menos movimiento: @media (prefers-reduced-motion: reduce).
  • Cada elemento lleva una definición corta y un ejemplo. En Practica, al final, tienes los mismos ejemplos para editarlos y ver el resultado al momento.
  • Esencial. Abreviada: qué propiedad cambia suavemente, en cuánto tiempo, con qué curva y con qué retraso.
  • Valores: background-color 0.3s ease, all 200ms, transform .2s, opacity .2s
  • Qué propiedades se animan al cambiar.

Introducción

Una transición suaviza el paso de un estado a otro (al pasar el ratón, al cambiar una clase); una animación sigue los pasos de un @keyframes. Respeta a quien pide menos movimiento: @media (prefers-reduced-motion: reduce).

Cada elemento lleva una definición corta y un ejemplo. En Practica, al final, tienes los mismos ejemplos para editarlos y ver el resultado al momento.

transition

Esencial. Abreviada: qué propiedad cambia suavemente, en cuánto tiempo, con qué curva y con qué retraso.

Valores: background-color 0.3s ease, all 200ms, transform .2s, opacity .2s

transition-property

Qué propiedades se animan al cambiar.

Valores: all, opacity, transform, opacity, none

transition-duration

Cuánto dura la transición.

Valores: 0.3s, 200ms

transition-timing-function

La curva de velocidad: cómo acelera y frena (también vale para animaciones).

Valores: ease, linear, ease-in, ease-out, ease-in-out, cubic-bezier(…), steps(4)

transition-delay

Cuánto espera antes de empezar.

Valores: 0s, 150ms

transition-behavior

Con allow-discrete, permite transiciones en propiedades que cambian de golpe, como display (para que algo aparezca o desaparezca con un fundido).

Valores: normal, allow-discrete

animation

Esencial. Abreviada: el nombre del @keyframes, la duración, la curva, el retraso, las repeticiones, la dirección…

Valores: latido 1s ease-in-out infinite alternate

animation-name

El nombre del @keyframes que se reproduce.

Valores: aparecer, none

animation-duration

Cuánto dura una vuelta de la animación.

Valores: 1s, 400ms

animation-delay

Cuánto espera antes de empezar. Con retrasos distintos se escalonan varias animaciones.

Valores: 0s, 0.2s, -1s (empieza ya avanzada)

animation-timing-function

La curva de velocidad de la animación (como en las transiciones). Se puede cambiar en cada fotograma clave.

Valores: ease, linear, ease-in-out, steps(6), cubic-bezier(…)

animation-iteration-count

Cuántas veces se repite.

Valores: 1, 3, infinite

animation-direction

Si cada vuelta va hacia delante, hacia atrás o alternando.

Valores: normal, reverse, alternate, alternate-reverse

animation-fill-mode

Qué estilos se quedan antes de empezar y al terminar. Con forwards, el elemento se queda como en el último fotograma.

Valores: none, forwards, backwards, both

animation-play-state

Pausa o reanuda la animación.

Valores: running, paused

animation-timeline

Une la animación al desplazamiento en lugar de al tiempo: avanza al hacer scroll (scroll()) o cuando el elemento entra en pantalla (view()). Así en 2026, aún no funciona en todos los navegadores.

Valores: auto, scroll(), view()

view-transition-name

Da nombre a un elemento para que el navegador anime su cambio entre dos estados o dos páginas (View Transitions). Se usa con document.startViewTransition() o, entre páginas, con @view-transition { navigation: auto; }.

Valores: none, foto-principal

Referencia de CSS
16

Transiciones y animaciones

Una transición suaviza el paso de un estado a otro (al pasar el ratón, al cambiar una clase); una animación sigue los pasos de un @keyframes.

Código del tema: .boton { transition: background-color 0.3s ease, color 0.3s

📘 Teoría

Introducción

Una transición suaviza el paso de un estado a otro (al pasar el ratón, al cambiar una clase); una animación sigue los pasos de un @keyframes. Respeta a quien pide menos movimiento: @media (prefers-reduced-motion: reduce).

Cada elemento lleva una definición corta y un ejemplo. En Practica, al final, tienes los mismos ejemplos para editarlos y ver el resultado al momento.

transition

1

Esencial. Abreviada: qué propiedad cambia suavemente, en cuánto tiempo, con qué curva y con qué retraso.

2

Valores: background-color 0.3s ease, all 200ms, transform .2s, opacity .2s

transition-property

1

Qué propiedades se animan al cambiar.

2

Valores: all, opacity, transform, opacity, none

transition-duration

1

Cuánto dura la transición.

2

Valores: 0.3s, 200ms

transition-timing-function

1

La curva de velocidad: cómo acelera y frena (también vale para animaciones).

2

Valores: ease, linear, ease-in, ease-out, ease-in-out, cubic-bezier(…), steps(4)

transition-delay

1

Cuánto espera antes de empezar.

2

Valores: 0s, 150ms

transition-behavior

1

Con allow-discrete, permite transiciones en propiedades que cambian de golpe, como display (para que algo aparezca o desaparezca con un fundido).

2

Valores: normal, allow-discrete

animation

1

Esencial. Abreviada: el nombre del @keyframes, la duración, la curva, el retraso, las repeticiones, la dirección…

2

Valores: latido 1s ease-in-out infinite alternate

animation-name

1

El nombre del @keyframes que se reproduce.

2

Valores: aparecer, none

animation-duration

1

Cuánto dura una vuelta de la animación.

2

Valores: 1s, 400ms

animation-delay

1

Cuánto espera antes de empezar. Con retrasos distintos se escalonan varias animaciones.

2

Valores: 0s, 0.2s, -1s (empieza ya avanzada)

animation-timing-function

1

La curva de velocidad de la animación (como en las transiciones). Se puede cambiar en cada fotograma clave.

2

Valores: ease, linear, ease-in-out, steps(6), cubic-bezier(…)

animation-iteration-count

1

Cuántas veces se repite.

2

Valores: 1, 3, infinite

animation-direction

1

Si cada vuelta va hacia delante, hacia atrás o alternando.

2

Valores: normal, reverse, alternate, alternate-reverse

animation-fill-mode

1

Qué estilos se quedan antes de empezar y al terminar. Con forwards, el elemento se queda como en el último fotograma.

2

Valores: none, forwards, backwards, both

animation-play-state

1

Pausa o reanuda la animación.

2

Valores: running, paused

animation-timeline

Une la animación al desplazamiento en lugar de al tiempo: avanza al hacer scroll (scroll()) o cuando el elemento entra en pantalla (view()). Así en 2026, aún no funciona en todos los navegadores.

Valores: auto, scroll(), view()

view-transition-name

Da nombre a un elemento para que el navegador anime su cambio entre dos estados o dos páginas (View Transitions). Se usa con document.startViewTransition() o, entre páginas, con @view-transition { navigation: auto; }.

Valores: none, foto-principal

🕹️ Practica

Referencia interactiva Ejemplos editables: Transiciones y animaciones Abrir en pantalla completa

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros. culTest

La hice en febrero de 2026 para facilitar el aprendizaje de mis alumnos. La idea es aprender desarrollo web practicando y que el proyecto siga creciendo con nuevos temas, tests y retos.

Está inspirada en MDN, W3Schools, CodePen, Manz y muchos otros sitios de documentación sobre desarrollo web. Quería combinar teoría útil, ejemplos ejecutables, retos y el sistema de tests que ya tenía en culTest. culTest

Si te gustó, si no te gustó o si quieres escribirme, puedes hacerlo en cristianeslava@gmail.com