getNeutralVariantPalette method

  1. @override
TonalPalette getNeutralVariantPalette(
  1. Variant variant,
  2. Hct sourceColorHct,
  3. bool isDark,
  4. Platform platform,
  5. double contrastLevel,
)
override

Implementation

@override
TonalPalette getNeutralVariantPalette(
  Variant variant,
  Hct sourceColorHct,
  bool isDark,
  Platform platform,
  double contrastLevel,
) {
  switch (variant) {
    case .neutral:
      return .fromHueAndChroma(
        sourceColorHct.hue,
        (platform == .phone ? 1.4 : 6.0) * 2.2,
      );
    case .tonalSpot:
      return .fromHueAndChroma(
        sourceColorHct.hue,
        (platform == .phone ? 5.0 : 10.0) * 1.7,
      );
    case .expressive:
      final expressiveNeutralHue = _getExpressiveNeutralHue(sourceColorHct);
      final expressiveNeutralChroma = _getExpressiveNeutralChroma(
        sourceColorHct,
        isDark,
        platform,
      );
      return .fromHueAndChroma(
        expressiveNeutralHue,
        expressiveNeutralChroma *
            (expressiveNeutralHue >= 105.0 && expressiveNeutralHue < 125.0
                ? 1.6
                : 2.3),
      );
    case .vibrant:
      final vibrantNeutralHue = _getVibrantNeutralHue(sourceColorHct);
      final vibrantNeutralChroma = _getVibrantNeutralChroma(
        sourceColorHct,
        platform,
      );
      return .fromHueAndChroma(
        vibrantNeutralHue,
        vibrantNeutralChroma * 1.29,
      );
    default:
      return super.getNeutralVariantPalette(
        variant,
        sourceColorHct,
        isDark,
        platform,
        contrastLevel,
      );
  }
}