Skip to content

Column block: Migrate width to dimensions block support - #76684

Open
aaronrobertshaw wants to merge 12 commits into
trunkfrom
aaronrobertshaw/column-width-support
Open

aaronrobertshaw wants to merge 12 commits into
trunkfrom
aaronrobertshaw/column-width-support

Conversation

@aaronrobertshaw

@aaronrobertshaw aaronrobertshaw commented Mar 19, 2026 •

Copy link
Copy Markdown
Contributor

What?

See #76525

Migrate the column block's custom width attribute to use the dimensions.width block support.

Why?

The column block manages its own width attribute and a bespoke inspector control, separate from the rest of the design tooling. Moving to the block support lines it up with everything else, makes column width available in theme.json and Global Styles, and drops the custom UI.

How?

  • Column width moves from the block's own width attribute to the dimensions.width block support, and the custom width panel goes with it. settings.blocks.core/column.dimensions.width is enabled in lib/theme.json, without which the dimensions panel never shows the control.
  • Existing content migrates on parse. Two deprecations cover the string width and the older numeric one.
  • A column sits in a flex container, so its width has to be applied as flex-basis rather than width. Serialization is skipped for the support, and the conversion happens in one place per language, in lib/block-supports/dimensions.php and in the global styles engine. theme.json, style variations, breakpoints and per-block states all run through it.
  • Adds column width presets, including Fill. A column set to Fill takes the remaining space in its row, which is how one column opts out of a width set for every column. Adding presets turns the Width control into a preset control rather than a plain input.
  • The default flex sizing and the mobile stacking rule in columns/style.scss drop to :root :where(), so a width from Global Styles or a viewport state can win on source order.
  • Fixes getDimensionPresetCssVar, which built the custom property from the raw slug. A preset like wideColumn pointed at a property that was never declared.
  • Fixes the Columns to Row and Columns to Grid transforms, which dropped the width and leaked it onto the group they create.
  • Updates the column width utilities, variations, transforms and the Comments block inner blocks template for the new location.

Screenshots

The Width control, now showing presets.

A row of fixed, fill, fixed. Only the middle column grows.

Testing Instructions

Existing content

  1. On trunk, add a Columns block and set some widths (33/66, 25/50/25, a px value). Publish.
  2. Switch to this branch and rebuild.
  3. View the post on the front end. It should look the same as it did on trunk.
  4. Open it in the editor. No validation errors, widths intact.
  5. Save, then check the markup. The width should now be under style.dimensions.width.
  6. Reload the editor. Still no validation errors.

Setting a width

  1. Add a new Columns block and try the width presets (50/50, 33/66, 25/50/25). Check the editor and the front end.
  2. Select a column and pick a preset. Confirm flex-basis is applied, not width.
  3. Use the toggle beside the Width control to enter a custom value. Try %, px and em.
  4. Add and remove columns. The widths should recalculate.

Fill

  1. In three columns, give the first and third a px width and set the second to Fill. Only the second should grow.
  2. In a block theme, set styles.blocks.core/column.dimensions.width to 25%. Columns without their own width should take it rather than stretching, and a width set on one column should still win.
  3. With that still set, set a column to Fill. It should ignore the global width and take the remaining space.

Responsive

  1. Turn on Responsive styles, switch to Mobile and set a width on one column. It should save under style['@mobile'].dimensions.width.
  2. View the post below 782px. That column should take its mobile width instead of stacking, and a column without one should still stack.

Transforms

  1. Transform a Columns block with uneven widths to a Row. The widths should carry across, and come back when you transform to Columns again.
  2. Transform a Columns block to a Grid. The groups should not pick up a stray width.
  3. Transform a Media & Text block to Columns. The split should be preserved.

@aaronrobertshaw aaronrobertshaw self-assigned this Mar 19, 2026
@aaronrobertshaw aaronrobertshaw added [Type] Enhancement A suggestion for improvement. [Block] Columns Affects the Columns Block [Feature] Design Tools Tools that impact the appearance of blocks both to expand the number of tools and improve the experi labels Mar 19, 2026
@github-actions github-actions Bot added the [Package] Block library /packages/block-library label Mar 19, 2026
@github-actions

Copy link
Copy Markdown

Size Change: +322 B (0%)

Total Size: 7.66 MB

Filename Size Change
build/modules/lazy-editor/index.min.js 13.8 kB +83 B (+0.61%)
build/scripts/block-editor/index.min.js 330 kB +85 B (+0.03%)
build/scripts/block-library/index.min.js 317 kB -29 B (-0.01%)
build/scripts/edit-site/index.min.js 252 kB +105 B (+0.04%)
build/scripts/editor/index.min.js 356 kB +78 B (+0.02%)
ℹ️ View Unchanged
Filename Size
build/modules/a11y/index.min.js 355 B
build/modules/abilities/index.min.js 42.3 kB
build/modules/block-editor/utils/fit-text-frontend.min.js 617 B
build/modules/block-library/accordion/view.min.js 595 B
build/modules/block-library/file/view.min.js 346 B
build/modules/block-library/form/view.min.js 528 B
build/modules/block-library/image/view.min.js 2.64 kB
build/modules/block-library/navigation/view.min.js 1.14 kB
build/modules/block-library/playlist/view.min.js 10.9 kB
build/modules/block-library/query/view.min.js 518 B
build/modules/block-library/search/view.min.js 498 B
build/modules/block-library/tabs/view.min.js 946 B
build/modules/boot/index.min.js 16.9 kB
build/modules/connectors/index.min.js 2.05 kB
build/modules/core-abilities/index.min.js 892 B
build/modules/edit-site-init/index.min.js 1.4 kB
build/modules/interactivity-router/full-page.min.js 451 B
build/modules/interactivity-router/index.min.js 11.6 kB
build/modules/interactivity/index.min.js 15.1 kB
build/modules/latex-to-mathml/index.min.js 56.5 kB
build/modules/latex-to-mathml/loader.min.js 131 B
build/modules/route/index.min.js 25.2 kB
build/modules/vips/loader.min.js 127 B
build/modules/vips/worker.min.js 4.56 MB
build/modules/workflow/index.min.js 19.9 kB
build/scripts/a11y/index.min.js 1.06 kB
build/scripts/annotations/index.min.js 2.39 kB
build/scripts/api-fetch/index.min.js 2.83 kB
build/scripts/autop/index.min.js 2.18 kB
build/scripts/base-styles/index.min.js 98 B
build/scripts/blob/index.min.js 631 B
build/scripts/block-directory/index.min.js 8.03 kB
build/scripts/block-serialization-default-parser/index.min.js 1.16 kB
build/scripts/block-serialization-spec-parser/index.min.js 3.08 kB
build/scripts/blocks/index.min.js 56.8 kB
build/scripts/commands/index.min.js 20.2 kB
build/scripts/components/index.min.js 265 kB
build/scripts/compose/index.min.js 11.1 kB
build/scripts/core-commands/index.min.js 4.31 kB
build/scripts/core-data/index.min.js 30.3 kB
build/scripts/customize-widgets/index.min.js 12.3 kB
build/scripts/data-controls/index.min.js 795 B
build/scripts/data/index.min.js 9.65 kB
build/scripts/date/index.min.js 23.6 kB
build/scripts/deprecated/index.min.js 756 B
build/scripts/dom-ready/index.min.js 476 B
build/scripts/dom/index.min.js 5 kB
build/scripts/edit-post/index.min.js 16.4 kB
build/scripts/edit-widgets/index.min.js 19.9 kB
build/scripts/element/index.min.js 5.2 kB
build/scripts/escape-html/index.min.js 587 B
build/scripts/format-library/index.min.js 10.7 kB
build/scripts/hooks/index.min.js 1.83 kB
build/scripts/html-entities/index.min.js 494 B
build/scripts/i18n/index.min.js 2.46 kB
build/scripts/is-shallow-equal/index.min.js 572 B
build/scripts/keyboard-shortcuts/index.min.js 1.57 kB
build/scripts/keycodes/index.min.js 1.56 kB
build/scripts/list-reusable-blocks/index.min.js 2.44 kB
build/scripts/media-utils/index.min.js 77.3 kB
build/scripts/notices/index.min.js 1.9 kB
build/scripts/nux/index.min.js 1.89 kB
build/scripts/patterns/index.min.js 7.98 kB
build/scripts/plugins/index.min.js 2.15 kB
build/scripts/preferences-persistence/index.min.js 2.15 kB
build/scripts/preferences/index.min.js 3.3 kB
build/scripts/primitives/index.min.js 1.01 kB
build/scripts/priority-queue/index.min.js 1.62 kB
build/scripts/private-apis/index.min.js 1.1 kB
build/scripts/react-i18n/index.min.js 833 B
build/scripts/redux-routine/index.min.js 3.37 kB
build/scripts/reusable-blocks/index.min.js 3.1 kB
build/scripts/rich-text/index.min.js 14 kB
build/scripts/router/index.min.js 5.96 kB
build/scripts/server-side-render/index.min.js 1.91 kB
build/scripts/shortcode/index.min.js 1.59 kB
build/scripts/style-engine/index.min.js 2.36 kB
build/scripts/sync/index.min.js 37.8 kB
build/scripts/theme/index.min.js 22 kB
build/scripts/token-list/index.min.js 739 B
build/scripts/undo-manager/index.min.js 918 B
build/scripts/upload-media/index.min.js 7.88 kB
build/scripts/url/index.min.js 3.98 kB
build/scripts/vendors/react-dom.min.js 43.2 kB
build/scripts/vendors/react-jsx-runtime.min.js 667 B
build/scripts/vendors/react.min.js 2.77 kB
build/scripts/viewport/index.min.js 1.21 kB
build/scripts/warning/index.min.js 454 B
build/scripts/widgets/index.min.js 7.8 kB
build/scripts/wordcount/index.min.js 1.04 kB
build/styles/base-styles/admin-schemes-rtl.css 1.71 kB
build/styles/base-styles/admin-schemes-rtl.min.css 775 B
build/styles/base-styles/admin-schemes.css 1.71 kB
build/styles/base-styles/admin-schemes.min.css 775 B
build/styles/block-directory/style-rtl.css 1.96 kB
build/styles/block-directory/style-rtl.min.css 1.05 kB
build/styles/block-directory/style.css 1.97 kB
build/styles/block-directory/style.min.css 1.05 kB
build/styles/block-editor/content-rtl.css 5.44 kB
build/styles/block-editor/content-rtl.min.css 4.02 kB
build/styles/block-editor/content.css 5.45 kB
build/styles/block-editor/content.min.css 4.01 kB
build/styles/block-editor/default-editor-styles-rtl.css 697 B
build/styles/block-editor/default-editor-styles-rtl.min.css 224 B
build/styles/block-editor/default-editor-styles.css 697 B
build/styles/block-editor/default-editor-styles.min.css 224 B
build/styles/block-editor/style-rtl.css 18.4 kB
build/styles/block-editor/style-rtl.min.css 15.8 kB
build/styles/block-editor/style.css 18.4 kB
build/styles/block-editor/style.min.css 15.7 kB
build/styles/block-library/accordion-heading/style-rtl.css 346 B
build/styles/block-library/accordion-heading/style-rtl.min.css 325 B
build/styles/block-library/accordion-heading/style.css 346 B
build/styles/block-library/accordion-heading/style.min.css 325 B
build/styles/block-library/accordion-item/style-rtl.css 239 B
build/styles/block-library/accordion-item/style-rtl.min.css 180 B
build/styles/block-library/accordion-item/style.css 238 B
build/styles/block-library/accordion-item/style.min.css 180 B
build/styles/block-library/accordion-panel/style-rtl.css 110 B
build/styles/block-library/accordion-panel/style-rtl.min.css 99 B
build/styles/block-library/accordion-panel/style.css 110 B
build/styles/block-library/accordion-panel/style.min.css 99 B
build/styles/block-library/accordion/style-rtl.css 69 B
build/styles/block-library/accordion/style-rtl.min.css 62 B
build/styles/block-library/accordion/style.css 69 B
build/styles/block-library/accordion/style.min.css 62 B
build/styles/block-library/archives/style-rtl.css 101 B
build/styles/block-library/archives/style-rtl.min.css 90 B
build/styles/block-library/archives/style.css 101 B
build/styles/block-library/archives/style.min.css 90 B
build/styles/block-library/audio/editor-rtl.css 166 B
build/styles/block-library/audio/editor-rtl.min.css 149 B
build/styles/block-library/audio/editor.css 166 B
build/styles/block-library/audio/editor.min.css 151 B
build/styles/block-library/audio/style-rtl.css 945 B
build/styles/block-library/audio/style-rtl.min.css 132 B
build/styles/block-library/audio/style.css 945 B
build/styles/block-library/audio/style.min.css 132 B
build/styles/block-library/audio/theme-rtl.css 967 B
build/styles/block-library/audio/theme-rtl.min.css 134 B
build/styles/block-library/audio/theme.css 967 B
build/styles/block-library/audio/theme.min.css 134 B
build/styles/block-library/avatar/editor-rtl.css 127 B
build/styles/block-library/avatar/editor-rtl.min.css 115 B
build/styles/block-library/avatar/editor.css 127 B
build/styles/block-library/avatar/editor.min.css 115 B
build/styles/block-library/avatar/style-rtl.css 117 B
build/styles/block-library/avatar/style-rtl.min.css 104 B
build/styles/block-library/avatar/style.css 117 B
build/styles/block-library/avatar/style.min.css 104 B
build/styles/block-library/breadcrumbs/style-rtl.css 233 B
build/styles/block-library/breadcrumbs/style-rtl.min.css 203 B
build/styles/block-library/breadcrumbs/style.css 233 B
build/styles/block-library/breadcrumbs/style.min.css 203 B
build/styles/block-library/button/editor-rtl.css 306 B
build/styles/block-library/button/editor-rtl.min.css 265 B
build/styles/block-library/button/editor.css 317 B
build/styles/block-library/button/editor.min.css 265 B
build/styles/block-library/button/style-rtl.css 651 B
build/styles/block-library/button/style-rtl.min.css 596 B
build/styles/block-library/button/style.css 662 B
build/styles/block-library/button/style.min.css 596 B
build/styles/block-library/buttons/editor-rtl.css 391 B
build/styles/block-library/buttons/editor-rtl.min.css 291 B
build/styles/block-library/buttons/editor.css 391 B
build/styles/block-library/buttons/editor.min.css 291 B
build/styles/block-library/buttons/style-rtl.css 452 B
build/styles/block-library/buttons/style-rtl.min.css 349 B
build/styles/block-library/buttons/style.css 453 B
build/styles/block-library/buttons/style.min.css 349 B
build/styles/block-library/calendar/style-rtl.css 271 B
build/styles/block-library/calendar/style-rtl.min.css 239 B
build/styles/block-library/calendar/style.css 271 B
build/styles/block-library/calendar/style.min.css 239 B
build/styles/block-library/categories/editor-rtl.css 171 B
build/styles/block-library/categories/editor-rtl.min.css 132 B
build/styles/block-library/categories/editor.css 170 B
build/styles/block-library/categories/editor.min.css 131 B
build/styles/block-library/categories/style-rtl.css 226 B
build/styles/block-library/categories/style-rtl.min.css 169 B
build/styles/block-library/categories/style.css 235 B
build/styles/block-library/categories/style.min.css 169 B
build/styles/block-library/classic-rtl.css 363 B
build/styles/block-library/classic-rtl.min.css 321 B
build/styles/block-library/classic.css 363 B
build/styles/block-library/classic.min.css 321 B
build/styles/block-library/code/editor-rtl.css 59 B
build/styles/block-library/code/editor-rtl.min.css 53 B
build/styles/block-library/code/editor.css 59 B
build/styles/block-library/code/editor.min.css 53 B
build/styles/block-library/code/style-rtl.css 158 B
build/styles/block-library/code/style-rtl.min.css 139 B
build/styles/block-library/code/style.css 179 B
build/styles/block-library/code/style.min.css 139 B
build/styles/block-library/code/theme-rtl.css 135 B
build/styles/block-library/code/theme-rtl.min.css 122 B
build/styles/block-library/code/theme.css 135 B
build/styles/block-library/code/theme.min.css 122 B
build/styles/block-library/columns/editor-rtl.css 119 B
build/styles/block-library/columns/editor-rtl.min.css 108 B
build/styles/block-library/columns/editor.css 119 B
build/styles/block-library/columns/editor.min.css 108 B
build/styles/block-library/columns/style-rtl.css 1.3 kB
build/styles/block-library/columns/style-rtl.min.css 421 B
build/styles/block-library/columns/style.css 1.3 kB
build/styles/block-library/columns/style.min.css 421 B
build/styles/block-library/comment-author-avatar/editor-rtl.css 136 B
build/styles/block-library/comment-author-avatar/editor-rtl.min.css 124 B
build/styles/block-library/comment-author-avatar/editor.css 136 B
build/styles/block-library/comment-author-avatar/editor.min.css 124 B
build/styles/block-library/comment-author-name/style-rtl.css 79 B
build/styles/block-library/comment-author-name/style-rtl.min.css 72 B
build/styles/block-library/comment-author-name/style.css 79 B
build/styles/block-library/comment-author-name/style.min.css 72 B
build/styles/block-library/comment-content/style-rtl.css 137 B
build/styles/block-library/comment-content/style-rtl.min.css 120 B
build/styles/block-library/comment-content/style.css 137 B
build/styles/block-library/comment-content/style.min.css 120 B
build/styles/block-library/comment-date/style-rtl.css 72 B
build/styles/block-library/comment-date/style-rtl.min.css 65 B
build/styles/block-library/comment-date/style.css 72 B
build/styles/block-library/comment-date/style.min.css 65 B
build/styles/block-library/comment-edit-link/style-rtl.css 77 B
build/styles/block-library/comment-edit-link/style-rtl.min.css 70 B
build/styles/block-library/comment-edit-link/style.css 77 B
build/styles/block-library/comment-edit-link/style.min.css 70 B
build/styles/block-library/comment-reply-link/style-rtl.css 78 B
build/styles/block-library/comment-reply-link/style-rtl.min.css 71 B
build/styles/block-library/comment-reply-link/style.css 78 B
build/styles/block-library/comment-reply-link/style.min.css 71 B
build/styles/block-library/comment-template/style-rtl.css 213 B
build/styles/block-library/comment-template/style-rtl.min.css 191 B
build/styles/block-library/comment-template/style.css 213 B
build/styles/block-library/comment-template/style.min.css 191 B
build/styles/block-library/comments-pagination-numbers/editor-rtl.css 135 B
build/styles/block-library/comments-pagination-numbers/editor-rtl.min.css 122 B
build/styles/block-library/comments-pagination-numbers/editor.css 144 B
build/styles/block-library/comments-pagination-numbers/editor.min.css 121 B
build/styles/block-library/comments-pagination/editor-rtl.css 184 B
build/styles/block-library/comments-pagination/editor-rtl.min.css 168 B
build/styles/block-library/comments-pagination/editor.css 184 B
build/styles/block-library/comments-pagination/editor.min.css 168 B
build/styles/block-library/comments-pagination/style-rtl.css 224 B
build/styles/block-library/comments-pagination/style-rtl.min.css 201 B
build/styles/block-library/comments-pagination/style.css 236 B
build/styles/block-library/comments-pagination/style.min.css 201 B
build/styles/block-library/comments-title/editor-rtl.css 83 B
build/styles/block-library/comments-title/editor-rtl.min.css 75 B
build/styles/block-library/comments-title/editor.css 83 B
build/styles/block-library/comments-title/editor.min.css 75 B
build/styles/block-library/comments/editor-rtl.css 968 B
build/styles/block-library/comments/editor-rtl.min.css 842 B
build/styles/block-library/comments/editor.css 968 B
build/styles/block-library/comments/editor.min.css 842 B
build/styles/block-library/comments/style-rtl.css 754 B
build/styles/block-library/comments/style-rtl.min.css 637 B
build/styles/block-library/comments/style.css 752 B
build/styles/block-library/comments/style.min.css 637 B
build/styles/block-library/common-rtl.css 2.48 kB
build/styles/block-library/common-rtl.min.css 1.12 kB
build/styles/block-library/common.css 2.5 kB
build/styles/block-library/common.min.css 1.12 kB
build/styles/block-library/cover/editor-rtl.css 1.05 kB
build/styles/block-library/cover/editor-rtl.min.css 631 B
build/styles/block-library/cover/editor.css 1.05 kB
build/styles/block-library/cover/editor.min.css 631 B
build/styles/block-library/cover/style-rtl.css 2.5 kB
build/styles/block-library/cover/style-rtl.min.css 1.82 kB
build/styles/block-library/cover/style.css 2.51 kB
build/styles/block-library/cover/style.min.css 1.81 kB
build/styles/block-library/details/editor-rtl.css 72 B
build/styles/block-library/details/editor-rtl.min.css 65 B
build/styles/block-library/details/editor.css 72 B
build/styles/block-library/details/editor.min.css 65 B
build/styles/block-library/details/style-rtl.css 97 B
build/styles/block-library/details/style-rtl.min.css 86 B
build/styles/block-library/details/style.css 97 B
build/styles/block-library/details/style.min.css 86 B
build/styles/block-library/editor-elements-rtl.css 117 B
build/styles/block-library/editor-elements-rtl.min.css 75 B
build/styles/block-library/editor-elements.css 117 B
build/styles/block-library/editor-elements.min.css 75 B
build/styles/block-library/editor-rtl.css 12.5 kB
build/styles/block-library/editor-rtl.min.css 10.3 kB
build/styles/block-library/editor.css 12.5 kB
build/styles/block-library/editor.min.css 10.3 kB
build/styles/block-library/elements-rtl.css 84 B
build/styles/block-library/elements-rtl.min.css 54 B
build/styles/block-library/elements.css 84 B
build/styles/block-library/elements.min.css 54 B
build/styles/block-library/embed/editor-rtl.css 391 B
build/styles/block-library/embed/editor-rtl.min.css 331 B
build/styles/block-library/embed/editor.css 390 B
build/styles/block-library/embed/editor.min.css 331 B
build/styles/block-library/embed/style-rtl.css 1.29 kB
build/styles/block-library/embed/style-rtl.min.css 448 B
build/styles/block-library/embed/style.css 1.29 kB
build/styles/block-library/embed/style.min.css 448 B
build/styles/block-library/embed/theme-rtl.css 967 B
build/styles/block-library/embed/theme-rtl.min.css 133 B
build/styles/block-library/embed/theme.css 967 B
build/styles/block-library/embed/theme.min.css 133 B
build/styles/block-library/file/editor-rtl.css 352 B
build/styles/block-library/file/editor-rtl.min.css 324 B
build/styles/block-library/file/editor.css 353 B
build/styles/block-library/file/editor.min.css 324 B
build/styles/block-library/file/style-rtl.css 318 B
build/styles/block-library/file/style-rtl.min.css 278 B
build/styles/block-library/file/style.css 331 B
build/styles/block-library/file/style.min.css 278 B
build/styles/block-library/footnotes/style-rtl.css 220 B
build/styles/block-library/footnotes/style-rtl.min.css 198 B
build/styles/block-library/footnotes/style.css 219 B
build/styles/block-library/footnotes/style.min.css 197 B
build/styles/block-library/form-input/editor-rtl.css 247 B
build/styles/block-library/form-input/editor-rtl.min.css 229 B
build/styles/block-library/form-input/editor.css 246 B
build/styles/block-library/form-input/editor.min.css 229 B
build/styles/block-library/form-input/style-rtl.css 467 B
build/styles/block-library/form-input/style-rtl.min.css 366 B
build/styles/block-library/form-input/style.css 467 B
build/styles/block-library/form-input/style.min.css 366 B
build/styles/block-library/form-submission-notification/editor-rtl.css 368 B
build/styles/block-library/form-submission-notification/editor-rtl.min.css 344 B
build/styles/block-library/form-submission-notification/editor.css 368 B
build/styles/block-library/form-submission-notification/editor.min.css 341 B
build/styles/block-library/form-submit-button/style-rtl.css 77 B
build/styles/block-library/form-submit-button/style-rtl.min.css 69 B
build/styles/block-library/form-submit-button/style.css 77 B
build/styles/block-library/form-submit-button/style.min.css 69 B
build/styles/block-library/freeform/editor-rtl.css 1.12 kB
build/styles/block-library/freeform/editor-rtl.min.css 288 B
build/styles/block-library/freeform/editor.css 1.12 kB
build/styles/block-library/freeform/editor.min.css 288 B
build/styles/block-library/gallery/editor-rtl.css 1.52 kB
build/styles/block-library/gallery/editor-rtl.min.css 615 B
build/styles/block-library/gallery/editor.css 1.52 kB
build/styles/block-library/gallery/editor.min.css 616 B
build/styles/block-library/gallery/style-rtl.css 2.84 kB
build/styles/block-library/gallery/style-rtl.min.css 1.84 kB
build/styles/block-library/gallery/style.css 2.84 kB
build/styles/block-library/gallery/style.min.css 1.84 kB
build/styles/block-library/gallery/theme-rtl.css 941 B
build/styles/block-library/gallery/theme-rtl.min.css 108 B
build/styles/block-library/gallery/theme.css 941 B
build/styles/block-library/gallery/theme.min.css 108 B
build/styles/block-library/group/editor-rtl.css 772 B
build/styles/block-library/group/editor-rtl.min.css 335 B
build/styles/block-library/group/editor.css 772 B
build/styles/block-library/group/editor.min.css 335 B
build/styles/block-library/group/style-rtl.css 120 B
build/styles/block-library/group/style-rtl.min.css 103 B
build/styles/block-library/group/style.css 120 B
build/styles/block-library/group/style.min.css 103 B
build/styles/block-library/group/theme-rtl.css 468 B
build/styles/block-library/group/theme-rtl.min.css 79 B
build/styles/block-library/group/theme.css 468 B
build/styles/block-library/group/theme.min.css 79 B
build/styles/block-library/heading/style-rtl.css 604 B
build/styles/block-library/heading/style-rtl.min.css 205 B
build/styles/block-library/heading/style.css 604 B
build/styles/block-library/heading/style.min.css 205 B
build/styles/block-library/html/editor-rtl.css 1.29 kB
build/styles/block-library/html/editor-rtl.min.css 464 B
build/styles/block-library/html/editor.css 1.3 kB
build/styles/block-library/html/editor.min.css 464 B
build/styles/block-library/icon/editor-rtl.css 753 B
build/styles/block-library/icon/editor-rtl.min.css 353 B
build/styles/block-library/icon/editor.css 753 B
build/styles/block-library/icon/editor.min.css 353 B
build/styles/block-library/icon/style-rtl.css 218 B
build/styles/block-library/icon/style-rtl.min.css 154 B
build/styles/block-library/icon/style.css 218 B
build/styles/block-library/icon/style.min.css 154 B
build/styles/block-library/image/editor-rtl.css 1.63 kB
build/styles/block-library/image/editor-rtl.min.css 763 B
build/styles/block-library/image/editor.css 1.62 kB
build/styles/block-library/image/editor.min.css 763 B
build/styles/block-library/image/style-rtl.css 2.92 kB
build/styles/block-library/image/style-rtl.min.css 1.86 kB
build/styles/block-library/image/style.css 2.92 kB
build/styles/block-library/image/style.min.css 1.85 kB
build/styles/block-library/image/theme-rtl.css 971 B
build/styles/block-library/image/theme-rtl.min.css 137 B
build/styles/block-library/image/theme.css 971 B
build/styles/block-library/image/theme.min.css 137 B
build/styles/block-library/latest-comments/style-rtl.css 394 B
build/styles/block-library/latest-comments/style-rtl.min.css 355 B
build/styles/block-library/latest-comments/style.css 394 B
build/styles/block-library/latest-comments/style.min.css 354 B
build/styles/block-library/latest-posts/editor-rtl.css 154 B
build/styles/block-library/latest-posts/editor-rtl.min.css 139 B
build/styles/block-library/latest-posts/editor.css 153 B
build/styles/block-library/latest-posts/editor.min.css 138 B
build/styles/block-library/latest-posts/style-rtl.css 1.36 kB
build/styles/block-library/latest-posts/style-rtl.min.css 520 B
build/styles/block-library/latest-posts/style.css 1.37 kB
build/styles/block-library/latest-posts/style.min.css 520 B
build/styles/block-library/list/style-rtl.css 498 B
build/styles/block-library/list/style-rtl.min.css 107 B
build/styles/block-library/list/style.css 498 B
build/styles/block-library/list/style.min.css 107 B
build/styles/block-library/loginout/style-rtl.css 68 B
build/styles/block-library/loginout/style-rtl.min.css 61 B
build/styles/block-library/loginout/style.css 68 B
build/styles/block-library/loginout/style.min.css 61 B
build/styles/block-library/math/editor-rtl.css 491 B
build/styles/block-library/math/editor-rtl.min.css 105 B
build/styles/block-library/math/editor.css 502 B
build/styles/block-library/math/editor.min.css 105 B
build/styles/block-library/math/style-rtl.css 70 B
build/styles/block-library/math/style-rtl.min.css 61 B
build/styles/block-library/math/style.css 70 B
build/styles/block-library/math/style.min.css 61 B
build/styles/block-library/media-text/editor-rtl.css 389 B
build/styles/block-library/media-text/editor-rtl.min.css 321 B
build/styles/block-library/media-text/editor.css 389 B
build/styles/block-library/media-text/editor.min.css 320 B
build/styles/block-library/media-text/style-rtl.css 873 B
build/styles/block-library/media-text/style-rtl.min.css 552 B
build/styles/block-library/media-text/style.css 901 B
build/styles/block-library/media-text/style.min.css 550 B
build/styles/block-library/more/editor-rtl.css 796 B
build/styles/block-library/more/editor-rtl.min.css 393 B
build/styles/block-library/more/editor.css 798 B
build/styles/block-library/more/editor.min.css 393 B
build/styles/block-library/navigation-link/editor-rtl.css 1.28 kB
build/styles/block-library/navigation-link/editor-rtl.min.css 710 B
build/styles/block-library/navigation-link/editor.css 1.27 kB
build/styles/block-library/navigation-link/editor.min.css 713 B
build/styles/block-library/navigation-link/style-rtl.css 579 B
build/styles/block-library/navigation-link/style-rtl.min.css 190 B
build/styles/block-library/navigation-link/style.css 579 B
build/styles/block-library/navigation-link/style.min.css 188 B
build/styles/block-library/navigation-overlay-close/style-rtl.css 260 B
build/styles/block-library/navigation-overlay-close/style-rtl.min.css 237 B
build/styles/block-library/navigation-overlay-close/style.css 260 B
build/styles/block-library/navigation-overlay-close/style.min.css 237 B
build/styles/block-library/navigation-submenu/editor-rtl.css 1.12 kB
build/styles/block-library/navigation-submenu/editor-rtl.min.css 295 B
build/styles/block-library/navigation-submenu/editor.css 1.12 kB
build/styles/block-library/navigation-submenu/editor.min.css 294 B
build/styles/block-library/navigation/editor-rtl.css 3.28 kB
build/styles/block-library/navigation/editor-rtl.min.css 2.28 kB
build/styles/block-library/navigation/editor.css 3.29 kB
build/styles/block-library/navigation/editor.min.css 2.28 kB
build/styles/block-library/navigation/style-rtl.css 3.58 kB
build/styles/block-library/navigation/style-rtl.min.css 2.51 kB
build/styles/block-library/navigation/style.css 3.58 kB
build/styles/block-library/navigation/style.min.css 2.5 kB
build/styles/block-library/nextpage/editor-rtl.css 799 B
build/styles/block-library/nextpage/editor-rtl.min.css 392 B
build/styles/block-library/nextpage/editor.css 800 B
build/styles/block-library/nextpage/editor.min.css 392 B
build/styles/block-library/page-list/editor-rtl.css 1.18 kB
build/styles/block-library/page-list/editor-rtl.min.css 356 B
build/styles/block-library/page-list/editor.css 1.18 kB
build/styles/block-library/page-list/editor.min.css 356 B
build/styles/block-library/page-list/style-rtl.css 207 B
build/styles/block-library/page-list/style-rtl.min.css 192 B
build/styles/block-library/page-list/style.css 207 B
build/styles/block-library/page-list/style.min.css 192 B
build/styles/block-library/paragraph/editor-rtl.css 315 B
build/styles/block-library/paragraph/editor-rtl.min.css 292 B
build/styles/block-library/paragraph/editor.css 314 B
build/styles/block-library/paragraph/editor.min.css 292 B
build/styles/block-library/paragraph/style-rtl.css 746 B
build/styles/block-library/paragraph/style-rtl.min.css 341 B
build/styles/block-library/paragraph/style.css 752 B
build/styles/block-library/paragraph/style.min.css 340 B
build/styles/block-library/playlist-track/style-rtl.css 453 B
build/styles/block-library/playlist-track/style-rtl.min.css 420 B
build/styles/block-library/playlist-track/style.css 453 B
build/styles/block-library/playlist-track/style.min.css 420 B
build/styles/block-library/playlist/editor-rtl.css 120 B
build/styles/block-library/playlist/editor-rtl.min.css 112 B
build/styles/block-library/playlist/editor.css 120 B
build/styles/block-library/playlist/editor.min.css 112 B
build/styles/block-library/playlist/style-rtl.css 1.52 kB
build/styles/block-library/playlist/style-rtl.min.css 1.42 kB
build/styles/block-library/playlist/style.css 1.52 kB
build/styles/block-library/playlist/style.min.css 1.42 kB
build/styles/block-library/post-author-biography/style-rtl.css 81 B
build/styles/block-library/post-author-biography/style-rtl.min.css 74 B
build/styles/block-library/post-author-biography/style.css 81 B
build/styles/block-library/post-author-biography/style.min.css 74 B
build/styles/block-library/post-author-name/style-rtl.css 76 B
build/styles/block-library/post-author-name/style-rtl.min.css 69 B
build/styles/block-library/post-author-name/style.css 76 B
build/styles/block-library/post-author-name/style.min.css 69 B
build/styles/block-library/post-author/editor-rtl.css 490 B
build/styles/block-library/post-author/editor-rtl.min.css 104 B
build/styles/block-library/post-author/editor.css 490 B
build/styles/block-library/post-author/editor.min.css 104 B
build/styles/block-library/post-author/style-rtl.css 213 B
build/styles/block-library/post-author/style-rtl.min.css 188 B
build/styles/block-library/post-author/style.css 214 B
build/styles/block-library/post-author/style.min.css 189 B
build/styles/block-library/post-comments-count/style-rtl.css 79 B
build/styles/block-library/post-comments-count/style-rtl.min.css 72 B
build/styles/block-library/post-comments-count/style.css 79 B
build/styles/block-library/post-comments-count/style.min.css 72 B
build/styles/block-library/post-comments-form/editor-rtl.css 104 B
build/styles/block-library/post-comments-form/editor-rtl.min.css 96 B
build/styles/block-library/post-comments-form/editor.css 104 B
build/styles/block-library/post-comments-form/editor.min.css 96 B
build/styles/block-library/post-comments-form/style-rtl.css 585 B
build/styles/block-library/post-comments-form/style-rtl.min.css 525 B
build/styles/block-library/post-comments-form/style.css 584 B
build/styles/block-library/post-comments-form/style.min.css 525 B
build/styles/block-library/post-comments-link/style-rtl.css 78 B
build/styles/block-library/post-comments-link/style-rtl.min.css 71 B
build/styles/block-library/post-comments-link/style.css 78 B
build/styles/block-library/post-comments-link/style.min.css 71 B
build/styles/block-library/post-content/style-rtl.css 68 B
build/styles/block-library/post-content/style-rtl.min.css 61 B
build/styles/block-library/post-content/style.css 68 B
build/styles/block-library/post-content/style.min.css 61 B
build/styles/block-library/post-date/style-rtl.css 69 B
build/styles/block-library/post-date/style-rtl.min.css 62 B
build/styles/block-library/post-date/style.css 69 B
build/styles/block-library/post-date/style.min.css 62 B
build/styles/block-library/post-excerpt/editor-rtl.css 78 B
build/styles/block-library/post-excerpt/editor-rtl.min.css 71 B
build/styles/block-library/post-excerpt/editor.css 78 B
build/styles/block-library/post-excerpt/editor.min.css 71 B
build/styles/block-library/post-excerpt/style-rtl.css 171 B
build/styles/block-library/post-excerpt/style-rtl.min.css 155 B
build/styles/block-library/post-excerpt/style.css 171 B
build/styles/block-library/post-excerpt/style.min.css 155 B
build/styles/block-library/post-featured-image/editor-rtl.css 1.14 kB
build/styles/block-library/post-featured-image/editor-rtl.min.css 719 B
build/styles/block-library/post-featured-image/editor.css 1.14 kB
build/styles/block-library/post-featured-image/editor.min.css 717 B
build/styles/block-library/post-featured-image/style-rtl.css 392 B
build/styles/block-library/post-featured-image/style-rtl.min.css 347 B
build/styles/block-library/post-featured-image/style.css 392 B
build/styles/block-library/post-featured-image/style.min.css 347 B
build/styles/block-library/post-navigation-link/style-rtl.css 234 B
build/styles/block-library/post-navigation-link/style-rtl.min.css 215 B
build/styles/block-library/post-navigation-link/style.css 245 B
build/styles/block-library/post-navigation-link/style.min.css 214 B
build/styles/block-library/post-template/style-rtl.css 1.25 kB
build/styles/block-library/post-template/style-rtl.min.css 414 B
build/styles/block-library/post-template/style.css 1.25 kB
build/styles/block-library/post-template/style.min.css 414 B
build/styles/block-library/post-terms/style-rtl.css 108 B
build/styles/block-library/post-terms/style-rtl.min.css 96 B
build/styles/block-library/post-terms/style.css 108 B
build/styles/block-library/post-terms/style.min.css 96 B
build/styles/block-library/post-time-to-read/style-rtl.css 77 B
build/styles/block-library/post-time-to-read/style-rtl.min.css 70 B
build/styles/block-library/post-time-to-read/style.css 77 B
build/styles/block-library/post-time-to-read/style.min.css 70 B
build/styles/block-library/post-title/style-rtl.css 175 B
build/styles/block-library/post-title/style-rtl.min.css 162 B
build/styles/block-library/post-title/style.css 175 B
build/styles/block-library/post-title/style.min.css 162 B
build/styles/block-library/preformatted/style-rtl.css 511 B
build/styles/block-library/preformatted/style-rtl.min.css 125 B
build/styles/block-library/preformatted/style.css 511 B
build/styles/block-library/preformatted/style.min.css 125 B
build/styles/block-library/pullquote/editor-rtl.css 146 B
build/styles/block-library/pullquote/editor-rtl.min.css 133 B
build/styles/block-library/pullquote/editor.css 146 B
build/styles/block-library/pullquote/editor.min.css 133 B
build/styles/block-library/pullquote/style-rtl.css 765 B
build/styles/block-library/pullquote/style-rtl.min.css 365 B
build/styles/block-library/pullquote/style.css 764 B
build/styles/block-library/pullquote/style.min.css 365 B
build/styles/block-library/pullquote/theme-rtl.css 195 B
build/styles/block-library/pullquote/theme-rtl.min.css 176 B
build/styles/block-library/pullquote/theme.css 195 B
build/styles/block-library/pullquote/theme.min.css 176 B
build/styles/block-library/query-pagination-numbers/editor-rtl.css 134 B
build/styles/block-library/query-pagination-numbers/editor-rtl.min.css 121 B
build/styles/block-library/query-pagination-numbers/editor.css 144 B
build/styles/block-library/query-pagination-numbers/editor.min.css 118 B
build/styles/block-library/query-pagination/editor-rtl.css 168 B
build/styles/block-library/query-pagination/editor-rtl.min.css 154 B
build/styles/block-library/query-pagination/editor.css 168 B
build/styles/block-library/query-pagination/editor.min.css 154 B
build/styles/block-library/query-pagination/style-rtl.css 254 B
build/styles/block-library/query-pagination/style-rtl.min.css 237 B
build/styles/block-library/query-pagination/style.css 265 B
build/styles/block-library/query-pagination/style.min.css 237 B
build/styles/block-library/query-title/style-rtl.css 71 B
build/styles/block-library/query-title/style-rtl.min.css 64 B
build/styles/block-library/query-title/style.css 71 B
build/styles/block-library/query-title/style.min.css 64 B
build/styles/block-library/query-total/style-rtl.css 71 B
build/styles/block-library/query-total/style-rtl.min.css 64 B
build/styles/block-library/query-total/style.css 71 B
build/styles/block-library/query-total/style.min.css 64 B
build/styles/block-library/query/editor-rtl.css 1.28 kB
build/styles/block-library/query/editor-rtl.min.css 438 B
build/styles/block-library/query/editor.css 1.28 kB
build/styles/block-library/query/editor.min.css 438 B
build/styles/block-library/quote/style-rtl.css 255 B
build/styles/block-library/quote/style-rtl.min.css 238 B
build/styles/block-library/quote/style.css 256 B
build/styles/block-library/quote/style.min.css 238 B
build/styles/block-library/quote/theme-rtl.css 253 B
build/styles/block-library/quote/theme-rtl.min.css 233 B
build/styles/block-library/quote/theme.css 254 B
build/styles/block-library/quote/theme.min.css 236 B
build/styles/block-library/read-more/style-rtl.css 146 B
build/styles/block-library/read-more/style-rtl.min.css 131 B
build/styles/block-library/read-more/style.css 146 B
build/styles/block-library/read-more/style.min.css 131 B
build/styles/block-library/reset-rtl.css 936 B
build/styles/block-library/reset-rtl.min.css 467 B
build/styles/block-library/reset.css 936 B
build/styles/block-library/reset.min.css 467 B
build/styles/block-library/rss/editor-rtl.css 144 B
build/styles/block-library/rss/editor-rtl.min.css 126 B
build/styles/block-library/rss/editor.css 144 B
build/styles/block-library/rss/editor.min.css 126 B
build/styles/block-library/rss/style-rtl.css 1.11 kB
build/styles/block-library/rss/style-rtl.min.css 284 B
build/styles/block-library/rss/style.css 1.12 kB
build/styles/block-library/rss/style.min.css 283 B
build/styles/block-library/search/editor-rtl.css 217 B
build/styles/block-library/search/editor-rtl.min.css 199 B
build/styles/block-library/search/editor.css 217 B
build/styles/block-library/search/editor.min.css 199 B
build/styles/block-library/search/style-rtl.css 1.1 kB
build/styles/block-library/search/style-rtl.min.css 665 B
build/styles/block-library/search/style.css 1.1 kB
build/styles/block-library/search/style.min.css 666 B
build/styles/block-library/search/theme-rtl.css 130 B
build/styles/block-library/search/theme-rtl.min.css 113 B
build/styles/block-library/search/theme.css 130 B
build/styles/block-library/search/theme.min.css 113 B
build/styles/block-library/separator/editor-rtl.css 106 B
build/styles/block-library/separator/editor-rtl.min.css 100 B
build/styles/block-library/separator/editor.css 106 B
build/styles/block-library/separator/editor.min.css 100 B
build/styles/block-library/separator/style-rtl.css 284 B
build/styles/block-library/separator/style-rtl.min.css 248 B
build/styles/block-library/separator/style.css 297 B
build/styles/block-library/separator/style.min.css 248 B
build/styles/block-library/separator/theme-rtl.css 226 B
build/styles/block-library/separator/theme-rtl.min.css 195 B
build/styles/block-library/separator/theme.css 226 B
build/styles/block-library/separator/theme.min.css 195 B
build/styles/block-library/shortcode/editor-rtl.css 1.1 kB
build/styles/block-library/shortcode/editor-rtl.min.css 286 B
build/styles/block-library/shortcode/editor.css 1.1 kB
build/styles/block-library/shortcode/editor.min.css 286 B
build/styles/block-library/site-logo/editor-rtl.css 1.12 kB
build/styles/block-library/site-logo/editor-rtl.min.css 696 B
build/styles/block-library/site-logo/editor.css 1.12 kB
build/styles/block-library/site-logo/editor.min.css 692 B
build/styles/block-library/site-logo/style-rtl.css 239 B
build/styles/block-library/site-logo/style-rtl.min.css 218 B
build/styles/block-library/site-logo/style.css 238 B
build/styles/block-library/site-logo/style.min.css 218 B
build/styles/block-library/site-tagline/editor-rtl.css 94 B
build/styles/block-library/site-tagline/editor-rtl.min.css 87 B
build/styles/block-library/site-tagline/editor.css 94 B
build/styles/block-library/site-tagline/editor.min.css 87 B
build/styles/block-library/site-tagline/style-rtl.css 72 B
build/styles/block-library/site-tagline/style-rtl.min.css 65 B
build/styles/block-library/site-tagline/style.css 72 B
build/styles/block-library/site-tagline/style.min.css 65 B
build/styles/block-library/site-title/editor-rtl.css 93 B
build/styles/block-library/site-title/editor-rtl.min.css 85 B
build/styles/block-library/site-title/editor.css 93 B
build/styles/block-library/site-title/editor.min.css 85 B
build/styles/block-library/site-title/style-rtl.css 153 B
build/styles/block-library/site-title/style-rtl.min.css 143 B
build/styles/block-library/site-title/style.css 153 B
build/styles/block-library/site-title/style.min.css 143 B
build/styles/block-library/social-link/editor-rtl.css 346 B
build/styles/block-library/social-link/editor-rtl.min.css 314 B
build/styles/block-library/social-link/editor.css 348 B
build/styles/block-library/social-link/editor.min.css 314 B
build/styles/block-library/social-links/editor-rtl.css 737 B
build/styles/block-library/social-links/editor-rtl.min.css 339 B
build/styles/block-library/social-links/editor.css 738 B
build/styles/block-library/social-links/editor.min.css 338 B
build/styles/block-library/social-links/style-rtl.css 1.57 kB
build/styles/block-library/social-links/style-rtl.min.css 1.51 kB
build/styles/block-library/social-links/style.css 1.57 kB
build/styles/block-library/social-links/style.min.css 1.51 kB
build/styles/block-library/spacer/editor-rtl.css 774 B
build/styles/block-library/spacer/editor-rtl.min.css 346 B
build/styles/block-library/spacer/editor.css 774 B
build/styles/block-library/spacer/editor.min.css 346 B
build/styles/block-library/spacer/style-rtl.css 55 B
build/styles/block-library/spacer/style-rtl.min.css 48 B
build/styles/block-library/spacer/style.css 55 B
build/styles/block-library/spacer/style.min.css 48 B
build/styles/block-library/style-rtl.css 21.5 kB
build/styles/block-library/style-rtl.min.css 18 kB
build/styles/block-library/style.css 21.7 kB
build/styles/block-library/style.min.css 18 kB
build/styles/block-library/tab-panel/style-rtl.css 75 B
build/styles/block-library/tab-panel/style-rtl.min.css 64 B
build/styles/block-library/tab-panel/style.css 75 B
build/styles/block-library/tab-panel/style.min.css 64 B
build/styles/block-library/tab/style-rtl.css 233 B
build/styles/block-library/tab/style-rtl.min.css 210 B
build/styles/block-library/tab/style.css 233 B
build/styles/block-library/tab/style.min.css 210 B
build/styles/block-library/table-of-contents/style-rtl.css 89 B
build/styles/block-library/table-of-contents/style-rtl.min.css 83 B
build/styles/block-library/table-of-contents/style.css 89 B
build/styles/block-library/table-of-contents/style.min.css 83 B
build/styles/block-library/table/editor-rtl.css 1.25 kB
build/styles/block-library/table/editor-rtl.min.css 394 B
build/styles/block-library/table/editor.css 1.25 kB
build/styles/block-library/table/editor.min.css 394 B
build/styles/block-library/table/style-rtl.css 1.06 kB
build/styles/block-library/table/style-rtl.min.css 641 B
build/styles/block-library/table/style.css 1.06 kB
build/styles/block-library/table/style.min.css 640 B
build/styles/block-library/table/theme-rtl.css 985 B
build/styles/block-library/table/theme-rtl.min.css 152 B
build/styles/block-library/table/theme.css 985 B
build/styles/block-library/table/theme.min.css 152 B
build/styles/block-library/tabs-menu-item/editor-rtl.css 168 B
build/styles/block-library/tabs-menu-item/editor-rtl.min.css 155 B
build/styles/block-library/tabs-menu-item/editor.css 168 B
build/styles/block-library/tabs-menu-item/editor.min.css 155 B
build/styles/block-library/tabs-menu-item/style-rtl.css 367 B
build/styles/block-library/tabs-menu-item/style-rtl.min.css 337 B
build/styles/block-library/tabs-menu-item/style.css 367 B
build/styles/block-library/tabs-menu-item/style.min.css 337 B
build/styles/block-library/tabs-menu/editor-rtl.css 116 B
build/styles/block-library/tabs-menu/editor-rtl.min.css 104 B
build/styles/block-library/tabs-menu/editor.css 116 B
build/styles/block-library/tabs-menu/editor.min.css 104 B
build/styles/block-library/tabs-menu/style-rtl.css 135 B
build/styles/block-library/tabs-menu/style-rtl.min.css 111 B
build/styles/block-library/tabs-menu/style.css 135 B
build/styles/block-library/tabs-menu/style.min.css 111 B
build/styles/block-library/tabs/style-rtl.css 95 B
build/styles/block-library/tabs/style-rtl.min.css 84 B
build/styles/block-library/tabs/style.css 95 B
build/styles/block-library/tabs/style.min.css 84 B
build/styles/block-library/tag-cloud/style-rtl.css 283 B
build/styles/block-library/tag-cloud/style-rtl.min.css 248 B
build/styles/block-library/tag-cloud/style.css 283 B
build/styles/block-library/tag-cloud/style.min.css 248 B
build/styles/block-library/template-part/editor-rtl.css 1.2 kB
build/styles/block-library/template-part/editor-rtl.min.css 368 B
build/styles/block-library/template-part/editor.css 1.2 kB
build/styles/block-library/template-part/editor.min.css 368 B
build/styles/block-library/template-part/theme-rtl.css 492 B
build/styles/block-library/template-part/theme-rtl.min.css 113 B
build/styles/block-library/template-part/theme.css 492 B
build/styles/block-library/template-part/theme.min.css 113 B
build/styles/block-library/term-count/style-rtl.css 70 B
build/styles/block-library/term-count/style-rtl.min.css 63 B
build/styles/block-library/term-count/style.css 70 B
build/styles/block-library/term-count/style.min.css 63 B
build/styles/block-library/term-description/style-rtl.css 138 B
build/styles/block-library/term-description/style-rtl.min.css 126 B
build/styles/block-library/term-description/style.css 138 B
build/styles/block-library/term-description/style.min.css 126 B
build/styles/block-library/term-name/style-rtl.css 69 B
build/styles/block-library/term-name/style-rtl.min.css 62 B
build/styles/block-library/term-name/style.css 69 B
build/styles/block-library/term-name/style.min.css 62 B
build/styles/block-library/term-template/editor-rtl.css 267 B
build/styles/block-library/term-template/editor-rtl.min.css 225 B
build/styles/block-library/term-template/editor.css 267 B
build/styles/block-library/term-template/editor.min.css 225 B
build/styles/block-library/term-template/style-rtl.css 124 B
build/styles/block-library/term-template/style-rtl.min.css 114 B
build/styles/block-library/term-template/style.css 124 B
build/styles/block-library/term-template/style.min.css 114 B
build/styles/block-library/text-columns/editor-rtl.css 481 B
build/styles/block-library/text-columns/editor-rtl.min.css 95 B
build/styles/block-library/text-columns/editor.css 481 B
build/styles/block-library/text-columns/editor.min.css 95 B
build/styles/block-library/text-columns/style-rtl.css 177 B
build/styles/block-library/text-columns/style-rtl.min.css 165 B
build/styles/block-library/text-columns/style.css 177 B
build/styles/block-library/text-columns/style.min.css 165 B
build/styles/block-library/theme-rtl.css 1.59 kB
build/styles/block-library/theme-rtl.min.css 715 B
build/styles/block-library/theme.css 1.6 kB
build/styles/block-library/theme.min.css 719 B
build/styles/block-library/verse/style-rtl.css 155 B
build/styles/block-library/verse/style-rtl.min.css 137 B
build/styles/block-library/verse/style.css 155 B
build/styles/block-library/verse/style.min.css 137 B
build/styles/block-library/video/editor-rtl.css 825 B
build/styles/block-library/video/editor-rtl.min.css 415 B
build/styles/block-library/video/editor.css 826 B
build/styles/block-library/video/editor.min.css 416 B
build/styles/block-library/video/style-rtl.css 1.02 kB
build/styles/block-library/video/style-rtl.min.css 202 B
build/styles/block-library/video/style.css 1.02 kB
build/styles/block-library/video/style.min.css 202 B
build/styles/block-library/video/theme-rtl.css 967 B
build/styles/block-library/video/theme-rtl.min.css 134 B
build/styles/block-library/video/theme.css 967 B
build/styles/block-library/video/theme.min.css 134 B
build/styles/commands/style-rtl.css 2.01 kB
build/styles/commands/style-rtl.min.css 1.12 kB
build/styles/commands/style.css 2.01 kB
build/styles/commands/style.min.css 1.12 kB
build/styles/components/style-rtl.css 17 kB
build/styles/components/style-rtl.min.css 13.8 kB
build/styles/components/style.css 17.1 kB
build/styles/components/style.min.css 13.8 kB
build/styles/customize-widgets/style-rtl.css 2.35 kB
build/styles/customize-widgets/style-rtl.min.css 1.44 kB
build/styles/customize-widgets/style.css 2.35 kB
build/styles/customize-widgets/style.min.css 1.44 kB
build/styles/edit-post/classic-rtl.css 1.29 kB
build/styles/edit-post/classic-rtl.min.css 426 B
build/styles/edit-post/classic.css 1.31 kB
build/styles/edit-post/classic.min.css 427 B
build/styles/edit-post/style-rtl.css 4.09 kB
build/styles/edit-post/style-rtl.min.css 2.77 kB
build/styles/edit-post/style.css 4.1 kB
build/styles/edit-post/style.min.css 2.77 kB
build/styles/edit-site/style-rtl.css 21 kB
build/styles/edit-site/style-rtl.min.css 17.1 kB
build/styles/edit-site/style.css 21 kB
build/styles/edit-site/style.min.css 17.1 kB
build/styles/edit-widgets/style-rtl.css 5.34 kB
build/styles/edit-widgets/style-rtl.min.css 4 kB
build/styles/edit-widgets/style.css 5.34 kB
build/styles/edit-widgets/style.min.css 4.01 kB
build/styles/editor/style-rtl.css 26.5 kB
build/styles/editor/style-rtl.min.css 22.3 kB
build/styles/editor/style.css 26.6 kB
build/styles/editor/style.min.css 22.3 kB
build/styles/format-library/style-rtl.css 735 B
build/styles/format-library/style-rtl.min.css 326 B
build/styles/format-library/style.css 746 B
build/styles/format-library/style.min.css 326 B
build/styles/list-reusable-blocks/style-rtl.css 1.07 kB
build/styles/list-reusable-blocks/style-rtl.min.css 250 B
build/styles/list-reusable-blocks/style.css 1.07 kB
build/styles/list-reusable-blocks/style.min.css 249 B
build/styles/media-utils/style-rtl.css 2.08 kB
build/styles/media-utils/style-rtl.min.css 1.17 kB
build/styles/media-utils/style.css 2.08 kB
build/styles/media-utils/style.min.css 1.17 kB
build/styles/nux/style-rtl.css 1.48 kB
build/styles/nux/style-rtl.min.css 622 B
build/styles/nux/style.css 1.5 kB
build/styles/nux/style.min.css 618 B
build/styles/patterns/style-rtl.css 1.46 kB
build/styles/patterns/style-rtl.min.css 611 B
build/styles/patterns/style.css 1.46 kB
build/styles/patterns/style.min.css 611 B
build/styles/preferences/style-rtl.css 1.26 kB
build/styles/preferences/style-rtl.min.css 415 B
build/styles/preferences/style.css 1.26 kB
build/styles/preferences/style.min.css 415 B
build/styles/reusable-blocks/style-rtl.css 1.11 kB
build/styles/reusable-blocks/style-rtl.min.css 275 B
build/styles/reusable-blocks/style.css 1.11 kB
build/styles/reusable-blocks/style.min.css 275 B
build/styles/widgets/style-rtl.css 2.04 kB
build/styles/widgets/style-rtl.min.css 1.15 kB
build/styles/widgets/style.css 2.04 kB
build/styles/widgets/style.min.css 1.15 kB

