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

Styles Navigation Screen: Add Style Book #50566

Conversation

andrewserong
Copy link
Contributor

@andrewserong andrewserong commented May 12, 2023

What?

Fixes: #50393

Add a button to the Styles left-hand navigation screen in the site editor Browse mode. Clicking the button opens the Style Book within the frame, displayed without tabs. Clicking anywhere within the Style Book frame opens up the edit mode with the Style Book open.

Why?

As raised in #50393, the goal is to make it easier for folks to open up the Style Book and see how styles look across blocks at a glance.

How?

  • Add an extra button to the Styles navigation screen within the browse mode of the site editor
  • Use the same icon as the Style Book icon in the global styles sidebar
  • Allow the Style Book to be rendered within the frame in browse mode
  • Hide the tabs, and treat the Style Book as one big button when displayed in this screen

Testing Instructions

  1. Open up the site editor, and go to the Styles screen on the left hand side
  2. Click the eye icon expose the Style Book
  3. You should be able to scroll up and down the Style Book. Clicking within it will open up the edit mode / navigate to the full site editor.
  4. Navigating from the Styles screen back to the main navigation screen and back to Styles screen should reset the display state for the Style Book.
  5. Double-check that otherwise opening/closing the site editor works just as before, and that the Style Book within the site editor is otherwise unaffected.

Testing Instructions for Keyboard

Similar to above, but tab over to the eye icon from the Styles screen. Also, try tabbing all the way to the Style Book frame. You should be able to press Enter / Space to open up the edit mode.

Screenshots or screencast

image
2023-05-16.15.14.40.mp4
@andrewserong andrewserong added [Type] Enhancement A suggestion for improvement. Global Styles Anything related to the broader Global Styles efforts, including Styles Engine and theme.json labels May 12, 2023
@andrewserong andrewserong self-assigned this May 12, 2023
openGeneralSidebar( 'edit-site/global-styles' );
} }
/>
<div>
Copy link
Contributor Author

@andrewserong andrewserong May 12, 2023

Choose a reason for hiding this comment

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

I've just used a simple div here so that there isn't any space between the buttons. Happy to change this if we need the buttons to have some breathing room.

Copy link
Member

Choose a reason for hiding this comment

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

Sounds good 👍

I'm not an expert here, but would something like <div role="group" aria-label="Styles commands"> be appropriate too?

Asking for a friend :trollface:

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 question — I only added the wrapping div for styling purposes rather than to flag anything semantically. Since there's only two controls at the moment, I wasn't sure how valuable having a group role would be for those two buttons?

Happy to add it in, though, if you think it's better to treat them as a group!

Copy link
Member

Choose a reason for hiding this comment

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

Honestly I don't know. I think it's fine to leave as is. If we find out a group role is helpful it's easy to add in 👍

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Cheers, sounds good 👍

@github-actions
Copy link

github-actions bot commented May 12, 2023

Size Change: +571 B (0%)

Total Size: 1.39 MB

Filename Size Change
build/edit-site/index.min.js 66.4 kB +474 B (+1%)
build/edit-site/style-rtl.css 10.6 kB +49 B (0%)
build/edit-site/style.css 10.6 kB +48 B (0%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 993 B
build/annotations/index.min.js 2.78 kB
build/api-fetch/index.min.js 2.33 kB
build/autop/index.min.js 2.15 kB
build/blob/index.min.js 483 B
build/block-directory/index.min.js 7.2 kB
build/block-directory/style-rtl.css 1.05 kB
build/block-directory/style.css 1.05 kB
build/block-editor/content-rtl.css 4.17 kB
build/block-editor/content.css 4.16 kB
build/block-editor/default-editor-styles-rtl.css 403 B
build/block-editor/default-editor-styles.css 403 B
build/block-editor/index.min.js 205 kB
build/block-editor/style-rtl.css 15.4 kB
build/block-editor/style.css 15.3 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 138 B
build/block-library/blocks/audio/theme.css 138 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 91 B
build/block-library/blocks/avatar/style.css 91 B
build/block-library/blocks/block/editor-rtl.css 305 B
build/block-library/blocks/block/editor.css 305 B
build/block-library/blocks/button/editor-rtl.css 587 B
build/block-library/blocks/button/editor.css 587 B
build/block-library/blocks/button/style-rtl.css 628 B
build/block-library/blocks/button/style.css 627 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 409 B
build/block-library/blocks/columns/style.css 409 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 647 B
build/block-library/blocks/cover/editor.css 650 B
build/block-library/blocks/cover/style-rtl.css 1.62 kB
build/block-library/blocks/cover/style.css 1.61 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 159 B
build/block-library/blocks/details/style.css 159 B
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 410 B
build/block-library/blocks/embed/style.css 410 B
build/block-library/blocks/embed/theme-rtl.css 138 B
build/block-library/blocks/embed/theme.css 138 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 269 B
build/block-library/blocks/file/style.css 270 B
build/block-library/blocks/file/view.min.js 379 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 957 B
build/block-library/blocks/gallery/editor.css 962 B
build/block-library/blocks/gallery/style-rtl.css 1.55 kB
build/block-library/blocks/gallery/style.css 1.55 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 654 B
build/block-library/blocks/group/editor.css 654 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 76 B
build/block-library/blocks/heading/style.css 76 B
build/block-library/blocks/html/editor-rtl.css 340 B
build/block-library/blocks/html/editor.css 341 B
build/block-library/blocks/image/editor-rtl.css 834 B
build/block-library/blocks/image/editor.css 833 B
build/block-library/blocks/image/style-rtl.css 652 B
build/block-library/blocks/image/style.css 652 B
build/block-library/blocks/image/theme-rtl.css 137 B
build/block-library/blocks/image/theme.css 137 B
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 213 B
build/block-library/blocks/latest-posts/editor.css 212 B
build/block-library/blocks/latest-posts/style-rtl.css 478 B
build/block-library/blocks/latest-posts/style.css 478 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 266 B
build/block-library/blocks/media-text/editor.css 263 B
build/block-library/blocks/media-text/style-rtl.css 507 B
build/block-library/blocks/media-text/style.css 505 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 716 B
build/block-library/blocks/navigation-link/editor.css 715 B
build/block-library/blocks/navigation-link/style-rtl.css 115 B
build/block-library/blocks/navigation-link/style.css 115 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/editor-rtl.css 2.13 kB
build/block-library/blocks/navigation/editor.css 2.14 kB
build/block-library/blocks/navigation/style-rtl.css 2.22 kB
build/block-library/blocks/navigation/style.css 2.21 kB
build/block-library/blocks/navigation/view-modal.min.js 2.81 kB
build/block-library/blocks/navigation/view.min.js 447 B
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 401 B
build/block-library/blocks/page-list/editor.css 401 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 174 B
build/block-library/blocks/paragraph/editor.css 174 B
build/block-library/blocks/paragraph/style-rtl.css 279 B
build/block-library/blocks/paragraph/style.css 281 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 501 B
build/block-library/blocks/post-comments-form/style.css 501 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 588 B
build/block-library/blocks/post-featured-image/editor.css 586 B
build/block-library/blocks/post-featured-image/style-rtl.css 322 B
build/block-library/blocks/post-featured-image/style.css 322 B
build/block-library/blocks/post-navigation-link/style-rtl.css 153 B
build/block-library/blocks/post-navigation-link/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 281 B
build/block-library/blocks/post-template/style.css 281 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 103 B
build/block-library/blocks/preformatted/style.css 103 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 335 B
build/block-library/blocks/pullquote/style.css 335 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 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 450 B
build/block-library/blocks/query/editor.css 449 B
build/block-library/blocks/quote/style-rtl.css 222 B
build/block-library/blocks/quote/style.css 222 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 149 B
build/block-library/blocks/rss/editor.css 149 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 178 B
build/block-library/blocks/search/editor.css 178 B
build/block-library/blocks/search/style-rtl.css 434 B
build/block-library/blocks/search/style.css 432 B
build/block-library/blocks/search/theme-rtl.css 114 B
build/block-library/blocks/search/theme.css 114 B
build/block-library/blocks/separator/editor-rtl.css 146 B
build/block-library/blocks/separator/editor.css 146 B
build/block-library/blocks/separator/style-rtl.css 234 B
build/block-library/blocks/separator/style.css 234 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 329 B
build/block-library/blocks/shortcode/editor.css 329 B
build/block-library/blocks/site-logo/editor-rtl.css 760 B
build/block-library/blocks/site-logo/editor.css 760 B
build/block-library/blocks/site-logo/style-rtl.css 203 B
build/block-library/blocks/site-logo/style.css 203 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 116 B
build/block-library/blocks/site-title/editor.css 116 B
build/block-library/blocks/site-title/style-rtl.css 57 B
build/block-library/blocks/site-title/style.css 57 B
build/block-library/blocks/social-link/editor-rtl.css 184 B
build/block-library/blocks/social-link/editor.css 184 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.4 kB
build/block-library/blocks/social-links/style.css 1.39 kB
build/block-library/blocks/spacer/editor-rtl.css 359 B
build/block-library/blocks/spacer/editor.css 359 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 433 B
build/block-library/blocks/table/editor.css 433 B
build/block-library/blocks/table/style-rtl.css 651 B
build/block-library/blocks/table/style.css 650 B
build/block-library/blocks/table/theme-rtl.css 157 B
build/block-library/blocks/table/theme.css 157 B
build/block-library/blocks/tag-cloud/style-rtl.css 251 B
build/block-library/blocks/tag-cloud/style.css 253 B
build/block-library/blocks/template-part/editor-rtl.css 403 B
build/block-library/blocks/template-part/editor.css 403 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 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 179 B
build/block-library/blocks/video/style.css 179 B
build/block-library/blocks/video/theme-rtl.css 139 B
build/block-library/blocks/video/theme.css 139 B
build/block-library/classic-rtl.css 179 B
build/block-library/classic.css 179 B
build/block-library/common-rtl.css 1.12 kB
build/block-library/common.css 1.12 kB
build/block-library/editor-elements-rtl.css 75 B
build/block-library/editor-elements.css 75 B
build/block-library/editor-rtl.css 11.8 kB
build/block-library/editor.css 11.8 kB
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/index.min.js 205 kB
build/block-library/interactive-blocks/interactivity.min.js 2.19 kB
build/block-library/interactive-blocks/navigation.min.js 841 B
build/block-library/interactive-blocks/vendors.min.js 8.15 kB
build/block-library/reset-rtl.css 478 B
build/block-library/reset.css 478 B
build/block-library/style-rtl.css 12.8 kB
build/block-library/style.css 12.8 kB
build/block-library/theme-rtl.css 698 B
build/block-library/theme.css 703 B
build/block-serialization-default-parser/index.min.js 1.13 kB
build/block-serialization-spec-parser/index.min.js 2.83 kB
build/blocks/index.min.js 51.1 kB
build/commands/index.min.js 15 kB
build/commands/style-rtl.css 851 B
build/commands/style.css 849 B
build/components/index.min.js 210 kB
build/components/style-rtl.css 11.8 kB
build/components/style.css 11.8 kB
build/compose/index.min.js 12.4 kB
build/core-commands/index.min.js 1.83 kB
build/core-data/index.min.js 16.6 kB
build/customize-widgets/index.min.js 12.2 kB
build/customize-widgets/style-rtl.css 1.41 kB
build/customize-widgets/style.css 1.41 kB
build/data-controls/index.min.js 718 B
build/data/index.min.js 8.73 kB
build/date/index.min.js 40.5 kB
build/deprecated/index.min.js 518 B
build/dom-ready/index.min.js 336 B
build/dom/index.min.js 4.76 kB
build/edit-post/classic-rtl.css 571 B
build/edit-post/classic.css 571 B
build/edit-post/index.min.js 35.4 kB
build/edit-post/style-rtl.css 7.84 kB
build/edit-post/style.css 7.83 kB
build/edit-widgets/index.min.js 17.3 kB
build/edit-widgets/style-rtl.css 4.58 kB
build/edit-widgets/style.css 4.58 kB
build/editor/index.min.js 46.1 kB
build/editor/style-rtl.css 3.59 kB
build/editor/style.css 3.59 kB
build/element/index.min.js 4.95 kB
build/escape-html/index.min.js 548 B
build/format-library/index.min.js 7.8 kB
build/format-library/style-rtl.css 577 B
build/format-library/style.css 577 B
build/hooks/index.min.js 1.66 kB
build/html-entities/index.min.js 454 B
build/i18n/index.min.js 3.75 kB
build/is-shallow-equal/index.min.js 535 B
build/keyboard-shortcuts/index.min.js 1.79 kB
build/keycodes/index.min.js 1.94 kB
build/list-reusable-blocks/index.min.js 2.14 kB
build/list-reusable-blocks/style-rtl.css 865 B
build/list-reusable-blocks/style.css 865 B
build/media-utils/index.min.js 2.99 kB
build/notices/index.min.js 977 B
build/plugins/index.min.js 1.86 kB
build/preferences-persistence/index.min.js 2.23 kB
build/preferences/index.min.js 1.35 kB
build/primitives/index.min.js 960 B
build/priority-queue/index.min.js 1.52 kB
build/private-apis/index.min.js 952 B
build/react-i18n/index.min.js 702 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.75 kB
build/reusable-blocks/index.min.js 2.26 kB
build/reusable-blocks/style-rtl.css 265 B
build/reusable-blocks/style.css 265 B
build/rich-text/index.min.js 11.1 kB
build/router/index.min.js 1.77 kB
build/server-side-render/index.min.js 2.09 kB
build/shortcode/index.min.js 1.42 kB
build/style-engine/index.min.js 1.55 kB
build/token-list/index.min.js 650 B
build/url/index.min.js 3.74 kB
build/vendors/inert-polyfill.min.js 2.48 kB
build/vendors/react-dom.min.js 41.8 kB
build/vendors/react.min.js 4.02 kB
build/viewport/index.min.js 1.09 kB
build/warning/index.min.js 280 B
build/widgets/index.min.js 7.3 kB
build/widgets/style-rtl.css 1.18 kB
build/widgets/style.css 1.18 kB
build/wordcount/index.min.js 1.06 kB

compressed-size-action

@andrewserong
Copy link
Contributor Author

Oh, thanks for the good suggestion @ramonjd, I'll have a play! 🙇

Copy link
Member

@ramonjd ramonjd left a comment

Choose a reason for hiding this comment

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

Tentatively approving if my async suggestion turns to ash.
This is working as described for me.
Thank you!

@andrewserong
Copy link
Contributor Author

Nicely done @ramonjd, your suggestion of using async functions and await and resolving the promises in a function used by both callbacks works nicely and neatens things up 👍. I've gone with that approach and added an extra comment for clarity just in case anyone in the future wonders why we needed to await dispatching those actions in order to get it working.

Thanks again, I'd entirely forgotten that dispatches return promises! 🎉

@github-actions
Copy link

github-actions bot commented May 12, 2023

Flaky tests detected in 2e9a4f5.
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/4977045249
📝 Reported issues:

@mtias
Copy link
Member

mtias commented May 12, 2023

My thinking was that we would render the style book in the frame but not navigate to the editor. So that you can check different styles quickly against the style book. If you click on the frame, then you'd go into the editor. Can we try that?

@richtabor
Copy link
Member

My thinking was that we would render the style book in the frame but not navigate to the editor.

That's an interesting idea. Would you still be able to navigate the tabs, or as soon as you interact it opens the Edit view?

@mtias
Copy link
Member

mtias commented May 13, 2023

No, the tabs wouldn't work in their current design. But I think we need to iterate there anyways and take them out of the frame, fwiw.

@andrewserong andrewserong force-pushed the add/style-book-button-in-styles-navigation-screen-in-browse-mode branch from 52cb96d to 2e9a4f5 Compare May 15, 2023 06:03
@andrewserong
Copy link
Contributor Author

Thanks for the feedback and ideas, folks! I've had a play with seeing if we can render the Style Book in the canvas within browse mode. It seems to work kind of okay, with a few caveats. Here's how it's currently looking:

2023-05-15.15.53.54.mp4
  • Renders in the Style Book in the frame, and tabs can be used to browse through all the blocks (I quite like including the tabs, personally)
  • The close button in the top-right works to close the style book, in addition to the eye icon
  • Clicking on any of the block previews within the Style Book will open the site editor proper
  • Caveat: With this approach we cannot redirect the user to the particular block they clicked on since TabPanel is not yet a controlled component (see: TabPanel: add tabName prop (controlled component) #46704)
  • Caveat: Hovering over the frame still causes it to expand/scale up in the Style Book view. If we want the style book to be interactive / navigable via tabs in this view, then we probably want to prevent the expansion if the style book is open.

Let me know what everyone thinks — if this seems like a good direction, I'm happy to keep tweaking / refining.

At this stage, I'd probably lean toward seeing how we can use the Style Book pretty much as-is within this PR. If we're looking at redesigning the Style Book / removing the tabs, then we might want to split out that work into a separate PR.

@jasmussen
Copy link
Contributor

Catching up here, looks good. To Matías note, we need to explore a different interface than the tabs. That can happen separately. But the tabs being functional in the frame, also the close button, that isn't a great experience.

Can we make it so a click anywhere on the frame, when the style book is open, goes to the fullscreen editor with the global styles panel, and the style book open? And can we hide the tabs in the mean time?

@annezazu annezazu mentioned this pull request May 15, 2023
57 tasks
@ramonjd
Copy link
Member

ramonjd commented May 15, 2023

Nice one!

The close button in the top-right works to close the style book, in addition to the eye icon

Just to note that the close button can be hidden if that's desired

Caveat: With this approach we cannot redirect the user to the particular block they clicked on since TabPanel is not yet a controlled component

My assumption was that the foundational purpose of this screen was to allow the user to select a style variation on the left hand side.

I can see the worth of being able to preview different blocks in each style variation, and therefore tab interactions, but clicking on a block and being taken to the site editor might detract from the primary purpose of the page: to select a style variation.

@andrewserong
Copy link
Contributor Author

Just to note that the close button can be hidden if that's desired

Oh, thanks!

Can we make it so a click anywhere on the frame, when the style book is open, goes to the fullscreen editor with the global styles panel, and the style book open? And can we hide the tabs in the mean time?

If we hide the tabs, would we expect to list all blocks out, or just those in the first tab, with the tabs hidden? I'll have a play around and see what's possible.

Thanks again for the feedback and ideas, folks!

@andrewserong
Copy link
Contributor Author

Update: I think I've managed to get it working pretty well while hiding the tabs in the frame view:

2023-05-16.15.14.40.mp4

In the latest update:

  • The tabs are hidden in the Style Book in the frame view in Browse mode
  • All blocks are currently visible in one big list
  • The list is scrollable
  • Clicking anywhere within the Style Book opens up the editor mode with the Style Book open
  • Users can tab to the Style Book via keyboard and press Enter / Space to open the editor mode
  • Clicking back / navigating to the main navigation screen closes the Style Book
  • In the editor mode, we still display the tabs as normal

I'm sure there'll be other refinements and tweaks to do, too, but let me know how this feels for balance at the moment.

@andrewserong andrewserong changed the title Styles Navigation Screen: Add button to open Style Book May 16, 2023
@jasmussen
Copy link
Contributor

Took this for a spin, nice work:

status

It helps a lot that the tabs are omitted, and it gives us the benefit that you can see the various style variations applied across the style book, before saving.

However I just realized, that we might be able to skip this interim step. That is, go directly from this screen:

Screenshot 2023-05-16 at 10 51 25

to this screen:

Screenshot 2023-05-16 at 10 51 30

I should've noted this sooner, sorry, but there are a few benefits to this:

  • The eye button behaves like the edit button right next to it, being a deep-link.
  • It avoids us having to add a toggled state to it.
  • It makes it just a little bit clearer what the style book is, given the full-screen context.

This also ties into some of the work @beafialho has been doing on the style book, where here's a screen that retires the tabs:

2  Style Book

I recognize the downside that you can't preview the style variations on the style book, and we can potentially revisit this. But it might be a simpler starting point? CC: @jameskoster

@jameskoster
Copy link
Contributor

I originally thought that's how this would work (deep link). It looks like that was the initial implementation, but it was later changed on request.

Being able to preview the style variations and view all blocks at the same time seems quite handy to me, as it's not something currently possible in the Styles panel in Edit view. So I don't mind the toggle. Especially as we'll likely have a similar toggle on Template / Part list panels for moving between browse/manage views.

Until we've done a design exploration that considers Styles to be a more discrete experience I don't have an especially strong opinion on this one.

@jasmussen
Copy link
Contributor

Ah, then let's go with this as is! No reason to hold this up.

@juanfra
Copy link
Member

juanfra commented May 16, 2023

This looks really nice! It'd be interesting to have some styles for the is-pressed buttons on the sidebar navigation to clearly indicate what's been selected, making the "toggle" more explicit. From what I see now, there's only a shadow applied to the focus state of is-pressed which can be easily lost. I really love this change; great job!

@andrewserong andrewserong force-pushed the add/style-book-button-in-styles-navigation-screen-in-browse-mode branch from 05c20d7 to 5e7783f Compare May 17, 2023 00:57
@andrewserong
Copy link
Contributor Author

Thanks for the feedback, folks! I've given this PR a rebase and I believe it should be ready for a final review now.

It'd be interesting to have some styles for the is-pressed buttons on the sidebar navigation to clearly indicate what's been selected, making the "toggle" more explicit. From what I see now, there's only a shadow applied to the focus state of is-pressed which can be easily lost.

Yes, it'd be good to take a look at the is-pressed styles. Since they apply to the .edit-site-sidebar-button class in general, I'd be happy to look at this in a follow-up if that works? Do any designers have an opinion on what the pressed state should look like / specific colors to use? I imagine it might look something like a background color of $gray-200 with a foreground color of #1e1e1e to look like the following:

image

This also ties into some of the work @beafialho has been doing on the style book, where here's a screen that retires the tabs:

Very happy to help efforts to improve the style book — once the designs are ready, shall we open up a separate issue to track that?

Ah, then let's go with this as is! No reason to hold this up.

Thanks — I can see good arguments between keeping the Style Book within the frame in browse mode (current state of this PR) and opening up edit mode (the original implementation in this PR). It won't be difficult to switch out the approach after merging if we decide we'd like to switch back to opening the full edit mode.

Please let me know if everyone's happy with the current state of this PR, or if you'd like further iterations before landing 🙂

Copy link
Member

@ramonjd ramonjd left a comment

Choose a reason for hiding this comment

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

I just left a couple of optional code changes. This is working well for me. 👍

2023-05-17.12.22.31.mp4

I can't find any regressions to the style book in canvas === 'edit' mode.

I agree it'd be handy for my 🧠 to have an is-pressed state on the style book button in the sidebar to indicate that it's open.

Co-authored-by: ramon <ramonjd@gmail.com>
@andrewserong
Copy link
Contributor Author

Thanks for the re-review and suggestions @ramonjd! I'll leave this PR open overnight to see if there are any other requests from designers, and if not will merge this in tomorrow and/or follow-up with the is-pressed state 🙂

@jasmussen
Copy link
Contributor

Thanks for all the work. Agreed we should look at the toggled state separately and not let it block this one. We need that designed in a more careful way, as it's something we'll want across other toggle states in the dark material. I feel like @jameskoster may have some thoughts there as well, so I'll defer to him, but just as a baseline, something like this would feel more at home:

Screenshot 2023-05-17 at 09 28 14

I recognize that doesn't check all the boxes, all the more reason to explore it as a followup.

Copy link
Contributor

@apeatling apeatling left a comment

Choose a reason for hiding this comment

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

Great work @andrewserong. This is testing well for me, looks good to merge.

Only thing I noticed was the flickering from white of each style preview box in the sidebar when the styles sidebar first loads. It's a bit jankier than it could be. It'd be good to try and improve that in a follow up.

@andrewserong
Copy link
Contributor Author

Thanks all! I'll merge this in now. Happy to continue tweaking in follow-ups, and please let me know if there were any other ideas you'd like me to look into 🙂

@andrewserong andrewserong merged commit c34280b into trunk May 17, 2023
50 checks passed
@andrewserong andrewserong deleted the add/style-book-button-in-styles-navigation-screen-in-browse-mode branch May 17, 2023 23:26
@github-actions github-actions bot added this to the Gutenberg 15.9 milestone May 17, 2023
@femkreations femkreations added the Needs User Documentation Needs new user documentation label Jun 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Global Styles Anything related to the broader Global Styles efforts, including Styles Engine and theme.json Needs User Documentation Needs new user documentation [Type] Enhancement A suggestion for improvement.
9 participants