decodeColorScheme static method

ColorScheme? decodeColorScheme(
  1. dynamic value, {
  2. bool validate = true,
})

Decodes the given value to an CardTheme. This expects the given value to follow the structure below:

{
  "background": <Color>,
  "brightness": <Brightness>,
  "error": <Color>,
  "errorContainer": <Color>,
  "inversePrimary": <Color>,
  "inverseSurface": <Color>,
  "onBackground": <Color>,
  "onError": <Color>,
  "onErrorContainer": <Color>,
  "onInverseSurface": <Color>,
  "onPrimary": <Color>,
  "onPrimaryContainer": <Color>,
  "onSecondary": <Color>,
  "onSecondaryContainer": <Color>,
  "onSurface": <Color>,
  "onSurfaceVariant": <Color>,
  "onTertiary": <Color>,
  "onTertiaryContainer": <Color>,
  "outline": <Color>,
  "primary": <Color>,
  "primaryContainer": <Color>,
  "secondary": <Color>,
  "secondaryContainer": <Color>,
  "shadow": <Color>,
  "surface": <Color>,
  "surfaceVariant": <Color>,
  "tertiary": <Color>,
  "tertiaryContainer": <Color>
}

See also:

Implementation

static ColorScheme? decodeColorScheme(
  dynamic value, {
  bool validate = true,
}) {
  ColorScheme? result;

  if (value is ColorScheme) {
    result = value;
  } else if (value != null) {
    assert(SchemaValidator.validate(
      schemaId: '$_baseSchemaUrl/color_scheme',
      value: value,
      validate: validate,
    ));
    result = ColorScheme(
      background: decodeColor(
        value['background'],
        validate: false,
      )!,
      brightness: decodeBrightness(
        value['brightness'],
        validate: false,
      )!,
      error: decodeColor(
        value['error'],
        validate: false,
      )!,
      errorContainer: decodeColor(
        value['errorContainer'],
        validate: false,
      ),
      inversePrimary: decodeColor(
        value['inversePrimary'],
        validate: false,
      ),
      inverseSurface: decodeColor(
        value['inverseSurface'],
        validate: false,
      ),
      onBackground: decodeColor(
        value['onBackground'],
        validate: false,
      )!,
      onError: decodeColor(
        value['onError'],
        validate: false,
      )!,
      onErrorContainer: decodeColor(
        value['onErrorContainer'],
        validate: false,
      ),
      onInverseSurface: decodeColor(
        value['onInverseSurface'],
        validate: false,
      ),
      onPrimary: decodeColor(
        value['onPrimary'],
        validate: false,
      )!,
      onPrimaryContainer: decodeColor(
        value['onPrimaryContainer'],
        validate: false,
      ),
      onSecondary: decodeColor(
        value['onSecondary'],
        validate: false,
      )!,
      onSecondaryContainer: decodeColor(
        value['onSecondaryContainer'],
        validate: false,
      ),
      onSurface: decodeColor(
        value['onSurface'],
        validate: false,
      )!,
      onSurfaceVariant: decodeColor(
        value['onSurfaceVariant'],
        validate: false,
      ),
      onTertiary: decodeColor(
        value['onTertiary'],
        validate: false,
      ),
      onTertiaryContainer: decodeColor(
        value['onTertiaryContainer'],
        validate: false,
      ),
      outline: decodeColor(
        value['outline'],
        validate: false,
      ),
      primary: decodeColor(
        value['primary'],
        validate: false,
      )!,
      primaryContainer: decodeColor(
        value['primaryContainer'] ?? value['primaryVariant'],
        validate: false,
      ),
      secondary: decodeColor(
        value['secondary'],
        validate: false,
      )!,
      secondaryContainer: decodeColor(
        value['secondaryContainer'] ?? value['secondaryVariant'],
        validate: false,
      ),
      shadow: decodeColor(
        value['shadow'],
        validate: false,
      ),
      surface: decodeColor(
        value['surface'],
        validate: false,
      )!,
      surfaceTint: decodeColor(
        value['surfaceTint'],
        validate: false,
      ),
      surfaceVariant: decodeColor(
        value['surfaceVariant'],
        validate: false,
      ),
      tertiary: decodeColor(
        value['tertiary'],
        validate: false,
      ),
      tertiaryContainer: decodeColor(
        value['tertiaryContainer'],
        validate: false,
      ),
    );
  }

  return result;
}