Material 3 in .NET MAUI: One Line to Transform Your App

I’ve been waiting for this one. Material 3 (or Material You, as Google likes to call it) has been the default design language on Android for a while now, but .NET MAUI apps were stuck on Material 2. Your app worked fine, but it looked a little… dated next to native Android apps.
.NET MAUI 10 fixes that. And the best part? Enabling it is one line.
TL;DR: Add <UseMaterial3>true</UseMaterial3> to your project file. Your entries get outlined text fields, your buttons get rounded corners, your pickers get the modern Material 3 dialogs. No NuGet packages, no custom renderers, no theme dictionaries. I show the full before and after in the video.
Enabling Material 3 #
All you need is one property in your project file. Here’s what a typical multi-target .csproj looks like with Material 3 enabled:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net10.0-android;net10.0-ios;net10.0-maccatalyst</TargetFrameworks>
<OutputType>Exe</OutputType>
<UseMaui>true</UseMaui>
<!-- Add this to enable Material 3 -->
<UseMaterial3>true</UseMaterial3>
</PropertyGroup>
</Project>
That’s it! The property is simply ignored on non-Android platforms, so it’s safe to set in a multi-target project. No conditional properties needed. No extra NuGet packages. No changes to your XAML or C# code. Just set the property and rebuild.
Before and After #
Here’s what the HealthProfile app looks like with Material 2 (the default):


And here’s the same app with Material 3 enabled:


Which Controls Are Affected? #
This isn’t a vague “things look different.” Here’s the complete list of controls that get Material 3 styling:
- Entry — outlined text field with floating label (replaces the old underline style). The most visible change.
- Editor — same outlined treatment as Entry, with updated focus states and color tokens.
- SearchBar — Material 3 filled text field with a leading search icon and trailing clear button.
- Picker — outlined text field plus a Material 3 styled selection dialog.
- DatePicker — full-screen Material 3 calendar overlay (replaces the old spinner dialog). This one’s my favorite, the old spinner was really showing its age.
- TimePicker — Material 3 clock dial picker dialog.
- Slider — updated track and thumb design.
- ProgressBar — Material 3 linear progress indicator.
- RadioButton — updated visual feedback and color roles.
These are the controls that ship with Material 3 support in the initial .NET MAUI 10 release. More controls will be added through .NET MAUI 10 service releases, so keep an eye on the release notes.
Android Only, By Design #
Material 3 is specific to Android. The UseMaterial3 property has no effect on iOS, macOS, or Windows, and that’s intentional. Material 3 is Google’s design language. Apple has its own design system, Windows has Fluent. Your iOS app should look like an iOS app, and your Android app should look like a modern Android app. MAUI respects each platform’s conventions.
Customization #
You can still customize everything. Material 3 uses a color role system with primary, secondary, tertiary, and surface roles. On Android 12+, these can automatically adapt to the user’s wallpaper colors (dynamic theming). But your explicit style overrides always take precedence. If you’ve set a BackgroundColor on a Button, it stays that color.
If you want to work with Material 3’s color system rather than against it, define your app’s color scheme through Android’s colors.xml in Platforms/Android/Resources/values/:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#6750A4</color>
<color name="colorSecondary">#625B71</color>
<color name="colorSurface">#FFFBFE</color>
</resources>
The Material 3 components pick up those colors automatically.
Things to Keep in Mind #
A few practical notes before you flip the switch in production:
- Visual testing: Controls will look different. Layouts that fit perfectly with Material 2 might need minor adjustments, especially entries which are taller with the outlined style.
- Custom styles: Your existing styles still apply on top of Material 3, but verify spacing and sizing since the underlying controls have different dimensions.
- Performance: No measurable impact on startup time or rendering. The change is at the Android theme level, not a rendering layer on top.
- Minimum API level: Material 3 requires Android 5.0 (API 21), which is already the minimum for .NET MAUI. No issue there.
- Not enabled by default: If you don’t set the property, your app stays on Material 2. No surprises on upgrade to .NET 10.
- Easy to revert: Don’t like it? Just remove the
<UseMaterial3>property and rebuild. You’re back to Material 2.
The HealthProfile Sample #
Want to see it all in a real app before touching your own code? Clone the HealthProfile sample from the official dotnet/maui-samples repository:
git clone https://github.com/dotnet/maui-samples
cd maui-samples/10.0/UserInterface/Material3Demo/HealthProfile
dotnet build -t:Run -f net10.0-android
Make sure you have an Android emulator running or a device connected.
Try It #
One line in your project file. That’s all it takes. Check out the official Material 3 docs for the full reference with before/after screenshots of every control, and browse the HealthProfile sample source code.
I’d love to hear what your app looks like after flipping the switch. Go try it out!