Decisions — Kenna coiffure
2026-08-10, spec site for an uncontacted lead (built from public Google data only).
Brand (greenfield)
- Palette from the salon itself: the vivid orange glass accent panel visible in
customers' Google photos (eyedropped via canvas sampling, core cluster
#E85500–#F87030) anchors the identity. Primary #C64A05 (AA 5.0:1 on white for
CTAs), vivid accent #F5601C reserved for large display/graphic use, warm daylight
neutrals, near-black dark from the storefront frames.
- Type: Archivo (700/800) + Karla, self-hosted via @fontsource-variable. Deliberate
industrial-editorial pairing; explicitly not Inter/serif-cream.
- Distinctiveness: check passed vs last 4 sites (andre-coiffeur is black/cream/
bronze + Georgia — no collision). Hero layout: left text + orange panel block
bleeding right (echo of the salon wall), vs. recent "left-text-photo-right" heroes.
Structure
- One-pager + legal pages; deviations from the hairdresser spec documented in
category-mapping.md (no team page — solo stylist inferred; no booking embed — none
known; no price menu — prices unknown; placeholder gallery — photo rights).
- Primary CTA tap-to-call; sticky mobile call bar; Google Maps embed for directions.
HairSalonJSON-LD + 4 Service entities; no aggregateRating (policy).
Build
- Astro 5 from the suite's
astro-starter; tokens → CSS variables via
generate-tokens.mjs; copy deck consumed verbatim via copy.mjs (pattern shared with
andre-coiffeur).
- DRAFT=true: noindex, draft ribbon, dossier surface at
/dossier-156073c9/with
mailto answer form to the operator.
- token-discipline: clean (4 intentional
tokens-okexceptions: placeholder panel
heights, 3px quote rule, 767px complement breakpoint).
- publish-preflight: passes all gates except the three draft-mode artifacts
(ribbon/noindex/dossier), which are intentional until go-live.
Fixes found in review
- Copy-deck quotes must be single-line — the parser treats each
>line as a
separate quote; wrapped quotes rendered split mid-sentence (fixed).
- Footer wordmark needed
ink-inverseon the dark footer (was invisible).
Deferred (need Kenna / Pat)
- GitHub remote (private) — per-client authorization is Pat's call.
- Real photos, prices, email, legal entity + UID, languages → TODO.md T1–T6.
- Go-live: DRAFT=false, custom domain, Search Console, GBP website link.