Four tiles from
the same sheet.
CSS couldn’t do fibre. A 60×60 photograph could — if we killed the repetition.
The idea.
The grid is already dividing the surface into regular cells. So the seam of a tiled image becomes invisible if it lives on a grid line. Ink covers seam.
A 60×60 pixel tile of plain fibre: ~8 kB. One major grid cell per tile. Unique bias — a slightly brighter corner, a subtle drift — walks across the page as a diagonal when you repeat it.
The tile had character on its own. Tiled, its baked grid, vignette and over-bright tone all fought the rest of the page. We went hunting for warmer, plainer stock.
Better than control. But flipped tiles reverse fibre direction — the paper starts to read as zigzag weave, not fibre.
filter: invert(1) hue-rotate(180deg) to the same paper produces the dark-mode surface. Same asset, one CSS line.The bench this chapter is rendered on is the same paper, same family, same invert filter — applied at page scale. Scroll back up and the surface around every specimen is the exhibit.
Why it ships.
- Tiny footprint.Four 120×120 PNGs. ~130 kB total after compression. Inlined as one SVG pattern; one asset load.
- Real fibre. Fibre direction, warm-cool micro-variation, faint printed teal grid — character no CSS can simulate.
- No flips. Fibre direction reversing read worse than the original bias.
- Shuffle instead.Four unique crops, placed pseudo-randomly in a 4×4 macro. 240 px period.