# theme.json encore expérimental fin 2020 : ce qu’il permettait déjà

> Retour sur ce que le fichier theme.json, encore réservé au plugin Gutenberg fin 2020, autorisait déjà avant sa stabilisation dans le cœur de WordPress.

- Auteur : WordPress Développement
- Publié le : 2020-11-02
- Mis à jour le : 2020-11-02
- Catégorie : Éditeur de site (FSE)
- URL : https://www.wpmoderne.fr/fse/theme-json-experimental-fin-2020-ce-qu-il-permettait/

## L’essentiel

- Fichier encore réservé aux thèmes utilisant le plugin
- Palette de couleurs et typographies déjà couvertes
- Aucune garantie de stabilité de la structure

Fin 2020 marque un moment charnière, encore discret, pour qui suit de près l'évolution du plugin Gutenberg : un simple fichier JSON, nommé `theme.json`, commence à circuler dans les discussions de développeurs de thèmes. Il ne fait pas encore partie du cœur de WordPress, mais son ambition affichée est claire — centraliser, dans un seul fichier, ce qui était jusque-là dispersé entre CSS, PHP et réglages de blocs.

Ce billet ne traite pas des gabarits par défaut d'un thème classique, qui restent, à cette date, entièrement indépendants de ce nouveau fichier. Il s'agit ici de faire un point d'étape sur ce que `theme.json` autorise déjà, à ce stade précoce de son existence.

## Une intention plus qu'une structure figée

À ce stade, la structure exacte du fichier n'est pas stabilisée : des clés apparaissent, disparaissent, changent de nom d'une version du plugin à l'autre. Ce qui reste constant, en revanche, c'est l'intention : permettre à un thème de déclarer ses réglages visuels de façon déclarative, plutôt que par du code PHP dispersé dans plusieurs fichiers.

```
{
    "version": 1,
    "settings": {
        "color": {
            "palette": [
                { "name": "Bleu nuit", "slug": "bleu-nuit", "color": "#14213d" },
                { "name": "Ambre",     "slug": "ambre",     "color": "#fca311" }
            ]
        }
    }
}
```

## Ce qui fonctionne déjà

Malgré son caractère expérimental, plusieurs réglages produisent déjà un effet observable dans l'éditeur de blocs. La palette de couleurs déclarée dans `theme.json` remplace celle, plus ancienne, enregistrée via `add_theme_support( 'editor-color-palette' )`. Les tailles de police déclarées de la même façon apparaissent dans le sélecteur de taille des blocs de texte.

> L'essentiel à retenir : Fichier encore réservé aux thèmes utilisant le plugin ; Palette de couleurs et typographies déjà couvertes ; Aucune garantie de stabilité de la structure

Ce recouvrement entre l'ancien mécanisme, basé sur `add_theme_support()`, et le nouveau, basé sur ce fichier, crée d'ailleurs une source de confusion fréquente chez qui découvre `theme.json` à cette période : les deux systèmes coexistent, et le second prend le pas sur le premier sans avertissement explicite dans l'interface.

## Ce qui reste hors de portée

- La mise en page des gabarits eux-mêmes, qui dépend encore entièrement des fichiers PHP classiques du thème.
- Les styles élément par élément — liens, boutons — qui n'existent pas encore dans ce que le fichier permet de déclarer.
- Toute forme de garantie de rétrocompatibilité : une clé qui fonctionne aujourd'hui peut être renommée la semaine suivante.

## Pourquoi s'y intéresser dès maintenant

La question se pose légitimement : pourquoi investir du temps sur un mécanisme aussi instable ? La réponse tient à la direction prise par le projet. Les discussions publiques autour de l'édition complète de site laissent peu de doute sur l'ambition portée par ce fichier : devenir, à terme, le point d'entrée unique pour tout ce qui concerne l'identité visuelle d'un thème.

> Observer une fonctionnalité expérimentale ne signifie pas la déployer en production : cela signifie comprendre suffisamment tôt sa logique pour ne pas être pris de court le jour de sa stabilisation.

## Une prudence de circonstance

Aucun thème destiné à un usage réel ne devrait, à ce stade, reposer entièrement sur `theme.json`. Le fichier reste une curiosité de développeur, à tester sur un environnement local avec le plugin Gutenberg activé, pas une fondation pour un projet client livré cette année.

## En résumé

Fin 2020, `theme.json` n'est encore qu'une promesse partiellement tenue : une palette de couleurs, des tailles de police, rien de plus de solide. Mais la direction qu'il dessine — un thème décrit par la donnée plutôt que par du code dispersé — mérite d'être suivie de près, car elle façonnera très probablement la façon dont les thèmes seront écrits dans les années à venir.
