releases.sh

Floated blocks no longer overlap sticky; Gallery detach clarified

v23.7

3 features10 enhancements14 fixesThis release3 featuresNew capabilities10 enhancementsImprovements to existing features14 fixesBug fixesAI-tallied from the release notes
From the original release noteView original ↗

“What’s new in Gutenberg…” posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Editor.

What’s New In
Gutenberg 23.7?

Gutenberg 23.7 has been released and is available for download!

Version 23.7 includes many improvements over features added with 23.6, with updates to the Block Editor, the new Gallery block’s dynamic mode, user control to enable the Global Styles inheritance UI, and a series of smaller visible editor layout fixes.

Try Gutenberg 23.7

Various editor improvements

Much of the 23.7 cycle has been focused on smaller visual editor improvements. Floated blocks no longer overlap sticky blocks, the empty block appender now sits in the right place inside blocks that capture their own toolbars, and the Pullquote block finally honors a custom line height in the editor so it matches the front end. Fixed device preview heights are also restored for the mobile and tablet views.

Gallery block dynamic mode improvements

The new Gallery block dynamic mode that shipped in Gutenberg 23.6 had an ambiguous “Convert to images” toolbar button that didn’t describe what it actually did. That button has been renamed to “Detach”, and a modal appears to better explain to the user what happens when detaching images

Other Notable Highlights

  • Global Styles inheritance UI. This experimental feature is now opt-in, and is enabled from the Gutenberg Experiments settings page (#80815).
  • Math block: LaTeX errors stop interrupting you. Parse errors no longer fire on every keystroke — LaTeX input now uses ValidatedTextareaControl, so feedback is deferred until the field first loses focus and the per-keystroke screen reader announcement is gone (#80500).
  • Grouped options across the form primitives. Combobox, Select, and SelectControl gain Group and GroupLabel subcomponents, so grouped options compose consistently across the item-popup families (#80574).

Changelog

Enhancements

  • Base styles: Allow overriding focus ring color in outset-ring__focus. (80587)
  • Widget Dashboard: Measure the header fit and document the chrome. (80423)
  • Widget Primitives: Ship as a script module. (80149)
Components
  • Combobox, Select, SelectControl: Add Group and GroupLabel. (80574)
  • DataViews/Font Library: Give search fields a fixed width to stop layout shift. (80315)
  • DataViewsPicker: Add Shift+Click range selection to the picker-table, picker-grid, and picker-activity layouts. (80413)
  • Enhance sandbox component to accept sandbox prop. (69617)
  • Input: Hide native spin controls for type=”number”. (80646)
  • SearchControl: Render the suffix only if there’s one. (80356)
  • UI: Add Autocomplete.Row primitive. (80490)
Block Library
  • Add Table of Contents end-to-end user story coverage. (80199)
  • Math: Use ValidatedTextareaControl for LaTeX input. (80500)
Post Editor
  • Add a responsiveEditingEnabled editor setting to hide the Responsive styles option. (80814)
Font Library
  • Fix navigation page select font size to match DataViews. (80617)
Collaboration
  • RTC: Disable Quick Edit while a post is being edited. (80016)
Global Styles
  • Extract shared preset management from shadows and font sizes. (79810)
Block Editor
  • Reflect inherited Global Styles values in block inspector controls. (77894)

Bug Fixes

  • Block Editor: Fix floated blocks overlapping sticky blocks. (80749)
  • Update view configuration API versioning. (80319)
  • View config: Reject shape-mismatched merges, define empty-array semantics, strip nulls from appended members. (80571)
  • createInterpolateElement: Handle unmatched closing tags gracefully. (80618)
Block Library
  • Account for non-lowercase VIDEO tag in render_block_core_video(). (80537)
  • Cover/Accordion: Exit on Enter. (77301)
  • Dynamic Gallery: Rename toolbar button to Detach and add a modal explaining what will happen. (80727)
  • Fix: Pullquote custom line height in the editor. (80586)
  • Gallery: Make dynamic mode conversion a single undo level. (80665)
  • List Block: Preserve ordered type on indent. (75353)
  • Media Editor: Show a loading state while the cropped file loads. (80460)
  • Media: Remove the redundant __heicUploadSupport flag. (80452)
  • Navigation: Fix missing ‘Add block’ option in Link UI when inside template parts. (78427)
  • Playlist: Shorten track toolbar button label. (80759)
  • Query Loop: Add translation context to the ‘Offset’ setting label. (80582)
  • Social Link: Fix stray closing tag in Tumblr icon markup. (80257)
Block Editor
  • Background image control: Remove duplicated focus ring. (80671)
  • Block Tools: Fix empty block appender position inside blocks that capture toolbars. (80592)
  • Fix cursor position during forward delete of empty blocks. (77525)
  • Fix preset round-trip test imports after preset utils consolidation. (80589)
  • Global Styles panels: Fix wrong preset committed and shown when two color presets share a hex. (80497)
  • Global Styles: Resolve link element styles in block inspector controls for blocks that are links. (80607)
  • RTC: Prevent controlled block synchronization from intercepting undo. (80503)
  • Rich text: Remove tabIndex from editable elements again to fix shift+click selection. (80651)
  • Writing flow: Extend block selections with shift+arrow when there is no native selection. (80687)
  • Writing flow: Mark shift+click as a multi-selection gesture. (80286)
  • Writing flow: Stop the page scrolling on caret moves within blocks taller than the viewport. (80708)
  • RichText: Don’t apply input transform when there’s no onReplace. (80978)
  • RichText: Fix paste handler crash when pasting files. (81010)
Post Editor
  • Editor: Leave undo to the browser in fields that handle their own undo. (80768)
  • Editor: Restore fixed device preview height for mobile and tablet. (80271)
  • Meta boxes: Match heading styles with Gutenberg panels. (80670)
  • Notes: Capture the target block before saving a block-level note. (80690)
  • Notes: Register the inline note format at import time. (80576)
  • Notes: Report save success consistently from note actions. (80748)
  • Notes: Sync the sidebar selection to the inline marker under the caret. (80610)
  • Post Lock: Fix modal flipping to “Someone else has taken over” for a locked-out viewer. (79997)
  • Wrap notices in ThemeProvider with 0 corner radius. (79523)
  • iOS: Remove jumping hack, add typewriter. (74596)
Components
  • DataForm: Stop card and details validation from hijacking focus. (80685)
  • Fix Root .prettierrc.js override issue. (80422)
  • GradientPicker: Select by slug so two presets sharing a gradient keep their identity. (80554)
  • Storybook: Fix Emotion jsxImportSource. (80426)
  • ToolsPanel: Migrate styles to an SCSS Module. (80445)
Client Side Media
  • Fix upload hang when converting long animated GIFs: Decode only the first frame for still outputs. (80260)
  • Media: Stop forcing crossorigin on IMG tags in media templates. (80532)
  • wp-build: Sync the page template preload field list with core-data. (80648)
Collaboration
  • Notes: Detach core’s mention kses filter in the baseline strip test. (80656)
  • RTC: Compact during serialization. (80707)
Media
  • Media REST API: Backport sideload from URL path upload size check. (80659)
Global Styles
  • Theme JSON: Level block-level preset class specificity with :Where(). (80657)
Data Layer
  • RTC: Preserve collaborators’ unsaved edits when another user saves. (79936)

Accessibility

Block Library
  • Improve the various Alignment controls props handling. (63696)
  • Navigation: Fixes aria-expanded not updating on hover submenu inside overlay. (77563)

Performance

Block Editor
  • Rich text: Read the contentEditable attribute in ownsSelection to avoid forced layout. (80549)
  • Try to fix typing performance regression. (80507)
Post Editor
  • Editor: Avoid unnecessary term re-fetches in FlatTermSelector. (80623)
Data Layer
  • Core Data: Move EntitiesSavedState component out of editor (rebase of #71948). (80485)

Experiments

Dashboard
  • Dashboard Widgets: Harden action href sanitization. (80510)
  • Dashboard Widgets: Sanitize help link hrefs. (80409)
Block Editor
  • Global Styles: Put the inheritance UI behind a Gutenberg experiment. (80815)

Documentation

  • Add nvm use instructions to AGENTS.md. (80755)
  • Add progressive-discovery pattern for agent instructions and skills. (80650)
  • Added Missing Global Documentation in table-of-contents/index.php. (80442)
  • Docs: Add missing file-level and class-level docblocks to WP_Icon_Collections_Registry. (80172)
  • Docs: Clarify agent guidance discovery. (80753)
  • Docs: Clarify getBlock behavior with inner block controllers. (80773)
  • Docs: Expand the back-porting to WP Core guide. (80593)
  • Docs: Require view configuration filter callbacks to return the container. (80642)
  • Docs: Update iframe guidance for Gutenberg 23.6. (80629)
  • Theme: Update Storybook admin color scheme examples. (80569)
  • UI: Add dialog vs drawer design guidance. (80783)
  • Update documentation for server-side view configuration filters. (80744)
  • Used link for URL in inline documentation. (80716)

Code Quality

  • ESLint: Add missing not-recommended components to denylist. (80754)
  • Fix: Update webpack-dev-server to ^5.2.1 to help with dep alerts. (80347)
  • GitHub workflows: Fix changelog checks for forked PRs. (80538)
  • Interactivity API: Refactor directives into self-registering modules. (79975)
  • RTC: Use array_any() for newer-compaction check in polling sync server. (80522)
  • RTC: Use str_contains() in WP_Sync_Config. (80476)
  • Storybook: Build the resolve specifier as a URL-style string. (80416)
  • Tools: Resolve dependencies independently of the node_modules layout. (80414)
Components
  • Autocomplete: Reference the suggestions list with aria-controls and aria-haspopup. (80403)
  • ExternalLink: Use shared focus ring mixin. (80573)
  • Make useSelectionProps hook layout agnostic. (80677)
  • Migrate Disabled to SCSS module. (80643)
  • Migrate FormTokenField to SCSS module. (80472)
  • Migrate SearchControl to SCSS module. (80474)
  • Packages: Update date-fns to 4.4.0. (80763)
  • Theme: Update Color.js to 0.7.1. (80762)
  • Theme: Update colorjs.io dependency and drop bug workaround. (80272)
  • UI: Improve component code readability in Storybook by using arrays for children. (80352)
  • theme: Disallow src in published package. (80213)
Block Library
  • Guards against error throwing attribute values. (80558)
  • Make editableRoot a private block setting rather than a public support. (80820)
  • Misc fixes for WordPress-Develop 7.0 merges. (75985)
  • Page List: Use null coalescing operator for parentPageID attribute. (80728)
  • Remove redundant @jest-environment jsdom pragma and lint against it. (80676)
  • Remove unnecessary __next40pxDefaultSize props from form controls. (80540)
  • Table of Contents: Use str_contains() instead of strpos() check. (80418)
  • Tabs : Remove default paragraph from tab-panel template. (80565)
Block Editor
  • Duotone: Dedupe duotone utils into global-styles-engine. (80598)
  • Reduce duplicated preset utility implementations. (80245)
  • Refactor ‘URLInput’ to function component. (80721)
Post Editor
  • Icons: Validate SVG icons include viewBox. (80273)
  • Notes: Cancel in-flight hover highlight when focus leaves a note thread. (80752)
Data Layer
  • Packages: Update memize to 2.1.1. (80764)
Global Styles
  • Rename unit test files and drop .spec.js suffix. (80711)
Site Editor
  • Edit Site: Replace Theme usage in canvas loader with CSS. (80688)
Collaboration
  • Move real-time collaboration code to lib/experimental/collaboration. (80469)

Tools

  • Docs: Update the release form screenshot for GitHub’s new Release label UI. (80567)
  • Release: Require a working GitHub CLI for cherry-picking. (80568)
Build Tooling
  • Build: Add independent react-18 vendor package. (80367)
  • Build: Handle project paths containing spaces in dev script. (80519)
  • Components: Skip polymorphism prop typings on intersection. (80364)
  • DependencyExtractionWebpackPlugin: Include extracted styles in the asset version hash. (80601)
  • React 19: Add end-to-end compat test for boolean inert attribute. (80397)
  • Resolve Prettier explicitly for isolated layout. (80529)
  • Storybook: Remove Emotion as JSX import source. (80647)
  • WP Build: Avoid infinite worker build loop. (80361)
  • Improve pre-flight npm access checks. (80334)
Testing
  • Jest: Fix ignore pattern for TypeScript declaration files. (80737)
  • Jest: Update to v30 (breaking). (80767)
  • Only use Flakiness.io in canonical Gutenberg repo. (80816)
  • Perf Tests: Fix ‘Selecting blocks’ metric reporting 0 ms. (80524)
  • RTC: Fix deleted-user test on multisite. (80463)
  • Site Editor: Add end-to-end coverage for view configuration extensibility. (80577)

Various

Components
  • Base Styles: Remove accent color parameter from input-control. (80595)
  • Remove private Theme component. (80691)

First-time contributors

The following PRs were merged by first-time contributors:

  • @dilipom13: Meta boxes: Match heading styles with Gutenberg panels. (80670)
  • @faisalahammad: Editor: Restore fixed device preview height for mobile and tablet. (80271)
  • @nickchomey: Interactivity API: Refactor directives into self-registering modules. (79975)

Contributors

The following contributors merged PRs in this release:

@aaronrobertshaw @adamsilverstein @aduth @andrewserong @chriszarate @ciampo @CookieDarb @DarkMatter-999 @desrosj @dhananjaykuber @dilipom13 @dpmehta @ellatrix @enejb @faisalahammad @getdave @himanshupathak95 @i-am-chitti @im3dabasia @Imran92 @jeryj @jorgefilipecosta @jsnajdr @juanfra @Kgupta62 @MaggieCabrera @Mamaduka @manzoorwanijk @maxschmeling @mirka @Mustafabharmal @nickchomey @noruzzamans @ntsekouras @oandregal @obenland @ocean90 @peterwilsoncc @ramonjd @retrofox @scruffian @shail-mehta @shekharnwagh @shimotmk @simison @sirreal @Soean @t-hamano @westonruter @yashjawale

Props to @mamaduka for reviewing.

#block-editor #core-editor #gutenberg #gutenberg-new

Fetched August 6, 2026

Floated blocks no longer overlap sticky; Gallery detach… — releases.sh