onSurface property

  1. @override
DynamicColor get onSurface
override

Implementation

@override
DynamicColor get onSurface {
  final color2025 = DynamicColor(
    name: "on_surface",
    palette: (scheme) => scheme.neutralPalette,
    tone: (scheme) {
      if (scheme.variant == .vibrant) {
        return _tMaxC(scheme.neutralPalette, 0, 100, 1.1);
      } else {
        return DynamicColor.getInitialToneFromBackground((scheme) {
          if (scheme.platform == .phone) {
            return scheme.isDark ? surfaceBright : surfaceDim;
          } else {
            return surfaceContainerHigh;
          }
        })(scheme);
      }
    },
    chromaMultiplier: (scheme) {
      if (scheme.platform == .phone) {
        if (scheme.variant == .neutral) {
          return 2.2;
        } else if (scheme.variant == .tonalSpot) {
          return 1.7;
        } else if (scheme.variant == .expressive) {
          return Hct.isYellow(scheme.neutralPalette.hue)
              ? (scheme.isDark ? 3.0 : 2.3)
              : 1.6;
        }
      }
      return 1.0;
    },
    background: (scheme) {
      if (scheme.platform == .phone) {
        return scheme.isDark ? surfaceBright : surfaceDim;
      } else {
        return surfaceContainerHigh;
      }
    },
    contrastCurve: (scheme) => scheme.isDark && scheme.platform == .phone
        ? _getContrastCurve(11)
        : _getContrastCurve(9),
  );
  return super.onSurface.extendSpecVersion(.spec2025, color2025);
}