Module CSS.4 – Couleurs & typographie
Objectif
Maîtriser les couleurs CSS (hex, rgb, hsl), la typographie (fonts, line-height), et créer une hiérarchie visuelle professionnelle.
Théorie
Couleurs CSS
Formats de couleurs
1. Noms de couleurs :
color: red;
color: blue;
color: green;
2. Hexadécimal (#RRGGBB) :
color: #ff0000; /* Rouge */
color: #00ff00; /* Vert */
color: #0000ff; /* Bleu */
color: #ffffff; /* Blanc */
color: #000000; /* Noir */
color: #333; /* #333333 (raccourci) */
3. RGB (Red, Green, Blue) :
color: rgb(255, 0, 0); /* Rouge */
color: rgb(0, 255, 0); /* Vert */
color: rgba(255, 0, 0, 0.5); /* Rouge avec transparence (alpha) */
4. HSL (Hue, Saturation, Lightness) :
color: hsl(0, 100%, 50%); /* Rouge */
color: hsl(120, 100%, 50%); /* Vert */
color: hsla(0, 100%, 50%, 0.5); /* Rouge avec transparence */
5. Couleurs modernes :
color: rgb(255 0 0 / 0.5); /* Syntaxe moderne (sans virgules) */
color: hsl(0 100% 50% / 0.5);
Transparence
RGBA :
background-color: rgba(255, 0, 0, 0.5); /* 50% opaque */
HSLA :
background-color: hsla(0, 100%, 50%, 0.5);
Opacity (propriété) :
.element {
opacity: 0.5; /* 50% opaque (affecte tout l'élément) */
}
Différence :
rgba/hsla: Transparence de la couleur uniquementopacity: Transparence de tout l'élément (contenu inclus)
Typographie
Font-family
Polices système :
font-family: Arial, sans-serif;
font-family: "Times New Roman", serif;
font-family: "Courier New", monospace;
Polices web (Google Fonts) :
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap" rel="stylesheet">
font-family: 'Roboto', sans-serif;
Stack de polices (fallback) :
font-family: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
Types de polices :
serif: Avec empattements (Times, Georgia)sans-serif: Sans empattements (Arial, Helvetica)monospace: Largeur fixe (Courier, Monaco)cursive: Script (Brush Script)fantasy: Décorative
Font-size
Unités :
font-size: 16px; /* Pixels (absolu) */
font-size: 1em; /* Relative au parent */
font-size: 1rem; /* Relative à la racine (recommandé) */
font-size: 100%; /* Pourcentage */
font-size: 1.5vw; /* Viewport width */
Recommandation : Utiliser rem pour la typographie.
Hiérarchie typographique :
html {
font-size: 16px; /* Base */
}
h1 { font-size: 2.5rem; } /* 40px */
h2 { font-size: 2rem; } /* 32px */
h3 { font-size: 1.75rem; } /* 28px */
h4 { font-size: 1.5rem; } /* 24px */
h5 { font-size: 1.25rem; } /* 20px */
h6 { font-size: 1rem; } /* 16px */
p { font-size: 1rem; } /* 16px */
Font-weight
Valeurs :
font-weight: normal; /* 400 */
font-weight: bold; /* 700 */
font-weight: 100; /* Thin */
font-weight: 300; /* Light */
font-weight: 400; /* Normal */
font-weight: 500; /* Medium */
font-weight: 700; /* Bold */
font-weight: 900; /* Black */
Polices variables :
font-weight: 200; /* Si la police supporte */
Font-style
font-style: normal;
font-style: italic;
font-style: oblique;
Line-height
Hauteur de ligne (interlignage) :
line-height: 1.5; /* 1.5 × font-size (recommandé) */
line-height: 24px; /* Valeur fixe */
line-height: 150%; /* Pourcentage */
Recommandation : 1.5 à 1.6 pour le texte de lecture.
Exemple :
p {
font-size: 1rem;
line-height: 1.6; /* Espacement confortable */
}
Text-align
text-align: left; /* Gauche (défaut) */
text-align: center; /* Centre */
text-align: right; /* Droite */
text-align: justify; /* Justifié */
Text-decoration
text-decoration: none; /* Aucune */
text-decoration: underline; /* Souligné */
text-decoration: overline; /* Ligne au-dessus */
text-decoration: line-through; /* Barré */
Couleur et style :
text-decoration: underline;
text-decoration-color: blue;
text-decoration-style: dashed;
text-decoration-thickness: 2px;
Text-transform
text-transform: none; /* Aucune transformation */
text-transform: uppercase; /* MAJUSCULES */
text-transform: lowercase; /* minuscules */
text-transform: capitalize; /* Première Lettre Majuscule */
Hiérarchie visuelle
Créer une hiérarchie avec :
- Taille (
font-size) - Poids (
font-weight) - Couleur (
color) - Espacement (
margin,padding)
Exemple :
h1 {
font-size: 2.5rem;
font-weight: 700;
color: #333;
margin-bottom: 1rem;
}
h2 {
font-size: 2rem;
font-weight: 600;
color: #555;
margin-bottom: 0.75rem;
}
p {
font-size: 1rem;
font-weight: 400;
color: #666;
line-height: 1.6;
margin-bottom: 1rem;
}
Variables CSS (Custom Properties)
Définir des variables :
:root {
--couleur-primaire: #007bff;
--couleur-secondaire: #6c757d;
--font-family: 'Roboto', sans-serif;
--font-size-base: 1rem;
--line-height-base: 1.6;
}
Utiliser les variables :
h1 {
color: var(--couleur-primaire);
font-family: var(--font-family);
font-size: calc(var(--font-size-base) * 2.5);
}
Avantages :
- ✅ Réutilisabilité
- ✅ Maintenance facile
- ✅ Thèmes (dark mode)
Exercices guidés
Exercice 1 : Couleurs
Créez des éléments avec :
- Couleur hex (#ff0000)
- Couleur RGB (rgb(255, 0, 0))
- Couleur HSL (hsl(0, 100%, 50%))
- Transparence (rgba)
Exercice 2 : Typographie de base
Créez une hiérarchie :
- h1 : 2.5rem, bold
- h2 : 2rem, semi-bold
- p : 1rem, normal, line-height 1.6
Exercice 3 : Polices web
Intégrez une police Google Fonts :
- Importez Roboto
- Appliquez-la au body
- Testez différents weights
Exercice 4 : Variables CSS
Créez des variables pour :
- Couleurs principales
- Tailles de police
- Utilisez-les dans vos styles
Exercice 5 : Hiérarchie visuelle
Créez une page avec :
- Hiérarchie claire (h1-h6)
- Espacement cohérent
- Couleurs harmonieuses
- Typographie professionnelle
❌ Erreurs fréquentes
Erreur 1 : Unités incohérentes
❌ Mauvais :
h1 { font-size: 32px; }
h2 { font-size: 2em; }
p { font-size: 1rem; }
✅ Bon :
h1 { font-size: 2.5rem; }
h2 { font-size: 2rem; }
p { font-size: 1rem; }
Pourquoi : Cohérence et maintenabilité.
Erreur 2 : Line-height trop serré
❌ Mauvais :
p {
line-height: 1;
}
✅ Bon :
p {
line-height: 1.6;
}
Pourquoi : Lisibilité.
Erreur 3 : Contraste insuffisant
❌ Mauvais :
p {
color: #ccc; /* Gris clair sur blanc */
}
✅ Bon :
p {
color: #333; /* Gris foncé sur blanc */
}
Pourquoi : Accessibilité (WCAG).
Erreur 4 : Trop de polices
❌ Mauvais :
h1 { font-family: 'Font1', sans-serif; }
h2 { font-family: 'Font2', sans-serif; }
p { font-family: 'Font3', sans-serif; }
✅ Bon :
body {
font-family: 'Roboto', sans-serif;
}
/* Utiliser weights pour varier */
Pourquoi : Cohérence visuelle.
Erreur 5 : Oublier les fallbacks
❌ Mauvais :
font-family: 'Roboto';
✅ Bon :
font-family: 'Roboto', -apple-system, BlinkMacSystemFont, sans-serif;
Pourquoi : Si la police ne charge pas, fallback système.
🚀 Mini-projet
Mission : Créer un système typographique complet
Créez une page avec :
Système de couleurs :
- Variables CSS pour couleurs primaires/secondaires
- Palette cohérente (3-5 couleurs max)
Hiérarchie typographique :
- h1 à h6 avec tailles cohérentes
- Paragraphes avec line-height optimal
- Utilisation de rem pour tout
Polices :
- Police principale (Google Fonts)
- Fallbacks appropriés
- Weights variés (400, 600, 700)
Critères :
- ✅ Variables CSS utilisées
- ✅ Hiérarchie claire
- ✅ Contraste WCAG AA
- ✅ Typographie professionnelle
- ✅ Cohérence visuelle
Objectif : Créer un système de design typographique et colorimétrique professionnel.
Validation : Vous pouvez passer au module suivant quand vous maîtrisez les couleurs, la typographie et avez créé une hiérarchie visuelle professionnelle.