
Kleur & typografie
Colors, units, fonts
WEB ESSENTIALS

CSS-eenheden
Units
Je kan elementen vormgeven met properties (eigenschappen) en values (waardes).
- Voorbeelden van properties zijn
color
enfont-size
- Een value bestaat vaak uit een getal + unit
.highlight {
color: blue;
font-size: 18px; /* Het unit hier is 'px' */
}
px
- = pixel
- Dit is een vaste eenheid
De bovenstaande paragraph zal dus een font-grootte hebben van 20 pixels, ongeacht de schermgrootte.
p {
font-size: 20px;
}
Relatieve eenheden
Relatieve eenheden passen zich aan aan de bovenliggende element, het html-element of het browservenster.
Verschillende soorten:
- em
- rem
- %
- (d)vw, (d)vh
rem
- = Root Element font-size
- Dit is een relatieve eenheid
- Past zich aan ten opzichte van de default font-grootte van het html-element.
body {
/* 1rem equals 16px */
font-size: 1rem;
}
p {
/* 2rem equals 32px */
font-size: 2rem;
}
❤️ Voorkeur
Default font-size
De gebruiker kan de default font-size aanpassen:
👉 Gebruik daarom altijd relatieve waardes ipv pixels.
Zo respecteer je de lettergrootte die gebruikers instellen en schaalt alles evenredig mee.

em
- Relatief ten opzichte van de parent
- Wordt minder gebruikt
section {
font-size: 20px;
}
h2 {
font-size: 2em; /* 2em = 40px */
}
<section>
<h2>Lorem ipsum dolor sit</h2>
</section>
⚡️ Excelleren
%
- Relatief ten opzichte van de parent
- Gelijkaardig aan em
section {
font-size: 20px;
}
h2 {
font-size: 110%; /* 2em = 40px */
}
<section>
<h2>Lorem ipsum dolor sit</h2>
</section>
Color
Kleurnotaties
Zoals units, zijn er ook verschillende manieren om kleuren te definiëren in CSS.
- Er zijn 147 kleurnamen: pink, bue, darkmagenta,...
- Handig voor testing, maar brandings hebben meestal meer specifieke kleurwaardes.
body {
background: pink;
}
HSL
Waarde op basis van 3 parameters:
- Hue: kleurtoon in graden van 0 tot 359
- Saturation: verzadiging van 0% (grijs) tot 100% (zuivere kleur)
- Lightness: helderheid van 0% (zwart) tot 100% (wit)
body {
background: hsl(243, 58%, 65%);
}

❤️ Voorkeur
HSL

In Figma kan je dit duidelijk zien, door met de verschillende toggles te spelen.

HSLa
HSL + een extra 4e parameter: Alpha
- De alpha waarde duidt de transparantie (=opacity) aan
- Waarde tussen 0 (doorzichtig) en 1 (ondoorzichtig of opaak)
body {
background: hsla(243, 58%, 65%, 0.5);
}
body {
background: hsl(243, 58%, 65%);
}


RGB en RGBa
- Red (rood): waarde van 0 tot 255
- Green (groen): waarde van 0 tot 255
- Blue (blauw): waarde van 0 tot 255
- Alpha (opaciteit): waarde tussen 1 en 0
body {
background: rgba(118, 113, 217, 0.5);
}
body {
background: rgb(118, 113, 217);
}



HEX
16 miljoen kleuren via hexadecimale kleurcodes
- van #000000 tot #FFFFFF
Als de 3 paar hexadecimale getallen uit 2 dezelfde getallen bestaan, dan kan de verkorte notatie gebruikt worden:
- van #000 tot #FFF
body {
background: #7671D9;
}


🤓 Tip
Auto-complete in VSCode
- Open een CSS-bestand
- Typ een nieuwe CSS-declaratie:
colo
- Selecteer uit de autocomplete
- Start met het typen van een kleur:
ma
- Selecteer een optie



🤓 Tip
Switch tussen kleurnotaties
- Hover over een kleur-preview vierkantje
- Klik op de value in de pop-up tot je de juiste kleurnotatie hebt

Tekst opmaken
Color
Met color pas je de tekstkleur aan. Je kan hier de voorgedefinieerde waarden gebruiken, maar ook de andere kleurnoteringen:
- hsl(a)
- rgb(a)
- ...
p {
color: red;
}
p {
color: hsl(243, 58%, 65%);
}
😍
Opacity
Met opacity pas je de transparantie aan
- Heeft een waarde tussen 0 (doorzichtig) en 1 (volledig opaak)
- Niet enkel de tekst, maar het volledige element zal doorzichtig worden
p {
opacity: 0.5;
}
Font-size
Met font-size pas je de lettergrootte aan
- Je kan verschillende units (px, em...) gebruiken, maar we kiezen voor rem als schaalbare unit
h1 {
font-size: 2rem;
}
🤓 Tip
Er zijn verschillende extensies beschikbaar die helpen bij het omzetten
van px-waardes naar rem-waardes
Line-height
Line-height is de regelafstand, dit bepaalt de ruimte tussen regels tekst.
- Je geeft een getal mee zonder unit
- Dit getal geeft de verhouding t.o.v. de font-size weer
p {
font-size: 1rem; /* 16px */
line-height: 1.5; /* 24px */
}

Font-weight
Met font-weight geef je de letterdikte aan.
Dit stel je in met een benaming of een numerieke waarde
- Benaming: light, normal, medium, semi-bold, bold...
- Numerieke waarde: 100, 200, 300, 400, 500, 600...
p {
font-weight: bold;
}
p {
font-weight: 400;
}
Font-weight
Hoe weet je welke benaming of waarde je nodig hebt?
- Dit vind je terug wanneer je een font download of linkt
- Let op: Niet elk font heeft alle varianten



Font-style
Met font-style pas je de stijl van het font aan
- Normal: normale tekst (standaard)
- Italic: cursieve tekst
- Oblique: lijkt op cursief, maar meer een “scheefgetrokken” versie van de normale tekst

p {
font-style: italic;
}
Text-align
Met text-align bepaal hoe tekst horizontaal wordt uitgelijnd
- left: tekst links uitlijnen (standaard)
- right: tekst rechts uitlijnen
- center: tekst in het midden
- justify: tekst verspreiden zodat de regels even breed zijn (zoals in kranten en boeken)
p {
text-align: center;
}
Text-align
Text-decoration
Met text-decoration voeg je een lijn toe aan tekst
- none: geen lijn (standaard)
- underline: tekst onderstrepen
- overline: lijn boven de tekst
- line-trough: doorstrepen
p {
text-decoration: underline;
}
a {
text-decoration: none;
}
🤓 Tip: haalt de lijn bij een link weg
Text-decoration
Je kan deze lijn nog verder opmaken
Text-indent
Hiermee kan je de eerste regel van een paragraaf laten inspringen
- Je geeft hiervoor een waarde mee (rem, %, px...)
p {
text-indent: 2rem;
}
Text-indent
Letter-spacing
Gebruik je om de ruimte tussen letters aan te passen
- Positieve waarde: Letters staan verder uit elkaar
- Negatieve waarde: Letters staan dichter bij elkaar
p {
letter-spacing: 0.2rem;
}
p {
letter-spacing: -0.2rem;
}
Letter-spacing
Text-transform
Bepaalt hoe de letters in een tekst worden weergegeven qua hoofd- en kleine letters.
- none: geen verandering (standaard)
- uppercase: alle letters worden hoofdletters
- lowercase: alle letters worden kleine letters
- capitalize: de eerste letter van elk woord wordt een hoofdletter
p {
text-transform: uppercase;
}
Text-transform
List-style-type
Kan je gebruiken om lijsten (ol & ul) op te maken
- disc: bolletje (standaard)
- circle: open cirkel
- square: vierkantje
- roman: romeinse nummers (I, II, III, IV...)
- ...
ul {
list-style-type: square;
}
ul {
list-style-type: none;
}
🤓 Tip: haalt de bolletjes weg bij bv. navigatie
List-style-type

List-style-image
Je kan ook een eigen afbeelding meegeven als bullet
ul {
list-style-image: url("../images/leaf.png")
}
🤓 Tip
Met een svg-icoon kan je leuke, custom lijsten opmaken

Fonts gebruiken
Lettertype vs. font
Een lettertype is de stijl of opmaak van letters
- Roboto, Times New Roman, Comic Sans...
- In het Engels: typeface of font family

Google fonts
Figma

Lettertype vs. font
Binnen een lettertype of font-family heb je verschillende fonts
= varianten van het lettertype
- Roboto thin
- Roboto thin italic
- Roboto bold
- Roboto bold italic
- ...

Lettertypes gebruiken
Je laadt een lettertype in via de font-family property
- Je schrijft eerst de naam van het lettertype
- Als deze naam spaties bevat, schrijf je het tussen haakjes "..."
- Daarna voeg je een fallback toe: een gelijkaardig, standaard font dat ingeladen wordt als het lettertype niet gevonden wordt
html {
font-family: Roboto, Arial, Helvetica, sans-serif;
}
h1 {
font-family: "Times New Roman", Times, serif
}
System fonts vs Custom fonts
System fonts zijn lettertypen die vooraf op een computer of toestel zijn geïnstalleerd, dit hangt af van het besturingssysteem
- OSX (Apple): 198 fonts
- Windows (Microsoft): 440 fonts
Bekende system fonts:
Arial, Times New Roman, Verdana, Georgia, Courier New...
System fonts vs Custom fonts
Custom fonts zijn lettertypes die niet standaard op je toestel staan, je moet ze downloaden en zelf installeren
- Je kan online heel wat custom fonts terugvinden, zowel gratis als betalend
- Google fonts, Adobe Fonts, ...
Custom fonts inladen
Bijna elke website maakt gebruik van custom fonts, dus we moeten ervoor zorgen dat deze fonts altijd beschikbaar zijn, ook al staan ze niet op de computer van de bezoeker.
Dat kan op twee manieren:
- De fonts laten inladen via een CDN
- De fonts zelf hosten: de font-bestanden zitten mee in de mappenstructuur van je website
Google Fonts inladen met CDN
Een Content Delivery Network is een snelle manier om bestanden van het internet (zoals lettertypes) binnen te halen, omdat ze overal ter wereld op verschillende servers klaarstaan.
- We voegen een link toe in onze code naar de nodige fonts
- Wanneer iemand onze site bezoekt, worden de fonts via deze link ingeladen
<head>
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap" rel="stylesheet">
</head>
Google Fonts inladen met CDN
<head>
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap" rel="stylesheet">
</head>
- Ga naar Google Fonts en klik op een lettertype
- Klik op "Get font", herhaal dit eventueel voor een tweede font
- Klik op "Get embed code"
- Kies rechts voor de optie "link"
- Kopieer het stukje code en plaats in de
<head>
van je html-file - Voeg dit toe in de head van elke html-pagina van je site
html {
font-family: 'Roboto', sans-serif;
}
Fonts zelf hosten
- Ga naar Google Fonts en klik op een lettertype
- Klik op "Get font", herhaal dit eventueel voor een tweede font
- Klik op "Download all"
- Converteer je fonts naar .woff en .woff2 bestanden
- Plaats je font-bestanden in een "fonts"-mapje binnenin je project
- Je moet de fonts eerst definiëren in je in je css-file voor je ze kan gebruiken (zie volgende slide)
⚡️ Excelleren

Fonts zelf hosten
Als de fonts klaarstaan in een mapje, moet je ze in je CSS bestand eerst definiëren door @font-face regels toe te voegen.
- Let er op dat je pad correct is.
- Per gewicht voorzie je een nieuwe @font-face regel, voor een variabel font is 1 enkele regel voldoende
- Plaats deze in het begin van je css-bestand
⚡️ Excelleren
@font-face {
font-family: "Lato";
src: url('fonts/Lato-Regular.woff2') format('woff2'),
url('fonts/Lato-Regular.woff') format('woff');
font-weight: 400; /* we definiëren ook het gewicht */
font-style: normal;
}
5. CSS: Kleur en typografie
By Lecturer GDM
5. CSS: Kleur en typografie
CSS Kleur, CSS-eenheden, CSS eigenschappen: tekst, fonts.
- 115