What’s new in Gutenberg (August 19)

With the release of WordPress 5.5 (🎉) comes a new release of GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/! Gutenberg 8.8. Contributors have continued to squash bugs, refine experiences, and make progress on several big projects.

Full site editing has progressed with updates to Global Styles, the Post 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. suite, and Template management. The back-compatibility of the new Widget Screen was improved. The Widgets screen is a project that’s part of a wider effort to add more block enabled sections to the WordPress experience.

This release also saw important accessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) and mobile improvements to user-interfaces like the Toolbar, navigation menus, and Popovers.

All this and more in the wonderfully jam packed change log below:

8.8.0 🇳🇬

Enhancements

  • Copy: Use “block patterns” strings consistently. (24457)
  • Remove hardcoded color from the Recent Comments block. (24410)
  • Remove hardcoded styles from the Separator block. (24366)
  • Block toolbar: Split switcher from mover and simplify styles. (23971)
  • Use the block label 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. for BlockTitle component. (23847)
  • 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.: Translate all strings inside the Large 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. Button block pattern. (24499)
  • Block Movers: Use a bigger mobile touch target. (23761)
  • Block Movers: Use a bigger visible focus rectangle. (23760)
  • Update the top toolbar buttons color. (24420)
  • Remove editor styles from front-facing stylesheets. (24439)
  • Block Toolbar More Menu: Switch back to the vertical ellipsis icon. (24426)
  • Removes hardcoded body text color from some block patterns. (24424)

New APIs

  • Support the default block classnames in dynamic blocks. (24546)
  • Support the custom classnames hook in dynamic blocks. (24483)
  • Stabilize the accessible Toolbar component and deprecate the old usage. (23316)
  • Add store icon to Icons package. (23867)
  • Allow POST requests in <ServerSideRender>. (21068)

Bug Fixes

  • Fix inserter expecting experimental settings to exist in the context. (24554)
  • Fix Image block caption jumps on Safari. (24540)
  • Fix Media Text block: Always show images on top on mobile. (24468)
  • Hide Preview menu on small viewports. (24537)
  • Fix canInsertBlockType selector returning true for blocks that don’t allow inner blocks. (24514)
  • Fix the huge font size on the editor when using the default font sizes presets. (24492)
  • Fix Cover block: Impossible to reset the minimum height value. (24490)
  • Fix Post preview button only appearing on small screens. (24487)
  • Fix deduplication of style rules for server-side block support flags. (24486)
  • Fix the quick inserter results limit for block variations. (24481)
  • Fix tiny editor preview when using Mobile or Tablet options with metaboxes enabled. (24478)
  • Fix custom gradient picker unable to change predefined gradients with hex colors. (24470)
  • Fixing duplicated wp-block classes in block-list. (24466)
  • 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):
    • Make the inserter behave as a popover. (24429)
    • Fix incorrect aria description in the Block List View. (24533)
    • Add arrow navigation in Preview menu. (24465)
    • Add arrow navigation to Warning dropdown menu. (24333)
    • Add an example to the buttons block to avoid focus loss issue. (24434)
  • Fix rendering non-Latin characters on aligned Cover blocks. (24447)
  • Remove --wp-admin-theme-color reference from frontend styles. (24436)
  • Prevent links from being focusable inside the Disabled component. (24397)
  • Image Editing: Fix alignment of aspect-ratio button. (24343)
  • Fix retrying of post-processing of edited images. (24081)
  • Set error state when there is an upload error in during file upload. (24017)
  • Block Directory: Decode entities in block title & description. (24172)
  • Preview menu: Remove redundant “opens in a new tab” hidden text. (24427)
  • Fix uploading PDFs in the File block. (24318)

Experiments

  • InnerBlocks: Introduce prop to specify render callback for each block. (24232)
  • Navigation:
    • Display children of inner block controllers in the block navigator. (24083)
    • Add font-size support to the the Navigation block. (24531)
  • Template Parts and saving flow:
    • Move the title to the block toolbar. (24450)
    • Fix Template Part renaming error. (24500)
    • Fix Site Title Save Bug. (24302)
  • Post Blocks:
    • Post Tags block: 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. where no tags are rendered. (24082)
    • Post Tags block: Support color, font-size and line-height customization. (24069)
  • Full Site Editing:
    • Load php files only if experiment is enabled. (24182)
  • Global Styles:
    • Consider any user changes to global styles as publishable. (24293)
    • Add support for more style properties in the global context. (24298)
  • Widgets screen:
    • Refactor the widgets screen to rely on dedicated endpoints. (24290)
    • Make the list of widgets excluded from the legacy 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. block extensibleExtensible This is the ability to add additional functionality to the code. Plugins extend the WordPress core software. via a 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.. (24271)

Documentation

  • Add undocumented global styles blocks & properties. (24421)
  • Remove “experimental” from title of editor filters. (24382)
  • Add instructions for disabling the Block Directory. (24357)
  • Remove duplicate questions in FAQ. (24355)
  • Indicate custom-fields support is required for registering 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.. (24325)
  • Add block directory submission guidelines. (23545)
  • Typos and tweaks: (24511) (24244) (24491) (24361) (24340)
  • Update the “Create a Block” Tutorial. (24545)
  • Getting started: Add a MAMP section. (24241)

Code Quality

  • Refactor embed block to single block with block variations. (24090)
  • Upgrade ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. version to 16.13.1. (21289)
  • Update lodash to 4.17.19. (24401)
  • Register the block attributes server-side for blocks with support flags. (24400)
  • Refactor components as functional components:
  • Remove unnecessary selector from the PostTitle block. (24418)
  • Remove unnecessary ad-hoc class application for dynamic blocks. (24223)

Build Tooling

  • Run wp-env start before PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 unit tests in package scripts. (23797)
  • Upgrade eslint-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-jsdoc to latest version. (24586)
  • Add full parameters for emulateNetworkConditions. (24144)
  • Add an end-to-end 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. test for the “Browse All” inserter button. (24396)

Performance Benchmark

Update: Gradual changes in the editor have made its rendering pipeline more asynchronous. As a result, the usual metrics (loading time, typing time) that we collect in the performance benchmarks may have not always represented the performance gains and losses experienced by some users.

We are improving the way times are measured to account for the more async nature of the editor rendering. We will update this post with performance results once we are confident that they accurately measure the performance of the editor.

The synchronicity changes in question only affect Gutenberg 8.8 and 8.9.
The numbers shared for previous releases are still an accurate way of measuring the editor’s performance.

A big thanks to all the wonderful contributors that helped with this release! 👏

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