Sheet 07 / Principles

Seven rules, each with its reason.

Every rule here is a claim you can check against a page. When two rules disagree, the lower number wins.

SHEET07 / PRINCIPLESDRAWNCLAUDECHECKEDBOLUOREVE
01 / Rules

The rules7

P01

The page is a drawing sheet.

Content sits in a rail framed by vertical hairlines; rows are separated by full-width hairlines, sections by a lattice band. Figures are numbered and sections are labelled like sheets.

Why

A reader can find anything by its sheet and figure number, as on a drawing.

P02

Every value is on the scale.

Spacing, type, radius, size and colour come from the tokens. A value that is not a token is out of tolerance: snap it to the nearest step, or make it a token with a usage note.

Why

A system stays consistent only while nobody invents numbers.

P03

Contrast is computed, not eyeballed.

Every colour that can carry words has a measured ratio on every ground it may sit on. Words only go where the ratio is 4.5:1 or more.

Why

A rule anyone can check scales. Taste in one person's head does not.

P04

One spot of yellow.

Everything is ink, grey and hairline on paper. Pineapple is a fill, never words, and appears once per screen in one of seven listed places.

Why

An accent that appears everywhere stops pointing at anything.

P05

Hairlines frame, space groups.

Lines draw the sheet: the rail, rows, bands and figure frames. Inside a row, group with space and weight, not another line. No shadows, almost no radius.

Why

On a drawing every line means something, so a decorative line is noise.

P06

Readable by everyone.

Colour never carries meaning alone. Every interactive element shows a 2px ink focus ring. Motion stops under reduced motion. Layouts hold at 200% text.

Why

Readers with an accessibility setting turned on are the audience, not an edge case.

P07

Real numbers or none.

Charts show real values or say they are illustrative. Counts on this site are derived from the source, never typed by hand.

Why

The sheet's authority comes from its numbers being true.

02 / Contrast

Where words may go

WCAG 2 ratios of each text colour on each ground, computed from the token values when the site is built. Words go only where a cell says PASS. Lighter tokens (line-strong, line, pineapple) never carry words.

Text colouron paperon surfaceon heat-0on pineapple-paleon pineapple
ink
19.4
PASS
19.9
PASS
17.0
PASS
16.2
PASS
11.1
PASS
graphite
10.2
PASS
10.4
PASS
8.9
PASS
8.5
PASS
5.8
PASS
text
7.5
PASS
7.7
PASS
6.6
PASS
6.3
PASS
4.3
LINES ONLY
rind
6.2
PASS
6.3
PASS
5.4
PASS
5.1
PASS
3.5
LINES ONLY
text-muted
5.2
PASS
5.3
PASS
4.5
PASS
4.3
LINES ONLY
3.0
LINES ONLY
text-faint
2.5
LINES ONLY
2.6
LINES ONLY
2.2
LINES ONLY
2.1
LINES ONLY
1.4
LINES ONLY
On pineapple only ink and graphite · on pineapple-pale text or darker · text-faint is for dots and ticks
03 / The yellow slot

The places yellow may go7

Mark, sealThe brand itself
CaretIdentity, while typing
Last pointCurveWindow
Best dayHeatmap
Live dotNowPanel, Status
Quote diamondProse
Key nodeFigureKit, one per figure
At most one of these per screen. A new component gets no yellow by default; adding it to this list is a design decision.
04 / Tolerances

On the scale or out of tolerance

In tolerance

Any space-*, radius-* or size token, a type style, a colour token, the hairline.

CSS
padding: var(--space-4) var(--space-6);color: var(--text-muted);
Out of tolerance

A raw pixel for spacing, a hex colour, a font size that is no type style. Snap it, or promote it to a token with a usage note. On this site a lint check fails the build.

CSS
padding: 9px 12px;   /* → var(--space-2) var(--space-3) */color: #777;         /* → var(--text-muted) */
05 / Motion · Access

Motion and access

MotionArrival or state, never decoration

Four uses: content rises 10px on load, 90ms apart; a curve draws in over 1.6s; the caret blinks at 1s; the loader turns every 1.6s. Hover is an instant inversion. All of it stops under reduced motion.

Focus2px ink, 2px offset

Every interactive element on the sheet shows the same ring on keyboard focus: buttons, links, nav, facts, article rows and heatmap tabs.

MeaningNever colour alone

A loss carries a minus sign, risk carries hatching, live carries a label. Pages reflow at 200% text without sideways scrolling.

© 2026 Boluo · with Claude · CreditsPixel pineapple