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

Ensure bundled query patterns inherit correct layout settings #30506

Closed
wants to merge 5 commits into from

Conversation

kjellr
Copy link
Contributor

@kjellr kjellr commented Apr 5, 2021

The currently bundled query block patterns don't work nicely out of the box with the new alignments config as provided in #29335. When inserted into the root of the page, each block is full-width. This is especially noticeable for the "Large" query block pattern.

There are two options here:

  1. Leave them as is, and assume folks will add wrapping blocks to get the alignments right depending on their site's specific context.
  2. Add a Group block wrapper to inherit the default layout.

This PR opts for #2. Tested in 2021 Blocks, and it seems to work pretty well.


"Large" Before "Large" After
large-before large-after
"Medium" Before "Medium" After
medium-before medium-after
"Small" Before "Small" After
small-before small-after

@kjellr kjellr added [Type] Bug An existing feature does not function as intended [Feature] Patterns A collection of blocks that can be synced (previously reusable blocks) or unsynced [Block] Query Loop Affects the Query Loop Block labels Apr 5, 2021
@github-actions
Copy link

github-actions bot commented Apr 5, 2021

Size Change: 0 B

Total Size: 1.42 MB

ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.14 kB 0 B
build/annotations/index.js 3.78 kB 0 B
build/api-fetch/index.js 3.41 kB 0 B
build/autop/index.js 2.82 kB 0 B
build/blob/index.js 664 B 0 B
build/block-directory/index.js 8.63 kB 0 B
build/block-directory/style-rtl.css 1 kB 0 B
build/block-directory/style.css 1.01 kB 0 B
build/block-editor/index.js 127 kB 0 B
build/block-editor/style-rtl.css 12.4 kB 0 B
build/block-editor/style.css 12.4 kB 0 B
build/block-library/blocks/archives/editor-rtl.css 61 B 0 B
build/block-library/blocks/archives/editor.css 60 B 0 B
build/block-library/blocks/audio/editor-rtl.css 58 B 0 B
build/block-library/blocks/audio/editor.css 58 B 0 B
build/block-library/blocks/audio/style-rtl.css 112 B 0 B
build/block-library/blocks/audio/style.css 112 B 0 B
build/block-library/blocks/block/editor-rtl.css 161 B 0 B
build/block-library/blocks/block/editor.css 161 B 0 B
build/block-library/blocks/button/editor-rtl.css 475 B 0 B
build/block-library/blocks/button/editor.css 474 B 0 B
build/block-library/blocks/button/style-rtl.css 489 B 0 B
build/block-library/blocks/button/style.css 488 B 0 B
build/block-library/blocks/buttons/editor-rtl.css 315 B 0 B
build/block-library/blocks/buttons/editor.css 315 B 0 B
build/block-library/blocks/buttons/style-rtl.css 364 B 0 B
build/block-library/blocks/buttons/style.css 363 B 0 B
build/block-library/blocks/calendar/style-rtl.css 208 B 0 B
build/block-library/blocks/calendar/style.css 208 B 0 B
build/block-library/blocks/categories/editor-rtl.css 84 B 0 B
build/block-library/blocks/categories/editor.css 83 B 0 B
build/block-library/blocks/categories/style-rtl.css 79 B 0 B
build/block-library/blocks/categories/style.css 79 B 0 B
build/block-library/blocks/code/style-rtl.css 90 B 0 B
build/block-library/blocks/code/style.css 90 B 0 B
build/block-library/blocks/columns/editor-rtl.css 190 B 0 B
build/block-library/blocks/columns/editor.css 190 B 0 B
build/block-library/blocks/columns/style-rtl.css 436 B 0 B
build/block-library/blocks/columns/style.css 435 B 0 B
build/block-library/blocks/cover/editor-rtl.css 605 B 0 B
build/block-library/blocks/cover/editor.css 605 B 0 B
build/block-library/blocks/cover/style-rtl.css 1.24 kB 0 B
build/block-library/blocks/cover/style.css 1.24 kB 0 B
build/block-library/blocks/embed/editor-rtl.css 486 B 0 B
build/block-library/blocks/embed/editor.css 486 B 0 B
build/block-library/blocks/embed/style-rtl.css 401 B 0 B
build/block-library/blocks/embed/style.css 400 B 0 B
build/block-library/blocks/file/editor-rtl.css 175 B 0 B
build/block-library/blocks/file/editor.css 174 B 0 B
build/block-library/blocks/file/style-rtl.css 248 B 0 B
build/block-library/blocks/file/style.css 248 B 0 B
build/block-library/blocks/freeform/editor-rtl.css 2.45 kB 0 B
build/block-library/blocks/freeform/editor.css 2.45 kB 0 B
build/block-library/blocks/gallery/editor-rtl.css 704 B 0 B
build/block-library/blocks/gallery/editor.css 705 B 0 B
build/block-library/blocks/gallery/style-rtl.css 1.11 kB 0 B
build/block-library/blocks/gallery/style.css 1.1 kB 0 B
build/block-library/blocks/group/editor-rtl.css 160 B 0 B
build/block-library/blocks/group/editor.css 160 B 0 B
build/block-library/blocks/group/style-rtl.css 57 B 0 B
build/block-library/blocks/group/style.css 57 B 0 B
build/block-library/blocks/heading/editor-rtl.css 129 B 0 B
build/block-library/blocks/heading/editor.css 129 B 0 B
build/block-library/blocks/heading/style-rtl.css 76 B 0 B
build/block-library/blocks/heading/style.css 76 B 0 B
build/block-library/blocks/html/editor-rtl.css 281 B 0 B
build/block-library/blocks/html/editor.css 281 B 0 B
build/block-library/blocks/image/editor-rtl.css 717 B 0 B
build/block-library/blocks/image/editor.css 716 B 0 B
build/block-library/blocks/image/style-rtl.css 476 B 0 B
build/block-library/blocks/image/style.css 478 B 0 B
build/block-library/blocks/latest-comments/style-rtl.css 281 B 0 B
build/block-library/blocks/latest-comments/style.css 282 B 0 B
build/block-library/blocks/latest-posts/editor-rtl.css 137 B 0 B
build/block-library/blocks/latest-posts/editor.css 137 B 0 B
build/block-library/blocks/latest-posts/style-rtl.css 523 B 0 B
build/block-library/blocks/latest-posts/style.css 522 B 0 B
build/block-library/blocks/legacy-widget/editor-rtl.css 398 B 0 B
build/block-library/blocks/legacy-widget/editor.css 399 B 0 B
build/block-library/blocks/list/style-rtl.css 63 B 0 B
build/block-library/blocks/list/style.css 63 B 0 B
build/block-library/blocks/media-text/editor-rtl.css 191 B 0 B
build/block-library/blocks/media-text/editor.css 191 B 0 B
build/block-library/blocks/media-text/style-rtl.css 535 B 0 B
build/block-library/blocks/media-text/style.css 532 B 0 B
build/block-library/blocks/more/editor-rtl.css 434 B 0 B
build/block-library/blocks/more/editor.css 434 B 0 B
build/block-library/blocks/navigation-link/editor-rtl.css 597 B 0 B
build/block-library/blocks/navigation-link/editor.css 597 B 0 B
build/block-library/blocks/navigation-link/style-rtl.css 957 B 0 B
build/block-library/blocks/navigation-link/style.css 955 B 0 B
build/block-library/blocks/navigation/editor-rtl.css 1.13 kB 0 B
build/block-library/blocks/navigation/editor.css 1.13 kB 0 B
build/block-library/blocks/navigation/style-rtl.css 204 B 0 B
build/block-library/blocks/navigation/style.css 205 B 0 B
build/block-library/blocks/nextpage/editor-rtl.css 395 B 0 B
build/block-library/blocks/nextpage/editor.css 395 B 0 B
build/block-library/blocks/page-list/editor-rtl.css 170 B 0 B
build/block-library/blocks/page-list/editor.css 170 B 0 B
build/block-library/blocks/page-list/style-rtl.css 167 B 0 B
build/block-library/blocks/page-list/style.css 167 B 0 B
build/block-library/blocks/paragraph/editor-rtl.css 157 B 0 B
build/block-library/blocks/paragraph/editor.css 157 B 0 B
build/block-library/blocks/paragraph/style-rtl.css 247 B 0 B
build/block-library/blocks/paragraph/style.css 248 B 0 B
build/block-library/blocks/post-author/editor-rtl.css 209 B 0 B
build/block-library/blocks/post-author/editor.css 209 B 0 B
build/block-library/blocks/post-author/style-rtl.css 183 B 0 B
build/block-library/blocks/post-author/style.css 184 B 0 B
build/block-library/blocks/post-comments-form/style-rtl.css 250 B 0 B
build/block-library/blocks/post-comments-form/style.css 250 B 0 B
build/block-library/blocks/post-content/editor-rtl.css 139 B 0 B
build/block-library/blocks/post-content/editor.css 139 B 0 B
build/block-library/blocks/post-excerpt/editor-rtl.css 73 B 0 B
build/block-library/blocks/post-excerpt/editor.css 73 B 0 B
build/block-library/blocks/post-featured-image/editor-rtl.css 338 B 0 B
build/block-library/blocks/post-featured-image/editor.css 338 B 0 B
build/block-library/blocks/post-featured-image/style-rtl.css 100 B 0 B
build/block-library/blocks/post-featured-image/style.css 100 B 0 B
build/block-library/blocks/preformatted/style-rtl.css 103 B 0 B
build/block-library/blocks/preformatted/style.css 103 B 0 B
build/block-library/blocks/pullquote/editor-rtl.css 183 B 0 B
build/block-library/blocks/pullquote/editor.css 183 B 0 B
build/block-library/blocks/pullquote/style-rtl.css 318 B 0 B
build/block-library/blocks/pullquote/style.css 318 B 0 B
build/block-library/blocks/query-loop/editor-rtl.css 83 B 0 B
build/block-library/blocks/query-loop/editor.css 82 B 0 B
build/block-library/blocks/query-loop/style-rtl.css 315 B 0 B
build/block-library/blocks/query-loop/style.css 317 B 0 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 122 B 0 B
build/block-library/blocks/query-pagination-numbers/editor.css 121 B 0 B
build/block-library/blocks/query-pagination/editor-rtl.css 270 B 0 B
build/block-library/blocks/query-pagination/editor.css 262 B 0 B
build/block-library/blocks/query-pagination/style-rtl.css 168 B 0 B
build/block-library/blocks/query-pagination/style.css 168 B 0 B
build/block-library/blocks/query-title/editor-rtl.css 86 B 0 B
build/block-library/blocks/query-title/editor.css 86 B 0 B
build/block-library/blocks/query/editor-rtl.css 795 B 0 B
build/block-library/blocks/query/editor.css 794 B 0 B
build/block-library/blocks/quote/style-rtl.css 169 B 0 B
build/block-library/blocks/quote/style.css 169 B 0 B
build/block-library/blocks/rss/editor-rtl.css 201 B 0 B
build/block-library/blocks/rss/editor.css 202 B 0 B
build/block-library/blocks/rss/style-rtl.css 290 B 0 B
build/block-library/blocks/rss/style.css 290 B 0 B
build/block-library/blocks/search/editor-rtl.css 189 B 0 B
build/block-library/blocks/search/editor.css 189 B 0 B
build/block-library/blocks/search/style-rtl.css 359 B 0 B
build/block-library/blocks/search/style.css 362 B 0 B
build/block-library/blocks/separator/editor-rtl.css 99 B 0 B
build/block-library/blocks/separator/editor.css 99 B 0 B
build/block-library/blocks/separator/style-rtl.css 251 B 0 B
build/block-library/blocks/separator/style.css 251 B 0 B
build/block-library/blocks/shortcode/editor-rtl.css 512 B 0 B
build/block-library/blocks/shortcode/editor.css 512 B 0 B
build/block-library/blocks/site-logo/editor-rtl.css 201 B 0 B
build/block-library/blocks/site-logo/editor.css 201 B 0 B
build/block-library/blocks/site-logo/style-rtl.css 115 B 0 B
build/block-library/blocks/site-logo/style.css 115 B 0 B
build/block-library/blocks/social-link/editor-rtl.css 164 B 0 B
build/block-library/blocks/social-link/editor.css 165 B 0 B
build/block-library/blocks/social-links/editor-rtl.css 776 B 0 B
build/block-library/blocks/social-links/editor.css 776 B 0 B
build/block-library/blocks/social-links/style-rtl.css 1.32 kB 0 B
build/block-library/blocks/social-links/style.css 1.33 kB 0 B
build/block-library/blocks/spacer/editor-rtl.css 317 B 0 B
build/block-library/blocks/spacer/editor.css 317 B 0 B
build/block-library/blocks/spacer/style-rtl.css 48 B 0 B
build/block-library/blocks/spacer/style.css 48 B 0 B
build/block-library/blocks/table/editor-rtl.css 478 B 0 B
build/block-library/blocks/table/editor.css 478 B 0 B
build/block-library/blocks/table/style-rtl.css 402 B 0 B
build/block-library/blocks/table/style.css 402 B 0 B
build/block-library/blocks/tag-cloud/editor-rtl.css 118 B 0 B
build/block-library/blocks/tag-cloud/editor.css 118 B 0 B
build/block-library/blocks/tag-cloud/style-rtl.css 94 B 0 B
build/block-library/blocks/tag-cloud/style.css 94 B 0 B
build/block-library/blocks/template-part/editor-rtl.css 552 B 0 B
build/block-library/blocks/template-part/editor.css 551 B 0 B
build/block-library/blocks/term-description/editor-rtl.css 90 B 0 B
build/block-library/blocks/term-description/editor.css 90 B 0 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B 0 B
build/block-library/blocks/text-columns/editor.css 95 B 0 B
build/block-library/blocks/text-columns/style-rtl.css 166 B 0 B
build/block-library/blocks/text-columns/style.css 166 B 0 B
build/block-library/blocks/verse/editor-rtl.css 50 B 0 B
build/block-library/blocks/verse/editor.css 50 B 0 B
build/block-library/blocks/verse/style-rtl.css 87 B 0 B
build/block-library/blocks/verse/style.css 87 B 0 B
build/block-library/blocks/video/editor-rtl.css 504 B 0 B
build/block-library/blocks/video/editor.css 503 B 0 B
build/block-library/blocks/video/style-rtl.css 187 B 0 B
build/block-library/blocks/video/style.css 187 B 0 B
build/block-library/common-rtl.css 1.31 kB 0 B
build/block-library/common.css 1.31 kB 0 B
build/block-library/editor-rtl.css 9.54 kB 0 B
build/block-library/editor.css 9.53 kB 0 B
build/block-library/index.js 151 kB 0 B
build/block-library/reset-rtl.css 503 B 0 B
build/block-library/reset.css 504 B 0 B
build/block-library/style-rtl.css 9.21 kB 0 B
build/block-library/style.css 9.22 kB 0 B
build/block-library/theme-rtl.css 692 B 0 B
build/block-library/theme.css 693 B 0 B
build/block-serialization-default-parser/index.js 1.87 kB 0 B
build/block-serialization-spec-parser/index.js 3.06 kB 0 B
build/blocks/index.js 48.4 kB 0 B
build/components/index.js 284 kB 0 B
build/components/style-rtl.css 16.2 kB 0 B
build/components/style.css 16.2 kB 0 B
build/compose/index.js 11.2 kB 0 B
build/core-data/index.js 17 kB 0 B
build/customize-widgets/index.js 7.28 kB 0 B
build/customize-widgets/style-rtl.css 676 B 0 B
build/customize-widgets/style.css 677 B 0 B
build/data-controls/index.js 835 B 0 B
build/data/index.js 8.89 kB 0 B
build/date/index.js 31.9 kB 0 B
build/deprecated/index.js 787 B 0 B
build/dom-ready/index.js 576 B 0 B
build/dom/index.js 5.1 kB 0 B
build/edit-navigation/index.js 17 kB 0 B
build/edit-navigation/style-rtl.css 2.86 kB 0 B
build/edit-navigation/style.css 2.86 kB 0 B
build/edit-post/index.js 307 kB 0 B
build/edit-post/style-rtl.css 7.13 kB 0 B
build/edit-post/style.css 7.12 kB 0 B
build/edit-site/index.js 28.1 kB 0 B
build/edit-site/style-rtl.css 4.61 kB 0 B
build/edit-site/style.css 4.61 kB 0 B
build/edit-widgets/index.js 15.7 kB 0 B
build/edit-widgets/style-rtl.css 2.98 kB 0 B
build/edit-widgets/style.css 2.98 kB 0 B
build/editor/index.js 42.2 kB 0 B
build/editor/style-rtl.css 3.96 kB 0 B
build/editor/style.css 3.96 kB 0 B
build/element/index.js 4.62 kB 0 B
build/escape-html/index.js 735 B 0 B
build/format-library/index.js 6.75 kB 0 B
build/format-library/style-rtl.css 637 B 0 B
build/format-library/style.css 639 B 0 B
build/hooks/index.js 2.28 kB 0 B
build/html-entities/index.js 622 B 0 B
build/i18n/index.js 4.02 kB 0 B
build/is-shallow-equal/index.js 699 B 0 B
build/keyboard-shortcuts/index.js 2.53 kB 0 B
build/keycodes/index.js 1.96 kB 0 B
build/list-reusable-blocks/index.js 3.19 kB 0 B
build/list-reusable-blocks/style-rtl.css 629 B 0 B
build/list-reusable-blocks/style.css 628 B 0 B
build/media-utils/index.js 5.38 kB 0 B
build/notices/index.js 1.85 kB 0 B
build/nux/index.js 3.42 kB 0 B
build/nux/style-rtl.css 731 B 0 B
build/nux/style.css 727 B 0 B
build/plugins/index.js 2.95 kB 0 B
build/primitives/index.js 1.42 kB 0 B
build/priority-queue/index.js 791 B 0 B
build/react-i18n/index.js 1.46 kB 0 B
build/redux-routine/index.js 2.84 kB 0 B
build/reusable-blocks/index.js 3.79 kB 0 B
build/reusable-blocks/style-rtl.css 225 B 0 B
build/reusable-blocks/style.css 225 B 0 B
build/rich-text/index.js 13.5 kB 0 B
build/server-side-render/index.js 2.59 kB 0 B
build/shortcode/index.js 1.7 kB 0 B
build/token-list/index.js 1.27 kB 0 B
build/url/index.js 3.02 kB 0 B
build/viewport/index.js 1.86 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.22 kB 0 B

