CarpenterColorScale.fromConfig constructor

CarpenterColorScale.fromConfig(
  1. 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);
}