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

Add the stack block variation to the group block #39690

Merged
merged 3 commits into from
Mar 28, 2022
Merged

Conversation

youknowriad
Copy link
Contributor

@youknowriad youknowriad commented Mar 23, 2022

What?

This PR allows switching the "flex" layout orientation in the "row" block. It also adds a new "stack" group block variation for the vertical "flex" layout.

Why?

The "row" name means something horizontal I think so having a dedicated "stack" variation might remove some confusion for users.

#39647 (comment)

Note Right now all the variations (group, row and stack) share the same icon, I'm happy to change it if needed. Happy to tweak the copy of the descriptions as well.

Testing Instructions

1- Insert a row block
2- Switch the "orientation" of the layout to "vertical"
3- Notice that the variation name is now "stack".

@github-actions
Copy link

github-actions bot commented Mar 23, 2022

Size Change: -290 B (0%)

Total Size: 1.21 MB

Filename Size Change
build/block-editor/index.min.js 147 kB +303 B (0%)
build/block-library/index.min.js 172 kB +113 B (0%)
build/customize-widgets/index.min.js 11 kB -201 B (-2%)
build/data/index.min.js 8.55 kB +358 B (+4%)
build/edit-navigation/index.min.js 15.8 kB -235 B (-1%)
build/edit-post/index.min.js 29.6 kB -190 B (-1%)
build/edit-site/index.min.js 45.1 kB -232 B (-1%)
build/edit-widgets/index.min.js 16.3 kB -205 B (-1%)
build/preferences/index.min.js 1.2 kB -1 B (0%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 993 B
build/admin-manifest/index.min.js 1.24 kB
build/annotations/index.min.js 2.77 kB
build/api-fetch/index.min.js 2.27 kB
build/autop/index.min.js 2.15 kB
build/blob/index.min.js 487 B
build/block-directory/index.min.js 6.49 kB
build/block-directory/style-rtl.css 1.01 kB
build/block-directory/style.css 1.01 kB
build/block-editor/default-editor-styles-rtl.css 378 B
build/block-editor/default-editor-styles.css 378 B
build/block-editor/style-rtl.css 15.4 kB
build/block-editor/style.css 15.4 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 65 B
build/block-library/blocks/archives/style.css 65 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 111 B
build/block-library/blocks/audio/style.css 111 B
build/block-library/blocks/audio/theme-rtl.css 125 B
build/block-library/blocks/audio/theme.css 125 B
build/block-library/blocks/avatar/editor-rtl.css 59 B
build/block-library/blocks/avatar/editor.css 59 B
build/block-library/blocks/block/editor-rtl.css 161 B
build/block-library/blocks/block/editor.css 161 B
build/block-library/blocks/button/editor-rtl.css 445 B
build/block-library/blocks/button/editor.css 445 B
build/block-library/blocks/button/style-rtl.css 560 B
build/block-library/blocks/button/style.css 560 B
build/block-library/blocks/buttons/editor-rtl.css 292 B
build/block-library/blocks/buttons/editor.css 292 B
build/block-library/blocks/buttons/style-rtl.css 275 B
build/block-library/blocks/buttons/style.css 275 B
build/block-library/blocks/calendar/style-rtl.css 207 B
build/block-library/blocks/calendar/style.css 207 B
build/block-library/blocks/categories/editor-rtl.css 84 B
build/block-library/blocks/categories/editor.css 83 B
build/block-library/blocks/categories/style-rtl.css 79 B
build/block-library/blocks/categories/style.css 79 B
build/block-library/blocks/code/style-rtl.css 103 B
build/block-library/blocks/code/style.css 103 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 406 B
build/block-library/blocks/columns/style.css 406 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-template/style-rtl.css 127 B
build/block-library/blocks/comment-template/style.css 127 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-query-loop/editor-rtl.css 95 B
build/block-library/blocks/comments-query-loop/editor.css 95 B
build/block-library/blocks/cover/editor-rtl.css 546 B
build/block-library/blocks/cover/editor.css 547 B
build/block-library/blocks/cover/style-rtl.css 1.56 kB
build/block-library/blocks/cover/style.css 1.56 kB
build/block-library/blocks/embed/editor-rtl.css 293 B
build/block-library/blocks/embed/editor.css 293 B
build/block-library/blocks/embed/style-rtl.css 417 B
build/block-library/blocks/embed/style.css 417 B
build/block-library/blocks/embed/theme-rtl.css 124 B
build/block-library/blocks/embed/theme.css 124 B
build/block-library/blocks/file/editor-rtl.css 300 B
build/block-library/blocks/file/editor.css 300 B
build/block-library/blocks/file/style-rtl.css 255 B
build/block-library/blocks/file/style.css 255 B
build/block-library/blocks/file/view.min.js 353 B
build/block-library/blocks/freeform/editor-rtl.css 2.44 kB
build/block-library/blocks/freeform/editor.css 2.44 kB
build/block-library/blocks/gallery/editor-rtl.css 961 B
build/block-library/blocks/gallery/editor.css 964 B
build/block-library/blocks/gallery/style-rtl.css 1.51 kB
build/block-library/blocks/gallery/style.css 1.51 kB
build/block-library/blocks/gallery/theme-rtl.css 122 B
build/block-library/blocks/gallery/theme.css 122 B
build/block-library/blocks/group/editor-rtl.css 159 B
build/block-library/blocks/group/editor.css 159 B
build/block-library/blocks/group/style-rtl.css 57 B
build/block-library/blocks/group/style.css 57 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 114 B
build/block-library/blocks/heading/style.css 114 B
build/block-library/blocks/html/editor-rtl.css 332 B
build/block-library/blocks/html/editor.css 333 B
build/block-library/blocks/image/editor-rtl.css 731 B
build/block-library/blocks/image/editor.css 730 B
build/block-library/blocks/image/style-rtl.css 529 B
build/block-library/blocks/image/style.css 535 B
build/block-library/blocks/image/theme-rtl.css 124 B
build/block-library/blocks/image/theme.css 124 B
build/block-library/blocks/latest-comments/style-rtl.css 284 B
build/block-library/blocks/latest-comments/style.css 284 B
build/block-library/blocks/latest-posts/editor-rtl.css 199 B
build/block-library/blocks/latest-posts/editor.css 198 B
build/block-library/blocks/latest-posts/style-rtl.css 447 B
build/block-library/blocks/latest-posts/style.css 446 B
build/block-library/blocks/list/style-rtl.css 94 B
build/block-library/blocks/list/style.css 94 B
build/block-library/blocks/media-text/editor-rtl.css 266 B
build/block-library/blocks/media-text/editor.css 263 B
build/block-library/blocks/media-text/style-rtl.css 493 B
build/block-library/blocks/media-text/style.css 490 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 708 B
build/block-library/blocks/navigation-link/editor.css 706 B
build/block-library/blocks/navigation-link/style-rtl.css 94 B
build/block-library/blocks/navigation-link/style.css 94 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 299 B
build/block-library/blocks/navigation-submenu/editor.css 299 B
build/block-library/blocks/navigation-submenu/view.min.js 375 B
build/block-library/blocks/navigation/editor-rtl.css 2.03 kB
build/block-library/blocks/navigation/editor.css 2.04 kB
build/block-library/blocks/navigation/style-rtl.css 1.89 kB
build/block-library/blocks/navigation/style.css 1.88 kB
build/block-library/blocks/navigation/view.min.js 2.85 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 363 B
build/block-library/blocks/page-list/editor.css 363 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 157 B
build/block-library/blocks/paragraph/editor.css 157 B
build/block-library/blocks/paragraph/style-rtl.css 273 B
build/block-library/blocks/paragraph/style.css 273 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/style-rtl.css 446 B
build/block-library/blocks/post-comments-form/style.css 446 B
build/block-library/blocks/post-comments/style-rtl.css 521 B
build/block-library/blocks/post-comments/style.css 521 B
build/block-library/blocks/post-excerpt/editor-rtl.css 73 B
build/block-library/blocks/post-excerpt/editor.css 73 B
build/block-library/blocks/post-excerpt/style-rtl.css 69 B
build/block-library/blocks/post-excerpt/style.css 69 B
build/block-library/blocks/post-featured-image/editor-rtl.css 721 B
build/block-library/blocks/post-featured-image/editor.css 721 B
build/block-library/blocks/post-featured-image/style-rtl.css 153 B
build/block-library/blocks/post-featured-image/style.css 153 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 323 B
build/block-library/blocks/post-template/style.css 323 B
build/block-library/blocks/post-terms/style-rtl.css 73 B
build/block-library/blocks/post-terms/style.css 73 B
build/block-library/blocks/post-title/style-rtl.css 80 B
build/block-library/blocks/post-title/style.css 80 B
build/block-library/blocks/preformatted/style-rtl.css 103 B
build/block-library/blocks/preformatted/style.css 103 B
build/block-library/blocks/pullquote/editor-rtl.css 198 B
build/block-library/blocks/pullquote/editor.css 198 B
build/block-library/blocks/pullquote/style-rtl.css 370 B
build/block-library/blocks/pullquote/style.css 370 B
build/block-library/blocks/pullquote/theme-rtl.css 167 B
build/block-library/blocks/pullquote/theme.css 167 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 234 B
build/block-library/blocks/query-pagination/style.css 231 B
build/block-library/blocks/query/editor-rtl.css 131 B
build/block-library/blocks/query/editor.css 132 B
build/block-library/blocks/quote/style-rtl.css 201 B
build/block-library/blocks/quote/style.css 201 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 132 B
build/block-library/blocks/read-more/style.css 132 B
build/block-library/blocks/rss/editor-rtl.css 202 B
build/block-library/blocks/rss/editor.css 204 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 165 B
build/block-library/blocks/search/editor.css 165 B
build/block-library/blocks/search/style-rtl.css 397 B
build/block-library/blocks/search/style.css 398 B
build/block-library/blocks/search/theme-rtl.css 64 B
build/block-library/blocks/search/theme.css 64 B
build/block-library/blocks/separator/editor-rtl.css 140 B
build/block-library/blocks/separator/editor.css 140 B
build/block-library/blocks/separator/style-rtl.css 233 B
build/block-library/blocks/separator/style.css 233 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 474 B
build/block-library/blocks/shortcode/editor.css 474 B
build/block-library/blocks/site-logo/editor-rtl.css 759 B
build/block-library/blocks/site-logo/editor.css 759 B
build/block-library/blocks/site-logo/style-rtl.css 181 B
build/block-library/blocks/site-logo/style.css 181 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 84 B
build/block-library/blocks/site-title/editor.css 84 B
build/block-library/blocks/social-link/editor-rtl.css 177 B
build/block-library/blocks/social-link/editor.css 177 B
build/block-library/blocks/social-links/editor-rtl.css 674 B
build/block-library/blocks/social-links/editor.css 673 B
build/block-library/blocks/social-links/style-rtl.css 1.37 kB
build/block-library/blocks/social-links/style.css 1.36 kB
build/block-library/blocks/spacer/editor-rtl.css 332 B
build/block-library/blocks/spacer/editor.css 332 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 471 B
build/block-library/blocks/table/editor.css 472 B
build/block-library/blocks/table/style-rtl.css 481 B
build/block-library/blocks/table/style.css 481 B
build/block-library/blocks/table/theme-rtl.css 188 B
build/block-library/blocks/table/theme.css 188 B
build/block-library/blocks/tag-cloud/style-rtl.css 226 B
build/block-library/blocks/tag-cloud/style.css 227 B
build/block-library/blocks/template-part/editor-rtl.css 235 B
build/block-library/blocks/template-part/editor.css 235 B
build/block-library/blocks/template-part/theme-rtl.css 101 B
build/block-library/blocks/template-part/theme.css 101 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 87 B
build/block-library/blocks/verse/style.css 87 B
build/block-library/blocks/video/editor-rtl.css 571 B
build/block-library/blocks/video/editor.css 572 B
build/block-library/blocks/video/style-rtl.css 173 B
build/block-library/blocks/video/style.css 173 B
build/block-library/blocks/video/theme-rtl.css 124 B
build/block-library/blocks/video/theme.css 124 B
build/block-library/common-rtl.css 934 B
build/block-library/common.css 932 B
build/block-library/editor-rtl.css 10 kB
build/block-library/editor.css 10 kB
build/block-library/reset-rtl.css 474 B
build/block-library/reset.css 474 B
build/block-library/style-rtl.css 11.2 kB
build/block-library/style.css 11.2 kB
build/block-library/theme-rtl.css 689 B
build/block-library/theme.css 694 B
build/block-serialization-default-parser/index.min.js 1.12 kB
build/block-serialization-spec-parser/index.min.js 2.83 kB
build/blocks/index.min.js 46.8 kB
build/components/index.min.js 223 kB
build/components/style-rtl.css 14.9 kB
build/components/style.css 14.9 kB
build/compose/index.min.js 11.2 kB
build/core-data/index.min.js 14.3 kB
build/customize-widgets/style-rtl.css 1.39 kB
build/customize-widgets/style.css 1.39 kB
build/data-controls/index.min.js 663 B
build/date/index.min.js 32 kB
build/deprecated/index.min.js 518 B
build/dom-ready/index.min.js 336 B
build/dom/index.min.js 4.53 kB
build/edit-navigation/style-rtl.css 4.04 kB
build/edit-navigation/style.css 4.05 kB
build/edit-post/classic-rtl.css 546 B
build/edit-post/classic.css 547 B
build/edit-post/style-rtl.css 7.07 kB
build/edit-post/style.css 7.07 kB
build/edit-site/style-rtl.css 7.6 kB
build/edit-site/style.css 7.58 kB
build/edit-widgets/style-rtl.css 4.4 kB
build/edit-widgets/style.css 4.39 kB
build/editor/index.min.js 38.4 kB
build/editor/style-rtl.css 3.71 kB
build/editor/style.css 3.71 kB
build/element/index.min.js 4.29 kB
build/escape-html/index.min.js 548 B
build/format-library/index.min.js 6.62 kB
build/format-library/style-rtl.css 571 B
build/format-library/style.css 571 B
build/hooks/index.min.js 1.66 kB
build/html-entities/index.min.js 454 B
build/i18n/index.min.js 3.79 kB
build/is-shallow-equal/index.min.js 535 B
build/keyboard-shortcuts/index.min.js 1.83 kB
build/keycodes/index.min.js 1.41 kB
build/list-reusable-blocks/index.min.js 1.75 kB
build/list-reusable-blocks/style-rtl.css 838 B
build/list-reusable-blocks/style.css 838 B
build/media-utils/index.min.js 2.94 kB
build/notices/index.min.js 957 B
build/nux/index.min.js 2.12 kB
build/nux/style-rtl.css 751 B
build/nux/style.css 749 B
build/plugins/index.min.js 1.98 kB
build/primitives/index.min.js 949 B
build/priority-queue/index.min.js 611 B
build/react-i18n/index.min.js 704 B
build/react-refresh-entry/index.min.js 8.44 kB
build/react-refresh-runtime/index.min.js 7.31 kB
build/redux-routine/index.min.js 2.69 kB
build/reusable-blocks/index.min.js 2.24 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/rich-text/index.min.js 11.1 kB
build/server-side-render/index.min.js 1.61 kB
build/shortcode/index.min.js 1.52 kB
build/token-list/index.min.js 668 B
build/url/index.min.js 1.99 kB
build/vendors/react-dom.min.js 38.5 kB
build/vendors/react.min.js 4.34 kB
build/viewport/index.min.js 1.08 kB
build/warning/index.min.js 280 B
build/widgets/index.min.js 7.21 kB
build/widgets/style-rtl.css 1.16 kB
build/widgets/style.css 1.16 kB
build/wordcount/index.min.js 1.07 kB

compressed-size-action

Copy link
Contributor

@andrewserong andrewserong 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 exploring this idea @youknowriad!

close #39651

It looks like that issue was more about the "Allow to wrap to multiple lines" toggle, I wasn't too sure of the connection between adding in the new variation (apologies if I'm missing context, there!)

