@jannchie/icons 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -81,7 +81,15 @@ var thin = (d) => ({
81
81
  thin: true
82
82
  });
83
83
  var brows = (y, dx) => [thin(`M${12 - dx - .7} ${y + .2}Q${12 - dx} ${y - .1} ${12 - dx + .7} ${y}`), thin(`M${12 + dx + .7} ${y + .2}Q${12 + dx} ${y - .1} ${12 + dx - .7} ${y}`)];
84
- var mouth = (y, w = 1.6) => thin(`M${12 - w} ${y - .2}C${12 - w * .65} ${y + 1} ${12 - w * .1} ${y + .9} 12 ${y - .5}C${12 + w * .1} ${y + .9} ${12 + w * .65} ${y + 1} ${12 + w} ${y - .2}`);
84
+ var mouth = (y, w = 1.6) => {
85
+ const [end, tip, depth] = [
86
+ y - .2,
87
+ y - .5,
88
+ .9
89
+ ];
90
+ const low = end + depth * 4 / 3 + (tip - end) / 3;
91
+ return thin(`M${12 - w} ${end}C${12 - w} ${low} 12 ${low} 12 ${tip}C12 ${low} ${12 + w} ${low} ${12 + w} ${end}`);
92
+ };
85
93
  var blush = (y, dx) => [
86
94
  thin(`M${12 - dx - .8} ${y + .5}L${12 - dx - .35} ${y - .4}`),
87
95
  thin(`M${12 - dx + .35} ${y + .5}L${12 - dx + .8} ${y - .4}`),
@@ -9,14 +9,14 @@ var shape = {
9
9
  var chiikawa_default = () => [
10
10
  face(shape, {
11
11
  right: {
12
- from: .18,
13
- to: .44,
14
- draw: roundEar(2.1)
12
+ from: .21,
13
+ to: .41,
14
+ draw: roundEar(1.6)
15
15
  },
16
16
  left: {
17
- from: .56,
18
- to: .82,
19
- draw: roundEar(2.1)
17
+ from: .59,
18
+ to: .79,
19
+ draw: roundEar(1.6)
20
20
  }
21
21
  }),
22
22
  ...brows(11.25, 3.5),
@@ -1,20 +1,23 @@
1
+ import { GROUND, groundLine, opening } from "../scene.js";
2
+ import { rounded } from "../geometry.js";
1
3
  //#region src/icons/stadium.js
2
- var [cx, top, rx, ry] = [
4
+ var [cx, rimY, rx, ry] = [
3
5
  12,
6
+ 10,
4
7
  8.5,
5
- 9,
6
- 3.5
8
+ 2
7
9
  ];
8
- var [bottom, bx, by] = [
9
- 15.5,
10
- 6.5,
11
- 3
12
- ];
13
- var ellipse = (y, a, b) => `M${cx - a} ${y}a${a} ${b} 0 1 0 ${a * 2} 0a${a} ${b} 0 1 0 ${-a * 2} 0`;
14
- var stadium_default = () => [
15
- ellipse(top, rx, ry),
16
- ellipse(top, 4.5, 1.5),
17
- `M${cx - rx} ${top}L${cx - bx} ${bottom}A${bx} ${by} 0 0 0 ${cx + bx} ${bottom}L${cx + rx} ${top}`
10
+ var backY = (x) => rimY - ry * Math.sqrt(1 - ((x - cx) / rx) ** 2);
11
+ var flag = (x) => `M${x} ${+backY(x).toFixed(2)}V2.5L${x + 3} 3.75L${x} 5`;
12
+ var stadium_default = ({ radius }) => [
13
+ groundLine,
14
+ `M${cx - rx} ${rimY}a${rx} ${ry} 0 1 0 ${rx * 2} 0a${rx} ${ry} 0 1 0 ${-rx * 2} 0`,
15
+ `M${cx - rx} ${rimY}V${GROUND}`,
16
+ `M${cx + rx} ${rimY}V${GROUND}`,
17
+ `M${cx - rx} 13.5A${rx} ${ry} 0 0 0 ${cx + rx} 13.5`,
18
+ flag(7.5),
19
+ flag(15.5),
20
+ rounded(opening(12, 3, 3.5), radius, false)
18
21
  ];
19
22
  //#endregion
20
23
  export { stadium_default as default };
@@ -1,12 +1,13 @@
1
1
  import { GROUND, groundLine } from "../scene.js";
2
2
  //#region src/icons/torii.js
3
+ var pillars = [6.5, 17.5];
4
+ var top = 4.5;
5
+ var nuki = 9.5;
3
6
  var torii_default = () => [
4
7
  groundLine,
5
- "M2.5 3.5Q12 7.5 21.5 3.5",
6
- "M5 7.5H19",
7
- "M5.5 11.5H18.5",
8
- `M7.5 7.5V${GROUND}`,
9
- `M16.5 7.5V${GROUND}`
8
+ `M2.5 3Q4 ${top} 6.5 ${top}H17.5Q20 ${top} 21.5 3`,
9
+ `M4 ${nuki}H20`,
10
+ ...pillars.map((x) => `M${x} ${top}V${GROUND}`)
10
11
  ];
11
12
  //#endregion
12
13
  export { torii_default as default };
@@ -9,13 +9,13 @@ var shape = {
9
9
  var usagi_default = () => [
10
10
  face(shape, {
11
11
  right: {
12
- from: .1,
13
- to: .31,
12
+ from: .07,
13
+ to: .28,
14
14
  draw: longEar(.75)
15
15
  },
16
16
  left: {
17
- from: .69,
18
- to: .9,
17
+ from: .72,
18
+ to: .93,
19
19
  draw: longEar(.75)
20
20
  }
21
21
  }),
@@ -23,7 +23,7 @@ var usagi_default = () => [
23
23
  thin("M17.4 14.1C17.4 12.5 16.4 11.2 14.9 11"),
24
24
  ...eyes(15.25, 3.5),
25
25
  mouth(17.4),
26
- thin("M12 16.95C11.4 17.5 11.3 18.45 12 18.75C12.5 18.95 12.95 18.55 12.75 18.1"),
26
+ thin("M12 16.95C11.4 17.5 11.3 18.45 12 18.75C12.09 18.79 12.18 18.8 12.26 18.8"),
27
27
  ...blush(17.1, 6.6)
28
28
  ];
29
29
  //#endregion
@@ -1,56 +1,32 @@
1
1
  import { GROUND, groundLine, opening } from "../scene.js";
2
- import { circle, crisp, rounded } from "../geometry.js";
2
+ import { crisp, rounded } from "../geometry.js";
3
3
  //#region src/icons/windmill.js
4
- var hub = [12, 8.5];
5
- var [from, sailFrom, to, sail] = [
6
- 1.5,
7
- 2.75,
8
- 6.5,
9
- 2
10
- ];
4
+ var hub = [12, 8];
5
+ var reach = 6;
11
6
  var knife = (d) => ({
12
7
  d,
13
8
  cut: true,
14
9
  gap: .75
15
10
  });
16
- function blade([ux, uy], radius) {
17
- const [vx, vy] = [-uy, ux];
18
- const at = (l, w) => [hub[0] + ux * l + vx * w, hub[1] + uy * l + vy * w];
19
- return [knife(rounded([at(from, 0), at(sailFrom, 0)], 0, false)), {
20
- ...knife(rounded([
21
- at(sailFrom, 0),
22
- at(to, 0),
23
- at(to, sail),
24
- at(sailFrom, sail)
25
- ], crisp(radius))),
26
- occlude: true
27
- }];
28
- }
29
- var s = Math.SQRT1_2;
30
11
  var windmill_default = ({ radius }) => [
31
12
  groundLine,
32
13
  rounded([
33
- [8.5, GROUND],
14
+ [7.5, GROUND],
34
15
  [
35
16
  9.5,
36
- 10.5,
17
+ 11.5,
37
18
  crisp(radius)
38
19
  ],
39
20
  [
40
21
  14.5,
41
- 10.5,
22
+ 11.5,
42
23
  crisp(radius)
43
24
  ],
44
- [15.5, GROUND]
25
+ [16.5, GROUND]
45
26
  ], radius, false),
46
- ...[
47
- [-s, -s],
48
- [s, -s],
49
- [s, s],
50
- [-s, s]
51
- ].flatMap((u) => blade(u, radius)),
52
- knife(circle(hub[0], hub[1], 1)),
53
- rounded(opening(12, 3, 3.5), radius, false)
27
+ knife(`M${hub[0] - reach} ${hub[1] - reach}L${hub[0] + reach} ${hub[1] + reach}`),
28
+ knife(`M${hub[0] + reach} ${hub[1] - reach}L${hub[0] - reach} ${hub[1] + reach}`),
29
+ rounded(opening(12, 3, 4.5), radius, false)
54
30
  ];
55
31
  //#endregion
56
32
  export { windmill_default as default };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jannchie/icons",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Line icons on a 24-unit grid, redrawn for every corner radius and stroke weight, with pixel hinting and duo-tone colors",
5
5
  "license": "MIT",
6
6
  "author": "Jianqi Pan",