compressed-size-action

@jasmussen
Copy link
Contributor

jasmussen commented Apr 6, 2021

Thank you for the PR! I'm conflicted on this one:

  • On the one hand, I feel like you should almost never set up a query block manually, that it should be something set up by the theme or template or another wrapper block, for you, and that by adding extra markup by default, we make an opinionated choice based mostly on how TwentyTwentyOne does it.
  • On the other hand, all of the above remains true even after this PR, because you only changed the bundled patterns, for when you actually do need to build a new template from scratch.

So it boils down to: to group or not to group. I'm always a fan of fewer containers if we can do it. Question: when you build this yourself, couldn't you just manually insert the group first, make it inherit the layout, and then insert the query inside? Or does the group need to be nested inside the query?

I'm leaning towards not wanting to add the additional group, but this is not a strong opinion, and I'd gladly defer to someone with more theme experience than myself. Perhaps @scruffian or @MaggieCabrera?

@youknowriad
Copy link
Contributor

The issue here comes down to the fact that the Query block doesn't render any markup so alignments don't work well there (exactly like the reusable blocks). I know we've been leaning towards avoiding divs in general but I feel like adding a "div" and layout support to the Query block directly might be a good approach here (just making the Query block itself a container block)

@kjellr
Copy link
Contributor Author

