|
1 | 1 | # @constructor-lab/icons-react |
2 | 2 |
|
| 3 | +## 1.1.0 |
| 4 | + |
| 5 | +### Minor Changes |
| 6 | + |
| 7 | +- [#6](https://github.com/acronis/ui-component-library/pull/6) [`c1aa20e`](https://github.com/acronis/ui-component-library/commit/c1aa20ec3fc2e39d353bd2e46c7b1495ac007bc7) Thanks [@leonid](https://github.com/leonid)! - **Icons**: fixed stroke-join spikes on refetched icons, and `CirclesMulti` is |
| 8 | + now `ShapesMulti`. |
| 9 | + |
| 10 | + `shapes-multi` rendered with a large spike jutting out of the triangle and the |
| 11 | + diamond. The paths were geometrically correct — the defect was the stroke join |
| 12 | + at the point where each subpath closes. |
| 13 | + |
| 14 | + SVGO's `convertPathData` writes compact **relative** commands. Accumulating |
| 15 | + those deltas as IEEE-754 doubles does not always land exactly back on the |
| 16 | + subpath's start point: the triangle drifted by 2.5e-15, and rounding to |
| 17 | + `floatPrecision: 4` left the diamond a real 1e-4 short. The trailing `Z` then |
| 18 | + closed a segment of near-zero but non-zero length, and Skia derived a join |
| 19 | + tangent from that garbage direction — with the default |
| 20 | + `stroke-linejoin="miter"` it drew a spike at the subpath start. Figma's own |
| 21 | + renderer does not, which is why the icon looked correct in the design file and |
| 22 | + broken once imported. |
| 23 | + |
| 24 | + `@constructor-lab/figma-icons-fetcher` now snaps those closes shut after SVGO, |
| 25 | + rewriting only the final segment into absolute form so `Z` becomes a true |
| 26 | + zero-length close that renderers skip. A relative delta cannot express a |
| 27 | + 2.5e-15 correction, hence absolute. Gaps above 1e-3 are left alone — those are |
| 28 | + intentionally open shapes that `Z` legitimately closes (`house-server`, |
| 29 | + `sparkle`, `message-sparkle`). |
| 30 | + |
| 31 | + Twelve icons changed on refetch; only `shapes-multi` changes visually. The |
| 32 | + other eleven (`bolt`, `circle-user`, `cloud-user`, `pc-tower-small`, |
| 33 | + `postgresql`, `server`, `servers`, `smartphone`, `tablet`, `tapes`, `tv`) had |
| 34 | + sub-epsilon gaps that never produced a visible spike, and render pixel-identical |
| 35 | + before and after. |
| 36 | + |
| 37 | + **Breaking for anyone importing `CirclesMulti`.** Upstream Figma renamed |
| 38 | + `circles-multi` to `shapes-multi` and redrew it — four coloured circles became a |
| 39 | + circle, triangle, diamond and circle. This lands as a minor bump because the |
| 40 | + icon set is treated as generated data rather than hand-authored API surface, but |
| 41 | + the old export is gone: switch to `ShapesMulti`, and note the artwork differs. |
| 42 | + |
3 | 43 | ## 1.0.1 |
4 | 44 |
|
5 | 45 | ### Patch Changes |
|
0 commit comments