compressed-size-action

@aaronrobertshaw
aaronrobertshaw force-pushed the aaronrobertshaw/column-width-support branch from 11e335a to 928613c Compare September 4, 2026 07:50
@coderabbitai

coderabbitai Bot commented Sep 4, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. To trigger a review, include @coderabbitai review in the PR description. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Team

Run ID: b708d51c-c375-4f64-85c3-8c3afd30b44b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

@aaronrobertshaw

Copy link
Copy Markdown
Contributor Author

I've rebased this and fixed what that turned up, including:

  • Dropped the .native.js changes since React Native is gone
  • Width set through theme.json or Global Styles did nothing. Three causes: settings.blocks.core/column.dimensions.width was not enabled in lib/theme.json, the generated declaration needed flex-grow: 0 next to flex-basis, and the defaults in columns/style.scss outranked the generated rules.
  • The Row and Grid transforms landed after this PR was opened. They used the old attribute, so widths were lost on conversion, and the width leaked onto the Group they create and rendered there.
  • I dropped the width attribute rather than keeping it, following core/button, and updated the callers that passed it. The Comments block inner blocks template was one of them.
  • save threw a TypeError on a numeric width from a template, and preset values were not resolved.
  • Fixtures now cover the current format and each deprecation, plus unit tests for the width helper and an e2e test for the Dimensions panel control.

One thing worth a look: columns/style.scss now uses the same :root :where() format as the global styles output so those rules win on style load order. That lowers the specificity of a long-standing rule but it follows the same trade made in Button's stylesheet when it migrated width.

@github-actions

github-actions Bot commented Sep 4, 2026 •

Copy link
Copy Markdown

🤖 PR meta 🤖

🎉 Props

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: aaronrobertshaw <aaronrobertshaw@git.wordpress.org>
Co-authored-by: ramonjd <ramonopoly@git.wordpress.org>
Co-authored-by: tellthemachines <isabel_brison@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

Updated as activity occurs, without notifying anyone named here. Add the props-bot label to refresh.

📦 Bundle size

Size Change: +1.38 kB (+0.02%)

Total Size: 8.21 MB

📦 View Changed
Filename Size Change
build/modules/lazy-editor/index.min.js 15.4 kB +223 B (+1.47%)
build/scripts/block-editor/index.min.js 500 kB +394 B (+0.08%)
build/scripts/block-library/index.min.js 364 kB +93 B (+0.03%)
build/scripts/edit-site/index.min.js 382 kB +327 B (+0.09%)
build/scripts/editor/index.min.js 611 kB +237 B (+0.04%)
build/styles/block-library/columns/style-rtl.css 1.44 kB +17 B (+1.2%)
build/styles/block-library/columns/style-rtl.min.css 449 B +8 B (+1.81%)
build/styles/block-library/columns/style.css 1.44 kB +17 B (+1.2%)
build/styles/block-library/columns/style.min.css 449 B +8 B (+1.81%)
build/styles/block-library/style-rtl.css 22.4 kB +17 B (+0.08%)
build/styles/block-library/style-rtl.min.css 18.9 kB +10 B (+0.05%)
build/styles/block-library/style.css 22.5 kB +15 B (+0.07%)
build/styles/block-library/style.min.css 18.9 kB +9 B (+0.05%)

