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 7.4 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

Data Views Update – June 2024

With the last few releases of WordPress, the glimmers of phase 3 of the 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/ roadmap are starting to shine through, namely in the form of the new powerful Data Views. While exciting to see a glimpse of what’s to come, it’s also causing an understandable increase in questions – What can we use today? What should we use based on each use case? What work is coming up next? This post seeks to provide answers at a high level view of these questions, along with some general context as to what’s being done and why. It’s pulled from a wide range of conversations including advancing the site editor index views, Roadmap to 6.6, and more. This is and shall continue to be an evolving conversation.

Background: 

What problems are Data Views trying to solve?

The current WP List Tables lack the flexibility required for more complex websites and are not suited for the technological demands of phase 3, which emphasizes collaboration workflows like saving and sharing specific views. Data Views aims to revolutionize these views by providing enhanced functionality, including alternative display options, extensive customization capabilitiescapability A capability is permission to perform one or more types of task. Checking if a user has a capability is performed by the current_user_can function. Each user of a WordPress site might have some permissions but not others, depending on their role. For example, users who have the Author role usually have permission to edit their own posts (the “edit_posts” capability), but not permission to edit other users’ posts (the “edit_others_posts” capability)., and robust extension points.

What are Data Views? 

Data Views refers to an improved and reusable UIUI User interface for different screens in WordPress that deal with collections of things whether that’s templates, patterns, posts, media, and more. Currently, those views are known as WP List Tables and Data Views seeks to replace those over time. It’s being built with extensibility in mind and is a big part of phase 3, specifically the Adminadmin (and super admin) Redesign efforts. This new UI will also power other long term future parts of phase 3 work, including workflow improvements for assigning folks to review posts or creating custom views to streamline processes. Currently, the Data Views are isolated just to the Site Editor and an initial version was released in 6.5 with a broader iteration underway for 6.6.

Below is a video showing the current WP List Tables in comparison to the new Data Views, showing both shared functionality and some of what the Data Views can offer that WP List Tables can’t, like different layouts, exposing more fields, and offering previews:

Why is the work being approached this way?

This work is intentionally being done first in the Site Editor with private APIs to allow for quick iteration and a more narrow impact than starting in the broader wp-admin landscape. The following principles are in mind as this work is underway:

  • Iteratively, with each step bringing meaningful improvements.
  • Stay subject to feedback from the broader community.
  • Stay backwards compatible.
  • Focus on 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).
  • Built with extensibility in mind from the start. 
  • Best in class user experience. 

Ultimately, whatever is shipped publicly will need to be maintained and it’s important to avoid disruptive changes while these efforts are in an iterative stage.  

What’s happening for WordPress 6.6?

For WordPress 6.6, set to launch in July, the release includes work to bring the various management pages forward in the Site Editor (manage all templates, manage all template parts, manage all pages) so those options are immediately seen when visiting the respective sections, reducing the number of steps to access important information. For pages, a new side by side layout will be introduced so one can see both a list of all pages and a preview of the currently selected page. For patterns, template part management will be removed and integrated into the current overall patterns section. Interspersed within all of these larger changes are smaller enhancements in functionality and feel, including details normalization that will eventually scale up into a bulk editing tool.

What’s coming up after WordPress 6.6?

A major priority is extensibility APIs so plugins in the future can begin altering and extending these pages, inevitably resulting in more feedback. Currently, an initial API has been bootstrapped to allow third-party developers to register and unregister post type actions with broader, high level plans outlined.

Outside of that, there are explorations underway to bring the new list views, as an opt-in experiment in 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., to the Posts listing and the Media library. These are intentionally being done as experiments for now to see what might be viable for a future release and will take the form of contained Site Editor-like instances. At the same time, a Data Views Forms effort is underway that’s meant to allow for bulk editing first and, in the future, to be a framework to generate forms and details panels.

Re-imagined WordPress Media Library showing an organized sidebar with categories, file types, and tags on the left with a list of all media files in the frame.

A design that imagines a Data Views powered Media Library experience. 

Can we use Data Views?

TLDR: This work is in an evolving middle stage where feedback is needed but what’s being done isn’t fully formed to implement wholesale. 

Extensibility has been a key piece of this work baked into all of these efforts from the very beginning. However, in order to move quickly to build on new parts of Data Views and avoid breaking changes, these APIs are currently Gutenberg plugin-only APIs. At the same time, it’s important to get extender feedback to shape the work being done. 

For now, folks can bundle the Data Views styles into a plugin. You can even copy/paste these frames in the design library for quick mockups. Currently, the @wordpress/dataviews package is public already, meaning you can install it, use it from npm, and bundle it in your own scripts. What remains private is that it’s not exposed as a WP global, which means future breaking changes are possible but you’ll be able to upgrade the package at your own pace if you bundle it. There are also no extensibility APIs for the CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. provided data-views yet for WordPress 6.6 (Templates, pages, patterns) which means you can’t alter these pages yet from a WordPress plugin. As mentioned above, an initial API has been bootstrapped to allow third-party developers to register and unregister post type actions with broader, high level plans outlined for furthering extensibility. 

