Body Text Legibility Grader
Body text specification
Criteria
| Criterion | Weight | Score | Detail |
|---|---|---|---|
| Measure | 30% | 100/100 | 66ch — the 45–80 band is where the return sweep works |
| Leading | 25% | 100/100 | 1.6× (28.8px box) — 1.45–1.8 for body text |
| Size | 20% | 80/100 | 18px in a serif face — the serif floor is 17px before adjustment |
| Weight | 15% | 100/100 | 400 — 400–600 reads well at body sizes |
| Line box height | 10% | 100/100 | 28.8px box — ≥24px avoids crowding at body sizes |
Scores are shaped curves, not thresholds: each criterion falls away from its comfortable range rather than passing or failing abruptly.
| Grade | Weighted score | Reading experience |
|---|---|---|
| A | ≥ 92 | comfortable for long-form reading |
| B | ≥ 82 | good; the weak criterion is worth fixing |
| C | ≥ 70 | readable but effortful over long passages |
| D | ≥ 55 | tiring — at least two criteria are off |
| F | < 55 | not a body-text setting |
Graded paragraph
Legibility is a property of the whole setting rather than of any single value: size, measure, leading, weight and the face's own x-height interact, and a paragraph can pass each rule while still being hard to read.
You Might Also Need
The body text legibility grader scores a paragraph setting on the five criteria that decide how body copy reads, then weights them into a single number and a letter grade. It is not a pass or fail check: each criterion scores on a curve, so the grader reports how far a setting has drifted from comfortable rather than simply flagging it.
What is Body Text Legibility Grader?
The body text legibility grader takes a face, a size, a type measure, a leading ratio and a weight, scores each one against the range that reads well, and combines them into a weighted composite with an approximate line count for the sample.
- Face selection comes from the built-in catalogue, and the face's classification shifts the size floor: 17px for a serif, 16px for a sans.
- Size is adjustable from 12px to 32px, the measure from 20ch to 140ch, the leading from 1 to 2.4, and the weight in hundred-unit steps from 300 to 800.
- The five criteria are weighted: measure 30 percent, leading 25 percent, size 20 percent, weight 15 percent and line box height 10 percent, since measure and leading do most of the work in a paragraph.
- Measure scores full marks between 45ch and 80ch, then falls away in both directions rather than failing abruptly.
- Leading scores full marks from 1.45 to 1.8 and decays outside it, and the line box criterion rewards a box of 24px or more, which is the leading multiplied by the size.
Size is graded in three steps rather than one: a serif face earns full marks at 19px and above, a sans at 18px and above, and either face keeps a large part of its score when it sits exactly on its floor. Weight scores full marks from 400 to 600, drops to 0.6 below 400 because thin strokes lose definition at body sizes, and to 0.85 above 600 because heavy text starts to close up its counters. The composite becomes a legibility grade on fixed cutoffs: 92 and above is an A, 82 a B, 70 a C, 55 a D, and below that the setting is not a body text setting at all. The results panel names the weakest criterion alongside the score, which is usually the fastest route to a better grade, and estimates the number of lines the sample will occupy by dividing its length by the measure multiplied by 1.5.
- The score curves are editorial positions expressed as arithmetic, not published thresholds, and a setting can score an A while still looking wrong in a particular typeface.
- The face's x-height is represented only by the serif and sans floors, so two sans faces with very different x-heights are graded identically.
- Contrast, colour and background are out of scope entirely: a perfectly graded paragraph can still fail accessibility on its colour pair.
- Justification, hyphenation and paragraph spacing are not modelled, so a justified setting is graded as though the spaces were even.
- The line estimate is a rough figure based on average character widths, and it moves with the sample text rather than with the layout.
Use it when a body style needs to be argued about with numbers rather than adjectives, and read the criteria table instead of only the grade: a B with the weakest criterion showing as weight means something different from a B produced by a narrow measure. Fix measure and leading first, because they carry the most weight and they are also the two a reader notices. When the measure is the stumbling block, the paragraph width optimizer narrows it down properly, the line height optimizer settles the leading, and where the deciding factor is the reader's access needs rather than the arithmetic, the font accessibility evaluator scores the same specification against the WCAG criteria.
How to use Body Text Legibility Grader
- Choose the face first, since its classification sets the size floor the size criterion is graded against.
- Set the size, measure, leading and weight with the sliders, and replace the sample paragraph with the real copy if the line estimate matters to you.
- Read the criteria table rather than just the composite: each row shows the weight, the score out of 100 and the measured value behind it.
- Fix the criterion named as weakest, re-read the grade, and compare the graded paragraph rendered at the foot of the page.
When to use Body Text Legibility Grader vs related tools
Reach for it when a design system's body style is being set for the first time, or when a page reads badly and you need to know which of the five values is responsible instead of changing all of them. It is also a useful way to compare two candidate settings, because the composite makes the trade visible in a single figure. Where the measure keeps being the weak criterion, the paragraph width optimizer narrows it properly, the line height optimizer does the same for leading, and the readability score calculator covers the prose side of the same paragraph.
Privacy & Security
This tool runs entirely in your browser — no data ever leaves your device. There is no server round-trip, no upload, no logging, and no account required. Your input is processed locally using client-side JavaScript and is never stored, transmitted, or accessible to anyone else. When you close the tab, everything disappears.