The Compositor's First Unjustified Line: On the Unseen Architecture of a Perfectly Set Page Without a `font-display`
In the hushed, ink-scented air of a 15th-century print shop, a compositor would have understood something we’ve only recently begun to codify: the space a letter occupies is as critical as the letter itself. Before a single piece of type was inked, the compositor’s craft was one of negative space, of building the architecture for the text that would soon fill it. They worked with a tangible, physical patience, knowing the form must be set before the content could be rendered. This meticulous preparation finds a direct, if digital, descendant in the `font-display` descriptor—a small piece of CSS that dictates the patience, or lack thereof, a browser must exercise while waiting for a web font to arrive.
Imagine our compositor, his forme locked tight in the chase, ready for the press. But the lead type for the headline is missing. He has two choices: halt the entire operation until the correct type is found, or run the press with a blank space, planning to fill it in later by hand. The first choice guarantees a perfect result but brings all progress to a standstill. The second gets the broader work done but creates a jarring, incomplete experience for the first reader. This is the precise dilemma `font-display` is designed to solve.
To omit `font-display` is to force the browser into the first, most conservative choice. It is the digital equivalent of stopping the press. The browser, following its default behavior, will often hide the text entirely for a brief period (the Flash of Invisible Text, or FOIT) while it waits for the custom font. If the font takes too long, it may then fall back to a system font, but that initial hesitation is a stutter in the user’s experience. It prioritizes the perfect, eventual aesthetic over the immediate need to communicate.
The compositor, a pragmatist above all, would likely have chosen the second path. He would have set the body text in the available type and left a space for the ornamented headline, ensuring the reader could engage with the substance of the work immediately. This is the spirit of `font-display: swap`. It tells the browser to use the fallback font immediately and then ‘swap’ in the custom font once it loads. There’s a flash of unstyled text (FOUT), yes, but the content is never hidden. The reading begins without obstruction.
Our craft is not so different from his. We, too, are building architectures of meaning, not just with content, but with the timing of its delivery. The `font-display` directive is a small testament to this deeper truth: that performance is not merely a metric of speed, but a philosophy of prioritization. It is the decision to value the user’s time and attention—their ability to begin reading—over the flawless, eventual rendering of our design. It is the wisdom of the compositor, understanding that sometimes, a temporarily unjustified line is far better than a perfectly set page that no one can yet read.
Notes & further reading
A few pages I came back to while writing this:
- The Cartographer's First Un-inked Vellum: On the Uncharted Terrain of a Perfectly Optimized Page Without a `srcset`
- The Lighthouse Keeper's First Unlit Wick: On the Sudden Darkness of a Perfectly Optimized Page Without a `preconnect`
- The Archivist's Unlabeled Box: On the Silent Decay of a Perfectly Optimized Page Without a `description`