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 panel: Rearrange the Revisions and Additional CSS toggles #66476

Open
wants to merge 12 commits into
base: trunk
Choose a base branch
from

Conversation

afercia
Copy link
Contributor

@afercia afercia commented Oct 25, 2024

Fixes #66307
Fixes #66333

What?

The way to access Styles revisions and Additional CSS is inconsistent and little discoverable, especially for the Additional CSS. These features live in sub-panels of the Styles 'drill-down' menu. Other sub-panels use standard navigation buttons with a chevron icon to access the sub-panels.

For more details, please refer to the conversations on #66307
and #66333.

Why?

For consistency and better user experiences, accessing the sub-panels of the Styles drill-down menu should use a consistent pattern. Features should be well discoverable and not buried down into an ellipsis menu.

How?

  • Removes the Revisions icon button from the panel header.
  • Adds a 'Styles revisions' navigation button at the bottom of the panel. This button should appear only when there are revisions.
  • Removes the 'Additional CSS' menu item from the ellipsis 'More' menu.
  • Makes the 'Additional CSS' navigation button in the panel always visible, also when there's no custom CSS set. This basically reverts Move Additional CSS from the top-level Global Styles sidebar #47266
  • Removes the descriptions for 'Blocks' and 'Additional CSS'.

Additionally: Fixes a bug where accessing the Additional CSS from the navigation button at the bottom of the Styles panel
did not switch back the canvas to the default view when the Style Book was enabled. See #66333 (comment)

Testing Instructions

  • Make sure there is no additional CSS set.
  • Make sure there are no Styles revisions. I'm not sure how to do this other than deleting all the posts of type revision and title Custom Styles from the database.
  • Go to the Site editor > Styles panel in the edit view.
  • Observe there is an 'Additional CSS' button at the bottom of the Styles panel.
  • Observe there's no 'Styles revisions' button shown, yet.
  • Make any style change and save.
  • Navigate back to the root of the panel and observe there is now a 'Styles revisions' button shown.
  • Test navigating to the 'Styles revisions' panel with and without 'Style book' enabled and verify the canvas view changes as expected. There should be no differences in the behavior compared to trunk
  • Enable the Style Book, navigate to Additional CSS and verify that it does deactivate the Style Book.
  • Click 'Open Navigation' at the top left of the screen.
  • Observe that in the Design > Styles panel there is no 'revisions' navigation item after 'Blocks' and 'Additional CSS'. It's not necessary to show it because there is alreadh a 'Revisions' navigation button in the root navigation panel (the black one).

Edit:

  • Go to the Site editor > Styles panel in the view mode, that is: the new Styles panel on the left.
  • Observe there's no 'Styles revisions' button.

Testing Instructions for Keyboard

Screenshots or screencast

Before and after:

before and after

@afercia afercia added [Focus] Accessibility (a11y) Changes that impact accessibility and need corresponding review (e.g. markup changes). Needs Design Feedback Needs general design feedback. Global Styles Anything related to the broader Global Styles efforts, including Styles Engine and theme.json [Package] Edit Site /packages/edit-site labels Oct 25, 2024
Copy link

github-actions bot commented Oct 25, 2024

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: afercia <[email protected]>
Co-authored-by: t-hamano <[email protected]>
Co-authored-by: stokesman <[email protected]>
Co-authored-by: ramonjd <[email protected]>
Co-authored-by: jameskoster <[email protected]>
Co-authored-by: draganescu <[email protected]>
Co-authored-by: aaronrobertshaw <[email protected]>
Co-authored-by: richtabor <[email protected]>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@afercia afercia added the [Type] Bug An existing feature does not function as intended label Oct 25, 2024
Copy link

github-actions bot commented Oct 25, 2024

Size Change: -411 B (-0.02%)

Total Size: 1.83 MB

