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

Add ability to unset duotone in themes with default duotone set #39564

Merged
merged 12 commits into from
Jun 20, 2022

Conversation

ajlende
Copy link
Contributor

@ajlende ajlende commented Mar 18, 2022

What?

Fixes #38504

Add option to disable theme duotone per-block.

Why?

Sometimes you may want to disable a theme-wide duotone filter.

How?

Adds a swatch to unset the duotone filter set by a theme.json.

Selecting the swatch saves 'unset' as the style.color.duotone attribute instead of an array of colors.

Testing Instructions

  1. Using a theme with default duotone set (Skatepark, Twenty Twenty-Two Mint, etc.) or adding the following to your theme if defaultDuotone is enabled.
    {
      "styles": {
        "blocks": {
          "core/image": {
            "filter": {
              "duotone": "var(--wp--preset--duotone--blue-and-red)"
            }
          }
        }
      }
    }
  2. In the post editor, add an image and unset the filter. View the saved post.
  3. In the site editor, add an image and unset the filter. View the saved page.

Screenshots or screencast

Screen recording of unsetting a global styles duotone filter.

unsetting a global styles duotone filter

The unset swatch in the dropdown.

unset swatch in the dropdown

The unset swatch in the toolbar.

unset swatch in the toolbar

@ajlende ajlende added the [Feature] Themes Questions or issues with incorporating or styling blocks in a theme. label Mar 18, 2022
@github-actions
Copy link

github-actions bot commented Mar 18, 2022

Size Change: +1.04 kB (0%)

Total Size: 1.24 MB

Filename Size Change
build/a11y/index.min.js 982 B -11 B (-1%)
build/annotations/index.min.js 2.73 kB -16 B (-1%)
build/api-fetch/index.min.js 2.26 kB -10 B (0%)
build/autop/index.min.js 2.14 kB -8 B (0%)
build/blob/index.min.js 475 B -12 B (-2%)
build/block-directory/index.min.js 6.58 kB +77 B (+1%)
build/block-directory/style-rtl.css 990 B -22 B (-2%)
build/block-directory/style.css 991 B -21 B (-2%)
build/block-editor/index.min.js 151 kB -108 B (0%)
build/block-editor/style-rtl.css 14.5 kB -42 B (0%)
build/block-editor/style.css 14.5 kB -43 B (0%)
build/block-library/blocks/audio/style-rtl.css 103 B -8 B (-7%)
build/block-library/blocks/audio/style.css 103 B -8 B (-7%)
build/block-library/blocks/audio/theme-rtl.css 110 B -15 B (-12%) 👏
build/block-library/blocks/audio/theme.css 110 B -15 B (-12%) 👏
build/block-library/blocks/button/editor-rtl.css 441 B -4 B (-1%)
build/block-library/blocks/button/editor.css 441 B -4 B (-1%)
build/block-library/blocks/button/style-rtl.css 514 B -2 B (0%)
build/block-library/blocks/button/style.css 514 B -2 B (0%)
build/block-library/blocks/cover/style-rtl.css 1.55 kB -7 B (0%)
build/block-library/blocks/cover/style.css 1.55 kB -7 B (0%)
build/block-library/blocks/embed/style-rtl.css 410 B -7 B (-2%)
build/block-library/blocks/embed/style.css 410 B -7 B (-2%)
build/block-library/blocks/embed/theme-rtl.css 110 B -14 B (-11%) 👏
build/block-library/blocks/embed/theme.css 110 B -14 B (-11%) 👏
build/block-library/blocks/file/view.min.js 346 B -7 B (-2%)
build/block-library/blocks/freeform/editor-rtl.css 2.44 kB -2 B (0%)
build/block-library/blocks/gallery/editor-rtl.css 948 B -13 B (-1%)
build/block-library/blocks/gallery/editor.css 950 B -14 B (-1%)
build/block-library/blocks/gallery/style-rtl.css 1.5 kB -19 B (-1%)
build/block-library/blocks/gallery/style.css 1.49 kB -19 B (-1%)
build/block-library/blocks/gallery/theme-rtl.css 108 B -14 B (-11%) 👏
build/block-library/blocks/gallery/theme.css 108 B -14 B (-11%) 👏
build/block-library/blocks/html/editor-rtl.css 327 B -5 B (-2%)
build/block-library/blocks/html/editor.css 329 B -4 B (-1%)
build/block-library/blocks/image/style-rtl.css 524 B -5 B (-1%)
build/block-library/blocks/image/style.css 530 B -5 B (-1%)
build/block-library/blocks/image/theme-rtl.css 110 B -14 B (-11%) 👏
build/block-library/blocks/image/theme.css 110 B -14 B (-11%) 👏
build/block-library/blocks/navigation-link/editor-rtl.css 705 B -3 B (0%)
build/block-library/blocks/navigation-link/editor.css 703 B -3 B (0%)
build/block-library/blocks/navigation-submenu/editor-rtl.css 296 B -3 B (-1%)
build/block-library/blocks/navigation-submenu/editor.css 295 B -4 B (-1%)
build/block-library/blocks/navigation/editor-rtl.css 2.03 kB -1 B (0%)
build/block-library/blocks/navigation/editor.css 2.04 kB +1 B (0%)
build/block-library/blocks/navigation/style-rtl.css 1.94 kB -10 B (-1%)
build/block-library/blocks/navigation/style.css 1.93 kB -9 B (0%)
build/block-library/blocks/navigation/view-modal.min.js 2.78 kB -2 B (0%)
build/block-library/blocks/navigation/view.min.js 393 B -2 B (-1%)
build/block-library/blocks/post-featured-image/editor-rtl.css 605 B -14 B (-2%)
build/block-library/blocks/post-featured-image/editor.css 605 B -14 B (-2%)
build/block-library/blocks/shortcode/editor-rtl.css 464 B -10 B (-2%)
build/block-library/blocks/shortcode/editor.css 464 B -10 B (-2%)
build/block-library/blocks/site-logo/editor-rtl.css 708 B -13 B (-2%)
build/block-library/blocks/site-logo/editor.css 708 B -13 B (-2%)
build/block-library/blocks/spacer/editor-rtl.css 322 B -10 B (-3%)
build/block-library/blocks/spacer/editor.css 322 B -10 B (-3%)
build/block-library/blocks/table/editor-rtl.css 494 B -10 B (-2%)
build/block-library/blocks/table/editor.css 494 B -10 B (-2%)
build/block-library/blocks/table/style-rtl.css 611 B -14 B (-2%)
build/block-library/blocks/table/style.css 609 B -16 B (-3%)
build/block-library/blocks/table/theme-rtl.css 175 B -13 B (-7%)
build/block-library/blocks/table/theme.css 175 B -13 B (-7%)
build/block-library/blocks/video/style-rtl.css 159 B -14 B (-8%)
build/block-library/blocks/video/style.css 159 B -14 B (-8%)
build/block-library/blocks/video/theme-rtl.css 110 B -14 B (-11%) 👏
build/block-library/blocks/video/theme.css 110 B -14 B (-11%) 👏
build/block-library/common-rtl.css 987 B -6 B (-1%)
build/block-library/common.css 984 B -6 B (-1%)
build/block-library/editor-rtl.css 10.2 kB -40 B (0%)
build/block-library/editor.css 10.2 kB -42 B (0%)
build/block-library/index.min.js 183 kB +1.84 kB (+1%)
build/block-library/style-rtl.css 11.5 kB -42 B (0%)
build/block-library/style.css 11.5 kB -44 B (0%)
build/block-library/theme-rtl.css 677 B -12 B (-2%)
build/block-library/theme.css 682 B -12 B (-2%)
build/block-serialization-default-parser/index.min.js 1.11 kB -8 B (-1%)
build/block-serialization-spec-parser/index.min.js 2.83 kB -1 B (0%)
build/blocks/index.min.js 46.9 kB -106 B (0%)
build/components/index.min.js 228 kB -66 B (0%)
build/components/style-rtl.css 14 kB +45 B (0%)
build/components/style.css 14 kB +48 B (0%)
build/compose/index.min.js 11.7 kB -7 B (0%)
build/core-data/index.min.js 14.5 kB -72 B (0%)
build/customize-widgets/index.min.js 11.2 kB -19 B (0%)
build/data-controls/index.min.js 653 B -10 B (-2%)
build/data/index.min.js 7.95 kB -29 B (0%)
build/date/index.min.js 32 kB -5 B (0%)
build/deprecated/index.min.js 507 B -11 B (-2%)
build/dom-ready/index.min.js 324 B -12 B (-4%)
build/dom/index.min.js 4.65 kB -34 B (-1%)
build/edit-navigation/index.min.js 16 kB -28 B (0%)
build/edit-navigation/style-rtl.css 4.03 kB -15 B (0%)
build/edit-navigation/style.css 4.04 kB -16 B (0%)
build/edit-post/index.min.js 30.4 kB -80 B (0%)
build/edit-post/style-rtl.css 7.05 kB -30 B (0%)
build/edit-post/style.css 7.05 kB -30 B (0%)
build/edit-site/index.min.js 47.9 kB -43 B (0%)
build/edit-site/style-rtl.css 7.69 kB -35 B (0%)
build/edit-site/style.css 7.67 kB -35 B (0%)
build/edit-widgets/index.min.js 16.4 kB -41 B (0%)
build/edit-widgets/style-rtl.css 4.39 kB -18 B (0%)
build/edit-widgets/style.css 4.38 kB -18 B (0%)
build/editor/index.min.js 38.1 kB -270 B (-1%)
build/editor/style-rtl.css 3.63 kB -26 B (-1%)
build/editor/style.css 3.62 kB -24 B (-1%)
build/element/index.min.js 4.26 kB -48 B (-1%)
build/escape-html/index.min.js 537 B -11 B (-2%)
build/format-library/index.min.js 6.6 kB -20 B (0%)
build/hooks/index.min.js 1.64 kB -28 B (-2%)
build/html-entities/index.min.js 448 B -6 B (-1%)
build/i18n/index.min.js 3.77 kB -17 B (0%)
build/is-shallow-equal/index.min.js 527 B -8 B (-1%)
build/keyboard-shortcuts/index.min.js 1.79 kB -9 B (0%)
build/keycodes/index.min.js 1.38 kB -36 B (-3%)
build/list-reusable-blocks/index.min.js 1.74 kB -4 B (0%)
build/media-utils/index.min.js 2.89 kB -9 B (0%)
build/notices/index.min.js 945 B -12 B (-1%)
build/nux/index.min.js 2.05 kB -15 B (-1%)
build/nux/style-rtl.css 732 B -12 B (-2%)
build/nux/style.css 728 B -13 B (-2%)
build/plugins/index.min.js 1.94 kB -41 B (-2%)
build/preferences-persistence/index.min.js 2.22 kB -9 B (0%)
build/preferences/index.min.js 1.3 kB -15 B (-1%)
build/primitives/index.min.js 933 B -16 B (-2%)
build/priority-queue/index.min.js 612 B -16 B (-3%)
build/react-i18n/index.min.js 696 B -8 B (-1%)
build/react-refresh-entry/index.min.js 8.44 kB -5 B (0%)
build/react-refresh-runtime/index.min.js 7.31 kB +2 B (0%)
build/redux-routine/index.min.js 2.69 kB -1 B (0%)
build/reusable-blocks/index.min.js 2.22 kB -27 B (-1%)
build/rich-text/index.min.js 11.1 kB -35 B (0%)
build/server-side-render/index.min.js 1.61 kB -1 B (0%)
build/shortcode/index.min.js 1.51 kB -9 B (-1%)
build/token-list/index.min.js 662 B -6 B (-1%)
build/url/index.min.js 3.61 kB +1.62 kB (+81%) 🆘
build/viewport/index.min.js 1.08 kB -8 B (-1%)
build/warning/index.min.js 268 B -12 B (-4%)
build/widgets/index.min.js 7.19 kB -13 B (0%)
build/widgets/style-rtl.css 1.16 kB -3 B (0%)
build/widgets/style.css 1.16 kB -3 B (0%)
build/wordcount/index.min.js 1.06 kB -5 B (0%)
ℹ️ View Unchanged
Filename Size
build/block-editor/default-editor-styles-rtl.css 378 B
build/block-editor/default-editor-styles.css 378 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 65 B
build/block-library/blocks/archives/style.css 65 B
build/block-library/blocks/audio/editor-rtl.css 150 B
build/block-library/blocks/audio/editor.css 150 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 59 B
build/block-library/blocks/avatar/style.css 59 B
build/block-library/blocks/block/editor-rtl.css 161 B
build/block-library/blocks/block/editor.css 161 B
build/block-library/blocks/buttons/editor-rtl.css 292 B
build/block-library/blocks/buttons/editor.css 292 B
build/block-library/blocks/buttons/style-rtl.css 275 B
build/block-library/blocks/buttons/style.css 275 B
build/block-library/blocks/calendar/style-rtl.css 207 B
build/block-library/blocks/calendar/style.css 207 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 79 B
build/block-library/blocks/categories/style.css 79 B
build/block-library/blocks/code/style-rtl.css 103 B
build/block-library/blocks/code/style.css 103 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 127 B
build/block-library/blocks/comment-template/style.css 127 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 95 B
build/block-library/blocks/comments/editor.css 95 B
build/block-library/blocks/cover/editor-rtl.css 615 B
build/block-library/blocks/cover/editor.css 616 B
build/block-library/blocks/embed/editor-rtl.css 293 B
build/block-library/blocks/embed/editor.css 293 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 252 B
build/block-library/blocks/file/style.css 253 B
build/block-library/blocks/freeform/editor.css 2.44 kB
build/block-library/blocks/group/editor-rtl.css 333 B
build/block-library/blocks/group/editor.css 333 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/image/editor-rtl.css 738 B
build/block-library/blocks/image/editor.css 737 B
build/block-library/blocks/latest-comments/style-rtl.css 284 B
build/block-library/blocks/latest-comments/style.css 284 B
build/block-library/blocks/latest-posts/editor-rtl.css 199 B
build/block-library/blocks/latest-posts/editor.css 198 B
build/block-library/blocks/latest-posts/style-rtl.css 463 B
build/block-library/blocks/latest-posts/style.css 462 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 493 B
build/block-library/blocks/media-text/style.css 490 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/style-rtl.css 115 B
build/block-library/blocks/navigation-link/style.css 115 B
build/block-library/blocks/navigation-submenu/view.min.js 375 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 157 B
build/block-library/blocks/paragraph/editor.css 157 B
build/block-library/blocks/paragraph/style-rtl.css 260 B
build/block-library/blocks/paragraph/style.css 260 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 69 B
build/block-library/blocks/post-comments-form/editor.css 69 B
build/block-library/blocks/post-comments-form/style-rtl.css 495 B
build/block-library/blocks/post-comments-form/style.css 495 B
build/block-library/blocks/post-comments/editor-rtl.css 77 B
build/block-library/blocks/post-comments/editor.css 77 B
build/block-library/blocks/post-comments/style-rtl.css 628 B
build/block-library/blocks/post-comments/style.css 628 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/style-rtl.css 153 B
build/block-library/blocks/post-featured-image/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 323 B
build/block-library/blocks/post-template/style.css 323 B
build/block-library/blocks/post-terms/style-rtl.css 73 B
build/block-library/blocks/post-terms/style.css 73 B
build/block-library/blocks/post-title/style-rtl.css 80 B
build/block-library/blocks/post-title/style.css 80 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 198 B
build/block-library/blocks/pullquote/editor.css 198 B
build/block-library/blocks/pullquote/style-rtl.css 370 B
build/block-library/blocks/pullquote/style.css 370 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 234 B
build/block-library/blocks/query-pagination/style.css 231 B
build/block-library/blocks/query/editor-rtl.css 369 B
build/block-library/blocks/query/editor.css 369 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 402 B
build/block-library/blocks/search/style.css 403 B
build/block-library/blocks/search/theme-rtl.css 64 B
build/block-library/blocks/search/theme.css 64 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 233 B
build/block-library/blocks/separator/style.css 233 B
build/block-library/blocks/separator/theme-rtl.css 194 B
build/block-library/blocks/separator/theme.css 194 B
build/block-library/blocks/site-logo/style-rtl.css 192 B
build/block-library/blocks/site-logo/style.css 192 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 84 B
build/block-library/blocks/site-title/editor.css 84 B
build/block-library/blocks/social-link/editor-rtl.css 177 B
build/block-library/blocks/social-link/editor.css 177 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.37 kB
build/block-library/blocks/social-links/style.css 1.36 kB
build/block-library/blocks/spacer/style-rtl.css 48 B
build/block-library/blocks/spacer/style.css 48 B
build/block-library/blocks/tag-cloud/style-rtl.css 226 B
build/block-library/blocks/tag-cloud/style.css 227 B
build/block-library/blocks/template-part/editor-rtl.css 149 B
build/block-library/blocks/template-part/editor.css 149 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 561 B
build/block-library/blocks/video/editor.css 563 B
build/block-library/reset-rtl.css 478 B
build/block-library/reset.css 478 B
build/customize-widgets/style-rtl.css 1.4 kB
build/customize-widgets/style.css 1.4 kB
build/edit-post/classic-rtl.css 546 B
build/edit-post/classic.css 547 B
build/format-library/style-rtl.css 571 B
build/format-library/style.css 571 B
build/list-reusable-blocks/style-rtl.css 835 B
build/list-reusable-blocks/style.css 835 B
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/vendors/react-dom.min.js 38.5 kB
build/vendors/react.min.js 4.34 kB

compressed-size-action

@ajlende ajlende force-pushed the add/duotone-unset branch from 3c246ea to 2b76d86 Compare March 21, 2022 18:47
@ajlende ajlende force-pushed the add/duotone-unset branch from 2b76d86 to 5aacb4d Compare April 15, 2022 05:21
@jasmussen
Copy link
Contributor

Alright, I pushed a small tweak that gets us to this:
unset duotone

Conceptually the "unset" icon is the same as these:
Screenshot 2022-04-15 at 10 14 49

Right now, however, the way that's built is a little hacky. I'll leave some comments in the code in a second to elaborate on that. But it means that the toolbar now looks like this, because technically that "unset" state isn't an icon:

Screenshot 2022-04-15 at 10 15 38

It could be, if it needed to be. Here's an icon version of it:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24" xml:space="preserve"><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zM3 12c0-5 4-9 9-9 2.2 0 4.3.8 5.8 2.2L5.2 17.8C3.8 16.3 3 14.2 3 12zm9 9c-2.4 0-4.5-.9-6.2-2.4L18.6 5.8C20.1 7.5 21 9.6 21 12c0 5-4 9-9 9z" style="fill-rule:evenodd;clip-rule:evenodd"/></svg>

... but there's a little more to it as well, specifically that the CircularOptionPicker is very outdated and should ideally be replaced with ColorIndicator (storybook). The component is old, it has a hover style that is inconsistent with other swatches, it's too big, and the checkmark when selected is not always legible. It als has a weird background texture when unset:
Screenshot 2022-04-15 at 10 06 03

Screenshot 2022-04-15 at 10 06 08

That's why I ended up going the way I did with the commit, adding the linear gradient background for now, and then hopefully if we can refactor to use ColorIndicator, some of these things would be cleaned up. Depending on your thoughts, these could then be next steps:

  1. See if the !important I removed from the CircularOptionPicker is okay to remove, and if not, then we should find a way to add !important to the inline code.
  2. Either set the existing swatch icon as the toolbar icon when the "unset" property is set, or add the separate unset icon above and use that.

@ajlende ajlende force-pushed the add/duotone-unset branch from ab3b254 to b724b79 Compare June 10, 2022 16:09
@ajlende ajlende force-pushed the add/duotone-unset branch from b724b79 to b067b00 Compare June 10, 2022 16:28
@ajlende ajlende self-assigned this Jun 10, 2022
@ajlende ajlende marked this pull request as ready for review June 10, 2022 17:40
@ajlende ajlende requested a review from scruffian June 10, 2022 17:43
@scruffian
Copy link
Contributor

This works as expected. When I don't have a filter on the image and I open the duotone option, the "no filter" option is highlighted, which is a bit confusing IMO:
Screenshot 2022-06-15 at 15 55 43

) }
{ ! disableCustomDuotone && (
<ColorListPicker
labels={ [ __( 'Shadows' ), __( 'Highlights' ) ] }
colors={ colorPalette }
value={ value }
value={ isUnset ? undefined : value }
Copy link
Contributor

Choose a reason for hiding this comment

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

We do this 3 times. Should we make it a variable?

Copy link
Contributor Author

@ajlende ajlende Jun 15, 2022

Choose a reason for hiding this comment

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

It's only used in two places—ColorListPicker and CustomDuotoneBar—and I can't think of a good name for what to call it that would make the code any more readable. Do you have a suggestion?

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 left a few nitpicks but it would be great to get this in.

@ajlende
Copy link
Contributor Author

ajlende commented Jun 15, 2022

This works as expected. When I don't have a filter on the image and I open the duotone option, the "no filter" option is highlighted, which is a bit confusing IMO:
Screenshot 2022-06-15 at 15 55 43

I can see how that would be confusing. That's the focus border for the swatch because it's the first focusable element in the dropdown. You don't see it in the color/gradient picker because there's usually something above it that gets the focus.

What do you think would be a good solution? Something needs to be focused for keyboard accessibility. Should the focus go to the second element—the fist colored swatch? Should the unset selector go to the end of the list? Or something else?

EDIT: linking up #34073 (comment) for easy access to the earlier discussion

@scruffian
Copy link
Contributor

Something needs to be focused for keyboard accessibility.

This does make sense, and I can't think of a better solution so I think leave it as it is.

Copy link
Contributor

@matiasbenedetto matiasbenedetto left a comment

Choose a reason for hiding this comment

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

I tested and it worked as expected 🚀

@ajlende ajlende merged commit 739f26f into trunk Jun 20, 2022
@ajlende ajlende deleted the add/duotone-unset branch June 20, 2022 15:53
@github-actions github-actions bot added this to the Gutenberg 13.6 milestone Jun 20, 2022
@femkreations femkreations added the Needs User Documentation Needs new user documentation label Sep 3, 2022
markjaquith pushed a commit to markjaquith/WordPress that referenced this pull request Sep 8, 2022
This add the ability to unset duotone in themes with default duotone set.

This commit backports the original PRs from Gutenberg repository:
* [WordPress/gutenberg#39564 #39564: Add ability to unset duotone in themes with default duotone set]
* [WordPress/gutenberg#42020 #42020: Remove: Unrequired regex search on duotone supports]

Follow-up to [50929], [52757].

Props ajlende, jorgefilipecosta, Joen, cbravobernal.
See #56467.
Built from https://develop.svn.wordpress.org/trunk@54101


git-svn-id: http://core.svn.wordpress.org/trunk@53660 1a063a9b-81f0-0310-95a4-ce76da25c4cd
github-actions bot pushed a commit to gilzow/wordpress-performance that referenced this pull request Sep 8, 2022
This add the ability to unset duotone in themes with default duotone set.

This commit backports the original PRs from Gutenberg repository:
* [WordPress/gutenberg#39564 #39564: Add ability to unset duotone in themes with default duotone set]
* [WordPress/gutenberg#42020 #42020: Remove: Unrequired regex search on duotone supports]

Follow-up to [50929], [52757].

Props ajlende, jorgefilipecosta, Joen, cbravobernal.
See #56467.
Built from https://develop.svn.wordpress.org/trunk@54101


git-svn-id: https://core.svn.wordpress.org/trunk@53660 1a063a9b-81f0-0310-95a4-ce76da25c4cd
pbearne pushed a commit to pbearne/wordpress-develop that referenced this pull request Sep 9, 2022
This add the ability to unset duotone in themes with default duotone set.

This commit backports the original PRs from Gutenberg repository:
* [WordPress/gutenberg#39564 #39564: Add ability to unset duotone in themes with default duotone set]
* [WordPress/gutenberg#42020 #42020: Remove: Unrequired regex search on duotone supports]

Follow-up to [50929], [52757].

Props ajlende, jorgefilipecosta, Joen, cbravobernal.
See #56467.

git-svn-id: https://develop.svn.wordpress.org/trunk@54101 602fd350-edb4-49c9-b593-d223f7449a82
@mburridge mburridge added the Needs Dev Note Requires a developer note for a major WordPress release cycle label Sep 14, 2022
@mburridge
Copy link
Contributor

Added the Needs Dev Note label in case this needs a dev note (either individual or as part of a "misc" dev note) for WP 6.1 release.

whereiscodedude pushed a commit to whereiscodedude/wpss that referenced this pull request Sep 18, 2022
This add the ability to unset duotone in themes with default duotone set.

This commit backports the original PRs from Gutenberg repository:
* [WordPress/gutenberg#39564 #39564: Add ability to unset duotone in themes with default duotone set]
* [WordPress/gutenberg#42020 #42020: Remove: Unrequired regex search on duotone supports]

Follow-up to [50929], [52757].

Props ajlende, jorgefilipecosta, Joen, cbravobernal.
See #56467.
Built from https://develop.svn.wordpress.org/trunk@54101
@bph bph mentioned this pull request Oct 3, 2022
89 tasks
@bph bph removed the Needs Dev Note Requires a developer note for a major WordPress release cycle label Oct 11, 2022
@bph
Copy link
Contributor

bph commented Oct 11, 2022

Removed needs dev note. It's a UI change and not relevant for developers.

ootwch pushed a commit to ootwch/wordpress-develop that referenced this pull request Nov 4, 2022
This add the ability to unset duotone in themes with default duotone set.

This commit backports the original PRs from Gutenberg repository:
* [WordPress/gutenberg#39564 #39564: Add ability to unset duotone in themes with default duotone set]
* [WordPress/gutenberg#42020 #42020: Remove: Unrequired regex search on duotone supports]

Follow-up to [50929], [52757].

Props ajlende, jorgefilipecosta, Joen, cbravobernal.
See #56467.

git-svn-id: https://develop.svn.wordpress.org/trunk@54101 602fd350-edb4-49c9-b593-d223f7449a82
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Feature] Themes Questions or issues with incorporating or styling blocks in a theme. Needs User Documentation Needs new user documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Unset duotone filters defined in theme.json per block
7 participants