Skip to content

Commit c8207e1

Browse files
authored
Make longer and undefined/same hues have parity with CSS spec (#474)
* Make longer and undefined have parity with CSS spec * Don't correct hues until after raw angles are returned * Doesn't just apply to undefined
1 parent e3a0a0d commit c8207e1

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

src/angles.js

+19-1
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,31 @@
1+
import * as util from "./util.js";
2+
13
export function constrain (angle) {
24
return ((angle % 360) + 360) % 360;
35
}
46

57
export function adjust (arc, angles) {
8+
let [a1, a2] = angles;
9+
10+
let none1 = util.isNone(a1);
11+
let none2 = util.isNone(a2);
12+
13+
if (none1 && none2) {
14+
return [a1, a2];
15+
}
16+
else if (none1) {
17+
a1 = a2;
18+
}
19+
else if (none2) {
20+
a2 = a1;
21+
}
22+
623
if (arc === "raw") {
724
return angles;
825
}
926

10-
let [a1, a2] = angles.map(constrain);
27+
a1 = constrain(a1);
28+
a2 = constrain(a2);
1129

1230
let angleDiff = a2 - a1;
1331

test/angles.js

+10
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,15 @@ export default {
3131
args: ["raw", [-20, 380]],
3232
expect: [-20, 380],
3333
},
34+
{
35+
name: "Longer and Undefined",
36+
args: ["longer", [90, NaN]],
37+
expect: [90, 450],
38+
},
39+
{
40+
name: "Longer and Same Hues",
41+
args: ["longer", [90, 90]],
42+
expect: [90, 450],
43+
},
3444
],
3545
};

0 commit comments

Comments
 (0)