Layout

Structural components that define page regions and navigation.

BaseLayout

Root HTML shell for every non-system page. Sets up the document head (meta, font preloads, title), mounts the construction grid, Nav, page content, and Footer, then boots the client-side systems (colour, reveal, nav, clock) via a main.ts script import.

Divider

One hairline across the reading area, marking where one group of blocks ends and the next begins. The page used to draw a rule under every section automatically (the bottom hairline on .grid); the design wants rules between groups, not after every block, so the rule stops being a side effect of being a section and becomes a thing an author places on purpose.

Figure

The framed block in the home flow: a hairline frame drawn as an outline, a label in its top-left corner, and a payload that fills everything below. It is the container shape of the reading area — where a passage splits itself into a label column and a prose column, a figure ignores the split and takes the full reading width. The cycling map is its one payload today; anything else that wants the frame gets it by being put inside one.

Summer 2025 Bicycle adventure

Footer

Page footer with copyright, profile links, and the build credit. Sits inside the site grid using col-page placement. Email is deliberately not here — it is the nav cluster's call to action, and a second copy of it in the footer would split the one thing the page is asking for.

Nav

The site's only navigation, composed as a floating cluster rather than a bar. Time readout and colour clock on the left, the contact disc and the design-system disc stacked on the right. It sits over the page instead of banding across the top of it, so no page ever starts underneath a strip of chrome.

PageFlow

The home composition — the sequence of blocks that / and every /for/ page are both made of. It exists because the two views differ in four values and in nothing else: who is addressed, what the headline says, which projects appear, and what is said about them. Holding the sequence in one place is what makes block order a fact rather than a rule two files have to keep agreeing on, and it is why a new outreach page is a YAML file and no code at all.

Prior Work Grid

The five prior engagements as a row of metric cells, at the head of the home flow before anything is said in words — the evidence the headline below it then argues from. It used to draw a frame from the union of its cells' edges; it draws nothing now. Five client marks on a line already read as a run, and dropping the frame is what lets each mark sit on the page's own left column line with the byline and the headline instead of a cell-inset in from it.

SkyBand

The dithered sky at the top of every page — a Bayer-ordered field of --particulate cells over --ground, read from the document as it is currently rendering so it moves through the day on the same transition as every other surface. It exists because the colour system argues particulates in prose and then renders a flat field: the 25% dusk chroma boost is justified by scatter off "a full day of particulates", and quantising the field into discrete cells is that argument made visible. It is the visible-construction principle reaching the one foundation where the viewer sees a colour rather than a system.

Spotlight Card

The featured case study. Two-column layout with content and media, hairline borders on all sides. Optional video plays once on viewport entry (via Media, variant="card"). The card you want someone to click.

Summary Card

A thing summarised to one value and one line, linking to the thing itself. A mark, a value in Pentameter, and a line of Sectra explaining it — that shape held for a prior engagement reduced to its metric and for a design-system section reduced to its name, in two components that had independently arrived at the same three parts and disagreed about all of the details. The metric card set its summary in Pentameter and had no inset; the index card set prose in Pentameter, was inset 12px against 48px, and drew a full box border the stroke foundation forbids. Unifying them is what makes the disagreements visible as disagreements rather than as two components each looking reasonable alone.

SystemLayout

Root HTML shell for every /system route. Mounts the construction grid, the sidebar nav (desktop) and top nav bar (narrow viewports), and the scrollable system content region, then boots the system-specific client scripts — scroll tracking, search, and the internals toggle.