WindowsAppSDK icon indicating copy to clipboard operation
WindowsAppSDK copied to clipboard

Proposal: Desktop applications must follow your accent colour even if they don't use WinUI 3

Open jaigak opened this issue 5 years ago • 15 comments

Proposal: Desktop applications must follow your accent colour

Desktop Win32 apps that doesn't use WinUI 3 must follow your accent colour. Today apps use blue mostly eg: GDI which shouldn't be the case unless the app want's own branding

Summary

The accent color setting in Windows applies to Windows XAML or WinUI in the future and not GDI or WPF. Unless the app has its own colour, the colour must match the accent colour just like a WinUI app.

Rationale

  • Consistency
  • Better user experience

Scope

Capability Priority
All GDI and WPF apps by default should use the accent colour as their default for all controls instead of current default blue Must
This proposal will allow end-users to apply accent colour for every app regardless of the UI is rendered Should
This proposal will allow developers easily override colour in their GDI app and all built-in controls will use it Could
Microsoft's apps like Edge should follow Accent Colour. Ever since moving the Chromium, it doesn't follow my accent colour (Green) and always uses blue even if the system setting is something else Must

jaigak avatar Oct 08 '20 12:10 jaigak

It would be good to provide a more Fluent UI like UXTheme which Reunion apps would use as a default (perhaps with an opt out). The colour used for certain elements, would follow the accent colour, and Light and Dark theme support could be on as part of this (including an option like RequestedTheme so this can be overridden by the user or app developer)

mdtauk avatar Oct 08 '20 14:10 mdtauk

@mdtauk It should be done in the OS rather than a separate Reunion package and should affect everything without a recompilation. A package can be provided for backward compatibility but in newer builds, it should be part of Windows and should be the default. My old apps shouldn't require a recompilation just for the new theme similar to how Windows worked before Windows 10.

jaigak avatar Oct 08 '20 14:10 jaigak

@mdtauk It should be done in the OS rather than a separate Reunion and should affect everything without a recompilation.

Microsoft would be reluctant to make big changes to the OS UXTheme, because of the ways it can adversely affect existing apps.

Project Reunion would be an opt in, so no app will go into using it without fore knowledge, and the ability to test their apps.

The reunion UXTheme would also be open source, and can be updated far more often than the OS version.

Control sizes and new functionality could be added via reunion, which move the old GDI based framework to a more modern look and feel

Ideally the OS would update, every app would get the modern styling, and no issues would show up

mdtauk avatar Oct 08 '20 14:10 mdtauk

@mdtauk Windows never had these consistency issues. An old app running on a new version will always get the new styling mostly. I just want a consistent design and making it a separate package will not solve because it's an extra layer and not everyone will download the new package. I should never see an old GDI button anymore in Windows 10.

jaigak avatar Oct 08 '20 14:10 jaigak

I don't care which way they do it because finally I never want to see old GDI anymore. I'm not a professional Windows app developer rather a user and I want consistent design. GDI is a major problem because it can't be updated since it's not DirectX based and no hardware acceleration.

jaigak avatar Oct 08 '20 14:10 jaigak

@mdtauk Windows never had these consistency issues. An old app running on a new version will always get the new styling mostly. I just want a consistent design and making it a separate package will not solve because it's an extra layer and not everyone will download the new package. I should never see an old GDI button anymore in Windows 10.

I understand that, but if Microsoft made a button larger, that breaks all the app UI and dialog layouts.

WinUI is what the future of the Windows UI will be, but some developers rely on Win32 code, and legacy UI.

WinUI 3.0 will allow those apps to gradually replace old UI with modern Xaml based designs, but Reunion is about bridging that gap, and allowing apps from any framework, to more easily adopt modern Windows features.

And to backport or gracefully polyfill those new features with older versions of Windows 10 and 8.1

mdtauk avatar Oct 08 '20 14:10 mdtauk

@mdtauk It will not. They can apply a high-dense theme for existing apps. Ideally, those APIs need to be rewritten to be a wrapper to WinUI 3 so all apps will get it. Developers shouldn't rewrite their apps every time a new OS gets released.

jaigak avatar Oct 08 '20 14:10 jaigak

For this proposal, I just want GDI controls to follow accent colour inside of using blue all the time. This proposal doesn't focus on theming or style. Only the colour

jaigak avatar Oct 08 '20 14:10 jaigak

If devs want they can rewrite with WinUI and get fully modern, hardware-accelerated XAML. I just want all apps to use the same colour as other XAML based Windows Runtime apps. Not even about dark or light theme.

jaigak avatar Oct 08 '20 14:10 jaigak

You can easily change the colour used by GDI yourself with tweak utilities, I just want Microsoft to apply my accent colour for GDI controls by default. No need for XAML or dark mode.

jaigak avatar Oct 08 '20 14:10 jaigak

Windows 11 has updated visual design for common controls however they still use blue as the default regardless of the accent being some other colour.

image Notice how the selected colour for the list view item and the button border is blue even if the accent colour is different.

jaigak avatar Jul 12 '21 06:07 jaigak

@Jaiganeshkumaran Can you file this in Feedback Hub? (I'd vote for Settings > Personalization Settings.) There's a bug bash going on right now and I'd like to upvote it too.

riverar avatar Jul 12 '21 06:07 riverar

@Jaiganeshkumaran Can you file this in Feedback Hub? (I'd vote for Settings > Personalization Settings.) There's a bug bash going on right now and I'd like to upvote it too.

Here you go: https://aka.ms/AAd5ubp.

jaigak avatar Jul 12 '21 11:07 jaigak

Many of these color can already be altered in HKEY_CURRENT_USER\Control Panel\Desktop\Colors, so I wonder if the Settings app could simply alter these as well when setting a color.

sylveon avatar Jul 21 '21 05:07 sylveon

It seems to me that this request boils down to these changes:

  • GetSysColor(COLOR_HIGHLIGHT) should return the AccentColor
  • GetSysColor(MENU_HIGHLIGHT) should return the new Gray Color that WinUI uses. I am on Windows 11 22567 and I am happy that Win32 Menus already use the new Gray Color when hovering Menu Items.
  • All Win32 Controls that use COLOR_HIGHLIGHT should be painted with the AccentColor. This includes EditBox, ListView, TreeView etc.
  • Visual Styles (OpenThemeData API) should not provide images but they should be composable on the fly using the Accent Color. I am afraid this is the most tricky part.

jmelas avatar Mar 07 '22 16:03 jmelas