№ 01 · In progress · may 2026 — ongoing

Stretchtext

In 1967 Ted Nelson sketched stretchtext — a writing surface where any token could be pulled apart in place to reveal a longer, more detailed version of itself. No new page, no footnote, no modal. The reader controls the depth.

The hard part was never the data model; it was the motion. Each variant below is a different answer to the question of how a sentence should grow — same content, different geometry of the reflow.

Built to roughly 50% of the original vision. Four variants below explore the geometry; three pending slots show what's planned.

Built · 04 of 07
Aa word-FLIP
Per-word transforms via the Web Animations API. Each affected word measures its before/after rect and animates the delta. Reactive streaming push, but every word renders as display: inline-block — typography reads slightly blocky at rest.

A good harness compresses skill where skill was never the point.

The mental model is closer to a sentence elongating than to a drawer opening.

Pre-LLM, you'd cut. Post-LLM, you stretch.

Bb char-stream
Plain inline DOM at rest, proper typography, no per-word spans. Pretext precomputes the target paragraph height in pure JS, the parent reflows once, then elaboration chars stream in via opacity.

A good harness compresses skill where skill was never the point.

The mental model is closer to a sentence elongating than to a drawer opening.

Pre-LLM, you'd cut. Post-LLM, you stretch.

Cc width-grow
Each elaboration word is an inline-block whose width animates from 0 to its natural value, all simultaneously. Anchors and surrounding prose are physically pushed by the changing geometry rather than teleported via FLIP.

A good harness compresses skill where skill was never the point.

The mental model is closer to a sentence elongating than to a drawer opening.

Pre-LLM, you'd cut. Post-LLM, you stretch.

Dd inline-FLIP
Words stay display: inline with relative positioning; left/top deltas animate after the DOM rewrite. Per CSS Positioned Layout, relative offsets are visual only — surrounding layout is unaffected, so kerning, baselines, and line breaks all remain native inline.

A good harness compresses skill where skill was never the point.

The mental model is closer to a sentence elongating than to a drawer opening.

Pre-LLM, you'd cut. Post-LLM, you stretch.

Pending · 03 of 07
Ee spring-physics
Critically-damped springs in place of cubic-bezier easing. Will explore whether physical settling reads as more honest than tuned curves when the reflow is irregular.
Reserved · Ee
Ff llm-fork
LLM-generated long versions on demand. Nelson's original cost-structure objection — that authoring two depths is twice the work — is broadly resolved as of 2026; the variant tests whether the affordance still reads as the author's voice.
Reserved · Ff
Gg overlay-anim
Plain inline DOM at rest. During the brief animation window, an absolutely-positioned word layer renders the transition, then hands back to flow. Aiming for the stability of Aa with the cheapness of Cc.
Reserved · Gg
Trade-offs · so far

Aa is the only one of the four built that stays stable when the expansion forces a line wrap mid-paragraph — the FLIP technique can absorb the full reflow into a single coordinated animation. It is also twice as much code as the other three combined.

Bb feels alive in a way the others don't, but it cheats: the "expansion" is really a fast typewriter, and on long passages the eye notices it isn't keeping up.

I paused at four because the remaining three change the underlying model, not just the curve. Stretchtext only feels right when the reader forgets it is animation at all; Ee–Gg are the angles I have not tried yet.