What’s new in Gutenberg 12.8? (16 March)

“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 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 posted following every Gutenberg release on a biweekly basis, discovering new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Full Site Editing project.


Depending on which hemisphere of the Earth you are at right now, either Spring or Autumn are coming soon. In either case, and regardless of your location, Gutenberg 12.8 is already here for everybody! This release comes with new APIs, iterative UXUX User experience enhancements, and, as always, many bugfixes to increase the editor’s stability.

Table of Contents


New Webfonts 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.

Since 2007, WordPress has provided a framework to help theme and pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party developers load scripts and styles in a standardized, integrated way. Now, for the first time, web fonts have the same types of tooling.

This API is the first step in helping people load fonts in a performance-friendly, privacy-friendly, and future-proof manner – something which has been tremendously difficult to do without such a framework.

That it’s taken so long to reach this point is a testament to how complex web fonts can be and evidence of how much work has gone into ‘getting this right.’ Now that this framework exists, more tools and optimizations can be built on top of it to ensure that WordPress delivers the best possible experience (and privacy) to end-users.

With a few weeks left until the next WordPress Beta release and because of the complexity to achieve this milestone, testing the API is encouraged, and as always, feedback is welcome!

Swift inline insertion of internal links

Gutenberg seeks to provide the best editing experience to all kinds of users, and power users will enjoy seeing inline links can now be inserted with a direct keyboard shortcut. If you thought using the slash inserter was fast, try the new [[ keyboard trigger to add an inline link without going through the inserter.

As with other enhancements aiming to improve the user experience, this new feature is gathering feedback; don’t hesitate to share your thoughts on the keyboard trigger and the overall experience.

Steps towards full visual theme creation

The Gutenberg team keeps making progress towards the goal of full visual theme building within the editor. When using the export tool available in the Site Editor, the theme.json file including the Styles settings is included in the zip, too, together with the index.php and styles.css files as well!

Iterating on placeholder and loading states

In continuation of work done in previous releases, Gutenberg 12.8 keeps iterating on placeholder and loading states. The Navigation block now provides a clear loading state for initial setup and subsequent loading of existing blocks, and thanks to the improved UIUI User interface feedback, creating a new menu is snappier.

The Media & Text 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. also comes with improved loading states. Starting in this version, the media being uploaded is also displayed behind the spinner.

Props to new contributors

Kudos to the first-time contributors that joined during the last release cycle!

  • @ahsanshaheen199: fix: Code example in flyout component. (39156)
  • @alshakerM: Render SVG props that have dashes correctly. (38936)
  • @awps: Missing ,toggleFormat from last code block. (39146)
  • @francisei: Docs: Emphasized requirement to enclose in quotation marks wp-env run…. (39101)
  • @ironprogrammer: Raise z-index of content div relative to sidebars. (38893)
  • @joshuafredrickson: Add a resolvable 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/. entry point to base-styles. (39240)
  • @jostnes: Remove rename rn UI tests. (39042)
  • @mashikag: Fix Blocks list ordering in Global Styles. (39093)
  • @tomasztunik: Fix Global styles overriding block’s element styles. (39012)
  • @Tumas2: Spelling error in JustifyContentControl example. (39234)

If you are interested in contributing but do not know where to start, join the CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Editor weekly meetings on Wednesdays at 14:00 UTC in #core-editor focused on all things Gutenberg.

12.8.0 Changelog

Enhancements

Block Library

  • Group: Show group option in Group blocks. (39094)
  • Navigation: Improve loading and placeholder states. (38907)
  • Navigation: Improve create new UI feedback in Nav block. (39219)
  • Media & Text: Display media while uploading. (39275)
  • Tag Cloud: Use flex for the Outline style. (38995)

Components

  • ConfirmDialog: add custom button text. (38994)
  • InputControl: Allow onBlur for empty values to commit the change, move reset behaviour to ESCAPE key. (39109)

Block Editor

  • Add a link completer for inline links to posts. (29172)

Site Editor

  • Add theme.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. to export file. (39048)
  • Resolve homepage template on server-side. (38817)
  • Theme Export: Add index.php and style.css. (39173)

Icons

  • Update drag handle footprint. (39342)
  • Update Pin icon, add new Post icon. (39139)

General Interface

  • Raise z-index of content div relative to sidebars. (38893)

Media

  • MediaReplaceFlow: Add ‘onError’ prop to handle error notifications. (39197)

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)

  • Block settings dropdown: Use block display title in remove label. (39110)
  • Try allowing tab into block placeholder. (39085)

New APIs

  • Webfonts API. (37140)
  • Add new @wordpress/preferences package. (38873)
  • Add reusable preferences modal to interface package. (39153)
    • Add interface preferences modal to edit post. (39176)
    • Migrate hidden block types (block manager data) to new preferences packages. (39132)
    • Migrate post editor feature preferences to use new preferences package. (39115)
    • Migrate customize widgets editor to use new preferences package. (39112)
    • Migrate standalone widgets editor to use new preferences package. (39084)
    • Migrate site editor to use new preferences package. (39158)
    • Deprecate interface package’s preference APIs. (39418)
  • Create Block: Add support for more plugin 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. fields. (39096)

Bug Fixes

Block Library

  • Buttons: Added aria label to the button block with icon. (38966)
  • Buttons: Fixes Button highlight popover overflow conflictconflict A conflict occurs when a patch changes code that was modified after the patch was created. These patches are considered stale, and will require a refresh of the changes before it can be applied, or the conflicts will need to be resolved. with link popover. (38771)
  • Buttons: Don’t set a placeholder text color. (39034)
  • Code: Restructure code block styling. (38712)
  • Comments Pagination Number_ Fix Comments Pagination Number with no pagination settings. (39204)
  • Cover: Fix keep selected unit on deleting minHeight value. (39145)
  • Cover: Fixes #38761 by removing obsolete ::Before pseudo element. (38762)
  • File: Check if ‘fileId’ exists before setting the attribute. (39088)
  • File: Don’t display loading animation on upload error. (39213)
  • File: Fix file block validation error by not outputting aria-describedby if there’s no description. (39083)
  • File: Fix the undo trap. (39215)
  • Hide border panel when all border features have been disabled. (36791)
  • Hide current menu from dropdown list in Nav block. (38916)
  • Image: Fix image responsive rules. (39045)
  • Image: Display errors after failed upload. (39178)
  • Media & Text: Display errors after failed upload. (39245)
  • Navigation: Fix navigation menuNavigation Menu A theme feature introduced with Version 3.0. WordPress includes an easy to use mechanism for giving various control options to get users to click from one place to another on a site. error when menus are not yet fetched. (39151)
  • Post Comments Form: Show correctwarning relative to post/page context. (38011)
  • Post Expert: Fix missing class in post excerptExcerpt An excerpt is the description of the blog post or page that will by default show on the blog archive page, in search results (SERPs), and on social media. With an SEO plugin, the excerpt may also be in that plugin’s metabox.. (38747)
  • Post Terms: Unescape HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. entities in term names. (39216)
  • 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. Group: Make save() markup the same as render_callback markup. (38510)

Styles

  • Fix Blocks list ordering in Global Styles. (39093)
  • Fix default duotone preset SVG and style generation. (38681)
  • Fix header panel height. (39119)
  • Fix Global styles overriding block’s element styles. (39012)

Components

  • Update drag gesture of InputControl-based controls with axial constraint. (38968)
  • UnitControl: Fix controlled unit behavior. (39148)
  • Normalize font-family. (38969)

Block Editor

  • Fixes block highlight after block move. (38915)
  • Improve in_footer handling in gutenberg_override_script(). (39497)

Post Editor

  • Avoid error when ‘styles’ settings are removed. (39091)
  • URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org: Fix code drift in the Editor package by removing duplicate cleanForSlug function. (39033)

Site Editor

  • Expose plugin area to site editor’s List page. (39078)

Other Packages

  • apiFetch: Handle urlencoded and rest_route query params. (38914)
  • Base Styles: Add a resolvable JavaScript entry point to base-styles. (39240)
  • Compose: Avoid memory leak in use-drop-zone. (39038)
  • Render SVG props that have dashes correctly. (38936)
  • Url: Improvement to prototype handling. (39365)

Developer experience

  • Change copying PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher files to dist directory to opt-in via a CLICLI Command Line Interface. Terminal (Bash) in Mac, Command Prompt in Windows, or WP-CLI for WordPress. flag. (39171)
  • Create Block: Add confirm prompt before showing the plugin options. (39105)
  • Create Block: Improve custom project template configuration. (39049)
  • Handle resolution errors in wordpress/data. (38669)

Documentation

  • Add import useBlockProps. (39072)
  • Components: Update changelog follow up for #38985. (39013)
  • Emphasized requirement to enclose in quotation marks wp-env run…. (39101)
  • Element: Add changelog notes for serialize attribute casing. (39141)
  • Gutenberg Data Tutorial Part 3: Building an edit form. (38581)
  • Fix code example in flyout component. (39156)
  • Missing ,toggleFormat from last code block. (39146)
  • Move recent CHANGELOG entry to Unreleased section. (39169)
  • Spelling error in JustifyContentControl example. (39234)
  • Storybook: Support proper extraction of TypeScript prop types. (38842)
  • Storybook: Add webpack loader for easier story descriptions. (39165)

Code Quality

  • Componentes, UnitControl: Tidy up utils and types. (38987)
  • Components, FontSizePicker: Refactor stories to use Controls. (38727)
  • Components, ToggleGroupControlOption: Calculate width from button content and remove LabelPlaceholderView. (39345)
  • Core Data: Rename types directory to entity-types. (39225)
  • Core data: Fix some typing issues. (39212)
  • Core data: Fix some typing issues. (39214)
  • Fix @wordpress/comment-case ESlint errors but without adding the disable-rule pragma. (37006)
  • Delete widget editor redundant css for more menu. (39113)
  • Layout: Remove duplicate var declaration. (39111)
  • Move editor settings code to compat folder. (39030)
  • Refactor useSelect usages to useEntityRecords. (38827)
  • Refactor classic menu conversion process. (38858)
  • Post author name: Add “post” prefix to CSSCSS Cascading Style Sheets. class. (38320)
  • TreeGrid: Update callback unit tests to use TreeGridRow and TreeGridCell sub components. (39002)
  • Update framer motion to 6.2.8. (38999)
  • useBlockEditorSettings: Remove unused unstableBase fetch. (39221)

Tools

Project Management

  • Code owners: Remove users without write access and fix typos. (39238)
  • Simplify Pull Request template. (39229)

Testing

  • Add end-to-end testing for experimental nav menu deletion. (38955)
  • Add Home/End keyboard end-to-end test for List View. (39265)
  • Add some tests for TreeGrid. Update README to reflect latest functionality. (39302)
  • Add test case for post locking feature saving. (39022)
  • Add tests for media replace flow. (39005)
  • Block Test Fixtures: Add additional error message for serialized test fixtures that reserialize identically. (39039)
  • ESLint Plugin: Make Prettier integration optional. (39244)
  • Fix performance tests by adding backwards compatibility to welcome guide utility. (39300)
  • Improve switch to draft button end-to-end test robustness. (38971)
  • Remove rename rn UI tests. (39042)
  • Social Icons: Begin Automating Existing Manual Test Cases. (39027)
  • Update ‘clickMenuItem’ test util to use full label matching. (39274)
  • Update preview test to wait for publish panel to appear before closing it. (39100)

Build Tooling

  • Fix spelling of contributors in changelog script. (39029)
  • Resolve peer dependency warnings. (39043)

npm Packages

  • Fix npm run docs:Build crashing when a block.json lacks supports key. (39241)
  • Packages: Automate npm publishing as part of Gutenberg release workflow. (39259)
  • Packages: Automatically acceppt all Lerna commands when run with CI flag. (39199)
  • Packages: Update CLI publishing tool to run in CI mode. (38993)

Plugin

  • Account for upcoming changes in styles metadata in WordPress 5.9. (36327)
  • Don’t filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. ‘theme_templates’ when running WP 5.9. (39017)

Performance Benchmark

The following benchmark compares performance for a particularly sizeable post over the last releases. Such a large post isn’t representative of the average editing experience but is adequate for spotting variations in performance.

Post Editor

VersionTime to first blockKeyPress Event
Gutenberg 12.85.01s38.86ms
Gutenberg 12.75.07s40.42ms
WordPress 5.95.22s38.11ms

Site Editor

VersionTime to first blockKeyPress Event
Gutenberg 12.84.99s33.12ms
Gutenberg 12.75.01s37.61ms
WordPress 5.94.74s32.03ms

Kudos to all 54 contributors that participated in the release! 👏

Thanks to @jameskoster for the release post assets, @jonoaldersonwp for crafting the Webfonts API summary,  and to @cbringmann and @hellofromtonya for proofreading.

#gutenberg-new #gutenberg #core-editor

What’s new in Gutenberg 12.7? (2 March)

“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 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 posted following every Gutenberg release on a biweekly basis, discovering new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Full Site Editing project.


Gutenberg 12.7 has been released and is available for download!

Table of Contents


Improving the Patterns experience

Gutenberg 12.7 includes new features that will make working with patterns even easier! 

Make Patterns easier to discover

The block quick inserter now prioritizes patterns instead of blocks when all the following conditions are met:

  • We are editing a template, either on site editor or post editor.
  • The inserter is at the root level.
  • The content being inserted is between other blocks (neither as the first 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. nor as the last one).
Patters inserter demonstration animated screenshot

The template part (e.g. 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. / Footer / 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.) creation flow will now also show patterns, making it easier to create more advanced compositions than adding blocks one by one.

Work will continue improving the logic that decides to show a pattern or a block, so feel free to share your feedback in the Gutenberg repository!

Allow themes to highlight Patterns

Themes can now highlight specific patterns to their users!

Recommending patterns to the users is as easy as adding a pattern field to the theme.json file. When handling patterns from the Pattern Directory, you can find their slugs on the URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org when browsing them individually.

Adding patterns in theme.json example

List View Improvements

Once more, the List View keeps getting better! Gutenberg 12.7 includes a few iterative improvements to improve the block editor experience.

You will be able to select multiple blocks at the same level, and then drag and drop them to move them around. To select multiple blocks, the keyboard shortcuts are:

  • Shift Key + Click 
  • Shift Key + Up/Down arrow.
List View drag and drop animated screenshot

Also, when you click on a block in the editor, the List View will expand to show the selected block for better visibility of the selection’s context within the block tree.

Block List view expanding animated screenshot

Changes to frontend HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. when using layouts and image blocks

In order to add consistency to the block editor, we are removing some wrappers divs that were generated on the editor in order to add alignment to some blocks.

Keep in note that this div cleaning can affect themes that support layout and many blocks that have this alignment support. Many contributors helped with testing, but theme developers are encouraged to check their themes and leave any feedback they may encounter.

Other notable highlights

Gutenberg 12.7 provides a few other iterative enhancements worth highlighting.

Column options on Column blocks screenshot
Margin options available on Group blocks screenshot
  • To avoid backward compatibility issues reported in WordPress 5.9, the automatic anchor generation for headings introduced in Gutengerg 11.8 is now opt-in. To enable this feature, simply add:
add_filter(
	'block_editor_settings_all',
	static function( $settings ) {
		$settings['__experimentalGenerateAnchors'] = true;
		return $settings;
	}
);

Props to new contributors

Contributors avatars background and contributor text with an applause emoji.

Recognizing and celebrating contributors, both and new, becomes more efficient and effective! A contributor props list has been automated when creating the release and added to the changelog! Any user who merges a PR during a Gutenberg release cycle will be aknowledged.

In Gutenberg 12.7, up to 52 contributors merged PRs of any kind, including 6 new contributors. Props to @Alex-Kostov, @HasnainAshfaq, @mjstoney, @razwan, @sanzeeb3, and @Sisanu for their first PR! 🎉

Changelog

Enhancements

Block Library

  • Columns: Add border support. (31737)
  • Group Blocks: Add margin support (top/bottom). (37344)
  • Comment Template: Improve comment pagination with nested replies. (38187)
  • Comments 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.: Show placeholder comments on site editor. (38072)
  • Navigation: Try unifying submenu arrow positioning. (37003)
  • Submenu: Add revert button. (38203)

Components

  • FocalPointPicker: Allow updating its value while dragging. (38247)
  • General Interface: Simplify site icon animation on hover. (38783)
  • Navigator: Add NavigatorButton and NavigatorBackButton components. (38634)
  • Type Refactor: Use forwardedRef type for all forwarded refs in wordpress/components. (38948)

Block Editor

  • Block Editor: Add settings to enable/disable auto anchor generation. (38780)
  • Block Transforms: Keep additional HTML classes during a block transform. (38964)
  • LineHeightControl: Enhance interactions by migrating internals to NumberControl on Style options. (37160)
  • List View: Add multi-select behaviour for blocks when shift key is selected. (38314)
  • List View: Expand block list tree on selection. (35817)

Styles

  • Add initial version of the style engine. (37978)
  • Style engine: Refine Box type. (38894)

Post Editor

  • Enable tooltip for the main dashboard button. (38790)

Themes

  • Lowered specificity of alignment rules for support layout so wide alignments work. (38947)
  • Remove data-align divs for themes that support layout. (38613)
  • Remove the div wrapper from the aligned image blocks. (38657)

Patterns

  • Quick Inserter: Prioritize showing patterns instead of blocks. (38709)
  • Allow pattern registration from directory with theme.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML.. (38323)
  • Template Parts: Show existing template parts and a list of block patterns at creation flow. (38814)

Bug Fixes

Block Library

  • Block Transforms: Fix Image and Video to Cover block transformations. (38959)
  • Cover: Fix gradient overlay (remove black background color) (38765)
  • File: Fix PDF file block full content fixture. (38725)
  • Latest Posts: Add missing class to post title. (38740)
  • Logo: Avoid division by zero in site logo. (38808)
  • Post navigation link: Use correct closing tag. (38976)
  • Query Loop: Display nothing if we want only sticky posts but no stickies exist. (38909)
  • Template Parts: Decode entities in labels. (38805)
  • Social Links: Only apply the social links block migrationMigration Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. if there’s a need for a migration. (38561)

Block Editor

  • 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. from coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.: Global styles duotone not rendering in post editor. (38897)
  • Block Editor: insertDefaultBlock should not trigger an error if the default block is not registered. (38886)
  • Inserter: Fix focus loss after closing patterns explorer from modal. (38884)
  • Multi-selection: avoid RichText instances becoming disabled after multi selection. (38821)
  • Rehabilitate drag gesture in LineHeightControl. (38930)
  • RichText: Fix wrong block merging when pressing delete consecutively. (38991)

Site Editor

  • Add site editor initial redirect error handling. (38655)
  • Add template check to ‘setPage’ action. (38656)
  • Adds additional check to guard against incompete presets. (38902)
  • Limit template part slugs to Latin chars. (38695)
  • Template List: Decode entities in record titles. (38863)

Styles

  • Allow child classes to be called instead of the parents. (38857)
  • Backport: Allow for classic themes using default presets. (38701)
  • Fix global styles loading logic. (38745)

Components

  • Fix unexpected dragging triggered on spinner buttons on hover in Safari. (38840)
  • Show tooltip on toggle custom size in FontSizePicker. (38985)

List View

  • Fix error triggering after duplicating a block making it unselectable. (38760)
  • Fix UIUI User interface broken due to error when deleting first item in canvas. (38775)

CSSCSS Cascading Style Sheets. & Styling

  • Fix button width on Widgets Editor. (38846)
  • Load block support styles in the <head> for block themes. (38750)
  • Reduce the margin of the block toolbar. (38746)

Block Directory

  • Fix the block activation when metadata registered on server. (38697)

Colors

  • Strip double # char on HexInput. (38335)

Packages

  • Core Data: CanUser resolver always use the OPTIONS method. (38901)
  • Dom: Avoid RangeError in findPrevious method. (38961)

Apps

  • Fix Custom Palette colors and support multiple origins and theme cache issues. (38417)

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)

  • Adds aria-label to the search button, as accessibility enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature.. (38136)
  • Avoid duplicate labels for “Save Draft” and “Save as pending” buttons. (38776)
  • RichText: Reverse disableLineBreaks to determine aria-multiline state. (38652)
  • TreeGrid: Add Home/End keys to jump to start/end of grid. (38679)

