Install
Works with Drupal: ^9.5 || ^10 || ^11Using 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