Build1 distinct publisher3 min readPublished
An audit of 20 public design systems counted 564 off-scale values in Mastodon alone, and most of the work that came out of it went into silencing the hairline flags that get a lint rule switched off for good.
The Engineer · Build desk
Compiled by The EngineerSomething wrong?How this is made
Add the three commonest off-scale values in Mastodon and you get 347 of the 564 findings [1]. That is 62%, a little under the two thirds the audit claims for them [6]. The rounding does not change the work: 10px accounts for 165 of those uses, 15px for 112 and 5px for 70 [5].
One line further down, the same report is harder to reconcile. It lists top files as components.scss at 973, admin.scss at 325 and forms.scss at 203 [14]. Those three add to 1,501, close to three times the 564 off-scale total for the whole checkout [2], so that column is counting something other than off-scale uses, and the post does not say what. If the plan is to put this output on the table as a planning agenda [18], it is the first number someone will query.
The 564 is a floor rather than a ceiling if what you care about is Mastodon's declared tokens. _shape.scss defines --space-3xs through --space-5xl at 2, 8, 12, 16, 20, 24, 36 and 40px [3]. The scale the run reports is 0, 2, 4, 8, 12, 16, 20, 24, 28, 32, 36 and 40, sourced from scanned CSS, printed directly under the line "Token files none found" [12]. So 4, 28 and 32 pass as on-scale in a codebase whose spacing tokens never define them [3]. Score the same stylesheets against the tokens as written and the count goes up.
Which is why the detection mode is the load-bearing part of the config. With scale set to auto, the rule reads --space-* or --spacing-* custom properties, a Tailwind v4 --spacing base, calc(4px * var(--scaling)) in the form Radix writes it, or a token file named in scaleSources [15]. Find fewer than three token values and it declines to trust them, falls back to a 4px preset, and says so in its first message [16]. Announcing the guess is better engineering than guessing well.
Two conditions have to hold before the noise numbers transfer to your repository. Your tokens have to be custom properties the rule can actually read, and there have to be at least three of them, or you are grading your CSS against a 4px preset nobody on the team agreed to. The hairline share is also a property of the components rather than a constant: Primer React's 46% [10] tracks how many focus-ring offsets, 1px border overlaps and subpixel nudges its components carry [9], so a codebase with fewer of those starts quieter and a denser one starts louder.
Counting drift is mechanical; deciding which document is wrong, the stylesheet or the spacing page, is not work a linter does. The post opens on a pasted 13px and, six months later, forty distinct spacing values under git grep, some of them written by a coding agent because nothing told it the scale stopped at 12 and 16 [19]. The agent is the one party in that story guaranteed to do it again next sprint.
Ranked by verification strength, evidence, and original report placement.
The maintainer of Rhythmguard, a Stylelint plugin for spacing scales, pointed it at twenty public design systems this spring to find out how quiet it could be on code he does not control.
The benchmark clones each repository at a pinned commit, runs the audit, and classifies every finding as real drift or as noise the tool should not have raised; the full table lives in QUIET_BENCHMARK.md and CI regenerates it on every change.
Mastodon defines a spacing scale as custom properties in app/javascript/styles/mastodon/tokens/_shape.scss: --space-3xs 2px, --space-xs 8px, --space-sm 12px, --space-md 16px, --space-lg 20px, --space-xl 24px, --space-4xl 36px, --space-5xl 40px.
The audit's histogram of Mastodon off-scale CSS values: 10px 165, 15px 112, 5px 70, 30px 50, 6px 36.
The post asks whether 10px is a step you want, a mistake you want fixed, or a token you forgot to define, and calls that one conversation rather than 165 code reviews.
Distinct publishers with included, body-backed reporting in this cluster.
1 article · September 5, 2026
Follow any of these and your For You feed starts watching them — no settings page required.
build
Four CSS systems in one bundle: the migration blocker was in the config, not the components1 distinct publisher
build
Tailwind v4 moves your tokens into CSS. The token name is now the API.1 distinct publisher
build
A build step instead of a backend: 1,025 records, 8 locales, no runtime API1 distinct publisher
build
Cognition's $47bn ask prices Devin at about 94 times its own run rate1 distinct publisher
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
One maintainer, pinned commits, no second run
Every figure in this story comes from a single dev.to post written by the plugin's own maintainer, and nobody has re-run the audit. Pinned commits, a CI-regenerated results table and a full console dump make it checkable in principle, which is more than most tool write-ups offer. What can be checked internally does not entirely agree: the top three Mastodon values come to 62% where the text says two thirds, and the per-file counts in the sample run exceed the run's own total.
Author's own runs only
The usage on record is the maintainer running his plugin over twenty repositories he does not control, plus one full run on Mastodon. No install counts, no team reporting that it adopted the recommended config, no word from Mastodon or Primer maintainers about the findings raised against their code. The embed config exists for other config authors to extend; whether any has, this reporting does not say.
Slightly ahead of its own arithmetic
The overstatement here is arithmetic rather than rhetorical. Two thirds is really 62%, and the claim that noise across all twenty repositories is now down to zero rests on the author grading his own work. Pulling the other way, the post volunteers the result most damaging to its tool: on Sass-heavy code the audit reads nothing and reports a clean bill.
Maintainer grading his own plugin
Rhythmguard is the author's project and the piece closes where promotional writing closes: a paste-ready .stylelintrc.json, an npx one-liner, a rule to drop into AGENTS.md. Set against that, the audit targets repositories he has no stake in and reports the cases where his tool was wrong, including the 46% of Primer React findings that were hairlines nobody would fix.
Checkable specifics, unchecked
These are the sort of details that break loudly if wrong: pinned commits, a committed results table, an unedited console dump. Nobody has tried to break them. The two mismatches inside that dump, the phantom token detection and the per-file column, suggest the run output got less scrutiny than the benchmark table did.