What is new in Gutenberg 19.2 (11 September)

“What’s new in GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/…” posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Editor.

Gutenberg 19.2 has been released and is available for download!

The latest Gutenberg release introduces several key updates. Among them is the BlockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. Bindings UIUI User interface, which restricts creation and modification to adminadmin (and super admin) users by default but, most importantly, removes the experimental flag from the feature. This version also enhances Zoom Out mode, allowing for more straightforward navigation, includes an experimental feature for client-side media processing, and adds Preview Options extensibility via the 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 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.. Alongside these highlights, users will find improvements in data views and refinements to the overall editing experience.

Block Bindings UI out of experimental phase.

In Gutenberg 19.2, the Block Bindings UI has moved out of its experimental phase, marking a significant milestone. Removing the experimental flag means this feature is now integrated into the editor, offering a stable way to connect block attributes to external data sources. By default, only admin users can create and modify these bindings, providing an additional layer of control and security.

Preview Options extensibility via the Plugin API

With this release, the Preview Options have gained new extensibility, making it easier for developers to customize how content is previewed within the block editor. The extensibility feature allows plugins and themes to introduce their own options into the preview dropdown. This provides greater flexibility for users who need to see content in various formats or environments, improving the editing experience.

Other Notable Highlights

  • New Experiment: Client-side Media Processing: Introduces an experimental feature for processing media client-side, reducing server load and enhancing performance. (#64650)
  • Zoom Out Mode Enhancements: Adds an “Edit” button to the toolbar and allows users to exit Zoom Out mode by double-clicking blocks. The “Shuffle” block toolbar button has also been removed. (#64571, #64573, #64954)
  • Content Only Mode: Adds support for block styles on top-level content-only locked blocks and displays block icons in the toolbar. (#64872, #64694)

Changelog

Enhancements

  • Add: Reorder control at the field level on the new view configuration UI. (64381)
  • CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Data Types: recordId can be a number. (64796)
  • Core Data: Derive collection totals for unbound queries. (64772)
  • Create Block: Set minimum supported WordPress version to 6.6. (64920)
  • Dataviews 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. search 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.: Do not use Composite store. (64985)
  • Dataviews list view: Do not use Composite store. (64987)
  • Move bulk actions menu to the Footer, consolidate with floating toolbar and total items display. (64268)
  • Try: Update block warnings. (64997)

Components

  • Add variants to InputControl prefix/suffix wrappers. (64824)
  • AlignmentMatrixControl: Do not use Composite store. (64850)
  • CircularOptionPicker: Stop using composite store. (64833)
  • Composite: Accept store props on top level component. (64832)
  • DataViews: Adds two new stories for edge cases. (64975)
  • Decrease standard padding to 12px. (64708)
  • DropdownMenuV2: Add GroupLabel subcomponent. (64854)
  • DropdownMenuV2: Update animation. (64868)
  • DropdownMenuV2: Use overloaded naming conventions. (64654)
  • InputControl: Tighten gap between input and prefix/suffix. (64908)
  • Navigator: Polish Storybook examples. (64798)
  • Navigator: Remove location history, simplify internal logic. (64675)
  • UnitControl: Update unit select styles. (64712)
  • Update hard-coded border-radius instances. (64693)
  • Update modal animation. (64580)

Block bindings

  • Add warning in attributes connected to invalidinvalid A resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. sources. (65002)
  • Allow only admin users to create and modify bindings by default. (64570)
  • Lock editing in fields in editor if 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. fields panel is opened. (64738)
  • Rely on Text component instead of Truncate in bindings panel. (65007)
  • Remove getPlaceholder API and rely on key argument or source label. (64910)

Data Views

  • Add: Reorder control at the field level on the new view configuration UI. (64381)
  • Dataviews Filter search widget: Do not use Composite store. (64985)
  • Dataviews list view: Do not use Composite store. (64987)
  • Move bulk actions menu to the Footer, consolidate with floating toolbar and total items display. (64268)

Block Editor

  • Add ‘Reset’ option to MediaReplaceFlow component. (64826)
  • Block Patterns List: Do not use Composite store. (64983)
  • Remove the Shuffle block toolbar button. (64954)
  • Show block icon in contentOnly toolbar. (64694)

Block Library

  • Cover Block: Move Clear Media button from Inspector Controls to Block Controls. (64630)
  • Improve Social Icons setup and appending. (64877)
  • Pagination Block: Fix inconsistent margins between editor and frontend. (64874)
  • Tag Cloud: Improve state of block with no tags. (63774)

Block Locking

  • ContentOnly: Add support for block styles on top-level contentOnly locked blocks. (64872)
  • Only show title in content only toolbar if has title value. (64840)
  • Remove ability to crop image if content only mode. (64838)
  • Rename Alt to Alternative Text in content only image toolbar. (64841)

Interactivity API

  • Categories Block: Add iAPI directive for client-side routing. (64907)
  • Improve internal deepMerge function. (64879)

Global Styles

  • Hide typeset button when there are no typesets available. (64515)
  • Use four color palette colors instead of five for useStylesPreviewColors. (64700)

Zoom Out

  • Add “Edit” button to Zoom Out mode toolbar. (64571)
  • Double click block to exit zoom out mode. (64573)

Design Tools

  • Comment Edit Link: Add Border Block Support. (64239)
  • Comment Reply Link: Add border support. (64271)

Icons

  • Add thumbs up and down icons. (65004)

Site Editor

  • Apply radius scale in the editor. (64930)

Post Editor

  • Post publish upload media dialog: Handle upload errors. (64823)

Typography

  • Fluid typography: Allow individual preset overrides. (64790)

Media

  • Add experiment for client-side media processing. (64650)

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

  • Core Data: Resolve entity collection user permissions. (64504)

Block Transforms

  • Details block: Add transform from any block type. (63422)

New APIs

Extensibility

  • Editor: Add extensibility to PreviewOptions v2. (64644)

Bug Fixes

  • Add safeguard to mediaUploadMiddleware. (64843)
  • Allow multi-select on iOSiOS The operating system used on iPhones and iPads. Safari/touch devices. (63671)
  • Core Data: Fix the ‘query._fields’ property check inside ‘getEntityRecord’ resolver. (65079)
  • Fix Modify content-locked menu item not showing if the block is not selected. (61605)
  • Fix editor error in Safari due to availability of checkVisibility method. (65069)
  • Fix: Pagination arrows are pointing in the wrong direction in RTL languages. (64962)
  • Footnotes: Only replace attribute if footnotes were detected. (63935)
  • Paste: Fix image paste from Google Forms. (64502)
  • Revert Focus pattern inserter search when activating zoom out inserter. (64748)
  • Try: Update block warnings. (64997)

Block Library

  • De-duplicate block toolbar icons for patterns. (65054)
  • Fix: Page list: Pages without a title has no link text. (64297)
  • Position BlockToolbar below all of the selected block’s descendants. (62711)
  • Site Logo Block: Fix non-admin users seeing zero character. (65010)
  • Site Logo: Fix loader alignment issue. (64919)
  • Template Part: Hide Advanced panel for non-admin users. (64721)
  • Video Block: Fix layout issue. (64834)

Components

  • ColorPalette utils: Do not normalize undefined color values. (64969)
  • DatePicker: Restore round radius for event dot. (65031)
  • DropdownMenuV2: Fix active and focus-visible item glitches. (64942)
  • DropdownMenuV2: Remove flashing styles when moving focus with keyboard. (64873)
  • Fixes “delete” action in DataViews’ storybook. (64901)
  • Navigator: Fix isInitial, refine focusSelector logic. (64786)
  • Range control: Restore bottom margin rule. (65035)

Post Editor

  • Add back editor-post-locked-modal to post lock component. (64257)
  • Add context to View string in post actions. (65046)
  • Apply space below content using a pseudo-element instead of padding-bottom. (64639)
  • Post Title: Fix pasting in Safari. (64671)
  • Post Title: Move selection at the end after pasting over the text. (64665)
  • Post publish upload media dialog: Fix silent failure. (64741)

Data Views

  • DataViews: Fix field reordering and visibility logic. (64999)
  • Fix actions scrim in list layout. (64696)
  • Fix data views style inheritance. (64933)
  • Fix: Impossible to see pagination on viewports between small and medium. (64844)
  • List layout: Update broken styles. (64837)

Block Editor

  • Add conditions when the Shuffle button can be displayed. (64888)
  • Inserter: Fix subtle media insertion error. (65057)
  • Post Editor: Fix click space after post content to append. (64992)
  • Writing flow: Fix triple click inside text blocks. (64928)

Global Styles

  • Adjust spacing of background panel. (64880)
  • Cast globalFluid value to boolean. (64882)
  • Fix site editor broken when fontWeight is not defined or is an integer in theme.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. or theme styles. (64953)
  • Fixes the default fluid value on the UI based on the global typography fluid value. (64803)

Block bindings

  • Change placeholder when attribute is bound. (64903)
  • Fix empty custom fields not being editable in bindings. (64881)

CSSCSS Cascading Style Sheets. & Styling

  • 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: Reduce CSS specificity. (64463)
  • Retain the same specificity for non iframed selectors. (64534)

Patterns

  • Pass ‘blocks’ as inner blocks value. (65029)

Synced Patterns

  • Pattern: Don’t render block controls when an entity is missing. (65028)

Site Editor

  • DataViews: Fix pattern title direction in RTL languages. (64967)

Typography

  • Site Title, Post Title: Fix typography for blocks with a children. (64911)

NUX

  • Fix visibility of the template Welcome Guide in the Site Editor. (64789)

Document Settings

  • Fix: Adjust Site URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org Styles to Prevent Overflow in Pre-Publish Component. (64745)

Zoom Out

  • Focus selected block in editor canvas when clicking edit button on zoom out mode toolbar. (64725)

Templates API

  • Make plugin-registered templates overriden by themes to fall back to plugin-registered title and description. (64610)

Block Style Variations

  • Block Styles: Ensure unique classname generation for variations. (64511)

Distraction Free

  • Make Distraction Free not conditional on viewport width. (63949)

Media

  • Limit the max width of image to its container size. (63341)

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)

Components

  • AlignmentMatrixControl: Simplify styles and markup. (64827)
  • TimePicker: Use ToggleGroupControl for AM/PM toggle. (64800)

Block Editor

  • Layout content and wide width controls: Remove confusing icon and clarify labels. (64891)

Font Library

  • Font Library Modal: Group font variations as a list. (64029)

Post Editor

  • Fix the post summary Status toggle button accessibility. (63988)

Performance

  • Core Data: Avoid loops in ‘registry.batch’ calls. (64955)
  • Core data: Performance: Fix receive user permissions. (64894)
  • Reusable blocks: Fix performance of __experimentalGetAllowedPatterns. (64871)

Site Editor

  • Add ‘OPTIONS /page’ to preloaded paths. (64890)
  • Editor: Don’t use selector shortcuts for the Site data. (64884)

Interactivity API

  • Prevent calling proxifyContext with context proxies inside wp-context. (65090)

Block Library

  • Media & Text: Don’t use background-image. (64981)

Post Editor

  • Editor: Remove create template permission check in ‘VisualEditor’. (64905)

Block Editor

  • Inserter: Use lighter grammar parse to check allowed status. (64902)

Patterns

  • Shuffle: Don’t call ‘__experimentalGetAllowedPatterns’ for every block. (64736)

Experiments

Zoom Out

  • Add new zoom out experiment. (65048)
  • Remove the experiment that connects zoom out to the pattern inserter. (65045)

Documentation

  • Add a new section to the SlotFill reference to show how to conditionally render Fills. (64807)
  • Added Global Documentation in several php file. (64956)
  • Components: Move displayName assignment to top-level files. (64793)
  • Composite: Add context-forwarding with SlotFill example. (65051)
  • Composite: Fix Storybook docgen. (64682)
  • Corrected HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. Syntax for Closing Tags in api-reference.md file. (64778)
  • DataViews docs: Fix typo in direction values. (64973)
  • DataViews: Add story about combining fields. (64984)
  • DataViews: Document combined fields. (64904)
  • Dataviews docs: Layout properties checks and link. (64918)
  • Docs/iAPI: Fix wrong code snippets in API reference. (64416)
  • Docs: Update design resources to indicate edit isn’t free. (64792)
  • PluginSidebarMoreMenuItem: Update example, screenshot and description. (64761)
  • Provide better examples and remove outdating site edit references for the MainDashboardButton SlotFill. (64753)
  • Removing ryanwelcher as a documentation codeowner because my inbox is dead. (64762)
  • Storybook: Hide deprecated __next36pxDefaultSize prop. (64806)
  • Update screenshot and description for PluginSidebar slot. (64759)
  • Update text to match code examples. (64751)
  • Update the import for PluginBlockSettingsMenuItem. (64758)
  • Updated Several Typos in Doc files. (64787)
  • [Docs]: Update Usage Example for block variation picker: Fix Import from Wrong Package. (55555)

Code Quality

  • Button: Add lint rule for 40px size prop usage. (64835)
  • Dataviews filter: Move resetValueOnSelect prop to combobox item. (64852)
  • Rename refs to fix tons of ‘Mutating a value’ errors in reactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/.-compiler. (64718)
  • Rich text: Add comment on placeholder approach. (64945)
  • SelectControl: Fix remaining 40px size violations. (64831)
  • Simplify useResizeObserver. (64820)
  • Typography: 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. comment changes only. (64859)
  • UnitControl: Add lint rule for 40px size prop usage. (64520)
  • UnitControl: Move to stricter lint rule for 40px size adherence. (65017)
  • Use rectIntersect instead of a custom argument to rectUnion. (64855)

Site Editor

  • Add Custom Template modal: Do not use Composite store. (65044)
  • Add units to avoid console warning. (64810)
  • Edit Site Layout: Remove redundant fullResizer. (64821)
  • Remove unused ‘useSiteEditorSettings’ hook. (64892)
  • Style Book: Do not use Composite store. (65047)

Block Editor

  • Block Inserter Listbox: Do not use Composite store. (65042)
  • Block Inserter Media List: Do not use Composite store. (65043)
  • Block Pattern Setup: Do not use Composite store. (65039)
  • Global Styles Shadow Panel: Do not use Composite store. (65041)
  • Pattern Transformations Menu: Do not use Composite store. (65040)

Zoom Out

  • Add selector for getting section root clientId. (65001)
  • Don’t pass ‘rootClientId’ to block lock selectors. (64887)
  • Fix error and improve privacy of sectionRootClientId setting. (65000)

Components

  • AlignmentMatrixControl: Promote to stable. (60913)
  • Deprecate DimensionControl. (64951)

Block Library

  • Block Bindings: Fix ESLint warnings. (64684)
  • Video Block: Remove custom CSS code for placeholder style. (64861)

Global Styles

  • Allow referenced zero value and simplify getValueFromObjectPath calls. (64836)
  • Navigator: Replace deprecated NavigatorToParentButton with NavigatorBackButton. (64775)

Block Directory

  • Downloadable Block List: Do not use composite store. (65038)

Design Tools

  • Color panel hook: Rename to remove ambiguity. (64993)

Tools

  • Add remaining 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. rules to recommended ESLint ruleset. (64710)
  • Scripts: Added chunk filename in webpack configuration to avoid reading stale files. (58176)
  • Scripts: Import CSS files before optimization. (61121)
  • Scripts: Update puppeteer-core dependency. (64597)

Testing

  • Flaky Test: Fix “Sorting” test in new-templates-list.spec.js. (64776)
  • Revert “Downgrade node 22(.5) unit tests to 22.4 (#63728)”. (63758)

Various

  • Dataviews docs: Fixed property name for defaultLayouts settings. (64897)
  • task: Remove dcalhoun code owner. (64886)

First-time contributors

The following PRs were merged by first-time contributors:

  • @Imran92: Fix site editor broken when fontWeight is not defined or is an integer in theme.json or theme styles. (64953)
  • @jacobcassidy: Scripts: Update puppeteer-core dependency. (64597)
  • @jawadmalikdev: [Docs]: Update Usage Example for block variation picker: Fix Import from Wrong Package. (55555)
  • @lezama: Editor: Add extensibility to PreviewOptions v2. (64644)
  • @rithik56: Scripts: Added chunk filename in webpack configuration to avoid reading stale files. (58176)
  • @rohitmathur-7: Cover Block: Move Clear Media button from Inspector Controls to Block Controls. (64630)

Contributors

The following contributors merged PRs in this release:

@aaronrobertshaw @afercia @akasunil @Aljullu @andrewserong @atachibana @benoitchantre @carolinan @cbravobernal @ciampo @DAreRodz @dcalhoun @desrosj @dsas @ellatrix @fullofcaffeine @getdave @gziolo @Imran92 @imrraaj @jacobcassidy @jameskoster @jasmussen @jawadmalikdev @jeryj @jorgefilipecosta @jsnajdr @juanmaguitar @kevin940726 @lezama @Mamaduka @matiasbenedetto @mirka @noisysocks @ntsekouras @oandregal @ockham @rafaelgallani @ramonjd @richtabor @rithik56 @rohitmathur-7 @ryanwelcher @SantosGuillamot @scruffian @sgomes @shail-mehta @spacedmonkey @stokesman @swissspidy @t-hamano @talldan @tjcafferkey @tyxla

Props to @annezazu, @priethor, @joen, @cbravobernal for their help with the release!

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

What’s new in Gutenberg 19.0? (14 August)

“What’s new in GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/…” posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Editor.

In the Gutenberg 19.0 release, two important features have been added under experimental flags to allow folks to opt in to test and give feedback as they want. These features can be enabled by going to Gutenberg > Experiments. The first feature lets you connect blocks to custom fields, which many have been eager to see. The second feature lets you quick edit within the new Site Editor > Page’s interface, built using Data Views. Feedback is welcome and needed for both.

Outside of these experimental features, this release also includes severable notable enhancements, including a more intuitive user interface to configure views (pages, templates, patterns, etc) and the option to choose whether filters are shown or hidden within them. Finally, the option to manually enter a zoomed out view was added alongside the device preview options and multiple writing flow enhancements were completed.

  1. UI to connect blocks and custom fields
  2. Quick edit is now available on the new Pages list
  3. Show or hide filters in Data Views
  4. Changelog
    1. First-time contributors
    2. Contributors

    UIUI User interface to connect blocks and custom fields

    Gutenberg 19.0 comes with the first UI prototype to connect blocks and custom fields. It has been merged under an experimental flag in the Gutenberg pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party.

    To check it out enable the “UI to create 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. bindings” experiment under “Gutenberg -> Experiments”.

    Quick edit is now available on the new Pages list

    The first version of Quick Edit for Data Views has landed in Gutenberg 19.0 as an experiment. It allows users to edit some fields without leaving the overall Pages interface — it supports bulk editing as well.

    Show or hide filters in Data Views

    Gutenberg 19.0 includes functionality to hide/show the filters in the user interface. This simplifies the Data Views UI, as complex filters (including default ones for some views) will no longer occupy UI space. At the same time, feature parity and ease of use are maintained, as filters can still be added by clicking the filtering button when needed.

    Changelog

    Continue reading

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

    What’s new in Gutenberg 18.9? (31 July)

    “What’s new in GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/…” posts (labeled with the #gutenberg-new tag) are posted biweekly following every Gutenberg release, showcasing new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Editor.

    Gutenberg 18.9 has been released and is available for download!

    1. Data Views get more flexible
    2. Consolidating design tools across blocks
    3. Improved usability in editing and applying font size presets
    4. Changelog
    5. First-time contributors
    6. Contributors

    Data Views get more flexible

    This release introduces several new features to Data Views. For starters, you can customize the column order in table views (63416) and adjust the density of grid views (63367).

    The Pages list views also get some love, as it now displays the author’s 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. (63309) next to the publication status.

    If you like these visual hints next to the page titles, you will love to hear that table views now support displaying combined fields (63236), enabling things like displaying page thumbnails next to the page title in future releases.

    Finally, if you really like tinkering with early features, try out the new experimental Quick Edit for Data Views (63600). To do so, remember to enable the experiment in the Gutenberg settings first!

    Consolidating design tools across blocks

    In a recurring effort to provide design tool consistency across blocks (43241), Gutenberg 18.9 brings border control support to the Gallery, Buttons (which also gets color and padding support), Heading, Paragraph, Quote (spacing support, too) blocks, Social Links, and Term Description blocks. Similarly, the Image and Search blocks get margin support.

    Improved usability in editing and applying font size presets

    Gutenberg 18.9 iterates both using and editing font presets in global styles. The Global Styles interface now allows user-friendly editing of font size presets (63057). Moreover, these font presets and color presets can now be selected on the Global Styles 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. under “Browse styles“, bringing consistency to the interface and aligning with the left sidebar Styles menu (63173).

    Changelog

    Continue reading

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

    What’s new in Gutenberg 18.8 (17 July)

    “What’s new in GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/…” posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Editor.

    Gutenberg 18.8 has been released and is available for download!

    A total of 217 PRs were merged in Gutenberg 18.8, with 10 first-time contributors! With WordPress 6.6 releasing this week, many contributors are focusing on bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes. There are still some great features and enhancements in this release, highlighted below.

    1. Group block shadow support
    2. Background image support for blocks in global styles
    3. Other notable highlights
    4. Changelog
    5. First time contributors
    6. Contributors

    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. shadow support

    A popular feature requestfeature request A feature request should generally begin the process in the ideas forum, on a mailing list, as a plugin, or brought to the attention of the core team, such as through scope meetings held for each major release. Unsolicited tickets of this variety are typically, therefore, discouraged., shadows can now be added to the Group block. (63295)

    Background image support for blocks in global styles

    The background image block support has been updated to allow images to be set in global styles (60100). This means that a background image can be set for all quote or pull quote blocks within a site or theme. Additionally, the controls for background images have been updated to use a popover (60151) so that they’re tucked away when not making changes.

    Other notable highlights

    Toolbar justification controls for Group and Content blocks

    The justification controls for the Group and Content blocks are now exposed in the block toolbar. This makes it easier to quickly update these blocks to be left or right-aligned, using a similar interface to text and button blocks. (62924)

    Color support for individual list item blocks

    Individual list items within a list block can now have different color styles to the overall list they belong to. (59892)

    Block inserter no longer behaves like a dialog box

    When opening the block inserter, it will now stay open when interacting with the editor canvas. This makes it easier to move around the document while adding blocks. (63059)

    Changelog

    View full list of changes

    Features

    • DataForm: Implement first prototype using duplicate page action. (63032)

    Enhancements

    Components

    • BaseControl: Forward ref on VisualLabel. (63169)
    • CustomSelectControlV2: Allow wrapping item hint to new line. (62848)
    • CustomSelectControlV2: Expose legacy wrapper through private APIs. (62936)
    • CustomSelectControl V2: Keep legacy arrow down behavior only for legacy wrapper. (62919)
    • CustomSelectControlV2: Collapse checkmark space when unchecked. (63229)
    • CustomSelectControlV2: Keep item checkmark top aligned. (63230)
    • DateTime: Create TimeInput component and integrate into TimePicker. (60613)
    • FontSizePicker: Use CustomSelectControl V2 legacy adapter. (63134)
    • Tabs: Add vertical indicator animation. (62879)
    • TimeInput: Add label prop. (63106)
    • TimePicker: Add dateOrder prop to sort day, month, and year. (62481)
    • ToolbarButton: Deprecate isDisabled prop and merge with disabled. (63101)
    • Tooltip Component: Add custom class name support. (63157)

    Data Views

    • Add padding around selected values in author 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.. (63212)
    • DataViews filterSortAndPaginate utility: Support sorting by number. (63187)
    • DataViews: Make view.hiddenFields optional. (62876)
    • DataViews: Remove Table Cells animation. (63079)
    • DataViews: Replace supportedLayouts prop with defaultLayouts prop instead. (63287)
    • Duplicate modal: Move to 40px components. (63246)
    • Pages: Include 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. in Author field. (63142)
    • Patterns Page: Hide preview column by default. (63213)
    • Posts list powered by DataViews. (62705)
    • Split layout / view options. Use active layout icon for the layout button. (63205)
    • Use status icons in field display. (63289)

    Block Library

    • Add example for query block and posts list. (63286)
    • ExcerptExcerpt An excerpt is the description of the blog post or page that will by default show on the blog archive page, in search results (SERPs), and on social media. With an SEO plugin, the excerpt may also be in that plugin’s metabox. block: Add example of the block. (63010)
    • Group: Add block support for shadow. (63295)
    • Login/out block: Add example of the block. (62937)
    • Post content block: Add example of the block. (62968)
    • Post title: Add example of the block. (62955)
    • Table Block: Add toolbar button to add a caption. (47984)

    Block Editor

    • Block position controls: Use V2 legacy adapter instead of V1 CustomSelectControl. (63139)
    • DateFormatPicker: Use CustomSelectControl V2 legacy adapter. (63171)
    • Fix inspector inner shadow border. (63245)
    • FontAppearanceControl: Use CustomSelectControl V2 legacy adapter. (63179)
    • Inserter: Remove the dialog behaviour. (63059)
    • SpacingInputControl: Use CustomSelectControl V2 legacy adapter. (63190)

    Global Styles

    • Background image: Move controls into a popover. (60151)
    • Block background UIUI User interface controls. (60100)
    • Tweak block background position preview height. (63225)

    Extensibility

    • DataViews: Register the deletePost action like any third-party action. (62913)
    • DataViews: Register the export pattern action like any third-party action. (63046)
    • DataViews: Register the reset template and template part action like any third-party action. (63017)

    Design Tools

    • Flex dimensions: Rename “Fill” to “Grow”. (62779)
    • List Item: Add color support. (59892)
    • Uniform Focal point labels. (62438)

    Font Library

    • Font Library Modal: Enhance pagination appearance. (63210)
    • Font Library: Store font subdirectory in post metaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress.. (63000)
    • Move font directory into uploads to match WP 6.5. (60354)

    Layout

    • Add justification to block toolbar in addition to 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.. (62924)

    Site Editor

    • Align rename modals. (62874)

    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.

    • 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.: Allow passing filename as variations field. (62092)

    Template Editor

    • Update: Move template areas into a panel. (62033)

    Block Variations

    • Automatically select group variation if there is only one available. (61871)

    Zoom Out

    • Add a vertical toolbar for zoom out mode. (60123)

    New APIs

    Block API

    • Introduce “local” attributes and use it for the image block. (63076)

    Bug Fixes

    • CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Commands: Fix Pages command link. (63235)
    • Docgen: Fix function param for const function expression. (63034)
    • Enable save draft button for posts with custom post status. (63293)
    • Ensure device previews extra scrollbar only appears when needed. (62952)
    • Styles specificity: Allow comment form input overrides. (62960)

    Components

    • CustomSelectControl V2 legacy adapter: Fix trigger button font size. (63131)
    • CustomSelectControl V2: Fix labelling with a visually hidden label. (63137)
    • CustomSelectControl V2: Fix trigger text alignment in RTL languages. (62869)
    • CustomSelectControl V2: Prevent keyboard event propagation in legacy wrapper. (62907)
    • CustomSelectControlV2: Add root element wrapper. (62803)
    • CustomSelectControlV2: Fix item styles. (62825)
    • CustomSelectControlV2: Fix popover styles. (62821)
    • CustomSelectControlV2: Fix select popover content overflow. (62844)
    • CustomSelectControlV2: Tweak item inline padding based on size. (62850)
    • Editor: Fix duplicate save panels. (62863)
    • Fix UnitControl select disabled state colors. (62970)
    • Fix extra scrollbar when a popover extends past the viewport. (62894)
    • Fix the ‘useUpdateEffect’ hook in strict mode. (62974)
    • ProgressBar: Fix indeterminate RTL support. (63129)
    • RangeControl: Fix RTL support for custom marks. (63198)
    • SelectControl: Fix disabled styles. (63266)
    • Tabs: Fix “With tab icons” Storybook example. (63297)
    • Tabs: Fix text-align when text wraps in vertical mode. (63272)
    • TimePicker: Fix time zone overflow. (63209)
    • UnitControl: Fix an issue where keyboard shortcuts unintentionally shift focus on Windows OS. (62988)

    Block Library

    • Add Aspect ratio control on Image blocks in Grids. (62891)
    • Audio Block: Do not persist blob urls and fix undo. (63257)
    • File block: Do not persist blob urls and fix undo. (63282)
    • Fix Incorrect URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org basename logic in EmbedPreview. (63052)
    • Fix: Update “Link Text” label to “Text” on Social Icons block #60966. (61715)
    • List: Maintain nested list on parent item removal. (62949)
    • Navigation: Allow themes to override block library text-decoration rule. (63406)
    • Patterns: Check for edited entity content property when exporting. (63227)
    • Reduce specificity of social link icon specific colors. (63049)
    • Refactor Post Date Relative Time Rendering for Future Dates. (62979)
    • Site Editor: Fix template parts ‘Reset’ action. (62951)
    • Video Block: Do not persist blob urls and fix undo. (63238)

    Post Editor

    • Editor: Do not truncate post excerpt if not editable. (63314)
    • Fix: Background height and padding in non-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. editor canvas. (63222)
    • Fix: Crash when onActionPerformed is used with callback actions. (63120)
    • Fix: Permanently delete post action does not calls onActionPerformed. (63121)
    • Fix: Triple scrollbars in device previews. (62940)
    • Post editor: Increase specificity of bottom padding. (63288)
    • Actions: Translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. should depend on number of items. (62857)

    Data Views

    • DataViews list layout: Fix action alignment. (62971)
    • DataViews: Restore preview focus outline in grid layout. (62991)
    • Fix buttonless table 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. alignment. (62877)
    • Fix typo in string for trashing posts. (63119)
    • Patterns: Avoid mapping template parts objects to patterns. (62927)

    Block Style Variations

    • Block supports: Ensure tools panel dropdown are visible on mobile. (62896)
    • Section Styles: Fix error when blocks are deregistered. (63252)
    • Section Styles: Prevent flash of variation styles in post editor. (63071)
    • Section Styles: Resolve ref values in variations data. (63172)

    Layout

    • Only hide drop indicator when grid has isManualPlacement set. (63226)
    • Remove dotted border from grid dropzone. (63162)
    • Resizing in Auto mode shouldn’t add columnStart and rowStart values. (63160)
    • Fix invalidinvalid A resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. css for nested fullwidth layouts with zero padding applied. (63436)

    Global Styles

    • Elements: Avoid specificity bump for top-level element-only selectors. (63403)
    • Global styles revisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision.: Ensure that user-defined variation styles CSSCSS Cascading Style Sheets. is generated. (62768)
    • Root padding styles: Include alignwide in nested has-outer-padding logic. (63207)
    • Remove letter-spacing from typography element preview. (60322)
    • Only add 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. additional CSS to global styles in block themes. (63331)

    Site Editor

    • Make SiteHub available for Pages, Patterns, and Templates in mobile viewports. (63118)
    • Patterns and templates cannot be edited from sidebar mobile view. (63002)
    • Site Editor Sidebar: Hide horizontal scrollbar when navigating. (63194)

    Synced Patterns

    • Ensure disable overrides button is active for image blocks with captions or links. (62948)
    • Fix second scrollbar when editing patterns in the post editor. (62909)
    • Pattern overrides: Fix aspect ratio not working in image with overrides. (62828)

    Block Editor

    • 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. Panel: Align text and icons horizontally to avoid clipping. (62842)
    • Zoom Out: Move the hook to the inserter component. (63315)
    • Fix error when calling the PostActions view-post callback. (63460)

    Block bindings

    • Disable post meta editing in blocks inside a 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.. (63237)
    • Image block: Ensure extenders that rely on media ids in block htmlHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. are supported by block bindings. (63013)

    Patterns

    • Fix: Restrict export pattern action to user patterns. (63228)

    Posts/Tags/Categories Screen

    • Constrain is-fullscreen-mode adminadmin (and super admin) body class to posts list. (63166)

    Inspector Controls

    • Fix button wrapping in the document Inspector. (63062)

    Design Tools

    • Duotone: Fix code typo, to ensure Duotone updates correctly in Safari. (62953)

    Commands

    • Fix issue of HTML entities rendering in command menu. (62606)

    Typography

    • Use available font weights and styles in FontAppearanceControl. (61915)
    • Font Appearance Control: Refactor font appearance fallbacks. (63215)

    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)

    • Allow Escape key to move focus to editor region when in select mode. (62196)
    • Focus Editor Region from Template Footer Click. (62595)

    Components

    • Button: Stabilize __experimentalIsFocusable prop. (62282)
    • Fix inaccessible disabled Buttons. (62306)
    • Make Tabs have a fluid height. (62027)
    • ToolbarButton: Always keep focusable when disabled. (63102)

    Global Styles

    • Fix unlabeled Remove shadow buttons. (63197)

    Block Library

    • Make usage of the settings icon more consistent. (63020)

    Data Views

    • Add translation context for ‘view options’ label. (63031)
    • Fix filter chip contrast. (62865)

    Media

    • Update URLPopover role and focus return. (61313)

    Performance

    • Core data: Batch receiveUserPermission. (63201)
    • Perf tests: Make pages test compatible with base branchbranch A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch".. (63204)

    Block hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.

    • Optimize selectors in the control component. (63141)

    Experiments

    Layout

    • Allow inserting blocks directly in empty grid cells. (63108)
    • Use manualPlacement attribute to set manual grid mode and allow responsive behaviour in both modes. (62777)

    Documentation

    • Add note about postcss-urlrebase package patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing.. (63015)
    • Add RichText formatting example to the Editor curation documentation. (63065)
    • Block supports: Add documentation for ‘splitting’. (63016)
    • Fix typo to be preposition, not verb, in some package comments and documentations. (62945)
    • Fix urls to developer documentation. (63104)
    • Interactivity API: Fix minor typos in code snippets. (62890), (63234)
    • Interactivity API: Fix variable name in color directive example. (62912)
    • Interactivity API: Include references to more examples from the documentation. (63025)
    • Interactivity API: Recommend kebab-case in data-wp-class. (62817)
    • Remove link to polyfill.io. (62883)
    • Storybook: Fix links for block editor examples. (63132)
    • ToolbarButton: Fix documentation for accessibleWhenDisabled. (63140)
    • Update ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. dev docs rule hook URL. (62995)

    Code Quality

    • Add linguist-documentation attribute to docs/ directory. (62651)
    • Conditionally call focus with getEditorRegion. (62980)
    • Core Data: Remove entity configuration ‘__experimentalNoFetch’ flag checks. (63303)
    • Dependencies: Upgrades and deduplication. (62657)
    • Format Library: Clean up ‘Highlight’ format components. (62965)
    • Remove postcss-local-keyframes from dependencies. (63224)
    • Upgrade postcss-urlrebase package. (63075)

    Data Views

    • DataViews: Fix double check in isTemplateRemovable. (63021)
    • DataViews: Remove the AnyItem type. (62856)
    • DataViews: Removing mapping of user patterns to temporary object. (63042)
    • DataViews: Replace hiddenFields configuration with fields property instead. (63127)
    • DataViews: Simplify selection setting. (62846)

    Block Editor

    • Remove CSS hack for Internet Explorer 11. (63220)
    • Remove duplicate translator comment. (62860)

    Components

    • Allow ariakit and framer motion imports in the components package. (63123)
    • Normalize focusable disabled ToolbarButton usage. (63130)
    • Sidebar: Add a shared component for the inserter and list view. (62343)
    • Tabs: Split animation logic into multiple separate composable utilities. (62942)

    Global Styles

    • Global Styles: Allow variations to be filtered by multiple properties. (62847)
    • Global Styles: Simplify code to fetch color and typography variation. (62827)
    • Make a shared component for typography and color preview. (62829)
    • Section Styles: Clean up block style variation filters. (62858)

    Block Library

    • Gallery Block: Clean up v1 code. (63285)

    Site Editor

    • Clean up unused Table component. (63283)

    Rich Text

    • Raw handling: Remove IE11 fallback code. (63219)

    Zoom Out

    • Replace deprecated selector. (63144)

    Block bindings

    • Add comment about useSelect usage in withBlockBindingSupport. (63005)

    HTML API

    • Compat: Update HTML API with changes from 6.6. (63089)

    Tools

    • Dependency extraction: Map to regenerator-runtime instead of wp-polyfill. (63091)
    • Env: Remove version field from docker-compose configuration. (63099)
    • 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: Add method-signature-style TypeScript lint rule. (62718)
    • Scripts: Ensure that typescript-eslint checks for unused vars. (62925)
    • Update new release issue template to remove core editor chat item. (62864)

    Testing

    • Automatically sync backportbackport A port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch. changelog to issue. (62973)
    • Block styles variations E2E: Wait for Save button before editing global styles. (62915)
    • Cherry pick automation: Fix for forks. (62900)
    • Cherry pick workflow: Improve message after 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.. (62826)
    • DataViews: Add performance test for pages. (63170)
    • Fix typo in column block fixture file. (63007)
    • Performance tests: Fix for 6.5. (62871)
    • Performance tests: Restore 6.5-compatible locator. (63041)
    • Re-enable image block cropping test (#62781). (62854)
    • Update method for changing the content in ‘editor-modes’ end-to-end test. (62957)
    • Update the project-management-automationaction to use Node.js 20. (62851)
    • Upgrade web-vitals package. (63019)

    Plugin

    • Add local version of wp-env schema to .wp-env.json. (63253)

    Build Tooling

    • Build: Enable TypeScript skipDefaultLibCheck. (63056)

    First time contributors

    The following PRs were merged by first-time contributors:

    • @airman5573: Fix variable name in color directive example for Interactivity API. (62912)
    • @aliaghdam: Tooltip Component: Add custom class name support. (63157)
    • @bogiii: DateTime: Create TimeInput component and integrate into TimePicker. (60613)
    • @Chrico: Scripts: Ensure that typescript-eslint checks for unused vars. (62925)
    • @dhananjaykuber: Fix Incorrect URL basename logic in EmbedPreview. (63052)
    • @iamibrahimriaz: Update iapi-about.md. (63234)
    • @iworks: Translation should depend on number of items. (62857)
    • @roygbyte: Fix typo to be preposition, not verb, in some package comments and documentations. (62945)
    • @shreya0204: Add justification to block toolbar in addition to sidebar. (62924)
    • @sejas: Fix: Error when calling the PostActions view-post callback. (63460)

    Contributors

    The following contributors merged PRs in this release:

    @aaronrobertshaw @afercia @airman5573 @akasunil @aliaghdam @amitraj2203 @bogiii @carolinan @Chrico @ciampo @costasovo @creativecoder @DaniGuardiola @desrosj @dhananjaykuber @dmsnell @ellatrix @fluiddot @geriux @hbhalodia @iamibrahimriaz @iworks @jameskoster @jasmussen @jeryj @jffng @jorgefilipecosta @jsnajdr @juanmaguitar @kevin940726 @luisherranz @MaggieCabrera @Mamaduka @matiasbenedetto @michalczaplinski @mikachan @mirka @ndiego @ntsekouras @oandregal @ockham @peterwilsoncc @ramonjd @richtabor @roygbyte @SantosGuillamot @scruffian @shail-mehta @shreya0204 @sirreal @stokesman @swissspidy @t-hamano @talldan @tellthemachines @tyxla @vipul0425 @westonruter @youknowriad

    Props to @aaronrobertshaw, @annezazu, and @priethor for their support with this post, and @joen for the visual assets!

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

    What’s new in Gutenberg 18.7? (03 July)

    “What’s new in GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/…” posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Editor.

    Gutenberg 18.7 has been released and is available for download!

    A total of 115 PRs were merged in Gutenberg 18.7, with 7 first-time contributors! With WordPress 6.6 rapidly approaching, many contributors are focusing on bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes. However, this release still includes some great features and enhancements, including the manual mode for the grid interactivity experiment!

    1. Drag and drop grid items in manual mode
    2. Content panel for template parts
    3. Other Notable Highlights
    4. Changelog

    Drag and drop grid items in manual mode

    In order to allow more precise manipulation of the grid, all grid items are now fixed in place when using manual mode. Grid items can then be moved around with drag and drop, with the blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. movers (in any direction), or by changing the values of column and row in the Dimensions 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 new feature is a part of Grid interactivity and is available behind an experimental flag. (#61025)

    Content panel for template parts

    Template parts now show the content panel in the editor settings. (#62034)

    Other Notable Highlights

    Text orientation controls have been added to more blocks (site-title, site-tagline, verse, and button block.) (#62727)

    The sticky toggle for posts can be found in its new home, the “Status and visibility” popover. (#62782)

    The document bar is now displayed when viewing the Style book and Style revisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision. (#62669)

    Changelog

    Enhancements

    • Add: Content panel for template parts. (62034)
    • Move Sticky toggle to status popover. (62782)
    • Rename yieldToMain to splitTask and export from wordpress/interactivity. (62665)
    • Update: Check assignable properties on the duplicate action. (62590)
    • Update: Followups to the template and template_lock 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/. addition. (62696)
    • Update: Reverse 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. changes on post type REST API changes. (62751)
    • Align naming modals. (62788)
    • Add writing mode support to other blocks. (62727)
    • Display the DocumentBar for Style Book and Style Revisions. (62669)
    • fetchLinkSuggestions: Allow for partial matching. (62570)
    • DataViews: Support passing the registry to actions callbacks. (62505)
    • Add tooltip on hover of color and typography presets. (62201)
    • Revert change that removes the social link block when pressing backspace in the URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org Popover. (61344)

    Bug Fixes

    • Add context in post actions 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.. (62443)
    • Add html to reset styles for the .editor-styles-wrapper container. (62350)
    • Cherry pick script: Make authenticated requests. (62473)
    • Editor: Fix blocked Post Publish Panel buttons on mobile. (62736)
    • Fix cherry-pick script, add missing –repo arg. (62643)
    • Fix rawHandling, pasteHandling for mixed content with blocks and classic. (62545)
    • Fix: Active template is not highlighted properly in list view. (62811)
    • Fix: Check Capability to create pages on DataViews add new page button. (62592)
    • Fix: Check ability to create patterns on the add new pattern modal. (62633)
    • Fix: Check create capability on duplicate post action. (62620)
    • Fix: Check permissions on duplicate pattern and template part actions. (62757)
    • Fix: Comments and Pingbacks get cleared out when a pattern is edited. (62507)
    • Fix: DataViews: Active page is not highlighted properly in list view. (62378)
    • Fix: Include permission management on permanently delete, rename, and restore. (62754)
    • Fix: List view renders an empty menu when no actions are eligible. (62786)
    • Fix: Post_type template is not used when creating a page in site editor. (62488)
    • Fix: Resetting template part causes notification saying it’s been delete. (62521)
    • Fix: The trashTrash Trash in WordPress is like the Recycle Bin on your PC or Trash in your Macintosh computer. Users with the proper permission level (administrators and editors) have the ability to delete a post, page, and/or comments. When you delete the item, it is moved to the trash folder where it will remain for 30 days. post action doesn’t take into account user capabilities. (62589)
    • Inspector: Improve handling of long words in post titles. (62691)
    • Revert “Revert test data for WithSlug variation (#62579)”. (62587)
    • Show publish panel only in edit mode. (62813)
    • Site Editor: Improve the frame animation. (62676)
    • DataViews: Remove selection correcting, set initial state. (62796)
    • Pattern overrides: Disallow override for image with caption/href. (62747)
    • Editor: Make VisualEditor a stacking context. (62681)
    • Fix toggle active font logic. (62614)
    • Save Panel: Remove connections icon and fix padding. (62542)
    • Editor: Render editPost slots only in the post editor (same for site editor). (62531)
    • Fix: Don’t allow synced patterns to be inserted on shuffling. (62422)
    • Fix ExcerptPanel decode issue. (62336)

    Block Library

    • Add letter spacing inheritance for the navigation block. (62745)
    • Caption utility component: Allow the main CSSCSS Cascading Style Sheets. Class Name to be excluded from the markup. (62485)
    • Fix: Empty style attribute issue in navigation block. (62600)
    • Image Block: Fix Aspect Ratio button position. (62776)
    • Media & text: Update the image replacement logic. (62030)
    • Post Date Block: Fix PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher warning error. (62783)
    • Template Part: Improve how the 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 attribute is handled. (62785)
    • fix: Update block categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. to design and build documentation. (61905)

    Global Styles

    • Allow children of alignfull flow layouts to have root padding. (62670)
    • Prevent duplicate block style variations CSS. (62465)
    • Remove obsolete hook resolving shared block style variations. (62808)
    • Section Styles: Switch away from using init for variation registration. (62640)
    • Skip registration of variation styles when unsupported. (62529)
    • Styles: Lower specificity of figcaption style to allow 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. override. (62689)

    Components

    • CustomSelectControl V2: Fix setting initial value and reacting to external controlled updates. (62733)
    • CustomSelectControlV2: Handle long strings in selected value. (62198)

    Block Editor

    • Raw handling: Fix too aggressive indented list removal. (62622)
    • Writing flow: Split heading into default block. (61891)

    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 custom color palette. (62753)
    • Fix lock modal dialog accessibility and semantics. (62795)
    • Image block: Fix focus style not around whole image when linked. (62556)
    • Pages data view: Update view icons. (62136)
    • Make the fonts management modal dialog more discoverable. (62129)

    Performance

    • Improve performance of compute_style_properties method. (62522)
    • Run block variation hook only for matches. (62617)
    • Section Styles: Improve performance and conceptual consistency. (62712)

    Experiments

    • Grid interactivity: Allow blocks to be positioned in manual mode using drag and drop. (61025)

    Documentation

    • Add VisualEditorGlobalKeyboardShortcuts documentation. (62710)
    • Add changelog entry for splitTask export from wordpress/interactivity. (62805)
    • Add documentation for PostSlug and PostSlugCheck component. (62102)
    • Adds comment on blocks resource referencing wp_block post type. (62722)
    • Changelogs: Standardize sections. (58268)
    • Correct documentation for WP_Block_Parser_Frame class. (62598)
    • Create Block: Add missing changelog entries. (62791)
    • Docs/iAPI: Fix wrong code snippet in data-wp-run example. (62835)
    • Docs/iapi warnings new directives wp 6 6. (62789)
    • Fix async directives API documentation. (62759)
    • Fix: Remove inexistent link from the documentation. (62624)
    • Interactivity API docs: Add wp-async directives doc. (62663)
    • Query LoopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. block: Clarify explanation around query loop variation example. (62605)
    • Small Typo correction in block-library.md file. (62765)
    • Update link to API section in block-editor README.md. (62671)
    • Update old links in wordpress/babel-preset-default. (62616)
    • Updates the reference links in wordpress/compose documentation. (62593)
    • [Developer Documentation] fix link URL. (62725)

    Code Quality

    • Autoformat changelogs. (62650)
    • Autoformat e2e-tests package 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/.. (62572)
    • Edit site: Do not autoformat edit-site/lib. (62573)
    • Move dep to dev deps. (62673)
    • Rename readme file with uppercase extension. (62697)
    • Site Editor: Don’t render empty body tag. (62769)
    • Change grid-visualizer folder name to grid. (62810)
    • Add lib-font credits and license in source code. (60973)

    Components

    • Remove Framer Motion from DropZone. (62044)
    • CustomSelectControlV2: Fix handling of extra attributes passed to options in the legacy adapter. (62255)

    Tools

    • Dependencies: Upgrade @octokit/webhooks. (62666)
    • Rename the wp-env schema to not be a dotfile. (62634)
    • env: Ignore \$schema key in environment configuration parsing. (62626)

    Testing

    • Add end-to-end test to ensure block bindings work well with symbols and numbers. (62410)
    • CustomSelectControl: Align v1 and legacy v2 unit tests. (62706)
    • Fix end-to-end tests in dev mode. (62642)
    • Improve maintainability of theme json class tests. (62463)
    • Release automation: Try cherry-picking automation. (62716)
    • Remove changelog checks for branches other than 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.. (62645)
    • Skip failing image block test. (62781)
    • Skip test: Create a new page, edit template and toggle page template preview. (62799)
    • Tests: Simplify test set up in WP_Block_Supports_Block_Style_Variations_Test. (62637)
    • Theme JSON resolver: Read theme.json files from the styles/ folder only once. (62638)

    Build Tooling

    • Generic name for previous version of WP tests. (62853)
    • GithubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ PHP changes workflow: Remove it. (62609)

    Various

    • Update Private API opt-in string for WP 6.6. (62635)
    • Update caniuse-lite dependency to latest version. (62611)

    First-time contributors

    The following PRs were merged by first-time contributors:

    Contributors

    The following contributors merged PRs in this release:

    @aaronrobertshaw @aatanasovdev @afercia @ajlende @akasunil @amitraj2203 @artemiomorales @carolinan @cbravobernal @ciampo @creativecoder @DaniGuardiola @dilipbheda @ellatrix @fullofcaffeine @geriux @graylaurenm @gziolo @itzmekhokan @ivan-ottinger @jameskoster @jorgefilipecosta @juanmaguitar @kevin940726 @luisherranz @MaggieCabrera @matiasbenedetto @michakrapp @mirka @noisysocks @ntsekouras @oandregal @peterwilsoncc @ramonjd @sabernhardt @SantosGuillamot @saulyz @shail-mehta @sirreal @snehapatil2001 @spacedmonkey @stokesman @t-hamano @talldan @tellthemachines @up1512001 @vcanales @vipul0425 @westonruter @youknowriad

    Props to @joen for the visual assets, @andrewserong, @talldanwp, @ramonopoly, and @aaronrobertshaw for help drafting and proofreading this post, @bernhard-reiter, @priethor, @youknowriad, @mikachan, @andrewserong, and @ramonopoly for debugging and fixing the release workflow.

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

    Section Styles

    In WordPress 6.6, Section Styles simplify the process of styling individual sections of a webpage by offering users a one-click application of curated styles, eliminating the need for repetitive manual configuration.

    Table of Contents

    1. What’s Changed?
    2. Usage
      1. Registration of Block Style Variations
      2. Defining Block Style Variations
        1. Theme.json Partial Files
        2. Programmatically
        3. Via Theme Style Variations (Not Recommended)
    3. Backwards Compatibility
    4. Limitations
    5. What’s Next?
    6. Useful Links

    What’s Changed?

    Section-based styling has been enabled by extending the existing Block Styles feature (aka blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. style variations) to support styling inner elements and blocks. These enhanced block style variations can even be applied in a nested fashion due to uniform CSS specificity (0-1-0) for Global Styles introduced in WP 6.6.

    In addition block style variations can now be:

    • registered across multiple block types at the same time
    • defined via multiple methods; primarily through 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. partials, or by passing a theme.json shaped object in the style’s data given to existing block style registration functions
    • customized via Global Styles (see also current limitations)

    Usage

    Registration of Block Style Variations

    The block style variations that can be defined and manipulated through Global Styles are limited to those that have been registered with the WP_Block_Styles_Registry or via a block type’s styles property, such as Outline for the Button block. If a block style variation has not been registered, any theme.json or global styles data for it will be stripped out.

    Any unregistered block style variation defined within a theme.json partial with be automatically registered.

    Outlined below are three approaches to registering extended block style variations. The approaches leveraging theme.json definitions will automatically register the block style variation with the WP_Block_Styles_Registry.

    Defining Block Style Variations

    Outlined below are recommended approaches to registering extended block style variations.

    Theme.json Partial Files

    With the extension of block style variations to support inner element and block type styles, they essentially are their own theme.json file much like theme style variations. As such, block style variations also reside under a theme’s /styles directory. They are differentiated from theme style variations however by the introduction of a new top-level property called blockTypes. The blockTypes property is an array of block types the block style variation can be applied to.

    A new slug property was also added to provide consistency between the different sources that may define block style variations and to decouple the slug from the translatable title property.

    {
    	"$schema": "https://schemas.wp.org/trunk/theme.json",
    	"version": 3,
    	"title": "Variation A",
    	"slug": "variation-a",
    	"blockTypes": [ "core/group", "core/columns", "core/media-text" ],
    	"styles": {
    		"color": {
    			"background": "#eed8d3",
    			"text": "#201819"
    		},
    		"elements": {
    			"heading": {
    				"color": {
    					"text": "#201819"
    				}
    			}
    		},
    		"blocks": {
    			"core/group": {
    				"color": {
    					"background": "#825f58",
    					"text": "#eed8d3"
    				},
    				"elements": {
    					"heading": {
    						"color": {
    							"text": "#eed8d3"
    						}
    					}
    				}
    			}
    		}
    	}
    }
    

    Programmatically

    Within a theme’s functions.php or a 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, a call can be made to register_block_style, passing it an array of block types the variation can be used with as well as a theme.json shaped style object defining the variation’s styles. The style object provided here will be absorbed into the theme’s theme.json data.

    register_block_style(
    	array( 'core/group', 'core/columns' ),
    	array(
    		'name'       => 'green',
    		'label'      => __( 'Green' ),
    		'style_data' => array(
    			'color'    => array(
    				'background' => '#4f6f52',
    				'text'       => '#d2e3c8',
    			),
    			'blocks'   => array(
    				'core/group' => array(
    					'color' => array(
    						'background' => '#739072',
    						'text'       => '#e3eedd',
    					),
    				),
    			),
    			'elements' => array(
    				'link'   => array(
    					'color'  => array(
    						'text' => '#ead196',
    					),
    					':hover' => array(
    						'color' => array(
    							'text' => '#ebd9b4',
    						),
    					),
    				),
    			),
    		),
    	)
    )
    

    This approach has been enabled as a temporary means to facilitate ergonomic definitions of shared block style variations through theme style variations. It is being flagged here for transparency however it will likely be deprecated soon as the Global Styles architecture is updated to address growing complexity and simplify its mental model.

    More details on what’s ahead for Global Styles can be found in this issue.

    Shared block style variations can be defined via styles.variations. Style data defined under styles.variations will be copied to, and merged with, variation data stored at the block type level for all block types that have a matching variation registered for it.

    Additionally, a new translatable title property has been added here to mirror the capabilities of the theme.json partial files outlined above.

    The key for the variation correlates to the slug property for theme.json partials. In the example below, this would be variation-a.

    {
    	"$schema": "https://schemas.wp.org/trunk/theme.json",
    	"version": 3,
    	"title": "Theme Style Variation",
    	"styles": {
    		"variations": {
    			"variation-a": {
    				"color": {
    					"background": "#eed8d3",
    					"text": "#201819"
    				},
    				"elements": {
    					"heading": {
    						"color": {
    							"text": "#201819"
    						}
    					},
    				},
    				"blocks": {
    					"core/group": {
    						"color": {
    							"background": "#825f58",
    							"text": "#eed8d3"
    						},
    						"elements": {
    							"heading": {
    								"color": {
    									"text": "#eed8d3"
    								}
    							}
    						}
    					}
    				}
    			},
    		}
    	}
    }
    

    Backwards Compatibility

    As the Section Styles feature was implemented via extensions to block style variations rather than as a replacement, existing block style variations will continue to work as before.

    Limitations

    The following limitations for block style variations in WordPress 6.6 should be noted:

    1. Only root styles, i.e. those that apply directly to the block type the block style variation belongs to, can be configured via Global Styles.
    2. Block style variations cannot redefine or customize inner block style variations.
    3. Block style variations do not support their own custom settings values (yet).
    4. Custom block style variations cannot be applied and previewed within the Style Book.

    What’s Next?

    The Global Styles UIUI User interface for block style variations will be updated to facilitate the customization of all available styles for inner elements and block types. This includes potentially enhancing the Style Book to support block style variations.

    Another future enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. is the possible support for settings per block style variations.

    Props to @bph, @oandregal and @juanmaguitar for review

    #6-6, #core-editor, #dev-note, #dev-notes, #dev-notes-6-6, #gutenberg

    WordPress 6.6 CSS Specificity

    One of the goals of WordPress 6.6 is to simplify the process for theme authors to override coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. styles while also maintaining support for Global Styles.

    Historically, high CSSCSS Cascading Style Sheets. specificity in core styles has made customization challenging and unpredictable, often requiring complex CSS rules to achieve desired outcomes. Development of the new section styles feature also highlighted a need for uniform CSS specificity to support nesting such styles, facilitating the creation of sophisticated, layered designs.

    Uniform 0-1-0 Specificity

    WordPress 6.6 introduces several changes aimed at broadly reducing CSS specificity and making it more uniform. These changes generally fall into two categories:

    1. Core 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. Styles
    2. 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. / Global Styles:

    Where adjustments to CSS specificity were required, they were achieved by wra