( SYSTEM )
The system, describing itself.
( 00 ) THE CONSTITUTION
Ladder in tokens.ts
Grid and Space in tokens.ts
Palette in tokens.ts
globals.css
scripts/gate.mjs
( 01 ) TYPE
THE LETTER-SPACING LAW
( 02 ) SPACE AND GRID
THE GRID, WITH ITS VERTICALS SHOWING
1 / span 2
4 / span 9
7 / span 3
10 / span 3
( 03 ) COLOUR AND THE HAIRLINE
- #000000
- #f2f5f3
- #7f8481
- #5a5f5d
- #191b1a
- #0d0e0d
- #131514
THE HAIRLINE
( 04 ) COMPONENTS, LIVE
META
THREE TONES, TWO FACES, ONE SIZE
MONO. FIGURE LABELS AND SECTION LABELS.MONO MUTED. THE LABEL ON EVERY SECTION HERE.
PROPTYPEWHAT IT ISREQUIRED
- children
- ReactNode
- tone
- "text" | "muted" | "dim"
- font
- "sans" | "mono"
- as
- ElementType
- className
- string
src/components/site/primitives/Meta.tsx
export function Meta({
children,
tone = "text",
font = "sans",
as: Tag = "span",
className = "",
}: MetaProps) {SECTIONINDEX
A LABEL, AND A LABEL WITH A COUNT
( 02 ) SPACE AND GRID
( 04 ) COMPONENTS, LIVE
PROPTYPEWHAT IT ISREQUIRED
- no
- string
- name
- ReactNode
- count
- number
- id
- string
- as
- "h2" | "h3"
- className
- string
src/components/site/primitives/SectionIndex.tsx
export function SectionIndex({
no,
name,
count,
id,
as: Tag = "h2",
className = "",
}: SectionIndexProps) {PLATE
A SLOT WITH NO SRC. THIS IS WHAT THE PAGE SHOWS.
FIG. 00.1
DROP HERE: A PHOTOGRAPH OF THE DELIVERED WORK
DROP HERE: A PHOTOGRAPH OF THE DELIVERED WORK
PROPTYPEWHAT IT ISREQUIRED
- fig
- string
- label
- string
- src
- string
- alt
- string
- size
- "standard" | "tall" | "band" | "fill" | "cover"
- kind
- "photo" | "work" | "screen" | "phone" | "post" | "story"
- priority
- boolean
- className
- string
- video
- string
- controls
- boolean
src/components/site/primitives/Plate.tsx
export function Plate({
fig,
label,
src,
alt,
size = "standard",
kind = "photo",
priority = false,
className = "",
video,
controls = false,
}: PlateProps) {( 05 ) THE GATE
scripts/gate.mjs, the three checks
* A RAW COLOUR a colour may be declared as a token, never used raw * B OFF-LADDER TYPE a font size is a rung of the ladder, the 16px field or * the 12px masthead * C BRACKET VALUE a length written into a class name is not a token
npm run gate, over src/
$ npm run gate gate: pass. 142 files, 21 exempt, no violations. gate: ladder 180 135 101 76 57 43 32 24 18 14 11 · field 16px · masthead 12px · crown 240px
node scripts/gate.mjs scripts/fixtures, over a file with three faults in it
$ node scripts/gate.mjs scripts/fixtures
gate: FAIL. 3 violations in 1 file.
scripts/fixtures/Violations.tsx:20
bracket length: mt-[22px]
scripts/fixtures/Violations.tsx:21
raw colour: #191b1a
scripts/fixtures/Violations.tsx:23
off-ladder type size 13px: 13px
gate: ladder 180 135 101 76 57 43 32 24 18 14 11 · field 16px · masthead 12px · crown 240px
$ echo $?
1( 07 ) THE RECORD
- THE CLAIMWHAT IS TRUECHECKED
- THE CLAIMWHAT IS TRUECHECKED
- THE CLAIMWHAT IS TRUECHECKED
- THE CLAIMWHAT IS TRUECHECKED