The user's type size setting has to be honoured
Aliases: content size category · font scale · system type size
What it is
The operating system already holds a choice the user made: larger type, or smaller. iOS calls it Dynamic Type (content size category); Android has a font scale; desktop browsers have a default size and zoom. An app that writes body in dead pixels treats that choice as if it had not happened — 15 on the artboard is 15 in every pair of eyes, including the people who went to the system and asked for larger. Honouring the setting means product type follows that control, not the mockup.
Honouring is not “we also shipped an in-app size slider.” The system setting is a habit across apps. A second ladder inside the app asks the user to tune twice, and often the system is tuned while the app still does not listen.
Why it happens
People enlarge type because the default is not enough at their distance, acuity, and lighting. That judgement is already done at the system layer. An app that then locks pixels overwrites the user’s condition with the designer’s. If scaling never happens, reflow and container fights never get a turn — the failure stops one layer earlier: the type never grew.
Technically, honouring means type uses styles that track the content size category (text styles, sp, a root-relative size), not px / dp nails. Platform styles for title, body, and caption do not only carry a size; they carry how large that role becomes at each category. Inventing a private pixel scale and turning tracking off throws away both the size and the steps the system already computed.
There is a fake honour: tracking is on, then “shrink to fit” crams the enlarged type back into the old button height. The setting was read and immediately cancelled by another rule. The user still sees the old small type, only tighter. Honour has to survive to the last paint. It cannot be eaten in the last mile of layout.
Where it stops holding
Game HUDs, map labels, and camera overlays sometimes have to nail a physical size, or they occlude the field or break proportion — those are named exceptions, not a licence to lock the whole product. A brand display numeral already far above the reading floor may blow the composition if it tracks; it can refuse, but the caption next to it still tracks. If the user turns system type down, the product should shrink too, rather than honouring only the enlarge direction. Environments with no system setting (some embedded screens, kiosks) have nothing to honour; only then fall back to the product’s own scale.
Applying it
- Body, titles, and captions use platform text styles that scale with the content size category. Treat dead pixel sizes as exceptions that need a written reason.
- Do not cancel enlargement with “scale to fit the original height.” Type grew; the box yields, not the type.
- If an in-app size control exists, it is an extra tweak on top of the system setting. Default is still to follow the system, not to replace it.
- Nudge the system size one step up and watch body copy. If nothing moves, the setting is ignored. If it moves and a button shrinks it back, tracking is fake.