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: RadialGradientBrush #266

Closed
18 tasks done
SavoySchuler opened this issue Feb 5, 2019 · 10 comments
Closed
18 tasks done

Proposal: RadialGradientBrush #266

SavoySchuler opened this issue Feb 5, 2019 · 10 comments
Assignees
Labels
area-Materials Reveal, Acrylic, lighting, etc. feature proposal New feature proposal proposal-NewControl This proposal might involve creating a new control team-Controls Issue for the Controls team
Milestone

Comments

@SavoySchuler
Copy link
Member

SavoySchuler commented Feb 5, 2019

Proposal: RadialGradientBrush

Links:

Spec

Preview implementation

Summary

This feature would add RadialGradientBrush to UWP XAML.

colorful radial gradient

Rationale

The Composition team has recently added radial gradient brush capability to Windows for XAML to leverage. RadialGradientBrush is a popular and enduring request that will delight veteran XAML customers. There exists RadialGradientBrush for WPF, however many core properties such as the transform property and animation are not supported. Additionally, design research indicates a resurgence of radial gradient use in applications targeting communication, social, and recreational functions.

Functional Requirements

# Feature Priority
1 Able to customize the number of stops on the gradient Must
2 Able to customize the color of each stop Must
3 Able to set gradient and ellipse origin Must
4 Support for absolute and relative mapping modes Must
5 Able to change color space of interpolation Must
6 WPF, Silverlight, and C++/WinRT compatibility (XAML and Visual) to enable leveraging of existing assets. Must
7 AlphaMode modifier to support natural transparency blending Should
8 Able to animate the stops and stop colors with Storyboard support Should

Important Notes

Open Questions

Release Checklists

Prerelease readiness

  • Dev: quality review + code review done
  • Dev: test coverage added
  • Dev: initial accessibility review done
  • Dev: telemetry implemented
  • PM: spec up to date
  • PM: feature ready for feedback
  • PM: docs.microsoft.com updates ready

Stable release readiness

  • Dev: feature previously shipped in a prerelease NuGet package
  • Dev: Azure CI tests passing
  • Dev: accessibility review done
  • Dev: API review done
  • Dev: IDL attribute switched from preview to public
  • Dev: Add test coverage to the NugetReleaseTest test
  • PM: spec done
  • PM: glob/loc, privacy, security, license compliance ready
  • PM: customer validation done
  • PM: docs.microsoft.com updated
  • PM: Xaml Controls Gallery updated
@SavoySchuler SavoySchuler added the feature proposal New feature proposal label Feb 5, 2019
@SavoySchuler SavoySchuler self-assigned this Feb 5, 2019
@michael-hawker
Copy link
Collaborator

@SavoySchuler we added one to the Windows Community Toolkit the other year; however, we don't support all the needed scenarios.

Things missing from your requirements list:

  • WPF/Silverlight compatibility (XAML and Visual) [there's a ton of available assets online and in existing projects which people want to reuse in UWP, this was something we strived for in the toolkit and achieved with our Win2D interop.]
  • Supporting both absolute and relative mapping modes
  • Storyboard support (for stops and colors)
  • Something we added in the toolkit was modifiers to things like the AlphaMode to allow for more natural transparency blending, that'd be nice to have here as well.

@SavoySchuler
Copy link
Member Author

SavoySchuler commented Feb 7, 2019

Thanks, @michael-hawker, I have updated the Functional Requirements list with these bullets! Please let me know if you agree or disagree with the priorities I assigned to them - are either of the Should's worth gating a release for?

@michael-hawker
Copy link
Collaborator

@SavoySchuler thanks! Think the only thing is for the WPF compatibility, if it's not done upfront then changing syntax can be difficult after an initial release, so it's more of a note to make sure to not deviate too far from the existing property names, enum value names, or default values.

@YuliKl YuliKl added the area-Materials Reveal, Acrylic, lighting, etc. label Feb 7, 2019
@Berrysoft
Copy link

@michael-hawker The one added to the Windows Community Toolkit isn't compatible with C++/WinRT. There's also a bug of it.

@michael-hawker
Copy link
Collaborator

@Berrysoft yes good call. That's one of the scenarios we don't cover as the toolkit is mostly C#. We've since started adding more support for some things in C++, but it's a good call out that by adding it to WinUI it'll work for both. :)

@SavoySchuler
Copy link
Member Author

SavoySchuler commented Feb 12, 2019

Thanks, @michael-hawker and @Berrysoft, I have updated the proposal with those details and upgraded the priority to "Must" for that feature.

@SavoySchuler
Copy link
Member Author

SavoySchuler commented Apr 25, 2019

This proposal has been approved for spec writing!

Please feel encouraged to continue high-level discussion here on the proposal. The associated Pull Request is available for more detailed discussion of the APIs.

@SavoySchuler
Copy link
Member Author

I've had a full plate recently and I want to make sure this proposal keeps moving forward, so I will be handing #266 over @jesbis. He will be the PM owner, so be sure to @ him if you have any questions or ideas! 😊

@SavoySchuler SavoySchuler removed their assignment Aug 16, 2019
@michael-hawker
Copy link
Collaborator

Welcome @jesbis! If you have any questions or want to sync, let me know. I wrote the initial stop-gap version that we put in the Windows Community Toolkit.

@jevansaks jevansaks added this to the WinUI 2.3 milestone Sep 27, 2019
@jevansaks jevansaks removed this from the WinUI 2.3 milestone Oct 14, 2019
@jevansaks jevansaks added the team-Controls Issue for the Controls team label Nov 7, 2019
@michael-hawker
Copy link
Collaborator

🦙 For History, Linking to completed WPF Parity issues #2180 #2193

@ranjeshj ranjeshj added this to the WinUI 2.4 milestone Apr 8, 2020
@ranjeshj ranjeshj added the proposal-NewControl This proposal might involve creating a new control label Apr 13, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-Materials Reveal, Acrylic, lighting, etc. feature proposal New feature proposal proposal-NewControl This proposal might involve creating a new control team-Controls Issue for the Controls team
Projects
None yet
Development

No branches or pull requests

7 participants