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

Proposal: Update visuals of various buttons #3546

Open
YuliKl opened this issue Nov 2, 2020 · 46 comments
Open

Proposal: Update visuals of various buttons #3546

YuliKl opened this issue Nov 2, 2020 · 46 comments
Assignees
Labels
area-Styling area-UIDesign UI Design, styling feature proposal New feature proposal team-Controls Issue for the Controls team

Comments

@YuliKl
Copy link

YuliKl commented Nov 2, 2020

Update visuals of various buttons

Summary

Change the default appearance of various button controls.

Rationale

  • XAML controls are inconsistent with how web and mobile apps are evolving.
  • This is part of the work to refresh Xaml UI to align with other platforms while looking familiar on Windows.

Comps showing proposed changes

Button

image
image

HyperlinkButton

image
image

DropDownButton

image
image

SplitButton

image
image

RadioButton

image
image

CheckBox

image
image

@YuliKl YuliKl added feature proposal New feature proposal area-UIDesign UI Design, styling labels Nov 2, 2020
@ghost ghost added the needs-triage Issue needs to be triaged by the area owners label Nov 2, 2020
@YuliKl YuliKl self-assigned this Nov 2, 2020
@StephenLPeters StephenLPeters added area-Styling team-Controls Issue for the Controls team and removed needs-triage Issue needs to be triaged by the area owners labels Nov 3, 2020
@mdtauk
Copy link
Contributor

mdtauk commented Nov 3, 2020

I notice there is a different Accent colour for the Dark Theme images. Is this something new coming to the platform and Accent Colour choices?


The backgrounds for these controls are off white and off black. Is this a change to the ThemeResources so a white button would actually stand out? I proposed these kinds of changes here:


  • How would the Ghost and Accent style buttons look with the design changes?

  • How will reveal and focus visuals look, as well as Toggle states?

  • The buttons appear to be using a shadow as well as an outline (or the shadow is acting as an outline). If the user changes the corner radius, this shadow would need to improve on ThemeShadow to enable that. (10X's shell makes use of pill shaped buttons, so this will be relevant) I know @chigy has said this is being investigated.

  • Do these button designs account for accessibility contrast ratios? The Disabled state appears very faint.

  • So FluentUI Web is now the yardstick to compare WinUI Control Designs to?

@YuliKl
Copy link
Author

YuliKl commented Nov 3, 2020

I notice there is a different Accent colour for the Dark Theme images. Is this something new coming to the platform and Accent Colour choices?

We're still evaluating any potential changes that may impact accent color variants. Stay tuned.

The backgrounds for these controls are off white and off black. Is this a change to the ThemeResources so a white button would actually stand out?

WinUI can't control the exact colors apps choose to use for their backgrounds, so I wouldn't read too much into the background colors in these comps.

  • How would the Ghost and Accent style buttons look with the design changes?

There is no Ghost button style in WinUI. We do have AccentButtonStyle, but as I mentioned the accent color values are still being explored.

  • The buttons appear to be using a shadow as well as an outline (or the shadow is acting as an outline).

Sorry about the blurry images. The buttons have an outline with the bottom edge drawn in a darker color compared to the other edges. This is a multi-colored border element that will change with the corner radius.

  • Do these button designs account for accessibility contrast ratios? The Disabled state appears very faint.

They do, it's actually one of the motivations for the change. We had been failing 3:1 contrast ratio requirements in a few places. Disabled states don't have a contrast ratio requirement, so appearing fain should not pose any accessibility concerns.

@mdtauk
Copy link
Contributor

mdtauk commented Nov 3, 2020

The backgrounds for these controls are off white and off black. Is this a change to the ThemeResources so a white button would actually stand out?

WinUI can't control the exact colors apps choose to use for their backgrounds, so I wouldn't read too much into the background colors in these comps.

The Xaml Theme brushes set as default can be changed though. The current buttons with a semi-transparent coloured background will stand out from most backgrounds - but with dark backgrounds it can become a contrast ratio problem.

These designs seem to use white as a background fill, which stands out well on an off-white background, but would be somewhat lost on a pure white background. I would suggest you consider a change to the ApplicationPageBackgroundThemeBrush resource - as well as the System Base colours.

  • How would the Ghost and Accent style buttons look with the design changes?

There is no Ghost button style in WinUI. We do have AccentButtonStyle, but as I mentioned the accent color values are still being explored.

@chigy said Ghost button styles were created for the Windows 10X shell team, and this would align to #1054 as well as Fast's various button types, Stealth, Outline, Neutral etc
https://explore.fast.design/components/fast-button

There is also another issue about Button types or styles #2233 things like Icon Buttons, which FluentUI has, but WinUI doesn't

  • The buttons appear to be using a shadow as well as an outline (or the shadow is acting as an outline).

Sorry about the blurry images. The buttons have an outline with the bottom edge drawn in a darker color compared to the other edges. This is a multi-colored border element that will change with the corner radius.

So not actually using the ThemeShadow but giving the appearance of having some kind of depth. Will this design touch make its way to FluentUI buttons, as well as Fast's Fluent design provider (which Edge uses)

  • Do these button designs account for accessibility contrast ratios? The Disabled state appears very faint.

They do, it's actually one of the motivations for the change. We had been failing 3:1 contrast ratio requirements in a few places. Disabled states don't have a contrast ratio requirement, so appearing fain should not pose any accessibility concerns.

This is good to hear. A good balance between a good looking button, without a strong border but still meets accessibility needs.


I would like to see some alignment between these and the buttons used by the Xbox team - especially as the Xbox App and GameBar are presented as integrated components within Windows.

Xbox UI Refresh

@jaigak
Copy link
Contributor

jaigak commented Nov 3, 2020

Why is WinUI always trying to match other platforms? when the exiting controls are fine

@mdtauk
Copy link
Contributor

mdtauk commented Nov 3, 2020

Why is WinUI always trying to match other platforms? when the exiting controls are fine

It is rumoured that Windows is refreshing its UI - with Fluent Design at its core. FluentUI controls are cross platform, and will be used increasingly for windows apps.

These proposals are just bringing WinUI designs in line with other Microsoft implementations of Fluent design - to bring consistency across Windows apps and shell, as well as Web Apps, React Native, etc.

@jaigak
Copy link
Contributor

jaigak commented Nov 3, 2020

To be consistent with Google's material so that their Android devices will have a consistent design. Fluent has lost all effects like Reveal, Acrylic etc...

@jaigak
Copy link
Contributor

jaigak commented Nov 3, 2020

The old Edge had the best UI... Now with the new Edge, it is plain and boring. There was a proposal that wanted to redesign Edge UI but Microsoft simply said this is the new Fluent and it looks terrible.

@mdtauk
Copy link
Contributor

mdtauk commented Nov 3, 2020

To be consistent with Google's material so that their Android devices will have a consistent design. Fluent has lost all effects like Reveal, Acrylic etc...

I still believe Reveal and Acrylic will be back (I will be the first to complain if they don't) - but when users are moving between their Android phone, their PC or Laptop - familiarity is not a bad thing.

At the moment there is FluentUI which is cross platform, and web supported. Then there is Fast which is a framework for web controls, with a Fluent design provider which is optional - and then there is WinUI which is a mix of Windows 10 MDL2, Fluent and Windows 8 Metro controls.

The old Edge had the best UI... Now with the new Edge, it is plain and boring. There was a proposal that wanted to redesign Edge UI but Microsoft simply said this is the new Fluent and it looks terrible.

I liked how the legacy Edge used Acrylic for it's tab/title bar and for the sidebars. The new Edge is cross-platform, and will hopefully adopt Acrylic when WinUI 3.X supports it.

@jaigak
Copy link
Contributor

jaigak commented Nov 3, 2020

I didn't buy a Windows PC to be familiar with Android. In fact, the Android UI is really bad and Microsoft shouldn't adapt their ugly design and go their own way.

@jaigak
Copy link
Contributor

jaigak commented Nov 3, 2020

@mdtauk Microsoft Edge doesn't use WinUI

@jaigak
Copy link
Contributor

jaigak commented Nov 3, 2020

I don't think they will put reveal effects in the new Edge when they can update WinUI to not use it instead of doing the hard-work of updating old Chromium UI

@mdtauk
Copy link
Contributor

mdtauk commented Nov 3, 2020

@mdtauk Microsoft Edge doesn't use WinUI

Microsoft Edge uses Fast, which has a Fluent Design component

I don't think they will put reveal effects in the new Edge when they can update WinUI to not use it instead of doing the hard-work of updating old Chromium UI

I worry about this too, and it was discussed in another issue. #1126

@jaigak
Copy link
Contributor

jaigak commented Nov 3, 2020

Fluent UI, in my opinion, is a fake web implementation that claims to "Fluent". It's sad to see WinUI adapting their bad design instead of the other way around. Fast is also not really Fluent. It just looks like a regular Microsoft skinned design which is not the same as real fluent.

@mdtauk
Copy link
Contributor

mdtauk commented Nov 3, 2020

Fluent UI, in my opinion, is a fake web implementation that claims to "Fluent". It's sad to see WinUI adapting their bad design instead of the other way around. Fast is also not really Fluent. It just looks like a regular Microsoft skinned design which is not the same as real fluent.

Different technologies will always exist, trying to use similar or identical designs for familiar controls and UI is a sensible thing to do.

Not all WinUI controls have a perfect or brilliant design - and some of them look better the way FluentUI or Fast does them.

The Button has many issues with contrast ratios, and looks better the way FluentUI does it. IMO

@jaigak
Copy link
Contributor

jaigak commented Nov 3, 2020

@YuliKl Please don't remove the underline from hyperlinks. It may look good but it's not clear to the user.

@mdtauk
Copy link
Contributor

mdtauk commented Nov 3, 2020

@YuliKl Please don't remove the underline from hyperlinks. It may look good but it's not clear to the user.

There are Hyperlinks and Hyperlink Buttons. I don't think Buttons need an underline, as they have padding around them, and Hover and Pressed state backgrounds

@jaigak
Copy link
Contributor

jaigak commented Nov 3, 2020

@mdtauk The control may be named Button but they need an underline to be noticeable. Please don't blindly copy the trends of web apps and reduce accessibility

@mdtauk
Copy link
Contributor

mdtauk commented Nov 3, 2020

@mdtauk The control may be named Button but they need an underline to be noticeable. Please don't blindly copy the trends of web apps and reduce accessibility

Part of this redesign is to make it consistent. Web Trends are what is familiar

@jaigak
Copy link
Contributor

jaigak commented Nov 3, 2020

@mdtauk No.

@jaigak
Copy link
Contributor

jaigak commented Nov 3, 2020

Radio buttons look horrible. They are nothing like the old Radio buttons. This proposal makes it even worse.

@Felix-Dev
Copy link
Contributor

Felix-Dev commented Nov 3, 2020

Speaking of the specific proposed HyperlinkButton changes, I have to say I am not really seeing "refresh Xaml UI to align with other platforms while looking familiar on Windows" in use here. The new style doesn't look familiar to the current style (using underline) at all and looking through older Windows UI elements like in the Control Panel, I notice the underline style used as well (it might not be exactly the same used in UWP XAML but they are close). Check for example the Power Options page and its child pages in the old old control panel.

Changing the look to stay consistent with web/mobile is fine, but I'm missing the "while looking familiar on Windows" aspect here. The new Hyperlink button style really doesn't look familiar to me as a Windows 10 user.

I guess this might also come down to where the new HyperlinkButton controls would be used inside Windows instead of the inline hyperlink. Take the Settings app for example:
image
Would these Hyperlinks (which already look slightly customized since they don't feature the default underline) now look like buttons after this proposed change went into WinUI and Settings app switches over to it?

@mdtauk
Copy link
Contributor

mdtauk commented Nov 3, 2020

Hyperlink and Hyperlink Button are two different controls. One is designed to sit within a body of text, the other is designed to sit alongside buttons.

image
Android equivalent

image
Button and Hyperlink button

@jaigak
Copy link
Contributor

jaigak commented Nov 3, 2020

@mdtauk Not technically in XAML. A hyperlink is a hyperlink button inside a text control.

@mdtauk
Copy link
Contributor

mdtauk commented Nov 3, 2020

@mdtauk Not technically in XAML. A hyperlink is a hyperlink button inside a text control.

<HyperlinkButton Content="www.microsoft.com" NavigateUri="http://www.microsoft.com"/>
<Hyperlink NavigateUri="http://www.contoso.com">Contoso Privacy Statement</Hyperlink>

Two controls, and I think within a textblock the Hyperlink should maintain it's underline by default, but the Hyperlink Button has padding and margins, and hover states that distinguish it, as well as a larger hit target for tapping

@mdtauk
Copy link
Contributor

mdtauk commented Nov 3, 2020

Being nit picky a little bit here...
checkboxes light theme example
The check mark and indeterminate/three state mark seem a little small and thin compared to the Check Box. These icons should probably be prepared for using Fluent Icons instead of MDL 2 Icons.

image

@mdtauk
Copy link
Contributor

mdtauk commented Nov 3, 2020

What is the thinking with the Radio Button bullet changing size with the hover and pressed states?

radio buttons example

None of the other WinUI controls exhibit this kind of visual behaviour, nor does it feature in FluentUI or Fast's controls.

For what it's worth, I think the size for the Selected Pressed state in this example, is the better size for the bullet, compared to the circle containing it for all states.

Edit: So looking closer at the other controls you posted in the other issue #3549 I can see the Slider and the Toggle Switch designs you are proposing also scale their circular thumb parts. I would like to ask you @YuliKl if you plan for these scaling elements to transition the size of the Thumb/Bullet on hover and pressed states - rather than a 0 duration transition which may feel jarring.

@jaigak
Copy link
Contributor

jaigak commented Nov 4, 2020

@mdtauk Not technically in XAML. A hyperlink is a hyperlink button inside a text control.

<HyperlinkButton Content="www.microsoft.com" NavigateUri="http://www.microsoft.com"/>
<Hyperlink NavigateUri="http://www.contoso.com">Contoso Privacy Statement</Hyperlink>

Two controls, and I think within a textblock the Hyperlink should maintain it's underline by default, but the Hyperlink Button has padding and margins, and hover states that distinguish it, as well as a larger hit target for tapping

I think the underline should be removed for both with a clean look but hovering could reveal the underline for clearness.

@mdtauk
Copy link
Contributor

mdtauk commented Nov 4, 2020

I think the underline should be removed for both with a clean look but hovering could reveal the underline for clearness.

Underline on hover for the Hyperlink control sounds good to me, but not for the HyperlinkButton as that would look odd alongside regular Buttons

@jaigak
Copy link
Contributor

jaigak commented Nov 4, 2020

@mdtauk A regular user will not notice the difference so both should have the same behavior

@mdtauk
Copy link
Contributor

mdtauk commented Nov 4, 2020

@mdtauk A regular user will not notice the difference so both should have the same behavior

Not sure I agree, but its a fair comment to make

@jaigak
Copy link
Contributor

jaigak commented Nov 4, 2020

@YuliKl Will these buttons still have optional reveal effect or did you remove that to be consistent with the web?

@chigy
Copy link
Member

chigy commented Nov 4, 2020

The check mark and indeterminate/three state mark seem a little small and thin compared to the Check Box. These icons should probably be prepared for using Fluent Icons instead of MDL 2 Icons.

You can ignore the look of MDL 2 icons for now. As mentioned on another comment, we are looking to update the icons so these visuals are not 100% final.

That said, our designer educated me "In general, having a glyph with comfortable negative space is a good design practice."

@mdtauk
Copy link
Contributor

mdtauk commented Nov 4, 2020

That said, our designer educated me "In general, having a glyph with comfortable negative space is a good design practice."

I agree with this. I just feel the Checkbox example illustrated feels uncomfortable, and off balance - as if the glyph inside is being suffocated - which could also have accessibility problems with not being clear enough.

The examples from the FluentSystemIcons project, feels better, and is more easily readable. - But this is just an opinion to add to the thoughts of others.

image

The Left is using the Tick from the Fluent Icons checkbox, and it sitting nicely in the 20 x 20px box.

@mdtauk
Copy link
Contributor

mdtauk commented Nov 4, 2020

Regarding the Button hover state...

image

At a first glance, which of these buttons is being hovered over?

I would suggest the hover state in the light mode is too subtle and becomes a usability problem.

In the Dark Theme, it may be a little easier to see, but its still very subtle.

image


The existing buttons make this state change much more obvious

image
image

@mdtauk
Copy link
Contributor

mdtauk commented Nov 7, 2020

I think it would be good for Buttons to use the Semibold weight as with FluentUI - this will help the more subtle buttons stand out compared to just body text

Xbox and Fluent button examples
Here is an example showing how the Semibold text brings the button design closer to Xbox's

@mdtauk
Copy link
Contributor

mdtauk commented Dec 7, 2020

The Split Button, and Drop Down Button's chevron looks too low and perhaps too small in the current features/token-experiments branch

image

@mdtauk
Copy link
Contributor

mdtauk commented Dec 29, 2020

There was an issue posted some time back, about exploring changes to the Reveal effect. As Button is one of the primary controls to use Reveal, I think it may be time to decide on the path to take, and to put it to use with the new Button visuals.

image
At the moment the Reveal Button styles use the old Button designs

#1126 Proposal: Improve Reveal visual

@mdtauk
Copy link
Contributor

mdtauk commented Dec 29, 2020

There is also a related problem that has cropped up with the new Button visuals. Many controls which use a Button as a primitive, are not removing their borders. So lots of controls get faint outlines around them right now.

There should probably be a built in Style to remove all visual elements for these uses - the new Ghost Control colours could be used, or border thicknesses set to 0.

image
PipsPager

image
Expander

image
MUXTestApp > NavigationView > NavigationView Test

@jaigak
Copy link
Contributor

jaigak commented Jan 7, 2021

The proposed button style doesn't look that clear and I think depth needs to be increased to be noticed.

@mdtauk
Copy link
Contributor

mdtauk commented Jan 7, 2021

I would probably like a stronger border, and brighter fill for Dark Theme buttons

@Tropix126
Copy link

Tropix126 commented Jan 17, 2021

My main complaint here is with the RadioButton pressed state, especially in dark mode. I feel there should be more contrast, maybe use white on dark mode and black on light?

image

@mdtauk
Copy link
Contributor

mdtauk commented Jan 17, 2021

@Tropix126 are you using a dark grey accent colour?

I think there is an intention to alter the way the dark and light variations of the Accent Colour are generated, so the dark text contrasts over the Accent AA colours in dark mode.

But a recent PR reverted the hard coded colours with the System brushes, and the variations are not stark enough to always contrast well

@jaigak
Copy link
Contributor

jaigak commented Jan 17, 2021

Please use a darker colour for buttons, the current ones are not that clearly recognizable.

@Tropix126
Copy link

@Tropix126 are you using a dark grey accent colour?

I think there is an intention to alter the way the dark and light variations of the Accent Colour are generated, so the dark text contrasts over the Accent AA colours in dark mode.

But a recent PR reverted the hard coded colours with the System brushes, and the variations are not stark enough to always contrast well

These are just screenshots of earlier previews in this discussion.

@ghost
Copy link

ghost commented Sep 2, 2021

I agree that the light brushes should be improved. In this example I'm using SubtleFillColorSecondaryBrush:
imageimage

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-Styling area-UIDesign UI Design, styling feature proposal New feature proposal team-Controls Issue for the Controls team
Projects
None yet
Development

No branches or pull requests

8 participants