For those who can adopt this work, please do and report back around the edges you find so we can iterate. For some, you may need to wait until it’s fully formed. The answer depends on what you’re trying to do and on what timescale. As always though, going as native as possible as soon as possible is beneficial both to ensure what’s being built works for your use case and to prevent the future work that will be needed to adopt what’s built. 

In the future, you can imagine a more customizable interface all within the same current navigation structure rather than a wp-admin like interface. Folks can pick and choose which plugin interfaces to pin and use, rearrange navigation items, and experience a similar flow and presentation no matter where they go. We aren’t there yet but we’re on a path in that direction:

View of an imagined WordPress interface with a sidebar showing various options to select between and a preview of the site in question.

Where can I follow along and provide feedback?

Feedback is wanted and needed! Here are a few ways to follow along, depending on the level you want:

To share feedback and ask questions, check currently open issues to leave a comment or open a new GitHub issue in the Gutenberg repo. This post is simply to share an update and the best place to get involved in a discussion is in 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 by the repository owner. https://github.com/. If you have clarifying questions about the post itself, you’re welcome to ask them.

Thank you to @fabiankaegy @jorbin @youknowriad @joemcgill @mikachan for reviewing and collaborating on this post. Thank you to @joen for creating the video used.

#gutenberg, #phase-3, #plugins

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 7.4 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 capabilitiescapability A capability is permission to perform one or more types of task. Checking if a user has a capability is performed by the current_user_can function. Each user of a WordPress site might have some permissions but not others, depending on their role. For example, users who have the Author role usually have permission to edit their own posts (the “edit_posts” capability), but not permission to edit other users’ posts (the “edit_others_posts” capability). 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 7.4 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 by 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

Summary of Hallway Hangout on what’s next in Gutenberg

This is a summary of a Hallway Hangout that was first announced on Make Core. The aim was to have a shared space where we could chat about what’s being worked on to provide broader awareness to more WordPress contributors and get feedback. The hope is that by coming together early before the next betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. period to talk about different features, we can, as a community, flush out concerns sooner, help more folks get involved, and find ways to work better together. Thank you to the 18 folks who joined and to @saxonafletcher and @richtabor for demoing. 

Video Recording:

Demos:

The first hour or so covered demos of features with a few questions mixed throughout. What follows is a high level description of the demo topic with links to 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 by the repository owner. https://github.com/ issues to dive into more and questions asked and answered related to the topic. To make it easier to follow, I also tried my best to split each demo into each section so folks can pick and choose to engage as they’d like. This doesn’t include the full footage but it includes the relevant bits for demoing.

Theme Style Presets

Rich quickly went through at a high level theme style variations, using Twenty Twenty-Four theme as a use case. He then went through abstracting color and typography styles (more than just fonts and includes things like letter spacing) as their own presets. This work was initially merged in a recent PR and works with all existing themes today that support style variations. Going forward, there are some technical details to iron out along with potentially evolving the experience to better support themes with a large set of variations. For a greater view of this general area, dive into the Colors and typeset presets from theme style variations overview issue. 

Section Styles

Rich recapped 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. style variations mechanism and how you can register variations via 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. for multiple blocks at a time, including a demo of how this functionality would work in the editor to allow for “section styles”. This isn’t inventing anything new but modifying existing functionality of block styles. The biggest new functionality is that you can assign a variation to multiple blocks and to child blocks at one time. For Rich’s demo, switching between variations changed the styling for Group, Column, and Columns blocks. Overall, this work for 6.6 is being tracked here with the biggest PR still underway to extend block style variations as a mechanism to support this.

Q: For light/dark in the block styles demo, how are these configured differently than a block style or block variation?

Reusing block style variation and applying it to all child/nested blocks too. With all of those combinations, can still granularly change things. It’s make theme.json more portable across themes. 

Q: Are there any naming conventions needed for consistency of colors?

Any theme can decide what these variations look like so it doesn’t matter what the color slugs are that a theme uses. In previous themes, base and contrast were primary color slugs used but any other color combinations you can’t guarantee. This allows the theme to define what combinations of colors work well and the theme styles that variation rather than guessing and match up different slugs. 

We briefly touched on the many related issues there are around color naming as a broader topic: #29568 & #53996 & 39372.

Q: Is the theme.json you are showing available to look at somewhere?

Yes. Here’s the relevant, new bits from Rich’s demo:

{
"$schema": "https://schemas.wp.org/trunk/theme.json",
"version": 2,
"title": "Section Styles",
"styles": {
"blocks": {
"variations": {
"colorway-1": {
"supportedBlockTypes": [
"core/group",
"core/columns"
],
"color": {
"background": "var(--wp--preset--color--theme-2)",
"text": "var(--wp--preset--color--theme-3)"
},
"blocks": {
"core/separator": {
"color": {
"text": "var(--wp--preset--color--theme-3)"
}
},
"core/heading": {
"elements": {
"link": {
"color": {
"text": "var(--wp--preset--color--theme-3)"
}
}
}
}
},
"elements": {
"link": {
"color": {
"text": "var(--wp--preset--color--theme-3)"
}
},
"button": {
"color": {
"background": "var(--wp--preset--color--theme-3)",
"text": "var(--wp--preset--color--theme-1)"
},
":hover": {
"color": {
"background": "var(--wp--preset--color--theme-4)",
"text": "var(--wp--preset--color--theme-1)"
}
}
},
"heading": {
"color": {
"text": "var(--wp--preset--color--theme-3)"
}
}
}
},
"colorway-2": {
"supportedBlockTypes": [
"core/group",
"core/columns"
],
"color": {
"background": "var(--wp--preset--color--theme-4)",
"text": "var(--wp--preset--color--theme-2)"
},
"blocks": {
"core/separator": {
"color": {
"text": "var(--wp--preset--color--theme-2)"
}
},
"core/heading": {
"elements": {
"link": {
"color": {
"text": "var(--wp--preset--color--theme-1)"
}
}
}
}
},
"elements": {
"link": {
"color": {
"text": "var(--wp--preset--color--theme-2)"
}
},
"caption": {
"color": {
"text": "var(--wp--preset--color--theme-2)"
}
},
"button": {
"color": {
"background": "var(--wp--preset--color--theme-1)",
"text": "var(--wp--preset--color--theme-4)"
},
":hover": {
"color": {
"background": "#FFFFFFE3",
"text": "var(--wp--preset--color--theme-4)"
}
}
},
"heading": {
"color": {
"text": "var(--wp--preset--color--theme-1)"
}
}
}
},
"colorway-3": {
"supportedBlockTypes": [
"core/group",
"core/columns"
],
"color": {
"background": "var(--wp--preset--color--theme-5)",
"text": "var(--wp--preset--color--theme-2)"
},
"blocks": {
"core/separator": {
"color": {
"text": "var(--wp--preset--color--theme-1)"
}
},
"core/heading": {
"elements": {
"link": {
"color": {
"text": "var(--wp--preset--color--theme-1)"
}
}
}
}
},
"elements": {
"link": {
"color": {
"text": "var(--wp--preset--color--theme-2)"
}
},
"caption": {
"color": {
"text": "var(--wp--preset--color--theme-2)"
}
},
"button": {
"color": {
"background": "var(--wp--preset--color--theme-3)",
"text": "var(--wp--preset--color--theme-1)"
},
":hover": {
"color": {
"background": "var(--wp--preset--color--theme-4)",
"text": "var(--wp--preset--color--theme-1)"
}
}
},
"heading": {
"color": {
"text": "var(--wp--preset--color--theme-1)"
}
}
}
}
}
}
}
}

Q: Are these essentially class-based? i.e. will these style variations still work with CSSCSS Cascading Style Sheets. files (and JSON at the same time)?

Yes, class based like other block style variations.

Zoomed out view

Rich demoed the work being done around zoomed out editing which emphasizes patterns rather than editing blocks, allowing you to quickly build with patterns (reorder, delete, apply section styles, shuffle). There are some UXUX User experience considerations to figure out, including ensuring the mode is invoked at the right time and drag & drop works well. The work done here could also apply in the future to the experience of adding a new page or even onboarding into WordPress. It’s unclear right now whether it’s something that will be a toggle to use as you want or a view that’s offered in targeted moments (ie global styles or inserting patterns). 

Q: By zooming out for the pattern view – does that mean that patterns aren’t still useful for smaller groups of blocks (i.e. wanting to add a CTA pattern to a column)?

These patterns are still useful! This new option is simply offering a different context and allowing you to engage with patterns in a different way. This is also something to figure out how to do to provide a level to add patterns to a specific section. 

Q: I’m missing the purpose of the shuffle button. What if it was a button the showed all relevant patterns to replace the current one with?

It’s an exploration to see if it’s viable and it might not be where we end up. Of note, shuffling just goes to the next pattern rather than a random pattern. We talked at this point about different ways of interacting with patterns, including replacing patterns in the Inspector or selecting patterns from a modal (query loopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop block) or shuffling. 

Advancing data views

Saxon demoed the latest work around Data Views including a new list view layout type for posts, new default views for templates, and the efforts done to merge patterns & template parts. He discussed being able to set custom views and how useful that will be especially in an enterprise context when lots of folks are working across content. He also shared a figma prototype showing what it might look like with products, rather than posts/pages, to show a custom post typeCustom Post Type WordPress can hold and display many different types of content. A single item of such a content is generally called a post, although post is also a specific post type. Custom Post Types gives your site the ability to have templated posts, to simplify the concept. experience. 

As part of this broader work, the Details and Inspector are being unified to simplify both where to find information and the steps to get to editing (without the Details panel, you can go straight into the editing experience). We discussed extensibility, namely around the APIs currently being private but how the work is being tackled with extensibility at its coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. For folks who want to explore today, they can bundle the data view styles in their plugin. In looking ahead, we also talked about responsiveness improvements and how consumers of these components can decide how to define the experience, including any default views or custom views. 

Q: That preview of the “product custom fields” as a screen you see before the editor – how does that design relate to the modal for legacy metaboxes that is also happening?

