toFlutterTheme static method
Implementation
static ThemeData toFlutterTheme(Map<String, dynamic>? uidlTheme, {String? name}) {
if (uidlTheme == null || uidlTheme.isEmpty) {
return ThemeData();
}
final primaryColor = ThemeResolver.parseColor(uidlTheme['primaryColor'] ?? uidlTheme['primary']);
final secondaryColor = ThemeResolver.parseColor(uidlTheme['secondaryColor'] ?? uidlTheme['secondary']);
final surfaceColor = ThemeResolver.parseColor(uidlTheme['surfaceColor'] ?? uidlTheme['surface']);
final errorColor = ThemeResolver.parseColor(uidlTheme['errorColor'] ?? uidlTheme['error']);
final backgroundColor = ThemeResolver.parseColor(uidlTheme['backgroundColor'] ?? uidlTheme['background']);
final brightness = uidlTheme['brightness'] == 'dark'
? Brightness.dark
: Brightness.light;
final colorScheme = ColorScheme(
brightness: brightness,
primary: primaryColor ?? (brightness == Brightness.dark ? Colors.blue.shade300 : Colors.blue.shade700),
onPrimary: Colors.white,
secondary: secondaryColor ?? (brightness == Brightness.dark ? Colors.teal.shade300 : Colors.teal.shade700),
onSecondary: Colors.white,
surface: surfaceColor ?? (brightness == Brightness.dark ? Colors.grey.shade900 : Colors.white),
onSurface: brightness == Brightness.dark ? Colors.white : Colors.black,
error: errorColor ?? Colors.red,
onError: Colors.white,
);
final textTheme = _buildTextTheme(uidlTheme['textStyle'], brightness);
return ThemeData(
brightness: brightness,
colorScheme: colorScheme,
scaffoldBackgroundColor: backgroundColor,
textTheme: textTheme,
useMaterial3: true,
);
}