Add Opt-In Material Design 3 Support for Android
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 23.3k
- Forks
- 2k
- Avg merge
- 1d 14h
- Merged PRs (30d)
- 296
Description
Summary
Add Material Design 3 (M3) support to .NET MAUI Android as an opt-in feature, allowing developers to modernize their app's appearance while maintaining backward compatibility with existing Material 2 applications.
Problem
Direct migration to Material 3 would be a breaking change because visual appearance, color schemes, and component behaviors would change for all existing apps.
Solution
Provide M3 as an opt-in feature via MSBuild property:
<PropertyGroup>
<UseMaterial3>true</UseMaterial3>
</PropertyGroup>
Key Deliverables
- Build Property -
UseMaterial3MSBuild property to enable M3 at build time - Dual Theme System - Maintain both M2 (default) and M3 themes simultaneously
- Conditional Widget Selection - Use M3 widgets (MaterialSwitch, etc.) when enabled
- Resource Files -
styles-material3.xmlandcolors-material3.xmlwith M3 tokens
Implementation Phases
| Phase | Focus | Scope |
|---|---|---|
| 1 | Foundation | Build property infrastructure, M3 resources, theme selection |
| 2 | Controls | Update handlers for M3 widgets (Switch, RadioButton, etc.) |
| 3 | Documentation | Migration guide, samples, PR template updates |
Breaking Change Analysis
None - M2 remains default, opt-in only, fully backward compatible.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Begin by locating the Android MSBuild property handling, theme resources, and control handlers referenced by the issue. Review how the existing Material 2 theme and widgets are selected, then verify the UseMaterial3 property, styles-material3.xml, colors-material3.xml, and listed control updates. Done means M2 remains the default while an opt-in build uses M3 resources and widgets without breaking existing apps.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, csharp
- Domain
- mobile
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100