typography-scale
Skill0 starsChanged 40 days agoMITView on GitHub
Use when creating or redesigning a type scale, typographic hierarchy or text tokens (body, small, xs up to 5xl, h1 to h6, display) for a website, app, design system, book or print document, or when choosing a ratio such as major third, perfect fourth or golden ratio.
5 other projects use a version of this.
Adopted by
Most recently taken up by
- ainurdev/mystical-assistanttheir own version, first seen Nov 8, 2026
- equinor/design-engineering-skillstheir own version, first seen Sep 8, 2026
- equinor/skillstheir own version, first seen Sep 8, 2026
- miovrag/claude-skillstheir own version, first seen Jun 12, 2026
- launchapp-dev/animus-clitheir own version, first seen Mar 15, 2026
Other versions5 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 5
- launchapp-dev/animus-cli★ 39same name
- ainurdev/mystical-assistant★ 7same name
- equinor/design-engineering-skills★ 3same name
- equinor/skills★ 2same name
- miovrag/claude-skills★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repositoryOne other file it gives its agents.
- typography-checkSkill
The file
We split this skill into the rules it gives an agent
3 rules. 0 are common, 2 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 5 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 52
If a live page exists, run typography-check on it after the scale is applied.
- Distinctive: line 56
A scale is a starting point: Keep the person's existing body size and font unless they ask to change them.
- Distinctive: line 59
Check the extremes: Read the smallest step at the narrowest viewport and the largest at the widest before handing over.
“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Typography scale
Generates a type scale from a body size and a ratio: sizes, leading, tracking and heading roles, as CSS custom properties, JSON tokens, Tailwind theme values or a print spec sheet. The math is done by scripts/scale.mjs; the judgment is choosing the ratio for the context. Checked against the rules in the sibling typography-check skill.
1. Establish the context
Find out, from the request or the codebase, or ask in one round:
- Medium: web, print, or both. Print sizes are points with absolute leading; web sizes are rem, fluid where useful.
- What it is for: product UI, docs, editorial, marketing, display-led brand, book.
- Body size: existing body text if there is one. Defaults: web 16 to 18px, print 10.5pt.
- Font: the body face, if known. Large x-height faces can sit smaller.
- Baseline grid: wanted or not. If yes, the grid is the body leading.
- Output: CSS, JSON tokens, Tailwind, or a print spec.
2. Propose ratios, then let the person choose
Offer two or three ratios that fit the context, with one line of reasoning each, and show them side by side with node scripts/scale.mjs --base 18 --compare major-third,perfect-fourth,golden. Recommend one.
| Context | Ratio | Why |
| Dense product UI, dashboards, data tables | major-second 1.125 to minor-third 1.2 | Many levels in little space; weight and color carry hierarchy, so the hierarchy warning below 1.15 is expected |
| Docs, long-form reading, most websites | major-third 1.25 | Clear headings without shouting |
| Editorial, marketing, landing pages | perfect-fourth 1.333 | Strong contrast, room for display sizes |
| Posters, portfolios, display-led brand | perfect-fifth 1.5 or golden 1.618 | Dramatic jumps; use fewer steps (--up 3 or 4), they outgrow small screens fast |
| Books and long print documents | minor-third 1.2 | Text-led; headings stay near the body |
Fixed or fluid ratio. For product UI and docs, keep one ratio and let only the body grow (--base 16 --base-max 17). A wider ratio on large screens (--ratio major-third --ratio-max perfect-fourth) is for editorial and marketing pages, where display headings should grow more than text. It makes h1s large, so don't use it for docs.
3. Generate
node scripts/scale.mjs --medium web --base 16 --base-max 18 --ratio major-third --ratio-max perfect-fourth --format table
node scripts/scale.mjs --medium web --base 18 --ratio perfect-fourth --grid 27 --k 0.36 --format css
node scripts/scale.mjs --medium print --base 10.5 --ratio minor-third --format specRun node scripts/scale.mjs --help for every flag. --down and --up set how many steps below and above body (defaults 2 and 6 for web, 2 and 4 for print). With 6 or more steps up, the top step is display and h1 is the next one down; with fewer, h1 is the top step and missing heading levels fall back to body size. Steps below body use a gentler --ratio-down (1.125 web, 1.1 print) so small text stays readable. --k is the body face's (ascent − descent) ÷ 2 per em; with --grid it adds CSS that snaps each text block's baseline to the grid. Measure it with canvas measureText (fontBoundingBoxAscent and fontBoundingBoxDescent at 100px), or omit it.
The script prints checks to stderr. Lines starting warning: break a typography-check rule (body below 16px, xs below 12px, fluid growth over 2.5×, flat ratios) or flag loose snapped leading. Resolve each one, then run it again: change the size, the ratio or the step count, or, for shared/hierarchy-levels, separate the levels with weight or color and keep the ratio. Lines starting note: are informational (small steps on a full grid line are fine for one-line labels); pass them on, nothing to fix.
4. Deliver
- The table of steps and roles (h1 to h6, display, lede, body, small, label), then the requested format. The
cssandtailwindformats include the heading rules. - Where leading says "half line", that heading's baselines land on half grid lines. Say so.
- One line on how to apply it: tokens on
:root, heading rules, and for a grid the baseline-snapping block. Grid leading incssuses--<prefix>-grid(--text-gridby default), defined in the same:root;tailwindandjsonwrite the grid value into each line height, so they need nothing else.jsonis plain JSON with CSS values per step, not W3C design tokens (DTCG); convert it if a DTCG tool needs it. - If a live page exists, run
typography-checkon it after the scale is applied.
Gotchas
- A scale is a starting point. Keep the person's existing body size and font unless they ask to change them.
- More steps is not more hierarchy. Two or three heading levels in actual use beat a 5xl nobody needs; trim with
--up. - Print is not small web. Print sizes stay in points with absolute leading. Never output rem or
clamp()for print. - Check the extremes. Read the smallest step at the narrowest viewport and the largest at the widest before handing over.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

