What’s new in Gutenberg 14.6? (23 November)

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


Table of Contents

  1. Add a Variation Picker to the Group Block Placeholder
  2. Add List-Based Editing to Navigation Block
  3. Hide Block Toolbar when Spacing Visualizer is Shown
  4. Transform Paragraph into Heading via Keyboard Shortcut
  5. Update the Design of the Focal Point Handle
  6. Fluid typography: Adjust font size min and max rules
  7. Define a Minimum Height
  8. Generate New Color Paletts Automatically
  9. Changelog
  10. Performance Benchmark
  11. First Time Contributors
  12. Contributors

Add a Variation Picker to the Group BlockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. Placeholder

When a new Group block gets inserted into the page it now presents the user with a variation picker to instantly choose which type of layout they want to use.

Add List-Based Editing to Navigation Block

Managing the order of menu items just got a lot easier by allowing you to modify the arrangement of the individual menu items in a list view right inside the block settings 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.. This works similarly to the list view but is isolated to just the current navigation you are editing. Clicking on the “Edit” button selects the menu item in the editor so you can edit it inline.

Note: This is still experimental and needs to be enabled on 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 settings screen.

Hide Block Toolbar when Spacing Visualizer is Shown

The spacing visualizer has seen some improvements in the last few releases already. In 14.6 it now automatically hides the blocks toolbar as soon as you hover over the spacing setting allowing you to focus on the content whilst you adjust the spacing.

Transform Paragraph into Heading via Keyboard Shortcut

You can now easily transform paragraph blocks into headings using the new control + option + 16 keyboard shortcut.

Update the Design of the Focal Point Handle

In order to make it more clear that the focal point picker is selecting a broader region instead of a fine point the handle was updated to better fit the precision of the input.

Fluid typography: Adjust font size min and max rules

The minimum and maximum value calculations for fluid font sizes have been adjusted to prevent inconsistencies in certain viewports, such as having a bigger maximum than the custom size setting. You can check the github issue for the full set of rules.

Define a Minimum Height

The new “Minimum Height” dimension control is now available for the Group and Post Content block. For example, it can be used to make sure the site footer always stays at the bottom of the viewport.

Generate New Color Paletts Automatically

Coming up with the perfect color palette is hard. Sometimes you just want to explore some new quick ideas. This new “Randomize colors” feature is a subtle algorithm that can generate alternative color palettes on the fly.

Changelog

Enhancements

Block Library

  • Latest posts: Add color support. (41874)
  • Latest posts and latest comments: Add spacing support. (45110)
  • Navigation: Adds a list view. (45546)
  • Navigation: Add a new ManageMenusButton component. (45782)
  • Navigation: Reposition the navigation selector. (45555)
  • Navigation Link: Add the URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org field to the Navigation Link inspector controls. (45751)
  • Author: Make the Author selector display all users instead of just 10. (45640)
  • Columns: Add transform to unwrap the contents. (45666)
  • Read More: Add aria-label and screen reader text. (45490)
  • Group: Use a variation picker in the placeholder. (43496)

Components

  • Use new theming accent color in all components. (45289)
  • CheckboxControl: Replace margin overrides with new opt-in prop. (45434)
  • FocalPointPicker: Update the design of the focal point handle. (45053)
  • FontSizePicker: Update hint text to match the design. (44966)
  • CheckboxControl: Move icons out of labels. (45535)

Block Editor

  • Converts paragraphs to headings with keyboard shortcuts. (44681)
  • Restore the empty paragraph inserter. (45542)
  • Transform: Select all blocks if the result has more than one block. (45015)
  • Content-only locked patterns: Move “Modify” to the ellipsis menu. (45391)
  • Patterns: Adjust the space in the pattern explorer list. (45730)
  • Update: Lock icon to outline. (45645)
  • Don’t use capital case for ‘Distraction free’ strings. (45538)
  • Replace Justification/Orientation controls with ToggleGroupControl. (45637)

Site Editor

  • Replace FSE with Site Editor. (45699)

Design Tools

  • Add a minHeight block support under dimensions. (45300)
  • Hide the block toolbar when the spacing visualizer is showing. (45131)

Global Styles

  • Fluid typography: Adjust font size min and max rules. (45536)
  • Elements: Add a text decoration control to link elements. (45643)
  • Global styles: Convert preset font size values to CSSCSS Cascading Style Sheets. vars. (44967)
  • Try generating random color palettes. (40988)

Plugin

  • Updates tested up to version to 6.1. (45630)

Patterns

  • Pattern Directory 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.: Add support for pagination parameters. (45293)
  • Update bundled patterns compat directory. (45620)

Bug Fixes

