ThemeData constructor

ThemeData({
  1. ColorScheme? colorScheme,
  2. Brightness? brightness,
  3. TargetPlatform? platform,
  4. String? fontFamily,
  5. List<String>? fontFamilyFallback,
  6. VisualDensity? visualDensity,
  7. TapTargetSize? tapTargetSize,
  8. Color? scaffoldBackgroundColor,
  9. 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,
  );
}