fun asHSLA()

in kotlin-css/src/commonMain/kotlin/kotlinx/css/Color.kt [337:358]


        fun asHSLA(): HSLA {
            // scale R, G, B values into 0..1 fractions
            val r = red / 255.0
            val g = green / 255.0
            val b = blue / 255.0

            val cMax = maxOf(r, g, b)
            val cMin = minOf(r, g, b)
            val chroma = cMax - cMin

            val lg = normalizeFractionalPercent((cMax + cMin) / 2)
            val s = if (chroma != 0.0) normalizeFractionalPercent(chroma / (1.0 - abs((2.0 * lg) - 1.0))) else 0.0
            val h = when (cMax) {
                cMin -> 0.0
                r -> 60 * (((g - b) / chroma) % 6.0)
                g -> 60 * (((b - r) / chroma) + 2)
                b -> 60 * (((r - g) / chroma) + 4)
                else -> error("Unexpected value for max") // theoretically unreachable bc maxOf(r, g, b) above
            }

            return HSLA(normalizeHue(h), (s * 100).roundToInt(), (lg * 100).roundToInt(), alpha)
        }