getNeutralVariantPalette method
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,
);
}
}