What’s new in Gutenberg 17.8? (28 February)

“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.

What's new in Gutenberg 17.8

Gutenberg 17.8 has been released and is available for download!

With many contributors focused on the upcoming WordPress 6.5 release, this Gutenberg release prioritizes stability 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. Still, there are some new features worth noting below!

As a reminder, with WordPress 6.5 now in the 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. phase, bug fixes from 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 are backported to be included in 6.5, as needed. But new features in Gutenberg 17.8 will not be included in WordPress 6.5.

Grid layout variation

Grid is a new layout variation for the Group 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. that allows you to display the blocks within the group as a grid. There are two options for the grid layout. “Auto” generates the grid rows and columns automatically using a minimum width for each item. “Manual” allows specifying the exact number of columns.

Grid child sizing

A grid of 9 images in the post editor with the first image taking up 2 rows and 2 columns, while the other images all occupy 1 row and 1 column.
Using row and column span to resize a grid item

Grid children can be resized to a specific number of rows/columns by changing the “Column Span” and “Row Span” settings under Styles > Dimensions in the block inspector.

Bulk export your patterns

A grid of patterns with three that are selected. A menu is open under "Edit 3 Items" with the "Export as JSON" option highlighted.
Bulk export selected patterns

Multiple patterns can now be exported at the same time. After selecting the patterns you’d like to export in the Patterns section of the Site Editor, choose “Export as 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.” from the Bulk Edit menu to download a zip archive containing JSON export files for all of the selected patterns.

Browse and try alternative templates 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.

The Blog Home template is open in the editor, with the Template tab visible in the sidebar. A list of pattern previews shows under the heading "Transform Into:"
Browsing alternative templates in the sidebar

Templates and template parts now show similar, related templates in the sidebar. You can switch to an alternative template or template part in a single click!

Other Notable Highlights

  • 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)
    • Enter editing mode via Enter or Spacebar. (58795)
    • Font Library: display font collected with pagination instead of infinite scrolling. (58794)
  • Performance Improvements
    • Pattern Block: Batch replacing actions. (59075)
    • Block Editor: Move StopEditingAsBlocksOnOutsideSelect to Root. (58412)
  • The repository specific code of conduct has been removed in favor of using a shared code of conduct for all WordPress repositories. (59027)

Changelog

Full changelog available

Changelog

Features

  • Patterns: add bulk export patterns action. (58897)
  • Template editor/inspector: show and select related patterns. (55091)

Layout

  • Add toggle for grid types and stabilise Grid block variation. (59051 and 59116)
  • Add support for column and row span in grid children. (58539)

Enhancements

  • Patterns Page: Make categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. action button compact. (59203)
  • Block Editor: Use 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. instead of HoC in ‘SkipToSelectedBlock’. (59202)
  • Font Library: Adds the ability to use generic() in font family names. (59103 and 59037)
  • 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/. Global Styles 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. Controller: Return single revision only when it matches the parent id. (59049)
  • CSSCSS Cascading Style Sheets. & Styling: Tweak link focus outline styles in HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. anchor and custom CSS. (59048)
  • Data Views: Make ‘All pages’ view label consistent with template and patterns. (59009)
  • Script Modules 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.: Script Modules add deregister option. (58830)
  • Block Hooks: Add help text to Plugins panel. (59371)

Custom Fields

  • Block Bindings: Lock editing of blocks by default. (58787)
  • Style engine: Rename at_rule to rules_groups and update test/docs. (58922)

Block Library

  • Gallery: Set the ‘defaultBlock’ setting for inner blocks. (59168)
  • Remove the navigation edit button because it leads to a useless screen. (59211)
  • Set the ‘defaultBlock’ setting for Columns & List blocks. (59196)
  • Update: Increase footnotes 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. priority and separate footnotes meta registration. (58882)

Site Editor

  • Editor: Hide template part and post content blocks in some site editor contexts. (58928)
  • Tweak save hub button. (58917 and 59200)

Components

  • CustomSelect: Adapt component for legacy props. (57902)
  • Use Element.scrollIntoView() instead of dom-scroll-into-view. (59085)

Global Styles

  • Global style changes: Refactor output for a more flexible UIUI User interface and grouping. (59055)
  • Style theme variations: Add property extraction and merge utils. (58803)

Bug Fixes

  • Distraction Free Mode: fix ui toggling bugs. (59061)
  • Layout: Refactor responsive logic for grid column spans. (59057)
  • Interactivity API: Only add proxies to plain objects inside the store. (59039)
  • Cover Block: Restore overflow: Clip rule to allow border radius again. (59388)

List View

  • Editor: Do not open list view by default on mobile. (59016)
  • Create Block: Add missing viewScriptModule field. (59140)
  • Ignore the ‘twentytwentyfour’ test theme dir created by wp-env. (59072)
  • useEntityBlockEditor: Update ‘content’ type check. (59058)

