-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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: Refresh selection styles #44150
Conversation
Size Change: -212 B (0%) Total Size: 1.27 MB
ℹ️ View Unchanged
|
This comment was marked as resolved.
This comment was marked as resolved.
af03df0
to
6da59d2
Compare
This comment was marked as resolved.
This comment was marked as resolved.
6da59d2
to
748fb63
Compare
Discovered #44220 while working on this. |
889b273
to
bef38d9
Compare
This one is ready for review. |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
bef38d9
to
3f014c8
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I took this for a spin in Chrome and Safari, and while it works really well for selecting multiple types of blocks, one thing I noticed is there is less clarity around partial text selections.
So before, when selecting only part of the text from a few blocks, we have a clear indication of where the selection ends:
Whereas now, with exactly the same selection, the top and bottom blocks don't indicate which part of the text is actually selected (interestingly, the middle ones do 🤔 ):
I'm getting the same result in both browsers btw.
Oh, good feedback, yes! Once you're in multi selection we shouldn't show the partial selection, as it would be inaccurate as to what gets copied to your clipboard when you ⌘C or when you delete. I'll take a look, thanks. |
That's not quite what's happening here: in the example above a partial selection was made across several blocks. In this case, if we don't show the partial selection, it won't be a correct representation of what's actually selected, so we should still be showing it, just make sure it's correct relative to what's selected. |
It's very possible I'm still misunderstanding some nuance here. However I believe that this behavior is intentional, however. As soon as a selection contains an unmergeable block it becomes a multi-selection, as of #42934. |
f410ae1
to
3cda9be
Compare
This comment was marked as resolved.
This comment was marked as resolved.
If the intention with #42934 is to make it impossible to partially select any block that isn't a Paragraph, it's not working as expected 😅 . I was able to do a partial selection with part of a Paragraph, a List, a Quote containing an Image, and part of a Verse block: partial-multi-selection.movBut if partial selection is meant to work between multiple different text-based blocks (which I think makes sense - I'd expect to be able to partially select between Lists, Paragraphs, Quotes, etc.), we should in those instances make the partial selection clear. |
3cda9be
to
eb863c6
Compare
175e816
to
8c1bfcf
Compare
Alright, this PR has been rebased to include fixes from #44330, and now works as intended. Chrome: Safari: It's worth noting that this PR is CSS-only, and although it's a bigger refactor of the block-list CSS, it doesn't change any behavior from trunk in terms of what gets partially selected or not, it's purely highlighting the existing classes that are getting applied. So it should be ready for final review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code looks good!
Tested multi-select and partial select with several block types, as well as multi-select with List View, and moving with keyboard ✅
Yeah, whatever's happening with the partial selections is not caused by this PR, but there seems to be buggy behaviour when selecting across some block types. I'll try to write up a report but I'm not 100% sure what we expect to happen in some of those cases 😅
Thanks for the review, I'll land this and we'll follow up on additional selection enhancements! |
Thanks for the work here, I think this is getting us closer to the sweet spot between partial and block selection. |
* Selection styles: Refresh appearance of multi selection. * Hide partial selection in multi selected nested blocks.
I just cherry-picked this PR to the wp/6.1 branch to get it included in the next release: 5248dfe |
Package updates for bug and regression fixes: @wordpress/block-directory: 3.15.6 @wordpress/block-editor: 10.0.6 @wordpress/block-library: 7.14.6 @wordpress/components: 21.0.5 @wordpress/customize-widgets: 3.14.6 @wordpress/edit-post: 6.14.6 @wordpress/edit-site: 4.14.8 @wordpress/edit-widgets: 4.14.6 @wordpress/editor: 12.16.6 @wordpress/format-library: 3.15.6 @wordpress/interface: 4.16.5 @wordpress/list-reusable-blocks: 3.15.5 @wordpress/nux: 5.15.5 @wordpress/preferences: 2.9.5 @wordpress/reusable-blocks: 3.15.6 @wordpress/server-side-render: 3.15.5 @wordpress/widgets: 2.15.6 References: * [WordPress/gutenberg#43181 Gutenberg PR 43181] - Merge inner blocks if wrappers are equal * [WordPress/gutenberg#44098 Gutenberg PR 44098] - Fix content blocks with nested blocks always appear as top level * [WordPress/gutenberg#44150 Gutenberg PR 44150] - Refresh selection styles * [WordPress/gutenberg#44415 Gutenberg PR 44415] - Removes `__unstableMaxPages` attribute from Page List and Nav blocks * [WordPress/gutenberg#44463 Gutenberg PR 44463] - Follow discussion settings in the comments block edit * [WordPress/gutenberg#44584 Gutenberg PR 44584] - Avoid querying block templates during installation * [WordPress/gutenberg#44637 Gutenberg PR 44637] - Resizable editor: Fix height setting bug * [WordPress/gutenberg#44640 Gutenberg PR 44640] - Only include theme.css if the theme declares support for wp-block-styles * [WordPress/gutenberg#44650 Gutenberg PR 44650] - Fix empty links being created for the author's name comment * [WordPress/gutenberg#44652 Gutenberg PR 44652] - Block Editor: Fix block search for non-Latin characters * [WordPress/gutenberg#44660 Gutenberg PR 44660] - Legacy Group inner block wrapper should work with constrained layout * [WordPress/gutenberg#44676 Gutenberg PR 44676] - Hide list items from content area of content locked blocks * [WordPress/gutenberg#44718 Gutenberg PR 44718] - Margin visualizer: Apply negative value to margins with `calc()` * [WordPress/gutenberg#44721 Gutenberg PR 44721] - Remove anchor support from the navigation block * [WordPress/gutenberg#44731 Gutenberg PR 44731] - Buttons: Add specificity for the editor Follow-up to [54257], [54335], and [54383]. Props bernhard-reiter, czapla, annezazu, cbravobernal, ndiego, bjorsch, nendeb55. See #56467. git-svn-id: https://develop.svn.wordpress.org/trunk@54483 602fd350-edb4-49c9-b593-d223f7449a82
Package updates for bug and regression fixes: @wordpress/block-directory: 3.15.6 @wordpress/block-editor: 10.0.6 @wordpress/block-library: 7.14.6 @wordpress/components: 21.0.5 @wordpress/customize-widgets: 3.14.6 @wordpress/edit-post: 6.14.6 @wordpress/edit-site: 4.14.8 @wordpress/edit-widgets: 4.14.6 @wordpress/editor: 12.16.6 @wordpress/format-library: 3.15.6 @wordpress/interface: 4.16.5 @wordpress/list-reusable-blocks: 3.15.5 @wordpress/nux: 5.15.5 @wordpress/preferences: 2.9.5 @wordpress/reusable-blocks: 3.15.6 @wordpress/server-side-render: 3.15.5 @wordpress/widgets: 2.15.6 References: * [WordPress/gutenberg#43181 Gutenberg PR 43181] - Merge inner blocks if wrappers are equal * [WordPress/gutenberg#44098 Gutenberg PR 44098] - Fix content blocks with nested blocks always appear as top level * [WordPress/gutenberg#44150 Gutenberg PR 44150] - Refresh selection styles * [WordPress/gutenberg#44415 Gutenberg PR 44415] - Removes `__unstableMaxPages` attribute from Page List and Nav blocks * [WordPress/gutenberg#44463 Gutenberg PR 44463] - Follow discussion settings in the comments block edit * [WordPress/gutenberg#44584 Gutenberg PR 44584] - Avoid querying block templates during installation * [WordPress/gutenberg#44637 Gutenberg PR 44637] - Resizable editor: Fix height setting bug * [WordPress/gutenberg#44640 Gutenberg PR 44640] - Only include theme.css if the theme declares support for wp-block-styles * [WordPress/gutenberg#44650 Gutenberg PR 44650] - Fix empty links being created for the author's name comment * [WordPress/gutenberg#44652 Gutenberg PR 44652] - Block Editor: Fix block search for non-Latin characters * [WordPress/gutenberg#44660 Gutenberg PR 44660] - Legacy Group inner block wrapper should work with constrained layout * [WordPress/gutenberg#44676 Gutenberg PR 44676] - Hide list items from content area of content locked blocks * [WordPress/gutenberg#44718 Gutenberg PR 44718] - Margin visualizer: Apply negative value to margins with `calc()` * [WordPress/gutenberg#44721 Gutenberg PR 44721] - Remove anchor support from the navigation block * [WordPress/gutenberg#44731 Gutenberg PR 44731] - Buttons: Add specificity for the editor Follow-up to [54257], [54335], and [54383]. Props bernhard-reiter, czapla, annezazu, cbravobernal, ndiego, bjorsch, nendeb55. See #56467. Built from https://develop.svn.wordpress.org/trunk@54483 git-svn-id: http://core.svn.wordpress.org/trunk@54042 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Package updates for bug and regression fixes: @wordpress/block-directory: 3.15.6 @wordpress/block-editor: 10.0.6 @wordpress/block-library: 7.14.6 @wordpress/components: 21.0.5 @wordpress/customize-widgets: 3.14.6 @wordpress/edit-post: 6.14.6 @wordpress/edit-site: 4.14.8 @wordpress/edit-widgets: 4.14.6 @wordpress/editor: 12.16.6 @wordpress/format-library: 3.15.6 @wordpress/interface: 4.16.5 @wordpress/list-reusable-blocks: 3.15.5 @wordpress/nux: 5.15.5 @wordpress/preferences: 2.9.5 @wordpress/reusable-blocks: 3.15.6 @wordpress/server-side-render: 3.15.5 @wordpress/widgets: 2.15.6 References: * [WordPress/gutenberg#43181 Gutenberg PR 43181] - Merge inner blocks if wrappers are equal * [WordPress/gutenberg#44098 Gutenberg PR 44098] - Fix content blocks with nested blocks always appear as top level * [WordPress/gutenberg#44150 Gutenberg PR 44150] - Refresh selection styles * [WordPress/gutenberg#44415 Gutenberg PR 44415] - Removes `__unstableMaxPages` attribute from Page List and Nav blocks * [WordPress/gutenberg#44463 Gutenberg PR 44463] - Follow discussion settings in the comments block edit * [WordPress/gutenberg#44584 Gutenberg PR 44584] - Avoid querying block templates during installation * [WordPress/gutenberg#44637 Gutenberg PR 44637] - Resizable editor: Fix height setting bug * [WordPress/gutenberg#44640 Gutenberg PR 44640] - Only include theme.css if the theme declares support for wp-block-styles * [WordPress/gutenberg#44650 Gutenberg PR 44650] - Fix empty links being created for the author's name comment * [WordPress/gutenberg#44652 Gutenberg PR 44652] - Block Editor: Fix block search for non-Latin characters * [WordPress/gutenberg#44660 Gutenberg PR 44660] - Legacy Group inner block wrapper should work with constrained layout * [WordPress/gutenberg#44676 Gutenberg PR 44676] - Hide list items from content area of content locked blocks * [WordPress/gutenberg#44718 Gutenberg PR 44718] - Margin visualizer: Apply negative value to margins with `calc()` * [WordPress/gutenberg#44721 Gutenberg PR 44721] - Remove anchor support from the navigation block * [WordPress/gutenberg#44731 Gutenberg PR 44731] - Buttons: Add specificity for the editor Follow-up to [54257], [54335], and [54383]. Props bernhard-reiter, czapla, annezazu, cbravobernal, ndiego, bjorsch, nendeb55. See #56467. Built from https://develop.svn.wordpress.org/trunk@54483 git-svn-id: https://core.svn.wordpress.org/trunk@54042 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Package updates for bug and regression fixes: @wordpress/block-directory: 3.15.6 @wordpress/block-editor: 10.0.6 @wordpress/block-library: 7.14.6 @wordpress/components: 21.0.5 @wordpress/customize-widgets: 3.14.6 @wordpress/edit-post: 6.14.6 @wordpress/edit-site: 4.14.8 @wordpress/edit-widgets: 4.14.6 @wordpress/editor: 12.16.6 @wordpress/format-library: 3.15.6 @wordpress/interface: 4.16.5 @wordpress/list-reusable-blocks: 3.15.5 @wordpress/nux: 5.15.5 @wordpress/preferences: 2.9.5 @wordpress/reusable-blocks: 3.15.6 @wordpress/server-side-render: 3.15.5 @wordpress/widgets: 2.15.6 References: * [WordPress/gutenberg#43181 Gutenberg PR 43181] - Merge inner blocks if wrappers are equal * [WordPress/gutenberg#44098 Gutenberg PR 44098] - Fix content blocks with nested blocks always appear as top level * [WordPress/gutenberg#44150 Gutenberg PR 44150] - Refresh selection styles * [WordPress/gutenberg#44415 Gutenberg PR 44415] - Removes `__unstableMaxPages` attribute from Page List and Nav blocks * [WordPress/gutenberg#44463 Gutenberg PR 44463] - Follow discussion settings in the comments block edit * [WordPress/gutenberg#44584 Gutenberg PR 44584] - Avoid querying block templates during installation * [WordPress/gutenberg#44637 Gutenberg PR 44637] - Resizable editor: Fix height setting bug * [WordPress/gutenberg#44640 Gutenberg PR 44640] - Only include theme.css if the theme declares support for wp-block-styles * [WordPress/gutenberg#44650 Gutenberg PR 44650] - Fix empty links being created for the author's name comment * [WordPress/gutenberg#44652 Gutenberg PR 44652] - Block Editor: Fix block search for non-Latin characters * [WordPress/gutenberg#44660 Gutenberg PR 44660] - Legacy Group inner block wrapper should work with constrained layout * [WordPress/gutenberg#44676 Gutenberg PR 44676] - Hide list items from content area of content locked blocks * [WordPress/gutenberg#44718 Gutenberg PR 44718] - Margin visualizer: Apply negative value to margins with `calc()` * [WordPress/gutenberg#44721 Gutenberg PR 44721] - Remove anchor support from the navigation block * [WordPress/gutenberg#44731 Gutenberg PR 44731] - Buttons: Add specificity for the editor Follow-up to [54257], [54335], and [54383]. Props bernhard-reiter, czapla, annezazu, cbravobernal, ndiego, bjorsch, nendeb55. See #56467. git-svn-id: https://develop.svn.wordpress.org/trunk@54483 602fd350-edb4-49c9-b593-d223f7449a82
What?
Followup to #44148 and #44154. This PR does a few things:
::before
pseudo element used on all blocks. At the moment,::after
is still needed, both for the overlay and for the focus style.See recent details in this comment: #44150 (comment)
Previous issue contents
Here's Safari before any changes mentioned above:
Note how the selection indicator is a bit all over the place.
Here's after:
Note how selection is clearer, and the jump from partial selections to multi selection feels a bit more native. It also helps to not confuse with "highlight", focus, and navigation mode styles.
Testing Instructions