v0.4 · 2026-07-17
The web idiom
The declared sibling of the publishing face — the same substrate carrying web surfaces, with three exceptions and a declared vocabulary, named here and nowhere else.
The web idiom is a declared sibling, not a second system
The web idiom governs surfaces built on the web-page template — the firm’s public presence at vaquum.fi, where a visitor scans a claim before reading a page. The idiom is the same substrate. The closed palette applies without amendment, and so do the token currency, the composition law, and the eight parameters of each channel. The differences reduce to the three exceptions and the declared vocabulary below. A formality that is not listed here does not exist, and a surface outside the web-page template carries none of them.
Scope binds to the template
The idiom binds to the web-page template and to nothing else. A web-page surface is an ordered list of typed sections declared in frontmatter — hero, cards, steps, flow, manifesto, statements, theses, team, contact, cta, prose — closed in the section vocabulary of the template. Running prose stays in the markdown body. The body renders through the same prose pipeline as every other surface, where the voice rules run in full. Section copy stands under the same law: the content stage runs the full voice rule set over the section prose, and only dictum fields, code specimens, imperative labels, and data fields sit outside its reach.
Exception 01 — the display typeface
Rajdhani at weight 600 carries the display roles on web-page surfaces, self-hosted through the same channel as the two canonical families. The display roles are the two sizes --vq-size-display and --vq-size-display-2 under --vq-font-display, with the canonical title tracking. The declaration lives in the face package as webIdiomDisplayException. The display face carries the block-leading claim text of the idiom — the hero headline, section headlines, statement claims, the manifesto dictum — and two block-leading marks, the step numeral and the card toggle glyph. A hero dictum renders as bold emphasis closing the standfirst paragraph, through the bold-emphasis text atom. Body, lead, small, micro, heading, and code keep IBM Plex Sans and IBM Plex Mono at the canonical scale. Weight 700 stays prohibited. Italic stays prohibited.
Exception 02 — the filled call-to-action
A web-page action of kind primary renders as a filled block: deep-ink fill, paper text, radius 0, with the universal focus indicator preserved. The fill is a grey fill above the 16 × 16 px floor, so the colour law is untouched. The exception runs against the input foundation’s border-carried hierarchy, and it applies only to the template’s action links. Buttons inside forms, and every Input atom everywhere, keep the border-carried hierarchy. Secondary actions keep the hairline border. Accent remains mark-only.
Exception 03 — dictums
A dictum is quoted firm or community language reproduced verbatim, outside the reach of the voice rules. A dictum lands only in a dictum-typed frontmatter field of a web-page section; every other string on a web surface follows the eight voice parameters. The registry is closed and enforced: the tuple lives in the voice package at @vaquum/voice/dictums, the section schemas admit a dictum only from that tuple, and a value outside it fails content validation. A new dictum lands by amending the tuple and this table together.
| dictum | origin |
|---|---|
Don't trust. Verify. | Bitcoin community dictum |
The strategy you deploy is the strategy you tested. | firm dictum |
The strategy you test is the strategy you deploy. | firm dictum |
The strategy deployed is always the strategy tested. | firm dictum |
We will never ask you to trust. We ask you to verify. | firm dictum |
The declared vocabulary
The patterns below are lawful under the base system — greys as fills, accent as marks — and are declared here so the idiom’s rendered form and its formality cannot drift.
- Web width and rhythm. Web-page content reads at
--vq-width-web(1200 px). One dominant gap: adjacent sections meet across 80 px (40 + 40), band interiors carry 128 px, and a text hero collapses its seam to 48 px against the section that continues it. - Section bands. The steps and cta sections render on a full-bleed
paper-2band; every other section sits on paper. Bands are grey fills and carry no marks of their own. - Dark code specimens. A flagship code specimen — the hero example, a card detail panel — renders as a
grey-000panel withgrey-600text, the ink-on-paper relation inverted inside one panel per the same grey currency. Step specimens are supporting evidence and render as paper panels on the band, keywords in accent and comments in soft ink. Code soft-wraps at the column edge — the specimen panel’s declaration; the code-block atom itself keeps its scroll. - Palette syntax colour. Python and shell specimens are lexed at build time into four closed token classes. On dark specimens the classes map to keyword on
accent, string onaccent-06, number onaccent-04, and comment ongrey-300; on step paper specimens the restrained mapping applies as declared above. A surface carrying coloured specimens declarescolour: multi-accent. Illustrative code declares itself illustrative in its caption. - Parametric figures. A manifesto or contact section may carry a deterministic line figure —
radialorwaves— drawn from a declared seed: grey line marks at 1 px with exactly one accent focal element at 2 px. The figure demonstrates the parametric thesis — the same seed always draws the same figure — and carries the diagram foundation: a claim-firstFig. n.caption, hairline rules around the figure body, a source line naming the seed, and per-surface numbering. The claim reaches assistive technology as the image label. - Filled panels. Module cards, team members, and the contact card render on
paper-2fills; on a band, cards render on paper. - Card detail panels. A cards section may sit on a band, and a card may carry a deep dive: the card renders as a button, and one full-width panel at a time opens below the grid — detail claims beside an optional code specimen, an exclusive accordion driven by a hoisted script. Without the script every panel stays open, so no content is script-gated.
- Specimen tabs. A card detail may carry two to four labeled code specimens as tabs in place of the single specimen — never both. The first tab is the default view, the active tab carries the accent underline of an open card button, and the switch runs on the same hoisted script. Without the script every specimen renders stacked. Tab labels are micro labels outside the voice rules’ reach.
- Flow figures. A flow section renders the diagram modality’s Flow atom from typed frontmatter — steps on a declared grid, directed edges with mandatory arrowheads, dashed observation paths, one accent focal path, and the full diagram foundation including the Show-structure table.
- The centred close. The cta band centres its display claim; running body prose everywhere stays left-aligned.
- The header mark. A site may declare a logo mark on its surface label; the title remains the accessible name.
Everything else stays canonical
The rest of the system applies to web surfaces exactly as it applies to publishing surfaces.
- The closed palette of 14 colours, with accent as mark only.
- Radius 0 on every structural element.
- The motion law and the density ceiling.
- The numeral discipline and the accessibility contract.
The contact form is absent by design: the input field atoms and a governed submission worker are substrate work that has not landed, and the idiom does not bypass the substrate.