Block Library

  • Author, Author Bio, Author Name: Add a fallback for Author Archive Template. (55451)
  • Fix Spacer orientation when inside a block with default flex layout. (58921)
  • Fix WP 6.4/6.3 compat for navigation link variations. (59126)
  • Interactivity API: Fix server side rendering for Search block. (59029)
  • Navigation: Avoid using embedded record from fallback API. (59076)
  • Pagination Numbers: Add data-wp-key to pagination numbers if enhanced pagination is enabled. (58189)
  • Revert “Navigation: Refactor mobile overlay breakpoints to JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. (#57520)”. (59149)
  • Spacer block: Fix null label in tooltip when horizontal layout. (58909)

Data Views

  • DataViews: Add loading/no results message in grid view. (59002)
  • DataViews: Correctly display 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. that don’t have image sizes. (59111)
  • DataViews: Fix pages list back path. (59201)
  • DataViews: Fix patterns, templates and template parts pagination z-index. (58965)
  • DataViews: Fix storybook. (58842)
  • DataViews: Remove second reset filter button in 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. dialog. (58960)
  • Revert footer in pages list with DataViews. (59151)

Block Hooks

  • Fix in Navigation block. (59021)
  • Take controlled blocks into account for toggle state. (59367)

Block Editor

  • After Enter transform, skip other onEnter actions like splitting. (59064)
  • Close link preview if collapsed selection when creating link. (58896)
  • Editor: Limit spotlight mode to the editor. (58817)
  • Fix incorrect useAnchor positioning when switching from virtual to rich text elements. (58900)
  • Inserter: Don’t select the closest block with ‘disabled’ editing mode. (58971)
  • Inserter: Fix title condition for media tab previews. (58993)

Site Editor

  • Fix navigation on mobile web. (59014)
  • Fix: Don’t render the Transform Into panel if there are no patterns. (59217)
  • Fix: Logical error in filterPatterns on template-panel/hooks.js. (59218)
  • Make command palette string transatables. (59133)
  • Remove left margin on Status help text. (58775)

Patterns

  • Allow editing of image block alt and title attributes in content only mode. (58998)
  • Avoid showing block removal warning when deleting a pattern instance that has overrides. (59044)
  • Block editor: Pass patterns selector as setting. (58661)
  • Fix pattern categories on import. (58926)
  • Site editor: Fix start patterns store selector. (58813)

Global Styles

  • Fix console error in block preview. (59112)
  • Revert “Use all the settings origins for a block that consumes paths with merge #55219” (58951 and 59101)
  • Shadows: Don’t assume that coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. provides default shadows. (58973)

Font Library

  • Fixes installed font families not rendering in the editor or frontend. (59019)
  • Font Library: Add missing translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. functions. (58104)
  • Show error message when no fonts found to install. (58914)
  • Font Library: Create post types on init hook. (59333)

Synced Patterns

  • Fix missing source for binding attributes. (59194)
  • Fix resetting individual blocks to empty optional values for Pattern Overrides. (59170)
  • Fix upload button on overridden empty image block in patterns. (59169)

Design Tools

  • Background image support: Fix issue with background position keyboard entry. (59050)
  • Cover block: Clear the min height field when aspect ratio is set. (59191)
  • Elements: Fix block instance element styles for links applying to buttons. (59114)

Components

  • Modal: Add box-sizing reset style. (58905)
  • ToolbarButton: Fix text centering for short labels. (59117)
  • Upgrade Floating UI packages, fix nested 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. positioning bug. (58932)

Post Editor

  • Editor: Fix ‘useHideBlocksFromInserter’ hook filename. (59150)
  • Fix layout for non viewable post types. (58962)

Rich Text

  • Fix link paste for internal paste. (59063)
  • Revert “Rich text: Pad multiple spaces through en/em replacement”. (58792)

Custom Fields

  • Block Bindings: Add block context needed for bindings in PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher. (58554)
  • Block Bindings: Fix disable bindings editing when source is undefined. (58961)

Accessibility

  • Enter editing mode via Enter or Spacebar. (58795)
  • Block Bindings > Image Block:Mark connected controls as ‘readonly’. (59059)
  • Details Block: Try double enter to escape inner blocks. (58903)
  • Font Library: Replace infinite scroll by pagination. (58794)
  • Global Styles: Remove menubar role and improve complementary area 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. semantics. (58740)

Block Editor

  • Block Mover: Unify visual separator when show button label is on. (59158)
  • Make the custom CSS validation error message accessible. (56690)
  • Restore default border and focus style on image URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org input field. (58505)

Performance

  • Pattern Block: Batch replacing actions. (59075)
  • Block Editor: Move StopEditingAsBlocksOnOutsideSelect to Root. (58412)

Documentation

  • Add contributing guidlines around Component versioning. (58789)
  • Clarify the performance reference commit and how to pick it. (58927)
  • DataViews: Update documentation. (58847)
  • Docs: Clarify the status of the wp-block-styles theme support, and its intent. (58915)
  • Fix move interactivity schema to supports property instead of selectors property. (59166)
  • Storybook: Show badges in sidebar. (58518)
  • Theme docs: Update appearance-tools documentation to reflect opt-in for backgroundSize and aspectRatio. (59165)
  • Update richtext.md. (59089)

Interactivity API

  • Interactivity API: Fix WP version, update new store documentation. (59107)
  • Interactivity API: Update documentation guide with new wp-interactivity directive implementation. (59018)
  • Add interactivity property to block supports reference documentation. (59152)

Schemas

  • Block JSON schema: Add viewScriptModule field. (59060)
  • Block JSON schema: Update shadow definition. (58910)
  • JSON schema: Update schema for background support. (59127)

Code Quality

  • Create Block: Remove deprecated viewModule field. (59198)
  • Editor: Remove the ‘all’ rendering mode. (58935)
  • Editor: Unify the editor commands between post and site editors. (59005)
  • Relocate ‘ErrorBoundary’ component 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. folders. (59031)
  • Remove obsolete wp-env configuration from package.json (#58877). (58899)
  • Design Tools > Elements: Make editor selector match theme.json and frontend. (59167)
  • Global Styles: Update sprintf calls using _n. (59160)
  • Block API: Revert “Block Hooks: Set ignoredHookedBlocks metada attr upon insertion”. (58969)
  • Editor > Rich Text: Remove inline toolbar preference. (58945)
  • Style Variations: Remove preferred style variations legacy support. (58930)
  • REST API > Template Revisions: Move from experimental to compat/6.4. (58920)

Block Editor

  • Block-editor: Auto-register block commands. (59079)
  • BlockSettingsMenu: Combine ‘block-editor’ store selectors. (59153)
  • Clean up link control CSS. (58934)
  • HeadingLevelDropdown: Remove unnecessary isPressed prop. (56636)
  • Move ‘ParentSelectorMenuItem’ into a separate file. (59146)
  • Remove ‘BlockSettingsMenu’ styles. (59147)

Components

  • Add Higher Order Function to ignore Input Method Editor (IME) keydowns. (59081)
  • Add lint rules for theme color CSS var usage. (59022)
  • ColorPicker: Style without accessing InputControl internals. (59069)
  • CustomSelectControl (v1 & v2): Fix errors in unit test setup. (59038)
  • CustomSelectControl: Hard deprecate constrained width. (58974)

Post Editor

  • DocumentBar: Fix browser warning error. (59193)
  • DocumentBar: Simplify component, use framer for animation. (58656)
  • Editor: Remove unused selector value from ‘PostTitle’. (59204)
  • Editor: Unify Mode Switcher component between post and site editor. (59100)

Interactivity API

  • Refactor to use string instead of an object on wp-data-interactive. (59034)
  • Remove data-wp-interactive object for core/router. (59030)
  • Use data_wp_context helper in core blocks and remove data-wp-interactive object. (58943)

Site Editor

  • Add stylelint rule to prevent theme CSS vars outside of wp-components. (59020)
  • Don’t memoize the canvas container title. (59000)
  • Remove old patterns list code and styles. (58966)

Tools

  • Remove reference to CODE_OF_CONDUCT.md in documentation. (59206)
  • Remove repository specific Code of Conduct. (59027)
  • env: Fix mariadb version to LTS. (59237)

Testing

  • Components: Add sleep() before all Tab() to fix flaky tests. (59012)
  • Components: Try fixing some flaky Composite and Tabs tests. (58968)
  • Migrate change-detection to Playwright. (58767)
  • Tabs: Fix flaky unit tests. (58629)
  • Update test environment default theme versions to latest. (58955)
  • Performance tests: Make site editor performance test backwards compatible. (59266)
  • Performance tests: Update selectors in site editor pattern loading tests. (59259)
  • Fix failing Dropdown Menu e2e tests. (59356)

Build Tooling

  • Add test:e2e:playwright:debug command to debug Playwright tests. (58808)
  • Updating Storybook to v7.6.15 (latest). (59074)

Contributors

The following contributors merged PRs in this release:

@aaronrobertshaw @afercia @ajlende @alexstine @andrewhayward @andrewserong @brookewp @c4rl0sbr4v0 @chad1008 @ciampo @creativecoder @DAreRodz @derekblank @desrosj @draganescu @ellatrix @fabiankaegy @gaambo @glendaviesnz @jameskoster @janboddez @jasmussen @jeryj @jorgefilipecosta @jsnajdr @juanfra @kevin940726 @Mamaduka @MarieComet @matiasbenedetto @mirka @noisysocks @ntsekouras @oandregal @ockham @pbking @ramonjd @SantosGuillamot @scruffian @shreyash3087 @t-hamano @talldan @tellthemachines @tyxla @youknowriad

Props to @saxonafletcher for assisting with visual assets and to @mikachan and @jorbin for reviewing this post before publishing.

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

Recap Hallway Hangout: What’s next for the outreach program?

A group of contributors came together to discuss the Proposal: What’s next for the Outreach program.

Participants were @fabiankaegy @ndiego @greenshady, @poena and @bph (facilitator).

We recorded the discussion and it’s available on YouTube.

The meeting discussed ways to improve the WordPress outreach program and user feedback processes.

Key points included:

Renaming the FSC Outreach channel to “Outreach” to broaden its scope beyond experiments.

The channel was renamed #outreach. Big Thank You to the #meta team. Come and join us.

Creating a GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ team for contributors to provide early feedback on features through calls for testing.

During the discussion the problem came up how to connect developer working on WordPress features with extenders or agency developers. One suggested way is to create a new subteam in the WordPress GitHub organization called “Outreach”. This team is public and allows anyone on GitHub to use the @wordpress/outreach handle to pingPing The act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test it’s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of “Ping me when the meeting starts.” the people in the listed there and ask them for feedback or testing. Similar groups are already available for “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. Themers” “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)”.  If you are interested in being part of the group, notice that in the comment and share your GitHub account.

This handle should be used to raise any issues or pull requests where someone is looking for feedback / testing. So if you are working on a feature and are hoping to get so me additional insights from a diverse set of users from different backgrounds, please don’t hesitate to ping this group.

Working with the testing team to organize smaller, more manageable calls for testing.

The two test team reps, @webtechpooja and @ankit-k-gupta will add a discussion to their next meeting of the test team on Feb 27, at 11 UTC. If you are a contributor interested in putting user call for testings together, you might want to join in the meeting.

Encouraging engineers to use the Outreach channel for feedback on new features earlier in development.

Contributors felt that sometimes soliciting input before a feature is fully merged and pushed to 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., it could use additional feedback from extenders and agencies. As example: Pattern overrides that don’t have a theme component and don’t alleviate the pain point that there is no way for theme developers to bundle synch patterns with overrides with their themes.

The information around new features or enhancements is not always easy accessible. There is a need to have an ongoing exchange between the engineering teams, test team and outreach contributors to determine the right timing for calls for testing.

Creating a wishlist for each upcoming release to gather input on user priorities.

This is referring to a post made before WordPress 6.4 WordPress 6.4: What’s on your wishlist? More research is required. It also overlaps with the Extensibility Issues Triage initiative that meets once a month to look at issues that concern extensibility and could be pushed forward. Next meeting March 14, 2024, at 12:00 UTC in #core-editor channel

The goal is to make the outreach program more accessible and sustainable, improve collaboration across teams, and help guide WordPress development through early and ongoing user and contributor input.

Props for co-writing to @fabiankaegy and for review to @greenshady and @ndiego.

#outreach

What’s new in Gutenberg 17.7? (14th February)

“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.

Gutenberg 17.7 has been released and is available for download!

This cycle is packed with enhancements 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 ahead of the next WordPress 6.5 release. Multiple performance improvements, refinement of the Link Control UIUI User interface, Shadow support for the columns, and image blocks are good examples of what this new Gutenberg release is bringing.

Table of contents

Shadow support for more blocks

The effects panel is now available for the Columns, Column, and Image blocks, allowing users to add shadow effects to them. 

Now, users can effortlessly apply shadow effects to these blocks, building upon the functionality previously exclusive to the Button 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.. This opens up new creative possibilities, empowering designers to improve their layouts directly from the Editor. (57982)

Data views enhancements 

This release marks the continuation of the Dataviews project, which will become a part of WordPress 6.5 for managing patterns and templates. 

The release has introduced the ability to select multiple items on the grid view and execute bulk actions such as reverting user templates or deleting user-created patterns and templates. Together with filters, it makes it possible to quickly revert all user template changes or delete all user-created patterns. 

Additionally, a new primary filter API has been included, allowing main filters to be visible at all times in the UI. This makes it easy to switch between viewing and managing sync or unsync patterns.

This release includes a few enhancements to the Link Control UI. A notable addition to the interface allows the user to insert a new block instead of a link from the context of the Navigation block. Combined with the fixes from #55551, the Navigation block now will work to allow the insertion of third-party blocks, opening a new range of possibilities (57756, 57986, 58744)

Making Font Library ready for CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.

The Font Library had some important changes under the hood to prepare for its journey into WordPress Core, including security improvements and standardizing some of the code structure. Some important (and ongoing) 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) improvements came to the Font Library Management UI in the Site Editor.

Other Notable Highlights

  • A proposal has been put forward to include Core blocks in the directory developed within the Gutenberg repository for convenience. Core contributorsCore Contributors Core contributors are those who have worked on a release of WordPress, by creating the functions or finding and patching bugs. These contributions are done through Trac. https://core.trac.wordpress.org. would maintain the blocks but would be standalone instead of bundled with the block library. Please contribute to the discussion in the open issue.
  • Drag and Drop has been improved, allowing dragging from the block inserter into template parts (and within) and allowing dragging from the desktop to template parts (58589, 58423)
  • This release also comes packed with a bunch of performance improvements (58356, 58349, 58556, 58372, 58244, 57232, 58575, 58348, 58513, 58245, 58734, 58146, 58355, 58393, 58405, 58354)

Changelog

Full changelog available

Enhancements

  • Improve translators comments for wp.date.setSettings in compat file. (58488)
  • Interactive Template: Use viewScriptModule. (58211)

Components

  • Adding constrainTabbing prop to useDialog hook. (57962)
  • Allow limiting the number of maximum visible Snackbars. (58559)
  • ConfirmDialog: Add __next40pxDefaultSize to buttons. (58421)
  • Expand theming support in COLORS. (58097)
  • FocalPointPicker: Apply modern styling. (58459)
  • Implement Tabs in widgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. editor settings. (57886)
  • Implement Tabs in site-editor settings. (56959)
  • Implementing useCompositeState with Ariakit. (57304)
  • InputBase: Add isBorderless prop. (58750)
  • Replace TabPanel with Tabs in the editor Document Overview 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.. (57082)
  • SearchControl: Refactor to use InputControl internally. (56524)
  • Show borders for disabled secondary buttons. (58606)

Data Views

  • Add outline to template preview in table layout. (58738)
  • Add: Delete bulk action to patterns. (58747)
  • Add: Selection and bulk actions to grid view. (58144)
  • DataViews: Add primary 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. 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.. (58427)
  • DataViews: In patterns page, show sync status filter by default. (58367)
  • DataViews: Redesign of filters. (58569)
  • Remove min-width style on table cells. (58204)
  • Update ‘Rows per page’ view option label to account for Grid layout. (58457)
  • Update dataviews search input placeholder. (58742)
  • Update spacing around title in grid layout. (58739)

Interactivity API

  • Add block supports for clientNavigation and interactive properties on block.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. (58132)
  • Image block: Refactor and remove data-wp-body. (58835)
  • Interactivity Router: Fix initial page cache. (58496)
  • Interactivity Router: Move ARIA live region and loading bar to the Interactivity Router. (58377)
  • Limit the exported APIs. (58864)
  • Mark all core block stores as private. (58722)
  • Server Directive Processor for data-wp-each. (58498)
  • Support setting a namespace using a string in data-wp-interactive. (58743)
  • Allow global configs for namespaces. (58749)

Block Library

  • Follow up on the Post navigation link taxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies. filters. (57949)
  • Home Link: Render Home text if there is no attribute label present. (58387)
  • Organize gallery controls. (58407)
  • Pattern: Use the ‘__experimentalLabel’ method to get a title. (58646)
  • Social Icons: Update Patreon icon. (56951)
  • Try: Disable text selection for post content placeholder block. (58169)
  • Update pattern block copy in light of pattern overrides. (58231)
  • Add shadow support for column, columns and image. (57982)

Global Styles

  • Add style engine support for nested at-rules. (58867)
  • Move Shadow controls to Border panel. (58466)
  • Shadow: Update shadow support to allow explicit skipping of serialization. (58306)
  • Try: Remove shadow preset overflow. (58663)
  • Update return values from getGlobalStylesChanges(). (58707)
  • Add support for transform and letter spacing controls in Global Styles > Typography > Elements. (58142)

Block Editor

  • Drag and drop: Allow dragging from inserter or desktop to template parts. (58589)
  • Drag and drop: Allow dropping within template parts. (58423)
  • Implement “Add block” UI for Nav block Link UI. (57756)
  • Implementing new UXUX User experience for invoking rich text Link UI. (57986)
  • Remove open in new tab from link preview. (58744)
  • Use consistent labels, remove additional settings, and copySmall icon LinkControl. (58183)

Site Editor

  • Apply 40px across summary panel. (58730)
  • Apply custom scroll style to fixed 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. block toolbar. (57444)
  • Improve SiteIcon display and transition. (58472)
  • Only show ‘Back’ button when user came from an editor canvas. (58710)
  • Update “focus mode” to consistently use the Document Bar’s Back button. (58528)

Patterns

  • Add a confirmation dialog when a user tries to delete a synced pattern with overrides. (58796)
  • Add the block name to the pattern content data. (58715)
  • Flash editable block outlines instead of always showing them. (58159)

Design Tools

  • Background image support: Add background position controls. (58592)
  • Tweak metrics and labels for background size controls. (58854)

Post Editor

  • Editor: Limit visible Snackbars from the consumers. (58598)
  • Save entities panel: Update styles. (58706)

Font Library

  • Add sanitize from schema util. (58571)
  • Font Collections: Update registration function signature and add caching. (58363)
  • Font Library: Show ‘Add fonts’ button when there are no fonts installed. (58580)

Inspector Controls

  • Tweak FocalPointPicker inspector controls. (58448)
  • Tweak Media & Text inspector controls. (58447)

Custom Fields

  • Block Bindings: Ensure to pass bound attributes. (58844)

Commands

  • Try debouncing search for post-type navigation. (58810)

Document Settings

  • Tweak 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 for improved scanning. (58751)

Synced Patterns

  • Support button’s link settings for Pattern Overrides. (58587)

Block API

  • Block 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.: Set ignoredHookedBlocks metada attr upon insertion. (58553)

List View

  • Add keyboard clipboard events for cut, copy, paste. (57838)

New APIs

Block API

  • Blocks: Add handling for block.json viewScriptModule. (58731)

Bug Fixes

  • Core data: useEntityBlockEditor: Fix parsed blocks cache. (58841)
  • Footnotes: Fix anchor order replacing. (58791)

Block Editor

  • Block Switcher: Use consistent labels. (58240)
  • Don’t move focus within the toolbar if it is already focused. (58570)
  • Don’t show Link preview when no selection. (58771)
  • Fix Link UI popover anchor in rich text. (58282)
  • Fix empty link preview after creating link from empty selection. (58863)
  • Hide the ‘Content’ panel for locked blocks when there’s no content. (58259)
  • ImageURLInputUI: Fix focus loss when settings are changed. (58647)
  • Link UI: Polish lightbox pieces. (58666)
  • Media Replace Flow: Vertically align the URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org. (58621)
  • MediaReplaceFlow: Restore popover width. (58597)
  • Rich Text: Only apply focus to elements, not selection. (58745)
  • Rich text: Preserve white space should strip \r. (58805)
  • Settings may be undefined. (58658)
  • useOnBlockDrop: Fix the Gallery block check. (58711)

Components

  • Add a timezone offset value for display purposes. (56682)
  • Fix Placeholder component padding when body text font size is changed. (58323)
  • Fix URLPopover preview overflow. (58741)
  • Fix the Snackbar auto-dismissal timers. (58604)
  • Popover: Add box-sizing reset style. (58871)
  • Set post editor sidebar tabs to manual activation. (58041)
  • Tabs: Delay activeId updates until focus can be properly detected. (58625)
  • Tabs: Fix infinite 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. in useEffect. (58861)
  • Tabs: Improve Controlled Mode Focus Handling. (57696)
  • Try: Fix lightbox URL popover position. (58600)

Block Library

  • Fix #54352 prevents php 8.1 fatal when template parts are not found in non-debug environments. (54354)
  • Fix Query pagination not working in template parts and patterns. (58602)
  • Fix URL escaping for array parameters in Navigation links. (58068)
  • Fix missing data in email submissions. (55691)
  • Fix: Removing footnotes from the allowed blocks does not remove footnotes. (58855)
  • Navigation Link: Use get_block_type_variations to register variations. (58389)
  • Prevent usage of gutenberg_url in block-library. (58242)
  • Template Part: Reflect name updates without saving changes. (58644)
  • Try: Make gallery randomization work when nested. (58733)

Data Views

  • DataViews: Fix applied default layout props. (58400)
  • DataViews: Fix nested buttons and placeholder text in list layout. (58304)
  • DataViews: Fix some small issues with 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.. (58371)
  • DataViews: Make it possible to toggle Author field in templates and template parts. (58609)
  • DataViews: Remove test artifact (status filter was set as primary). (58682)
  • DataViews: Use chips for filter summary. (58816)
  • Fix double scrollbar in grid layout. (58536)
  • Fix: Dataviews selection on patterns grid view. (58726)

Site Editor

  • Add context for the All translatable string and enforce l10nL10n Localization, or the act of translating code into one's own language. Also see internationalization. Often written with an uppercase L so it is not confused with the capital letter i or the numeral 1. WordPress has a capable and dynamic group of polyglots who take WordPress to more than 70 different locales. best practices. (58196)
  • Break long URL in page sidebar. (58763)
  • Editor: Fix block context defined for template parts. (58807)
  • Fix line-height in block card. (58246)
  • Hide export button if non-block-based theme. (58346)
  • Mobile site editor header toolbar button bugfix. (58852)

Post Editor

  • Editor: Don’t hide authors’ Combobox if the current author is missing. (58719)
  • Fix permalink input field text overflow ellipsis for Firefox. (57310)
  • Fix the position and size of the Options menu,. (57515)
  • Fix: Use old template panel if user doesn’t have access to view templates. (58485)
  • Template editing: Update fullscreen WP back functionality. (58534)

Interactivity API

  • Add supports.interactivity to the Query block. (58316)
  • Fix state intialization for asynchronous private stores. (58754)
  • Remove non-default suffix data wp context processing. (58664)
  • Use compat versions of HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. APIs. (58846)

Global Styles

  • Block Styles: Fix block style variation selector generation. (58051)
  • Fix Global styles text settings bleeding into placeholder component. (58303)
  • Global styles revisions: Fix is-selected rules from affecting other areas of the editor. (58228)
  • Site Editor: Prevent classic theme from accessing global style menu. (58345)

List View

  • Fix error when switching between template preview modes. (58533)
  • Navigation Submenu Block: Make block name affect list view. (58296)
  • Template Part: Fix site editor error when loading with list view set to always display. (58868)

Font Library

  • Avoid mutating fontface data. (58473)
  • Avoid running init functions when font library is available in core. (58793)
  • Fix size of demo text. (58849)

Typography

  • Fix font library modal dialog translatable strings. (58256)
  • Font Library: Change referenced tab name on Google Fonts confirmation dialog. (58584)
  • Font size: Allow for custom font size handling. (58422)

Script Modules API

  • Add import map polyfill. (58263)
  • Import Maps: Only emit CDATA wrappers for inline scripts for 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/.. (58818)

Extensibility

  • Fix broken list markup in navigation block when 3rd party blocks are used as decendants of navigation block. (55551)
  • Navigation block: Check Block Hooks API callback hasn’t already been added. (58772)

Synced Patterns

  • Disable overriding links of images inside pattern instances. (58660)
  • Fix nested pattern overrides and disable editing inner pattern. (58541)

Inspector Controls

  • Add missing PanelBody title for the columns block inspector. (58452)
  • Add spacing between input controls with custom values. (58410)

Custom Fields

  • Block Bindings: Update bindings registry with latest changes. (58843)

History

  • Columns: Batch vertical alignment updates. (58801)

Document Settings

  • Editor: Ensure the current author is included in the dropdown. (58716)

Rich Text

  • Add aria-readonly attribute to Rich Text component. (58687)

