A Catalogue
of Parts
The design system behind the catalogue raisonné — every token, type-set, ornament and component, set in order and ready to be lifted.
Contents
Eleven gatherings. Tokens lead; the components follow. Every value is a click away from your clipboard.
Principles
Five tenets. Read them before you touch the CSS — they explain every decision the tokens encode.
Editorial first
Typography leads, colour punctuates, hairlines divide. Marginalia — gloss, footnotes, page counter — builds the atmosphere.
Classic, not dated
Drop caps, roman numerals and EB Garamond live beside a modern grid, subtle micro-interactions and serious responsiveness.
Chromatic restraint
The page is cream and ink. Oxblood, cobalt and highlighter appear sparingly — when they appear, they matter.
Contained movement
Animation is short (≤1s), eased and never pyrotechnic. Everything respects prefers-reduced-motion.
Accessibility
AA contrast minimum. Visible focus. Touch targets ≥ 44px on mobile. The inactive language leaves the a11y tree entirely.
Colour
Paper for grounds, ink for text and rules, oxblood & cobalt for rare accents. Never a raw hex in a component — always var(--token).
Palette
Typography
Three families. Italic marks voice, not decoration. Numbers run on tabular figures; chapters on roman numerals.
Families
3 typefacesType scale
9 steps · 10 → 120pxSpacing & Measure
A 4px base with editorial leaps for page and spread. Container widths set the measure of every column.
Spacing scale
12 steps · 4 → 160pxContainer widths
3 measuresRadius, Borders & Elevation
Corners stay sharp; the pill is the one exception. Borders are hairlines first. Shadow is used with great reluctance.
Radius
4 tokensBorders
4 tokensElevation
2 tokensMotion
Four easings, four durations. Nothing exceeds --dur-page. Hover any card to watch the curve; click to copy it.
Easings
3 curvesDurations
4 stepsLayers
Four named stacking levels. Content sits low; cursor glyph rides on top. Never invent a one-off z-index.
Components
Live specimens — the real parts, rendered from the same tokens. Each is a section of the book made physical.
Drop cap
.drop-capThe catalogue opens, as catalogues do, with a held breath. A drop cap sets the first letter of a long passage in display serif and oxblood, anchoring the eye before the body settles into its even, generous measure — nineteen pixels of EB Garamond at a loose line height.
Epigraph
.case-epigraphRestraint is the loudest thing on the page.— House rule, plate I
Footnotes
.fn · .footnotesFootnotes are set as superscript numerals in oxblood1, and hovering one lifts its corresponding entry below in highlighter2. The apparatus is part of the atmosphere, not an afterthought.
Table of contents
.toc-rowPlate
.plate · .plate-gridA design conducted like a score
A short gloss in EB Garamond italic-adjacent prose describing the work, its constraints, and the part the studio played in it.
Buttons & controls
.btn · .lang-toggleMarginalia statistics
.marginalia-statReception clipping
.reception-clipping“He treats an interface the way a binder treats a book — every seam considered, nothing loud for its own sake.”— A collaborator, on the record
Ex Libris card
.exlibris-cardLucas Schoenherr
Inline marks
highlighter · tabular-numsBreakpoints
Five widths. Marginalia never disappears — below 1024 it folds into an inline note with an oxblood left rule.
Accessibility
The atmosphere never costs access. Status below: ✓ shipped, ○ on the docket.
A global rule in tokens.css cuts transitions, animations and smooth scroll; reveals become instant; lens & cursor glyph vanish.
Global :focus-visible — 2px oxblood outline, 3px offset.
Applied to language toggle, footnotes, to-catalogue and folio nav at ≤640.
@media (hover: none) hides the lens and the cursor glyph.
Ink on paper runs high; ink-faint is reserved for captions and metadata only.
Confirm each case has exactly one h1 and ordered h2/h3.
When real screenshots land, guarantee descriptive alt on every plate image.
Colophon & Figma Export
This catalogue of parts is set in EB Garamond, Instrument Serif and JetBrains Mono. Every value shown is mirrored, one-for-one, from design-system/tokens.css — the single source of truth.
The tokens are CSS custom properties shaped to match Figma Variables (collection → group → token). The export below ships them as a Tokens Studio JSON, importable directly via the Tokens Studio plugin.
Take it into Figma
One file, every token, grouped by kind (colour, type, spacing, radius, shadow, motion, layers).
- Download the JSON below.
- In Figma, open the
Tokens Studioplugin →Settings→Import. - Choose the file, then
Import & override. - Push the set to native Figma Variables from the plugin.