kjellr commented Apr 6, 2021

I know we've been leaning towards avoiding divs in general but I feel like adding a "div" and layout support to the Query block directly might be a good approach here (just making the Query block itself a container block)

I do think this makes sense, but I do foresee one issue: currently nested blocks with "Inherit Default Layout" turned on don't play nicely together. So adding that setting to the Query block would make it impossible to get Post Content block content to render the default widths.

For example, here's the query block showing a Standard-width Post Title, Wide Featured Image, and Post Content blocks, fully wrapped in a Group block that inherits the default layout:

Screen Shot 2021-04-06 at 8 22 05 AM

As you can see, the Post Content block is not showing the correct widths. This happens regardless of whether the Post Content block has "Inherit default layout" turned on or off. That's more or less what would happen today if the Query block had a wrapper and "Inherit default layout" turned on.

Today, the way to fix this is to wrap just the title and featured image in a group with "Inherit Default Layout" turned on:

Screen Shot 2021-04-06 at 8 20 26 AM

Its not an intuitive fix, so I'd love to see some improvement here either way.

@youknowriad
Copy link
Contributor

As you can see, the Post Content block is not showing the correct widths. This happens regardless of whether the Post Content block has "Inherit default layout" turned on or off. That's more or less what would happen today if the Query block had a wrapper and "Inherit default layout" turned on.

