buildGsShadTheme function

ShadThemeData buildGsShadTheme(
  1. Map<String, dynamic> tp
)

Implementation

ShadThemeData buildGsShadTheme(Map<String, dynamic> tp) {
  final Map<String, dynamic> newTp = getNewThemeParams(tp);
  final String schemeName =
      (newTp['shadColorSchemeName'] ?? shadColorSchemeName).toString();

  ShadColorScheme baseScheme;
  try {
    baseScheme = ShadColorScheme.fromName(
      schemeName,
      brightness: Brightness.light,
    );
  } catch (_) {
    if (createGsAppDebug) {
      logDebug(
        'buildGsShadTheme | invalid shadColorSchemeName "$schemeName", '
        'falling back to "$shadColorSchemeName"',
      );
    }
    baseScheme = ShadColorScheme.fromName(
      shadColorSchemeName,
      brightness: Brightness.light,
    );
  }

  final ShadColorScheme colorScheme = baseScheme.copyWith(
    background: newTp['scaffoldBackgroundColor'],
    foreground: newTp['textColor'],
    card: newTp['scaffoldBackgroundColor'],
    cardForeground: newTp['textColor'],
    popover: newTp['scaffoldBackgroundColor'],
    popoverForeground: newTp['textColor'],
    primary: newTp['accentColor'],
    primaryForeground: newTp['accentForegroundColor'],
    secondary: newTp['neutralSurfaceColor'],
    secondaryForeground: newTp['textColor'],
    muted: newTp['neutralSurfaceColor'],
    mutedForeground: newTp['secondaryTextColor'],
    accent: newTp['neutralSurfaceColor'],
    accentForeground: newTp['textColor'],
    destructive: newTp['errorBackgroundColor'],
    destructiveForeground: newTp['errorForegroundColor'],
    border: newTp['separatorColor'],
    input: newTp['separatorColor'],
    ring: newTp['accentColor'],
  );

  return ShadThemeData(
    brightness: Brightness.light,
    colorScheme: colorScheme,
    radius: newTp['corners'],
  );
}