H5 - Kleur gebruiken

00 - Eén kleurenpalet en een achtergrond

Je ontwikkelt het kleurenpalet van dezelfde vier pagina’s en bewaart de kleuren in variabelen. De achtergrondafbeelding uit H2 krijgt cover; de inhoud blijft op leesbare vlakken staan. Geavanceerde kleurnotaties zijn herkenbaar als optionele proeven.

01 - Waar gebruik je kleur voor?

Met CSS kun je tekst, achtergronden, links, randen en accenten een kleur geven. Kleur helpt om een pagina duidelijker te maken, maar kleur is ook snel te veel.

  • color bepaalt de tekstkleur.
  • background-color bepaalt de achtergrondkleur.
  • border-color bepaalt de kleur van een rand.
  • text-decoration-color kan de kleur van een onderstreping bepalen.
body {
    background-color: white;
    color: black;
}

a {
    color: blue;
}

section {
    background-color: lightyellow;
    border: 2px solid gold;
}

Actie — Bouw verder

  1. Werk verder in dezelfde style.css. Kies voor je portfolio een tekstkleur, lichte pagina-achtergrond, witte of lichte inhoudsvlakken en één accentkleur.
  2. Pas de bestaande body-, kop- en linkregels aan; voeg geen concurrerende kleurregels onderaan toe.
  3. Bekijk alle pagina's. Houd de kleuren voorlopig eenvoudig; je gaat ditzelfde palet in de volgende items verfijnen.
02 - Verschillende manieren om kleur te schrijven

CSS kent meerdere manieren om kleuren te noteren. Ze doen uiteindelijk hetzelfde: ze beschrijven welke kleur de browser moet tonen.

  • Kleurnaam: makkelijk leesbaar, maar beperkt.
  • Hex-code: veel gebruikt in ontwerpen en websites.
  • RGB: handig als je denkt in rood, groen en blauw.
  • HSL: handig als je kleur wilt aanpassen met hue, saturation en lightness.
  • OKLCH: moderne methode die beter aansluit op hoe mensen lichtheid en kleurverschil ervaren.
h1 {
    color: red;
}

p {
    color: #ff0000;
}

a {
    color: rgb(255 0 0);
}

em {
    color: hsl(0 100% 50%);
}

strong {
    color: oklch(63% 0.25 29);
}

Voor beginners zijn kleurnamen en hex-codes prima. Als je later kleuren bewuster wilt aanpassen, worden hsl() en oklch() interessanter.

Actie — Alleen oefenen

  1. Noteer je gekozen accentkleur en probeer diezelfde kleur achtereenvolgens als hex en RGB in je bestaande linkregel.
  2. Controleer dat een andere notatie dezelfde kleur kan opleveren; je hoeft niet bij elke notatie een nieuwe kleur te kiezen.
  3. Behoud daarna één notatie, bijvoorbeeld hex. Je bestaande palet blijft het uitgangspunt.
03 - Hex, RGB en transparantie

Hex en RGB zijn allebei gebaseerd op rood, groen en blauw. Bij RGB kun je ook makkelijk een transparantie toevoegen met een slash.

article {
    background-color: #eeeeee;
    color: #222222;
}

mark {
    background-color: rgb(255 230 120);
    color: rgb(40 30 0);
}

body {
    background-color: rgb(0 0 0 / 50%);
}
  • #eeeeee is een lichte grijstint.
  • #222222 is bijna zwart.
  • rgb(0 0 0 / 50%) is zwart met 50 procent transparantie.

Actie — Alleen oefenen

  1. Geef een bestaande section tijdelijk een RGB-achtergrond met transparantie. Vergelijk 50% en 100% dekking boven de body-achtergrond.
  2. Herstel daarna een goed leesbare, dekkende achtergrond voor de inhoud.
  3. Je hoeft transparantie niet te gebruiken in je eindproduct. Behoud de gewone tekstkleur en je gekozen accent.
04 - HSL: kleur, verzadiging en lichtheid

HSL is vaak makkelijker te begrijpen dan RGB. Je kiest eerst de soort kleur en past daarna de verzadiging en lichtheid aan.

  • h staat voor hue: de plek op de kleurencirkel.
  • s staat voor saturation: hoe fel of grijs de kleur is.
  • l staat voor lightness: hoe licht of donker de kleur is.
h1 {
    color: hsl(220 80% 50%);
}

section {
    background-color: hsl(220 80% 80%);
}

footer {
    background-color: hsl(220 80% 25%);
    color: white;
}

HSL is handig als je variaties wilt maken van dezelfde kleur.

Actie — Bouw verder

  1. Gebruik HSL om van je bestaande accent een donkerdere variant te kiezen: houd de kleurhoek gelijk en verlaag de lichtheid.
  2. Geef bestaande links die donkere variant bij a:hover. Hover betekent dat de muis boven de link staat; laat de gewone link ook zonder hover herkenbaar.
  3. Controleer gewone en hover-kleur. Bewaar beide gekozen kleuren voor de variabelen in item 7.
05 - Moderne CSS-kleur: OKLCH

