secondary property

  1. @override
DynamicColor get secondary
override

Implementation

@override
DynamicColor get secondary {
  final color2025 = DynamicColor(
    name: "secondary",
    palette: (scheme) => scheme.secondaryPalette,
    tone: (scheme) {
      if (scheme.platform == .watch) {
        return scheme.variant == .neutral
            ? 90.0
            : _tMaxC(scheme.secondaryPalette, 0, 90);
      } else if (scheme.variant == .neutral) {
        return scheme.isDark
            ? _tMinC(scheme.secondaryPalette, 0, 98)
            : _tMaxC(scheme.secondaryPalette);
      } else if (scheme.variant == .vibrant) {
        return _tMaxC(scheme.secondaryPalette, 0, scheme.isDark ? 90 : 98);
      } else {
        // EXPRESSIVE and TONAL_SPOT
        return scheme.isDark ? 80.0 : _tMaxC(scheme.secondaryPalette);
      }
    },
    isBackground: true,
    background: (scheme) {
      if (scheme.platform == .phone) {
        return scheme.isDark ? surfaceBright : surfaceDim;
      } else {
        return surfaceContainerHigh;
      }
    },
    contrastCurve: (scheme) => scheme.platform == .phone
        ? _getContrastCurve(4.5)
        : _getContrastCurve(7),
    toneDeltaPair: (scheme) => scheme.platform == .phone
        ? ToneDeltaPair(
            roleA: secondaryContainer,
            roleB: secondary,
            delta: 5.0,
            polarity: .relativeLighter,
            constraint: .farther,
          )
        : null,
  );
  return super.secondary.extendSpecVersion(.spec2025, color2025);
}