microsoft / WindowsAppSDK

The Windows App SDK empowers all Windows desktop apps with modern Windows UI, APIs, and platform features, including back-compat support, shipped via NuGet.
https://docs.microsoft.com/windows/apps/windows-app-sdk/
MIT License
3.8k stars 320 forks source link

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

Open JaiganeshKumaran opened 3 years ago

JaiganeshKumaran commented 3 years ago

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

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
mdtauk commented 3 years ago

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)

JaiganeshKumaran commented 3 years ago

@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.

mdtauk commented 3 years ago

@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

JaiganeshKumaran commented 3 years ago

@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.

JaiganeshKumaran commented 3 years ago

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.

mdtauk commented 3 years ago

@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

JaiganeshKumaran commented 3 years ago

@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.

JaiganeshKumaran commented 3 years ago

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

JaiganeshKumaran commented 3 years ago

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.

JaiganeshKumaran commented 3 years ago

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.

JaiganeshKumaran commented 3 years ago

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.

riverar commented 3 years ago

@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.

JaiganeshKumaran commented 3 years ago

@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.

sylveon commented 3 years ago

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.

jmelas commented 2 years ago

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