unbork rgb colors with %
This commit is contained in:
parent
a5b11ac687
commit
0128489bbb
|
@ -127,25 +127,28 @@ const colorConverter = (() => {
|
||||||
if (!func || !testAt(RX_COLOR[type], 0, value)) {
|
if (!func || !testAt(RX_COLOR[type], 0, value)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const [s1, s2, s3, sA] = value.split(/\s*[,/]\s*|\s+/);
|
const strings = value.split(/\s*[,/]\s*|\s+/);
|
||||||
const a = isNaN(sA) ? 1 : constrain(0, 1, sA / (sA.endsWith('%') ? 100 : 1));
|
const [s1, /*s2*/, /*s3*/, sA] = strings;
|
||||||
|
const [n1, n2, n3, nA] = strings.map(parseFloat);
|
||||||
|
const a = isNaN(nA) ? 1 : constrain(0, 1, nA / (sA.endsWith('%') ? 100 : 1));
|
||||||
|
|
||||||
if (type === 'rgb') {
|
if (type === 'rgb') {
|
||||||
const k = s1.endsWith('%') ? 2.55 : 1;
|
const k = s1.endsWith('%') ? 2.55 : 1;
|
||||||
return {
|
return {
|
||||||
type,
|
type,
|
||||||
r: constrain(0, 255, Math.round(s1 * k)),
|
r: constrain(0, 255, Math.round(n1 * k)),
|
||||||
g: constrain(0, 255, Math.round(s2 * k)),
|
g: constrain(0, 255, Math.round(n2 * k)),
|
||||||
b: constrain(0, 255, Math.round(s3 * k)),
|
b: constrain(0, 255, Math.round(n3 * k)),
|
||||||
a,
|
a,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
const h = constrainHue(parseFloat(s1) * (ANGLE_TO_DEG[s1.match(/\D*$/)[0]] || 1));
|
|
||||||
const n2 = constrain(0, 100, parseFloat(s2) || 0);
|
const h = constrainHue(n1 * (ANGLE_TO_DEG[s1.match(/\D*$/)[0]] || 1));
|
||||||
const n3 = constrain(0, 100, parseFloat(s3) || 0);
|
const n2c = constrain(0, 100, n2 || 0);
|
||||||
|
const n3c = constrain(0, 100, n3 || 0);
|
||||||
return type === 'hwb'
|
return type === 'hwb'
|
||||||
? {type, h, w: n2, b: n3, a}
|
? {type, h, w: n2c, b: n3c, a}
|
||||||
: {type, h, s: n2, l: n3, a};
|
: {type, h, s: n2c, l: n3c, a};
|
||||||
}
|
}
|
||||||
|
|
||||||
function formatAlpha(a) {
|
function formatAlpha(a) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user