parseColorSchemeFromJson function
Parses a color_palette JSON map into a Flutter ColorScheme.
Implementation
ColorScheme? parseColorSchemeFromJson(Map<String, dynamic>? json) {
if (json == null) return null;
Color? p(String key) => ThemeOverride._parseColor(json[key]);
final primary = p('primary') ?? const Color(0xFF6200EE);
final secondary = p('secondary') ?? const Color(0xFF03DAC6);
final surface = p('surface') ?? const Color(0xFFFFFFFF);
final background = p('background') ?? const Color(0xFFFFFFFF);
final error = p('error') ?? const Color(0xFFB00020);
final onPrimary = p('on_primary') ?? const Color(0xFFFFFFFF);
final onSecondary = p('on_secondary') ?? const Color(0xFF000000);
final onSurface = p('on_surface') ?? const Color(0xFF000000);
final onError = p('on_error') ?? const Color(0xFFFFFFFF);
// Determine brightness from background luminance
final brightness =
background.computeLuminance() > 0.5 ? Brightness.light : Brightness.dark;
return ColorScheme(
brightness: brightness,
primary: primary,
onPrimary: onPrimary,
secondary: secondary,
onSecondary: onSecondary,
error: error,
onError: onError,
surface: surface,
onSurface: onSurface,
);
}