![]() |
Con l'arrivo delle CSS Typed Custom Properties tramite la regola @property, il CSS diventa ancora più potente. Questa nuova funzionalità permette di registrare custom properties (le variabili CSS) specificando il loro tipo, se ereditano dai genitori e quale valore iniziale hanno.
In questo articolo vedremo:
- Cosa sono le custom properties registrate
- La sintassi di
@property - Differenze con le variabili CSS classiche
- Esempi pratici
- Compatibilità browser
🎯 Cosa sono le custom properties registrate
Le variabili classiche in CSS (es: --main-color: red;) sono dinamiche: il browser non conosce il tipo di valore che contengono. Non è possibile animarle direttamente né validarle.
Con @property, puoi dichiarare una custom property “registrata” con:
- Un tipo (es:
<color>) - Un valore iniziale
- Se eredita da elementi genitori
📌 Esempio Base
@property --logo {
syntax: "<color>";
inherits: true;
initial-value: red;
}
Ora puoi usare --logo come una proprietà CSS vera e propria:
:root {
--logo: red;
}
button {
background-color: var(--logo);
}
⚙️ Sintassi Completa
@property --nome {
syntax: "<tipo>";
inherits: true | false;
initial-value: valore;
}
Parametri:
--nome: il nome della custom propertysyntax: specifica il tipo, ad esempio<color>,<length>,<number>inherits: indica se la proprietà eredita dai genitoriinitial-value: il valore iniziale della proprietà
✨ Esempio con animazione
@property --accent {
syntax: "<color>";
inherits: false;
initial-value: orange;
}
:root {
--accent: orange;
}
.box {
width: 100px;
height: 100px;
background: var(--accent);
transition: --accent 0.5s ease;
}
.box:hover {
--accent: deeppink;
}
👉 In questo esempio, --accent cambia colore con una transizione fluida al passaggio del mouse. Questo è possibile solo grazie a @property.
📌 Differenze con le variabili CSS classiche
| Variabili CSS | Custom Properties Registrate |
|---|---|
| No tipo definito | Tipo definito (<color>, <number>, ecc.) |
| Non animabili | Animabili se registrate |
| Non validate | Controllo sintattico sui valori |
| Compatibili ovunque | Solo su browser moderni |
🧪 Altri Tipi supportati
Puoi registrare proprietà con diversi tipi CSS:
<color><length><number><angle><percentage>
🌐 Compatibilità Browser
La regola @property è una funzionalità relativamente nuova e non è supportata da tutti i browser.
Verifica sempre in quali browser puoi utilizzarla oppure ti conviene usare feature detection o fallback se punti alla massima compatibilità.
✅ Conclusione
Le custom properties registrate con @property portano il CSS a un livello superiore, permettendoti di:
- Animare proprietà personalizzate
- Definire tipi per valori CSS
- Migliorare la robustezza del tuo codice
Usa
@propertyper rendere le tue variabili CSS più intelligenti, animate e controllabili!
Follow me #techelopment
Official site: www.techelopment.it
facebook: Techelopment
instagram: @techelopment
X: techelopment
Bluesky: @techelopment
telegram: @techelopment_channel
whatsapp: Techelopment
youtube: @techelopment
