Pick sizes by feel and you end up with inconsistent values like `14px, 18px, 22px, 30px`. A type scale instead raises a base size (usually 16px body text) to successive powers of a ratio, so every size — `16, 20, 25, 31, 39…` — comes from one rule.
Common ratios: Minor Third (1.2), Major Third (1.25), Perfect Fourth (1.333), Golden Ratio (1.618). A larger ratio makes headings and body text feel more dramatically different in size; a smaller one keeps the hierarchy tighter.
Combined with `clamp()`, the whole scale can grow and shrink smoothly with the viewport while preserving the ratio between steps (see "Fluid typography").
When to use
Set this up once when defining a design system's typography tokens — pick a single ratio and every size from h1 to caption follows without further debate.