A spacing scale is the alphabet of your layout — the finite set of gaps, paddings, and margins every component uses. Pick a base unit and a growth rule, get back custom-property tokens, a Tailwind-style config, a Sass map, and a visual proof that the steps actually read as distinct.
Linear/4-pt/8-pt ignore the ratio. T-shirt forces a 7-step preset (xs → 3xl).
Two 38×38 blocks separated by step
4-pt / 8-pt grids are the safe default for product UI — every step is an integer multiple of 4 (or 8), so designs round cleanly to pixels at every zoom level. Geometric / modular scales feel more elegant for editorial layouts but produce non-integer pixel values at small sizes (a 4 px base with a 1.25 ratio gives 5, 6.25, 7.8125…). T-shirt sizes hide the raw numbers — useful when designers and engineers think in md/lg/xl rather than 16 / 24 / 32. Fibonacci grows fast and is great for hero spacing but bad for tight UI gaps. Whichever you pick, keep the step count under ~10 — the discipline is the point.