Navigation Menus

  • Navigation: Update the fallback block list to avoid a PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher Warning. (58588)

Patterns

  • Update the bindings attribs of blocks added during experimental phase. (58483)

Distraction Free

  • Add default restoration of UI when exiting distraction free mode. (58455)

Accessibility

  • Escape as Select/Edit mode Toggle. (58637)
  • Global styles revisions: Update text color contrast. (58340)

Components

  • CustomSelect: Disable virtualFocus to fix issue for screenreaders. (58585)
  • Font Library modal: Try to improve checkbox labelling. (58339)
  • PaletteEdit: Fix palette item accessibility. (58214)

Font Library

  • Buttons position and accessibility. (58212)
  • Fix focus loss when update/install button is pressed. (58364)
  • Removed and elements from Font Library Modal. (58221)

Block Library

  • Fix image link preset suggestions arrow key navigation. (58615)

CSSCSS Cascading Style Sheets. & Styling

  • Font Library: Fix font preview vertical alignment and respect reduce motion preference. (58451)

Widgets Editor

  • Widget Editor: Don’t disable the Save button. (58365)

Typography

  • Fix fonts modal dialog buttons accessibility. (58309)

Commands

  • Fix labeling of the command palette. (56718)

Performance

  • Block editor: Optimise getGlobalBlockCount/getClientIdsWithDescendants. (58356)
  • Block editor: Prevent isSubtreeDisabled call if not needed. (58349)
  • Block editor: Reduce appender sync! subscriptions. (58556)
  • Block editor: selectors: Avoid has() or double get() on Maps. (58372)
  • Block preview: Prevent recalculating editor styles if additional styles is empty. (58244)
  • Image block: Remove a block editor store sub. (57232)
  • Inner blocks: Don’t re-render list when controlled blocks change. (58575)
  • InnerBlocks: Fix continuous re-rendering on inner blocks change. (58348)
  • Navigation: Fix performance 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.. (58513)
  • Post template: Don’t fetch taxonomies if not needed. (58245)
  • Site editor: Add pattern/template load performance test with TT4. (58734)
  • Site editor: Avoid double post content parse (alternative). (58146)
  • Unmemoize Block component selectors. (58355)
  • core-data: Memoize getEntitiesConfig selector. (58393)
  • getBlockSettings: Avoid memoized selector with clientId. (58405)
  • useSettings: Extract selector. (58354)

Font Library

  • Font Collections: Lazy load json configuration for better performance. (58530)

List View

  • Unmemo recursive getEnabledClientIdsTree. (58525)

Block Editor

  • Optimize the ‘useBlockDisplayTitle’ hook. (58250)

Interactivity API

  • Break up long hydration task in interactivity init. (58227)

Experiments

Data Views

  • Update styling details in list item layout. (58397)

Synced Patterns

  • Add a control per block to reset pattern overrides. (57907)

Documentation

  • Add video embed documentation and grammar fixes in the Block Editor Handbook. (58029)
  • Block API: Add viewStyle property support to block.json. (55492)
  • CheckboxControl: Add custom label example to Storybook. (58438)
  • Docs: Copy and formatting edits for the “Markup representation of a block” guide. (58688)
  • Docs: Copy and formatting edits for the “Registration of a block” guide. (58709)
  • Docs: Copy and formatting edits for the “Static or Dynamic rendering” guide. (58681)
  • Docs: Copy and formatting edits for the “The block in the Editor” guide. (58697)
  • Docs: Copy and formatting edits for the “The block wrapper” guide. (58704)
  • Docs: Copy and formatting edits for the “Working with Javascript for the Block Editor” guide. (58651)
  • Docs: Copy and formatting edits for the “block.json” guide. (58732)
  • Docs: Copy edits and list formatting for main Block Editor Handbook readme. (58652)
  • Docs: Fix list formatting and some grammar in the Entities explanation doc. (58655)
  • Docs: Fix list markup in the Fundamentals of Block Development section. (58226)
  • Docs: Fix mistake in viewScriptModule documentation. (58815)
  • Docs: Formatting and copy edits for the File structure of a block guide. (58635)
  • Docs: Minor copy edits for the Block Development Environment page. (58614)
  • Docs: Remove duplicate content and update links. (58358)
  • Docs: Update link to the correct Fundamentals doc. (58352)
  • Docs: Update list formatting and descriptions in the Fundamentals of Block Development doc. (58630)
  • Docs: Update the Getting Started readme in the Block Editor Handbook. (58624)
  • Reference Gutenberg in PHP documentation from main documentation. (58453)
  • Removed extra parenthesis from document. (58662)
  • Restructure the FAQs to work with the new TOC design in the Block Editor Handbook. (58351)
  • Storybook: Add badges to private components. (58123)
  • Update documentation to avoid recommending early return PHP “anti-pattern”. (58454)
  • Update to rename reusable blocks. (58633)
  • Update versions-in-wordpress.md. (58545)
  • fix: InnerBlocks schema description in block.json. (58649)

Code Quality

  • Avoid running pattern overrides 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 WordPress core. (58487)
  • Build: Add package build shebang and sync comments. (58264)
  • Date: Merge 6.4 and 6.5 compat files. (58479)
  • DefaultBlockAppender: Refactor to hooks. (58809)
  • Docs: Clarify the non-contextual post types. (58836)
  • Layout block supports use str_contains. (58251)
  • Move Nav Link PHPUnit tests to blocks directory. (58460)

Font Library

  • Address feedback from wordpress-develop#6027. (58691)
  • Fix font library unit tests nit-picks [round 2]. (58612)
  • Font Collections: Standardizes docblockdocblock (phpdoc, xref, inline docs) comments. (58654)
  • Font Library Address Outstanding Feedback from WP 6.4 review. (58675)
  • Move Fonts Library to compat dir for 6.5. (58608)
  • Remove font family and font face preview keys from theme.json schema. (58395)
  • Remove old and unused component and css. (58449)
  • Remove slug from collection schema to accommodate the changes on the wp_register_font_collection function signature. (58623)
  • Remove tests from classes that were already merged in core. (58752)
  • Remove tests from font library rest controllers already merged into core. (58778)
  • Return null if a font collection is not registered. (58735)
  • Simplify font collection schema. (58574)
  • Update Font Library 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/. code to align with Core standards. (58619)
  • Update Font Library non-REST API code to align with Core standards. (58607)
  • Update font collection json schema. (58413)
  • Update fonts collection data URL for Gutenberg 17.7. (58746)
  • Use Button’s API to disable footer buttons. (58529)
  • [Font Library] Update PHPUnit tests per Core coding standards and practices. (58502)

Components

  • Add eslint rule for theme var regressions. (58130)
  • Add stylelint rule for theme var regressions. (58098)
  • AnglePickerControl: Hard deprecate bottom margin. (58700)
  • CustomGradientPicker: Hard deprecate outer margins. (58699)
  • FontSizePicker: Hard deprecate bottom margin. (58702)
  • GradientPicker: Hard deprecate outer margins. (58701)
  • Remove deprecation warnings for __next36pxDefaultSize. (58703)

Block Library

  • Interactivity API – Blocks: Move interactivity registration to render. (58678)
  • Navigation: Move the Navigation block rendering tests to the blocks directory. (58247)
  • Navigation: Remove use of Gutenberg_Navigation_Fallback class. (58369)
  • Paragraph: Update comment block. (58419)
  • Rename variation build methods. (58538)
  • Template Part: Derive ‘hasInnerBlocks’ inside selector. (58680)

Block Editor

  • Block Switcher: Don’t use the ‘useBlockDisplayInformation’ hook. (58562)
  • BlockSelectionButton: Don’t use the ‘useBlockDisplayInformation’ hook. (58640)
  • Link Control: Simplify the sprintf. (58831)
  • RichTextData: Use a private property. (58557)

Post Editor

  • Editor Settings: Rename the getPostLinkProps setting. (58416)
  • Editor: Reuse data query in the post author components. (58760)
  • Editor: Use hooks instead of HoCs in the post-taxonomies components. (58446)
  • Fix: Refactor pre publish panel to use function component instead of class. (58441)

Custom Fields

  • Block Bindings: Remove unneeded ‘setAttributes’ override. (58806)

Patterns

  • Pattern overrides: Update overrides attribute data structure and rename it to content. (58596)

Tools

  • Add BlockJsonDependenciesPlugin to modules build. (57927)
  • DEWP: Fix script module import field. (58770)
  • Introduce a Props Bot workflow. (58576)
  • More refinements to Props Bot run conditions. (58617)
  • Refine when Props Bot runs. (58616)
  • Remove noahtallen from .wp-env codeowners. (58283)
  • Scripts: Add viewScriptModule block.json support. (58203)

Testing

  • “Multiple use” block validation logic improvement [with Playwright]. (57576)
  • Block Bindings: Add block bindings end-to-end tests. (58550)
  • Block Bindings: Add tests for the frontend and polish the existing ones. (58676)
  • Block Bindings: Improve the code of the block bindings tests. (58785)
  • Button: Add focusable disabled variant to vizreg Storybook. (58634)
  • CustomSelect: Add tests for new features. (58583)
  • Fix flaky test of data-wp-on-window directive. (58642)
  • Flaky Test: Fix “directives inside islands should not be hydrated twice”. (58516)
  • Interactivity API: Fix flaky test in data-wp-on-document. (58668)
  • Migrate remaining ‘inserting blocks’ end-to-end tests to Playwright. (58108)
  • Migrate remaining ‘pattern block’ end-to-end tests to Playwright. (58486)
  • SearchControl: Add unit tests. (58693)
  • Try fixing flaky ‘inserting blocks’ end-to-end tests. (58848)
  • Try fixing flaky Paragraph block end-to-end test. (58208)
  • Use toBeDisabled instead of aria-disabled check. (58694)
  • e2e: Add a test to confirm that the focus moves from the post title to the paragraph using the enter key. (58872)
  • end-to-end Utils: Ensure deleteAllUsers does not delete current user. (58320)

