commit a6c3f92a538f2304c8bb9139f8bbb5a288466637
parent 76d905ae4f78889667e3597d52f4dc3865dfd2e7
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date: Fri, 25 Sep 2026 23:21:57 -0400
common: the geometricPrecision scope starts at 1.5dppx — the words split at 150 % and 175 % scaling too, and read clean at 1x and 1.25x (brand S3)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Diffstat:
2 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/common/components/themeTokens.test.ts b/common/components/themeTokens.test.ts
@@ -162,11 +162,12 @@ test(":root sets the one radius and a Signal --brand-mark default; .font-display
assert.equal(rule(".font-display").decls.get("font-stretch"), "112%");
});
-test("geometricPrecision is on the root and form controls at 2dppx and up only", () => {
- // Hinted integer advances split words at DPR ≥ 2 on Linux ("Lig ht"); at 1x
- // hinting keeps small text crisp, so the rule must not reach it. Form
- // controls are named too: the UA sheet resets their text-rendering to auto.
- const media = rule("@media (min-resolution: 2dppx)");
+test("geometricPrecision is on the root and form controls from 1.5dppx up only", () => {
+ // Hinted whole-pixel advances split words from DPR 1.5 on Linux ("Sig nal");
+ // at 1x and 1.25x the hinted glyph fills them and keeps small text crisp, so
+ // the rule must not reach them. Form controls are named too: the UA sheet
+ // resets their text-rendering to auto.
+ const media = rule("@media (min-resolution: 1.5dppx)");
const inner = parseRules(media.body);
assert.equal(inner.length, 1);
assert.equal(inner[0].selector, "html, button, input, select, textarea");
diff --git a/common/styles/tokens.css b/common/styles/tokens.css
@@ -134,10 +134,11 @@
(macOS, iOS, Android's subpixel layout). Form controls are named too: the
UA sheet resets their text-rendering to auto, so a button's "Results" would
still read "Res ults".
- Scoped to 2dppx and up, where the gaps are: on a 1x Linux or Windows
- screen hinting is what keeps 11–14px text crisp, and there the advances
- were never split. */
-@media (min-resolution: 2dppx) {
+ Scoped to 1.5dppx and up, where the gaps are. Below it the advances are
+ still whole pixels, but the hinted glyph fills them: "Signal" reads clean at
+ 1x and 1.25x and splits from 1.5x (150 % and 175 % desktop scaling too), so
+ 1x Linux and Windows screens keep the hinting that makes 11–14px text crisp. */
+@media (min-resolution: 1.5dppx) {
html,
button,
input,