Filename Size Change
build/edit-site/index.min.js 220 kB -329 B (-0.15%)
build/edit-site/style-rtl.css 13.6 kB -42 B (-0.31%)
build/edit-site/style.css 13.6 kB -40 B (-0.29%)
ℹ️ View Unchanged
Filename Size
build-module/a11y/index.min.js 482 B
build-module/block-library/file/view.min.js 447 B
build-module/block-library/form/view.min.js 533 B
build-module/block-library/image/view.min.js 1.77 kB
build-module/block-library/navigation/view.min.js 1.16 kB
build-module/block-library/query/view.min.js 742 B
build-module/block-library/search/view.min.js 616 B
build-module/interactivity-router/index.min.js 3.04 kB
build-module/interactivity/debug.min.js 17.2 kB
build-module/interactivity/index.min.js 13.6 kB
build/a11y/index.min.js 952 B
build/annotations/index.min.js 2.26 kB
build/api-fetch/index.min.js 2.32 kB
build/autop/index.min.js 2.12 kB
build/blob/index.min.js 579 B
build/block-directory/index.min.js 7.26 kB
build/block-directory/style-rtl.css 1 kB
build/block-directory/style.css 1 kB
build/block-editor/content-rtl.css 4.47 kB
build/block-editor/content.css 4.46 kB
build/block-editor/default-editor-styles-rtl.css 394 B
build/block-editor/default-editor-styles.css 394 B
build/block-editor/index.min.js 259 kB
build/block-editor/style-rtl.css 15.7 kB
build/block-editor/style.css 15.7 kB
build/block-library/blocks/archives/editor-rtl.css 84 B
build/block-library/blocks/archives/editor.css 83 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 149 B
build/block-library/blocks/audio/editor.css 151 B
build/block-library/blocks/audio/style-rtl.css 132 B
build/block-library/blocks/audio/style.css 132 B
build/block-library/blocks/audio/theme-rtl.css 134 B
build/block-library/blocks/audio/theme.css 134 B
build/block-library/blocks/avatar/editor-rtl.css 115 B
build/block-library/blocks/avatar/editor.css 115 B
build/block-library/blocks/avatar/style-rtl.css 104 B
build/block-library/blocks/avatar/style.css 104 B
build/block-library/blocks/button/editor-rtl.css 265 B
build/block-library/blocks/button/editor.css 265 B
build/block-library/blocks/button/style-rtl.css 555 B
build/block-library/blocks/button/style.css 555 B
build/block-library/blocks/buttons/editor-rtl.css 291 B
build/block-library/blocks/buttons/editor.css 291 B
build/block-library/blocks/buttons/style-rtl.css 345 B
build/block-library/blocks/buttons/style.css 345 B
build/block-library/blocks/calendar/style-rtl.css 240 B
build/block-library/blocks/calendar/style.css 240 B
build/block-library/blocks/categories/editor-rtl.css 132 B
build/block-library/blocks/categories/editor.css 131 B
build/block-library/blocks/categories/style-rtl.css 152 B
build/block-library/blocks/categories/style.css 152 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 139 B
build/block-library/blocks/code/style.css 139 B
build/block-library/blocks/code/theme-rtl.css 122 B
build/block-library/blocks/code/theme.css 122 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 420 B
build/block-library/blocks/columns/style.css 420 B
build/block-library/blocks/comment-author-avatar/editor-rtl.css 124 B
build/block-library/blocks/comment-author-avatar/editor.css 124 B
build/block-library/blocks/comment-author-name/style-rtl.css 72 B
build/block-library/blocks/comment-author-name/style.css 72 B
build/block-library/blocks/comment-content/style-rtl.css 120 B
build/block-library/blocks/comment-content/style.css 120 B
build/block-library/blocks/comment-date/style-rtl.css 65 B
build/block-library/blocks/comment-date/style.css 65 B
build/block-library/blocks/comment-edit-link/style-rtl.css 70 B
build/block-library/blocks/comment-edit-link/style.css 70 B
build/block-library/blocks/comment-reply-link/style-rtl.css 71 B
build/block-library/blocks/comment-reply-link/style.css 71 B
build/block-library/blocks/comment-template/style-rtl.css 200 B
build/block-library/blocks/comment-template/style.css 199 B
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css 122 B
build/block-library/blocks/comments-pagination-numbers/editor.css 121 B
build/block-library/blocks/comments-pagination/editor-rtl.css 238 B
build/block-library/blocks/comments-pagination/editor.css 231 B
build/block-library/blocks/comments-pagination/style-rtl.css 245 B
build/block-library/blocks/comments-pagination/style.css 241 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 842 B
build/block-library/blocks/comments/editor.css 842 B
build/block-library/blocks/comments/style-rtl.css 637 B
build/block-library/blocks/comments/style.css 637 B
build/block-library/blocks/cover/editor-rtl.css 631 B
build/block-library/blocks/cover/editor.css 631 B
build/block-library/blocks/cover/style-rtl.css 1.7 kB
build/block-library/blocks/cover/style.css 1.69 kB
build/block-library/blocks/details/editor-rtl.css 65 B
build/block-library/blocks/details/editor.css 65 B
build/block-library/blocks/details/style-rtl.css 86 B
build/block-library/blocks/details/style.css 86 B
build/block-library/blocks/embed/editor-rtl.css 331 B
build/block-library/blocks/embed/editor.css 331 B
build/block-library/blocks/embed/style-rtl.css 419 B
build/block-library/blocks/embed/style.css 419 B
build/block-library/blocks/embed/theme-rtl.css 133 B
build/block-library/blocks/embed/theme.css 133 B
build/block-library/blocks/file/editor-rtl.css 326 B
build/block-library/blocks/file/editor.css 326 B
build/block-library/blocks/file/style-rtl.css 278 B
build/block-library/blocks/file/style.css 279 B
build/block-library/blocks/footnotes/style-rtl.css 198 B
build/block-library/blocks/footnotes/style.css 197 B
build/block-library/blocks/form-input/editor-rtl.css 229 B
build/block-library/blocks/form-input/editor.css 229 B
build/block-library/blocks/form-input/style-rtl.css 357 B
build/block-library/blocks/form-input/style.css 357 B
build/block-library/blocks/form-submission-notification/editor-rtl.css 344 B
build/block-library/blocks/form-submission-notification/editor.css 341 B
build/block-library/blocks/form-submit-button/style-rtl.css 69 B
build/block-library/blocks/form-submit-button/style.css 69 B
build/block-library/blocks/freeform/editor-rtl.css 2.6 kB
build/block-library/blocks/freeform/editor.css 2.6 kB
build/block-library/blocks/gallery/editor-rtl.css 946 B
build/block-library/blocks/gallery/editor.css 951 B
build/block-library/blocks/gallery/style-rtl.css 1.83 kB
build/block-library/blocks/gallery/style.css 1.82 kB
build/block-library/blocks/gallery/theme-rtl.css 108 B
build/block-library/blocks/gallery/theme.css 108 B
build/block-library/blocks/group/editor-rtl.css 334 B
build/block-library/blocks/group/editor.css 334 B
build/block-library/blocks/group/style-rtl.css 103 B
build/block-library/blocks/group/style.css 103 B
build/block-library/blocks/group/theme-rtl.css 79 B
build/block-library/blocks/group/theme.css 79 B
build/block-library/blocks/heading/style-rtl.css 188 B
build/block-library/blocks/heading/style.css 188 B
build/block-library/blocks/html/editor-rtl.css 346 B
build/block-library/blocks/html/editor.css 347 B
build/block-library/blocks/image/editor-rtl.css 799 B
build/block-library/blocks/image/editor.css 799 B
build/block-library/blocks/image/style-rtl.css 1.6 kB
build/block-library/blocks/image/style.css 1.59 kB
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 355 B
build/block-library/blocks/latest-comments/style.css 354 B
build/block-library/blocks/latest-posts/editor-rtl.css 139 B
build/block-library/blocks/latest-posts/editor.css 138 B
build/block-library/blocks/latest-posts/style-rtl.css 520 B
build/block-library/blocks/latest-posts/style.css 520 B
build/block-library/blocks/list/style-rtl.css 107 B
build/block-library/blocks/list/style.css 107 B
build/block-library/blocks/loginout/style-rtl.css 61 B
build/block-library/blocks/loginout/style.css 61 B
build/block-library/blocks/media-text/editor-rtl.css 321 B
build/block-library/blocks/media-text/editor.css 320 B
build/block-library/blocks/media-text/style-rtl.css 552 B
build/block-library/blocks/media-text/style.css 550 B
build/block-library/blocks/more/editor-rtl.css 427 B
build/block-library/blocks/more/editor.css 427 B
build/block-library/blocks/navigation-link/editor-rtl.css 644 B
build/block-library/blocks/navigation-link/editor.css 645 B
build/block-library/blocks/navigation-link/style-rtl.css 192 B
build/block-library/blocks/navigation-link/style.css 191 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 295 B
build/block-library/blocks/navigation-submenu/editor.css 294 B
build/block-library/blocks/navigation/editor-rtl.css 2.2 kB
build/block-library/blocks/navigation/editor.css 2.2 kB
build/block-library/blocks/navigation/style-rtl.css 2.24 kB
build/block-library/blocks/navigation/style.css 2.23 kB
build/block-library/blocks/nextpage/editor-rtl.css 392 B
build/block-library/blocks/nextpage/editor.css 392 B
build/block-library/blocks/page-list/editor-rtl.css 378 B
build/block-library/blocks/page-list/editor.css 378 B
build/block-library/blocks/page-list/style-rtl.css 192 B
build/block-library/blocks/page-list/style.css 192 B
build/block-library/blocks/paragraph/editor-rtl.css 236 B
build/block-library/blocks/paragraph/editor.css 236 B
build/block-library/blocks/paragraph/style-rtl.css 341 B
build/block-library/blocks/paragraph/style.css 340 B
build/block-library/blocks/post-author-biography/style-rtl.css 74 B
build/block-library/blocks/post-author-biography/style.css 74 B
build/block-library/blocks/post-author-name/style-rtl.css 69 B
build/block-library/blocks/post-author-name/style.css 69 B
build/block-library/blocks/post-author/editor-rtl.css 107 B
build/block-library/blocks/post-author/editor.css 107 B
build/block-library/blocks/post-author/style-rtl.css 188 B
build/block-library/blocks/post-author/style.css 189 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 527 B
build/block-library/blocks/post-comments-form/style.css 528 B
build/block-library/blocks/post-content/style-rtl.css 61 B
build/block-library/blocks/post-content/style.css 61 B
build/block-library/blocks/post-date/style-rtl.css 62 B
build/block-library/blocks/post-date/style.css 62 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 155 B
build/block-library/blocks/post-excerpt/style.css 155 B
build/block-library/blocks/post-featured-image/editor-rtl.css 729 B
build/block-library/blocks/post-featured-image/editor.css 726 B
build/block-library/blocks/post-featured-image/style-rtl.css 347 B
build/block-library/blocks/post-featured-image/style.css 347 B
build/block-library/blocks/post-navigation-link/style-rtl.css 215 B
build/block-library/blocks/post-navigation-link/style.css 214 B
build/block-library/blocks/post-template/editor-rtl.css 99 B
build/block-library/blocks/post-template/editor.css 98 B
build/block-library/blocks/post-template/style-rtl.css 399 B
build/block-library/blocks/post-template/style.css 398 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 70 B
build/block-library/blocks/post-time-to-read/style.css 70 B
build/block-library/blocks/post-title/style-rtl.css 162 B
build/block-library/blocks/post-title/style.css 162 B
build/block-library/blocks/preformatted/style-rtl.css 125 B
build/block-library/blocks/preformatted/style.css 125 B
build/block-library/blocks/pullquote/editor-rtl.css 134 B
build/block-library/blocks/pullquote/editor.css 134 B
build/block-library/blocks/pullquote/style-rtl.css 351 B
build/block-library/blocks/pullquote/style.css 350 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 121 B
build/block-library/blocks/query-pagination-numbers/editor.css 118 B
build/block-library/blocks/query-pagination/editor-rtl.css 154 B
build/block-library/blocks/query-pagination/editor.css 154 B
build/block-library/blocks/query-pagination/style-rtl.css 237 B
build/block-library/blocks/query-pagination/style.css 237 B
build/block-library/blocks/query-title/style-rtl.css 64 B
build/block-library/blocks/query-title/style.css 64 B
build/block-library/blocks/query/editor-rtl.css 527 B
build/block-library/blocks/query/editor.css 527 B
build/block-library/blocks/quote/style-rtl.css 238 B
build/block-library/blocks/quote/style.css 238 B
build/block-library/blocks/quote/theme-rtl.css 233 B
build/block-library/blocks/quote/theme.css 236 B
build/block-library/blocks/read-more/style-rtl.css 138 B
build/block-library/blocks/read-more/style.css 138 B
build/block-library/blocks/rss/editor-rtl.css 101 B
build/block-library/blocks/rss/editor.css 101 B
build/block-library/blocks/rss/style-rtl.css 288 B
build/block-library/blocks/rss/style.css 287 B
build/block-library/blocks/search/editor-rtl.css 199 B
build/block-library/blocks/search/editor.css 199 B
build/block-library/blocks/search/style-rtl.css 660 B
build/block-library/blocks/search/style.css 658 B
build/block-library/blocks/search/theme-rtl.css 113 B
build/block-library/blocks/search/theme.css 113 B
build/block-library/blocks/separator/editor-rtl.css 100 B
build/block-library/blocks/separator/editor.css 100 B
build/block-library/blocks/separator/style-rtl.css 248 B
build/block-library/blocks/separator/style.css 248 B
build/block-library/blocks/separator/theme-rtl.css 195 B
build/block-library/blocks/separator/theme.css 195 B
build/block-library/blocks/shortcode/editor-rtl.css 286 B
build/block-library/blocks/shortcode/editor.css 286 B
build/block-library/blocks/site-logo/editor-rtl.css 806 B
build/block-library/blocks/site-logo/editor.css 803 B
build/block-library/blocks/site-logo/style-rtl.css 218 B
build/block-library/blocks/site-logo/style.css 218 B
build/block-library/blocks/site-tagline/editor-rtl.css 87 B
build/block-library/blocks/site-tagline/editor.css 87 B
build/block-library/blocks/site-tagline/style-rtl.css 65 B
build/block-library/blocks/site-tagline/style.css 65 B
build/block-library/blocks/site-title/editor-rtl.css 85 B
build/block-library/blocks/site-title/editor.css 85 B
build/block-library/blocks/site-title/style-rtl.css 143 B
build/block-library/blocks/site-title/style.css 143 B
build/block-library/blocks/social-link/editor-rtl.css 309 B
build/block-library/blocks/social-link/editor.css 309 B
build/block-library/blocks/social-links/editor-rtl.css 727 B
build/block-library/blocks/social-links/editor.css 724 B
build/block-library/blocks/social-links/style-rtl.css 1.51 kB
build/block-library/blocks/social-links/style.css 1.51 kB
build/block-library/blocks/spacer/editor-rtl.css 346 B
build/block-library/blocks/spacer/editor.css 346 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-of-contents/style-rtl.css 83 B
build/block-library/blocks/table-of-contents/style.css 83 B
build/block-library/blocks/table/editor-rtl.css 394 B
build/block-library/blocks/table/editor.css 394 B
build/block-library/blocks/table/style-rtl.css 640 B
build/block-library/blocks/table/style.css 639 B
build/block-library/blocks/table/theme-rtl.css 152 B
build/block-library/blocks/table/theme.css 152 B
build/block-library/blocks/tag-cloud/editor-rtl.css 144 B
build/block-library/blocks/tag-cloud/editor.css 144 B
build/block-library/blocks/tag-cloud/style-rtl.css 266 B
build/block-library/blocks/tag-cloud/style.css 265 B
build/block-library/blocks/template-part/editor-rtl.css 368 B
build/block-library/blocks/template-part/editor.css 368 B
build/block-library/blocks/template-part/theme-rtl.css 113 B
build/block-library/blocks/template-part/theme.css 113 B
build/block-library/blocks/term-description/style-rtl.css 126 B
build/block-library/blocks/term-description/style.css 126 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 165 B
build/block-library/blocks/text-columns/style.css 165 B
build/block-library/blocks/verse/style-rtl.css 98 B
build/block-library/blocks/verse/style.css 98 B
build/block-library/blocks/video/editor-rtl.css 441 B
build/block-library/blocks/video/editor.css 442 B
build/block-library/blocks/video/style-rtl.css 192 B
build/block-library/blocks/video/style.css 192 B
build/block-library/blocks/video/theme-rtl.css 134 B
build/block-library/blocks/video/theme.css 134 B
build/block-library/classic-rtl.css 179 B
build/block-library/classic.css 179 B
build/block-library/common-rtl.css 1.08 kB
build/block-library/common.css 1.08 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 222 kB
build/block-library/reset-rtl.css 472 B
build/block-library/reset.css 472 B
build/block-library/style-rtl.css 15 kB
build/block-library/style.css 15 kB
build/block-library/theme-rtl.css 708 B
build/block-library/theme.css 712 B
build/block-serialization-default-parser/index.min.js 1.12 kB
build/block-serialization-spec-parser/index.min.js 2.87 kB
build/blocks/index.min.js 53 kB
build/commands/index.min.js 16.2 kB
build/commands/style-rtl.css 955 B
build/commands/style.css 952 B
build/components/index.min.js 228 kB
build/components/style-rtl.css 12.4 kB
build/components/style.css 12.4 kB
build/compose/index.min.js 12.7 kB
build/core-commands/index.min.js 3.09 kB
build/core-data/index.min.js 74.3 kB
build/customize-widgets/index.min.js 11 kB
build/customize-widgets/style-rtl.css 1.35 kB
build/customize-widgets/style.css 1.35 kB
build/data-controls/index.min.js 641 B
build/data/index.min.js 8.69 kB
build/date/index.min.js 18 kB
build/deprecated/index.min.js 458 B
build/dom-ready/index.min.js 325 B
build/dom/index.min.js 4.66 kB
build/edit-post/classic-rtl.css 578 B
build/edit-post/classic.css 580 B
build/edit-post/index.min.js 13.4 kB
build/edit-post/style-rtl.css 2.75 kB
build/edit-post/style.css 2.75 kB
build/edit-site/posts-rtl.css 7.46 kB
build/edit-site/posts.css 7.46 kB
build/edit-widgets/index.min.js 17.6 kB
build/edit-widgets/style-rtl.css 4.07 kB
build/edit-widgets/style.css 4.08 kB
build/editor/index.min.js 114 kB
build/editor/style-rtl.css 9.32 kB
build/editor/style.css 9.32 kB
build/element/index.min.js 4.82 kB
build/escape-html/index.min.js 537 B
build/format-library/index.min.js 8.05 kB
build/format-library/style-rtl.css 476 B
build/format-library/style.css 476 B
build/hooks/index.min.js 1.65 kB
build/html-entities/index.min.js 445 B
build/i18n/index.min.js 3.58 kB
build/is-shallow-equal/index.min.js 526 B
build/keyboard-shortcuts/index.min.js 1.31 kB
build/keycodes/index.min.js 1.46 kB
build/list-reusable-blocks/index.min.js 2.13 kB
build/list-reusable-blocks/style-rtl.css 852 B
build/list-reusable-blocks/style.css 852 B
build/media-utils/index.min.js 3.58 kB
build/notices/index.min.js 946 B
build/nux/index.min.js 1.62 kB
build/nux/style-rtl.css 749 B
build/nux/style.css 745 B
build/patterns/index.min.js 7.37 kB
build/patterns/style-rtl.css 687 B
build/patterns/style.css 685 B
build/plugins/index.min.js 1.86 kB
build/preferences-persistence/index.min.js 2.06 kB
build/preferences/index.min.js 2.9 kB
build/preferences/style-rtl.css 554 B
build/preferences/style.css 554 B
build/primitives/index.min.js 829 B
build/priority-queue/index.min.js 1.54 kB
build/private-apis/index.min.js 972 B
build/react-i18n/index.min.js 630 B
build/react-refresh-entry/index.min.js 9.47 kB
build/react-refresh-runtime/index.min.js 6.76 kB
build/redux-routine/index.min.js 2.7 kB
build/reusable-blocks/index.min.js 2.55 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/rich-text/index.min.js 10.3 kB
build/router/index.min.js 5.42 kB
build/server-side-render/index.min.js 1.94 kB
build/shortcode/index.min.js 1.4 kB
build/style-engine/index.min.js 2.04 kB
build/token-list/index.min.js 581 B
build/url/index.min.js 3.9 kB
build/vendors/react-dom.min.js 41.7 kB
build/vendors/react-jsx-runtime.min.js 556 B
build/vendors/react.min.js 4.02 kB
build/viewport/index.min.js 965 B
build/vips/index.min.js 36.2 kB
build/warning/index.min.js 250 B
build/widgets/index.min.js 7.16 kB
build/widgets/style-rtl.css 1.16 kB
build/widgets/style.css 1.16 kB
build/wordcount/index.min.js 1.03 kB

compressed-size-action

@t-hamano t-hamano self-requested a review October 27, 2024 04:07
Copy link
Contributor

@t-hamano t-hamano 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 the PR!

I agree with all the changes to the functionality, but when it comes to the ItemGroup style, I personally prefer the default style (without isBordered, isSeparated):

image

@t-hamano t-hamano requested review from ramonjd and a team October 27, 2024 04:08
@ramonjd
Copy link
Member

ramonjd commented Oct 27, 2024

Thank you! I have nothing against the move, and it does decrease the icon overload.

I've smoke tested revisions/stylebook in the editor and it works well.

Since this affects the UI mainly, I'll lean on the advice of @jameskoster and co, since they have a better idea of how it would fit within any upcoming design changes.

I personally prefer the default style (without isBordered, isSeparated):

+1

@afercia
Copy link
Contributor Author

afercia commented Oct 28, 2024

I think I know, more or less, why the tests are failing on this PR as the 'Revisions' button in the panel header has been removed. However, the site-editor/user-global-styles-revisions.spec.js test fails also on trunk for me. Not sure why but this makes fixing the test pretty challenging. Maybe I'm missing something or maybe I'm missing some configuration step. I did destroy the wp-env environment and restarted it but that didn't help.
I'd appreciate any help. This way, contributing becomes unnecessarily time consuming and a little frustrating.
Cc @WordPress/gutenberg-core

