Le WordPress d'aujourd'hui, décodé pour les développeurs

Thèmes

Gouverner des tokens de couleur partagés entre trois thèmes de marques sœurs

Trois marques sœurs, un même thème parent, des couleurs qui ne doivent jamais se confondre : voici l'architecture qui évite la duplication de réglages.

Par WordPress Développement • 17 décembre 2024 • 4 min de lecture • Aucun commentaire
Gouverner des tokens de couleur partagés entre trois thèmes de marques sœurs

Douze tokens de couleur, trois marques, un seul thème parent : c’est la configuration qui revient dès qu’une agence gère plusieurs identités visuelles proches, nées de la même maison mère mais tenues à des chartes graphiques distinctes. Dupliquer le thème trois fois semble la solution la plus rapide sur le moment. Elle devient, en pratique, la source la plus fréquente de régressions silencieuses : un correctif appliqué sur une marque, oublié sur les deux autres, découvert des mois plus tard par un client qui compare deux sites côte à côte.

La question n’est pas de savoir si theme.json d’un thème bloc résoudrait le problème autrement : ce chantier concerne des thèmes classiques, où les couleurs de marque vivent dans le Customizer, dans des variables SCSS compilées, ou dans des constantes PHP. L’enjeu est de structurer ces trois sources pour qu’une seule reste responsable de chaque couleur.

Le principe : un thème parent neutre, des enfants qui ne portent que leurs tokens

Le thème parent contient toute la structure : gabarits, requêtes, mise en page, classes CSS génériques. Il ne déclare aucune couleur de marque en dur. Chaque thème enfant se limite à un fichier qui définit ses tokens propres, sous forme de variables CSS personnalisées injectées dans le <head> via wp_head, ou de variables SCSS compilées séparément pour chaque marque.

  • Le thème parent référence toujours des noms de tokens (--marque-primaire, --marque-accent), jamais de valeurs hexadécimales.
  • Chaque enfant fournit sa propre feuille de valeurs, sans toucher au reste du code.
  • Un correctif de structure profite instantanément aux trois marques, sans recopie manuelle.

L’arborescence qui matérialise cette séparation

Concrètement, le dépôt du projet prend la forme suivante, avec un thème parent générique et trois enfants minces :

theme-parent/
├── style.css
├── functions.php
├── inc/
│   └── tokens-defaut.php      (valeurs de secours si un enfant est incomplet)
└── templates/

theme-marque-alpha/
├── style.css                  (Template: theme-parent)
├── functions.php              (déclare les 12 tokens de la marque Alpha)
└── assets/tokens-alpha.css

theme-marque-beta/
├── style.css                  (Template: theme-parent)
├── functions.php              (déclare les 12 tokens de la marque Beta)
└── assets/tokens-beta.css
L'essentiel à retenir : Un thème parent porte la structure, jamais les couleurs ; Chaque thème enfant ne déclare que ses tokens propres ; Un seul point de vérité évite les régressions silencieuses

La déclaration des tokens côté enfant

Chaque thème enfant enregistre sa feuille de tokens via wp_enqueue_style, après la feuille du parent, pour que la cascade CSS s’applique naturellement sans surcharge complexe :

<?php
// theme-marque-alpha/functions.php
add_action( 'wp_enqueue_scripts', function () {
    wp_enqueue_style(
        'marque-alpha-tokens',
        get_stylesheet_directory_uri() . '/assets/tokens-alpha.css',
        array( 'theme-parent-style' ),
        wp_get_theme()->get( 'Version' )
    );
} );

Le fichier tokens-alpha.css ne contient que des déclarations de variables sur :root, jamais de règles de mise en page. Cette contrainte, tenue strictement, est ce qui garantit qu’aucune couleur ne se retrouve codée en dur dans un gabarit du parent.

Le garde-fou : des valeurs par défaut dans le thème parent

Un thème enfant incomplet, livré avant que toutes ses couleurs soient validées par le client, ne doit jamais produire un site sans couleur du tout. Le fichier inc/tokens-defaut.php du parent déclare donc des valeurs de secours neutres, chargées en premier, que chaque enfant vient simplement surcharger.

  • Le parent définit des gris neutres comme filet de sécurité.
  • Chaque enfant surcharge uniquement ce qui le concerne.
  • Un token oublié par un enfant reste visible, sous une forme neutre, plutôt que de casser l’affichage.

Le jour où un enfant déclare une couleur qui n’existe pas dans la liste des douze tokens documentés, c’est le signe qu’une marque a besoin d’un token supplémentaire pour toutes les autres, pas d’une exception locale.

La documentation, seule garantie sur la durée

Sans document de référence listant les douze tokens, leur usage et un aperçu visuel par marque, l’architecture la plus propre finit par se dégrader dès qu’une nouvelle personne reprend le projet. Un tableau simple, tenu à jour dans le dépôt, associant chaque nom de token à sa fonction (fond, texte, accent, état de survol) évite que deux développeurs inventent chacun leur propre variable pour le même usage.

Ce qu’il faut retenir

Séparer structure et marque n’est pas un exercice de style : c’est ce qui permet de corriger un bug d’affichage une seule fois pour trois sites, et d’ajouter une quatrième marque sœur sans dupliquer un thème entier. Le signal qui doit alerter une agence est simple : dès qu’une couleur apparaît en valeur hexadécimale dans un gabarit partagé plutôt que sous forme de token, la séparation a déjà commencé à se fissurer.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Partager :

À propos de l'auteur

WordPress Développement

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi