ThemeData constructor
ThemeData({
- ColorScheme? colorScheme,
- Brightness? brightness,
- TargetPlatform? platform,
- String? fontFamily,
- List<
String> ? fontFamilyFallback, - VisualDensity? visualDensity,
- TapTargetSize? tapTargetSize,
- Color? scaffoldBackgroundColor,
- ColorScheme? elevatedColorScheme,
Implementation
factory ThemeData({
ColorScheme? colorScheme,
Brightness? brightness,
TargetPlatform? platform,
String? fontFamily,
List<String>? fontFamilyFallback,
VisualDensity? visualDensity,
TapTargetSize? tapTargetSize,
Color? scaffoldBackgroundColor,
ColorScheme? elevatedColorScheme,
}) {
final scheme =
colorScheme ?? _defaultScheme(brightness ?? Brightness.light);
final effectivePlatform = platform ?? defaultTargetPlatform;
final desktop = switch (effectivePlatform) {
TargetPlatform.macOS ||
TargetPlatform.windows ||
TargetPlatform.linux => true,
_ => false,
};
return ThemeData._(
colorScheme: scheme,
platform: effectivePlatform,
fontFamily: fontFamily,
fontFamilyFallback: fontFamilyFallback,
visualDensity:
visualDensity ??
(desktop ? VisualDensity.compact : VisualDensity.standard),
tapTargetSize:
tapTargetSize ??
(desktop ? TapTargetSize.shrinkWrap : TapTargetSize.padded),
scaffoldBackgroundColor:
scaffoldBackgroundColor ?? SurfaceLevel.page.colorOf(scheme),
elevatedColorScheme: elevatedColorScheme,
);
}