Reading & Writing. Software that gets out of the way of words.

Most software is something you use. Reading and writing software is somewhere you stay, sometimes for hours. This guide teaches you to design that place: the page, the light, the way through a long text, the margin where you think back, and the blank page where you write. Calm here is not a style. It is the whole job.

Reading timeAbout 4 hours, in 5 sittings (one per part)
Practice time2 weeks, about 30 minutes a day
Before thisTypography and The Human Mind
TeachersReichenstein, Bringhurst, Butterick, Tufte, Arment, Brichter, Rizzi, Fukasawa, Hara

By the end you will be able to

  • Explain why reading and writing tools follow different rules from task software, and what "the interface disappears" means in measurable terms (understand).
  • Choose between pages and scroll, and set measure, leading, margins, justification and typeface for a long-form surface with reasons (apply).
  • Design a reader settings panel with the right number of controls and defaults that are already right (create).
  • Diagnose themes, e-ink limits, progress indicators, annotation flows and footnotes in any reading app you use (analyse).
  • Design a calm feed or read-later tool that ends instead of hooking (create).
  • Design a writing tool: focus, typewriter scrolling, editor model, storage, autosave, versions, export and capture (create).
  • Judge accessibility claims for reading (dyslexia fonts, "bionic" reading, text-to-speech) against the evidence (evaluate).

Warm-up: what do you already notice?

Before we start, spend five minutes with the reading app you use most: Kindle, Apple Books, a read-later app, an RSS reader, or just Safari's Reader view. Read one page of anything. Then answer the two questions below without looking anything up. They are not a test. They tell you which chapters to read slowly.

Diagnostic 1

You are reading a novel on your phone at night. Which of these does the most damage to a 40-minute reading session?

Diagnostic 2

Your writing app loses a user's paragraph once in a thousand saves. What is the right priority?

How to study this guide: read one Part per sitting. Do the exercise at the end of each chapter on your own product if it has any reading or writing surface (most products do: settings pages, help docs, notes fields, onboarding text). If yours does not, use the reading app you use every day and redesign it on paper. The labs are there to be played with; drag every slider to its extremes before reading the caption.

Part one

The reading surface

Six chapters on the page itself: why reading software is different, pages versus scroll, the text block, the book typeface, the controls you hand the reader, and light (themes, night, e-ink). This is the foundation. If the surface is wrong, no feature on top of it will save the experience.

1

Attention is the product

Taught by Oliver Reichenstein, with Naoto Fukasawa and Kenya Hara

In reading software the user's attention is not a resource you spend on your interface; it is the thing you are protecting. Every pixel of chrome, every animation, every prompt is paid for out of the reader's concentration.

Think about how most software is used. You open a banking app, do a task in 40 seconds, and leave. The interface is the experience, so it is reasonable for it to be visible, labelled and explicit. Reading is the reverse. A reading session lasts 20 minutes to two hours. During that time the reader is building something fragile in their head: a model of an argument, a world, a set of characters. Psychologists call this a situation model. It takes minutes to build and seconds to collapse.

That gives you the mechanism behind every rule in this guide. Any element that pulls the eye away from the text, even for a quarter of a second, forces the reader to put the model down and pick it back up. One interruption is cheap. Ten interruptions in a chapter turns reading into skimming, and the reader blames the book, not your app. They just feel that reading on your app is tiring.

Naoto Fukasawa's "without thought" idea is useful here: good design fits behaviour people already have, so they act without stopping to think about the object. For reading, the behaviour already exists and is centuries old: eyes move along a line, hands turn a page, a finger keeps a place. Your job is to fit that behaviour, not to teach a new one. Kenya Hara's idea of emptiness (an empty vessel that can hold whatever the user brings) is the other half. A reading screen should be close to empty, so that the text can fill it.

A 30-minute reading session, two ways Interrupting app Toolbar pops up · badge · "rate this" · sync toast · font tip · upsell Calm app One stretch of attention. Chrome appears only when the reader asks. 0 min 15 min 30 min
Same reading time, different reading. Each red dot costs more than its own duration: the reader has to rebuild where they were in the argument. Count interruptions per chapter in any reading app you audit.

The three jobs of a reading interface

Strip it down and a reading interface has three jobs. Get the reader in (open to the right place, fast, with the text already set well). Keep the reader in (stay out of the way, never surprise them). Get the reader back (when they leave, make return effortless: same place, same settings, maybe a reminder of where they were). Almost every reading feature belongs to one of those three jobs. Features that belong to none of them, like streak badges or social prompts mid-chapter, deserve hard suspicion.

1. Get in Opens at last position Text set well by default Under 1 second to text No splash, no news 2. Stay in Chrome hidden until tap Quiet, predictable turns Help in place (define, note) then gone again 3. Get back Position synced Settings remembered "Where was I" cue Highlights findable
Sort every feature into a job. The middle job is the one most apps get wrong, because it is the one where doing less is the work.
Don't
Rate this book! ★★★★★ +
The app is louder than the book. Text gets about half the screen, and every non-text element is a place for the eye to land.
Do
Chapter 3 12 min left in chapter
The book is the interface. Chrome waits behind a tap in the middle. Only two quiet facts stay: where you are, how far to go.
Web Design is 95% Typography.Oliver Reichenstein, essay title, iA, 2006

Reichenstein's essay title was a provocation, but for reading products it is close to literal. If the text is set well and the chrome is hidden, you have most of a great reader. Everything after that is about not breaking it.

Key idea

In a reading app, measure success by what the reader did not notice. If they finish a chapter without once thinking about your app, you won.

Do

  • Hide all chrome by default; reveal it with one tap in the centre or a mouse move, and hide it again when reading resumes.
  • Keep every surprise out of the reading surface: no banners, toasts, or tips while text is on screen.
  • Sort each feature into get in, stay in, get back. Cut what fits none.
  • Open straight to the text at the last position, in under a second.

Don't

  • Show ratings prompts, upsells or "share your progress" mid-chapter.
  • Animate anything the reader did not trigger.
  • Put persistent tab bars or floating buttons over text.
  • Measure the reading app by time on screen or taps; measure finished sessions and returns.

In the wild

  • Kindle (e-ink)Amazon, 2007 to now
    A tap at the top of the page brings up the toolbar; otherwise the screen is text, a small chapter title and a progress line. Turning pages is a tap or a side button. The default state is pure text. Chrome is a mode you enter on purpose.
  • iA WriterInformation Architects, 2010 to now
    A writing app, but built on the same idea: a blank window, one typeface tuned for the size, and almost no visible controls while you type. The same "interface disappears" rule applies to writing as to reading.
  • Safari ReaderApple, since 2010
    One button strips a web page down to headline, byline, images and body text. Readers want this so much that browsers built it in. Your product should not need it.
For the solo creator

Calm is the cheapest feature you will ever ship, because most of it is deletion. You do not need a design team to remove a toolbar. You need the discipline to not add one. When you are tempted to add a mid-reading prompt because a metric dipped, write down what attention it costs first.

Common mistakes

Treating the reader like a task app

Most of your design experience comes from forms and dashboards, where visible controls are good.

Write the session length at the top of your design doc. If it is over 10 minutes, apply reading rules: chrome hidden, nothing unprompted.

Growth features inside the text

Prompts placed where users spend the most time get the most impressions.

Move all prompts to the edges of the session: the library screen, or the end of a book. Never between two paragraphs.

Hidden means unfindable

Designers hide chrome but give no clue how to bring it back.

Show the chrome on first open, then fade it after a few seconds; one tap anywhere central brings it back. That is learnable in one session.

Check yourself

Your reading app's retention dipped. A teammate (or your own inner growth hacker) suggests a small "Keep your streak!" toast every 15 minutes of reading. Best response?

Exercise 1.1 30 minutes · on a reading app you use daily

The interruption log

  1. Read for 20 minutes in your main reading app with a paper notepad beside you.
  2. Every time your eyes leave the text because of the app (not the content), make a tally mark and write two words on what it was.
  3. Afterwards, sort each interruption into: needed (you asked for it), tolerable, or harmful.
  4. For each harmful one, write the fix in one line: remove it, move it to the session edges, or make it on-demand.
You're done when: you have a list of interruptions, their category, and a one-line fix for each harmful one.
BeginnerCompetentStrong
Lists visible chrome elements.Logs actual interruptions during reading and sorts them.Also maps each to get in / stay in / get back and proposes fixes that keep the feature's purpose.
2

Pages or scroll

Taught by Marco Arment (Instapaper), with lessons from Kindle and Apple Books

Pages give the reader a fixed place and a rhythm; scroll gives them continuity and speed. Choose by the length and purpose of the text, and if you offer both, make each one complete rather than half of each.

The page is the oldest reading interface we have, and it does three useful things. It gives every word a fixed place on a fixed rectangle, so your memory can attach to it ("the quote was near the top of a left page"). It creates a rhythm: read, turn, read, which gives the mind small rests. And it makes progress countable: page 112 of 300 means something.

Scroll does different useful things. It never cuts a paragraph in half. It lets you glance back at the previous line without a gesture. It handles text of any length without the machinery of pagination, which is why the web is a scroll. And on a phone, a flick of the thumb is less effort than a tap per screen for skimming.

The weaknesses mirror the strengths. Scroll's position is fuzzy: the same sentence sits at a different height every time you return, so spatial memory has nothing to hold. Continuous motion also asks the eye to track moving text, which is tiring over hours. Pages force awkward breaks (a heading at the bottom of a page, a single line at the top) and, on screens, a turn animation that can become a toy.

What each model is good at Pages Scroll Spatial memory (fixed place) Countable progress Unbroken paragraphs Skimming and jumping back Hours of calm reading Illustrative judgement, not measured data. Long fiction leans left; articles and docs lean right.
No universal winner. Books read cover to cover reward pages; articles, documentation and anything you skim reward scroll. Code and tables almost always want scroll.

The page turn is a micro-interaction, not a show

Apple's iBooks launched in 2010 with a realistic page curl that followed your finger. It was a beautiful demonstration of the iPad's touch screen, and it was also skeuomorphism at its most literal. In the 2022 redesign of Apple Books the curl was replaced by a simpler slide, and enough readers missed it that Apple brought the curl back as an option in a later update. The lesson is not "curl good" or "curl bad". The turn is felt hundreds of times per book. It must be fast (under about 250 ms), it must follow the finger if you drag, and it must never be the thing you notice. Some readers love the curl because it gives the turn a physical weight; others find it slow. That is a legitimate preference, which is why it is a setting.

On e-ink, the turn has no animation at all: the screen just redraws. That turns out to be fine. Readers stop noticing the redraw within minutes, because it is consistent. Consistency matters more than smoothness.

Curl
Physical, slower. Feels like a book; costs time on each turn.
Slide
Clear, quick. Shows direction; works with a drag.
Instant
redraw, no motion
Invisible. The e-ink default; also good for reduced motion.
Lab: pages versus scroll, and how you show progress
Page 1 of 1
Tap the right or left third of the text (or press the arrow keys after clicking it) to turn pages. Switch to scroll and notice two things: your place has no fixed address, and "page" stops meaning anything, so the progress line must change to percent or time. Try "Nothing" and see how quickly you want it back. Text: Jane Austen, Pride and Prejudice, 1813, chapter 1 (public domain).

If you offer both, finish both

Many readers offer pages and scroll as a setting: Kindle's phone apps, Apple Books, and Instapaper all have had both at various points. That is fine, but each model has its own requirements, and teams often build one properly and the other as an afterthought. A complete page model needs widow and orphan control, headings that never sit alone at the bottom of a page, images that fit a page, and stable page numbers for a given text size. A complete scroll model needs a position that survives rotation and font changes, a meaningful progress indicator, and a way to page by screen (space bar, a tap at the bottom edge) for readers who like the rhythm without the animation.

ContentDefaultWhy
Novel, long non-fictionPagesHours of linear reading, spatial memory, rhythm, countable progress.
Article, essay, newsletterScrollRead in one sitting; skimming and back-glancing matter more than place.
Documentation, referenceScroll with anchorsYou jump in and out; headings and links are the navigation.
Comics, fixed-layout, PDFsPages (fixed)The layout is the content; reflowing it breaks it.
Code, tables, poetryScrollLine breaks carry meaning; pagination splits units awkwardly.

Do

  • Pick a default per content type and make it excellent before adding the other model.
  • Keep page turns under about 250 ms and let them follow a drag.
  • Let the reader page by screen in scroll mode (space bar, tap the bottom edge).
  • Keep the reader's exact sentence when they switch models, rotate, or resize text.

Don't

  • Animate page turns slowly to "feel premium".
  • Leave a heading stranded at the bottom of a page.
  • Show "page 3 of 9" in scroll mode, where pages do not exist.
  • Reflow fixed-layout content (comics, forms, slides) into pages.

In the wild

  • Apple BooksApple, 2010 to now
    The page curl was a signature of the original iBooks; the 2022 redesign replaced it with a slide, and the curl later returned as an option alongside slide and scroll. The turn is felt hundreds of times per book; readers have strong preferences, so make it a setting with a calm default.
  • Kindle e-readersAmazon
    Pages with an instant redraw. Tapping most of the screen turns forward; a narrow left strip turns back. The tap zones are lopsided on purpose: forward is the action you take hundreds of times.
  • InstapaperMarco Arment, 2008
    Built around scroll for articles, and over the years experimented with alternatives such as pagination and tilt-to-scroll. Even a scroll-first reader benefits from offering the page rhythm to those who want it.
For the solo creator

Real pagination is expensive to build well: widows, orphans, images, stable positions, performance on long books. CSS multi-column layout gets you a working prototype in an afternoon (the lab above uses it), but the details take weeks. If your content is articles or docs, ship scroll first, add "page by screen" with the space bar and a bottom tap, and stop there until readers ask.

