···11-# SkyPress — Brand Identity
11+# SkyPress — Brand Identity ("First Light")
2233-> The deliverable for brief §7. The system is implemented in `src/styles/global.css`
44-> (tokens + type), `src/components/Logo.astro`, and `public/favicon.svg`.
33+> The deliverable for brief §7, redesigned in SP8. The system is implemented in
44+> `src/styles/global.css` (tokens + type), `src/lib/landing/time-of-day.ts` +
55+> `src/pages/index.astro` (the time-of-day landing), `src/components/Logo.astro`, and
66+> `public/favicon.svg`. Fonts live in `public/fonts/`.
5768## Concept
7988-**The open sky meets the typesetter's bench.** Airy + crafted, modern + timeless. SkyPress
99-is a calm, editorial writing studio for the open social web — indie-web and human, never
1010-corporate-SaaS. The "sky" is the AT Protocol's open air; the "press" is movable type, ink,
1111-and paper. The design lives in that collision.
1010+**A writing studio that wakes with you.** SkyPress is a calm, crafted, indie-web writing
1111+studio for the open social web — human and editorial, never corporate-SaaS. The identity is
1212+built around **sunrise**: warm light, the start of a good day, the open sky of the AT
1313+Protocol. The landing page literally paints its sky to match the visitor's clock, so the same
1414+page looks like dawn at dawn and dusk at dusk.
12151316### Directions explored (then refined)
1414-1. **Bauhaus-sky** — geometric, primary blue, grotesque type. Rejected: too cool/corporate.
1515-2. **Soft cloud / pastel** — rounded, airy, gradients. Rejected: drifts toward AI-slop.
1616-3. **Editorial letterpress + altitude blue** ✅ — warm paper, ink, a confident sky-blue, a
1717- characterful old-style serif. Crafted and reading-first; this is the chosen direction.
1717+1. **Altitude blue + editorial serif** (the previous SP6 identity). Rejected: too cool; the
1818+ blue read corporate.
1919+2. **First Light (coral + pre-dawn plum gradient).** Energetic, but the deep gradient ran hot.
2020+3. **Ember (burnt terracotta).** Earthy and calm, but a touch muted.
2121+4. **Golden Hour (marigold)** ✅ — warm, optimistic, sunny without going neon. Chosen.
18221923## Logo
20242121-A **type block** (the page / letterpress tile) framing a **sun rising over a horizon**,
2222-with two short "lines of set type" beneath — sky ∧ press in one mark. Single-colour
2323-(`currentColor`), so it works in monochrome (GitHub README) and as a 16px favicon; the app
2424-renders the mark in sky-blue. See `Logo.astro` / `favicon.svg`.
2525+A **type block** (the page / letterpress tile) framing a **sun rising over a horizon**, with
2626+two short "lines of set type" beneath — sky ∧ press in one mark. Single-colour
2727+(`currentColor`) so it works in monochrome (GitHub README) and as a 16px favicon; the app
2828+renders the mark in marigold. The circle now rhymes with the landing's halo sun. See
2929+`Logo.astro` / `favicon.svg`.
25302626-- **Wordmark:** "SkyPress" — one word, set in Fraunces (display) with a touch of `SOFT`/`WONK`
2727- for letterpress warmth. The mark sits left of the word.
3131+- **Wordmark:** "SkyPress" — one word, set in Overused Grotesk (700).
28322929-## Color
3333+## Color — "Golden Hour"
30343135| Token | Light | Dark | Use |
3236|---|---|---|---|
3333-| `--paper` | `#faf6ef` | `#111319` | page background (warm paper / deep night sky) |
3737+| `--paper` | `#faf6ef` | `#111319` | page background (warm paper / deep night) |
3438| `--paper-raised` | `#fffdf9` | `#181b23` | cards, inputs |
3539| `--panel` | `#f1eadc` | `#1b1f2a` | bars, code chips |
3636-| `--ink` | `#1c1a16` | `#ece6da` | primary text (warm near-black / warm off-white) |
4040+| `--ink` | `#1c1a16` | `#ece6da` | primary text |
3741| `--ink-soft` | `#46413a` | `#c3bcad` | lede / secondary text |
3842| `--muted` | `#756d5f` | `#938b7d` | meta, captions |
3943| `--line` | `#e5ddcd` | `#292d39` | hairlines |
4040-| `--sky` | `#2a5fd0` | `#7aa2ff` | primary accent (altitude blue) |
4141-| `--sky-tint` | `#e9f0fc` | `#1a2235` | accent washes |
4444+| `--sun` | `#e8920c` | `#f4b13f` | primary accent (golden-hour marigold) |
4545+| `--sun-strong` | `#b85c12` | `#f7c97a` | hover / active |
4646+| `--sun-tint` | `#fbe6cc` | `#2a1f12` | accent washes, `::selection` |
4247| `--ember` | `#bb5a36` | `#e08a63` | rare warm counterweight / errors |
43484444-Light + dark are both first-class (auto via `prefers-color-scheme`). The palette is a
4545-considered sky-blue + warm ink/paper neutrals — deliberately not default tech-blue on white.
4949+Light + dark are both first-class (auto via `prefers-color-scheme`). Warm paper/ink neutrals
5050+are kept from SP6; only the accent flips from blue to marigold. The accent stays **constant
5151+across all times of day** — only the landing hero's atmosphere changes.
46524747-## Typography (all freely licensed, self-hosted via Fontsource)
5353+## Typography (all freely licensed, self-hosted)
48544949-- **Display / wordmark / headings — Fraunces** (variable; `opsz`, `SOFT`, `WONK`). An
5050- old-style serif with optical sizing and characterful, slightly "wonky" details —
5151- letterpress warmth.
5252-- **Reading & UI — Newsreader** (variable). A serif designed for on-screen long-form;
5353- calm and editorial. Used for body and most UI text to keep the studio cohesive.
5454-- **Mono — IBM Plex Mono.** Code blocks, and uppercase letter-spaced "eyebrow" labels
5555- (`.eyebrow`) — the indie-press voice.
5555+- **Display, UI, and body — Overused Grotesk** (variable, `wght 300–900`). A quirky neo-grotesk
5656+ with a characterful italic; weight + italic carry the personality. Self-hosted woff2/woff in
5757+ `public/fonts/` via `@font-face` (it is not on Fontsource). **OFL-1.1** (GPL-compatible);
5858+ license shipped at `public/fonts/OverusedGrotesk-LICENSE.txt`.
5959+- **Mono — IBM Plex Mono** (Fontsource). Code blocks, and uppercase letter-spaced "eyebrow"
6060+ labels (`.eyebrow`) — the indie-press voice. Kept from SP6.
6161+6262+Fraunces and Newsreader (the SP6 serifs) are removed.
6363+6464+## The time-of-day landing
6565+6666+The hero is centered. Its sky gradient, sun height, greeting, and headline are chosen from the
6767+visitor's local hour across six phases — night (21–4), dawn (5–6), morning (7–9), midday
6868+(10–15), golden (16–18), dusk (19–20). Midday stays warm cream/gold (no blue) to stay on
6969+brand. The sun is a **halo ring** (a thin luminous outline with an inner glow) over a soft
7070+bloom near the horizon — light welling up, not a hard disc.
7171+7272+- **Source of truth:** `src/lib/landing/time-of-day.ts` (phase boundaries + per-phase copy),
7373+ unit-tested. CSS holds the per-phase skies keyed off `html[data-phase]`.
7474+- **No-flash + accessible:** a tiny inline head script sets the phase before first paint; the
7575+ page server-renders a static golden hero so no-JS visitors get a correct, motion-free page.
7676+ Below the hero, the page settles into the standard themed surface (a numbered "how it works"
7777+ strip, the honest Bluesky note, footer).
56785779## Iconography & UI texture
58805959-- "Blocks of type" show up as the editor's curated block set; the mark echoes stacked
6060- lines of type. Hairline rules (`--line`) and a soft horizon gradient (`.sky-wash`) give
6161- atmosphere without clip-art clouds.
6262-- Buttons are mono-labelled, understated; the primary action is sky-blue.
8181+- "Blocks of type" show up as the editor's curated block set; the mark echoes stacked lines of
8282+ type. Hairline rules (`--line`) and the atmospheric sky give warmth without clip-art clouds.
8383+- Buttons are mono-labelled, understated; the primary action is marigold.
63846485## Voice & tone
65866666-Calm, encouraging, plainspoken, a little literary.
6767-- **Empty state:** "A blank page, and the open sky."
8787+Calm, encouraging, plainspoken, a little literary; warm and direct ("your words, your
8888+server"). Honest about what publishing does.
8989+- **Time-aware greetings:** "Up with the sun", "Golden hour", "Good evening".
6890- **Primary buttons:** "Start writing", "Publish", "Update".
6969-- **Reassurance:** "Your data, your server, the open web."
9191+- **Reassurance:** "Your words, your server, the open web."
70927193## Tagline / positioning
72947395**"Write things worth keeping."**
7474-Alternates: "Long-form for the open sky." · "The open sky meets the typesetter's bench." ·
7575-"Your words, your server, the open web."
9696+Alternates: "Catch the first light." · "A studio that wakes with you." · "Your words, your
9797+server, the open web."
76987799## Constraints met
781007979-Tiny favicon ✓ · large hero mark ✓ · monochrome ✓ · light + dark first-class ✓ · freely
8080-licensable fonts, reproducible assets ✓.
101101+Tiny favicon ✓ · large hero treatment ✓ · monochrome-safe mark ✓ · light + dark first-class ✓
102102+· freely licensable, self-hosted fonts (OFL) ✓ · no-JS / reduced-motion fallback ✓.
+3-1
docs/specs/sp6-brand.md
···11# SP6 — Brand identity
2233- **Date:** 2026-06-08
44-- **Status:** ✅ Complete — system built + applied + screenshot-verified
44+- **Status:** ✅ Complete — system built + applied + screenshot-verified.
55+ Superseded in part by [SP8 — First Light](./sp8-brand-first-light.md) (palette, type, and
66+ landing redesigned 2026-06-08); SP6's token system + light/dark architecture carry forward.
57- **Goal (brief §7):** Deliver a complete brand identity and apply it across the editor +
68 reading experience.
79
+1-1
docs/specs/sp8-brand-first-light.md
···11# SP8 — Brand redesign: "First Light"
2233- **Date:** 2026-06-08
44-- **Status:** 📋 Spec — approved, not yet built
44+- **Status:** 🚧 In progress — built, screenshot verification pending
55- **Supersedes:** the visual layer of [SP6](./sp6-brand.md) (altitude-blue + Fraunces/Newsreader).
66 SP6's structure (token system, light/dark, applied-everywhere approach) is kept; only the
77 palette, type, and landing page change.