UNPKG

@atlaskit/tokens

Version:

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

20 lines 777 B
import { rgbToLab } from './rgb-to-lab'; export function deltaE(rgbA, rgbB) { var labA = rgbToLab(rgbA); var labB = 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); }