lighter static method
Returns T in HCT, L* in Lab* >= tone parameter that ensures ratio with input T/L*. Returns null if ratio cannot be achieved.
Implementation
static double? lighter(double tone, double ratio) {
if (tone < 0.0 || tone > 100.0) return null;
// Invert the contrast ratio equation to determine lighter Y given a ratio and darker Y.
final darkY = ColorUtils.yFromLstar(tone);
final lightY = ratio * (darkY + 5.0) - 5.0;
if (lightY < 0.0 || lightY > 100.0) return null;
final realContrast = ratioOfYs(lightY, darkY);
final delta = (realContrast - ratio).abs();
if (realContrast < ratio && delta > _contrastRatioEpsilon) return null;
final returnValue =
ColorUtils.lstarFromY(lightY) + _luminanceGamutMapTolerance;
// NOMUTANTS--important validation step; functions it is calling may change implementation.
return returnValue < 0.0 || returnValue > 100.0 ? null : returnValue;
}