Ideally any data values associated with a post type should be actionable within data views, including generating fields for data. Currently, the data views work is looking at ways to quick edit and bulk edit when selecting multiple items. In some cases, this might be done by editing in the Inspector. There needs to be a broader discussion to define what’s shown in each view vs in the inspector instead of at the bottom. In some cases, there are benefits for things that require more space, like products, to having a more detail style view as a middle step, to allow for editing rather than having something on the bottom or side where you’re trying to edit something in a smaller space. 

As part of this answer, we also talked about the upcoming developer hours on alternatives to custom metaboxes. 

Q: Are we able to control where our custom post type appears in the 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. order?

Not yet! Need to figure out more technical details, including around routing. 

Overrides in synced patterns

Saxon went through what synced patterns are along with how overrides function, allowing you to edit a part of a synced pattern while keeping the rest in sync, and showcased a synced pattern with overrides and contentOnly editing enabled. This work is being tracked for 6.6 after being punted from 6.5. As part of this overall feature, we also discussed advancing contentOnly editing to create a simpler editing experience by surfacing more top level sections rather than needing to work about the block hierarchy and providing easy access to edit specific aspects in the inspector. 

Q: Would like to hear thoughts on pattern overrides/content locking working with blocks that use repeatable inner blocks (lists, buttons, etc)? 

This touches on a common limitation of these kinds of tools and is captured in a related GitHub issue. We talked about how, in the future, you can add overrides for all inner blocks as a way to work around this but, for now, this limitation remains. For example, you could make a grid block overrideable with all children within it inheriting the same.

Block connections

Saxon demoed block connections with an example post type called “Events” with a custom template with a handful of blocks connected to custom fields (location, venue). Right now, this connection has to be made in code including for what’s planned for 6.6 but there’s a larger vision that includes how this could be edited in the interface in the future. For 6.6 though, the ability to edit the 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. visually is planned. Saxon demoed this by editing the custom field directly in an individual event post and showing how it was updated in the posts lists automatically. Saxon also showed how the data will all remain in sync if you have the custom field displayed in multiple places. As a final demo, Saxon showed a Query Loop block querying through the events post type and how he can simply copy/paste the blocks with custom fields into the Query Loop to reuse the functionality there. 

Q: Do these fields have to be registered somewhere or are they automatically detected/available by adding it via the code editor?

Yes, they need to be registered and be “non-protected”. Here’s part 1 and part 2 of a developer blogblog (versus network, site) post on connecting custom fields for more information.  

Q: What field types (text, select, relationship) is this expected to support when introduced? For custom fields and block binding. 

For 6.5, the following are supported: 

  • Paragraph: content.
  • Heading: content.
  • Image: URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org, alt, and title.
  • Button: text, URL, linkTarget, rel.

Grid layout

Saxon showed the work in progress layout improvements for the Grid layout option. There are two modes in Grid: auto (set minimum column width and can’t manually set items) and manual (set number of columns, set number of rows, and manually set items). Once a grid is placed in manual mode, you can reposition them and create new items. Saxon discussed the explorations around being able to “pin to grid” as a way to say that a grid item should never move and how with manual mode this idea of pinning would go away leaving everything to be seen as pinned to the grid manually. This makes manual mode more complex and, for something more structured, that’s where auto mode would be used. A big part of the entire feature is figuring out the best default experience for folks. If you want to follow this work, there’s now a 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 for discussions: #feature-grid. 

Q: Any thoughts on how some of these more unique grid layouts will work on mobile?

There are lots of various discussions around how best to do this and we need to be smart initially around how to stack items, like stack on mobile for columns.

Q: Can we overlap items?

Not yet. There’s a limit in place to prevent that. You can create overlapping items but for v1 we will limit how you can do that. The end goal is you can in the future.

Additional questions

Q: Summarizing a question asked live –  where do I get new information about what’s coming up, especially outside of the technical resources? What do I have to follow? 

We talked about how all levels of communication are needed from longer tutorials to quick reels to user friendly resources to deeply technical walkthroughs. This is a “forever problem” that cuts across how information is found on the WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ website to release resources to the entire experience of using WordPress. We talked about how the media corps work might help with this too. 

Q: How do we feel about the fact that the Fonts 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. exist while also encouraging theme builders to ship fonts so that variations (typography) are available in global styles? Themes are sometimes shipping 50 fonts. How much do we ship? Should a theme ship with no font? A lot of these themes are huge! This is a more philosophical question. 

We talked about how we could potentially reconcile these so declaring a font family in theme.json could potentially bring it into the site editor but that, in general, fonts should still provide presets for users. Ideally, it can all be connected to the font library to keep fonts in one place but we shouldn’t make users go hunting for fonts and themes should be opinionated in how they want folks to use it. 

Q: I’d love to hear if anyone has a fix for this issue I’m dealing with regarding caching and style variations.  tldr the style variations cache doesn’t clear, so you have to switch back and forth between variations to clear it while working on a new theme.

Please chime in on the issue if you think you can help! None of us on the call had a good answer for it as it mainly requires a workaround rather than a fix that can be shipped as it’s a known limitation. 