Block Library

  • Change the order of the pseudo-states in the pseudo-selectors array. (45559)
  • Cover: Avoid content loss when the templateLock value is all or contentOnly. (45632)
  • Fix alignment of create new post link. (45638)
  • Fix navigation appender position to prevent obstructing its items. (43530)
  • Fix: Button block text alignment. (45663)
  • Query Pagination: Fix positioning of the next link in editor when the parent is selected. (45651)
  • Site Logo: Use the correct home URL setting. (45476)
  • Switch background color to text color on the block separator. (44943)
  • Table Block: Apply borders and padding on both front end and editor. (45069)
  • Table block: Fix error in margin value. (45674)
  • Template Part Block: Update block isActive method. (45672)
  • Navigation: Fix overflowing menu name in the navigation selector dropdown. (45647)

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)

  • Fix focus return when closing the Post publish panel. (45623)
  • Fix navigate regions backwards for macOS Firefox and Safari. (45019)
  • Fix the Save buttons labeling and tooltip. (43952)
  • Fix the navigate regions focus style. (45369)
  • Fix: Contrast checker appears unexpectedly on some blocks. (45639)
  • Fix: Contrast checker does not update properly. (45686)

Components

  • Autocomplete: Fix unexpected block insertion during IME composition. (45510)
  • Fix ESLint warning for Dashicon. (45795)
  • FormTokenField: Fix duplicate input in IME composition. (45607)
  • Making size prop work for icon components using dash icon strings. (45593)
  • ToolsPanel: Prevent calling deselect when panel remounts. (45673)
  • Color Picker: Prevent all number fields to become 0 when one of them is an empty string. (45649)
  • ToggleGroupControl: Only show the enclosing border when isBlock. (45492)
  • Autocomplete: Check key events more strictly in IME composition. (45626)

CSS & Styling

  • Inherit font from theme on overlay close button. (45635)
  • Navigation: Fix font inheritance when using text menu button. (45514)
  • Remove hover style to button on dark block tools UIUI User interface. (45653)
  • Remove width from block mover button focus style. (45665)
  • Site editor hover/select: Fix double border. (45589)
  • Remove duplicate output of existing classnames in layout classnames. (45499)

Post Editor

  • BlockManagerCategory: Fix styles for indeterminate. (45564)
  • Fix: Updated names from List View to Document Overview. (45524)
  • Strip HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. from Post Title when pasting multiline title containing HTML. (35825)

Site Editor

  • Decode entities in template title and description. (45716)
  • Link to homeUrl from site editor view menu. (45475)

Block Editor

  • Fix Link UI popover positioning when inspector control input is focused. (45661)
  • Paste: Fix list only paste from Google documentation. (45498)
  • Make Manage Reusable blocks match similar links. (45641)(45689)
  • List View: Disable branchbranch A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch". expansion when block editing is locked. (45541)
  • Spacing visualizer: Fix display of unexpected visualizer for certain mouse actions. (45739)

Experiments

  • A list view duplicate for use in navigation list view experiment. (45544)
  • Introduce experiment for inspector based navigation editing. (45515)

Documentation

  • Add missing CHANGELOG entry. (45691)
  • Change Title: How to use 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/. with Gutenberg. (45323)
  • Docs: Update the readme for the integration test fixtures. (45581)
  • Summarize “Available commands” section and refer them it to scripts documentation. (45636)
  • Update applying-styles-with-stylesheets.md. (45604)
  • [create-block] Reorganized sections to provide a better learning experience of this package. (45676)
  • Change “block style variations” references to “block style”. (45650)

Performance

  • Lodash: Refactor away from _.reduce(). (45460)
  • Lodash: Refactor block editor away from _.reduce(). (45455)
  • Lodash: Refactor blocks away from _.reduce(). (45457)
  • Lodash: Refactor site editor away from _.reduce(). (45459)
  • Lodash: Refactor post editor away from _.reduce(). (45458)
  • Do not look for block variants, if not supporting block-templates. (45362)
  • List: Disable nested list drop zone so dropping list items works. (45321)
  • Use low-level cache for get_user_data_from_wp_global_styles. (45634)
  • Update: Improve performance of block template object retrieval. (45646)

Code Quality

Block Editor

  • Block Editor: Improve LinkControl tests. (45609)
  • Block Editor: Improve ResponsiveBlockControl tests. (45610)
  • Block Editor: Improve ReusableBlocksTab tests. (45652)
  • LinkControl: Suppress errors on null values. (45742)
  • Simplify ResizableEditor component. (45578)
  • Remove duplicate colon. (45763)
  • Extract the manage menus button to a shared component to reduce duplicate code. (45769)
  • 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. pseudo selector comments from coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. (45619)
  • unstableSubscribeStore: Support store descriptors. (45481)

Components

  • BaseField: Remove unnecessary .firstChild from tests. (45687)
  • DateTime: Remove unused types. (45615)
  • Draggable: Convert component to TypeScript. (45471)
  • Fix no-container violations in FormGroup tests. (45662)
  • Fix testing-library/no-node-access in TreeGrid tests. (45554)
  • FontSizePicker: Use components instead of helper functions. (44891)
  • Improve tests for ToggleGroupControl. (45627)
  • MenuGroup: Convert component to TypeScript. (45617)
  • Popover: Fix exhaustive-deps warning. (45656)
  • Refactor ItemGroup to pass exhaustive-deps. (45531)
  • Refactor useFlex to pass exhaustive-deps. (45528)
  • Refactor withNotices to pass exhaustive-deps. (45530)
  • RefactorPaletteEditListView to ignore exhaustive-deps. (45467)
  • TabPanel: Fix the exhaustive-deps warning. (45660)
  • ToolsPanel: Fix exhaustive-deps hook warning. (45715)
  • Truncate: Remove unnecessary .firstChild from tests. (45694)
  • View component: Rename index.js to index.ts. (45667)
  • ColorPalette, BorderBox, BorderBoxControl: Polish and DRY prop types, add default values. (45463)
  • NavigatorScreen: Satisfy exhaustive-deps eslint rule. (45648)
  • Fix useCx story to satisfy exhaustive-deps eslint rule. (45614)
  • URLPopover: Use new placement prop instead of legacy position prop. (44391)
  • Tidy and minor refactor of Link UI code. (37833)

Block Library

  • AvatarAvatar An avatar is an image or illustration that specifically refers to a character that represents an online user. It’s usually a square box that appears next to the user’s name.: Escape the ‘get_author_posts_url()’. (45427)
  • Button: Remove unnecessary ‘useCallback’. (45584)
  • Make unwrapping columns slighly more efficient. (45684)
  • Simplfy handling of save of Nav block uncontrolled inner blocks. (45517)
  • Lodash: Refactor block library away from _.reduce(). (45456)

Tools

Testing

  • Components: Add exhaustive-deps eslint rule. (41166)
  • Fix typos in Paragraph block end-to-end tests. (45611)
  • FontSizePicker: Fix a buggy unit testunit test Code written to test a small piece of code or functionality within a larger application. Everything from themes to WordPress core have a series of unit tests. Also see regression.. (45529)
  • Ignore warnings for window.wp in Playwright. (45598)
  • Migrate mentions tests to playwright. (43064)
  • Navigation Toggle unit test: Unmount synchronously to cancel popover positioning. (45726)
  • 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 unit tests: Migrate getByA11yLabel usages. (45454)
  • Unit Tests: Rewrite ReactDOM.render usages to RTL. (45453)
  • E2E: Add site and 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 supports for ensureSidebarOpened. (45480)

Build Tooling

  • Include TS and JSX files to testing-library lint. (45533)
  • Remove use of set-output in workflows. (45357)

Triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors.

  • Configure labels for GHA Dependabot PRs. (45516)

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

VersionLoading TimeKeyPress Event (typing)
Gutenberg 14.610.27s49.63 ms
Gutenberg 14.512.08s70.53ms
WordPress 6.14.1s31.3 ms

Site Editor

VersionLoading TimeKeyPress Event (typing)
Gutenberg 14.69.58s48.65ms
Gutenberg 14.59.35s77.82ms
WordPress 6.13.84s22.79ms

First Time Contributors

The following PRs were merged by first time contributors:

  • @edanzer: Template Part Block: Update block isActive method. (45672)
  • @TimBroddin: Fix alignment of create new post link. (45638)
  • @wojtekn: Make Author block selector to display all users instead of just 10. (45640)

Contributors

The following contributors merged PRs in this release:

@aaronrobertshaw @afercia @andrewserong @bph @brookewp @c4rl0sbr4v0 @carolinan @chad1008 @ciampo @Copons @DaisyOlsen @desrosj @dinhtungdu @draganescu @dsas @edanzer @ellatrix @enejb @flootr @getdave @glendaviesnz @hz-tyfoon @jasmussen @javierarce @jffng @jonathanbossenger @jorgefilipecosta @jsnajdr @juanmaguitar @juhi123 @kevin940726 @Mamaduka @matiasbenedetto @mikachan @mirka @mmtr @mtias @ndiego @nielslange @noisysocks @ntsekouras @peterwilsoncc @ramonjd @ryelle @scruffian @spacedmonkey @t-hamano @TimBroddin @tyxla @vcanales @walbo @wojtekn @youknowriad @yuliyan

Thanks to @xavortm for helping with the assets for this post and to @javiarce & @priethor for reviewing.

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