Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More consistent root padding #60715

Merged
merged 17 commits into from
May 28, 2024
Merged

Conversation

richtabor
Copy link
Member

@richtabor richtabor commented Apr 12, 2024

Closes #60308.

I'm using this gist as a basis for testing. The content should have the same layout behavior throughout WordPress.

Why

Patterns today, even in Twenty Twenty Four, have to hard-code left and right padding values into theme patterns, so that patterns render properly with left and right spacing anywhere they were used.

People creating patterns on their sites are required to do the same, even though it's not clear. In some instances when creating a pattern the outer padding is expressed as expected, but when you view that pattern in a focus view, it's not.

Here's why that's not ideal:

  1. There are current inconsistencies with when, and where, global padding gets applied, including targeting direct blocks. These can be simplified, resolving the "missing" outer padding where expected, without changing the end result of a site (much, if any). For example, patterns and template parts in the Site Editor don't show outer padding, but they're rendered within templates and on the front-end.
  2. The Global Styles > Layout > Padding control for assigning left and right outer padding across the site is no longer connected to any patterns inserted on the site, now —or ever. If a user wants to change the site padding, they have to change it on each individual pattern inserted on the site or fork and modify all patterns with a different value. The only exception is if the theme designer manually places the outer padding variable within each pattern, which seems like an unnecessary burden that we can alleviate—and even then, we can't assume users will know how to do this when they create their own patterns.
  3. A pattern I insert from one theme, like Twenty Twenty Four, will always have the hard-coded pattern values associated with it. It will almost never look like it can belong placed on a page with another theme active, if that second theme uses any different value for padding (which is highly likely). It's fine if a pattern explicitly opts to include padding (opting out of global padding, just as if it opts out of a default font size), but out-of-the-box, outer padding should be applied by default where expected.
  4. The same as 3, but for patterns in the Patterns Directory. If we can build patterns without having to scope the left and right outer padding values, then each pattern becomes much more viable across the design library of WordPress itself.

Testing Instructions

  1. Open the Site Editor.
  2. Select the header template part's inner group block.
  3. Remove any padding left/right from the group within.
  4. See global padding is applied.
  5. Select the header template part.
  6. Select "Edit" to view the header in a focus mode.
  7. See global padding is still applied.
  8. Select the global styles icon in the editor header to open Global Styles.
  9. Select the "Layout" menu item.
  10. Change the left/right padding of the site to 200px.
  11. See the padding of the header reflect 200px.

Then do the same testing, but with these two sets of block markup:

<!-- wp:columns {"style":{"spacing":{"blockGap":{"top":"0","left":"0"}}}} -->
<div class="wp-block-columns"><!-- wp:column {"width":"300px","backgroundColor":"accent"} -->
<div class="wp-block-column has-accent-background-color has-background" style="flex-basis:300px"><!-- wp:paragraph -->
<p>sidebar</p>
<!-- /wp:paragraph -->

<!-- wp:calendar /--></div>
<!-- /wp:column -->

<!-- wp:column {"width":"","backgroundColor":"accent-2","layout":{"type":"constrained"}} -->
<div class="wp-block-column has-accent-2-background-color has-background"><!-- wp:paragraph -->
<p>Main content area!!!!</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Veggies es bonus vobis, proinde vos postulo essum magis kohlrabi welsh onion daikon amaranth tatsoi tomatillo melon azuki bean garlic.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Gumbo beet greens corn soko endive gumbo gourd. Parsley shallot courgette tatsoi pea sprouts fava bean collard greens dandelion okra wakame tomato. Dandelion cucumber earthnut pea peanut soko zucchini.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Turnip greens yarrow ricebean rutabaga endive cauliflower sea lettuce kohlrabi amaranth water spinach avocado daikon napa cabbage asparagus winter purslane kale. Celery potato scallion desert raisin horseradish spinach carrot soko. Lotus root water spinach fennel kombu maize bamboo shoot green bean swiss chard seakale pumpkin onion chickpea gram corn pea. Brussels sprout coriander water chestnut gourd swiss chard wakame kohlrabi beetroot carrot watercress. Corn amaranth salsify bunya nuts nori azuki bean chickweed potato bell pepper artichoke.</p>
<!-- /wp:paragraph -->

