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

Query blocks - Support wide alignments in editor. #24229

Merged
merged 6 commits into from
Jul 30, 2020

Conversation

Addison-Stavlo
Copy link
Contributor

@Addison-Stavlo Addison-Stavlo commented Jul 27, 2020

Description

EDIT - Updated #24229 (comment)

Currently in the site editor, the Query Loop, Query, and Post Content blocks are given a default wrapper that causes their width to be restricted. A post may have a block with a wide of full block alignment setting. The post editor, the front end for the post, and the homepage (if set to render current posts) will render the content at full width:
Screen Shot 2020-07-27 at 5 58 02 PM

While in the site editor the width is restricted by the Query Loop and Post Content blocks:
Screen Shot 2020-07-27 at 5 58 26 PM

If we add styles to set the max-width for these blocks inside the editor, or allow for supporting alignment in the Query and Query Loop blocks, they can be less restrictive and in the editor we would have:
Screen Shot 2020-07-27 at 6 06 47 PM

How has this been tested?

Tested on local docker environment.

  • Create a post with some wide/full alignment blocks (such as cover block).
  • Load a template that will render this post within the Query or QueryLoop blocks (such as an index template for showing recent posts as homepage).
  • Verify that in the editor the wide/full alignment blocks are not restricted in width by the parent query and post content blocks.

Screenshots

Types of changes

Checklist:

  • My code is tested.
  • My code follows the WordPress code style.
  • My code follows the accessibility standards.
  • My code has proper inline documentation.
  • I've included developer documentation if appropriate.
  • I've updated all React Native files affected by any refactorings/renamings in this PR.

@Addison-Stavlo Addison-Stavlo self-assigned this Jul 27, 2020
@Addison-Stavlo Addison-Stavlo added the [Status] In Progress Tracking issues with work in progress label Jul 27, 2020
@github-actions
Copy link

github-actions bot commented Jul 27, 2020

Size Change: +80 B (0%)

Total Size: 1.16 MB

Filename Size Change
build/block-library/editor-rtl.css 7.59 kB +14 B (0%)
build/block-library/editor.css 7.59 kB +14 B (0%)
build/block-library/index.js 133 kB +22 B (0%)
build/components/index.js 200 kB +30 B (0%)
ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.14 kB 0 B
build/annotations/index.js 3.67 kB 0 B
build/api-fetch/index.js 3.44 kB 0 B
build/autop/index.js 2.82 kB 0 B
build/blob/index.js 620 B 0 B
build/block-directory/index.js 7.93 kB 0 B
build/block-directory/style-rtl.css 953 B 0 B
build/block-directory/style.css 952 B 0 B
build/block-editor/index.js 125 kB 0 B
build/block-editor/style-rtl.css 10.8 kB 0 B
build/block-editor/style.css 10.8 kB 0 B
build/block-library/style-rtl.css 7.76 kB 0 B
build/block-library/style.css 7.77 kB 0 B
build/block-library/theme-rtl.css 728 B 0 B
build/block-library/theme.css 729 B 0 B
build/block-serialization-default-parser/index.js 1.88 kB 0 B
build/block-serialization-spec-parser/index.js 3.1 kB 0 B
build/blocks/index.js 48.2 kB 0 B
build/components/style-rtl.css 15.7 kB 0 B
build/components/style.css 15.7 kB 0 B
build/compose/index.js 9.68 kB 0 B
build/core-data/index.js 11.8 kB 0 B
build/data-controls/index.js 1.29 kB 0 B
build/data/index.js 8.45 kB 0 B
build/date/index.js 5.38 kB 0 B
build/deprecated/index.js 772 B 0 B
build/dom-ready/index.js 568 B 0 B
build/dom/index.js 3.23 kB 0 B
build/edit-navigation/index.js 10.9 kB 0 B
build/edit-navigation/style-rtl.css 1.08 kB 0 B
build/edit-navigation/style.css 1.08 kB 0 B
build/edit-post/index.js 304 kB 0 B
build/edit-post/style-rtl.css 5.61 kB 0 B
build/edit-post/style.css 5.61 kB 0 B
build/edit-site/index.js 17 kB 0 B
build/edit-site/style-rtl.css 3.06 kB 0 B
build/edit-site/style.css 3.06 kB 0 B
build/edit-widgets/index.js 9.38 kB 0 B
build/edit-widgets/style-rtl.css 2.45 kB 0 B
build/edit-widgets/style.css 2.45 kB 0 B
build/editor/editor-styles-rtl.css 537 B 0 B
build/editor/editor-styles.css 539 B 0 B
build/editor/index.js 45.3 kB 0 B
build/editor/style-rtl.css 3.8 kB 0 B
build/editor/style.css 3.79 kB 0 B
build/element/index.js 4.65 kB 0 B
build/escape-html/index.js 733 B 0 B
build/format-library/index.js 7.72 kB 0 B
build/format-library/style-rtl.css 547 B 0 B
build/format-library/style.css 548 B 0 B
build/hooks/index.js 2.13 kB 0 B
build/html-entities/index.js 621 B 0 B
build/i18n/index.js 3.56 kB 0 B
build/is-shallow-equal/index.js 711 B 0 B
build/keyboard-shortcuts/index.js 2.52 kB 0 B
build/keycodes/index.js 1.94 kB 0 B
build/list-reusable-blocks/index.js 3.11 kB 0 B
build/list-reusable-blocks/style-rtl.css 476 B 0 B
build/list-reusable-blocks/style.css 476 B 0 B
build/media-utils/index.js 5.33 kB 0 B
build/notices/index.js 1.79 kB 0 B
build/nux/index.js 3.4 kB 0 B
build/nux/style-rtl.css 671 B 0 B
build/nux/style.css 668 B 0 B
build/plugins/index.js 2.56 kB 0 B
build/primitives/index.js 1.41 kB 0 B
build/priority-queue/index.js 789 B 0 B
build/redux-routine/index.js 2.85 kB 0 B
build/rich-text/index.js 13.9 kB 0 B
build/server-side-render/index.js 2.71 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 4.06 kB 0 B
build/viewport/index.js 1.85 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.17 kB 0 B

