editorial
This is a spec: descriptive guidance, not a checkable rule. It carries no forbidden and instead pair, and no jig check detector applies to it directly.
The spec
For: marketing sites, blogs, documentation, brochureware, landing pages. Reader: first-time, on mobile data, scanning before committing attention. Tiebreaker: legibility over density. When in doubt, larger and further apart.
| Property | This mode selects |
|---|---|
| UI text | --text-body |
| Long-form text | --text-prose · --leading-prose |
| Heading ramp | --text-h3 → --text-h2 → --text-h1 |
| Type ratio | 1.250 Major Third — the largest of the three |
| Measure | --measure-prose |
| Section rhythm | --spacing-section |
| Card padding | --spacing-card |
| Control height | --size-control — the tallest of the three |
| Radius | --radius-control (sm) · --radius-surface (md) |
| Elevation | --shadow-none; --shadow-raised for sticky nav only |
| Motion | --duration-base; entrance animation once per visitor, first viewport only, skippable (G-42); ambient motion permitted (P-13) |
| Colour usage | Neutral-dominant. --color-brand for links and primary CTA only. |
| Imagery | Central. Real photography or commissioned illustration. |
| Keyboard | Standard tab order; no shortcuts expected |
Resolved values: 02-tokens.md — the option sets for type, spacing, radius and shadow, and "Sizes and motion, by mode" for control heights, row heights, durations and measure.
Mode-specific rules
- One hero maximum, at the top. A second full-viewport section is a second hero.
- Every page states its subject above the fold in text, not only in an image.
- Prose blocks are measure-capped even when the container is wide.
- No horizontal scrolling regions on mobile. Reflow instead: a code block wraps its long lines, keeping its line breaks and indents, and a table too wide for the screen stacks its rows, each cell with its column's name (
L-01, step 6). - JavaScript: none by default. A content page ships no script unless a feature on it needs some: a theme toggle, a search box, a filter. That is a default, not an absolute zero. Each script names, in a comment, the feature and the decision or rule that asks for it, and a review judges whether the feature needs it and whether it is as small as the feature allows, not whether it exists. What the budget forbids is script no feature asks for: a framework runtime to render static text, a library for one effect, tracking bundled into the page. Behaviour a rule requires is not a feature and is not counted: a few lines whose only job is something a rule asks for and the browser does not give, such as
Escapeclosing a<details>menu, or a tap outside closing a menu in a fixed header (P-14), are allowed in every mode, under 1 KB, with the rule named in a comment. Nothing else rides along in them.
- Kind
- Spec
- Section
- Interface modes