It doesn't have to "inherit default layout", that's a theme decision:

  • if It does, it means its content (including post content) will be centered but even in that case, that post content can define a layout with content size and wide widths, (two levels of wide/full alignments)
  • if it doesn't, it just means its content will be full width automatically which means if these inner divs (post content or others) can define layouts as well (including using the global one), in that case it's just one level of wide/full alignments.

So it's all theme author's decision, it doesn't prevent anything.

@kjellr
Copy link
Contributor Author

kjellr commented Apr 6, 2021

I guess what I'm saying is that while allowing the Query block to inherit default layout will solve these existing patterns, we'll still need to resort to using Group block wrappers inside of the Query block to achieve patterns like that one above that leverage the Post Content block and feature wide/full alignments inside of it.

In any case, I guess we should let this PR sit until we have PR to try out a wrapper on the query block?

@youknowriad
Copy link
Contributor

Oh right, if you want the title to be centered, you need to have a wrapper for it that defines what "centered" actually means and this is regardless of whether it's used inside a Query block or not.

@ntsekouras
Copy link
Contributor

I know we've been leaning towards avoiding divs in general but I feel like adding a "div" and layout support to the Query block directly might be a good approach here (just making the Query block itself a container block)

I agree with @youknowriad and was thinking about it for quite some time. In my mind is not actually a so extraneous div, as it opens the way for more issues we are having or we will explore. Examples are semantic tags(#28555), Query alignments (#27589) and even separate from Loop(#29119)

I'll start exploring these the next days (hopefully tomorrow) :)

@ntsekouras
Copy link
Contributor

Hey @kjellr - I guess it's okay to close this one as we now have wrappers in Query Loop and layout support.

@ntsekouras ntsekouras closed this Jun 11, 2021
@youknowriad youknowriad deleted the update/query-block-pattern-alignments-markup branch June 11, 2021 12:22
@kjellr kjellr restored the update/query-block-pattern-alignments-markup branch July 7, 2021 18:29
@kjellr kjellr reopened this Jul 7, 2021
@kjellr
Copy link
Contributor Author

kjellr commented Jul 7, 2021

I guess it's okay to close this one as we now have wrappers in Query Loop and layout support.

I'm actually going to re-open this, since the Query Loop layout support doesn't actually solve the issue here. If a layout is enabled on the Query Loop block, that only applies directly to the Post Template Block. Then, the child blocks of that block are all still full-width inside of it. That makes the intended design for the Standard pattern here (a post template that includes both standard and wide alignments) impossible still without the use of an additional Group block:

Screen Shot 2021-07-07 at 2 14 30 PM

What we actually need to fix this is either to allow for the Post Template block to have its own "Inherit default layout" control, or to wrap the query patterns in Group blocks like I'd done originally in this PR.

(The PR is definitely out of date today, so I'll need to give this a refresh to get it working again.)

@kjellr
Copy link
Contributor Author

kjellr commented Jul 7, 2021

The PR's back up to date, and only required the Group block to be added to a single pattern (I'm updating the PR description to better reflect this). This could use a review.

Here are the changes:

Standard Pattern

Adds a wide group block wrapper, with layout enabled. This ensures the text uses the content width, while the featured image can be wide.

Before After
Screen Shot 2021-07-07 at 2 54 25 PM Screen Shot 2021-07-07 at 2 55 25 PM

Image at Left Pattern

Opts the Query Loop block into inheriting the default layout, and sets the Post Template block to be wide-aligned. This pattern was originally supposed to be wide aligned (hence the alignwide setting on the columns block that used to be here.)

Before After
Screen Shot 2021-07-07 at 2 59 50 PM Screen Shot 2021-07-07 at 2 59 13 PM

Small Image and Title Pattern

Opts the Query Loop block into inheriting the default layout, so the rest of the block appears using the content width. This was the original design intent of this one.

Before After
Screen Shot 2021-07-07 at 2 54 38 PM Screen Shot 2021-07-07 at 2 58 13 PM

@kjellr kjellr changed the title Try: Add group wrappers to Query block patterns Ensure bundled query patterns inherit correct layout settings Jul 7, 2021
@jasmussen
Copy link
Contributor

I'd be happy to add the wrapper here, given how much careful thought has been put into it. I'd appreciate the insights of and others, though, but 👍 👍

@justintadlock
Copy link
Contributor

What we actually need to fix this is either to allow for the Post Template block to have its own "Inherit default layout" control, or to wrap the query patterns in Group blocks like I'd done originally in this PR.

I haven't done much exploration with Query patterns yet. However, for the few that I have built, I have been adding an extra Group block wrapper for each for the layout. I think this is because the Post Template block doesn't have a layout control of its own. Adding that control seems like the best course of action, avoiding extra containers.

@ntsekouras
Copy link
Contributor

While I understand the reasoning of this PR, it's a bit tricky problem. It might be better for patterns not to use wide/full alignments and ideally they shouldn't be assuming that the theme has a layout defined, or anything. They could use wide/full alignments, if they also add a container that defines the layout explicitly.

The reason for this is that alignments depend on their container. So when we set to inherit layout we mean: use the layout that is defined in theme.json for that block. This might be not defined for some themes and it can work differently in site and post editors. You can observe this in this PR. Your updated patterns are shown as expected in site editor because when added in root there is no extra container and they are full width. In post editor there is already a container (post content container) making these patterns fill this container, making the patterns display without any visual difference.

@kjellr
Copy link
Contributor Author

kjellr commented Jul 12, 2021

While I understand the reasoning of this PR, it's a bit tricky problem. It might be better for patterns not to use wide/full alignments and ideally they shouldn't be assuming that the theme has a layout defined, or anything. They could use wide/full alignments, if they also add a container that defines the layout explicitly.

I get what you're saying here, but I think we'll need to figure out a way to fallback to some sort of default if the inherited layout isn't available. We're going to need to be able to use wide/full in patterns like these, and Query Loops in particular get very complicated... I think it's important for users to just choose a pattern with one click and know that it'll match the global layout settings for the rest of their site without having to dig in further.

Your updated patterns are shown as expected in site editor because when added in root there is no extra container and they are full width. In post editor there is already a container (post content container) making these patterns fill this container, making the patterns display without any visual difference.

This is fixable (when a default layout is present at least) by setting a full alignment on the parent containers. I pushed 2006567 to demonstrate. From a technical and usability perspective, I don't think that's a good solution though — it requires setting alignment on multiple layers of blocks and seems quite unreasonable for folks to do.

Stepping back for a moment though, I just want these to appear as originally designed. They've been broken for months, and this PR is the closest they've come to looking right again. I'd appreciate some additional help getting this sorted out.

@annezazu
Copy link
Contributor

With work rapidly iterating on layout controls and thought, I'm going to close this out as it's very likely out of date at this point. Happy to re-open if others feel strongly. I'd recommend continuing discussion here for general layout confusion/concerns: #36082

@annezazu annezazu closed this Jul 27, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Block] Query Loop Affects the Query Loop Block [Feature] Patterns A collection of blocks that can be synced (previously reusable blocks) or unsynced [Type] Bug An existing feature does not function as intended
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants