← Corpus / astro-knots / spec
Polish Pass for Arthouse Site
A scoped polish initiative that takes arthouse-site from scaffold-complete to a client-presentable landing page — locked on dark-mode-first feminine arthouse mystique, with a private imagery convention and an AI photo-to-illustration pipeline for NSFW-sensitive source material.
- Path
- specs/Polish-Pass-for-Arthouse-Site.md
- Authors
- Michael Staton
- Augmented with
- Claude Code (Opus 4.7)
- Tags
- Arthouse-Site · Polish-Pass · Portfolio · Typography · Image-Privacy · Astro-Knots
Polish Pass for Arthouse Site
Status: Draft (v0.0.0.2 — scope locked, typography pending pick)
Codename: arthouse-site
Parent spec: [[Maintain-an-Image-Heavy-Portfolio-Site]]
1. Why this spec exists
The original [[Maintain-an-Image-Heavy-Portfolio-Site]] spec defined the full vision. The scaffold has landed (Astro 6 + Svelte 5 + Tailwind 4 + Sveltia CMS, three-mode theme plumbing, content collections, sitemap, Vercel adapter, MarketingBlock, HorizontalSwipe). What hasn’t landed: a landing page the client would actually appreciate.
This pass narrows hard on the home page as the unit of client-presentable polish.
2. Scope (locked 2026-05-18)
2.1 In scope
/(index.astro) — client-presentable. Typography, palette, hero treatment, marketing copy rhythm, motion if warranted.- Brand typography proposal — feminine arthouse mystique, NOT a tech/dev aesthetic.
- Brand color palette — replace the placeholder purple/blue/coral named colors with a feminine arthouse set.
- Three-mode theming discipline — design IN dark mode (canonical for this site), but keep
lightandvibrantmode tokens defined and not visibly broken. Astro-Knots discipline: diverging from three-mode is a clean-up tax later. - Private imagery convention — gitignored directory for client source photos, with documented structure.
- AI image transformation pipeline — separate exploration doc (§5), driver: NSFW-sensitive source photos need an obvious-AI rendering (anime-ish, illustrative) before they can appear publicly.
2.2 Out of scope (this pass)
- Portfolio, services, contact page polish
- WhatsApp CTA design
- Pricing tier cards
- SEO landing pages
- OG image system
/brand-kitand/design-systembuild-out- Gallery format expansion beyond what
HorizontalSwipealready covers
These remain on the parent spec’s roadmap; not blocking client landing-page review.
3. Aesthetic direction: “Feminine Arthouse Mystique”
3.1 The trap to avoid
Most female-artist photography portfolio sites lean on a narrow visual vocabulary that has aged poorly: tight script logos, low-contrast pastels, Squarespace defaults, Instagram-grid layouts. The result reads as “amateur boutique” rather than “atelier.” We want the register of those sites — intimate, editorial, hand-touched, generous whitespace, body-as-subject — without the execution failures.
3.2 The register to hit
- Editorial-magazine typography (thin display serif, generous tracking on eyebrows)
- Asymmetric, off-grid layouts that feel composed rather than templated
- A palette that is dark but warm — not Bauhaus-black, not start-up-graphite
- Restraint on motion: maybe one hover gesture, no scroll-jacking
- Image-as-subject: imagery is the loudest element on the page; type defers
3.3 Hard prohibitions
- No Nerd Fonts, no Space Grotesk, no Inter for display, no JetBrains anything
- No “tech startup” gradients or neon
- No emoji
- No purple as a primary (the current placeholder palette)
3.4 Typography proposals (pick one — see §6)
Option A — “Editorial Mistique” (Vogue / Italian-magazine register)
- Display: Italiana (thin, high-contrast didone) — H1 / hero only
- Subhead: Cormorant Garamond Light Italic — H2 / pull quotes
- Body: Cormorant Garamond Regular — long-form
- Eyebrow / UI: Marcellus small-caps, tracked +120
- Accent (sparing): Italianno script — signature touches only
Option B — “Botanical Atelier” (handmade, garden, atelier-craft)
- Display: Cormorant Garamond Light — H1
- Subhead: Tenor Sans — H2
- Body: EB Garamond — long-form
- Eyebrow / UI: Marcellus SC
- Accent: La Belle Aurore script
Option C — “Modern Boudoir” (contemporary, sharper, less period-piece)
- Display: Playfair Display Italic Light — H1
- Subhead: DM Serif Display — H2
- Body: DM Serif Text or Source Serif Pro Light — long-form
- Eyebrow / UI: DM Sans tracked +200 uppercase
- Accent: Petit Formal Script
All three are Google Fonts — no licensing friction.
3.5 Color palette direction (to refine after typography pick)
Replace current placeholder named tokens with something in this register:
- A deep, warm dark ground (not pure black) — e.g., aubergine-black, ink-plum, midnight-mauve
- A cream/bone neutral for text on dark
- A muted rose or terracotta accent
- A single sharp metallic (champagne, antique brass) for fine rules / emphasis
Final hexes locked after the type pick so the pairing reads coherently.
3.6 Two-tier token note (drift surfaced)
global.css currently names colors with single-dash kebab-case (--color-deep-night) rather than the __ BEM-ish convention from [[Maintain-Themes-Mode-Across-CSS-Tailwind]]. Not fixing silently — folding into the palette rewrite when it happens so the rename is atomic.
4. Private imagery convention
4.1 Problem
The client supplies real photographs, some of which are racy/NSFW. We need them locally for development and AI-transformation source material, but they must never be committed to git, never appear in dist/, and never be served publicly.
4.2 Directory structure
sites/arthouse-site/
private/ # gitignored — source-of-truth client photos
raw/ # original client files, untouched
redacted/ # cropped / blurred versions for internal review
transform-source/ # photos staged for AI transformation
public/
images/
portfolio/ # public, shipped imagery (safe-for-web)
ai-rendered/ # AI-transformed outputs, safe for public
src/content/
images/ # markdown frontmatter referencing public/images/*
4.3 .gitignore additions
# Private imagery — NEVER commit
/private/
4.4 Discipline rules
private/is the only place raw client photos live in this working tree.- Outputs of the AI transformation pipeline land in
public/images/ai-rendered/after explicit human review. - Nothing in
src/content/images/references aprivate/path. Build-time fetch would expose them. - A
private/README.md(gitignored content but trackable filename if desired) documents the convention so a fresh clone makes sense.
4.5 Backup
Because private/ is gitignored, the canonical recoverable copy of client photography lives outside this repo (per the universal pseudomonorepos rule). Likely: a password-managed cloud folder. The user maintains this; it is not Claude’s job to back up.
5. AI image transformation (forked to exploration)
The mechanic — “real photo in, clearly-AI-generated anime/illustrative version out” — is not a one-call decision. Models, costs, fidelity, prompt structure, and consistency-across-a-shoot are all open questions.
Forked to: [[AI-Photo-to-Illustration-Transform-for-Arthouse]] (exploration). Polish pass on the home page does not block on it — the home page can ship with non-sensitive source imagery or a single transformed hero.
6. Open decisions (need user input)
- Typography pick — A, B, or C from §3.4? (Or mix-and-match — common move is “display from A, body from C.”)
- Hero image source for first cut — Do we have a non-sensitive photo we can use unmodified for the first home-page polish iteration, or do we wait for the AI-transform pipeline?
- Marketing copy — Current home page has placeholder copy (“Art That Moves You”). Is the client supplying real copy, or do we draft proposals?
7. Execution plan (once §6 is answered)
To be turned into prompts under context-v/prompts/:
- Lock palette + type — rewrite
global.cssnamed tier with feminine arthouse palette, wire chosen Google Fonts via Astro asset pipeline, update Tailwind@themeblock. - Hero rebuild — replace current split-grid with the chosen composition. Asymmetric, image-led, type-deferent.
- MarketingBlock typographic refit — re-skin
basics/MarketingBlock.astrowith the locked type scale. - Single motion gesture — pick one (image reveal on load, eyebrow text fade-in on scroll, hover state on the WhatsApp CTA). Not all.
- Three-mode sanity — verify
lightandvibrantdon’t visibly explode even if no design effort goes there. - Pre-share walkthrough — read the page on mobile (iOS Safari + Android Chrome), check load on cold cache, confirm no
private/paths leaked.
8. References
- [[Maintain-an-Image-Heavy-Portfolio-Site]] — parent spec
- [[Maintain-Themes-Mode-Across-CSS-Tailwind]] — three-mode blueprint
- [[Styles-Architecture-Blueprint]] — two-tier token system
- [[AI-Photo-to-Illustration-Transform-for-Arthouse]] — forked exploration