Find typographic errors in copy, HTML or CSS, such as straight quotes, fake dashes and tight line-height
Type crimes lintFreeFor designers, developers and writers
25/day
free runs a day, no sign-in.
Before: what you give it
The example input, as typed in. You paste text, CSS, markup or notes.
text:
<style>
body { font-family: Georgia; line-height: 1.1; text-align: justify; }
h1 { font-family: "Playfair Display"; }
.tag { text-transform: uppercase; font-size: 0.8em; }
</style>
<p>She said "it's fine." Then she left -- pages 10-20 cover it.</p>
<p>THIS WHOLE SENTENCE IS SET IN CAPITALS FOR NO GOOD REASON AT ALL.</p>
kind: html
After: what comes back
The first lines of a real run on that input. Nothing here is edited by hand.
Type crimes lint (html): 11 findings
[high] line 2 tight-body-leading: line-height 1.1 on body text. Under 1.2 the descenders touch the next line's ascenders in running text. Fix: Use 1.4 to 1.6 for running text. Tight leading is for large headlines only. (body { font-family: Georgia; line-height: 1.1; text-align: justify; })
[medium] line 2 justify-without-hyphens: Justified text with no automatic hyphenation. Browsers then stretch word spaces, leaving gaps and rivers. Fix: Add hyphens: auto (and a lang attribute on <html>), or use text-align: left. (body { font-family: Georgia; line-height: 1.1; text-align: justify; })
[medium] line 4 fake-small-caps: Uppercase text at a reduced size imitates small caps. The strokes get thinner than the surrounding text. Fix: Use font-variant-caps: all-small-caps with a font that has real small caps, or accept full capitals with a little letter-spacing. (.tag { text-transform: uppercase; font-size: 0.8em; })
... full output on the tool page
What you get
Findings with rule, severity, line, excerpt, fix and the book or convention each traces to
What it cannot do
Static checks only; code and pre blocks are skipped, and thresholds like the 1.2 line-height floor are conventions.
Who it is for
- Designers
- Developers
- Writers
Free and Pro
| Free | 25 runs a day per IP address, up to 100,000 characters a run. |
|---|---|
| Pro | No daily limit, 300 requests a minute, up to 200,000 characters a run. |
Use it from your assistant
The tool is called type_crimes_lint. Connect the server once, then ask for it by name or just describe the job. Install steps for each app.
claude mcp add --transport http designers https://designers.allthepossibles.com/mcp
curl -X POST https://designers.allthepossibles.com/api/type-crimes-lint -H 'content-type: application/json' -d '{"text":"<style>\nbody { font-family: Georgia; line-height: 1.1; text-align: justify; }\nh1 { font-family: \"Playfair Display\"; }\n.tag { text-transform: uppercase; font-size: 0.8em; }\n</style>\n<p>She said \"it'\''s fine.\" Then she left -- pages 10-20 cover it.</p>\n<p>THIS WHOLE SENTENCE IS SET IN CAPITALS FOR NO GOOD REASON AT ALL.</p>","kind":"html"}'
Try it here
The form starts with the same example input, so you can run it first and then swap in your own.
More in typography
- Modular type scale
Build a modular type scale from a base size and ratio, with rem values and a fluid clamp() for each step
- Measure and leading
Check whether a text column holds 45 to 75 characters per line and get a line-height to match
- Vertical rhythm
Snap a set of type sizes to a baseline grid with line-heights and margins in whole baseline units
- Type pairing check
Check whether two or three typefaces pair well, using class, structure, x-height and role fit
- Type scale audit
Check a stylesheet's font sizes against a modular scale and flag sizes, line heights and body text that drift