Common mistakes

Losing the place on rotation or font change

Position is stored as a page number or scroll offset, both of which change when layout changes.

Store position as a text offset (character index or a stable location ID) and re-find it after every reflow.

Toy page turns

The turn is fun to build and demo.

Time it. If it is over 300 ms or cannot be interrupted by the next tap, it is too slow for the 400th turn.

Check yourself

You are building a reader for long legal documents that people search, jump around in, and cite by section. Which reading model fits best?

Exercise 2.1 40 minutes · on your own product or docs

Choose the model on purpose

  1. List every long text surface in your product (help docs, changelog, articles, onboarding, terms).
  2. For each, write its typical session: read once top to bottom, skim, jump in from search, or reread.
  3. Pick pages or scroll for each using the table above, and write one sentence of reasoning.
  4. For the scroll surfaces, check: can the reader page by screen with the space bar? Does the position survive a refresh?
You're done when: you have a table of surfaces, chosen model, reason, and the two scroll checks marked pass or fail.
BeginnerCompetentStrong
Picks a model for each surface.Justifies each by session type and fixes failed checks.Also defines how position is stored so it survives reflow, and tests it.
3

The text block: measure, leading, margins

Taught by Robert Bringhurst, with Matthew Butterick and the iA team

A long text is read line by line, so the line is your unit of design. Its length (measure), the space between lines (leading) and the quiet around the block (margins) decide whether the eye moves without effort for an hour or tires in ten minutes.

You met these in Typography. Here we tune them for long sessions, where small errors add up. The mechanism is the return sweep. At the end of each line your eye jumps back to the start of the next one. If lines are too long, the jump is far and the eye sometimes lands on the wrong line (you reread a line, or skip one). If lines are too short, the eye jumps constantly and phrases get chopped. If lines are too tight vertically, the next line crowds the target and the sweep misses. If they are too loose, the block falls apart into stripes.

Measure and the return sweep ~35 characters: choppy many sweeps,phrases broken ~65 characters: comfortable short, sure sweep;Bringhurst: 45 to 75, ideal ~66 ~110 characters: lost lines long sweep lands onthe wrong line On phones, 30 to 45 characters is normal and fine: the screen sets the measure, so increase leading a little to help.
The red sweep lands one line low. That is what "tiring to read" feels like from the inside: tiny misses, corrected hundreds of times.

Numbers to start from

Robert Bringhurst's The Elements of Typographic Style gives 45 to 75 characters as the satisfactory range for a single-column page, with 66 widely regarded as ideal. Matthew Butterick's Practical Typography suggests 45 to 90 characters and line spacing of 120 to 145 percent of the point size. On screens, long-form reading tends to want the upper half of that leading range or a little more, because screens are read at varying distances and in varying light. A good starting point for a desktop reading column is 17 to 21 px text, 1.5 to 1.6 line height, and a column of about 34 em (roughly 65 to 70 characters in a typical serif).

Leading and measure are linked: the longer the line, the more leading it needs, because the return sweep has further to travel and needs a wider target. If you let readers widen the column, nudge the leading up with it. Good reader apps do this quietly.

Don't

It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife. However little known the feelings or views of such a man may be on his first entering a neighbourhood, this truth is so well fixed in the minds of the surrounding families, that he is considered the rightful property of some one or other of their daughters.

Tight leading, edge to edge. Lines crowd each other, the block has no margin to rest the eye, and the sweep target is narrow.
Do

It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife. However little known the feelings or views of such a man may be on his first entering a neighbourhood, this truth is so well fixed in the minds of the surrounding families, that he is considered the rightful property of some one or other of their daughters.

Room to breathe. 1.6 line height, real margins, and a measure capped in em so it holds at any window size.

Margins are not wasted space

Book designers spent five centuries on margins. Classical page proportions, like the Van de Graaf canon reconstructed by Jan Tschichold, put the text block high and toward the spine, with the largest margin at the bottom. On screen there is no spine, so symmetric side margins are normal, but two old lessons still apply. First, margins frame the block so the eye knows where the text ends; text that touches the edge of a screen feels like it is spilling off. Second, the bottom margin should be generous, because the last line on a screen is where the eye pauses before turning, and controls placed there compete with it.

On a phone, side margins of 16 to 24 px are typical; reading apps often go wider (24 to 32 px) because the measure is already short and the frame adds calm. On tablets and desktops, the margin is whatever is left after you cap the measure. Do not widen the text to fill a wide window. Centre a column and let the margins grow.

Fills the window: ~140 characters marginmargin max-width: 34em; margin: auto
Cap the column, not the window. One line of CSS (max-width in em) fixes most long-form web reading.
/* A calm long-form column for the web */
article {
  max-width: 34em;          /* ~65-70 characters in most serifs */
  margin: 0 auto;
  padding: 0 clamp(16px, 5vw, 32px);
  font-size: clamp(17px, 1rem + 0.3vw, 21px);
  line-height: 1.55;
}
article p + p { margin-top: 0.9em; }   /* or indent, not both */

Do

  • Cap the measure in em, so it scales with the reader's text size.
  • Raise line height as measure grows; 1.5 to 1.6 is a safe start for long-form.
  • Give the block real margins, generous at the bottom of the screen.
  • Separate paragraphs with either space or a first-line indent, not both.

Don't

  • Let text run the full width of a desktop window.
  • Use the same tight line height you use for UI labels.
  • Put a toolbar flush against the last line of text.
  • Fix the measure in px, so it breaks when the reader enlarges the text.

In the wild

  • Medium2012 to now
    Built its early reputation on a single narrow serif column with generous leading on a white page, at a time when most blogs were cluttered. A well-set column was a brand in itself.
  • Kindle and Kobo marginse-readers
    Both offer a few margin widths and line spacings rather than free sliders on most models, with the defaults set to a moderate value. A handful of good presets beats a continuous control for something readers set once.
  • Wikipedia (Vector 2022)Wikimedia, 2023
    The 2022 Vector skin, rolled out on English Wikipedia in early 2023, introduced a limited content width on wide screens after years of full-width text. Even the biggest reference site on the web moved to a capped measure for readability.

Common mistakes

Measure in pixels

The layout is designed at one text size.

Set max-width in em or ch. When the reader picks a bigger size, the column grows with it and the character count stays right.

Paragraph space and indent together

Two habits from different traditions (web and print) get combined.

Pick one. Space for the web and short paragraphs; indent for book-like continuous prose.

UI line height on reading text

One global line-height: 1.2 is set for the whole app.

Give reading surfaces their own type tokens (see Systems).

Check yourself

A reader sets the largest text size in your web reader on a 27-inch monitor. Your column is max-width: 680px. What happens, and what should you change?

Exercise 3.1 30 minutes · on your own product

Count the characters

  1. Open the longest text surface in your product at three widths: phone, laptop, wide monitor.
  2. At each, count characters in three full lines (including spaces) and average them.
  3. Measure the line height and side margins in your dev tools.
  4. Fix anything outside 45 to 75 characters on desktop (30 to 45 is fine on phone), and set reading line height to at least 1.45.
You're done when: you have before and after numbers for all three widths and a commit that fixes the outliers.
BeginnerCompetentStrong
Measures one width.Measures three widths and fixes measure and leading.Also caps in em, tests at the largest text size, and makes reading type its own token.
4

The book face, justification and hyphenation

Taught by Matthew Carter's screen faces, with Dalton Maag (Bookerly) and TypeTogether (Literata)

A typeface for hours of reading is not chosen for personality. It is chosen for stamina: generous x-height, open shapes, sturdy serifs, moderate contrast, and spacing that survives small sizes, low resolution and e-ink. Justification is only worth it if hyphenation comes with it.

Display typefaces are judged in a glance. Book typefaces are judged after the 300th page, when every small irritation has been seen 100,000 times. The qualities that matter are boring and physical. A large x-height makes lowercase letters bigger at the same point size, so text reads larger without taking more lines. Open apertures (the gaps in c, e, a, s) keep letters distinct when blurred or rendered with few pixels. Sturdy, slightly blunt serifs survive e-ink and low-resolution screens where hairline serifs break up. Moderate stroke contrast avoids thin strokes vanishing in dark mode or at small sizes.

What a reading face needs hean baseline x-height (big) ascender Open apertures keep e, a, c, s apart when blurred. Sturdy serifs and moderate contrast survive e-ink and dark mode. Avoid forlong reading: hairline serifs,tiny x-height,tight spacing
Stamina over style. Lines show the proportions; the letters are set in this page's serif (Source Serif). Compare the specimens below at the same size.
FaceSample at 18 pxOrigin and why it reads well
GeorgiaSimplicity, simplicity!Matthew Carter for Microsoft, 1990s. Designed for coarse screens: large x-height, robust serifs. Installed almost everywhere.
CharterSimplicity, simplicity!Matthew Carter for Bitstream, 1987, built for low-resolution printers; ships on Apple devices. Falls back to another serif if missing here.
LiterataSimplicity, simplicity!TypeTogether for Google Play Books, 2015; later released free on Google Fonts. A book face drawn for screens.
Source SerifSimplicity, simplicity!Frank Grießhammer for Adobe; open source. This course's body face.
Bookerly(Kindle only)Dalton Maag for Amazon, introduced in 2015 as the new Kindle default, replacing Caecilia. Not licensed for other use.
Five book faces at one size. Note the x-height differences: Georgia looks biggest at the same pixel size. Text from Thoreau's Walden, 1854.

Justification needs hyphenation

Books are usually justified: both edges straight. Justification works by stretching the spaces between words on each line. In a wide print column with good hyphenation, the stretch is small and invisible. In a narrow screen column without hyphenation, a long word that cannot be broken pushes to the next line and leaves huge gaps behind it. Gaps stack vertically into "rivers" of white that the eye follows down the page. That is why early e-readers and many apps looked worse justified than ragged.

Amazon's 2015 Kindle typography update paired the new Bookerly face with a new layout engine that added hyphenation and better spacing. That is the right pairing. The rule for you: justify only when you can hyphenate well and the measure is at least about 45 characters. Otherwise use left-aligned ("ragged right") text, which never makes rivers.

Justified, no hyphens

Our life is frittered away by detail. An honest man has hardly need to count more than his ten fingers, or in extreme cases he may add his ten toes, and lump the rest. Simplicity, simplicity, simplicity!

Rivers. Narrow measure plus justify stretches spaces into holes.
Justified, hyphenated

Our life is frittered away by detail. An honest man has hardly need to count more than his ten fingers, or in extreme cases he may add his ten toes, and lump the rest. Simplicity, simplicity, simplicity!

Even colour. Broken words absorb the slack. Needs a lang attribute.
Ragged right

Our life is frittered away by detail. An honest man has hardly need to count more than his ten fingers, or in extreme cases he may add his ten toes, and lump the rest. Simplicity, simplicity, simplicity!

Always safe. Even word spacing at any width. The default for the web.

These three are live HTML, so your browser does the setting. If the middle one looks like the first, your browser lacks English hyphenation dictionaries, which is itself a lesson: you cannot rely on hyphens: auto everywhere.

/* Long-form web text, book-like when supported */
article { text-align: left; text-wrap: pretty; }   /* fewer short last lines */
@supports (hyphens: auto) {
  article.justified { text-align: justify; hyphens: auto; }
}
/* never justify below ~45 characters per line */

Widows, orphans and the last line

A widow is a paragraph's last line alone at the top of a page; an orphan is a first line alone at the bottom. In scroll they hardly matter, but on pages they look like errors. A related screen problem is the runt, a single short word on the last line of a paragraph. Browsers now offer text-wrap: pretty, which rebalances the last lines of paragraphs to avoid runts, and text-wrap: balance for headings. They cost nothing to add and degrade gracefully.

Do

  • Choose a face with a large x-height, open apertures and sturdy serifs for long text.
  • Test the face at small size, in dark mode and in greyscale.
  • Justify only with good hyphenation and a measure of 45+ characters.
  • Set lang on your text, so hyphenation and quotes work.

Don't

  • Pick a face because it looks elegant in a 48 px heading.
  • Use hairline serif "fashion" faces (Didone-style) for body text.
  • Justify narrow phone columns without hyphenation.
  • Ship a reading app with only your brand font.

In the wild

  • Kindle 2015 updateAmazon
    Introduced Bookerly, drawn for reading on screens, together with a new layout engine with hyphenation and improved spacing. A face and its setting engine are one decision.
  • Google Play BooksGoogle, 2015
    Commissioned Literata from TypeTogether as its reading face, later released openly. If you cannot commission a face, the open result is now free to use.
  • iA Writer's fontsiA
    iA built its own monospace, duospace and quattro faces (based on IBM Plex) specifically for writing at screen sizes, and publishes them free. Writing faces have different needs from reading faces: they must show every character clearly while you edit.

Common mistakes

Brand font in the reading surface

Consistency with the marketing site feels important.

Use the brand face in chrome and headings if you like. The reading text gets a proven book face and the reader's choice.

Assuming hyphens: auto works

It works on your Mac.

Check on Android, Windows and Linux. Without dictionaries, fall back to ragged right.

Judging the face at one size

Specimens are seen at display size.

Read three pages at 16 px in dark mode before deciding.

Check yourself

Your reading app on phones shows big gaps between words in some lines. Readers call it "messy". Text is justified, 15 px, about 38 characters per line. What is the best fix?

Exercise 4.1 45 minutes · type test

Three-page stamina test

  1. Pick three candidate faces for your product's reading text (for example Georgia, Literata, Source Serif).
  2. Set the same 1,000-word text in each at your real size, measure and leading, light and dark.
  3. Read each in full on your phone, on separate days if you can. Note where your eye stumbled.
  4. Pick one, and write three sentences on why, naming x-height, apertures or contrast.
You're done when: you have three test pages, stumble notes and a reasoned choice.
BeginnerCompetentStrong
Chooses by looks in a specimen.Reads full pages and reasons from anatomy.Also tests dark mode, small size and a low-quality screen, and checks licensing.
5

Reader controls and defaults that are already right

Taught by Kindle, Kobo and Instapaper, with Dieter Rams on "as little design as possible"

Readers differ: eyesight, light, device, habit. So reading apps must let them change the text. But every control is a decision you push onto the reader, so the default must already be right, and the controls should be few, layered and instantly previewed.

There are two failure modes. The first is too few controls: a fixed font size in a reading app excludes anyone whose eyes do not match yours, and that is most people over 45. The second is too many: a panel of fourteen sliders invites fiddling, which is the opposite of reading. People who start adjusting kerning at 11 pm are not reading.

The way through is to rank controls by how many readers need them and how often. Text size and theme (light or dark) are needed by almost everyone and change with the situation, so they sit on the first layer, one tap away. Font, line spacing, margins and alignment are set once and rarely touched, so they sit one level deeper. Expert controls, like Kobo's font weight and sharpness sliders, sit behind an "advanced" door. Each change previews live on the real text behind the panel, never in a sample box.

Layer controls by need and frequency Layer 1 · one tap · almost everyone, often Text size (A− / A+) · Theme (light, sepia, dark) · Brightness on e-ink Layer 2 · same panel, below · many readers, once Typeface (4 to 8 good ones) · Line spacing · Margins · Alignment Layer 3 · "More" · few readers, rarely Weight, sharpness · Hyphenation · Publisher styles on/off · Save as theme
Each layer down is a smaller audience. The indent is the cost: deeper layers take one more step. Never put a Layer 1 control at Layer 3.
Lab: reader settings, applied live

Chapter 1

It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife.

However little known the feelings or views of such a man may be on his first entering a neighbourhood, this truth is so well fixed in the minds of the surrounding families, that he is considered the rightful property of some one or other of their daughters.

“My dear Mr. Bennet,” said his lady to him one day, “have you heard that Netherfield Park is let at last?”

Mr. Bennet replied that he had not.

“But it is,” returned she; “for Mrs. Long has just been here, and she told me all about it.”

Mr. Bennet made no answer.

“Do you not want to know who has taken it?” cried his wife impatiently.

“You want to tell me, and I have no objection to hearing it.”

This was invitation enough.

About 66 characters per lineContrast 16.9:1Comfortable.
Drag each slider to both ends. Watch the characters-per-line counter: it is measured from the real font, not guessed. Try a narrow column with "Justified, no hyphenation" to see rivers form. Then press "Reset" and notice how good defaults feel like nothing at all. Text: Pride and Prejudice, chapter 1.

How many options per control?

For each control, offer steps rather than a continuous range when the reader sets it once: five to eight text sizes, three or four line spacings, three margins. Steps are easier to return to ("I like the fourth size") and easier to sync across devices. Text size is the exception that benefits from many steps, because eyesight varies so widely; Kindle and Apple Books offer many sizes, including very large ones.

For typefaces, four to eight is enough, as long as they differ in a useful way: a sturdy serif, a screen serif, a humanist sans, one high-legibility face (such as Atkinson Hyperlegible), and the publisher's font when there is one. Twelve similar serifs are not choice; they are homework.

Defaults are your design

Most people never open the settings. Whatever you ship as default is what most of your readers will see for their entire time with the app. So spend more time on the default than on the panel. Set it per device class: a phone default (17 to 19 px, 1.5 to 1.6 leading, 20 to 28 px side margins) is not a tablet default. Follow the system text size setting (Dynamic Type on iOS, font scale on Android) as the starting point, and remember the reader's choice per device, not just per account, because the same person wants different sizes on a phone and an e-reader.

Don't
Display settings
Unlabelled equal sliders. Everything has the same weight; nothing previews on real text; the sheet hides the page.
Do
AA Font · Literata› Layout · spacing, margins›
Layer 1 on top, live preview behind. Size and theme are big, direct targets; the rest is one tap deeper.

Do

  • Spend more time on defaults than on the panel. Start from the system text size.
  • Put size and theme on the first layer; font and spacing one step deeper.
  • Preview every change on the real text behind the panel.
  • Use steps for set-once controls, and remember choices per device.
  • Offer a "reset to defaults" that restores your designed defaults.

Don't

  • Ship a reading surface with a fixed text size.
  • Offer a dozen near-identical serif fonts.
  • Show a "sample text" box instead of the actual page.
  • Sync one text size to every device the reader owns.

In the wild

  • KoboRakuten Kobo
    Offers the usual font, size, spacing and margins, plus "advanced" sliders for font weight and sharpness, which help on e-ink where thin strokes can look grey. Expert controls are fine behind a door; they serve a real e-ink problem.
  • Kindle ThemesAmazon
    Lets you save a full combination of font, size, spacing and layout as a named theme and switch between them. Bundling settings turns ten choices into one, for people who read in two situations (say, day and bed).
  • Instapaper2008 to now
    A compact panel: a handful of fonts, size, line spacing, margins and a few background colours, all previewed on the article. A small, well-chosen set covers almost everyone.
For the solo creator

Build reader settings as CSS custom properties on the reading container (--rw-size, --rw-leading, --rw-measure, --rw-font) and let the panel only change those. The lab above works this way. Each new control is then one variable and one select, and saving settings is a tiny JSON object per device.

Common mistakes

The panel hides the page

A full-screen settings sheet is the default component.

Use a half-height sheet or popover so the text stays visible and every change is seen instantly.

Ignoring system text size

The app has its own size setting, so the system one feels redundant.

Start from the system size. Many readers set it once for every app and expect it to be honoured.

Settings that fight each other

Size, measure and leading are separate sliders.

Link them: when size goes up a lot on a narrow screen, nudge leading up and margins down automatically.

Check yourself

You have room for exactly two controls in the first layer of your reader's settings. Which two?

Exercise 5.1 60 minutes · design

Design your settings panel and its defaults

  1. List every reading setting you might offer. Give each a score for audience (how many need it) and frequency (how often they change it).
  2. Place them in three layers using those scores.
  3. Write your defaults for phone, tablet and desktop: size, leading, measure, margins, face, theme.
  4. Sketch the panel on paper at phone size, with the text visible behind it.
You're done when: you have a scored list, a three-layer sketch and a defaults table for three device classes.
BeginnerCompetentStrong
A list of controls.Layered by score with defaults per device.Also links settings that interact, plans per-device memory, and builds it as CSS variables.
6

Light, dark, sepia, night and e-ink

Taught by e-reader makers (Kindle, Kobo), with research on polarity and night reading

A reading theme is a lighting decision. Match it to the light the reader is in, keep contrast high but not harsh, and when the screen is e-ink, design for a display that is slow, grey and permanent rather than fast, coloured and glowing.

Screens emit light; paper reflects it. In a bright room, a white screen is about as bright as the paper around it and feels natural. In a dark room the same white screen is the brightest thing in your field of view, your pupils narrow, and the glare tires you. That is the real reason readers want dark themes at night: not taste, but light balance. Research on text polarity (for example, work by Piepenbrock and colleagues in 2013) has found that dark text on a light background tends to give better proofreading and legibility in normal lighting, partly because a narrower pupil sharpens the image. So the right default is light in the day and a dark option for dim rooms, ideally following the system appearance.

Five themes, with contrast ratios (WCAG formula) Aaday, bright16.9:1 Aawarm, softer7.5:1 Aadim room10.9:1 Aadark, OLED8.8:1 Aareflective15.0:1 Pure white on pure black is 21:1. For long dark reading, softer text (10 to 12:1) reduces glare and halation; all five clear WCAG AAA (7:1) for body text.
Contrast is a range, not a maximum. These are the exact colours used in the lab in chapter 5. Try each one there.

Dark, but not too dark

Two details separate a good dark theme from an inverted one. First, avoid pure white text on pure black for long reading. The extreme contrast makes bright letters bloom into the dark around them (halation), which is worse for the many people with astigmatism. Soften the text to an off-white or light grey and lift the background slightly off black. Second, true black (#000) on OLED phones is a legitimate choice for night reading in a dark room, because black pixels are off and the screen emits almost no light around the text. But true black can smear when you scroll on some OLED panels, and the jump from a bright UI to it is harsh, so offer it as an option, not the dark default.

Night reading and warm light

Light in the evening affects sleep. A 2015 study by Chang and colleagues (PNAS) found that people who read on a light-emitting e-reader before bed took longer to fall asleep and had suppressed evening melatonin compared with reading a printed book. The strongest levers are brightness and timing. Warmer colour (less blue) is a plausible help and is how e-readers like the Kindle Oasis, newer Paperwhites and Kobo models with "ComfortLight PRO" handle bedtime, but the evidence that a warm shift alone fixes the sleep effect is mixed. Design for both: a dark or sepia theme, brightness that can go very low, and on devices with a front light, a warm tint that can follow sunset.

A reading light schedule Noon · neutralEvening · warmBed · warmerDark room · dark Bar = brightness. Lowering brightness matters at least as much as warmth.
Follow the reader's evening. Tie theme to system appearance or sunset, and let brightness go lower than you think anyone needs.

Designing for e-ink

E-ink (electrophoretic) screens move tiny charged pigment particles to form an image, and the image stays without power. That makes them wonderful for reading (reflective like paper, readable in sunlight, weeks of battery) and awkward for interfaces. A full refresh takes a few hundred milliseconds and often flashes black to clear the previous image. Faster partial updates leave faint traces of the previous image, called ghosting, which builds up until the next full refresh. Most screens show 16 levels of grey. Colour e-ink exists (for example the Kindle Colorsoft from 2024 and several Kobo models), but colours are muted and colour resolution is lower than black-and-white.

So the e-ink design rules are almost the opposite of phone UI fashion: no animation (each frame costs a refresh and leaves ghosts), no subtle greys (they become mush), no thin lines, no transparency, no spinners. Use solid black on white, thick enough strokes, clear boxes, and state changes that are big and instant. Design screens so that partial refreshes only touch the area that changed (for example, a menu drawn over a fixed region), and give the reader control over how often a full refresh flash happens. Kindle exposes this as a "page refresh" option.

Don't
Library Settings Syncing…
Phone UI on e-ink. Pale greys turn to mush, hairlines vanish, the spinner forces constant refreshes, and the old page ghosts through.
Do
Menu Library Settings Synced 10:42
Designed for the medium. Solid black, 2 px borders, big targets, a static status line instead of a spinner. One partial refresh draws it.
Full versus partial refresh flash clean faint ghost more ghost flash again Let the reader choose: flash every page (clean, noticeable) or every N pages (calmer, some ghosting).
A trade-off the reader should own. Some readers hate the flash, others hate ghosting. Default to every few pages and make it a setting.

Do

  • Default to the system appearance; offer light, sepia and dark at minimum.
  • Soften dark themes: off-white text on near-black, around 10 to 12:1.
  • Let brightness go very low, and offer warmth on devices with front lights.
  • On e-ink: black, white, thick strokes, no motion, static status text.

Don't

  • Invert colours and call it dark mode (images and highlights break).
  • Use pure white on pure black for hours of text.
  • Use spinners, fades, transparency or light grey on e-ink.
  • Claim a warm filter "fixes" sleep; the evidence does not say that.

In the wild

  • Apple Books themesApple, 2022 redesign
    Replaced a few page colours with named themes that combine background, font and weight (for example Original, Quiet, Paper, Bold, Calm, Focus), each customisable. A theme can bundle colour with type choices, so one tap changes the whole mood.
  • Kindle Paperwhite and OasisAmazon
    Adjustable warm front light that can follow a schedule, plus a dark mode on newer models. On e-ink, "theme" includes the physical light.
  • reMarkablereMarkable, 2017 and later
    An e-ink tablet whose UI is drawn in solid black and white with simple line icons and almost no animation. A whole product designed for the medium's limits feels calm rather than slow.
For the solo creator

Define each theme as a small set of tokens (background, text, muted text, highlight, link) and test every screen in all of them, including your highlight colour on dark and sepia, which is where most bugs hide. If you support Kindle or Kobo export, or a web reader that might be opened on an e-ink tablet (Boox devices run Android browsers), add a @media (monochrome) or a manual "e-ink" theme that removes motion and greys.

Common mistakes

Highlight colours that only work on white

The highlight yellow is picked on the light theme.

Pick highlight colours per theme. On dark, use a darker, less saturated tint with the text still readable on it.

Images blasting light in dark mode

Photos and white-background diagrams are left as they are.

Dim images slightly in dark mode (for example 85 percent brightness) and give diagrams transparent or theme-aware backgrounds.

Sepia with low contrast

Sepia text is chosen to look "vintage".

Keep sepia text dark enough for at least 7:1. Warm does not have to mean faded.

Check yourself

You are porting your reader's menu to an e-ink tablet. The menu slides in over 300 ms with a 40 percent grey backdrop. What should change?

Exercise 6.1 45 minutes · on your own product

The four-light test

  1. Use your product's main text screen in four situations: daylight by a window, an office, a dim room, and in bed in the dark.
  2. In each, note glare, contrast, and how bright the screen feels relative to the room.
  3. Check your theme tokens' contrast with a calculator; aim for 7:1 for body text and below about 15:1 for dark themes.
  4. Grayscale your screen (OS accessibility setting) and look for anything that disappears: that is your e-ink risk list.
You're done when: you have notes from four lights, a contrast table for each theme, and a list of greyscale failures with fixes.
BeginnerCompetentStrong
Has a dark mode.Tests in real light and fixes contrast extremes.Also handles highlights, images and e-ink, and follows system appearance.
Part one recap: connect the ideas

A reader complains your app "feels tiring after 20 minutes". Which combination is the most likely cause, using what you learned in Part one and in The Human Mind?

Part two

Finding your way in long text

A long text is a place, and readers need to know where they are in it, how far is left, how to jump, how to come back, and how to leave marks. Three chapters: progress and navigation, annotation, and the help that lives inside the text (footnotes, definitions, context).

7

Where am I, how far is left, where was I

Taught by Kindle (locations, time left, Whispersync), with Apple Books and the web

Progress in a long text answers three different questions: where am I, how much is left, and how do I get back? Each indicator answers some of them well and others badly, so pick the one that matches what your reader is deciding.

A printed book answers all three questions without any design: you feel the thickness of the pages in each hand, you see the page number, and you can put a finger or a ribbon in it. A screen removes every physical cue. The reader has no idea if the chapter has three pages left or thirty, which matters because people decide whether to keep reading based on what is left ("I'll finish this chapter, then sleep"). That decision is the real job of the progress indicator.

Reflowable text makes this harder. When the reader changes text size, page 112 becomes page 140, so pages are not stable addresses. Kindle's answer, from the start, was the "location": a number tied to a position in the text itself, independent of size. Locations are stable but meaningless as a sense of distance ("Loc 2,341 of 6,020" requires arithmetic). So Kindle also offers percent, real page numbers for books that have them mapped to a print edition, and time left in the chapter or book, estimated from your own reading speed.

Progress indicators and the questions they answer Where am I How much left Stable address Page 112 of 340reflow breaks it Loc 2,341 of 6,020Kindle 38%book-wide 8 min left in chapterpersonal speed Thin bar Ch. 4 · 3 pages leftApple Books goodpartialpoor
No single indicator does everything. The best readers show one quiet, chapter-scoped indicator by default ("time left" or "pages left in chapter") and let the reader cycle to others with one tap on the footer.

Chapter-scoped beats book-scoped

The decision readers make most often is "do I have time to finish this bit?", and the natural bit is the chapter. So chapter-scoped progress (pages or minutes left in the chapter) is usually the most useful default. Book-wide percent is better for the rarer question "how far through am I?", and belongs in the menu or as an alternative. Time estimates must be personal and humble: compute them from this reader's pace on this book, show them only after a few pages of data, and round generously ("about 10 minutes").

One subtle rule: progress must never move backward when nothing changed. If changing text size makes "page 112" jump to "page 140", say why, or better, use an indicator that does not jump. Readers who see numbers jump stop trusting all the numbers.

Tables of contents and scrubbers

The table of contents is the map. It should show the current chapter highlighted, allow jumping with one tap, and in long books, show progress within each chapter or at least which ones are finished. A scrubber (a slider across the whole book) is good for big jumps and terrible for precision, so it needs two things: a preview of where you will land (chapter title and page or location) shown while dragging, and a way back to where you were. Readers who scrub to check something and then cannot find their place again are a classic support complaint. Kindle's "Page Flip" (2016) solved this with a separate peek mode: you browse other pages in a panel while your reading position stays pinned.

A scrubber that is safe to use Ch. 9 · The Ball Page 214 · 63% you were here ‹ Back to page 112 Ticks = chapters. Preview while dragging. One tap home.
Three additions make scrubbing safe: chapter ticks, a live landing preview, and a persistent "back to" chip that stays until the reader starts reading in the new place.

Coming back: sync and "where was I"

Readers switch devices: phone on the train, e-reader in bed, laptop at lunch. Position sync (Kindle calls it Whispersync) means the book opens where they stopped, on any device. The design decisions are in the edge cases. When two devices disagree, which wins? Kindle's approach is to ask, offering to jump to the furthest or most recent page read on another device, rather than silently moving the reader. Silent jumps forward can spoil a novel; silent jumps back lose a place. Ask once, clearly, with both positions.

The second part of coming back is memory. If someone returns after two weeks, they may remember the page but not the story. A light "where was I" cue helps: the last sentence they read highlighted for a moment, the chapter title and a line on how long ago they were here. Some apps go further and offer a recap of previous chapters; if you do this (with or without AI), make it opt-in, clearly marked, and spoiler-safe by only using text before the reader's position.

Don't
Synced

…and so the regiment marched out at dawn, and Lydia watched from the window until the last red coat had gone…

Moved you to page 301 (from another device).

Silent jump. The reader lands 80 pages ahead, past a scene they had not read. A tiny toast after the fact does not undo the spoiler.
Do
You read further on your Kindle

Page 301 · Chapter 15, last night at 23:10

Go to page 301Stay on 221
Ask once, with context. Device, place, time. The reader decides; the app remembers the answer for this book.

Do

  • Default to chapter-scoped progress; let a tap on the footer cycle formats.
  • Use stable text positions (locations or offsets) for sync, bookmarks and citations.
  • Show a landing preview while scrubbing and a "back to" chip after a jump.
  • Ask when synced positions disagree; never jump silently.
  • On return after a long gap, briefly mark the last sentence read.

Don't

  • Show a progress number that jumps around when settings change.
  • Estimate "time left" from a global average on page one.
  • Make the TOC the only way to jump, or the scrubber the only way back.
  • Generate recaps that use text beyond the reader's position.

In the wild

  • Kindle reading progressAmazon
    A tap on the bottom-left footer cycles between location, page (when available), time left in chapter, time left in book, and nothing. One quiet slot, many answers, chosen by the reader.
  • Kindle Page Flip2016
    Lets you browse other pages and a whole-book overview while your reading position stays pinned and one tap returns you. Separate "looking around" from "moving", and jumping becomes safe.
  • Long-form web articlesvarious publishers
    Many show "12 min read" under the headline and a thin progress bar at the top while scrolling. Fine for articles; for books, the minute estimate must be personal and chapter-scoped to be useful.

Common mistakes

Storing position as scroll pixels

It is the easiest value to read.

Store the nearest paragraph or character offset plus a small text fingerprint. Restore by finding that text, then scroll to it.

Progress bars that hide the next line

The bar is pinned over the content area.

Put it in the margin above or below the text block, at 2 to 3 px, in a muted colour.

The scrubber with no way back

Built as a plain slider.

Remember the pre-scrub position and show a "Back to" control until the reader turns a page or scrolls in the new place.

Check yourself

A reader opens your app at 23:00 and wants to know if they can finish the chapter before sleeping. Which footer helps most?

Exercise 7.1 45 minutes · on your own product

Leave and come back

  1. In your product (or a reading app you use), read or work to the middle of a long item.
  2. Close it. Change something: rotate, resize the window, change text size, open on another device.
  3. Reopen. Record: did you land on the same sentence? How long did it take to find your place?
  4. Design the fix: what you store as position, what you show on return, and what you do when two devices disagree.
You're done when: you have a test log of four changes and a one-page design of position storage and return.
BeginnerCompetentStrong
Notices the place is lost.Designs stable position storage and a return cue.Also covers device conflicts, long gaps and scrub-and-return.
8

Highlights, notes and getting them out

Taught by Readwise, Kindle and Hypothesis, with the margin notes of every serious reader

Annotation turns reading into thinking. Make the mark fast and precise, keep the note next to its text, and treat export as a core feature, because highlights are only worth something when they can leave your app.

People highlight for three reasons: to remember, to come back, and to use later (quote, cite, write). The first two happen inside your app; the third happens somewhere else, in a notes app, a document, an essay. If your highlights cannot leave, the reader eventually learns that highlighting in your app is a dead end, and stops. That is why a whole company, Readwise (founded in 2017), exists to pull highlights out of Kindle, Apple Books, Instapaper and other apps and send them into tools like Obsidian, Notion and Logseq, with a daily review email that resurfaces old highlights. Readers paid for an export layer the reading apps did not build.

The life of a highlight Select Highlight + Note Review ExportMarkdown, CSV Notes app / essayquote + note + link back Deep link back to the exact place
Most apps stop at "highlight". The value is at the right of this diagram: export with context and a link that reopens the source at that sentence.

Selection on touch is the hard part

On a desktop, selecting text with a mouse is precise. On a phone, your fingertip covers several words, so selection needs help. The established pattern: long-press selects a word, handles appear at both ends, dragging a handle shows a magnified view (a loupe on iOS) of what is under your finger, and the selection snaps to word boundaries. Good reading apps add one more step: a single tap on the highlight action creates it immediately in the last-used colour, with colour and note as secondary options. Every extra tap between "I want to keep this" and "kept" costs highlights.

Anatomy of a good touch selection HighlightNoteCopyDefine Menu above the selection, never over it. Handles snap to words; the loupe shows what your finger hides.
Highlight first, everything else second. The default action is the leftmost and widest; the colour dot uses the last colour chosen.
Lab: highlight and note

I went to the woods because I wished to live deliberately, to front only the essential facts of life, and see if I could not learn what it had to teach, and not, when I came to die, discover that I had not lived.

Our life is frittered away by detail. An honest man has hardly need to count more than his ten fingers, or in extreme cases he may add his ten toes, and lump the rest. Simplicity, simplicity, simplicity!

Time is but the stream I go a-fishing in. I drink at it; but while I drink I see the sandy bottom and detect how shallow it is. Its thin current slides away, but eternity remains.

    Select any words in the passage, type a note if you like, then press "Highlight selection" (or use the keyboard button). Notice that the note is attached to its quote, and that the export includes the source and position, so the highlight can find its way home. Text: Thoreau, Walden, 1854.

    Margin notes versus popovers

    Where does a note live after it is written? On a wide screen, the margin is best: the note sits beside its text, visible at a glance, the way a pencil note does. On a phone there is no margin, so notes become an icon or underline that opens a popover. Both are fine if the mark in the text shows that a note exists (a small icon, a different underline) and the popover never covers the highlighted text itself.

    Wide screen: margin
    Compare withRams, ch. 2
    Note visible at a glance, never covering text.
    Phone: marker and popover
    Compare withRams, ch. 2
    Dot marks the note; popover opens below, not over.

    Do

    • Make highlight a one-tap action from a selection, in the last-used colour.
    • Snap selections to word boundaries; allow extending across pages.
    • Show notes in the margin when there is room, as markers plus popovers when not.
    • Export highlights with the quote, note, source title, author, position and a deep link.
    • Offer export in open formats (Markdown, plain text, CSV) and sync to common tools.

    Don't

    • Bury highlight behind a menu of eight equal options.
    • Offer ten colours with no meaning attached; three to five is plenty.
    • Cap exports or make them a paid upsell without saying so up front.
    • Show other people's highlights by default inside the text.

    In the wild

    • Readwise and ReaderReadwise, 2017 and 2022
      Readwise imports highlights from many readers and resurfaces them in a daily review; Reader (its own reading app) puts highlighting and tagging at the centre and exports to note tools. The value of a highlight grows when it leaves the app and comes back later.
    • KindleAmazon
      Highlights and notes sync to your account and appear on Amazon's notebook page; on e-readers they are also appended to a plain text file, "My Clippings.txt". Kindle also shows "Popular Highlights" where many readers marked the same passage. A plain text file is the most durable export there is. Social highlights should be an option, not a default.
    • HypothesisHypothesis, open source
      Web annotation in a sidebar beside any page, with notes anchored to text even if the page changes slightly. Robust anchoring (quote plus surrounding text) survives edits better than offsets alone.
    For the solo creator

    Store each highlight as: quote text, a few characters of text before and after (a prefix and suffix), a position offset, the note, colour, and timestamps. That is the shape the W3C Web Annotation model uses for text quote selectors, and it lets you re-find highlights even when the text is edited. Your Markdown export is then a ten-line function, and it is the feature heavy readers will mention when they recommend you.

    Common mistakes

    Highlights stored by offset only

    Offsets are easy to compute.

    Also store quote, prefix and suffix. If the text changes, search for the quote near the old offset.

    The menu covers the selection

    Menus default to appearing at the touch point.

    Place it above the selection (or below if there is no room) and never over the selected words.

    Export as an afterthought

    It does not show in demos.

    Treat it as a first release feature. Heavy readers check for it before they commit to a reader.

    Check yourself

    A heavy reader is choosing between your reading app and a competitor. Both look and read the same. What is most likely to tip the decision?

    Exercise 8.1 40 minutes · on a reader you use

    Follow one highlight home

    1. Highlight a sentence and add a note in your main reading app, on your phone.
    2. Count taps from "I want to keep this" to "kept, with note".
    3. Now try to get it into your notes tool with the source and a link back. Count steps and note what context is lost.
    4. Design the shortest path for your own product: selection menu, default action, export format (write a sample Markdown export).
    You're done when: you have tap counts, a list of lost context, and a sample export file for your product.
    BeginnerCompetentStrong
    Notes friction.Designs a short path and a complete export.Also designs robust anchoring and a deep link that reopens the source.
    9

    Footnotes, definitions and help inside the text

    Taught by Edward Tufte (sidenotes), with Gwern Branwen, Wikipedia and Kindle X-Ray

    Any help a reader needs mid-sentence (a footnote, a definition, a translation, who a character is) should appear next to the text, be readable in a glance, and disappear without moving the reader. Never send them to another page to get it.

    The printed footnote was a clever answer to a physical problem: you cannot put the note next to the word, so you put it at the bottom of the same page, and the eye drops and returns. Endnotes, at the back of the book, were a cheaper answer that made notes much harder to read. On the web, the default became the endnote: a superscript link jumps to the bottom of the article, and a little arrow jumps back. That breaks the reading flow twice and, on long pages, lands you in a pile of notes with no sense of which is yours.

    Screens can do better, in two ways. Popover notes open in place, right where you tapped, and close without moving the page. Sidenotes, which Edward Tufte uses in his books and which Tufte CSS and Gwern.net brought to the web, sit in a wide margin beside the line they belong to, so you can read them without any action at all. Sidenotes need a wide screen; on narrow screens they must collapse into popovers or inline toggles.

    Three footnote models

    Thoreau lived at Walden Pond for two years and two months, though the book compresses it into a single year, from summer to spring.

    1. From July 1845 to September 1847.
    2. He explains the choice of a single year for the sake of convenience.
    Jump: press a number. The pane scrolls to the note list, then "back" returns. Feel the two context switches.
    Choosing a note model Is there room for amargin column? yesno Sidenotes Popovers Note longer thana screen? Jump. Jump-to-end is the fallback, not the default: keep a back link on every note, and highlight the reference you came from when you return.
    Responsive notes. The same note markup can render as a sidenote on wide screens and a popover on phones; that is how Tufte CSS and Gwern.net work.

    Definitions, translation and "who is this?"

    The same rule applies to every in-text help. Kindle's built-in dictionary opens a card at the bottom of the screen when you long-press a word, with a link to the full entry. Its Word Wise feature (2014) goes further for learners, printing short definitions in small type above harder words, with a slider for how many words get hints. X-Ray (2011) lets you see characters, places and terms in a book, with every mention, which is a memory aid for long novels with large casts. Wikipedia's Page Previews show a summary card when you hover a link, so you can decide whether to leave the article at all.

    The design principles they share: the card shows the answer in its first line; it appears near the word without covering it; one tap or Escape dismisses it; and nothing about the page moves. If the reader wants more, there is a link to go deeper, which is now a deliberate choice rather than a forced trip.

    fritteredverb wasted bit by bit on trifles Full entry ›Translate › Word staysvisible above Answer inone line
    Answer first, depth on request. The card covers the bottom of the page, never the word, and goes away with any tap on the text.

    Do

    • Show notes and definitions in place: sidenotes when there is a margin, popovers when not.
    • Put the answer in the first line of any help card.
    • Dismiss with one tap, a tap elsewhere, or Escape.
    • Keep a back link on jump-style notes and mark where the reader came from.

    Don't

    • Use tiny superscripts as the only tap target on a phone (pad them to at least 24 px).
    • Open definitions in a new screen or a browser tab.
    • Cover the word being explained.
    • Auto-show help that the reader did not ask for (except opt-in aids like Word Wise).

    In the wild

    • Tufte CSSDave Liepmann, open source
      A stylesheet that brings Tufte's sidenotes and margin notes to the web, collapsing them to tap-to-reveal on narrow screens. The responsive note is a solved problem; you can study the source.
    • Gwern.netGwern Branwen
      Long essays with sidenotes on wide screens, and recursive popups for links and footnotes on hover. Deep reading sites can make every reference inspectable without leaving the page.
    • Kindle Word Wise and X-RayAmazon, 2014 and 2011
      Optional hints above hard words, and an index of characters and terms per book. Context aids can be on by choice, with a dial for how much help you want.

    Common mistakes

    Superscripts as tap targets

    The footnote marker is styled for print.

    Give it padding so the tap area is at least 24 by 24 px, while the visible number stays small.

    Popovers that scroll the page

    Focus moves into the popover and the browser scrolls to it.

    Position the popover in view without moving the text; use preventScroll when focusing.

    Check yourself

    Your essay site has 40 footnotes per article, many of them a sentence long. Readers mostly use laptops, some phones. What should you build?

    Exercise 9.1 60 minutes · build

    Build a responsive note

    1. Take one of your own long pages (docs, blog, help) with at least three asides.
    2. Mark them up once as notes. Render them as sidenotes above a breakpoint and as popovers below it.
    3. Make every marker keyboard-focusable and every popover dismissible with Escape.
    4. Test on a phone: can you open and close a note without the page moving?
    You're done when: one page works with sidenotes on desktop and popovers on phone, keyboard included.
    BeginnerCompetentStrong
    Popovers on one device.Responsive sidenote to popover, keyboard accessible.Also adds definitions or link previews with the same rules.
    Part two recap: connect the ideas

    Which single data decision helps progress sync, bookmarks, highlights and footnote back-links all at once?

    Part three

    Reading the web, calmly

    Most reading now happens on the web and in feeds, where the text arrives wrapped in navigation, ads, and an endless supply of more. Two chapters: how reader modes and read-later apps rescued the article, and how to design a feed that ends.

    10

    Reader mode and read-later

    Taught by Arc90's Readability, Safari Reader, and Marco Arment (Instapaper)

    Reader modes exist because publishers' pages failed readers. They work by finding the article in a noisy page and re-setting it with good defaults. Read-later apps add time: save now, read when you have attention. If you publish text, your page should not need either.

    In 2009, the Arc90 lab released Readability, a bookmarklet that took a cluttered web page and showed just the article in a clean column. It spread quickly because it solved a pain everyone had. Apple built Safari Reader on top of it in 2010; Mozilla later wrote its own Readability.js for Firefox's Reader View, and now every major browser has some form of reader mode. That history is a verdict: given the choice, readers removed nearly everything publishers put around the text.

    How does a reader mode know what the article is? It scores blocks of the page. Paragraph-heavy blocks with lots of text, commas and few links score high; blocks with many links, short text, or class names like "sidebar", "comment", "ad" or "footer" score low. The highest-scoring container is taken as the article, cleaned, and re-set with the reader's preferred type. The same heuristics tell you how to write pages that reader modes, read-later apps, and assistive technology handle well: put the article in an <article> element, use real paragraphs and headings, mark the byline and date, and keep navigation out of the main content.

    How a reader mode finds the article nav · 22 links ad related · comments Score each block + long paragraphs+ commas, sentences+ <article>, <p> − many links− "sidebar", "ad"− short fragments
    Semantic HTML is reader-mode friendly HTML. The heuristics reward exactly what accessibility and SEO also reward: real articles, paragraphs and headings.
    The same article, two ways
    THE DAILYNewsOpinionTechSportVideoSubscribeSign in
    Advertisement · 728 × 90
    Why we went to the woods

    By A. Writer · 4 min read · 128 comments · Share · Save · Listen

    I went to the woods because I wished to live deliberately, to front only the essential facts of life…

    Recommended for you ›

    Our life is frittered away by detail. An honest man has hardly need to count more than his ten fingers…

    Ad
    Newsletter: sign up!
    Cookie preferences · Accept all · Manage
    Publisher page: count the things that are not the article. In this mock it is ten, and the article starts a third of the way down.

    Read-later: separating finding from reading

    Marco Arment built Instapaper in 2008 for a problem he had himself: he found long articles during the day, when he had no time to read them, and wanted to read them later on his phone during idle time like a commute. The insight is that finding and reading happen in different states of attention. Finding is fast and fragmented (a link in a chat, a tab during work). Reading needs a quiet block of time. A read-later app is a bridge between the two: one tap to save, then a calm, offline, consistently set reading surface later.

    The design of the save action matters as much as the reader. It must be instant and work everywhere: browser extension, share sheet, email forwarding, an API. Saving should confirm quietly and never ask questions (tags and folders can come later). Then the queue must not become a guilt pile. A list of 900 unread articles is a to-do list nobody can finish. Good read-later apps help you let go: archive with one swipe, sort by length so you can match an article to the time you have, and make it fine to never read something.

    Read-later is a bridge between two kinds of attention Finding (day) seconds at a time 1 tap Queue 3 min · essay 12 min · profile 25 min · long read Sort by lengthSwipe to archive Reading (evening) one calm block, offline,consistent typography
    The queue is the product's middle. Design it to be emptied and forgiven, not to grow.

    Do

    • Publish articles in semantic HTML so reader modes and read-later apps parse them perfectly.
    • Make save one tap from everywhere, with a quiet confirmation and no questions.
    • Show length (minutes) in the queue and allow sorting by it.
    • Make archiving guilt-free: one swipe, no "are you sure".
    • Offer full export (titles, URLs, highlights) in open formats.

    Don't

    • Block reader modes or truncate articles in the page source.
    • Ask for tags or folders at save time.
    • Display "847 unread" in red on the queue.
    • Lock saved articles in a format only your service can read.

    In the wild

    • Readability to Safari ReaderArc90, 2009; Apple, 2010
      A lab experiment that extracted articles became a feature in a major browser within a year. When users build or install tools to remove your design, read it as research.
    • InstapaperMarco Arment, 2008
      One-tap saving from the browser, then a clean, offline reader with a few typography settings. Separating capture from consumption is a pattern that applies to many products, not just reading.
    • Pocket and Omnivoreshut down 2025 and 2024
      Two well-used read-later services closed (Omnivore in late 2024, Mozilla's Pocket in 2025), giving users a limited window to export. A reader's saved library is years of their life. Export is not optional; it is your promise that you are not a trap.
    For the solo creator

    You can add reader-mode friendliness to your own site in an hour: one <article>, a <h1>, a byline with rel="author" or schema markup, a <time> element, real <p> tags, and navigation outside the article. Then test it in Safari Reader and Firefox Reader View. If your own reading surface already looks like reader mode, you have done the work.

    Common mistakes

    Div soup articles

    Content comes from a CMS that wraps everything in generic containers.

    Output semantic elements. Reader modes, screen readers and search engines all depend on them.

    The infinite queue

    Saving is easy and the app rewards it.

    Show a calm total in time ("about 3 hours saved"), suggest archiving items older than a few months, and never shame.

    Check yourself

    Your blog's analytics show many visitors use Safari Reader on your posts. What is the best response?

    Exercise 10.1 40 minutes · on your own site

    The reader-mode diff

    1. Open your longest page in normal view and in Safari Reader or Firefox Reader View. Screenshot both.
    2. List everything the reader mode removed. Mark each item: needed, nice, or noise.
    3. Remove or move the noise in your real page. Keep needed items but make them quieter.
    4. Check the reader view still extracts the title, byline and all paragraphs correctly.
    You're done when: you have before and after screenshots and a page that reader mode parses perfectly.
    BeginnerCompetentStrong
    Lists differences.Removes noise and fixes markup.Your normal page is now nearly as calm as reader view and keeps its identity.
    11

    Designing a calm feed

    Taught by Silvio Rizzi (Reeder), Brent Simmons (NetNewsWire), with Feedbin and Instagram's "all caught up"

    A feed can be a tool you use or a slot machine that uses you. Calm feeds are chronological, finite, under the reader's control, and free of counters that create guilt. They end, and say so.

    RSS readers are the old, honest version of the feed: you choose sources, items arrive in time order, and you read until there are no more. Social feeds took the same shape and changed three things: an algorithm chooses what you see, the list never ends, and counters and badges invite you back. Those three changes are the mechanism of compulsive use, covered in depth in Honest & Calm and The Human Mind. Here we look at the practical design of a feed for reading that respects attention.

    Two loops Badge: 214 new Scroll Variable reward More No end engagement loop New since last visit (12) Read, star, or skip You're all caught up Close the app, feel done
    A loop with an exit. The finite feed has a defined set ("since last visit"), a clear end state, and nothing pulling you past it.

    The unread count problem

    Unread counts look like neutral information. In practice, a big red number is a to-do list you did not write. If someone subscribes to 80 feeds and is away for a week, they return to "1,284 unread", and the reading app becomes a source of guilt. Many people end up declaring "RSS bankruptcy": marking everything read and starting over, or quitting. Silvio Rizzi's 2024 redesign of Reeder took a strong position: no unread counts at all, a single timeline that remembers where you stopped, and the freedom to skip. Other readers keep counts but let you hide them, or show them in muted grey without a badge on the app icon.

    The same feed, anxious and calm
    • All articles
      1,284
    • Daring Fireball
      212 unread
      212
    • The Verge
      604 unread
      604
    • Kottke
      88 unread
      88
    • Hacker News
      380 unread
      380

    Mark all as read? You will lose your place.

    Anxious: five red badges, a total in four digits, and a destructive "mark all read" as the only relief.

    Tools for a calm feed

    Beyond counts, a handful of design moves change how a feed feels. Group high-volume sources (a news site posting 80 items a day) separately from low-volume personal blogs, or the blogs disappear. Offer a "since last visit" or "today" scope as the default view, rather than all time. Let the reader mute keywords and sources for a while without unsubscribing. Show reading time per item. Make "skip" and "mark older as read" gentle and undoable. And give newsletters a home: many readers now forward newsletters into their feed reader (Feedbin offers a dedicated email address for this; Readwise Reader and others do too), taking reading out of the inbox, where every newsletter competes with work email.

    Route sources by volume Personal blogs · 1 a week Newsletters · via email address News sites · 80 a day Main timelineevery item, in time order Daily digestheadlines, once a day
    Quiet voices first. Without routing, one high-volume source buries the friends whose posts you most want to read.

    Do

    • Default to chronological order and a bounded scope (since last visit, today).
    • End the feed with a clear "all caught up" state.
    • Let readers hide counts and remove badges from the app icon.
    • Separate high-volume sources from personal ones.
    • Make skip, mute and "mark older read" gentle and undoable.

    Don't

    • Show red unread totals by default.
    • Append "suggested" items after the reader's own sources end.
    • Send push notifications for new articles by default.
    • Punish skipping (no streaks, no "you missed 40 stories").

    In the wild

    • Reeder (2024)Silvio Rizzi
      A redesign around a single timeline without unread counts, which remembers your position and lets you scroll back in time; the earlier app continued as Reeder Classic. Removing a convention everyone else keeps can be the product's main idea.
    • NetNewsWireBrent Simmons, since 2002; open source
      A free, native Mac and iOS RSS reader with a classic three-pane layout and a "Today" smart feed. The classic model, done carefully and without growth tricks, is still excellent.
    • Instagram "You're all caught up"Instagram, 2018
      A marker shown when you have seen all new posts from accounts you follow since your last visit. Even an engagement-driven product found value in telling people they were done. (It then offered suggested posts below, which shows the tension.)
    For the solo creator

    Any product with a list of new things (notifications, inbox, activity log, changelog) is a feed. Apply the same rules: bounded scope, chronological, a clear end, counts that inform without nagging. A one-person product cannot compete on engagement tricks anyway, and calm is a real reason people switch.

    Common mistakes

    Counts as decoration

    Counts are free to show and look informative.

    Ask what decision the count supports. If none, hide it or make it opt-in.

    The empty end

    The end of the list is just whitespace.

    Design the end state: say they are caught up, show when new items usually arrive, offer one calm next step (or none).

    Check yourself

    Users of your feed reader say they "dread opening it after a holiday". What change helps most?

    Exercise 11.1 45 minutes · on your own product

    Find your feeds and give them an end

    1. List every list of "new things" in your product: notifications, activity, inbox, updates.
    2. For each, write: its scope, its order, whether it has a count or badge, and what its end looks like.
    3. Redesign one: bounded scope, chronological, a designed "caught up" state, and counts that are opt-in.
    4. Sketch the end state at phone size.
    You're done when: you have an inventory table and one redesigned feed with its end state sketched.
    BeginnerCompetentStrong
    Lists feeds.Redesigns one with scope and an end.Also routes high-volume items and removes guilt counters across the product.
    Part three recap: connect the ideas

    What do reader mode, read-later and a calm feed have in common, in terms of chapter 1's three jobs?

    Part four

    Writing tools

    Writing software is reading software with a cursor, plus one terrifying responsibility: the words do not exist anywhere else yet. Four chapters: the blank page and focus, the editor model (Markdown, WYSIWYG, blocks), storage and safety, and writing across contexts and with other people.

    12

    The blank page, focus and typewriter scrolling

    Taught by Oliver Reichenstein and iA (iA Writer), with Hemingway Editor and every writer who has stared at a cursor

    A writing tool should make starting easy, keep the writer's eyes where the words are being made, and keep judgement (editing, styling, counting) out of the way until the writer asks for it. Drafting and editing are different modes; design them as different modes.

    The blank page is hard because writing is two activities at once: generating and judging. Generating needs momentum; judging kills it. Many writers' advice ("write drunk, edit sober" is a popular misattribution; the idea is older and widely shared) comes down to separating the two. Software can help or hurt. A toolbar full of fonts, styles and a live word count is an invitation to judge while generating. A calm window with one well-set typeface and nothing else is an invitation to keep going.

    iA Writer, released for iPad in 2010, made this its whole product. It opened to a blank document in one carefully tuned typeface, with no font choice at all. Its Focus Mode dimmed everything except the current sentence (later also the current paragraph), so the writer's attention stayed on the line being made. Its typewriter mode kept that line at a fixed height on screen, so the eyes never drifted to the bottom edge while typing. Those ideas have since been copied widely, which is the best evidence they work.

    Lab: focus mode and typewriter scrolling
    0 of 250 words
    Type, click around, and move the cursor with the arrow keys. In sentence focus only the sentence with the cursor stays dark. Turn typewriter scrolling off and type a few more lines: the cursor creeps toward the bottom of the window, and so do your eyes. The goal bar is deliberately small and below the page, not inside it.
    Where your eyes go while typing Normal: active line sinks to the bottom edge Typewriter: line fixed at eye height, text moves up
    Fixed eye height. The dashed line is where your gaze rests. Typewriter scrolling moves the page, not your eyes, like a real typewriter's carriage.

    Judgement on demand: syntax highlighting for prose

    Once there is a draft, the writer switches to editing, and now the software can help judge. iA Writer's Syntax Highlight (introduced with iA Writer Pro) colours parts of speech: adjectives, nouns, adverbs, verbs, conjunctions. You can switch on just adverbs, for example, and see at a glance where you leaned on "very" and "really". The Hemingway Editor highlights long sentences, passive voice and adverbs. Both share a design principle: they are off by default, or easy to switch off, because their colours are judgement, and judgement belongs to the editing pass.

    Our life is frittered away by detail. An honest man has hardly need to count more than his ten fingers, or in extreme cases he may add his ten toes, and lump the rest.

    nounsverbsadjectivesadverbs
    A drawn example of parts-of-speech colouring (hand-tagged here, in this course's colours, not iA's). Switch it on only to edit; for drafting, it is noise.
    Don't
    412 words 3
    Editing tools during drafting. Every control, count and red squiggle is a small invitation to stop generating and start judging.
    Do
    412 words · on hover
    Drafting mode. One column, focus on the current sentence, everything else available but invisible until asked.

    Do

    • Open to a ready cursor in a new or last document, never to a dialog or a template picker.
    • Offer focus (sentence or paragraph) and typewriter scrolling as toggles with keyboard shortcuts.
    • Keep editing aids (style checks, highlighting, counts) off or quiet while drafting.
    • Pick one excellent default writing face at the right size; make font choice optional.

    Don't

    • Underline every possible grammar issue while the writer is mid-sentence.
    • Show a big live word count beside the text.
    • Ask for a title or a file name before the first word.
    • Make distraction-free mode hide the save status; writers need to know their words are safe.

    In the wild

    • iA WriteriA, 2010 to now
      Focus Mode, typewriter scrolling, Syntax Highlight and Style Check, all switchable, around a single tuned typeface. Each feature serves either drafting or editing, and the two never fight.
    • Hemingway Editor2013 to now
      Paste or write text and it colours hard-to-read sentences, adverbs and passive voice, with a readability grade. An editing tool, explicitly: it is most useful after the draft exists.
    • Ulysses and ScrivenerThe Soulmen; Literature & Latte
      Both offer distraction-free and typewriter modes inside larger writing environments. Even complex tools need a "just the text" state.
    For the solo creator

    Your product probably has small writing surfaces: a notes field, a comment box, a description editor. Apply the same ideas at small scale: an autofocused field, generous height, a calm font size of at least 16 px, no toolbar until text is selected, and visible save state. And when you write your own docs and changelog, draft in a focus mode and edit separately. You are the writer too.

    Common mistakes

    Focus mode that hides the save state

    "Distraction-free" is interpreted as "remove everything".

    Keep one tiny, quiet sign that work is saved, or show it on any mouse movement.

    Typewriter scrolling that jumps

    Scroll is snapped instantly on every keystroke.

    Move the page only when the line changes, with a short ease (under 150 ms) or none for reduced motion.

    Spell-check as a siren

    Platform spell-check is enabled with default red squiggles.

    Keep spell-check but let writers hide marks while drafting, and use a muted underline colour.

    Check yourself

    A writer says your editor "makes them second-guess every sentence". What is the most likely cause?

    Exercise 12.1 45 minutes · writing practice + design

    Draft, then edit, in two modes

    1. Write a 300-word changelog or help article for your product in a focus mode (iA Writer, or any editor with focus and typewriter modes) with all checks off. Do not delete anything while drafting.
    2. Then switch on a style aid (Syntax Highlight for adverbs, or Hemingway) and edit.
    3. Note what each mode made easier.
    4. Apply one lesson to a text field in your own product (autofocus, height, no toolbar until selection, quiet save state).
    You're done when: you have a draft, an edited version, notes on the two modes, and one improved text field shipped.
    BeginnerCompetentStrong
    Writes in a focus mode.Separates drafting and editing and notes the difference.Also improves a writing surface in their product with clear reasoning.
    13

    Markdown, WYSIWYG and blocks

    Taught by John Gruber (Markdown), with Bear, Typora, Notion and Google Docs

    Every editor makes a trade between seeing structure and seeing the result. Markdown shows structure as plain characters, WYSIWYG shows the result and hides structure, and block editors make structure into objects. Choose by who writes, what they produce, and where the text must go next.

    John Gruber, with Aaron Swartz, released Markdown in 2004 as a way to write for the web in plain text that was readable as-is: *emphasis*, # heading, - list. Its genius is that the source is the document. Any text editor can open it in 50 years. Its cost is that you see the markup while writing, and newcomers do not know the syntax.

    WYSIWYG ("what you see is what you get") editors, from word processors to Google Docs, hide the structure and show formatted text. They are easy to learn, but the structure is hidden in a format you cannot see, and it goes wrong in invisible ways: a heading that is really bold body text, a list that is really indented paragraphs, formatting that will not paste cleanly elsewhere.

    Between them, hybrid editors (Bear, iA Writer's preview styles, Typora, Obsidian's live preview) keep Markdown as the source but style it as you type, often fading the markup characters. Block editors (Notion, and many tools since) turn each paragraph, heading, image or to-do into a separate object you can drag, convert and embed. Blocks are powerful for structured pages and databases; they make long flowing prose feel chopped, because selection, cursor movement and copy-paste work across block boundaries less naturally than across one continuous text.

    One paragraph, four editor models
    ## Simplicity Our life is frittered away by *detail*. Thoreau's advice: - let your affairs be as two or three - keep your accounts on your **thumb-nail**
    Markdown: the source is the document. Portable forever, readable as-is, but you see every mark.
    The editor spectrum see structuresee result / objects Plain Markdown Hybrid WYSIWYG Blocks any text editor,iA Writer (source) Bear, Typora,Obsidian live preview Google Docs, Word,Pages Notion andsimilar tools Portable, durable, preciseEasy to learn, rearrange, embed Syntax to learnHidden structure, lock-in, choppy prose
    The middle is popular for a reason. Hybrids keep the durable source and give most of the visual feedback. Product placement is approximate; many apps offer more than one mode.
    If your writers…Lean towardWatch out for
    Write long prose, care about filesMarkdown or hybridTeach syntax gently: auto-format shortcuts, a cheat sheet one key away.
    Are non-technical, write short docsWYSIWYGPaste from other apps; hidden formatting debris; real headings vs bold text.
    Build structured pages, wikis, plansBlocksCross-block selection, long-form flow, export fidelity.
    Publish to many placesMarkdown source + good exportEvery target (HTML, DOCX, PDF, ePub) needs testing.

    Do

    • Support Markdown shortcuts even in a visual editor (typing "# " makes a heading).
    • Make structure visible on demand (show markup, outline view).
    • Paste as clean text by default, with an option to keep formatting.
    • Keep selection and cursor movement continuous across paragraphs, even in block editors.

    Don't

    • Invent your own markup dialect unless you must; every extension reduces portability.
    • Let bold text masquerade as headings (export and accessibility break).
    • Hide all structure with no way to inspect it.
    • Force block handles and slash menus on writers who only want prose.

    In the wild

    • BearShiny Frog, 2016; Bear 2 in 2023
      A hybrid Markdown editor with tags written inline as #tag, and markup styled as you type. Hybrid editing lets beginners and Markdown users share one surface.
    • NotionNotion Labs
      Popularised the block editor with "/" commands, where any block can become another type or a database. Blocks shine for structured, mixed-media pages; prose writers often draft elsewhere.
    • Google DocsGoogle, 2006 to now
      WYSIWYG with real-time collaboration, which later added Markdown auto-formatting shortcuts as an option. Even mainstream visual editors borrow Markdown's speed.

    Common mistakes

    Choosing the editor model by what is trendy

    Block editors feel modern.

    Choose by user, output and portability. A journaling app with blocks feels like filling a form.

    Lossy round-trips

    The editor stores rich JSON but exports Markdown imperfectly.

    Write round-trip tests: import, export, re-import, compare. Fix every loss you can; document the rest.

    Check yourself

    You are building a journaling app for people who want their entries to outlast your company. Which editor model fits best?

    Exercise 13.1 45 minutes · comparison

    Write the same page four ways

    1. Write the same 200-word note with a heading, a list, a link and bold text in: a plain text editor (Markdown), a hybrid (Bear, Obsidian or Typora), Google Docs, and Notion.
    2. Then copy each into an email and into a plain text file.
    3. Record: speed of writing, what was confusing, what survived the copy.
    4. Decide which model your product's main text field should use and why.
    You're done when: you have a four-column comparison and a one-paragraph decision for your product.
    BeginnerCompetentStrong
    Tries the editors.Compares speed, clarity and portability.Also defines import, export and paste rules for their own editor.
    14

    Files, libraries, autosave, versions and export

    Taught by iA Writer and Obsidian (files), Ulysses and Bear (libraries), with Ink & Switch's local-first essay

    The first feature of a writing tool is that the words are safe. Decide where text lives (files the writer owns, or a library you manage), save continuously without asking, keep a history the writer can browse, and make leaving easy. Trust is the product.

    Writers remember lost work for years. One lost paragraph changes how a person uses a tool forever: they start copying text to a second app "just in case", which is the opposite of calm. So safety is not a technical detail under the design; it is the design.

    Where does the text live?

    There are three broad models. In the file model (iA Writer, Obsidian, most code editors), each document is a plain file in a folder the writer chooses: they can open it in any other app, back it up with any tool, sync it with any service. The app is a lens on their files. In the library model (Ulysses, Bear, Apple Notes), the app manages storage itself, often a database or package, and offers organisation, search and sync that feel seamless; the cost is that text is less directly accessible, so export becomes essential. In the cloud model (Google Docs, Notion), documents live on a server, which makes collaboration and access from anywhere easy, but the writer depends on the service and the network.

    Three places text can live .md .md Files you own iA Writer, Obsidian + any app, any backup+ outlives the app − sync conflicts, rich features are harder app library Library the app manages Ulysses, Bear, Apple Notes + seamless sync, search+ rich features easy − needs great export− tied to the app Cloud documents Google Docs, Notion + collaboration+ any device, browser − offline, outages, service shutdown
    No model is free. The question is which risks your writers accept, and what you do to reduce the others (export for libraries, offline for cloud, conflict handling for files).

    The "local-first software" essay published by the research lab Ink & Switch in 2019 argued for a fourth path that combines them: data lives on the user's device first (fast, offline, owned), and syncs and collaborates through the cloud, often using data structures called CRDTs that merge concurrent edits without conflicts. For a solo creator, open-source libraries such as Automerge and Yjs make this far more practical than it used to be.

    Autosave: never ask

    "Do you want to save changes?" is a question the software should answer itself. Since Mac OS X Lion (2011), Apple's document model saves automatically and keeps versions; Google Docs saved continuously from the start. The design pattern: save after every pause (a second or two after typing stops) and on every blur or quit; show a quiet, truthful status ("Saved", "Saving…", "Offline, saved on this device"); and never show "Saved" when it is not true. If saving fails, that is the one time to be loud.

    Don't
    Save changes to "Draft 3"?

    Your changes will be lost if you don't save them.

    Don't SaveCancelSave
    A trap with three doors. The writer must remember a decision the software could make, and one wrong click destroys work.
    Do
    Draft 3Saved · just now

    Our life is frittered away by detail. An honest man has hardly need to count more than his ten fingers…

    Version history · 14 versions today
    Quiet, truthful status. Saving is continuous; closing is always safe; going back is a browsable history, not a dialog.

    Versions the writer can understand

    Autosave creates a new problem: the writer may want yesterday's paragraph back. A good version history is a timeline, browsable by time, with the ability to see a past version side by side, copy a paragraph out of it, or restore it as a new version (never destroying the current one). Automatic snapshots should be thinned over time (every few minutes today, hourly this week, daily after that), and writers should be able to name a version ("Sent to editor"), so the important moments stand out from the noise.

    A version history that stays useful First draft Sent to editor Last month: dailyThis week: hourlyToday: every few min Now Restore always creates a new version. Nothing is ever overwritten.
    Dense near now, sparse in the past, named where it matters. This is the shape that makes history browsable instead of a wall of identical timestamps.

    Export is a promise

    For a library or cloud tool, export is how you prove you are not a trap. Offer full export of everything (not just one document at a time) in open formats: Markdown or plain text for content, with folders or tags preserved somehow, plus attachments. Offer publication formats (PDF, DOCX, HTML, ePub) for finished work. Ulysses, for example, is a library app whose export to many formats is a central feature. The read-later shutdowns in chapter 10 are the reminder: when a service ends, export is the difference between a nuisance and a loss.

    Do

    • Save continuously after each pause and on blur, quit and backgrounding.
    • Show a truthful status, and be loud only when saving fails.
    • Keep browsable, thinned versions with optional names; restore as a new version.
    • Offer full export in open formats, including attachments and structure.
    • Work offline and sync later, with clear conflict handling.

    Don't

    • Ask "Save changes?" on close.
    • Show "Saved" before the write is confirmed.
    • Silently resolve sync conflicts by discarding one side.
    • Make export per-document only, or paywall it.

    In the wild

    • Obsidian2020 to now
      Notes are plain Markdown files in a local folder (a "vault"); the app adds links, search and plugins on top, and paid sync is optional. Files-first can still feel like a rich app; ownership becomes a selling point.
    • UlyssesThe Soulmen
      Keeps texts in its own library with iCloud sync, and can also add external folders of Markdown files; export to PDF, DOCX, ePub and HTML is central. A library model with strong export and an escape hatch earns trust.
    • Google Docs version historyGoogle
      Continuous saving, a version timeline grouped by time, named versions, and restore. Collaboration made history essential; even solo writers benefit.
    For the solo creator

    Save to local storage first (IndexedDB in a web app, the file system or a local database on native), then sync. That gives instant saving, offline work and a backup when your server is down. Write an automated test that types, kills the app mid-save, and reopens. Build "export everything" in your first month, as a zip of Markdown files plus a JSON file of metadata. It is a weekend of work that answers the question every careful user asks before committing.

    Common mistakes

    Last-write-wins sync

    It is the simplest server logic.

    Detect conflicts. Keep both versions and let the writer merge, or use a CRDT library that merges automatically.

    Saving only on a timer

    "Every 30 seconds" sounds safe.

    Also save on pause, blur, backgrounding and quit. Mobile operating systems kill apps without warning.

    History you cannot read

    Versions are stored but shown as a list of identical timestamps.

    Group by time, show a preview or diff, allow names, thin old snapshots.

    Check yourself

    A writer edits the same note on a laptop (offline on a plane) and a phone. Both sync when the plane lands. What should your app do?

    Exercise 14.1 60 minutes · on your own product

    Try to lose your own words

    1. In any text field in your product, type a paragraph and then: close the tab, kill the app, go offline, edit on two devices, and pull the network mid-save.
    2. Record whether anything was lost, and what the status showed at each moment.
    3. Write down where each piece of user text lives, and how a user could export all of it today.
    4. Fix the worst loss first; add "export everything" to your roadmap with a date.
    You're done when: you have a loss-test log, a storage map, and either a fix or a dated plan for each failure.
    BeginnerCompetentStrong
    Tests close and reopen.Tests offline, kill and two devices; fixes losses.Also ships truthful status, versions and full export.
    15

    Capture, desk and other people

    Taught by Drafts (Greg Pierce), Scrivener, Ulysses, with Google Docs for collaboration

    Writing happens in different places with different needs: a phone in a queue (capture), a desk with an hour (compose), and sometimes a shared document (collaborate). Design for the context: fast and forgiving for capture, deep and structured for composing, clear about who changed what for collaboration.

    A thought that arrives in a queue has a life of about ten seconds. If your app needs five taps (open, pick a folder, new note, name it, type), the thought is gone. Drafts, by Agile Tortoise, is built on this observation: it opens to a blank text field with the keyboard up, every time, and decides where the text goes later through "actions" (send to email, append to a file, post somewhere). Apple Notes added quick notes from the lock screen and corner gestures for the same reason. Capture tools optimise for one metric: time from intent to typing.

    The desk is the opposite. A novelist with a 90,000-word manuscript needs structure: chapters and scenes as separate pieces that can be reordered, research beside the draft, targets and progress. Scrivener's binder and corkboard are built for that; Ulysses' sheets and groups and its writing goals are a lighter version. Here the metric is how well the tool holds a big, changing structure.

    One idea, three contexts Captureunder 2 s to typingno decisions Inboxsort later, in batches Deskstructure, research,targets, focus Publish Outexport, share
    Different contexts, different tools, or different modes of one tool. The joins (capture to inbox, inbox to desk, desk to out) are where most writing apps lose people.

    Counts, goals and the danger of the number

    Word counts help writers who work to length (articles, essays, books) and to habit (500 words a day). They hurt when they become the point. The design answer is to make counts available, scoped and quiet: a count for the selection, the document and the session; a goal the writer sets themselves; progress shown as a small ring or bar that fills, not a number that flickers with every keystroke. Ulysses shows goals as a small circle that fills as you write; Scrivener has project and session targets. Neither puts a giant counter in the text area.

    Showing a goal without nagging 247/ 500 words loud, flickers per key quiet ring, number on hover done, calmly
    Peripheral, not central. A ring can be read from the corner of the eye; a number demands to be read.

    Writing with other people: the basics

    Collaboration adds three needs to a writing tool. Presence: who else is here, and where (named cursors and selections). Attribution: who changed what, and when (history per author). And negotiation: proposing a change without imposing it. Google Docs set the expectations: live cursors, comments anchored to text, and "suggesting" mode, where edits appear as proposals the owner accepts or rejects. Comments and suggestions are different tools. A comment discusses; a suggestion changes. Making that difference visible saves a lot of confusion.

    Comment

    Our life is frittered away by detail.

    Asha · Is "frittered" too old-fashioned for our readers?
    Discusses, changes nothing. Anchored to a range; resolved when the question is answered.
    Suggestion

    Our life is frittered wasted away by detail.

    Ashasuggested a changeAcceptReject
    Proposes a change. Visible as deletion and insertion, owned by its author, decided by the writer.

    Do

    • Make capture open to a ready cursor in under two seconds, with no required choices.
    • Provide an inbox and batch sorting for captured text.
    • Scope counts (selection, document, session) and show goals as quiet progress.
    • Keep comments and suggestions visually distinct; attribute every change.

    Don't

    • Ask for a folder, title or tag before the first word on mobile.
    • Put a large live word count in the writing area.
    • Let collaborators' cursors and avatars cover the text being written.
    • Notify every collaborator on every keystroke-level change.

    In the wild

    • DraftsAgile Tortoise
      Opens to a new blank draft with the keyboard ready; text is sent onward with configurable actions. "Where does it go?" is answered after writing, not before.
    • ScrivenerLiterature & Latte, 2007
      A binder of documents and folders, a corkboard of index cards, research inside the project, and "compile" to produce the final format. Long works need structure tools that prose-only editors do not have.
    • Google Docs suggesting modeGoogle
      Edits become proposals with author names, accepted or rejected individually. Separating "propose" from "change" lets people edit each other without fear.
    For the solo creator

    Do not build real-time collaboration until people beg for it; it is one of the hardest features in software. Start with what one person needs across contexts: fast capture on mobile, a calm desk mode, and sharing a read-only link or exporting for others to comment on elsewhere. If you do build it later, use a proven CRDT library rather than inventing your own merge logic.

    Common mistakes

    One interface for every context

    The desktop editor is shrunk onto the phone.

    Design the mobile surface for capture and light editing first; keep deep structure tools for larger screens.

    Goals that punish

    Streaks and red "missed" days seem motivating.

    Let writers set and pause goals, celebrate quietly, and never shame a missed day.

    Check yourself

    Your notes app's mobile version opens to a list of folders. Users say they "never manage to capture ideas" with it. What is the single best change?

    Exercise 15.1 30 minutes · stopwatch test

    Time to first word

    1. With a stopwatch, measure from phone in pocket to first typed character in three apps: your product (if it has text input), Apple Notes or Google Keep, and Drafts or a similar capture app.
    2. Count taps and decisions on the way.
    3. Redesign your product's path to under two seconds or under two taps, whichever is achievable.
    4. Write how captured text gets sorted later, and when.
    You're done when: you have three timings, tap counts, and a redesigned capture path with an inbox plan.
    BeginnerCompetentStrong
    Measures one app.Compares three and redesigns capture.Also designs the inbox-to-desk step and tests the new path on a real device.

    Checklist: writing tool audit

    Start and focus
    Safety
    Leaving
    Part four recap: connect the ideas

    Which principle from the reading chapters reappears most strongly in writing tools?

    Part five

    Every reader, every device

    Reading is not only looking. Some people listen, some need different spacing, some read on a six-inch e-ink screen in the sun, others at a 27-inch monitor with three sources open. Two chapters: accessible reading (including the claims you will hear that do not hold up), and designing across devices.

    16

    Listening, dyslexia and claims versus evidence

    Taught by Microsoft Immersive Reader, Kindle Immersion Reading, and reading research (Zorzi, Rello, Wery & Diliberto)

    Reading tools should let people take in text the way that works for them: by eye, by ear, or both together, with spacing and type they can adjust. Base these features on evidence, not on marketing claims, because some popular "reading hacks" do not work.

    Accessibility for reading starts with the basics you already have from Part one: real text (never text in images), adjustable size, good contrast, themes, and support for the platform's screen reader and text size. Accessible & Inclusive covers the general principles. Here we go into what is specific to long reading.

    Listening and read-along

    Text-to-speech used to sound robotic; modern system voices are good enough for hours of listening, and many people now "read" articles while walking or cooking. Two design patterns matter. First, listening needs its own controls: play and pause, speed (people often listen at 1.2 to 2 times normal), skip by sentence or paragraph, and a sleep timer. Second, read-along, where the spoken word or sentence is highlighted as it is read, helps learners, people with dyslexia, and anyone following a hard text. Microsoft's Immersive Reader (launched in OneNote's Learning Tools in 2016 and now in Edge, Word and other apps) combines read-aloud with highlighting, line focus, text spacing and syllable splitting. Kindle's Immersion Reading pairs an e-book with its Audible narration and highlights the text as it plays. The EPUB 3 standard supports this through "media overlays".

    Lab: read-along highlighting (visual only, no audio)

    Time is but the stream I go a-fishing in. I drink at it; but while I drink I see the sandy bottom and detect how shallow it is. Its thin current slides away, but eternity remains.

    Play it at 180, then at 320 words per minute. Word highlighting at high speed becomes a flicker that pulls the eye; sentence highlighting stays calm. That is why many read-along tools highlight the sentence and underline the word, and why speed must be the listener's choice. "Step" moves one word at a time (and is the only mode if you prefer reduced motion).

    Dyslexia: what helps and what is claimed

    Dyslexia is a difference in how people process written language, and it is common: estimates vary with definitions, but a figure of around one person in ten is often cited. Several typefaces have been marketed as "dyslexia fonts", such as Dyslexie and OpenDyslexic, with weighted bottoms and distinct letter shapes. Controlled studies have not found that they help. Rello and Baeza-Yates (2013) found that font type affected reading for people with dyslexia, with sans-serif, monospaced and roman (upright) styles doing better than italic ones, but OpenDyslexic gave no advantage. Wery and Diliberto (2017) found no improvement in reading rate or accuracy with OpenDyslexic for students with dyslexia, and Kuster and colleagues (2018) found the same for Dyslexie compared with Arial.

    What has stronger evidence is spacing. Zorzi and colleagues (PNAS, 2012) found that extra-large letter spacing improved reading speed and accuracy for children with dyslexia, likely by reducing crowding (letters interfering with recognition of their neighbours). Larger text, more line spacing, shorter lines, left-aligned text (no justified rivers), and avoiding italics and underlining for emphasis are all consistent with guidance such as the British Dyslexia Association's style guide. Many readers with dyslexia do say they prefer a specific font, and preference matters for comfort, so it is fine to offer one as an option. Just do not claim it treats anything.

    Default spacing

    Our life is frittered away by detail. An honest man has hardly need to count more than his ten fingers, or in extreme cases he may add his ten toes, and lump the rest.

    Normal letter and word spacing, line height 1.25. Letters crowd each other.
    Extra spacing option

    Our life is frittered away by detail. An honest man has hardly need to count more than his ten fingers, or in extreme cases he may add his ten toes, and lump the rest.

    Letter spacing +0.12 em, word spacing +0.16 em, line height 1.9. Less crowding: the change with the strongest evidence behind it.

    "Bionic" reading and other speed claims

    In 2022, "Bionic Reading" spread widely: bold the first few letters of each word, the claim goes, and the eye reads faster because the brain completes the rest. It is an appealing idea and a striking visual. But informal tests at the time, including one widely shared by Readwise, found no speed benefit, and the small number of studies since have not found reliable gains in speed or comprehension either. Speed-reading techniques like rapid serial visual presentation (one word flashed at a time) can push speed up, but research reviews have found that comprehension drops as speed rises; you cannot skip the work of understanding. Offer such modes if users ask, label them honestly, and never make them the default.

    Feature or claimEvidence (summary)Design decision
    Adjustable text sizeEssential for low vision and age-related changes.Always. Follow system size; allow very large.
    Extra letter/word/line spacingHelped children with dyslexia in controlled studies (Zorzi et al. 2012).Offer a spacing option or slider.
    Dyslexia-specific fontsNo reading benefit found in controlled studies; some readers prefer them.Optional font, no claims.
    Read-aloud with highlightingWidely used in education and accessibility tools; helps many readers follow text.Offer, with speed control and sentence highlighting.
    Bionic-style boldingNo reliable gain in speed or comprehension found.Do not promote; optional at most.
    RSVP speed readingSpeed rises, comprehension falls.Not a default; label honestly.
    Line focus (reading ruler)
    Narrowing the window. Immersive Reader's line focus shows one, three or five lines. It is the reading cousin of the writing focus mode in chapter 12.

    Do

    • Support system screen readers, text size and contrast settings fully.
    • Offer read-aloud with speed, skip and sentence-level highlighting.
    • Offer a spacing option (letter, word, line) and a line focus mode.
    • Offer an alternative font if readers ask, labelled as a preference.

    Don't

    • Claim a font "treats" or "fixes" dyslexia.
    • Market bolding or flashing words as a proven speed boost.
    • Put text in images or canvases that screen readers cannot read.
    • Use italics or underline as the main emphasis in long text.

    In the wild

    • Microsoft Immersive ReaderMicrosoft, 2016 to now
      Read aloud with highlighting, text spacing, line focus, syllables and parts of speech, across Edge, Word, OneNote and Teams. A bundle of evidence-friendly aids, all optional, all on the same text.
    • Kindle Immersion ReadingAmazon and Audible
      Plays the Audible narration while highlighting the e-book text, and keeps your place in both. Listening and reading can share one position.
    • Kindle font optionsAmazon
      Kindle offers OpenDyslexic among its reading fonts, alongside its standard book faces. Offering it as a choice, without health claims, respects preference and evidence together.
    For the solo creator

    The Web Speech API (speechSynthesis) and the platform speech APIs on iOS and Android give you read-aloud with word boundary events for free. A basic "Listen" button with speed control and sentence highlighting is a few days of work. Test it with VoiceOver and TalkBack on, too, so the two do not fight.

    Common mistakes

    Accessibility as a special mode

    Accessibility features are grouped in a hidden screen.

    Put spacing, size and listen in the normal reader settings. Many people without a diagnosis benefit.

    Copying a claim from a press release

    A feature sounds scientific.

    Search for a controlled study before writing any benefit into your marketing.

    Check yourself

    A user asks you to add a "dyslexia font" to your reading app. What is the best response?

    Exercise 16.1 45 minutes · on your own product

    Read your product with your ears

    1. Turn on VoiceOver or TalkBack and have your product's main text read to you. Note anything skipped, repeated or read in the wrong order.
    2. Use your OS's speak-screen feature on a long text at 1.5 times speed. Is the text structured so listening makes sense (headings, lists, alt text)?
    3. Add a spacing option to your reading CSS (letter, word, line) and test it at the extremes.
    4. Write one honest sentence describing each accessibility aid for your help page.
    You're done when: you have a list of screen reader issues fixed or planned, a spacing option, and honest descriptions.
    BeginnerCompetentStrong
    Tries a screen reader.Fixes structure issues and adds spacing.Also adds read-aloud with sentence highlighting and documents aids without overclaiming.
    17

    Phone, tablet, e-ink and desktop

    Taught by the devices themselves, with Craig Mod's writing on books and screens

    The same text is a different reading experience on each device, because distance, size, input, light and session length all change. Design one model of the text and a different reading surface for each device class.

    A phone is read at around 30 cm, in one hand, in short sessions, often at night, with a thumb. A tablet is held further, often in landscape, in longer sessions, sometimes with a stylus. An e-ink reader is a single-purpose object read for hours, in sunlight and in bed, with page buttons or taps and no motion. A desktop is read at 50 to 70 cm, with a keyboard and mouse, often alongside other windows, for research and writing more than for novels. Each changes the right measure, the right controls and the right defaults.

    Four reading surfaces Phone~30 cm · 30–45 charsthumb, short, night E-reader~30–35 cm · 40–55 charshours, sun, no motion Tablet (landscape)~35–40 cm · two pageslonger, stylus notes notes Desktop~50–70 cm · 60–75 charsresearch, side by side
    Not to exact scale. Distances and measures are typical ranges, not rules. The tablet earns a two-page spread in landscape; the desktop earns a margin for notes and sidenotes.
    DeviceTypical sessionInputDesign priorities
    PhoneMinutes, in gaps; also long sessions in bedThumb taps and swipes, one handReachable controls at the bottom, chrome hidden, dark theme, larger text default, popovers over sidenotes.
    E-ink readerHoursTaps, page buttonsNo motion, high contrast, big targets, page-turn reliability, refresh control, warm light.
    TabletLong, relaxed; study with a stylusTouch, stylus, sometimes keyboardTwo-page spread in landscape, margin notes, handwriting annotation, split view with notes.
    DesktopResearch and writing, many windowsKeyboard, mouse, trackpadCapped measure, sidenotes, keyboard shortcuts (space to page, J/K), side-by-side reading and writing.

    Same text, different surfaces

    Keep one model of the text (content, positions, highlights, notes) and render a different surface per device. On the phone, the margin collapses, so notes become markers and popovers; on the desktop the same notes become sidenotes. On the tablet in landscape, two pages side by side give a book-like spread and a better measure than one stretched column. On e-ink, the same reader drops every transition. Readers who move between devices should find their place, highlights and preferences waiting, but with text size and theme remembered per device (chapter 5).

    Don't
    Phone layout stretched. Over 100 characters per line in landscape.
    Do
    A spread. Two comfortable columns, like an open book.

    Do

    • Define device classes and give each its own reading defaults.
    • Use a two-page spread for paginated text on landscape tablets and wide windows.
    • Put phone reading controls within thumb reach, at the bottom.
    • Add keyboard shortcuts on desktop: space and shift-space to page, arrows, a key for highlight.

    Don't

    • Stretch a phone layout onto a tablet or a desktop.
    • Sync text size blindly across devices.
    • Ship the phone's animations to an e-ink build.
    • Rely on hover for anything a touch reader also needs.

    In the wild

    • Apple Books on iPadApple
      Shows two pages side by side in landscape for reflowable books, one page in portrait. Orientation changes the right layout, not just the size.
    • Kindle Scribe and reMarkableAmazon, 2022; reMarkable
      E-ink devices with a stylus, built for reading and handwritten notes. On large e-ink, annotation becomes handwriting, and the margin becomes a real place again.
    • Readwise ReaderReadwise
      The same library across web, desktop and mobile, with keyboard-driven reading and highlighting on desktop. Desktop reading is a power-user surface; keyboard shortcuts are the calm path there.
    For the solo creator

    You probably cannot build native apps for every device. A well-made responsive web reader covers phones, tablets and desktops; add a manual "e-ink" theme (no motion, high contrast) for Boox and similar Android e-ink devices that run browsers. Test on one real device per class, not just resized browser windows; distance and hands change everything.

    Common mistakes

    Testing only in a resized browser

    It is fast.

    Read a full chapter on a real phone in bed and a real tablet on a sofa. Note what tires you.

    Hover-only affordances

    Designed on a laptop.

    Every hover reveal needs a tap or focus equivalent.

    Check yourself

    Your web reader looks great on phones. On a landscape iPad, reviewers call it "hard to read". The likely fix?

    Exercise 17.1 60 minutes · four devices

    One chapter, four devices

    1. Read the same 2,000-word text in your product (or in a reader you use) on a phone, a tablet, a computer, and an e-ink device if you have one.
    2. For each, note measure, controls you used, and when you felt tired.
    3. Write a defaults table per device class for your product.
    4. Fix the worst device first.
    You're done when: you have notes from at least three devices, a defaults table, and one fix shipped.
    BeginnerCompetentStrong
    Tries two devices.Writes per-device defaults and fixes one.Also adapts annotation, notes and controls per device while sharing one model.

    Checklist: reading surface audit

    The surface
    Controls and light
    Navigation and marks
    Everyone
    Part five recap: connect the ideas

    Which design decision best supports both accessibility (chapter 16) and multiple devices (chapter 17)?

    Wrap-up

    You have now seen reading and writing software from the line up: the length of a line, the light behind it, the way through a long text, the marks you leave, the feeds that bring text to you, and the tools that make new text safely. One idea ran through all of it: these products succeed when the person forgets about them and stays with the words.

    Ten things to remember

    1. In reading and writing tools, attention is the product. Measure success by what the person did not have to notice.
    2. Sort every feature into get in, stay in, get back. "Stay in" is where doing less is the work.
    3. Pages for long linear reading, scroll for articles and reference. If you offer both, finish both, and store position as a text anchor.
    4. Measure 45 to 75 characters (capped in em), line height around 1.5 for long text, real margins, ragged right unless you can hyphenate.
    5. Choose book faces for stamina: large x-height, open apertures, sturdy serifs, moderate contrast.
    6. Defaults are your design. Layer controls: size and theme first, typography second, expert settings behind a door, all previewed live.
    7. Themes are about light: light by day, softened dark at night, low brightness before sleep, and no motion or greys on e-ink.
    8. Progress answers a decision ("can I finish this chapter?"), so make it chapter-scoped, personal and stable, with safe jumps and asked-for syncs.
    9. Highlights are worth what they are worth outside your app: one-tap marking, notes beside text, export with a link home. Notes and definitions open in place.
    10. For writing: start in under two seconds, separate drafting from editing, save continuously and truthfully, keep readable versions, and make leaving easy.

    Self-assessment: I can…

    Practice assignment for the next two weeks

    About 30 minutes a day. The goal is one reading surface and one writing surface in your own product (or a small side project) that you would be proud to use for an hour.

    1. Days 1 to 2: audit. Run the reading surface audit and the writing tool audit checklists on your product. Do the interruption log (Exercise 1.1) on your own app.
    2. Days 3 to 4: the text block. Fix measure, leading, margins and alignment (Exercise 3.1). Run the three-page stamina test for your reading face (Exercise 4.1).
    3. Days 5 to 6: settings and themes. Build reader settings as CSS variables with layered controls and per-device defaults; add sepia and a softened dark theme; test in four lights.
    4. Days 7 to 8: place. Store position as a text anchor; add a "where was I" cue and a safe "back to" after jumps. Run the leave-and-come-back test.
    5. Days 9 to 10: marks and notes. Add one-tap highlights (or improve yours), a Markdown export, and responsive footnotes on one long page.
    6. Days 11 to 12: writing. Make one text field calm: autofocus, focus-friendly, continuous save with truthful status. Run the "try to lose your words" test.
    7. Days 13 to 14: everyone. Add a spacing option and test with a screen reader. Then read a full chapter on three devices and write down what you changed and what you learned.

    Reading list

    • The Elements of Typographic Style
      Robert Bringhurst, 1992 and later editions · the classic on measure, leading, page proportion and the text block. Read the chapters on rhythm and proportion and on shaping the page.
    • Practical Typography
      Matthew Butterick, free online · the most usable modern rules for body text, line length and spacing, with clear reasoning.
    • "Web Design is 95% Typography"
      Oliver Reichenstein, iA, 2006 · the short essay behind the idea that the reading surface is the design. Then browse iA's blog on focus mode and syntax highlighting.
    • Proust and the Squid, and Reader, Come Home
      Maryanne Wolf, 2007 and 2018 · how the reading brain works, and what screens do to deep reading. The mechanism behind chapter 1.
    • Words Onscreen: The Fate of Reading in a Digital World
      Naomi S. Baron, 2015 · research on how people read on screens versus paper, and why long-form reading needs care.
    • "Books in the Age of the iPad"
      Craig Mod, 2010 · an essay on which books belong on screens and what digital books should do differently. Still sharp.
    • "Sidenotes in Web Design"
      Gwern Branwen, gwern.net · a survey of sidenote and footnote implementations on the web, with trade-offs. Pair it with the Tufte CSS source.
    • "Local-first software: you own your data, in spite of the cloud"
      Ink & Switch (Kleppmann, Wiggins, van Hardenberg, McGranaghan), 2019 · the case for storage that is fast, offline, owned and collaborative. Essential before chapter 14 decisions.
    • Calm Technology
      Amber Case, 2015 · principles for technology that informs without demanding attention. The foundation for chapter 11's calm feed.
    • "Does Bionic Reading actually work?"
      Readwise blog, 2022 · a public test of a popular reading claim, timing more than 2,000 readers. A model of checking a claim before shipping it.

    Next: Motion & Feel, which explains why the page turn and the typewriter scroll in this guide are timed the way they are. For product teardowns of Kindle, Kobo, Apple Books, Instapaper and Readwise Reader, see Breakdowns: Reading.