Install

Works with Drupal: ^9.5 || ^10 || ^11

Using Composer to manage Drupal site dependencies

Alternative installation files

Download tar.gz 6.24 MB
MD5: 5121941a8c09df52063b98e76cc772f3
SHA-1: 0fb43adeba18350061b4e6376375af9dedf36b99
SHA-256: f1e1cc70e2d788a918444923330643986efccfba569aee15b69699042b456362
Download zip 7.5 MB
MD5: 6265fba78f8267196a0061f7ea02eb0e
SHA-1: 78d71f51117b7cf00e41d94f0d5adc9fef47a4ed
SHA-256: 713880714c1116fbc8ec6d743241a40284c74217dbfba7b699ccdc564ef13210

Release notes

New: gutenberg_base theme with globalStyles support

Introduced the gutenberg_base starter theme — a full Drupal theme purpose-built for Gutenberg:

  • globalStyles YAML support: typography, colors, spacing, block-level styles map to generated CSS
  • GlobalStylesGenerator class: converts theme YAML to body, element, and block CSS rulesets
  • Layout gap CSS generation: :where(.is-layout-flex) { gap }, :where(.is-layout-flow) > * + * rules
  • CSS custom properties: --wp--style--block-gap, --wp--style--global--content-size, etc.
  • Full theme scaffold: navigation, breadcrumbs, forms, pager, dark mode, node templates
  • Fix: Editor style injection refactor (Issue #3445654)
  • Removed CSS pre-transform in gutenberg.js; global styles now injected server-side only
  • Gated frontend-only CSS (gutenberg_page_attachments) behind non-admin route check
  • Cleaned up editorSettings.styles handling to avoid double-injection
  • Fix: alignfull editor overflow and gallery layout (Issue #3445654)
  • Added editor-overrides.css to gutenberg_base theme — cancels structural.css viewport-width rules (which overflow the editor canvas) with width: auto; margin: 0 for .alignfull
  • Fixed gallery block styling: structural.css stays in editorSettings.styles because block-library/style.css explicitly excludes modern gallery markup via :not(.has-nested-images)

Fix: Frontend layout CSS cascade

Corrected CSS source-order so global styles override block-library vendor defaults:

  • LayoutProcessor: now runs on all named blocks; gutenberg_render_layout_support_flag() handles its own early-return, so default-layout blocks (columns, group, etc.) now receive is-layout-* classes on the frontend
  • block-supports-shims: gutenberg_get_global_settings() now bridges globalStyles.spacing.blockGap → settings.spacing.blockGap, enabling per-block gap CSS generation for flex/grid layout blocks
  • CSS load order: block-library/style.css and theme.css moved from gutenberg/blocks-view library (css-placeholder, loads after html_head) to explicit
    elements injected in html_head before the inline global-styles tags — mirrors WordPress's global-styles depending on wp-block-library
  • editor-overrides.css: mirrors frontend flow/constrained layout gap rules with class specificity (0,1,0) to override reset.css's p { margin: revert } at (0,0,1), matching editor paragraph spacing to the frontend

Fix: PHP 8.4 deprecation warnings

Addressed implicit nullable parameter deprecations across 7 files: gutenberg.module, OEmbedProcessor, MediaController, MappingFieldsHelper, BlockParser, ReusableBlockDelete, MediaService.
Created by: marcofernandes
Created on: 19 Feb 2026 at 21:31 UTC
Last updated: 19 Feb 2026 at 21:32 UTC
Bug fixes
New features

Other releases