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