UNPKG

@atlaskit/tokens

Version:

Design tokens are the single source of truth to name and store design decisions.

26 lines (25 loc) 905 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.deltaE = deltaE; var _rgbToLab = require("./rgb-to-lab"); function deltaE(rgbA, rgbB) { var labA = (0, _rgbToLab.rgbToLab)(rgbA); var labB = (0, _rgbToLab.rgbToLab)(rgbB); var deltaL = labA[0] - labB[0]; var deltaA = labA[1] - labB[1]; var deltaB = labA[2] - labB[2]; var c1 = Math.sqrt(labA[1] * labA[1] + labA[2] * labA[2]); var c2 = Math.sqrt(labB[1] * labB[1] + labB[2] * labB[2]); var deltaC = c1 - c2; var deltaH = deltaA * deltaA + deltaB * deltaB - deltaC * deltaC; deltaH = deltaH < 0 ? 0 : Math.sqrt(deltaH); var sc = 1.0 + 0.045 * c1; var sh = 1.0 + 0.015 * c1; var deltaLKlsl = deltaL / 1.0; var deltaCkcsc = deltaC / sc; var deltaHkhsh = deltaH / sh; var i = deltaLKlsl * deltaLKlsl + deltaCkcsc * deltaCkcsc + deltaHkhsh * deltaHkhsh; return i < 0 ? 0 : Math.sqrt(i); }