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

Improve the EntitiesSavedStates modal dialog design and labeling #67792

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

Conversation

afercia
Copy link
Contributor

@afercia afercia commented Dec 10, 2024

Fixes #49832
Fixes #67354

Note: if this gets merged, please add props to @dhruvang21 for the alternative PR #67473

What?

The modal dialog to save entities reuses the EntitiesSavedStates component 'as is'. This isn't ideal in terms oc content order, styling, and accessibility because modal dialogs expecte their content in a more meaningful order, with a visible title, specific styling and appropriate labeling and description.

Why?

  • The styling and user experience for modal dialogs should be consistent.
  • Labeling and description of modal dialogs should be meaningful.

How?

  • Adds a isWithinModalDialog prop to EntitiesSavedStates and its variant to distinguish when this component is used within a modal dialog.
  • Based on that, rearranges the order of the content and provides a visible title + close button for the modal dialog usage.
  • Refines the styling to be as close as possible to the one provided in Refine the Save modal design in site view #49832 withi minimal changes.
  • Fixes the accessible name (via aria-labelledby) and accessible description (via aria-describedby) of the component when used with a modal behavior in the save panel on the right, as described in Improve the labeling of EntitiesSavedStates when used with modal behavior #67354

Testing Instructions

  • Go to the Site editor.
  • Make a change to a template and to some global style e.g. a simple color change.
  • Click 'Save' at the top right of the screen.
  • Observe the save panel is unchanged.
  • Observe this panel, which uses a modal behavior anda role=dialog has:
    • An aria-labelledby attribute that points to the visible title.
    • An aria-describedby attribute that points to the visible description after the title.
  • Click 'Open Navigation' at the top left of the screen.
  • Click the 'Review changes' button at the bottom of the navigation panel.
  • Observe the modal dialog:
  • Go to the WP admin > Appearance > any non-active block theme > Live Preview
  • Click the activate button at the bottom of the navigation panel.
  • Observe the modal dialog styling and content order is consistent with the previous modal dialog.
  • Edit the theme preview and make some simple change e.g. a global styles color change.
  • Click 'Activate {theme name} & Save' at the top right of the screen.
  • Observe the panel that opens has an additional 'prompt' text e.g. Saving your changes will change your active theme from Twenty Twenty-Four to Twenty Twenty-Five.
  • Observe this text is part of the accessible description of the panel references by an aria-describedby attribute, together with the following text e.g. There are 2 site changes waiting to be saved.
  • Observe the panel element with role=dialog has an aria-labelledby attribute that points to the text Are you ready to save?

Screenshot to illustrate the labeling / description:

Screenshot 2024-12-10 at 12 39 51

Testing Instructions for Keyboard

Screenshots or screencast

Current Site editor Theme preview
current site save theme preview

@afercia afercia added [Type] Bug An existing feature does not function as intended [Focus] Accessibility (a11y) Changes that impact accessibility and need corresponding review (e.g. markup changes). Needs Design Feedback Needs general design feedback. [Package] Editor /packages/editor [Package] Edit Site /packages/edit-site [Feature] Site Editor Related to the overarching Site Editor (formerly "full site editing") labels Dec 10, 2024
@afercia
Copy link
Contributor Author

afercia commented Dec 10, 2024

Cc @jameskoster @WordPress/gutenberg-core

Copy link

github-actions bot commented Dec 10, 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 <afercia@git.wordpress.org>
Co-authored-by: jameskoster <jameskoster@git.wordpress.org>
Co-authored-by: jasmussen <joen@git.wordpress.org>
Co-authored-by: fcoveram <fcoveram@git.wordpress.org>
Co-authored-by: paaljoachim <paaljoachim@git.wordpress.org>
Co-authored-by: SaxonF <saxonafletcher@git.wordpress.org>

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

Copy link

github-actions bot commented Dec 10, 2024

Size Change: +312 B (+0.02%)

Total Size: 1.84 MB

Filename Size Change
build/edit-site/index.min.js 221 kB +2 B (0%)
build/editor/index.min.js 115 kB +123 B (+0.11%)
build/editor/style-rtl.css 9.41 kB +93 B (+1%)
build/editor/style.css 9.41 kB +94 B (+1.01%)
ℹ️ 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.3 kB
build-module/interactivity/index.min.js 13.7 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 92 B
build/block-library/blocks/tag-cloud/editor.css 92 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 224 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 229 kB
build/components/style-rtl.css 12.6 kB
build/components/style.css 12.6 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.44 kB
build/customize-widgets/style.css 1.44 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.67 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.47 kB
build/edit-site/posts.css 7.47 kB
build/edit-site/style-rtl.css 13.7 kB
build/edit-site/style.css 13.7 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/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.61 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 978 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/upload-media/index.min.js 3.85 kB
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

