Files
Epic-The-Musical-Timeline/DESIGN.md
T

55 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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-title` 2rem), 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.