microsoft / vscode

Visual Studio Code
https://code.visualstudio.com
MIT License
163.74k stars 29.1k forks source link

Explore more obvious section headers in quick pick #149057

Open daviddossett opened 2 years ago

daviddossett commented 2 years ago

The right-aligned label text has always been slightly confusing to me as a pattern to separate sections in quick pick lists. I think it's worth exploring how we might make these more obvious while still using vertical space efficiently.

Current

CleanShot 2022-05-08 at 21 29 37@2x

Examples

GitHub

CleanShot 2022-05-08 at 21 30 48@2x

Raycast

CleanShot 2022-05-08 at 21 31 09@2x

cc @lychung7 @misolori

jaeyonglee8687 commented 2 years ago

Sharing another example

Runner Pro https://docs.sketchrunner.com/search-commands/run

image
daviddossett commented 2 years ago

A couple of possible solutions within the current quick pick design:

CleanShot 2022-06-10 at 10 52 15@2x CleanShot 2022-06-10 at 10 52 20@2x
daviddossett commented 2 years ago

This could also be extended into an idea I had for a "comfortable" density mode for the quick pick/command palette.

CleanShot 2022-05-17 at 20 50
daviddossett commented 2 years ago

Extending these explorations to include ideas for actions in the section header rows. Some early ideas:

With Inline Icon Actions

with-section-headers

With Icon Action Labels

We could also use labels here since the inline icons alone would be a downgrade in terms of understanding what the command isβ€”today we use the plain text as a quick pick entry so this could retain some of that clarity.

with-action-labels

cc @misolori @TylerLeonhardt

TylerLeonhardt commented 2 years ago

I like that the separator buttons could have text to them though I'm sure the first feature request once that lands is to allow buttons in the normal quick pick items to have text :) not a bad idea but I am concerned about space in the quickpick...

miguelsolorio commented 2 years ago

I think starting with icons (no labels) is a good start to match most of our inline actions. I also wonder if we can have the section header actions/toolbar appear when you are on a section, just like views?

CleanShot 2022-08-10 at 10 46 28@2x
daviddossett commented 2 years ago

Agreed.

I also wonder if we can have the section header actions/toolbar appear when you are on a section, just like views?

By that do you mean like if you're navigating via keyboard we should up the parent actions? πŸ‘ if so!

miguelsolorio commented 2 years ago

Right now we show the toolbar whenever you are hovering in a view and then it hides when you are off, as opposed to only showing it when you are hovering over the section title.

daviddossett commented 2 years ago

Oh ok even better. Great idea.

jaeyonglee8687 commented 2 years ago

Love the iterations. The blue color title seems to have a function or embedded link it it at the first glance. It worked when it was on the same line with a quickPick item, but it becomes a little confusing with the separation between section title and pickPick items.

daviddossett commented 2 years ago

The blue color title seems to have a function or embedded link it it at the first glance

That's a fair point. Darker or lighter greys can in some ways make it harder to distinguish between sections. Maybe some spacing above each section and retaining the border would help here:

CleanShot 2022-08-11 at 11 10 44@2x
daviddossett commented 2 years ago

Incoroporated a few bits of feedback and fixes:

CleanShot 2022-08-15 at 09 32 47

TylerLeonhardt commented 2 years ago

@daviddossett two questions:

daviddossett commented 2 years ago

Do you think we should keep the existing look if no separators have buttons?

My gut feeling is that it should be a global change. There are a bunch of differences in font, spacing, etc. that makes me think it would be confusing for users to see different formats across different lists. Here's how it would look on a regular grouped quick pick list:

CleanShot 2022-08-15 at 10 22 14@2x

Some inspiration from Safari for those worried about keyboard interactions. Feels super natural to arrow up/down across sections:

CleanShot 2022-08-15 at 10 54 03

eamodio commented 2 years ago

I like the latest iteration. Although I think the section headers are too bold -- the blue stands out and draws the eye much more than the actual choices. I would prefer a style closer to the safari example where the headers are more muted, so the focus stays on the choices themselves.

daviddossett commented 2 years ago

I like the grey headers too, at least in this particular default theme. I've landed on that for now. We're also looking at how to better integrate section-specific actions. Today they're often placed at the bottom of a long quick pick list and can be easily missed.

Header w/ Toolbar

Shows up on hover anywhere in that section. Advantages here are the similarities to a view toolbar and reduced noise in the list. Possible makes it difficult to have a natural-feeling keyboard navigation. We also lose the descriptive list item labels + search capability we have today.

CleanShot 2022-08-18 at 14 38 49

Header with Pinned Action List Items

We could have section-specific actions rendered at the top of the relevant section as normal list items. This could be achieved today but it would obviously need to be done manually. Maybe there's a way to pin items per section?

CleanShot 2022-08-18 at 14 43 33@2x
usernamehw commented 2 years ago

Any chance of keeping headers even after typing? For example, Theme Picker with empty input shows:

──────────────────────────────────────────────────────────── light themes
...
GitHub Light
GitHub Light Colorblind
Light (Visual Studio)
Light+ (default light)
...
──────────────────────────────────────────────────────────── dark themes
...
Dark (Visual Studio)
Dark+ (default dark)
GitHub Dark
GitHub Dark Colorblind
...

After filtering they are no longer grouped (input content - github):

GitHub Dark
GitHub Light
GitHub Dark Colorblind
GitHub Light Colorblind
...

Ideally, groups should persist (input content - github):

──────────────────────────────────────────────────────────── light themes
GitHub Light
GitHub Light Colorblind
──────────────────────────────────────────────────────────── dark themes
GitHub Dark
GitHub Dark Colorblind
daviddossett commented 2 years ago

@usernamehw I think that's a reasonable proposal but I'd need to see how to approach quick picks that show something different after typing. There are some examples of presenting other content instead of the filtered list.

TylerLeonhardt commented 2 years ago

@usernamehw that sounds like a bug to me because I get that rough experience:

image

Can you open a new issue and we can get that looked at?

daviddossett commented 2 years ago

It does look like there is some strangeness going on here.

CleanShot 2022-10-10 at 09 54 22@2x
TylerLeonhardt commented 2 years ago

@aeschli is this feedback for you? ^

aeschli commented 2 years ago

Agree that this looks strange. Filtering & sorting doesn't go with the separator header. It's probably a bug with quick fix dialog to still show the separator labels when filtering (and sorting) Only when sortByLabel: false is set the separators can be shown while filtering. That what is done in the remote indicator menu: image

usernamehw commented 2 years ago

Is sortByLabel available to extension api?