oklch() is een moderne manier om kleur te schrijven. Deze methode werkt met waargenomen lichtheid. Dat betekent dat het vaak voorspelbaarder voelt als je een kleur lichter of donkerder maakt.

  • L is lightness: de waargenomen lichtheid.
  • C is chroma: hoeveel kleur erin zit.
  • H is hue: de kleurhoek.
a {
    color: oklch(60% 0.18 250);
}

a:hover {
    color: oklch(52% 0.18 250);
}

Voor deze cursus hoef je oklch() nog niet uit je hoofd te kunnen gebruiken. Het is vooral goed om te weten dat moderne CSS meer kan dan alleen kleurnamen en hex-codes.

Actie — Alleen oefenen

  1. Optionele verdieping: probeer de normale en donkere accentkleur met oklch op dezelfde link en hover-regel.
  2. Vergelijk het resultaat en leesbaarheid met je eerdere kleuren. Je hoeft deze notatie niet te onthouden.
  3. Herstel daarna je gekozen accent en donkere variant, of behoud bewust je goed werkende OKLCH-kleuren. Voeg geen tweede set botsende regels toe.
06 - Kleuren mengen met color-mix()

Met color-mix() kan CSS een nieuwe kleur maken door twee kleuren te mengen. Dit is handig voor hover-kleuren, lichte achtergronden of subtiele randen.

article {
    background-color: color-mix(in oklch, blue 10%, white);
    border: 2px solid color-mix(in oklch, blue 35%, white);
}
  • in oklch vertelt in welke kleurruimte de browser moet mengen.
  • blue 10% betekent dat er een klein beetje blauw wordt gebruikt.
  • white vult de rest van de mix aan.

Voor eenvoudige websites kun je prima eerst vaste kleuren gebruiken. Later kun je met color-mix() kleuren slimmer afleiden van je hoofdkleur.

Actie — Alleen oefenen

  1. Optionele verdieping: maak tijdelijk met color-mix een lichte achtergrondvariant van je accent op één bestaande section.
  2. Vergelijk die met je eerdere achtergrondkleur. Verwijder de proefregel daarna of bewaar de gekozen kleur voor één variabele bij de volgende stap.
  3. Deze techniek is geen verplicht onderdeel van het eindproduct; de site mag vaste, zorgvuldig gekozen kleuren gebruiken.
07 - Kleuren bovenaan bewaren met variabelen

Als je dezelfde kleuren op meerdere plekken gebruikt, is het handig om ze bovenin je CSS-bestand op te slaan als variabelen. In CSS heten die custom properties.

:root {
    --kleur-tekst: #17233b;
    --kleur-achtergrond: #e7eef6;
    --kleur-vlak: #ffffff;
    --kleur-accent: #2458d3;
    --kleur-accent-donker: #183b91;
    --kleur-rand: #d3ddec;
}

body {
    background-color: var(--kleur-achtergrond);
    color: var(--kleur-tekst);
}

header, nav, main, aside, footer {
    background-color: var(--kleur-vlak);
}

p {
    color: var(--kleur-tekst);
}

a {
    color: var(--kleur-accent);
}

a:hover {
    color: var(--kleur-accent-donker);
}
  • Je hoeft een kleur maar op één plek aan te passen.
  • Je CSS wordt overzichtelijker.
  • Je voorkomt dat er overal net iets andere kleuren ontstaan.

Actie — Bouw verder

  1. Zet je gekozen palet bovenaan dezelfde style.css in :root: --kleur-tekst, --kleur-achtergrond, --kleur-vlak, --kleur-accent, --kleur-accent-donker en --kleur-rand.
  2. Vervang de bestaande vaste kleuren door var-verwijzingen. Gebruik de donkere accentkleur ook voor a:hover. Voor kleur-rand kies je een rustige lichte tint; de randen volgen in H6.
  3. Verander alleen de accentvariabele en controleer dat alle verwijzingen op de vier pagina's mee veranderen. Kies daarna je definitieve accent.
  4. Bewaar deze namen voor de volgende hoofdstukken. Houd bestaande lettertypes en inhoud in stand.
08 - Contrast: tekst moet leesbaar zijn

Mooie kleuren zijn niet genoeg. Tekst moet goed leesbaar blijven. Contrast is het verschil tussen tekstkleur en achtergrondkleur.

  • Zwarte tekst op wit heeft veel contrast.
  • Lichtgrijze tekst op wit heeft weinig contrast.
  • Rode tekst op een blauwe achtergrond is vaak onrustig en moeilijk leesbaar.
  • Gebruik kleur niet als enige manier om informatie over te brengen.
/* Goed leesbaar */
body {
    background-color: white;
    color: black;
}

/* Vaak te weinig contrast */
p {
    background-color: white;
    color: lightgray;
}

Een veelgebruikte richtlijn is: normale tekst heeft minimaal een contrastverhouding van 4.5:1 nodig. Grote tekst heeft minimaal 3:1 nodig.

Kies hier twee kleuren om het contrast te controleren.

Voorbeeldtekst

Contrast: 21:1 Goed voor normale tekst en grote tekst.

