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

Color Palette: Respect defaultPalette setting (fixes Cover block placeholder state) #58869

Conversation

andrewserong
Copy link
Contributor

@andrewserong andrewserong commented Feb 9, 2024

What?

Fixes: #58753

Update the ColorPalette component used by the Cover block's placeholder state so that it is aware of the color.defaultPalette setting, and therefore can skip outputting the default palette when required.

Why?

This was raised in: #58753 and from a git bisect, it seems that the PR that originally caused this to regress was: #55219

If my understanding is correct, #55219 resulted in combining the values for all origins into color.palette since it's included in the __EXPERIMENTAL_PATHS_WITH_MERGE object here. So, after that PR, and prior to this one, 'color.palette' will automatically include all the default palettes in it.

So that means one solution is to:

How?

  • Select the custom, theme, and default colors separately, and combine them, skipping the default colors if color.defaultPalette is falsy.
  • This approach is borrowed the logic from the Palette in the site editor, which grabs the custom/theme/default values separately and strips out the default colors if color.defaultPalette is not enabled.
  • For the Cover block, provide a colors value, that will only show the default palette colors if there are no theme colors, and if the color.defaultPalette value is truthy.

I'm not sure if this is the best way to fix it, but it seems to do the job so far!

Testing Instructions

  1. With TT4 theme applied, test that on trunk if you add a Cover block to a post, page, or template, you'll see the default colors in addition to theme or custom colors in the placeholder
  2. With this PR applied (and TT4 active, since it disables defaultPalette), you should only see theme + custom colors in the placeholder
  3. Try toggling settings.color.defaultPalette in theme.json — switching it to true should re-enable the display of the default colors again — they will be visible when highlighting text, and in the using color pickers. In the Cover block placeholder, however, we only show the default palette if there are no theme colors available.
  4. Ensure this PR matches (or is closer to) behaviour in the last major WordPress release. The regression has been around for a while, so a decent way to test is to toggle the Gutenberg plugin on and off in a test site. Try a few different themes, too, to check for consistency.

Screenshots or screencast

Before (or if color.defaulPalette is set to true) After
image image

This should also fix an issue with the colors displayed when highlighting text, too:

Before After
image image

@andrewserong andrewserong added [Type] Regression Related to a regression in the latest release [Block] Cover Affects the Cover Block - used to display content laid over a background image [Feature] Colors Color management labels Feb 9, 2024
@andrewserong andrewserong self-assigned this Feb 9, 2024
Copy link

github-actions bot commented Feb 9, 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: andrewserong <[email protected]>
Co-authored-by: aaronrobertshaw <[email protected]>
Co-authored-by: noisysocks <[email protected]>
Co-authored-by: colorful-tones <[email protected]>
Co-authored-by: juanfra <[email protected]>
Co-authored-by: youknowriad <[email protected]>
Co-authored-by: matiasbenedetto <[email protected]>
Co-authored-by: richtabor <[email protected]>

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

Copy link

github-actions bot commented Feb 9, 2024

Size Change: -40 B (0%)

Total Size: 1.71 MB

Filename Size Change
build/block-editor/index.min.js 251 kB +66 B (0%)
build/block-editor/style-rtl.css 15.4 kB -50 B (0%)
build/block-editor/style.css 15.4 kB -48 B (0%)
build/block-library/blocks/image/style-rtl.css 1.6 kB -1 B (0%)
build/block-library/blocks/image/style.css 1.59 kB -1 B (0%)
build/block-library/blocks/image/view.min.js 1.54 kB -484 B (-24%) 🎉
build/block-library/blocks/query/view.min.js 958 B -38 B (-4%)
build/block-library/blocks/spacer/editor-rtl.css 350 B +2 B (+1%)
build/block-library/blocks/spacer/editor.css 350 B +2 B (+1%)
build/block-library/editor-rtl.css 12.3 kB +2 B (0%)
build/block-library/editor.css 12.3 kB +7 B (0%)
build/block-library/index.min.js 216 kB +155 B (0%)
build/block-library/style-rtl.css 14.8 kB +1 B (0%)
build/block-library/style.css 14.7 kB +1 B (0%)
build/components/index.min.js 226 kB +139 B (0%)
build/components/style-rtl.css 11.8 kB +36 B (0%)
build/components/style.css 11.8 kB +38 B (0%)
build/core-commands/index.min.js 2.77 kB +63 B (+2%)
build/core-data/index.min.js 72.7 kB +32 B (0%)
build/customize-widgets/style-rtl.css 1.32 kB -15 B (-1%)
build/customize-widgets/style.css 1.32 kB -15 B (-1%)
build/edit-post/index.min.js 25.2 kB +82 B (0%)
build/edit-post/style-rtl.css 5.63 kB -36 B (-1%)
build/edit-post/style.css 5.62 kB -35 B (-1%)
build/edit-site/index.min.js 212 kB +347 B (0%)
build/edit-site/style-rtl.css 15.8 kB +199 B (+1%)
build/edit-site/style.css 15.9 kB +202 B (+1%)
build/edit-widgets/style-rtl.css 4.21 kB -19 B (0%)
build/edit-widgets/style.css 4.21 kB -21 B (0%)
build/editor/index.min.js 61.8 kB +54 B (0%)
build/editor/style-rtl.css 5.43 kB +1 B (0%)
build/editor/style.css 5.43 kB -3 B (0%)
build/format-library/index.min.js 7.89 kB +38 B (0%)
build/interactivity/image.min.js 1.67 kB -478 B (-22%) 🎉
build/interactivity/index.min.js 12.7 kB -272 B (-2%)
build/interactivity/query.min.js 740 B -36 B (-5%)
build/interactivity/router.min.js 1.29 kB +54 B (+4%)
build/rich-text/index.min.js 10.4 kB -9 B (0%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 955 B
build/annotations/index.min.js 2.69 kB
build/api-fetch/index.min.js 2.32 kB
build/autop/index.min.js 2.1 kB
build/blob/index.min.js 578 B
build/block-directory/index.min.js 7.22 kB
build/block-directory/style-rtl.css 1.02 kB
build/block-directory/style.css 1.02 kB
build/block-editor/content-rtl.css 4.35 kB
build/block-editor/content.css 4.35 kB
build/block-editor/default-editor-styles-rtl.css 381 B
build/block-editor/default-editor-styles.css 381 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 126 B
build/block-library/blocks/audio/theme.css 126 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 415 B
build/block-library/blocks/button/editor.css 414 B
build/block-library/blocks/button/style-rtl.css 627 B
build/block-library/blocks/button/style.css 626 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.69 kB
build/block-library/blocks/cover/style.css 1.68 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 322 B
build/block-library/blocks/embed/editor.css 322 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 126 B
build/block-library/blocks/embed/theme.css 126 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 324 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 227 B
build/block-library/blocks/form-input/editor.css 227 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 340 B
build/block-library/blocks/form-submission-notification/editor.css 340 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 471 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 947 B
build/block-library/blocks/gallery/editor.css 952 B
build/block-library/blocks/gallery/style-rtl.css 1.72 kB
build/block-library/blocks/gallery/style.css 1.72 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 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 336 B
build/block-library/blocks/html/editor.css 337 B
build/block-library/blocks/image/editor-rtl.css 863 B
build/block-library/blocks/image/editor.css 862 B
build/block-library/blocks/image/theme-rtl.css 126 B
build/block-library/blocks/image/theme.css 126 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 668 B
build/block-library/blocks/navigation-link/editor.css 669 B
build/block-library/blocks/navigation-link/style-rtl.css 259 B
build/block-library/blocks/navigation-link/style.css 257 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 296 B
build/block-library/blocks/navigation-submenu/editor.css 295 B
build/block-library/blocks/navigation/editor-rtl.css 2.25 kB
build/block-library/blocks/navigation/editor.css 2.26 kB
build/block-library/blocks/navigation/style-rtl.css 2.24 kB
build/block-library/blocks/navigation/style.css 2.23 kB
build/block-library/blocks/navigation/view.min.js 1.1 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 377 B
build/block-library/blocks/page-list/editor.css 377 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-content/editor-rtl.css 74 B
build/block-library/blocks/post-content/editor.css 74 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 342 B
build/block-library/blocks/post-featured-image/style.css 342 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 354 B
build/block-library/blocks/pullquote/style.css 354 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/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 614 B
build/block-library/blocks/search/style.css 614 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 478 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 229 B
build/block-library/blocks/separator/style.css 229 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 323 B
build/block-library/blocks/shortcode/editor.css 323 B
build/block-library/blocks/site-logo/editor-rtl.css 754 B
build/block-library/blocks/site-logo/editor.css 754 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.48 kB
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 395 B
build/block-library/blocks/table/editor.css 395 B
build/block-library/blocks/table/style-rtl.css 639 B
build/block-library/blocks/table/style.css 639 B
build/block-library/blocks/table/theme-rtl.css 146 B
build/block-library/blocks/table/theme.css 146 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 185 B
build/block-library/blocks/video/style.css 185 B
build/block-library/blocks/video/theme-rtl.css 126 B
build/block-library/blocks/video/theme.css 126 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/theme-rtl.css 688 B
build/block-library/theme.css 693 B
build/block-serialization-default-parser/index.min.js 1.12 kB
build/block-serialization-spec-parser/index.min.js 2.87 kB
build/blocks/index.min.js 51.8 kB
build/commands/index.min.js 15.6 kB
build/commands/style-rtl.css 921 B
build/commands/style.css 918 B
build/compose/index.min.js 12.6 kB
build/customize-widgets/index.min.js 12.1 kB
build/data-controls/index.min.js 640 B
build/data/index.min.js 8.93 kB
build/date/index.min.js 17.9 kB
build/deprecated/index.min.js 451 B
build/dom-ready/index.min.js 324 B
build/dom/index.min.js 4.65 kB
build/edit-post/classic-rtl.css 544 B
build/edit-post/classic.css 545 B
build/edit-widgets/index.min.js 17.3 kB
build/element/index.min.js 4.83 kB
build/escape-html/index.min.js 537 B
build/format-library/style-rtl.css 478 B
build/format-library/style.css 477 B
build/hooks/index.min.js 1.55 kB
build/html-entities/index.min.js 448 B
build/i18n/index.min.js 3.58 kB
build/interactivity/file.min.js 447 B
build/interactivity/navigation.min.js 1.24 kB
build/interactivity/search.min.js 618 B
build/is-shallow-equal/index.min.js 527 B
build/keyboard-shortcuts/index.min.js 1.74 kB
build/keycodes/index.min.js 1.46 kB
build/list-reusable-blocks/index.min.js 2.11 kB
build/list-reusable-blocks/style-rtl.css 836 B
build/list-reusable-blocks/style.css 836 B
build/media-utils/index.min.js 2.9 kB
build/modules/importmap-polyfill.min.js 12.2 kB
build/notices/index.min.js 948 B
build/nux/index.min.js 2 kB
build/nux/style-rtl.css 735 B
build/nux/style.css 732 B
build/patterns/index.min.js 5.74 kB
build/patterns/style-rtl.css 540 B
build/patterns/style.css 539 B
build/plugins/index.min.js 1.8 kB
build/preferences-persistence/index.min.js 2.07 kB
build/preferences/index.min.js 2.82 kB
build/preferences/style-rtl.css 698 B
build/preferences/style.css 700 B
build/primitives/index.min.js 975 B
build/priority-queue/index.min.js 1.52 kB
build/private-apis/index.min.js 1 kB
build/react-i18n/index.min.js 623 B
build/react-refresh-entry/index.min.js 9.47 kB
build/react-refresh-runtime/index.min.js 6.78 kB
build/redux-routine/index.min.js 2.7 kB
build/reusable-blocks/index.min.js 2.72 kB
build/reusable-blocks/style-rtl.css 243 B
build/reusable-blocks/style.css 243 B
build/router/index.min.js 1.79 kB
build/server-side-render/index.min.js 1.95 kB
build/shortcode/index.min.js 1.39 kB
build/style-engine/index.min.js 2.08 kB
build/token-list/index.min.js 582 B
build/url/index.min.js 3.72 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 957 B
build/warning/index.min.js 249 B
build/widgets/index.min.js 7.21 kB
build/widgets/style-rtl.css 1.15 kB
build/widgets/style.css 1.16 kB
build/wordcount/index.min.js 1.02 kB

compressed-size-action

@andrewserong
Copy link
Contributor Author

Whoops! I missed that unit tests will need updating, too, I see the Cover block ones are failing now. I'll take a look 👀

@andrewserong
Copy link
Contributor Author

I missed that unit tests will need updating, too, I see the Cover block ones are failing now. I'll take a look 👀

Updated in f51fc73 — it turns out the tests depended on the bug, as they first created the block by selecting a colour from the default palette, which shouldn't have been rendered. That's fixed up now, and I believe this PR should be ready for review.

Copy link

github-actions bot commented Feb 9, 2024

Flaky tests detected in f51fc73.
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/7839380140
📝 Reported issues:

@noisysocks
Copy link
Member

Ensure this PR matches behaviour in the last major WordPress release. The regression has been around for a while, so a decent way to test is to toggle the Gutenberg plugin on and off in a test site. Try a few different themes, too, to check for consistency.

In WP 6.4 running TT4 without Gutenberg, toggling defaultPalette doesn't affect what colours appear in the Cover placeholder. In this branch, setting defaultPalette to true results in the default colours appearing alongside the theme colours.

Or is that intentional? 😅

@noisysocks
Copy link
Member

noisysocks commented Feb 12, 2024

I'm having difficulty working out what the intended behaviour of defaultPalette is exactly. The description in the theme.json schema is fairly vague:

"description": "Allow users to choose colors from the default palette.",

Based on #39966, it seems that the intention is that it only controls whether the default palette appears in this popover:

Default palette off Default palette on
Screenshot 2024-02-12 at 13 16 20 Screenshot 2024-02-12 at 13 16 33

(Both screenshots taken in an environment running WP 6.4 without the plugin.)

So I think what I noticed in #58869 (comment) is a bug/regression and that the placeholder should always only show theme colours.

@andrewserong
Copy link
Contributor Author

Or is that intentional? 😅

In the context of this PR, yes, that was my intention — it ensures the behaviour is consistent with the Background or Color panels where if the default palette is enabled, the default colors are available to choose from:

image

So I think what I noticed in #58869 (comment) is a bug/regression.

It's a good question, but I think the answer depends on what we think of the discussion from #55219 — prior to that PR (in 6.4), the palette was overridden by the colors provided in a theme. After that PR, all the origins' colors are available... so my intention with this PR was to try to get things consistent with how they currently behave in the other color pickers.

@andrewserong
Copy link
Contributor Author

Update: after discussing some of the ideas here with @noisysocks, I've pushed an update to the Cover block so that it'll only show the default color palette if there are no theme colors. So, in a site that has custom and theme colors, and with defaultPalette set to true, the Cover block's placeholder would look like this:

image

Some of the considerations thus far:

  • By default the ColorPalette component should reflect the overall idea of displaying everything that's currently available, while respecting the color.defaultPalette setting
  • For the Cover block's placeholder in particular, it looks pretty overwhelming to include both theme + default colors, so if theme colors are provided, only display those + custom colors
  • In other instances (e.g. text highlighting, the other color pickers) the default colors will display as normal, but while respecting the color.defaultPalette setting
  • Separately to this PR, it'd be good for the UI for highlighting text to be the same as the UI for picking text and background colors, with separate sections for the Custom, Theme, or Default colors, rather than lumping them all in together
  • The fix in this PR is going along with the spirit of the change made in Use all the settings origins for a block that consumes paths with merge. #55219 which combined the origins of all colors into the one output, while attempting to preserve the previous behaviour where themes can hide the default palette. In this case, this PR proposes that we always want to hide the default palette when color.defaultPalette is false. When it is true however, the Cover block is a likely exception where folks may not want all the colors available to be present in the placeholder. Note that a user will still be able to use the default palette in the Overlay color picker after selecting a color from the placeholder, so for sites that do use defaultPalette, users won't be blocked from using those colors.

@richtabor / @WordPress/gutenberg-design does this PR roughly match expected behaviour now?

Copy link
Contributor

@aaronrobertshaw aaronrobertshaw 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 working on this @andrewserong 👍

It's testing as advertised for me.

Given @noisysocks discussions with you it might be prudent to wait on his approval though.

Also, given we have some tests for the Cover block it might be good to lean into that and add one here around the available colors in the placeholder. What do you think?

@@ -318,7 +318,19 @@ function CoverEdit( {
const blockProps = useBlockProps( { ref } );

// Check for fontSize support before we pass a fontSize attribute to the innerBlocks.
Copy link
Contributor

Choose a reason for hiding this comment

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

Should we update this comment to reflect recent changes? There's a bit more going on now than just checking fontSize support.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Oh, yes, of course, I'll update this tomorrow 👍

@andrewserong
Copy link
Contributor Author

andrewserong commented Feb 12, 2024

Also, given we have some tests for the Cover block it might be good to lean into that and add one here around the available colors in the placeholder. What do you think?

Great idea. I'll let this PR simmer overnight, and then I'll add in another one for the new behaviour here 👍

@youknowriad youknowriad added the Backported to WP Core Pull request that has been successfully merged into WP Core label Feb 12, 2024
@andrewserong andrewserong added Backport to WP 6.7 Beta/RC Pull request that needs to be backported to the WordPress major release that's currently in beta and removed Backported to WP Core Pull request that has been successfully merged into WP Core labels Feb 13, 2024
@andrewserong
Copy link
Contributor Author

Update: from the discussion over in #55219 (comment), it sounds like folks might be considering going with reverting #55219, in which case we wouldn't need this fix in the shorter-term. Just in case, I've updated this PR with a few more tests, so that if the decision is not to revert that PR, we can still go with this fix.

Happy to either go with this, or close it out as needed!

@noisysocks
Copy link
Member

Let's see what comes of #58951 first.

@andrewserong
Copy link
Contributor Author

Closing in favour of #58951 since it has a few approving reviews. Assuming that one lands, I might open a follow-up PR that is fairly similar to this one, but an enhancement for 6.6 instead of a bug fix for 6.5. That is, to allow combined custom color + theme color buttons in the Cover block's placeholder, as with #58951 the custom color palette will override the theme color palette instead of the two being merged.

@youknowriad youknowriad removed the Backport to WP 6.7 Beta/RC Pull request that needs to be backported to the WordPress major release that's currently in beta label Feb 20, 2024
@youknowriad youknowriad deleted the fix/default-palette-setting-in-color-palette-component branch February 20, 2024 14:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Block] Cover Affects the Cover Block - used to display content laid over a background image [Feature] Colors Color management [Type] Regression Related to a regression in the latest release
Projects
No open projects
Status: Done
Development

Successfully merging this pull request may close these issues.

Default color presets rendering in the Cover block when defaultPalette is false
4 participants