Performance

CSS & Styling

  • Use wp_unique_id() instead of uniqid() to generate CSS class names. (38891)

Experiments

New APIs in Core Data

  • Propose useEntityRecords (experimental). (38782)
  • UseEntityRecord (experimental). (38522)

Documentation

Handbook

  • Add documentation for deprecating styles. (38540)
  • Add documentation about the patterns field of theme.json. (38700)
  • Add more info about contextual patterns and pattern transformations. (38809)
  • Add semantic patterns documentation. (38778)
  • Clarify deprecations documentation. (38683)
  • Fix hyperlink in block Metadata page. (38941)
  • Improve point releaseMinor Release A set of releases or versions having the same minor version number may be collectively referred to as .x , for example version 5.2.x to refer to versions 5.2, 5.2.1, 5.2.3, and all other versions in the 5.2 (five dot two) branch of that software. Minor Releases often make improvements to existing features and functionality. documentation to include even more detail. (38631)
  • Increase support for experimental-link-color until WordPress 5.9 is the minimum version. (38711)
  • Group: Update block supports. (38962)
  • Links changed for Developer.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/ on block editor section. (38841)
  • Removing comma so that the code snippet of theme.json represents standard JSON. (38938)
  • theme.json Update version section docs to v2 (38937)
  • Update Getting Started with more granular options. (38682)

Block Library

  • Add instructions on how to add new core blocks to block-library. (38868)

Components

  • FormFileUpload: Add Storybook stories. (38734)
  • Storybook: Move experimental components to correct section. (38640)
  • Storybook: Remove story for Typography Panel. (38867)
  • wp-env: Document some caveats when using xdebug with VSCode. (38882)

Code Quality

Block Library

  • Cover: Remove unnecessary temporaryMinHeight. (38887)
  • Cover block: Update deprecated gradient fixture. (38728)
  • Gallery: Register gallery in block_names dynamic block array. (38689)
  • Navigation: Improve consistency of block hook. (38705)
  • Navigation: Select dropdown encapsulation and further consolidation. (38627)
  • Navigation: Update wp_kses usage to be consistent (use wp_kses_post). (38732)
  • Post Navigation Link: Prefer kses to blanket esc_html on label. (38696)
  • Remove data-controls mock from Image block RN tests. (38852)

