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: add onChange actions to color palette items #45681

Merged
merged 6 commits into from
Nov 23, 2022

Conversation

ramonjd
Copy link
Member

@ramonjd ramonjd commented Nov 9, 2022

What?

Resolves #44138

The PR opens the color picker when palette item is selected.

Renames the "Edit colors/gradients" label with "Show details" (suggestions for alternatives welcome).

How?

By inserting a new instance of the color picker popover.

We track the currently-edited color/gradient by its index in the colors/gradients collection. The collection is rendered to the page according to this index.

We need the index of the currently-edited color/gradient to ensure we're editing the correct item in the collection.

We can't check by value or slug because two or more items might share these values. This is why this PR also updates the color/gradient picker component to return the index of the item to the onChange callback. Using this value we can lookup the currently-edited item in the colors/gradients collection.

As a fallback, if index doesn't match an item OR the matched item's value does not equal the newly-chosen value, we just open the list view as before.

Why?

Before nothing happened when you clicked on a color or gradient option. Weird!

Testing Instructions

  1. Go to Site Editor → Global Styles
  2. Click Colors
  3. Open a palette
  4. Click on one of the colour circles

The color picker should show for the color you clicked on, and you should be able to adjust the color successfully.

Test it out with gradients too!

Screenshots or screencast

2022-11-17.15.37.37.mp4

@ramonjd ramonjd added [Type] Enhancement A suggestion for improvement. Global Styles Anything related to the broader Global Styles efforts, including Styles Engine and theme.json labels Nov 9, 2022
@ramonjd ramonjd self-assigned this Nov 9, 2022
@codesandbox
Copy link

codesandbox bot commented Nov 9, 2022

CodeSandbox logoCodeSandbox logo  Open in CodeSandbox Web Editor | VS Code | VS Code Insiders

@github-actions
Copy link

github-actions bot commented Nov 9, 2022

Size Change: +162 B (0%)

Total Size: 1.3 MB

Filename Size Change
build/components/index.min.js 203 kB +162 B (0%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 982 B
build/annotations/index.min.js 2.76 kB
build/api-fetch/index.min.js 2.26 kB
build/autop/index.min.js 2.14 kB
build/blob/index.min.js 475 B
build/block-directory/index.min.js 7.09 kB
build/block-directory/style-rtl.css 990 B
build/block-directory/style.css 991 B
build/block-editor/default-editor-styles-rtl.css 378 B
build/block-editor/default-editor-styles.css 378 B
build/block-editor/index.min.js 175 kB
build/block-editor/style-rtl.css 15.9 kB
build/block-editor/style.css 15.9 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 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 84 B
build/block-library/blocks/avatar/style.css 84 B
build/block-library/blocks/block/editor-rtl.css 161 B
build/block-library/blocks/block/editor.css 161 B
build/block-library/blocks/button/editor-rtl.css 482 B
build/block-library/blocks/button/editor.css 482 B
build/block-library/blocks/button/style-rtl.css 532 B
build/block-library/blocks/button/style.css 532 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 84 B
build/block-library/blocks/categories/editor.css 83 B
build/block-library/blocks/categories/style-rtl.css 100 B
build/block-library/blocks/categories/style.css 100 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 406 B
build/block-library/blocks/columns/style.css 406 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 612 B
build/block-library/blocks/cover/editor.css 613 B
build/block-library/blocks/cover/style-rtl.css 1.57 kB
build/block-library/blocks/cover/style.css 1.55 kB
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 126 B
build/block-library/blocks/embed/theme.css 126 B
build/block-library/blocks/file/editor-rtl.css 300 B
build/block-library/blocks/file/editor.css 300 B
build/block-library/blocks/file/style-rtl.css 253 B
build/block-library/blocks/file/style.css 254 B
build/block-library/blocks/file/view.min.js 346 B
build/block-library/blocks/freeform/editor-rtl.css 2.44 kB
build/block-library/blocks/freeform/editor.css 2.44 kB
build/block-library/blocks/gallery/editor-rtl.css 948 B
build/block-library/blocks/gallery/editor.css 950 B
build/block-library/blocks/gallery/style-rtl.css 1.53 kB
build/block-library/blocks/gallery/style.css 1.53 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 76 B
build/block-library/blocks/heading/style.css 76 B
build/block-library/blocks/html/editor-rtl.css 327 B
build/block-library/blocks/html/editor.css 329 B
build/block-library/blocks/image/editor-rtl.css 880 B
build/block-library/blocks/image/editor.css 880 B
build/block-library/blocks/image/style-rtl.css 627 B
build/block-library/blocks/image/style.css 630 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 298 B
build/block-library/blocks/latest-comments/style.css 298 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 507 B
build/block-library/blocks/media-text/style.css 505 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 712 B
build/block-library/blocks/navigation-link/editor.css 711 B
build/block-library/blocks/navigation-link/style-rtl.css 115 B
build/block-library/blocks/navigation-link/style.css 115 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.15 kB
build/block-library/blocks/navigation/editor.css 2.16 kB
build/block-library/blocks/navigation/style-rtl.css 2.21 kB
build/block-library/blocks/navigation/style.css 2.2 kB
build/block-library/blocks/navigation/view-modal.min.js 2.78 kB
build/block-library/blocks/navigation/view.min.js 443 B
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 363 B
build/block-library/blocks/page-list/editor.css 363 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 174 B
build/block-library/blocks/paragraph/editor.css 174 B
build/block-library/blocks/paragraph/style-rtl.css 279 B
build/block-library/blocks/paragraph/style.css 281 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 501 B
build/block-library/blocks/post-comments-form/style.css 501 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 73 B
build/block-library/blocks/post-excerpt/editor.css 73 B
build/block-library/blocks/post-excerpt/style-rtl.css 69 B
build/block-library/blocks/post-excerpt/style.css 69 B
build/block-library/blocks/post-featured-image/editor-rtl.css 586 B
build/block-library/blocks/post-featured-image/editor.css 584 B
build/block-library/blocks/post-featured-image/style-rtl.css 315 B
build/block-library/blocks/post-featured-image/style.css 315 B
build/block-library/blocks/post-navigation-link/style-rtl.css 153 B
build/block-library/blocks/post-navigation-link/style.css 153 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 282 B
build/block-library/blocks/post-template/style.css 282 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-title/style-rtl.css 100 B
build/block-library/blocks/post-title/style.css 100 B
build/block-library/blocks/preformatted/style-rtl.css 103 B
build/block-library/blocks/preformatted/style.css 103 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 326 B
build/block-library/blocks/pullquote/style.css 325 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 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 440 B
build/block-library/blocks/query/editor.css 440 B
build/block-library/blocks/quote/style-rtl.css 213 B
build/block-library/blocks/quote/style.css 213 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 132 B
build/block-library/blocks/read-more/style.css 132 B
build/block-library/blocks/rss/editor-rtl.css 202 B
build/block-library/blocks/rss/editor.css 204 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 165 B
build/block-library/blocks/search/editor.css 165 B
build/block-library/blocks/search/style-rtl.css 409 B
build/block-library/blocks/search/style.css 406 B
build/block-library/blocks/search/theme-rtl.css 114 B
build/block-library/blocks/search/theme.css 114 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 464 B
build/block-library/blocks/shortcode/editor.css 464 B
build/block-library/blocks/site-logo/editor-rtl.css 490 B
build/block-library/blocks/site-logo/editor.css 490 B
build/block-library/blocks/site-logo/style-rtl.css 203 B
build/block-library/blocks/site-logo/style.css 203 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 674 B
build/block-library/blocks/social-links/editor.css 673 B
build/block-library/blocks/social-links/style-rtl.css 1.4 kB
build/block-library/blocks/social-links/style.css 1.39 kB
build/block-library/blocks/spacer/editor-rtl.css 322 B
build/block-library/blocks/spacer/editor.css 322 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 505 B
build/block-library/blocks/table/editor.css 505 B
build/block-library/blocks/table/style-rtl.css 631 B
build/block-library/blocks/table/style.css 631 B
build/block-library/blocks/table/theme-rtl.css 172 B
build/block-library/blocks/table/theme.css 172 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 235 B
build/block-library/blocks/template-part/editor.css 235 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/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 87 B
build/block-library/blocks/verse/style.css 87 B
build/block-library/blocks/video/editor-rtl.css 691 B
build/block-library/blocks/video/editor.css 694 B
build/block-library/blocks/video/style-rtl.css 174 B
build/block-library/blocks/video/style.css 174 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 162 B
build/block-library/classic.css 162 B
build/block-library/common-rtl.css 1.02 kB
build/block-library/common.css 1.02 kB
build/block-library/editor-elements-rtl.css 75 B
build/block-library/editor-elements.css 75 B
build/block-library/editor-rtl.css 11.5 kB
build/block-library/editor.css 11.4 kB
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/index.min.js 194 kB
build/block-library/reset-rtl.css 478 B
build/block-library/reset.css 478 B
build/block-library/style-rtl.css 12.4 kB
build/block-library/style.css 12.4 kB
build/block-library/theme-rtl.css 704 B
build/block-library/theme.css 708 B
build/block-serialization-default-parser/index.min.js 1.12 kB
build/block-serialization-spec-parser/index.min.js 2.83 kB
build/blocks/index.min.js 49.9 kB
build/components/style-rtl.css 11.5 kB
build/components/style.css 11.5 kB
build/compose/index.min.js 12.2 kB
build/core-data/index.min.js 15.5 kB
build/customize-widgets/index.min.js 11.3 kB
build/customize-widgets/style-rtl.css 1.38 kB
build/customize-widgets/style.css 1.38 kB
build/data-controls/index.min.js 653 B
build/data/index.min.js 8.08 kB
build/date/index.min.js 32.1 kB
build/deprecated/index.min.js 507 B
build/dom-ready/index.min.js 324 B
build/dom/index.min.js 4.7 kB
build/edit-navigation/index.min.js 16.2 kB
build/edit-navigation/style-rtl.css 4.06 kB
build/edit-navigation/style.css 4.06 kB
build/edit-post/classic-rtl.css 546 B
build/edit-post/classic.css 547 B
build/edit-post/index.min.js 34.6 kB
build/edit-post/style-rtl.css 7.39 kB
build/edit-post/style.css 7.38 kB
build/edit-site/index.min.js 61.1 kB
build/edit-site/style-rtl.css 8.4 kB
build/edit-site/style.css 8.37 kB
build/edit-widgets/index.min.js 16.8 kB
build/edit-widgets/style-rtl.css 4.41 kB
build/edit-widgets/style.css 4.41 kB
build/editor/index.min.js 43.7 kB
build/editor/style-rtl.css 3.6 kB
build/editor/style.css 3.59 kB
build/element/index.min.js 4.68 kB
build/escape-html/index.min.js 537 B
build/experiments/index.min.js 868 B
build/format-library/index.min.js 6.95 kB
build/format-library/style-rtl.css 571 B
build/format-library/style.css 571 B
build/hooks/index.min.js 1.64 kB
build/html-entities/index.min.js 448 B
build/i18n/index.min.js 3.77 kB
build/is-shallow-equal/index.min.js 527 B
build/keyboard-shortcuts/index.min.js 1.78 kB
build/keycodes/index.min.js 1.83 kB
build/list-reusable-blocks/index.min.js 2.13 kB
build/list-reusable-blocks/style-rtl.css 835 B
build/list-reusable-blocks/style.css 835 B
build/media-utils/index.min.js 2.93 kB
build/notices/index.min.js 963 B
build/nux/index.min.js 2.06 kB
build/nux/style-rtl.css 732 B
build/nux/style.css 728 B
build/plugins/index.min.js 1.94 kB
build/preferences-persistence/index.min.js 2.22 kB
build/preferences/index.min.js 1.33 kB
build/primitives/index.min.js 944 B
build/priority-queue/index.min.js 1.58 kB
build/react-i18n/index.min.js 696 B
build/react-refresh-entry/index.min.js 8.44 kB
build/react-refresh-runtime/index.min.js 7.31 kB
build/redux-routine/index.min.js 2.74 kB
build/reusable-blocks/index.min.js 2.21 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/rich-text/index.min.js 10.7 kB
build/server-side-render/index.min.js 1.77 kB
build/shortcode/index.min.js 1.53 kB
build/style-engine/index.min.js 1.48 kB
build/token-list/index.min.js 644 B
build/url/index.min.js 3.61 kB
build/vendors/inert-polyfill.min.js 2.48 kB
build/vendors/react-dom.min.js 38.5 kB
build/vendors/react.min.js 4.34 kB
build/viewport/index.min.js 1.08 kB
build/warning/index.min.js 268 B
build/widgets/index.min.js 7.21 kB
build/widgets/style-rtl.css 1.18 kB
build/widgets/style.css 1.19 kB
build/wordcount/index.min.js 1.06 kB

compressed-size-action

@scruffian
Copy link
Contributor

If I can edit the theme colors when the list is closed, then what is the purpose of having the ability to "edit" the colors anymore?

@ramonjd
Copy link
Member Author

ramonjd commented Nov 9, 2022

If I can edit the theme colors when the list is closed, then what is the purpose of having the ability to "edit" the colors anymore?

Good question, something I didn't think of.

This is probably the advantage of @pbking's approach in #45657 - removing it completely.

I guess there's only the question of whether we need the "Edit" functionality for either PR 😄

@ramonjd
Copy link
Member Author

ramonjd commented Nov 10, 2022

Another idea to improve this PR from @scruffian and @SaxonF was to change the label of "Edit" to "List view" indicate that there's an alternative view (given that this PR allows direct editing of colors)

@scruffian
Copy link
Contributor

The benefit of the "edit" mode is that it shows a list of the items with names, so it is useful to be able to switch between states, but the label should be "List view" or similar, not edit.

@SaxonF

@scruffian
Copy link
Contributor

A couple of observations:

  1. When I click to edit, the view is switched from the circles to the list view. Is there a way to edit the colors without switching to the list view?
  2. Is there a better name than "list view". We already use that name for... the list view!

@ramonjd
Copy link
Member Author

ramonjd commented Nov 16, 2022

When I click to edit, the view is switched from the circles to the list view. Is there a way to edit the colors without switching to the list view?

Good idea. This would be better, I agree.

I've done some hacking and it looks possible, but it requires a bit of a refactor and will bloat this PR a bit.

I can take it as far as I can and we can assess.

Is there a better name than "list view". We already use that name for... the list view!

Hmm... If we allow edit in place then the list view becomes redundant, aside from showing the palette item names.

Maybe "Show color/gradient labels?" That's a bit wordy.

"Show more", "Show details", "Where is my thesaurus?"

@ramonjd
Copy link
Member Author

ramonjd commented Nov 16, 2022

When I click to edit, the view is switched from the circles to the list view. Is there a way to edit the colors without switching to the list view?
Is there a better name than "list view". We already use that name for... the list view!

I've taken a stab at this in 581ea0b

It's messy, but it seems to work 😄

@ramonjd ramonjd force-pushed the update/color-palette-global-styles-actions branch from 8922ea1 to 051b23f Compare November 17, 2022 04:52
@ramonjd ramonjd added the [Feature] Colors Color management label Nov 18, 2022
@noisysocks noisysocks added the Needs Design Feedback Needs general design feedback. label Nov 21, 2022
@noisysocks
Copy link
Member

noisysocks commented Nov 21, 2022

It works! Nice job.

It definitely feels nicer now that something happens when you click on a colour circle in Palette UI. It felt really broken before.

I do wonder if this makes changing an existing colour too easy. It's not something I expect users to do often. (I could be wrong?) It also greatly increases the likelihood that a colour is named incorrectly. For example, it's now really easy to set the "Pale pink" colour to be blue without renaming "Pale pink" to "Pale blue" or whatever.

Part of me wonders if we should just disable the button altogether so that it's a completely non-interactive colour circle until you enter edit mode.

What do you think @jasmussen?

@ramonjd
Copy link
Member Author

ramonjd commented Nov 21, 2022

Thanks for taking a look at this @noisysocks

I do wonder if this makes changing an existing colour too easy. It's not something I expect users to do often. (I could be wrong?) It also greatly increases the likelihood that a colour is named incorrectly. For example, it's now really easy to set the "Pale pink" colour to be blue without renaming "Pale pink" to "Pale blue" or whatever.

Good point. This would apply only to custom palettes though, right? That is, colors a user has already actively added. Maybe it's not as invasive (?)

Also, the commit history of this PR (see comment) has a version that opens the edit "list view" when clicking on a color, so maybe there's a compromise there.

Part of me wonders if we should just disable the button altogether so that it's a completely non-interactive colour circle until you enter edit mode.

Another valid option 😄 It's the apparent "clickability" that's causing confusion for me personally, so making it obvious that the palette options aren't to be clicked might also work.

@noisysocks
Copy link
Member

noisysocks commented Nov 21, 2022

Good point. This would apply only to custom palettes though, right? That is, colors a user has already actively added. Maybe it's not as invasive (?)

When I try this PR out locally you can edit all palettes not just the custom one. If we limited it to the custom palette then that would definitely alleviate my concern.

@ramonjd
Copy link
Member Author

ramonjd commented Nov 21, 2022

When I try this PR out locally you can edit all palettes not just the custom one. If we limited it to the custom palette then that would definitely alleviate my concern.

Sorry, my bad. My brain was thinking "changing the text label" and not the color. Withdraw my comment 😄

@jasmussen
Copy link
Contributor

It definitely feels nicer now that something happens when you click on a colour circle in Palette UI. It felt really broken before.

I would tend to agree, right now it feels really weird that I can select a spot color but then, nothing. As a small improvement, this seems like a step in the right direction.

But I do wonder: if the only remaining thing that the edit flow allows, is to rename colors, why not just show that? It's not a strong opinion, and by still gating it, it might make for a simpler experience in 80% of cases. CC: @mtias

@ramonjd
Copy link
Member Author

ramonjd commented Nov 22, 2022

if the only remaining thing that the edit flow allows, is to rename colors, why not just show that? It's not a strong opinion, and by still gating it, it might make for a simpler experience in 80% of cases.

I think renaming colors only applies for custom colors (?), so theme and default colors in edit mode allow editing colors.

The simplicity of #45657, which shows the editable list view all the time, appeals to me personally.

I think the only concern raised what that it has the potential to take up a fair thwack of real estate, and, as a consequence, remove the opportunity to add more items to the sidebar in that specific view.

As an example, here what I'm seeing in 2023 with a few custom colors:

The browser viewport height is 1100px

Copy link
Contributor

@scruffian scruffian left a comment

Choose a reason for hiding this comment

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

I think this is a good improvement. 🚢

@noisysocks
Copy link
Member

Yeah, way better than what's in trunk. Let's get this in and go from there.

@ramonjd ramonjd merged commit c86b545 into trunk Nov 23, 2022
@ramonjd ramonjd deleted the update/color-palette-global-styles-actions branch November 23, 2022 23:09
@github-actions github-actions bot added this to the Gutenberg 14.7 milestone Nov 23, 2022
@ciampo
Copy link
Contributor

ciampo commented Nov 25, 2022

👋 Hey there!

Would it be possible to bolster unit tests to PaletteEdit, especially after the changes from this PR? (we could add the missing CHANGELOG entry from this PR too!

@ciampo ciampo added the [Package] Components /packages/components label Nov 25, 2022
@ciampo ciampo added this to In progress (owned) ⏳ in WordPress Components via automation Nov 25, 2022
@ramonjd
Copy link
Member Author

ramonjd commented Nov 26, 2022

Would it be possible to bolster unit tests to PaletteEdit, especially after the changes from this PR? (we could add the missing CHANGELOG entry from this PR too!

I always forget the changelog! Thanks for the reminder 👍

ramonjd added a commit that referenced this pull request Nov 27, 2022
- Add changelog for changes merged in #45681
- Test case for Popover
ramonjd added a commit that referenced this pull request Dec 2, 2022
- Add changelog for changes merged in #45681
- Test case for Popover
ramonjd added a commit that referenced this pull request Dec 5, 2022
- Add changelog for changes merged in #45681
- Test case for Popover
ramonjd added a commit that referenced this pull request Dec 5, 2022
* Initial commit:
- Add changelog for changes merged in #45681
- Test case for Popover

* Change log entry

* Formatting

* Changelog formatting
Relying on existing control aria labels to test for the presence of gradient and color pickers rather than the container.

* Remove unnecessary async function dec

* Export no longer required

* Testing async queries using findByLabelText because the CI tests are failing (not local)

* Let's try this.

* Let's try this.

* What about this?

* Why not

* And so it continues

* Removing tests so we can debug them separately

* Reinstate test for color only. Gradient needs some async magic
mpkelly pushed a commit to mpkelly/gutenberg that referenced this pull request Dec 7, 2022
* Initial commit:
- Add changelog for changes merged in WordPress#45681
- Test case for Popover

* Change log entry

* Formatting

* Changelog formatting
Relying on existing control aria labels to test for the presence of gradient and color pickers rather than the container.

* Remove unnecessary async function dec

* Export no longer required

* Testing async queries using findByLabelText because the CI tests are failing (not local)

* Let's try this.

* Let's try this.

* What about this?

* Why not

* And so it continues

* Removing tests so we can debug them separately

* Reinstate test for color only. Gradient needs some async magic
@ramonjd ramonjd moved this from In progress (owned) ⏳ to Done 🎉 in WordPress Components Dec 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Feature] Colors Color management Global Styles Anything related to the broader Global Styles efforts, including Styles Engine and theme.json Needs Design Feedback Needs general design feedback. [Package] Components /packages/components [Type] Enhancement A suggestion for improvement.
Projects
Development

Successfully merging this pull request may close these issues.

Global Styles: Can't open Colour Picker by clicking on colour circle
5 participants