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

Show ellipsis menu in the List View #35170

Merged
merged 14 commits into from
Oct 11, 2021

Conversation

noisysocks
Copy link
Member

Description

Enables the List View's ellipsis menu (block settings menu) in the Site Editor. This lets you copy, duplicate, remove, etc. blocks from within the List View.

It's a fairly straightforward PR because this functionality was added in #22427 but only enabled in the Navigation screen.

It also means that you can access the isolated template part editor by opening the menu and selecting e.g. Edit header. As such, this PR serves as a "quick win" alternative to "List view as an icon button" in #33926.

How has this been tested?

  1. Enable a block theme e.g. TT1-Blocks
  2. Open the Site Editor
  3. Open the List view

Screenshots

Kapture.2021-09-28.at.15.53.55.mp4

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

@noisysocks noisysocks added [Type] Enhancement A suggestion for improvement. [Feature] List View Menu item in the top toolbar to select blocks from a list of links. [Feature] Block settings menu The block settings screen labels Sep 28, 2021
@noisysocks
Copy link
Member Author

noisysocks commented Sep 28, 2021

@mtias @jameskoster @kevin940726: What do you think of this as an alternative to / in addition to "List view as an icon button" in #33926? If we're into the basic premise then I can work on polishing it up. It's much easier to do this than to add a dedicated button as it exists already and so we don't have to solve #32294.

@github-actions
Copy link

github-actions bot commented Sep 28, 2021

Size Change: +2.83 kB (0%)

Total Size: 1.07 MB

Filename Size Change
build/block-editor/index.min.js 134 kB -482 B (0%)
build/block-editor/style-rtl.css 13.9 kB +47 B (0%)
build/block-editor/style.css 13.9 kB +47 B (0%)
build/block-library/blocks/cover/style-rtl.css 1.17 kB -56 B (-5%)
build/block-library/blocks/cover/style.css 1.17 kB -56 B (-5%)
build/block-library/blocks/navigation/editor-rtl.css 1.72 kB -2 B (0%)
build/block-library/blocks/navigation/editor.css 1.72 kB -1 B (0%)
build/block-library/blocks/site-logo/editor-rtl.css 769 B +303 B (+65%) 🆘
build/block-library/blocks/site-logo/editor.css 769 B +302 B (+65%) 🆘
build/block-library/blocks/site-logo/style-rtl.css 165 B +12 B (+8%) 🔍
build/block-library/blocks/site-logo/style.css 165 B +12 B (+8%) 🔍
build/block-library/editor-rtl.css 9.89 kB +179 B (+2%)
build/block-library/editor.css 9.89 kB +179 B (+2%)
build/block-library/index.min.js 148 kB +959 B (+1%)
build/block-library/style-rtl.css 10.3 kB -83 B (-1%)
build/block-library/style.css 10.4 kB -76 B (-1%)
build/components/index.min.js 217 kB +2.86 kB (+1%)
build/components/style-rtl.css 15.3 kB -652 B (-4%)
build/components/style.css 15.3 kB -647 B (-4%)
build/dom/index.min.js 4.47 kB +15 B (0%)
build/edit-post/index.min.js 29.2 kB +3 B (0%)
build/edit-site/index.min.js 29.5 kB +31 B (0%)
build/reusable-blocks/index.min.js 2.19 kB -90 B (-4%)
build/server-side-render/index.min.js 1.52 kB +25 B (+2%)
ℹ️ 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/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 491 B
build/block-library/blocks/image/style.css 494 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 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/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/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 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-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/reset-rtl.css 474 B
build/block-library/reset.css 474 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/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/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-post/style-rtl.css 7.2 kB
build/edit-post/style.css 7.19 kB
build/edit-site/style-rtl.css 5.5 kB
build/edit-site/style.css 5.5 kB
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/index.min.js 37.5 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/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/rich-text/index.min.js 10.6 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

@mtias
Copy link
Member

mtias commented Sep 28, 2021

I think this could be fine to try, but the hover outline effect feels a bit awkward now in this split view. Perhaps we should consider removing it.

@jasmussen
Copy link
Contributor

This is cool. I took it for a spin. Here's a GIF of the experience in the site editor:
list view

I'm seeing a few things there:

  • Clicking a block no longer scrolls it into view.
  • I don't appear to be able to select a block anymore.
  • The heuristic for showing the ellipsis feels a bit fiddly.

Here's the list view in the post editor:

post editor

Note how I can click to select a block and it scrolls into view. It's possible the difference in behavior is due to the ellipsis being optimized for the navigation context, where selecting the block closes the modal:

nav

I know that @gwwar has been looking at some improvements to the nav block list view recently, she might have some insights into the inner workings.

Aside from getting the select behavior right, I wonder if we should change what makes the ellipsis appear. It feels a bit noisy, and the fact that the blue focus style doesn't extend the full width tips the balance a bit. Could we make the ellipsis appear only on-select?

@jameskoster
Copy link
Contributor

Personally I don't mind the ellipsis appearing on hover, but agree that the outlines are looking a bit odd. I suppose it was built this way since buttons cannot live inside other buttons, but hopefully there's a workaround the achieve something like:

outline.mp4

Alternatively, we can argue that if the ellipsis appears on hover then it is essentially doing the same job as the outline – visually highlighting the hovered block:

no-outline.mp4

If so we can probably remove it altogether as Matias suggested.

@mtias
Copy link
Member

mtias commented Sep 28, 2021

To clarify, I'm fine with the ellipsis appearing only on hover / focus — I don't think the split outline is working well.

@gwwar
Copy link
Contributor

gwwar commented Sep 28, 2021

I think it's great to give folks more options to perform actions from list view. I've found myself trying to delete items from the interface.

Have we considered a right-click to show options, or has this already been ruled out? These are secondary actions and I personally find the ellipsis to be distracting in this context. Not rendering another column would also leave open the option to move away from using tree-grid.

I'd need to double check this, but I think the keyboard shortcut could be the menu key or shift+F10

@jasmussen
Copy link
Contributor

Have we considered a right-click to show options, or has this already been ruled out? These are secondary actions and I personally find the ellipsis to be distracting in this context. Not rendering another column would also leave open the option to move away from using tree-grid.

As the project becomes more application like, I do think a right-click menu could eventually make sense, but it seems like something to explore once it becomes more necessary. At the moment there are valuable options in the default right click menu.

To reduce the noise, the ellipsis could be visible only when a block has been selected first. Not a strong opinion.

@mtias
Copy link
Member

mtias commented Sep 29, 2021

Deleting and insert before / after would be great to have in the menu.

@kevin940726
Copy link
Member

I think this is great and a better experience than icon button in #33926. We just need to figure out the design and the accessibility story of it (tab order, outline style, etc).

@talldan
Copy link
Contributor

talldan commented Sep 30, 2021

We just need to figure out the design and the accessibility story of it (tab order, outline style, etc).

It should use a roving tab index, and be navigable using arrow, just testing and it still works, so hopefully just the visual style to resolve.

Clicking a block no longer scrolls it into view.
I don't appear to be able to select a block anymore.

Good observations. IIRC it was done this way because List View used to be in a popover, and selecting the block would unfocus List View causing the popover to close. So the solution was a 'soft selection', but this might be buggy now. Also no longer needed in the site editor with the persistent list view, so this could be changed. There's also a 'Go to block' option in the ellipsis menu that can be removed if that does change.

@talldan
Copy link
Contributor

talldan commented Sep 30, 2021

@jameskoster I think a user using keyboard navigation would still need to know which button has focus, the button that selects the block or the button that opens the dropdown. Maybe hover can behave differently though. What do you think?

@mtias
Copy link
Member

mtias commented Sep 30, 2021

Yes, we need the outlines for focus but not hover.

@noisysocks
Copy link
Member Author

Thanks for the feedback everyone! I'll work on showing the outline on focus but not hover and removing the "soft selection".

Deleting and insert before / after would be great to have in the menu.

@mtias: These three options are already in the ellipsis menu. Or am I misunderstanding you? 🙂

I think this is great and a better experience than icon button in #33926. We just need to figure out the design and the accessibility story of it (tab order, outline style, etc).

Yep as @talldan says the accessibility story here is already pretty good as it uses a tree grid with roving tab index. It's not until we want to add a variable number of action buttons to the List View that things get complicated, see #32294. I think this can be "later's problem" for now.

@mtias
Copy link
Member

mtias commented Oct 1, 2021

@noisysocks I mean that it's great to get them finally exposed as part of this work :D

@noisysocks
Copy link
Member Author

OK, I've removed the "soft selection" so that selecting an item in the List View always selects the block and made it so that the button outline appears on focus but not hover.

I've also enabled these changes in the post editor so that the ellipsis menu can indicate which item is being hovered over as per the second mockup in #35170 (comment). It's also just a useful thing to have.

I think we need to do something about the blue background that appears when a block with children is selected, but I'm not sure what. It looks a little awkward that the background doesn't go to the edge of the sidebar:

Screen Shot 2021-10-06 at 14 12 48

If we do make the background go to the edge, it looks even more awkward because of the button focus outline:

Screen Shot 2021-10-06 at 14 21 51

Any ideas? Or is it only a problem in my mind? 😀

@noisysocks noisysocks marked this pull request as ready for review October 6, 2021 03:24
@noisysocks noisysocks requested a review from ellatrix as a code owner October 6, 2021 03:24
Copy link
Member

