Commit 543367b
committed
Align the browser-support floor with classroom and ml-trainer
Raises Safari/iOS from 14/14 to 14.1/14.5, which is a correctness fix rather
than a tidy-up: flexbox `gap` landed in exactly those two versions, and this
app's layout is built on the Panda stack patterns, which are gap-based. The
built CSS has 18 gap declarations against 24 display:flex, so on Safari 14.0 or
iOS 14.0–14.4 that spacing collapses to zero — nothing can polyfill it. The
floor claimed support the layout could not honour, and no device is stranded
there anyway: Safari 14.1 shipped for the same macOS range as 14.0, and every
iOS 14.0 device can reach 14.5.
Chrome/Edge come down from 98 to 90 to match the other two apps. The 98 was not
load-bearing: it arrived wholesale in the CRA→Vite switch (4425d16), replacing
CRA's usage-share default, with no stated reason, and Chrome 98 predates that
commit by two years. Nothing in src uses a Chrome 91–98 era API — no
structuredClone, .at(), findLast, Object.hasOwn or error.cause; the only modern
method is replaceAll, which is Chrome 85. The device-connection code lives in a
dependency and feature-detects, so it was never governed by this floor.
The two lists also disagreed with each other, which is what let them drift:
browserslist entries are OR'd, so with no explicit Firefox entry `defaults`
supplied Firefox 140 while the build targeted firefox104, and the Vite switch
had dropped CRA's `not op_mini all` / `not ie >0`, leaving Opera Mini and KaiOS
in the resolved set. There is now one BUILD_TARGETS const mirrored into
build.target and build.cssTarget, with browserslist as documentation pointing at
it — the same shape as the other two apps.
Deliberately not aligned: cssMinify stays esbuild rather than lightningcss.
That is a rendering change, not a support declaration — lightningcss rewrites
logical border-radius longhands into fragile :lang()-based physical rules — and
this app's PostCSS chain is documented around the current choice.
Verified: typecheck, lint, production build, and the production CSS still has
its logical shorthands expanded (421 longhands, no var()-bearing shorthands),
its layers flattened, and its 18 gap rules intact.1 parent 7dfc8b6 commit 543367b
3 files changed
Lines changed: 33 additions & 22 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
114 | 114 | | |
115 | 115 | | |
116 | 116 | | |
117 | | - | |
118 | | - | |
119 | | - | |
120 | | - | |
121 | | - | |
122 | | - | |
123 | | - | |
124 | | - | |
125 | | - | |
126 | | - | |
127 | | - | |
128 | | - | |
129 | | - | |
130 | | - | |
131 | | - | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
132 | 126 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
15 | 14 | | |
16 | 15 | | |
17 | 16 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
15 | 32 | | |
16 | 33 | | |
17 | 34 | | |
| |||
88 | 105 | | |
89 | 106 | | |
90 | 107 | | |
91 | | - | |
| 108 | + | |
| 109 | + | |
92 | 110 | | |
93 | 111 | | |
94 | 112 | | |
| |||
0 commit comments