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

Global style revisions: show change summary on selected item #56577

Merged
merged 21 commits into from
Dec 12, 2023

Conversation

ramonjd
Copy link
Member

@ramonjd ramonjd commented Nov 28, 2023

What?

Maybe one day resolves #55647

Part of:

2023-12-11.15.04.39.mp4

Why?

To give the user a short overview of the global styles revision change set, which may not be evident from the canvas preview.

Also, highlighting revisions that match current editor styles by a left-hand-side dark, border.

TODO

  • Unit tests

How?

  1. Deep comparison of two objects to get changed values
  2. Limiting reported changes to the second level, e.g., Block name > style
  3. Deduping results and translating
  4. Caching results

Testing Instructions

Make a bunch of changes to your global styles revisions, ensuring to get a decent mix of block, top-level, element styles and layout, typography and color settings.

If the theme, e.g., 2024, has style variations, activate and save a few revision using those.

Open up the styles revisions panel and check that the change summary makes sense.

Copy link

github-actions bot commented Nov 28, 2023

Size Change: -13 kB (-1%)

Total Size: 1.71 MB

Filename Size Change
build/block-editor/index.min.js 247 kB -675 B (0%)
build/block-editor/style-rtl.css 15.4 kB -254 B (-2%)
build/block-editor/style.css 15.4 kB -243 B (-2%)
build/block-library/index.min.js 213 kB +229 B (0%)
build/blocks/index.min.js 51.3 kB +223 B (0%)
build/components/index.min.js 257 kB +128 B (0%)
build/core-data/index.min.js 72.6 kB +17 B (0%)
build/customize-widgets/index.min.js 12.1 kB -36 B (0%)
build/customize-widgets/style-rtl.css 1.36 kB -72 B (-5%)
build/customize-widgets/style.css 1.36 kB -72 B (-5%)
build/edit-post/index.min.js 32.5 kB -2.08 kB (-6%)
build/edit-post/style-rtl.css 7.44 kB +13 B (0%)
build/edit-post/style.css 7.43 kB +13 B (0%)
build/edit-site/index.min.js 195 kB -14.5 kB (-7%)
build/edit-site/style-rtl.css 14.6 kB +301 B (+2%)
build/edit-site/style.css 14.6 kB +307 B (+2%)
build/edit-widgets/index.min.js 17.3 kB +21 B (0%)
build/edit-widgets/style-rtl.css 4.71 kB +64 B (+1%)
build/edit-widgets/style.css 4.71 kB +65 B (+1%)
build/editor/index.min.js 52.9 kB +3.12 kB (+6%) 🔍
build/editor/style-rtl.css 4.32 kB +199 B (+5%) 🔍
build/editor/style.css 4.32 kB +200 B (+5%) 🔍
build/keycodes/index.min.js 1.49 kB -407 B (-21%) 🎉
build/rich-text/index.min.js 10.5 kB +469 B (+5%) 🔍
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 964 B
build/annotations/index.min.js 2.71 kB
build/api-fetch/index.min.js 2.29 kB
build/autop/index.min.js 2.11 kB
build/blob/index.min.js 590 B
build/block-directory/index.min.js 7.25 kB
build/block-directory/style-rtl.css 1.04 kB
build/block-directory/style.css 1.04 kB
build/block-editor/content-rtl.css 4.29 kB
build/block-editor/content.css 4.28 kB
build/block-editor/default-editor-styles-rtl.css 403 B
build/block-editor/default-editor-styles.css 403 B
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 104 B
build/block-library/blocks/avatar/style.css 104 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 633 B
build/block-library/blocks/button/style.css 632 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 421 B
build/block-library/blocks/columns/style.css 421 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.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 98 B
build/block-library/blocks/details/style.css 98 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 316 B
build/block-library/blocks/file/editor.css 316 B
build/block-library/blocks/file/style-rtl.css 280 B
build/block-library/blocks/file/style.css 281 B
build/block-library/blocks/file/view.min.js 322 B
build/block-library/blocks/footnotes/style-rtl.css 201 B
build/block-library/blocks/footnotes/style.css 199 B
build/block-library/blocks/form-input/editor-rtl.css 229 B
build/block-library/blocks/form-input/editor.css 228 B
build/block-library/blocks/form-input/style-rtl.css 343 B
build/block-library/blocks/form-input/style.css 343 B
build/block-library/blocks/form-submission-notification/editor-rtl.css 343 B
build/block-library/blocks/form-submission-notification/editor.css 342 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/form/view.min.js 452 B
build/block-library/blocks/freeform/editor-rtl.css 2.61 kB
build/block-library/blocks/freeform/editor.css 2.61 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.75 kB
build/block-library/blocks/gallery/style.css 1.75 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 189 B
build/block-library/blocks/heading/style.css 189 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 1.61 kB
build/block-library/blocks/image/style.css 1.6 kB
build/block-library/blocks/image/theme-rtl.css 137 B
build/block-library/blocks/image/theme.css 137 B
build/block-library/blocks/image/view.min.js 2.02 kB
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 505 B
build/block-library/blocks/media-text/style.css 503 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 671 B
build/block-library/blocks/navigation-link/editor.css 672 B
build/block-library/blocks/navigation-link/style-rtl.css 103 B
build/block-library/blocks/navigation-link/style.css 103 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.26 kB
build/block-library/blocks/navigation/editor.css 2.26 kB
build/block-library/blocks/navigation/style-rtl.css 2.27 kB
build/block-library/blocks/navigation/style.css 2.26 kB
build/block-library/blocks/navigation/view.min.js 1.04 kB
build/block-library/blocks/nextpage/editor-rtl.css 395 B
build/block-library/blocks/nextpage/editor.css 395 B
build/block-library/blocks/page-list/editor-rtl.css 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 235 B
build/block-library/blocks/paragraph/editor.css 235 B
build/block-library/blocks/paragraph/style-rtl.css 335 B
build/block-library/blocks/paragraph/style.css 335 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 508 B
build/block-library/blocks/post-comments-form/style.css 508 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 666 B
build/block-library/blocks/post-featured-image/editor.css 662 B
build/block-library/blocks/post-featured-image/style-rtl.css 345 B
build/block-library/blocks/post-featured-image/style.css 345 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 409 B
build/block-library/blocks/post-template/style.css 408 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 125 B
build/block-library/blocks/preformatted/style.css 125 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 168 B
build/block-library/blocks/pullquote/theme.css 168 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 486 B
build/block-library/blocks/query/editor.css 486 B
build/block-library/blocks/query/style-rtl.css 312 B
build/block-library/blocks/query/style.css 308 B
build/block-library/blocks/query/view.min.js 647 B
build/block-library/blocks/quote/style-rtl.css 237 B
build/block-library/blocks/quote/style.css 237 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 140 B
build/block-library/blocks/read-more/style.css 140 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 184 B
build/block-library/blocks/search/editor.css 184 B
build/block-library/blocks/search/style-rtl.css 613 B
build/block-library/blocks/search/style.css 613 B
build/block-library/blocks/search/theme-rtl.css 114 B
build/block-library/blocks/search/theme.css 114 B
build/block-library/blocks/search/view.min.js 475 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 204 B
build/block-library/blocks/site-logo/style.css 204 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 682 B
build/block-library/blocks/social-links/editor.css 681 B
build/block-library/blocks/social-links/style-rtl.css 1.49 kB
build/block-library/blocks/social-links/style.css 1.49 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 432 B
build/block-library/blocks/table/editor.css 432 B
build/block-library/blocks/table/style-rtl.css 646 B
build/block-library/blocks/table/style.css 645 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/term-description/style-rtl.css 111 B
build/block-library/blocks/term-description/style.css 111 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 191 B
build/block-library/blocks/video/style.css 191 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.11 kB
build/block-library/common.css 1.11 kB
build/block-library/editor-elements-rtl.css 75 B
build/block-library/editor-elements.css 75 B
build/block-library/editor-rtl.css 12.5 kB
build/block-library/editor.css 12.4 kB
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/reset-rtl.css 472 B
build/block-library/reset.css 472 B
build/block-library/style-rtl.css 14.7 kB
build/block-library/style.css 14.7 kB
build/block-library/theme-rtl.css 700 B
build/block-library/theme.css 705 B
build/block-serialization-default-parser/index.min.js 1.13 kB
build/block-serialization-spec-parser/index.min.js 2.87 kB
build/commands/index.min.js 15.5 kB
build/commands/style-rtl.css 947 B
build/commands/style.css 942 B
build/components/style-rtl.css 12.1 kB
build/components/style.css 12.1 kB
build/compose/index.min.js 12.8 kB
build/core-commands/index.min.js 2.73 kB
build/data-controls/index.min.js 651 B
build/data/index.min.js 8.87 kB
build/date/index.min.js 17.9 kB
build/deprecated/index.min.js 462 B
build/dom-ready/index.min.js 336 B
build/dom/index.min.js 4.68 kB
build/edit-post/classic-rtl.css 571 B
build/edit-post/classic.css 571 B
build/element/index.min.js 4.87 kB
build/escape-html/index.min.js 548 B
build/format-library/index.min.js 7.76 kB
build/format-library/style-rtl.css 577 B
build/format-library/style.css 577 B
build/hooks/index.min.js 1.57 kB
build/html-entities/index.min.js 454 B
build/i18n/index.min.js 3.61 kB
build/interactivity/file.min.js 442 B
build/interactivity/image.min.js 2.15 kB
build/interactivity/index.min.js 12.5 kB
build/interactivity/navigation.min.js 1.16 kB
build/interactivity/query.min.js 791 B
build/interactivity/search.min.js 610 B
build/is-shallow-equal/index.min.js 535 B
build/keyboard-shortcuts/index.min.js 1.76 kB
build/list-reusable-blocks/index.min.js 2.11 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.92 kB
build/modules/importmap-polyfill.min.js 12.2 kB
build/notices/index.min.js 964 B
build/nux/index.min.js 2.01 kB
build/nux/style-rtl.css 775 B
build/nux/style.css 771 B
build/patterns/index.min.js 5.28 kB
build/patterns/style-rtl.css 564 B
build/patterns/style.css 564 B
build/plugins/index.min.js 1.81 kB
build/preferences-persistence/index.min.js 1.85 kB
build/preferences/index.min.js 1.26 kB
build/primitives/index.min.js 994 B
build/priority-queue/index.min.js 1.52 kB
build/private-apis/index.min.js 994 B
build/react-i18n/index.min.js 631 B
build/react-refresh-entry/index.min.js 9.46 kB
build/react-refresh-runtime/index.min.js 6.78 kB
build/redux-routine/index.min.js 2.71 kB
build/reusable-blocks/index.min.js 2.74 kB
build/reusable-blocks/style-rtl.css 265 B
build/reusable-blocks/style.css 265 B
build/router/index.min.js 1.79 kB
build/server-side-render/index.min.js 1.96 kB
build/shortcode/index.min.js 1.4 kB
build/style-engine/index.min.js 1.98 kB
build/token-list/index.min.js 587 B
build/url/index.min.js 3.83 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 967 B
build/warning/index.min.js 259 B
build/widgets/index.min.js 7.18 kB
build/widgets/style-rtl.css 1.18 kB
build/widgets/style.css 1.18 kB
build/wordcount/index.min.js 1.03 kB

compressed-size-action

Copy link

github-actions bot commented Nov 30, 2023

Flaky tests detected in 25b8a15.
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/7162830527
📝 Reported issues:

Copy link
Contributor

@andrewserong andrewserong left a comment

Choose a reason for hiding this comment

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

This feel pretty promising to me! It's quite nice even having a few words when clicking between each revision.

One thought I had was whether it'd be possible to drop style or styles or color and colors and group by type, if it helps shorten things a little? Not a worry if that would make things too complex, though.

But it's already feeling pretty good to me so far 🙂

image
'spacing.margin': __( 'margin styles' ),
'spacing.padding': __( 'padding styles' ),
'spacing.blockGap': __( 'block gap' ),
'settings.layout': __( 'layout settings' ),
Copy link
Contributor

Choose a reason for hiding this comment

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

From a user perspective, the only things that will have changed here is content or wide size, I think? So settings might not feel very direct to the user. We could either split this out into content/wide size, or use layout styles for consistency?

Another idea, though, could be to remove the word style or styles from each of these strings, and use style or plural styles at the end of the text string?

Copy link
Member Author

Choose a reason for hiding this comment

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

Oh yes, fair point. I like layout styles.

could be to remove the word style or styles from each of these strings, and use style or plural styles at the end of the text string?

