CarpenterColorScale.fromConfig constructor
CarpenterColorScale.fromConfig(
- CarpenterColorScaleConfig config
Создает шкалу из config.
Implementation
factory CarpenterColorScale.fromConfig(CarpenterColorScaleConfig config) {
final seed = config.seed;
final explicit = Map<String, Color>.of(config.colors);
if (seed == null) {
return CarpenterColorScale(explicit);
}
final lch = OkLch.fromColor(seed);
final chroma = config.chroma ?? (config.neutral ? 0.014 : lch.c);
final steps = config.steps.toList();
final colors = <String, Color>{};
for (var index = 0; index < steps.length; index += 1) {
final key = steps[index];
final t = steps.length <= 1 ? 0.5 : index / (steps.length - 1);
final lightness = _lerpDouble(0.98, 0.18, t);
final chromaFactor = config.neutral
? 1.0
: _lerpDouble(0.18, 0.42, (t - 0.5).abs() * 2);
final c = config.neutral
? chroma
: math.min(chroma.clamp(0.04, 0.2) * (1.2 - chromaFactor), 0.22);
colors[key] = OkLch(lightness, c, lch.h).toColor();
}
colors.addAll(explicit);
return CarpenterColorScale(colors);
}