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

Hide horizontal overflow in Navigator #35332

Merged
merged 8 commits into from
Oct 11, 2021

Conversation

stokesman
Copy link
Contributor

@stokesman stokesman commented Oct 4, 2021

Simple alternative to #35317. This adds overflow-x: hidden to the root element of Navigator.

Explanation

I think the more complex approach in the aforementioned PR isn't warranted. It came about to make sure popovers inside of Navigator wouldn't be clipped or hidden.

I don't like overflow: hidden as a way to solve the scrolling issue, we can't use as otherwise we may risk hiding popovers shown inside that div potentially.

#35214 (comment)

However, if the popovers are from @wordpress/components there's not a risk as they portal to a safe place in the tree. If we are then worried about third-party components, we don't have to. There's no use of Navigator in core that has slots for expansion. Even were they to have slots, they are already nested in contexts that would clip a naive dropdown/dialog/popover anyway.

How has this been tested?

In the Post Editor preferences modal. Also tested in a version of the storybook story I adapted for a sidebar plugin. Seen in the screenshots.

Screenshots

Before After
before-navigator-overflow-x after-navigator-overflow-x
note the horizontal scrollbar appearing ^ note there's no horizontal scrollbar

Types of changes

Bug fix

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).

@stokesman stokesman added the [Package] Components /packages/components label Oct 4, 2021
@stokesman stokesman requested a review from ciampo October 4, 2021 21:54
Base automatically changed from feat/components-navigator-typescript-refactor to trunk October 5, 2021 15:13
@ciampo ciampo force-pushed the fix/components-navigator-horizontal-scrollbar branch from ae5889a to a0a1b74 Compare October 5, 2021 17:06
@ciampo
Copy link
Contributor

ciampo commented Oct 5, 2021

I took the liberty of rebasing / force pushing after #35214 got merged.

I also started a conversation in #35317 (comment) about which approach between the 2 PRs is the most sensible for now.

@stokesman
Copy link
Contributor Author

stokesman commented Oct 6, 2021

Thanks to @mirka’s comment #35317 (comment), I've pushed a commit to add oveflow-x auto to NavigatorScreen. It seems to work well as a safety measure for unexpected or edge cases while still keeping things pretty simple.

after-navigator-overflow-x-screen-auto.mp4

@ciampo ciampo added [Feature] UI Components Impacts or related to the UI component system [Type] Bug An existing feature does not function as intended labels Oct 6, 2021
@ciampo
Copy link
Contributor

ciampo commented Oct 6, 2021

@stokesman , would you mind also updating the Storybook example to add:

  • a screen with a dialog/dropdown/popover
  • a screen which scrolls because of its contents overflowing

I think they would add value to the Storybook example.

stokesman and others added 4 commits October 6, 2021 08:08
@stokesman
Copy link
Contributor Author

@ciampo, thank you for the review. I've included your suggestions.

@github-actions
Copy link

github-actions bot commented Oct 6, 2021

Size Change: +617 B (0%)

Total Size: 1.07 MB

Filename Size Change
build/block-editor/index.min.js 134 kB +93 B (0%)
build/block-editor/style-rtl.css 13.9 kB -64 B (0%)
build/block-editor/style.css 13.9 kB -63 B (0%)
build/block-library/blocks/image/editor-rtl.css 731 B +3 B (0%)
build/block-library/blocks/image/editor.css 730 B +2 B (0%)
build/block-library/blocks/image/style-rtl.css 491 B +9 B (+2%)
build/block-library/blocks/image/style.css 494 B +7 B (+1%)
build/block-library/blocks/media-text/style-rtl.css 493 B +5 B (+1%)
build/block-library/blocks/media-text/style.css 490 B +5 B (+1%)
build/block-library/blocks/post-featured-image/editor-rtl.css 396 B -2 B (-1%)
build/block-library/blocks/post-featured-image/editor.css 397 B -1 B (0%)
build/block-library/blocks/site-logo/editor-rtl.css 466 B +4 B (+1%)
build/block-library/blocks/site-logo/editor.css 467 B +3 B (+1%)
build/block-library/editor-rtl.css 9.72 kB -3 B (0%)
build/block-library/editor.css 9.71 kB -4 B (0%)
build/block-library/index.min.js 147 kB +197 B (0%)
build/block-library/reset-rtl.css 474 B -62 B (-12%) 👏
build/block-library/reset.css 474 B -62 B (-12%) 👏
build/block-library/style-rtl.css 10.4 kB -2 B (0%)
build/block-library/style.css 10.4 kB -2 B (0%)
build/components/index.min.js 214 kB +97 B (0%)
build/components/style-rtl.css 15.9 kB -3 B (0%)
build/components/style.css 15.9 kB -2 B (0%)
build/customize-widgets/index.min.js 11.2 kB +75 B (+1%)
build/edit-post/index.min.js 29.2 kB +3 B (0%)
build/edit-post/style-rtl.css 7.2 kB +11 B (0%)
build/edit-post/style.css 7.19 kB +10 B (0%)
build/edit-site/index.min.js 29.2 kB +233 B (+1%)
build/edit-site/style-rtl.css 5.5 kB +69 B (+1%)
build/edit-site/style.css 5.5 kB +69 B (+1%)
build/editor/index.min.js 37.5 kB -8 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-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 600 B
build/block-library/blocks/button/style.css 600 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 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 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 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/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/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 300 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.72 kB
build/block-library/blocks/navigation/editor.css 1.72 kB
build/block-library/blocks/navigation/style-rtl.css 1.62 kB
build/block-library/blocks/navigation/style.css 1.61 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/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-excerpt/editor-rtl.css 73 B
build/block-library/blocks/post-excerpt/editor.css 73 B
build/block-library/blocks/post-excerpt/style-rtl.css 69 B
build/block-library/blocks/post-excerpt/style.css 69 B
build/block-library/blocks/post-featured-image/style-rtl.css 146 B
build/block-library/blocks/post-featured-image/style.css 146 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-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 187 B
build/block-library/blocks/quote/style.css 187 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/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.3 kB
build/block-library/blocks/social-links/style.css 1.3 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/common-rtl.css 853 B
build/block-library/common.css 849 B
build/block-library/theme-rtl.css 665 B
build/block-library/theme.css 669 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 45.7 kB
build/compose/index.min.js 10.3 kB
build/core-data/index.min.js 12.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.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.45 kB
build/edit-navigation/index.min.js 15.3 kB
build/edit-navigation/style-rtl.css 3.74 kB
build/edit-navigation/style.css 3.74 kB
build/edit-post/classic-rtl.css 492 B
build/edit-post/classic.css 494 B
build/edit-widgets/index.min.js 15.7 kB
build/edit-widgets/style-rtl.css 4.1 kB
build/edit-widgets/style.css 4.1 kB
build/editor/style-rtl.css 3.76 kB
build/editor/style.css 3.75 kB
build/element/index.min.js 3.17 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.28 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.5 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

@mirka
Copy link
Member

mirka commented Oct 6, 2021

Best of both worlds, then! I think we can go with this simpler approach unless other compelling reasons crop up.

@stokesman
Copy link
Contributor Author

stokesman commented Oct 6, 2021

Best of both worlds, then!

Props to you for that @mirka. Thanks for your input!

Copy link
Contributor

@ciampo ciampo left a comment

Choose a reason for hiding this comment

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

Thank you for working on this alternative approach for hiding the horizontal overflow, @stokesman !

Let's go ahead with this PR and close #35317 for now. We can always revisit at a later point.

I would only consider applying some minor changes to the Storybook example (to improve the spacing and move away from inline styles)

(see proposed changes)
diff --git a/packages/components/src/navigator/stories/index.js b/packages/components/src/navigator/stories/index.js
index 56dd4bc331..ca357071cf 100644
--- a/packages/components/src/navigator/stories/index.js
+++ b/packages/components/src/navigator/stories/index.js
@@ -1,9 +1,16 @@
+/**
+ * External dependencies
+ */
+import { css } from '@emotion/react';
+
 /**
  * Internal dependencies
  */
 import Button from '../../button';
 import { CardBody, CardHeader } from '../../card';
+import { HStack } from '../../h-stack';
 import { Flyout } from '../../flyout';
+import { useCx } from '../../utils';
 import { NavigatorProvider, NavigatorScreen, useNavigator } from '../';
 
 export default {
@@ -21,57 +28,74 @@ function NavigatorButton( { path, isBack = false, ...props } ) {
 	);
 }
 
-const MyNavigation = () => (
-	<NavigatorProvider initialPath="/">
-		<NavigatorScreen path="/">
-			<p>This is the home screen.</p>
+const MyNavigation = () => {
+	const cx = useCx();
+	const screenClassName = cx(
+		css`
+			padding: 8px;
+		`
+	);
+	return (
+		<NavigatorProvider initialPath="/">
+			<NavigatorScreen className={ screenClassName } path="/">
+				<p>This is the home screen.</p>
 
-			<NavigatorButton isPrimary path="/child">
-				Navigate to child screen.
-			</NavigatorButton>
+				<HStack justify="flex-start" wrap>
+					<NavigatorButton isPrimary path="/child">
+						Navigate to child screen.
+					</NavigatorButton>
 
-			<NavigatorButton isPrimary path="/overflow-child">
-				Navigate to a screen with horizontal overflow.
-			</NavigatorButton>
+					<NavigatorButton isPrimary path="/overflow-child">
+						Navigate to a screen with horizontal overflow.
+					</NavigatorButton>
 
-			<Flyout
-				trigger={ <Button>Click top open test dialog</Button> }
-				placement="bottom-start"
-			>
-				<CardHeader>Go</CardHeader>
-				<CardBody>Stuff</CardBody>
-			</Flyout>
-		</NavigatorScreen>
+					<Flyout
+						trigger={ <Button>Click top open test dialog</Button> }
+						placement="bottom-start"
+					>
+						<CardHeader>Go</CardHeader>
+						<CardBody>Stuff</CardBody>
+					</Flyout>
+				</HStack>
+			</NavigatorScreen>
 
-		<NavigatorScreen path="/child">
-			<p>This is the child screen.</p>
-			<NavigatorButton isPrimary path="/" isBack>
-				Go back
-			</NavigatorButton>
-		</NavigatorScreen>
-		<NavigatorScreen path="/overflow-child">
-			<NavigatorButton isPrimary path="/" isBack>
-				Go back
-			</NavigatorButton>
-			<div
-				style={ {
-					display: 'inline-block',
-					background: 'papayawhip',
-				} }
+			<NavigatorScreen className={ screenClassName } path="/child">
+				<p>This is the child screen.</p>
+				<NavigatorButton isPrimary path="/" isBack>
+					Go back
+				</NavigatorButton>
+			</NavigatorScreen>
+			<NavigatorScreen
+				className={ screenClassName }
+				path="/overflow-child"
 			>
-				<span
-					style={ {
-						color: 'palevioletred',
-						whiteSpace: 'nowrap',
-						fontSize: '42vw',
-					} }
+				<NavigatorButton isPrimary path="/" isBack>
+					Go back
+				</NavigatorButton>
+				<div
+					className={ cx(
+						css( {
+							display: 'inline-block',
+							background: 'papayawhip',
+						} )
+					) }
 				>
-					¯\_(ツ)_/¯
-				</span>
-			</div>
-		</NavigatorScreen>
-	</NavigatorProvider>
-);
+					<span
+						className={ cx(
+							css( {
+								color: 'palevioletred',
+								whiteSpace: 'nowrap',
+								fontSize: '42vw',
+							} )
+						) }
+					>
+						¯\_(ツ)_/¯
+					</span>
+				</div>
+			</NavigatorScreen>
+		</NavigatorProvider>
+	);
+};
 
 export const _default = () => {
 	return <MyNavigation />;

but otherwise, feel free to merge!

Co-authored-by: Marco Ciampini <marco.ciampo@gmail.com>
@stokesman stokesman merged commit ba37ffd into trunk Oct 11, 2021
@stokesman stokesman deleted the fix/components-navigator-horizontal-scrollbar branch October 11, 2021 00:36
@github-actions github-actions bot added this to the Gutenberg 11.8 milestone Oct 11, 2021
@stokesman
Copy link
Contributor Author

Merging this made for issues with the Post Editor’s preferences modal (@ < medium breakpoints). I was aware of the impending issues and had #35369 drafted in preparation. Now it's rebased and marked as ready for review. Mentioning it here for the context and in case @ciampo or @mirka would care to have a look. It doesn't seem urgent as everything is still usable but it'd still be nice to have fixed before a release.

By the way, #35317 would have made for the same issues they just would have been easier to overlook as they'd present only during the transition. I'd tested both approaches against that preferences modal ahead of time. I've also made #35518 to provide some more detail about the part related to sticky positioning and propose a little enhancement. I think it's not very important though.

@ciampo
Copy link
Contributor

ciampo commented Oct 11, 2021

Thank you for letting us know. I'm going to take a look!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Feature] UI Components Impacts or related to the UI component system [Package] Components /packages/components [Type] Bug An existing feature does not function as intended
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants