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: redesign style revision items #55913

Merged
merged 8 commits into from
Nov 19, 2023

Conversation

ramonjd
Copy link
Member

@ramonjd ramonjd commented Nov 7, 2023

What?

Resolves #55647

This PR:

  • shows humantimediff for changes < 1 day. Other dates are displayed as longer formats
  • redesigns timeline and revision elements
2023-11-17.12.20.33.mp4

Testing Instructions

Now open the styles revisions panel.

Check that the revision items work and the active hover states are correct.

@ramonjd ramonjd added [Type] Enhancement A suggestion for improvement. [Status] In Progress Tracking issues with work in progress Global Styles Anything related to the broader Global Styles efforts, including Styles Engine and theme.json labels Nov 7, 2023
@ramonjd ramonjd self-assigned this Nov 7, 2023
Copy link

github-actions bot commented Nov 7, 2023

Size Change: +657 B (0%)

Total Size: 1.7 MB

Filename Size Change
build/block-editor/content-rtl.css 4.29 kB +10 B (0%)
build/block-editor/content.css 4.28 kB +10 B (0%)
build/block-editor/index.min.js 247 kB +68 B (0%)
build/block-library/blocks/image/style-rtl.css 1.61 kB +11 B (+1%)
build/block-library/blocks/image/style.css 1.6 kB +13 B (+1%)
build/block-library/blocks/image/view.min.js 2.05 kB +15 B (+1%)
build/block-library/index.min.js 212 kB +203 B (0%)
build/block-library/style-rtl.css 14.5 kB +20 B (0%)
build/block-library/style.css 14.5 kB +22 B (0%)
build/components/style-rtl.css 12 kB -4 B (0%)
build/components/style.css 12 kB -4 B (0%)
build/core-data/index.min.js 71.9 kB +14 B (0%)
build/edit-post/index.min.js 35.8 kB -67 B (0%)
build/edit-post/style-rtl.css 7.7 kB -46 B (-1%)
build/edit-post/style.css 7.7 kB -45 B (-1%)
build/edit-site/index.min.js 208 kB -478 B (0%)
build/edit-site/style-rtl.css 14.3 kB +75 B (+1%)
build/edit-site/style.css 14.3 kB +69 B (0%)
build/edit-widgets/index.min.js 17.2 kB -9 B (0%)
build/editor/index.min.js 46.7 kB +644 B (+1%)
build/editor/style-rtl.css 3.65 kB +67 B (+2%)
build/editor/style.css 3.65 kB +69 B (+2%)
ℹ️ 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/default-editor-styles-rtl.css 403 B
build/block-editor/default-editor-styles.css 403 B
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 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 320 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.55 kB
build/block-library/blocks/gallery/style.css 1.55 kB
build/block-library/blocks/gallery/theme-rtl.css 122 B
build/block-library/blocks/gallery/theme.css 122 B
build/block-library/blocks/group/editor-rtl.css 654 B
build/block-library/blocks/group/editor.css 654 B
build/block-library/blocks/group/style-rtl.css 57 B
build/block-library/blocks/group/style.css 57 B
build/block-library/blocks/group/theme-rtl.css 78 B
build/block-library/blocks/group/theme.css 78 B
build/block-library/blocks/heading/style-rtl.css 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 849 B
build/block-library/blocks/image/editor.css 847 B
build/block-library/blocks/image/theme-rtl.css 137 B
build/block-library/blocks/image/theme.css 137 B
build/block-library/blocks/latest-comments/style-rtl.css 357 B
build/block-library/blocks/latest-comments/style.css 357 B
build/block-library/blocks/latest-posts/editor-rtl.css 213 B
build/block-library/blocks/latest-posts/editor.css 212 B
build/block-library/blocks/latest-posts/style-rtl.css 478 B
build/block-library/blocks/latest-posts/style.css 478 B
build/block-library/blocks/list/style-rtl.css 88 B
build/block-library/blocks/list/style.css 88 B
build/block-library/blocks/media-text/editor-rtl.css 266 B
build/block-library/blocks/media-text/editor.css 263 B
build/block-library/blocks/media-text/style-rtl.css 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.07 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 637 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 471 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.45 kB
build/block-library/blocks/social-links/style.css 1.45 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/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/blocks/index.min.js 51.5 kB
build/commands/index.min.js 15.5 kB
build/commands/style-rtl.css 947 B
build/commands/style.css 942 B
build/components/index.min.js 256 kB
build/compose/index.min.js 12.7 kB
build/core-commands/index.min.js 2.72 kB
build/customize-widgets/index.min.js 12.1 kB
build/customize-widgets/style-rtl.css 1.43 kB
build/customize-widgets/style.css 1.43 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/edit-widgets/style-rtl.css 4.65 kB
build/edit-widgets/style.css 4.65 kB
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/index.min.js 11.4 kB
build/is-shallow-equal/index.min.js 535 B
build/keyboard-shortcuts/index.min.js 1.76 kB
build/keycodes/index.min.js 1.9 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/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 4.81 kB
build/patterns/style-rtl.css 567 B
build/patterns/style.css 566 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 988 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.76 kB
build/reusable-blocks/style-rtl.css 265 B
build/reusable-blocks/style.css 265 B
build/rich-text/index.min.js 9.96 kB
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 7, 2023

Flaky tests detected in 387690e.
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/6793350790
📝 Reported issues:

@ramonjd ramonjd force-pushed the update/global-styles-revisions-buttons-details branch from 387690e to e759258 Compare November 13, 2023 06:49
- add basic function to return translated labels of top-level changes
- showing humantime diff for changes < 1 day
- rearranging elements
- minor optimization refactoring
@ramonjd ramonjd force-pushed the update/global-styles-revisions-buttons-details branch from e759258 to 064c6dc Compare November 15, 2023 04:48
@ramonjd ramonjd marked this pull request as ready for review November 15, 2023 04:56
const displayDate =
modified &&
dateNowInMs - modifiedDate.getTime() > DAY_IN_MILLISECONDS
? dateI18n( dateFormat, modifiedDate )
Copy link
Member Author

@ramonjd ramonjd Nov 15, 2023

Choose a reason for hiding this comment

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

The date is formatted as OCTOBER 20 2023

This doesn't match the designs, which specify an abbreviated month — OCT 20 2023 — however I think it's important to introduce new formats using the date library and into Core so that themes can override them.

So TL;DR I can open a new PR and corresponding core patch to introduce the abbreviated month format if folks think it's worth it.

@ramonjd ramonjd requested a review from apeatling November 15, 2023 11:22
@ramonjd ramonjd removed the [Status] In Progress Tracking issues with work in progress label Nov 16, 2023
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.

I've noticed a bug where the previous revisions changes are added to the next revision. It's like the list isn't getting cleared. Try changing a couple of distinct things (other than typography), then save. Then change a global typography setting and save. You'll notice that the most recent revision lists not just typography changes.

In this example I only changed typography in the latest revision:

Screenshot 2023-11-16 at 1 04 14 PM

@apeatling
Copy link
Contributor

I also think we need to adjust the line height of the changes in the list to match everything else. You can see the difference between the line height in the description paragraph at the top, and the items in the list:

Screenshot 2023-11-16 at 1 06 49 PM

import { __ } from '@wordpress/i18n';

const translationMap = {
blocks: __( 'Block styles' ),
Copy link
Contributor

Choose a reason for hiding this comment

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

Can we break out block names in a follow up? For example show "Paragraph block typography" etc instead of a generic "Block styles". I think block styles are going to change a bunch and a lot of "Block styles" being listed is not super useful.

Copy link
Member Author

@ramonjd ramonjd Nov 16, 2023

Choose a reason for hiding this comment

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

For blocks it makes sense. I think we have to put a limit on it at some point as it needs to be calculated for every revision item on render.

I'll see how memoizing/caching each one might work too.

@c4rl0sbr4v0 explored comparing the style/settings tree deeply: #52829 (comment)

@ramonjd
Copy link
Member Author

ramonjd commented Nov 16, 2023

I've noticed a bug where the previous revisions changes are added to the next revision. It's like the list isn't getting cleared.

Thanks for testing. It's a naive check in that it only describes an individual revision's changes. It doesn't do a comparison with the previous revision, which it probably should.

I shied away from that approach for performance reasons. If we keep the comparison to the very top level it should be okay.

I'll have a look.

@ramonjd
Copy link
Member Author

ramonjd commented Nov 16, 2023

It doesn't do a comparison with the previous revision, which it probably should.

Actually, now that I reread that, we'd probably need to do a deep comparison to know what's changed, even at the top level.

So for example if a revision makes changes to styles.spacing.margin.marginLeft, that potentially 3-levels deep for every style.

🤔

@ramonjd
Copy link
Member Author

ramonjd commented Nov 17, 2023

@apeatling I've been testing various methods to get some kind of overview of changes.

I think it's best for a follow up PR because it would contain a few changes and a lot of logic that would be good to have reviewed separately. For now I've removed the relevant code.

Here are some initial thoughts for the follow up, assuming the goal of rendering a meaningful description of changes. Something like "Typography, background color, color palette, list block typography, link color..."

  • a changeset between revisions could be very large.
    • How many results should we display? And which ones?
    • How granular should it be? For example, should we itemize all block.typography properties?
    • Which results should we exclude? Do we include all settings such as font changes no matter how repetitive?
  • performance needs to be measured. Taking into account settings such as fonts and colors, the object nesting is very deep. We can limit the depth and cache comparisons by revision id to help performance. We could also only show a list of changes when an item is selected, so "expand" the revision item somehow.
  • How to maintain a list of translations for n styles?

I've taken @c4rl0sbr4v0's function from https://github.com/WordPress/gutenberg/pull/52829/files#diff-6baeb967c4bc1836222ed3912fb25cfdba460429895110e58ee23413e35498c6R97 and changed it a little:

  • filtering the results by hasChanged to only return changed values from the previous revision.
  • randomizing the order, then slicing the array so as not to return too many results, and not the same one between revisions.
  • caching each result under a revision id
  • returning early when max depth is reached.

It works okay, but needs a lot of refinement particularly surrounding which changes to show.

Switching between style variation for example creates 100 changes, many of them settings changes. This makes for a lot of repetitiveness.

So I believe we need to think and experiment a bit in order to balance all the concerns.

@andrewserong
Copy link
Contributor

andrewserong commented Nov 17, 2023

Just catching up on the discussion — good idea skipping the complexity of comparing the changes of each revision for now, it does sound like a good thing to address separately and explore our options.

One idea that came to me from reading the discussion: this might be ridiculous, but would an option be to potentially store a message in the post_excerpt field when a revision is saved? That way a record of the changes that were made is effectively cached at the time that the change was made. It could also have the benefit of being user-editable. Either at the time of saving or afterwards, a user could go in and attach a message to a particular global styles revisions — like, "Updated styles for Halloween" or "Implemented brand refresh"... essentially folks could use the field like a commit message. Just an idea, though, as it could be a can of worms (i.e. the message is in the db so can't be changed via code)!

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 is looking great to me in testing @ramonjd! Love the level of polish for the beginning and ends of the list so that the line never extends beyond the dot:

Beginning

image

End

image

Just left a few comments, mostly just tiny nits. The main thing I was wondering about was making sure we call getSettings() at render time so that if the date settings have been updated anywhere else, they're reflected in time.

Not for this PR, but looking at the repeated dates when many changes occurred on the one day makes we wonder if we should expose the time somewhere, too (or explore group-by-date collapsing), otherwise it can look a bit repetitive:

image

Not a blocker for now, though 🙂

@ramonjd
Copy link
Member Author

ramonjd commented Nov 17, 2023

Thanks for looking at this!

would an option be to potentially store a message in the post_excerpt field when a revision is saved?

It's an interesting idea!

post_excerpt doesn't exist on the global styles post type (it doesn't inherit WP_Post_Controller) so we'd have to activate that field for both the post type and the revisions. That's not such a huge deal.

It did occur to me to move the work to the backend, though many of the questions in the above comment would still need to be answered.

That is, I see the main challenge to be how and when to compile the data, and what that data would look like.

If we saved an excerpt, we could avoid expensive object comparison by hooking into the global styles provider in the site editor and keep an audit of currently unsaved settings/style changes. Using that we could send a version of that data to the database when updating the global styles post.

The catch is that any updates done over the API elsewhere might not compile such a change set, so it probably has to be done on the backend, in which case we push the performance burden to the server. Perhaps a dedicated endpoint to grab a change set might be more appropriate.

To get back to the feature at a higher level, I had this question in my mind: What do we need to communicate in these revisions change summaries?

In my view, if we're just dealing with copy, they should:

  • display changes to root and block styles, different from the previous revision
  • display a max of n changes with out going too deep or being too repetitive. I'd therefore imagine changes to prioritize changes at the block support group level e.g., Global letter spacing, global padding, group block border, color palettes and more. Contrast this with block support item level: Column block border left color. This then risks repetitiveness if several revisions update Column block borders.

It's tricky! But if they're all reasonable assumptions, and we don't yet have a use case for a full change set (like in this design proposal), then I still think we could trial it clientside with the appropriate caching and failsafes to avoid going too deep into the tree.

I'd be open to think about different UXs here too. E.g., clicking on the item to grab a changeset from the server and rendering the result.

🤷🏻

@andrewserong
Copy link
Contributor

But if they're all reasonable assumptions, and we don't yet have a use case for a full change set (like in this #52829 (comment)), then I still think we could trial it clientside with the appropriate caching and failsafes to avoid going too deep into the tree.

Agreed. Thanks for thinking this through in detail! I think a minimal clientside approach would be great to test out the ideas before baking anything in server-side 👍

rejigging getLabel function
adding css var
@ramonjd
Copy link
Member Author

ramonjd commented Nov 17, 2023

we should expose the time somewhere, too (or explore group-by-date collapsing), otherwise it can look a bit repetitive

Great idea!! I'll try it out.

Agree that it looks a bit samey 😄

Copy link
Contributor

@andrewserong andrewserong left a comment

Choose a reason for hiding this comment

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

Thanks for the updates! This is looking great to me, I reckon it looks good to merge, and we can continue exploring the other ideas in follow-ups.

LGTM! ✨

@ramonjd ramonjd merged commit d11351f into trunk Nov 19, 2023
50 checks passed
@ramonjd ramonjd deleted the update/global-styles-revisions-buttons-details branch November 19, 2023 22:13
@github-actions github-actions bot added this to the Gutenberg 17.2 milestone Nov 19, 2023
@ramonjd ramonjd changed the title Global style revisions: add details and redesign style revision items Global style revisions: redesign style revision items Nov 24, 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 [Type] Enhancement A suggestion for improvement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Style Revisions: Provide more details on what changed in each style revision
4 participants