AzureStorageExplorer icon indicating copy to clipboard operation
AzureStorageExplorer copied to clipboard

Handle high contrast themes better when system is in high contrast

Open craxal opened this issue 3 years ago • 5 comments

When system high contrast is turned on, Storage Explorer colors don't behave very well, even when the app's theme is set to High Contrast -Black or High Contrast - White. More specifically, borders for trees and tables are colored incorrectly.

image

The reason for this is because when system high contrast is turned on, the OS forces most colors into system colors (defined by the user). This means, no matter how we style certain elements, colors will always be forced to OS configured colors. This happens even if an element is styled with a hex value matching a system color. For example, even if the border color of the tree nodes is set to the correct cyan color, it will still be forced to white.

To better handle this situation, I propose the following:

  • When system high contrast is turned on, ignore the app theme setting and use a "special" theme that uses system colors.
  • Keep our current high contrast black/white themes as app theme choices for when system high contrast is turned off.

craxal avatar Jun 29 '21 23:06 craxal

Sounds like a good plan

jinglouMSFT avatar Jun 29 '21 23:06 jinglouMSFT

This issue is actually better solved by using the CSS property force-color-adjust: none instead. This gives us control of colors even in Windows High Contrast mode. We should still consider having a "System" theme setting that automatically adjusts to the OS's theme settings (see #4635).

craxal avatar Oct 13 '21 19:10 craxal

Several panels are not styled correctly if the app starts when Windows is already in high contrast mode. This appears to be due to a bug involving the background color for <body> elements.

See electron/electron#31659

craxal avatar Nov 01 '21 23:11 craxal

If a workaround for this is needed before an Electron fix is available, we could consider adding a <div> element that covers the entire <body>, which is the problematic element.

craxal avatar Nov 19 '21 19:11 craxal

Still have the problem with high contrast themes and <body> backgrounds on Electron 19.0.3.

craxal avatar Jun 07 '22 18:06 craxal