Skip to content

feat: selasar rebrand tokens — paper/ink/teak palette + serif display font (Phase 1) - #75

Merged
suprie merged 1 commit into
mainfrom
run/selasar-revamp-replace-src-styles-css-s-light-and-dark-token-values-with-the-plus2-f5c2759a4cc8
Aug 5, 2026
Merged

feat: selasar rebrand tokens — paper/ink/teak palette + serif display font (Phase 1)#75
suprie merged 1 commit into
mainfrom
run/selasar-revamp-replace-src-styles-css-s-light-and-dark-token-values-with-the-plus2-f5c2759a4cc8

Conversation

@suprie

Copy link
Copy Markdown
Owner

Summary

Replaces src/styles.css's dark-first violet/oklch token set with the Selasar rebrand's warm paper/ink/teak palette (3 anchors: paper #F5F1E8, ink #241E17, teak #8A5A3A), adds a --font-display serif token applied to the wordmark, rail mark (sidebar subtitle), and project-name treatments, and verifies the existing light/dark/system theme toggle still renders against the new values. This is prd-rebrand-tokens Phase 1 — Design tokens, the gating PRD of the selasar-revamp epic; Phases 2 (rebrand copy audit) and 3 (full visual pass) remain.

What changed

  • src/styles.css — light+dark token values replaced with the paper/ink/teak palette: --background/--foreground/--primary map to the literal anchors in both schemes, neutrals are warm oklch interpolations at hue ≈73–87, functional colors (destructive/success/warning) warmed to the family, --hljs-* keyword/name/tag remapped to teak, --shadow-* ink-tinted (light) / border-based (dark), card-accent-top gradient warmed. --color-* names unchanged.
  • src/styles.css — new --font-display token (Tailwind v4 font-display utility).
  • src/components/layout/AppShell.tsxfont-display on the wordmark and sidebar subtitle (rail mark).
  • src/components/dashboard/ProjectList.tsxfont-display on the project-name row.
  • src/components/detail/ProjectDetail.tsxfont-display on the breadcrumb header and tab-rail project label.
  • docs/epics/selasar-revamp/prd-rebrand-tokens.md — Phase 1 checklist items marked [x].
  • Plus memory files committed by this skill before push: .loopdeck/loops.md, .loopdeck/decisions.md, .loopdeck/current-loop.md.

PRD

docs/epics/selasar-revamp/prd-rebrand-tokens.md

Decisions

  • 2026-08-05 — Selasar Phase-1 palette derived from the 3 documented anchors only (accepted): --background/--foreground/--primary map to the literal anchors in both schemes; neutrals warm oklch; functional colors warmed; hljs/shadow remapped; --color-* names unchanged.
  • 2026-08-05 — --font-display application mapping for the icon-only brand tile (accepted): rail mark = sidebar subtitle (brand tile is icon-only); project names at ProjectList row + ProjectDetail breadcrumb + tab-rail label.
  • 2026-08-05 — Worktree cleanup script (accepted): 13 stale worktrees pruned.

Test plan

  • npx tsc --noEmit
  • npm run build
  • Manual: in the app, toggle Light / Auto / Dark and confirm the paper/ink/teak palette renders in all three modes, with the wordmark/subtitle and project names in the serif display font.

Verify Verdict

PRD Verification — prd-rebrand-tokens.md

Verdict: PASS

#CriterionStatusEvidence
1Replace src/styles.css's light and dark token values with the mockup's paper/ink/teak palette, keeping the existing --color-* variable names unchanged.PASSsrc/styles.css:49--background: #F5F1E8; :56--foreground: #241E17; :63--primary: #8A5A3A (light); :86--background: #241E17; :93--foreground: #F5F1E8 (dark). --color-* names in @theme inline (:17-:39) unchanged; --hljs-* keyword/name/tag remapped to teak (:216-:237), --shadow-* ink-tinted (light, :77-:79) / border-based (dark, :114-:116).
2Add a --font-display token for the serif display font and apply it to the wordmark, rail mark, and project-name text treatments.PASSsrc/styles.css:16--font-display: ui-serif, Charter, "Iowan Old Style", "Palatino Linotype", Georgia, serif. Wordmark AppShell.tsx:138; rail mark (sidebar subtitle) AppShell.tsx:139; project names ProjectList.tsx:113, ProjectDetail.tsx:132 (breadcrumb header), ProjectDetail.tsx:152 (tab-rail label).
3Verify the existing light/dark/system theme toggle renders correctly against the new values in all three modes.PASSToggle mechanism untouched — src/lib/theme.tsx:36 toggles the .dark class, :41 listens to prefers-color-scheme in auto. Build + structural check (chosen mechanism): npx tsc --noEmit and npm run build clean; compiled CSS carries all 3 anchors in both :root (light #f5f1e8 / #241e17 / #8a5a3a) and .dark (dark #241e17 / #f5f1e8).

Non-goals audit

  • No scope creep detected.

Roll-up: PASS — 0 FAIL, 0 PARTIAL, 3 PASS.

Run metadata

  • Phases:
    • selasar-revamp/replace-src-styles-css-s-light-and-dark-token-values-with-the — "Replace src/styles.css's light and dark token values with the" (selasar-revamp / prd-rebrand-tokens / Phase 1 — Design tokens)
    • selasar-revamp/add-a-font-display-token-for-the-serif-display-font-and-apply-it — "Add a --font-display token for the serif display font and apply it" (selasar-revamp / prd-rebrand-tokens / Phase 1 — Design tokens)
    • selasar-revamp/verify-the-existing-light-dark-system-theme-toggle-renders-correctly — "Verify the existing light/dark/system theme toggle renders correctly" (selasar-revamp / prd-rebrand-tokens / Phase 1 — Design tokens)
  • Budgets: 1500000 tokens total · 16200s wall-clock cap for this turn · 28800s total-run wall-clock cap

… font (Phase 1)
Replaces `src/styles.css`'s dark-first violet/oklch token set with the Selasar rebrand's warm paper/ink/teak palette (3 anchors: paper `#F5F1E8`, ink `#241E17`, teak `#8A5A3A`), adds a `--font-display` serif token applied to the wordmark, rail mark (sidebar subtitle), and project-name treatments, and verifies the existing light/dark/system theme toggle still renders against the new values. This is `prd-rebrand-tokens` Phase 1 — Design tokens, the gating PRD of the `selasar-revamp` epic; Phases 2 (rebrand copy audit) and 3 (full visual pass) remain.
@suprie
suprie marked this pull request as ready for review August 5, 2026 07:43
@suprie
suprie merged commit 47f4911 into mainAug 5, 2026
2 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@suprie