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

Do not add to the block-library CSS bundle the colors that come from theme.json #33924

Merged
merged 5 commits into from
Aug 11, 2021

Conversation

oandregal
Copy link
Member

@oandregal oandregal commented Aug 6, 2021

This PR reduces the amount of CSS imported by the block-library package, to only the ones that are not defined by theme.json defaults.

Alternatives I've considered: remove the mixins background-colors, foreground-colors, gradient-colors. The reason I discarded this approach is that I understand it may be an API others use and we don't want to keep them in the base-styles package. Happy to reconsider if others think differently. Updated: they were removed as per this convo.

Test instructions

I'm using the emptytheme for this testing.

The following instructions work for both the front-end and the editor:

  • Go and inspect the contents of the wp-block-library-css stylesheet.
  • You should find that the deprecated colors & gradients are still availablet. For example, you should find the following CSS for the very-light-gray color:
:root .has-very-light-gray-background-color { background-color: #eee; }
:root .has-very-light-gray-color { color: #eee; }
  • The removed colors shouldn't be available. For example, in trunk, if you inspected the same stylesheet you should also find the CSS for the black color:
:root .has-black-background-color { background-color: #000; }
:root .has-black-color { color: #000; }

Follow-ups

@oandregal oandregal self-assigned this Aug 6, 2021
@oandregal oandregal added [Package] Base styles /packages/base-styles [Package] Block library /packages/block-library [Type] Performance Related to performance efforts labels Aug 6, 2021
@github-actions
Copy link

github-actions bot commented Aug 6, 2021

Size Change: -2.81 kB (0%)

Total Size: 1.03 MB

Filename Size Change
build/block-library/common-rtl.css 832 B -458 B (-36%) 🎉
build/block-library/common.css 830 B -458 B (-36%) 🎉
build/block-library/editor-rtl.css 9.38 kB -479 B (-5%)
build/block-library/editor.css 9.37 kB -477 B (-5%)
build/block-library/style-rtl.css 9.78 kB -467 B (-5%)
build/block-library/style.css 9.79 kB -466 B (-5%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 931 B
build/admin-manifest/index.min.js 1.09 kB
build/annotations/index.min.js 2.7 kB
build/api-fetch/index.min.js 2.19 kB
build/autop/index.min.js 2.08 kB
build/blob/index.min.js 459 B
build/block-directory/index.min.js 6.21 kB
build/block-directory/style-rtl.css 1.01 kB
build/block-directory/style.css 1.01 kB
build/block-editor/index.min.js 118 kB
build/block-editor/style-rtl.css 13.9 kB
build/block-editor/style.css 13.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 65 B
build/block-library/blocks/archives/style.css 65 B
build/block-library/blocks/audio/editor-rtl.css 58 B
build/block-library/blocks/audio/editor.css 58 B
build/block-library/blocks/audio/style-rtl.css 111 B
build/block-library/blocks/audio/style.css 111 B
build/block-library/blocks/audio/theme-rtl.css 125 B
build/block-library/blocks/audio/theme.css 125 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 474 B
build/block-library/blocks/button/editor.css 474 B
build/block-library/blocks/button/style-rtl.css 605 B
build/block-library/blocks/button/style.css 604 B
build/block-library/blocks/buttons/editor-rtl.css 315 B
build/block-library/blocks/buttons/editor.css 315 B
build/block-library/blocks/buttons/style-rtl.css 370 B
build/block-library/blocks/buttons/style.css 370 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 90 B
build/block-library/blocks/code/style.css 90 B
build/block-library/blocks/code/theme-rtl.css 131 B
build/block-library/blocks/code/theme.css 131 B
build/block-library/blocks/columns/editor-rtl.css 194 B
build/block-library/blocks/columns/editor.css 193 B
build/block-library/blocks/columns/style-rtl.css 474 B
build/block-library/blocks/columns/style.css 475 B
build/block-library/blocks/cover/editor-rtl.css 666 B
build/block-library/blocks/cover/editor.css 670 B
build/block-library/blocks/cover/style-rtl.css 1.23 kB
build/block-library/blocks/cover/style.css 1.23 kB
build/block-library/blocks/embed/editor-rtl.css 488 B
build/block-library/blocks/embed/editor.css 488 B
build/block-library/blocks/embed/style-rtl.css 400 B
build/block-library/blocks/embed/style.css 400 B
build/block-library/blocks/embed/theme-rtl.css 124 B
build/block-library/blocks/embed/theme.css 124 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 255 B
build/block-library/blocks/file/style.css 255 B
build/block-library/blocks/file/view.min.js 322 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 707 B
build/block-library/blocks/gallery/editor.css 706 B
build/block-library/blocks/gallery/style-rtl.css 1.05 kB
build/block-library/blocks/gallery/style.css 1.05 kB
build/block-library/blocks/gallery/theme-rtl.css 122 B
build/block-library/blocks/gallery/theme.css 122 B
build/block-library/blocks/group/editor-rtl.css 159 B
build/block-library/blocks/group/editor.css 159 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 93 B
build/block-library/blocks/group/theme.css 93 B
build/block-library/blocks/heading/editor-rtl.css 152 B
build/block-library/blocks/heading/editor.css 152 B
build/block-library/blocks/heading/style-rtl.css 76 B
build/block-library/blocks/heading/style.css 76 B
build/block-library/blocks/home-link/style-rtl.css 247 B
build/block-library/blocks/home-link/style.css 247 B
build/block-library/blocks/html/editor-rtl.css 283 B
build/block-library/blocks/html/editor.css 284 B
build/block-library/blocks/image/editor-rtl.css 728 B
build/block-library/blocks/image/editor.css 728 B
build/block-library/blocks/image/style-rtl.css 482 B
build/block-library/blocks/image/style.css 487 B
build/block-library/blocks/image/theme-rtl.css 124 B
build/block-library/blocks/image/theme.css 124 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 137 B
build/block-library/blocks/latest-posts/editor.css 137 B
build/block-library/blocks/latest-posts/style-rtl.css 528 B
build/block-library/blocks/latest-posts/style.css 527 B
build/block-library/blocks/list/style-rtl.css 63 B
build/block-library/blocks/list/style.css 63 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 488 B
build/block-library/blocks/media-text/style.css 485 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 474 B
build/block-library/blocks/navigation-link/editor.css 474 B
build/block-library/blocks/navigation-link/style-rtl.css 94 B
build/block-library/blocks/navigation-link/style.css 94 B
build/block-library/blocks/navigation/editor-rtl.css 1.69 kB
build/block-library/blocks/navigation/editor.css 1.69 kB
build/block-library/blocks/navigation/style-rtl.css 1.65 kB
build/block-library/blocks/navigation/style.css 1.64 kB
build/block-library/blocks/navigation/view.min.js 2.52 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 310 B
build/block-library/blocks/page-list/editor.css 310 B
build/block-library/blocks/page-list/style-rtl.css 242 B
build/block-library/blocks/page-list/style.css 242 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 248 B
build/block-library/blocks/paragraph/style.css 248 B
build/block-library/blocks/post-author/editor-rtl.css 210 B
build/block-library/blocks/post-author/editor.css 210 B
build/block-library/blocks/post-author/style-rtl.css 182 B
build/block-library/blocks/post-author/style.css 181 B
build/block-library/blocks/post-comments-form/style-rtl.css 140 B
build/block-library/blocks/post-comments-form/style.css 140 B
build/block-library/blocks/post-comments/style-rtl.css 360 B
build/block-library/blocks/post-comments/style.css 359 B
build/block-library/blocks/post-content/editor-rtl.css 138 B
build/block-library/blocks/post-content/editor.css 138 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 412 B
build/block-library/blocks/post-featured-image/editor.css 412 B
build/block-library/blocks/post-featured-image/style-rtl.css 143 B
build/block-library/blocks/post-featured-image/style.css 143 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 378 B
build/block-library/blocks/post-template/style.css 379 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 60 B
build/block-library/blocks/post-title/style.css 60 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 361 B
build/block-library/blocks/pullquote/style.css 360 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 270 B
build/block-library/blocks/query-pagination/editor.css 262 B
build/block-library/blocks/query-pagination/style-rtl.css 168 B
build/block-library/blocks/query-pagination/style.css 168 B
build/block-library/blocks/query-title/editor-rtl.css 85 B
build/block-library/blocks/query-title/editor.css 85 B
build/block-library/blocks/query/editor-rtl.css 131 B
build/block-library/blocks/query/editor.css 132 B
build/block-library/blocks/quote/style-rtl.css 169 B
build/block-library/blocks/quote/style.css 169 B
build/block-library/blocks/quote/theme-rtl.css 220 B
build/block-library/blocks/quote/theme.css 222 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 374 B
build/block-library/blocks/search/style.css 375 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 99 B
build/block-library/blocks/separator/editor.css 99 B
build/block-library/blocks/separator/style-rtl.css 250 B
build/block-library/blocks/separator/style.css 250 B
build/block-library/blocks/separator/theme-rtl.css 172 B
build/block-library/blocks/separator/theme.css 172 B
build/block-library/blocks/shortcode/editor-rtl.css 474 B
build/block-library/blocks/shortcode/editor.css 474 B
build/block-library/blocks/site-logo/editor-rtl.css 462 B
build/block-library/blocks/site-logo/editor.css 464 B
build/block-library/blocks/site-logo/style-rtl.css 153 B
build/block-library/blocks/site-logo/style.css 153 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 165 B
build/block-library/blocks/social-link/editor.css 165 B
build/block-library/blocks/social-links/editor-rtl.css 812 B
build/block-library/blocks/social-links/editor.css 811 B
build/block-library/blocks/social-links/style-rtl.css 1.33 kB
build/block-library/blocks/social-links/style.css 1.33 kB
build/block-library/blocks/spacer/editor-rtl.css 307 B
build/block-library/blocks/spacer/editor.css 307 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 471 B
build/block-library/blocks/table/editor.css 472 B
build/block-library/blocks/table/style-rtl.css 481 B
build/block-library/blocks/table/style.css 481 B
build/block-library/blocks/table/theme-rtl.css 188 B
build/block-library/blocks/table/theme.css 188 B
build/block-library/blocks/tag-cloud/style-rtl.css 146 B
build/block-library/blocks/tag-cloud/style.css 146 B
build/block-library/blocks/template-part/editor-rtl.css 636 B
build/block-library/blocks/template-part/editor.css 635 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/editor-rtl.css 90 B
build/block-library/blocks/term-description/editor.css 90 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 571 B
build/block-library/blocks/video/editor.css 572 B
build/block-library/blocks/video/style-rtl.css 173 B
build/block-library/blocks/video/style.css 173 B
build/block-library/blocks/video/theme-rtl.css 124 B
build/block-library/blocks/video/theme.css 124 B
build/block-library/index.min.js 146 kB
build/block-library/reset-rtl.css 527 B
build/block-library/reset.css 527 B
build/block-library/theme-rtl.css 688 B
build/block-library/theme.css 692 B
build/block-serialization-default-parser/index.min.js 1.09 kB
build/block-serialization-spec-parser/index.min.js 2.79 kB
build/blocks/index.min.js 47 kB
build/components/index.min.js 209 kB
build/components/style-rtl.css 15.7 kB
build/components/style.css 15.8 kB
build/compose/index.min.js 10.2 kB
build/core-data/index.min.js 12.3 kB
build/customize-widgets/index.min.js 10.4 kB
build/customize-widgets/style-rtl.css 1.5 kB
build/customize-widgets/style.css 1.49 kB
build/data-controls/index.min.js 614 B
build/data/index.min.js 7.03 kB
build/date/index.min.js 31.5 kB
build/deprecated/index.min.js 428 B
build/dom-ready/index.min.js 304 B
build/dom/index.min.js 4.53 kB
build/edit-navigation/index.min.js 13.4 kB
build/edit-navigation/style-rtl.css 3.1 kB
build/edit-navigation/style.css 3.1 kB
build/edit-post/classic-rtl.css 492 B
build/edit-post/classic.css 494 B
build/edit-post/index.min.js 28.4 kB
build/edit-post/style-rtl.css 7.18 kB
build/edit-post/style.css 7.17 kB
build/edit-site/index.min.js 25.8 kB
build/edit-site/style-rtl.css 5.01 kB
build/edit-site/style.css 5.01 kB
build/edit-widgets/index.min.js 15.9 kB
build/edit-widgets/style-rtl.css 4.01 kB
build/edit-widgets/style.css 4.02 kB
build/editor/index.min.js 37.5 kB
build/editor/style-rtl.css 3.92 kB
build/editor/style.css 3.91 kB
build/element/index.min.js 3.16 kB
build/escape-html/index.min.js 517 B
build/format-library/index.min.js 5.36 kB
build/format-library/style-rtl.css 668 B
build/format-library/style.css 669 B
build/hooks/index.min.js 1.55 kB
build/html-entities/index.min.js 424 B
build/i18n/index.min.js 3.59 kB
build/is-shallow-equal/index.min.js 501 B
build/keyboard-shortcuts/index.min.js 1.49 kB
build/keycodes/index.min.js 1.25 kB
build/list-reusable-blocks/index.min.js 1.85 kB
build/list-reusable-blocks/style-rtl.css 838 B
build/list-reusable-blocks/style.css 838 B
build/media-utils/index.min.js 2.88 kB
build/notices/index.min.js 845 B
build/nux/index.min.js 2.03 kB
build/nux/style-rtl.css 747 B
build/nux/style.css 743 B
build/plugins/index.min.js 1.83 kB
build/primitives/index.min.js 921 B
build/priority-queue/index.min.js 582 B
build/react-i18n/index.min.js 671 B
build/redux-routine/index.min.js 2.63 kB
build/reusable-blocks/index.min.js 2.28 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/rich-text/index.min.js 10.5 kB
build/server-side-render/index.min.js 1.32 kB
build/shortcode/index.min.js 1.48 kB
build/token-list/index.min.js 562 B
build/url/index.min.js 1.72 kB
build/viewport/index.min.js 1.02 kB
build/warning/index.min.js 248 B
build/widgets/index.min.js 6.27 kB
build/widgets/style-rtl.css 1.04 kB
build/widgets/style.css 1.04 kB
build/wordcount/index.min.js 1.04 kB

compressed-size-action

@jasmussen
Copy link
Contributor

The principle seems good to me. Is there anything specific you'd like feedback on or steps to test?

@oandregal
Copy link
Member Author

I'm mostly interested in confirming the direction makes sense for other folks (cc @youknowriad ).

I've added some testing instructions for this. I believe this is the only place where these are used but welcome double-check.

@jasmussen
Copy link
Contributor

Following your test steps, I can just confirm things work as expected. I can't fully wrap my head around any ill side effects, but trimming things always seems sensible to me.

@@ -55,13 +55,13 @@

:root .editor-styles-wrapper {
// Background colors.
@include background-colors();
Copy link
Contributor

Choose a reason for hiding this comment

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

Are these mixins still necessary/used somewhere? Should we remove them as well?

Copy link
Member Author

Choose a reason for hiding this comment

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

I haven't found any place where they're used. The reason I didn't remove them was that they're part of the base-styles package API so I'm not sure how do we want to go about that: do we want to keep them for third parties?

Copy link
Contributor

Choose a reason for hiding this comment

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

That's a development package, so I think you can just remove them and add a breaking change note to the changelog file

Copy link
Contributor

Choose a reason for hiding this comment

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

The question I have is what happens when you instantiate a default block editor instance (just JS no backend), will you get decent defaults for theme.json configs/palettes/styles... How does that work?

Copy link
Member Author

Choose a reason for hiding this comment

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

My understanding is that the block-editor was never concerned with providing the CSS for default colors, the CSS was there by other means.

Historically, that CSS was provided by the block-library and in current trunk is provided by the block-library and the server code for global styles. This PR removes the block-library CSS. It doesn't change anything for the block-editor. Is this your reading as well?

Copy link
Member Author

Choose a reason for hiding this comment

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

Removed the unused mixins at ce60eae Added a changelog note at dff2e85

Copy link
Contributor

Choose a reason for hiding this comment

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

This PR removes the block-library CSS. It doesn't change anything for the block-editor. Is this your reading as well?

It seems like you're right, though it does bother me a bit because block-library is something third-party editors can easily load but the theme.json CSS is not.

Take a look at the playground for instance https://wordpress.github.io/gutenberg/?path=/story/playground-block-editor--default

You can see that the block-library stylesheets are loaded there but with this PR they won't be. This won't break styles of the editor immediately because we add the "inline styles" for colors for backward compatibility but the classNames won't have any impact.


So it seems for me, this PR should be fine to land because it doesn't have a conceptual impact but it highlights one that we should tackle at some point. What should we do with the styles generated from theme.json: are these styles that the block editor should render based on its settings? Does the block editor work as it should without them? Should this style generation be baked or at least have a dedicated API/function in the frontend.

Copy link
Member Author

Choose a reason for hiding this comment

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

Ok, I'd need a 👍 to land this then.

Do we want to add a breaking change to the block-library changelog as well? It's not directly an "API" but it seems consumers would be expecting those styles anyway.

I can look at what you mention as a follow-up. I'm around that area with #32702 so can probably dig deeper.

Copy link
Member Author

Choose a reason for hiding this comment

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

Created an issue for it at #34005

Copy link
Contributor

Choose a reason for hiding this comment

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

Yeah, let's add the changelog mention and ship.

Copy link
Contributor

@youknowriad youknowriad left a comment

Choose a reason for hiding this comment

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

As long as it's backward compatible, that looks very good to me.

@oandregal
Copy link
Member Author

Also created #34006 to follow suit with font sizes.

@oandregal oandregal force-pushed the remove/colors-enqueued-by-theme-json branch from dff2e85 to 465777f Compare August 11, 2021 09:20
@oandregal oandregal merged commit 29cd8ed into trunk Aug 11, 2021
@oandregal oandregal deleted the remove/colors-enqueued-by-theme-json branch August 11, 2021 12:09
@github-actions github-actions bot added this to the Gutenberg 11.3 milestone Aug 11, 2021
@oandregal
Copy link
Member Author

It just occurred to me one case in which this breaks: classic themes that don't provide a palette.

Test case:

  • Activate the TwentyTwentyOne theme.
  • Open its functions.php file and comment these lines:
    • link color support: add_theme_support( 'experimental-link-color' );
    • editor color palette support: add_theme_support('editor-color-palette', ... );

This can be solved by outputting the classes we generate in such a case as well (we already output them if the theme declares support for link color). I'll prepare a fix.

@kraftner
Copy link

@nosolosw This also has a major impact for people using @wordpress/base-styles to build custom versions of the block styles for classic themes to trim them down e.g. in a site using only a minor subset of blocks.

For detailed posts on what I am talking about including use cases you can have a look at those 2 posts:

So while I do think that trimming styles down for themes using theme.json is a nice idea, it is way too early to completely remove those from @wordpress/base-styles, especially the mixins.

@oandregal
Copy link
Member Author

@nosolosw This also has a major impact for people using @wordpress/base-styles to build custom versions of the block styles for classic themes to trim them down e.g. in a site using only a minor subset of blocks.

Hi Thomas 👋 These are my thoughts: this is a step towards the goal of shipping the minimal CSS possible. The color classes aren't used by the block library directly. That we shipped them via the block-library was a coincidence as they are only needed in the block-editor package if, and only if, the theme doesn't provide theirs. I don't see how this has an impact on building custom versions of the block styles. Do you have concrete examples of things that break with this change?

When I created this PR, I wasn't convinced of removing the mixing from the base-style package. However, after this conversation, I understood that keeping them is problematic: we're not using them, so we can't promise to keep them up to date. It's best to look for alternative ways for the block-editor to have defaults #34005

@kraftner
Copy link

First: I totally agree with the goal of shipping the minimal CSS possible. So I am by no means against this, I am just thinking about backwards compatibility.

So, what I am currently doing (as detailed in the linked posts) is building custom versions of style.css and editor.css using the block-library package. The reason I do this is that some of the styles (e.g. the breakpoints for the column block) are too opinionated to blend in with the theme. Now, removing the colors from base-style means that just as @youknowriad pointed out this will break anybody relying on them being there. I have read that conversation but I have to admit for some reason I do not understand how this leads to the conclusion that removing it is fine.

All this is under the assumption that in a classic theme that doesn't include the default color styles in the theme CSS those blocks using them will now go unstyled, or am I getting something wrong here?

@oandregal
Copy link
Member Author

All this is under the assumption that in a classic theme that doesn't include the default color styles in the theme CSS those blocks using them will now go unstyled, or am I getting something wrong here?

Absolutely yes to this. I've already shared a test case at #33924 (comment) and I'm preparing a fix.

My question was if you have found additional things that broke (related to building custom blocks or any other thing) so I could look at them.

@kraftner
Copy link

Yeah, right, of course, you already mentioned that... 🤦

No, nothing else yet, but I have to admit that I haven't actually tried yet, just been thinking about it in theory since until here I've only cared about Core releases 😇

I'll try to find some time to do so. 🤞

@oandregal
Copy link
Member Author

Prepared follow-up for classic themes at #34067

@skorasaurus
Copy link
Member

I came across this and #34067
I thought they would solve #24684 but after testing out #34067 (which has these changes merged in) and reading it over more; global-styles-inline-css are still being loaded inline even though when support for gradients and custom colors are removed through theme.json like in this example,

that being carried out in a subsequent PR or that not possible because of the issues raised at #33924 (comment) ?

@oandregal
Copy link
Member Author

@skorasaurus I commented there #24684 (comment)

oandregal added a commit that referenced this pull request Aug 17, 2021
…ey are generated from `theme.json` (#33924)"

This reverts commit 29cd8ed.

There's one use case we need to fix before being able
to remove this code: support for classic themes that
use the default colors, whose classes wouldn't be longer enqueued.
@oandregal
Copy link
Member Author

I'm reverting this PR at #34108 so we still bundle the CSS for classic themes that use the default palette. I'm also closing #34067 as per feedback and will look for alternatives in the coming days.

oandregal pushed a commit that referenced this pull request Aug 17, 2021
)" (#34108)

This reverts commit 29cd8ed.

There's one use case we need to fix before being able to remove this code: support for classic themes that use the default colors, whose classes wouldn't be longer enqueued.
vcanales pushed a commit that referenced this pull request Aug 18, 2021
)" (#34108)

This reverts commit 29cd8ed.

There's one use case we need to fix before being able to remove this code: support for classic themes that use the default colors, whose classes wouldn't be longer enqueued.
@oandregal
Copy link
Member Author

Second try at #34510

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Package] Base styles /packages/base-styles [Package] Block library /packages/block-library [Type] Performance Related to performance efforts
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants