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

High contrast version of app icon - discussion #6822

Closed
jtippet opened this issue Jul 7, 2020 · 17 comments · Fixed by #6915
Closed

High contrast version of app icon - discussion #6822

jtippet opened this issue Jul 7, 2020 · 17 comments · Fixed by #6915
Assignees
Labels
Area-Accessibility Issues related to accessibility Issue-Task It's a feature request, but it doesn't really need a major design. Needs-Tag-Fix Doesn't match tag requirements Product-Terminal The new Windows Terminal. Resolution-Fix-Committed Fix is checked in, but it might be 3-4 weeks until a release.
Milestone

Comments

@jtippet
Copy link
Contributor

jtippet commented Jul 7, 2020

How does the Terminal team feel about high contrast icons? If someone were to contribute a set of assets, would you accept them? Are there any constraints or considerations for artwork that a contributor should be aware of? Is there some graphics pipeline, not visible in source control here, that needs to be updated instead of providing finished PNG files?

To demo the possibilities, I tried hacking up a high contrast version of one of the icons. I've presented the prototype here, in both black and white HC themes. For context, I've also included Calculator's HC icon.

demoblack

demowhite

By way of comparison, here's the status quo:

currentblack

currentwhite

In some places (eg taskbar), the shell plates the icon, since there's not a dedicated HC icon, so the shell isn't sure whether the icon would have enough contrast with a black or white background:

currentplatedblack

This comment is forked from a discussion on #5360

@jtippet jtippet added the Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work. label Jul 7, 2020
@ghost ghost added Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting Needs-Tag-Fix Doesn't match tag requirements labels Jul 7, 2020
@zadjii-msft
Copy link
Member

I think that looks awesome 😍

However, I'm barely allowed to talk to other humans, let alone make product branding decisions 😆 Let's summon @cinnamon-msft to get an official opinion

@zadjii-msft zadjii-msft added Area-Accessibility Issues related to accessibility Issue-Task It's a feature request, but it doesn't really need a major design. Product-Terminal The new Windows Terminal. and removed Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work. labels Jul 7, 2020
@ghost ghost removed the Needs-Tag-Fix Doesn't match tag requirements label Jul 7, 2020
@zadjii-msft zadjii-msft added this to the Terminal v2.0 milestone Jul 7, 2020
@cinnamon-msft
Copy link
Contributor

Wow these look great! Would these only appear when the user has high contrast mode on?

@jtippet
Copy link
Contributor Author

jtippet commented Jul 7, 2020

Wow these look great! Would these only appear when the user has high contrast mode on?

Yes.

@cinnamon-msft
Copy link
Contributor

Okay great! I'm totally okay with these coming in. I know @DHowett has more experience with the icon process, but I'm not aware of a pipeline.

@DHowett
Copy link
Member

DHowett commented Jul 7, 2020

I absolutely love them. Our pipeline is “I have a powershell script that pops out icons from our SVGs”, but for various reasons I refuse to allow it to generate our production/stable icons. I don’t trust its pixel-fidelity. Sometimes, careful manual rasterization wins the day.

If only SVGs supported hinting.

@jtippet
Copy link
Contributor Author

jtippet commented Jul 7, 2020

@DHowett let's make a deal: if you make that PS script available somewhere, in exchange, I won't make any comments about any hackiness it might entail.

@mimi89999
Copy link

I think that the new monochrome icons look great! Even if somebody really doesn't like them, I think that they will still find them much better than the normal icon with a background.

Our pipeline is “I have a powershell script that pops out icons from our SVGs”

Isn't it just running imagemagick or similar in a loop for various sizes?

@DHowett
Copy link
Member

DHowett commented Jul 7, 2020

@jtippet Deal.

It uses inkscape and imagemagick in WSL (because their windows counterparts are not well-behaved applications :/) to come up with a set of master icon sizes and then plate them in transparent images of the right sizes for store assets. I find the universal asset system to be absolute madness, and madness begets madness. Like, the Square 44x44 logo has target sizes that are definitely not 44x44 and the entire plated/unplated thing is just inane 😄

https://gist.github.com/DHowett/324e1e1c8ab640f9f71d9b297e0fe7a2

@DHowett DHowett removed the Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting label Jul 7, 2020
@DHowett
Copy link
Member

DHowett commented Jul 7, 2020

My main beef is that we have an icon with segments divided into thirds, and that works great on canvases that are multiples of three in size, but also classic icons love to be among the 16/32/64 clade 😄

@mimi89999
Copy link

I don't understand your issues with that logic and what you have to correct manually. Either you don't make the tabs of the same size, you accept that the border will be between pixels or make the border slightly bigger/smaller. That choice can also in the script.

@jtippet
Copy link
Contributor Author

jtippet commented Jul 8, 2020

I cleaned up the icon a bit, and updated the script-that-has-no-hackiness to also emit HC versions of the new icon. I'd like to get your feedback before I spend time punching pixels and hinting the smaller icons.

For concreteness, I've pushed all the assets and SVGs here.

Here are the two HC assets:

image

I haven't hinted these yet, but they already work okay at the worst size of 16x16. Your web browser is probably trying to stretch the below image with a fuzzy interpolation algorithm, so I suggest saving it to disk and opening in mspaint to see how it really looks:

I also generated DEV/PRE versions. These are probably less important, but they're here:

image

So let's see how it looks in context. Here's a taskbar with HC black theme. For reference, the pre-existing icon is also pinned at the end (and yes, it always has that annoying teal backplate behind it, even when the app isn't running):

image

Here's some pinned tiles on the Start Menu:
image

So, please give feedback now while it's still easy to tweak the SVG. I'll give you guys a couple days to give feedback, then I'll fix the SVG, regenerate the icons, and finally start hinting the smaller sizes.

While testing this, I noticed that the OS's shell has... quirks... when dealing with hybrid apps like Terminal. Apparently some shell surfaces try a win32 icon first, then fall back to the MRT resource. Others try the MRT first, and fall back to win32. And a couple others just use MRT incorrectly. Since Terminal has both MRT and Win32 resources, we get inconsistent results. You can even see this effect with the Terminal Preview that's in the store: the ALT+TAB experience uses terminal.ico, which doesn't have the PRE badge, but the taskbar shows the badge.

So here's an inventory of the shell:

  • Taskbar: Uses MRT for glom icon, but Win32 for peek icon: image
  • Start menu: The Pinned App uses MRT correctly, but the All Apps uses MRT without passing the HC context to MRM, so it never shows HC assets. Note for example that Start is showing two different calculator icons here, because whoever is loading icons for the left panel didn't pass the HC attribute to MRM:
    image
  • However, if you have build 20161+ and are enrolled in flight 23615618, then both panels of Start pass HC context, so the icon is drawn correctly in both places 🤷‍♀️. So let's say that that problem is trending towards getting fixed.
  • ALT+TAB, WIN+TAB: use Win32 icon: image
  • Task manager: The Process tab uses MRT without passing HC context, so it never uses HC assets. (It also doesn't pass scale correctly, so the icons look horrible on my PC.) The Details tab uses the Win32 icon. image
  • Settings > Apps & features: Uses MRT correctly: image

@KalleOlaviNiemitalo
Copy link

You can even see this effect with the Terminal Preview that's in the store: the ALT+TAB experience uses terminal.ico, which doesn't have the PRE badge, but the taskbar shows the badge.

That has been reported as #6777.

@DHowett
Copy link
Member

DHowett commented Jul 8, 2020

@jtippet Hell, these look amazing! I appreciate that you did the DEV and PRE badged icons 😀 Thanks for checking in my script, as well.

If the discussion in #6777 lands the way I'm hoping, we can probably resolve the Peek and Alt+Tab icon issue. I'm certain that by supplying an icon for our window, we're making any legacy surface that prefers window interrogation display the "wrong" icon. If we can supply the right one, maybe we can handwave the problem away.

@cinnamon-msft you cool with these? If we can green-light these we can slip them into 1.2!

@cinnamon-msft
Copy link
Contributor

Ship it! 🚢

@ghost ghost added the In-PR This issue has a related PR label Jul 14, 2020
DHowett pushed a commit that referenced this issue Jul 14, 2020
This commit adds image assets for High Contrast mode

Tagging this issue so it contains a nice list of all the recent HC
fixes: #5360

I made several changes to DHowett's script and added it to the repo:
* Add support for generating high contrast icons
* Add the ability to easily edit the "intermediate" (previously "zbase")
  files for manual hinting
* Appease the spellchecker

I created new SVGs for HC mode. There's one SVG for both Black and White
modes -- I just invert the colors. Then I manually hinted the generated
bitmaps for the production icons. I didn't bother hinting the Dev/Pre
ones, so the text does get unreadable at small sizes.

View the original images in #6915.

Co-authored-by: Jeffrey Tippet <[email protected]>
Co-authored-by: Dustin L. Howett <[email protected]>
Closes #6822
@ghost ghost added the Needs-Tag-Fix Doesn't match tag requirements label Jul 14, 2020
@ghost ghost added Resolution-Fix-Committed Fix is checked in, but it might be 3-4 weeks until a release. and removed In-PR This issue has a related PR labels Jul 14, 2020
DHowett pushed a commit that referenced this issue Jul 20, 2020
This commit adds image assets for High Contrast mode

Tagging this issue so it contains a nice list of all the recent HC
fixes: #5360

I made several changes to DHowett's script and added it to the repo:
* Add support for generating high contrast icons
* Add the ability to easily edit the "intermediate" (previously "zbase")
  files for manual hinting
* Appease the spellchecker

I created new SVGs for HC mode. There's one SVG for both Black and White
modes -- I just invert the colors. Then I manually hinted the generated
bitmaps for the production icons. I didn't bother hinting the Dev/Pre
ones, so the text does get unreadable at small sizes.

View the original images in #6915.

Co-authored-by: Jeffrey Tippet <[email protected]>
Co-authored-by: Dustin L. Howett <[email protected]>
Closes #6822

(cherry picked from commit bd93cb5)
@ghost
Copy link

ghost commented Jul 21, 2020

🎉This issue was addressed in #6915, which has now been successfully released as Windows Terminal v1.1.2021.0.:tada:

Handy links:

1 similar comment
@ghost
Copy link

ghost commented Jul 22, 2020

🎉This issue was addressed in #6915, which has now been successfully released as Windows Terminal v1.1.2021.0.:tada:

Handy links:

@ghost
Copy link

ghost commented Jul 22, 2020

🎉This issue was addressed in #6915, which has now been successfully released as Windows Terminal Preview v1.2.2022.0.:tada:

Handy links:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Accessibility Issues related to accessibility Issue-Task It's a feature request, but it doesn't really need a major design. Needs-Tag-Fix Doesn't match tag requirements Product-Terminal The new Windows Terminal. Resolution-Fix-Committed Fix is checked in, but it might be 3-4 weeks until a release.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants