BaliseTonSite

Variables & Typage

Crée des ingrédients dynamiques pour tes formules CSS.

Imagine : dans ton atelier d'alchimie, tu as des fioles étiquetées : "Essence de Feu #ff4444", "Poudre Lunaire 2rem", "Élixir d'Ombre rgba(0,0,0,0.8)". Au lieu de chercher à chaque fois tes ingrédients, tu les stockes dans des variables SCSS. Change la recette d'une fiole, et tous tes sorts qui l'utilisent sont automatiquement mis à jour !

2.1Déclarer une variable

En SCSS, une variable commence toujours par $. Tu peux y stocker des couleurs, des tailles, des polices... tous tes ingrédients de base.

// Variables de couleur
$couleur-feu: #ff4444;
$couleur-eau: #4444ff;
$couleur-terre: #8B4513;

// Variables de taille
$taille-titre: 2.5rem;
$marge-standard: 1rem;
$rayon-carte: 8px;

// Variables de police
$police-titre: 'Inter', sans-serif;
$police-code: 'JetBrains Mono', monospace;

2.2Utiliser les variables

Une fois déclarées, tes variables deviennent réutilisables partout dans ton SCSS. Plus besoin de retenir #ff4444, tu écris juste $couleur-feu !

.bouton-attaque {
  background-color: $couleur-feu;
  padding: $marge-standard;
  border-radius: $rayon-carte;
  font-family: $police-titre;
  font-size: $taille-titre;
}

.carte-sort {
  border: 2px solid $couleur-feu;
  margin: $marge-standard;
}

2.3Portée des variables (scope)

Comme dans un jeu, tes variables ont une "zone d'effet". Une variable globale est accessible partout, une variable locale n'existe que dans son bloc.

// Variable globale (définie en dehors de tout bloc)
$couleur-primaire: #3498db;

.carte-mage {
  // Variable locale (seulement dans ce bloc)
  $couleur-mana: #3498db;
  
  background: $couleur-primaire;  // ✅ Fonctionne
  border-color: $couleur-mana;    // ✅ Fonctionne
}

.carte-guerrier {
  background: $couleur-primaire;  // ✅ Fonctionne (variable globale)
  border-color: $couleur-mana;    // ❌ Erreur : $couleur-mana n'existe pas ici
}

2.4Interpolation : intégrer des variables partout

L'interpolation, c'est un mot compliqué pour dire "insérer une variable dans du texte". En gros, tu veux que SCSS remplace #{$ma-variable} par la valeur de ta variable, même quand c'est dans un endroit où normalement on ne peut pas mettre de variables.

Normalement, tu utilises tes variables comme ça : color: $ma-couleur;. Mais parfois, tu veux que ta variable devienne partie du nom d'une classe ou d'un fichier. C'est là qu'intervient l'interpolation avec #{$variable}.

$prefixe: "btn";
$taille: "large";
$theme: "sombre";

// ❌ Ça ne marche PAS (SCSS ne comprend pas)
.prefixe-taille {
  padding: 1rem 2rem;
}

// ✅ Ça marche avec l'interpolation
.#{$prefixe}-#{$taille} {
  padding: 1rem 2rem;
  background: url("themes/#{$theme}/bouton.png");
}

Cas d'usage concrets

L'interpolation est super utile pour créer des systèmes de composants dynamiques (boutons de différentes tailles), gérer plusieurs thèmes, ou générer automatiquement des classes CSS à partir de listes de valeurs.

Autre exemple pratique : tu peux l'utiliser dans les noms de propriétés CSS aussi !

$direction: "top";
$propriete: "margin";

.element {
  #{$propriete}-#{$direction}: 20px;
  // Génère : margin-top: 20px;
}

2.5Variables par défaut

Le flag !default permet de définir une valeur de secours. Si la variable existe déjà, elle garde sa valeur. Sinon, elle prend la valeur par défaut.

// Définition par défaut
$couleur-primaire: #3498db !default;
$taille-base: 1rem !default;

// Si $couleur-primaire était déjà définie ailleurs, 
// elle garde sa valeur. Sinon, elle devient #3498db

2.6Types de données en SCSS

SCSS reconnaît différents types de valeurs, chacun avec ses propres propriétés :

  • Nombres : 12, 3.14, 10px, 2em
  • Chaînes : "Arial", 'Inter', sans-serif
  • Couleurs : #ff0000, red, rgb(255,0,0)
  • Booléens : true, false
  • Null : null (absence de valeur)
  • Listes : 10px 20px 30px, (item1, item2, item3)
  • Maps : (clé1: valeur1, clé2: valeur2)

2.7Bonnes pratiques pour nommer les variables

Nomme tes variables selon leur fonction plutôt que leur apparence :

// ❌ Basé sur l'apparence (que se passe-t-il si tu changes le bleu ?)
$couleur-bleue: #3498db;
$texte-rouge: #e74c3c;

// ✅ Basé sur la fonction (plus flexible et compréhensible)
$couleur-primaire: #3498db;
$couleur-danger: #e74c3c;
$couleur-succes: #27ae60;

// ✅ Pour un thème gaming
$couleur-mana: #3498db;
$couleur-vie: #e74c3c;
$couleur-experience: #f39c12;

Astuce de maître alchimiste

Organise tes variables par catégories dans des fichiers séparés : _colors.scss, _typography.scss, _spacing.scss. Ton atelier sera plus ordonné et tes formules plus faciles à retrouver !

Verifie tes acquis

3 questions pour valider ce chapitre

1. Comment declare-t-on une variable en SCSS ?

Valide et sauvegarde ce chapitre

Ne perds pas le fil de ton apprentissage. Chaque QCM complété s'enregistre comme un checkpoint dans ton tableau de bord personnel. Crée ton profil de développeur gratuitement pour débloquer toutes les évaluations du site et suivre ta progression étape par étape.

Commencer l'aventure
Déjà membre ?Connecte-toi