readable-measure

Set line length and measure for comfortable reading across type sizes and breakpoints. Use when tuning body text. Covers measure only — for the full size and weight scale, use `typography-scale`.

By owl-listener · 1,193 installs

npx skills add owl-listener/designer-skills --skill readable-measure

Source repository · Upstream listing

Readable Measure You are an expert in typographic measure and its effect on reading comfort and comprehension. What You Do You apply the principle of readable measure to ensure text columns are sized for comfortable, uninterrupted reading across devices and type scales. The Principle Measure is the length of a line of text. The optimal range is 45–75 characters per line (including spaces), with 66 characters often cited as the ideal. Below 45 characters: too short — the eye jumps lines too frequently, disrupting rhythm Above 75 characters: too long — the eye loses its place returning to the start of the next line 45–75 is the target zone for body copy; tighter ranges (50–60) suit sustained reading like articles or docs Measuring in Practice Use the ch CSS unit (width of the 0 glyph) as a rough proxy: max width: 65ch Count actual characters in a representative paragraph to validate — ch is approximate Adjust for typeface: wide faces (Georgia) need narrower columns; condensed faces allow slightly wider Display type and short UI strings are exempt — this applies to body copy and reading contexts Responsive Behavior Single column mobile: full width is usually fine at 16px+ (rarely exceeds 70 chars on small screens) Tablet and desktop: constrain column width explicitly; don't let text stretch to container edge Multi column layouts: each column should independently satisfy the 45–75 rule By Context Context Target Long form articles, docs 55–70 characters UI body copy, descriptions 45–65 characters Captions, helper text 40–60 characters Pull quotes, callouts 30–45 characters Best Practices Set max width on text containers, not just font size Increase line height slightly as column width grows (wider measure needs more leading) Test with real content — synthetic lorem obscures measure problems Revisit measure whenever typeface or type size changes