compressed-size-action

@noahtallen
Copy link
Member

I'm not sure technically how, but it sounds like the query loop and post content blocks need to get the same behavior as the normal wrappers for post content on the front end.... I wonder if there are any classnames for that? I also wonder if alignment settings are important in that case -- i.e. it just acts as the "normal" wrapper around the post, if that makes sense

@Addison-Stavlo
Copy link
Contributor Author

Addison-Stavlo commented Jul 27, 2020

That makes sense as I don't think the query blocks have a wrapper on the front end, however re:

need to get the same behavior as the normal wrappers for post content

I noticed the Post Content works in a funky way across site editor and front end as well. That is, with no alignment settings for Post Content block the full width child blocks are properly full width on the front end. If you run this PR to test the index template, you will find adding full width to the query block is not enough. You must also add full width to the Post Content block for its nested blocks to have the full width effect inside the site editor. 🤔

@noahtallen
Copy link
Member

I see... :/ I think the alignment settings made more sense in a world without nested blocks like this. I don't have any idea what the "correct" behavior would be in this case 🙃

@Addison-Stavlo
Copy link
Contributor Author

OK, I think this (621fb98) makes a bit more sense than adding the align hook.

These blocks don't have actual wrappers on the front end (or in the case of post-content has a 'pseudo-wrapper' with only the "entry-content" class name). But the editor will treat them as a block and give them a wrapper regardless. Since these given wrappers in the editor have no specified align settings, they are given the wp-block classname which in turn sets their max with to that of responsive content. This is why these blocks are restricting in the editor and not on the front end.

What I have done is given these blocks a lightBlockWrapper, and added editor.scss files for them to specifically set their max-width property to 100%. This allows the children blocks that have full/wide alignment to have visual parity inside the editor.

You may ask "don't we want align settings for post-content?"
It is probably not necessary. We want post content to be unbiased and unrestrictive towards the blocks it renders. Alignments can be set by a parent group block (and themes like seedlet blocks seem to already be nesting post content in 'full' alignment set group block). If we REALLY need to allow alignments for post content, we should consider setting the default value to full. But really, I think allowing the post content to have max-width of 100% and using the group block to control the overall special cases of block alignment makes the most sense.

@Addison-Stavlo Addison-Stavlo changed the title WIP - Query Blocks - Add 'wide' and 'full' alignment support or set styles for width support? Query and Post Content blocks - Support wide alignments in editor. Jul 28, 2020
@Addison-Stavlo Addison-Stavlo removed the [Status] In Progress Tracking issues with work in progress label Jul 28, 2020
@Addison-Stavlo Addison-Stavlo marked this pull request as ready for review July 28, 2020 22:41
@@ -37,7 +41,7 @@ export default function QueryEdit( {
<QueryProvider>
<InnerBlocks template={ TEMPLATE } />
</QueryProvider>
</>
</Block.div>
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm not familiar with this block and I don't see that toolbar, but I wonder if it makes sense to move the BlockControls outside the wrapper.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Good catch! It should probably not be wrapping the BlockControls as well.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I don't see that toolbar

I moved BlockControls outside of the wrapper, but I had the toolbar working the same in either case. Is it better for you now?

Copy link
Contributor

@Copons Copons left a comment

Choose a reason for hiding this comment

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

This works great!
I'll pre-approve, in the off-chance my question doesn't matter.

@Addison-Stavlo
Copy link
Contributor Author

Addison-Stavlo commented Jul 29, 2020

Updated again - Im leaving the Post-Content block alone for now. So for testing this you would need to go to the index template and set the post content inside the query blocks to 'full' alignment. Previously the width would be restricted in the editor but with these changes to the query blocks it should now show full width as expected.

Since it is listed on the FSE block parity issue, Post Content probably should have settings for alignment, colors, etc. Furthermore, I noticed that here the group block does not restrict the width of its children on the front-end (only in the editor?), so my previous assumption about that working as the alignment controller for nested post content does not work at this point in time either.

@Addison-Stavlo Addison-Stavlo merged commit b705d4f into master Jul 30, 2020
@Addison-Stavlo Addison-Stavlo deleted the update/query-blocks-align-support branch July 30, 2020 19:41
@Addison-Stavlo Addison-Stavlo changed the title Query and Post Content blocks - Support wide alignments in editor. Query blocks - Support wide alignments in editor. Jul 30, 2020
@github-actions github-actions bot added this to the Gutenberg 8.7 milestone Jul 30, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants