Elige entre 16 presets de animación con nombre que cubren los patrones que los desarrolladores usan con más frecuencia — fade, slide, bounce, rotate, pulse, shake y más. Ajusta la duración, el retraso, la función de temporización y las iteraciones, luego copia el código @keyframes + animation listo para producción.
@keyframes fadeIn {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
.element {
animation: fadeIn 0.5s ease forwards;
/* nombre | duración | temporización | modo-relleno */
}
animation-timing-function: ease; animation-timing-function: ease-in-out; animation-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1); /* rebote */ animation-timing-function: steps(8, end); /* paso a paso */
transition anima entre dos estados en respuesta a un cambio (hover, focus, clase añadida). animation con @keyframes puede tener múltiples etapas, ejecutarse automáticamente, repetirse e ir hacia atrás.
Usa animation-play-state: paused para pausar y animation-play-state: running para reanudar. Se puede alternar con JavaScript o con :hover.
transform y opacity son las más seguras — se ejecutan en el hilo compositor sin causar layout o repintado. Evita animar width, height, top, left o margin en animaciones de alto rendimiento.
Envuelve tus animaciones en una media query: @media (prefers-reduced-motion: no-preference) { /* animaciones aquí */ }. Los usuarios con vértigo o epilepsia fotosensible agradecerán que respetes esta preferencia.