Output of the failing test on trunk:

test output.txt

@afercia
Copy link
Contributor Author

afercia commented Oct 28, 2024

I agree with all the changes to the functionality, but when it comes to the ItemGroup style, I personally prefer the default style (without isBordered, isSeparated):

I'm not opposed to that but then the styling should be consistend for all the similar navigation buttons. I created #66448 to address that.

@jameskoster
Copy link
Contributor

To avoid multiple changes in quick succession should we wait for a final design in #66376?

Copy link

github-actions bot commented Oct 28, 2024

Flaky tests detected in 875bd10.
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/12234507829
📝 Reported issues:

@afercia
Copy link
Contributor Author

afercia commented Oct 28, 2024

To avoid multiple changes in quick succession should we wait for a final design in #66376?

@jameskoster as I mentioned in #66307 (comment) I'm not sure I understand why #66376 is a blocker for this PR. Basically, #66376 aims to move the entire Styles panel but it doesn't touch its content. Instead, this PR is about the Styles panel content.

@draganescu
Copy link
Contributor

Checking out this PR and I see the new buttons are in a sort of segmented button with all borders on. This kinda keeps the problems around - what are these buttons and why are they so separated and special. In fact the previous way of having a description and a simple text + chevron (no border) is the right choice for this drill down panel.

Can we try the suggestion from @t-hamano and @jameskoster - have explanatory label (that always shows) and normal link-to buttons (text and chevron)?

@afercia
Copy link
Contributor Author

afercia commented Oct 29, 2024

@draganescu thanks for your feedback.
As I mentioned in a previous comment #66476 (comment) I'm not opposed to a different styling of these navigation buttons, as long as:

  • They use one of the built-in styles of the ItemGroup component. No ad-hoc implementations or CSS overrides pleaae.
  • They use a consistent styles with other navigation buttons that live in this same panel, see Establish a consistent pattern for navigation buttons that open sub-panels #66448. All of these are the same component, they have the same functionality but they look different. I'd argue that's not good as it doesn;t make these controls consistent and their action predictable.

Anyways, I'll gladly change to one of the built-in styles please just tell me which one to use. Please consider the same styling should be used for all the other occurrences detailed on #66448

Can we try [...] have explanatory label (that always shows) and normal link-to buttons (text and chevron)?

I'm not sure I understand the point about labels. These buttons do have visible labels. Did you mean the descriptions perhaps? Those must be removed as they are aunique ad-hoc, inconsistent pattern. Tehy're duplicated in the sub-panels and they just add clutter.

In fact the previous way of having a description and a simple text + chevron (no border) is the right choice for this drill down panel.

I'm not comfortable with this kind of tone. Saying is the right choice is too assertive especially when not supported by any argument. It may be the right choice for you, it may not for other contributors. Plrease let's put more focus on being more open to different opinions and use a less assertive tone thanks.

@afercia
Copy link
Contributor Author

afercia commented Oct 29, 2024

In the screenshot below: these are the available built-in styles, respectively:
none, isSeparated, isBordered, isBordered + isSeparated

Screenshot 2024-10-29 at 09 29 22

For completeness, there is also an isRounded variant.

@afercia afercia force-pushed the fix/relocate-styles-panel-buttons branch from 46b623b to 7643334 Compare October 29, 2024 08:56
@afercia
Copy link
Contributor Author

afercia commented Oct 29, 2024

Latest commit tries the isSeparated style variant. Screenshot:

Screenshot 2024-10-29 at 09 54 53

@draganescu
Copy link
Contributor

In the screenshot below: these are the available built-in styles, respectively: none, isSeparated, isBordered, isBordered + isSeparated

Thanks for iterating @afercia - I think the style I was reffering to is none. This style is best because we start with the Browse styles button which is also apparently none.

Those must be removed as they are aunique ad-hoc, inconsistent pattern. Tehy're duplicated in the sub-panels and they just add clutter.

I don't think consistency should trump any other objective. The descriptions are there because the buttons "Blocks", "Additional CSS" and "Styles revisions" are disconnected from the above options, although in the same functional space "Styling". For a well versed user they may sound redundant but the role of these descriptions is discovery. And since your PR helps discovery by moving additional css and revisions into the main display then we should also leave the descriptions in place, so at the very least the buttons make sense in this context.

Previously, by having them in secondary areas (the dot menu and the extra panel buttons) the intent was to highlight that they're "secondary", special utility. You'd have to know what you want to access them. Here, bringing them front and center we require the descriptions so that users have the benefit of learning what these things do before venturing in. They're deffinitely not clutter.

@afercia
Copy link
Contributor Author

afercia commented Oct 29, 2024

then we should also leave the descriptions in place

I kindly disagree. As I mentioned, that's a unique, inconsistent pattern. I can't support this kind of design direction as I think consistency is key and all that text adds unnecessary cognitive load, so that's also related to usability and accessibility.

Furthermore: descriptions should be placed after the object they refer to and never before. Also, descriptions should be programmatically associated to the object they refer to by the means of an aria-describedby which is missng here. So basically the implementation is very arguable.

About discoverability: these descriptions are used also in the sub-panels. For example, as an usrer, if I want to discover what 'Additional CSS' is I can just click on it and get the panel with the description.

Overall, I think the descriptions in the main panel are just redundant and inconsistent and their design is arguable. I vote for removing them.

@afercia
Copy link
Contributor Author

afercia commented Oct 29, 2024

think the style I was reffering to is none. This style is best because we start with the Browse styles button which is also apparently none.

To me, as I already mentioned, all the navigation buttons in the styles panel and its sub-pabels should look the same. At the moment, they are largely inconsistent, see #66448

Controls that have the same functionality should use the same styling. This is key to allow users to identify, predict, and understand what these controls are. To me, this point sounds so obvious that it shouldn't even warrant discussing it. I'm not sure the none styling would be appropriate for all the cases detailed on #66448. Anyways, I'd encourage further evaluation and iteration on that issue as a follow-up.

@afercia
Copy link
Contributor Author

afercia commented Oct 29, 2024

Just reminding everyone this PR also fixes and existing bug:

FIxes a bug where accessing the Additional CSS from the navigation button at the bottom of the Styles panel
did not switch back the canvas to the default view when the Style Book was enabled. See #66333 (comment)

That should be fixed, either by this PR or a new one.

Copy link
Contributor

@stokesman stokesman left a comment

Choose a reason for hiding this comment

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

I'm in favor of this. It also seems like an iteration that shouldn’t much impact further design efforts in #66376 but I could be missing something. One thing I noticed while testing—though it’s probably unrelated to any changes here—is that when drilling down to Revisions or Blocks, the scroll position seems like it should reset to the top. It seems to do that a shorter viewport heights, but I'm seeing it around 680px.

styles-sidebar-drilldown-scroll-position.mp4

@aaronrobertshaw
Copy link
Contributor

I'm a little late to this party but appreciate the discussion all around 👍

My vote would be to hold off on this PR until the dust settles on #66376.

As I noted over on the original issue, the consistency argument has been raised a few times here and this proposed relocation swaps one inconsistency for another. The new location would still be inconsistent with the Styles panel in the site editor.

There is active work happening on the broader issue for the Style Book via #66376. The consistency argument can also be applied to limiting changes to the UI. We can avoid making users adapt to multiple successive UI updates, so in my view it doesn't cost us a lot here to be patient and skip one more small paper cut to users. This is likely part of the reasoning behind @jameskoster's earlier comment.

@afercia
Copy link
Contributor Author

afercia commented Oct 31, 2024

Fair enough, i will set this PR on hold. If #66376 doesn't make it for the next WordPress release I would suggest to bring back to life this PR and have at least this partial improvement in the release.

Copy link
Contributor

@t-hamano t-hamano left a comment

Choose a reason for hiding this comment

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

This PR seems to be working as expected.

New Styles screen:

image

Global styles sidebar:

image

@WordPress/gutenberg-design I'd be happy to receive any feedback on the design.


Thinking that the 'Styles revisions' button should now be shown conditionally;
With the new Styles panel, there's already a way to access Revisions. It's the 'Last modified' button in the navigation panel.

It may not need to be addressed in this PR, but does anyone know if there is a reason the revision button had to be in the footer? Perhaps in a follow-up PR we could move it inside the new Styles panel?

@afercia
Copy link
Contributor Author

afercia commented Dec 11, 2024

does anyone know if there is a reason the revision button had to be in the footer? Perhaps in a follow-up PR we could move it inside the new Styles panel?

I'd agree that is something to consider. Now that the Styles open in the 'in-the-middle-panel' (sorry I don't remember the name for this design pattern) having the revisions button in the footer makes less sense?

@jameskoster
Copy link
Contributor

Couple of thoughts on the design:

  1. Do we need strokes between each menu item? They're adding noise, and not much value imo.
  2. I have a slight concern that we're giving outsized prominence to custom css. I understand that on trunk this menu item appears only when custom css is present, but I wonder if it can't live in the ellipsis menu permanently?
  3. Could "Styles revisions" just be "Revisions" to match the destination panel title?
  4. I know this is out of scope but we really should aim for better consistency in our use of chevrons to indicate drilldowns. The mixture in this panel is quite confusing. In a follow-up it might be worth addressing this. Maybe chevrons appear only on hover to help reduce some noise?

does anyone know if there is a reason the revision button had to be in the footer? Perhaps in a follow-up PR we could move it inside the new Styles panel?

I think it's an oversight. I agree it should move to the content panel.

@ramonjd
Copy link
Member

ramonjd commented Dec 11, 2024

does anyone know if there is a reason the revision button had to be in the footer? Perhaps in a follow-up PR we could move it inside the new Styles panel?

It's a historical thing - it was also previously used for templates, pattern et. al, which, back then, were not presented in data views. Agree it'd have a happy home in the content panel. 👍🏻

@t-hamano
Copy link
Contributor

I have a slight concern that we're giving outsized prominence to custom css. I understand that on trunk this menu item appears only when custom css is present, but I wonder if it can't live in the ellipsis menu permanently?

In this regard, does it make sense to place the "Additional CSS" menu at the end?

@afercia
Copy link
Contributor Author

afercia commented Dec 12, 2024

Thanks all for your feedback. I'd lean towards making two changes in this PR, for now:

  • Reword "Styles revisions" to just be "Revisions".
  • Move the Revisions item from the Navigation screen footer to the content panel. This item does have an additional icon and the revisions count though, should they stay?

Rough screenshot:

Screenshot 2024-12-12 at 10 30 04

@afercia
Copy link
Contributor Author

afercia commented Dec 12, 2024

Re: the other points:

Do we need strokes between each menu item? They're adding noise, and not much value imo.

I have no strong opinions but I'd like to see consistency with all the other navigational items with a chevron used elsewhere, for example in the right Styles panel.

I have a slight concern that we're giving outsized prominence to custom css ... I wonder if it can't live in the ellipsis menu permanently?

That's the whole point of #66333. Why this feature should be hidden, buried down into the ellipsis menu in the first place? It's an editor feature, no different from other features. To me, the ellipsis menu is just a perfect way to hide features from users and make them little discoverable.

we really should aim for better consistency in our use of chevrons to indicate drilldowns. The mixture in this panel is quite confusing. In a follow-up it might be worth addressing this. Maybe chevrons appear only on hover to help reduce some noise?

I'd totally agree that all drilldowns navigational items should use a consistent pattern to communicate they open a sub-panel. I'm not sure why the main Styles items (Typography, Colors, Background...) don't. That's already on trunk singe long time though. I'd be in favor of using chevron icons there too, but please not just on hover. Screenshot of current trunk inconsistencies:

Screenshot 2024-12-12 at 10 20 35

@afercia afercia force-pushed the fix/relocate-styles-panel-buttons branch from 1ead3d8 to 3e47bf2 Compare December 12, 2024 12:15
@afercia
Copy link
Contributor Author

afercia commented Dec 12, 2024

The 'Revisions' button in the Navigation panel used to open the Revisions by switching the editor to the edit view and by opening the general sidebar on the right.

Now that we're trying to move the Revisions button into the Styles content panel, I think it should behave like all the other navigation items there and open the Revisions in the content panel drilldown.

  • It's the most expected and consistent behavior.
  • It allows to greatly simplify the code.

To my understanding, all the logic that was used to switch the editor to the edit view, reset preferences like Distraction free etc. to show the Revisions in the right sidebar isn't needed any longer. I may be missing something though so I'd appreciate a review from someone more familiar than me with revisions. Cc'ing @ramonjd who worked on #67180 🙏🏻

Note:
as a consequence of showing the Revisions in the drilldown panel, I removed setting initial focus on the X close button of the Revisions (and Style Book) canvas. Focus needs to be managed appropriately within the drilldown: when a sub-panel opens, focus must go on the 'Back' button.

Animated GIF to illustrate the new behavior:

revisions

@ramonjd
Copy link
Member

ramonjd commented Dec 12, 2024

Now that we're trying to move the Revisions button into the Styles content panel, I think it should behave like all the other navigation items there and open the Revisions in the content panel drilldown.

Thanks for the ping. I've bee exploring exactly this over in #67660

all the logic that was used to switch the editor to the edit view, reset preferences like Distraction free etc. to show the Revisions in the right sidebar isn't needed any longe

If we move revisions into the content panel in "view" mode permanently, I agree: it would simplify a lot of the canvas view modes and route juggling.

@jameskoster
Copy link
Contributor

but I'd like to see consistency with all the other navigational items with a chevron used elsewhere

I agree which is why I think we should remove the stroke. It would be best to pick one of the two existing approaches; no strokes at all, or strokes between each item and around the container. The current state on this PR introduces yet another style treatment and adds to the inconsistencies.

I lean towards no strokes, because the 'contained' style feels better suited when items in the list are directly related to one another, e.g. managing shadow styles or font size presets.

buried down into the ellipsis menu in the first place? It's an editor feature, no different from other features. To me, the ellipsis menu is just a perfect way to hide features from users and make them little discoverable.

I know there are often disagreements about this but it's about managing prominence. Adding custom css is a relatively niche feature, and for folks who don't know how to write css it's practically useless. Placing it in the ellipsis menu feels appropriate according to how relatively useful the feature is. All that said, if @t-hamano feels strongly it should be included in the main panel I'm happy to defer :)

This item does have an additional icon and the revisions count though, should they stay?

Yes I think so. The icon can help folks recognise the feature which feels important if we're going to move access to it.

Now that we're trying to move the Revisions button into the Styles content panel, I think it should behave like all the other navigation items there and open the Revisions in the content panel drilldown

Agree.

@afercia
Copy link
Contributor Author

afercia commented Dec 13, 2024

@jameskoster thanks for your feedback.

I agree which is why I think we should remove the stroke.

A while ago I created #66448 which is specifically about all these navigational items inconsistencies. Maybe it's worth moving the strokes / borders considerations there?

Adding custom css is a relatively niche feature

not sure we have data to confirm that. And I'd argue the consideration that is a relatively niche feature may be valid for other features as well, e.g. Background or Shadows.

To me, admittedly based on anecdotal feedback, one of the struggles users often face in the editor is that they can't easily find some features. Keeping burying features in the ellipsis menu isn't great for discoverability. Additionally, the ellipsis menu pattern has inherent problems in terms of accessibility (I reported many times the ellipsis icon is barely visible, see #61909) and in terms of its usage as it started to be a 'More' menu but now it is used everywhere, with different purposes and to show different tools. Overall, I'd like to see the usage of ellipsis menu being reduced rather than increased.

@jameskoster
Copy link
Contributor

Maybe it's worth moving che strokes / borders considerations there?

Yes we should discuss and refine finer details separately, and ideally document them to avoid repeating conversations over and over :D

That said I don't understand why we'd want to introduce another pattern here. Why not use an existing one?

Just to be clear, I'm referring to the screenshot below, specifically the strokes between each item, which is totally unique so far as I can see:

Drilldown menu

@afercia
Copy link
Contributor Author

afercia commented Dec 13, 2024

That said I don't understand why we'd want to introduce another pattern here.

Well, it's not another pattern. It's already used in many of the other panels, as detailed in #66448. Admittedly, it's used inconsistently.

That said, to me 'Blocks', 'Additional CSS' and 'Revisions' are different concepts / features and they should be separated.

@t-hamano
Copy link
Contributor

That said I don't understand why we'd want to introduce another pattern here. Why not use an existing one?

Just to be clear, I'm referring to the screenshot below, specifically the strokes between each item, which is totally unique so far as I can see:

I agree. There are currently no ItemGroup components in Gutenberg that only have the isSeparated prop. I understand there is a lot of room for improvement, but for this PR I think we need to match the existing layout as closely as possible without introducing new inconsistencies.

Adding custom css is a relatively niche feature

Opinions may vary on the order, but the Advanced panel in the block sidebar is placed at the very end. In the Customizer, Additional CSS is placed at the very end.

Considering these things, I personally feel it would be natural to place Additional CSS in the new Styles panel at the very end as well.

However, since only the revision menu has icons, placing Additional CSS at the very end can look visually unnatural.

@afercia
Copy link
Contributor Author

afercia commented Dec 13, 2024

However, since only the revision menu has icons, placing Additional CSS at the very end can look visually unnatural.

I'd bring in two considerations:

  • Yes it would look a little unnatural having it with an icon and between two other item with no icons.
  • Worth reminding the 'Revisions' items is not rendered when there are no revisions. It only appers after at least one revision has being saved. I guess for that reason it makes more sense to add it last, otherwise it would suddenly appear in the middle.

Overall, I think using the backup icon for the Revisions item would introduce one more inconsistency, which seems something we'd all agree should be prevented.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Focus] Accessibility (a11y) Changes that impact accessibility and need corresponding review (e.g. markup changes). Global Styles Anything related to the broader Global Styles efforts, including Styles Engine and theme.json Needs Design Feedback Needs general design feedback. [Package] Edit Site /packages/edit-site [Type] Bug An existing feature does not function as intended
Projects
None yet
7 participants