<!-- wp:group {"align":"full","layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"space-between"}} -->
<div class="wp-block-group alignfull"><!-- wp:image {"id":212,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="http://localhost:8888/wp-content/uploads/2024/04/garden02-1024x768.jpg" alt="" class="wp-image-212"/></figure>
<!-- /wp:image -->

<!-- wp:image {"id":212,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="http://localhost:8888/wp-content/uploads/2024/04/garden02-1024x768.jpg" alt="" class="wp-image-212"/></figure>
<!-- /wp:image -->

<!-- wp:image {"id":212,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="http://localhost:8888/wp-content/uploads/2024/04/garden02-1024x768.jpg" alt="" class="wp-image-212"/></figure>
<!-- /wp:image --></div>
<!-- /wp:group -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Celery chicory earthnut pea potato.</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Turnip greens yarrow ricebean rutabaga endive cauliflower sea lettuce kohlrabi amaranth water spinach avocado daikon napa cabbage asparagus winter purslane kale. Celery potato scallion desert raisin horseradish spinach carrot soko. Lotus root water spinach fennel kombu maize bamboo shoot green bean swiss chard seakale pumpkin onion chickpea gram corn pea. Brussels sprout coriander water chestnut gourd swiss chard wakame kohlrabi beetroot carrot watercress. Corn amaranth salsify bunya nuts nori azuki bean chickweed potato bell pepper artichoke.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":168,"sizeSlug":"large","linkDestination":"none","align":"full"} -->
<figure class="wp-block-image alignfull size-large"><img src="http://localhost:8888/wp-content/uploads/2024/04/garden01-1024x768.jpg" alt="" class="wp-image-168"/></figure>
<!-- /wp:image --></div>
<!-- /wp:column --></div>
<!-- /wp:columns -->
<!-- wp:group {"style":{"spacing":{"blockGap":"0"}},"layout":{"type":"flex","flexWrap":"nowrap","verticalAlignment":"stretch"}} -->
<div class="wp-block-group"><!-- wp:group {"style":{"layout":{"selfStretch":"fill","flexSize":null}},"backgroundColor":"accent-2","layout":{"type":"constrained"}} -->
<div class="wp-block-group has-accent-2-background-color has-background"><!-- wp:heading -->
<h2 class="wp-block-heading">Main content area</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Pea horseradish azuki bean lettuce avocado asparagus okra. Kohlrabi radish okra azuki bean corn fava bean mustard tigernut jícama green bean celtuce collard greens avocado quandong fennel gumbo black-eyed pea. Grape silver beet watercress potato tigernut corn groundnut. Chickweed okra pea winter purslane coriander yarrow sweet pepper radish garlic brussels sprout groundnut summer purslane earthnut pea tomato spring onion azuki bean gourd. Gumbo kakadu plum komatsuna black-eyed pea green bean zucchini gourd winter purslane silver beet rock melon radish asparagus spinach.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":212,"sizeSlug":"large","linkDestination":"none","align":"full"} -->
<figure class="wp-block-image alignfull size-large"><img src="http://localhost:8888/wp-content/uploads/2024/04/garden02-1024x768.jpg" alt="" class="wp-image-212"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Beetroot water spinach okra water chestnut ricebean pea catsear courgette summer purslane. Water spinach arugula pea tatsoi aubergine spring onion bush tomato kale radicchio turnip chicory salsify pea sprouts fava bean. Dandelion zucchini burdock yarrow chickpea dandelion sorrel courgette turnip greens tigernut soybean radish artichoke wattle seed endive groundnut broccoli arugula.</p>
<!-- /wp:paragraph --></div>
<!-- /wp:group -->

<!-- wp:group {"style":{"layout":{"selfStretch":"fixed","flexSize":"300px"},"spacing":{"padding":{"top":"0","bottom":"0","left":"0","right":"0"}}},"backgroundColor":"accent","layout":{"type":"flex","orientation":"vertical","verticalAlignment":"space-between","justifyContent":"center"}} -->
<div class="wp-block-group has-accent-background-color has-background" style="padding-top:0;padding-right:0;padding-bottom:0;padding-left:0"><!-- wp:heading -->
<h2 class="wp-block-heading">sidebar!!</h2>
<!-- /wp:heading -->

<!-- wp:calendar /--></div>
<!-- /wp:group --></div>
<!-- /wp:group -->

Key Results

Fullwidth:

  • Fullwidth blocks are always fullwidth on the front-end, even nested fullwidth.
  • Fullwidth blocks are always fullwidth on the block editor, even nested fullwidth.
  • Fullwidth blocks are always fullwidth within a page in the Site Editor, even nested fullwidth.
  • Fullwidth blocks are always fullwidth in focus view, even nested fullwidth.

Application of outer padding:

  • Outer padding is effectively applied to all blocks within constrained layouts.
  • Custom padding is removed from fullwidth blocks within fullwidth blocks, always making them viewport-to-viewport fullwidth with custom padding on parent group blocks (abstracted as a separate fix in Apply negative margins for alignfull children of blocks with custom padding set #60716).
  • Nested content width blocks do not get outer padding applied unnecessarily.

Copy link

github-actions bot commented Apr 12, 2024

Size Change: -75 B (0%)

Total Size: 1.74 MB

Filename Size Change
build/block-editor/index.min.js 260 kB -75 B (-0.03%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 955 B
build/annotations/index.min.js 2.27 kB
build/api-fetch/index.min.js 2.32 kB
build/autop/index.min.js 2.1 kB
build/blob/index.min.js 578 B
build/block-directory/index.min.js 7.29 kB
build/block-directory/style-rtl.css 1.03 kB
build/block-directory/style.css 1.03 kB
build/block-editor/content-rtl.css 4.58 kB
build/block-editor/content.css 4.57 kB
build/block-editor/default-editor-styles-rtl.css 395 B
build/block-editor/default-editor-styles.css 395 B
build/block-editor/style-rtl.css 15.5 kB
build/block-editor/style.css 15.5 kB
build/block-library/blocks/archives/editor-rtl.css 61 B
build/block-library/blocks/archives/editor.css 60 B
build/block-library/blocks/archives/style-rtl.css 90 B
build/block-library/blocks/archives/style.css 90 B
build/block-library/blocks/audio/editor-rtl.css 150 B
build/block-library/blocks/audio/editor.css 150 B
build/block-library/blocks/audio/style-rtl.css 122 B
build/block-library/blocks/audio/style.css 122 B
build/block-library/blocks/audio/theme-rtl.css 126 B
build/block-library/blocks/audio/theme.css 126 B
build/block-library/blocks/avatar/editor-rtl.css 116 B
build/block-library/blocks/avatar/editor.css 116 B
build/block-library/blocks/avatar/style-rtl.css 104 B
build/block-library/blocks/avatar/style.css 104 B
build/block-library/blocks/block/editor-rtl.css 277 B
build/block-library/blocks/block/editor.css 277 B
build/block-library/blocks/button/editor-rtl.css 307 B
build/block-library/blocks/button/editor.css 307 B
build/block-library/blocks/button/style-rtl.css 539 B
build/block-library/blocks/button/style.css 539 B
build/block-library/blocks/buttons/editor-rtl.css 337 B
build/block-library/blocks/buttons/editor.css 337 B
build/block-library/blocks/buttons/style-rtl.css 332 B
build/block-library/blocks/buttons/style.css 332 B
build/block-library/blocks/calendar/style-rtl.css 239 B
build/block-library/blocks/calendar/style.css 239 B
build/block-library/blocks/categories/editor-rtl.css 113 B
build/block-library/blocks/categories/editor.css 112 B
build/block-library/blocks/categories/style-rtl.css 124 B
build/block-library/blocks/categories/style.css 124 B
build/block-library/blocks/code/editor-rtl.css 53 B
build/block-library/blocks/code/editor.css 53 B
build/block-library/blocks/code/style-rtl.css 121 B
build/block-library/blocks/code/style.css 121 B
build/block-library/blocks/code/theme-rtl.css 124 B
build/block-library/blocks/code/theme.css 124 B
build/block-library/blocks/columns/editor-rtl.css 108 B
build/block-library/blocks/columns/editor.css 108 B
build/block-library/blocks/columns/style-rtl.css 421 B
build/block-library/blocks/columns/style.css 421 B
build/block-library/blocks/comment-author-avatar/editor-rtl.css 125 B
build/block-library/blocks/comment-author-avatar/editor.css 125 B
build/block-library/blocks/comment-content/style-rtl.css 92 B
build/block-library/blocks/comment-content/style.css 92 B
build/block-library/blocks/comment-template/style-rtl.css 199 B
build/block-library/blocks/comment-template/style.css 198 B
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css 123 B
build/block-library/blocks/comments-pagination-numbers/editor.css 121 B
build/block-library/blocks/comments-pagination/editor-rtl.css 222 B
build/block-library/blocks/comments-pagination/editor.css 209 B
build/block-library/blocks/comments-pagination/style-rtl.css 235 B
build/block-library/blocks/comments-pagination/style.css 231 B
build/block-library/blocks/comments-title/editor-rtl.css 75 B
build/block-library/blocks/comments-title/editor.css 75 B
build/block-library/blocks/comments/editor-rtl.css 840 B
build/block-library/blocks/comments/editor.css 839 B
build/block-library/blocks/comments/style-rtl.css 637 B
build/block-library/blocks/comments/style.css 636 B
build/block-library/blocks/cover/editor-rtl.css 671 B
build/block-library/blocks/cover/editor.css 674 B
build/block-library/blocks/cover/style-rtl.css 1.67 kB
build/block-library/blocks/cover/style.css 1.66 kB
build/block-library/blocks/details/editor-rtl.css 65 B
build/block-library/blocks/details/editor.css 65 B
build/block-library/blocks/details/style-rtl.css 86 B
build/block-library/blocks/details/style.css 86 B
build/block-library/blocks/embed/editor-rtl.css 312 B
build/block-library/blocks/embed/editor.css 312 B
build/block-library/blocks/embed/style-rtl.css 410 B
build/block-library/blocks/embed/style.css 410 B
build/block-library/blocks/embed/theme-rtl.css 126 B
build/block-library/blocks/embed/theme.css 126 B
build/block-library/blocks/file/editor-rtl.css 326 B
build/block-library/blocks/file/editor.css 327 B
build/block-library/blocks/file/style-rtl.css 280 B
build/block-library/blocks/file/style.css 281 B
build/block-library/blocks/file/view.min.js 324 B
build/block-library/blocks/footnotes/style-rtl.css 201 B
build/block-library/blocks/footnotes/style.css 199 B
build/block-library/blocks/form-input/editor-rtl.css 227 B
build/block-library/blocks/form-input/editor.css 227 B
build/block-library/blocks/form-input/style-rtl.css 343 B
build/block-library/blocks/form-input/style.css 343 B
build/block-library/blocks/form-submission-notification/editor-rtl.css 340 B
build/block-library/blocks/form-submission-notification/editor.css 340 B
build/block-library/blocks/form-submit-button/style-rtl.css 69 B
build/block-library/blocks/form-submit-button/style.css 69 B
build/block-library/blocks/form/view.min.js 471 B
build/block-library/blocks/freeform/editor-rtl.css 2.61 kB
build/block-library/blocks/freeform/editor.css 2.61 kB
build/block-library/blocks/gallery/editor-rtl.css 962 B
build/block-library/blocks/gallery/editor.css 965 B
build/block-library/blocks/gallery/style-rtl.css 1.72 kB
build/block-library/blocks/gallery/style.css 1.72 kB
build/block-library/blocks/gallery/theme-rtl.css 108 B
build/block-library/blocks/gallery/theme.css 108 B
build/block-library/blocks/group/editor-rtl.css 403 B
build/block-library/blocks/group/editor.css 403 B
build/block-library/blocks/group/style-rtl.css 103 B
build/block-library/blocks/group/style.css 103 B
build/block-library/blocks/group/theme-rtl.css 78 B
build/block-library/blocks/group/theme.css 78 B
build/block-library/blocks/heading/style-rtl.css 189 B
build/block-library/blocks/heading/style.css 189 B
build/block-library/blocks/html/editor-rtl.css 336 B
build/block-library/blocks/html/editor.css 337 B
build/block-library/blocks/image/editor-rtl.css 891 B
build/block-library/blocks/image/editor.css 891 B
build/block-library/blocks/image/style-rtl.css 1.52 kB
build/block-library/blocks/image/style.css 1.52 kB
build/block-library/blocks/image/theme-rtl.css 137 B
build/block-library/blocks/image/theme.css 137 B
build/block-library/blocks/image/view.min.js 1.54 kB
build/block-library/blocks/latest-comments/style-rtl.css 357 B
build/block-library/blocks/latest-comments/style.css 357 B
build/block-library/blocks/latest-posts/editor-rtl.css 237 B
build/block-library/blocks/latest-posts/editor.css 236 B
build/block-library/blocks/latest-posts/style-rtl.css 512 B
build/block-library/blocks/latest-posts/style.css 512 B
build/block-library/blocks/list/style-rtl.css 88 B
build/block-library/blocks/list/style.css 88 B
build/block-library/blocks/media-text/editor-rtl.css 306 B
build/block-library/blocks/media-text/editor.css 305 B
build/block-library/blocks/media-text/style-rtl.css 505 B
build/block-library/blocks/media-text/style.css 503 B
build/block-library/blocks/more/editor-rtl.css 431 B
build/block-library/blocks/more/editor.css 431 B
build/block-library/blocks/navigation-link/editor-rtl.css 668 B
build/block-library/blocks/navigation-link/editor.css 669 B
build/block-library/blocks/navigation-link/style-rtl.css 193 B
build/block-library/blocks/navigation-link/style.css 192 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 296 B
build/block-library/blocks/navigation-submenu/editor.css 295 B
build/block-library/blocks/navigation/editor-rtl.css 2.26 kB
build/block-library/blocks/navigation/editor.css 2.26 kB
build/block-library/blocks/navigation/style-rtl.css 2.26 kB
build/block-library/blocks/navigation/style.css 2.25 kB
build/block-library/blocks/navigation/view.min.js 1.03 kB
build/block-library/blocks/nextpage/editor-rtl.css 395 B
build/block-library/blocks/nextpage/editor.css 395 B
build/block-library/blocks/page-list/editor-rtl.css 377 B
build/block-library/blocks/page-list/editor.css 377 B
build/block-library/blocks/page-list/style-rtl.css 175 B
build/block-library/blocks/page-list/style.css 175 B
build/block-library/blocks/paragraph/editor-rtl.css 235 B
build/block-library/blocks/paragraph/editor.css 235 B
build/block-library/blocks/paragraph/style-rtl.css 335 B
build/block-library/blocks/paragraph/style.css 335 B
build/block-library/blocks/post-author/style-rtl.css 175 B
build/block-library/blocks/post-author/style.css 176 B
build/block-library/blocks/post-comments-form/editor-rtl.css 96 B
build/block-library/blocks/post-comments-form/editor.css 96 B
build/block-library/blocks/post-comments-form/style-rtl.css 508 B
build/block-library/blocks/post-comments-form/style.css 508 B
build/block-library/blocks/post-content/editor-rtl.css 74 B
build/block-library/blocks/post-content/editor.css 74 B
build/block-library/blocks/post-date/style-rtl.css 61 B
build/block-library/blocks/post-date/style.css 61 B
build/block-library/blocks/post-excerpt/editor-rtl.css 71 B
build/block-library/blocks/post-excerpt/editor.css 71 B
build/block-library/blocks/post-excerpt/style-rtl.css 141 B
build/block-library/blocks/post-excerpt/style.css 141 B
build/block-library/blocks/post-featured-image/editor-rtl.css 734 B
build/block-library/blocks/post-featured-image/editor.css 732 B
build/block-library/blocks/post-featured-image/style-rtl.css 342 B
build/block-library/blocks/post-featured-image/style.css 342 B
build/block-library/blocks/post-navigation-link/style-rtl.css 215 B
build/block-library/blocks/post-navigation-link/style.css 214 B
build/block-library/blocks/post-template/editor-rtl.css 99 B
build/block-library/blocks/post-template/editor.css 98 B
build/block-library/blocks/post-template/style-rtl.css 397 B
build/block-library/blocks/post-template/style.css 396 B
build/block-library/blocks/post-terms/style-rtl.css 96 B
build/block-library/blocks/post-terms/style.css 96 B
build/block-library/blocks/post-time-to-read/style-rtl.css 69 B
build/block-library/blocks/post-time-to-read/style.css 69 B
build/block-library/blocks/post-title/style-rtl.css 100 B
build/block-library/blocks/post-title/style.css 100 B
build/block-library/blocks/preformatted/style-rtl.css 125 B
build/block-library/blocks/preformatted/style.css 125 B
build/block-library/blocks/pullquote/editor-rtl.css 135 B
build/block-library/blocks/pullquote/editor.css 135 B
build/block-library/blocks/pullquote/style-rtl.css 344 B
build/block-library/blocks/pullquote/style.css 343 B
build/block-library/blocks/pullquote/theme-rtl.css 168 B
build/block-library/blocks/pullquote/theme.css 168 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 122 B
build/block-library/blocks/query-pagination-numbers/editor.css 121 B
build/block-library/blocks/query-pagination/editor-rtl.css 221 B
build/block-library/blocks/query-pagination/editor.css 211 B
build/block-library/blocks/query-pagination/style-rtl.css 288 B
build/block-library/blocks/query-pagination/style.css 284 B
build/block-library/blocks/query-title/style-rtl.css 63 B
build/block-library/blocks/query-title/style.css 63 B
build/block-library/blocks/query/editor-rtl.css 486 B
build/block-library/blocks/query/editor.css 486 B
build/block-library/blocks/query/view.min.js 958 B
build/block-library/blocks/quote/style-rtl.css 237 B
build/block-library/blocks/quote/style.css 237 B
build/block-library/blocks/quote/theme-rtl.css 223 B
build/block-library/blocks/quote/theme.css 226 B
build/block-library/blocks/read-more/style-rtl.css 140 B
build/block-library/blocks/read-more/style.css 140 B
build/block-library/blocks/rss/editor-rtl.css 101 B
build/block-library/blocks/rss/editor.css 101 B
build/block-library/blocks/rss/style-rtl.css 289 B
build/block-library/blocks/rss/style.css 288 B
build/block-library/blocks/search/editor-rtl.css 184 B
build/block-library/blocks/search/editor.css 184 B
build/block-library/blocks/search/style-rtl.css 690 B
build/block-library/blocks/search/style.css 689 B
build/block-library/blocks/search/theme-rtl.css 114 B
build/block-library/blocks/search/theme.css 114 B
build/block-library/blocks/search/view.min.js 478 B
build/block-library/blocks/separator/editor-rtl.css 99 B
build/block-library/blocks/separator/editor.css 99 B
build/block-library/blocks/separator/style-rtl.css 248 B
build/block-library/blocks/separator/style.css 248 B
build/block-library/blocks/separator/theme-rtl.css 194 B
build/block-library/blocks/separator/theme.css 194 B
build/block-library/blocks/shortcode/editor-rtl.css 286 B
build/block-library/blocks/shortcode/editor.css 286 B
build/block-library/blocks/site-logo/editor-rtl.css 805 B
build/block-library/blocks/site-logo/editor.css 805 B
build/block-library/blocks/site-logo/style-rtl.css 218 B
build/block-library/blocks/site-logo/style.css 218 B
build/block-library/blocks/site-tagline/editor-rtl.css 86 B
build/block-library/blocks/site-tagline/editor.css 86 B
build/block-library/blocks/site-title/editor-rtl.css 124 B
build/block-library/blocks/site-title/editor.css 124 B
build/block-library/blocks/site-title/style-rtl.css 70 B
build/block-library/blocks/site-title/style.css 70 B
build/block-library/blocks/social-link/editor-rtl.css 335 B
build/block-library/blocks/social-link/editor.css 335 B
build/block-library/blocks/social-links/editor-rtl.css 683 B
build/block-library/blocks/social-links/editor.css 681 B
build/block-library/blocks/social-links/style-rtl.css 1.51 kB
build/block-library/blocks/social-links/style.css 1.51 kB
build/block-library/blocks/spacer/editor-rtl.css 350 B
build/block-library/blocks/spacer/editor.css 350 B
build/block-library/blocks/spacer/style-rtl.css 48 B
build/block-library/blocks/spacer/style.css 48 B
build/block-library/blocks/table/editor-rtl.css 395 B
build/block-library/blocks/table/editor.css 395 B
build/block-library/blocks/table/style-rtl.css 639 B
build/block-library/blocks/table/style.css 639 B
build/block-library/blocks/table/theme-rtl.css 146 B
build/block-library/blocks/table/theme.css 146 B
build/block-library/blocks/tag-cloud/style-rtl.css 265 B
build/block-library/blocks/tag-cloud/style.css 266 B
build/block-library/blocks/template-part/editor-rtl.css 393 B
build/block-library/blocks/template-part/editor.css 393 B
build/block-library/blocks/template-part/theme-rtl.css 112 B
build/block-library/blocks/template-part/theme.css 112 B
build/block-library/blocks/term-description/style-rtl.css 111 B
build/block-library/blocks/term-description/style.css 111 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B
build/block-library/blocks/text-columns/editor.css 95 B
build/block-library/blocks/text-columns/style-rtl.css 166 B
build/block-library/blocks/text-columns/style.css 166 B
build/block-library/blocks/verse/style-rtl.css 99 B
build/block-library/blocks/verse/style.css 99 B
build/block-library/blocks/video/editor-rtl.css 552 B
build/block-library/blocks/video/editor.css 555 B
build/block-library/blocks/video/style-rtl.css 185 B
build/block-library/blocks/video/style.css 185 B
build/block-library/blocks/video/theme-rtl.css 126 B
build/block-library/blocks/video/theme.css 126 B
build/block-library/classic-rtl.css 179 B
build/block-library/classic.css 179 B
build/block-library/common-rtl.css 1.11 kB
build/block-library/common.css 1.11 kB
build/block-library/editor-elements-rtl.css 75 B
build/block-library/editor-elements.css 75 B
build/block-library/editor-rtl.css 12.2 kB
build/block-library/editor.css 12.1 kB
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/index.min.js 218 kB
build/block-library/reset-rtl.css 472 B
build/block-library/reset.css 472 B
build/block-library/style-rtl.css 14.6 kB
build/block-library/style.css 14.6 kB
build/block-library/theme-rtl.css 703 B
build/block-library/theme.css 706 B
build/block-serialization-default-parser/index.min.js 1.12 kB
build/block-serialization-spec-parser/index.min.js 2.87 kB
build/blocks/index.min.js 51.8 kB
build/commands/index.min.js 15.2 kB
build/commands/style-rtl.css 953 B
build/commands/style.css 951 B
build/components/index.min.js 222 kB
build/components/style-rtl.css 12 kB
build/components/style.css 12 kB
build/compose/index.min.js 12.8 kB
build/core-commands/index.min.js 2.71 kB
build/core-data/index.min.js 72.5 kB
build/customize-widgets/index.min.js 10.9 kB
build/customize-widgets/style-rtl.css 1.36 kB
build/customize-widgets/style.css 1.36 kB
build/data-controls/index.min.js 640 B
build/data/index.min.js 9.01 kB
build/date/index.min.js 17.9 kB
build/deprecated/index.min.js 451 B
build/dom-ready/index.min.js 324 B
build/dom/index.min.js 4.65 kB
build/edit-post/classic-rtl.css 578 B
build/edit-post/classic.css 578 B
build/edit-post/index.min.js 14.5 kB
build/edit-post/style-rtl.css 2.45 kB
build/edit-post/style.css 2.44 kB
build/edit-site/index.min.js 210 kB
build/edit-site/style-rtl.css 12.2 kB
build/edit-site/style.css 12.2 kB
build/edit-widgets/index.min.js 17.5 kB
build/edit-widgets/style-rtl.css 4.18 kB
build/edit-widgets/style.css 4.18 kB
build/editor/index.min.js 92.1 kB
build/editor/style-rtl.css 8.78 kB
build/editor/style.css 8.78 kB
build/element/index.min.js 4.83 kB
build/escape-html/index.min.js 537 B
build/format-library/index.min.js 8.09 kB
build/format-library/style-rtl.css 493 B
build/format-library/style.css 492 B
build/hooks/index.min.js 1.55 kB
build/html-entities/index.min.js 448 B
build/i18n/index.min.js 3.58 kB
build/interactivity/debug.min.js 16.4 kB
build/interactivity/file.min.js 447 B
build/interactivity/image.min.js 1.67 kB
build/interactivity/index.min.js 13.3 kB
build/interactivity/navigation.min.js 1.17 kB
build/interactivity/query.min.js 740 B
build/interactivity/router.min.js 2.81 kB
build/interactivity/search.min.js 618 B
build/is-shallow-equal/index.min.js 527 B
build/keyboard-shortcuts/index.min.js 1.31 kB
build/keycodes/index.min.js 1.46 kB
build/list-reusable-blocks/index.min.js 2.14 kB
build/list-reusable-blocks/style-rtl.css 851 B
build/list-reusable-blocks/style.css 851 B
build/media-utils/index.min.js 2.92 kB
build/modules/importmap-polyfill.min.js 12.2 kB
build/notices/index.min.js 948 B
build/nux/index.min.js 1.58 kB
build/nux/style-rtl.css 748 B
build/nux/style.css 744 B
build/patterns/index.min.js 6.51 kB
build/patterns/style-rtl.css 595 B
build/patterns/style.css 595 B
build/plugins/index.min.js 1.81 kB
build/preferences-persistence/index.min.js 2.06 kB
build/preferences/index.min.js 2.9 kB
build/preferences/style-rtl.css 719 B
build/preferences/style.css 721 B
build/primitives/index.min.js 831 B
build/priority-queue/index.min.js 1.52 kB
build/private-apis/index.min.js 1 kB
build/react-i18n/index.min.js 629 B
build/react-refresh-entry/index.min.js 9.47 kB
build/react-refresh-runtime/index.min.js 6.78 kB
build/redux-routine/index.min.js 2.7 kB
build/reusable-blocks/index.min.js 2.72 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/rich-text/index.min.js 10.1 kB
build/router/index.min.js 1.96 kB
build/server-side-render/index.min.js 1.97 kB
build/shortcode/index.min.js 1.39 kB
build/style-engine/index.min.js 2.02 kB
build/token-list/index.min.js 582 B
build/url/index.min.js 3.74 kB
build/vendors/react-dom.min.js 42.8 kB
build/vendors/react-jsx-runtime.min.js 554 B
build/vendors/react.min.js 2.65 kB
build/viewport/index.min.js 964 B
build/warning/index.min.js 249 B
build/widgets/index.min.js 7.13 kB
build/widgets/style-rtl.css 1.17 kB
build/widgets/style.css 1.17 kB
build/wordcount/index.min.js 1.02 kB

compressed-size-action

Copy link

github-actions bot commented Apr 12, 2024

Flaky tests detected in e2a5570.
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.

🔍 Workflow run URL: https://github.com/WordPress/gutenberg/actions/runs/9217278261
📝 Reported issues:

@richtabor richtabor changed the title Try root padding exploration [WIP] Root padding exploration [WIP] Apr 13, 2024
@SaxonF
Copy link
Contributor

SaxonF commented Apr 16, 2024

layout-test.mp4

Tested this today. Keep in mind this is a difficult one to context switch to so I could be off base in my observations.

  • In the new version the root padding is applied to full width groups that have the "inner blocks use content width" toggle enabled. In the old version padding is not applied.
  • In the new version the root padding is not applied to full width groups that have the toggle disabled. In the old version padding is applied.

I'm guessing a lot of full width patterns will be designed with the toggle off but will still want global padding set. e.g. a full width grid. It's confusing to me why we are treating these differently.

If a [group block with inner block toggle enabled] is nested within a [full width group block that has inner block toggle disabled], should it have padding applied? In the old version it does, the new version doesn't.

image

Can we simplify and just say any full width group should have global padding applied by default?

These changes are an improvement but its still difficult to get a grasp for how global padding works. I understand why we do what we do but it does add a learning curve to WordPress' layout system vs tools like Figma/Framer/Webflow. What can we do to remove some of the "magic"? The Style Inheritance work aims to always show values within the inspector, even if they come from a global context. This will help with the whole unpredictable feeling of global padding.

It's important we also keep track of this which is part of broader efforts to move closer to a Figma like approach when it comes to layout and dimension controls.

@richtabor richtabor force-pushed the try/root-padding-explorations branch from 0f8c928 to 4948a58 Compare April 16, 2024 14:42
@richtabor
Copy link
Member Author

What can we do to remove some of the "magic"?

Yes, this is a big part of what I'm experimenting with here. Figure out what's expected vs. not.

In the new version the root padding is applied to full width groups that have the "inner blocks use content width" toggle enabled. In the old version padding is not applied.

Correct, with "content width" enabled, padding is applied to blocks within it. There is no change on desktop, only on mobile (where the padding is arguably missing). Fullwidth blocks are always viewport-to-viewport fullwidth.

Trunk / Proposed:

CleanShot 2024-04-16 at 11 00 23

CleanShot 2024-04-16 at 10 59 07

In the new version the root padding is not applied to full width groups that have the toggle disabled. In the old version padding is applied.

Not quite, here's where we were a bit smart with what's in trunk.

In the old version, elements (p, p,h1,h2,h3,h4,h5,h6,ul,ol) have outer padding added back exclusively, when within a fullwidth block. We can likely add this back, but exploration wise it was good to pull it out first.

Trunk / Proposed:

CleanShot 2024-04-16 at 11 07 21

I'm guessing a lot of full width patterns will be designed with the toggle off but will still want global padding set. e.g. a full width grid. It's confusing to me why we are treating these differently.

Can we simplify and just say any full width group should have global padding applied by default?

I like that idea. I wanted to try and get more stability around the concepts we have today, but I'd like to explore that as well. Essentially assuming outer padding applied to blocks within fullwidth blocks.

@richtabor
Copy link
Member Author

Can we simplify and just say any full width group should have global padding applied by default?

@SaxonF I updated the pr to try this out. It does feel nice not having the "Inner blocks content width" control feel like it's doing too much. It just makes inner blocks fill the available space, or abide by their own width controls.

We'd need to do a before/after to explore the delta with this.

full-w-padd.mp4

@SaxonF
Copy link
Contributor

SaxonF commented Apr 17, 2024

I prefer that approach because with the toggle disabled layout behaviour is much more like design tools that people will be familiar with where the "magic" is removed. We are just setting a default padding which makes these full width patterns transferrable.

When content is constrained/boxed we can be a little smarter with padding and width because its treated almost like a writing a flow. We can be a bit more opinionated as to what works best for long form content (e.g. "full width" groups are 100vw and bypass padding)

Copy link
Contributor

@tellthemachines tellthemachines left a comment

Choose a reason for hiding this comment

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

Thanks for trying this out!

Fullwidth blocks are always viewport-to-viewport fullwidth.

Just noting that full width blocks are the width of their container, not necessarily the viewport.

I'm seeing a few differences between editor and front end in this branch, so which is the intended approach? The editor generally looks good with the combinations I've tested, but the front end is very flaky, with padding applied to flex blocks and negative margins on children of blocks that have no padding:
Screenshot 2024-04-22 at 12 04 34 PM

Front end: the columns with coloured backgrounds were supposed to be full width

Editor is looking better:
Screenshot 2024-04-22 at 12 03 52 PM

@richtabor
Copy link
Member Author

@tellthemachines do you mind sharing the block markup you're using to test. Want to make sure we're 1:1.

@tellthemachines
Copy link
Contributor

Sure! I tested with a columns block containing a fixed width column, and another taking up all the remaining space:

Markup
<!-- wp:columns {"style":{"spacing":{"blockGap":{"top":"0","left":"0"}}}} -->
<div class="wp-block-columns"><!-- wp:column {"width":"300px","backgroundColor":"accent"} -->
<div class="wp-block-column has-accent-background-color has-background" style="flex-basis:300px"><!-- wp:paragraph -->
<p>sidebar</p>
<!-- /wp:paragraph -->

<!-- wp:calendar /--></div>
<!-- /wp:column -->

<!-- wp:column {"width":"","backgroundColor":"accent-2","layout":{"type":"constrained"}} -->
<div class="wp-block-column has-accent-2-background-color has-background"><!-- wp:paragraph -->
<p>Main content area!!!!</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Veggies es bonus vobis, proinde vos postulo essum magis kohlrabi welsh onion daikon amaranth tatsoi tomatillo melon azuki bean garlic.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Gumbo beet greens corn soko endive gumbo gourd. Parsley shallot courgette tatsoi pea sprouts fava bean collard greens dandelion okra wakame tomato. Dandelion cucumber earthnut pea peanut soko zucchini.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Turnip greens yarrow ricebean rutabaga endive cauliflower sea lettuce kohlrabi amaranth water spinach avocado daikon napa cabbage asparagus winter purslane kale. Celery potato scallion desert raisin horseradish spinach carrot soko. Lotus root water spinach fennel kombu maize bamboo shoot green bean swiss chard seakale pumpkin onion chickpea gram corn pea. Brussels sprout coriander water chestnut gourd swiss chard wakame kohlrabi beetroot carrot watercress. Corn amaranth salsify bunya nuts nori azuki bean chickweed potato bell pepper artichoke.</p>
<!-- /wp:paragraph -->

<!-- wp:group {"align":"full","layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"space-between"}} -->
<div class="wp-block-group alignfull"><!-- wp:image {"id":212,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="http://localhost:8888/wp-content/uploads/2024/04/garden02-1024x768.jpg" alt="" class="wp-image-212"/></figure>
<!-- /wp:image -->

<!-- wp:image {"id":212,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="http://localhost:8888/wp-content/uploads/2024/04/garden02-1024x768.jpg" alt="" class="wp-image-212"/></figure>
<!-- /wp:image -->

<!-- wp:image {"id":212,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large"><img src="http://localhost:8888/wp-content/uploads/2024/04/garden02-1024x768.jpg" alt="" class="wp-image-212"/></figure>
<!-- /wp:image --></div>
<!-- /wp:group -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Celery chicory earthnut pea potato.</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Turnip greens yarrow ricebean rutabaga endive cauliflower sea lettuce kohlrabi amaranth water spinach avocado daikon napa cabbage asparagus winter purslane kale. Celery potato scallion desert raisin horseradish spinach carrot soko. Lotus root water spinach fennel kombu maize bamboo shoot green bean swiss chard seakale pumpkin onion chickpea gram corn pea. Brussels sprout coriander water chestnut gourd swiss chard wakame kohlrabi beetroot carrot watercress. Corn amaranth salsify bunya nuts nori azuki bean chickweed potato bell pepper artichoke.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":168,"sizeSlug":"large","linkDestination":"none","align":"full"} -->
<figure class="wp-block-image alignfull size-large"><img src="http://localhost:8888/wp-content/uploads/2024/04/garden01-1024x768.jpg" alt="" class="wp-image-168"/></figure>
<!-- /wp:image --></div>
<!-- /wp:column --></div>
<!-- /wp:columns -->

I also created a pattern with a very similar layout except using Rows and Stacks instead of Columns:

Markup
<!-- wp:group {"style":{"spacing":{"blockGap":"0"}},"layout":{"type":"flex","flexWrap":"nowrap","verticalAlignment":"stretch"}} -->
<div class="wp-block-group"><!-- wp:group {"style":{"layout":{"selfStretch":"fill","flexSize":null}},"backgroundColor":"accent-2","layout":{"type":"constrained"}} -->
<div class="wp-block-group has-accent-2-background-color has-background"><!-- wp:heading -->
<h2 class="wp-block-heading">Main content area</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Pea horseradish azuki bean lettuce avocado asparagus okra. Kohlrabi radish okra azuki bean corn fava bean mustard tigernut jícama green bean celtuce collard greens avocado quandong fennel gumbo black-eyed pea. Grape silver beet watercress potato tigernut corn groundnut. Chickweed okra pea winter purslane coriander yarrow sweet pepper radish garlic brussels sprout groundnut summer purslane earthnut pea tomato spring onion azuki bean gourd. Gumbo kakadu plum komatsuna black-eyed pea green bean zucchini gourd winter purslane silver beet rock melon radish asparagus spinach.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":212,"sizeSlug":"large","linkDestination":"none","align":"full"} -->
<figure class="wp-block-image alignfull size-large"><img src="http://localhost:8888/wp-content/uploads/2024/04/garden02-1024x768.jpg" alt="" class="wp-image-212"/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Beetroot water spinach okra water chestnut ricebean pea catsear courgette summer purslane. Water spinach arugula pea tatsoi aubergine spring onion bush tomato kale radicchio turnip chicory salsify pea sprouts fava bean. Dandelion zucchini burdock yarrow chickpea dandelion sorrel courgette turnip greens tigernut soybean radish artichoke wattle seed endive groundnut broccoli arugula.</p>
<!-- /wp:paragraph --></div>
<!-- /wp:group -->

<!-- wp:group {"style":{"layout":{"selfStretch":"fixed","flexSize":"300px"},"spacing":{"padding":{"top":"0","bottom":"0","left":"0","right":"0"}}},"backgroundColor":"accent","layout":{"type":"flex","orientation":"vertical","verticalAlignment":"space-between","justifyContent":"center"}} -->
<div class="wp-block-group has-accent-background-color has-background" style="padding-top:0;padding-right:0;padding-bottom:0;padding-left:0"><!-- wp:heading -->
<h2 class="wp-block-heading">sidebar!!</h2>
<!-- /wp:heading -->

<!-- wp:calendar /--></div>
<!-- /wp:group --></div>
<!-- /wp:group -->

I tested both of these by placing them at the root of a template.

@richtabor richtabor force-pushed the try/root-padding-explorations branch from 6a00841 to 16769a5 Compare April 30, 2024 00:05
@richtabor
Copy link
Member Author

@tellthemachines would you mind giving this another run? I missed a conditional.

Editor Front-end
CleanShot 2024-04-29 at 20 03 24 CleanShot 2024-04-29 at 20 03 13
Editor Front-end
CleanShot 2024-04-29 at 20 02 20 CleanShot 2024-04-29 at 20 02 26

I'll do an audit of before/afters tomorrow to get a clearer picture, but I do know that this would change alignfull blocks with contents to have global padding.

Copy link
Contributor

@tellthemachines tellthemachines left a comment

Choose a reason for hiding this comment

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

Thanks for updating @richtabor! This is looking much better and front end now matches editor.

The one difference I'm finding with trunk that I don't believe is intended is the root padding class now being applied on all full width flex and grid blocks. This means that it's no longer possible to have e.g. a Gallery block going full width:

Screenshot 2024-05-01 at 2 37 38 PM

@bgardner
Copy link

How are we looking with this one? Would love to see it get merged at some point (and in 6.6) and would be happy to test along the way.

@richtabor richtabor force-pushed the try/root-padding-explorations branch from 7b88696 to cd2f2d5 Compare May 23, 2024 15:33
Copy link

github-actions bot commented May 23, 2024

This pull request has changed or added PHP files. Please confirm whether these changes need to be synced to WordPress Core, and therefore featured in the next release of WordPress.

If so, it is recommended to create a new Trac ticket and submit a pull request to the WordPress Core Github repository soon after this pull request is merged.

If you're unsure, you can always ask for help in the #core-editor channel in WordPress Slack.

Thank you! ❤️

View changed files
❔ lib/class-wp-theme-json-gutenberg.php
❔ phpunit/class-wp-theme-json-test.php

@richtabor
Copy link
Member Author

How are we looking with this one? Would love to see it get merged at some point (and in 6.6) and would be happy to test along the way.

I'm taking another look at it today, mind running it in a bit?

@bgardner
Copy link

@richtabor Yes, of course. Just LMK when it's ready and I'll throw it up via Playground.

@richtabor richtabor changed the title Root padding exploration [WIP] More consistent root padding May 23, 2024
@richtabor richtabor self-assigned this May 23, 2024
@richtabor richtabor added [Feature] Layout Layout block support, its UI controls, and style output. [Type] Enhancement A suggestion for improvement. labels May 23, 2024
@richtabor
Copy link
Member Author

Twenty Twenty Four

Demonstrating that there are no changes to existing patterns:

Patterns

Before After
CleanShot 2024-05-23 at 14 27 56CleanShot 2024-05-23 at 14 28 29CleanShot 2024-05-23 at 14 29 07 CleanShot 2024-05-23 at 14 31 17CleanShot 2024-05-23 at 14 30 20CleanShot 2024-05-23 at 14 30 42

Template Parts / Focus View

Before, editor After, editor
CleanShot 2024-05-23 at 14 33 49 CleanShot 2024-05-23 at 14 34 23

No changes on front-end:

Before, front-end After, front-end
CleanShot 2024-05-23 at 14 36 39 CleanShot 2024-05-23 at 14 36 02

@richtabor richtabor requested a review from tellthemachines May 23, 2024 20:06
@richtabor richtabor marked this pull request as ready for review May 23, 2024 20:06
@richtabor richtabor requested a review from ellatrix as a code owner May 23, 2024 20:06
@tellthemachines tellthemachines force-pushed the try/root-padding-explorations branch from 28ace51 to 4d4712e Compare May 28, 2024 06:08
@tellthemachines tellthemachines merged commit ad30941 into trunk May 28, 2024
63 checks passed
@tellthemachines tellthemachines deleted the try/root-padding-explorations branch May 28, 2024 06:43
@github-actions github-actions bot added this to the Gutenberg 18.5 milestone May 28, 2024
@tellthemachines
Copy link
Contributor

Changeset committed to core in https://core.trac.wordpress.org/changeset/58226. All done now! (except the JS changes which should go in with the next package update)

@fabiankaegy fabiankaegy added the Needs Dev Note Requires a developer note for a major WordPress release cycle label May 29, 2024
@juanmaguitar juanmaguitar mentioned this pull request May 29, 2024
49 tasks
carstingaxion pushed a commit to carstingaxion/gutenberg that referenced this pull request Jun 4, 2024
Unlinked contributors: bridgetwes.

Co-authored-by: richtabor <[email protected]>
Co-authored-by: tellthemachines <[email protected]>
Co-authored-by: SaxonF <[email protected]>
Co-authored-by: bgardner <[email protected]>
Co-authored-by: fabiankaegy <[email protected]>
Co-authored-by: mikemcalister <[email protected]>
@chrisbellboy
Copy link
Contributor

chrisbellboy commented Jun 11, 2024

Hey @tellthemachines @richtabor Great to see this cleanup done! However, the newly added alignfull and alignwide to:

.has-global-padding :where(.has-global-padding:not(.wp-block-block):not(.alignfull):not(.alignwide)) { padding-right: 0; padding-left: 0; };
has caused issues with several core FSE layouts. For example, in an FSE design for an internal A8C site where the content needs to be aligned left, the content block needs to be inside a group block, which is inside the main layout group wrapper block:

image

The content block is no longer aligning as expected, resulting instead in triple padding being applied to the sides of the content block! The base global padding, and then an extra one applied to each group wrapper block 😭

I can manually set the side padding for those group blocks to zero, but I'm mentioning it just in case this was an unintentional consequence that you'd want to take another look at 😊

P.S. I created a PR #62470 to fix the :not() markup as it currently isn't rendering due to :not() not allowing multiple classes inside, but if you agree that alignfull and alignwide should ultimately be excluded from this rule, I can submit a follow up one to remove them 👍

@chrisbellboy
Copy link
Contributor

Oh actually, TIL that :not() does allow multiple classes in a single selector since CSS Selectors Level 4 😮 Will close the PR 🤓

patil-vipul pushed a commit to patil-vipul/gutenberg that referenced this pull request Jun 17, 2024
Unlinked contributors: bridgetwes.

Co-authored-by: richtabor <[email protected]>
Co-authored-by: tellthemachines <[email protected]>
Co-authored-by: SaxonF <[email protected]>
Co-authored-by: bgardner <[email protected]>
Co-authored-by: fabiankaegy <[email protected]>
Co-authored-by: mikemcalister <[email protected]>
@tellthemachines
Copy link
Contributor

@juanmaguitar here's a dev note for this PR:
Cc @richtabor for technical review.

Root padding style updates

Root padding styles have been updated to address inconsistencies in pattern display and make the application of padding more predictable across different sets of markup. It’s now expected that:

  • Padding is applied to the outermost block with constrained layout (this is the layout enabled when “Inner blocks use content width” is set).
  • Padding is applied to all blocks with constrained layout that are full width or wide width.
  • Padding is applied to all blocks with constrained layout inside a full width flow layout (this is the layout enabled when “Inner blocks use content width” is unset) block.
  • Nested full width blocks will always be full width: a full width block inside another full width block will extend to the edges of the viewport.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Feature] Layout Layout block support, its UI controls, and style output. Needs Dev Note Requires a developer note for a major WordPress release cycle [Type] Enhancement A suggestion for improvement.
Projects
No open projects
Status: Done
Development

Successfully merging this pull request may close these issues.

Improve global padding to be more consistent
6 participants