vendredi 25 septembre 2026

À propos

Contact

Blocs Gutenberg

Les styles de blocs : personnaliser l’apparence sans dupliquer le code

registerBlockStyle permet d'ajouter des présentations alternatives à un bloc en une poignée de lignes. On distingue enfin styles et variations.

Par Clément Hadrot • 12 avril 2022 • 5 min de lecture • Aucun commentaire
Les styles de blocs : personnaliser l'apparence sans dupliquer le code

Dans l’article précédent, nous avons vu comment les variations de blocs permettent de proposer plusieurs préréglages d’un même bloc dans l’inserteur, en jouant sur les attributs par défaut. Il existe un second mécanisme, plus léger, souvent confondu avec le premier : les styles de blocs, activés via registerBlockStyle(). Le résultat visuel se ressemble parfois, mais le fonctionnement interne est très différent, et savoir lequel choisir évite bien des complications.

Un style de bloc n’ajoute ni ne modifie aucun attribut : il se contente d’ajouter une classe CSS au bloc, du type is-style-nom-du-style, que votre feuille de styles peut ensuite cibler. C’est le mécanisme derrière les styles natifs que vous connaissez peut-être déjà, comme les styles « Par défaut » et « Arrondi » du bloc image, ou « Par défaut » et « Contour » du bloc citation.

Enregistrer un style de bloc

La fonction registerBlockStyle() s’utilise très simplement, côté JavaScript, dans un fichier chargé dans l’éditeur :

import { registerBlockStyle } from '@wordpress/blocks';

registerBlockStyle( 'core/quote', {
    name: 'bandeau-accent',
    label: 'Bandeau accent',
} );

Ce seul appel suffit à faire apparaître une nouvelle option dans le panneau « Styles » de la barre latérale, aux côtés des styles natifs du bloc citation. Lorsque l’utilisateur la sélectionne, Gutenberg ajoute simplement la classe is-style-bandeau-accent au bloc. Il ne reste plus qu’à écrire le CSS correspondant, côté éditeur et côté site public :

.is-style-bandeau-accent {
    border-left: 4px solid var(--wp--preset--color--accent);
    background-color: #f6f6f6;
    padding: 1.5rem;
}

Ce CSS peut être enregistré via wp_enqueue_block_style(), une fonction qui permet de ne charger le style que lorsque le bloc concerné est réellement présent sur la page, ou plus simplement via votre feuille de styles de thème habituelle si vous préférez une approche plus globale.

Déclarer un style directement dans block.json

Pour un bloc personnalisé, il est également possible de déclarer ses styles directement dans block.json, via la propriété styles, ce qui évite un appel JavaScript séparé :

{
  "name": "wpmoderne/encadre-conseil",
  "styles": [
    { "name": "defaut", "label": "Par défaut", "isDefault": true },
    { "name": "ombre-portee", "label": "Avec ombre" }
  ]
}
L'essentiel à retenir : Ajoute une simple classe CSS, sans toucher aux attributs du bloc ; S'applique aussi bien aux blocs natifs qu'à vos blocs personnalisés ; Complémentaire des variations, pas concurrent

Styles ou variations : comment choisir

La confusion entre ces deux mécanismes est fréquente, car tous deux ajoutent des « présentations alternatives » à un bloc. Le tableau suivant résume les différences essentielles.

CritèreStyle de blocVariation de bloc
MécanismeAjout d’une classe CSSAttributs par défaut différents
Change le contenu inséréNonPeut pré-remplir des blocs enfants
Peut changer d’icône dans l’inserteurNon, une seule entréeOui, chaque variation a sa propre icône
Modifiable après insertionOui, via le panneau Styles à tout momentNon, la variation ne s’applique qu’à l’insertion
Cas d’usage typiqueChanger une apparence visuelleProposer des usages distincts d’un même bloc

En pratique, retenez ceci : si vous voulez qu’un rédacteur puisse changer d’avis après coup et basculer facilement d’une présentation à une autre sur un bloc déjà inséré, le style de bloc est la bonne solution, puisqu’il reste modifiable à tout moment depuis la barre latérale. Si en revanche le choix se fait au moment de l’insertion et implique une structure ou des valeurs par défaut différentes, la variation est plus adaptée.

Un exemple concret : les styles d’un bloc « bouton »

Prenons un cas très courant sur un site vitrine : un bloc bouton personnalisé qui doit proposer plusieurs traitements visuels : plein, contour, et texte souligné sans fond. Les trois partagent exactement la même structure de données (un lien, un libellé), seul le rendu visuel change. C’est le cas d’école du style de bloc :

import { registerBlockStyle, unregisterBlockStyle } from '@wordpress/blocks';

wp.domReady( () => {
    unregisterBlockStyle( 'core/button', 'outline' );

    registerBlockStyle( 'core/button', {
        name: 'plein',
        label: 'Plein',
        isDefault: true,
    } );

    registerBlockStyle( 'core/button', {
        name: 'souligne',
        label: 'Texte souligné',
    } );
} );

Notez l’usage de unregisterBlockStyle() pour retirer un style natif qui ferait doublon avec votre propre style « contour ». Cette fonction prend le nom du bloc puis le nom du style à retirer, et s’utilise généralement dans un hook wp.domReady() pour s’assurer que le style natif est bien enregistré avant d’être retiré.

Attention à la portée de vos styles CSS

Un piège classique : écrire un style de bloc dont le CSS n’est chargé que côté éditeur, et l’oublier côté site public, ou inversement. Pensez systématiquement à charger votre feuille de styles avec wp_enqueue_block_style(), ou à déclarer le fichier correspondant dans les propriétés style et editorStyle de votre block.json, pour que le rendu reste identique entre l’éditeur et le site public.

Conseil maison : nommez vos styles de façon descriptive du résultat visuel (« contour », « ombre-portee »), jamais du contexte d’usage (« page-accueil »). Un style de bloc est réutilisable par nature ; un nom trop spécifique en limite artificiellement l’usage.

En résumé

Les styles de blocs offrent un moyen simple et léger d’enrichir l’éditeur de présentations visuelles alternatives, sans toucher à la structure de données du bloc. Contrairement aux variations, ils restent modifiables à tout moment après l’insertion, ce qui en fait l’outil de choix pour tout ce qui relève purement de l’apparence. Bien articulés avec les variations vues précédemment, ils permettent de construire une bibliothèque de blocs à la fois riche pour les rédacteurs et légère à maintenir pour les développeurs.

Partager :

À propos de l'auteur

Clément Hadrot

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

Voir tous ses articles

Dans la même veine

À lire aussi