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

Navigation block: fix padding on mobile overlay when global padding is 0 #53725

Merged
merged 4 commits into from Sep 26, 2023

Conversation

MaggieCabrera
Copy link
Contributor

@MaggieCabrera MaggieCabrera commented Aug 16, 2023

What?

This PR expands on the fix made by #43576 to cover the cases when themes don't declare a global top padding for their site (or they declare it as 0px). This makes sure that the padding value is not 0.

Fixes #52233

Why?

The original fix was adding a 2rem fallback if the global padding is not set by the theme. That fallback is probably only working for classic themes, since when block themes don't declare a global padding, the value of the CSS variable resolves to 0px, causing this issue on the overlay menu:

Screen Capture on 2023-08-16 at 11-21-11

There is a use case for themes with no global padding-top when the theme wants to have a different color on the header than the body, where the theme uses group padding instead to separate the menu from the top of the viewport.

How?

Using max(), we make sure that the highest value of the pair is always selected, so if the global padding is 0, it will default to 2rem instead.

There are two caveats to this implementation:

  1. If the theme defines a non 0 global padding that is lower than 2rem, the 2rem value will prevail. This causes a slight visual jump when opening the overlay
  2. This solution doesn't work if theme defines the global padding as a unitless 0. max() needs the values to have units, else they won't work.

Testing Instructions

In your theme.json file, define the global padding as either

{
    "styles": {
               "spacing": {
			"padding": {
				"right": "var(--wp--preset--spacing--60)",
				"left": "var(--wp--preset--spacing--60)"
			}
		},
    }
}

or

{
    "styles": {
               "spacing": {
			"padding": {
                                "top": "0px",
				"right": "var(--wp--preset--spacing--60)",
				"left": "var(--wp--preset--spacing--60)",
                                "bottom": "0px",
			}
		},
    }
}

Check the frontend both on a logged in and logged out state, and notice that the burger icon is separated 2rem from the top of the viewport.

Also, check that if the value for the global padding is bigger than 2rem, that's the value that's been applied for the overlay too

@MaggieCabrera MaggieCabrera added [Type] Bug An existing feature does not function as intended [Block] Navigation Affects the Navigation Block labels Aug 16, 2023
@MaggieCabrera
Copy link
Contributor Author

MaggieCabrera commented Aug 16, 2023

@jasmussen I'm trying this, and it doesn't work after building the CSS, but if I write the same CSS manually in the browser inspector, it works as intended!!! I don't understand what's going on here.

Also, we need to consider that this solution will make any themes that have a padding set that is more than 0 but less than 2rem to jump between closed/open. It's not ideal but I think it's better than what we have and we have the expectation of a better solution to come with #43852

@MaggieCabrera MaggieCabrera self-assigned this Aug 16, 2023
@github-actions
Copy link

github-actions bot commented Aug 16, 2023

Size Change: +43 B (0%)

Total Size: 1.62 MB

Filename Size Change
build/block-editor/index.min.js 218 kB -6 B (0%)
build/block-library/blocks/navigation/style-rtl.css 2.26 kB +13 B (+1%)
build/block-library/blocks/navigation/style.css 2.25 kB +13 B (+1%)
build/block-library/style-rtl.css 14 kB +11 B (0%)
build/block-library/style.css 14 kB +12 B (0%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 964 B
build/annotations/index.min.js 2.71 kB
build/api-fetch/index.min.js 2.29 kB
build/autop/index.min.js 2.11 kB
build/blob/index.min.js 461 B
build/block-directory/index.min.js 7.05 kB
build/block-directory/style-rtl.css 1.04 kB
build/block-directory/style.css 1.04 kB
build/block-editor/content-rtl.css 4.28 kB
build/block-editor/content.css 4.27 kB
build/block-editor/default-editor-styles-rtl.css 403 B
build/block-editor/default-editor-styles.css 403 B
build/block-editor/style-rtl.css 15.6 kB
build/block-editor/style.css 15.6 kB
build/block-library/blocks/archives/editor-rtl.css 61 B
build/block-library/blocks/archives/editor.css 60 B
build/block-library/blocks/archives/style-rtl.css 90 B
build/block-library/blocks/archives/style.css 90 B
build/block-library/blocks/audio/editor-rtl.css 150 B
build/block-library/blocks/audio/editor.css 150 B
build/block-library/blocks/audio/style-rtl.css 122 B
build/block-library/blocks/audio/style.css 122 B
build/block-library/blocks/audio/theme-rtl.css 138 B
build/block-library/blocks/audio/theme.css 138 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 104 B
build/block-library/blocks/avatar/style.css 104 B
build/block-library/blocks/block/editor-rtl.css 305 B
build/block-library/blocks/block/editor.css 305 B
build/block-library/blocks/button/editor-rtl.css 587 B
build/block-library/blocks/button/editor.css 587 B
build/block-library/blocks/button/style-rtl.css 633 B
build/block-library/blocks/button/style.css 632 B
build/block-library/blocks/buttons/editor-rtl.css 337 B
build/block-library/blocks/buttons/editor.css 337 B
build/block-library/blocks/buttons/style-rtl.css 332 B
build/block-library/blocks/buttons/style.css 332 B
build/block-library/blocks/calendar/style-rtl.css 239 B
build/block-library/blocks/calendar/style.css 239 B
build/block-library/blocks/categories/editor-rtl.css 113 B
build/block-library/blocks/categories/editor.css 112 B
build/block-library/blocks/categories/style-rtl.css 124 B
build/block-library/blocks/categories/style.css 124 B
build/block-library/blocks/code/editor-rtl.css 53 B
build/block-library/blocks/code/editor.css 53 B
build/block-library/blocks/code/style-rtl.css 121 B
build/block-library/blocks/code/style.css 121 B
build/block-library/blocks/code/theme-rtl.css 124 B
build/block-library/blocks/code/theme.css 124 B
build/block-library/blocks/columns/editor-rtl.css 108 B
build/block-library/blocks/columns/editor.css 108 B
build/block-library/blocks/columns/style-rtl.css 421 B
build/block-library/blocks/columns/style.css 421 B
build/block-library/blocks/comment-author-avatar/editor-rtl.css 125 B
build/block-library/blocks/comment-author-avatar/editor.css 125 B
build/block-library/blocks/comment-content/style-rtl.css 92 B
build/block-library/blocks/comment-content/style.css 92 B
build/block-library/blocks/comment-template/style-rtl.css 199 B
build/block-library/blocks/comment-template/style.css 198 B
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css 123 B
build/block-library/blocks/comments-pagination-numbers/editor.css 121 B
build/block-library/blocks/comments-pagination/editor-rtl.css 222 B
build/block-library/blocks/comments-pagination/editor.css 209 B
build/block-library/blocks/comments-pagination/style-rtl.css 235 B
build/block-library/blocks/comments-pagination/style.css 231 B
build/block-library/blocks/comments-title/editor-rtl.css 75 B
build/block-library/blocks/comments-title/editor.css 75 B
build/block-library/blocks/comments/editor-rtl.css 840 B
build/block-library/blocks/comments/editor.css 839 B
build/block-library/blocks/comments/style-rtl.css 637 B
build/block-library/blocks/comments/style.css 636 B
build/block-library/blocks/cover/editor-rtl.css 647 B
build/block-library/blocks/cover/editor.css 650 B
build/block-library/blocks/cover/style-rtl.css 1.7 kB
build/block-library/blocks/cover/style.css 1.69 kB
build/block-library/blocks/details/editor-rtl.css 65 B
build/block-library/blocks/details/editor.css 65 B
build/block-library/blocks/details/style-rtl.css 98 B
build/block-library/blocks/details/style.css 98 B
build/block-library/blocks/embed/editor-rtl.css 293 B
build/block-library/blocks/embed/editor.css 293 B
build/block-library/blocks/embed/style-rtl.css 410 B
build/block-library/blocks/embed/style.css 410 B
build/block-library/blocks/embed/theme-rtl.css 138 B
build/block-library/blocks/embed/theme.css 138 B
build/block-library/blocks/file/editor-rtl.css 316 B
build/block-library/blocks/file/editor.css 316 B
build/block-library/blocks/file/style-rtl.css 311 B
build/block-library/blocks/file/style.css 312 B
build/block-library/blocks/file/view.min.js 321 B
build/block-library/blocks/footnotes/style-rtl.css 201 B
build/block-library/blocks/footnotes/style.css 199 B
build/block-library/blocks/freeform/editor-rtl.css 2.61 kB
build/block-library/blocks/freeform/editor.css 2.61 kB
build/block-library/blocks/gallery/editor-rtl.css 957 B
build/block-library/blocks/gallery/editor.css 962 B
build/block-library/blocks/gallery/style-rtl.css 1.55 kB
build/block-library/blocks/gallery/style.css 1.55 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 654 B
build/block-library/blocks/group/editor.css 654 B
build/block-library/blocks/group/style-rtl.css 57 B
build/block-library/blocks/group/style.css 57 B
build/block-library/blocks/group/theme-rtl.css 78 B
build/block-library/blocks/group/theme.css 78 B
build/block-library/blocks/heading/style-rtl.css 189 B
build/block-library/blocks/heading/style.css 189 B
build/block-library/blocks/html/editor-rtl.css 340 B
build/block-library/blocks/html/editor.css 341 B
build/block-library/blocks/image/editor-rtl.css 834 B
build/block-library/blocks/image/editor.css 833 B
build/block-library/blocks/image/style-rtl.css 1.42 kB
build/block-library/blocks/image/style.css 1.41 kB
build/block-library/blocks/image/theme-rtl.css 137 B
build/block-library/blocks/image/theme.css 137 B
build/block-library/blocks/image/view.min.js 1.83 kB
build/block-library/blocks/latest-comments/style-rtl.css 357 B
build/block-library/blocks/latest-comments/style.css 357 B
build/block-library/blocks/latest-posts/editor-rtl.css 213 B
build/block-library/blocks/latest-posts/editor.css 212 B
build/block-library/blocks/latest-posts/style-rtl.css 478 B
build/block-library/blocks/latest-posts/style.css 478 B
build/block-library/blocks/list/style-rtl.css 88 B
build/block-library/blocks/list/style.css 88 B
build/block-library/blocks/media-text/editor-rtl.css 266 B
build/block-library/blocks/media-text/editor.css 263 B
build/block-library/blocks/media-text/style-rtl.css 505 B
build/block-library/blocks/media-text/style.css 503 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 671 B
build/block-library/blocks/navigation-link/editor.css 672 B
build/block-library/blocks/navigation-link/style-rtl.css 115 B
build/block-library/blocks/navigation-link/style.css 115 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 299 B
build/block-library/blocks/navigation-submenu/editor.css 299 B
build/block-library/blocks/navigation/editor-rtl.css 2.26 kB
build/block-library/blocks/navigation/editor.css 2.26 kB
build/block-library/blocks/navigation/view.min.js 1.01 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 401 B
build/block-library/blocks/page-list/editor.css 401 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 235 B
build/block-library/blocks/paragraph/editor.css 235 B
build/block-library/blocks/paragraph/style-rtl.css 335 B
build/block-library/blocks/paragraph/style.css 335 B
build/block-library/blocks/post-author/style-rtl.css 175 B
build/block-library/blocks/post-author/style.css 176 B
build/block-library/blocks/post-comments-form/editor-rtl.css 96 B
build/block-library/blocks/post-comments-form/editor.css 96 B
build/block-library/blocks/post-comments-form/style-rtl.css 508 B
build/block-library/blocks/post-comments-form/style.css 508 B
build/block-library/blocks/post-date/style-rtl.css 61 B
build/block-library/blocks/post-date/style.css 61 B
build/block-library/blocks/post-excerpt/editor-rtl.css 71 B
build/block-library/blocks/post-excerpt/editor.css 71 B
build/block-library/blocks/post-excerpt/style-rtl.css 141 B
build/block-library/blocks/post-excerpt/style.css 141 B
build/block-library/blocks/post-featured-image/editor-rtl.css 588 B
build/block-library/blocks/post-featured-image/editor.css 586 B
build/block-library/blocks/post-featured-image/style-rtl.css 322 B
build/block-library/blocks/post-featured-image/style.css 322 B
build/block-library/blocks/post-navigation-link/style-rtl.css 215 B
build/block-library/blocks/post-navigation-link/style.css 214 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 314 B
build/block-library/blocks/post-template/style.css 314 B
build/block-library/blocks/post-terms/style-rtl.css 96 B
build/block-library/blocks/post-terms/style.css 96 B
build/block-library/blocks/post-time-to-read/style-rtl.css 69 B
build/block-library/blocks/post-time-to-read/style.css 69 B
build/block-library/blocks/post-title/style-rtl.css 100 B
build/block-library/blocks/post-title/style.css 100 B
build/block-library/blocks/preformatted/style-rtl.css 125 B
build/block-library/blocks/preformatted/style.css 125 B
build/block-library/blocks/pullquote/editor-rtl.css 135 B
build/block-library/blocks/pullquote/editor.css 135 B
build/block-library/blocks/pullquote/style-rtl.css 335 B
build/block-library/blocks/pullquote/style.css 335 B
build/block-library/blocks/pullquote/theme-rtl.css 168 B
build/block-library/blocks/pullquote/theme.css 168 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 122 B
build/block-library/blocks/query-pagination-numbers/editor.css 121 B
build/block-library/blocks/query-pagination/editor-rtl.css 221 B
build/block-library/blocks/query-pagination/editor.css 211 B
build/block-library/blocks/query-pagination/style-rtl.css 288 B
build/block-library/blocks/query-pagination/style.css 284 B
build/block-library/blocks/query-title/style-rtl.css 63 B
build/block-library/blocks/query-title/style.css 63 B
build/block-library/blocks/query/editor-rtl.css 486 B
build/block-library/blocks/query/editor.css 486 B
build/block-library/blocks/query/style-rtl.css 375 B
build/block-library/blocks/query/style.css 372 B
build/block-library/blocks/query/view.min.js 609 B
build/block-library/blocks/quote/style-rtl.css 222 B
build/block-library/blocks/quote/style.css 222 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 149 B
build/block-library/blocks/rss/editor.css 149 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 184 B
build/block-library/blocks/search/editor.css 184 B
build/block-library/blocks/search/style-rtl.css 604 B
build/block-library/blocks/search/style.css 604 B
build/block-library/blocks/search/theme-rtl.css 114 B
build/block-library/blocks/search/theme.css 114 B
build/block-library/blocks/search/view.min.js 471 B
build/block-library/blocks/separator/editor-rtl.css 146 B
build/block-library/blocks/separator/editor.css 146 B
build/block-library/blocks/separator/style-rtl.css 234 B
build/block-library/blocks/separator/style.css 234 B
build/block-library/blocks/separator/theme-rtl.css 194 B
build/block-library/blocks/separator/theme.css 194 B
build/block-library/blocks/shortcode/editor-rtl.css 329 B
build/block-library/blocks/shortcode/editor.css 329 B
build/block-library/blocks/site-logo/editor-rtl.css 760 B
build/block-library/blocks/site-logo/editor.css 760 B
build/block-library/blocks/site-logo/style-rtl.css 204 B
build/block-library/blocks/site-logo/style.css 204 B
build/block-library/blocks/site-tagline/editor-rtl.css 86 B
build/block-library/blocks/site-tagline/editor.css 86 B
build/block-library/blocks/site-title/editor-rtl.css 116 B
build/block-library/blocks/site-title/editor.css 116 B
build/block-library/blocks/site-title/style-rtl.css 57 B
build/block-library/blocks/site-title/style.css 57 B
build/block-library/blocks/social-link/editor-rtl.css 184 B
build/block-library/blocks/social-link/editor.css 184 B
build/block-library/blocks/social-links/editor-rtl.css 682 B
build/block-library/blocks/social-links/editor.css 681 B
build/block-library/blocks/social-links/style-rtl.css 1.45 kB
build/block-library/blocks/social-links/style.css 1.45 kB
build/block-library/blocks/spacer/editor-rtl.css 359 B
build/block-library/blocks/spacer/editor.css 359 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 432 B
build/block-library/blocks/table/editor.css 432 B
build/block-library/blocks/table/style-rtl.css 646 B
build/block-library/blocks/table/style.css 645 B
build/block-library/blocks/table/theme-rtl.css 157 B
build/block-library/blocks/table/theme.css 157 B
build/block-library/blocks/tag-cloud/style-rtl.css 251 B
build/block-library/blocks/tag-cloud/style.css 253 B
build/block-library/blocks/template-part/editor-rtl.css 403 B
build/block-library/blocks/template-part/editor.css 403 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/style-rtl.css 111 B
build/block-library/blocks/term-description/style.css 111 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 99 B
build/block-library/blocks/verse/style.css 99 B
build/block-library/blocks/video/editor-rtl.css 552 B
build/block-library/blocks/video/editor.css 555 B
build/block-library/blocks/video/style-rtl.css 191 B
build/block-library/blocks/video/style.css 191 B
build/block-library/blocks/video/theme-rtl.css 139 B
build/block-library/blocks/video/theme.css 139 B
build/block-library/classic-rtl.css 179 B
build/block-library/classic.css 179 B
build/block-library/common-rtl.css 1.11 kB
build/block-library/common.css 1.11 kB
build/block-library/editor-elements-rtl.css 75 B
build/block-library/editor-elements.css 75 B
build/block-library/editor-rtl.css 12.2 kB
build/block-library/editor.css 12.2 kB
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/index.min.js 207 kB
build/block-library/reset-rtl.css 472 B
build/block-library/reset.css 472 B
build/block-library/theme-rtl.css 700 B
build/block-library/theme.css 705 B
build/block-serialization-default-parser/index.min.js 1.13 kB
build/block-serialization-spec-parser/index.min.js 2.87 kB
build/blocks/index.min.js 51.5 kB
build/commands/index.min.js 15.5 kB
build/commands/style-rtl.css 947 B
build/commands/style.css 942 B
build/components/index.min.js 246 kB
build/components/style-rtl.css 11.8 kB
build/components/style.css 11.8 kB
build/compose/index.min.js 12.7 kB
build/core-commands/index.min.js 2.62 kB
build/core-data/index.min.js 70.5 kB
build/customize-widgets/index.min.js 12 kB
build/customize-widgets/style-rtl.css 1.51 kB
build/customize-widgets/style.css 1.5 kB
build/data-controls/index.min.js 651 B
build/data/index.min.js 8.87 kB
build/date/index.min.js 17.9 kB
build/deprecated/index.min.js 462 B
build/dom-ready/index.min.js 336 B
build/dom/index.min.js 4.68 kB
build/edit-post/classic-rtl.css 571 B
build/edit-post/classic.css 571 B
build/edit-post/index.min.js 35.6 kB
build/edit-post/style-rtl.css 7.92 kB
build/edit-post/style.css 7.91 kB
build/edit-site/index.min.js 185 kB
build/edit-site/style-rtl.css 14 kB
build/edit-site/style.css 14 kB
build/edit-widgets/index.min.js 17 kB
build/edit-widgets/style-rtl.css 4.84 kB
build/edit-widgets/style.css 4.84 kB
build/editor/index.min.js 45.9 kB
build/editor/style-rtl.css 3.58 kB
build/editor/style.css 3.58 kB
build/element/index.min.js 4.87 kB
build/escape-html/index.min.js 548 B
build/format-library/index.min.js 7.75 kB
build/format-library/style-rtl.css 577 B
build/format-library/style.css 577 B
build/hooks/index.min.js 1.57 kB
build/html-entities/index.min.js 454 B
build/i18n/index.min.js 3.61 kB
build/interactivity/index.min.js 11.4 kB
build/is-shallow-equal/index.min.js 535 B
build/keyboard-shortcuts/index.min.js 1.74 kB
build/keycodes/index.min.js 1.9 kB
build/list-reusable-blocks/index.min.js 2.2 kB
build/list-reusable-blocks/style-rtl.css 865 B
build/list-reusable-blocks/style.css 865 B
build/media-utils/index.min.js 2.92 kB
build/notices/index.min.js 964 B
build/nux/index.min.js 2 kB
build/nux/style-rtl.css 775 B
build/nux/style.css 771 B
build/patterns/index.min.js 3.56 kB
build/patterns/style-rtl.css 325 B
build/patterns/style.css 325 B
build/plugins/index.min.js 1.8 kB
build/preferences-persistence/index.min.js 1.85 kB
build/preferences/index.min.js 1.25 kB
build/primitives/index.min.js 994 B
build/priority-queue/index.min.js 1.52 kB
build/private-apis/index.min.js 972 B
build/react-i18n/index.min.js 624 B
build/react-refresh-entry/index.min.js 9.46 kB
build/react-refresh-runtime/index.min.js 6.78 kB
build/redux-routine/index.min.js 2.71 kB
build/reusable-blocks/index.min.js 2.72 kB
build/reusable-blocks/style-rtl.css 265 B
build/reusable-blocks/style.css 265 B
build/rich-text/index.min.js 10.2 kB
build/router/index.min.js 1.78 kB
build/server-side-render/index.min.js 1.95 kB
build/shortcode/index.min.js 1.4 kB
build/style-engine/index.min.js 1.98 kB
build/token-list/index.min.js 587 B
build/url/index.min.js 3.84 kB
build/vendors/inert-polyfill.min.js 2.48 kB
build/vendors/react-dom.min.js 41.8 kB
build/vendors/react.min.js 4.02 kB
build/viewport/index.min.js 968 B
build/warning/index.min.js 259 B
build/widgets/index.min.js 7.17 kB
build/widgets/style-rtl.css 1.18 kB
build/widgets/style.css 1.18 kB
build/wordcount/index.min.js 1.03 kB

compressed-size-action

@MaggieCabrera
Copy link
Contributor Author

@jasmussen I'm trying this, and it doesn't work after building the CSS, but if I write the same CSS manually in the browser inspector, it works as intended!!! I don't understand what's going on here.

It fails if the padding is declared as 0 without any unit, then the max() doesn't know what to do. And the compiler is merging the 4 padding values into the shorthand so having one wrong value breaks the whole thing :(

@jasmussen
Copy link
Contributor

And the compiler is merging the 4 padding values into the shorthand so having one wrong value breaks the whole thing

If that's the SCSS thing, then there should be a way around that. For example if I want a variable explicitly output so that calc can work with it, then it would be something like width: calc( 100% - #{ $grid-unit-10 } );

Let me take a look.

@MaggieCabrera
Copy link
Contributor Author

Is it safe to assume that theme authors should add units for this to work? I can make the fix for Blue note, I'm not sure how many other themes would make the same mistake of adding the unitless 0

@jasmussen
Copy link
Contributor

I think I may have a fix in https://codepen.io/joen/pen/RwEbgQv?editors=1100

Specifically, it seems like calc( 0 * 1px) returns 0px.

@MaggieCabrera
Copy link
Contributor Author

I think I may have a fix in https://codepen.io/joen/pen/RwEbgQv?editors=1100

Specifically, it seems like calc( 0 * 1px) returns 0px.

It breaks for --global-padding: 4rem;

@jasmussen
Copy link
Contributor

Oh right. 🤔

Maybe there is no obvious fix other than addressing that theme.json styleable overlay.

@MaggieCabrera
Copy link
Contributor Author

Oh right. 🤔

Maybe there is no obvious fix other than addressing that theme.json styleable overlay.

I think this here is the best we can do for now!

@MaggieCabrera
Copy link
Contributor Author

I'm gonna go for a bit but I'll be back and write a proper description and test instructions

@scruffian
Copy link
Contributor

I added a commit to use clamp. This means that we can set a min and max, but also allow the size to be the correct one if that's an option. Feel free to remove it if you don't like that option.

WRT the 0 values, I think we should probably consider adding px to them in the theme.json output...

@MaggieCabrera
Copy link
Contributor Author

https://www.oddbird.net/2022/08/04/zero-units/ I’m not sure adding the unit is a good idea

@scruffian
Copy link
Contributor

In that case we should probably try to educate peopler about why they should use 0px!

Copy link
Contributor

@tellthemachines tellthemachines left a comment

Choose a reason for hiding this comment

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

Code looks good and the change is working well for me!

One thing I noticed in testing (unrelated to this PR) is that a 46px margin-top is added to wp-block-navigation__responsive-dialog on the front end when the admin bar is detected, but the nav overlay hides the admin bar. Might be that z-indexes were messed with at some point? I'm guessing the intention was for the admin bar to show when the overlay is open?

@tellthemachines
Copy link
Contributor

tellthemachines commented Sep 25, 2023

The e2e failure looks legit and I can reproduce it locally on this branch, but the behaviour tested hasn't changed from trunk to this branch. I suspect something in the spacing change causes hover on the page link button to be activated, and the hover color is being read as the actual link color 🤔

Edit: failure artifact confirms the problem is hover style:

test-failed-1

@getdave

This comment was marked as resolved.

@getdave
Copy link
Contributor

getdave commented Sep 26, 2023

Ok I believe I've fixed this. The issue was that when the mobile overlay menu was toggled open the mouse pointer was sitting directly on top of one of the links in the overlay. This caused the :hover to trigger and thus when Playwright queried the element's CSS it was found to have an unexpected color.

I've fixed this by shifting the mouse down and to the right by a large value in order to ensure that the mouse cannot accidentally trigger any state changes.

@MaggieCabrera
Copy link
Contributor Author

Ok I believe I've fixed this. The issue was that when the mobile overlay menu was toggled open the mouse pointer was sitting directly on top of one of the links in the overlay. This caused the :hover to trigger and thus when Playwright queried the element's CSS it was found to have an unexpected color.

I've fixed this by shifting the mouse down and to the right by a large value in order to ensure that the mouse cannot accidentally trigger any state changes.

Wow, nice detective skills there! Thank you for picking this one up

@getdave getdave enabled auto-merge (squash) September 26, 2023 09:47
@getdave
Copy link
Contributor

getdave commented Sep 26, 2023

Auto merging once tests pass 👍

@MaggieCabrera MaggieCabrera added the Backport to Gutenberg RC Pull request that needs to be backported to a Gutenberg release candidate (RC) label Sep 26, 2023
@MaggieCabrera
Copy link
Contributor Author

I added the backport label since this is affecting TT2 and TT4 @mikachan

@getdave
Copy link
Contributor

getdave commented Sep 26, 2023

Given that there are no PHP changes in this PR these constantly failing PHP tests seem to be anomalous. Agreed?

Re-running again in the hope that they pass this time. There is no error, just that the test fail to run 🤦

@getdave getdave merged commit 545bbf3 into trunk Sep 26, 2023
53 checks passed
@getdave getdave deleted the fix/nav-overlay-padding branch September 26, 2023 10:29
@github-actions github-actions bot added this to the Gutenberg 16.8 milestone Sep 26, 2023
mikachan pushed a commit that referenced this pull request Sep 26, 2023
…s 0 (#53725)

* force min value for padding to be 2rem

* fallback for when the css variables are not defined

* Allow the padding to be smaller than 2rem

* Add fix to avoid trigger hover state on links when overlay opens

---------

Co-authored-by: scruffian <ben@scruffian.com>
Co-authored-by: Dave Smith <getdavemail@gmail.com>
@mikachan
Copy link
Member

I just cherry-picked this PR to the release/16.7 branch to get it included in the next release: 7648f9b

@mikachan mikachan removed the Backport to Gutenberg RC Pull request that needs to be backported to a Gutenberg release candidate (RC) label Sep 26, 2023
mikachan pushed a commit that referenced this pull request Sep 26, 2023
…s 0 (#53725)

* force min value for padding to be 2rem

* fallback for when the css variables are not defined

* Allow the padding to be smaller than 2rem

* Add fix to avoid trigger hover state on links when overlay opens

---------

Co-authored-by: scruffian <ben@scruffian.com>
Co-authored-by: Dave Smith <getdavemail@gmail.com>
Mamaduka added a commit that referenced this pull request Sep 26, 2023
* use the wporg cdn (#54795)

* core-data: Fix nested property access with undefined name (#54790)

* core-data: Fix nested property access with undefined name

* Add a unit test

* Social Links: add X (#54092)

* Social Links: add X

Fixes #53223

* Add Twitter keyword to variation

This will allow people to find the new icon when searching for Twitter.

See #53223 (comment)

* Reorder links alphabetically

Co-authored-by: Aki Hamano <54422211+t-hamano@users.noreply.github.com>

* No need for a capital letter

Co-authored-by: Aki Hamano <54422211+t-hamano@users.noreply.github.com>

* Fix svg attributes

See #54092 (comment)

Co-authored-by: Rich Tabor <hi@richtabor.com>

* Remove "icon"

Co-authored-by: Nick Diego <nickmdiego@gmail.com>

* Update X icon path

See #54092 (comment)
See #54092 (comment)

---------

Co-authored-by: Aki Hamano <54422211+t-hamano@users.noreply.github.com>
Co-authored-by: Rich Tabor <hi@richtabor.com>
Co-authored-by: Nick Diego <nickmdiego@gmail.com>

* remove font files created by tests after tests run (#54771)

* Check that new pattern is synced before replacing existing blocks with a synced pattern (#54804)

* Patterns: Improve sentence case consistency of labels and notices (#54807)

* Navigation block: fix padding on mobile overlay when global padding is 0 (#53725)

* force min value for padding to be 2rem

* fallback for when the css variables are not defined

* Allow the padding to be smaller than 2rem

* Add fix to avoid trigger hover state on links when overlay opens

---------

Co-authored-by: scruffian <ben@scruffian.com>
Co-authored-by: Dave Smith <getdavemail@gmail.com>

* Always show the total number of patterns even with only one page (#54813)

* Always show the total number of patterns even with only one page

* Add to explorer too

* Hide total number of 0

* Font Library: Avoid rendering Font Library UI outside Gutenberg plugin (#54830)

* Remove action to fix tests. (#54806)

* Conditionally remove deprecated 'print_emoji_styles' (#54828)

* Fix Performance tests

* Fix global styles revision

---------

Co-authored-by: Matias Benedetto <matias.benedetto@gmail.com>
Co-authored-by: Marin Atanasov <8436925+tyxla@users.noreply.github.com>
Co-authored-by: Jeremy Herve <jeremy@jeremy.hu>
Co-authored-by: Aki Hamano <54422211+t-hamano@users.noreply.github.com>
Co-authored-by: Rich Tabor <hi@richtabor.com>
Co-authored-by: Nick Diego <nickmdiego@gmail.com>
Co-authored-by: Glen Davies <glendaviesnz@users.noreply.github.com>
Co-authored-by: Aaron Robertshaw <60436221+aaronrobertshaw@users.noreply.github.com>
Co-authored-by: Maggie <maggie.cabrera@automattic.com>
Co-authored-by: scruffian <ben@scruffian.com>
Co-authored-by: Dave Smith <getdavemail@gmail.com>
Co-authored-by: Kai Hao <kevin830726@gmail.com>
Co-authored-by: Jonny Harris <spacedmonkey@users.noreply.github.com>
Co-authored-by: George Mamadashvili <georgemamadashvili@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Block] Navigation Affects the Navigation Block [Type] Bug An existing feature does not function as intended
Projects
Development

Successfully merging this pull request may close these issues.

Navigation Burger menu > opened > close button inconsistencies (depending the log in status)
6 participants