JSFiddle - React, Tailwind, and code Playground

by chayacooper

JavaScript

var CIEL1 = 0.00;
var CIEa1 = 0.00;
var CIEb1 = 0.00;	

var CIEL2 = 53.23;
var CIEa2 = 80.42;
var CIEb2 = 66.97;

function colorContrast(Delta CMC) {

    CIE - L * 1, CIE - a * 1, CIE - b * 1 //Color #1 CIE-L*ab values
    CIE - L * 2, CIE - a * 2, CIE - b * 2 //Color #2 CIE-L*ab values
    WHT - L, WHT - C //Weight factor

    xC1 = sqrt((CIE - a * 1 ^ 2) + (CIE - b * 1 ^ 2))
    xC2 = sqrt((CIE - a * 2 ^ 2) + (CIE - b * 2 ^ 2))
    xff = sqrt((xC1 ^ 4) / ((xC1 ^ 4) + 1900))
    xH1 = CieLab2Hue(CIE - a * 1, CIE - b * 1)

    if (xH1 < 164 || xH1 > 345) {  
        xTT = 0.36 + abs(0.4 * cos(dtor(35 + xH1)))
    }
    else {
        xTT = 0.56 + abs(0.2 * cos(dtor(168 + xH1)))
    }

    if (CIE - L * 1 < 16) {
        xSL = 0.511
    } else {
        xSL = (0.040975 * CIE - L * 1) / (1 + (0.01765 * CIE - L * 1))
    }

    xSC = ((0.0638 * xC1) / (1 + (0.0131 * xC1))) + 0.638
    xSH = ((xff * xTT) + 1 - xff) * xSC
    xDH = sqrt((CIE - a * 2 - CIE - a * 1) ^ 2 + (CIE - b * 2 - CIE - b * 1) ^ 2 - (xC2 - xC1) ^ 2)
    xSL = (CIE - L * 2 - CIE - L * 1) / WHT - L * xSL
    xSC = (xC2 - xC1) / WHT - C * xSC
    xSH = xDH / xSH
    Delta CMC = sqrt(xSL ^ 2 + xSC ^ 2 + xSH ^ 2)

    CieLab2Hue(var_a, var_b) //Function returns CIE-H° value
    {
        var_bias = 0
        if (var_a >= 0 && var_b == 0) return 0
        if (var_a < 0 && var_b == 0) return 180
        if (var_a == 0 && var_b > 0) return 90
        if (var_a == 0 && var_b < 0) return 270
        if (var_a > 0 && var_b > 0) var_bias = 0
        if (var_a < 0) var_bias = 180
        if (var_a > 0 && var_b < 0) var_bias = 360
        return (rad2deg(atan(var_b / var_a)) + var_bias)
    }
}