Section Styles

In WordPress 6.6, Section Styles simplify the process of styling individual sections of a webpage by offering users a one-click application of curated styles, eliminating the need for repetitive manual configuration.

Table of Contents

  1. What’s Changed?
  2. Usage
    1. Registration of Block Style Variations
    2. Defining Block Style Variations
      1. Theme.json Partial Files
      2. Programmatically
      3. Via Theme Style Variations (Not Recommended)
  3. Backwards Compatibility
  4. Limitations
  5. What’s Next?
  6. Useful Links

What’s Changed?

Section-based styling has been enabled by extending the existing Block Styles feature (aka blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. style variations) to support styling inner elements and blocks. These enhanced block style variations can even be applied in a nested fashion due to uniform CSS specificity (0-1-0) for Global Styles introduced in WP 6.6.

In addition block style variations can now be:

  • registered across multiple block types at the same time
  • defined via multiple methods; primarily through theme.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. partials, or by passing a theme.json shaped object in the style’s data given to existing block style registration functions
  • customized via Global Styles (see also current limitations)

Usage

Registration of Block Style Variations

The block style variations that can be defined and manipulated through Global Styles are limited to those that have been registered with the WP_Block_Styles_Registry or via a block type’s styles property, such as Outline for the Button block. If a block style variation has not been registered, any theme.json or global styles data for it will be stripped out.

Any unregistered block style variation defined within a theme.json partial with be automatically registered.

Outlined below are three approaches to registering extended block style variations. The approaches leveraging theme.json definitions will automatically register the block style variation with the WP_Block_Styles_Registry.

Defining Block Style Variations

Outlined below are recommended approaches to registering extended block style variations.

Theme.json Partial Files

With the extension of block style variations to support inner element and block type styles, they essentially are their own theme.json file much like theme style variations. As such, block style variations also reside under a theme’s /styles directory. They are differentiated from theme style variations however by the introduction of a new top-level property called blockTypes. The blockTypes property is an array of block types the block style variation can be applied to.

A new slug property was also added to provide consistency between the different sources that may define block style variations and to decouple the slug from the translatable title property.

{
	"$schema": "https://schemas.wp.org/trunk/theme.json",
	"version": 3,
	"title": "Variation A",
	"slug": "variation-a",
	"blockTypes": [ "core/group", "core/columns", "core/media-text" ],
	"styles": {
		"color": {
			"background": "#eed8d3",
			"text": "#201819"
		},
		"elements": {
			"heading": {
				"color": {
					"text": "#201819"
				}
			}
		},
		"blocks": {
			"core/group": {
				"color": {
					"background": "#825f58",
					"text": "#eed8d3"
				},
				"elements": {
					"heading": {
						"color": {
							"text": "#eed8d3"
						}
					}
				}
			}
		}
	}
}

Programmatically

Within a theme’s functions.php or a pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party, a call can be made to register_block_style, passing it an array of block types the variation can be used with as well as a theme.json shaped style object defining the variation’s styles. The style object provided here will be absorbed into the theme’s theme.json data.

register_block_style(
	array( 'core/group', 'core/columns' ),
	array(
		'name'       => 'green',
		'label'      => __( 'Green' ),
		'style_data' => array(
			'color'    => array(
				'background' => '#4f6f52',
				'text'       => '#d2e3c8',
			),
			'blocks'   => array(
				'core/group' => array(
					'color' => array(
						'background' => '#739072',
						'text'       => '#e3eedd',
					),
				),
			),
			'elements' => array(
				'link'   => array(
					'color'  => array(
						'text' => '#ead196',
					),
					':hover' => array(
						'color' => array(
							'text' => '#ebd9b4',
						),
					),
				),
			),
		),
	)
)

This approach has been enabled as a temporary means to facilitate ergonomic definitions of shared block style variations through theme style variations. It is being flagged here for transparency however it will likely be deprecated soon as the Global Styles architecture is updated to address growing complexity and simplify its mental model.

More details on what’s ahead for Global Styles can be found in this issue.

Shared block style variations can be defined via styles.variations. Style data defined under styles.variations will be copied to, and merged with, variation data stored at the block type level for all block types that have a matching variation registered for it.

Additionally, a new translatable title property has been added here to mirror the capabilities of the theme.json partial files outlined above.

The key for the variation correlates to the slug property for theme.json partials. In the example below, this would be variation-a.

{
	"$schema": "https://schemas.wp.org/trunk/theme.json",
	"version": 3,
	"title": "Theme Style Variation",
	"styles": {
		"variations": {
			"variation-a": {
				"color": {
					"background": "#eed8d3",
					"text": "#201819"
				},
				"elements": {
					"heading": {
						"color": {
							"text": "#201819"
						}
					},
				},
				"blocks": {
					"core/group": {
						"color": {
							"background": "#825f58",
							"text": "#eed8d3"
						},
						"elements": {
							"heading": {
								"color": {
									"text": "#eed8d3"
								}
							}
						}
					}
				}
			},
		}
	}
}

Backwards Compatibility

As the Section Styles feature was implemented via extensions to block style variations rather than as a replacement, existing block style variations will continue to work as before.

Limitations

The following limitations for block style variations in WordPress 6.6 should be noted:

  1. Only root styles, i.e. those that apply directly to the block type the block style variation belongs to, can be configured via Global Styles.
  2. Block style variations cannot redefine or customize inner block style variations.
  3. Block style variations do not support their own custom settings values (yet).
  4. Custom block style variations cannot be applied and previewed within the Style Book.

What’s Next?

The Global Styles UIUI User interface for block style variations will be updated to facilitate the customization of all available styles for inner elements and block types. This includes potentially enhancing the Style Book to support block style variations.

Another future enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. is the possible support for settings per block style variations.

Props to @bph, @oandregal and @juanmaguitar for review

#6-6, #core-editor, #dev-note, #dev-notes, #dev-notes-6-6, #gutenberg

WordPress 6.6 CSS Specificity

One of the goals of WordPress 6.6 is to simplify the process for theme authors to override coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. styles while also maintaining support for Global Styles.

Historically, high CSSCSS Cascading Style Sheets. specificity in core styles has made customization challenging and unpredictable, often requiring complex CSS rules to achieve desired outcomes. Development of the new section styles feature also highlighted a need for uniform CSS specificity to support nesting such styles, facilitating the creation of sophisticated, layered designs.

Uniform 0-1-0 Specificity

WordPress 6.6 introduces several changes aimed at broadly reducing CSS specificity and making it more uniform. These changes generally fall into two categories:

  1. Core BlockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. Styles
  2. Theme.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. / Global Styles:

Where adjustments to CSS specificity were required, they were achieved by wrapping the existing selector within :root :where(...).

Core Block Styles

The choice of 0-1-0 specificity greatly reduced the changes required to existing core block styles as blocks targeting their default .wp-block- class already have the desired specificity.

Any blocks with Global Styles support using higher specificity selectors had those selectors wrapped in :root :where(...). This also applied to Block Styles (aka block style variations) and their default styles e.g., .wp-block-image.is-style-rounded img was updated to :root :where(.wp-block-image.is-style-rounded img).

Theme.json / Global Styles:

All block styles, including block style variation styles, output by theme.json and Global Styles are now limited to 0-1-0 specificity. Layout styles, e.g., constrained, flex, flow` etc., have also been limited however depending on the specific layout type and definition the final specificity varies slightly from 0-1-0 so they apply correctly.

Usage

The alignment of 0-1-0 specificity for Global Styles to default block selectors, e.g. .wp-block-, greatly reduces the need for updates. It’s recommended for theme and block authors to double-check their designs if they rely on custom CSS using more complex selectors.

Custom blocks

Authors of custom blocks that opt into global styles and apply default styling via a selector with greater than 0-1-0 specificity, should update those selectors wrapping them in :root :where().

An example could be a custom list block that opts into padding block support but defines default padding via:

ul.wp-block-custom-list {
    padding: 0;
}

Without adjusting the specificity of this rule, any customizations of the block type’s padding in Global Styles would be overridden. Wrapping the selector in :root :where() here would allow the style load order to determine which rule takes precedence.

// Block's stylesheet
:root :where(ul.wp-block-custom-list) { // This is a contrived example and could simply be `.wp-block-custom-list`
    padding: 0;
}

// Global Styles - Loaded after the block styles
:root :where(.wp-block-custom-list) {
    padding: 1em;
}

Block Styles (aka Block Style Variations)

Theme authors customizing Block Styles for a core block will need to limit their style’s specificity, so the block style continues to be configurable via Global Styles.

For example, take a theme that tweaks the border radius for the Image block’s rounded block style:

.wp-block-image.is-style-rounded img {
    border-radius: 2em;
}

Without adjustment, this style would override any customizations made to the Rounded block style within Global Styles.

In this case, the theme can tweak its rounded image style to the following:

//. Theme style
:root :where(.wp-block-image.is-style-rounded img) {
    border-radius: 2em;
}

// Global Styles - Loaded after the block styles
:root :where(.wp-block-image.is-style-rounded img) {
    border-radius: 4px;
}

Zero-Specificity, CSS Layers, and the future

Reducing all core styles to zero specificity was explored before settling on 0-1-0 specificity. Zero specificity unfortunately wasn’t robust in the face of common reset stylesheets and required more widespread changes.

CSS Layers were also evaluated but fell short due to not being able to enforce all styles belonged to a layer. This will change in the future at which point a combination of CSS Layers and zero-specificity can be revisited to further the benefits gained in this initial reduction of CSS specificity.

More history and context can be found in this detailed discussion.

Useful Links

Props to @bph and @juanmaguitar for review

#6-6, #core-editor, #dev-note, #dev-notes, #dev-notes-6-6, #gutenberg

Site-wide background images in WordPress 6.6

In WordPress 6.6 you can define site-wide background images in theme.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. and the Site Editor.

A “site-wide” background image is one whose value is set on the body element using the background-image CSSCSS Cascading Style Sheets. property, and, therefore, appears on every page of a site.

An example might be a photo that stretches with the window size, or a repeating pattern background.

To customize how background images appear, WordPress 6.6 supports the following background style properties:

  • background position
  • background size
  • background repeat

Usage

In theme.json

In theme.json, site-wide background images and their properties are defined under "styles.background".

For example, as a single image URI in styles.background.backgroundImage.url:

{
	"styles": {
		"background": {
			"backgroundImage": {
				"url": "<a href="http://path.to/some/image.png">http://path.to/some/image.png</a>"
			},
			"backgroundSize": "cover"
		}
	}
}

For the above, WordPress will automatically wrap the image in the CSS url() function.

styles.background.backgroundImage also accepts string values, which can be any valid CSS value for background-image :

{
	"styles": {
		"background": {
			"backgroundImage": "url(<a href="http://path.to/some/image.png">http://path.to/some/image.png</a>)",
			"backgroundPosition": "center"
		}
	}
}

The above examples use absolute paths to image files. Such files would need to be hosted and maintained.

Most likely, theme developers will want to define background images using paths to a theme’s own assets. This ensures that the theme is self-contained and portable.

Relative paths to theme assets are defined using the file:./ prefix:

{
	"styles": {
		"background": {
			"backgroundImage": {
				"url": "file:./assets/my-theme-background.jpg"
			},
			"backgroundSize": "cover"
		}
	}
}

Paths are resolved on the backend using get_theme_file_uri.

Paths defined this way must be relative to the theme root, regardless of where the theme.json sits in your theme’s directory. This follows an existing pattern for web fonts.

Despite the dot in file:./, the special symbols dot (.) and double dot (..) for directory navigation are not supported in theme.json relative paths. This means, for example, that theme style variation files, which reside under the style/ directory, would use the same path as the theme’s main theme.json.

An issue exists to make the syntax more consistent.

In the Site Editor

Background images can be also be uploaded, and their properties tweaked through the Site Editor’s styles panel.

In WordPress 6.6, background image controls are located under Styles > Layout.

The styles panel navigation is undergoing review however, so in upcoming versions the location may change.

As well as setting new background images, it’s possible to “remove” a theme’s default background image in the Site Editor.

Relative paths to any images in theme.json are resolved on the backend, and are sent in the _links array of Global Styles REST responses. The Editor uses the resolved values to generate theme CSS in the client.

Limitations

In WordPress 6.6, the ability to define background images in theme.json exists only for top-level styles. Top-level styles apply to the body element. An open PR aims to also enable the feature at the blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. level in the next WordPress release.

Work is also underway to:

  • add support for fixed images, using the background-attachment CSS property.
  • avoid conflicts between gradient backgrounds, whose values are currently set to the background property, and background-image. The proposal is that gradient backgrounds will also be set to background-image, and, where both an image and a gradient are defined, their values are merged .

Backwards compatibility

WordPress already has support for custom site-wide background images in the Customizer. The theme.json variant will not affect themes that have enabled this feature.

Background images added in the CustomizerCustomizer Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings. take precedence over those set in theme.json or in the Site Editor.

An ongoing discussion seeks to harmonize the two features.

What’s next

Progress on upcoming work is tracked on Background Image block support follow-up tasks.

Props to @andrewserong and @juanmaguitar for review

#6-6, #core-editor, #dev-note, #dev-notes, #dev-notes-6-6, #gutenberg

What’s new in Gutenberg 18.6

“What’s new in GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/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.


Gutenberg 18.6 has been released and is available for download!

51 contributors have shipped 157 pull requests in this release, and a big welcome to four new contributors. With WordPress 6.6 rapidly approaching, many contributors are focusing on bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes, with this release including a total of 62 fixes. There are still some great features being worked on, and this release introduces the new background image feature to several blocks.

Thanks to everyone involved in this release! 👏

  1. Background image support for Quote, Verse and Post Content blocks
  2. DataViews: Extensibility APIs
  3. Changelog
  4. First-time contributors
  5. Contributors

Background image support for Quote, Verse and Post Content blocks

Screenshot of the quote block with a background image
Screenshot of the verse block with a background image

Freshen up the look of the quote, verse, and post content blocks using the new background image feature.

Previously, options for background images were limited to container blocks like the Cover and Group blocks, but with the feature now supported across several blocks, it’s easier for users to attain the look they want without nesting blocks.

Follow all the work on background images in the GitHub tracking issue.

DataViews: Extensibilty APIs

Very early work on extensibility for DataViews was shipped in this release.

‘DataViews’ is the component that powers the post listing views available in the Site Editor, and in the future will become an important part of the new adminadmin (and super admin) design project.

The APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. being explored will allow the registration of actions for different ‘entities’ (post types and other types of data represented by the listings). Right now, the API is private to the Gutenberg PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party and will undergo further development and testing before being made public for third parties.

Find out more in the GitHub pull request for the feature, and read the recent update on DataViews for more background on the work.

Changelog

Enhancements

Design Tools

  • Post content blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience.: Add background image and padding support. (62499)
  • Quote blocks: Add background image and minimum height support. (62497)
  • Verse block: Add background image and minimum height support. (62498)

Block Library

  • Post Date & Comment Date: Add relative date format. (62298)
  • Replace “Add new post” link text with more meaningful Label (v2). (62277)

Block Editor

  • LinkControl: Refined the display of the link preview title and URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org when both are same. (61819)
  • Update URL to uppercase. (62231)

Block bindings

  • Change bindings panel title, add description. (62489)

Site Editor

  • Unify DataViews HeaderHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. Title & Subtitle. (62429)
  • Template inspector: Small visual adjustments. (62537)

Document Settings

  • FlatTermSelector: Update the term suggestion limit. (62359)

Global Styles

  • Update custom CSSCSS Cascading Style Sheets. handling to be consistent with block global styles. (62357)

Post Editor

  • Try: Re-enable ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. StrictMode. (61943)

New APIs

Extensibility

  • DataViews: Bootstrap Actions Extensibility API. (62052)

Bug Fixes

  • CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Data: Fix errors when the entities list doesn’t contain configuration key. (62346)
  • Data Views: Bulk toolbar covering other clickable elements. (62333)
  • Fix: Omit default parameters from pages, template parts, and patterns. (62372)
  • Fix: Show homepage link on frontpage instead of the slug. (62279)
  • Fix: Unquoted file argument in declaration check script. (62482)
  • List: Fix pasting. (62428)
  • Revert CSS removal for interface footer breadcrumbs. (62309)
  • Revert test data for WithSlug variation. (62579)
  • Scripts: Pin the wordpress/scripts version to a version supported by 6.5. (62234)
  • Site Editor Hub: Simplify. (61579)
  • Style Book: Allow activation when the canvas mode is “view”. (62212)
  • Top toolbar: Fix half a pixel artifacting of the bottom border. (62225)
  • Try: Contextual frame bg color to avoid artifacting. (62223)
  • Try: Fix mover positioning. (62226)
  • Update instances of text-wrap: Pretty to fall back to balance. (62233)
  • MediaUpload: Remove dialog markup on close. (62168)

Global Styles

  • Add default-spacing-sizes and default-font-sizes options for classic themes. (62252)
  • Add custom CSS for block style variations. (62526)
  • Color Variations: Use Grid rather than VStack. (62445)
  • Don’t apply the background and text colors to typography previews. (62578)
  • Fix UIUI User interface appearing on blocks that don’t support text alignment. (62376)
  • Fix UI order for theme.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. spacing sizes. (62199)
  • Fix registration of theme style variation defined block styles. (62495)
  • Only use single property variations as color/type presets. (62469)
  • Section Styles: Register block style variations on init. (62461)
  • Section styles: Consolidate variation name. (62550)
  • Section styles: Support i18ni18n Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill. for variations declared in theme.json or theme style variations. (62552)
  • Sort spacing sizes when all slugs begin numerically. (62567)

Site Editor

  • Change Site Editor to Edit site. (62501)
  • Fix “insert before/after” not showing for blocks in site editor. (62530)
  • Site Export: Ensure that the export endpoint uses Gutenberg theme classes. (61561)
  • Update old document URLs to new ones. (62206)
  • Update sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. title + icon + site title alignment. (62191)

Block Editor

  • Inserter: Allow focus to move to the toggle when opening the inserter. (62513)
  • Inserter: Return the same items when the state and parameters don’t change. (62263)
  • Remove ‘rootClientId’ argument for block lock selectors. (62547)
  • Update fetchLinkSuggestions to sort results by relevancy. (62397)

Block Library

  • Fixed Media Text Block Issue : When crop image to fill is enabled, the image in nested media & text blocks does not show. (62182)
  • Media & Text block: Fix nested Media & Text block media position issue with increased CSS specificity. (62184)
  • Query: Adjust the position of sticky search field in Patterns modal. (62370)

Post Editor

  • Editor: Avoid remounts of DocumentBar. (62214)
  • Editor: Make revisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision. more prominent. (62323)
  • Editor: Refine availability of rename post action. (62248)
  • Fix move CONTENT_ONLY_BLOCKS into component body to ensure the editor.postContentBlockTypes filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. gets called whenever the values are used. (62292)

Components

  • Ensure that openref is defined before accessing to .current. (62508)
  • Fix: Update styles for checkbox and radio controls. (61696)
  • Tabs: Prevent accidental overflow in indicator. (61979)

List View

  • Fix home and end key behaviour in very long lists. (62312)
  • Respect default shortcuts in modals. (62479)
  • Show context menu for content-only blocks in posts. (62354)

Block bindings

  • Fix applying bindings or pattern overrides to button blocks with empty text. (62220)
  • Fix site editor breaking when user selects bound and non-bound blocks at the same time. (62268)
  • Revert changes to bindings replacement logic to not use regex. (62355)

Synced Patterns

  • Block Bindings / Pattern Overrides: Prevent normal attribute updates when a __default binding exists. (62471)
  • Fix showing double icons for connected blocks in pattern editor. (62317)

Data Views

  • DataViews: Fix unnecessary horizontal scrollbar in list layout. (62448)
  • Page creation and duplication: Decode HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. entities in success notices. (62313)

Patterns

  • Fix increasingly big canvas in the post editor when editing patterns. (62360)
  • i18n: Patterns: Disambiguate singular & plural uses of ‘Synced’ & ‘Unsynced’. (62375)

Data Layer

  • Data: Add error handle to the ‘registry.batch’ method. (62322)

Block Variations

  • Compare objects based on given properties. (62272)

Block Styles

  • Remove core block style variations filters and action. (62090)

AccessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)

  • Add lint rule for inaccessible disabled Button. (62080)
  • Placeholders: Fix contrast. (62416)

Global Styles

  • Display tooltips for pagination buttons on styles revision. (62395)

Site Editor

  • Make edit site pagination buttons accessibly disabled. (62267)

Performance

  • reporter: Print the stdout/stderr from the worker. (62316)

Block bindings

  • Only run block bindings Gutenberg logic for sites using WordPress versions below 6.5. (62363)

Interactivity API

  • Use data-wp-on-async directives in core blocks when handler does not need synchronous access to event. (62160)

Experiments

Posts/Tags/Categories Screen

  • Bootstrap the dashboard layout. (62409)
  • Posts Dashboard: Add a new experimental empty page. (62406)

Documentation

  • Add @global PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher documentation. (60539)
  • Add documentation for PostSticky and PostStickyCheck component. (62100)
  • Add documentation for WordCount component. (62217)
  • Added documentation for PostTrash & PostTrashCheck TimeToRead TextEditorGlobalKeyboardShortcuts PostPublishButtonLabel Component. (62116)
  • Better changelogs for the JSX transform upgrade. (62265)
  • Corrected @SInCE Order in Php documentation. (61992)
  • Docs: Explicitly mention new behavior coming in WP 6.6 for block variations. (62399)
  • EntitiesSavedStates editor component. (62377)
  • Fix @since tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) in docblockdocblock (phpdoc, xref, inline docs) in WP_Theme_JSON_Data_Gutenberg. (62425)
  • Fix: Invalidinvalid A resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. link on explanations documentation. (62487)
  • Fixing minor syntax in DataView example code. (62560)
  • Interactivity API template create block: Removed warning for generated README from template. (62324)
  • PostPublishButton, PostPublishButtonLabel editor components. (62379)
  • PostPublishPanel editor component. (62380)
  • PostSwitchToDraftButton editor component. (62381)
  • PostSyncStatus editor component. (62382)
  • PostTaxonomies, PostTaxonomiesCheck, PostTaxonomiesFlatTermSelector, PostTaxonomiesPanel related editor components. (62384)
  • Several typo correction in documentations. (62433)
  • TableOfContents editor component. (62385)
  • ThemeSupportCheck editor component. (62387)
  • Update React API reference links in wordpress/element reference-guides. (62475)
  • Update: Slotfill documentation samples (links, code, and rephrase). (62271)
  • UseEntitiesSavedStatesIsDirty editor component. (62388)
  • block.json schema: Add supports.splitting field. (62209)

Code Quality

  • Add support for local keyframes through a PostCSS plugin. (62476)
  • Block style variation: Rename hook. (62464)
  • Chore: Simplify a padding style on global styles. (62291)
  • Convert autop package to TS. (62583)
  • Convert blob package to TS. (62569)
  • Convert escape-html package to TS. (62586)
  • Convert token-list package to TypeScript. (62584)
  • Convert warning package to TS. (62557)
  • Editor: Cleanup styles and classnames. (62237)
  • Editor: Deprecate PostSwitchToDraftButton. (62402)
  • Editor: Introduce the Editor component and use it in the site editor. (62274)
  • Fix unintended overwrite of eslint no-restricted-syntax. (62301)
  • Fix: Add network-active to valid options in PluginStatus Type definition. (62450)
  • Fix: Flakey deferred store test. (62571)
  • Fix: Remove unused code from dataviews styles. (62275)
  • Fix: Remove unused typography panel styles. (62295)
  • Fixed : Disambiguate “Cover” translatable string in the context of background-panel.js. (62440)
  • Move the template part menu items to the editor package. (62366)
  • Shortcut Help modal: Remove CSS hack for Internet Explorer 11. (62564)
  • Use stable reference for getEntityActions action. (62536)

Global Styles

  • Global styles code quality refactoring. (62299)
  • Migrate theme.json based on origin. (62305)
  • Send theme object to setUserConfig. (61805)

Synced Patterns

  • Extract the pattern overrides toolbar indicator from the block-editor package. (62514)
  • Remove unused syncDerivedUpdates action. (62229)

Post Editor

  • Editor: Combine selector in provider component. (62407)
  • Editor: Use the Editor component in the post editor. (62339)

Site Editor

  • Remove editor specific classes from shell wrapper. (62389)
  • Remove unused code. (62286)

Icons

  • Fix React warning error for offline icon. (62353)

Data Views

  • Chore: Simplify a padding style on dataviews. (62276)

Block Editor

  • Use border instead of hr for filtered block list separator. (62249)

Block bindings

  • Use preview instead of publishing post in block bindings tests. (62235)

Block API

  • Parser: Update validateBlock to use fixedBlock. (62178)

Tools

Testing

  • Fix flaky Site Editor command center end-to-end test. (62454)
  • Perf Tests: Use backward-compatible locators. (62362)
  • Test using Node.js 22.x. (62341)
  • Try: Fix flaky DataViews end-to-end test. (62413)
  • Update Node version for flaky test reporter. (62401)
  • end-to-end Utils: Add retry mechanism to the REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/. discovery. (62331)

Build Tooling

  • Build JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. module only in development mode. (62398)
  • Speed up check-build-type-declaration-files. (62538)

wp-env

  • Add JSON Schema for .wp-env.json files. (36276)
  • Add WP_ENV_TESTS_MYSQL_PORT / .wp-env.json .env.tests.mysqlPort option etc. (61057)

Various

  • Update all ConfirmDialogs in the codebase to be size=medium. (62532)

REST API

  • Themes REST API endpoint: Add stylesheet_uri and template_uri fields to the response (WP 6.6). (62211)

First-time contributors

The following PRs were merged by first time contributors:

Contributors

The following contributors merged PRs in this release:

@aaronrobertshaw@aaronware@afercia@ajlende@akasunil@amitraj2203@andrewserong@BrianHenryIE@carolinan@carstingaxion@cbravobernal@colorful-tones@DaniGuardiola@desrosj@ellatrix@fabiankaegy@geriux@gigitux@gziolo@jameskoster@jasmussen@jeryj@joemcgill@jorgefilipecosta@jsnajdr@juanmaguitar@kevin940726@Mamaduka@mcsf@mirka@narenin@noisysocks@ntsekouras@oandregal@ockham@ramonjd@richtabor@SantosGuillamot@scruffian@shail-mehta@sirreal@stokesman@t-hamano@talldan@tellthemachines@tjcafferkey@up1512001@vipul0425@westonruter@WunderBart@youknowriad

Props to @jameskoster for the visual assets, @priethor for handling the release candidaterelease candidate One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta). at short notice, @andrewserong, @isabel_brison, @annezazu, and @matveb for help with drafting and proof reading this post.

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

What is new in Gutenberg 18.5 (05 Jun)

“What’s new in GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/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.

Gutenberg 18.5 has been released and is available for download!

Gutenberg 18.5 introduces several exciting features, enhancements, and some bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes. Some of the highlights of this release include better tools for section styling, providing more customization options for your sections, a new Custom Shadows feature which improves the control over our shadows, and also the ability to edit a blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience.’s custom fields directly in the block itself, thanks to the latest additions to the Block Bindings APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways..

Additionally, this release supports copying custom CSSCSS Cascading Style Sheets. between variations, relative theme path URLs for background images in theme.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML., and improved consistency in root padding across blocks.

  1. Section Styling with Extended Block Style Variations
  2. Custom Shadows!
  3. Block Bindings: Edit in Post Meta Source
  4. Other Notable Highlights
  5. Changelog
  6. First time contributors
  7. Contributors

Section styling with extended block style variations

From the Dev Notedev note Each important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include a description of the change, the decision that led to this change, and a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase. draft:

Section-based styling has been enabled by extending the existing Block Styles feature (aka block style variations) to support styling inner elements and blocks. These enhanced block style variations can even be applied in a nested fashion due to uniform CSS specificity (0-1-0) for Global Styles, which will be introduced in WordPress 6.6.

In addition block style variations can now be:

  • Registered across multiple block types at the same time
  • Defined via multiple methods; theme.json partials, within theme style variations, or by passing a theme.json shaped object in the style’s data given to existing block style registration functions
  • Customized via Global Styles

Read more.

Custom shadows!

The new Custom Shadows feature allows for the creation and editing of shadows within Global Styles. Users can now add depth and visual interest to their site elements with more nuanced shadow effects.

Block Bindings: allow editing post metaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. directly in blocks

Using the latest changes to the Block Binding API, this change means that we can now edit the value of custom fields directly through the blocks when they are connected to those fields. For example, when a paragraph block’s content is bound to a custom fieldCustom Field Custom Field, also referred to as post meta, is a feature in WordPress. It allows users to add additional information when writing a post, eg contributors’ names, auth. WordPress stores this information as metadata. Users can display this meta data by using template tags in their WordPress themes., the user can edit the custom field value by editing the block content.

Other Notable Highlights

  • Copy custom CSS between variations when switching (61752)
  • Support Relative Theme Path URLs for Background Images in theme.json (61271)
  • Improve Consistency in Root Padding Across Blocks (60715)

Changelog

Features

Global Styles

  • Add defaultSpacingSizes option (theme.json v3). (61842)
  • Edit/create shadows in global styles. (60706)
  • Relocate Background Image controls to sit under Layout. (61886)

Block Library

  • Enable shadow support for cover block. (61883)

Block bindings

  • Allow editing in post meta source. (61753)

Script Modules API

  • Add script module data implementation. (61658)

Synced Patterns

  • Add __default binding for pattern overrides. (60694)

Block Styles

  • Extend block style variations as mechanism for achieving section styling. (57908)

Enhancements

  • Block card: Fix typographic widow. (61438)
  • Block settings: Update variant of “Apply globally” Button component to secondary. (61850)
  • Editor: Align the Post Format control design with the rest of the post sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. controls. (62066)
  • Editor: Polish the style of some of the post summary rows. (61645)
  • Format Library: Refactor ‘Inline Image’ edit component. (62135)
  • Playwright end-to-end Utils: Add fullscreenMode option to createNewPost. (61766)
  • Post Sticky Toggle: Improve the design. (62012)
  • Post Summary: Move PostTemplatePanel below URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org and Author. (62137)
  • Remove trashTrash Trash in WordPress is like the Recycle Bin on your PC or Trash in your Macintosh computer. Users with the proper permission level (administrators and editors) have the ability to delete a post, page, and/or comments. When you delete the item, it is moved to the trash folder where it will remain for 30 days. button in post/page inspector. (61792)
  • Shadows instead of borders on interface skeleton. (61835)
  • Tweak contextual block toolbar position. (61836)
  • Update: For synced entities the icon should be purple. (62024)
  • Update: Implement new author panel design. (61362)
  • Update: Implement new parent and order design. (61918)
  • Update: Move duplicate pattern and template part actions to the editor package. (61879)

Site Editor

  • Block Editor: Check for multiple block usage in the block-editor package. (62086)
  • Copy custom CSS between variations when switching. (61752)
  • Data views: Align page headers. (62115)
  • Inspector summary rows: Make tooltips appear middle-left. (61815)
  • Inspector: Add ‘/’ prefix to Link button. (62073)
  • Inspector: Display home / posts page badge. (62071)
  • Inspector: Remove revisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision. panel. (61867)
  • Make post meta row button treatment consistent. (61954)
  • Remove ‘Manage…’ prefix in Pages / Templates data views. (62107)
  • Remove the details pages. (61741)
  • Update actions order in site editor for template and template parts. (61803)
  • Use site title as a link. (61258)
  • [Site Editor]: Add create pattern button in patterns page. (60302)
  • withRegistryProvider: Prevent intermediate state with no children. (61859)

Data Views

  • Add badge to title for posts & front pages. (61718)
  • Clarify date value in Pages. (61709)
  • DataViews: label prop in Actions API can be either a string or a function. (61942)
  • Fix pagination position on pages with short lists. (61712)
  • Pages data view: Add Pending and Private views. (62138)
  • Pages sidebar: Adds published & scheduled items. (62021)
  • Stop Patterns data view headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. shrinking. (61801)
  • Update grid layout on small screens. (61820)
  • Update list layout action styling. (61797)
  • Update page component (and some data view elements) spacing metrics. (61333)
  • Visually hide ‘Actions’ column header. (61710)

Global Styles

  • Add block-level Text Alignment UIUI User interface. (61717)
  • Add option to remove site-wide theme background image. (61998)
  • Background image: Add support for relative theme path URLs in top-level theme.json styles. (61271)
  • Background image: Update controls defaults and layout. (62000)
  • Background images: Add defaults for background size. (62046)
  • Don’t filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. out typography variations where the heading and body fonts are the same. (61327)
  • Make color variations fit in a bit better visually. (61617)
  • Make it clearer how to edit a site’s palette. (61364)
  • Move type presets below elements. (61863)
  • Restore the default variation to the color and typography style tiles. (61901)
  • Show shadow tool by default under global styles. (61981)

Components

  • Add vw and vh units to the custom font size picker. (60607)
  • CustomSelectControlV2: Use InputBase for styling. (60261)
  • Tabs: Indicator animation. (60560)
  • Try: Add CSS Custom Properties to CSS types. (61872)

Zoom Out

  • Hide inserters behind the experiment flag. (61866)
  • Inserter: Auto-close the inserter unless the zoom out experiment is on. (61856)
  • Show the inserters only when a section is selected. (61559)
  • The patterns tab behind a new experiment. (61601)

Block Editor

  • Adjust pattern list items resting, hover, focus styles. (61831)
  • Tweak pattern categories sidebar. (62113)
  • Writing flow: Remove first empty paragraph on Backspace. (61889)

Block bindings

  • Add Block Bindings Panel to Block Inspector. (61527)
  • Add indicator for metadata changes to Save Panel when reviewing modified entities. (61811)
  • Lock binding editing with functions. (61734)

Block Variations

  • Detect active variation correctly based on RichText attribute. (62325)
  • Have getActiveBlockVariation return variation with highest specificity. (62031)
  • Support dot notation in isActive string array. (62088)

Layout

  • More consistent root padding. (60715)
  • Try using coloured overlay instead of border for grid visualiser. (61390)

Block Library

  • Added Bluesky icon to the Social Icon Block. (61372)
  • Media & Text: Replace the deprecated __experimentalImageSizeControl with ResolutionTool. (57540)

Inspector Controls

  • Align both “Design” pattern list panels. (62161)

Post Editor

  • Add home template details to inspector controls. (61762)

Interactivity API

  • Clarify some warning messages. (61720)

Patterns

  • Adjust the icons and text of the binding connected blocks. (61560)

Bug Fixes

  • Editor: Only render the site logo once if there’s a fill. (62320)
  • Interactivity API: Increase directive wp-each-child priority. (62293)w
  • Compose: Fix ‘useFocusOnMount’ cleanup callback. (62053)
  • Do not auto save post status changes. (62171)
  • Editor: Fix canvas padding in post editor. (61893)
  • EntityProvider: Avoid remounts and simplify. (61882)
  • Fix shadow and border for pattern categories panel. (62158)
  • Image Block: Conditionally Render Block Control Based on Component Presence. (62132)
  • Interactivity API: Fix null and number strings as namespaces runtime error. (61960)
  • PostCardPanel: Fix ESLint error. (62109)
  • Remove build-types/ clean from clean:Packages. (62008)
  • Script Modules: Fix private method reflection access. (62154)
  • ServerSideRender: Fix data loading in development mode. (62140)
  • Shadow Panel: Make subtitle translatable. (62022)
  • Site Editor: Fix the Root Padding styles. (61906)
  • Writing flow: Fix heading crash on split (via paste). (61900)
  • e2e: Fix Site Editor Styles test. (62111)

Post Editor

  • Consolidate and fix delete and edit post actions. (61912)
  • Consolidate and fix rename post action. (61857)
  • Document Bar: Decode HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. entities and take into account cases where there is no title. (62087)
  • Editor: Don’t apply purple accent to the unsynced pattern title. (61704)
  • Editor: Ensure Copy button in sidebar copies whole permalink, with URL protocol. (61876)
  • Editor: Fix the ‘DocumentBar’ position for long titles. (61691)
  • Editor: Render publish date control when the status is future(scheduled). (62070)
  • Editor: Unify button size in pre-publish panel. (62123)
  • Editor: Use edited entity for post actions. (61892)
  • Fix read only post status styles. (61722)
  • Post Actions: Hide the trash action for auto-drafts. (61865)

Block Editor

  • Inserter: Update Openverse API URLs. (62241)
  • Fix being unable to switch modes while inserter is open. (61563)
  • Fix editor inserter tabs indicator. (61973)
  • Fix positioning of close icons in panels to be consistent. (61832)
  • Fix syncing of publish date between publish and post status panel. (62165)
  • Improve link conrol preview when show button text label is enabled. (61726)
  • Inserter: Show all blocks (alternative). (62169)
  • InspectorControls: Text not displayed when “Show button text labels” is enabled. (61949)
  • Link Control: Fix focus handlers in development mode. (62141)
  • Media & Text block: Remove the link option when the featured imageFeatured image A featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts. is used. (60510)
  • Writing flow: Fix paste for input fields. (61389)

Block Library

  • Classic block: Fix content syncing effect for ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. StrictMode. (62051)
  • Don’t steal focus when opening browse all blocks. (61975)
  • Fix: The latest post block – post titles overlapping. (61356)
  • Fixed : Update alt text decision tree links to be translatable. (62076)
  • Fixed: Custom HTML Block should display content in LTR layout for all languages. (62083)
  • More block: Fix React warning when adding custom text. (61936)
  • useUploadMediaFromBlobURL: Prevent duplicate uploads in StrictMode. (62059)

Global Styles

  • Fix make dimensions.aspectRatios key of theme.json files translatable. (61774)
  • Hide the presets panel for when there are less or exactly one presets available. (62074)
  • Prevent Typography panel title from wrapping. (62124)
  • Shadow Panel: Generates unique shadow slugs by finding max suffix and incrementing it. (61997)
  • Styles: try wrapping with :Root to fix reset styles. (61638)
  • Transform Styles: Update selector so that styles work when custom fields panel is active. (62121)

Site Editor

  • Align the template title to the center in the ‘Add template’ screen. (62175)
  • Close publish sidebar if not in edit mode. (61707)
  • Fix the site editor Adminadmin (and super admin) Bar menu item. (61851)
  • Use a consistent snackbar position. (61756)

Components

  • Fix: The focus styles for tabPanel. (61317)
  • InputControl: Fix z-index issue causing slider dots to appear in front of the Appearance dropdown. (61937)
  • getAutocompleterUI: Don’t redefine ListBox component on every render. (61877)

Synced Patterns

  • Block Bindings: Filter pattern overrides source in bindings panel. (62015)
  • Fix detaching patterns when a pattern has overrides, but there are no override values. (62014)

Block bindings

  • Don’t show non-existing and not supported attributes in block bindings panel. (62183)

Layout

  • Remove extra bracket in the site editor root padding styles. (62159)

Block Styles

  • Fix block style variation styles for blocks with complex selectors. (62125)

Code Editor

  • Editor: Unify text/code editor between post and site editors. (61934)

Page Content Focus

  • Remove lock icons from Content blocks inner blocks when editing a page in the site editor. (61922)

Patterns

  • Templates: Only resolve patterns for REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/. endpoints. (61757)

Interactivity API

  • Turn named capturing groups back into numbered ones inside toVdom. (61728)

Block API

  • Fix: Enable Text Align UI to be controlled correctly with theme.json. (61182)

REST API

  • Return an empty object when no fallback templates are found (wp/v2/templates/lookup). (60925)

AccessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)

Global Styles

  • Shadow Panel: Improve a11yAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) and fix browser console error. (61980)

Data Views

  • Always show Actions table header. (61847)

Block Library

  • Fix: Adds help props for description of Play Inline toggle. (61310)

Performance

  • Perf: Batch block list settings in single action. (61329)
  • Remove additional call to WP_Theme_JSON_Gutenberg::__construct. (61262)

Interactivity API

  • Introduce wp-on-async directive as performant alternative over synchronous wp-on directive. (61885)

Post Editor

  • DocumentBar: Only selected data needed for rendering. (61706)

Experiments

Interactivity API

  • Use output buffer and HTML tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) processor to inject directives on BODY tag for full-page client-side navigation. (61212)

Documentation

  • Add JSDoc to PostVisibility, PostVisibilityCheck, and PostVisibilityLabel. (61735)
  • Add PostURL component documentation. (61737)
  • Add a section about block filters to the Filters and HooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. doc. (61771)
  • Add an example and improve readability of the Block Filters doc. (61770)
  • Add docblockdocblock (phpdoc, xref, inline docs) to PostTitle and PostTitleRaw component. (61740)
  • Add documentation for DocumentBar. (61733)
  • Add documentation for PostFeaturedImage, PostFeaturedImageCheck, PostFeaturedImagePanel. (61165)
  • Add documentation for PostLastRevision, PostLastRevisionCheck, PostLastRevisionPanel components. (61166)
  • Add documentation for PostSchedule, PostScheduleCheck, PostSchedulePanel, PostScheduleLabel, usePostScheduleLabel components. (61345)
  • Add documentation for the EditorNotices component. (61736)
  • Add documentation for the EditorProvider and ExperimentalEditorProvider components. (61739)
  • Added missing global documentation. (61537)
  • Changelog: Add note about removing legacy operators. (62013)
  • Docs: Fix spacing in PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher doc block in comments block. (61911)
  • EditorBoundary editor component. (61950)
  • Fix typo. (61830)
  • Fix: Block library README.md link. (62081)
  • Fix: Custom block editor link. (61962)
  • For PostTextEditor component. (62099)
  • LocalAutosaveMonitor editor component. (61951)
  • PageTemplate + PostTemplatePanel editor components. (61961)
  • PostComments editor component. (61964)
  • PostDiscussionPanel editor component. (61966)
  • PostExcerptPanel editor component. (61967)
  • PostLockedModal editor component. (61968)
  • PostPendingStatus + PostPendingStatusCheck editor components. (61970)
  • PostPingbacks editor component. (62035)
  • PostPreviewButton editor component. (62036)
  • Storybook: Add badges based on tags. (61111)
  • Update PostFormat, PostFormatCheck editor component documentation. (61732)
  • Update block.json file with correct links. (61880)
  • Update link to architecture key concepts. (61965)
  • Update links to correct lodash website. (62188)
  • Update pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party-document-setting-panel.md. (61782)
  • Update tutorial.md. (62054)

Code Quality

  • Add curly brace autofix commit to .git-blame-ignore-revs. (62144)
  • Add eslint rule for curly brace presence in JSX. (62026)
  • Blocks: Remove pipe usage and dependency on compose. (62127)
  • Clean up packages build-types when cleaning types. (61939)
  • Command Palette: Remove unused URL parameter. (61783)
  • Commands: Unify the editor context between post and site editors. (61862)
  • Dataviews: Remove unused dependencies. (62010)
  • Distraction Free: Unify the header animation. (62167)
  • Editor: Move editor toggle commands to the editor package. (62093)
  • Editor: Move the InterfaceSkeleton to the editor package. (62118)
  • Editor: Move the resizing of the editor to the EditorCanvas component. (61896)
  • Editor: Remove extra div container and unify the container between post and site editors. (62016)
  • Editor: Remove obsolete listViewLabel prop from DocumentTools. (62032)
  • Editor: Remove useless props from InserterSidebar component. (62103)
  • Editor: Unify the MediaUpload hook between post and site editors. (62085)
  • Editor: Unify the content area of the post and site editors. (61860)
  • Fix: React compiler error on button. (61958)
  • Fix: Remove unused css block on patterns page. (62058)
  • Fix: Remove unused css code from the navigation screen. (62060)
  • Fix: Some jsdoc return types on edit site selector. (62061)
  • Improve distclean script. (62019)
  • Interactivity API: Move all utils inside utils.ts. (61721)
  • Interactivity API: Move init.js to TypeScript. (61723)
  • Make onPatternCategorySelection private. (62130)
  • Remove useless clsx calls. (61969)
  • Rename backportbackport A port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch.-changelog/6279.md to backport-changelog/6.6/6279.md. (61894)
  • Update: Remove unused components. (61955)
  • end-to-end Tests: Fix React warnings triggered by test plugins. (61935)

Components

  • CustomSelectControl: Fix menuProps mutation. (62149)
  • Fix remaining warning in ColorPanelDropdown. (61933)
  • Make the ProgressBar public. (61062)
  • Remove reduceMotion utility. (61963)
  • SlotFills: Use state for registry initialization. (61802)
  • Style Book: Use state to initialize examples. (61848)
  • Tooltip: Fix Ariakit tooltip store usage. (61858)
  • ProgressBar: Simplify default width implementation and make it more easily overridable. (61976)

Block Editor

  • Fix ZoomOutModeInserters dependencies. (61908)
  • Fix wrapper props mutation in BlockListBlock. (61789)
  • Remove some utility functions. (61784)
  • Shadows: Unlock private components and hooks at the file level. (61790)
  • Unlock private setting keys at the file level. (61813)
  • Unlock the private ‘kebabCase’ function at a file level. (60755)
  • useBlockInspectorAnimationSettings: Remove unnecessary deps. (61822)

Data Views

  • DataViews: Full type the dataviews package. (61854)
  • DataViews: Remove non-used file. (61853)
  • DataViews: Remove unnecessary dependency for pattern fields memo. (61870)
  • DataViews: Type all the filters components. (61795)
  • DataViews: Type the BulkActionsToolbar component. (61673)
  • DataViews: Type the ViewActions component. (61729)
  • DataViews: Type the ViewTable component. (61682)

Block Library

  • Added unit testunit test Code written to test a small piece of code or functionality within a larger application. Everything from themes to WordPress core have a series of unit tests. Also see regression. for post excerptExcerpt An excerpt is the description of the blog post or page that will by default show on the blog archive page, in search results (SERPs), and on social media. With an SEO plugin, the excerpt may also be in that plugin’s metabox. block render function. (43451)
  • Avoid using component naming conventions for non-component code. (61793)
  • Button: Fix ESLint warning. (62126)
  • Remove CSS hack for Internet Explorer 11. (62043)
  • Remove useless styles. (62017)
  • Search Block: Fix borderRadius mutation. (61794)

Site Editor

  • History: Add getLocationWithParams method. (61823)
  • Navigation Focus Mode: Remove leftover code. (61897)
  • Remove useless onClick handler. (61902)
  • Update to use the EditorInterface component from the editor package. (62146)

Block hooks

  • Navigation block: Check for insert_hooked_blocks_into_rest_response i…. (62134)
  • Navigation block: Check for update_ignored_hooked_blocks_postmeta in coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. (61903)

Font Library

  • Font Library Modal: Remove some contexts. (62042)

Post Editor

  • Template Actions: Fix console error when resetting template. (61921)

Global Styles

  • Components: Fix React Warning triggers by the new JSX transform. (61917)

Interactivity API

  • Interactivity API : Refactor interactivity-router to TS. (61730)

CSS & Styling

  • Fix editor view mode canvas shadow. (61688)

Tools

  • Build: Use globalThis over process.env and enable TS lib checking. (61486)

Testing

  • E2E: Fix canvas waiter in visitSiteEditor. (61816)
  • PaletteEdit: Fix another flaky test. (61818)
  • PaletteEdit: Fix flaky test. (61791)
  • Shadow: Add unit tests for shadow support. (60063)
  • Skip flaky ‘Zoom out’ end-to-end test. (61925)
  • Synced Pattern: Wait for pattern creation in end-to-end tests. (62174)
  • Tests: Change how directives processing gets disabled. (62095)
  • Workflows: Try a backport changelog. (61785)

Build Tooling

  • Add 60 minute timeout to performance job. (61957)
  • Enable parallel processing for PHPCSPHP Code Sniffer PHP Code Sniffer, a popular tool for analyzing code quality. The WordPress Coding Standards rely on PHPCS. sniffssniff A module for PHP Code Sniffer that analyzes code for a specific problem. Multiple stiffs are combined to create a PHPCS standard. The term is named because it detects code smells, similar to how a dog would "sniff" out food.. (61700)
  • Fix an issue causing wp-scripts commands to fail if the file path contained a space character. (61748)
  • React: Upgrade to the new JSX transform. (61692)
  • Workflows: Test to check for label and skip backport changelog. (61808)

Various

  • Inserter: Encapsulate styles for tablist and close button. (61760)
  • Update ‘Add template’ screen to prefer template_name label instead of singular_name. (60367)
  • Update: Move pattern actions to the editor package. [take 2]. (61612)

Global Styles

  • Update copy for color variations from “Presets” to “Palettes”. (62147)

Synced Patterns

  • Remove IS_GUTENBERG_PLUGIN check to ensure pattern overrides ship in 6.6. (62011)

npm Packages

  • Packages: Increase the minimum required Node.js version to v18.12.0. (61930)

Layout

  • Update child layout selector to match core. (61777)

Components

  • Introduce Combobox expandOnFocus property. (61705)

First time contributors

The following PRs were merged by first time contributors:

  • @akashdhawade2005: Fix: Block library README.md link. (62081)
  • @amitraj2203: Added Bluesky icon to the Social Icon Block. (61372)
  • @dbrian: Add JSDoc to PostVisibility, PostVisibilityCheck, and PostVisibilityLabel. (61735)
  • @gemkev: Update tutorial.md. (62054)
  • @kellenmace: Fix an issue causing wp-scripts commands to fail if the file path contained a space character. (61748)
  • @narenin: Fixed: Custom HTML Block should display content in LTR layout for all languages. (62083)
  • @nateinaction: Add documentation for the EditorProvider and ExperimentalEditorProvider components. (61739)
  • @paolopiaggio: Playwright end-to-end Utils: Add fullscreenMode option to createNewPost. (61766)
  • @sanjucta: Add docblock to PostTitle and PostTitleRaw component. (61740)
  • @vipul0425: Fix: The latest post block – post titles overlapping. (61356)

Contributors

The following contributors merged PRs in this release:

@aaronrobertshaw @abhi3315 @afercia @ajlende @akashdhawade2005 @akasunil @Aljullu @amitraj2203 @andrewserong @anton-vlasenko @anver @artemiomorales @carolinan @cbravobernal @colorful-tones @creativecoder @DaniGuardiola @DAreRodz @dbrian @draganescu @ellatrix @fabiankaegy @fullofcaffeine @gemkev @geriux @glendaviesnz @gziolo @jameskoster @jasmussen @jeryj @jorgefilipecosta @jsnajdr @kellenmace @kevin940726 @kt-12 @madhusudhand @Mamaduka @mattsherman @mcsf @michalczaplinski @mirka @narenin @nateinaction @ndiego @ntsekouras @oandregal @ockham @paolopiaggio @ramonjd @retrofox @richtabor @sanjucta @SantosGuillamot @scruffian @senadir @shail-mehta @sirreal @stokesman @t-hamano @talldan @taylorgorman @tellthemachines @tjcafferkey @twstokes @tyxla @vcanales @vipul0425 @westonruter @WunderBart @youknowriad

Props to @annezazu, @gziolo, @aaronrobertshaw for their support in and @joen for his help with the post’s assets!

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

What’s new in Gutenberg 18.4 (22 May)

“What’s new in GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/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.


Gutenberg 18.4 is ready and available for download!

This release includes 178 pull requests by 58 contributors. Look for improvements to the Grid blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience., a new handy keyboard shortcut, and useful features for extenders. Additionally, as always, a number of bugs, accessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) issues, and performance issues have been fixed.

Great work to all who contributed to Gutenberg 18.4, with special appreciation for the first-time contributors we had this release. Thank you!

Table of Contents

Visualize grid layouts

No longer an experiment, the grid layout visualization is now available to everyone! See outlines of the grid columns and rows, and use the drag handles to make content span across them. (#61640)

Group blocks with a keyboard shortcut

Many design tools provide shortcuts for grouping elements. Gutenberg has been missing this convenience since blocks could be grouped… until today. Now you can conveniently group all selected blocks with the ⌘ Command + G on MacOS or Ctrl + G on Windows. (#46972)

Define custom aspect ratio presets with theme.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML.

Tired of being stuck with the same standard aspect ratios for image cropping and layout? Now themes can define their own aspect ratio presets to use. (#47271)

Set new aspect ratios with the settings.dimensions.aspectRatios option in theme.json. As with other presets, the default options are always available by default. To remove them and use only your own, set the settings.dimensions.defaultAspectRatios option to false.

{
	"version": 3,
	"settings": {
		"dimensions": {
			"aspectRatios": [
				{
					"name": "Super Ultra-Wide - 32:9",
					"slug": "32-9",
					"ratio": "32/9"
				}
			]
		}
	}
}

Other notable highlights

For extenders needing more customizability than the BlockToolbar has to offer, you can use the newly exported BlockPopover component to easily create your own custom toolbar. (#61529)

For extenders replicating rich text pasting behavior in your own blocks, you now have access to a convenient supports.splitting block setting. When it is enabled and content is pasted inside the block, it will split your block in two, insert the content, and then merge the ends together. (#54543)

For theme developers, the list block now includes a wp-block-list class to allow styling the block separately from other lists. No more accidentally selecting too many things when styling list blocks. (#56469)

Changelog

View full list of changes

Enhancements

Layout

  • Check child layout exists before generating classname. (61392)
  • Hide Image block resizer when inside a grid layout. (61603)

Grid interactivity

  • Improve max attribute logic. (61420)
  • Improve how grid resizer handles 0-width and 0-height cells. (61423)
  • Show grid visualizer when block inspector is closed. (61429)
  • Stabilise grid layout visualiser and resizer. (61640)

Global Styles

  • Add aspect ratio presets support via theme.json. (47271, 61774)
  • Background images: Remove required “file” prop. (61387, 61469)
  • Change “Solid” tab to “Color”. (61366)
  • Improve panel title and description for palette. (61365)
  • Tweak palette panel spacing and empty message. (61368)
  • Update color variations. (61334)

Block Styles

  • Add extended version of register block style functions. (61029)

Post actions

  • Improve success messages of some post actions. (61539)
  • Unify the list of available post type actions. (61520)
  • Don’t export duplicatePostAction for now. (61407)

Zoom Out

  • Editor: Enable Zoom-out mode in the post editor. (61293)
  • Keep original viewport width (single scale). (61424)
  • Open inserter sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. when clicking on inserter buttons on zoom-out mode. (61434)
  • Remove experimental zoom out control. (61509)
  • Zoomed Out View: Don’t close the inserter. (61004)

Components

  • Do not render FormTokenField label when not defined. (61336)
  • Placeholder: Tweak placeholder style. (61590)
  • Add content only descriptions in dropdown menus for patterns and templates. (61127)

Block Library

  • List Block: Add block class name to the list block. (56469)
  • Embeds Block: Add Bluesky variation. (61352)
  • Site Logo Block: Add setting labels via the ‘register_setting’ method. (61351)

Block Editor

  • Make BlockPopover component public. (61529)
  • Only add the selected pattern categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. in metadata during insertion. (61557)
  • Add a keyboard shortcut to create group from the selected blocks. (46972)
  • Enhance block outlines and selection interactions. (60757)
  • Tiny tweak to position close button properly in the inserter. (61461)

Editor

  • Editor: Unify HeaderHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. component. (61273)
  • Editor: Unify the sidebar between the post and site editors. (61507)
  • Editor: Update and simplify the Post Summary and Post Card section in the document sidebar. (61624)
  • Try: Improve date-wrapping in prepublish flow. (61490)
  • Update: Implement the new discussion panel design. (61357)

Post Editor

  • Add global styles to settings using existing context code. (61556)
  • Display a notice after moving a post into the trashTrash Trash in WordPress is like the Recycle Bin on your PC or Trash in your Macintosh computer. Users with the proper permission level (administrators and editors) have the ability to delete a post, page, and/or comments. When you delete the item, it is moved to the trash folder where it will remain for 30 days.. (61670)
  • Simplify Post Publish Flow status term. (61386)

Site Editor

  • Redirect /wp_template_part/all to /patterns. (61446)
  • Moves “Patterns” command to site editor main navigation. (61416)
  • Adds “Template Parts” command to site editor. (61287)
  • Show pin/unpin button on the site editor pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party sidebar. (61448)
  • Remove default entry into Navigation MenuNavigation Menu A theme feature introduced with Version 3.0. WordPress includes an easy to use mechanism for giving various control options to get users to click from one place to another on a site. focus mode but retain ability to access via “Edit”. (61275)

Data Views

  • Add bulk actions toolbar. (59714)
  • Align list and table layout visuals. (61157)
  • Add actions to list layout. (60805)
  • Make pattern preview click area larger. (61250)

Bug Fixes

Layout

  • Fix grid item resizing in non-iframed editor. (61636)
  • Fix resizing items to top and left with GridItemResizer. (60986)
  • Grid Visualizer: Fix grid item resizing in site editor. (61641)
  • Grid Visualizer: Fix resize not ending when mouse is released outside grid’s bounds. (61668)
  • GridItemResizer: Fix resizing when List View is open. (61643)
  • Only show grid resizer if grid block allows resizing on children. (61552)

Global Styles

  • Background image: Explicitly set background repeat value in user styles. (61526)
  • Background image: Size controls should show when an image is set. (61388)
  • Make sure to replace all instances of :Where(body) instead of just …. (61602)
  • Reduce specificity of global styles body margin reset rule. (61340)
  • Remove Post Template background override. (61545)

Patterns

  • Fix blocks in unsynced patterns can enable overrides. (61639)
  • Revert “Use contentOnly locking for pattern block, remove hard-coded block check in block inspector”. (61517)

List View

  • Account for text fields in shortcut handler. (61583)
  • Add a special case for shortcuts coming from modals. (61606)
  • Standardize List View feature name to use title case capitalization. (61535)

Zoom Out

  • Block editor: Scroll block into view on insert. (61418)
  • Fix double scrollbars in site editor with zoom out view enabled. (61548)
  • Fix zoom out UIUI User interface scale. (61265)
  • Add bottom and top inserters. (61473)
  • Add patterns loading state. (61513)
  • Don’t allow dropping outside section root. (61512)
  • Don’t select last block. (61484)
  • Pass the section root ID to the inserter. (61464)
  • Zoom-out: Fix iframeiframe iFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser. ref error. (61200)

Components

  • Fix inconsistent complementary header styles. (61331)
  • Fix sticking “Reset” option in ToolsPanel. (60621)
  • RadioControl: Fix shrinking radio controls. (61476)

Block Library

  • Navigation Block: Add list item wrapper to social links when used in navigation block. (61396)
  • HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. Block: Remove font weight on toolbar tab button – #61254. (61308)
  • Time to Read Block: Fix “this block has encountered an error” – #61459. (61614)
  • Image Block: Enable crop action when image has a link. (61470)
  • ShortcodeShortcode A shortcode is a placeholder used within a WordPress post, page, or widget to insert a form or function generated by a plugin in a specific location on your site. Block: Fix layout margin override. (55028)

Block Editor

  • Editor styles: Fix cache (by wrapper selector). (61397)
  • Fix Truncate component for long unbreakable text. (61137)
  • Fix focus loss due to filtering blocks. (61558)
  • Fix: The issue of appender button not clickable in row/stack group. (61585)
  • Writing Flow/Rich Text: Unify split logic. (54543)

Post Editor

  • Fix the ‘usePaddingAppender’ error. (61500)
  • Return an empty object when no fallback templates are found (wp/v2/templates/lookup). (60925)

Site Editor

  • Fix user capabilities check for the Site Editor. (61444)
  • Preserve the wp_theme_preview query arg when navigating in Site Editor. (61394)
  • Trigger sidebar animations only on cross-route navigations. (61402)
  • Site Editor: Restore the hover zoom effect when hovering the editor frame. (61647)

Widgets Editor

  • Hide the close button on the inserter for widgets editor. (61510)

Data Views

  • Fix regressionregression A software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5. on keyboard navigation. (61478)
  • Improve dataview types. (61586)

Interactivity APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.

  • Interactivity API: Allow multiple event handlers for the same type with data-wp-on-document and data-wp-on-window. (61009)
  • Interactivity API: Prevent empty namespace or different namespaces from killing the runtime. (61409)
  • Interactivity API: Prevent wrong written directives from killing the runtime. (61249)

Accessibility

Components

  • ComboboxControl supports disabled items. (61294)
  • Remove usage of aria-details from InputControl and BaseControl. (61203)

Block Library

  • Fix the RRS block placeholder labeling and improve spacing. (61576)

Block Editor

  • Focus currently selected block when entering canvas. (61472)
  • Focus inserter toggle when closing the inserter sidebar. (61467)
  • Inserter: Add close button. (61421)

Post Editor

  • Post Actions: Correctly disable dropdown trigger. (61625)

Performance

  • Calculate and report quartiles in performance results. (60950)
  • Refactor InserterTabs to use children and remove re-memoizing. (61295)
  • Tests: Improve collection and reporting. (61450)
  • Performance tests: Fix results file path. (61686)
  • Revert “useBlockSync: Remove isControlled effect”. (61480)

Documentation

  • Update old document URLs to new ones. (61595)
  • Add a section about block_editor_settings_all to the Filters and HooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. doc. (61597)
  • Add link to VS Code Playwright Extension. (61505)
  • Added check for duplicated slugs during manifest.json generation. (61332)
  • Block Editor: Remove multiline prop from Richtext doc. (61592)
  • Docs: How-to Guides > MetaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. Boxes – Update metabox.md. (61314)
  • Docs: Interactivity API – Add viewScriptModule as a requirement to work with the Interactivity API. (61355)
  • Docs: Interactivity API : New pages – About and FAQ. (61323)
  • Docs: Interactivity Api – Small fixes. (61403)
  • Docs: Remove list of keyboard shortcuts from FAQ page. (61591)
  • Docs: Update theme-json-living.md to fix little issue. (61354)
  • Fix WP versions for theme.json v3 migrationMigration Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. in inline documentation. (61328)
  • Several Typo Correction in Inline doc. (61379)
  • Small fixes as per feedback received. (61445)
  • Theme.json: Update schema with working create theme link. (61306)
  • Update wordpress/a11yAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) README.md. (61635)
  • Update Node.js requirement in create-block docs. (60962)
  • Update and restructure the Editor Hooks doc. (61596)
  • Updated links to developer resources on README.md. (61525)
  • theme.json schema: Remove duplicate key. (61523)
  • Several Typo Corrections in Inline Documentations. (61662)

Code Quality

  • PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher load: move rest template controller 6.6 import to “REST” area. (61564)
  • Replace classnames with clsx. (61138, 61380)

Block Bindings

  • Remove not needed breaks in gutenberg_block_bindings_replace_html. (61660)
  • Simplify the HTML replacement logic until the HTML API is ready. (61236)

Patterns

  • Pattern overrides: Use block binding editing API. (60721)

Components

  • Assess stabilization of Theme. (61077)
  • Upgrade @types/reactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. package and @types/react-dom. (60796)
  • Fix problem with gradient-parser types. (61679)

Block Editor

  • Improve LineHeightControl unit tests. (61337)

Editor

  • Move the starter template options to the editor package. (61665)

Post Editor

  • Edit post: Do not consider sidebars mutually exclusive. (61468)
  • Editor: Move the sidebar component to the editor package. (61497)

Site Editor

  • Site Editor sidebar: Provide explicit backPaths, remove the getBackPath helper. (61286)

Data Views

  • Expand typing more components. (61654)
  • Add end-to-end tests for keyboard interactions in DataViews ListView. (61648)
  • Add types to the ViewGrid component. (61667)
  • Type the BulkActions component. (61666)
  • Type the ItemActions component. (61400)
  • Type the ViewList component. (61246)
  • Remove onActionPerformed & onActionStart from the ActionModal API. (61659)

Interactivity API

  • Add types for warn helper. (61687)
  • Enable strict type checking. (59865)

Tools

Testing

  • Convert FocalPointPicker tests to TypeScript. (61373)
  • E2E: Fix artifacts handling in CI. (61338)
  • Interactivity API: Fix flaky tests for attribute hydration. (61615)
  • Lightbox UI block override tests. (61414)
  • Playwright Utils: Silence some of the warnings coming from Firefox. (61451)
  • Test: Fix failing style linting error. (61649)
  • Tests: Fix flaky interactivity deferred test. (61359)

Build Tooling

  • Add stylelint rule to disallow the order CSSCSS Cascading Style Sheets. property. (61243)
  • Enforce @since tags in /packages/block-serialization-default-parser/ and other files. (60007)
  • Bug: False positives for react-hooks/exhaustive-deps. (61599)
  • Scripts: Add RTLCSS to wp-scripts. (61540)
  • WP-ENV: Fix return type and tests. (61631)
  • Create Block: Match specified engines with Gutenberg and CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. (61430)
  • Set prefer-dedupe as the default. (61630)
  • build: Suggest workaround if tsc --build fails. (61501)
  • build:package-types: Run silently to reduce user confusion. (61530)
  • GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ Actions: Fix PHP file change detection filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. pattern. (61183)
  • Dedupe packages. (61532)
  • Patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. react-autosize-textarea for updated types. (61570)
  • Upgrade @use-gesture/react. (61503)
  • Upgrade framer-motion. (61572)

First time contributors

The following PRs were merged by first time contributors:

Contributors

The following contributors merged PRs in this release:

@aaronrobertshaw @afercia @ajlende @amitraj2203 @anton-vlasenko @artemiomorales @bacoords @carolinan @cbravobernal @colinduwe @DaniGuardiola @DAreRodz @desrosj @draganescu @ellatrix @fullofcaffeine @geriux @getdave @gigitux @hbhalodia @jameskoster @jasmussen @jeryj @jffng @johnhooks @jorgefilipecosta @jpstevens @jsnajdr @juanmaguitar @kevin940726 @kovshenin @MaggieCabrera @Mamaduka @mcsf @mrmurphy @ndiego @noisysocks @ntsekouras @oandregal @ramonjd @retrofox @richtabor @ryelle @SantosGuillamot @scheinercc @scruffian @shail-mehta @sirreal @stokesman @StyleShit @swissspidy @t-hamano @talldan @tellthemachines @tyxla @vipul0425 @WunderBart @youknowriad

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

Core Editor Improvement: Upgrade your designs

These “CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Editor Improvement…” posts (labeled with the #core-editor-improvement tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.)) are a series dedicated to highlighting various new features, improvements, and more from Core Editor related projects. 

Important design tools have shipped in the last few GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ releases, with additional ways to take advantage of the creative flexibility already available with blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. themes. Here’s a closer look at what these tools unlock ahead of the next major WordPress release.

Offer individual typography and color variations

Style variations bundled with block themes allow you to seamlessly transform your site’s look and feel fast, all while using the same theme. Sometimes though, you may want to offer more design options without offering entirely new styling changes. 6.6 is slated to add the ability to target color or typography only variations and offers them as presets, separate from overall style variations. These new color and typography presets offer more contained changes, making it simple to offer broader color options or typography options out of the box with your theme. To use this new option, theme authors will need to create color or typography only variations that ideally work well with the overall variatiosn you’re already offering. For example, perhaps you want to provide a few more typography options for folks to use across each variation. Of note, for any style variations that only contain color and typography changes, these will now automatically appear in this separate preset flow.

For a greater view of this general area, dive into the Colors and typeset presets from theme style variations overview issue and see the latest. 

Create overlapping designs with negative margins

Previously, you could only create overlapping designs with negative margins. As of Gutenberg 18.3, you can add negative margins right in the Site Editor for all blocks that support margin controls. The negative values need to be manually entered to balance some UXUX User experience considerations and add some guardrails, meaning they can’t be selected by dragging. 

Want to share something you create with this new option in the next WordPress release? Share it in the Pattern Directory! For now, enjoy exploring.

Embrace the Grid

Grid is a new layout variation for the Group block stabilized in Gutenberg 17.8 that allows you to display the blocks within the group using CSSCSS Cascading Style Sheets. grid. Of note, any block can use this new grid layout thanks to the supports key in block.json. There are two options for the grid layout:

  • “Auto” generates the grid rows and columns automatically using a minimum width for each item. 
  • “Manual” lets you specify the exact number of columns.

This is just the beginning. Efforts are underway to let you drag and drop, andresize blocks on the grid, providing a more visual and intuitive experience. Work is also in progress to improve how folks create layouts in general. If you want to follow how this feature evolves, check out this tracking issue, watch the recent demo, and join the dedicated #feature-grid SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel. 

Changelog

June 6th: updated the Mix and Match variations in light of a discussion that has changed this feature changing it to allow theme authors to create typography or color only variations that show up outside of the main style variation flow.

Thanks to @richtabor and @laurlittle for help with editing this post.

#core-editor, #core-editor-improvement, #gutenberg

What’s new in Gutenberg 18.2? (24 April)

“What’s new in GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/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 project (formerly called Full Site Editing).

Gutenberg 18.2 is ready and available for download!

The latest release includes 234 pull requests from 54 contributors, and generally focuses on polishing features, and addressing bugs. Significant activity has also been directed towards improving documentation and code quality.

We extend a warm welcome and thanks to four new first-time contributors! 🎉

Improve Pattern Overrides Experience

Gutenberg 18.2 refines the flow of turning pattern overrides on and off. It introduces a new DisallowOverridesModal for easier interaction. The solution removes complexity by focusing on a more intuitive workflow, including a modal confirmation when disallowing overrides and pre-populated names for quicker re-enablement. Through consistent interaction, we aim to simplify the user experience. (60769)

Enabling Template Preview in the Post Editor for Non-Administrators

We aim to enhance collaboration and flexibility in WordPress. By changing the rules for template previews, we now allow users with lower roles, like Editor, to view and switch between templates. This update resolves a previous issue by permitting non-administrators to see templates while editing content. (60447)

Site Editor: Support Starter Patterns

When creating a new post or page in the site editor, a modal window allows users to choose a pattern to kickstart their layout and design flow. This feature was previously only available in the post editor. (60745)

Simplify Template Reset Language

A frequent observation from previous outreach: 

Why are “clear customizations” for a template in a different place (in the title area) and named differently from “reset defaults” for styles?

The term “Clear customizations” was changed to “Reset,” with label updates to maintain consistency across the Site Editor and Command Palette. This change aims to improve clarity and reduce confusion for users performing template resets. The updated terminology aligns with other languages throughout the editorial experience, making the process more intuitive. (60256)

Other Notable Highlights

  • Animation improvements – subtle easing can make a huge impact
    • Adjust frame animation profile. (60589)
    • Animate the radius of the frame. (60415)
    • Improve the headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. animation. (60408)
    • Editor: Animate opening and closing editor right sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme.. (60561)
    • Editor: Animate the inserter and list view panels. (60665)
  • Post Editor: Update publish flow (60456)

Changelog

Full changelog available
  • Bump minimum required PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher version to 7.2 (60714)

Enhancements

Site Editor

  • Add rename and trashTrash Trash in WordPress is like the Recycle Bin on your PC or Trash in your Macintosh computer. Users with the proper permission level (administrators and editors) have the ability to delete a post, page, and/or comments. When you delete the item, it is moved to the trash folder where it will remain for 30 days. actions to page panel. (60232)
  • Adjust frame animation profile. (60589)
  • Animate the radius of the frame. (60415)
  • Create router adapter for sidebar. (60466)
  • Improve the header animation. (60408)
  • Index view for Templates & Parts: Use grid layout as default. (60069)
  • Pages: Display content frame in mobile when canvas is not edit. (60409)
  • Simplify template reset language. (60256)
  • Template parts in patterns page: Add author field. (60372)
  • Template parts: Set backpath to patterns page. (60667)
  • Update hub markup and animation. (60410)
  • Update site hub action positioning. (60511)

Components

  • CustomSelectControlV2: Support disabled in item types. (60896)
  • ExternalLink: Replace icon with unicode arrow. (60255)
  • InputBase: Simplify focus styles. (60226)
  • ProgressBar: Moved width to css var for perf. (60388)
  • SlotFill: Replace valtio with custom ObservableMap. (60879)
  • Tabs: Fallback to first enabled tab if no active tab Id. (60681)
  • Text: Add text-wrap: Pretty. (60164)
  • Try: Reduce checkbox size in data views. (60475)

Post Editor

  • Confirm dialog: Use more descriptive text for the confirm button. (60364)
  • Editor: Add wordcount and reading time info in post card. (60672)
  • Editor: Animate opening and closing editor right sidebar. (60561)
  • Editor: Animate the inserter and list view panels. (60665)
  • Editor: Update post URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org component. (60632)
  • Editor: Use the ‘ConfirmDialog’ component in template validation notice. (60385)
  • Enable template preview in post editor for non administrators. (60447)
  • Support insert before/after keyboard shortcuts when focus is within the list view. (60651)
  • Update publish flow. (60456)

Patterns

  • Add a “All Template Parts” section. (60775)
  • Back Compatback compat Backward compatibility - a desire to ensure that plugins and themes do not break under new releases - is a driving philosophy of WordPress. While it is a commonly accepted software development practice to break compatibility in major releases, WordPress strives to avoid this at all costs. Any backward incompatible change is carefully considered by the entire core development team and announced, with affected plugins often contacted. It should be noted that external libraries, such as jQuery, do have backward incompatible changes between major releases, which is often going to be a greater concern for developers.: Add Patterns submenu for WordPress 6.4. (60804)
  • Patterns page: Add edit & view revision actions to parts. (60659)
  • Remove “Template parts” sidebar group. (60359)
  • Site Editor: Support starter patterns. (60745)

Synced Patterns

  • Adjust allow pattern overrides UXUX User experience flow. (60769)
  • Consolidate “bound blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience.” color and “synced” colors. (60617)
  • Improve override indication for editable blocks in synced patterns. (60599)
  • Refine rename flow for blocks with overrides. (60234)

Zoom Out

  • Adjust block selection button. (60348)
  • Animation: Avoid fixed width when animating the secondary sidebar. (60693)
  • Introduce section container selection when assembling patterns (zoom out mode). (59249)
  • Update zoom out scale. (60618)

Block Library

  • Add loading state on image upload in featured imageFeatured image A featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts., Site logo and Cover blocks. (59519)
  • File: Use HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. to update the PDF preview label. (60494)
  • Navigation block: Add current-menu-item class for post type archive. (57808)
  • Remove block renaming control from advanced inspector controls group. (60453)

Data Views

  • Add ability to display fields as a badge in grid layout. (60284)
  • Data views table row: Make checkboxes and actions visible on touch devices. (60829)
  • DataViews: Make the experiment about custom views. (60813)

Layout

  • Add a Row control to grid layout in manual mode. (60652)
  • Apply negative margins for alignfull children of blocks with custom padding set. (60716)
  • Try reducing specificity of layout style selectors. (60228)

Block Editor

  • Remove animation from InlineLinkUI. (60575)
  • Remove root appender. (60697)
  • Try: Add new textAlign block support. (59531)

Global Styles

  • Background image: Display default background size value in global styles. (60490)
  • Background UIUI User interface control labels. (60264)
  • Use text and button background color for color indicators. (59514)

Font Library

  • Change Spinner to ProgressBar component. (60570)

Interactivity API

  • Include preact/debug when SCRIPT_DEBUG is enabled. (60514)

New APIs

Extensibility

  • Editor: Support PluginPostStatusInfo Slot in the site editor. (60814)
  • Editor: Unify PluginMoreMenuItem API between post and site editors. (60778)
    • Fix: Use coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. instead of core/editor on normalizeComplementaryAreaScope. (60821)
  • Editor: Unify PluginSidebarMoreMenuItem. (60853)
  • Editor: Unify the PluginSidebar slot between post and site editors. (60815)

Bug Fixes

  • Fix: Add types to useSuspenseSelect. (60733)
  • Fix experimental useHasRecursion deprecation. (60451)
  • Fix translatable string in pagination modal. (60742)
  • Interactivity: Return useMemo and useCallback hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.. (60474)
  • Only show block icon in toolbar for contentOnly blocks when block is a synced block. (60647)
  • Patterns: Guard for unknown pattern in server-side resolver. (60464)
  • Snackbar: Make the explicitDismiss string translatable. (60368)
  • Update standardisation of ‘Navigation MenuNavigation Menu A theme feature introduced with Version 3.0. WordPress includes an easy to use mechanism for giving various control options to get users to click from one place to another on a site.’ to have both words capitalised in user-facing menus. (60262)
    • Standardise capitalisation of Navigation Menu in sidebar. (60527)

Block Library

  • Embed: Avoid retrying valid URLs. (60655)
  • File: Mark update for setting default label as non-persistent. (60492)
  • Fix don’t close overlay menu when focus leaves submenu. (60406)
  • Fix pattern block recursion handling. (60452)
  • Image: Fix cropper resize on align change (reactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/.-easy-crop upgrade). (60581)
  • Latest Posts: Remove wrapper div and apply consistent class. (60728)
  • List: Disable edit as HTML support. (55656)
  • Media & Text: Hide the alt text option for featured images. (60496)
  • Post title: Re-add the paragraph level (without UI). (60548)
  • Pullquote: Reduce specificity of padding rule to avoid conflicts with global styles. (60649)
  • Separator block: Reduce default border styles to avoid conflicts with global styles. (60740)

Site Editor

  • Chore: Fix missing comma on welcome guide styles. (60596)
  • Fallback to URL when site title is empty. (60885)
  • Fix activating a theme in site editor when previewing. (60699)
  • Fix site icon animation. (60419)
  • Fix small regressionregression A software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5. on the resize handle. (60427)
  • Fix the removePropertyFromObject function throws an error if the object is null. (60831)
  • Fix: Style issue on page actions button. (60592)
  • Pattern page: Fix deps for onActionPerformed useCallback. (60784)
  • Remove outdated border radius animation. (60454)
  • Router: Load proper sidebar for /wp_template. (60850)
  • [Site Editor]: Fix ability to edit trashed pages. (60236)

Post Editor

  • Editor: Do not render publish time and post status panels in design post types. (60857)
  • Editor: Fix post status label styles for low-capability users. (60854)
  • Fix display of shortcut to add non breaking space in the post editor. (60625)
  • Fix: Action button alignment on details panel. (60773)
  • Fix: Action order is different from inspector and dataviews. (60877)
  • Fix: Do not show pattern and template actions on the post editor. (60568)
  • Fix: Missing items parameter and or missing onActionPerformed calls. (60753)
  • Fix: Trash Post action and permanently delete post action do not show errors on single item. (60597)
  • Post Editor Header: Make block toolbar toggle button focus visible. (59781)

Block Editor

  • Avoid errors when a block variation icon is an object. (60766)
  • Fix external link indicator in Link Control. (60439)
  • Fix for isPossibleTransformForSource handling selecting inexistent block. (59410)
  • Fix stuck dragging mode in UI in Firefox when dealing with deeply nested lists. (60845)
  • Prevents delete key from undoing automatic changes. (60858)
  • Raw Handling – msListIgnore – Check attributes are valid. (60375)

Data Views

  • DataViews: Fix typing in combobox filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output.. (60819)
  • Fix default layout configuration in pages list. (60407)
  • Fix pattern titles. (60640)

Zoom Out

  • Don’t allow shuffle for locked patterns. (60381)
  • Prevent exiting Zoom Out mode from stealing focus. (60441)
  • Respect reduced motion when engaging zoom out mode. (60808)

Font Library

  • Avoid overriding custom settings on font library save. (60438)
  • Fix modal scrollbar. (60641)
  • I18Ni18n Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.: Add context to ‘Library’ string. (60520)

Components

  • Fix link control link preview when it displays long URLs. (60890)
  • ProgressBar: Fix CSSCSS Cascading Style Sheets. variable with invalidinvalid A resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. value. (60576)

Layout

  • Always add semantic classes. (60668)
  • Don’t output base flow and constrained layout rules on themes without theme.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML.. (60764)
  • Fix responsive column span logic on the front end. (60976)
  • Restore classic auto margin rule to its previous specificity. (60802)

Interactivity API

  • Allow multiple event handlers for the same type with data-wp-on. (60661)
  • Update the query block to permit non-core interactive blocks. (60006)

Templates API

  • Fix static posts page setting resolved template. (60608)
  • Fix: Honor ‘template_hierarchy’ filters on template fallbacks. (60377)

Distraction Free

  • Only show inserter in document tools if DFM is off. (60426)
  • Remove alpha from edit post header. (60431)

REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/.

  • Fix PHP notice triggered by ‘gutenberg_update_initial_settings’. (60862)

Global Styles

  • Editor styles: Delete duplicate backwards compat CSS custom properties. (60400)
  • Fix browser warning regarding highlight colors. (60555)

AccessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)

  • Details Block: remove overflow:Hidden style. (60270)
  • Do not render pattern aria description if not button is rendered. (60653)
  • Fix inserter pattern pagination focus loss. (60620)
  • Make sure Social icons links aren’t empty and improve UI clarity. (60047)

Performance

  • Add null check to prevent errors in get_block_template filter. (60491)
  • Block preview: Build in async rendering. (60425)
  • Editor canvas: Reduces resize listeners. (60682)
  • Layout support: Avoid two block editor store subs. (60612)
  • Optimize the rendering of the EditorStyles component. (60493)
  • Post Title: Avoid accidental types requests. (60531)
  • Preview: Skip rendering rich text. (60544)
  • Previews: Avoid unneeded block selectors. (60543)
  • Site Editor: Close the editor sidebar by default. (60820)
  • Zoom-out: Scale should be stable function. (60580)
  • getEntityRecords: Batch actions. (60591)

Block Library

  • Avoid calling getBlocks selector for navigation link blocks. (60458)
  • Image cropper: Remove clientWidth prop with useResizeObserver. (60674)
  • Navigation block: Avoid selector + style recalc on mount. (60572)
  • Pattern block: Avoid fetching all reusable blocks on mount. (60310)
  • Post Featured Image: Optimize store subscriptions. (60770)

Site Editor

  • Optimize the AddTemplate component used in data views pages. (60586)
  • Sidebar slide animation: Replace motion.div with CSS animation. (60849)

Documentation

  • Add AutosaveMonitor component JSDoc and populate README with auto-gen documentation. (60882)
  • Add documentation for disableLineBreaks property of RichText. (56284)
  • Added Documentation for PostExcerptCheck. (60864)
  • Added links to related components. (60726)
  • Correct link to the theme json reference. (60517)
  • DimensionControl: Fix story configuration. (60703)
  • Docs: Fix typos in interactivity API reference. (60870)
  • Docs: Update wording in Block Editor Handbook to reflect that all examples now use JSX. (56315)
  • Fix: Grammar typo on packages/dataviews/src/search-widget.js. (60588)
  • Fix: Link to the block building tutorial. (60518)
  • Fixes a link to the getEntityRecord documentation. (60823)
  • Improve documentation for block variation isActive property. (60801)
  • Update: Hardcoded documentation link to a branchbranch A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch". that does not exist. (60671)
  • Update: Reference editor scope instead of edit-site, edit-post on interface package documentation. (60818)
  • [Create Block] Adding documentation for the transformer property. (60445)

Code Quality

  • Added @return after @global in php doc. (60611)
  • Blocks: Remove client-side polyfill for ‘selectors’. (60846)
  • [Block Bindings] Don’t use hooks. (60724)
  • Chore: Fix: Wrong JSDOC for an action return. (60786)
  • Chore: Simplify some CSS margin rules. (60816)
  • Editor: Serve as a proxy for the interface package. (60748)
  • Editor: Unify the auto-switch sidebars behavior. (60869)
  • Editor: Unify the keyboard shortcuts modal. (60866)
  • Editor: Unify the names of the sidebars between edit post and edit site. (60856)
  • Editor: Unify the preferences modal name. (60871)
  • Fix: Remove unused CSS for TemplatePartHint. (60852)
  • Fix: Remove unused css from page panels styles. (60774)
  • Fix: Font Library typo. (60751)
  • Fix: Remove unused CSS code from the site editor. (60662)
  • Interactivity API refactor to TypeScript (utils & kebabToCamelCase). (60149)
  • Reexport createSelector from data package. (60370)
  • Refactor: UseBlockTools cleanup. (59450)
  • Remove comment that no longer applies about appearance-tools support. (60844)
  • Reuse and unify post and page actions, accross the different use cases. (60486)
  • Test: Validate block & theme json. (57374)
  • Tests: Shard JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. unit tests. (60045)
  • Tests: Share JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/. build assets across PHP workflows. (60428)
  • Update: Avoid two useSelect calls on PostActions. (60752)
  • Update: Make content locking related selectors private. (60827)
  • Update: Move template actions to the editor store. (60395)
  • Update: Remove keyCode usage from dataviews package. (60585)
  • Update: Use util getVariationClassName instead of computing the variation inline. (60664)

Components

  • Deprecate reduceMotion util. (60839)
  • Navigation: Soft deprecate component. (59182)
  • NavigatorProvider: Move the same-location check to the goTo function. (60767)
  • ObservableMap: Optimize unsubscribe and add unit tests. (60892)
  • Remove CSS hack for Internet Explorer 11. (60727)

Post Editor

  • Editor: Optimize the ‘PostSlug’ component. (60422)
  • Editor: Use hook instead of HoC in ‘ThemeSupportCheck’. (60807)
  • Editor: Use hooks instead of HoCs in ‘PostTrashCheck’. (60380)
  • [Editor]:Get post content in PostContentInfo component. (60743)

Data Views

  • DataViews: Remove onDetailsChange event. (60387)
  • Rename displayAsColumnFields to columnFields API. (60504)
  • Simplify visually hidden label. (60835)

Block Editor

  • Refactor Link UI States. (59762)
  • Switching pattern categories inserter to Tabs component with arrow key navigation. (60257)

Tools

  • Update @talldan in codeowners file, remove from edit-widgets package. (60800)

Testing

  • Add end-to-end test for activating themes in site editor. (60707)
  • Automated Testing: Update end-to-end test npm commands. (60376)
  • Fix flaky Site Editor URL navigation end-to-end test. (60675)
  • PHP unit testunit test Code written to test a small piece of code or functionality within a larger application. Everything from themes to WordPress core have a series of unit tests. Also see regression. workflow: Try removing 7.0 and 7.1. (60686)
  • Perf: Improve way we measure template loading by adding posts. (60516)
  • Performance Tests: I’m tired of doing head math 😊. (60509)
  • Upgrade Playwright to v1.43. (60635)
  • tip: Remove unecessary delay in tests except where needed. (60897)

Build Tooling

  • Dependencies: Upgrade babel. (57311)
  • Upgrade simple-git dependency. (59915)
  • Update Typescript to 5.4.5. (60793)

First-time contributors

The following PRs were merged by first-time contributors 👏

  • @asheshmagar 🏅 Font library: Fix typo. (60751)
  • @DaniGuardiola 🏅ProgressBar: Moved width to CSS var for performance. (60388)
  • @garridinsi 🏅 Interactivity API refactor to TypeScript (utils & kebabToCamelCase). (60149)
  • @xhemals 🏅 Update standardization of ‘Navigation Menu’ to have both words capitalized in user-facing menus. (60262), Standardise capitalization of the Navigation Menu in the sidebar. (60527)

Contributors

The following contributors merged PRs in this release:

@aaronrobertshaw @afercia @andrewserong @arthur791004 @artpi @asheshmagar @atachibana @carolinan @colinduwe @colorful-tones @DaniGuardiola @DAreRodz @draganescu @ellatrix @fabiankaegy @flexseth @garridinsi @geriux @getdave @ixkaito @jameskoster @jasmussen @jeryj @johnhooks @jorgefilipecosta @jsnajdr @kevin940726 @Mamaduka @matiasbenedetto @mhkuu @mikachan @mirka @noisysocks @ntsekouras @oandregal @ocean90 @okmttdhr @prajapatisagar @ramonjd @richtabor @ryanwelcher @scruffian @shail-mehta @shimotmk @simonhammes @sirreal @Soean @sunil25393 @t-hamano @talldan @tellthemachines @tyxla @xhemals @youknowriad

Props to @joen, @priethor and @bph for assisting with the preparation of this post and @vcanales, @mcsf, and @dmsnell for supporting me through my first Gutenberg release.

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