Screenshot gallery

Each pair shows a page at normal size and with the text doubled. Headings stay bigger than body text, pictures keep their size, and nothing needs sideways scrolling.

Real sites

Saved copies of real websites, shown on a phone.

Aftenposten

Aftenposten: page at normal text size
Before
Aftenposten: the same page with text at 200%
After (2×)
Try it live — Aftenposten

Hacker News

Hacker News: page at normal text size
Before
Hacker News: the same page with text at 200%
After (2×)
Try it live — Hacker News

Wikipedia

Wikipedia: page at normal text size
Before
Wikipedia: the same page with text at 200%
After (2×)
Try it live — Wikipedia

BBC News

BBC News: page at normal text size
Before
BBC News: the same page with text at 200%
After (2×)
Try it live — BBC News

Peter Norvig: Teach Yourself Programming in Ten Years

Peter Norvig: Teach Yourself Programming in Ten Years: page at normal text size
Before
Peter Norvig: Teach Yourself Programming in Ten Years: the same page with text at 200%
After (2×)
Try it live — Peter Norvig: Teach Yourself Programming in Ten Years

Function demos

Small pages that each use one technique websites rely on to size their text. They double as the test fixtures: the automated test suite checks every one of them in Firefox and Chromium.

Plain px sizing

Plain px sizing: page at normal text size
Before
Plain px sizing: the same page with text at 200%
After (2×)
Try it live — Plain px sizing

Root-relative sizing (rem/em)

Root-relative sizing (rem/em): page at normal text size
Before
Root-relative sizing (rem/em): the same page with text at 200%
After (2×)
Try it live — Root-relative sizing (rem/em)

Deeply nested em inheritance

Deeply nested em inheritance: page at normal text size
Before
Deeply nested em inheritance: the same page with text at 200%
After (2×)
Try it live — Deeply nested em inheritance

Open shadow DOM content

Open shadow DOM content: page at normal text size
Before
Open shadow DOM content: the same page with text at 200%
After (2×)
Try it live — Open shadow DOM content

Fixed-height container

Fixed-height container: page at normal text size
Before
Fixed-height container: the same page with text at 200%
After (2×)
Try it live — Fixed-height container

Stubborn !important styling

Stubborn !important styling: page at normal text size
Before
Stubborn !important styling: the same page with text at 200%
After (2×)
Try it live — Stubborn !important styling

Mixed line-height styles

Mixed line-height styles: page at normal text size
Before
Mixed line-height styles: the same page with text at 200%
After (2×)
Try it live — Mixed line-height styles

Large page (performance)

Large page (performance): page at normal text size
Before
Large page (performance): the same page with text at 200%
After (2×)
Try it live — Large page (performance)