@kevin940726 kevin940726 left a comment

Choose a reason for hiding this comment

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

LGTM 👍

@jasmussen
Copy link
Contributor

Here's a quick before shot:

Screenshot 2021-10-07 at 09 13 07

Here's after:

Screenshot 2021-10-07 at 09 13 26

Screenshot 2021-10-07 at 09 13 31

I think we need to do something about the blue background that appears when a block with children is selected, but I'm not sure what. It looks a little awkward that the background doesn't go to the edge of the sidebar:

Let's address this before we merge. The current state is not great. I'll dive into a quick mockup.

@jasmussen
Copy link
Contributor

Question: how do I set focus on the block, from the list view? Roving focus and enter selects the block in the list view. But how do I get to the block in the canvas?

@noisysocks noisysocks force-pushed the try/add-ellipsis-button-to-site-editor-list-view branch from eb8e182 to 510af3e Compare October 8, 2021 05:45
@noisysocks
Copy link
Member Author

Here's a quick mock of how the items could go full width and have the ellipsis inside:

Looks great! Thanks so much. I'll get to work on it.

Question: how do I set focus on the block, from the list view? Roving focus and enter selects the block in the list view. But how do I get to the block in the canvas?

That's a good catch. I think it should work the same as in trunk. Testing and it doesn't though. (possibly also the cause of the e2e test failure)

Fixed. Good catch 😀

@noisysocks
Copy link
Member Author

One minor thing – does the active blocks ellipsis button need a hover state? I mention this only because all other instances of this button do have one, and it can help clarify the hitbox for mouse/trackpad users.

The ellipsis turns blue on hover. It's not particularly noticeable though.

@jasmussen
Copy link
Contributor

The behavior now feels pretty solid:
close

But it would be the cherry on top if we could also get the full-width-on-select style going before we land this.

@noisysocks
Copy link
Member Author

OK, I think I've got the focus styling working as described in #35170 (comment). Please feel free to push up any tweaks.

Kapture.2021-10-08.at.18.30.45.mp4

@noisysocks noisysocks changed the title Site Editor: Try showing ellipsis menu in the List View Site Editor: Show ellipsis menu in the List View Oct 8, 2021
@noisysocks noisysocks changed the title Site Editor: Show ellipsis menu in the List View Show ellipsis menu in the List View Oct 8, 2021
@jasmussen
Copy link
Contributor

jasmussen commented Oct 8, 2021

The video looks solid, but did you push the changes? I'm still seeing this:
Screenshot 2021-10-08 at 09 45 03

Edit: my mistake, I forgot to pull. Apologies, be back in a moment.

@jasmussen
Copy link
Contributor

Unlike my previous comment, your code looks fine:
list view

The ellipsis is now invisible onselect until you hover. It seems like could just be permanently visible there. A nice detail, but things look good from here now. Thank you!

@mtias
Copy link
Member

mtias commented Oct 8, 2021

Yes, makes sense to make it visible on select all the time.

@jameskoster
Copy link
Contributor

The ellipsis turns blue on hover. It's not particularly noticeable though.

Sorry, I meant the white ellipsis that appears on the selected block.

@noisysocks
Copy link
Member Author

noisysocks commented Oct 11, 2021

The ellipsis is now invisible onselect until you hover. It seems like could just be permanently visible there. A nice detail, but things look good from here now. Thank you!

Done!

The ellipsis turns blue on hover. It's not particularly noticeable though.

Sorry, I meant the white ellipsis that appears on the selected block.

Ah I see! A hover state would be nice. How should it appear, though? We can't turn it blue because then it will not be visible against the blue background.

@noisysocks
Copy link
Member Author

I think this is in a pretty good state so going to merge once tests pass. We can keep iterating in follow-up PRs 🙂

@kevin940726 kevin940726 merged commit 5b54f87 into trunk Oct 11, 2021
@kevin940726 kevin940726 deleted the try/add-ellipsis-button-to-site-editor-list-view branch October 11, 2021 03:39
@github-actions github-actions bot added this to the Gutenberg 11.8 milestone Oct 11, 2021
@gwwar
Copy link
Contributor

gwwar commented Oct 11, 2021

cc @noisysocks @kevin940726 I think this one broke expand/collapse clicks. Keyboard events look okay

Edit: added #35526

CleanShot.2021-10-11.at.11.28.34.mp4
CleanShot.2021-10-11.at.11.28.47.mp4

@noisysocks
Copy link
Member Author

Oops! Thanks @gwwar.

@noisysocks noisysocks mentioned this pull request Oct 18, 2021
13 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Feature] Block settings menu The block settings screen [Feature] List View Menu item in the top toolbar to select blocks from a list of links. [Type] Enhancement A suggestion for improvement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants