Editorial web typography
Where typography stops receding. Editorial pages carry voice, and voice is carried
by the parts around the body text as much as by the body text itself.
1. When to invoke
- Article, essay, documentation, or long-form templates.
- Marketing and landing pages with substantial copy.
- Pull quotes, drop caps, captions, bylines, footnotes, figure treatment.
- Art-directed or per-story layouts.
- An article template that "feels flat".
Do not invoke for dense product UI (ui-component-typography) or for the body
setting itself (body-text-and-reading).
2. Required context
- The real content inventory — does every story have a pull quote, a hero
image, a subtitle? Templates fail on the story that lacks them.
- Story length range, shortest to longest.
- Whether layouts are templated or art-directed per story.
- Whether content is authored in Markdown/CMS (constrains what's expressible).
- Brand voice, and how far type may carry it.
3. Invariant principles
- The body text is the product. Every editorial device exists to serve reading,
not to decorate around it. If a device interrupts reading without repaying it,
remove it.
- Secondary elements need a distinct, consistent voice. Captions, bylines, and
footnotes should be recognisable as a class at a glance, and consistent across
every story.
- A device must degrade. A drop cap must work when the paragraph is two lines;
a pull quote must work when there's no quote; a hero must work with no image.
- Vertical rhythm is felt, not measured. Consistent spacing between elements
reads as competence; the reader never counts it.
- Space above binds, space below separates. A subhead belongs to the section
that follows it, so its space above must exceed its space below.
- Expressiveness is bounded by readability, and readability is bounded by
accessibility (rule 1).
4. Context-dependent heuristics
Measure. Editorial is where the measure guidance in body-text-and-reading
matters most — this is genuine continuous reading. Cap the column; let margins
absorb extra viewport width. Full-bleed images may break the column; text should
not.
Vertical rhythm, concretely. "Space above binds, space below separates" is the
principle; this is the arithmetic that makes it real (Rutter). Set the page's
rhythm unit from the body text's line-height in pixels — 16px text at 1.3125
line-height gives a 21px unit. Every other vertical measurement on the page —
paragraph spacing, heading margins, caption line-height — should be a multiple or
clean fraction of that unit:
- Paragraph spacing = the line-height itself (or half, if tighter spacing is
wanted), not the browser's default
1em margin, which is a different, unrelated
number and will visibly throw off the beat.
- Headings and asides at a different size must recompute their own
line-height to still land on a multiple of the unit — an 18px subhead over a
21px rhythm needs line-height: 21÷18 = 1.167, and its margins should equal that
same value (or an asymmetric split, e.g. 1.5× above / 0.5× below, that still sums
to a whole multiple). Don't reach for line-height alone to add air around a
heading — if it wraps to two lines, oversized line-height reads as two stacked
headings instead of one.
- Non-text elements (images, embeds, forms) may break the rhythm. Don't crop
content images just to preserve the beat — restart the rhythm when running text
resumes after the interruption; the tail shouldn't wag the dog.
- Don't force a print baseline grid onto the web. Browsers lay out block-by-
block from the top, not text-outward from a baseline, so chasing true
baseline-to-baseline alignment (the print definition of vertical rhythm) fights
the platform. A consistent multiple-of-the-unit rhythm gets the same reader
benefit without it.
Subheads. Give them clear separation from the preceding paragraph and tight
proximity to the following one. Two levels is usually enough. Keep the semantic
heading level correct independently of size. Style them as visibly part of the
same hierarchical system as the headline (a scaled-down echo of its treatment, not
an unrelated style) while staying clearly smaller — that visual tie-in is what
tells a scanning reader "this belongs to that headline, and is one level down"
(Santa Maria).
Pull quotes. They exist to pull a scanner into the text. Rules:
- Use text that already appears in the article; don't introduce new content.
- Never let it disrupt the measure of the body text around it awkwardly — either
break the column fully or sit clearly outside it.
- It must be skippable. A reader reading straight through should not stumble.
- If the CMS can't guarantee one exists, the template must look complete without it.
Drop caps. Genuinely hard on the web. Requirements:
- Align the cap's top to the first line's cap height and its baseline to a body
baseline —
initial-letter does this properly where supported; float hacks
approximate it badly.
- Never apply to a paragraph shorter than the cap is tall.
- Skip when the paragraph starts with a quotation mark or a number.
- Ensure the first word is still readable as a word by screen readers — a drop cap
built by splitting the letter into its own element can be announced separately.
Paragraph demarcation, with numbers. Rutter's concrete limits: indent by at
least 1em if you indent, and separate by no more than 1em if you space. Below
1em an indent doesn't read as intentional; above 1em the paragraphs stop cohering
into a text block. And don't use stylised paragraph breaks (dinkuses, ornaments)
without a reason — they interrupt.
A standfirst should stand first. The intro paragraph that summarises the piece
needs to be visibly distinct from body copy — larger, or a different weight — and it
needs to come before the body, not float beside it. If it looks like the first
paragraph, it isn't doing its job.
Block quotes are not pull quotes. A block quote is quoted source material the
reader should read in sequence. A pull quote is repeated text used to bait a
scanner. They need different treatments, and styling every block quote as a giant
centred pull quote is a common and confusing default.
Links, lists, and emphasis.
- Make links clear but unobtrusive. They must be identifiable without scanning
the page for colour, and identifiable by something other than colour alone.
- Don't underline for emphasis. On the web an underline means "link." Use
italics for emphasis, weight for strong emphasis.
- Avoid faux bold and italic — if the family lacks the style, don't synthesize it.
- Treat lists as text to be read, not as data dumps: they need the same measure
discipline, leading, and spacing care as paragraphs.
Semantics come first, styling second. Rutter: "establish the semantics up front."
Decide what a piece of text is — <em>, <strong>, <cite>, <q>, <abbr>,
<figure>/<figcaption>, <blockquote> — before deciding how it looks. Semantic
markup drives assistive technology, translation, search, and reader modes; visual
styling that floats free of it is decoration that only sighted users receive. A
<span class="bold"> communicates nothing to a screen reader.
Captions. Small, clearly subordinate, consistently placed, and still meeting
contrast. Grey captions are the most common contrast failure on editorial sites.
Print captions can run 6–8pt; that size is illegible on screen — Santa Maria's
floor is around 12px on the web, higher on lower-DPI displays, as a starting
point rather than a rule to hit exactly. In a narrow hanging caption (a margin
note beside the article column), set the line-height tighter than the body text's
— the narrow measure both permits and needs it, and it helps the caption read as
its own block rather than a continuation of the adjacent body copy.
Figures and footnotes. Use <figure>/<figcaption> for semantics. Footnotes
need a return path; a link that leaves the reader stranded is a defect.
Art direction vs. template. Per-story art direction produces the best pages and
does not scale. Be explicit about which you're building. A common resolution: a
strong template plus a small set of sanctioned variations (full-bleed, wide,
column) that authors select.
Layering. Type on Screen's term for building a composition in depth rather than
in sequence — type over imagery, type behind or in front of a scrim, and additive
layering, where separate styles within a family act as distinct structural or
decorative elements (Carter's Walker uses five "snap-on" serif styles this way).
Two rules: every layer that carries text must independently meet contrast, and the
stacking must survive the layer beneath changing — a CMS-driven hero image will not
always be the dark, calm photo the design was made against. Use a scrim or a
contrast-guaranteed band rather than hoping.
Navigation and wayfinding type. Nav labels are the shortest, most-scanned text
in the product and the first to break in translation. Keep them one line, keep
their voice distinct from body text (usually size and weight, not a second face),
and mark the current location with something other than colour alone. In long-form
editorial, wayfinding also means in-page structure: subheads a reader can scan, and
a visible sense of where they are in a long piece.
Wrap control. text-wrap: balance on headings and pull quotes prevents the
one-word last line; text-wrap: pretty on body paragraphs handles orphans. Both
degrade silently. See microtypography.
5. Failure patterns
| Pattern |
Cause |
Fix |
| Every article looks the same and flat |
Only body + h2 styled |
Give captions, bylines, quotes a real voice |
| Drop cap overlaps the second line |
Float hack without baseline alignment |
initial-letter, or drop the device |
| Pull quote breaks reading flow |
Placed inside the measure, mid-sentence |
Move outside the column or to a paragraph break |
| Template collapses without a hero image |
Device assumed present |
Design the absent case |
| Captions unreadable |
Grey-on-white below 4.5:1 |
Raise contrast |
| Subhead looks attached to the paragraph above |
Symmetric margins |
More space above than below |
| Spacing inconsistent between stories |
Ad-hoc margins, no rhythm |
Systematise spacing |
| Long article has no wayfinding |
No subheads or progress cue |
Add structural subheads |
| Heading breaks to a one-word line |
No wrap control |
text-wrap: balance |
| Paragraph spacing feels arbitrary next to heading spacing |
Browser default 1em margin, unrelated to the line-height unit |
Set spacing as a multiple of the rhythm unit |
| Wrapped subhead reads as two stacked headings |
Oversized line-height used for air instead of margin |
Recompute line-height to the rhythm unit; add air via margin |
| Caption legible in the design file, not on screen |
Sized to a print convention (6–8pt) |
~12px floor on screen, verified at real DPI |
6. Evaluation procedure
- Render the shortest and longest real story in the template.
- Render a story missing each optional device — no hero, no pull quote, no
subtitle, no author image.
- Read one full story at real size. Did any device interrupt without repaying?
- Check subhead spacing: above > below, on every level.
- Check the measure through the whole article, including around floated elements.
- Contrast-check captions, bylines, footnotes, and any grey text.
- Verify semantic structure: sequential headings,
<figure>/<figcaption>,
footnote return links.
- Apply the WCAG 1.4.12 override and zoom to 200%.
- Check heading and pull-quote wrapping at the narrowest breakpoint.
7. Output format
Template: <name> — <templated | art-directed | template + variants>
Body setting: <deferred to body-text-and-reading>
Voice elements: caption <spec> · byline <spec> · pull quote <spec> · footnote <spec>
Devices used: <drop cap | pull quote | full-bleed | …>
Degradation: <device> without <precondition> → <behaviour>
Rhythm: space-above/below per element — subhead binding correct: <yes/no>
Contrast: captions <n> · bylines <n> · footnotes <n>
Tested: shortest <pass/fail> · longest <pass/fail> · missing-devices <pass/fail>
8. Examples
Blog template that "feels flat" despite good body type.
The body setting is fine — the flatness is that nothing except h2 has a voice.
Captions, byline, and reading time are all body-size grey text, so the page reads
as one undifferentiated block. Give the secondary class a real identity: smaller,
one weight up, a slight tracking increase, and a consistent placement — but raise
the grey to pass 4.5:1, which it currently fails. Add one structural device (a
pull quote at a paragraph break, not mid-sentence) and design the no-quote case
so short posts don't look broken.
Drop cap request on a docs site.
Recommending against it. Docs paragraphs are frequently two lines, often start
with a code term or a number, and are re-ordered by authors — three conditions
where a drop cap fails. If the goal is signalling article start, a larger,
tracked lead-in phrase gives the same signal, degrades to nothing, and doesn't
risk the screen-reader split that letter-in-its-own-element drop caps cause.
9. Counterexamples
- ❌ "Add a drop cap, it looks editorial." — Fails on short paragraphs, on
quote/number openings, and often for screen readers.
- ❌ Pull-quote text that appears nowhere in the article. — It's a pull quote, not
a subtitle.
- ❌ "The template looks great." — with the one story that has every optional
element populated.
- ❌ Grey captions at #999 on white. — 2.8:1; fails 1.4.3.
- ❌ Symmetric margins on subheads. — Visually attaches them to the wrong section.
- ❌ Letting the column widen with the viewport indefinitely on an article page.
- ❌ "Art-direct every story." — Unless there's a designer per story, this is a
promise the system can't keep.
10. Source citations
- Lupton (ed.), Type on Screen — typography in interfaces, screen hierarchy,
layering, type and imagery, dynamic vs. fixed compositions.
- Lupton, Thinking with Type 3e — paragraph composition, hierarchy and contrast,
typographic conventions, and when breaking a rule is appropriate.
- Latin, Better Web Typography — page composition, vertical rhythm, heading
relationships, drop caps.
- Santa Maria, On Web Typography — matching type to content and tone;
understanding reading behavior; art direction; captions illegible on screen at
print sizes (6–8pt), ~12px as the web floor; subheads and bylines tying into the
headline's system at a smaller size to signal "part of, but subordinate to."
- Rutter, Web Typography — "establish the semantics up front"; mark the opening of
each passage; a standfirst should stand first; demarcate paragraphs appropriately
(indent at least 1em, separate by no more than 1em); don't use stylised paragraph
breaks without good reason; not all block quotes need to look like pull-quotes;
treat lists as text to be read; make links clear but unobtrusive; avoid underlines
for emphasis; avoid faux bolds and italics; implement drop caps accurately or not
at all; applying vertical rhythm — setting a base rhythm unit from the body
line-height in pixels, spacing paragraphs by that unit rather than the browser
default, recomputing
line-height for off-size elements (headings, asides) to
still land on a multiple of the unit, letting embedded media break the rhythm
deliberately, and not forcing a print baseline grid onto a browser's top-down
block layout.
- Hochuli, Detail in Typography — paragraph texture, indentation, and the reading
process that editorial devices must not disrupt.
- Elam, Typographic Systems of Design — structural systems for composition; see
typography-layout-systems.
- WCAG 2.2 §1.4.3, §1.4.4, §1.4.12.
- MDN —
initial-letter,
text-wrap.
1---2name: editorial-web-typography3description: Use when designing article, long-form, marketing, or art-directed pages — pull quotes, drop caps, captions, bylines, subheads, figures, footnotes, hero compositions. Also use when an article template feels flat and undifferentiated, or when a page needs expressive typographic voice without sacrificing readability.4---56# Editorial web typography78Where typography stops receding. Editorial pages carry voice, and voice is carried9by the parts around the body text as much as by the body text itself.1011## 1. When to invoke1213- Article, essay, documentation, or long-form templates.14- Marketing and landing pages with substantial copy.15- Pull quotes, drop caps, captions, bylines, footnotes, figure treatment.16- Art-directed or per-story layouts.17- An article template that "feels flat".1819**Do not** invoke for dense product UI (`ui-component-typography`) or for the body20setting itself (`body-text-and-reading`).2122## 2. Required context2324- The **real content inventory** — does every story have a pull quote, a hero25 image, a subtitle? Templates fail on the story that lacks them.26- **Story length range**, shortest to longest.27- Whether layouts are **templated** or **art-directed per story**.28- Whether content is authored in **Markdown/CMS** (constrains what's expressible).29- Brand voice, and how far type may carry it.3031## 3. Invariant principles3233- **The body text is the product.** Every editorial device exists to serve reading,34 not to decorate around it. If a device interrupts reading without repaying it,35 remove it.36- **Secondary elements need a distinct, consistent voice.** Captions, bylines, and37 footnotes should be recognisable as a class at a glance, and consistent across38 every story.39- **A device must degrade.** A drop cap must work when the paragraph is two lines;40 a pull quote must work when there's no quote; a hero must work with no image.41- **Vertical rhythm is felt, not measured.** Consistent spacing between elements42 reads as competence; the reader never counts it.43- **Space above binds, space below separates.** A subhead belongs to the section44 that follows it, so its space above must exceed its space below.45- **Expressiveness is bounded by readability**, and readability is bounded by46 accessibility (rule 1).4748## 4. Context-dependent heuristics4950**Measure.** Editorial is where the measure guidance in `body-text-and-reading`51matters most — this is genuine continuous reading. Cap the column; let margins52absorb extra viewport width. Full-bleed images may break the column; text should53not.5455**Vertical rhythm, concretely.** "Space above binds, space below separates" is the56principle; this is the arithmetic that makes it real (Rutter). Set the page's57rhythm unit from the body text's line-height in pixels — 16px text at 1.312558line-height gives a 21px unit. Every other vertical measurement on the page —59paragraph spacing, heading margins, caption line-height — should be a multiple or60clean fraction of that unit:6162- **Paragraph spacing** = the line-height itself (or half, if tighter spacing is63 wanted), not the browser's default `1em` margin, which is a different, unrelated64 number and will visibly throw off the beat.65- **Headings and asides at a different size** must recompute their own66 `line-height` to still land on a multiple of the unit — an 18px subhead over a67 21px rhythm needs `line-height: 21÷18 = 1.167`, and its margins should equal that68 same value (or an asymmetric split, e.g. 1.5× above / 0.5× below, that still sums69 to a whole multiple). Don't reach for `line-height` alone to add air around a70 heading — if it wraps to two lines, oversized `line-height` reads as two stacked71 headings instead of one.72- **Non-text elements (images, embeds, forms) may break the rhythm.** Don't crop73 content images just to preserve the beat — restart the rhythm when running text74 resumes after the interruption; the tail shouldn't wag the dog.75- **Don't force a print baseline grid onto the web.** Browsers lay out block-by-76 block from the top, not text-outward from a baseline, so chasing true77 baseline-to-baseline alignment (the print definition of vertical rhythm) fights78 the platform. A consistent multiple-of-the-unit rhythm gets the same reader79 benefit without it.8081**Subheads.** Give them clear separation from the preceding paragraph and tight82proximity to the following one. Two levels is usually enough. Keep the semantic83heading level correct independently of size. Style them as visibly *part of* the84same hierarchical system as the headline (a scaled-down echo of its treatment, not85an unrelated style) while staying clearly smaller — that visual tie-in is what86tells a scanning reader "this belongs to that headline, and is one level down"87(Santa Maria).8889**Pull quotes.** They exist to pull a scanner into the text. Rules:90- Use text that already appears in the article; don't introduce new content.91- Never let it disrupt the measure of the body text around it awkwardly — either92 break the column fully or sit clearly outside it.93- It must be skippable. A reader reading straight through should not stumble.94- If the CMS can't guarantee one exists, the template must look complete without it.9596**Drop caps.** Genuinely hard on the web. Requirements:97- Align the cap's top to the first line's cap height and its baseline to a body98 baseline — `initial-letter` does this properly where supported; float hacks99 approximate it badly.100- Never apply to a paragraph shorter than the cap is tall.101- Skip when the paragraph starts with a quotation mark or a number.102- Ensure the first word is still readable as a word by screen readers — a drop cap103 built by splitting the letter into its own element can be announced separately.104105**Paragraph demarcation, with numbers.** Rutter's concrete limits: indent by **at106least 1em** if you indent, and separate by **no more than 1em** if you space. Below1071em an indent doesn't read as intentional; above 1em the paragraphs stop cohering108into a text block. And don't use stylised paragraph breaks (dinkuses, ornaments)109without a reason — they interrupt.110111**A standfirst should stand first.** The intro paragraph that summarises the piece112needs to be visibly distinct from body copy — larger, or a different weight — and it113needs to come before the body, not float beside it. If it looks like the first114paragraph, it isn't doing its job.115116**Block quotes are not pull quotes.** A block quote is *quoted source material* the117reader should read in sequence. A pull quote is *repeated text* used to bait a118scanner. They need different treatments, and styling every block quote as a giant119centred pull quote is a common and confusing default.120121**Links, lists, and emphasis.**122123- **Make links clear but unobtrusive.** They must be identifiable without scanning124 the page for colour, and identifiable by something other than colour alone.125- **Don't underline for emphasis.** On the web an underline means "link." Use126 italics for emphasis, weight for strong emphasis.127- **Avoid faux bold and italic** — if the family lacks the style, don't synthesize it.128- **Treat lists as text to be read**, not as data dumps: they need the same measure129 discipline, leading, and spacing care as paragraphs.130131**Semantics come first, styling second.** Rutter: "establish the semantics up front."132Decide what a piece of text *is* — `<em>`, `<strong>`, `<cite>`, `<q>`, `<abbr>`,133`<figure>`/`<figcaption>`, `<blockquote>` — before deciding how it looks. Semantic134markup drives assistive technology, translation, search, and reader modes; visual135styling that floats free of it is decoration that only sighted users receive. A136`<span class="bold">` communicates nothing to a screen reader.137138**Captions.** Small, clearly subordinate, consistently placed, and **still meeting139contrast**. Grey captions are the most common contrast failure on editorial sites.140Print captions can run 6–8pt; that size is illegible on screen — Santa Maria's141floor is **around 12px** on the web, higher on lower-DPI displays, as a starting142point rather than a rule to hit exactly. In a narrow hanging caption (a margin143note beside the article column), set the line-height tighter than the body text's144— the narrow measure both permits and needs it, and it helps the caption read as145its own block rather than a continuation of the adjacent body copy.146147**Figures and footnotes.** Use `<figure>`/`<figcaption>` for semantics. Footnotes148need a return path; a link that leaves the reader stranded is a defect.149150**Art direction vs. template.** Per-story art direction produces the best pages and151does not scale. Be explicit about which you're building. A common resolution: a152strong template plus a small set of sanctioned variations (full-bleed, wide,153column) that authors select.154155**Layering.** Type on Screen's term for building a composition in depth rather than156in sequence — type over imagery, type behind or in front of a scrim, and *additive157layering*, where separate styles within a family act as distinct structural or158decorative elements (Carter's Walker uses five "snap-on" serif styles this way).159Two rules: every layer that carries text must independently meet contrast, and the160stacking must survive the layer beneath changing — a CMS-driven hero image will not161always be the dark, calm photo the design was made against. Use a scrim or a162contrast-guaranteed band rather than hoping.163164**Navigation and wayfinding type.** Nav labels are the shortest, most-scanned text165in the product and the first to break in translation. Keep them one line, keep166their voice distinct from body text (usually size and weight, not a second face),167and mark the current location with something other than colour alone. In long-form168editorial, wayfinding also means in-page structure: subheads a reader can scan, and169a visible sense of where they are in a long piece.170171**Wrap control.** `text-wrap: balance` on headings and pull quotes prevents the172one-word last line; `text-wrap: pretty` on body paragraphs handles orphans. Both173degrade silently. See `microtypography`.174175## 5. Failure patterns176177| Pattern | Cause | Fix |178|---|---|---|179| Every article looks the same and flat | Only body + h2 styled | Give captions, bylines, quotes a real voice |180| Drop cap overlaps the second line | Float hack without baseline alignment | `initial-letter`, or drop the device |181| Pull quote breaks reading flow | Placed inside the measure, mid-sentence | Move outside the column or to a paragraph break |182| Template collapses without a hero image | Device assumed present | Design the absent case |183| Captions unreadable | Grey-on-white below 4.5:1 | Raise contrast |184| Subhead looks attached to the paragraph above | Symmetric margins | More space above than below |185| Spacing inconsistent between stories | Ad-hoc margins, no rhythm | Systematise spacing |186| Long article has no wayfinding | No subheads or progress cue | Add structural subheads |187| Heading breaks to a one-word line | No wrap control | `text-wrap: balance` |188| Paragraph spacing feels arbitrary next to heading spacing | Browser default `1em` margin, unrelated to the line-height unit | Set spacing as a multiple of the rhythm unit |189| Wrapped subhead reads as two stacked headings | Oversized `line-height` used for air instead of margin | Recompute `line-height` to the rhythm unit; add air via margin |190| Caption legible in the design file, not on screen | Sized to a print convention (6–8pt) | ~12px floor on screen, verified at real DPI |191192## 6. Evaluation procedure1931941. Render the **shortest** and **longest** real story in the template.1952. Render a story **missing** each optional device — no hero, no pull quote, no196 subtitle, no author image.1973. Read one full story at real size. Did any device interrupt without repaying?1984. Check subhead spacing: above > below, on every level.1995. Check the measure through the whole article, including around floated elements.2006. Contrast-check captions, bylines, footnotes, and any grey text.2017. Verify semantic structure: sequential headings, `<figure>`/`<figcaption>`,202 footnote return links.2038. Apply the WCAG 1.4.12 override and zoom to 200%.2049. Check heading and pull-quote wrapping at the narrowest breakpoint.205206## 7. Output format207208```209Template: <name> — <templated | art-directed | template + variants>210Body setting: <deferred to body-text-and-reading>211Voice elements: caption <spec> · byline <spec> · pull quote <spec> · footnote <spec>212Devices used: <drop cap | pull quote | full-bleed | …>213 Degradation: <device> without <precondition> → <behaviour>214Rhythm: space-above/below per element — subhead binding correct: <yes/no>215Contrast: captions <n> · bylines <n> · footnotes <n>216Tested: shortest <pass/fail> · longest <pass/fail> · missing-devices <pass/fail>217```218219## 8. Examples220221**Blog template that "feels flat" despite good body type.**222223> The body setting is fine — the flatness is that nothing except `h2` has a voice.224> Captions, byline, and reading time are all body-size grey text, so the page reads225> as one undifferentiated block. Give the secondary class a real identity: smaller,226> one weight up, a slight tracking increase, and a consistent placement — but raise227> the grey to pass 4.5:1, which it currently fails. Add one structural device (a228> pull quote at a paragraph break, not mid-sentence) and design the no-quote case229> so short posts don't look broken.230231**Drop cap request on a docs site.**232233> Recommending against it. Docs paragraphs are frequently two lines, often start234> with a code term or a number, and are re-ordered by authors — three conditions235> where a drop cap fails. If the goal is signalling article start, a larger,236> tracked lead-in phrase gives the same signal, degrades to nothing, and doesn't237> risk the screen-reader split that letter-in-its-own-element drop caps cause.238239## 9. Counterexamples240241- ❌ "Add a drop cap, it looks editorial." — Fails on short paragraphs, on242 quote/number openings, and often for screen readers.243- ❌ Pull-quote text that appears nowhere in the article. — It's a pull quote, not244 a subtitle.245- ❌ "The template looks great." — with the one story that has every optional246 element populated.247- ❌ Grey captions at #999 on white. — 2.8:1; fails 1.4.3.248- ❌ Symmetric margins on subheads. — Visually attaches them to the wrong section.249- ❌ Letting the column widen with the viewport indefinitely on an article page.250- ❌ "Art-direct every story." — Unless there's a designer per story, this is a251 promise the system can't keep.252253## 10. Source citations254255- Lupton (ed.), *Type on Screen* — typography in interfaces, screen hierarchy,256 layering, type and imagery, dynamic vs. fixed compositions.257- Lupton, *Thinking with Type* 3e — paragraph composition, hierarchy and contrast,258 typographic conventions, and when breaking a rule is appropriate.259- Latin, *Better Web Typography* — page composition, vertical rhythm, heading260 relationships, drop caps.261- Santa Maria, *On Web Typography* — matching type to content and tone;262 understanding reading behavior; art direction; captions illegible on screen at263 print sizes (6–8pt), ~12px as the web floor; subheads and bylines tying into the264 headline's system at a smaller size to signal "part of, but subordinate to."265- Rutter, *Web Typography* — "establish the semantics up front"; mark the opening of266 each passage; a standfirst should stand first; demarcate paragraphs appropriately267 (indent at least 1em, separate by no more than 1em); don't use stylised paragraph268 breaks without good reason; not all block quotes need to look like pull-quotes;269 treat lists as text to be read; make links clear but unobtrusive; avoid underlines270 for emphasis; avoid faux bolds and italics; implement drop caps accurately or not271 at all; **applying vertical rhythm** — setting a base rhythm unit from the body272 line-height in pixels, spacing paragraphs by that unit rather than the browser273 default, recomputing `line-height` for off-size elements (headings, asides) to274 still land on a multiple of the unit, letting embedded media break the rhythm275 deliberately, and not forcing a print baseline grid onto a browser's top-down276 block layout.277- Hochuli, *Detail in Typography* — paragraph texture, indentation, and the reading278 process that editorial devices must not disrupt.279- Elam, *Typographic Systems of Design* — structural systems for composition; see280 `typography-layout-systems`.281- WCAG 2.2 §1.4.3, §1.4.4, §1.4.12.282- MDN — [`initial-letter`](https://developer.mozilla.org/en-US/docs/Web/CSS/initial-letter),283 [`text-wrap`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-wrap).