Components

  • Block Supports: Improve image block regex. (38742)
  • Block Supports: Load Styles on <head> backport to core. (38880)
  • Context: Omit as prop in types. (38844)
  • Core Data: Remove fallback for OPTIONS response headers in canUser resolver. (38881)
  • Core Data: TypeScript definitions for entity records. (38666)
  • Data: Normalize selector args when handling metadata selectors/actions. (38945)
  • Edit Site: Migrate store to thunks. (38812)
  • Icons: Deprecate duplicate icons. (38849)
  • PostTrash: Call trashPost action with no arguments, rewrite to 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.. (38615)

npm Packages

  • Packages: Automate cherry-picking to trunktrunk A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision. commits created during publishing. (38977)
  • Packages: Ensure that private packages do not update when publishing to npm. (38946)

Tools

Testing

  • Add end-to-end test for merging paragraphs and soft line break afterwards. (39009)
  • Post Visibility end-to-end test: Improve XPath selector to avoid reliance on DOM structure. (38717)
  • Replace no-shadow eslint rule with @typescript-eslint/no-shadow. (38665)
  • Remove client ID from fixtures. (38685)
  • Remove originalContent from fixtures. (38638)
  • RichText: Add test for merging and then splitting paragraphs. (39007)
  • Site Editor Tests: Use 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/. to delete templates and template parts. (38524)
  • TreeGrid: Add tests for callback functions. (38942)

Build Tooling

  • Build separate full contributors list. (38777)
  • Bump @svgr/webpack from ^5.5.0 to ^6.2.1 (38866)
  • Generate full release contributors list in release changelog. (38704)
  • Generate sourcemap for production 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 builds. (33718)
  • Mobile: Improve npm clean scripts 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-editor. (38752)
  • PWA: Fix URL query param issue. (38755)
  • Scripts: Do not exit build when no entry found in src directory. (38737)
  • Scripts: Fix Entry points are not detected in Windows OS. (38781)
  • Scripts: Copy PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher files from src into build. (38715)

Components

  • BaseControl: Refactor stories to use Controls. (38741)
  • Migrate Post Template Delete button from confirm() to ConfirmDialog. (37535)
  • Migrate the Post ‘Switch to draft’ button to ConfirmDialog component. (37491)
  • Storybook: Ensure rerender for RTL switcher. (38963)

Post Editor

  • Edit Post: Migrate store actions to thunks. (36551)
  • Editor store: Remove a noop SETUP_EDITOR action. (38622)
  • Migrate editor store to thunks. (35929)

Styles

  • Allow to extend the WP_Theme_JSON_Gutenberg class. (38671)
  • Global Styles: Fix PHP warning in WP_REST_Global_Styles_Controller. (38888)
  • Update Global Styles code to continue adding settings & styles. (38883)

Block Library

  • Change Gallery block code ownership. (38722)

Performance Benchmark

The following benchmark compares performance for a particularly sizeable post (~36,000 words, ~1,000 blocks) over the last releases. Such a large post isn’t representative of the average editing experience but is adequate for spotting variations in performance.

Post Editor

VersionTime to first blockKeypress event
Gutenberg 12.75.0 s41 ms
Gutenberg 12.65.1 s40 ms
WordPress 5.95.2 s40 ms

Site Editor

VersionTime to first blockKeypress event
Gutenberg 12.74.7 s30 ms
Gutenberg 12.65.2 s29 ms
WordPress 5.95.2 s29 ms

Kudos to all the contributors that helped with the release! 👏

Thanks to @javiarce for the visual assets!

Thanks to @matveb @priethor and @santosguillamot for proofreading.

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

What’s new in Gutenberg 12.6? (16 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 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 posted following every Gutenberg release on a biweekly basis, discovering new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Full Site Editing project.


Gutenberg 12.6 has been released and is available for download!

Table of Contents


New color panel and updated default color controls

In the same way Gutenberg 11.9 and Gutenberg 12.2 switched typography tools and border controls to use the ToolsPanel component, this release brings the ToolsPanel to the color sidebar.

Text, Background, and Link colors can now be expanded and collapsed in different contexts. This improves the color editing experience and unifies the controls with other design tools. In addition, coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. blocks have been audited and their default color options have been updated accordingly.


New Post Author Biography and Read More blocks

Two new blocks have been included in this release. The Post Author Biography 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. is part of a bigger effort to split out the existing Post Author block into its separate components.

The Read More block provides a simple way to link to a single page or post within the Query block.


Keeping styles when transforming blocks

Block transforms keep improving upon each release. Starting in Gutenberg 12.6, some styles like color and font size are maintained when transforming between blocks.

Moreover, this release adds new block transforms, such as Tag Cloud to Categories, Calendar to Archives, Paragraph to Code, and Group to Row variation, as shown below.


Error boundary for 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 exceptions

Thanks to the new error boundary for plugins, the editor is now more robust against plugin issues. Starting in Gutenberg 12.6, plugin errors are displayed at the top of the editor to let users know which specific plugins are causing issue. This minimizes the potential impact of malfunctioning plugins when editing.


Iterative polishing of the loading states

Streamlining a blocks’ loading state has been a part of previous releases. For example in Gutenberg 12.3 the loading state of the Embed block was reduced to a spinner. With the latest improvements, Gutenberg 12.6 goes one step further and polishes the Spinner component to refine the experience.


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

Accessibility is always top of mind in Gutenberg, and Gutenberg 12.6 is no exception. Building upon the work done in Gutenberg 12.4, the List View is even more accessible when working with keyboard navigation and screen readers.

Other accessibility improvements include placeholder descriptions being now read by VoiceOver, and search results in the block manager are now announced, too.

Props to new contributors

Kudos to the first-time contributors that joined during the last release cycle: @JeffMatsonPagely, @angelistudio, and @sunyatasattva! If you are interested in contributing but do not know where to start, join the Core Editor weekly meetings on Wednesdays at 14:00 UTC in #core-editor focused on all things Gutenberg.

Changelog

Enhancements

Block Library

  • New block: Add post author biography block. (38269)
  • New block: Add new Read More block (post link). (37649)
  • Transforms: Add transform between Tag Cloud and Categories. (38566)
  • Transforms: Add transform between Calendar and Archives. (38324)
  • Transforms: Add transform to row variation. (36202)
  • Transforms: Add core/paragraph in transforms object. (38295)
  • Heading: Omit anchor when transforming to paragraph. (38604)
  • Images: Try moving responsive rule to common.scss. (38399)
  • Navigation: Try removing “Add all pages” from placeholder. (36775)
  • 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.: Prompt to keep or replace Featured Image when replacing Image block media that is set as the Featured Image. (34666)
  • Quote: Remove the Large style option from the quote block. (37580)
  • Social Icons: Add the ability to show/hide labels. (38152)

Components

  • Dropdown: Tweak prop destructuring to be TypeScript friendly. (38431)
  • Tools Panel: Only show 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. ➕ icon when all items are optional. (38262)
  • Update the Spinner design. (37551)
  • Navigator: Add focus restoration. (38149)
  • Navigator: Rename push/pop to goTo/goBack. (38582)
  • Migrate Edit Navigation screen “Delete menu” button from confirm() …. (37492)

Post Editor

  • Export FlatTermSelector and HierarchicalTermSelector. (38419)
  • Migrate post privacy confirmation from confirm() to ConfirmDialog. (37602)
  • Most Used Terms: Update show terms condition. (38513)

Block Editor

  • [Inserter]: Prioritize core blocks over core block variations when they have the same rank. (38616)

Design Tools

  • Block Support: Update color panel default controls. (38511)
  • Color Block Support: Switch to ToolsPanel for displaying UIUI User interface. (34027)
  • Duotone: Allow users to specify custom filters. (38442)

Site Editor

  • Update footer breadcrumb text. (38477)

Developer Experience

  • Plugins: Add error boundary. (38397)
  • Adding the “env” script when –wp-env or wpEnv is present. (38530)

Widgets Editor

  • Add tools slot on the navigation and widgets page settings menu. (37928)

Styles

  • Allow child classes to use the private methods and constants. (38625)
  • Add mechanism to keep styles during block transforms. (37596)
  • Use the theme.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. classes defined by the plugin in the REST controller. (38663)

Icons

  • Add Tip icon to library and use in the Tip component. (38424)
  • Update pagination icons, add new query title and post terms icons. (38521)

New APIs

  • Introduce the customScripts property to allow templates to define additional scripts in package.json. (38535)

Bug Fixes

Block Library

  • Block Library: Remove unnecessary usages of RawHTML. (38527)
  • Audio: Avoid error when locked. (38282)
  • Comment Template: Improve UXUX User experience of inner block selection. (38263)
  • Cover :Add back missing styles. (38362)
  • Gallery: Copy all attributes when transforming to Image blocks. (38642)
  • Gallery: Fix 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. with link destination default option not being set. (38310)
  • Gallery: Fix bug with uploaded images being replaced with same image during selection phase. (38259)
  • Gallery: Ensure last image takes up all available space. (38189)
  • Navigation: Try fixing issue with submenu button in dark contexts. (38270)
  • Navigation: Try inheriting orientation in setup state. (36778)
  • Navigation: Remove blobs that look like a loading state. (37099)
  • Navigation: Try always showing appender even when child is selected. (37637)
  • Read more: Fix filtering of content when rendering read more block. (38650)
  • Separator: Remove width from wide style. (38635)
  • Search: Fix border radius reset. (38478)
  • Search: Fix search block htmlHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. handling for label and button text. (38649)
  • Site Tagline: Disable line breaks. (38475)
  • Tag Cloud: Add the style to the block.json file. (38403)

Components

  • Add cx as a dependency of useMemo across wordpress/components package. (38541)
  • Fix Slot/Fill Emotion StyleProvider. (38237)
  • UnitControl: Add __unstableInputWidth to prop types. (38429)
  • ComboBox: Fix reset button’s height. (38020)
  • DateTimePicker: Fix date format when switching to 12-hour time format. (37465)

Block Editor

  • Don’t ignore legitimate files when pasting mixed content. (38459)
  • Handle the absence of href attrib in links. (37034)
  • Block preview: Fix resize listener. (38516)
  • Guard against undefined entity in site editor page setter. (38503)
  • Page for Posts: Display notice in template panel. (38607)
  • Editor store: Remove createUndoLevel and refreshPost actions. (38585)

Template Editor

  • Fix horizontal scrollbar. (38612)
  • Improve compat with 3rd party CustomizerCustomizer Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings. links. (38598)
  • Remove extra div on post content. (38451)

Scripts

  • Wp-scripts command does not generate assets on Windows OS. (38348)
  • Ensure that start works when ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. Fast Refresh scripts missing. (38318)
  • Fallback to src/index.js when no valid scripts in metadata for build command. (38367)
  • Improve the handling for build entry points. (38584)

Apps

  • Declare package visibility to query URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org handler apps. (38377)
  • Drop jcenter repository from react-native Android projects. (38142)
  • Mobile – Rich Text – Validate link colors. (38474)

Accessibility

  • Accessibility improvements for List View Part 2. (38358)
  • Contrast Checker: Check link color. (38100)
  • Block Manager: Announce search results. (38654)
  • Ensure placeholder description is read by VoiceOver. (38366)
  • Remove role attributes on SVGs meant for “decoration” to improve a11yAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility). (38301)
  • TreeGrid accessibility: Improve browser support for Left Arrow focus to parent row in child row. (38639)

Performance

Block Library

  • Latest Posts: Avoid unnecessary re-renders. (38402)
  • Site Logo: Avoid unnecessary re-renders. (38316)

Post Editor

  • Avoid unnecessary Post Formats re-renders. (38285)
  • Avoid unnecessary Template panel re-renders. (38292)

Documentation

  • Add a block supports chapter to the block creation tutorial. (38210)
  • Add a block supports for dynamic blocks chapter to the block creation tutorial. (38249)
  • Add a high-level intro to styles in the block editor. (38208)
  • Add contributing information to packages. (38122)
  • Add documentation for schema in block 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.. (36839)
  • Add the Gutenberg data tutorial to the block editor handbook. (38587)
  • Fix components package README contributing link and duplicate footers. (38605)
  • Fix relative links in main package READMEs so that they work in npm. (38609)
  • Fix: npm script error on Windows (api-docs:Ref). (38326)
  • Move design documentation to user interface explanations. (37807)
  • Move backward compatibility documentation under Contributors Guide. (37654)
  • Provide proper path to image in the handbook. (38480)
  • Remove reference to upcoming WordPress 5.9 release. (38272)
  • Scripts: Fix copypasta typo in README file. (38531)
  • Show the block supports for static blocks tutorial in the handbook. (38452)
  • ToolsPanel StoryBook: Removing knobs in favour of controls. (38308)
  • Tutorial: Create your First App with Gutenberg Data. (38250)
  • Update attributes.md. (38626)
  • Update core/archive block schema to reflect no block-level settings support. (37778)
  • Update explanation of block.json file scanning. (38379)
  • Update theme support documentation. (38514)
  • Update Contributing Guidelines to reflect Dual-License. (38303)
  • Update version required before gutenberg_safe_style_attrs 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. can be removed. (38359)
  • Updated changelog to reflect new tip icon. (38450)
  • Use a fixed link to the latest release in readme.txt. (38550)
  • VisuallyHidden: Remove stray readme file. (38641)

Components

  • Add CHANGELOG entries for recent TreeGrid improvements. (38661)
  • Add missing changelog entry. (38325)
  • Changelog: Add missed entries for recent typing fixes and tweaks. (38469)
  • Fix missing link in wordpress/components’s CHANGELOG. (38611)

Code Quality

  • Chore: Fix: Remove isReversed usage. (38484)
  • Remove APIs deprecated on WordPress 5.4. (38564)
  • Update the minimum supported version to WordPress 5.8. (38273)

Plugin

  • Bump bl from 4.0.2 to 4.1.0. (38396)
  • Bump follow-redirects from 1.14.1 to 1.14.7. (38371)
  • Bump jszip from 3.6.0 to 3.7.1. (38410)
  • Bump ssri from 6.0.1 to 6.0.2. (38382)

Components

  • ColorIndicator: Add ts-nocheck to color indicator. (38433)
  • ColorPicker: Fix typing errors. (38430)
  • Refresh object-keys version in package-lock. (38645)

Block Library

  • Consolidate select menus dropdown in Nav block code. (38179)
  • Cover block: Background element’s classname consistency. (38392)
  • Image Block: Explicitly check for false from strpos(). (38505)

npm Packages

  • Remove unused dependencies. (38388)

Tools

Testing

  • Add: End to end test for the block transforms. (38300)
  • Add: End to end tests for style variations. (38485)
  • E2E: Fix flakey gallery and template end-to-end specs. (38342)
  • First Time Contributor check: Update args for getByUsername. (38467)
  • Include tests-mysqlMySQL MySQL is a relational database management system. A database is a structured collection of data where content, configuration and other options are stored. https://www.mysql.com/. port in dev:Start output. (38590)
  • Minor retouches to test-create-block script. (38482)
  • Refactor Site Editor test utils to the e2e-test-utils package. (38463)
  • Scripts: Update Puppeteer to v13. (37078)
  • Silence editor initialization act warnings triggered by asynchronous resolvers during unmount. (38344)
  • Test Create Block with more OS and Node versions. (38368)
  • Tests: Enable post type UI for templates and template parts. (38486)

Build Tooling

  • Build workflow: Don’t update version in readme.txt. (38596)
  • Changelog: Append a generated list of first time contributors by PR label. (38372)
  • Rename GUTENBERG_PHASE to IS_GUTENBERG_PLUGIN. (38202)
  • Bump axios from 0.21.1 to 0.21.4. (38369)
  • Bump hosted-git-info from 2.7.1 to 2.8.9. (38327)
  • Bump addressable from 2.7.0 to 2.8.0 in /packages/react-native-editor/ios. (38234)
  • Bump shelljs from 0.8.4 to 0.8.5. (38370)
  • Update kotlin version for react-native Android projects to 1.5.32. (37970)
  • ESLint Plugin: Add flanking whitespace and hyphenated range rules. (38225)
  • Avoid first time contributor workflows for bots. (38393)
  • WP Env: Fix infinite redirection with custom site URL. (38352)

Performance Benchmark

The following benchmark compares performance for a particularly sizeable post over the last releases. Such a large post isn’t representative of the average editing experience but is adequate for spotting variations in performance.

Post Editor

VersionTime to first blockKeyPress Event (typing)
Gutenberg 12.63.8 s27 ms
Gutenberg 12.53.9 s26 ms
WordPress 5.93.3 s26 ms

Site Editor

VersionTime to first blockKeyPress Event (typing)
Gutenberg 12.63.1 s24 ms
Gutenberg 12.53.1 s24 ms
WordPress 5.92.1 s25 ms

Thanks to @critterverse for the visual assets!

Kudos to all the contributors that helped with the release! 👏

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

What’s new in Gutenberg 12.5? (February 2nd)

“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 published following every Gutenberg release on a biweekly basis, discovering new features included in each release. As a reminder, here is an overview of different ways to keep up with Gutenberg and the Full Site Editing project.


Gutenberg 12.5 has been released and is available for download!

Table of Contents

Allow switching theme styles variations

Theme.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. allows for a lot of customization on behalf of theme authors. Now there is even more that can be done by providing styles variations that let users quickly and easily switch between different looks in the same theme.

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.: custom taxonomies filtering and more!

The Query Loop 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. now also shows custom taxonomies in the filters panel. Depending on what post type is selected it will update the available filters to show all the taxonomies for that post type. Moreover, the Query Loop block now also supports filtering by multiple authors.

Previously, there was a limited set of controls available on the Post 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. Block when rendering a placeholder inside a Query Loop compared to using the block isolated. Starting in this version, all Post Featured Image settings can be used when the block is inside the Query Loop, too!

Preserve styling from adjacent buttons when inserting a new one

Inserting new buttons has just become easier: when a new Button Block is inserted it will automatically retain the styling from the adjacent buttons.

Add the Code Editor to Site Editor

Sometimes you just have to peek behind the curtain. Gutenberg 12.5 brings the Code Editor view to the Site Editor, too!

Props to new contributors

Kudos to the first-time contributors that joined during the last release cycle: @alanjacobmathew, @imangm, @jorgecontreras, and @knilkantha! If you are interested in contributing but do not know where to start, join the Core Editor weekly meetings on Wednesdays at 14:00 UTC in #core-editor focused on all things Gutenberg.

Changelog

These are all the changes included in this release.

Features

  • Allow switching global styles variations. (35619)
  • Query Loop: Add support for custom taxonomies filtering. (38063)
  • Add: Code editor to edit site. (37765)
  • Post Featured Image: Show all the controls when inside a Query Loop. (37945)
  • Buttons: Preserve styling from adjacent button blocks when inserting a new button block. (37905)

Enhancements

Block Library

  • Add transform between coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress./site-logo and core/site-title blocks. (37920)
  • Allow using a text label instead of an icon on overlay menu toggle button. (36149)
  • Query Loop: Add multiple authors support. (38024)
  • Comments Query Loop: Add discuss options to the block. (37297)
  • Comments Query Loop: Rename next and previous to newer an older. (38143)
  • Gallery block: Move add/edit media to block toolbar. (38036)
  • Navigation: Fetch classic Menus and Pages using view (readonly) context. (37884)
  • Navigation: Show menus selection in placeholder only if available. (37980)
  • Navigation: Try not using css variable for block gap support. (37543)
  • Paragraph: Try to avoid a trailing word in the description. (37483)
  • Post Featured Image: Add size selector. (38044)
  • Posts Lists: Unset inherited backgrounds on Posts Lists. (37941)
  • Social Icons: Unset inherited backgrounds on social icons. (37940)

Components

  • CustomSelectControl: Add hints example to storybook. (38056)
  • ToolsPanel: Add CSSCSS Cascading Style Sheets. classes to first and last displayed ToolsPanelItems. (37546)
  • Navigator: Add basic location history. (37416)
  • Add: Hover and Selected states to the palette editor. (37962)
  • Update gray color palette to match base styles. (38109)

Post Editor

  • Post Lock Modal: Update 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. size. (38040)
  • Post Lock: Adjust avatar design and update message. (37979)
  • Block styles: Remove box-sizing rule on Post Editor container to achieve editor/frontend parity. (37902)

Block Editor

  • Identify the site frontpage in link UIUI User interface search results. (36493)
  • Rich text: Use file on internal dependencies. (38005)
  • Transform pasted div tags to p tags. (38042)

Site Editor

  • Update template home, front-page, and search template descriptions. (38132)
  • Add: Copy all content to edit site. (37781)

Global Styles

  • Load the global styles before the theme styles in the editor. (37885)
  • Duotone: Allow users to specify custom filters. (38055)
  • Enable alpha on Block Inspector Color ToolsPanel. (37731)

Internationalization

  • i18ni18n Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.: Create new function addLocaleData to merge domain configuration. (37704)

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]: Add REST API endpoint to fetch variations. (38124)

Bug Fixes

Block Library

  • Add classic menus to menu switcher. (38168)
  • Always allow accessing edit.php?post_type=wp_navigation page. (38170)
  • Fix Post Date block escaping of date HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers.. (38023)
  • Fix duotone render in non-fse themes. (37954)
  • Social Icons: Fix color picker 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. when set to Logos Only. (38006)
  • Temporarily remove text decoration from Nav block. (37963)
  • Query Loop: Reorganise inspector controls + order selection bug. (37949)
  • Revert “Late escape RSS block (#37878)”. (38117)
  • Fix missing default align-items when items are oriented vertically in flex layout. (38069)
  • Update micromodal to 0.4.10 to fix navigation close button. (38032)

Site Editor

  • Fix empty gray circle when site has no logo on template list page. (37474)
  • Fix hiding the bottom of tablet/mobile preview in Site Editor. (38019)
  • Fix resizable box scrollbars in blocks. (38123)
  • Override Site Editor URLs to use 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 page. (38232)
  • Restore ?styles=open functionality. (38093)
  • Site Editor: Fix Inserter classes. (38112)

Block Editor

  • Fix pattern preview expanding height and scrollbar issues. (38175)
  • Remove warning for enqueued styles in Editor. (37937)
  • Fix draft previews. (37952)
  • Add context to font style and font weight related translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. strings. (37939)

Post Editor

  • Editor: Fix post lock data inconsistency. (37914)
  • Fix template queries. (38070)

Block Library

  • Latest Posts: Fix featured image alignment label position. (38125)
  • Remove the aria-label from the site title block. (38432)

Components

  • Increase ConfirmDialog overlay’s z-index to render above popovers. (37959)
  • Label components: Improve consistency by setting to 8px margin-bottom. (37844)
  • RangeControl: Fix space between icons and rail. (36935)
  • SelectControl: Mark the children prop as optional. (37872)
  • ToggleGroupControl: Remove animated backdrop. (38008)

Design Tools

  • Fix: Double border on palette editor. (38035)
  • Fix: PanelColorSettings renders an empty when a color setting is falsy. (38029)

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

  • Load the entities list using the view context. (37685)
  • Fix inconsistent response when preloading OPTIONS type requests. (38051)

Widgets Editor

  • Fix empty secondary 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. overlapping 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 content on mobile viewports. (38017)

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)

  • Make sure when on last block focus cannot enter the block. (37965)
  • Tree Grid: Fix keyboard navigation for expand/collapse table rows in Firefox. (37983)