I like this idea. I'll have a play around with it - I just need to make sure it plays well with translatable strings. If not, I think having "styles" after each higher-level style group is okay.

@ramonjd ramonjd force-pushed the try/global-style-revisions-item-expand branch from cc2035c to 7692a7e Compare December 3, 2023 22:01
@ramonjd ramonjd changed the title Try/global style revisions item expand Dec 3, 2023
@ramonjd ramonjd self-assigned this Dec 3, 2023
@ramonjd ramonjd added Global Styles Anything related to the broader Global Styles efforts, including Styles Engine and theme.json [Type] Enhancement A suggestion for improvement. labels Dec 3, 2023
@ramonjd ramonjd force-pushed the try/global-style-revisions-item-expand branch from 3478160 to 6b1790d Compare December 6, 2023 02:56
if ( ! isObject( changedObject ) && ! isObject( originalObject ) ) {
// Only return a path if the value has changed.
// And then only the path name up to 2 levels deep.
return changedObject !== originalObject
Copy link
Member Author

Choose a reason for hiding this comment

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

So this is very specific to the UI's requirements.

We're just returning the path to a value that has changed between versions.

If we want to reuse this function later, we can return anything, e.g., an object:

{
    path: 'styles.typography.fontWeight',
    oldValue: 600,
    newValue: 300,
}
previousRevision,
blockNames
) {
const cacheKey = JSON.stringify( { revision, previousRevision } );
Copy link
Member Author

Choose a reason for hiding this comment

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

This might be an overkill, but it's the only way I think of to ensure that we can return the right cached results for a matching set of revision and previousRevision.

@ramonjd ramonjd marked this pull request as ready for review December 6, 2023 04:47
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.

This is looking good. I think it's a nice improvement and gives that extra bit of information.

I do wonder if we need to have some sort of context as to what the words mean. Do you think saying "Styles changed: xyz" would be better?

I noticed a couple of things. The text should line up and not be inset slightly. Also does the ellipsis mean data has been truncated?

Screenshot 2023-12-06 at 12 39 33 PM
@apeatling
Copy link
Contributor

I see it does mean it's truncated if ( changesLength > MAX_CHANGES ) {

@ramonjd
Copy link
Member Author

ramonjd commented Dec 6, 2023

Thanks for testing!

Also does the ellipsis mean data has been truncated?

Yeah, the idea is to indicate that there are more changes than the UI allows. I've set an arbitrary limit of 7, but that was only eye-balling it.

The ellipsis is kind of clumsily thrown in there, and I'm not really sure how to represent the concept of "more changes" and also make it translator-friendly.

Maybe there's an alternative way to present the summary, or we ditch the ellipsis altogether.

I was just concerned that the summary might not match what the user expects, so if there's an ellipsis or "more" hint in there it'll communicate that there are more changes.

I do wonder if we need to have some sort of context as to what the words mean. Do you think saying "Styles changed: xyz" would be better?

Worth trying out 👍🏻 Maybe playing around here might lead to something clearer in light of the truncation comment above.

@ramonjd
Copy link
Member Author

ramonjd commented Dec 7, 2023

@apeatling What do you think about this?

Screenshot 2023-12-07 at 12 25 48 pm

Forgetting everything else in that screenshot, maybe it'd be useful to somewhere show the truncated results and how many more there are (and n more...)?

@andrewserong
Copy link
Contributor

Oh, I like that list idea, makes it easier to see changes at a glance compared to a paragraph / sentence based structure.


/**
* Get an array of translated summarized global styles changes.
* Results are cached using a WeakMap key of `{ revision, previousRevision }`.
Copy link
Contributor

Choose a reason for hiding this comment

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

Tiny nit: this mentions WeakMap but at the beginning of the file, it appears to be a Map.

Copy link
Member Author

Choose a reason for hiding this comment

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

Good spotting. 👍🏻 I swapped from WeakMap to Map because of the change in key.

@andrewserong
Copy link
Contributor

Just another idea, if we wanted to find a mid-point between a list and sentence structure (if a list winds up being too long), could we kind of group them by type, to remove repetition of the word Block or Styles? Here's a quick browser mockup, not sure if it's any good as an idea: 🤔

image
@ramonjd
Copy link
Member Author

ramonjd commented Dec 7, 2023

if we wanted to find a mid-point between a list and sentence structure (if a list winds up being too long), could we kind of group them by type, to remove repetition of the word Block or Styles

I like this because it removes the need to append "block" to the block label, which might be dodgy for i18n.

🙇🏻


/**
* Get an array of translated summarized global styles changes.
* Results are cached using a WeakMap key of `{ revision, previousRevision }`.
Copy link
Member Author

Choose a reason for hiding this comment

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

Suggested change
* Results are cached using a WeakMap key of `{ revision, previousRevision }`.
* Results are cached using a Map() key of `JSON.stringify( { revision, previousRevision } )`.
@ramonjd
Copy link
Member Author

ramonjd commented Dec 7, 2023

I have a couple of commits lined up.

1 - 65833c9 (latest)

Here's the one with the grouping, which required a bit of a code refactor, but simplifies the translations a lot.

2023-12-07.15.13.08.mp4

And without a heading:

Screenshot 2023-12-07 at 3 14 05 pm

It's all tweakable 😄

2 - ec31842

And the other commit mentioned above.

cc @jameskoster for 🎨 👀

@ramonjd ramonjd force-pushed the try/global-style-revisions-item-expand branch from 65833c9 to ec31842 Compare December 7, 2023 04:28
@ramonjd ramonjd added the Needs Design Needs design efforts. label Dec 7, 2023
@ramonjd
Copy link
Member Author

ramonjd commented Dec 7, 2023

Nice, that's probably my favourite so far! Sounds like this PR might be ready for design feedback now?

Thanks for testing! Yeah, I'm now in UI bike shedding territory 😄

@jameskoster
Copy link
Contributor

Thanks for the ping, and nice work so far.

My initial thought is that we probably don't need to be so granular for typography, styles, and colors. It might be enough to simply list each one accordingly which would reduce a lot of noise. In a similar vein I'd agree with removing the heading. Blocks can continue to be listed.

Saved December 7, 2023
Typography, Colors, Layout, Quote block, Paragraph block, Image block, Cover block, Buttons block, Button block
Admin

What do you think?

@apeatling
Copy link
Contributor

apeatling commented Dec 7, 2023

Thanks for the effort here @ramonjd. I gave the current version a spin, and had a look at your efforts above. To be honest I think with the extra detail the scan-ability is lost, and adds extra noise like @jameskoster mentioned.

I think what we had originally is actually better, and we can see if the context issue comes up as an real problem once it's out there.

@ramonjd
Copy link
Member Author

ramonjd commented Dec 7, 2023

It might be enough to simply list each one accordingly which would reduce a lot of noise. In a similar vein I'd agree with removing the heading. Blocks can continue to be listed.
I think what we had originally is actually better, and we can see if the context issue comes up as an real problem once it's out there.

This helps a lot, thanks, folks.

Easy to revert since it's what we started with, and I'd suspect it'd be a little more performant on the client side too with not complicated component rendering.

Cheers!

@annezazu
Copy link
Contributor

annezazu commented Dec 7, 2023

+1 on reducing noise for now and iterating as feedback comes in!

@@ -215,14 +216,6 @@ function ScreenRevisions() {
</ConfirmDialog>
) }
</>
) : (
<Spacer marginX={ 4 } data-testid="global-styles-no-revisions">
Copy link
Member Author

Choose a reason for hiding this comment

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

This was dead code because we never show the panel where there are no revision.

@ramonjd
Copy link
Member Author

ramonjd commented Dec 8, 2023

I think I've addressed all the latest feedback, thanks for your input 🙇🏻

@ramonjd
Copy link
Member Author

ramonjd commented Dec 8, 2023

Also wondering, would it be useful to have a link to revison.php on each item? It's cheap to do, and maybe useful to some:

Screenshot 2023-12-08 at 11 17 52 am
@jameskoster
Copy link
Contributor

Looking good. A couple of suggestions:

  • Is it worth trying a version where only blocks are listed granularly? Any changes inside the Typography, Colors, or Layout sections of global styles can be listed as such. E.g. "Typography, Layout, Paragraph Block, Quote Block".
  • The author can appear beneath the change detail.
  • I'm seeing a solid black left-border on the most recent save:
Screenshot 2023-12-08 at 10 33 06

Also wondering, would it be useful to have a link to revison.php on each item? It's cheap to do, and maybe useful to some:

Potentially worth exploring separately. It's a tricky one since it kicks you out of the site editor.

@ramonjd
Copy link
Member Author

ramonjd commented Dec 11, 2023

Is it worth trying a version where only blocks are listed granularly? Any changes inside the Typography, Colors, or Layout sections of global styles can be listed as such. E.g. "Typography, Layout, Paragraph Block, Quote Block".

So something like Paragraph block: typography, color...? I think that's very doable. Maybe good for a follow up? We could do a general UI polish as well. This PR is pretty gnarly as it is.

The author can appear beneath the change detail.

👍🏻 I'll test it out here.

I'm seeing a solid black left-border on the most recent save:

This was supposed to indicate that the styles match what's in the editor, and hence that's why they can't be applied. See comment: #55647 (comment)

Maybe we can leave it it out and pursue this in a follow up. It's not directly related to this PR.

Potentially worth exploring separately. It's a tricky one since it kicks you out of the site editor.

Ah, good call. I'll make a note of it.

Moving everything into the button so it's clickable.
@ramonjd
Copy link
Member Author

ramonjd commented Dec 11, 2023

The author can appear beneath the change detail.

Done that and updated PR description 🙇🏻

@jameskoster
Copy link
Contributor

So something like Paragraph block: typography, color...? I think that's very doable.

No, not quite. I'm suggesting to align the listed changes with the sections titles in the Styles panel. So if there are any changes in the "Typography" panel then the revision simply lists "Typography" as a change. Same for Colors and Layout. For blocks, each edited block is listed.

So if I changed the Link element, adjusted global block spacing, and added a border radius to the Image block the change list would be: "Typography, Layout, Image block".

Maybe we can leave it it out and pursue this in a follow up.

I think that's a good idea, it needs a little design exploration.

@ramonjd
Copy link
Member Author

ramonjd commented Dec 12, 2023

I'm suggesting to align the listed changes with the sections titles in the Styles panel.

I get you, thanks for the clarification. I think this also should be doable 😄

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.

Gave this another run through. I think this is looking good for an initial effort and is a definite improvement, so let's get it in and we can iterate more from here. 👍

Screenshot 2023-12-12 at 1 11 36 PM
Copy link
Contributor

@andrewserong andrewserong left a comment

Choose a reason for hiding this comment

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

I think this is looking good for an initial effort and is a definite improvement, so let's get it in and we can iterate more from here. 👍

+1 this looks like a great place to merge for now and see how it feels for folks. Definitely feels nice to me in its current form, and the code looks good!

2023-12-13.09.08.09.mp4

@ramonjd
Copy link
Member Author

ramonjd commented Dec 12, 2023

Thanks again for sticking with me on this one, folks 🙇🏻

@ramonjd ramonjd merged commit 9a46ad1 into trunk Dec 12, 2023
52 checks passed
@ramonjd ramonjd deleted the try/global-style-revisions-item-expand branch December 12, 2023 22:15
@github-actions github-actions bot added this to the Gutenberg 17.3 milestone Dec 12, 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 Design Needs design efforts. [Type] Enhancement A suggestion for improvement.
5 participants