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

Components: Add extra specific CSS #30205

Closed
wants to merge 5 commits into from
Closed

Conversation

scruffian
Copy link
Contributor

@scruffian scruffian commented Mar 24, 2021

closes #10178

Description

Adds extra specific CSS to component buttons so that themes don't override it.

How has this been tested?

Screenshots

Screenshot 2021-03-24 at 17 25 43

Checklist:

  • My code is tested.
  • My code follows the WordPress code style.
  • My code follows the accessibility standards.
  • I've tested my changes with keyboard and screen readers.
  • My code has proper inline documentation.
  • I've included developer documentation if appropriate.
  • I've updated all React Native files affected by any refactorings/renamings in this PR.

width: revert;
-webkit-appearance: none;
word-break: revert;
word-spacing: revert;
Copy link
Contributor

Choose a reason for hiding this comment

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

can we separate the "revert" styles from the styles that are actually useful to style the button and add a comment explaining why all the reverts are necessary?

Copy link
Contributor

@youknowriad youknowriad Mar 24, 2021

Choose a reason for hiding this comment

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

I actually I feel we should remove the "revert" styles entirely from here and have them in the "reset.css" (I added them here #30176 ). I think if you combine these two PRs, these reverts are not needed anymore here.

Copy link
Contributor

Choose a reason for hiding this comment

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

(still hesitant on this, after landing #30176 we'll get more clarity)

Copy link
Contributor

@MaggieCabrera MaggieCabrera left a comment

Choose a reason for hiding this comment

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

When I add a column block the + symbols are no longer centered:

Screenshot 2021-03-24 at 18 32 15

@MaggieCabrera
Copy link
Contributor

The classic block looks pretty funky :D

Screenshot 2021-03-24 at 18 33 33

@youknowriad
Copy link
Contributor

@MaggieCabrera This PR doesn't address the classic block at all because these buttons are not .components-button, they are buttons rendered by TinyMCE. A similar approach should be taken to these and styles added to editor.scss of the classic block.

@github-actions
Copy link

github-actions bot commented Mar 24, 2021

Size Change: +7.65 kB (+1%)

Total Size: 1.43 MB

Filename Size Change
build/annotations/index.js 3.79 kB +3 B (0%)
build/autop/index.js 2.82 kB +7 B (0%)
build/blob/index.js 665 B +1 B (0%)
build/block-directory/index.js 8.63 kB +1 B (0%)
build/block-editor/index.js 127 kB +6 B (0%)
build/block-editor/style-rtl.css 12.5 kB +69 B (+1%)
build/block-editor/style.css 12.5 kB +69 B (+1%)
build/block-library/blocks/button/style-rtl.css 503 B +14 B (+3%)
build/block-library/blocks/button/style.css 503 B +15 B (+3%)
build/block-library/blocks/cover/style-rtl.css 1.23 kB -11 B (-1%)
build/block-library/blocks/cover/style.css 1.23 kB -12 B (-1%)
build/block-library/blocks/freeform/editor-rtl.css 2.47 kB +26 B (+1%)
build/block-library/blocks/freeform/editor.css 2.48 kB +26 B (+1%)
build/block-library/blocks/gallery/style-rtl.css 1.09 kB -14 B (-1%)
build/block-library/blocks/gallery/style.css 1.09 kB -15 B (-1%)
build/block-library/blocks/navigation-link/style-rtl.css 1.07 kB +117 B (+12%) ⚠️
build/block-library/blocks/navigation-link/style.css 1.07 kB +118 B (+12%) ⚠️
build/block-library/blocks/navigation/editor-rtl.css 1.25 kB +118 B (+10%) ⚠️
build/block-library/blocks/navigation/editor.css 1.25 kB +116 B (+10%) ⚠️
build/block-library/blocks/page-list/editor-rtl.css 239 B +69 B (+41%) 🚨
build/block-library/blocks/page-list/editor.css 240 B +70 B (+41%) 🚨
build/block-library/blocks/site-logo/editor-rtl.css 438 B +237 B (+118%) 🆘
build/block-library/blocks/site-logo/editor.css 438 B +237 B (+118%) 🆘
build/block-library/blocks/site-logo/style-rtl.css 150 B +35 B (+30%) 🚨
build/block-library/blocks/site-logo/style.css 150 B +35 B (+30%) 🚨
build/block-library/blocks/spacer/editor-rtl.css 308 B -9 B (-3%)
build/block-library/blocks/spacer/editor.css 308 B -9 B (-3%)
build/block-library/blocks/video/style-rtl.css 173 B -14 B (-7%)
build/block-library/blocks/video/style.css 173 B -14 B (-7%)
build/block-library/editor-rtl.css 9.8 kB +264 B (+3%)
build/block-library/editor.css 9.79 kB +262 B (+3%)
build/block-library/index.js 153 kB +1.16 kB (+1%)
build/block-library/reset-rtl.css 502 B -1 B (0%)
build/block-library/reset.css 503 B -1 B (0%)
build/block-library/style-rtl.css 9.38 kB +173 B (+2%)
build/block-library/style.css 9.38 kB +169 B (+2%)
build/block-serialization-default-parser/index.js 1.87 kB -4 B (0%)
build/blocks/index.js 48.5 kB +103 B (0%)
build/components/index.js 286 kB +2.13 kB (+1%)
build/components/style-rtl.css 17.2 kB +915 B (+6%) 🔍
build/components/style.css 17.2 kB +915 B (+6%) 🔍
build/compose/index.js 11.2 kB -1 B (0%)
build/core-data/index.js 17.1 kB +132 B (+1%)
build/customize-widgets/index.js 7.09 kB -187 B (-3%)
build/customize-widgets/style-rtl.css 630 B -46 B (-7%)
build/customize-widgets/style.css 631 B -46 B (-7%)
build/data-controls/index.js 839 B +4 B (0%)
build/data/index.js 8.88 kB -8 B (0%)
build/date/index.js 31.9 kB +5 B (0%)
build/dom/index.js 5.19 kB +89 B (+2%)
build/edit-navigation/index.js 17 kB -4 B (0%)
build/edit-navigation/style-rtl.css 2.86 kB -4 B (0%)
build/edit-navigation/style.css 2.86 kB -5 B (0%)
build/edit-post/index.js 307 kB +698 B (0%)
build/edit-post/style-rtl.css 6.92 kB -216 B (-3%)
build/edit-post/style.css 6.91 kB -216 B (-3%)
build/edit-site/index.js 28 kB -32 B (0%)
build/edit-site/style-rtl.css 4.61 kB -4 B (0%)
build/edit-site/style.css 4.6 kB -5 B (0%)
build/edit-widgets/index.js 15.7 kB -8 B (0%)
build/edit-widgets/style-rtl.css 2.97 kB -4 B (0%)
build/edit-widgets/style.css 2.98 kB -4 B (0%)
build/editor/index.js 42.4 kB +198 B (0%)
build/editor/style-rtl.css 3.92 kB -34 B (-1%)
build/editor/style.css 3.92 kB -35 B (-1%)
build/element/index.js 4.62 kB -2 B (0%)
build/format-library/index.js 6.76 kB +3 B (0%)
build/hooks/index.js 2.28 kB +1 B (0%)
build/html-entities/index.js 623 B +1 B (0%)
build/i18n/index.js 4.01 kB -2 B (0%)
build/keyboard-shortcuts/index.js 2.53 kB -1 B (0%)
build/keycodes/index.js 1.96 kB +2 B (0%)
build/media-utils/index.js 5.38 kB -1 B (0%)
build/notices/index.js 1.86 kB +1 B (0%)
build/nux/index.js 3.42 kB -2 B (0%)
build/plugins/index.js 2.95 kB +2 B (0%)
build/priority-queue/index.js 790 B -1 B (0%)
build/react-i18n/index.js 1.46 kB -1 B (0%)
build/redux-routine/index.js 2.84 kB +1 B (0%)
build/reusable-blocks/index.js 3.79 kB +2 B (0%)
build/server-side-render/index.js 2.6 kB +14 B (+1%)
build/shortcode/index.js 1.7 kB -2 B (0%)
build/token-list/index.js 1.27 kB -1 B (0%)
build/url/index.js 3.02 kB -1 B (0%)
build/viewport/index.js 1.86 kB -1 B (0%)
ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.14 kB 0 B
build/api-fetch/index.js 3.41 kB 0 B
build/block-directory/style-rtl.css 1 kB 0 B
build/block-directory/style.css 1.01 kB 0 B
build/block-library/blocks/archives/editor-rtl.css 61 B 0 B
build/block-library/blocks/archives/editor.css 60 B 0 B
build/block-library/blocks/audio/editor-rtl.css 58 B 0 B
build/block-library/blocks/audio/editor.css 58 B 0 B
build/block-library/blocks/audio/style-rtl.css 112 B 0 B
build/block-library/blocks/audio/style.css 112 B 0 B
build/block-library/blocks/block/editor-rtl.css 161 B 0 B
build/block-library/blocks/block/editor.css 161 B 0 B
build/block-library/blocks/button/editor-rtl.css 475 B 0 B
build/block-library/blocks/button/editor.css 474 B 0 B
build/block-library/blocks/buttons/editor-rtl.css 315 B 0 B
build/block-library/blocks/buttons/editor.css 315 B 0 B
build/block-library/blocks/buttons/style-rtl.css 364 B 0 B
build/block-library/blocks/buttons/style.css 363 B 0 B
build/block-library/blocks/calendar/style-rtl.css 208 B 0 B
build/block-library/blocks/calendar/style.css 208 B 0 B
build/block-library/blocks/categories/editor-rtl.css 84 B 0 B
build/block-library/blocks/categories/editor.css 83 B 0 B
build/block-library/blocks/categories/style-rtl.css 79 B 0 B
build/block-library/blocks/categories/style.css 79 B 0 B
build/block-library/blocks/code/style-rtl.css 90 B 0 B
build/block-library/blocks/code/style.css 90 B 0 B
build/block-library/blocks/columns/editor-rtl.css 190 B 0 B
build/block-library/blocks/columns/editor.css 190 B 0 B
build/block-library/blocks/columns/style-rtl.css 436 B 0 B
build/block-library/blocks/columns/style.css 435 B 0 B
build/block-library/blocks/cover/editor-rtl.css 605 B 0 B
build/block-library/blocks/cover/editor.css 605 B 0 B
build/block-library/blocks/embed/editor-rtl.css 486 B 0 B
build/block-library/blocks/embed/editor.css 486 B 0 B
build/block-library/blocks/embed/style-rtl.css 401 B 0 B
build/block-library/blocks/embed/style.css 400 B 0 B
build/block-library/blocks/file/editor-rtl.css 175 B 0 B
build/block-library/blocks/file/editor.css 174 B 0 B
build/block-library/blocks/file/style-rtl.css 248 B 0 B
build/block-library/blocks/file/style.css 248 B 0 B
build/block-library/blocks/gallery/editor-rtl.css 704 B 0 B
build/block-library/blocks/gallery/editor.css 705 B 0 B
build/block-library/blocks/group/editor-rtl.css 160 B 0 B
build/block-library/blocks/group/editor.css 160 B 0 B
build/block-library/blocks/group/style-rtl.css 57 B 0 B
build/block-library/blocks/group/style.css 57 B 0 B
build/block-library/blocks/heading/editor-rtl.css 129 B 0 B
build/block-library/blocks/heading/editor.css 129 B 0 B
build/block-library/blocks/heading/style-rtl.css 76 B 0 B
build/block-library/blocks/heading/style.css 76 B 0 B
build/block-library/blocks/html/editor-rtl.css 281 B 0 B
build/block-library/blocks/html/editor.css 281 B 0 B
build/block-library/blocks/image/editor-rtl.css 717 B 0 B
build/block-library/blocks/image/editor.css 716 B 0 B
build/block-library/blocks/image/style-rtl.css 476 B 0 B
build/block-library/blocks/image/style.css 478 B 0 B
build/block-library/blocks/latest-comments/style-rtl.css 281 B 0 B
build/block-library/blocks/latest-comments/style.css 282 B 0 B
build/block-library/blocks/latest-posts/editor-rtl.css 137 B 0 B
build/block-library/blocks/latest-posts/editor.css 137 B 0 B
build/block-library/blocks/latest-posts/style-rtl.css 523 B 0 B
build/block-library/blocks/latest-posts/style.css 522 B 0 B
build/block-library/blocks/legacy-widget/editor-rtl.css 398 B 0 B
build/block-library/blocks/legacy-widget/editor.css 399 B 0 B
build/block-library/blocks/list/style-rtl.css 63 B 0 B
build/block-library/blocks/list/style.css 63 B 0 B
build/block-library/blocks/media-text/editor-rtl.css 191 B 0 B
build/block-library/blocks/media-text/editor.css 191 B 0 B
build/block-library/blocks/media-text/style-rtl.css 535 B 0 B
build/block-library/blocks/media-text/style.css 532 B 0 B
build/block-library/blocks/more/editor-rtl.css 434 B 0 B
build/block-library/blocks/more/editor.css 434 B 0 B
build/block-library/blocks/navigation-link/editor-rtl.css 597 B 0 B
build/block-library/blocks/navigation-link/editor.css 597 B 0 B
build/block-library/blocks/navigation/style-rtl.css 204 B 0 B
build/block-library/blocks/navigation/style.css 205 B 0 B
build/block-library/blocks/nextpage/editor-rtl.css 395 B 0 B
build/block-library/blocks/nextpage/editor.css 395 B 0 B
build/block-library/blocks/page-list/style-rtl.css 167 B 0 B
build/block-library/blocks/page-list/style.css 167 B 0 B
build/block-library/blocks/paragraph/editor-rtl.css 157 B 0 B
build/block-library/blocks/paragraph/editor.css 157 B 0 B
build/block-library/blocks/paragraph/style-rtl.css 247 B 0 B
build/block-library/blocks/paragraph/style.css 248 B 0 B
build/block-library/blocks/post-author/editor-rtl.css 209 B 0 B
build/block-library/blocks/post-author/editor.css 209 B 0 B
build/block-library/blocks/post-author/style-rtl.css 183 B 0 B
build/block-library/blocks/post-author/style.css 184 B 0 B
build/block-library/blocks/post-comments-form/style-rtl.css 250 B 0 B
build/block-library/blocks/post-comments-form/style.css 250 B 0 B
build/block-library/blocks/post-content/editor-rtl.css 139 B 0 B
build/block-library/blocks/post-content/editor.css 139 B 0 B
build/block-library/blocks/post-excerpt/editor-rtl.css 73 B 0 B
build/block-library/blocks/post-excerpt/editor.css 73 B 0 B
build/block-library/blocks/post-excerpt/style-rtl.css 69 B 0 B
build/block-library/blocks/post-excerpt/style.css 69 B 0 B
build/block-library/blocks/post-featured-image/editor-rtl.css 338 B 0 B
build/block-library/blocks/post-featured-image/editor.css 338 B 0 B
build/block-library/blocks/post-featured-image/style-rtl.css 100 B 0 B
build/block-library/blocks/post-featured-image/style.css 100 B 0 B
build/block-library/blocks/preformatted/style-rtl.css 103 B 0 B
build/block-library/blocks/preformatted/style.css 103 B 0 B
build/block-library/blocks/pullquote/editor-rtl.css 183 B 0 B
build/block-library/blocks/pullquote/editor.css 183 B 0 B
build/block-library/blocks/pullquote/style-rtl.css 318 B 0 B
build/block-library/blocks/pullquote/style.css 318 B 0 B
build/block-library/blocks/query-loop/editor-rtl.css 83 B 0 B
build/block-library/blocks/query-loop/editor.css 82 B 0 B
build/block-library/blocks/query-loop/style-rtl.css 315 B 0 B
build/block-library/blocks/query-loop/style.css 317 B 0 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 122 B 0 B
build/block-library/blocks/query-pagination-numbers/editor.css 121 B 0 B
build/block-library/blocks/query-pagination/editor-rtl.css 270 B 0 B
build/block-library/blocks/query-pagination/editor.css 262 B 0 B
build/block-library/blocks/query-pagination/style-rtl.css 168 B 0 B
build/block-library/blocks/query-pagination/style.css 168 B 0 B
build/block-library/blocks/query-title/editor-rtl.css 86 B 0 B
build/block-library/blocks/query-title/editor.css 86 B 0 B
build/block-library/blocks/query/editor-rtl.css 795 B 0 B
build/block-library/blocks/query/editor.css 794 B 0 B
build/block-library/blocks/quote/style-rtl.css 169 B 0 B
build/block-library/blocks/quote/style.css 169 B 0 B
build/block-library/blocks/rss/editor-rtl.css 201 B 0 B
build/block-library/blocks/rss/editor.css 202 B 0 B
build/block-library/blocks/rss/style-rtl.css 290 B 0 B
build/block-library/blocks/rss/style.css 290 B 0 B
build/block-library/blocks/search/editor-rtl.css 189 B 0 B
build/block-library/blocks/search/editor.css 189 B 0 B
build/block-library/blocks/search/style-rtl.css 359 B 0 B
build/block-library/blocks/search/style.css 362 B 0 B
build/block-library/blocks/separator/editor-rtl.css 99 B 0 B
build/block-library/blocks/separator/editor.css 99 B 0 B
build/block-library/blocks/separator/style-rtl.css 251 B 0 B
build/block-library/blocks/separator/style.css 251 B 0 B
build/block-library/blocks/shortcode/editor-rtl.css 512 B 0 B
build/block-library/blocks/shortcode/editor.css 512 B 0 B
build/block-library/blocks/social-link/editor-rtl.css 164 B 0 B
build/block-library/blocks/social-link/editor.css 165 B 0 B
build/block-library/blocks/social-links/editor-rtl.css 776 B 0 B
build/block-library/blocks/social-links/editor.css 776 B 0 B
build/block-library/blocks/social-links/style-rtl.css 1.32 kB 0 B
build/block-library/blocks/social-links/style.css 1.33 kB 0 B
build/block-library/blocks/spacer/style-rtl.css 48 B 0 B
build/block-library/blocks/spacer/style.css 48 B 0 B
build/block-library/blocks/table/editor-rtl.css 478 B 0 B
build/block-library/blocks/table/editor.css 478 B 0 B
build/block-library/blocks/table/style-rtl.css 402 B 0 B
build/block-library/blocks/table/style.css 402 B 0 B
build/block-library/blocks/tag-cloud/editor-rtl.css 118 B 0 B
build/block-library/blocks/tag-cloud/editor.css 118 B 0 B
build/block-library/blocks/tag-cloud/style-rtl.css 94 B 0 B
build/block-library/blocks/tag-cloud/style.css 94 B 0 B
build/block-library/blocks/template-part/editor-rtl.css 552 B 0 B
build/block-library/blocks/template-part/editor.css 551 B 0 B
build/block-library/blocks/term-description/editor-rtl.css 90 B 0 B
build/block-library/blocks/term-description/editor.css 90 B 0 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B 0 B
build/block-library/blocks/text-columns/editor.css 95 B 0 B
build/block-library/blocks/text-columns/style-rtl.css 166 B 0 B
build/block-library/blocks/text-columns/style.css 166 B 0 B
build/block-library/blocks/verse/editor-rtl.css 50 B 0 B
build/block-library/blocks/verse/editor.css 50 B 0 B
build/block-library/blocks/verse/style-rtl.css 87 B 0 B
build/block-library/blocks/verse/style.css 87 B 0 B
build/block-library/blocks/video/editor-rtl.css 504 B 0 B
build/block-library/blocks/video/editor.css 503 B 0 B
build/block-library/common-rtl.css 1.31 kB 0 B
build/block-library/common.css 1.31 kB 0 B
build/block-library/theme-rtl.css 692 B 0 B
build/block-library/theme.css 693 B 0 B
build/block-serialization-spec-parser/index.js 3.06 kB 0 B
build/deprecated/index.js 787 B 0 B
build/dom-ready/index.js 576 B 0 B
build/edit-post/classic-rtl.css 454 B 0 B
build/edit-post/classic.css 454 B 0 B
build/escape-html/index.js 735 B 0 B
build/format-library/style-rtl.css 637 B 0 B
build/format-library/style.css 639 B 0 B
build/is-shallow-equal/index.js 699 B 0 B
build/list-reusable-blocks/index.js 3.19 kB 0 B
build/list-reusable-blocks/style-rtl.css 629 B 0 B
build/list-reusable-blocks/style.css 628 B 0 B
build/nux/style-rtl.css 731 B 0 B
build/nux/style.css 727 B 0 B
build/primitives/index.js 1.42 kB 0 B
build/reusable-blocks/style-rtl.css 225 B 0 B
build/reusable-blocks/style.css 225 B 0 B
build/rich-text/index.js 13.5 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.22 kB 0 B

compressed-size-action

@MaggieCabrera
Copy link
Contributor

The search block buttons seem to be affected too when they have icons (this happens with just the gutenberg changes, not the PR on empty theme):

Screenshot 2021-03-24 at 18 37 54

@MaggieCabrera
Copy link
Contributor

@MaggieCabrera This PR doesn't address the classic block at all because these buttons are not .components-button, they are buttons rendered by TinyMCE. A similar approach should be taken to these and styles added to editor.scss of the classic block.

Yeah, I know, but I'm wondering if we could include them on this PR too (we considered them for #29229 by using the :not([id^=mceu_] selector since at the very least it was very easy for the background color to bleed into them)

@jasmussen
Copy link
Contributor

Really appreciate the PR, it's been a headache for too long, and I'm excited to see a fix land.

I also think that in absence of (or awaiting) Shadow DOM, it is the right solution to increase specificity of these rules so they are harder to override. In that vein, a selector like .block-editor-block-list__layout button.components-button seems good, because it scopes the extra specificity to the canvas, and it adds the element, making for a pretty decent specificity.

Riad left some good comments, he's been deeper in this for the past few weeks than I have, so I'll defer to him. But thanks for the work!

@jasmussen
Copy link
Contributor

The search block buttons seem to be affected too when they have icons (this happens with just the gutenberg changes, not the PR on empty theme):

This appears to be because the search block uses the button component rather than a generic button, when the icon is used:

<button type="button" class="components-button wp-block-search__button has-icon">...</button>

I've seen a few other blocks do this, presumably because the components are easier to use than to use the vanilla elements. But it still seems like the wrong thing to do, becasue it diverges the markup in the editor, from that of the frontend (where the markup is simpler, just <button type="submit" class="wp-block-search__button has-icon"><svg id="search-icon" class="search-icon" viewBox="0 0 24 24" width="24" height="24">...</button>).

What's the best way to discourage using the components in this way?

@youknowriad
Copy link
Contributor

.block-editor-block-list__layout

That selector is a bit too broad and does mean "editor canvas", should we replace it with editor-styles-wrapper which is more accurate?

@youknowriad
Copy link
Contributor

What's the best way to discourage using the components in this way?

Funny thing is that if you use directly button in blocks, you have as eslint error and that rule doesn't make sense at all in blocks, maybe for UI but even that it's arguable. I'll remove that rule separately :)

@youknowriad youknowriad force-pushed the add/component-button-styles branch from 29545ea to e642c0d Compare April 5, 2021 11:38
@youknowriad
Copy link
Contributor

I think this PR is ready. The search block is still affected but shouldn't be once #30176 is applied on top of this one.

@youknowriad
Copy link
Contributor

Can we get some testing here?

@jasmussen
Copy link
Contributor

This is really nice, and a good holdover until better things.

When I just style button, the specificity of these is great:

Screenshot 2021-04-05 at 15 52 04

My rules are overridden as they should:

Screenshot 2021-04-05 at 15 51 59

However, if I add extra specificity by targetting button[type="button"], some of my editor styles win out:

Screenshot 2021-04-05 at 15 57 02

Specifically:

Screenshot 2021-04-05 at 15 54 12

that is, my padding, appearance, font family, font size. Background color does not win out, even though it looks as if it does, in the above, because a color is explicitly defined above. I would think both font size, family and padding are all defined as generic .components-button styles, but I think they are overridden because it has lower specificity than .components-button.is-primary.

The easiest things we can do to increase specificity further (because I would think the [type] selector would be pretty commmonly used, especially for input fields) is to simply duplicate the selector. So instead of .editor-styles-wrapper button.components-button, we do .editor-styles-wrapper button.components-button.components-button. In my inspector testing, that was enough to override button[type="button"].

@youknowriad
Copy link
Contributor

I increased the specificity, how this does look?

@jasmussen
Copy link
Contributor

The problem I noted looks solved, but I'm sorry I failed to test the Cover image when I suggested that specificity, those now look off:

Screenshot 2021-04-12 at 11 12 47

So it appears they need higher specificity as well.

In testing all the placeholders, most looked okay, but there were a few issues in addition to cover. Group is now sans border and not centered:

Screenshot 2021-04-12 at 11 14 36

Columns has an off padding on the buttons.

Screenshot 2021-04-12 at 11 14 51

@jasmussen
Copy link
Contributor

This PR could probably also use a rebase, as I know that both the Navigation and Site Logo blocks have recently received updated placeholder states, and those changes weren't visible in this branch.

@youknowriad
Copy link
Contributor

I'm starting to think that this PR might not be the right approach :( because it forces us to add higher specificity to basically all the buttons that we use in the canvas, (all the appenders, all the buttons inside placeholders) and there's a lot of selectors to upgrade in our codebase.

@scruffian scruffian requested a review from ellatrix as a code owner April 12, 2021 09:53
@jasmussen
Copy link
Contributor

Yeah, it's tricky :(

@scruffian
Copy link
Contributor Author

I'm starting to think that this PR might not be the right approach :( because it forces us to add higher specificity to basically all the buttons that we use in the canvas, (all the appenders, all the buttons inside placeholders) and there's a lot of selectors to upgrade in our codebase.

Is there a reason this is a problem besides the amount of work?

@youknowriad
Copy link
Contributor

my main concern is the fragility of the PR. It something that could break very easily as we iterate on the UI...

@simison
Copy link
Member

simison commented May 4, 2021

What would be needed to unblock fixing the issue — iteration on this solution, or completely different approach?

@jasmussen
Copy link
Contributor

A thought: IE11 no longer has to be supported. Should we actually look into wrapping these items in Shadow DOM containers?

@sarayourfriend
Copy link
Contributor

Would converting button CSS-in-JS (#26340) solve this problem, or at least allow for a less hack-y approach to solving it?

@annezazu annezazu added [Feature] UI Components Impacts or related to the UI component system [Type] Bug An existing feature does not function as intended CSS Styling Related to editor and front end styles, CSS-specific issues. labels Aug 25, 2021
@scruffian
Copy link
Contributor Author

Closing in favour of #33494

@scruffian scruffian closed this Dec 14, 2021
@scruffian scruffian deleted the add/component-button-styles branch December 14, 2021 12:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CSS Styling Related to editor and front end styles, CSS-specific issues. [Feature] UI Components Impacts or related to the UI component system [Type] Bug An existing feature does not function as intended
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Custom editor styles on element selectors effect block control styles.
7 participants