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

Try: Show metaboxes peeking in even on tiny screens. #20262

Merged
merged 2 commits into from
Feb 21, 2020
Merged

Conversation

jasmussen
Copy link
Contributor

Fixes #19709.

19709 reports that if metaboxes are present on the page, on a new page they might be out of sight below the fold and therefore hard to find.

The CSS to enable the editor to scale as it does is rather complicated and could use a greater refactor. For example, the div that is dedicated to editor-styles-wrapper is currently born with a hard coded top padding, which seems like something the theme should provide. Combine that with various flex rules, and there's an opportunity to make strides here.

But the canvas is currently in the midst of a great deal of open heart surgery with DOM nodes being removed left and right, and lots of other block paddings being revisited in #18667 it really doesn't feel like the right time to rearrange those bits.

In that vein, this PR does the smallest possible thing it can to fix the issue, which is to simply reduce the min-height of the click redirect.

Screenshot 2020-02-17 at 08 13 40

If you make the viewport less tall than this, the left navigation sidebar will start to scroll.

@jasmussen jasmussen self-assigned this Feb 17, 2020
Copy link
Member

@jorgefilipecosta jorgefilipecosta left a comment

Choose a reason for hiding this comment

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

LGTM 👍

@@ -27,7 +27,7 @@

.edit-post-visual-editor .block-editor-writing-flow__click-redirect {
// Allow the page to be scrolled with the last block in the middle.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Just wanted to document with a screenshot, that this is still the case:

Screenshot 2020-02-17 at 15 38 20

@jorgefilipecosta jorgefilipecosta dismissed their stale review February 17, 2020 18:07

we should fix end to end tests before merging

@jasmussen
Copy link
Contributor Author

Thanks, that would explain why the tests keep failing. It looks like this test is failling:

	if ( ! isUnifiedToolbar ) {
		it( 'should not scroll page', async () => {
			while (
				await page.evaluate(
					() =>
						wp.dom.getScrollContainer( document.activeElement )
							.scrollTop === 0
				)
			) {
				await page.keyboard.press( 'Enter' );
			}

			await page.keyboard.type( 'a' );

			const scrollTopBefore = await page.evaluate(
				() =>
					wp.dom.getScrollContainer( document.activeElement )
						.scrollTop
			);

			await pressKeyWithModifier( 'alt', 'F10' );
			expect( await isInBlockToolbar() ).toBe( true );

			const scrollTopAfter = await page.evaluate(
				() =>
					wp.dom.getScrollContainer( document.activeElement )
						.scrollTop
			);

			expect( scrollTopBefore ).toBe( scrollTopAfter );
		} );
	}

I don't understand why that would fail based on this change. I tried more or less manually repeating the test and I see no scrolling happening. How small is the viewport supposed to be?

@youknowriad
Copy link
Contributor

Capture d’écran 2020-02-21 à 9 46 35 AM

I noticed that there's a gray background around metaboxes, I'm pretty sure that's unintended and probably a result of the "preview devices". That said, preview devices is not on 5.4 so it's better to address in a separate PR that is not cherry-picked.

@@ -27,7 +27,7 @@

.edit-post-visual-editor .block-editor-writing-flow__click-redirect {
// Allow the page to be scrolled with the last block in the middle.
min-height: 50vh;
min-height: 40vh;
Copy link
Contributor

Choose a reason for hiding this comment

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

This feels like a random number used to give some space for meta boxes. I'm not sure if we can do better though.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We can, but not without a biggish refactor of the component. There's an argument that it was a bit random before as well — 50vh is half of the entire viewport. But it should have been half of the viewport, minus header, footer and optionally the adminbar if not fullscreen, with extra rules for mobile contexts.

@youknowriad
Copy link
Contributor

I'm not exactly sure why the test was failing (locally it passes). I'm trying a "guess-fix" in the last commit. Let's see how it goes.

@github-actions
Copy link

Size Change: 0 B

Total Size: 864 kB

ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.01 kB 0 B
build/annotations/index.js 3.43 kB 0 B
build/api-fetch/index.js 3.39 kB 0 B
build/autop/index.js 2.58 kB 0 B
build/blob/index.js 620 B 0 B
build/block-directory/index.js 6.02 kB 0 B
build/block-directory/style-rtl.css 760 B 0 B
build/block-directory/style.css 760 B 0 B
build/block-editor/index.js 104 kB 0 B
build/block-editor/style-rtl.css 9.78 kB 0 B
build/block-editor/style.css 9.77 kB 0 B
build/block-library/editor-rtl.css 7.67 kB 0 B
build/block-library/editor.css 7.67 kB 0 B
build/block-library/index.js 114 kB 0 B
build/block-library/style-rtl.css 7.47 kB 0 B
build/block-library/style.css 7.48 kB 0 B
build/block-library/theme-rtl.css 669 B 0 B
build/block-library/theme.css 671 B 0 B
build/block-serialization-default-parser/index.js 1.65 kB 0 B
build/block-serialization-spec-parser/index.js 3.1 kB 0 B
build/blocks/index.js 57.6 kB 0 B
build/components/index.js 190 kB 0 B
build/components/style-rtl.css 16.1 kB 0 B
build/components/style.css 16 kB 0 B
build/compose/index.js 5.76 kB 0 B
build/core-data/index.js 10.5 kB 0 B
build/data-controls/index.js 1.04 kB 0 B
build/data/index.js 8.22 kB 0 B
build/date/index.js 5.36 kB 0 B
build/deprecated/index.js 771 B 0 B
build/dom-ready/index.js 569 B 0 B
build/dom/index.js 3.06 kB 0 B
build/edit-post/index.js 90.7 kB 0 B
build/edit-post/style-rtl.css 8.69 kB 0 B
build/edit-post/style.css 8.68 kB 0 B
build/edit-site/index.js 4.58 kB 0 B
build/edit-site/style-rtl.css 2.77 kB 0 B
build/edit-site/style.css 2.76 kB 0 B
build/edit-widgets/index.js 4.36 kB 0 B
build/edit-widgets/style-rtl.css 2.8 kB 0 B
build/edit-widgets/style.css 2.79 kB 0 B
build/editor/editor-styles-rtl.css 327 B 0 B
build/editor/editor-styles.css 328 B 0 B
build/editor/index.js 45.1 kB 0 B
build/editor/style-rtl.css 4.13 kB 0 B
build/editor/style.css 4.11 kB 0 B
build/element/index.js 4.45 kB 0 B
build/escape-html/index.js 733 B 0 B
build/format-library/index.js 7.6 kB 0 B
build/format-library/style-rtl.css 500 B 0 B
build/format-library/style.css 501 B 0 B
build/hooks/index.js 1.92 kB 0 B
build/html-entities/index.js 621 B 0 B
build/i18n/index.js 3.45 kB 0 B
build/is-shallow-equal/index.js 711 B 0 B
build/keyboard-shortcuts/index.js 2.3 kB 0 B
build/keycodes/index.js 1.68 kB 0 B
build/list-reusable-blocks/index.js 2.99 kB 0 B
build/list-reusable-blocks/style-rtl.css 215 B 0 B
build/list-reusable-blocks/style.css 216 B 0 B
build/media-utils/index.js 4.85 kB 0 B
build/notices/index.js 1.57 kB 0 B
build/nux/index.js 3.02 kB 0 B
build/nux/style-rtl.css 616 B 0 B
build/nux/style.css 613 B 0 B
build/plugins/index.js 2.54 kB 0 B
build/primitives/index.js 1.49 kB 0 B
build/priority-queue/index.js 878 B 0 B
build/redux-routine/index.js 2.84 kB 0 B
build/rich-text/index.js 14.3 kB 0 B
build/server-side-render/index.js 2.54 kB 0 B
build/shortcode/index.js 1.7 kB 0 B
build/token-list/index.js 1.27 kB 0 B
build/url/index.js 4 kB 0 B
build/viewport/index.js 1.61 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.18 kB 0 B

compressed-size-action

@jasmussen
Copy link
Contributor Author

In the past, some very viewport dimension sensitive tests failed due to things like text wrapping in the test VM, but not when we test it manually. That could come down to something as simple as the Linux VM running a different/larger font than us Mac users.

@jasmussen
Copy link
Contributor Author

Tests pass! Thumbs up?

@youknowriad
Copy link
Contributor

Go

@jasmussen
Copy link
Contributor Author

:D I need an approval!

Copy link
Contributor

@youknowriad youknowriad left a comment

Choose a reason for hiding this comment

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

:)

@youknowriad youknowriad added Backport to WP 6.7 Beta/RC Pull request that needs to be backported to the WordPress major release that's currently in beta [Type] Bug An existing feature does not function as intended labels Feb 21, 2020
@jasmussen jasmussen merged commit ec68bb8 into master Feb 21, 2020
@jasmussen jasmussen deleted the try/metabox-fold branch February 21, 2020 10:31
@github-actions github-actions bot added this to the Gutenberg 7.6 milestone Feb 21, 2020
jorgefilipecosta pushed a commit that referenced this pull request Feb 24, 2020
* Try: Show metaboxes peeking in even on tiny screens.

Fixes #19709.

* Try fixing the e2e test

Co-authored-by: Riad Benguella <benguella@gmail.com>
jorgefilipecosta pushed a commit that referenced this pull request Feb 24, 2020
* Try: Show metaboxes peeking in even on tiny screens.

Fixes #19709.

* Try fixing the e2e test

Co-authored-by: Riad Benguella <benguella@gmail.com>
@jorgefilipecosta jorgefilipecosta removed the Backport to WP 6.7 Beta/RC Pull request that needs to be backported to the WordPress major release that's currently in beta label Feb 25, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Type] Bug An existing feature does not function as intended
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Meta boxes are hidden behind a scrollbar
3 participants