CSS @starting-style
La direttiva CSS4 @starting-style migliora l'entrata degli elementi animati
@starting-style
permette di definire lo stato iniziale di un elemento prima dell’animazione vera e propria. È utile per creare effetti di entrata più naturali e fluidi, senza dover ricorrere a JavaScript o a classi temporanee.
È supportata in alcuni browser moderni e rappresenta una novità nel panorama CSS4.
Sintassi
Come funziona:
-
@starting-style viene usata per specificare lo stato *iniziale* di un elemento, che non fa parte dell’animazione vera e propria, ma è interpolato fino al primo keyframe.
-
Questo consente di evitare scatti visivi tra il caricamento e l'inizio dell'animazione, soprattutto se il valore iniziale non è quello di default.
Esempio direttiva: @starting-style
Codice Esempio: @starting-style

.animate-in {
animation: fadeSlideIn 1s ease-out forwards;
}
@keyframes fadeSlideIn {
@starting-style {
opacity: 0;
transform: translateY(40px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
Contenuto Esempio: @starting-style
Esempio di utilizzo di @starting-style
In questo esempio, l’elemento parte da uno stato iniziale con opacità zero e una traslazione verso il basso (definiti tramite @starting-style
), e viene poi animato verso il suo stato finale.
CSS e HTML per l'animazione con @starting-style
:
<style>
.animate-in {
animation: fadeSlideIn 1s ease-out forwards;
}
@keyframes fadeSlideIn {
@starting-style {
opacity: 0;
transform: translateY(40px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
</style>
<div class="animate-in">
Questo elemento entra con animazione fluida
</div>
⚠️ Nota compatibilità: È attualmente supportata solo da alcuni browser moderni (come Chrome da v115+ e Firefox da v117+ con flag o specifiche attivate).
Note:
Le indicazioni dei Browser supportati sono superate grazie alla loro costante evoluzione, si consiglia di verificare la compatibilità dei vari browser eseguendo il test cliccando qui sotto.