findDark method

Color findDark()

Finds a darker variant of the color.

Implementation

Color findDark() {
  final hsl = HSLColor.fromColor(this);
  final luminance = computeLuminance();
  const baseLuminance = 0.30;
  final luminanceDelta = 0.15;
  final lightness = baseLuminance +
      luminanceDelta * ((luminance - 0.5) * 2.0).clamp(0.0, 1.0);

  if (_isWhiteOrBlack) {
    final v = (lightness * 255).round().clamp(0, 255);
    return Color.fromARGB(alpha, v, v, v);
  }

  return hsl
      .withLightness(lightness)
      .withSaturation(_isWhiteOrBlack ? 0 : hsl.saturation)
      .toColor();
}