one repo → one page · one stylesheet
register v1.1 · engine + skins
thesis

A page is a view of a repository. Style it like one: identifiers first, rules not boxes, color as data, and nothing that can't be written as text.the whole system follows from that sentence

five rules

the grammar is small on purpose
Identify.Every object shows its identifier in the register column, at the same x on every page: a date, a claim id, a case number, a commit. The column is the signature.
Rule, don't box.Hierarchy comes from hairlines and alignment. Fills are surfaces that invert the tokens so components keep working inside them. One deep surface per screen, never two adjacent, never black.
Mono says what, sans says why.Identifiers, numbers, labels, and metadata are lowercase monospace. Prose and headings are sans. Case is reserved for names, symbols, and sentences.
Color is data.One accent for links and current. Three states: done, open, blocked. Four series for charts and labs. Color never decorates and never carries meaning alone; a glyph or a word always travels with it.
Flatten.Every component has a plain-text twin. Accents come from a closed collection drawn from the material and are rationed: one signature accent per page, one texture per page, one stamp per site.

the grammar

a class names the component · data attributes pick the variant

Everything you can do to a component is one of seven attributes. You never learn a second class name for a variant, and adding a variant never adds a class.

data-surface
tint · wash · deep · s1–s4 · s1w–s4w · ok · open · stop · info · duo
data-series
1 · 2 · 3 · 4
data-state
done · active · waiting · blocked · parked · optional · live · reserved · superseded
data-style
a component's own variants, listed with it
data-size
sm · lg · wide
data-kind
what a register lists: claims · relations · log · edges · refs · cmds · lexicon · theorems · notes · forecasts · rules
data-theme · data-display
on <html>: neutral · forest · parchment · slate · signal, and mono · serif

the same panel, four ways · one class, one attribute

<div class="panel">
<div class="panel" data-surface="deep">
<div class="panel" data-surface="s2">
<div class="panel" data-surface="duo" data-series="4">

the same row, three kinds

2026-08-29
status.observedevt-001 · owner statementledger
Stone, L. D. (1975). Theory of Optimal Search.
theoremC-0059

For every finite N ≥ 2 the optimum is uniquely one reader when q > p.

tokens

13 colors · 4 series with deep and wash cuts · 2 faces · 1 measure
--paper#fafaf7
--paper-2#f3f3ee · tint
--paper-3#ebebe4 · wash
--deep#2b2b28 · not black
--ink#171717
--muted#696961
--faint#97978e · ids
--rule#dcdcd4
--rule-2#bdbdb4
--accent#0550ae · link, current
--ok#18794e · done
--open#a96512 · waiting
--stop#9a2d25 · blocked

series · each has a plain, deep, and wash cut · used only where the numbers are series

--s1#2a78d6
--s2#087d26
--s3#a76900
--s4#b4476f
h1 · display

Knowledge that can show its work

h2 · 28px

Unit tests for how knowledge goes wrong

dek · 15.5px

Information tells you what was said. The evidence shows what it earns, and where it stops.

body · 14px

Pooling raises the accuracy of the best single recommendation, but repeating that recommendation lowers group discovery. The failure is in the protocol, not the information.

mono · 11px

studies 26claims 110as of 2026-08-29

surfaces

the whole color system in one row
paper
tint
wash
info
ok
open
stop
s1w
deep
s1
s2
s3
s4
duo·2

Any band, panel, row, section line, page header, plate, tab, or chart body takes data-surface. Deep and series surfaces re-assign the tokens inside them, which is why a receipt, a status glyph, or a bar chart dropped into one just works.

engine and skins

v1.1 · every opinion about looks is a token

register.css is an engine plus a default skin. The engine is the grammar, the components, and the rules that keep a page readable. The skin is 61 tokens: faces, label case, corners, line weight, shadow, density, motion, and the whole palette including what sits on the dark block. A skin is one CSS block and cannot change the grammar, so it can be hand-written or generated from a mood with prompts/skin.md.

Four ship: register (this page, the default and the most finished), seventies, gothic (a dark paper with a bone-colored deep block), and terminal (no sans face at all). All four score 0/14. The skins page shows the same specimen in each, the schema, the image treatments, and the prompt templates.

seventies

done 01

gothic

open 01

terminal

active 01

register

default 01

what bootstrap has, and what we do with it

a check against the most complete framework
bootstrapregisternote
responsive grid, containers, breakpoints.grid data-cols · .shell · 880 and 600two breakpoints on purpose; the register column is the third
navbar with collapse.topbar + .menu-toggleno JavaScript; a checkbox folds the nav
forms, validation, input groups, switches.field data-state · .check · .input-group · fieldset.groupadded in v1.1
alerts, badges, progress, accordion, list group.note · .status and .chip · .pbar and .meter · details.disclosure · .registersame jobs, rule-drawn
cardsnonedeliberate; panels and registers do the work
modal, toast, tooltip, offcanvas, carouseldialog.dialog · abbr[title]native dialog only; the rest need scripts and a page should be complete without them
images, figures, thumbnailsfigure.image data-ratio data-treatment · .image-gridadded in v1.1, with provenance lines and prompt templates
icons (separate library)icons.svg · 12 line iconsno emoji
color modes, theming via sassdata-skin · data-theme · 61 css tokensno build step; skins are one selector
utilities (hundreds).stack · .cluster · data-align · .hide-sm · .show-md · .stickysix; the grammar carries the rest
rtl, print, reduced motion, focus ringsprint · reduced motion · focus · logical properties in most placesrtl not yet verified

use it

five steps · ten minutes
Use this template → name your repo → Settings → Pages → Deploy from branch (main, /)the repo is already a site; nothing to build
pick a skin: <link href="skins/gothic.css"> and data-skin on <html>, or generate one with prompts/skin.mdfour skins ship; register is the default
copy examples/program.html, dossier.html, or board.html and replace the sample dataevery example is complete without JavaScript
keep DESIGN.md in the repo rootit is the rules in the form your coding agent reads; Claude Code and Codex honor it by default
npx design-slop-cop https://you.github.io/your-repo/deterministic AI-tell scorer; the template scores 0/14 and yours should too

why "register"

the name is the signature
three meanings
the column · the marks · the ledger

The register is the left column every identifier sits in. Registration marks are the crop corners a printed proof carries. A register is a ledger of record. All three are what these pages are: an indexed, proofed record of a repository. The stylesheet is register.css; the family bar at the top is how a group of sites declares they share it.

ai-tell audit

checked against Krebs, Sikora, and 925 Studios · re-run with design-slop-cop