Build Tooling

  • Add missing Interactivity API label to changelog script. (58879)
  • Enable dynamic import transform 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/. Native tests. (58546)
  • Fix: Remove mention of weekly meeting from first time contributor PR label. (58547)
  • Interactivity API: Move Core implementation to compat 6.5 folder. (58829)
  • Remove phpunit tests for features backported to Core. (58776)
  • Update Performance tests base 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".. (58890)
  • Workflows: Add ‘Technical Prototype’ to the type-related labels list. (58163)

Security

Font Library

  • Sanitize font collection data. (58636)

REST API

  • Font Library REST API: Sanitize font family and font face settings. (58590)

Various

  • Script loader 6.4 compat: Check for init hook completion. (58406)

Font Library

  • Code style and code quality feedback from core 6.5 review. (58736)
  • Move getAllowedMimeTypes to FontUtils. (58667)
  • Refactor as a singleton. (58669)

Components

  • Removing Reakit Composite implementation. (58620)
  • Removing Reakit as a dependency. (58631)
  • Update the Snackbar warning message. (58591)

Global Styles

  • Always output core block global styles after base global styles. (58761)
  • 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. theme.json tests from Core. (58476)

Block Library

  • Reduce label and fix capitalization for image block upload label. (58677)
  • Separator: Remove border-bottom property. (55725)

Patterns

  • Update pattern copy to Synced instead of Fully Synced. (58876)

Block API

  • ViewScriptModule: 6.5 compatibility changes. (58832)

Custom Fields

  • Block Bindings: Backport block bindings refactor from WordPress core. (58683)

Inspector Controls

Change cover block’s “Media settings” label to “Settings”. (58463)

First time contributors

The following PRs were merged by first-time contributors:

– @at-benni: Update versions-in-wordpress.md. (58545)

– @krupal-panchal: Removed extra parenthesis from document. (58662)

@shreyash3087: fix: InnerBlocks schema description in block.json. (58649)

Contributors

The following contributors merged PRs in this release:

@aaronrobertshaw @afercia @ajlende @andrewhayward @andrewserong @annezazu @anton-vlasenko @antonis @aristath @artemiomorales @at-benni @brookewp @c4rl0sbr4v0 @carolinan @chad1008 @ciampo @creativecoder @DAreRodz @dcalhoun @dd32 @derekblank @desrosj @draganescu @ellatrix @fabiankaegy @fai-sal @fluiddot @gaambo @getdave @glendaviesnz @hellofromtonya @ironprogrammer @jameskoster @jasmussen @jeherve @jeryj @jorgefilipecosta @jsnajdr @kevin940726 @krupal-panchal @luisherranz @madhusudhand @MaggieCabrera @Mamaduka @matiasbenedetto @mikachan @mirka @ndiego @noahtallen @noisysocks @ntsekouras @oandregal @ockham @pbking @ramonjd @retrofox @richtabor @SantosGuillamot @scruffian @shreyash3087 @sirreal @t-hamano @talldan @tellthemachines @tjcafferkey @tomjn @tyxla @vcanales @westonruter @WunderBart @youknowriad

Props to @jameskoster for visual assets and @priethor @pbking @jorgefilipecosta @bph and @annezazu for helping draft this post

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

Core Editor Improvement: Power in the Details

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. 

Numerous small gains are slated for WordPress 6.5 that you might have missed in the excitement around more prominent features, like the Font Library. While they garner less attention, the following improvements contribute to more flexibility and efficiency, making a big difference in your everyday WordPress experience. Take a moment to learn more about them—and explore how the power of details in 6.5 can transform your current workflows.

New List View shortcuts

6.5 will introduce new List View shortcuts for improved efficiency, saving you time when performing common actions with this tool:

  • Simplified access to a block’s setting menu: This update lets you open 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 settings menu by right-clicking on a List View item, enabling swift changes as needed.
  • Quick block selection shortcut: Use CMD+A on Mac or CTRL+A on Windows to select all blocks within List View, facilitating faster batch actions.
  • Copy, paste, and cut blocks using the keyboard shortcuts you’re used to when selecting blocks in List View (CMD+C and CMD+X to copy and cut blocks, and CMD+V to paste blocks).
List View opened to a Group block that's been right clicked to reveal the block settings.


View your template when editing pages or posts

A lot of code-wise work has been done to unify the Site Editor and Post Editor experiences for block themes. Thanks to these efforts, you can now view your template when editing a page in the Post/Page Editor and enjoy the same experience regardless of where you’re working. This ability allows for convenient on/off toggling of the template preview, offering you even more flexibility. Similar to the Site Editor experience, selecting any part of the template triggers a snackbar notification and a quick pathway to edit the template directly.


Duplicate patterns to quickly change the sync status or make theme pattern your own

Patterns provided by a theme are currently locked. As a result, reusing them as a basis for creating your own patterns previously required several steps. WordPress 6.5 adds a new quick option to streamline this process and let you duplicate a theme pattern without the hassle. This also eases the experience of changing the sync setting.


Review a summary of styling changes and quickly view your site while saving

With so many styling options available, it’s important to know what’s changing when you hit save. Now you can, thanks to a short summary that matches the summary you’d see you’re browsing revisions, giving you the information you need when changing up the look and feel of your site. After saving, you can then select “View Site” in the updated snackbar notice to check out the front end of your site and marvel at how good it looks (or line up some additional changes).


Rename blocks for better organization

Building on the ability to rename Group blocks in List View introduced in WordPress 6.4, the next release will allow renaming nearly every block for better organization and personalization. This update makes it easy for users to see at a glance and understand how the content has been structured. On the other hand, it helps theme authors provide a more intuitive experience for those using and interacting with their themes and patterns.

List view showing Group blocks with different names, opened to a block named "Main Content" with the option to rename.

It’s worth noting that the following blocks cannot be renamed intentionally:

  • core/block
  • core/template-part
  • core/pattern
  • core/navigation

Enjoy drag-and-drop improvements 

Drag and drop is an essential aspect of building with blocks, providing an easy, simple way to add, combine, and rearrange content as desired. This release will introduce a diverse range of enhancements aimed at making both drag-and-drop functionality and actions more intuitive:

  • Allow dragging and dropping to the beginning or end of your content
  • Add a drag cursor when hovering over items that can be dragged in List View 
  • Improve dragging and dropping between adjacent container blocks, such as Group and Cover blocks
  • Enable dragging blocks into template parts for easier placement of elements, like a site logo next to a site title
  • Show a visual indication when a block isn’t allowed to be dropped, helping guide and communicate where one can and can’t drag and drop
  • Allow dragging and dropping to create rows and galleries; for example, placing an image next to another will automatically create a gallery
  • In List View, collapsed blocks expand when a block is dropped into them, ensuring visibility of the dropped block
  • In List View, items are displaced to help provide a more visual and tangible experience of dragging and dropping blocks
  • In List View, a drag cursor is shown for any draggable block

Taken together, anyone using the next version of WordPress will find dragging and dropping blocks more versatile and powerful to use.

Customize your experience with a new Preferences panel

WordPress 6.5 will bring a reorganized preference modal to personalize the editor interface to your liking, including new dedicated panels for Appearance and 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) settings. You will also notice improved clarity and consistency in text descriptions and a few more new settings.

Preferences panel open to Appearance tab showing four different options to choose from.

Create consistent designs with Cover block aspect ratios

In addition to minHeight support, the Cover block now offers aspect ratio support. This means you can easily set predefined aspect ratios to customize your visuals further and help maintain design consistency with less effort. For added convenience, you can control this feature globally for all Cover blocks or adjust it individually for each block.

Use the block toolbar in Distraction Free mode for quick changes

WordPress 6.5 makes it easier to make quick customizations while staying focused in Distraction Free mode. Simply moving your mouse to the top of the editor will smoothly reveal the block toolbar. Previously, accessing the block toolbar wasn’t an option in Distraction Free mode, requiring users to toggle it on and off for even minor adjustments.

Thank you to @rmartinezduque for collaborating on this post and all of the designers who helped make some of these visual assets!

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

Dev Chat Summary, January 31, 2024

Start of meeting on Slack

This Dev Chat continues the experiment to focus chat time on discussions related to open CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. proposals and release issues, rather than repeating links already highlighted in the curated agendas.

Announcements

Following announcement of yesterday’s 6.4.3 release, @jorbin noted that there was one issue of note, but that there were workarounds available at this time. @jorbin further gave props to those who helped facilitate the release.

@hellofromtonya shared that @joemcgill has accepted his nomination to serve as a 2024 Core team rep 🎉. The search continues for a co-rep, where it’s been noted that a contributor from the Core Editor team would be a great compliment, though not required. Nominations remain open until April 1, 00:00 UTC.

Discussion on open proposals in Core

Field GuideField guide The field guide is a type of blogpost published on Make/Core during the release candidate phase of the WordPress release cycle. The field guide generally lists all the dev notes published during the beta cycle. This guide is linked in the about page of the corresponding version of WordPress, in the release post and in the HelpHub version page. Publish Date

Link to post: Proposal: An update to the Field Guide

Conversation start link

Comments:

  • @jorbin was under the impression that neither the dev blogblog (versus network, site) team nor 6.4 release leads were interested in moving forward with the proposal. @webcommsat shared that 6.4 docs release leads didn’t see 6.4 as the deadline, and discussions were continuing. @joemcgill agreed that the proposal wasn’t release specific, but rather an adjustment to timing of when field guide information is released. @hellofromtonya also added that the dev blog team has opened a discussion to track the second part of the proposal.
  • @jeffpaul referred to @chanthaboune‘s comment of where best to separate field guide content based on audiences, suggesting the proposal could be adjusted accordingly. @jeffpaul added that some folks have difficulty processing field guide information to determine what is relevant and actionable, which @hellofromtonya agreed should be explored. @webcommsat agreed with the notion to target field guide content to particular audiences, but also to look at how it relates to other new content produced for the release.
  • @jeffpaul suggested the potential to target content according to the five user groups identified in Care and influence: a theory about the WordPress community.
  • @ironprogrammer asked if the field guide info would be more easily consumable if it was split into a canonical structure, such as wordpress.org/6-5/field-guide/, with subpages that match particular areas or audiences.
  • @webcommsat noted that segmentation between audiences has grown, and suggested it’s a good time to use teams’ audience-specific insights to improve the field guide format. She added that exploring how best to utilize the limited people and time for the Docs team would be an important factor in implementing improvements. @jeffpaul agreed with concerns around challenges in gathering/publishing content, but noted that the issue should be considered as separate from the proposal.
  • @jorbin shared that the original published field guide was the result of an overly long email sent to 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 developers.
  • First-time Docs Co-Lead @estelaris 🎉 asked about adding additional comments to the proposal. @jorbin noted that Make/Core comments close automatically after 180 days (~6 months). @costdev shared that adding the #keep-comments-open 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.) would reenable them, but recommended removing the tag once an updated timeframe for feedback has been reached. @jorbin updated the Core handbook to reflect this info.
  • @joemcgill pointed out that the team should review all current channels where field guide-related content is published, to check whether only updating the field guide [in one place] would sufficiently improve the broader sharing of release updates to the community. He suggested engaging with the Docs and Marketing teams to move forward, and @estelaris noted she would begin by sharing with Docs. @webcommsat suggested looping in Training as well. @laurlittle noted that the Marketing team could brainstorm on the proposal for future releases, if not 6.5.
  • In response to @joemcgill, @webcommsat noted that there have been past lists of channels and audiences, and suspects more current info should be available. She also suggested it might be helpful to have a single post that links out to the various user groups identified earlier, and to link to that post from the About page.
  • @jorbin referred back to @jeffpaul‘s input and asserted that the dev blog and other team areas might be better places to communicate field guide information, as opposed to Make/Core. @hellofromtonya asked if, considering this perspective, the proposal was actionable by the Core team, or if the proposal should be re-worked as a cross-team collaboration. @jorbin suggested that the teams publishing the field guide info would take on the proposal.
  • @joemcgill noted that it can be difficult to know the status of a proposal, suggesting some way of flagging these posts. @marybaum suggested a visual system to convey “stalled”, “live”, etc, and @joemcgill raised the idea of 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. pattern. @desrosj shared that in past proposals (example) he has added status info to the top of the post, assuming the status was clear.
  • @hellofromtonya wrapped up the discussion based on the chat, concluding that the proposal be marked closed (“not accepted”), or must be picked up by another team(s).

Actions:

  • Part 1: Move Make/Core field guide publication ahead one week, aligning with last scheduled 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., rather than RC1. Not accepted ❌
  • Part 2: Start publishing a simplified field guide to the WordPress Developer Blog. Not accepted ❌
  • Other teams to explore revising and adopting this proposal:
    • @estelaris to share the proposal with Docs.
    • @laurlittle to raise the proposal to Marketing for possible brainstorm.
    • @webcommsat to 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. in Training to gauge their interest in furthering the proposal.
    • To highlight in dev blog.

Open Floor

Props @hellofromtonya for peer review.

#6-4, #6-5, #core, #core-editor, #dev-chat, #meeting, #summary

What’s new in Gutenberg 17.6? (31 January)

“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 Site Editor project (formerly called Full Site Editing).


Gutenberg 17.6 has been released and is available for download!

This release, which includes 264 pull requests (that’s a lot of work!), can be labeled mainly as a ‘code quality’ one, as it includes two important refactors in both Fonts and Interactivity APIs.

It also includes some improvements in the new “Data Views” experiment, 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. 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. improvements, and finally, a feature that all developers have been waiting for: the ability to extend allowed blocks within a parent block.

New Block 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. allowed Blocks 

Until now, there has been no way to 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. the allowed blocks in an inner block area. This means that developers could not specify which blocks could be inside a parent block without editing the parent block’s edit file. Imagine you’ve just created an amazing icon block to include in the navigation block; now, you can whitelist it using a filter.

addFilter( 'blocks.registerBlockType', 'my-great-icon-block', ( settings, name ) => {
  if ( name === 'core/navigation ) {
    return {
      ...settings,
      allowedBlocks: [ ...settings.allowedBlocks ?? [], 'my-great-icon-block' ],
    }
  }
  return settings;
} );

Site Editor – Post Editor unification.

Several smaller edit actions are available in the post editor but not the site editor. The misalignment means users sometimes need to hop between editors, which can be frustrating. This Gutenberg version includes all page edit features in both editors.

Also, the 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. and the Fonts Library API have received a big refactor. These APIs are getting close to the 6.5 release, so it’s a great time to test them.

Other Notable Highlights

New Interactivity API directives

The Interactivity API now includes several new directives that will be incredibly helpful when creating interactive blocks.

  • data-wp-on-window and data-wp-on-document to handle global events like scroll, keypress, load, ready, etc.
  • data-wp-each to render lists.
  • data-wp-run to execute custom logic while rendering an element with directives. 

Footnotes available for custom post types

Footnotes are available for all post types that

  • Are public and appear in 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/..
  • Supports all of the following: editor, custom fields, and 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..

Changelog

Features

Interactivity API

  • Add wp-data-on-window and wp-data-on-document directives. (57931)
  • Add wp-each directive. (57859)
  • Add wp-run directive and useInit & useWatch hooks. (57805)
  • Create @wordpress/interactivity-router module. (57924)

Typography

  • Add defaultFontSizes option to theme.json. (56661)

Font Library

  • Font Library: Add wp_get_font_dir() function. (57730)

Custom Fields

  • Block Bindings: Disable editing of bound block attributes in editor UIUI User interface. (58085)

Block Editor

  • Add effects/box shadow tools to block inspector. (57654)

Enhancements

Components

  • Add opt-in prop for 40px default size for BoxControlBorderControl, and BorderBoxControl. (56185)
  • BorderControl: Replace style picker with ToggleGroupControl. (57562)
  • ColorPicker: Store internal HSLA state for better slider UXUX User experience. (57555)
  • Migrate PaletteEdit and CircularOptionPicker tests from user-event to ariakit/test. (57809)
  • Replace TabPanel with Tabs in the Editor Preferences Modal. (57293)
  • Theme: Set color on wrapper. (58095)
  • Tooltip: No-op when nested inside another Tooltip component. (57202)
  • BoxControl: Update design. (56665)
  • Element: Start reexporting PureComponent. (58076)

Interactivity API

  • Render the root interactive blocks. (57729)
  • Interactivity Router: Replace data-wp-navigation-id with data-wp-router-region. (58191)
  • Interactivity: Export withScope() and allow to use it with asynchronous operations. (58013)
  • Prevent the use of components in wp-text. (57879)
  • Remove wp-data-navigation-link directive. (57853)
  • Server Directive Processing Refactor. (58066)
  • Update preact@preact/signals and deepsignal dependencies. (57891)

Block Editor

  • Add copy link button to Link UI. (58170)
  • Improve LinkControl preview. (57775)
  • Keep Link UI open upon initial link creation when used in RichText. (57726)
  • List View: Displace list view items when dragging (a bit more WYSIWYGWhat You See Is What You Get What You See Is What You Get. Most commonly used in relation to editors, where changes made in edit mode reflect exactly as they will translate to the published page.). (56625)
  • Show initial suggestions in rich text Link UI. (57743)
  • Disable lock button if user cannot control lock state. (57274)
  • Use ClipboardJS latest version and clean up focus loss workaround. (57156)
  • Dimensions: Add Aspect Ratio block support. (56897)

Block Library

  • Add more taxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies. options to the post navigation link. (48912)
  • Add: Footnotes support for other CPT’s. (57353)
  • Better navigation link variations for post types / taxonomies. (56100)
  • Remove “blocks” from copy and delete labels. (57769)
  • Pullquote Block: Add padding and margin support. (45731)
  • Video Block: Add raw transformation from video htmlHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers.. (47159)
  • Aspect ratio: Remove support on the Group block for now. (58414)
  • Image block: Move UI for lightbox from 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. to the content toolbar alongside link settings. (57608)

Data Views

  • DataViews: Enable grid layout for templates & parts by default. (58137)
  • DataViews: Make dataviews powered page patterns stable. (58139)
  • DataViews: Make the “Manage Pages” stable. (58166)
  • Dataviews: Add Bulk actions to page. (57826)

Site Editor

  • Group templates in sidebar list. (57711)
  • Initial routing refactoring to separate preview from list view. (57938)
  • Iterate on warning text for block removal for query/post template/post content. (58138)
  • Site editor: Add global styles changes to save flow. (57470)
  • Editor: Unify the Editor Mode preference. (57642)
  • Live Preview: Show the current theme name on the theme activation modal. (57588)
  • Unify the preferences modal UI between post and site editor. (57639)
  • Remove right negative margin from pinned items. (57666)
  • Update style revision top toolbar text. (58057)

Block API

  • Block Bindings: Update source registration syntax and remove APIs that should be private. (58205)
  • Block Hooks: Do not remove toggle if hooked block is present elsewhere. (57928)

Synced Patterns

  • Add basic pattern overrides end-to-end tests. (57792)
  • Use a 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. format and support linkTarget of core/button for Pattern Overrides. (58165)

Patterns

  • Add image block support for pattern overrides. (57909)
  • Outline editable blocks that are within a content-locked container. (57901)
  • Change text on pattern reset button. (58286)

Post Editor

  • Post Lock: Use the new modal size preset. (58197)
  • Add description to the save panel 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. when nothing is checked. (57716)

Font Library

  • Update the default collection data URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org to 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/ cdn. (58186)
  • Font Library: Refactor stylesheet using CSSCSS Cascading Style Sheets. variables (58237)
  • Font Library Modal: Reset the selected font when installing a new font. (57817)
  • Font Library: Disable font library UI using a PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher filter. (57818)
  • Font Library: Filter fonts upload directory. (57697)
  • Font Library: Use data or src file to define font collection data. (57734)
  • Improve font collection rest controller. (58222)
  • Make notices more consistent. (58180)
  • Updates Font Families and Font Faces endpoints context param. (58287)

Commands

  • Minor command tweaks. (58148)

Extensibility

  • Update Navigation block to render hooked inner blocks. (57754)
  • Add gettext content when translating ‘Header’. (51066)

Template Editor

  • Remove template-only mode from editor and edit-post packages. (57700)

New APIs

Block API

  • Block Bindings API: Add block bindings PHP registration mechanisms and “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.” source under the experimental flag. (57249)
  • Block Bindings API: Refactor logic into Block Bindings class and singleton pattern. (57742)

Bug Fixes

Block Library

  • AvatarAvatar An avatar is an image or illustration that specifically refers to a character that represents an online user. It’s usually a square box that appears next to the user’s name. block: Fix broken aligments in the editor. (58114)
  • Embed Block: Fix retry processing when embedding with trailing slash fails. (58007)
  • Lightbox: Fix “Expand on click” control being disabled unintentionally. (56053)
  • Modified Date Block: Don’t render change date tool. (57914)
  • Only prioritise Quote transform where relevant. (57749)
  • 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.: Fix posts list variation detection. (58194)
  • Block Hooks API: Update Navigation block feature gate. (58388)

Components

  • Button: Always render the Tooltip component even when a tooltip should not be shown. (56490)
  • CustomSelect: Adjust renderSelectedValue to fix sizing. (57865)
  • ToggleGroupControl: Improve controlled value detection. (57770)
  • Tooltip: Accept specific tooltip props. (58125)
  • Tooltip: Forward and merge inner tooltip props correctly. (57878)
  • Bring back the chevron. (57807)
  • Preferences: Add a proxy to retrieve the deprecated preferences with a deprecation message. (58016)

Data Views

  • DataViews: Default sort order in templates by title. (58175)
  • DataViews: Don’t always display horizontal scrollbar. (58101)
  • DataViews: Fix author sorting in templates and template parts. (58167)
  • Remove unused argument from sprintf in pagination.js. (57823)
  • DataViews: Fix safari grid row height issue. (58302)
  • DataViews: Fix table view cell wrapper and BlockPreviews. (58062)

Patterns

  • Add black border back when editing synced pattern in the post editor. (57631)
  • Outline editable blocks when in a pattern that has locked children. (57991)
  • Remove text align control for paragraph, heading, and button in contentOnly editing mode. (57906)
  • Pattern Categories: Fix capitalization. (58112)
  • Fix flaky “create a new pattern” test. (57747)
  • Block Bindings: Fix bindings image placeholder showing in patterns overrides. (58252)

List View

  • Image Block: Make block name affect list view. (57955)
  • More Block: Make block name affect list view. (58160)

Block API

  • Block Hooks: Fix toggle. (57956)
  • Fix formats not working in block bindings content. (58055)

Global Styles

  • Correctly decode border color values. (57876)
  • Fix: Theme.json application of custom root selector for styles. (58050)

Data Layer

  • Data: Allow binding registry selector to multiple registries. (57943)
  • Data: Fix memoized createRegistrySelector. (57888)

Typography

  • #56734 When there is no font, the border should not appear. Display further guidance text. (56825)
  • Fluid typography: Do not calculate fluid font size when min and max viewport widths are equal. (57866)

Block Editor

  • 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.: Content locking does not stops when an outside block is selected. (57737)
  • LinkControl: Remove unnecessary right padding of input fields. (57784)

Custom Fields

  • Block Bindings: Fix button popover not showing in patterns. (58219)

Font Library

  • Fix typo. (58193)
  • Removed and elements from Font Library Modal (58221)

Synced Patterns

  • Fix losing overrides after detaching patterns. (58164)

Interactivity API

  • Prevent wp-data-on="" from creating onDefault handlers. (57925)
  • Prevent usage of gutenberg_url in block-library (58242)
  • Interactivity API: Fix data-wp-on-document flaky test. (58008)
  • Interactivity API: Fix flaky test on-window. (58134)
  • Fix flaky test on-window, remove duplicate expect on-document. (58181)
  • Interactivity: Fix broken reactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. usage in published package. (58258)

CSS & Styling

  • Styles revisions: Remove body padding. (57748)

Templates API

  • Fix visual indication of switch to default template in the post editor. (57718)

Site Editor

  • (editor)(fix) Append the edit-post-header-toolbar class in NavigableToolbar for backward compatibility with 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 GUI injections. (58154)
  • Fix site editor layout regressions. (58077)

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)

Site Editor

  • Fix font variants count color contrast ratio and l10nL10n Localization, or the act of translating code into one's own language. Also see internationalization. Often written with an uppercase L so it is not confused with the capital letter i or the numeral 1. WordPress has a capable and dynamic group of polyglots who take WordPress to more than 70 different locales.. (58117)
  • Make the site hub View Site link always visible. (57423)

Block Editor

  • Fix parent selector button focus style and metrics. (57728)
  • Restore visual separator between mover buttons when show button label is on. (57640)

Widgets Editor

  • Fix Widgets page Undo and Redo accessibility and keyboard interaction. (57677)

Performance

  • Add patterns load test. (57828)
  • Block editor: Avoid list re-rendering on select. (57188)
  • Block editor: Don’t register shortcuts for preview editors. (57984)
  • Block editor: Fix performance regression after #57950. (57971)
  • Block editor: Use context for useBlockEditingMode. (57950)
  • BlockSwitcher: Defer transform calculations until the Dropdown is open. (57892)
  • Call variation through callback so it’s only loaded when needed – in support of tracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. 59969. (56952)
  • Editor styles: Cache transform. (57810)
  • Footnotes: Combine format store subscription. (58129)
  • 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.: Calc compat styles once per page load. (57798)
  • Measure typing with the top toolbar enabled. (57709)
  • Meta boxes: Don’t initialise if there are none. (57182)
  • Patterns: Avoid fetching on load. (57999)
  • Site editor: Avoid fetching themes on load. (57985)
  • Site editor: Reduce artificial loading delay from 1s to 100ms. (57953)
  • Site editor: Remove store subscription per block. (57995)
  • Template Part & Query: Avoid server requests on mount. (57987)
  • Template part block: Avoid parsing ALL patterns on mount. (57856)

Block Editor

  • Revert “Block editor: Avoid list re-rendering on select”. (58147)

Post Editor

  • Editor: Use hooks instead of HoCs for EditorNotices. (57772)

Experiments

Data Views

  • Add: Bulk actions to dataviews with the new design. (57255)
  • Data view list layout: Fix thumbnail dimensions. (57774)
  • Data views table layout: Update cell vertical alignment. (57804)
  • DataViews: Add description to pages. (57793)
  • DataViews: Add front page to pages page sidebar. (57759)
  • DataViews: Better management of layout param in templates. (58116)
  • DataViews: Make list layout the default for templates with the experiment enabled. (57933)
  • DataViews: Revert list view as default for pages. (58081)
  • DataViews: Revert list view as default for templates. (58079)
  • DataViews: Set primary field styles. (57846)
  • DataViews: Show loading / no result message for the list layout. (57764)
  • DataViews: Update template parts view. (57952)
  • DataViews: Use button for patterns, pages and templates preview field. (58071)
  • DataViews: Use table layout for templates when experiment disabled. (57960)
  • Stabilise view options button icon. (57964)
  • Update Grid layout design. (57880)
  • Update Pages preview field display. (57919)
  • Update Templates table layout. (57930)
  • Update: Show template sources on templates Dataviews sidebar. (58124)

Synced Patterns

  • Add a control to reset pattern overrides. (57845)
  • Allow heading and button in Pattern Overrides. (57789)

Typography

  • Download then upload font face assets when installing from a collection. (57694)
  • Use slug instead of id for Font Collection. (57735)

REST API

  • Font Library Refactor. (57688)

Block Editor

  • Allow drag and drop to create Rows and Galleries. (56186)

Documentation

  • Add a video demonstration to the Quick Start Guide. (57834)
  • Button: Improve disabled-related prop descriptions. (57864)
  • Components: Move CHANGELOG entries under the correct release. (57885)
  • Docs: Fix typo in “The block wrapper” document. (58106)
  • Docs: Use ‘key’ in ‘editor.BlockEdit’ filter code examples. (58119)
  • Document files/directories requiring backmerging to WP CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. for 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.. (58064)
  • Fix the iframe markup of the embed video in the Quick Start Guide. (57857)
  • Fix: Link to the nodejs release page. (57816)
  • Fix: Typo on BlockListBlock comments. (57814)
  • Fix: Typos on __unstableSetTemporarilyEditingAsBlocks documentation. (57768)
  • Font Library: Add font collection JSON schema. (57736)
  • Prefixes all php filters with wpdocs_. (53914)
  • Remove the unnecessary TOC and fix grammar/formatting in the Patterns doc. (57825)
  • Remove the 👋 emoji from the Block Editor Handbook. (58023)
  • Update versions-in-wordpress.md. (57916)
  • [Type] Developer Documentation – Fix removeAllNotices dispatch on the removeAllNotices doc section of wordpress/notices. (57436)

Code Quality

Components

  • PaletteEdit: Improve unit tests. (57645)
  • Tooltip and Button: Tidy up unit tests. (57975)
  • Tooltip: Add test for classname leakage. (58182)
  • Remove unneeded margin: 0 override for Notice component consumer. (57794)
  • Shadows: Prevent empty style object when removing shadow. (58155)

Block Editor

  • Soft deprecate custom ‘pure’ HoC in favor of ‘React.memo’. (57173)
  • Stabilise RecursionProvider and useHasRecursion APIs. (58120)
  • Tidy up block patterns selectors. (57913)
  • Shadow: Remove additional wrapper around getShadowClassesAndStyles. (58297)

Block Library

  • Gallery Block: Remove duplicate return statement. (57746)
  • Navigation: Move the renderer class to the main navigation file. (57979)
  • Fix comments block. (57820)
  • Rename __experimentalGetGlobalBlocksByName to getBlocksByName. (58156)
  • Block Hooks API: Remove $post check from Navigation hooked blocks meta fn. (58379)
  • Post navigation link: Coding standard fixes. (58380)
  • Update docblockdocblock (phpdoc, xref, inline docs) for render_block_core_pattern. (58382)
  • Block Hooks API: Update doc block for block_core_navigation_insert_hooked_blocks. (58378)

Font Library

  • Remove WP_Font_Family class that is no longer used. (58184)
  • Font Library: Remove ‘version’ property from font collection schema. (58025)
  • [Fonts API] removing files and files loading no longer needed. (57972)
  • Remove unused utilities and rename class. (58342)
  • Rename the slug of the google fonts collection from ‘default-font-collection’ to ‘google-fonts’. (58331)
  • Refactored download/upload logic to support font faces with multiple src assets. (58216)
  • Font Library: Addresses additional REST API feedback. (58333)

Block Directory

  • DownloadableBlocksPanel: Remove withSelect in favor of useSelect. (58109)

Patterns

  • Stabilize the pattern overrides block context. (58102)
  • Remove pattern override experiment completely. (58105)
  • Update pattern overrides to use a hard coded support array. (57912)
  • Block Bindings: Change core/pattern-attributes source for core/pattern-overrides. (58434)

Block API

  • Block Bindings: Remove the experimental flag. (58089)
  • Block Renaming – move backported WP 6.5 code to 6.5 compat dir. (58126)

Post Editor

  • Editor: Use hooks instead of HoCs in ‘PostScheduleCheck’. (57833)

Script Modules API

  • Update the code and move it to the compat/wordpress-6.5 folder. (57778)

Data Views

  • Remove obsolete check from dataviews modal actions title. (57753)

Interactivity API

  • Remove data-wp-slot and data-wp-fill. (57854)
  • Remove unused state and rename props to attributes in getElement(). (57974)

HTML API

  • 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. updates from Core. (57022)

Custom Fields

  • Block Bindings: Simplify block bindings object. (58337)
  • Block Bindings: Adapt block bindings to wordpress code latest changes. (58383)

Tools

Testing

  • Add setGutenbergExperiments to requestUtils. (56663)
  • Add: End to end test to content locking stop editing as blocks behavior. (57812)
  • Attempt to fix php unit tests (variations api change). (58090)
  • Migrate ‘block grouping’ end-to-end tests to Playwright. (57684)
  • Migrate ’embedding’ end-to-end tests to Playwright. (57969)
  • Migrate ‘typewriter’ end-to-end tests to Playwright. (57673)
  • Remove unused Navigation block end-to-end test fixtures. (57848)

Build Tooling

  • Update caniuse-lite package. (58087)
  • Update the cherry pick script to work with the new version of gh. (57917)
  • Scripts: Remove unused variable in bin/list-experimental-api-matches.sh. (57771)
  • (chore) Revert bump to the v17.5.1 (draft) due to 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. in the release found by manual testing. (58027)
  • Fix misplaced ReactRefreshWebpackPlugin. (57777)
  • Automate creation of Issue for major release PHP synchronisation. (57890)
  • Remove check-latest-npm validation. (57797)
  • core-js: Only polyfill stable features. (57674)

First time contributors

The following PRs were merged by first time contributors:

  • @kt-12: Call variation through callback so it’s only loaded when needed – in support of trac 59969. (56952)
  • @leomuniz: [Type] Developer Documentation – Fix removeAllNotices dispatch on the removeAllNotices doc section of wordpress/notices. (57436)

Contributors

The following contributors merged PRs in this release:

@aaronrobertshaw @afercia @ajlende @andrewserong @annezazu @artemiomorales @arthur791004 @atachibana @bacoords @bph @brookewp @c4rl0sbr4v0 @carolinan @chad1008 @ciampo @creativecoder @DAreRodz @dcalhoun @derekblank @dmsnell @draganescu @dsas @ecgan @ellatrix @fluiddot @fullofcaffeine @gaambo @geriux @getdave @glendaviesnz @gonzomir @inc2734 @jameskoster @jeryj @jffng @jorgefilipecosta @jsnajdr @kevin940726 @kt-12 @leomuniz @luisherranz @madhusudhand @MaggieCabrera @Mamaduka @matiasbenedetto @mcsf @michalczaplinski @mikachan @mirka @ndiego @noisysocks @ntsekouras @oandregal @ockham @oguzkocer @pbking @ramonjd @richtabor @SantosGuillamot @scruffian @SiobhyB @sirreal @swissspidy @t-hamano @talldan @tellthemachines @tjcafferkey @tyxla @vcanales @youknowriad

Props to @jameskoster for visuals assets and @cbringmann for peer-review

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

Dev Chat Summary, January 24, 2024

Start of meeting on Slack facilitated by @webcommsat

This DevChat starts with an experiment to shift the chat to synchronize discussions on open coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. proposals and release issues rather than reproducing links highlighted in the curated agendas.

Discussion on open proposals in Core

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.

Link to post: Proposal: The Interactivity API – A better developer experience in building interactive blocks

Conversation start link

Comments:

  • The API is well beyond the proposal stage, with nothing actionable in discussion.

Actions:

  • The proposal should be considered “accepted”.

HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. API: Introduce WP_HTML::tag() for safely creating HTML

Link to PR (draft): https://github.com/WordPress/wordpress-develop/pull/5884

Conversation start link

Comments:

  • This PR was raised along with the question of how items should be added to the agenda. It was clarified that topics can be added as comments to the previous week’s chat summary, or to the current week’s agenda post (typically published on Tuesdays). And of course, any item can be raised during the open floor section of Dev Chat.
  • @dmsnell indicated that the PR for consideration is a scaled back version of a larger templating system proposal, which will not be ready for 6.5. The PR adds a helper utility, WP_HTML::tag(), to conveniently generate single HTML tags with attributes. The impetus for this feature is to provide Core and extenders a safer way to generate HTML tags, compared with reliance on proper usage of functions such as esc_attr(), which might be overlooked and introduce HTML injection vectors.
  • @jorbin would prefer that any new APIs be used by Core itself, and that there be accessory patches prepared that demonstrate how the function integrates and operates in Core. It was also suggested that a Make/Core proposal would help with gathering broader input.
  • @azaozz pointed out that enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. tickets in TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. are another form of “proposal”, and can also result in healthy discussion. He suggested starting the discussion in Trac, and then utilizing a Make/Core proposal if the ticketticket Created for both bug reports and feature development on the bug tracker. isn’t sufficient to establish consensus.
  • There continued discussion around how Core generates HTML currently, which relies on proper use of esc_*() and echo(), as well as a broader discussion around safely generating HTML. Got feedback? Join the conversation in 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/., or leave a comment below.

Actions:

  • @dmsnell to create a Trac ticket and/or Make/Core proposal to discuss introduction of WP_HTML::tag().
  • @dmsnell to consider a future Make/Core proposal for the HTML API templating system, and continued discussion around generating safe HTML.

Forthcoming releases

6.4.3

Conversation start link

  • @jorbin shared the remaining open tickets for this milestone, which are scheduled for review and commit prior to a Thursday (Jan 25) RCrelease 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).:
    • #60025 – This needs additional review and testing. Any help is appreciated
    • #59866 – @peterwilsoncc and I have been work on the one and I should have an update in the next 12 hours.
  • @joemcgill requested help reviewing the approach proposed in #5926 Cache locate template paths, which would address both #60025 and #60290.

6.5

Conversation start link

See this section in the agenda for updates, helpful links, and information for the 6.5 release.

Comments:

  • @oglekler pointed out that there are several early 6.5 tickets that need attention, asking for review as some might have the potential to be completed in time for 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..
  • @hellofromtonya indicated that the 6.5 cycle is past the “early part of alpha”, suggesting these may need to be punted if they truly require a long runway for soak time and discussion.
  • @azaozz agreed that the early keyword indicates a need for comprehensive testing, and possible reconsideration of the milestone if the testing hasn’t occurred. He also suggested that while not required, it might be preferable to fix old/known bugs during alpha, and allow beta testers to focus on “new” bugs introduced from Beta 1 and onward.
  • @jorbin suggested two interpretations of early; i.e. actually early in the alpha cycle, or just before Beta 1.
  • @hellofromtonya noted that since Beta 1 is the puntpunt Contributors sometimes use the verb "punt" when talking about a ticket. This means it is being pushed out to a future release. This typically occurs for lower priority tickets near the end of the release cycle that don't "make the cut." In this is colloquial usage of the word, it means to delay or equivocate. (It also describes a play in American football where a team essentially passes up on an opportunity, hoping to put themselves in a better position later to try again.) milestone for enhancements/features, that in her perspective, early should apply to early in the alpha cycle. She cited changes to WP_Query as an example where early would apply.
  • @afragen observed that it doesn’t seem that many early tickets are committed early in the cycle.

Open Floor

Props @hellofromTonya for peer review.

#6-4, #6-5, #core, #core-editor, #dev-chat, #meeting, #summary

Core Editor Improvement: Robust Revisions in the Site Editor

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. 

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. are an integral part of the creation experience, providing a safety net and a way to see where you’ve been to know where to go next. It’s so important that there’s a dedicated area of focus for phase 3 efforts dedicated to the broader area of work! While lots of work lies ahead, WordPress 6.5 is slated to include some impactful changes and new features to current revision functionality in the Site Editor. 

If you want to try out what’s shared below for yourself, head over to the post on Early Opportunities to Test WordPress 6.5 where you can quickly spin up your own test site to experience it for yourself and give feedback. Everything shared below is available as of 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/ 17.4 and planned for inclusion in WordPress 6.5.

Let’s look at a before and after 

To help bring these changes to life, below is a video showcasing what’s written below. The “before” site is using WordPress 6.4.2 and the “after” site is using WordPress 6.4.2 with Gutenberg 17.5.1 installed. These test sites were pulled from Early Opportunities to Test WordPress 6.5 so anyone is welcome to explore:

Read a short summary of styling changes thanks to a new design

Alongside a new design showing more granular information, like a more granular timestamp, a short summary of changes made in each revision is now available. Combined, this greatly simplifies understanding what’s in each revision rather than relying on spotting visual changes. 

View all style revisions thanks to pagination

Rather than showing just the last 100 revisions, all revisions are now available thanks to pagination. This both works around a technical limitation of 100 results per REST response and helps make navigating between revisions much easier than scrolling endlessly 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.

Toggle on the Style Book to get a different angle

In the same way you might be used to using the Style Book when making changes to your site in the Site Editor, you can now do the same when looking at different revisions to see changes that might not otherwise be visible on the current template. Just as when you use the Style Book normally, you can toggle it on and off as you’d like. 

Rely on full revisions for everything 

While the undo and redo buttons have a role to play, having access to full revision history allows for a much greater understanding of changes, their impact, and actions one can take. While this was mentioned in a previous post, revisions for templates and template parts are finally slated for inclusion in Core for WordPress 6.5. This means out of the box folks can browse changes to templates, template parts, and styles providing a nice safety net. 

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