CSS-variabelen voor themawisseling
Definieer een volledig kleurenpalet met aangepaste CSS-properties en wissel van thema door een data-attribuut om te schakelen
CSS-variabelen voor themawisseling is een gratis React Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject React Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus React Academy bevat in totaal 4 lessen.
Kleurtokens op :root definiëren
CSS-aangepaste eigenschappen (variabelen) die op :root zijn gedefinieerd, zijn overal in het stylesheet beschikbaar. Je definieert één keer een volledig kleurenpalet — achtergronden, tekstkleuren, oppervlakken en randen — en verwijst er overal naar. Deze ene bron van waarheid maakt het wisselen van thema's eenvoudig.
Overschrijvingen voor het donkere thema met data-theme
Wanneer een attribuut data-theme="dark" op document.documentElement is ingesteld, overschrijft een CSS-selector zoals [data-theme='dark'] de hoofdvariabelen met donkere waarden. Componenten verwijzen naar var(--color-bg) en nemen automatisch de nieuwe waarden over zonder codewijzigingen.
Belangrijke variabelen om te definiëren
Definieer minimaal: --color-bg (achtergrond van de pagina), --color-text (primaire tekst), --color-primary (merkkleur), --color-surface (achtergrond van kaarten of panelen) en --color-border (scheidingslijnen). Een consistente set tokens voorkomt dat er losse kleurwaarden in componenten verschijnen.
Variabelen gebruiken in componentstijlen
Verwijs in de CSS van je component naar variabelen zoals background: var(--color-bg) en color: var(--color-text). Je kunt ook een terugvalwaarde opgeven: var(--color-bg, #ffffff). De browser bepaalt de variabele tijdens het tekenen, zodat één klasse voor zowel lichte als donkere thema's werkt.
Vloeiende overgang bij het wisselen
Voeg transition: background-color 200ms, color 200ms toe aan de selector :root. Wanneer het attribuut data-theme verandert, animeren alle elementen die CSS-variabelen gebruiken gelijktijdig naar hun nieuwe waarden. Dit zorgt voor een verzorgde uitstraling zonder JavaScript-animatiecode.
CSS-variabelen versus door JS beheerde inline-stijlen
Themabeheer via CSS-variabelen is beter dan het instellen van inline-stijlen vanuit JavaScript. De browser handelt alle stijlherberekeningen zelf af, er worden geen extra React-renders veroorzaakt voor elk afzonderlijk thematisch kindcomponent en de CSS-cascade regelt overerving automatisch. JS hoeft alleen één attribuut op het hoofdelement te wisselen.
Terugvaloptie op besturingssysteemniveau met prefers-color-scheme
Je kunt CSS-variabelen combineren met de query @media (prefers-color-scheme: dark) als terugvaloptie die alleen CSS gebruikt. Definieer je donkere overschrijvingen naast of in plaats van de selector data-theme in de mediaquery. Zo werkt de donkere modus ook als JavaScript nog niet is uitgevoerd.
data-theme combineren met een terugvaloptie via een mediaquery
De meest robuuste aanpak combineert beide mechanismen: de @media-query levert de standaardwaarde van het besturingssysteem, terwijl een attribuut data-theme via JavaScript een gebruikersoverschrijving mogelijk maakt. Wanneer het attribuut aanwezig is, wint het dankzij de specificiteit; wanneer het ontbreekt, treedt de mediaquery in werking.
Afbeeldingen in de donkere modus
Gebruik voor afbeeldingen die er slecht uitzien tegen donkere achtergronden het HTML-element picture met een onderliggend element source media="(prefers-color-scheme: dark)". De browser selecteert automatisch de donkere variant. Voor SVG-pictogrammen in CSS kun je filter: invert(1) gebruiken als snelle benadering.
Afgebakende themavariabelen
Je kunt CSS-variabelen ook afbakenen tot afzonderlijke componenten door ze op een hoofdelement van de component te definiëren in plaats van op :root. Zo kun je thema's per component instellen, bijvoorbeeld met een zijbalk met een eigen achtergrondtoken die afwijkt van de pagina-achtergrond, terwijl alles nog steeds correct wisselt met de globale themaschakelaar.
CSS-variabelen debuggen in DevTools
Chrome DevTools toont opgeloste waarden van CSS-variabelen in het paneel Stijlen. Klik op de variabelverwijzing om naar de definitie te springen. Zo kun je eenvoudig controleren of voor elk element de juiste donkere of lichte token wordt toegepast. Je kunt de variabelewaarden ook direct in het paneel bewerken.
CSS-aangepaste eigenschappen voor thema's
Welke CSS-selector wordt gebruikt om globale CSS-aangepaste eigenschappen te definiëren die op het hele document van toepassing zijn?
Samenvatting van de les: CSS-variabelen voor het wisselen van thema's
CSS-aangepaste eigenschappen op :root bieden een gecentraliseerd tokensysteem voor thema's. Wissel een attribuut data-theme op het html-element om direct van thema te veranderen. Voeg CSS-overgangen toe voor een vloeiende animatie, gebruik de mediaquery prefers-color-scheme als terugvaloptie die alleen CSS gebruikt en vermijd stijloverschrijvingen per component vanuit JS.
Leer React met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 88
- Lessen
- 324
Veelgestelde vragen
Is de les “CSS-variabelen voor themawisseling” gratis?
Ja — de volledige tekst van “CSS-variabelen voor themawisseling” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus React Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus React Academy bevat in totaal 4 lessen.
Wat leer ik in “CSS-variabelen voor themawisseling”?
Definieer een volledig kleurenpalet met aangepaste CSS-properties en wissel van thema door een data-attribuut om te schakelen Je oefent met React Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met React Academy te beginnen?
Ervaring vooraf is niet nodig. React Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “CSS-variabelen voor themawisseling”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over React Academy?
Ja. Elke les over React Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Het kleurenschema van het systeem detecteren
- CSS-variabelen voor themawisseling
- React Context voor themastate
- Thema bewaren en flitsen voorkomen