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) { let labA = rgbToLab(rgbA); let labB = rgbToLab(rgbB); let deltaL = labA[0] - labB[0]; let deltaA = labA[1] - labB[1]; let deltaB = labA[2] - labB[2]; let c1 = Math.sqrt(labA[1] * labA[1] + labA[2] * labA[2]); let c2 = Math.sqrt(labB[1] * labB[1] + labB[2] * labB[2]); let deltaC = c1 - c2; let deltaH = deltaA * deltaA + deltaB * deltaB - deltaC * deltaC; deltaH = deltaH < 0 ? 0 : Math.sqrt(deltaH); let sc = 1.0 + 0.045 * c1; let sh = 1.0 + 0.015 * c1; let deltaLKlsl = deltaL / 1.0; let deltaCkcsc = deltaC / sc; let deltaHkhsh = deltaH / sh; let i = deltaLKlsl * deltaLKlsl + deltaCkcsc * deltaCkcsc + deltaHkhsh * deltaHkhsh; return i < 0 ? 0 : Math.sqrt(i); }