Commit 1c43605
fix(bbox): correct bleed/transform math for inset shadows, blur chains, root scale
Three fidelity bugs in the bbox/bleed helpers:
- parseBoxShadow counted inset shadows in the outer bleed (they are clipped to
the padding box), inflating the viewBox with phantom transparent padding under
outerShadows. Now inset layers are skipped. The layer splitter was also rewritten
to split on top-level commas — the old `),` regex never separated multi-layer
computed values (which put the color first), so multiple layers were merged.
- parseFilterBlur matched only the first blur() and ignored -webkit-filter. Now
it reads filter (falling back to -webkit-filter) and sums every blur() in the
chain, without double-counting when the engine mirrors the two properties.
- normalizeRootTransforms ignored the individual `scale` property when transform
was none (matrixFromComputed only reads `transform`), leaving the viewBox
unscaled and clipping scaled roots on the outerTransforms:false path. The scale
is now parsed straight to a matrix for bbox expansion.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent db69e78 commit 1c43605
2 files changed
Lines changed: 80 additions & 12 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
43 | 64 | | |
44 | 65 | | |
45 | 66 | | |
| |||
56 | 77 | | |
57 | 78 | | |
58 | 79 | | |
| 80 | + | |
59 | 81 | | |
60 | 82 | | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
61 | 91 | | |
62 | 92 | | |
63 | 93 | | |
| |||
223 | 253 | | |
224 | 254 | | |
225 | 255 | | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
226 | 268 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | | - | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
17 | 28 | | |
18 | 29 | | |
| 30 | + | |
| 31 | + | |
19 | 32 | | |
20 | 33 | | |
21 | 34 | | |
| |||
35 | 48 | | |
36 | 49 | | |
37 | 50 | | |
38 | | - | |
39 | | - | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
40 | 60 | | |
41 | 61 | | |
42 | 62 | | |
| |||
115 | 135 | | |
116 | 136 | | |
117 | 137 | | |
118 | | - | |
119 | | - | |
120 | | - | |
121 | | - | |
122 | | - | |
123 | | - | |
124 | | - | |
125 | | - | |
126 | | - | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
127 | 153 | | |
128 | 154 | | |
129 | 155 | | |
| |||
0 commit comments