Actie — Controleer en rond af

  1. Controleer met het contrastgereedschap hierboven je eigen tekst/vlak-, link/vlak- en hover/vlak-combinaties.
  2. Verbeter bij onvoldoende contrast de bijbehorende variabele in :root. Controleer gewone tekst en grote koppen afzonderlijk.
  3. Laat onderstreping bij gewone tekstlinks staan. Een kleurverschil alleen is niet genoeg om een link duidelijk te maken.
09 - Achtergrond van de body

Je project heeft sinds H2 een achtergrondafbeelding in www/img. Omdat style.css naast de HTML-bestanden staat, is het pad vanuit de stylesheet img/achtergrond.webp. CSS-paden beginnen bij het CSS-bestand.

body {
    background-color: var(--kleur-achtergrond);
    background-image: url("img/achtergrond.webp");
    background-position: center;
    background-size: cover;
}

header, nav, main, aside, footer {
    background-color: var(--kleur-vlak);
}
  • De fallback-kleur blijft zichtbaar als de afbeelding niet kan laden.
  • Cover vult het achtergrondvlak; daarbij kan een deel van de afbeelding buiten beeld vallen.
  • Center houdt het midden van de afbeelding in beeld. Kies een rustig beeld dat ook uitgesneden werkt.
  • Dekkende inhoudsvlakken houden tekst leesbaar boven de afbeelding.
  • Een achtergrond met background-attachment: fixed blijft staan tijdens scrollen. Dat is optioneel; onze eindsite heeft die instelling niet nodig.

Actie — Bouw verder

  1. Gebruik de achtergrondafbeelding die al in www/img staat. Geef body een fallback via background-color: var(--kleur-achtergrond); en een background-image: url("img/achtergrond.webp");.
  2. Voeg background-size: cover; en background-position: center; toe. Het pad begint bij style.css, die naast de HTML-bestanden staat.
  3. Geef header, nav, main, aside en footer een dekkende achtergrond via var(--kleur-vlak), zodat tekst boven de afbeelding leesbaar blijft.
  4. Controleer het uitsnijden bij een breed en smal venster. Test tijdelijk een verkeerde afbeeldingsnaam, controleer de fallback en herstel daarna direct het juiste pad.
  5. De afbeelding en cover blijven in het eindproduct. Je hoeft background-attachment:fixed niet te gebruiken.
10 - Afronding van je bestaande site

Actie — Controleer en rond af

  1. Werk het kleurenpalet van de bestaande vier pagina's af; maak geen nieuw HTML- of CSS-bestand.
  2. Controleer dat blijvende kleuren uit de zes variabelen komen en dat tekst, links en hover leesbaar zijn.
  3. Controleer de achtergrondafbeelding, cover en fallback. Verwijder ongebruikte kleurproeven.
  4. Bewaar de werkende site: H6 bouwt hier ruimte en randen aan toe.
:root {
    --kleur-tekst: #17233b;
    --kleur-achtergrond: #e7eef6;
    --kleur-vlak: #ffffff;
    --kleur-accent: #2458d3;
    --kleur-accent-donker: #183b91;
    --kleur-rand: #d3ddec;
}
Quiz
  1. Vraag 1. Welke CSS-property bepaalt de tekstkleur?



    Goed. color bepaalt de tekstkleur.
    Niet goed. De property heet color.
  2. Vraag 2. Welke notatie is een hex-kleur?



    Goed. Hex-kleuren beginnen met een hekje.
    Niet goed. Een hex-kleur begint met #.
  3. Vraag 3. Waarvoor staat de L in hsl()?



    Goed. De L staat voor lightness.
    Niet goed. De L staat voor lightness.
  4. Vraag 4. Wat is een voordeel van CSS-variabelen?



    Goed. Variabelen maken centrale aanpassingen makkelijker.
    Niet goed. Variabelen helpen vooral om waarden centraal te bewaren.
  5. Vraag 5. Hoe gebruik je een CSS-variabele?



    Goed. CSS gebruikt var().
    Niet goed. Je gebruikt var(--naam).
  6. Vraag 6. Waarom is contrast belangrijk?



    Goed. Contrast gaat vooral over leesbaarheid.
    Niet goed. Contrast is nodig om tekst goed te kunnen lezen.
  7. Vraag 7. Welke moderne CSS-functie kan kleuren mengen?



    Goed. De functie heet color-mix().
    Niet goed. De moderne CSS-functie heet color-mix().
  8. Vraag 8. Welke kleur heeft waarschijnlijk het meeste contrast op een witte achtergrond?



    Goed. Zwart op wit heeft veel contrast.
    Niet goed. Zwart heeft op wit veel meer contrast dan wit of lichtgrijs.
  9. Vraag 9. Waar zet je kleurvariabelen meestal neer?



    Goed. :root is een logische plek voor algemene variabelen.
    Niet goed. Algemene kleurvariabelen zet je vaak in :root.
  10. Vraag 10. Wat is oklch()?



    Goed. oklch() is een moderne CSS-kleurfunctie.
    Niet goed. oklch() is een CSS-manier om kleur te noteren.