Performance

Plugin

  • Don’t use WP_Query::Get_posts directly. (38104)

Components

  • ToolsPanel: Memoize callbacks and context to prevent unnecessary rerenders. (38037)

Documentation

  • Add anchors to all terms of the glossary. (38073)
  • Add documentation for useBlockEditContext hook. (36299)
  • Add note about “local styles” in the glossary. (38083)
  • Add some terms related to styles to the glossary. (38076)
  • Add theme.json v1 reference and v1 to v2 migrationMigration Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. documentation. (37886)
  • Block API Reference: Fix ‘isSelected’ property type. (38161)
  • Capitalise the GitHubGitHub GitHub is a website that offers online implementation of git repositories that can 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/ wordmark correctly in the WordPress Gutenberg project. (38092)
  • Component: Update color-picker documentation. (38010)
  • Document that __experimentalSelector requires server-side block registration. (37984)
  • Document the Global Styles Presets. (38129)
  • Fix documentation 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.. (38235)
  • Include partialRight import from lodash in DimensionControl example. (38088)
  • Multiple typos fixed. (38071)
  • Scripts: Corrected “npm start:Hot” in the README file. (38178)
  • Update Block Supports Documentation to better reflect how it works. (37847)
  • Update BlockPreview component readme. (38209)
  • Update versions for 5.8.2 and 5.8.3. (37924)
  • Use consistent punctuation, capitalization in templateParts documentation. (38193)
  • [Type] Documentation Updating Faq.md typo. (38154)

Code Quality

  • Compose: Rework types of createHigherOrderComponent for closer match to API. (37795)
  • Docblockdocblock (phpdoc, xref, inline docs) typos. (38067)
  • Fix two inline typos. (38048)
  • Testing: Upgrade Jest to v27. (33287)
  • Add a missing @since tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.). (38151)
  • Ignore local environment .tool-versions configuration file. (38013)
  • Add allowed-plugins in composer configuration. (38085)
  • Site editor – try redirecting to homepage before the reactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. render. (37248)

Block Library

  • Allow for HTML in get_the_title. (38145)
  • Fix double escaping in blocks. (37985)
  • Late escape Latest Posts block. (37866)
  • Late escape Navigation blocks. (37870)
  • Late escape Post blocks. (37876)
  • Late escape Social block. (37881)
  • Late escape comment blocks. (37860)
  • Late escape comments link block. (37875)
  • Late escape latest comments block. (37865)
  • Late escape post author blocks. (37874)
  • Late escape site blocks. (37880)
  • Spacer: No need to use withDispatch HOC. (38206)

Tools

  • Bump dot-prop from 4.2.0 to 4.2.1. (38101)
  • Bump ini from 1.3.5 to 1.3.8. (38106)
  • Bump tar from 4.4.13 to 4.4.19. (37917)
  • Bump tree-kill from 1.2.0 to 1.2.2. (38102)
  • Bump trim-off-newlines from 1.0.1 to 1.0.3. (38095)
  • Update MiniCSSExtractPlugin to version 2.5.1. (38027)
  • Bump follow-redirects from 1.14.1 to 1.14.7. (37957)
  • Bump handlebars from 4.7.6 to 4.7.7. (38054)
  • Bump path-parse from 1.0.5 to 1.0.7. (37990)
  • Bump tmpl from 1.0.4 to 1.0.5. (37916)
  • Add ‘.git-blame-ignore-revs’ to the project. (37822)
  • Require stylelint v14 for stylelint configuration and scripts. (38091)
  • Tested up to WP 5.9. (38162)
  • wp-env: Add install-path command. (35638)
  • Docgen/stop crashing on missing return types. (37929)
  • Add temporary workaround to fix broken common js import of mini-css-extract-plugin. (38004)
  • Fix back button aria name in customizing widgets tests. (38195)

Testing

  • Fix flaky Nav block user permissions end-to-end test. (38025)
  • Fix flaky classic block conversion undo test. (37933)
  • Improve flaky draft creation navigation block end-to-end test. (37931)
  • Skip flaky nav permissions test until fixed. (38099)
  • [docgen] Refactor code to use require() instead of JSON.parse(fs.readFileSync()). (38148)
  • end-to-end Tests: Add coverage for reusable blocks save button state regression. (33151)
  • Add new Testing Instructions section to PR template. (38147)

Performance Benchmark

Post Editor

VersionTime to first blockKeypress event
Gutenberg 12.56.8 s42 ms
Gutenberg 12.46.8 s41 ms
WordPress 5.97.0 s38 ms

Site Editor

VersionTime to first blockKeypress event
Gutenberg 12.57.4 s38 ms
Gutenberg 12.46.7 s38 ms
WordPress 5.96.7 s38 ms

Time to first block: firstBlock

Keypress event: type


Thanks to @critterverse@priethor, and @jeffpaul for helping write and proofread this post!

And kudos to all the contributors who have submitted bugs, written code, designed components, added documentation, reviewed others’ contributions, and everything else that goes into making Gutenberg. 👏

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

