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

Enable inheritance in search block. #35723

Merged
merged 2 commits into from Oct 20, 2021
Merged

Conversation

jasmussen
Copy link
Contributor

Description

Font family, size, and line heights, are not inherited in the Search block. That makes its visual appearance stand out when used inside the navigation block. Here's Empty Theme with a search inside nav. Editor:

before editor

Frontend:

before frontend

The font size discrepancy is less visible in Empty Theme, but can be seen here:

Screenshot 2021-10-18 at 11 35 01

This PR adds inheritance, which also makes the editor more like the frontend:

after editor

Frontend:

after frontend

How has this been tested?

Here's some test content:

<!-- wp:paragraph -->
<p>Button inside:</p>
<!-- /wp:paragraph -->

<!-- wp:navigation -->
<!-- wp:home-link {"label":"Home"} /-->

<!-- wp:navigation-link {"label":"About","type":"page","id":30315,"url":"http://local-wordpress.local/about/","kind":"post-type","isTopLevelLink":true} /-->

<!-- wp:navigation-link {"label":"Contact","type":"page","id":827,"url":"http://local-wordpress.local/contact/","kind":"post-type","isTopLevelLink":true} /-->

<!-- wp:search {"label":"Search","showLabel":false,"placeholder":"Search","buttonText":"Search","buttonPosition":"button-inside","buttonUseIcon":true} /-->
<!-- /wp:navigation -->

<!-- wp:spacer -->
<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:paragraph -->
<p>Button outside:</p>
<!-- /wp:paragraph -->

<!-- wp:navigation -->
<!-- wp:home-link {"label":"Home"} /-->

<!-- wp:navigation-link {"label":"About","type":"page","id":30315,"url":"http://local-wordpress.local/about/","kind":"post-type","isTopLevelLink":true} /-->

<!-- wp:navigation-link {"label":"Contact","type":"page","id":827,"url":"http://local-wordpress.local/contact/","kind":"post-type","isTopLevelLink":true} /-->

<!-- wp:search {"label":"Search","showLabel":false,"placeholder":"Search","buttonText":"Search","buttonUseIcon":true} /-->
<!-- /wp:navigation -->

<!-- wp:spacer -->
<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:paragraph -->
<p>Button outside and with label:</p>
<!-- /wp:paragraph -->

<!-- wp:navigation -->
<!-- wp:home-link {"label":"Home"} /-->

<!-- wp:navigation-link {"label":"About","type":"page","id":30315,"url":"http://local-wordpress.local/about/","kind":"post-type","isTopLevelLink":true} /-->

<!-- wp:navigation-link {"label":"Contact","type":"page","id":827,"url":"http://local-wordpress.local/contact/","kind":"post-type","isTopLevelLink":true} /-->

<!-- wp:search {"label":"Search","showLabel":false,"placeholder":"Search","buttonText":"Search"} /-->
<!-- /wp:navigation -->

<!-- wp:spacer -->
<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:paragraph -->
<p>With label:</p>
<!-- /wp:paragraph -->

<!-- wp:navigation -->
<!-- wp:home-link {"label":"Home"} /-->

<!-- wp:navigation-link {"label":"About","type":"page","id":30315,"url":"http://local-wordpress.local/about/","kind":"post-type","isTopLevelLink":true} /-->

<!-- wp:navigation-link {"label":"Contact","type":"page","id":827,"url":"http://local-wordpress.local/contact/","kind":"post-type","isTopLevelLink":true} /-->

<!-- wp:search {"label":"Search","placeholder":"Search","buttonText":"Search"} /-->
<!-- /wp:navigation -->

Please test the search block in a variety of situations, including inside the nav block, and in a few themes, and verify that it always feels harmonious to use.

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 (please manually search all *.native.js files for terms that need renaming or removal).

@jasmussen jasmussen added the [Block] Search Affects the Search Block - used to display a search field label Oct 18, 2021
@jasmussen jasmussen self-assigned this Oct 18, 2021
@jasmussen
Copy link
Contributor Author

Note that the fake "Space between" thing going on in the above screenshots on the frontend is fixed separately in #35722. This PR would also go well with #35688.

@github-actions
Copy link

github-actions bot commented Oct 18, 2021

Size Change: +64 B (0%)

Total Size: 1.07 MB

Filename Size Change
build/block-library/blocks/search/style-rtl.css 397 B +23 B (+6%) 🔍
build/block-library/blocks/search/style.css 398 B +23 B (+6%) 🔍
build/block-library/style-rtl.css 10.3 kB +9 B (0%)
build/block-library/style.css 10.3 kB +9 B (0%)
ℹ️ 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.21 kB
build/autop/index.min.js 2.08 kB
build/blob/index.min.js 459 B
build/block-directory/index.min.js 6.2 kB
build/block-directory/style-rtl.css 1.01 kB
build/block-directory/style.css 1.01 kB
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 134 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 470 B
build/block-library/blocks/button/editor.css 470 B
build/block-library/blocks/button/style-rtl.css 549 B
build/block-library/blocks/button/style.css 549 B
build/block-library/blocks/buttons/editor-rtl.css 309 B
build/block-library/blocks/buttons/editor.css 309 B
build/block-library/blocks/buttons/style-rtl.css 317 B
build/block-library/blocks/buttons/style.css 317 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 206 B
build/block-library/blocks/columns/editor.css 205 B
build/block-library/blocks/columns/style-rtl.css 497 B
build/block-library/blocks/columns/style.css 496 B
build/block-library/blocks/cover/editor-rtl.css 546 B
build/block-library/blocks/cover/editor.css 547 B
build/block-library/blocks/cover/style-rtl.css 1.17 kB
build/block-library/blocks/cover/style.css 1.17 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 417 B
build/block-library/blocks/embed/style.css 417 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 977 B
build/block-library/blocks/gallery/editor.css 982 B
build/block-library/blocks/gallery/style-rtl.css 1.6 kB
build/block-library/blocks/gallery/style.css 1.59 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 78 B
build/block-library/blocks/group/theme.css 78 B
build/block-library/blocks/heading/style-rtl.css 114 B
build/block-library/blocks/heading/style.css 114 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 332 B
build/block-library/blocks/html/editor.css 333 B
build/block-library/blocks/image/editor-rtl.css 731 B
build/block-library/blocks/image/editor.css 730 B
build/block-library/blocks/image/style-rtl.css 502 B
build/block-library/blocks/image/style.css 505 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 94 B
build/block-library/blocks/list/style.css 94 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/editor-rtl.css 568 B
build/block-library/blocks/navigation-link/editor.css 570 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-submenu/editor-rtl.css 299 B
build/block-library/blocks/navigation-submenu/editor.css 299 B
build/block-library/blocks/navigation-submenu/style-rtl.css 195 B
build/block-library/blocks/navigation-submenu/style.css 195 B
build/block-library/blocks/navigation-submenu/view.min.js 343 B
build/block-library/blocks/navigation/editor-rtl.css 1.71 kB
build/block-library/blocks/navigation/editor.css 1.71 kB
build/block-library/blocks/navigation/style-rtl.css 1.68 kB
build/block-library/blocks/navigation/style.css 1.67 kB
build/block-library/blocks/navigation/view.min.js 2.74 kB
build/block-library/blocks/nextpage/editor-rtl.css 395 B
build/block-library/blocks/nextpage/editor.css 395 B
build/block-library/blocks/page-list/editor-rtl.css 377 B
build/block-library/blocks/page-list/editor.css 377 B
build/block-library/blocks/page-list/style-rtl.css 198 B
build/block-library/blocks/page-list/style.css 198 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 273 B
build/block-library/blocks/paragraph/style.css 273 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/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-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 396 B
build/block-library/blocks/post-featured-image/editor.css 397 B
build/block-library/blocks/post-featured-image/style-rtl.css 156 B
build/block-library/blocks/post-featured-image/style.css 156 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 391 B
build/block-library/blocks/post-template/style.css 392 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 378 B
build/block-library/blocks/pullquote/style.css 378 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 262 B
build/block-library/blocks/query-pagination/editor.css 255 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 131 B
build/block-library/blocks/query/editor.css 132 B
build/block-library/blocks/quote/style-rtl.css 187 B
build/block-library/blocks/quote/style.css 187 B
build/block-library/blocks/quote/theme-rtl.css 223 B
build/block-library/blocks/quote/theme.css 226 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/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 770 B
build/block-library/blocks/site-logo/editor.css 770 B
build/block-library/blocks/site-logo/style-rtl.css 165 B
build/block-library/blocks/site-logo/style.css 165 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 824 B
build/block-library/blocks/social-links/editor.css 823 B
build/block-library/blocks/social-links/style-rtl.css 1.32 kB
build/block-library/blocks/social-links/style.css 1.32 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 560 B
build/block-library/blocks/template-part/editor.css 559 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 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/common-rtl.css 815 B
build/block-library/common.css 812 B
build/block-library/editor-rtl.css 9.65 kB
build/block-library/editor.css 9.65 kB
build/block-library/index.min.js 148 kB
build/block-library/reset-rtl.css 474 B
build/block-library/reset.css 474 B
build/block-library/theme-rtl.css 668 B
build/block-library/theme.css 673 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 46 kB
build/components/index.min.js 212 kB
build/components/style-rtl.css 15.3 kB
build/components/style.css 15.3 kB
build/compose/index.min.js 10.4 kB
build/core-data/index.min.js 12.4 kB
build/customize-widgets/index.min.js 11.2 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.1 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.46 kB
build/edit-navigation/index.min.js 15.4 kB
build/edit-navigation/style-rtl.css 3.76 kB
build/edit-navigation/style.css 3.76 kB
build/edit-post/classic-rtl.css 492 B
build/edit-post/classic.css 494 B
build/edit-post/index.min.js 29.4 kB
build/edit-post/style-rtl.css 7.12 kB
build/edit-post/style.css 7.12 kB
build/edit-site/index.min.js 30 kB
build/edit-site/style-rtl.css 5.56 kB
build/edit-site/style.css 5.56 kB
build/edit-widgets/index.min.js 15.8 kB
build/edit-widgets/style-rtl.css 4.12 kB
build/edit-widgets/style.css 4.13 kB
build/editor/index.min.js 37.6 kB
build/editor/style-rtl.css 3.78 kB
build/editor/style.css 3.77 kB
build/element/index.min.js 3.21 kB
build/escape-html/index.min.js 517 B
build/format-library/index.min.js 5.93 kB
build/format-library/style-rtl.css 571 B
build/format-library/style.css 571 B
build/hooks/index.min.js 1.55 kB
build/html-entities/index.min.js 424 B
build/i18n/index.min.js 3.6 kB
build/is-shallow-equal/index.min.js 501 B
build/keyboard-shortcuts/index.min.js 1.72 kB
build/keycodes/index.min.js 1.3 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.92 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.19 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/rich-text/index.min.js 10.6 kB
build/server-side-render/index.min.js 1.52 kB
build/shortcode/index.min.js 1.48 kB
build/token-list/index.min.js 562 B
build/url/index.min.js 1.74 kB
build/viewport/index.min.js 1.02 kB
build/warning/index.min.js 248 B
build/widgets/index.min.js 7.11 kB
build/widgets/style-rtl.css 1.16 kB
build/widgets/style.css 1.16 kB
build/wordcount/index.min.js 1.04 kB

compressed-size-action

@MaggieCabrera
Copy link
Contributor

I agree with this one, though this will affect themes that don't explicitly set a font size for input elements of the search form in particular. On emptytheme, setting the body font size to 30px:

Before After
Screenshot 2021-10-18 at 13 11 31 Screenshot 2021-10-18 at 13 11 37

This highlights the need for font control on the theme side for the block. The same block while used on the navigation block will need a very different font size than it will on pages like the search template for example, but I'm not sure we will always want the placeholder and input text to be the same as the body/paragraph font size. At least that's not what I've seen in the designs I've worked with. Generally, the input text is a tad smaller, while the label text is indeed the same as the body/paragraph's.

But I'd leave that discussion to the designers, as I said before I agree with this as a starting point (the font-family rule is particularly needed) while being aware that it might affect existing themes. From what I've seen on Blockbase themes (Blockbase doesn't explicitly set a font-size for the block at all), the placeholder text goes from 13.333px (apparently defined by the browser) to whatever the body font size is, which is much bigger.

@jasmussen
Copy link
Contributor Author

Excellent catches, thanks for such a great review. I have an idea for handling the case you surface, which I want to try.

@jasmussen jasmussen force-pushed the try/search-navigation-inheritance branch from 1b8fb85 to 6381469 Compare October 19, 2021 10:07
@jasmussen
Copy link
Contributor Author

Retrying this one, I actually think what you desribe is what we want: if you set the font size on the body to 30px, so should it be inherited all the way down the line. Navigation already inherits, unless you set otherwise:

Screenshot 2021-10-19 at 12 20 43

I think if it affects themes in a negative way, it should be fixed there. Can you think of any themes that might be affected by this?

@MaggieCabrera
Copy link
Contributor

Retrying this one, I actually think what you desribe is what we want: if you set the font size on the body to 30px, so should it be inherited all the way down the line. Navigation already inherits, unless you set otherwise:

I think if it affects themes in a negative way, it should be fixed there. Can you think of any themes that might be affected by this?

Yeah, I think I agree with you that this is good to have as a base. Ideally, this would be something we could control via theme.json at the very least because I can see how we wouldn't want it to be the case every single time, but it's definitely better than just allowing the browsers to do whatever they want.

It would affect all Blockbase themes and it will require some CSS while we have the ability to control this directly on the block, but I'm personally ok with that.

Skatepark's search block before and after:

Screenshot 2021-10-19 at 12 25 18

Screenshot 2021-10-19 at 12 25 38

Skatepark's pre footer block pattern also uses the search block:

Screenshot 2021-10-19 at 12 26 17

Screenshot 2021-10-19 at 12 26 31

@jasmussen
Copy link
Contributor Author

jasmussen commented Oct 19, 2021

Oh, so the search block in blockbase currently doesn't have a font size set?

Ideally, this would be something we could control via theme.json at the very least because I can see how we wouldn't want it to be the case every single time, but it's definitely better than just allowing the browsers to do whatever they want.

Setting the font size appears to work for me already:

			"core/search": {
				"typography": {
					"fontSize": "100px",
					"lineHeight": "10px"
				}
			},

Screenshot 2021-10-19 at 12 36 11

I'd be happy to keep this PR paused until blockbase has the needed CSS if that's any help.

Edit: for what it's worth, the "after" images for Skatepark look better to me 😅

@MaggieCabrera
Copy link
Contributor

Oh, so the search block in blockbase currently doesn't have a font size set?

No, it doesn't but I'll open a PR right away for it

Setting the font size appears to work for me already:

			"core/search": {
				"typography": {
					"fontSize": "100px",
					"lineHeight": "10px"
				}
			},

Oh that's great! maybe I was thinking the typography control would affect the label instead, I don't remember what happened when I last tried this

I'd be happy to keep this PR paused until blockbase has the needed CSS if that's any help.

Nope, don't hold on my account, I'll get it sorted for Blockbase asap. The search block is quite recent and this change will mostly affect block themes mainly so my guess is you could go ahead with this change with few issues

@jasmussen
Copy link
Contributor Author

Thanks so much for your thoughtful review!

@MaggieCabrera
Copy link
Contributor

MaggieCabrera commented Oct 19, 2021

Setting the font size appears to work for me already:

			"core/search": {
				"typography": {
					"fontSize": "100px",
					"lineHeight": "10px"
				}
			},

Actually, this doesn't work without this PR active, else it will just pick the browser's styles for the input, since the font-size rule is applied to the .wp-block-search, so this PR actually fixes that too, that's why it wasn't working when I first tried it myself. Thank you for fixing it!

@MaggieCabrera
Copy link
Contributor

Oh, one more thing before this actually gets merged: right now this works fine with the theme.json rules because it's set to inherit, but it's still more specific than said rules:
Screenshot 2021-10-19 at 13 11 10

with this on theme.json:


"core/search": {
				"typography": {
					"fontSize": "var(--wp--preset--font-size--small)",
					"lineHeight": "var(--wp--custom--body--typography--line-height)"
				}
			},

@jasmussen
Copy link
Contributor Author

Excellent sleuthing. I'll dive in again before I merge.

@jasmussen jasmussen force-pushed the try/search-navigation-inheritance branch from 6381469 to c91308f Compare October 19, 2021 11:33
@jasmussen
Copy link
Contributor Author

Alright, I rebased again, and pushed a fix to lower specificity. You might need to checkout trunk, delete this branch, and check out this branch fresh lest the rebase messes with things.

@jasmussen
Copy link
Contributor Author

jasmussen commented Oct 19, 2021

So the change I made was to simply unscope each of the styles. So instead of .wp-block-search .wp-block-search__button, we just target .wp-block-search__button. This has the following effect on the styles:

  • If you provide no styles, or theme.json configuration, the search block will inherit from its parent.
  • If you provide font size or other via theme.json, it will inherit from those instead of the parent.
  • If you provide font size in your editor styel targetting .wp-block-search__input or even plain input, this rule will win over both the parent and the global styles rules.

@MaggieCabrera
Copy link
Contributor

Alright, I rebased again, and pushed a fix to lower specificity. You might need to checkout trunk, delete this branch, and check out this branch fresh lest the rebase messes with things.

Thank you for this. It looks to be working as you mentioned ✅

@jasmussen
Copy link
Contributor Author

The React Native test appears to be consistently failing for reasons unrelated to this PR. I'll leave this one for a bit, then rebase and see if that helps.

@ZebulanStanphill ZebulanStanphill added CSS Styling Related to editor and front end styles, CSS-specific issues. [Package] Block library /packages/block-library labels Oct 19, 2021
@jasmussen jasmussen merged commit 9e07dbc into trunk Oct 20, 2021
@jasmussen jasmussen deleted the try/search-navigation-inheritance branch October 20, 2021 08:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Block] Search Affects the Search Block - used to display a search field CSS Styling Related to editor and front end styles, CSS-specific issues. [Package] Block library /packages/block-library
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants