Dessin d'un ordinateur avec des icônes affichant HTML, CSS, PHP et JS

Comment bien nommer ses éléments en HTML, CSS et JavaScript

Publié le

Bien nommer ses éléments, c'est la base d'un code propre et maintenable. En HTML, CSS et JavaScript, chaque convention a son utilité : camelCase pour les variables, kebab-case pour les classes CSS, PascalCase pour les composants... Maîtriser ces styles vous fera gagner un temps précieux et évitera bien des confusions. Voici un guide pratique illustré avec un projet autour de recettes de cuisine 🍳.

📐 Pourquoi le nommage est important

Bien nommer ses éléments, ça change tout : votre code devient plus lisible, plus maintenable, et vous évitez les erreurs. Comparez :

const x = get(a);

et :

const recipeTitle = getRecipeTitle(recipeId);

Le second est bien plus clair, même sans documentation.

📄 Les styles de nommage en bref

  • camelCase : première lettre en minuscule, les suivantes en majuscule (ex : ingredientList)
  • PascalCase : chaque mot commence par une majuscule (ex : RecipeCard)
  • kebab-case : tous les mots en minuscules séparés par des tirets (ex : recipe-list)
  • snake_case : mots en minuscules séparés par des underscores (rarement utilisé en JS)
  • UPPER_CASE : pour les constantes globales (ex : MAX_INGREDIENTS)

🔡 Conventions et usages

camelCase

C'est le style le plus répandu en JavaScript pour les variables et les fonctions. La première lettre est en minuscule, et chaque nouveau mot commence par une majuscule.

// Difficile à déchiffrer :
let nbIng = 5;

// Facilite la lecture et la compréhension :
let numberOfIngredients = 5;
let prepareRecipeCard = () => { /* ... */ };

On l'utilise aussi pour les propriétés d'objets ou de données, comme recipe.preparationTime.

PascalCase

Chaque mot commence par une majuscule, y compris le premier. Ce style est généralement réservé aux classes en JavaScript, ou aux composants dans les frameworks comme React ou Vue.js. Ça indique que l'élément est une "construction" ou un "modèle" que vous pouvez réutiliser.

// Peut porter à confusion :
class Rcp { /* ... */ }

// Indique clairement une classe ou un composant :
class RecipeManager { /* ... */ }
class IngredientItem { /* ... */ }

kebab-case

Le format de référence en HTML et CSS. Tout en minuscules, séparé par des tirets. Simple à lire et à écrire, il s'impose naturellement pour les IDs et classes.

<!-- Moins intuitif à première vue : -->
<div class="ingredientItem">Farine</div>

<!-- Immédiatement compréhensible : -->
<div id="recipe-details">
  <span class="ingredient-item">Farine</span>
</div>
/* Moins intuitif : */
.ingredientItem { /* ... */ }

/* Facilite la lecture : */
.ingredient-item { /* ... */ }

Le kebab-case est aussi très souvent utilisé pour nommer les fichiers et dossiers de vos composants ou modules (ex: my-component.css, recipe-card/).

snake_case

Mots en minuscules séparés par des underscores. Très répandu en Python ou PHP, mais rare en JavaScript moderne. On le trouve surtout dans les configurations ou les données d'API.

// Un exemple de snake_case :
const default_recipe_category = "dessert";

UPPER_CASE

Majuscules et underscores. Réservé aux constantes globales qui ne changeront jamais et sont importantes dans toute l'application. Parfait pour les valeurs de configuration ou les limites.

// Peut sembler être une variable classique :
const tempC = 200;

// Indique clairement une constante fondamentale :
const MAX_INGREDIENTS_PER_RECIPE = 20;
const OVEN_TEMPERATURE_CELSIUS = 180;

🧱 HTML : nommer les IDs et classes

En HTML, le kebab-case est devenu la norme pour les classes et les IDs.

<div id="recipe-list">
    <div class="recipe-card">Chocolate Cake</div>
</div>
  • IDrecipe-list
  • Classrecipe-card

🎨 CSS : cohérence avec le HTML

En CSS, on suit logiquement les mêmes conventions que le HTML :

#recipe-list {
    padding: 1rem;
}

.recipe-card {
    border: 1px solid #ccc;
    padding: 0.5rem;
}

📜 JavaScript : variables, fonctions, constantes

  • VariablescamelCase : ingredientList, recipeTitle
  • FonctionscamelCase : getRecipeTitle(), filterIngredients()
  • ConstantesUPPER_CASE : MAX_INGREDIENTS
  • ClassesPascalCase : RecipeCard
const MAX_INGREDIENTS = 20;

function getRecipeTitle(recipeId) {
    return recipes.find(r => r.id === recipeId).title;
}

let ingredientList = ['flour', 'sugar', 'eggs'];

🧪 Bonnes pratiques

  • Soyez explicite : recipeList plutôt que list
  • Restez cohérent dans le projet (évitez de mélanger camelCase et snake_case)
  • Évitez les abréviations : ingredientCount plutôt que ingCnt

📌 Résumé par contexte

  • ID dans le HTMLkebab-case (ex : main-container)
  • Classe CSS / HTMLkebab-case (ex : recipe-card)
  • Sélecteurs CSS → identiques aux noms de classes et d’ID HTML
  • Variable JavaScriptcamelCase (ex : ingredientList)
  • Fonction JavaScriptcamelCase (ex : getRecipeTitle())
  • Constante JavaScriptUPPER_CASE (ex : MAX_INGREDIENTS)
  • Classe JavaScript (objet ou composant)PascalCase (ex : RecipeCard)

Sources

Mots clés

JavaScript HTML CSS

🧮 Débloquez tout le potentiel de JavaScript !

Envie d'aller plus loin avec JavaScript ? Apprenez à manipuler les données comme un pro, à optimiser vos scripts et à développer des applications efficaces et bien structurées. Profitez d’un accompagnement personnalisé pour progresser rapidement.

Discutons ensemble
Un homme derrière son écran d'ordinateur. L'instruction return en JavaScript

Comment utiliser le mot-clé return en JavaScript : comprendre son fonctionnement, voir des exemples concrets et éviter les erreurs courantes.

Femme utilisant un ordinateur portable Ajouter des effets aux images avec la propriété CSS filter

Appliquez des effets visuels aux images en CSS avec la propriété filter. Découvrez comment ajuster la luminosité ou transformer les couleurs d'une image.

Un ordinateur portable posé sur un rebord de fenêtre, avec une vue sur l'extérieur à travers la vitre en arrière-plan. Comprendre la différence entre paramètres et arguments

Découvrez la différence entre les arguments et les paramètres dans les fonctions en JavaScript, et comment les utiliser efficacement.