Spacing bias and concrete defaults for calm-dense Customer.io product UI.
Bias generous over tight. Customer.io product UI is calm-dense, not roomy and not cramped.
When two sanctioned values would both work — padding, gap, row height, field spacing, surface margin — choose the more generous one. Close enough that grouped elements relate, far enough that surfaces breathe. If a surface looks correct but cramped, it's wrong. A few pixels of extra room across a screen is the difference between "the agent shipped it" and "a designer touched it".
The bias is one step, not two. Don't jump to space-400 because more is more — this is calm density, not roomy density.
space-300 (24px) padding, not space-200. The latter is the compact floor; reach for it only when the surface lives in a dense grid.space-200 baseline; space-300 when children are reading-weight (headings, body paragraphs) rather than scanning-weight (rows, chips, metric tiles).text-product-p (sans, 14px, regular weight, 20px line-height).text-product-ps for metadata and helper text; text-product-pxs for timestamps and captions.text-product-h1 through text-product-h4.Density should be a property of the surface, applied once at the root, and inherited downward. Mixing densities inside a single surface — compact rows with relaxed padding, for example — reads as inconsistency, not refinement. If two density zones genuinely belong together, split them into two surfaces.
See Refinement levers for the bounded vocabulary of density adjustments and the ship-solo vs. design-review thresholds.