animation-composition
Baseline 2023 (Chrome 112, Safari 16, Firefox 115).
Chrome 112
Edge 112
Safari 16
Firefox 115
Controla cómo se combinan varias animaciones sobre la misma propiedad: `add` o `accumulate` en lugar del `replace` por defecto. Permite que una animación de balanceo se monte sobre una rotación sin que una sobrescriba a la otra.
CSS
.fx-020 {
width: 60px;
height: 60px;
border-radius: 12px;
background: #ec4899;
margin: 30px;
animation: fx-020-spin 3s linear infinite,fx-020-bob 1s ease-in-out infinite alternate;
animation-composition: replace,add
}
@keyframes fx-020-spin {
to {
transform: rotate(360deg)
}
}
@keyframes fx-020-bob {
to {
transform: translateY(-20px)
}
}
@media (prefers-reduced-motion: reduce) {
.fx-020, .fx-020 * { animation: none; transition: none; }
}
HTML
<div class="fx-020"></div>Fallback: Sin ella, la última animación sustituye a la primera (solo se reproduce el balanceo). Degradación aceptable.
Fuente: developer.mozilla.org/en-US/docs/Web/CSS/animation-composition
Prompt
Cuando apiles varias animaciones de keyframes sobre `transform` (u otra propiedad única), define `animation-composition: replace, add` (un valor por animación) para que las animaciones posteriores se sumen a las anteriores en lugar de sobrescribirlas. Como alternativa usa las propiedades individuales `translate`/`rotate`/`scale`, cada una con su propia animación.