3.0 KiB
Design
Status: direction chosen (2026-10-30)
The app at / (src/app/) is the house style. Its record, with every chosen and deselected idea and the
user's words: docs/design/002-voyage-app.md. The mockups under src/mockups/ are history; don't take
styling from the dropped ones. New options vary structure, flow and behaviour within this direction —
never a new palette or font family.
The direction: "two worlds" (look 2)
A stylised 3D sea voyage, bright and naturalistic in colour, framed by a Greek black-figure frieze that drops like a curtain between scenes. The interface sits on parchment and borrows the frieze's terracotta, black and meander band so that frieze, world and panels read as one piece.
Tokens (src/app/style.css :root)
| Token | Value | Use |
|---|---|---|
--clay |
#c46a33 |
frieze ground; accents, active tab, play button |
--clay-deep |
#9a4520 |
eyebrows, hover, small accent text |
--glaze |
#1d140e |
frieze figures; rules, borders, dark buttons, page frame |
--added-white |
#efe3c8 |
text on glaze |
--vellum / --vellum-hi / --vellum-lo |
#e3d6b4 / #ece2c6 / #e0d1ab |
panel, cards, timeline |
--iron / --iron-soft |
#2b2118 / #5a4836 |
body text / secondary text |
--line |
rgb(43 33 24 / 0.2) |
hairlines |
--meander |
SVG data URI | the key band: 14px strip between two 2px glaze rules (.meander-edge) on top of every panel, card and bar |
Motif colours come from the data (src/data/album/motifs.ts) and are the same everywhere: timeline,
panel, ribbons and chips. On parchment, text in a motif colour is darkened to 4.5:1
(src/app/timeline/ink.ts); dots and knots keep the bright colour.
Type
- Inter for all UI, labels and controls: 13px minimum (
--fs-label), 14px small, 15px panel body, weights 400–600, tracking ≤0.06em. Never small wide-tracked capitals (they were "very hard to read"). - Cormorant Garamond only for large display titles (
--fs-title2rem), lyric lines, Odyssey reading text, and frieze inscriptions (≥19px on screen).
Layout
- Desktop reference 1440×900: stage (3D canvas + frieze layer + caption card + bottom timeline) | right panel 420px (collapsible to a 56px tab) | credits footer across the bottom.
- Timeline ≤190px tall by default; the current saga expanded with titles, the others compact.
- Below 900px: the panel becomes a bottom sheet; the timeline stays over the stage.
3D
Stylised, not realistic: toon/flat shading, ink outlines, flat colour-band water with drawn wave strokes, a small flat sun, graphic silhouettes. Black-figure cut-outs (the giant, Athena) inside landings. Pixel ratio ≤2; distant places are not drawn.
Motion
Curtain drop ≈1.2s, parting lift ≈1.5s, doorway zoom ≈1.6s, fade ≈0.45/0.65s; ease-out curves.
prefers-reduced-motion: every scene change is a 200ms crossfade.
Constraints
- Fonts self-hosted from
@fontsource/*; three.js from npm; nothing from a CDN. - The fan-credits footer is on every page and never hidden.
- Avoid generic, templated "AI-looking" UI.