Style guide
The foundation layer. Every token below comes from the brand mockup — deep navy, muted blue-white, one warm gold. Sharp corners, hairline borders, light used sparingly so it means something when it appears.
Color
Three families and nothing else. Ink carries a blue cast at every step — never pure black. Gold is the only warm hue in the system, which is what makes a highlighted star read instantly.
Type
Fraunces for anything that names a person — it has genuine quirk, especially in italic with the WONK axis on. Space Grotesk for dates, labels and controls. Numbers are always tabular so a timeline never jitters.
Sailed from Hamburg with two trunks and her sister's address sewn into a coat lining. The name on the manifest is spelled three different ways.
Space & shape
A 4px base unit. Radii top out at 6px — the only true circles in Aster are stars and avatars. Softness is reserved for light, never for edges.
Elevation & light
Two separate ideas. Shadow lifts a surface off the floor; glow is emitted light and belongs to stars and lineage lines only. Never use glow as decoration on a container.
Components
Enough surface area to check the vibe: one button, one card, one tag. Everything else in Aster should be assembled from these.
Wiktoria Wysocka
Two marriages, four children, one crossing. Most of what we know comes from a single letter.
Józef Wysocki
The focused record. Border warms, title turns gold, corner ticks mount it like a photograph.
The dashed uncertain variant is the system's convention for unverified data — approximate dates, unconfirmed relationships. Reserve it; it only works if it stays rare.
Every form worth waiting for talks to something slow and outside the process — a mail server, Google, the database. Without this the page looks inert and gets clicked again, and a second click on “send me a link” is a second email in somebody’s inbox. Press it: the action below sleeps for two seconds on purpose.
Anchored to a point rather than to an element, because on the canvas that point is wherever the pointer was. Keyboard navigable, closes on Escape or an outside click, and tone="warn" marks anything destructive.
The whole of the app’s chrome. The sky is a full-bleed canvas with no room for a navigation bar, so this one disc in the corner is it — deliberately star-shaped rather than a rounded avatar, at the size the canvas draws a distant relative.
The second has no name set, so it falls back to the local part of the address.
Fields
Added in Phase 6, when records became writable. The rule is that edit mode is the read view with the values made editable — same grid, same order, same size — so a hairline appearing under a value is the only thing that changes.
reads as 1888–1892, around 1890
Every value at once, because the four of them are a scale.
Too many to lay flat, so a menu — on the same surface as the sky's.
Motion
Defined now so Phases 3–5 don't invent their own. Everything decelerates; nothing is linear. All of it collapses under prefers-reduced-motion.