#gutenberg, #hallway-hangout, #outreach, #site-editor

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 7.4 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-capabilitycapability A capability is permission to perform one or more types of task. Checking if a user has a capability is performed by the current_user_can function. Each user of a WordPress site might have some permissions but not others, depending on their role. For example, users who have the Author role usually have permission to edit their own posts (the “edit_posts” capability), but not permission to edit other users’ posts (the “edit_others_posts” 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

What’s new in Gutenberg 18.1? (10 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).


What’s new in Gutenberg 18.1? (10 April)

Gutenberg 18.1 is ready and available for download!

With more than 150 pull requests (PRs), Gutenberg 18.1 is packed with features and 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 to suit all tastes — new pattern and template part insertion functionality, site backgrounds in global styles, 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) and performance improvements.

Lovers of documentation and code quality enhancements will be pleased to learn that their favorite PRs make up almost a third of the total number in this release!

As always, a big thank you goes out to all who contributed, with special gratitude to first-time contributors. Great work!

In this issue:

Set site background images in the Site Editor

Set site background images in the Site Editor

Version 18.1 extends background image support to top-level global styles in the Site Editor, which means you can add custom background images and photos to sites. Images can set to repeat, or be displayed as contain or cover backgrounds. (#59454)

And for those wondering — yes, as well as regular images, looping animated gifs will also work.

See more with data views

New data views in the block editor for pages and patterns

Whether it’s sorting or searching your patterns in grid and table layouts (#60337), or filtering and previewing all of your sites pages (#59950), version 18.1 brings further design consistency to configurable adminadmin (and super admin) views, not to mention quicker access and management of site assets. 

Alongside the continuous integration into 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. Editor workflows, data views have undergone improvements to accessibility and keyboard navigation (#59637).

Pattern schema and insertion

Pattern insertion with zoomed out view

Pattern insertion gets an upgrade in the latest version of Gutenberg. The editor canvas will zoom out when browsing and inserting patterns using the block inserter, allowing a greater overview of how your patterns appear alongside the rest of your site’s content. (#59775) 

Patterns are a powerful way to define design assets with configurable content. You can now give your patterns a “schema” by naming blocks that are overridable in all instances of those patterns. Users of your patterns will be able to see exactly which blocks are editable via a handy list in the 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.. (#59977)

Swap and edit template parts

Swapping template parts design in the Site Editor

When editing your site’s templates, you can select template parts and immediately view alternative designs for that template part in the sidebar. Want to replace your footer design? Click on your template’s footer and select a new one from the available designs. Voilà! (#60203)

Gutenberg has long had an option to preview a page’s template when editing that page. 18.1 lets you select and edit a page’s important template parts, such as 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. and footer. To do so, click on a template part, then hit “Edit” in the toolbar. (#60010)

Other notable highlights

The editor displays a confirmation modal before clearing template customizations. (#60119) 

You can collapse non-selected items in the list view using a handy new keyboard shortcut (Option-L on Mac, or Alt-L on Windows). (#59978).

Changelog

View the full changelog

Enhancements

Block Editor

  • Zoom out: Invoke zoom out mode when opening the patterns tab, and move the code to do so to a shared hook. (59775)
  • Block Previews: Update shadows in different contexts. (60161)
  • Update: Move post actions to the editor package. (60092)
  • Try: Show copy shortcut in block options. (60339)
  • Update image role description text to fix spacing. (60338)

Site Editor

  • Add rename page action. (60230)
  • Center the document title. (59134)
  • Consolidate when showing 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. link or action. (60194)
  • Editor: Update hover color of editor document title. (60113)
  • Improve the frame animation. (60363)
  • Try selecting closest editable block when clicking on a disabled block. (60016)
  • Update index view for pages. (59950)

Patterns

  • Add content schema to pattern editing view. (59977)
  • Close inspector on pattern categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. select. (60004)
  • Focus block selection button only in navigation mode. (60207)
  • Pattern Shuffling: Make the results deterministic. (60074)
  • Patterns page: Enable table layout. (60337)
  • Prevent reordering of header and footer template parts when zoomed out. (60054)
  • Remove manage all of my patterns link. (60345)

Block Library

  • Add __next40pxDefaultSize to Image block Title Attribute. (60117)
  • Add support “HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. Element” to Site Tagline. (59654)
  • Image: Remove temporary image check for rendering controls. (60212)
  • Quote block: Button for cite add/remove. (59073)
  • Quote block: Remove appender. (60307)
  • Reduce specificity of block library styles conflicting with block supports. (59457)
  • Update navigation blocks to use consistent link UIUI User interface labels and field sizes. (60116)
  • Summary: Polish 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.. (60110)

Post Editor

  • Block Editor: Deprecate __experimentalGetReusableBlockTitle selector. (60278)
  • Editor: Move PluginPostPublishPanel and PluginPrePublishPanel to editor package. (60344)
  • Editor: Move publish panel handling to editor store. (60340)
  • Editor: Unify publish sidebar preference. (60334)

Global Styles

  • Add background to global styles changes output. (60229)
  • Background UI controls. (59454)
  • Follow up design tweaks for global styles presets. (60031)
  • Try reducing specificity of global styles selectors only. (60106)

Data Views

  • DataViews: Add a utility to share filtering, sorting and pagination logic. (59897)
  • Data views: Remove the enumeration type as redundant. (60084)
  • Data views: Update template actions. (60075)
  • Data views: Add confirmation modal for clearing customizations in templates. (60119)
  • Data views: Make 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. a quick action again. (60165)

List View

  • Add keyboard shortcut to collapse list view items other than the focused item. (59978)
  • Adjust the List View close icon to resemble the Inspector close icon. (59999)
  • Update “Actions” string to “Options” in List View. (60136)

Templates

  • Add 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. to allow extending the list of post content blocks. (60068)
  • Render non-editable preview of template part when user does not have capabilitycapability A capability is permission to perform one or more types of task. Checking if a user has a capability is performed by the current_user_can function. Each user of a WordPress site might have some permissions but not others, depending on their role. For example, users who have the Author role usually have permission to edit their own posts (the “edit_posts” capability), but not permission to edit other users’ posts (the “edit_others_posts” capability). to edit template part. (60326)
  • Template Parts: Remove pattern title from sidebar. (60160)
  • Template Parts: Update replace flow to separate template parts from patterns. (60203)
  • Template Parts: Update the ‘Replace’ label to ‘Design’. (60156)

Zoom Out

  • Add a delete control to toolbar on zoomed out mode. (60214)
  • Media dialog push content in zoomed out mode. (60170)

Components

  • Popover / ToggleGroupControl: Use useReducedMotion() from @wordpress/compose. (60168)
  • date-fns: Bump to v3.6. (60163)

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/

  • Allow view access of template rest endpoint to anyone with the edit_post capability. (60317)

Commands

  • Polish Command Palette. (60134)

Page Content Focus

  • Allow selecting template parts in page content focus mode. (60010)

Inspector Controls

  • Add: PostCardPanel component. (59870)

Package and utility updates

  • Router: Update history package to 5.3.0, fix query string generation. (60271)
  • Create block: Add new namespacePascalCase template variable. (60223)

New APIs

Extensibility

  • Extensibility: Support PluginBlockSettingsMenuItem in the site editor. (60033)

Bug Fixes

Block Library

  • Fix enqueuing block theme styles when separate asset loading is enabled. (60098)
  • Fix lightbox UI disallow editing. (59890)
  • Fix navigation link ui close focus management. (59925)
  • Removed pointer-events none inline style due it blocking crop action. (60305)
  • Search Block: Apply font-related style inheritance to input field. (60321)
  • Columns block: Fix arrow up into it. (55197)

Site Editor

  • Fix rendering PluginTemplateSettingPanel when we’re editing a template. (60215)
  • Fix: Use viewportWidth in pattern preview data view. (60315)
  • Templates: Fix deferred rendering. (60361)
  • Site Editor: Consolidate save button functionality. (60077)
  • Revert #60300: Make sure the CSSCSS Cascading Style Sheets. class id-dark-theme is added to the editor 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. body. (60616)

Block Editor

  • Make sure the CSS class is-dark-theme is added to the editor iframe body. (60300)
  • Raw handling: Preserve class. (60331)
  • Raw handling: Preserve empty paragraphs. (59476)
  • Wiriting flow: Backspace at beginning of first paragraph block prevents block from being deleted. (56329)
  • DOM: Fix return types of focus.tabbable methods. (60274)

Components

  • CustomSelectControlV2: Fix hint behavior in legacy. (60183)
  • InputControl: Ignore IME events when isPressEnterToChange. (60090)
  • TextControl: Apply zero margin to input element. (60282)

Global Styles

  • Fix missing class for Global Styles > Colors. (60094)
  • Reset specificity of body selector when processing with postcss. (60266)
  • Shadow: Revert shadow default presets opt-in to opt-out. (60204)
  • Global Styles: Make strings translatable. (60127)
  • Skip outputting base layout rules that reference content or wide sizes if no layout sizes exist. (60489)

Zoom Out

  • Fix zoom out mode toggling between pattern category selection. (60225)

Data Views

  • Fix focus outline visibility and truncation in data view record titles. (60191)

Layout

  • Fix horizontal flex layout in classic themes. (60154)

Post Editor

  • Editor: Memoize ‘getInsertionPoint’ selector. (60015)
  • Fix block toolbar dropdown separator color. (60336)
  • 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. r57868 (Editor: Prevent font folder naive filtering causing infinite loops) from WordPress-Develop. (60141)

Block templates

  • Add null check to prevent errors in get_block_template filter. (60491)

Utilities

  • URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org: Return early in getFilename where URL argument is falsy. (60265)

Accessibility

Data Views

  • Add click-to-select behavior on table rows. (59803)
  • Data views list layout: Apply focus styles to items on focus-visible rather than focus. (60253)
  • Update field display in grid layout. (60083)
  • Data Views: Updating keyboard navigation in list layouts. (59637)

Site Editor

  • Restore Style book close button tooltip. (60177)

Block Library

  • Remove CSS order property from social icons placeholder UI. (60032)

Performance

Block Editor

  • Avoid fetching all reusable blocks (user patterns) on post/site editor load. (58239)
  • Block editor: Optimize hasSelectedInnerBlock selector. (60330)
  • Templates performance: Resolve patterns server side. (60349)

Block Library

  • Template part: Avoid pattern fetch on mount. (60297)

Block Editor

  • Inserter: Cache search normalization results. (60080)
  • Format library: Improve unknown format performance. (48761)

Experiments

Site Editor

  • Zoom-out view: Disable canvas resizing. (60104)

Documentation

  • Add auto generated 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. documentation for editor package. (60356)
  • Add component props documentation. (60350)
  • Add php @global documentation. (59931)
  • Change heading level on troubleshooting section. (60233)
  • CustomSelectControlV2: Match v1 stories to test legacy component. (60182)
  • Docs (general): Fix some typos. (60260)
  • Fix @todo tags to follow standards in WordPress comments. (60148)
  • Fix Font Collection 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. schema definition. (60285)
  • 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. documentation link to load 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. (60181)
  • Fix: Invalid links to the block supports api. (60199)
  • Fix: Non existent link to submitting to the block directory. (60389)
  • Interactivity API: Variable name correction in the documentation. (60056)
  • Create Block: Update external template documentation to include variants. (60095)

Code Quality

Block Editor

  • Add comment for unmemoized context. (60272)
  • Fix ESLint warning in BlockListBlock component. (60064)
  • RichText: Switch from disableEditing to standard html readonly attribute. (60327)
  • Site Editor: Reuse inserter search term normalization. (60218)
  • canInsertBlockType: Extract helper for selector dependants. (60235)
  • Fix editor canvas overflow on search results with position: Relative. (60287)
  • Editor: Move template areas to editor package. (60179)

Components

  • CustomSelectControlV2: Rename for consistency. (60178)
  • Navigator: Fix two nits. (60273)
  • NavigatorProvider: Move all state management to one reducer. (60190)
  • Components: Try obviating Popover pointer event trap. (59449)

Post Editor

  • Memoize the getTemplateInfo selector. (60200)
  • Update: Remove template summary component. (60351)
  • Update: Use getPostIcon selector on document bar. (60128)
  • Distraction free: Remove unwanted space from string. (60108)

Global Styles

  • Additional CSS: Add code comments contextualising tranformStyles for clarity. (60267)
  • Global styles: output :root selector for CSS custom properties. (42084)
  • Style Engine: Continue get_classnames loopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop after adding the default classname. (60153)

Font Library

  • Add test for Font Library and Theme Style Variations. (60250)
  • Update google fonts font collection data URL to the latest version available. (60079)

Block Library

  • Image: Use the new ‘useUploadMediaFromBlobURL’ hook. (60208)
  • Navigation Block: Add test coverage to check that post content is not removed. (60189)

Site Editor

  • DataViews: Don’t memoize every callback ‘PagePages’ component. (60103)
  • History: Simplify the push and replace methods. (60112)

Rich Text

  • RichText: Separate fallback instance ID for selection retrieval. (60277)

Block Locking

  • E2E: Test BlockSwitcher availability in l-post-ul-group CPT. (60254)

Data Views

  • DataViews: Fix reactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org warning error in list layout. (60101)

Tools

Testing

  • Automated Testing: Remove Puppeteer CI Job. (59311)
  • CustomSelectControlV2: Stabilize tests. (60133)
  • E2E: Fix flaky Site Editor pages end-to-end test. (60109)
  • Font Library: Add upload font test. (60221)

Build Tooling

  • Blocks: Fix double gutenberg_ prefix in built dynamic blocks PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher. (60288)

First-time contributors

The following PRs were merged by first-time contributors 🎉 :

Contributors

The following contributors merged PRs in this release:

@aaronrobertshaw @afercia @andrewhayward @andrewserong @artemiomorales @bph @draganescu @ellatrix @fabiankaegy @geriux @getdave @glendaviesnz @interdevel @jameskoster @jasmussen @jeryj @jorgefilipecosta @jsnajdr @madhusudhand @MaggieCabrera @Mamaduka @matiasbenedetto @mcsf @mikachan @mikeybinns @mirka @mujuonly @n2erjo00 @nirav7707 @noisysocks @ntsekouras @oandregal @ockham @okmttdhr @pedro-mendonca @peterwilsoncc @ramonjd @richtabor @ryanwelcher @scruffian @shail-mehta @Soean @steveariss @stokesman @t-hamano @talldan @tellthemachines @torounit @tyxla @youknowriad

Props to @andrewserong, @isabel_brison and @saxonf for assisting with the preparation of this post.

#gutenberg, #gutenberg-new

Hallway Hangout: Let’s chat about what’s next in Gutenberg

There are some big, exciting efforts underway within the 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/ project and 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. that will eventually make their way in some form to a future WordPress release. It’s all WordPress at the end of the day and, in an effort to bring people into the flow of what’s happening in the earlier stages, this hallway hangout seeks to be a snapshot of what’s being worked on to provide broader awareness to more WordPress contributors and get feedback. The hope is that in coming together early before the next betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. period to talk about different features, we can, as a community, flush out concerns sooner, help more folks get involved, and find ways to work better together. 

Important note: this hallway hangout will likely last for 90 minutes instead of the usual 60 minutes to allow for ample time to demo and discuss. 

How to join

If you’re interested in joining, the Hallway Hangout will happen on 2024-04-24 23:00 . A Zoom link will be shared in the #core 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 before starting and all are welcome to join, whether to listen or participate, for as long or as little as you’d like. This will be recorded and recapped. Note that the time for these hallway hangouts are intentionally rotated to allow for different folks to participate in different ones.

If you’re unable to make it but have something to comment on or share, I welcome you to leave feedback in the comments of this post or dive straight into the 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 by the repository owner. https://github.com/ issues linked below. This isn’t meant to replace any particular way to get involved but is meant to streamline and offer a more high bandwidth way to connect. 

Agenda

At a high level, the following items are currently on the list to go through but more might be added depending on how the next few weeks take shape. We’ll get through as many of these as we can in the order as shown below, with either demos to go through from figma, from a PR, or via the Gutenberg plugin. @saxonfletcher & @richtabor will help lead these demos:

  • Data views efforts and its relationship to the Adminadmin (and super admin) Redesign.
  • Overrides in synced patterns, including the UXUX User experience and the broader reasoning around naming to unlock an override.
  • Zoomed out view and the experience coming together to focus on patterns rather than granular 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. editing, including Advancing contentOnly editing.
  • Layout improvements, including Grid layout support.
  • Pattern styles, which would offer multiple ways of styling content based on a single palette, and Colors and typeset presets from theme style variations.
  • Style inheritance to help clarify where and why different items are styled as they are. 

There’s obviously more that could be on here but, in an effort to focus on some of the larger, more relevant work, let’s start here. We can always hold more of these in the future! Hope to see you there. 

#gutenberg, #hallway-hangout

Providing more clarity in the Gutenberg GitHub Repo

For a while now, the 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/ 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 by the repository owner. https://github.com/ repo has had a few high level labels (Overview, Tracking, Iteration) that have gotten a bit convoluted over time. Sometimes the issue is no longer relevant, is incorrectly labeled, has been updated so many times that the comments don’t follow what’s there, or double labeled. This has led to reported concerns and confusion around what work is truly active, what areas are being explored, and more. To begin to clean this up, a few things were done over the last week or so to make these labels more reliable, more consistent, and easier to follow:

  • Updating the descriptions of these labels to be concise, more descriptive, and show how they are tied to each other.
  • Changing Epic to Iteration for clarity as Epic holds different connotations for folks and is harder to grasp.
  • Triaging older issues and closing out when necessary aka the work is no longer relevant or has been completed.
  • Ensuring the labels that remain are accurate, either by not labeling the work as one of the above labels or adding/removing labels.
  • Pinging the folks who opened different issue when needed to ask for updates to ensure what’s there aligns.
  • Opening any needed overview issues related to phase 3 (this is in progress by @priethor). 

How can I use or interact with these labels? 

For context, here’s a sense of how each label should work and how you might want to use them or follow them:

  • Overview issues contain more context/strategy and narrative, often including multiple tracking issues to accomplish an area of work and existing across numerous releases. Here’s an example from phase 2.
  • Tracking issues are more tactical, broken down into individual tasks and areas of work, and exist across a few releases. It should ideally be part of a breakdown from an Overview issue. Here’s an example for layout support.
  • Iteration issues are to define iterations of a project in smaller deliverable packages, including when possible the minimum requirements to ship the iteration as a whole in a WordPress release. Expect these issues to be regularly updated and curated. They reflect more active work and often is pulled out of a list of items in a tracking issue unless the scope is small and it can pull work directly from an Overview. Here’s an example with overrides in synced patterns for 6.6.

This means if you don’t have a ton of time to pay attention to the releases or overarching work, you can use these labels to narrow your focus and stay up to date at the level you’d like. 

Label description updates

This is just a quick rundown of what’s changed, description wise, to tighten up the approach. 

Before:

  • Epic: A large body of work shaping an iteration that can be broken down into a number of smaller issues.
  • Tracking: For issues used to track large changes across the codebase
  • Overview: Offers a comprehensive breakdown of a specific area of work to act as a guidepost

After:

  • Iteration: Scoped iteration of an effort from a tracking issue or overview issue ideally for a major releasemajor release A release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope..
  • Tracking: Tactical breakdown of efforts across the codebase and/or tied to Overview issues.
  • Overview: Comprehensive, high level view of an area of focus often with multiple tracking issues.

Let’s keep iterating

This system isn’t perfect but, just like with WordPress itself, it’s an iteration and you can expect more to come. This will be focused on for the WordPress 6.6 cycle on the CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Editor side and likely iterated upon once more after going through a full cycle with a more tightened workflow. If done well, very little extra work should be created for contributors and those who want to contribute or follow along the efforts can do so with greater ease. Ultimately, communication around what’s gone into a release happens already and this just seeks to formalize where it happens with clearly high level labels and norms within them. 

Thank you to @richtabor and @priethor for reviewing this post. 

#core-editor, #gutenberg