@jameskoster
Copy link
Contributor

I can't comment on the code but appreciate the effort to tidy this up. The modal already looks much better.

One drawback I noticed is that when there are many changes (or the viewport is small, or a combination thereof) the buttons disappear until you scroll:

Screenshot 2024-12-10 at 15 13 31

There's probably a broader question to ask about whether actions should be sticky across all modals, but I mention it here because despite the other improvements this is a slight downgrade in the UX.

@afercia
Copy link
Contributor Author

afercia commented Dec 10, 2024

the buttons disappear until you scroll:

Yes, that's a feature / limitation of the Modal component. A potential change to introduce a sticky footer should be considered at the component's level.
But
I'd warn against sticky headers / footers. They come with their problems, for example they tend to hide content when navigating focusable elements with the keyboard unless some smart scroll-padding mechanism is in place.

@afercia
Copy link
Contributor Author

afercia commented Dec 10, 2024

@jameskoster any other style refining you would like to see implemented?

@afercia afercia force-pushed the fix/refine-save-modal-dialog-within-dialog branch from 5cc1825 to fb435f8 Compare December 11, 2024 09:37
Copy link

github-actions bot commented Dec 11, 2024

Flaky tests detected in 9418d3e.
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/12372390662
📝 Reported issues:

@jameskoster
Copy link
Contributor

Agree that's a detail to work out at the component level, and I don't suppose it needs to be a blocker, though I'd welcome feedback from @WordPress/gutenberg-design on that detail.

There's something about the overall spacing that works less well in this context. I wonder if it would be worth trying the small modal variant, so that the UI more closely resembles the one we find in the site editor.

Save modal Save panel
Screenshot 2024-12-11 at 15 27 43 Screenshot 2024-12-11 at 15 27 54

What do you think?

@jasmussen
Copy link
Contributor

What do you think?

It does seem a bit loose on the spacing, but it's unclear that needs to be a blocker. Probably worth getting this into the plugin, and gathering feedback through that channel, and then spacing polish can happen separately at any time, whether locally or component level.

@afercia
Copy link
Contributor Author

afercia commented Dec 12, 2024

Re: the small size, this is how it would look in the site editor and theme preview, on a large screen:

Screenshot 2024-12-12 at 10 03 08

spacing polish can happen separately at any time

It's a one-line change, I'd agree it can happen at any time if need be.
If no other objections, I'd appreciate a review to unblock this PR. Cc @WordPress/gutenberg-core

@jameskoster
Copy link
Contributor

For me the small modal works better, just because it feels more like the UI we're familiar with. Not a blocker though. As long as we use one of the defined modal sizes I'm happy.

@afercia
Copy link
Contributor Author

afercia commented Dec 13, 2024

For me the small modal works better, just because it feels more like the UI we're familiar with. Not a blocker though. As long as we use one of the defined modal sizes I'm happy.

Sure. In the latest commit I made the modal dialog small so that everyone can try it and see how it looks on different viewport sizes. Cc @WordPress/gutenberg-design

@fcoveram
Copy link
Contributor

I agree with keeping the same spacing approach consistent with its version in the site editor.

Regarding follow-up improvements, I see room for improvement in adding an indentation level in the bullet points and reducing the spacing between the checkbox and the bullet list.

If I understand this correctly, more checkboxes can show up and placing the bullet list at the control label could improve the text relationship between what users are about to update and what that includes.

This suggestion is for both modal and the inspector panel.

@afercia
Copy link
Contributor Author

afercia commented Dec 13, 2024

Good point about the indentation. I'd like to see the list items text aligned with the checkbox label, with the bullets following the principle of the hanging punctuation:

Screenshot 2024-12-13 at 12 29 13

@afercia afercia force-pushed the fix/refine-save-modal-dialog-within-dialog branch from 38c8ef8 to 6a5e038 Compare December 13, 2024 11:56
@afercia
Copy link
Contributor Author

afercia commented Dec 13, 2024

Latest commit adjusts the top and left margin of the changes list:

Screenshot 2024-12-13 at 12 30 56

@afercia afercia force-pushed the fix/refine-save-modal-dialog-within-dialog branch from 6a5e038 to cd71c4b Compare December 13, 2024 13:59
@afercia
Copy link
Contributor Author

afercia commented Dec 13, 2024

Since we're discussing refinements, I have two questions:

  1. Why the changes list items use a so small font size? It's 12 pixels. It's very small and I would like to see the 12 pixels size avoided as much as possible.
  2. Why their color is a lighter grey? I wouldn't say this information is less important to deserve a lighter grey to be less prominent. On the contrary, it's an important information that should be as readable as possible. If no objections, I would use a darker grey.

Screenshot 2024-12-13 at 15 07 43

@fcoveram
Copy link
Contributor

The screenshot looks good to me 👍

…following the principle of the hanging punctuation

Wow. TIL there was a word for that alignment. Thanks

@fcoveram
Copy link
Contributor

Sorry. My previous comment was on this message. It seems we pressed the "comment" button almost at the same time.

Regarding your suggestions for font size and text color, I second your rationale and agree with the changes.

@afercia afercia force-pushed the fix/refine-save-modal-dialog-within-dialog branch from cd71c4b to 5a1b633 Compare December 16, 2024 08:59
@afercia
Copy link
Contributor Author

afercia commented Dec 16, 2024

Latest commit uses the default font size and color for the changes list items:

Screenshot 2024-12-16 at 09 57 44

@jameskoster
Copy link
Contributor

Not a strong feeling but I would prefer to consider the size and color of the styles change list in a separate issue/PR. Currently the differences create a sense of hierarchy, where on this PR the panel title and change list blend together.

Also because this PR is important an enhancement, so would be good to keep focussed on the original problem.

@afercia
Copy link
Contributor Author

afercia commented Dec 17, 2024

the panel title and change list blend together.

I would argue that they are part of the same group so it's good that they 'blend together'. Maybe it makes more sense when viewed together with other groups, see screenshot below:

Screenshot 2024-12-17 at 10 09 51

Noting that in some cases the checkbox labels may wrap unexpectedly because of a max-width that should be reviewed. See the 'Header navigation' label in the screenshot above. Introduced in #3786

@afercia afercia force-pushed the fix/refine-save-modal-dialog-within-dialog branch from 5a1b633 to 9418d3e Compare December 17, 2024 11:48
@afercia
Copy link
Contributor Author

afercia commented Dec 17, 2024

Latest commit fixes the labels unexpected wrapping when longer. Screenshot:

Screenshot 2024-12-17 at 12 46 50

@jameskoster
Copy link
Contributor

If we're prepared to tweak panel content styling perhaps it would be beneficial to reduce the min-height of the checkbox rows to something like 24px, and reduce the bottom margin on the "There are 8 site changes..." paragraph? We can save quite a lot of space:

Screenshot 2024-12-17 at 15 43 43

Also, do we really need that "This change will affect pages and posts that use this template." message... Isn't that implied?

@afercia
Copy link
Contributor Author

afercia commented Dec 18, 2024

perhaps it would be beneficial to reduce the min-height of the checkbox rows to something like 24px

It seems a sensible tweak to me but that's part of the Panel > PanelRow base component, which is used in a few other places, and should be considered at a component level rather than introducing a style override for an ad-hoc adjustment.

reduce the bottom margin on the "There are 8 site changes..." paragraph

OK.

@afercia
Copy link
Contributor Author

afercia commented Dec 18, 2024

Latest commit reduces the bottom margin of the changes count paragraph.

@jameskoster
Copy link
Contributor

Looks good to me in terms of design. Let's get a code review :)

@jameskoster jameskoster requested review from a team, SantosGuillamot and t-hamano and removed request for a team December 18, 2024 14:46
@afercia
Copy link
Contributor Author

afercia commented Dec 19, 2024

@WordPress/gutenberg-core I'd appreciate a review, when you have a chance.

Latest screenshots to illustrate the changes:

Before After Theme preview after
Screenshot 2024-12-19 at 08 34 13 Screenshot 2024-12-19 at 08 35 50 Screenshot 2024-12-19 at 08 36 53

@fcoveram
Copy link
Contributor

The two spacings in red are not consistent, and perhaps we can make smaller the one applied between the heading ("Templates" and "Global styles") and the content below.

Entity saving modal with design notes

I can't point out why this happens and if it belongs to the purpose of this PR.

@afercia
Copy link
Contributor Author

afercia commented Dec 19, 2024

@fcoveram thanks for your feedback.

As mentioned earlier, the spacing after "Global styles" can't be changed in this PR because it comes from the Panel / PanelRow base components. Overriding the styling of a base component isn't a best practice. Any change should be considered at the base component level but that's out of the scope of this PR.

@fcoveram
Copy link
Contributor

I understand. Thanks for the clarification @afercia

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Feature] Site Editor Related to the overarching Site Editor (formerly "full site editing") [Focus] Accessibility (a11y) Changes that impact accessibility and need corresponding review (e.g. markup changes). Needs Design Feedback Needs general design feedback. [Package] Edit Site /packages/edit-site [Package] Editor /packages/editor [Type] Bug An existing feature does not function as intended
Projects
None yet
4 participants