Description
Proposal: Update default control styles with rounded corners and make them easy to customize
Corner Radius (aka Rounded Corner) How-To document PR is created.
This will be added to docs.microsoft.com as a documentation.
It will be a new page under https://docs.microsoft.com/en-us/windows/uwp/design/style/.
Ask to community:
I am trying out writing a little more "background explanation (WHY)" that our customers have expressed we provide with our documentation in some of our focus groups. I would like feedback as this does not follow normal documentation pattern.
Are those extra information useful/helpful, not relevant, other info missing, etc.?
Summary
Update default control styles with rounded corners and make them easy to customize. Developers should not have to retemplate the controls to "unround" the corners or round them further.
Rationale
Problems today:
-
XAML controls are inconsistent with how web and mobile apps are evolving – this highlights the inconsistency across app ecosystem on Windows when these UI are used intermixed with each other.
-
There are many different levels of corner rounding in the market today but the way XAML controls are architected require those developers who wants to update to retemplate all the controls, locking them to a version of the control that will not be able to take advantage of future updates as easily.
Functional Requirements
# | Feature | Priority |
---|---|---|
1 | When developers use common controls as is, all the controls are consistent with each other. (Update default control style.) | Must |
1.1 | Users experience form controls (e.g. button, text box, etc.) with rounded corner. | Must |
1.2 | Users experience popup/transient menu type controls (e.g. flyout, CommandBarFlyout, etc.) with rounded corner and they look appropriate with shadow. | Must |
1.3 | Users experience "bars" with rounded corners (e.g. selection bar, scrollbar, etc.) | Must |
2 | When developers use the controls in a normal use case, there will be no perceived performance issue or slowness in rendering | Must |
3 | Developers have flexibility to style values of corner radii without retemplating. (This is tracked by #684.) | Should |
4 | Control update feel coherent with the same controls used by Fabric, Edge, and Xbox | Should |
5 | Users experience fully circular slider thumb that feels more touch friendly. | Should |
6 | Developers are able to round the popup/transient menu type controls' corner further and users do not experience visual glitch | Could |
7 | Users experience rounded keyboard focus rectangle | Could |
8 | Controls with rounded corners are rendered in performant way when they are used in more stressful/less normal use cases (e.g. 100s of rounded corners are used at once, large surface has rounded corner that is persistent (i.e. not temporary or transient)) | Could |
9 | Update controls to render with more performant ninegrid so there are less measurable performant impact (this is measurable by data, but still not perceivable by user as in number 4 above) | Could |
10 | Make it possible to round the inner and outer lines of border individually rounded vs. not | Won't |
11 | When performance is measured, there is no difference between when the corner is not round vs. round (this is physically impossible) | Won't |
Important Notes
There are three categories of changes being proposed (requirement number 1.1, 1.2, and 1.3) and here are mock up of those.
Here are relevant visual comp files: https://github.com/microsoft/microsoft-ui-xaml-specs/tree/user/chigy/roundedcorner/active/RoundedCorner/ImageFiles
Courtesy of @mrlacey , we have this easier to view version of the above file folder: https://github.com/mrlacey/microsoft-ui-xaml-specs/blob/RoundedCornerVisualizations/active/RoundedCorner/ImageFiles/index.md
Form type controls (req 1.1)
• Button
• CheckBox
• ComboBox
• DropDownButton
• Slider
• SplitButton
• ToggleButton
• ToggleSplitButton
• Flipview
• GridView
• ListView
• TreeView
• ContentDialog
• AutoSuggestBox
• PasswordBox
• RichEditBox
• TextBox
• DatePicker
• CalendarDatePicker
• Tab control
Popup/transient menu type controls (req 1.2)
• CalendarDatePicker
• DatePicker
• TimePicker
• Flyout
• TeachingTip
• ToolTip
• DropDownButton
• SplitButton
• Slider
• AutoSuggestBox
• CommandBarFlyout
• MenuFlyout
• ComboBox
• ColorPicker
• MediaPlayerElement
• ContentDialog
• MenuBar
• ToggleSplitButton
Bars (req 1.3)
• NavigationView
• Pivot
• ScrollIndicator
• ProgressBar
• Slider
• ColorPicker
• MediaPlayerElement
• WebView (not a part of XAML change)