Animaciones CSS: transiciones, keyframes y micro-interacciones

Combina transiciones y animaciones con @keyframes para dar vida a la UI: hover suave, loaders, pulses y animaciones con control fino.

Las transiciones son ideales para cambios de estado (hover, focus).

Las animaciones con @keyframes sirven para movimientos complejos y repetibles.

Usa transform y opacity para mejor rendimiento.

  • Resumen con ideas principales para repasar rápido.
  • Define qué propiedad animar, la duración y el easing.
  • Usa transform para micro-interacciones sin coste elevado.
  • Define un recorrido y luego aplica animation con duración e iteraciones.
  • Prueba animation-direction: alternate para movimientos más orgánicos.

Claves teóricas

Resumen con ideas principales para repasar rápido.

Transiciones (transition)

Define qué propiedad animar, la duración y el easing.

Usa transform para micro-interacciones sin coste elevado.

Animaciones con @keyframes

Define un recorrido y luego aplica animation con duración e iteraciones.

Prueba animation-direction: alternate para movimientos más orgánicos.

animation-range dentro de una animación vinculada

CSS
47

Animaciones CSS: transiciones, keyframes y micro-interacciones

Combina transiciones y animaciones con @keyframes para dar vida a la UI: hover suave, loaders, pulses y animaciones con control fino.

Código del tema: transition: all 240ms ease;

📘 Teoría

Claves teóricas

Resumen con ideas principales para repasar rápido.

1

Transiciones

Cambios de estado suaves: hover, focus, active.

2

Keyframes

Secuencias de animación con pasos del 0% al 100%.

3

Timing

Controla el ritmo con ease, linear o cubic-bezier().

4

Performance

Anima transform y opacity para evitar repaints pesados.

Transiciones (transition)

1

Define qué propiedad animar, la duración y el easing.

2

Usa transform para micro-interacciones sin coste elevado.

Hover suave
.card {
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.card:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 30px -18px rgba(15, 23, 42, .35);
}

Animaciones con @keyframes

1

Define un recorrido y luego aplica animation con duración e iteraciones.

2

Prueba animation-direction: alternate para movimientos más orgánicos.

Pulse
@keyframes pulse {
  0%, 100% { transform: scale(1); opacity: .9; }
  50% { transform: scale(1.08); opacity: 1; }
}

.badge {
  animation: pulse 1.1s ease-in-out infinite;
}

animation-range dentro de una animación vinculada

🧭 Visuales clave

Flujo de decisión para animar en CSS

Resume la decisión técnica para animaciones fluidas y mantenibles en interfaces reales.

Diagrama que diferencia cuándo usar transition o keyframes y qué propiedades conviene animar.

🧪 Aprende probando

Ejemplo Demo interactiva: transiciones y animaciones Cambia duración, easing y tipo de animación.
Ejemplo Tarjeta con hover
Ejemplo Keyframes: spinner + pulse Edita la animación (duración, easing) y prueba pausar con hover.

🏁 Retos

Reto Reto: transición de botón Completa la transición y el hover del botón.
Reto Reto: latido con keyframes Crea una animación pulse con @keyframes.

🧰 Recursos

Test

Comprueba tus conocimientos con un test sobre CSS.

Test de CSS
CodePen: Keyframes y transform
Abrir en CodePen

¿Qué es esto?

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

Esta la hice en febrero de 2026 para facilitar el aprendizaje de mis alumnxs. Aprender desarrollo web practicando. La idea es que crezca semanalmente con nuevos temas, tests y retos.

Inspirado en MDN, en W3Schools, en Codepen, en el crack de Manz y en mil sitios de documentación sobre desarrollo web. Quería aportar además de bloques teóricos con ejemplos, la gamificación de los retos y el sistema de test que ya tenía en culTest .

Si te gustó, si no te gustó, si quieres saludarme, o invitarme a 🍻 no dudes en escribirme en cristianeslava@gmail.com .