useMaterial3 property Null safety

bool useMaterial3
final

A temporary flag used to opt-in to Material 3 features.

If true, then widgets that have been migrated to Material 3 will use new colors, typography and other features of Material 3. If false, they will use the Material 2 look and feel.

During the migration to Material 3, turning this on may yield inconsistent look and feel in your app as some widgets are migrated while others have yet to be.

Defaults to false. When the Material 3 specification is complete and all widgets are migrated on stable, we will change this flag to be true by default. After that change has landed on stable, we will deprecate this flag and remove all uses of it. At that point, the material library will aim to only support Material 3.

Defaults

If a ThemeData is constructed with useMaterial3 set to true, then some properties will get updated defaults. Please note that ThemeData.copyWith with useMaterial3 set to true will not change any of these properties in the resulting ThemeData.

PropertyMaterial 3 defaultMaterial 2 default
typographyTypography.material2021Typography.material2014
splashFactoryInkSparkle* or InkRippleInkSplash

* if the target platform is Android and the app is not running on the web, otherwise it will fallback to InkRipple.

Affected widgets

This flag affects styles and components.

Styles

  • Color: ColorScheme, Material
  • Shape: (see components below)
  • Typography: typography (see table above)

Components

In addition, this flag enables features introduced in Android 12.

See also:

Implementation

final bool useMaterial3;