I'm wondering if there isn't quite enough difference between the Group and Stack variations. As a user how would I know that Group and Stack do quite different things (one being block / margin based, the other being vertically oriented flex?):

Perhaps that's a matter for the description / icons, like you mention. It'd be great to have separate icons to make the differentiation clearer. Are there other features that the Stack variation can include that would help to hone in on that difference? (Separate icons would help for if we want to surface more kinds of "group as" controls in the multi-select toolbar, too, e.g. #34461).

One way to look at it, is if as a user, you're going to create a container block from scratch and go to pick one of these variations, which would you reach for and why?

For a user who switches to the vertical orientation, it involves a couple of limitations that we don't have in the group block:

  • If you're currently on a Row block and switch to the vertical orientation, then we no longer have access to left / right alignments on images (since they rely on floats), and paragraph blocks can no longer be individually aligned, either, it seems.
  • You can no longer set content / wide width, have access to wide / full alignment

I noticed a couple of other little things we'd probably want to tweak, too, if we proceed with this variation. The "Allow to wrap to multiple lines" toggle doesn't appear to do anything in a vertical orientation, and clicking to select paragraphs within the block seems to be a bit unreliable:

2022-03-24 10 51 41

Thanks for digging in, though — I think looking at variations, and switching between them will help open up a bit more of our thinking surrounding the flexibility of changing between different kinds of layouts 👍

@youknowriad
Copy link
Contributor Author

Indeed, the issue is unrelated, I misread it originally, sorry about that :) I'll look at some of the other points.

@jasmussen
Copy link
Contributor

Nice. I'm exploring some new icons for row and stack in #39710 (comment) as well!

@youknowriad
Copy link
Contributor Author

@jasmussen Let me know when you have the SVGs so I can add them here.

@jasmussen
Copy link
Contributor

I have them now, and you can add them only on the condition that if we change our minds on the visuals, we can update them 😛 (I like the icons as they are, but they are hot off the press and still a work in progress!)

Row:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24" xml:space="preserve"><path d="M19 6.5h-7c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2v-7c0-1.1-.9-2-2-2zm.5 9c0 .3-.2.5-.5.5h-7c-.3 0-.5-.2-.5-.5v-7c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5v7zM3 8.5v7c0 1.1.9 2 2 2h3.5V16H5c-.3 0-.5-.2-.5-.5v-7c0-.3.2-.5.5-.5h3.5V6.5H5c-1.1 0-2 .9-2 2z" style="fill:#1e1e1e"/></svg>

Stack (the block):

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24" xml:space="preserve"><path d="M15.5 3h-7c-1.1 0-2 .9-2 2v3.5H8V5c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5v3.5h1.5V5c0-1.1-.9-2-2-2zm0 7h-7c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2v-7c0-1.1-.9-2-2-2zm.5 9c0 .3-.2.5-.5.5h-7c-.3 0-.5-.2-.5-.5v-7c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5v7z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#1e1e1e"/></svg>

I noticed, by the way, that there's already a stack icon which is used for multi-selected blocks. It's derived from the gallery icon, but its metrics are off, making it blurry on 1x screens. Here are updated vectors for that one, in case you're tinkering there anyway (rename or whatnot):

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24" xml:space="preserve"><path d="M20.2 8v11c0 .7-.6 1.2-1.2 1.2H6v1.5h13c1.5 0 2.7-1.2 2.7-2.8V8h-1.5zM18 16.4V4.6c0-.9-.7-1.6-1.6-1.6H4.6C3.7 3 3 3.7 3 4.6v11.8c0 .9.7 1.6 1.6 1.6h11.8c.9 0 1.6-.7 1.6-1.6zm-13.5 0V4.6c0-.1.1-.1.1-.1h11.8c.1 0 .1.1.1.1v11.8c0 .1-.1.1-.1.1H4.6l-.1-.1z" style="fill:#1e1e1e"/></svg>

@youknowriad
Copy link
Contributor Author

Changing icons designs is always possible :)

@youknowriad
Copy link
Contributor Author

How do you think we should name these? (especially due to the stack conflict)

@jasmussen
Copy link
Contributor

How do you think we should name these? (especially due to the stack conflict)

If I could have my way, I'd rename the existing stack to "multiple" or something like it 🤔 — row, group and stack and ungroup feel like good generic names for the 3 blocks, IMO.

@youknowriad
Copy link
Contributor Author

ok 👍

@jasmussen
Copy link
Contributor

I'm not totally sure on "multiple" though. "selection"?

@youknowriad
Copy link
Contributor Author

It looks more like "copy" to me :P

@jasmussen
Copy link
Contributor

jasmussen commented Mar 24, 2022

Oh I guess that's right, and I guess we'd use that same one if we ever needed cut/copy/paste icons 🤔

We don't prefix or suffix block to any of the block icons, do we? Such as blockRow or rowBlock? Should we? Not a strong opinion, but this is something that is currently out of sync in the Figma library, and something I need to fix at some point:

Screenshot 2022-03-24 at 10 58 31

Edit, and by "fix" I mean probably rename the icons in Figma to match what's shipping.

@youknowriad
Copy link
Contributor Author

We don't prefix or suffix block to any of the block icons, do we? Such as blockRow or rowBlock? Should we?

We don't, we can also fix in the code if needed but it would be a big change.

@jasmussen
Copy link
Contributor

Right, and it makes sense since there are some cases where we'd re-use a particular block icon for a non-block action. Group being just one example. Yeah I'll update the figma to use non-prefixed names when I get a chance.

I wouldn't mind the icon being renamed "copy". But mostly I just think "Stack" is a great name for the block, and the action.

@youknowriad
Copy link
Contributor Author

I pushed the icons change.

@jasmussen
Copy link
Contributor

And with a small apology in advance, I've just updated the icons a little bit 🙈

New row:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24" xml:space="preserve"><path d="M9.2 6.5H4V8h5.2c.3 0 .5.2.5.5v7c0 .3-.2.5-.5.5H4v1.5h5.2c1.1 0 2-.9 2-2v-7c0-1.1-.8-2-2-2zM14.8 8H20V6.5h-5.2c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2H20V16h-5.2c-.3 0-.5-.2-.5-.5v-7c-.1-.3.2-.5.5-.5z" style="fill:#1e1e1e"/></svg>

New stack:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24" xml:space="preserve"><path d="M16 4v5.2c0 .3-.2.5-.5.5h-7c-.3.1-.5-.2-.5-.5V4H6.5v5.2c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2V4H16zm-.5 8.8h-7c-1.1 0-2 .9-2 2V20H8v-5.2c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5V20h1.5v-5.2c0-1.2-.9-2-2-2z" style="fill:#1e1e1e"/></svg>

@youknowriad
Copy link
Contributor Author

Apology not needed :P

{
name: 'group-stack',
title: __( 'Stack' ),
description: __( 'Blocks stacked in a column.' ),
Copy link
Contributor

Choose a reason for hiding this comment

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

I think this could be improved if it included "vertically" instead of "column" since column is already another block.

Copy link
Member

Choose a reason for hiding this comment

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

Agreed

@carolinan
Copy link
Contributor

Does this adress the feedback about the group block variation not being identifiable on the front?
Please consider it, if we add another variation that is not detectable, we add to the problem instead of solving problems.

@ZebulanStanphill
Copy link
Member

ZebulanStanphill commented Mar 25, 2022

It's worth noting that one unique feature of a vertical flex layout (in comparison to standard display: block layout`) is that, if you set a height or max height for the container, the items can actually wrap horizontally. On the other hand, the default layout is the only one that supports floated elements. From the perspective of the end user, these are the only notable differences, so I think it would sense to bring these things up in the variation descriptions, if possible.

Only issue is that there's no way to set a max height for the Group block. The Cover block already has that feature, though.

@youknowriad
Copy link
Contributor Author

Does this address the feedback about the group block variation not being identifiable on the front?

These are not different blocks, I understand your feedback but if we want to add a className, it should be is-layout-flex maybe or something like that. Because that issue will be the same for all blocks using layout, not just the group.

Only issue is that there's no way to set a max height for the Group block. The Cover block already has that feature, though.

Yeah, seems like we should find a way to expand this control to several blocks

@carolinan
Copy link
Contributor

is-layout-flex while useful, would not help separate the variations from each other.

@youknowriad
Copy link
Contributor Author

Not sure what's remaining here. I feel this is ready. I think there are a couple of points that we should look into separately:

  • What to output as classnames from the chosen layout in the frontend as this impacts all blocks, not just group.
  • Showing the variations when you select multiple blocks.

@youknowriad youknowriad merged commit 8c871f3 into trunk Mar 28, 2022
@youknowriad youknowriad deleted the add/stack-variation branch March 28, 2022 14:05
@github-actions github-actions bot added this to the Gutenberg 13.0 milestone Mar 28, 2022
@andrewserong
Copy link
Contributor

andrewserong commented Mar 30, 2022

Nice work landing this!

Showing the variations when you select multiple blocks.

If no-one picks this up in the meantime, I'm happy to look at this when I'm back from AFK next week as it should be a fairly straightforward follow-up to: #39710 by adding the variations to the component there.

@bph bph added the Needs Dev Note Requires a developer note for a major WordPress release cycle label Apr 13, 2022
@jasmussen
Copy link
Contributor

@youknowriad looks like we've been pinged for a dev note on #39654. Here's a quick draft to get that ball rolling, let me know what you think.

Stack block

The new Stack block is a variation of the Group block, and can be thought of as a vertical variant of the Row block. It's a flex container, meaning it has access to content justifications and block spacing. If combined with the Row block and its ability to optionally wrap onto new lines, it can enable basic responsive behaviors, such as two columns that stack to a single column on smaller displays.

@youknowriad
Copy link
Contributor Author

I'm not sure why we need a dev note, it's not really targeted for developers.

@justintadlock
Copy link
Contributor

I'm not sure why we need a dev note, it's not really targeted for developers.

I imagine that theme devs will find this far more useful than users. It'd probably be good to let them know about it.

It is also possible that theme authors have custom Group block styles that they might want to test against this new variation.

@jasmussen
Copy link
Contributor

We can use the dev note above, and perhaps this example video showing it in action from the recent 13.0 release notes.

@whimsyniche
Copy link

We can use the dev note above, and perhaps this example video showing it in action from the recent 13.0 release notes.

@jasmussen What FSE theme is that? What's blurred gradient background from? Where can I find it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Block] Group Affects the Group Block Needs Dev Note Requires a developer note for a major WordPress release cycle [Type] Enhancement A suggestion for improvement.
Projects
No open projects
Archived in project
Development

Successfully merging this pull request may close these issues.

9 participants