resolve static method

PrismColors resolve(
  1. ColorScheme scheme,
  2. Brightness brightness
)

Derives semantic colors from an explicit scheme and brightness — useful when you have a theme but no BuildContext.

Implementation

static PrismColors resolve(ColorScheme scheme, Brightness brightness) {
  final isDark = brightness == Brightness.dark;

  // A hand-tuned green keeps "success" distinct from the primary hue,
  // which is often blue or purple in Material You.
  final success = isDark ? const Color(0xFF7BD8A8) : const Color(0xFF1B7A4B);
  final successContainer = isDark
      ? const Color(0xFF1E4C33)
      : const Color(0xFFC9F2DC);
  final onSuccessContainer = isDark
      ? const Color(0xFFC9F2DC)
      : const Color(0xFF06301A);

  // Warning leans amber, again to stay distinct from `tertiary`.
  final warning = isDark ? const Color(0xFFFFCF6B) : const Color(0xFF8A5A00);
  final warningContainer = isDark
      ? const Color(0xFF54401A)
      : const Color(0xFFFFE7B8);
  final onWarningContainer = isDark
      ? const Color(0xFFFFE7B8)
      : const Color(0xFF2E1F00);

  return PrismColors(
    success: success,
    onSuccess: isDark ? const Color(0xFF00391F) : Colors.white,
    successContainer: successContainer,
    onSuccessContainer: onSuccessContainer,
    warning: warning,
    onWarning: isDark ? const Color(0xFF3D2C00) : Colors.white,
    warningContainer: warningContainer,
    onWarningContainer: onWarningContainer,
    error: scheme.error,
    onError: scheme.onError,
    errorContainer: scheme.errorContainer,
    onErrorContainer: scheme.onErrorContainer,
    info: scheme.primary,
    onInfo: scheme.onPrimary,
    infoContainer: scheme.primaryContainer,
    onInfoContainer: scheme.onPrimaryContainer,
    surfaceRaised: scheme.surfaceContainerLow,
    surfaceSunken: scheme.surfaceContainerHighest,
    outline: scheme.outlineVariant,
    overlay: scheme.scrim.withValues(alpha: 0.32),
  );
}