LIFE COMPASS

0010 — Printing stays a supported output, not an accident

Context

The worksheets print well today, and printing a blank day to fill in with a pen is a legitimate way to use this — arguably the original way. Adding form controls threatens that quietly: a page full of text inputs prints as a page full of empty boxes.

Decision

Printing is a supported output with its own stylesheet and its own tests. Question fields render as interactive controls on screen and as ruled blank lines on paper, from one definition.

This resolves something left hanging in 0004 · C3. The fill spans were described there as scaffolding awaiting removal — in fact the print renderer is their successor. The visual idea survives; it stops being hand-written markup and becomes an output mode of the question schema.

Two print modes, and the second is nearly free once the first exists: a blank worksheet, and a completed one. Printing a finished compass is the natural way to keep it somewhere that outlives a browser profile.

Consequences

C1. Question definitions need a size hint — roughly how much room an answer wants — because print has to allocate ruled lines and cannot infer it. That hint does double duty: 0001 wants generous fields for dictation, and this is where that gets expressed once rather than guessed at per page.

This turns out to be an observation rather than an invention. The existing markup already encodes exactly two sizes — fill at 15rem and fill-sm at 6rem, 369 and 74 uses respectively — so the hint is formalising a distinction the worksheets have been making by hand all along, not adding a new axis. Whether two buckets remain enough, or the schema wants a line count, is worth deciding when the pilot page is built (0004).

C2. break-inside: avoid on question groups, so a five-part chapter block does not split across a page boundary. Print is a real layout, not a filter over the screen one.

C3. Print CSS rots silently — nobody notices until they print, by which point they are standing at a printer. Testable, though: render a page to PDF in a headless browser and assert the expected count of ruled blanks and the absence of form controls. Cheap, and aimed squarely at the regression class print bugs belong to.

C4. Multi-page static rendering (0003) makes this straightforward where a single-page app would have made it awkward. Worth recording as a benefit that decision earns twice.

C5. Two rendering paths for every question type, permanently. Accepted: printing is a use case, not a legacy artifact to be tolerated.