hexToHsl function
Implementation
HSL hexToHsl(String hex) {
final rgb = hexToRgb(hex);
final r = rgb.r / 255;
final g = rgb.g / 255;
final b = rgb.b / 255;
final maxN = max(r, max(g, b));
final minN = min(r, min(g, b));
final l = (maxN + minN) / 2;
double h = 0, s = 0;
if (maxN == minN) {
h = s = 0;
} else {
final d = maxN - minN;
s = l > 0.5 ? d / (2 - maxN - minN) : d / (maxN + minN);
if (maxN == r) {
h = (g - b) / d + (g < b ? 6 : 0);
} else if (maxN == g) {
h = (b - r) / d + 2;
} else if (maxN == b) {
h = (r - g) / d + 4;
}
h = h * 6;
}
return HSL(
h: (h * 100).roundToDouble() / 10,
s: (s * 1000).roundToDouble() / 10,
l: (l * 1000).roundToDouble() / 10,
);
}