Body Text (Base)
16px
Scale Ratio
1.618
H2 (Step 3)
67.77px
H1 (Step 4)
109.66px
Caption (Step β1)
9.89px
Display (Step 5)
177.42px
CSS Variables
Generate Harmonious Modular Scales from De Vinne's 1900 Typesetting Principles
Typical range: 14β20px Β· Default web: 16px
Body Text (Base)
16px
Scale Ratio
1.618
H2 (Step 3)
67.77px
H1 (Step 4)
109.66px
Caption (Step β1)
9.89px
Display (Step 5)
177.42px
CSS Variables
| Role | px | rem* | Preview |
|---|---|---|---|
| Display +5 | 177.42 | 11.089 | |
| h1 +4 | 109.66 | 6.854 | |
| h2 +3 | 67.77 | 4.236 | |
| h4 / h3 +2 | 41.89 | 2.618 | |
| Lead / h5 +1 | 25.89 | 1.618 | |
| Body Text Base | 16.00 | 1.000 | |
| Caption -1 | 9.89 | 0.618 | |
| Fine Print -2 | 6.11 | 0.382 |
*rem relative to base Β· set html { font-size: 16px; }
| Ratio | h4 (Γ2) | h2 (Γ3) | h1 (Γ4) |
|---|---|---|---|
| Minor 2nd 1.067 | 18.2px | 19.4px | 20.7px |
| Major 2nd 1.125 | 20.3px | 22.8px | 25.6px |
| Minor 3rd 1.200 | 23.0px | 27.6px | 33.2px |
| Major 3rd 1.250 | 25.0px | 31.3px | 39.1px |
| Perfect 4th 1.333 | 28.4px | 37.9px | 50.5px |
| Aug. 4th β2 | 32.0px | 45.2px | 64.0px |
| Perfect 5th 1.500 | 36.0px | 54.0px | 81.0px |
| Golden Ratio Ο | 41.9px | 67.8px | 109.7px |
| Octave 2Γ | 64.0px | 128.0px | 256.0px |
Active ratio highlighted Β· Γ2/Γ3/Γ4 = step exponent
π― Example 1: Building a Blog Typography System
You're launching a blog with a 16px base font. Select the 16px preset and click Golden Ratio. You now have: Caption at 9.9px for footnotes, Lead at 25.9px for pull quotes, H2 at 67.8px for section titles, and H1 at 109.7px for the hero headline. Copy the CSS block and paste it into your stylesheet β every heading now relates to your body text through a single mathematically harmonious multiplier. Your readers will feel the order even if they cannot name it.
π Example 2: Compact Dashboard with Major Third
You're building a data dashboard where screen space is precious and the Golden Ratio creates headings that feel oversized. Switch to 14px base and select Major Third (1.250). Your H1 becomes 34.2px β authoritative but not imposing β and your H2 is 27.3px, close enough to H1 to keep density but clearly subordinate. Check the comparison table: the Octave ratio would make your H1 a full 224px on a 14px base, which would be absurd in a sidebar widget. The right ratio is the one that works for your content density, not the most famous one.
Data Source: The Practice of Typography β Theodore Low De Vinne (1900, public domain) β’ Public domain β’ Solo-developed with AI
The Problem With Arbitrary Type Sizes: Open almost any hastily built website and you'll find heading sizes chosen by feel β 24px for H2, 32px for H1, 14px for captions β each picked independently with no mathematical relationship between them. The result is a hierarchy that looks accidental rather than designed. Human perception is exquisitely sensitive to proportion, and a typographic scale that lacks internal consistency feels vaguely wrong even when no one can articulate why. The solution, worked out by printers centuries before digital design existed, is the modular scale: a series of sizes derived from a single base by repeatedly multiplying by a constant ratio.
De Vinne and the Historical Precedent: Theodore Low De Vinne codified this approach in The Practice of Typography (1900), drawing on traditions that stretched back to Gutenberg. Early type foundries did not invent arbitrary point sizes β they used harmonic progressions derived from musical interval ratios. A "perfect fourth" (ratio 1.333) means each size is four-thirds the previous one, producing the same mathematical relationship as the interval between F and C on a keyboard. De Vinne observed that these ratios created visual harmony for the same reason they create acoustic harmony: the human sensory system responds to simple proportional relationships as intrinsically ordered. His work is now public domain and the intellectual foundation for every modern modular scale tool, including this one.
The Golden Ratio and Why Ο Dominates: The Golden Ratio (Ο β 1.618) occupies a special place in this tradition because it is the only positive number where subtracting 1 gives its own reciprocal (Ο β 1 = 1/Ο). This self-similar property means a rectangle divided by the Golden Ratio always contains a smaller rectangle of the same proportions β a nesting that appears in nautilus shells, sunflower seeds, and the Fibonacci sequence, and that the human visual system reads as naturally harmonious. Applied to type, it creates size jumps that feel neither too timid nor too dramatic. A 16px body text on a Golden Ratio scale produces a 25.9px lead paragraph, a 41.9px H2, and a 67.8px H1 β a range that fills a page without either crowding or floating.
Choosing Your Ratio: From Dashboards to Billboards: The right ratio depends on context. Dense data interfaces (analytics dashboards, financial apps) need subtle scales β the Minor Second (1.067) or Major Second (1.125) produce barely-visible stepping that keeps information compact without visual chaos. Editorial content and blogs thrive on the Perfect Fourth (1.333) or Golden Ratio, where headings clearly announce hierarchy. Display typography β posters, hero sections, magazine covers β benefits from the Octave (2.000), where each step doubles and even three steps create a dramatic size contrast. The rem column in the scale table shows you the multiplier relative to your base, which maps directly to CSS when you set html { font-size: [base]px; } and write your headings in rem units.
πΎ From the Lab Cat's Typographic Hierarchy Research Division:
I have studied modular scales extensively and can confirm that the correct hierarchy is: my name in Display size at the top of every document, the word "dinner" in H1 wherever it appears, all references to other cats in Fine Print, and the phrase "the cat is not allowed on the desk" rendered in a font so small it fails WCAG contrast guidelines. The Golden Ratio produces the most pleasing result because Ο appears in the Fibonacci sequence, which I understand intuitively as the correct number of treats per orbit of the sun. I have also derived that the minimum readable font size is precisely large enough for the word "mrrp" on a treat packet, and the maximum display size is whatever fits "FEED ME" across the full viewport. My CSS variables are committed. My food bowl is not yet filled. One of these problems will be resolved before the other.