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

Provide a list of deduped and nicely named codicons for use in product #171076

Open
Tyriar opened this issue Jan 11, 2023 · 10 comments
Open

Provide a list of deduped and nicely named codicons for use in product #171076

Tyriar opened this issue Jan 11, 2023 · 10 comments
Assignees
Labels
feature-request Request for new features or functionality terminal-profiles ux User experience issues
Milestone

Comments

@Tyriar
Copy link
Member

Tyriar commented Jan 11, 2023

The terminal has a feature to change the tab/profile icon which opens this:

image

It's very convenient to use but it would be nicer if it was instead:

➕ Add - add
💡 Lightbulb - lightbulb
etc.

The - text above would be the greyed out backing id.

User profiles could also use this as @sandy081 has explored.

@Tyriar Tyriar added feature-request Request for new features or functionality ux User experience issues terminal-profiles user-profiles User profile management labels Jan 11, 2023
@sandy081 sandy081 added this to the Backlog milestone Jan 12, 2023
@isidorn
Copy link
Contributor

isidorn commented Jan 13, 2023

Also would it be possible to add the list of icons of the most common languages to our Codicons?
I know @chrisdias wanted to use a Python icon for his "Python 101" profile. And I think that makes sense.

@aeschli
Copy link
Contributor

aeschli commented Jan 13, 2023

While the Codicons offers a quick way to get a nice selection of icons, I think not all of the ids are useful and well chosen.
What about having a curated list of the ones that are meaningful in the context of terminal/user profile?
That allows you to add descriptions as well.

If you want to allow that extensions can contribute new icons, use the iconRegistry (IIconRegistry) instead. Have a name convention for your icons so you can also pick up contributed icons.

`registerIcon('terminal-viewicon-cloud', Codicon.cloud, 'Cloud') ...

@daviddossett
Copy link
Contributor

It may also be nice to allow for emojis as well. Although I think at one point this was possible?

@Tyriar
Copy link
Member Author

Tyriar commented Jan 17, 2023

@daviddossett emoji can be used where text is used, I dislike when extensions do this though as they're the only non-monochrome icons in the UI and stand out like a sore thumb. For example: microsoft/live-share#4185

@sandy081
Copy link
Member

sandy081 commented Sep 7, 2023

This is done by @hbons here - #188972

Hence closing this.

@sandy081 sandy081 closed this as completed Sep 7, 2023
@Tyriar
Copy link
Member Author

Tyriar commented Sep 7, 2023

This should be closed when it's compatible with the terminal (no debian, ubuntu, etc.?) and it's adopted in the terminal icon picker.

@Tyriar Tyriar reopened this Sep 7, 2023
@Tyriar Tyriar assigned hbons and unassigned sandy081 and daviddossett Sep 7, 2023
@sandy081 sandy081 removed the user-profiles User profile management label Sep 12, 2023
@Tyriar Tyriar changed the title Provide a list of deduped and nicely names codicons for use in product Provide a list of deduped and nicely named codicons for use in product Oct 9, 2023
@hbons
Copy link
Member

hbons commented Dec 4, 2023

@Tyriar can you automate this? Most look like they make sense with some string transformation. Then we can override the ones that don't make sense.

@Tyriar
Copy link
Member Author

Tyriar commented Dec 4, 2023

At least at the Codicon level there isn't a marked primary id:

add: register('add', 0xea60),
plus: register('plus', 0xea60),
gistNew: register('gist-new', 0xea60),
repoCreate: register('repo-create', 0xea60),

@aeschli is this something we do with theme icons somewhere or is it new territory to get a well formed list of icons to present to the user?

@aeschli
Copy link
Contributor

aeschli commented Dec 5, 2023

We have all that already. Use the image registry to register a set of icons suited for terminals view.

registerIcon('terminal-viewicon-cloud', Codicon.cloud, 'Cloud') ...

Reference to the codicon to use as default icon. You can register as many as you want and give them a nice description.

  • use a convention on the icon id, e.g start with terminal-viewicon. Extensions that contribute icons can also use that prefix so they show up in your icon picker.
  • It's a big list but now it's deduped, curated, and you have description that describe the icon and not the operation
  • This allows theme authors to individually design icons for each component. E.g some theme could decide to give all terminal icons a certain look.
  • I don't think any migration is needed, existing views that used a codicon name can continue to do so, just your picker now only shows icons from the curated list (maybe plus the old codicon)

@sandy081 I suggest the same for profiles

@Tyriar
Copy link
Member Author

Tyriar commented Dec 5, 2023

I used iconRegistry.getIcons() but the list wasn't deduped as expected:

		const iconRegistry = getIconRegistry();
		for (const icon of iconRegistry.getIcons()) {
			items.push({ label: `$(${icon.id}) ${icon.id}`, description: icon.description, icon });
		}

Gave:

image

Proof description is working:

image

@Tyriar Tyriar removed their assignment Dec 9, 2024
@meganrogge meganrogge removed their assignment Dec 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-request Request for new features or functionality terminal-profiles ux User experience issues
Projects
None yet
Development

No branches or pull requests

7 participants