What’s new in Gutenberg 24.0? (16 September)

🔗 **Source:** [What’s new in Gutenberg 24.0? (16 September)](https://make.wordpress.org/core/2026/09/16/whats-new-in-gutenberg-24-0-16-september/)
“What’s new in Gutenberg…” posts (labeled with the [#gutenberg-new tag](https://make.wordpress.org/core/tag/gutenberg-new/)) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, [here’s an overview](https://make.wordpress.org/core/2020/05/20/ways-to-keep-up-with-full-site-editing-fse/) of different ways to keep up with Gutenberg and the Editor.

Gutenberg 24.0 has been released and is [available for download](https://wordpress.org/plugins/gutenberg/)!
This version extends visual revisions to include the post title, gives the Gallery block a grid layout with per-breakpoint controls, and lets a site title scale to the width it is given.
#### Visual revisions now cover the post title
Some content could not be imported from the original document. [View content ↗](https://videopress.com/embed/14ZdSIlA?cover=1&autoPlay=0&controls=1&loop=0&muted=0&persistVolume=1&playsinline=0&preloadContent=metadata&useAverageColor=1&hd=0)
Visual revisions have been growing over the last few releases, and until now the post title sat outside them. In 24.0, the title participates like any other piece of content, including displaying change diffs directly in the post title ([#82536](https://github.com/WordPress/gutenberg/pull/82536), [#82586](https://github.com/WordPress/gutenberg/pull/82586)).
Seeing it in the same view as body changes removes the need to guess when a rename happened.
#### A more adaptable Gallery block
Some content could not be imported from the original document. [View content ↗](https://videopress.com/embed/qo6HhoWJ?cover=1&autoPlay=0&controls=1&loop=0&muted=0&persistVolume=1&playsinline=0&preloadContent=metadata&useAverageColor=1&posterUrl=https%3A%2F%2Fmake.wordpress.org%2Fcore%2Ffiles%2F2026%2F09%2Fresponsive-gallery_mp4_avc_240p.original.jpg&hd=0)
The Gallery block gains a Grid variation that can be switched on from the block inspector, replacing the default non-editable flex layout with a fully customizable grid ([#81909](https://github.com/WordPress/gutenberg/pull/81909)).
“Column count” and “Crop images to fit” can now also be set per breakpoint through viewport states. A gallery can show four columns on a wide screen and two on a tablet without any custom CSS ([#82003](https://github.com/WordPress/gutenberg/pull/82003)).
#### Site titles that fill their available space
Some content could not be imported from the original document. [View content ↗](https://videopress.com/embed/uknskXoz?cover=1&autoPlay=0&controls=1&loop=0&muted=0&persistVolume=1&playsinline=0&preloadContent=metadata&useAverageColor=1&posterUrl=https%3A%2F%2Fmake.wordpress.org%2Fcore%2Ffiles%2F2026%2F09%2Ffit-text-site-title_mp4_std.original.jpg&hd=0)
The Site Title block now supports fit-text ([#82074](https://github.com/WordPress/gutenberg/pull/82074)). Toggle it on from the ellipsis menu in the typography panel and the title scales to the full width available to it, rather than being sized in points and left to wrap or fall short.
#### Other notable highlights
* **A redrawn icon set.** Nearly 100 icons have been redrawn from a mix of filled and outlined shapes into a single, consistently stroke-based visual language ([78812](https://github.com/WordPress/gutenberg/pull/78812), [78808](https://github.com/WordPress/gutenberg/pull/78808), [82338](https://github.com/WordPress/gutenberg/pull/82338)).
* **Tab indents lists.** In the List block, Tab and Shift+Tab now indent and outdent a fully selected list item, and work across a multi-item selection instead of only at the caret ([82460](https://github.com/WordPress/gutenberg/pull/82460), [82411](https://github.com/WordPress/gutenberg/pull/82411)).
* **Background images from a URL.** Background image support can now accept an image URL, rather than requiring an entry in the Media Library ([82230](https://github.com/WordPress/gutenberg/pull/82230)).
* **Non-breaking spaces are visible.** The format library now visualizes non-breaking spaces, so a character that silently changes wrapping is no longer invisible while editing ([74040](https://github.com/WordPress/gutenberg/pull/74040)).
#### Changelog
##### Enhancements
* Add `defaultShown`, `onShownChange` to `ToolsPanelItem`. ([78010](https://github.com/WordPress/gutenberg/pull/78010))
* Border Box Control: Try moving the unlink button to the label row, and rename the panel to Borders. ([82163](https://github.com/WordPress/gutenberg/pull/82163))
* DataForm: Add a `showPlaceholderIfEmpty` option to the panel layout. ([82527](https://github.com/WordPress/gutenberg/pull/82527))
* DataForm: Communicate the timezone in the datetime control. ([82291](https://github.com/WordPress/gutenberg/pull/82291))
* Editor: Migrate post-card-panel Badge to UI Badge. ([82500](https://github.com/WordPress/gutenberg/pull/82500))
* Global Styles UI: Migrate revisions Active Badge to UI Badge. ([82560](https://github.com/WordPress/gutenberg/pull/82560))
* Icons: Redraw 35 prominent icons with consistent stroke widths. ([78808](https://github.com/WordPress/gutenberg/pull/78808))
* Icons: Redraw 64 icons to be stroke-based. ([78812](https://github.com/WordPress/gutenberg/pull/78812))
* Menu: Support multiple item descriptions. ([81825](https://github.com/WordPress/gutenberg/pull/81825))
* Menu: Use Text for item labels and descriptions. ([82237](https://github.com/WordPress/gutenberg/pull/82237))
* SearchableSelect: Add form primitive to wordpress/ui. ([80961](https://github.com/WordPress/gutenberg/pull/80961))
* Tab Panel: Show focus with outline instead of legacy box-shadow ring. ([82421](https://github.com/WordPress/gutenberg/pull/82421))
* Text: Use pretty wrapping by default. ([82133](https://github.com/WordPress/gutenberg/pull/82133))
* Theme: Build default ramps before token artifacts. ([82525](https://github.com/WordPress/gutenberg/pull/82525))
* Theme: Reduce repeated color ramp search work. ([82545](https://github.com/WordPress/gutenberg/pull/82545))
* UI: Add CheckboxControl. ([82213](https://github.com/WordPress/gutenberg/pull/82213))
* UI: Add Combobox and Autocomplete Status. ([82195](https://github.com/WordPress/gutenberg/pull/82195))
* UI: Add popupWidth prop to item popup components. ([82087](https://github.com/WordPress/gutenberg/pull/82087))
* UI: Add Radio form primitive. ([82214](https://github.com/WordPress/gutenberg/pull/82214))
* UI: Align overlay Trigger props with Base UI. ([81824](https://github.com/WordPress/gutenberg/pull/81824))
* UI: Put overflow on Select.List instead of a nested wrapper. ([82470](https://github.com/WordPress/gutenberg/pull/82470))
* UI: Rename Popup `popupWidth` prop to `width`. ([82193](https://github.com/WordPress/gutenberg/pull/82193))
* UI: Reset completed calendar ranges by default. ([82612](https://github.com/WordPress/gutenberg/pull/82612))
* UI: Support custom targets on Link and Menu.LinkItem. ([82347](https://github.com/WordPress/gutenberg/pull/82347))
* UI: Use root theme for portaled overlays. ([82038](https://github.com/WordPress/gutenberg/pull/82038))
###### Block Library
* Math: Declare clientNavigation interactivity support. ([82248](https://github.com/WordPress/gutenberg/pull/82248))
* Allow themes to override the padding added via background color. ([82024](https://github.com/WordPress/gutenberg/pull/82024))
* Audio: Update autoplay help text for clarity. ([69978](https://github.com/WordPress/gutenberg/pull/69978))
* Enable Gallery columns and crop controls in viewport states. ([82003](https://github.com/WordPress/gutenberg/pull/82003))
* Icons: Convert Search icon to strokes. ([82338](https://github.com/WordPress/gutenberg/pull/82338))
* List: Indent and outdent a fully selected list item with Tab. ([82460](https://github.com/WordPress/gutenberg/pull/82460))
* List: Indent and outdent multi-selected items with Tab. ([82411](https://github.com/WordPress/gutenberg/pull/82411))
* Query: Replace the “Reload full page enabled” modal with a snackbar notice. ([82246](https://github.com/WordPress/gutenberg/pull/82246))
* Site title: Add fit-text support. ([82074](https://github.com/WordPress/gutenberg/pull/82074))
* Try adding a Grid block variation to Gallery. ([81909](https://github.com/WordPress/gutenberg/pull/81909))
* Update navigation link block name, use a default variation for custom link. ([82375](https://github.com/WordPress/gutenberg/pull/82375))
* Use ‘useEntityProp’ in Site Title and Tagline blocks. ([82518](https://github.com/WordPress/gutenberg/pull/82518))
* Video block: Switch to UI Badge. ([82441](https://github.com/WordPress/gutenberg/pull/82441))
* feat: Introduce ‘Add Media’ in the block controls for media-text block. ([82420](https://github.com/WordPress/gutenberg/pull/82420))
###### Post Editor
* Autocompleters: Consider email address context in user mention. ([47249](https://github.com/WordPress/gutenberg/pull/47249))
* CSS Styling: Represent focus with outline for list view component. ([82129](https://github.com/WordPress/gutenberg/pull/82129))
* DataViews: Append an ellipsis to action labels that open a dialog. ([81994](https://github.com/WordPress/gutenberg/pull/81994))
* Editor: Refactor the Options menu to use the Menu component. ([81564](https://github.com/WordPress/gutenberg/pull/81564))
* Editor: Refactor the View menu to use the Menu component. ([82321](https://github.com/WordPress/gutenberg/pull/82321))
* Editor: Render change diffs in the post title in revisions. ([82586](https://github.com/WordPress/gutenberg/pull/82586))
* Editor: Show revision data in Post Title component. ([82536](https://github.com/WordPress/gutenberg/pull/82536))
* Media: Attach unattached media to the current post on save/publish. ([81977](https://github.com/WordPress/gutenberg/pull/81977))
* Menu: Align selection indicators and prefix icons with item labels. ([82346](https://github.com/WordPress/gutenberg/pull/82346))
* Post slug: Prefer server sanitization in the editor. ([78135](https://github.com/WordPress/gutenberg/pull/78135))
* Try: Add “reading settings” link to Front Page template. ([81987](https://github.com/WordPress/gutenberg/pull/81987))
###### Site Editor
* Add New Template: Show the design system focus ring instead of legacy box-shadow rings. ([82164](https://github.com/WordPress/gutenberg/pull/82164))
* Add a root error boundary to prevent a blank screen. ([82486](https://github.com/WordPress/gutenberg/pull/82486))
* Site editor v2: Identity takes its form from the view configuration endpoint. ([82692](https://github.com/WordPress/gutenberg/pull/82692))
* Site editor v2: Navigation takes view configuration from endpoint. ([82138](https://github.com/WordPress/gutenberg/pull/82138))
* Site editor v2: Pages take view configuration from endpoint. ([82140](https://github.com/WordPress/gutenberg/pull/82140))
* Site editor v2: Patterns take view configuration from endpoint. ([82458](https://github.com/WordPress/gutenberg/pull/82458))
* Site editor v2: Template parts take view configuration from endpoint. ([82457](https://github.com/WordPress/gutenberg/pull/82457))
* Site editor v2: Templates take view configuration from endpoint. ([82456](https://github.com/WordPress/gutenberg/pull/82456))
* Site editor v2: Use the canonical template fields in the templates list. ([82666](https://github.com/WordPress/gutenberg/pull/82666))
* Site editor v2: Use the canonical wp\_block fields in the patterns list. ([82672](https://github.com/WordPress/gutenberg/pull/82672))
###### Block Editor
* Background image: Support setting the image from a URL. ([82230](https://github.com/WordPress/gutenberg/pull/82230))
* BlockPreview: Assert preview contents are inert. ([82682](https://github.com/WordPress/gutenberg/pull/82682))
* Format library: Visualise non-breaking spaces. ([74040](https://github.com/WordPress/gutenberg/pull/74040))
* List View: Disable block icon colors while the block is selected. ([82498](https://github.com/WordPress/gutenberg/pull/82498))
* Show the block outline where the grab cursor shows. ([81798](https://github.com/WordPress/gutenberg/pull/81798))
* Tab trap escape hatch: Leave/enter the canvas with Escape/Enter. ([82314](https://github.com/WordPress/gutenberg/pull/82314))
* Widget Dashboard: Add a Policy provider to govern what users may do. ([81967](https://github.com/WordPress/gutenberg/pull/81967))
* Widget Dashboard: Enforce the policy on the staging layer for every instance operation. ([82256](https://github.com/WordPress/gutenberg/pull/82256))
* Widget Dashboard: Govern Reset to default through the policy. ([82255](https://github.com/WordPress/gutenberg/pull/82255))
* Add unregister to remove a registered middleware. ([82408](https://github.com/WordPress/gutenberg/pull/82408))
* Expose defaultFetchHandler so overrides can restore it. ([82553](https://github.com/WordPress/gutenberg/pull/82553))
* api-fetch: Resolve to null for a 200 response with an empty body. ([79325](https://github.com/WordPress/gutenberg/pull/79325))
* Media Editor: Refactor the panel layout. ([81840](https://github.com/WordPress/gutenberg/pull/81840))
* Media Fields: Pass the field’s disabled state to the textarea controls. ([82516](https://github.com/WordPress/gutenberg/pull/82516))
* Media editor: Lock the editing tools while a save is running. ([82417](https://github.com/WordPress/gutenberg/pull/82417))
###### Widgets Editor
* Widgets: Surface debugging details in the ErrorBoundary. ([82099](https://github.com/WordPress/gutenberg/pull/82099))
* Widgets: Use the layout icon for widget areas. ([82025](https://github.com/WordPress/gutenberg/pull/82025))
###### Data Layer
* Privacy policy page badge: Make it visible in Site Editor > Pages and Editor Inspector. ([82422](https://github.com/WordPress/gutenberg/pull/82422))
###### Widget Dashboard
##### Bug Fixes
* CI: Do not immediately fail the type label check on a newly opened pull request. ([82322](https://github.com/WordPress/gutenberg/pull/82322))
* Fix LocationPicker popover alignment. ([82090](https://github.com/WordPress/gutenberg/pull/82090))
* BorderBoxControl: Make sure the group of controls is associated with the label. ([82279](https://github.com/WordPress/gutenberg/pull/82279))
* DataForm: Render untyped fields without an edit control that are read-only. ([82514](https://github.com/WordPress/gutenberg/pull/82514))
* DataForm: Treat combined form fields purely as layout containers. ([82175](https://github.com/WordPress/gutenberg/pull/82175))
* DataViews: Fix Field.sort TypeScript type definition. ([82162](https://github.com/WordPress/gutenberg/pull/82162))
* DataViews: Restrict the isAll filter operator to array fields. ([82463](https://github.com/WordPress/gutenberg/pull/82463))
* DataViews: Scope the search field’s fixed width to the default UI search row. ([82128](https://github.com/WordPress/gutenberg/pull/82128))
* DataViews: Skip table columns for field ids without a field definition. ([82601](https://github.com/WordPress/gutenberg/pull/82601))
* Disabled: Keep the consumer className when isDisabled is false. ([82648](https://github.com/WordPress/gutenberg/pull/82648))
* Fieldset: Fix gap token to match spec. ([75479](https://github.com/WordPress/gutenberg/pull/75479))
* Fix: Alert dialog box cancel button color. ([82261](https://github.com/WordPress/gutenberg/pull/82261))
* FormTokenField: Wrap to the last suggestion when pressing ArrowUp with nothing selected. ([82646](https://github.com/WordPress/gutenberg/pull/82646))
* Inserter: Keep the block preview inside the viewport. ([82060](https://github.com/WordPress/gutenberg/pull/82060))
* Keep foreign items out of a ToolsPanel menu. ([82127](https://github.com/WordPress/gutenberg/pull/82127))
* Searchable selects: Hide creatable footer when it is filtered out. ([82566](https://github.com/WordPress/gutenberg/pull/82566))
* Snackbar: Restart timeout when a notice is recreated. ([81764](https://github.com/WordPress/gutenberg/pull/81764))
* Theme: Enforce active fill contrast. ([82542](https://github.com/WordPress/gutenberg/pull/82542))
* Theme: Make chroma capacity caching deterministic. ([82505](https://github.com/WordPress/gutenberg/pull/82505))
* Theme: Remove chroma capacity cache. ([82591](https://github.com/WordPress/gutenberg/pull/82591))
* ToggleGroupControl: Honor the root disabled prop. ([82259](https://github.com/WordPress/gutenberg/pull/82259))
* UI, DataViews: Give input and selection controls solid backgrounds. ([82391](https://github.com/WordPress/gutenberg/pull/82391))
* UI: Fix Link target detection. ([82447](https://github.com/WordPress/gutenberg/pull/82447))
* UI: Fix Menu.LinkItem target detection. ([82442](https://github.com/WordPress/gutenberg/pull/82442))
* UI: Fix Minimal Select popup width. ([82461](https://github.com/WordPress/gutenberg/pull/82461))
* UI: Fix enabled input placeholder contrast. ([82304](https://github.com/WordPress/gutenberg/pull/82304))
* UI: Hide Input field ring when a slot control is focused. ([82257](https://github.com/WordPress/gutenberg/pull/82257))
* UI: Keep borderless InputLayout chrome when disabled. ([82468](https://github.com/WordPress/gutenberg/pull/82468))
* UI: Keep focus rings visible in overlay content. ([82443](https://github.com/WordPress/gutenberg/pull/82443))
* UI: Name unlabeled form primitive stories. ([82311](https://github.com/WordPress/gutenberg/pull/82311))
* UI: Re-read the native validity on blur in ControlWithError. ([82376](https://github.com/WordPress/gutenberg/pull/82376))
* UI: Remove ValidityIndicator outer margin. ([82267](https://github.com/WordPress/gutenberg/pull/82267))
###### Block Library
* Accordion Panel: Reset padding-block when panel is hidden. ([81782](https://github.com/WordPress/gutenberg/pull/81782))
* Fix: Footnote IDs can start with a digit and break CSS selectors. ([82398](https://github.com/WordPress/gutenberg/pull/82398))
* Fix: Tabs block: Anchor links in tab panels are not functional. ([81744](https://github.com/WordPress/gutenberg/pull/81744))
* Gallery block: Fix ‘Crop images to fit’ broken in editor. ([82318](https://github.com/WordPress/gutenberg/pull/82318))
* Gallery: Shorten “Use images attached to the post” button, add description. ([82617](https://github.com/WordPress/gutenberg/pull/82617))
* Image block cropping: Sync image size and link destination settings. ([82316](https://github.com/WordPress/gutenberg/pull/82316))
* List: Merge into the previous line on Backspace instead of outdenting. ([82145](https://github.com/WordPress/gutenberg/pull/82145))
* List: Outdent an empty middle item without adding an item. ([82011](https://github.com/WordPress/gutenberg/pull/82011))
* Navigation: Restore flex-grow on container when accessible label is present. ([78447](https://github.com/WordPress/gutenberg/pull/78447))
* Query Loop: Fall back to `post` when the query has no `postType`. ([82465](https://github.com/WordPress/gutenberg/pull/82465))
* Query: Don’t write excludeCurrent into blocks that never had it. ([82147](https://github.com/WordPress/gutenberg/pull/82147))
###### Block Editor
* Columns: Fix appender drop zone visibility when dragging into empty column. ([77852](https://github.com/WordPress/gutenberg/pull/77852))
* DOM: Exclude visibility-hidden elements from focusable results. ([82574](https://github.com/WordPress/gutenberg/pull/82574))
* Fix editor link colour cascade order for nested blocks. ([77833](https://github.com/WordPress/gutenberg/pull/77833))
* Fix: Responsive horizontal orientation does not override a vertical layout. ([82364](https://github.com/WordPress/gutenberg/pull/82364))
* Fix: Retain focus and caret position after Backspace undo of a prefix block transform. ([82116](https://github.com/WordPress/gutenberg/pull/82116))
* List View: Don’t focus the last Table cell on keyboard activation. ([81964](https://github.com/WordPress/gutenberg/pull/81964))
* Rich text: Restore contenteditable on pointercancel. ([82598](https://github.com/WordPress/gutenberg/pull/82598))
* Writing Flow: Bail out of Enter handling when no block is selected. ([82424](https://github.com/WordPress/gutenberg/pull/82424))
###### Post Editor
* Editor: Derive post-only block list layout from the assigned template. ([82599](https://github.com/WordPress/gutenberg/pull/82599))
* Editor: Store the finalize response as the attachment record. ([81947](https://github.com/WordPress/gutenberg/pull/81947))
* Fields: Hide the slug field for posts without a permalink. ([82341](https://github.com/WordPress/gutenberg/pull/82341))
* Media: Refuse a multi-file drop on a placeholder that takes one file. ([82046](https://github.com/WordPress/gutenberg/pull/82046))
* Media: Stop claiming “Upload complete” when every upload failed. ([81397](https://github.com/WordPress/gutenberg/pull/81397))
* Post URL: Translate the copy permalink button label. ([82642](https://github.com/WordPress/gutenberg/pull/82642))
* Build: Allow wp-theme 2.x peer deps. ([82139](https://github.com/WordPress/gutenberg/pull/82139))
* Build: Fix regular CSS injection in Vitest Browser Mode. ([82154](https://github.com/WordPress/gutenberg/pull/82154))
###### Data Layer
* Core Data: Return a stable record for equivalent `_fields` queries. ([82552](https://github.com/WordPress/gutenberg/pull/82552))
* Core Data: Scope revisionId to the entity it is provided for. ([82517](https://github.com/WordPress/gutenberg/pull/82517))
* DataViews: Clamp page after delete. ([82244](https://github.com/WordPress/gutenberg/pull/82244))
* Media: Keep indexed PNG sub-sizes indexed. ([81884](https://github.com/WordPress/gutenberg/pull/81884))
* Media: Only blame the browser’s codecs when HEIC really cannot be decoded. ([82265](https://github.com/WordPress/gutenberg/pull/82265))
* Media: Report server upload failures in plain language. ([81735](https://github.com/WordPress/gutenberg/pull/81735))
###### Site Editor
* Boot, Site Editor: Seed content surfaces with default background color. ([81646](https://github.com/WordPress/gutenberg/pull/81646))
* Fields: Remove unused custom sort from the author fields. ([82559](https://github.com/WordPress/gutenberg/pull/82559))
###### Global Styles
* Global styles engine: Return a copy from getResolvedValue instead of mutating. ([82278](https://github.com/WordPress/gutenberg/pull/82278))
* Resolve theme-relative background image URLs for display. ([82242](https://github.com/WordPress/gutenberg/pull/82242))
###### Format library
* Widget Dashboard: Keep the plain anchor for an empty-string download. ([82073](https://github.com/WordPress/gutenberg/pull/82073))
###### Font Library
* Fix pattern export filenames by normalizing special characters. ([77033](https://github.com/WordPress/gutenberg/pull/77033))
###### Connectors screen
###### Post Editor
###### Style States
* Block Supports: Bail early in state styles when a block has no style attribute. ([81908](https://github.com/WordPress/gutenberg/pull/81908))
###### Block Editor
###### Post Editor
* Media Modal Experiment: Allow filtering by attached to the post, or unattached. ([81974](https://github.com/WordPress/gutenberg/pull/81974))
###### Block Library
###### Block Editor
###### Site Editor
* Extensible site editor: Fall back to the raw title in edit route document titles. ([82143](https://github.com/WordPress/gutenberg/pull/82143))
###### Navigation Menus
* Extensible Site Editor: Let menu items be added from the navigation screen. ([82125](https://github.com/WordPress/gutenberg/pull/82125))
* API Fetch: Rename defaultFetchHandler parameter to options. ([82588](https://github.com/WordPress/gutenberg/pull/82588))
* Add recommended bulk suppressions configuration for ESLint VSCode. ([82303](https://github.com/WordPress/gutenberg/pull/82303))
* DataViews: Add hierarchical levels story. ([82344](https://github.com/WordPress/gutenberg/pull/82344))
* DataViews: Document that table column styles do not apply to the primary column. ([82238](https://github.com/WordPress/gutenberg/pull/82238))
* DataViews: Remove the rich text options from the control configuration type. ([82330](https://github.com/WordPress/gutenberg/pull/82330))
* Docs: Document isolated worktree setup. ([82524](https://github.com/WordPress/gutenberg/pull/82524))
* Docs: Explain when the Cover block’s overlay controls appear. ([82234](https://github.com/WordPress/gutenberg/pull/82234))
* Docs: Fix grammar in documentation. ([82032](https://github.com/WordPress/gutenberg/pull/82032))
* Docs: Improve `setAttributes` updater function wording. ([82405](https://github.com/WordPress/gutenberg/pull/82405))
* Document every type for DataViews/DataForm/Field API. ([82326](https://github.com/WordPress/gutenberg/pull/82326))
* Fix spelling typos in documentation and inline comments. ([82217](https://github.com/WordPress/gutenberg/pull/82217))
* Menu: Correct alignment documentation and changelog. ([82455](https://github.com/WordPress/gutenberg/pull/82455))
* Packages: Add cross-version compatibility skill. ([81890](https://github.com/WordPress/gutenberg/pull/81890))
* Popover storybook: Add infotip with link example. ([82653](https://github.com/WordPress/gutenberg/pull/82653))
* Remove invalid references to Babel in packages README. ([82176](https://github.com/WordPress/gutenberg/pull/82176))
* Storybook: Demonstrate light, dark, and nested themes. ([82039](https://github.com/WordPress/gutenberg/pull/82039))
* Theme: Clarify color seed and warning guarantees. ([82526](https://github.com/WordPress/gutenberg/pull/82526))
* Theme: Move post-release changelog entry to Unreleased. ([82093](https://github.com/WordPress/gutenberg/pull/82093))
* UI: Add Form best practices Storybook page. ([82197](https://github.com/WordPress/gutenberg/pull/82197))
* Update Style Engine block supports documentation. ([82585](https://github.com/WordPress/gutenberg/pull/82585))
##### Code Quality
* CI: Pin npm version in the private API check job. ([82222](https://github.com/WordPress/gutenberg/pull/82222))
* CodeRabbit: Disable the review status comment. ([82534](https://github.com/WordPress/gutenberg/pull/82534))
* CodeRabbit: Only review on request, keep PR descriptions untouched. ([82448](https://github.com/WordPress/gutenberg/pull/82448))
* Docs: Align param tag columns in phpunit/ docblocks. ([81904](https://github.com/WordPress/gutenberg/pull/81904))
* Docs: Remove the blank line between param and return in test docblocks. ([81907](https://github.com/WordPress/gutenberg/pull/81907))
* Packages: Exclude src from block-serialization-default-parser package. ([77307](https://github.com/WordPress/gutenberg/pull/77307))
* Replace npm-run-all with native npm script chaining. ([82166](https://github.com/WordPress/gutenberg/pull/82166))
* list-reusable-blocks: Exclude src from published files. ([77305](https://github.com/WordPress/gutenberg/pull/77305))
###### Block Editor
* CSS Styling: Cleanup focus outline override for grid component. ([82337](https://github.com/WordPress/gutenberg/pull/82337))
* Migrate \_\_experimentalText to wordpress/ui Text in Allowed Blocks Modal. ([78119](https://github.com/WordPress/gutenberg/pull/78119))
* Migrate \_\_experimentalText to wordpress/ui Text in Block switcher bindings hint. ([77366](https://github.com/WordPress/gutenberg/pull/77366))
* Migrate \_\_experimentalText to wordpress/ui Text in Pattern Overrides Dropdown. ([77492](https://github.com/WordPress/gutenberg/pull/77492))
* Span the writing flow focus capture elements over the canvas. ([82354](https://github.com/WordPress/gutenberg/pull/82354))
* TypeScript: Migrate format-library package to TS. ([79486](https://github.com/WordPress/gutenberg/pull/79486))
###### Post Editor
* Block Editor: Remove the dead Write/Design editor tool plumbing. ([82677](https://github.com/WordPress/gutenberg/pull/82677))
* Editor: Apply the showListViewByDefault preference in the shared editor. ([82119](https://github.com/WordPress/gutenberg/pull/82119))
* Editor: Fix disabled and link items of the more menu adapter. ([82428](https://github.com/WordPress/gutenberg/pull/82428))
* Editor: Mark \_\_unstableSaveForPreview options as optional. ([81858](https://github.com/WordPress/gutenberg/pull/81858))
* Editor: Merge duplicate “Enhancements” changelog sections. ([82533](https://github.com/WordPress/gutenberg/pull/82533))
* Make `@wordpress/reusable-blocks` a no-op compatibility package. ([79186](https://github.com/WordPress/gutenberg/pull/79186))
###### Block Library
* Docs: Remove invalid `@return` tag from the `block_core_social_link_get_services` hook docblock. ([82488](https://github.com/WordPress/gutenberg/pull/82488))
* List: Simplify indent code & keep client ID. ([59216](https://github.com/WordPress/gutenberg/pull/59216))
* Navigation: Change WCText to Text. ([82130](https://github.com/WordPress/gutenberg/pull/82130))
* Remove the content-only inspector fields (block fields) experiment. ([82531](https://github.com/WordPress/gutenberg/pull/82531))
###### Data Layer
* Remove the template activation experiment. ([82241](https://github.com/WordPress/gutenberg/pull/82241))
* Validate tsconfig references against declared dependencies. ([82106](https://github.com/WordPress/gutenberg/pull/82106))
* feat: Improve TypeScript definitions in the getEntityRecord function. ([81863](https://github.com/WordPress/gutenberg/pull/81863))
* Remove unused CSS rule from slug field control. ([77961](https://github.com/WordPress/gutenberg/pull/77961))
###### Widgets Editor
* Edit Widgets: Guard canInsertBlockInWidgetArea against an empty block list. ([82107](https://github.com/WordPress/gutenberg/pull/82107))
* Widgets: Replace {TODO} placeholder with PR number in changelog entries. ([82450](https://github.com/WordPress/gutenberg/pull/82450))
* Templates REST API: Prevent fatal error when a null template reaches prepare\_item\_for\_response. ([82374](https://github.com/WordPress/gutenberg/pull/82374))
* View Config: Move the table column style descriptions to the 7.2 compat layer. ([82372](https://github.com/WordPress/gutenberg/pull/82372))
###### Create Block
###### Site Editor
###### Global Styles
* Tests: Fix Vitest setup and stale jest types under non-hoisting installs. ([82290](https://github.com/WordPress/gutenberg/pull/82290))
###### Escape HTML
###### DOM ready
* Point to docmumentation about release assets. ([82250](https://github.com/WordPress/gutenberg/pull/82250))
* Project Management: Remove empty entries from CODEOWNERS. ([82292](https://github.com/WordPress/gutenberg/pull/82292))
* Project Management: Restore CODEOWNERS exclusions for suppression lists. ([82538](https://github.com/WordPress/gutenberg/pull/82538))
* Project Management: Update CODEOWNERS to reflect current participation. ([82262](https://github.com/WordPress/gutenberg/pull/82262))
* Update changelog instructions for agents. ([82097](https://github.com/WordPress/gutenberg/pull/82097))
* Add more end-to-end tests for the editor inspector consolidation experiment. ([82239](https://github.com/WordPress/gutenberg/pull/82239))
* Add more end-to-end tests for the editor inspector consolidation experiment. ([82327](https://github.com/WordPress/gutenberg/pull/82327))
* Add promptfoo for testing agent development setup and skills. ([80812](https://github.com/WordPress/gutenberg/pull/80812))
* Add the template end-to-end tests for the editor inspector consolidation experiment. ([82394](https://github.com/WordPress/gutenberg/pull/82394))
* Automated Testing: Fix failing categories test on trunk. ([82182](https://github.com/WordPress/gutenberg/pull/82182))
* Automated Testing: Fix unit test compatibility with Node.js v26. ([82618](https://github.com/WordPress/gutenberg/pull/82618))
* CI: Add “Required changes from trunk” PR check. ([82272](https://github.com/WordPress/gutenberg/pull/82272))
* CI: Add a per-workflow status check job and filter paths. ([81015](https://github.com/WordPress/gutenberg/pull/81015))
* CI: Unify the automation comments into a single PR comment. ([82249](https://github.com/WordPress/gutenberg/pull/82249))
* DataViews: Remove obsolete Node 20 timezone test gate. ([82644](https://github.com/WordPress/gutenberg/pull/82644))
* DateTime tests: Freeze the clock in the empty-value calendar test. ([82282](https://github.com/WordPress/gutenberg/pull/82282))
* e2e-test-utils-playwright: Update Lighthouse and web-vitals. ([81916](https://github.com/WordPress/gutenberg/pull/81916))
* E2E: Run the site editor suite against the extensible site editor too. ([82117](https://github.com/WordPress/gutenberg/pull/82117))
* Jest: Update to 30.5.0. ([82181](https://github.com/WordPress/gutenberg/pull/82181))
* Media Utils: Preserve arrays in multipart form data. ([82353](https://github.com/WordPress/gutenberg/pull/82353))
* Packages: Replace stale jest types with the Vitest test environment. ([82605](https://github.com/WordPress/gutenberg/pull/82605))
* Performance tests: Build once and shard the suites across parallel CI jobs. ([82160](https://github.com/WordPress/gutenberg/pull/82160))
* Scaffold end-to-end tests for the editor inspector consolidation experiment. ([82178](https://github.com/WordPress/gutenberg/pull/82178))
* Stylelint tools: Resolve test configuration extends from the workspace. ([82336](https://github.com/WordPress/gutenberg/pull/82336))
* Tabs: Remove core’s duplicate render\_block\_context filter. ([82610](https://github.com/WordPress/gutenberg/pull/82610))
* Test: Drop the jest-dom Vitest entry point from test files. ([82606](https://github.com/WordPress/gutenberg/pull/82606))
* Test: Migrate Node unit tests to Vitest. ([82211](https://github.com/WordPress/gutenberg/pull/82211))
* Test: Migrate deterministic JSDOM tests and harden Vitest isolation. ([82212](https://github.com/WordPress/gutenberg/pull/82212))
* Test: Prepare TypeScript test graphs for Vitest. ([82210](https://github.com/WordPress/gutenberg/pull/82210))
* Test: Root the Vitest browser project where its dependencies are declared. ([82699](https://github.com/WordPress/gutenberg/pull/82699))
* Test: Update Vitest to version 5. ([82687](https://github.com/WordPress/gutenberg/pull/82687))
* Update Playwright to 1.63.0. ([82654](https://github.com/WordPress/gutenberg/pull/82654))
###### Build Tooling
* Add browserslist configuration for build targeting. ([82179](https://github.com/WordPress/gutenberg/pull/82179))
* Build Scripts: Suggest –verbose when a type check fails. ([82604](https://github.com/WordPress/gutenberg/pull/82604))
* Build: Enforce NodeNext resolution for ESM packages. ([82088](https://github.com/WordPress/gutenberg/pull/82088))
* Build: Require explicit JSX file extensions. ([82189](https://github.com/WordPress/gutenberg/pull/82189))
* Bump vite from 8.2.1 to 8.2.2. ([82668](https://github.com/WordPress/gutenberg/pull/82668))
* Bundled packages: Add a check for transitive private API usage. ([82027](https://github.com/WordPress/gutenberg/pull/82027))
* CI: Collapse package CHANGELOG check exclusions into a single grep pattern. ([82121](https://github.com/WordPress/gutenberg/pull/82121))
* CI: Read the required npm version from a single source. ([82235](https://github.com/WordPress/gutenberg/pull/82235))
* Change stray `ubuntu-latest` to `ubuntu-24.04`. ([82156](https://github.com/WordPress/gutenberg/pull/82156))
* Framework: Error on npm versions older than the required floor. ([82320](https://github.com/WordPress/gutenberg/pull/82320))
* Framework: Update Node.js to v24 LTS and npm to v11. ([80395](https://github.com/WordPress/gutenberg/pull/80395), [82355](https://github.com/WordPress/gutenberg/pull/82355), [82370](https://github.com/WordPress/gutenberg/pull/82370))
* Package lock: Deduplicate Jest dependencies. ([82187](https://github.com/WordPress/gutenberg/pull/82187))
* Packages: Recover August 26 npm release metadata. ([82085](https://github.com/WordPress/gutenberg/pull/82085))
* Release: Make npm publication verification resumable. ([82089](https://github.com/WordPress/gutenberg/pull/82089))
* Release: Map [Type] Flaky Test to the Tools changelog section. ([82078](https://github.com/WordPress/gutenberg/pull/82078))
* Release: Use the CLI Node.js version for all package publishing. ([82122](https://github.com/WordPress/gutenberg/pull/82122))
* Storybook: Drop unused support for js-as-jsx. ([82192](https://github.com/WordPress/gutenberg/pull/82192))
* Storybook: Include stories in docgen TypeScript project. ([82694](https://github.com/WordPress/gutenberg/pull/82694))
* Test: Classify and enforce unit test environments by filename. ([80991](https://github.com/WordPress/gutenberg/pull/80991))
* Test: Enforce Vitest conventions and CI guardrails. ([81040](https://github.com/WordPress/gutenberg/pull/81040))
* Test: Update SWC dependencies. ([82660](https://github.com/WordPress/gutenberg/pull/82660))
* Theme: Add LightningCSS WPDS token fallback plugin. ([80401](https://github.com/WordPress/gutenberg/pull/80401))
* Theme: Add bin-specific tsconfig with nodenext module resolution. ([82622](https://github.com/WordPress/gutenberg/pull/82622))
* Theme: Use Node.js native type-stripping for scripts. ([82680](https://github.com/WordPress/gutenberg/pull/82680))
* Update Actions and Octokit dependencies. ([82663](https://github.com/WordPress/gutenberg/pull/82663))
* Update Stylelint to v17 and related packages. ([80738](https://github.com/WordPress/gutenberg/pull/80738))
###### ESLint plugin
###### Data Layer
###### Block Library
###### WP Scripts
#### First-time contributors
The following PRs were merged by first-time contributors:
* @0xDI: Navigation: Restore flex-grow on container when accessible label is present. ([78447](https://github.com/WordPress/gutenberg/pull/78447))
* @Jiwoon-Kim: Fix: Restore layout styles for block style variations. ([82335](https://github.com/WordPress/gutenberg/pull/82335))
* @Joseph-Mutua: Docs: Update Playground CLI wording. ([77579](https://github.com/WordPress/gutenberg/pull/77579))
The following contributors merged PRs in this release:
@0xDI [@aaronrobertshaw](https://profiles.wordpress.org/aaronrobertshaw/) [@adamsilverstein](https://profiles.wordpress.org/adamsilverstein/) @adimoldovan [@aduth](https://profiles.wordpress.org/aduth/) [@afercia](https://profiles.wordpress.org/afercia/) @ahirpravin [@andrewserong](https://profiles.wordpress.org/andrewserong/) [@antwonw](https://profiles.wordpress.org/antwonw/) @ciampo @coderGtm [@desrosj](https://profiles.wordpress.org/desrosj/) [@dilipom13](https://profiles.wordpress.org/dilipom13/) [@dinhtungdu](https://profiles.wordpress.org/dinhtungdu/) [@dmallory42](https://profiles.wordpress.org/dmallory42/) [@ellatrix](https://profiles.wordpress.org/ellatrix/) [@hbhalodia](https://profiles.wordpress.org/hbhalodia/) @himanshupathak95 @i-am-chitti [@im3dabasia](https://profiles.wordpress.org/im3dabasia/) @Infinite-Null @jasmussen [@jeryj](https://profiles.wordpress.org/jeryj/) @Jiwoon-Kim [@jorgefilipecosta](https://profiles.wordpress.org/jorgefilipecosta/) @Joseph-Mutua [@jsnajdr](https://profiles.wordpress.org/jsnajdr/) @karthikeya-io @Kgupta62 [@Mamaduka](https://profiles.wordpress.org/mamaduka/) [@manzoorwanijk](https://profiles.wordpress.org/manzoorwanijk/) [@marekdedic](https://profiles.wordpress.org/marekdedic/) [@maxschmeling](https://profiles.wordpress.org/maxschmeling/) [@mcsf](https://profiles.wordpress.org/mcsf/) [@MicahelE](https://profiles.wordpress.org/micahele/) [@mikeybinns](https://profiles.wordpress.org/mikeybinns/) [@mirka](https://profiles.wordpress.org/mirka/) [@mreishus](https://profiles.wordpress.org/mreishus/) @mukeshpanchal27 [@Mustafabharmal](https://profiles.wordpress.org/mustafabharmal/) [@Nikschavan](https://profiles.wordpress.org/nikschavan/) [@ntsekouras](https://profiles.wordpress.org/ntsekouras/) [@oandregal](https://profiles.wordpress.org/oandregal/) @R1shabh-Gupta @ramonjd [@retrofox](https://profiles.wordpress.org/retrofox/) [@SainathPoojary](https://profiles.wordpress.org/sainathpoojary/) @sanketio @saranshsinhaa [@sarthaknagoshe2002](https://profiles.wordpress.org/sarthaknagoshe2002/) [@scruffian](https://profiles.wordpress.org/scruffian/) @shail-mehta [@shameemreza](https://profiles.wordpress.org/shameemreza/) [@simison](https://profiles.wordpress.org/simison/) [@sirreal](https://profiles.wordpress.org/sirreal/) [@swissspidy](https://profiles.wordpress.org/swissspidy/) @t-hamano [@talldan](https://profiles.wordpress.org/talldan/) @tellthemachines [@tyxla](https://profiles.wordpress.org/tyxla/) @widoz [@wprashed](https://profiles.wordpress.org/wprashed/) [@yashjawale](https://profiles.wordpress.org/yashjawale/) [@youknowriad](https://profiles.wordpress.org/youknowriad/)
#### Props
Special thanks to [@im3dabasia](https://profiles.wordpress.org/im3dabasia/) and [@ralucastn](https://profiles.wordpress.org/ralucastn/) for the review., What’s new in Gutenberg 24.0? (16 September), Make WordPress Core, 01m2p4fj76hvzt8g89pckdy6w3.