CSS @property
La direttiva CSS @property per le proprietà personalizzate (CSS Houdini)
La direttiva @property
consente di definire una proprietà personalizzata che può essere utilizzata nelle animazioni e transizioni. Le proprietà dichiarate con @property
sono più potenti perché possono essere animate come proprietà CSS native, migliorando la dinamicità e le possibilità di personalizzazione del design.
Sintassi
@property nome-proprietà {
syntax: tipo;
initial-value: valore iniziale;
inherits: boolean;
}
Descrizione dei parametri principali
-
nome-proprietà: il nome della proprietà CSS personalizzata, in formato
kebab-case
(minuscolo con trattini). Esempio:--main-color
. -
syntax: il tipo di dato accettato dalla proprietà. Può essere, ad esempio:
<color>
,<length>
,<angle>
,<number>
, ecc. -
initial-value: il valore predefinito della proprietà, valido per il tipo specificato. Esempi:
#ff6347
,0px
,1.5
. -
inherits: indica se la proprietà eredita il valore dal suo elemento genitore (
true
ofalse
).
Esempio proprietà: @property
Codice Esempio: @property

@property --my-color {
syntax: '<color>';
initial-value: #50a14f;
inherit: false;
}
.box {
width: 200px;
height: 200px;
background-color: var(--my-color);
transition: background-color 1s;
}
.box:hover {
--my-color: #ff6347;
}
Contenuto Esempio: @property
Esempio di utilizzo di @property
In questo esempio, la direttiva @property
viene utilizzata per dichiarare una proprietà personalizzata che può essere animata:
CSS e HTML per la proprietà personalizzata con transizione:
<style>
@property --my-color {
syntax: '<color>';
initial-value: #50a14f;
inherit: false;
}
.box {
width: 200px;
height: 200px;
background-color: var(--my-color);
transition: background-color 1s;
}
.box:hover {
--my-color: #ff6347;
}
</style>
<div class="box"></div>
⚠️ Note compatibilità:
La proprietà @property in CSS è una funzionalità relativamente nuova che consente di definire proprietà personalizzate direttamente nel foglio di stile, rendendo possibile il loro utilizzo per transizioni o animazioni. È una parte della proposta CSS Houdini, che punta a dare ai CSS più potere e flessibilità, simile a quanto avviene con JavaScript, ma in modo più "nativo" e integrato nei CSS.
Questa proprietà è ancora in fase di implementazione e non è completamente supportata da tutti i browser, quindi è importante fare attenzione quando la si utilizza, verificando la compatibilità.
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.