From 010dcb3, not the current head. Run

⚡ Performance

Show the results

Client side metrics exclude the server response time.

front-end-block-theme

Metric cf6a3ca trunk % Change
timeToFirstByte 56.55 ms +7.6% -2.48% 55.6 ms +9.17% -2.07% 1.71%
largestContentfulPaint 96 ms +4.17% -4.17% 96 ms +6.25% -6.25% 0%
lcpMinusTtfb 35.2 ms +22.59% -3.98% 38.45 ms +8.84% -14.04% -8.45%
wpBeforeTemplate 27.88 ms +15.21% -1.61% 28.07 ms +9.83% -1.5% -0.68%
wpTemplate 24.44 ms +2.91% -4.09% 23.88 ms +4.31% -2.89% 2.35%
wpTotal 53.11 ms +7.19% -3.3% 52.14 ms +9.51% -2.47% 1.86%
wpMemoryUsage 7.55 MB +0% -0% 7.49 MB +0% -0% 0.7%
wpDbQueries 17 +0% -0% 17 +0% -0% 0%

front-end-classic-theme

Metric cf6a3ca trunk % Change
timeToFirstByte 42.35 ms +4.96% -1.42% 46.65 ms +7.93% -0.86% -9.22%
largestContentfulPaint 92 ms +0% -4.35% 100 ms +4% -0% -8%
lcpMinusTtfb 46.75 ms +5.88% -1.07% 53.6 ms +0.56% -1.12% -12.78%
wpBeforeTemplate 26.06 ms +3.11% -1.96% 25.96 ms +6.47% -1.35% 0.39%
wpTemplate 13.48 ms +2.74% -0.59% 17.95 ms +1.39% -2.45% -24.9%
wpTotal 39.86 ms +4.59% -2.13% 43.77 ms +8.2% -1.1% -8.93%
wpMemoryUsage 6.03 MB +0% -0% 6.11 MB +0% -0% -1.41%
wpDbQueries 10 +0% -0% 14 +0% -0% -28.57%

media-processing

Metric cf6a3ca trunk % Change
mediaProcessingJpeg 396.66 ms +1.46% -0.9% 398.7 ms +0.2% -0.28% -0.51%
mediaProcessingAvif 6034.78 ms +0.37% -0.05% 6052.61 ms +0.24% -0.17% -0.29%
mediaProcessingJpegToAvif 4160.91 ms +0.05% -0.17% 4177.51 ms +0.15% -0.1% -0.4%

media-upload

Metric cf6a3ca trunk % Change
jpegUploadProcessing 1439 ms +35.63% -2.49% 1414.88 ms +1.13% -0.94% 1.7%
pngUploadProcessing 211.6 ms +4.54% -6.34% 209.73 ms +9.33% -6.69% 0.89%
largeJpegUploadProcessing 1412.98 ms +0.43% -0.72% 1402.1 ms +0.46% -0.58% 0.78%
multipleImageUploadProcessing 1543.9 ms +0.25% -0.67% 1547.62 ms +1.14% -1.09% -0.24%

post-editor

Metric cf6a3ca trunk % Change
serverResponse 425.24 ms +3.4% -9.58% 410.39 ms +6.49% -7.17% 3.62%
firstPaint 207.5 ms +10.71% -6.01% 217.29 ms +12.89% -16.05% -4.51%
domContentLoaded 1003.96 ms +2.27% -0.2% 997.5 ms +1.11% -0.34% 0.65%
loaded 1005.13 ms +2.27% -0.2% 998.73 ms +1.11% -0.36% 0.64%
firstContentfulPaint 406.81 ms +1.39% -0.89% 411.96 ms +1.99% -2.15% -1.25%
firstBlock 2949.2 ms +1.16% -0.16% 2935.8 ms +0.43% -0.96% 0.46%
type 19.3 ms +2.64% -2.75% 18.66 ms +4.07% -3.22% 3.43%
typeWithoutInspector 18.48 ms +3.63% -5.79% 18.45 ms +7.05% -5.09% 0.16%
typeWithTopToolbar 22.84 ms +7.84% -5.56% 24.32 ms +3.21% -5.02% -6.09%
typeContainer 8.18 ms +12.84% -7.46% 8.73 ms +7.79% -6.3% -6.3%
focus 72.79 ms +7.38% -7.65% 72.03 ms +10.95% -6.59% 1.06%
firstFocus 203.16 ms +0% -0% 184.41 ms +0% -0% 10.17%
selectAll 427.8 ms +9.82% -0.17% 460.69 ms +4.05% -8.8% -7.14%
listViewOpen 68.13 ms +7% -9.16% 67.19 ms +5.15% -5.05% 1.4%
inserterOpen 22.58 ms +8.06% -8.9% 23.14 ms +7.91% -6.31% -2.42%
inserterHover 2.95 ms +6.78% -10.17% 2.94 ms +11.56% -6.8% 0.34%
inserterSearch 8.05 ms +19.01% -7.7% 8.01 ms +11.61% -6.12% 0.5%
loadPatterns 645.67 ms +2.51% -1.25% 649.61 ms +3.24% -5.94% -0.61%
wpTotal 415.92 ms +3.33% -9.86% 400.7 ms +6.63% -7.28% 3.8%
wpMemoryUsage 13.06 MB +0% -0% 13.01 MB +0% -0% 0.43%
wpDbQueries 54 +0% -1.85% 54 +0% -0% 0%

site-editor

Metric cf6a3ca trunk % Change
serverResponse 499.4 ms +2.28% -5.67% 497.01 ms +6.69% -6.69% 0.48%
firstPaint 255.79 ms +8.48% -14.02% 248.89 ms +4.75% -7.9% 2.77%
domContentLoaded 1122.22 ms +1.6% -0.49% 1133.48 ms +0.66% -1.1% -0.99%
loaded 1123.39 ms +1.59% -0.5% 1134.6 ms +0.67% -1.11% -0.99%
firstContentfulPaint 447.02 ms +0.68% -0.97% 447.11 ms +3.05% -1.93% -0.02%
firstBlock 4100.76 ms +0.2% -0.35% 4083.61 ms +0.64% -0.47% 0.42%
type 19.95 ms +8.07% -6.22% 18.25 ms +4.99% -3.56% 9.32%
navigate 101.36 ms +12.16% -1.5% 109.76 ms +5.94% -10.24% -7.65%
loadPatterns 1336.57 ms +7.87% -5.97% 1405.26 ms +7.38% -9.87% -4.89%
loadPages 1063.11 ms +4.54% -1.77% 1045.88 ms +2.09% -0.27% 1.65%
wpTotal 489.72 ms +2.32% -5.7% 486.89 ms +7.01% -6.81% 0.58%
wpMemoryUsage 12.04 MB +0% -0% 11.97 MB +0% -0% 0.57%
wpDbQueries 43 +2.33% -0% 43 +2.33% -0% 0%

From 010dcb3, not the current head. Run

🏁 Flaky tests

Some tests passed with failed attempts. The failures may not be related to this commit but are still reported for visibility. See the documentation for more information.

List in /test/e2e/specs/editor/blocks/query.spec.js, passed after 1 failed attempt.
Error: apiRequestContext.fetch: socket hang up
Call log:
  - → PUT http://localhost:8889/wp-json/wp/v2/plugins/gutenberg-test-plugins/query-block
    - user-agent: Playwright/1.63.0 (x64; ubuntu 24.04) node/24.18 CI/1
    - accept: */*
    - accept-encoding: gzip,deflate,br
    - X-WP-Nonce: c1e9649cdb
    - content-type: application/json
    - content-length: 21
    - cookie: wordpress_test_cookie=WP%20Cookie%20check; wordpress_logged_in_23778236db82f19306f247e20a353a99=admin%7C1790119398%7COPtZykEaFJKGc3Mq5RME5QlCvZ28x3w7v3FZ7TGl303%7C523128782b983c1e0e39e1553a94ce9d4497cf231659674cbb776e2485f79321; wp-settings-time-1=1789946604

    at RequestUtils.rest (/home/runner/work/gutenberg/gutenberg/packages/e2e-test-utils-playwright/src/request-utils/rest.ts:112:39)
    at RequestUtils.deactivatePlugin (/home/runner/work/gutenberg/gutenberg/packages/e2e-test-utils-playwright/src/request-utils/plugins.ts:89:13)
    at /home/runner/work/gutenberg/gutenberg/test/e2e/specs/editor/blocks/query.spec.js:25:3

From 010dcb3, not the current head. Run

@aaronrobertshaw
aaronrobertshaw force-pushed the aaronrobertshaw/column-width-support branch from 928613c to 92824d9 Compare September 6, 2026 07:24
aaronrobertshaw added a commit to aaronrobertshaw/wordpress-develop that referenced this pull request Sep 6, 2026
Handle the Column block's width through the `dimensions.width` block
support so it aligns with Global Styles and can be set from theme.json.

Columns size themselves with `flex-basis` rather than `width` because
they live in a flex container, so `WP_Theme_JSON` converts the computed
`width` declaration and pins `flex-grow` to `0`. This runs at the block
level, on block style variations, and on variation styles set within a
responsive breakpoint.

The block.json and theme.json changes arrive separately with the next
Gutenberg package update, following the Button block migration.

Developed in: WordPress/gutenberg#76684

See #66055.
@aaronrobertshaw
aaronrobertshaw marked this pull request as ready for review September 6, 2026 10:44
@aaronrobertshaw

Copy link
Copy Markdown
Contributor Author

I've updated this now as well for responsive styles and states. So should be ready enough for an initial review.

@ramonjd ramonjd left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tested all the steps and things are working as described 🎉

✅ migrations take place on save
✅ widths are preserved on the transforms.
✅ theme.json styles are applied


While testing I think I found a bug, but I think it's existing and only made obvious by this PR:

  1. Insert a columns block, e.g., 33/66
  2. See that the widths of the child column blocks are 33% and 66% respectively
  3. Select child column blocks, e.g., in the list view and apply a background
  4. The second column's width changes from 66% to 33%
Kapture.2026-09-07.at.14.51.08.mp4

After a conversation with my robot, I discovered that multi-selection sends one attributes object to every selected block, and the reducer merges it shallowly.

So the style from the block that renders the control replaces the other block's style objects fully.

Now that column width lives in style.dimensions.width, setting a background on two columns copies the first one's width over the second.

I can reproduce on trunk with core/button, so not a blocker here.

I think maybe we'd could only update the attributes of the other blocks if something has changed.

Comment thread packages/block-library/src/column/utils.js

@tellthemachines tellthemachines left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I gave this a test run and it's mostly working fine, except for responsive behaviour. Aside from the issue with block instances I commented on below, we have a specificity problem to deal with 😅 relative to the default responsive styles of the columns block:

@media (max-width: 781px) {
    .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
      flex-basis: 100% !important;
    }
}

These currently override both the global viewport state styles and the per-instance ones. I'm not sure there's much that can be done about the global ones, because they shouldn't use !important, but for the instance ones we could probably make the selector itself more specific.
It would be better if we could reduce the specificity of that default rule, but that would risk causing breakage of existing websites that rely on it.

A consequence of being able to set width globally for Column is that, if it is set, it's no longer possible to unset the width of a Column instance to make it take up the remaining space of its container, so instead of this:

Image

we end up with this (where the second column obtains its width from global styles):

Image

Not sure how best to fix that; perhaps making the unset value explicitly output flex-basis: 0 and flex-grow:1? But that shouldn't really be blocking for this PR; I suspect it's unlikely that global width on Column will be a popular setting.

Comment thread lib/class-wp-theme-json-gutenberg.php Outdated
@aaronrobertshaw
aaronrobertshaw force-pushed the aaronrobertshaw/column-width-support branch from 5a49497 to ef5b666 Compare September 20, 2026 12:32
@github-actions github-actions Bot added the [Package] Block editor /packages/block-editor label Sep 20, 2026
@aaronrobertshaw

aaronrobertshaw commented Sep 20, 2026 •

Copy link
Copy Markdown
Contributor Author

I believe all the feedback to date has been addressed, with tests included. I've also rebased this on trunk for good measure.

Preset slugs

Used getCSSValueFromRawStyle as suggested, but in getDimensionPresetCssVar rather than in the column, so there is one copy of the parsing instead of three.

Instance state widths

Moved this out of the class and into lib/block-supports/dimensions.php as a plain function, as suggested. It is called from WP_Theme_JSON_Gutenberg and gutenberg_add_block_state_style_rule. The JS mirror is exported for the editor's state CSS, which needed the same patch that was flagged. theme.json state styles already converted, so they are untouched.

The !important stacking rule

I ultimately decided to try an alternative approach here. Rather than raise the state selector, the stacking rule is now wrapped in :root :where() so it sits at the same specificity as the rest of the global styles output. Both rules use !important, so it comes back to specificity, and at one class the state rule wins on source order.

Unsetting a width under a global one

Thanks for the suggestion on this one @tellthemachines.

It now outputs flex-basis: 0 and flex-grow: 1 as suggested, but packaged as a Fill width preset so there is something to select. It also ships default width presets for the column, a little like the Button block does. I'm definitely open to feedback on this approach though.

It does change the Width control from a plain unit control into a preset control, but that lets Fill work the same way as any other preset.

Multi-selection

I'm not sure the proposed fix here holds up. Adding a background changes style, so a changed check passes and the first block's width still rides along inside the same object.

It might need a per-leaf diff, but I can also see other cases and other blocks where we do want a blanket copy of styles. I'm honestly not sure on the best course here.

Screenshots

Fixed 200px, Fill, fixed 200px. Only the middle column grows.

Three columns, the first and third at a fixed 200px and the middle one set to Fill, with only the middle column growing

Fill selected in the Width control.

The column Width control with the Fill preset selected

A global column width of 25%, without and with Fill on the second column.

Two rows compared: without Fill the second column takes the global 25%, with Fill it takes the remaining space

A preset with a camelCase slug now resolves.

A column sized by a preset with a camelCase slug, resolving to its declared width

A mobile state width at a 400px viewport. The first column keeps its 75%, the second still stacks.

A 400px viewport beside the desktop view, where the first column keeps its 75% mobile width and the second stacks

@aaronrobertshaw
aaronrobertshaw force-pushed the aaronrobertshaw/column-width-support branch from ef5b666 to 010dcb3 Compare September 20, 2026 23:17
Comment thread lib/theme.json
"width": true,
"dimensionSizes": [
{
"name": "Fill",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fill feels wrong as a preset, because presets are usually discrete values that can be configured by a theme, and in this case if a theme were to override these presets we’d lose what should be base functionality for this control. The way presets are displayed in the UI also makes it very weird - you go from fill to 25%, and the Column jumps from wide to small again.

I think it’s OK to leave this out for now - as I mentioned before, this only becomes a problem if you set a global width value for Column, which feels unlikely because most sites would need a range of different column widths (Or we could disallow global width for Column perhaps).

This does raise the question of whether using the child layout controls isn’t more appropriate here, because the problem of allowing both fill and fixed widths is already solved there. Columns is always a flex layout and Column blocks can only exist within it. Plus, child layout controls already work with viewport states, so it could probably be done fairly easily with only some specificity overrides needed for those legacy responsive Column styles.

const getRowInnerBlocks = ( innerBlocks ) => {
const columnWidths = innerBlocks.map( ( column ) => {
return getColumnWidth( column?.attributes?.width );
return normalizeWidth( column?.attributes?.style?.dimensions?.width );

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Saw this while converting columns to rows.

For two columns, choose the 25% and 75% presets, then transform columns into rows.

var:preset|dimension|75 is passed unchanged and becomes in the block attrs.

That value is used unparsed in the flex-basis rule:

Image

Should that value be resolved here?

export function hasExplicitPercentColumnWidths( blocks ) {
return blocks.every( ( block ) => {
const blockWidth = block.attributes.width;
const blockWidth = block.attributes?.style?.dimensions?.width;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this match presets? I'm seeing a difference against trunk for the case of 2 x cols at 50% width. If I reduce the number of cols to 1 it no longer expands to 100%:

2026-09-23.17.22.49.mp4

Replaces the bespoke `width` attribute with `dimensions.width`, so the
column width is set from the Dimensions panel and can be styled from
theme.json and Global Styles. This mirrors how `core/button` handles its
own width, including `__experimentalSkipSerialization`.

Deprecations migrate the numeric and string forms of the old attribute.
Existing front end markup is unaffected because the block is static and
keeps its inline `flex-basis`.

Callers that built columns with the old attribute are updated: the block
variations, the column count control and the Comments block inner blocks
template.
A width set on `core/column` in theme.json or Global Styles had no effect.
Three things were missing.

`settings.blocks.core/column.dimensions.width` is now enabled in
`lib/theme.json`. Block supports only ever disable that setting, so
without it the Dimensions panel never rendered the width control.

`WP_Theme_JSON` and the style engine rewrite the generated `width`
declaration to `flex-basis` and add `flex-grow: 0`, because a column sizes
itself within a flex container.

The default flex sizing in `style.scss` now uses the same `:root :where()`
format as the global styles output, so the generated rules win on source
order. It previously sat at a higher specificity and overrode them.
The Row and Grid transforms still read and wrote the old `width`
attribute, so a column's width was dropped when converting in either
direction.

They also copy a column's styles onto the Group they create. Now that the
width lives in `style.dimensions.width` it rode along, and rendered as a
`width` on the Group. It is stripped instead, matching the previous
behaviour: Grid drops it, Row converts it to the child layout's
`flexSize`.
Sets a width from the Dimensions panel and asserts it is written to
`style.dimensions.width`. The existing width redistribution tests are
updated to the new attribute shape.
Column widths set on a block style variation within a breakpoint were
output as `width` rather than `flex-basis`, so they had no effect. The
breakpoint loop inside the variation branch computes its declarations on
its own path and never reached the existing conversion.

Adds the missing call site, plus PHP coverage for column widths at the
block level, within a breakpoint, and on a style variation.
The column width was extracted by deleting `dimensions.width` from the
node's styles. Those styles are a live reference into the global styles
tree, so the render pass mutated its caller's data.

Replaces it with a helper that rewrites the generated declarations
instead, mirroring `WP_Theme_JSON_Gutenberg::update_column_width_declarations`.
Every node type passes through `renderStylesNode`, so responsive and
style variation widths are covered by the one call site.
…support

Tracks the Core PR that backports the `WP_Theme_JSON` changes.
`getDimensionPresetCssVar` built the custom property from the raw slug,
but both the PHP and JS sides kebab-case it when they declare it. A slug
such as `wideColumn` or `size2` therefore resolved to a property that was
never declared, and whatever consumed it got no value.

Delegates to the style engine's `getCSSValueFromRawStyle`, which already
handles the conversion, rather than parsing the prefix again here.
A width set for a viewport state on a single column was output as
`width`, which does nothing to a flex child, so the value never took
effect. Theme.json state styles already converted; this is the instance
path, on the front end in `gutenberg_add_block_state_style_rule` and in
the editor's state CSS.

The conversion was a private method on `WP_Theme_JSON_Gutenberg`, which
`states.php` cannot reach, and a module-private function in the global
styles engine, which `block-editor` cannot import. Moves the PHP copy to
`lib/block-supports/dimensions.php` as a plain function and exports the
JS mirror, so each language has one place both callers share.
Once a column width is set in theme.json or Global Styles, every column
inherits it and there is no way to say "no width, take the remaining
space". Adds width presets for the column, following the pattern
`core/button` already uses, including a Fill preset that outputs
`flex-basis: 0` and `flex-grow: 1`.

Columns with a width still keep it and do not grow, so a row of fixed,
fill, fixed behaves as expected. Only a filling column writes
`flex-grow` inline; the rest rely on the existing `[style*="flex-basis"]`
rule, which leaves existing markup unchanged.

The Fill preset's size is `auto` rather than `0` because the width
control resolves a preset to its size before matching it back to a slug,
and `0` is the sentinel for its built-in "None" option. With a size of
`0` the control showed None instead of Fill.

This turns the column's Width control from a plain unit input into a
preset control.
Below 782px the columns stylesheet forces `flex-basis: 100% !important`
so columns stack. Block instance state styles are also `!important`, so
the two compete inside the important tier, where the stacking rule's
three classes beat the state rule's single hashed class. A width set for
the mobile or tablet state was therefore discarded.

Wraps the stacking selector in `:root :where()`, so it sits at the same
specificity as the rest of the global styles output and a state width
wins on source order. State styles always print after the block library
stylesheet, on the front end and in the editor canvas.

Stacking itself is unchanged: `!important` still beats the inline width
and any global styles width, because important beats normal whatever the
specificity.
@aaronrobertshaw
aaronrobertshaw force-pushed the aaronrobertshaw/column-width-support branch from 010dcb3 to 0362cfd Compare October 13, 2026 04:41

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

[Block] Columns Affects the Columns Block [Feature] Design Tools Tools that impact the appearance of blocks both to expand the number of tools and improve the experi [Package] Block editor /packages/block-editor [Package] Block library /packages/block-library [Type] Enhancement A suggestion for improvement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants