01. custom properties
Wat zijn custom properties?
Met custom properties, ook wel CSS variabelen genoemd, kan je variabelen definiëren voor hergebruik in je CSS bestanden. Dit is een geweldige functie omdat het betekent dat we ze kunnen definiëren met standaardwaarden en vervolgens indien nodig kunnen overschrijven. Je kan ze vergelijken met het let
keyword van Typescript of Javascript voor het definiëren van een variabele.
Een custom property kan je definiëren door het een naam naar keuze te geven, voorafgegaan door twee streepjes, bijvoorbeeld: --background-color
. Vervolgens kan je de waarde gebruiken door deze aan te roepen binnen de var()
CSS-functie.
In het onderstaande voorbeeld definiëren we een custom property --color
en gebruiken we deze voor de kleurwaarde:
In HTML vertegenwoordigt de :root
pseudo-klasse het <html>
-element en is identiek aan de selector html, behalve dat de specificiteit hoger is.
Wat is het nut van custom properties?
Laten we dat beantwoorden door ons vorige codevoorbeeld voor het wijzigen van de kleur van een button te verbeteren.
Indien we op verschillende plaatsen dezelfde kleur gebruiken kunnen we deze gemakkelijk aanpassen met behulp van custom properties.
In plaats van op elke coderegel apart de kleur aan te passen wordt dit in het voorbeeld hierboven vereenvoudigd. We moeten enkel de waarde van onze custom property in de :root
pseudo-klasse veranderen.
Een andere reden waarvoor je custom properties kan gebruiken is de volgende:
Als we de tekstkleur van de knop en rand bij hover willen wijzigen, hoeven we die properties niet meer te herhalen. In plaats daarvan kunnen we gewoon de waarde --color
wijzigen.
Merk op hoe we de functie var()
kunnen gebruiken als slechts een deel van de waarde, in dit geval om de randkleur te definiëren. Dit opent de deur tot eindeloze mogelijkheden voor custom properties!
Custom properties met default waarden
Een kenmerk van var()
is de mogelijkheid om zowel een custom property aan te roepen en een fallback in te stellen die je ook als default (standaard) kan beschouwen. Met andere woorden, indien de custom property geen waarde bevat, zal de default waarde worden gebruikt.
We kunnen zelfs de default instellen met een andere custom property. Laten we met dat idee een andere versie van onze button maken om het wijzigen van de --border-color
mogelijk te maken en tegelijkertijd de variabele --color
als default in te stellen.
Last updated