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 Styles: Improve organisation of site background color and image #63216

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

Conversation

amitraj2203
Copy link
Contributor

What?

Closes: #63096

Why?

To improve the organisation for background color and images by creating a new Background Panel in global styles.

How?

This PR adds a Background section which collates both options.

Testing Instructions

  1. Open a Site Editor.
  2. Go to global styles.
  3. See the Background Panel.

Screenshots or screencast

Screen.Recording.2024-07-07.at.3.55.52.AM.mov

Copy link

github-actions bot commented Jul 6, 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: amitraj2203 <amitraj2203@git.wordpress.org>
Co-authored-by: mtias <matveb@git.wordpress.org>
Co-authored-by: mirka <0mirka00@git.wordpress.org>
Co-authored-by: tyxla <tyxla@git.wordpress.org>
Co-authored-by: ramonjd <ramonopoly@git.wordpress.org>
Co-authored-by: ciampo <mciampini@git.wordpress.org>
Co-authored-by: jasmussen <joen@git.wordpress.org>
Co-authored-by: richtabor <richtabor@git.wordpress.org>
Co-authored-by: jameskoster <jameskoster@git.wordpress.org>
Co-authored-by: noisysocks <noisysocks@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 Jul 6, 2024

Size Change: +2.61 kB (+0.15%)

Total Size: 1.78 MB

