parseColorSchemeFromJson function

ColorScheme? parseColorSchemeFromJson(
  1. Map<String, dynamic>? json
)

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,
  );
}