What’s new in Gutenberg 12.4 (19 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 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 posted following every Gutenberg release on a biweekly basis, discovering new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Full Site Editing project.


Gutenberg 12.4 has been released and is available for download!

This week we want to bring special attention to the 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 that are continually happening in the project. Thanks to all those working to make Gutenberg usable by all!

Table of Contents

Accessibility improvements

Focus now correctly returns to the list view button after closing out of list view—saving a lot of trouble to get back to where you were before opening it.

More improvements are in place for the block inserter sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme.. The search input now receives focus when it is opened. And, for screen readers, the close button was added to the desktop view to ensure consistency with the mobile view.

Post publish panel categories reminder

It can be easy to forget to add tags or categories to a post before publishing. A suggestion for adding tags already existed in the publish panel, but now there is also a suggestion for assigning a category to the post that will show up if a categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. is not already assigned.

New "Suggestion: Assign a category" section in the post publish panel

Site editor keyboard shortcuts help panel

As a part of the border work of UI parity with the post editor, the site editor now has a list of keyboard shortcuts available. They can be accessed by pressing CONTROL + OPTION + H on MacOS or CTRL + ALT + H on Windows or through the “More tools and options” (vertical ellipsis/kebab menu) dropdown. Enjoy streamlined workflows with these shortcuts in more places.

Keyboard shortcuts modal in the site editor

CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. blocks recategorization

More blocks have been recategorized as theme blocks in the inserter to help encourage correct usage of these blocks and clarify their functionality. The following blocks can now be found in the theme category:

  • Post Template
  • Pagination
  • Next Page
  • Page Numbers
  • Previous Page

Props to new contributors

Kudos to the first-time contributors that joined during the last release cycle: @alberto-marin @ugljanin @mauteri. If you’re interested in contributing but don’t know where to start, join the Core Editor weekly meetings on Wednesdays @ 14:00 UTC in #core-editor focused on all things Gutenberg.

Changelog

Enhancements

Accessibility

  • Accessibility improvements 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. Inserter. (37357)
    • Try possibly better method for Block Inserter Search focus. (37793)
  • Accessibility improvements for List View Part 1. (37798)
  • Improve successful draft save notification for screen readers. (37683)

Block Library

  • Audio: Add uploading state. (37739)
  • Post ExcerptExcerpt An excerpt is the description of the blog post or page that will by default show on the blog archive page, in search results (SERPs), and on social media. With an SEO plugin, the excerpt may also be in that plugin’s metabox.: Add to and from Post Content transformations. (37651)
  • Search: Improve escaping on the search block. (37829)
  • Page List: Add menu-item-home class to Navigation for front page. (37301)
  • Tag Cloud: Add outline style. (37092)

Components

  • ExternalLink: Update icon to be smaller, have no margin. (37859)

Post Editor

  • PostLockedModal: Display preview link as part of the text. (37852)
  • Try: Polish post takeover modal. (37821)
  • Suggest picking a category on the pre-publish panel. (37703)

Block Editor

  • Inserter: Update categories for theme blocks. (37723)

Site Editor

  • Add keyboard shortcut help modal. (37650)
  • Update copy on Snackbar that appears when a template is deleted. (37888)

Icons

Bug Fixes

Block Library

  • Code: Remove color from code theme.scss. (37816)
  • Code: Try: Polish code styles to properly apply border properties. (37818)
  • Columns: Avoid using CSSCSS Cascading Style Sheets. variables for block gap styles. (37436)
  • Comments Pagination Next: Fix accidental division by zero. (37788)
  • Gallery: Pass any custom attributes through the gallery v2 migrationMigration Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. script. (37812)
  • Gallery: Remove warning notice about mobile version required. (37842)
  • Navigation: HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. tags like inline images in nav links break submenu layout. (37665)
  • Navigation: Set the default for –navigation-layout-align to “flex-start” when using vertical orientation. (37696)
  • Navigation: Fix overlay menu errant focus style on scrim. (37824)
  • Page List: Show UIUI User interface warning if Pages cannot be retrieved in Page List block. (37486)
  • Page List: Update page list flex variables to match navigation. (37718)
  • Post Comments: Tidy up Post Comments default styling. (37709)
  • Post Content: Check for nextpage to display page links for paginated posts. (37672)
  • Post Excerpt: Fix previews. (37648)
  • 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.: Use gap for the grid view. (37711)
  • Query Loop: Check for zero queryId on initialization. (37867)
  • Site logo: Fix range control on landscape logos. (37733)
  • Simplify and unify a few modal dialogs. (37857)
  • Fix enqueueing additional styles for blocks only when rendered. (37848)
  • Fix typo (hanle -> handle). (37849)
  • Revert “[Paragraph Block] add font family support”. (37815)

Colors

  • Coloring panel is unusable in RTL. (37644)
  • Impossible to clear colors if color palettes are removed. (37791)
  • Use useCallback hook from wordpress/elements in color-picker. (37745)

Components

  • BaseControl: Fix VisualLabel styles. (37747)
  • ConfirmDialog: 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. from wordpress/elements. (37771)
  • CustomSelectControl: Stop keypresses being caught by other elements when they happen. (30557)

Post Editor

  • Restore canvas padding for classic themes. (37741)

History

  • Fix broken ‘Redo’ by removing faulty logic for discarding unsaved Logo changes. (37895)
  • Fix redo after update/publish with transient edits. (37840)

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

  • Fix Home template description typo. (37843)
  • Improve user experience with blocks editor when a block is not registered. (37646)

Block Editor

  • Fix LinkPicker freeze when virtual keyboard is hidden. (37782)
  • RichText: Fix dead key input on Windows. (37777)
  • Link control: Translate empty link string. (36975)
  • Add post-type-x classname to 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.. (37429)

Global Styles

  • Reduce specificity of legacy font sizes defined by core. (37819)

Accessibility

  • Fix aria-modal attribution with multiple navs on page. (37813)

Template Editor

  • Template Mode: Trim long post titles in large viewports. (37720)

Site Editor

  • Add the “Help” link to the tools menu. (37647)
  • Contextualize “Export” string to differentiate it from other occurrences in WP Core. (37660)

Documentation

  • 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: Update fontSize and lineHeight props. (37853)
  • Theme.json Schema: Fix appearanceTools in theme.json schema. (37762)
  • Theme.json Schema: Update theme.json schema to allow for per-block management of settings. (36746)
  • Add checkbox for updating schemas if appropriate. (37780)
  • Fix issue template typo. (37825)
  • Add automated theme.json reference documentation. (37569)
  • Add link to block source for reference. (37750)
  • Add missing end tag for codetabs in stylesheet guide. (37827)
  • Fix broken URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org on block variation page. (37702)
  • Fix type of saved $content. (37688)
  • Fix type of saved content – part two. (37740)
  • Fix PHPCSPHP Code Sniffer PHP Code Sniffer, a popular tool for analyzing code quality. The WordPress Coding Standards rely on PHPCS. failure. (37742)
  • Update create block type how to guide for block.json. (37674)
  • Update stylesheets guide with using block.json file. (37679)
  • OSX Setup guide: Wrap lts/* in quotes for nvm commands. (37722)
  • Remove “experimental” from full site editing documentation. (37655)
  • Update copyright year to 2022 in license.md. (37689)
  • Update wp-plugin.md. (37846)
  • Updated ColorIndicator readme. (37638)
  • Update the Post Author block description. (37836)
  • Fixing broken links and adding colon. (37664)
  • Improve Gutenberg release documentation. (37898)

Code Quality

  • Add the WP version in which some JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. APIs will be removed. (37854)

Block Library

  • Late escape Categories block. (37835)
  • Late escape Page List block. (37873)
  • Late escape Query blocks. (37877)
  • Late escape RSS block. (37878)
  • Late escape Table of Contents block. (37882)
  • Late escape Search block. (37879)
  • Move escaping to point of output in Archives block. (37834)
  • Post Content: No need to pass default get_the_content args. (37701)

Post Editor

  • PostLockedModal: Update action buttons markup. (37837)

Parsing

  • Block API: Separate validation stage during block parsing. (37763)

Components

  • Refactor SuggestionsList to use hooks and change class to function component. (36924)

Tools

Testing

  • Allow type imports 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/. everywhere. (37862)
  • Change the performance job folder structure to avoid nested node_modules. (37775)
  • Fix flaky test by using waitForResponse to ensure the URL details request completes. (37901)
  • Marking test that consistently fails as skipped. (37729)

Build Tooling

  • wp-env: Replace TT1-Blocks with Empty Theme in the wp-env of gutenberg and CI. (37446)
  • wp-env: Show --help when no subcommand is passed. (32755)
  • Scripts: Scan block.json files to detect entry points for the build process. (37661)
  • Scripts: Add plugin-zip command to create a zip file for a WordPress 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. (37687)

Create Block

  • Allow custom folder name for a block. (37612)
  • Speed up scaffolding by omitting WordPress dependencies. (37639)

Performance Benchmark

Post Editor

VersionTime to first blockKeypress event
Gutenberg 12.47.4 s46 ms
Gutenberg 12.37.4 s46 ms
WordPress 5.88.0 s53 ms

Site Editor

VersionTime to first blockKeypress event
Gutenberg 12.46.9 s37 ms
Gutenberg 12.36.7 s38 ms
WordPress 5.85.9 s11 ms

Time to first block: firstBlock

Keypress event: type


Thanks to @priethor and @annezazu for helping write and proofread this post!

And kudos to all the contributors who have submitted bugs, written code, designed components, added documentation, reviewed others’ contributions, and everything else that goes into making Gutenberg. 👏

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

What’s new in Gutenberg 12.3? (5 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 published following every Gutenberg release on a biweekly basis, discovering new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Full Site Editing project.


Gutenberg 12.3 has just been released and is available to download, making it the first Gutenberg release of 2022!

This release contains fewer contributions than usual due to the holiday season that took place in some parts of the world in the last two weeks. However, it still has many important contributions, which is an excellent reminder of WordPress’ contributor diversity. Let’s dive into some of them.

Table of contents

New blocks to build with

We have three brand new blocks at our disposal.

Author Name 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.

As part of an effort to split the Post Author block into separate blocks to allow for even more layout options, the Author Name block has been released. This means you will have extra options to customize the author name to your liking.

Post Author Name

More atomic author-related blocks will follow in the future, like Author 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. or Author Bio.

Comments pagination: Next and Previous blocks

Continuing with the work that has been done on the Comments Query Loop blocks in previous Gutenberg releases, the Comments Next Page and Comments Previous Page blocks have been released.

They are the counterparts of the Next Page, and Previous Page blocks of the Query Loop, but built for the Comments 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.. They display links to navigate the comments forward and backward when not all of the comments are shown on the current page.

Comments Previous and Next Page

With the release of these two blocks, we conclude all the planned inner blocks for the Comments Query Loop. However, work on the Comments Query Loop blocks has not finished yet: more improvements are in the works.

More controls to customize

Blocks keep getting more powerful and this release is no exception.

Spacer block: custom units

Custom units can now be used to configure the Spacer block:

  • EM: Relative to parent font size
  • REM: Relative to root font size
  • VH: Viewport height
  • VW: Viewport width
Custom Units in the Spacer block

Group block: gap support & typography support

The Group block can now use the new Gap support, which adds the ability to choose the distance between the children items of the block.

This new gap setting is also available in the Row variation (added in Gutenberg 11.5), except that the gap is added horizontally instead of vertically. This allows you to have even more options to customize the layout to your liking.

Typography was added to the Group/Row blocks. This can come in handy when you need to define the typography settings for a whole section, like a 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., and you don’t want to duplicate the same typography settings over multiple blocks.

Set your site icon using the Site Logo block

There is now a new option in the Site Logo block settings to sync the site icon* to the Site Logo image. When the toggle is switched on, any updates made to the Site Logo block image are also applied to the site icon. This is an important flow that allows for parity between the Site Editor experience and the CustomizerCustomizer Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings..

* Site icons are what you see in browser tabs, bookmark bars, and within the WordPress mobile apps.

Set site icon with Site Logo settings

Restrict Navigation MenuNavigation Menu A theme feature introduced with Version 3.0. WordPress includes an easy to use mechanism for giving various control options to get users to click from one place to another on a site. creation for non-adminadmin (and super admin) users

From now on, only admins can create Navigation Menus. This matches the current menu system in WordPress.

When non-admin users add a Navigation block, they will now see a warning telling them they do not have permission to create Navigation Menus and instead will be presented with the option to select an existing one. This allows folks to still add navigation to their content in line with broader WordPress permissions.

Restrict Navigation Menu creation for non-admin users
Non-admin users can still add a Navigation block and select an existing menu.
If non-admin users create a menu, changes won't be saved
If a non-admin user tries to create a menu, changes won’t be saved.

CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Blocks Reference

There is a new Handbook page that lists all the core blocks included in the Gutenberg pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party. It contains the name, description, categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging., supports, and attributes of each block and it is generated automatically using their 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. properties. This resource makes it easier for anyone who wants to extend or customize the core blocks.

Core Blocks Reference section in the Handbook

Changelog

These are all the changes included in this release.

Features

Block Library

  • Group/row blocks:
    • Add Gap support. (37459)
    • Add Typography support. (37456)
  • New Author Name block. (36001)
  • Comments Pagination:
    • New Comments Pagination Next block. (36562)
    • New Comments Pagination Previous block. (36912)

Enhancements

Block Library

  • Navigation:
    • Enable an even more compact setup state. (37089)
    • Use rems for padding. (37478)
  • Site Logo: Add option to set site icon from Site Logo block. (35892)
  • Paragraph: Add font family support. (37586)
  • Comments Template: Add comments pagination. (37610)
  • Embeds: Simplify the embed loading state. (37548)
  • Spacer: Add custom units for height and width. (36186)

Global Styles

  • Make the global styles subtitles font smaller. (37600)
  • Add support for nameless font sizes. (37410)

Colors

  • Allow color gradient popover to be above the color toggle. (37430)
  • Make color style labels simpler. (37493)
  • Use subtitle styles for the palette names. (37460)

Design Tools

  • Border panel: Collapse color controls. (37425)

Document Settings

  • Add class name to post author on edit post sidebar. (36269)

Site Editor

  • Update save panel’s cancel button from icon to visible text. (37310)

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)

  • Latest Posts: Add aria-label to featured links. (36251)

Bug Fixes

Block Library

  • Navigation:
    • Restrict Navigation permissions and show UIUI User interface warning if cannot create. (37454)
    • Ensure the overlay menu works when inserting navigation block patterns and that inner blocks are retained. (37358)
    • Fix navigation appender. (37447)
    • Revert all margins on navigation-item in the editor. (37587)
    • Fix page list issues in the overlay. (37444)
    • Show a UI warning when the user does not have permission to update/edit an existing Navigation block. (37286)
    • Try cascading nav styles through class names. (37473)
  • Query Loop:
    • Fix editable post blocks in Query Loop with zero queryId. (37629)
    • Changed the letter case for Post Type to Post type. (37499)
    • Query Pagination Next: Hide block if the custom query has no results. (37553)
    • Revert Query Pagination Next/Previous placeholder(36681). (37520)
  • Site Logo: Fix block alignment issues. (36627)
  • Gallery: Fix block registration hook priority. (37409)
  • Post Content/Title: Reflect changes when previewing a post. (37622)
  • Post ExcerptExcerpt An excerpt is the description of the blog post or page that will by default show on the blog archive page, in search results (SERPs), and on social media. With an SEO plugin, the excerpt may also be in that plugin’s metabox.: Specify paragraph as post excerpt 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.) name. (37412)
  • Reusable Block: Fix embed handling. (37554)
  • Site icon: Fix site icon styling to display non-square site icons within a square button. (37570)
  • Template Part: Only display a missing notice in debug mode. (37404)
  • ServerSideRender: Fix loading state. (37623)
  • Comments Avatar Block: Show avatar drag handles only when selected. (37567)

Global Styles

  • Color editor discards colors with the default name. (37496)
  • Gradients are not being applied by class. (37597)
  • Impossible to edit the theme and default colors. (37497)
  • Blank site editor when theme name contains a period. (37167)
  • Lower the specificity of font-size CSSCSS Cascading Style Sheets. Custom Properties in the editor. (37526)
  • Use inset shadow on color indicators and adjust spacing. (37500)

Block Editor

  • Fix Enter handling for nested blocks. (37453)
  • Restrict delete multi-selected blocks shortcut. (37595)
  • Avoid using CSS variables for block gap styles. (37360)

Themes

  • Add comment-form and comment-list to default html5 theme support. (37536)
  • Avoid Duplicated “Theme File Editor” menu. (37592)
  • Fix conditional check “Theme File Editor” menu. (37616)
  • Fix duotone theme cache. (36236)

Template Editor

  • Avoid undoing issues when resetting parent blocks for controlled blocks. (37484)
  • Change the color of the welcome dialog close icon, so it is visible against a black background. (37435)
  • Template Editing Mode: Fix options dropdown. (37442)
  • Try to fix auto-resizing in template part focus mode. (37394)
  • Update the template list action labels. (37576)

Site Editor

  • Add customized indicators to plugin templates that have been customized. (37329)
  • Register block editor shortcuts. (37577)
  • Update regex to handle 404 template slug. (37579)
  • Parse shortcodeShortcode A shortcode is a placeholder used within a WordPress post, page, or widget to insert a form or function generated by a plugin in a specific location on your site. blocks outside the content. (37545)

Accessibility

  • Editor: Focus when navigation toggle receives state false. (37265)
  • Navigation: Only add dialog role when modal is open. (37434)

npm Packages

  • Fix missing peer dependencies where ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. is used indirectly. (37578)

Testing

  • Fix flaky Navigation block end-to-end test by mocking out URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org details endpoint to avoid 404. (37501)

Post Editor

  • Multi-entity saving: Allow publishing a post while not saving changes to non-post entities. (37383)

Components

  • ToolsPanel: Allow items to register when panelId is null. (37273)

Design Tools

  • Make block support tools panels compatible with multi-selection. (37216)

Documentation

Packages

  • Add automated core blocks documentation. (36183)
  • Added README for GradientPicker. (37614)
  • Add a link to 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.-block example in gutenberg-examples repo. (37633)
  • Fix parameter type in the render function of file block. (36262)
  • Add changelog entry for __experimentalIsRenderedInSidebar gradient components flag. (37457)

Handbook

  • Switch code distinction to JSX & Plain. (37348)
  • Fix a grammatical error in the Create Block tutorial. (37636)
  • Fix plugin sidebar tutorial not publishing. (37505)
  • Update plugin sidebar to new how to guide template. (37490)
  • Update “Local by Flywheel” name and URL. (37512)
  • Update Meta Boxes to a single page how to guide. (37621)

Code Quality

Compatibility with Core

  • Adds missing block template class properties. (37556)

Formatting

  • Fix lint issues. (37618)
  • Move block patterns compatibility code to lib/compat folder. (37451)

Packages

  • Data:
    • Block top level useSetting paths. (37428)
    • Deprecate receiveUploadPermissions. (37508)

Site Editor

  • Remove dead code. (37581)

Components

  • Storybook: Tweak configuration for v6.4 update. (37544)

Security

Tools

Testing

  • End to end:
    • Switch to using a $eval to fill user creation fields. (37469)
    • Fix and enable remaining navigation block end-to-end tests. (37437)
    • Add block editor shortcuts end-to-end tests. (37624)

Build Tooling

  • Add npm-run-all package to simplify running scripts. (37558)
  • Update caniuse to latest. (37588)
  • Fix pre-commit hook to build block documentation. (37613)

Performance Benchmark

Post Editor

VersionTime to first blockKeypress event
Gutenberg 12.36.7 s50 ms
Gutenberg 12.26.7 s49 ms
WordPress 5.86.9 s53 ms

Site Editor

VersionTime to first blockKeypress event
Gutenberg 12.36.7 s41 ms
Gutenberg 12.26.7 s43 ms
WordPress 5.84.3 s12 ms

Time to first block: firstBlock
Keypress event: type


Thank you, @gziolo and @annezazu for helping me with the release process, proofreading this post, and helping to select the release highlights.

Thank you, @javiarce for creating the assets included in this post.

And finally, thanks to all those who contributed to this release!

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

What’s new in Gutenberg 12.2? (22 December)

“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 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 published following every Gutenberg release on a biweekly basis, discovering new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Full Site Editing project.


If you observe the Gregorian Calendar, New Year’s Eve is fast approaching, which means that the time has come for the next release of Gutenberg!

Gutenberg 12.2 has just been released! It’s the last minor Gutenberg release in 2021. This release improves compatibility with the upcoming WordPress 5.9 release and blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. themes. Also, it brings new features, code quality improvements, 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. You can find the release highlights below.

Table of contents

Seamless navigation between the Site Editor and the Template List

Gutenberg 12.2 takes the Template List one step beyond, improving its user experience and performance. Thanks to its new client-side routing, WordPress doesn’t need to reload the page when navigating between the Site Editor and the Template List, reducing the time spent rendering unneeded HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. code.

Improvements to post comments

Starting with Gutenberg 12.2, the Comments Query Loop block is now able to display nested comments. This improves user experience as it is now much easier to understand if a comment responds to another comment or is just a first-level comment.

Also, the new Comments Pagination Numbers block allows displaying page numbers inside the Comments Pagination block, which in turn can be used inside the Comments Query Loop block. This improves the UIUI User interface because users can quickly navigate the comments using the page number.
Also, the pagination in the Comments Query Loop block now works similar to the pagination for posts.

A new home for border controls

Although lots of blocks are already taking advantage of border supports, this release switches border supports to the ToolsPanel, and sets which border properties are displayed in the ToolsPanel by default. The ToolsPanel, first introduced in Gutenberg 11.3, offers progressive discovery options for those provided through block supports, improving the user experience and consolidating 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. UI.

New font size labels in the FontSizePicker component

Gutenberg 12.2 improves the way font sizes are displayed in the sidebar by using a sequence of numbers (1, 2, 3, 4, 5) as labels for the font sizes. These simplified labels can accommodate use cases with complex CSSCSS Cascading Style Sheets. values, helping users understand the available font sizes.

Improved color picker

More components are being iterated in this release. In an effort to reduce sidebar clutter and improve the design tools user experience, all blocks, including those that use custom color implementation, can now take advantage of the new dropdown-based color picker. This improved UI is easier to use, especially when editing a few colors back-to-back.

Preview for Block Styles in the 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

While Gutenberg 12.0 introduced block styles preview on hover for the Block Editor, this release brings this functionality to the Widgets Editor, too. It’s now possible to preview style variations in the Widgets Editor when editing blocks that support this (e.g., Image, Table, Button blocks) by hovering or focusing over the style name, for full 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) support.

Changelog

Enhancements

Block Library

  • New block: Add Comments Pagination Numbers block. (36890)
  • Comment Template block: Handle nested comments. (36065)
  • Comments 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.: Improve context handling in inner blocks. (37196)
  • Image: Reflect media deletion in the editor. (35973)
  • Navigation:
    • Add navigation blocks post-processing after migrationMigration Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. from menu items. (36950)
    • Refactor modal padding to be simpler and more flexible. (37323)
    • Remove Navigation Menus from the Appearance menu. (37212)
    • Add clearance for appender in submenus. (36720)
  • Refactor handling of padding for group and column blocks. (37356)
  • Template Part: Add actions that fire during the loading process of block template parts. (36884)

Styles and design tools

  • Add the Welcome Guide option to the More Global Styles Actions dropdown. (37180)
  • Make the Blocks section more distinguishable. (37293)
  • Move the Edit colors button to a standard menu item. (36842)
  • Move Duotone palette to the bottom of global styles gradients. (37253)
  • Border controls: display border properties in the ToolPanel. (34061)

Components

  • FontSizePicker: Use an incremental sequence of numbers as labels for the available font sizes at the segmented control (conditionally). (37038)
  • ColorPalette: Improve accessibility and visibility. (36925)
  • ToolsPanel: Standardize input control label margin. (36387)
  • Unify styles for ColorIndicator with how they appear in Global Styles. (37028)
  • Update PanelColorGradientSettings component to use dropdowns. (37067)

Site Editor

  • Add the CustomizerCustomizer Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings. back to the Appearance menu. (37175)
  • Add client-side routing for Site Editor. (36488)
  • Add a new aria-pressed attribute to the Toggle navigation button. (37351)
  • Template revert flow: Make label description source agnostic. (37004)

Packages

  • Scripts: Enable ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. Fast Refresh for block development. (28273)
  • List Reusable Blocks: Refactor ImportForm into a functional component and 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.. (36938)

Widgets Editor

  • Implement preview for blocks. (37012)

Post Editor

  • Template Part block should not be available in the Post Editor inserter. (37157)

Bug Fixes

  • Remove 4 instances of gutenberg text-domain from CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. (37229)

Block Library

  • Fix return type in the DocBlockdocblock (phpdoc, xref, inline docs). (37352)
  • Fix deprecated usage of passing null to explode function. (37392)
  • Gallery:
  • Fix color issue for captions with hyperlinks in the Gallery block. (37033)
  • Fix documentation and function naming for gallery block registration in PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher. (37132)
  • Remove placeholder border. (37050)
  • Post Comments:
  • Fix form-submit styles by adding button classes to the submit button in the post-comments block. (37245)
  • Fix width of the post comment form input. (37238)
  • Use block markup for the comment form button when using a block theme. (37315)
  • Comments Pagination Block: Add default styling. (37057)
  • Image:
  • Set image display mode to grid when no alignment is set to align caption onresize event properly. (35787)
  • Fix resizer controls being hidden in Safari when switching between alignments. (37210)
  • Navigation:
  • Fix gutenberg_ prefixed function references in Core. (37021)
  • Fix navigation justifications. (36991)
  • Fix vertical alignment of page list in the modal. (37321)
  • Remove hardcoded typography units. (37349)
  • Fix vertical layout. (37009)
  • Switch to addEventListener event for load event in the navigation block view script. (37135)
  • Don’t request the deprecated navigation areas endpoint outside of 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. (37187)
  • Navigation Link Control: Hide the Transforms component when no options are available. (37284)
  • Remove the deprecated navigation area block from the inserter. (37026)
  • Query Loop: Add useBlockPreview component, fix alignment of the Query Loop block in the editor. (36431)
  • Query Pagination: core/query-pagination-next and core/query-pagination-previous blocks: change the markup on the first and last pages of the pagination. (36681)
  • Search: Fix application of border color class in the editor. (37242)
  • Template Part:
  • Fix isMissing condition check. (37370)
  • Use Core version of template and template part post types and REST endpoints for WordPress 5.9, with backward compatibility for WordPress 5.8. (36898)
  • Update the micromodal package to include a click-through fix. (36837)

Components

  • Card: Support the extraSmall option for the size prop. (37097)
  • Drop Zone: Fix HTML drop issues with the Windows browsers. (37151)
  • Don’t load Radio and RadioGroup components directly. (36934)
  • DuotonePicker typo fix. (36662)
  • Element: Ensure that the package uses the up-to-date React types. (37365)
  • Fix incorrect rendering of ToggleGroupControl‘s active state. (37332)
  • Hide the remove control point button because removing it would break gradient control. (37186)
  • Import experimental Heading and Text Components. (37290)
  • Make the color popover on the gradient picker appear as expected. (37115)
  • Remove unused reakit-utils dependency from peer dependencies. (37369)
  • Storybook: Fix deprecated disabled key. (37112)
  • ToggleGroupControl: Fix extra update on incoming change. (37224)

Site Editor

  • Allow global styles sidebar panels to fill vertical space. (36845)
  • Display a notice if export fails. (37131)
  • Fix edit template part link in 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. dropdown. (37249)
  • Fix template resolution to give precedence to PHP templates defined in a child themeChild theme A Child Theme is a customized theme based upon a Parent Theme. It’s considered best practice to create a child theme if you want to modify the CSS of your theme. https://developer.wordpress.org/themes/advanced-topics/child-themes/.. (37074)
  • Hide the block appender in the Template Part editor. (37213)
  • Improve notification when saving content in the Site Editor. (36897)
  • Improve handling of parsed requests. (37209)
  • Sync Export 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. error codes. (37347)
  • Template Editor Mode: Hide editor mode switcher. (37359)
  • Use server definition for the Template Areas. (37215)
  • Fix the white screen of death on the Templates page when user avatars are disabled. (37458)

Styles

  • Allow selector ordering to ensure theme.json root selector margin takes precedence. (36960)
  • Custom keys from theme.json: Fix kebabCase conversion. (37380)
  • Do not remove theme presets if defaults are hidden. (37008)
  • Fix CSS Custom Properties for presets in the Site Editor. (36851)
  • Fix how appearanceTools works. (37254)
  • Fix styles for previews and patterns. (37296)
  • Font sizes: Update default values. (37381)
  • Remove CSS that causes conflictconflict A conflict occurs when a patch changes code that was modified after the patch was created. These patches are considered stale, and will require a refresh of the changes before it can be applied, or the conflicts will need to be resolved. with theme.json. (36424)

Design Tools

  • Border Style Control: Update styling for consistency with border width control. (37244)
  • Border panel:
  • Don’t restore deselected border color when width gets changed. (37049)
  • Update the value of the ColorPicker component when color is cleared. (37048)
  • Gradients
  • Fix clearing a custom gradient from throwing a React warning. (37051)
  • Enable adding custom gradient when gradients are disabled. (36900)

Compatibility with Core and library code

  • Fix array key warning in block supports layout. (37101)
  • Templates: Search for old template names in the parent theme too. (36910)
  • Fix theme requirement validation when using WordPress 5.8. (37226)
  • Fix WordPress 5.9 check for conditionally running code. (37235)
  • Fix mistake in the_remove_theme_attribute_in_block_template_content function. (37137)
  • Gallery: Enable the new gallery block by default if running in Core. (37134)

Packages

  • Core Data: Fix returning empty array in the getEntityRecords function for unknown entities. (36984)
  • Include @babel/core as a dependency where applicable. (37328)
  • Format library: Fix unsetting highlight color. (37062)

Block Editor

  • Mark the last change as persistent on save. (36887)
  • Fix content loss when ungrouping template parts or reusable blocks. (37280)
  • Simplify the RESET_BLOCK action to fix the loss of content when using template part focus mode. (37283)

Post Editor

  • Multi-Entity Saving: Decode HTML entities in item titles. (37353)

Documentation

  • Update documentation related to schemas. (37294)
  • Remove versioning in theme schema descriptions. (37165)
  • Fix the broken link on the plugin description page. (37362)
  • Handbook:
  • Add information about skip links to the block theme overview. (36555)
  • Add closing ticks for blockGap code example. (37338)
  • Add how-to guide documentation template. (36694)
  • Add link and details for npx in create block tutorial. (37376)
  • Consolidate React Native documentation. (36685)
  • Fix a link to the how-to guide template. (37191)
  • Move classes used in the navigation block from the component to the new readme. (37375)
  • Update Format API how-to guide. (37298)
  • Update broken links. (37121)
  • Improve formatting of headings in the contributors’ guide. (36689)
  • Fix type for prefix transformation. (36362)
  • Fix broken links in the Resources section. (37307)
  • Remove the semicolons from the 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. examples. (37129)
  • Packages:
  • Block Editor:
    • Add a documentation note about inner blocks and excerpts. (36405)
    • Update example of usage for suggestionsQuery component. (37281)
  • Componentes:
    • Add missing changelog entries. (37384)
    • Fix code formatting for card components. (37268)
    • Fix importing from the wrong package. (37192)
    • Fix missing link for shortcut documentation. (36800)
    • Update QueryControls README.md. (37233)
  • Site Editor: Update support documentation URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org in the Welcome Guide. (37176)

Code Quality

Compatibility with Core

  • Better synchronization between Gutenberg and Core code. (37141)
  • Move WordPress 5.9 wp-admin menus compatibility code to lib/compat folder. (37257)
  • Move the block page templates hook into compat/5.9 folder. (37142)
  • Move template loader hooks and functions into lib/compat folder. (37149)
  • Synchronize wp_is_block_theme function and block-templates block support with Core. (37218)

Global Styles

  • Do not register Global Styles custom post typeCustom Post Type WordPress can hold and display many different types of content. A single item of such a content is generally called a post, although post is also a specific post type. Custom Post Types gives your site the ability to have templated posts, to simplify the concept. in WordPress 5.9. (37282)
  • Port Global Styles code to lib/compat/wordpress-5.9:
  • CSS custom properties. (37334)
  • Front assets. (37335)
  • Rename WP_Theme_JSON_Resolver methods to make them compatible with Core. (37393)

Packages

  • Dependency Extraction Webpack Plugin: Sort externalized dependencies report. (37377)
  • Block Editor:
  • Iframeiframe iFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser. component: Use block settings to pass assets. (37193)
  • Remove duplicate block styles. (37133)
  • Specify the WordPress versions where API is deprecated. (37150)
  • Components
  • Refactor DatePicker into a functional component. (36835)
  • Storybook: Update to version 6.4. (37367)
  • Data
  • Ensure that redux is listed as a dependency. (37364)
  • wordpress/data: Refactor use-select component in preparation for adding types. (37017)
  • Scripts: Update dependencies shared with other WordPress packages. (37395)

Site Editor

  • Remove unused PHP code. (36997)
  • Revert Site Editor: Set the on the list page to be the same as the CPT name. (37270)

Block Library

  • Remove gutenberg_ prefix from @wordpress/block-library. (37341)
  • Block Library: Rename Query Pagination blocks. (37091)

Tools

Testing

  • End-to-end Tests:
  • Increase delay in image block end-to-end test to fix intermittent failure when clearing URL field. (37136)
  • Update Multi-Entity Saving test to improve reliability. (37139)
  • Sanitize flaky test report file names. (37390)
  • Retry login again after a bad nonce request to prevent intermittent test failures. (37219)
  • Fix Multi-entity saving and Template parts related tests. (37333)
  • Fix Heading test. (37382)
  • Re-enable most of the navigation block end-to-end tests. (37214)
  • Use global transients for PHPUnit tests. (37122)
  • Fix usage of useSetting('color.palette'). (37108)
  • Add tests for the new gallery hooks. (36801)

Linting

  • ESLint:
  • Add support for ESLint v8. (36283)
  • Fix Babel config resolution when a custom ESLint config is present. (37406)

Build Tooling

  • Specify PHP version in Composer. (37007)
  • Remove unused jest-serializer-enzyme dependency. (37373)
  • Remove some labels from the Experiments section of the changelog. (37098)
  • npm:
  • Fix package dependencies issues discovered with pnpm. (37396)
  • Use the latest minor version of webpack in Gutenberg. (37371)
  • Fix build failure on Windows. (37189)

Performance benchmark

VersionTime to render first blockKeypress event (typing)
Gutenberg 12.25.672 s42.38 ms
Gutenberg 12.15.484 s37.17 ms
WordPress 5.85.807 s46.5 ms

Thank you, @priethor, for coordinating the release process, proofreading, and helping to select release highlights!
Thank you, @jameskoster and @joen for helping me to prepare visual assets and proofreading the release post!
Thank you, @mamaduka, for uploading the plugin to 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/!
Kudos to all the other contributors who have helped to make this release possible.

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

What’s new in Gutenberg 12.1 ( 8 December)

“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 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 published following every Gutenberg release on a biweekly basis, discovering new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Full Site Editing project.


Gutenberg 12.1 is here! the contributors continue to work tirelessly to prepare WordPress 5.9 and fix the remaining flows and bugs for the release.

Table of Contents

Template List View

This release marks the return of the template list view allowing users to navigate between the home page and the different templates and template parts in the site editor. It’s an important piece of the site editor puzzle. The current iteration of the design favors simplicity and usability. Iterations implementing client side navigation and mosaic view might be added in the future.

Global Styles

The global styles panel saw a big number of improvements in this cycle including:

  • The typography panel has been updated to show a simplified elements view allowing users to switch easily between text and link elements typography styles.
  • The color palette views now show the duotone presets. Also, users can now define custom gradients to be made available throughout the website.
  • Transparency support for the different color pickers in the Global Styles panel.

Gutenberg 12.1 includes several Navigation block improvements once again. For starters, users are not prompted to name their menus when adding starting a new one, as it is generated automatically, although the name can still be edited 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.. Also, the UXUX User experience around configuring the menu dropdown options has been improved, only displaying the options when the selected menu actually has submenus, and disabling toggling the Show arrow option when `Open on click` is enabled, to avoid confusion.

Ensuring a frontend fallback in case no menu is selected in the Navigation block has received lots of thought in the last weeks. Thanks to this, the Navigation block will now render a Page List block when visiting a page with empty navigation. However, this default behavior can be changed by developers via the new block_core_navigation_render_fallback 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., and completely opt-out by simply adding:

add_filter('block_core_navigation_render_fallback', '__return_false');

Last, but not least, as the block becomes stable for its release in WordPress 5.9, an 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. change should be noted: the menuId attribute has been renamed to ref to better align with other blocks’ attribute names. A new deprecation has been added to accommodate this change and existing Navigation blocks will get migrated to the new version.

Miscellaneous editor UX improvements

If you ever tested the editor, you’ve probably already noticed these little plus buttons or what we call block appenders that appear as you navigate and click throughout the editor. These appenders would often create layout shifts and jumps as you select different blocks. The issue is now finally resolved as the behavior of the block appenders has been changed to rely on fixed positioning.

Another small but important change to the user experience in the editor is the addition of a new keyboard shortcut to unselect all blocks. Users could hit Escape to enter navigation mode for better keyboard navigation in the canvas, and starting in Gutenberg 12.1, you can also Escape a second time when in navigation mode to unselect all blocks.

Block Themes

The contributors also focused on improving the developer experience for block themes. If you’re a block theme author, there are two important changes that you should be aware of in Gutenberg 12.1.

First, the block-templates and block-template-parts folders have been renamed to just templates and parts respectively in preparation for upcoming features, like the addition of styles and patterns folders. Existing block themes will continue to work without any change, the former folders are still supported but we encourage you to use the updated names from now on. The documentation has been updated to reflect that change.

The second is the addition of a new flag to the theme.json settings section called appearanceTools. Theme authors can set this flag to true to opt-in into all the various appearance tools available including border color, radius and width, link color, block gap, margin, padding, line height and any appearance tool that might be added in the future. Generic block themes in the repository may consider enabling this flag automatically to avoid having to keep track of all the additions that come over time.

Changelog

Enhancements

Site Editor

  • Add Template List View. (36379)
    • Show theme, 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 or author in Added By column with appropriate icon or 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.. (36763)
    • Add success and error snackbars. (36808)
    • Implement “Add New”. (36592)
    • Use table layout. (36707)
    • Set the document title properly. (36805)
    • Add rename action. (36879)
    • Update delete template button. (36815)
  • Make Reusable blocks available in the Site Editor. (36511)
  • Remove the Styles link in Site Editor. (36637)
  • Update and align template descriptions. (36000)
  • Add icons to navigation sidebar items. (36893)
  • Allow editing custom template title. (36933)
  • Only render the site editor canvas when the global styles are loaded. (36643)
  • Remove extra border radius from the canvas. (37022)
  • Update navigation sidebar responsiveness. (