Filename Size Change
build/block-editor/index.min.js 258 kB +1.09 kB (+0.42%)
build/block-editor/style-rtl.css 16.3 kB +13 B (+0.08%)
build/block-editor/style.css 16.3 kB +16 B (+0.1%)
build/block-library/blocks/social-links/editor-rtl.css 757 B +81 B (+11.98%) ⚠️
build/block-library/blocks/social-links/editor.css 756 B +81 B (+12%) ⚠️
build/block-library/editor-rtl.css 11.8 kB +56 B (+0.48%)
build/block-library/editor.css 11.8 kB +57 B (+0.48%)
build/block-library/index.min.js 217 kB +133 B (+0.06%)
build/blocks/index.min.js 52.3 kB -50 B (-0.1%)
build/components/index.min.js 224 kB +151 B (+0.07%)
build/components/style-rtl.css 12.1 kB +11 B (+0.09%)
build/components/style.css 12.1 kB +11 B (+0.09%)
build/compose/index.min.js 12.6 kB -295 B (-2.29%)
build/core-data/index.min.js 73.2 kB +68 B (+0.09%)
build/dom/index.min.js 4.66 kB +14 B (+0.3%)
build/edit-site/index.min.js 217 kB +793 B (+0.37%)
build/edit-site/posts-rtl.css 7.28 kB +56 B (+0.78%)
build/edit-site/posts.css 7.28 kB +59 B (+0.82%)
build/edit-site/style-rtl.css 12.6 kB +54 B (+0.43%)
build/edit-site/style.css 12.6 kB +53 B (+0.42%)
build/editor/index.min.js 101 kB -8 B (-0.01%)
build/interactivity/debug.min.js 16.4 kB +94 B (+0.58%)
build/interactivity/index.min.js 13.2 kB +77 B (+0.59%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 951 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.31 kB
build/block-directory/style-rtl.css 1.01 kB
build/block-directory/style.css 1.01 kB
build/block-editor/content-rtl.css 4.57 kB
build/block-editor/content.css 4.56 kB
build/block-editor/default-editor-styles-rtl.css 394 B
build/block-editor/default-editor-styles.css 394 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 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 538 B
build/block-library/blocks/button/style.css 538 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 328 B
build/block-library/blocks/buttons/style.css 328 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 121 B
build/block-library/blocks/code/style.css 121 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-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 228 B
build/block-library/blocks/comments-pagination/editor.css 217 B
build/block-library/blocks/comments-pagination/style-rtl.css 234 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 832 B
build/block-library/blocks/comments/editor.css 832 B
build/block-library/blocks/comments/style-rtl.css 632 B
build/block-library/blocks/comments/style.css 631 B
build/block-library/blocks/cover/editor-rtl.css 641 B
build/block-library/blocks/cover/editor.css 642 B
build/block-library/blocks/cover/style-rtl.css 1.62 kB
build/block-library/blocks/cover/style.css 1.6 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/file/view.min.js 324 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 342 B
build/block-library/blocks/form-input/style.css 342 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/form/view.min.js 470 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 955 B
build/block-library/blocks/gallery/editor.css 958 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 344 B
build/block-library/blocks/group/editor.css 344 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 894 B
build/block-library/blocks/image/editor.css 892 B
build/block-library/blocks/image/style-rtl.css 1.59 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/image/view.min.js 1.65 kB
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 179 B
build/block-library/blocks/latest-posts/editor.css 179 B
build/block-library/blocks/latest-posts/style-rtl.css 509 B
build/block-library/blocks/latest-posts/style.css 510 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 304 B
build/block-library/blocks/media-text/editor.css 303 B
build/block-library/blocks/media-text/style-rtl.css 516 B
build/block-library/blocks/media-text/style.css 515 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.25 kB
build/block-library/blocks/navigation/style.css 2.23 kB
build/block-library/blocks/navigation/view.min.js 1.03 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 175 B
build/block-library/blocks/page-list/style.css 175 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/editor-rtl.css 74 B
build/block-library/blocks/post-content/editor.css 74 B
build/block-library/blocks/post-content/style-rtl.css 79 B
build/block-library/blocks/post-content/style.css 79 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 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 134 B
build/block-library/blocks/pullquote/editor.css 134 B
build/block-library/blocks/pullquote/style-rtl.css 342 B
build/block-library/blocks/pullquote/style.css 342 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 225 B
build/block-library/blocks/query-pagination/editor.css 215 B
build/block-library/blocks/query-pagination/style-rtl.css 287 B
build/block-library/blocks/query-pagination/style.css 283 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 452 B
build/block-library/blocks/query/editor.css 451 B
build/block-library/blocks/query/view.min.js 958 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 672 B
build/block-library/blocks/search/style.css 671 B
build/block-library/blocks/search/theme-rtl.css 113 B
build/block-library/blocks/search/theme.css 113 B
build/block-library/blocks/search/view.min.js 475 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 90 B
build/block-library/blocks/site-title/style.css 90 B
build/block-library/blocks/social-link/editor-rtl.css 338 B
build/block-library/blocks/social-link/editor.css 338 B
build/block-library/blocks/social-links/style-rtl.css 1.51 kB
build/block-library/blocks/social-links/style.css 1.5 kB
build/block-library/blocks/spacer/editor-rtl.css 346 B
build/block-library/blocks/spacer/editor.css 346 B
build/block-library/blocks/spacer/style-rtl.css 48 B
build/block-library/blocks/spacer/style.css 48 B
build/block-library/blocks/table-of-contents/style-rtl.css 83 B
build/block-library/blocks/table-of-contents/style.css 83 B
build/block-library/blocks/table/editor-rtl.css 394 B
build/block-library/blocks/table/editor.css 394 B
build/block-library/blocks/table/style-rtl.css 640 B
build/block-library/blocks/table/style.css 639 B
build/block-library/blocks/table/theme-rtl.css 152 B
build/block-library/blocks/table/theme.css 152 B
build/block-library/blocks/tag-cloud/editor-rtl.css 144 B
build/block-library/blocks/tag-cloud/editor.css 144 B
build/block-library/blocks/tag-cloud/style-rtl.css 266 B
build/block-library/blocks/tag-cloud/style.css 265 B
build/block-library/blocks/template-part/editor-rtl.css 368 B
build/block-library/blocks/template-part/editor.css 368 B
build/block-library/blocks/template-part/theme-rtl.css 113 B
build/block-library/blocks/template-part/theme.css 113 B
build/block-library/blocks/term-description/style-rtl.css 126 B
build/block-library/blocks/term-description/style.css 126 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B
build/block-library/blocks/text-columns/editor.css 95 B
build/block-library/blocks/text-columns/style-rtl.css 165 B
build/block-library/blocks/text-columns/style.css 165 B
build/block-library/blocks/verse/style-rtl.css 98 B
build/block-library/blocks/verse/style.css 98 B
build/block-library/blocks/video/editor-rtl.css 396 B
build/block-library/blocks/video/editor.css 397 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.1 kB
build/block-library/common.css 1.1 kB
build/block-library/editor-elements-rtl.css 75 B
build/block-library/editor-elements.css 75 B
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.8 kB
build/block-library/style.css 14.8 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/commands/index.min.js 16.1 kB
build/commands/style-rtl.css 955 B
build/commands/style.css 952 B
build/core-commands/index.min.js 2.82 kB
build/customize-widgets/index.min.js 11 kB
build/customize-widgets/style-rtl.css 1.35 kB
build/customize-widgets/style.css 1.35 kB
build/data-controls/index.min.js 641 B
build/data/index.min.js 8.98 kB
build/date/index.min.js 18 kB
build/deprecated/index.min.js 458 B
build/dom-ready/index.min.js 325 B
build/edit-post/classic-rtl.css 578 B
build/edit-post/classic.css 580 B
build/edit-post/index.min.js 12.7 kB
build/edit-post/style-rtl.css 2.31 kB
build/edit-post/style.css 2.31 kB
build/edit-widgets/index.min.js 17.7 kB
build/edit-widgets/style-rtl.css 4.2 kB
build/edit-widgets/style.css 4.2 kB
build/editor/style-rtl.css 9.28 kB
build/editor/style.css 9.29 kB
build/element/index.min.js 4.83 kB
build/escape-html/index.min.js 537 B
build/format-library/index.min.js 8.09 kB
build/format-library/style-rtl.css 476 B
build/format-library/style.css 476 B
build/hooks/index.min.js 1.54 kB
build/html-entities/index.min.js 445 B
build/i18n/index.min.js 3.58 kB
build/interactivity/file.min.js 447 B
build/interactivity/image.min.js 1.78 kB
build/interactivity/navigation.min.js 1.16 kB
build/interactivity/query.min.js 742 B
build/interactivity/router.min.js 2.8 kB
build/interactivity/search.min.js 615 B
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.18 kB
build/list-reusable-blocks/style-rtl.css 846 B
build/list-reusable-blocks/style.css 846 B
build/media-utils/index.min.js 2.92 kB
build/modules/importmap-polyfill.min.js 12.3 kB
build/notices/index.min.js 946 B
build/nux/index.min.js 1.61 kB
build/nux/style-rtl.css 749 B
build/nux/style.css 745 B
build/patterns/index.min.js 7.34 kB
build/patterns/style-rtl.css 687 B
build/patterns/style.css 685 B
build/plugins/index.min.js 1.81 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 1.01 kB
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.69 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.1 kB
build/router/index.min.js 1.96 kB
build/server-side-render/index.min.js 1.94 kB
build/shortcode/index.min.js 1.4 kB
build/style-engine/index.min.js 2.04 kB
build/token-list/index.min.js 581 B
build/url/index.min.js 3.85 kB
build/vendors/react-dom.min.js 41.7 kB
build/vendors/react-jsx-runtime.min.js 560 B
build/vendors/react.min.js 4.02 kB
build/viewport/index.min.js 965 B
build/warning/index.min.js 250 B
build/widgets/index.min.js 7.2 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

@shail-mehta shail-mehta added [Type] Enhancement A suggestion for improvement. Global Styles Anything related to the broader Global Styles efforts, including Styles Engine and theme.json labels Jul 7, 2024
@jasmussen
Copy link
Contributor

Nice! This looks really good:

branch

Potentially we could merge this as an iteration, pending a rebase to fix the conflicts.

Further improvements would be for these two pieces, which should probably be separate PRs we can consider:

Screenshot 2024-07-31 at 13 05 24

Screenshot 2024-07-31 at 13 05 31

The centered "Add background image" looks a little off, we might want to left align that text and add an upload icon in the spot on the left.

And the background image inside the ItemGroup once uploaded should have a rounded-rectangle shape, not the circle "swatch" shape.

@jasmussen jasmussen requested a review from a team July 31, 2024 11:08
@amitraj2203
Copy link
Contributor Author

@jasmussen Thanks for the review. I have rebased the branch.

@richtabor
Copy link
Member

@jasmussen what do you think about an empty state just like colors?

CleanShot 2024-07-31 at 16 08 52

@richtabor
Copy link
Member

These should have the same exact UI as the items in the Color panel:

CleanShot 2024-07-31 at 16 10 18

The color panel:

CleanShot 2024-07-31 at 16 10 45

@richtabor
Copy link
Member

Could use the same treatment as the Colors panel "Elements" perhaps (with no border divider too):

CleanShot 2024-07-31 at 16 14 15

@jasmussen
Copy link
Contributor

what do you think about an empty state just like colors?

Love it.

@amitraj2203
Copy link
Contributor Author

Thanks @richtabor & @jasmussen for your review. I have addressed the border styles on focus issue and also added the upload icon for background image and changed its shape. Can you please review it again?

Screen.Recording.2024-08-01.at.6.22.19.PM.mov

@jasmussen
Copy link
Contributor

Nice work, getting very close now:

styles

The border radius on the square here should be 2px:

Screenshot 2024-08-02 at 08 39 38

Also there's some border changes happening which means if you insert a group, the background control is missing a top border:

Screenshot 2024-08-02 at 08 40 13

Since this is touching some ItemGroup related pieces, it might be good with a code check from @WordPress/gutenberg-components too.

But functionally, this is 90% there. Thank you for the PR!

@mirka mirka requested a review from a team August 2, 2024 12:25
…here is only one child in media-replace-container
@amitraj2203
Copy link
Contributor Author

@jasmussen Thanks for the review. I have addressed it now.

@jasmussen
Copy link
Contributor

Behavior-wise, design-wise, this is solid now, nice work, thank you!

Code-wise this needs a review. There's a bit more CSS than I expected, that looks specialized mainly to this context. I wonder if our components group (already pinged) has a better approach we can take here, or not. Otherwise, this is good to go from the UI perspective.

Copy link
Member

@mirka mirka left a comment

Choose a reason for hiding this comment

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

I left some notes around component usage. The ItemGroup one is not necessarily blocking for this PR, as I believe it may require a substantial refactor. I do recommend cleaning it up though, as it looks quite fragile and hacky.

I'll tag @ramonjd for a better technical review as he may have insights into the feasibility/priority of a refactor.

@mirka mirka requested a review from ramonjd August 2, 2024 14:38
@amitraj2203
Copy link
Contributor Author

Thank You @ramonjd @jasmussen @mirka.
I've resolved the conflicts now. I apologize for the delay, it was a busy week. Could you please review the changes at your convenience?

@ramonjd
Copy link
Member

ramonjd commented Aug 19, 2024

Thanks for the ping!

Things are working as I'd expect in the editor. There are a couple of minor points that might need some feedback from the design folks.

  1. Previously, there was no preview icon placeholder. Now, there is a rectangular-like shape and its dimensions don't match the image preview icon. The discussion to remove the placeholder icon was on this PR. I guess it was re-added for balance with the color control below, but it affects all controls (global styles and block level).
  2. There's a white line at the bottom of the active state (when the popover panel is open).

Trunk

Empty With image
Screenshot 2024-08-19 at 11 31 46 AM Screenshot 2024-08-19 at 11 31 54 AM

This PR

Empty With image
Screenshot 2024-08-19 at 11 29 14 AM Screenshot 2024-08-19 at 11 30 39 AM

Also, as mentioned, I think it would be worth looking for abstraction opportunities, given that the component now forks the UI based on context, e.g., abstracting out the ColorPanelDropdown from background-panel.js.

This could be done in a follow up though as it might bloat this PR.

@jasmussen
Copy link
Contributor

There's a white line at the bottom of the active state (when the popover panel is open).

I think this is an existing issue with the ItemGroup, so not something that need be fixed in this PR.

@jasmussen
Copy link
Contributor

Would appreciate dev help and reviews, this would be a nice one to land! And thanks for contributing!

Copy link
Member

@tyxla tyxla left a comment

Choose a reason for hiding this comment

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

cc @WordPress/gutenberg-components since this overrides some component styles and it's worth auditing the usage.

@@ -33,10 +34,20 @@ function RootMenu() {
const hasShadowPanel = true; // useHasShadowPanel( settings );
const hasDimensionsPanel = useHasDimensionsPanel( settings );
const hasLayoutPanel = hasDimensionsPanel;
const hasBackgroundPanel = true; // useHasBackgroundPanel( settings );
Copy link
Member

Choose a reason for hiding this comment

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

Can you elaborate on why we are hardcoding this?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I am not sure exactly why, but the value of backgroundImage and backgroundSize is false here 🤔 .

Copy link
Contributor

Choose a reason for hiding this comment

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

That can be investigated separately, I guess? Let's make sure we revert this change before merging

Copy link
Contributor

Choose a reason for hiding this comment

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

Related: #63216 (comment)

Basically, I wonder if useHasBackgroundPanel should be updated and/or the logic of this panel refactored to include:

  • the fact that there are controls for both the background image and the background color, which may depend on separate settings
  • the fact that this panel can be used both for global site settings, and for block-level settings

@tyxla tyxla requested a review from a team August 19, 2024 09:41
@@ -147,6 +152,14 @@
}
}

.block-editor-global-styles-background-panel__color-tools-panel-item {

button.components-button {
Copy link
Contributor

Choose a reason for hiding this comment

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

While style overrides are

Instead of using button.components-button (which is meant to be a private API of the components package), could we assign a custom classname to the button itself and use that to apply style overrides?

Also, do we need to use a Button component, if we're going to override its styles? Should we consider just use a vanilla button instead?


(These comments apply to all instances of style overrides for Button in this file)

@@ -83,13 +83,18 @@
}

.block-editor-global-styles-background-panel__image-tools-panel-item {
padding: 0;
flex-grow: 1;
border: 0;
.components-dropdown {
Copy link
Contributor

Choose a reason for hiding this comment

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

I know it was not introduced by this PR, but — as also mentioned about .components-button.components-* classnames re not meant to be used outside of the components package. We can use custom classnames instead.

Copy link
Contributor Author

@amitraj2203 amitraj2203 Aug 29, 2024

Choose a reason for hiding this comment

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

Should I make the change in this PR only, or a separate PR would be good for it?

Copy link
Contributor

Choose a reason for hiding this comment

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

Happy for it to be a separate, follow-up PR.

The main changes that would be needed:

  • understand why we need to set a 36px height on .components-dropdown. Ideally, we should use the default button height. If not, let's understand why, and at most use the renderToggle prop to pass differently sized button;
  • avoid overriding color and focus styles of .components-button, and only use the component props to tweak those aspects (mainly the variant prop)
  • passing a custom className to the components instances, and then using that custom classname in the styles file;

/>
) }
</ToolsPanelItem>
</div>
{ shouldShowBackgroundColorControls &&
path === '/background' && (
Copy link
Contributor

Choose a reason for hiding this comment

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

Excuses in case I'm missing the context, but why do we need to check the path ?

Even if we needed to, this inline check in the middle of the JSX output could be easily overlooked. If we need this check, I would probably extract it as a prop of the Screen itself

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The BackgroundColorControl is also visible in block-level global styles. For example, if we remove this check, it will also be visible in the Group block's global styles.
image

Can you please tell me exactly where you want this to be moved as a prop?

Copy link
Contributor

Choose a reason for hiding this comment

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

This component shouldn't really know about global styles routing, even more so that it's defined in a different package.

Instead, it could expose a boolean prop (something like showBackgroundControl or any other name that makes sense). Is showing those controls an exception? Then the default value of the boolean prop should be false. Otherwise, it should be true.

Let's assume it's false by defatul — this means that we should set it to true only where we need to show it, ie. in the background screen via the <BackgroundPanel /> component (and not sure where else).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I have tried to implement it, could you please check again?

Copy link
Contributor

Choose a reason for hiding this comment

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

Yup, you did follow my advice above.

However, I'd like to delegate review & advice on this aspect to someone with more experience with this part of the codebase, since I get the feeling that what I suggested is not optimal either.

In general, I get the feeling that, if we want the background panel to be rendered in a few places (global styles root, single block screen in global styles, and potentially anywhere else in the sidebar), we should generalize its logic a bit more — or delegate it to the parent react component.

For example, I wonder if we should make tweaks to the useHasBackgroundPanel hook (or create a new hook), since:

  • it only seems to care about global settings, even if it looks like this panel needs to be used in block level screens too
  • it only references the background image, while we need to also check for the background color (the main object of this conversation)

cc @ramonjd since it looks like he's done a bunch of work in this area of the codebase

Copy link
Member

@ramonjd ramonjd Sep 3, 2024

Choose a reason for hiding this comment

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

Thanks for helping out here @ciampo

In general, I get the feeling that, if we want the background panel to be rendered in a few places (global styles root, single block screen in global styles, and potentially anywhere else in the sidebar), we should generalize its logic a bit more — or delegate it to the parent react component.

The latter is definitely something worth to think about.

The proposal is to only add the background color picker to the background panel on for root global styles.

I suspect it'd be easier to test, and easier to use if <BackgroundPanel /> were generalized and the image/color/etc components abstracted and rendered as children of the former.

I'm not suggested a complete refactor of this PR, but it does need more testing.

it only seems to care about global settings, even if it looks like this panel needs to be used in block level screens too

I think that's consistent with other use* functions in sibling style panels. So, if theme.json turns these settings off, they're off everywhere. Unless I'm missing something 🤔

it only references the background image, while we need to also check for the background color (the main object of this conversation)

There's also a function of the same name useHasBackgroundPanel in the color panel that we should be using.

export function useHasBackgroundPanel( settings ) {

I'm going to get a PR up to fix the naming clash, but yeah, in order to determine whether to show the background panel at all, it should take into account all the properties.

It might be easier to reason about if things were abstracted.

Copy link
Contributor

Choose a reason for hiding this comment

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

I think that's consistent with other use* functions in sibling style panels. So, if theme.json turns these settings off, they're off everywhere. Unless I'm missing something 🤔

That makes sense — and shows how little experience I have with this part of the codebase 😓

The proposal is to only add the background color picker to the background panel on for root global styles.

I suspect it'd be easier to test, and easier to use if <BackgroundPanel /> were generalized and the image/color/etc components abstracted and rendered as children of the former.

It might be easier to reason about if things were abstracted.

I trust your instinct on what the best solution should be.

But I definitely get the impression that the current implementation needs some re-architecting to make sure it can work well regardless of where it's rendered — root global styles screen, block-level global styles screen, or anywhere else in the inspector sidebar

Comment on lines 1075 to 1091
tabs={ [
hasSolidColors && {
key: 'background',
label: __( 'Background' ),
inheritedValue: backgroundColor,
setValue: setBackgroundColor,
userValue: userBackgroundColor,
},
hasGradientColors && {
key: 'gradient',
label: __( 'Gradient' ),
inheritedValue: gradient,
setValue: setGradient,
userValue: userGradient,
isGradient: true,
},
].filter( Boolean ) }
Copy link
Contributor

Choose a reason for hiding this comment

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

Potentially premature optimisation, but as of now the tabs array is being re-creater every time the component re-renders.

Copy link
Contributor

@ciampo ciampo left a comment

Choose a reason for hiding this comment

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

I agree with @mirka that the background panel (and probably the rest of the global style screens) are pushing the boundaries of how a few components are supposed to be used (ItemGroup, Dropdown, ToolsPanel), showing that those components have some limitations that could be improved.

Apart from that (and some inline comments), I personally find the dropdown that opens when clicking "Add background image" a bit awkward, since most dropdowns / popovers would open to the left of the sidebar

Screenshot 2024-08-19 at 18 38 20

Copy link

Flaky tests detected in 98833df.
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/10615849363
📝 Reported issues:

@@ -33,10 +35,20 @@ function RootMenu() {
const hasShadowPanel = true; // useHasShadowPanel( settings );
const hasDimensionsPanel = useHasDimensionsPanel( settings );
const hasLayoutPanel = hasDimensionsPanel;
const hasBackgroundPanel = useHasBackgroundPanel( settings );
Copy link
Member

Choose a reason for hiding this comment

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

The background panel doesn't show at all for me at the moment. I think we should be using rawSettings here, not the return value of useSettingsForBlockElement()

Suggested change
const hasBackgroundPanel = useHasBackgroundPanel( settings );
const hasBackgroundPanel = useHasBackgroundPanel( rawSettings );


const decodeValue = ( rawValue ) =>
getValueFromVariable( { settings }, '', rawValue );
const shouldShowBackgroundColorControls = useHasBackgroundPanel( settings );
Copy link
Member

Choose a reason for hiding this comment

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

Hmm, I think there's an unfortunate naming clash. Wouldn't we be more interested in the function of the same same from the color panel?

export function useHasBackgroundPanel( settings ) {

I think one or both of the functions names could be changes, e.g. useHasBackgroundImagePanel and useHasBackgroundColorPanel

I'll get a quick PR up for that 👍🏻

In the mean time we could import the right function and rename it, e.g., import { useHasBackgroundPanel as useHasBackgroundColorPanel } from './color-panel';

Copy link
Member

Choose a reason for hiding this comment

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

Renaming PR: #64993

/>
) }
</ToolsPanelItem>
</div>
{ shouldShowBackgroundColorControls &&
path === '/background' && (
Copy link
Member

@ramonjd ramonjd Sep 3, 2024

Choose a reason for hiding this comment

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

Thanks for helping out here @ciampo

In general, I get the feeling that, if we want the background panel to be rendered in a few places (global styles root, single block screen in global styles, and potentially anywhere else in the sidebar), we should generalize its logic a bit more — or delegate it to the parent react component.

The latter is definitely something worth to think about.

The proposal is to only add the background color picker to the background panel on for root global styles.

I suspect it'd be easier to test, and easier to use if <BackgroundPanel /> were generalized and the image/color/etc components abstracted and rendered as children of the former.

I'm not suggested a complete refactor of this PR, but it does need more testing.

it only seems to care about global settings, even if it looks like this panel needs to be used in block level screens too

I think that's consistent with other use* functions in sibling style panels. So, if theme.json turns these settings off, they're off everywhere. Unless I'm missing something 🤔

it only references the background image, while we need to also check for the background color (the main object of this conversation)

There's also a function of the same name useHasBackgroundPanel in the color panel that we should be using.

export function useHasBackgroundPanel( settings ) {

I'm going to get a PR up to fix the naming clash, but yeah, in order to determine whether to show the background panel at all, it should take into account all the properties.

It might be easier to reason about if things were abstracted.

Copy link
Member

@ramonjd ramonjd left a comment

Choose a reason for hiding this comment

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

Thanks for your continued efforts on this @amitraj2203

It's not a straight forward task, so I appreciate your perseverance. 🙇🏻

I want these types of changes to move forward - I agree 100% that grouping controls that affect the background makes sense.

I'm just not sold that we're doing things in the right order, that is, reorganizing the UX on top of a styles system that doesn't support it.

For example, it's really confusing that I can't see my gradient background color behind the image:

Screenshot 2024-09-03 at 10 42 04 AM

It's because we haven't yet fixed the background/ background-image clash.

See the item under Setting background-image overrides background gradient in the background follow up tasks.

In a perfect world, this styles clash would have been fixed for 6.7, but time/resources were constraints.

With it fixed, the new UI proposed here would be the perfect complement.

I think we should concentrate on addressing the gradient/background-image CSS issue — which, in my opinion, is a fairly large bug and completely unintuitive to both developers and users — before we expose its limitation to users more obviously in the UX.

That's just my 2c. 😄

Also, on a more trivial point, if we're going with the square placeholder icon, I still think we should iron out the differences between its dimensions and the uploaded image's icon: #63216 (comment)

</Item>
);

function ColorPanelDropdown( {
Copy link
Member

Choose a reason for hiding this comment

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

I've mentioned it before, but I think this file is getting too large and probably needs some composition, e.g.,

<BackgroundPanel>
      <BackgroundImageControls />
      <BackgroundColorControls />
</BackgroundPanel>

@jasmussen
Copy link
Contributor

I think we should concentrate on addressing the gradient/background-image CSS issue — which, in my opinion, is a fairly large bug and completely unintuitive to both developers and users — before we expose its limitation to users more obviously in the UX.

Well, both. The disorganization of controls is certainly an issue, but it's already been an issue across Cover, Group, and the new unified background tools. This is a large undertaking, and one of the most important aspects of this PR, or perhaps more specifically, of #63096, is to move the background tools out of "Layout" and into the global styles inspector as a top level item. There are some gotchas with this, but this organization is an important step that ideally we find a path towards.

@ramonjd
Copy link
Member

ramonjd commented Sep 4, 2024

The disorganization of controls is certainly an issue, but it's already been an issue across Cover, Group, and the new unified background tools.

Thanks @jasmussen Definitely not disputing the need to reorganize the controls - I only wanted to communicate that the way the underlying background styles are expressed in CSS is buggy and fixing it should share priority. Admittedly, given time constraints a fix for that won't make it for 6.7 - I had planned it in, but won't get to it unfortunately.

is to move the background tools out of "Layout" and into the global styles inspector as a top level item

My vote would be to only move the background image tool as a first iteration - it might make integrating color later easier to implement and test. 🤷🏻

@jasmussen
Copy link
Contributor

My vote would be to only move the background image tool as a first iteration - it might make integrating color later easier to implement and test. 🤷🏻

Is this something you can help with? Thanks for the clarification!

@ramonjd
Copy link
Member

ramonjd commented Sep 4, 2024

Is this something you can help with? Thanks for the clarification!

I don't have much development bandwidth for 6.7 unfortunately, but I think @amitraj2203's work so far has been great to illustrate how the controls can work (thank you @amitraj2203).

In my view, we could split this PR into the things it's trying to achieve:

  1. At a minimum, isolate the work in this PR that moves the background image to the background navigation item for top-level global styles. This was the original state before it was moved into Layout.
  2. Once that's done, rework the component so that controls can be better managed. This will be particularly beneficial to manage conditional rendering, for example, in the case where a theme supports background colors but not background images in the theme.json settings.
  3. Create and integrate the background color component for this section. Most of the work has been done in this PR for that.

@amitraj2203 let me know if this makes sense to you - before 6.7 Beta 1 I should get some time to help out with 1 and 2.

@ramonjd
Copy link
Member

ramonjd commented Sep 13, 2024

Following up on this comment: #63216 (comment)

I've done points 1 and 2 in this PR:

If that's okay, I think it will make merging background color and image controls (from this PR) a little less complex, at least it'll be fewer lines of code 🤞🏻

Thank you!

@mtias
Copy link
Member

mtias commented Sep 29, 2024

Good call @ramonjd

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
Status: Needs review
Status: 🏈 Punted to 6.8
Development

Successfully merging this pull request may close these issues.

Improve organisation of site background options
10 participants