@stylecrib/cli 0.3.1 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +94 -9
- package/agents/MANIFEST.yml +136 -0
- package/agents/README.md +75 -0
- package/agents/art-director.md +168 -0
- package/agents/audacity-director.md +109 -0
- package/agents/brand-identity.md +179 -0
- package/agents/brand-precedent.md +119 -0
- package/agents/brief-enforcer.md +136 -0
- package/agents/component-qa.md +167 -0
- package/agents/cto.md +49 -0
- package/agents/design-director.md +184 -0
- package/agents/design-systems-engineer.md +162 -0
- package/agents/direction-curator.md +133 -0
- package/agents/homogeneity-detector.md +104 -0
- package/agents/logo-designer.md +240 -0
- package/agents/marketing-designer.md +156 -0
- package/agents/media-curator.md +165 -0
- package/agents/motion-engineer.md +270 -0
- package/agents/qa-conductor.md +143 -0
- package/agents/render-qa.md +133 -0
- package/agents/upgrade-simulator.md +123 -0
- package/agents/vp-architecture.md +49 -0
- package/agents/vp-engineering.md +49 -0
- package/dist/index.js +1606 -467
- package/package.json +12 -4
- package/themes/README.md +70 -0
- package/themes/acrylic-soft/THEME.md +142 -0
- package/themes/acrylic-soft/tokens.ts +180 -0
- package/themes/agency-creative/THEME.md +91 -0
- package/themes/agency-creative/tokens.ts +202 -0
- package/themes/agency-portfolio/THEME.md +109 -0
- package/themes/agency-portfolio/tokens.ts +159 -0
- package/themes/ai-startup/THEME.md +95 -0
- package/themes/ai-startup/tokens.ts +162 -0
- package/themes/airline-modern/THEME.md +104 -0
- package/themes/airline-modern/tokens.ts +179 -0
- package/themes/arc-stack/THEME.md +125 -0
- package/themes/arc-stack/tailwind.snippet.ts +17 -0
- package/themes/arc-stack/theme.yml +153 -0
- package/themes/arc-stack/tokens.ts +29 -0
- package/themes/architectural/THEME.md +102 -0
- package/themes/architectural/tokens.ts +159 -0
- package/themes/atelier-radiance/THEME.md +93 -0
- package/themes/atelier-radiance/tailwind.snippet.ts +15 -0
- package/themes/atelier-radiance/theme.yml +130 -0
- package/themes/atelier-radiance/tokens.ts +29 -0
- package/themes/automotive-ev/THEME.md +87 -0
- package/themes/automotive-ev/tokens.ts +183 -0
- package/themes/automotive-luxury/THEME.md +88 -0
- package/themes/automotive-luxury/tokens.ts +175 -0
- package/themes/baby-modern/THEME.md +79 -0
- package/themes/baby-modern/tokens.ts +184 -0
- package/themes/banking-gravity/THEME.md +171 -0
- package/themes/banking-gravity/tokens.ts +169 -0
- package/themes/beauty-clean/THEME.md +92 -0
- package/themes/beauty-clean/tokens.ts +176 -0
- package/themes/beauty-luxury/THEME.md +96 -0
- package/themes/beauty-luxury/tokens.ts +178 -0
- package/themes/bento-modular/BUILD_BRIEF.md +171 -0
- package/themes/bento-modular/THEME.md +80 -0
- package/themes/bento-modular/tailwind.snippet.ts +17 -0
- package/themes/bento-modular/theme.yml +83 -0
- package/themes/bento-modular/tokens.ts +27 -0
- package/themes/bookstore-indie/THEME.md +78 -0
- package/themes/bookstore-indie/tokens.ts +147 -0
- package/themes/brutalist/THEME.md +96 -0
- package/themes/brutalist/tokens.ts +151 -0
- package/themes/business-tiles/THEME.md +141 -0
- package/themes/business-tiles/tokens.ts +178 -0
- package/themes/cabana-poster/THEME.md +158 -0
- package/themes/cabana-poster/tailwind.snippet.ts +16 -0
- package/themes/cabana-poster/theme.yml +221 -0
- package/themes/cabana-poster/tokens.ts +34 -0
- package/themes/case-panel/THEME.md +126 -0
- package/themes/case-panel/tailwind.snippet.ts +15 -0
- package/themes/case-panel/theme.yml +153 -0
- package/themes/case-panel/tokens.ts +28 -0
- package/themes/cinematic-dark/THEME.md +97 -0
- package/themes/cinematic-dark/tokens.ts +195 -0
- package/themes/classic-car/THEME.md +86 -0
- package/themes/classic-car/tokens.ts +173 -0
- package/themes/cloud-friendly/THEME.md +152 -0
- package/themes/cloud-friendly/tokens.ts +181 -0
- package/themes/community-niche/THEME.md +102 -0
- package/themes/community-niche/tokens.ts +177 -0
- package/themes/corporate-grid/THEME.md +154 -0
- package/themes/corporate-grid/tokens.ts +182 -0
- package/themes/couture-luxury/THEME.md +85 -0
- package/themes/couture-luxury/tokens.ts +146 -0
- package/themes/creator-social/THEME.md +131 -0
- package/themes/creator-social/tokens.ts +249 -0
- package/themes/crypto-onchain/THEME.md +100 -0
- package/themes/crypto-onchain/tokens.ts +207 -0
- package/themes/cycling-brand/THEME.md +78 -0
- package/themes/cycling-brand/tokens.ts +185 -0
- package/themes/dating-friendly/THEME.md +102 -0
- package/themes/dating-friendly/tokens.ts +178 -0
- package/themes/dense-utility/THEME.md +85 -0
- package/themes/dense-utility/tokens.ts +155 -0
- package/themes/devtool-cli/THEME.md +100 -0
- package/themes/devtool-cli/tokens.ts +195 -0
- package/themes/devtool-docs/THEME.md +105 -0
- package/themes/devtool-docs/tokens.ts +177 -0
- package/themes/editorial/THEME.md +129 -0
- package/themes/editorial/tailwind.snippet.ts +15 -0
- package/themes/editorial/theme.yml +173 -0
- package/themes/editorial/tokens.ts +29 -0
- package/themes/education-formal/THEME.md +154 -0
- package/themes/education-formal/tailwind.snippet.ts +15 -0
- package/themes/education-formal/theme.yml +186 -0
- package/themes/education-formal/tokens.ts +29 -0
- package/themes/education-warm/THEME.md +91 -0
- package/themes/education-warm/tokens.ts +185 -0
- package/themes/ember-poster/README.md +79 -0
- package/themes/ember-poster/THEME.md +101 -0
- package/themes/ember-poster/package.json +34 -0
- package/themes/ember-poster/tailwind.snippet.ts +17 -0
- package/themes/ember-poster/theme.yml +109 -0
- package/themes/ember-poster/tokens.ts +27 -0
- package/themes/enterprise-cloud/THEME.md +139 -0
- package/themes/enterprise-cloud/tokens.ts +179 -0
- package/themes/enterprise-tech/THEME.md +167 -0
- package/themes/enterprise-tech/tailwind.snippet.ts +15 -0
- package/themes/enterprise-tech/theme.yml +202 -0
- package/themes/enterprise-tech/tokens.ts +29 -0
- package/themes/ev-charging/THEME.md +94 -0
- package/themes/ev-charging/tokens.ts +185 -0
- package/themes/farm-direct/THEME.md +92 -0
- package/themes/farm-direct/tokens.ts +180 -0
- package/themes/fintech-card/THEME.md +96 -0
- package/themes/fintech-card/tokens.ts +191 -0
- package/themes/fintech-trust/THEME.md +94 -0
- package/themes/fintech-trust/tokens.ts +192 -0
- package/themes/food-blog/THEME.md +98 -0
- package/themes/food-blog/tokens.ts +183 -0
- package/themes/forum-classic/THEME.md +100 -0
- package/themes/forum-classic/tokens.ts +168 -0
- package/themes/fresh-plate/THEME.md +144 -0
- package/themes/fresh-plate/tailwind.snippet.ts +16 -0
- package/themes/fresh-plate/theme.yml +189 -0
- package/themes/fresh-plate/tokens.ts +30 -0
- package/themes/furniture-modern/THEME.md +94 -0
- package/themes/furniture-modern/tokens.ts +176 -0
- package/themes/gaming-esports/THEME.md +146 -0
- package/themes/gaming-esports/tokens.ts +199 -0
- package/themes/gaming-streamer/THEME.md +139 -0
- package/themes/gaming-streamer/tokens.ts +201 -0
- package/themes/glassmorphic-modern/THEME.md +119 -0
- package/themes/glassmorphic-modern/tokens.ts +174 -0
- package/themes/government-civic/THEME.md +138 -0
- package/themes/government-civic/tokens.ts +164 -0
- package/themes/gym-chain/THEME.md +79 -0
- package/themes/gym-chain/tokens.ts +196 -0
- package/themes/healthcare-bright/THEME.md +95 -0
- package/themes/healthcare-bright/tokens.ts +184 -0
- package/themes/home-decor/THEME.md +94 -0
- package/themes/home-decor/tokens.ts +177 -0
- package/themes/hotel-boutique/THEME.md +110 -0
- package/themes/hotel-boutique/tokens.ts +179 -0
- package/themes/hyperminimal-mono/THEME.md +91 -0
- package/themes/hyperminimal-mono/tokens.ts +150 -0
- package/themes/indie-art-game/THEME.md +107 -0
- package/themes/indie-art-game/tokens.ts +216 -0
- package/themes/insurance-legacy/THEME.md +101 -0
- package/themes/insurance-legacy/tokens.ts +182 -0
- package/themes/insurance-modern/THEME.md +103 -0
- package/themes/insurance-modern/tokens.ts +192 -0
- package/themes/kaiju-reveal/THEME.md +97 -0
- package/themes/kaiju-reveal/tokens.ts +185 -0
- package/themes/kinetic-data/THEME.md +172 -0
- package/themes/kinetic-data/tailwind.snippet.ts +16 -0
- package/themes/kinetic-data/theme.yml +207 -0
- package/themes/kinetic-data/tokens.ts +30 -0
- package/themes/kinetic-headline/BUILD_BRIEF.md +156 -0
- package/themes/kinetic-headline/THEME.md +78 -0
- package/themes/kinetic-headline/tailwind.snippet.ts +16 -0
- package/themes/kinetic-headline/theme.yml +81 -0
- package/themes/kinetic-headline/tokens.ts +26 -0
- package/themes/law-firm/THEME.md +108 -0
- package/themes/law-firm/tokens.ts +158 -0
- package/themes/lawtech-modern/THEME.md +107 -0
- package/themes/lawtech-modern/tokens.ts +192 -0
- package/themes/linkedin-pro/THEME.md +102 -0
- package/themes/linkedin-pro/tokens.ts +174 -0
- package/themes/logistics-modern/THEME.md +94 -0
- package/themes/logistics-modern/tokens.ts +187 -0
- package/themes/magazine-glossy/THEME.md +74 -0
- package/themes/magazine-glossy/tokens.ts +158 -0
- package/themes/marker-mag/THEME.md +128 -0
- package/themes/marker-mag/tailwind.snippet.ts +15 -0
- package/themes/marker-mag/theme.yml +159 -0
- package/themes/marker-mag/tokens.ts +27 -0
- package/themes/marketplace-modern/THEME.md +135 -0
- package/themes/marketplace-modern/tokens.ts +186 -0
- package/themes/marketplace-vintage/THEME.md +110 -0
- package/themes/marketplace-vintage/tokens.ts +185 -0
- package/themes/maximalist/THEME.md +96 -0
- package/themes/maximalist/tokens.ts +168 -0
- package/themes/mid-century/THEME.md +109 -0
- package/themes/mid-century/tokens.ts +162 -0
- package/themes/motorcycle-brand/THEME.md +86 -0
- package/themes/motorcycle-brand/tokens.ts +174 -0
- package/themes/museum/THEME.md +83 -0
- package/themes/museum/tokens.ts +147 -0
- package/themes/music-streaming/THEME.md +101 -0
- package/themes/music-streaming/tokens.ts +187 -0
- package/themes/music-vinyl/THEME.md +98 -0
- package/themes/music-vinyl/tokens.ts +167 -0
- package/themes/nature-distilled/BUILD_BRIEF.md +158 -0
- package/themes/nature-distilled/THEME.md +81 -0
- package/themes/nature-distilled/tailwind.snippet.ts +16 -0
- package/themes/nature-distilled/theme.yml +91 -0
- package/themes/nature-distilled/tokens.ts +26 -0
- package/themes/news-tabloid/THEME.md +72 -0
- package/themes/news-tabloid/tokens.ts +158 -0
- package/themes/news-tech/THEME.md +75 -0
- package/themes/news-tech/tokens.ts +149 -0
- package/themes/newsletter/THEME.md +82 -0
- package/themes/newsletter/tokens.ts +138 -0
- package/themes/newspaper-classic/THEME.md +74 -0
- package/themes/newspaper-classic/tokens.ts +159 -0
- package/themes/nonprofit-arts/THEME.md +78 -0
- package/themes/nonprofit-arts/tokens.ts +157 -0
- package/themes/nonprofit-warm/THEME.md +105 -0
- package/themes/nonprofit-warm/tokens.ts +188 -0
- package/themes/outdoor-adventure/THEME.md +113 -0
- package/themes/outdoor-adventure/tokens.ts +181 -0
- package/themes/overland-broadside/THEME.md +119 -0
- package/themes/overland-broadside/tailwind.snippet.ts +17 -0
- package/themes/overland-broadside/theme.yml +138 -0
- package/themes/overland-broadside/tokens.ts +27 -0
- package/themes/performance-engineered/THEME.md +162 -0
- package/themes/performance-engineered/tailwind.snippet.ts +15 -0
- package/themes/performance-engineered/theme.yml +193 -0
- package/themes/performance-engineered/tokens.ts +29 -0
- package/themes/pet-food/THEME.md +78 -0
- package/themes/pet-food/tokens.ts +185 -0
- package/themes/pharma-clinical/THEME.md +164 -0
- package/themes/pharma-clinical/tailwind.snippet.ts +15 -0
- package/themes/pharma-clinical/theme.yml +201 -0
- package/themes/pharma-clinical/tokens.ts +29 -0
- package/themes/pill-editorial/THEME.md +125 -0
- package/themes/pill-editorial/tailwind.snippet.ts +15 -0
- package/themes/pill-editorial/theme.yml +168 -0
- package/themes/pill-editorial/tokens.ts +31 -0
- package/themes/podcast-warm/THEME.md +103 -0
- package/themes/podcast-warm/tokens.ts +192 -0
- package/themes/publisher-indie/THEME.md +78 -0
- package/themes/publisher-indie/tokens.ts +148 -0
- package/themes/raw-concrete/BUILD_BRIEF.md +157 -0
- package/themes/raw-concrete/THEME.md +76 -0
- package/themes/raw-concrete/tailwind.snippet.ts +16 -0
- package/themes/raw-concrete/theme.yml +88 -0
- package/themes/raw-concrete/tokens.ts +27 -0
- package/themes/realestate-luxury/THEME.md +94 -0
- package/themes/realestate-luxury/tokens.ts +169 -0
- package/themes/realestate-marketplace/THEME.md +106 -0
- package/themes/realestate-marketplace/tokens.ts +183 -0
- package/themes/restaurant-modern/THEME.md +109 -0
- package/themes/restaurant-modern/tokens.ts +172 -0
- package/themes/runway-fashion/THEME.md +99 -0
- package/themes/runway-fashion/tokens.ts +167 -0
- package/themes/saturday-morning/THEME.md +117 -0
- package/themes/saturday-morning/tokens.ts +281 -0
- package/themes/schema.ts +235 -0
- package/themes/signal-dark/BUILD_BRIEF.md +168 -0
- package/themes/signal-dark/THEME.md +107 -0
- package/themes/signal-dark/tokens.ts +181 -0
- package/themes/soft-modern/THEME.md +91 -0
- package/themes/soft-modern/tokens.ts +166 -0
- package/themes/solar-residential/THEME.md +92 -0
- package/themes/solar-residential/tokens.ts +176 -0
- package/themes/sports-league/THEME.md +180 -0
- package/themes/sports-league/tailwind.snippet.ts +15 -0
- package/themes/sports-league/theme.yml +213 -0
- package/themes/sports-league/tokens.ts +32 -0
- package/themes/stadium-sport/THEME.md +114 -0
- package/themes/stadium-sport/tokens.ts +187 -0
- package/themes/streetwear-hype/THEME.md +100 -0
- package/themes/streetwear-hype/tokens.ts +174 -0
- package/themes/studio-architect/THEME.md +108 -0
- package/themes/studio-architect/tokens.ts +162 -0
- package/themes/studio-photographer/THEME.md +88 -0
- package/themes/studio-photographer/tokens.ts +164 -0
- package/themes/team-kanban/THEME.md +167 -0
- package/themes/team-kanban/tailwind.snippet.ts +15 -0
- package/themes/team-kanban/theme.yml +209 -0
- package/themes/team-kanban/tokens.ts +35 -0
- package/themes/telehealth-modern/THEME.md +95 -0
- package/themes/telehealth-modern/tokens.ts +197 -0
- package/themes/tourism-board/THEME.md +111 -0
- package/themes/tourism-board/tokens.ts +173 -0
- package/themes/toys-modern/THEME.md +79 -0
- package/themes/toys-modern/tokens.ts +200 -0
- package/themes/travel-luxury/THEME.md +95 -0
- package/themes/travel-luxury/tokens.ts +162 -0
- package/themes/vacation-rental/THEME.md +105 -0
- package/themes/vacation-rental/tokens.ts +174 -0
- package/themes/vault-reel/THEME.md +134 -0
- package/themes/vault-reel/tailwind.snippet.ts +16 -0
- package/themes/vault-reel/theme.yml +167 -0
- package/themes/vault-reel/tokens.ts +30 -0
- package/themes/vet-modern/THEME.md +79 -0
- package/themes/vet-modern/tokens.ts +194 -0
- package/themes/web3-restraint/THEME.md +87 -0
- package/themes/web3-restraint/tokens.ts +154 -0
- package/themes/wellness-active/THEME.md +102 -0
- package/themes/wellness-active/tokens.ts +203 -0
- package/themes/wellness-spa/THEME.md +93 -0
- package/themes/wellness-spa/tokens.ts +173 -0
- package/themes/y2k-chrome/THEME.md +118 -0
- package/themes/y2k-chrome/tokens.ts +249 -0
- package/themes/yoga-studio/THEME.md +76 -0
- package/themes/yoga-studio/tokens.ts +163 -0
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# Arc Stack — Family D, Contemporary Web & Award Trends.
|
|
2
|
+
#
|
|
3
|
+
# NEW-BASE CANDIDATE for BESPOKE_THEME_SYSTEM.md, adjacent to Base 33
|
|
4
|
+
# Dark Premium. Base 33 is quiet dark-mode SaaS (layered dark surfaces
|
|
5
|
+
# + one confident accent + hairline borders). Arc Stack is LOUD dark-
|
|
6
|
+
# mode infrastructure marketing — the accent flips from "restrained
|
|
7
|
+
# hairline" to "electric radial glow behind the hero display type" —
|
|
8
|
+
# plus alternating dark/white full-bleed inverted bands, monumental
|
|
9
|
+
# TWK Everett display sans, and a bento feature grid at the bottom.
|
|
10
|
+
# Same DNA (dark canvas + one accent + crisp sans) but different
|
|
11
|
+
# volume level.
|
|
12
|
+
#
|
|
13
|
+
# Authored from Matt's provided design brief (2026-07-04, sui.io
|
|
14
|
+
# reference). Placeholder demonstration brand is a fictional Web3 /
|
|
15
|
+
# infrastructure protocol called "STRATA" — domain-agnostic mockup
|
|
16
|
+
# that could be re-skinned to any blockchain protocol, foundation
|
|
17
|
+
# model, dev-tools infra launch, or premium SaaS relaunch. The
|
|
18
|
+
# register expresses "electric infrastructure" through TYPE + GLOW
|
|
19
|
+
# + inverted BANDS rather than decoration.
|
|
20
|
+
#
|
|
21
|
+
# Seventh theme via the v2 harness. Second Family D theme (after
|
|
22
|
+
# nature-distilled, bento-modular, kinetic-headline in that family;
|
|
23
|
+
# raw-concrete Family A; ember-poster Family C; overland-broadside
|
|
24
|
+
# Family E). Third NEW BASE (after ember-poster, overland-broadside).
|
|
25
|
+
#
|
|
26
|
+
# Alternative slugs considered: voltage-signal, plasma-dark, arc-signal,
|
|
27
|
+
# spectrum-signal, stack-signal. Arc-stack picked because "arc"
|
|
28
|
+
# captures the electric-glow-behind-display signature and "stack"
|
|
29
|
+
# reads as the full-stack infrastructure register that these sites
|
|
30
|
+
# always sell.
|
|
31
|
+
|
|
32
|
+
name: Arc Stack
|
|
33
|
+
concept: Electric infrastructure register — dark charcoal canvas with a radial electric-blue glow behind the hero display type, monumental TWK Everett sans at broadside scale, alternating dark/white full-bleed inverted bands, small inline glyph marks embedded inside key phrases in the headline copy, and a bento feature grid on the closing sections.
|
|
34
|
+
influence: Web3 protocol relaunches (the Sui / Aptos / Solana marketing register when they refuse the tech-bro purple gradient and instead reach for a monumental dark sans + one saturated signal accent). Foundation-model marketing (the Anthropic / Modal / Baseten register at their most confident dark-mode). Vercel/Linear at their most electric. Bloomberg terminal turned into a launch page.
|
|
35
|
+
|
|
36
|
+
family: D
|
|
37
|
+
base_number: 33
|
|
38
|
+
base_note: New-base candidate adjacent to Base 33 Dark Premium. Base 33 is Söhne/Hanken-grade quiet dark SaaS with a single restrained accent (Radix violet). Arc Stack keeps the dark ground but flips the accent from "confident hairline" to "radial glow behind the display type" and adds full-bleed white inverted bands as structural interruptions. Same DNA (dark canvas, layered surfaces, one accent, crisp sans), louder volume, more marketing-forward.
|
|
39
|
+
|
|
40
|
+
render_url: http://localhost:5173/themes/arc-stack
|
|
41
|
+
|
|
42
|
+
surface: web
|
|
43
|
+
|
|
44
|
+
typography:
|
|
45
|
+
display: TWK Everett (paid, from TypeMates) or Inter Display / General Sans as broader-market fallback — 400/500/700 weight, mixed case, letter-spacing -0.033em at hero scale (-5.85px at 176px). At scale — 176px monumental hero, 96px section-headline, 78px inverted-band-headline, 60px h3, 21px lead body. TWK Everett is the reference face (its condensed-caps proportions + tight tracking is the exact register); Inter Display is the safest free approximation with similar humanist proportions.
|
|
46
|
+
body: TWK Everett same family — 400 weight, mixed-case, line-height 1.4, 16-18px body copy. Small captions get 13-14px 500-weight. This theme's discipline is ONE type family across display + body (matches the reference), not display + body split.
|
|
47
|
+
mono: TWK Everett Mono — narrowly scoped to numbered index labels (01 02 03…), spec-callouts, and the money counter. NEVER used for section eyebrows, corner tags, metadata rows, or bylines (those are universal-slop-blocklist hits regardless of face).
|
|
48
|
+
scale: 1.333 (perfect fourth — deliberately wide contrast so the monumental display shouts on the dark canvas and the body settles into calm captioning)
|
|
49
|
+
|
|
50
|
+
palette:
|
|
51
|
+
bg: "#222529"
|
|
52
|
+
surface: "#131518"
|
|
53
|
+
ink: "#F4F5F7"
|
|
54
|
+
accent: "#298DFF" # electric signal blue — the radial glow behind hero + primary button fills, small icons inside key phrases
|
|
55
|
+
secondary: "#4DA2FF" # lighter signal blue — for hover states and secondary accents
|
|
56
|
+
signal: "#FF3D3D" # alert red — used for negation indicators, critical highlights ONLY, never decoratively
|
|
57
|
+
success: "#219653" # trust green — checkmarks on feature-list rows, verified indicators
|
|
58
|
+
mute: "#6C7584" # secondary text, muted labels
|
|
59
|
+
|
|
60
|
+
density: balanced
|
|
61
|
+
|
|
62
|
+
motion: |
|
|
63
|
+
Ships live in the section renderer (no external dependencies):
|
|
64
|
+
1. Radial hero-glow entry — the electric-blue radial gradient behind the H1 fades in from opacity 0 → 0.85 over 900ms cubic-bezier(0.16,1,0.3,1) on first paint, then a slow 8s pulse loop keeps it breathing (opacity 0.75 ↔ 0.95).
|
|
65
|
+
2. Hero H1 stagger reveal — each word of the monumental headline slides in from translateY(24px) + opacity 0, 100ms stagger per word, 700ms cubic-bezier per word.
|
|
66
|
+
3. Highlighted-phrase glyph pop — the inline glyph marks (e.g., a small blue diamond next to "electric blocks") pop in 400ms after their surrounding word settles, scale(0.6 → 1) + fade.
|
|
67
|
+
4. Inverted-band cross-fade transition — as the user scrolls from dark canvas into a white inverted band, the background transitions via a scroll-linked gradient (background-color transition over 400ms) so the shift reads as intentional, not jarring.
|
|
68
|
+
5. Bento tile hover-lift — each dark bento tile scales to 1.02 + adds a subtle accent-blue inset border on hover, 220ms cubic-bezier(0.65,0,0.35,1).
|
|
69
|
+
6. Money-counter roll-up — the big TVL/aggregate figure ("$442,826,452" register) rolls up from 0 → target on first-view via requestAnimationFrame, 2200ms ease-out, only fires once per session.
|
|
70
|
+
7. Start-button color-shift — the four colored pill labels (Start building / Start coding / Start earning / Start connecting) each have their own accent color; hover flips the background from transparent to the accent with a 200ms transition.
|
|
71
|
+
8. prefers-reduced-motion: reduce — all keyframe animations disabled, glow starts at final opacity (no pulse), stagger removes, money counter jumps to final value, hover transitions become instant. State changes still fire (they're content, not decoration).
|
|
72
|
+
|
|
73
|
+
Customer installs these as dependencies for the deeper motion tier:
|
|
74
|
+
- Lenis — smooth inertial scroll (the alternating dark/white bands need inertial scroll to feel considered).
|
|
75
|
+
- GSAP ScrollTrigger — the money-counter roll-up + inverted-band cross-fade + hero stagger benefit from orchestrated timelines.
|
|
76
|
+
- Custom branded preloader with the arc-blue radial glow expanding to fill the viewport, then the H1 revealing from underneath.
|
|
77
|
+
|
|
78
|
+
Motion character: technical, precise, never bouncy. Custom cubic-bezier(0.51,0,0.08,1) for reveal easings (the reference's own cubic-default), 375ms fast / 525ms default durations (matches the reference's --duration-fast / --duration-default). All motion serves the "electric infrastructure" tone — nothing quick, nothing cute, nothing decorative.
|
|
79
|
+
|
|
80
|
+
signature: |
|
|
81
|
+
Monumental TWK Everett sans at 176px hero, letter-spacing crushed
|
|
82
|
+
to -0.033em, on a dark charcoal canvas (#222529). BEHIND the hero
|
|
83
|
+
H1 sits a huge radial electric-blue glow (#298DFF at ~35% opacity
|
|
84
|
+
over a 1400px radius), softly pulsing — the "arc" that gives the
|
|
85
|
+
theme its name. Inline glyph marks embed INSIDE key phrases in the
|
|
86
|
+
headline body copy at highlighted spans — each mark is a bespoke
|
|
87
|
+
inline SVG shape (a small filled square, a small filled circle, a
|
|
88
|
+
small plus-sign cross) in the accent color, sized 0.7em, offset
|
|
89
|
+
0.15em above the baseline. Full-bleed white inverted bands break
|
|
90
|
+
the dark rhythm every 2-3 sections, carrying feature-list rows
|
|
91
|
+
(small SVG icon + label + body copy + trust-green checkmark) or
|
|
92
|
+
side-by-side comparison tables. Bento-style feature grid on the
|
|
93
|
+
closing sections uses dark cards with subtle #131518 surface fill
|
|
94
|
+
and an accent-blue hover state. Four colored pill labels ("Start
|
|
95
|
+
building" / "Start coding" / "Start earning" / "Start connecting")
|
|
96
|
+
each carry their own signal hue so the CTAs read as segmented
|
|
97
|
+
paths, not a hero-button repeat. Money counter using TWK Everett
|
|
98
|
+
Mono 700 at 96px shows a fictional aggregate value ("$442,826,452"
|
|
99
|
+
register) rolling up on scroll into view. Border-radius is 0
|
|
100
|
+
everywhere — no rounded cards, buttons, inputs, media. Brand
|
|
101
|
+
character sits in the display type, the glow, the inline SVG glyph
|
|
102
|
+
marks, and the disciplined dark/white banded rhythm — no
|
|
103
|
+
mono-caps eyebrows, no dot-metadata rows, no small corner tags, no
|
|
104
|
+
three-column feature grids as a fallback.
|
|
105
|
+
|
|
106
|
+
imagery: |
|
|
107
|
+
Full-bleed abstract product/infrastructure imagery on the dark
|
|
108
|
+
canvas: vertical light-blue stripe backdrops for one section (like
|
|
109
|
+
a spectrum readout), abstract dashboard captures on the inverted
|
|
110
|
+
white bands, small colored circular avatar-monogram ornaments on
|
|
111
|
+
testimonial rows, tiny SVG icons inline inside headline text. NO
|
|
112
|
+
purple/indigo gradient blobs (that's the tech-bro slop this
|
|
113
|
+
register explicitly refuses), NO glassmorphism, NO grainy
|
|
114
|
+
photography — this is an INFRASTRUCTURE marketing site, not a
|
|
115
|
+
DTC editorial. Photography where it appears is abstract product
|
|
116
|
+
screenshots or blueprints, always full-bleed, never inside framed
|
|
117
|
+
cards with drop-shadow.
|
|
118
|
+
|
|
119
|
+
best_for:
|
|
120
|
+
- Web3 protocol relaunches / mainnet marketing pages
|
|
121
|
+
- Foundation-model / AI-platform launch pages (the Anthropic / Modal / Baseten register at their most electric)
|
|
122
|
+
- Dev-tools infrastructure (Vercel-tier launch pages that trade on monumental confidence)
|
|
123
|
+
- Cryptocurrency exchanges + wallet marketing
|
|
124
|
+
- B2B fintech / SaaS wanting an electric-signal register instead of muted-navy
|
|
125
|
+
- Investor / TVL / metrics-showcase marketing pages where a big animated number IS the argument
|
|
126
|
+
|
|
127
|
+
avoid:
|
|
128
|
+
- "Border-radius greater than 0px anywhere on the page — sharp corners are core to the identity"
|
|
129
|
+
- "Rounded pill buttons or fully-rounded CTAs — buttons are sharp-cornered with 0 radius, that's it"
|
|
130
|
+
- "Tech-bro purple gradient (#8B5CF6 → #6366F1 blob backgrounds) — this register EXPLICITLY refuses that. The glow is single-hue electric blue, not multi-stop violet."
|
|
131
|
+
- "Serif or condensed display type — display face must be humanist sans (TWK Everett or Inter Display), never Anton, never Fraunces"
|
|
132
|
+
- "Multiple accent colors flooding the composition — glow is ONE signal color, red is ONLY for alerts/negations, green is ONLY for trust/checkmarks. No accent lives outside its role."
|
|
133
|
+
- "Warm color palettes — this register is COOL and ELECTRIC (charcoal, ink, signal-blue), never espresso/cream/amber flooding the canvas"
|
|
134
|
+
- "Corporate polish — no shadow-md cards, no soft glow beyond the hero, no gradient hero backdrop except the single radial arc-glow"
|
|
135
|
+
- "Three-tier pricing cards or feature-pillar grids — the composition refuses SaaS defaults structurally, information laid out as bento tiles and full-bleed bands, not card grids"
|
|
136
|
+
- "Center-aligned everything — hero is left-weighted and asymmetric, the glow sits behind the display type not the whole page"
|
|
137
|
+
- "Grain overlay on the dark canvas as a decorative treatment — the composition is CRISP, not textured. Grain is banned."
|
|
138
|
+
- "Purple-blue duotone gradient anywhere — the arc-glow is single-hue, never a two-stop mesh"
|
|
139
|
+
- "Emoji or decorative unicode marks — inline glyphs are bespoke SVG shapes only (small diamonds, circles, plus-signs in accent color)"
|
|
140
|
+
- "Auto-advancing hero sliders / cycling headline words / horizontal ticker bars — none of these ship on this theme"
|
|
141
|
+
|
|
142
|
+
banned_defaults:
|
|
143
|
+
# Global blocklist from BESPOKE_THEME_SYSTEM.md
|
|
144
|
+
- "claude-cream (#F4F1EA + serif + #D97757)"
|
|
145
|
+
- "void+acid (near-black bg + single bright acid-green or vermilion accent)"
|
|
146
|
+
- "broadsheet-on-noneditorial (hairline rules + zero border-radius + newspaper columns on non-editorial content)"
|
|
147
|
+
- "tech-bro purple gradient (purple→blue gradient hero + centered headline + double CTA + emoji icons)"
|
|
148
|
+
- "uniform-everything (identical padding + one weight of one sans doing every job + rounded-2xl + shadow-md cards)"
|
|
149
|
+
# Base-specific
|
|
150
|
+
- "arc-glow-as-decoration (the radial electric-blue glow is a signature ONCE — hero only. Applied to every section it becomes ambient-glow slop and the register dies.)"
|
|
151
|
+
- "inverted-band-plus-warm-palette (the white inverted bands only work against COOL charcoal — swapping the canvas to espresso/cream breaks the register into generic-Vercel dark-mode)"
|
|
152
|
+
- "bento-plus-shadow (dark bento tiles must sit flat on the canvas with a subtle surface fill difference — the moment you add shadow-lg or a rounded border it collapses into stock-bento SaaS default)"
|
|
153
|
+
- "signal-flood (electric-blue is a signal color — used sparingly for the glow, CTA fills, hover states, and small inline glyph marks only. Flooding it across large surfaces collapses the register into tech-bro-gradient slop.)"
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// Generated from theme.yml. Do not edit by hand — edit theme.yml + re-materialize.
|
|
2
|
+
|
|
3
|
+
export const tokens = {
|
|
4
|
+
slug: "arc-stack",
|
|
5
|
+
family: "D",
|
|
6
|
+
base: "33",
|
|
7
|
+
palette: {
|
|
8
|
+
"bg": "#222529",
|
|
9
|
+
"surface": "#131518",
|
|
10
|
+
"ink": "#F4F5F7",
|
|
11
|
+
"accent": "#298DFF",
|
|
12
|
+
"secondary": "#4DA2FF",
|
|
13
|
+
"signal": "#FF3D3D",
|
|
14
|
+
"success": "#219653",
|
|
15
|
+
"mute": "#6C7584"
|
|
16
|
+
},
|
|
17
|
+
typography: {
|
|
18
|
+
"display": "TWK Everett (paid, from TypeMates) or Inter Display / General Sans as broader-market fallback — 400/500/700 weight, mixed case, letter-spacing -0.033em at hero scale (-5.85px at 176px). At scale — 176px monumental hero, 96px section-headline, 78px inverted-band-headline, 60px h3, 21px lead body. TWK Everett is the reference face (its condensed-caps proportions + tight tracking is the exact register); Inter Display is the safest free approximation with similar humanist proportions.",
|
|
19
|
+
"body": "TWK Everett same family — 400 weight, mixed-case, line-height 1.4, 16-18px body copy. Small captions get 13-14px 500-weight. This theme's discipline is ONE type family across display + body (matches the reference), not display + body split.",
|
|
20
|
+
"mono": "TWK Everett Mono — narrowly scoped to numbered index labels (01 02 03…), spec-callouts, and the money counter. NEVER used for section eyebrows, corner tags, metadata rows, or bylines (those are universal-slop-blocklist hits regardless of face).",
|
|
21
|
+
"scale": "1.333 (perfect fourth — deliberately wide contrast so the monumental display shouts on the dark canvas and the body settles into calm captioning)"
|
|
22
|
+
},
|
|
23
|
+
surface: "web",
|
|
24
|
+
density: "balanced",
|
|
25
|
+
motion: "Ships live in the section renderer (no external dependencies):\n1. Radial hero-glow entry — the electric-blue radial gradient behind the H1 fades in from opacity 0 → 0.85 over 900ms cubic-bezier(0.16,1,0.3,1) on first paint, then a slow 8s pulse loop keeps it breathing (opacity 0.75 ↔ 0.95).\n2. Hero H1 stagger reveal — each word of the monumental headline slides in from translateY(24px) + opacity 0, 100ms stagger per word, 700ms cubic-bezier per word.\n3. Highlighted-phrase glyph pop — the inline glyph marks (e.g., a small blue diamond next to \"electric blocks\") pop in 400ms after their surrounding word settles, scale(0.6 → 1) + fade.\n4. Inverted-band cross-fade transition — as the user scrolls from dark canvas into a white inverted band, the background transitions via a scroll-linked gradient (background-color transition over 400ms) so the shift reads as intentional, not jarring.\n5. Bento tile hover-lift — each dark bento tile scales to 1.02 + adds a subtle accent-blue inset border on hover, 220ms cubic-bezier(0.65,0,0.35,1).\n6. Money-counter roll-up — the big TVL/aggregate figure (\"$442,826,452\" register) rolls up from 0 → target on first-view via requestAnimationFrame, 2200ms ease-out, only fires once per session.\n7. Start-button color-shift — the four colored pill labels (Start building / Start coding / Start earning / Start connecting) each have their own accent color; hover flips the background from transparent to the accent with a 200ms transition.\n8. prefers-reduced-motion: reduce — all keyframe animations disabled, glow starts at final opacity (no pulse), stagger removes, money counter jumps to final value, hover transitions become instant. State changes still fire (they're content, not decoration).\n\nCustomer installs these as dependencies for the deeper motion tier:\n- Lenis — smooth inertial scroll (the alternating dark/white bands need inertial scroll to feel considered).\n- GSAP ScrollTrigger — the money-counter roll-up + inverted-band cross-fade + hero stagger benefit from orchestrated timelines.\n- Custom branded preloader with the arc-blue radial glow expanding to fill the viewport, then the H1 revealing from underneath.\n\nMotion character: technical, precise, never bouncy. Custom cubic-bezier(0.51,0,0.08,1) for reveal easings (the reference's own cubic-default), 375ms fast / 525ms default durations (matches the reference's --duration-fast / --duration-default). All motion serves the \"electric infrastructure\" tone — nothing quick, nothing cute, nothing decorative.\n",
|
|
26
|
+
signature: "Monumental TWK Everett sans at 176px hero, letter-spacing crushed\nto -0.033em, on a dark charcoal canvas (#222529). BEHIND the hero\nH1 sits a huge radial electric-blue glow (#298DFF at ~35% opacity\nover a 1400px radius), softly pulsing — the \"arc\" that gives the\ntheme its name. Inline glyph marks embed INSIDE key phrases in the\nheadline body copy at highlighted spans — each mark is a bespoke\ninline SVG shape (a small filled square, a small filled circle, a\nsmall plus-sign cross) in the accent color, sized 0.7em, offset\n0.15em above the baseline. Full-bleed white inverted bands break\nthe dark rhythm every 2-3 sections, carrying feature-list rows\n(small SVG icon + label + body copy + trust-green checkmark) or\nside-by-side comparison tables. Bento-style feature grid on the\nclosing sections uses dark cards with subtle #131518 surface fill\nand an accent-blue hover state. Four colored pill labels (\"Start\nbuilding\" / \"Start coding\" / \"Start earning\" / \"Start connecting\")\neach carry their own signal hue so the CTAs read as segmented\npaths, not a hero-button repeat. Money counter using TWK Everett\nMono 700 at 96px shows a fictional aggregate value (\"$442,826,452\"\nregister) rolling up on scroll into view. Border-radius is 0\neverywhere — no rounded cards, buttons, inputs, media. Brand\ncharacter sits in the display type, the glow, the inline SVG glyph\nmarks, and the disciplined dark/white banded rhythm — no\nmono-caps eyebrows, no dot-metadata rows, no small corner tags, no\nthree-column feature grids as a fallback.\n",
|
|
27
|
+
} as const;
|
|
28
|
+
|
|
29
|
+
export type Tokens = typeof tokens;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# Design Direction — Architectural
|
|
2
|
+
|
|
3
|
+
## Ethos
|
|
4
|
+
Dezeen monumental photography · Architectural Digest sans+serif pairing · Vitra furniture catalog · Tadao Ando concrete restraint · Kengo Kuma natural materials
|
|
5
|
+
|
|
6
|
+
## Feel
|
|
7
|
+
Monumental architectural photography is the lead. Generous whitespace that signals scale. Thin sans-serif display paired with serif body — the AD paired-type rhythm. A single deep restrained accent (concrete blue or warm wood brown). Reads like an AD photo essay — quiet but expensive.
|
|
8
|
+
|
|
9
|
+
## Reference brands
|
|
10
|
+
- **Dezeen** → architecture-magazine layout; monumental photography. One building, full bleed, dramatic perspective.
|
|
11
|
+
- **Architectural Digest** → sans + serif pairing; luxe but restrained. Thin display sans over serif body is the canonical AD register.
|
|
12
|
+
- **Vitra** → furniture catalog precision. Tracked-uppercase metadata, mono issue numbers, hairline rules.
|
|
13
|
+
- **Tadao Ando** → concrete brutalism — elegant, not raw. The shadow side of the page.
|
|
14
|
+
- **Kengo Kuma** → natural wood and stone materiality. The warm side — cedar, paper, light.
|
|
15
|
+
|
|
16
|
+
## Tokens
|
|
17
|
+
HSL triples in `src/index.css`. Every token's `from:` comment names a brand origin.
|
|
18
|
+
|
|
19
|
+
Surface stack is **warm architectural paper** (background) → white (card) → warm paper tiered deeper (secondary/muted/accent). Depth comes from hairline rules at `foreground / 0.18`, never from fill differentiation, never from shadows.
|
|
20
|
+
|
|
21
|
+
Brand tokens: `--concrete` (Tadao Ando exposed-formwork gray), `--wood-warm` (Kengo Kuma cedar), `--sky-aalto` (Alvar Aalto luminous sky-blue), `--paper-warm` (alias of the background). Primary is `195 30% 28%` — a deep restrained Aalto-glass teal-blue, never a saturated brand color.
|
|
22
|
+
|
|
23
|
+
## Typography
|
|
24
|
+
- **Display:** Inter at **thin weights (300, 400)** at large sizes — Söhne-feel architectural sans. The AD/Dezeen display register. Tracking `-0.02em`; Inter at thin weights and monumental sizes wants tight tracking.
|
|
25
|
+
- **Body:** EB Garamond serif, **17px**, line-height **1.75**. The AD convention: thin sans display over serif body. Generous, photo-essay pacing.
|
|
26
|
+
- **Mono:** JetBrains Mono. Used **only small** — issue numbers, project credits, Vitra-catalog metadata, captions. Never for body, never for headings.
|
|
27
|
+
|
|
28
|
+
Hierarchy is pair-driven: thin Inter for display + EB Garamond for body, with tracked-uppercase Inter small caps for eyebrows and labels. H1 uses `clamp(3rem, 7vw, 6rem)` — monumental, Dezeen hero scale. Font features: `"kern", "tnum", "ss01"`.
|
|
29
|
+
|
|
30
|
+
## Spacing
|
|
31
|
+
- **Container:** `max-w-6xl px-6 lg:px-16` — 1152px, monumental photography needs room.
|
|
32
|
+
- **Section padding tiers (doubled vs editorial):**
|
|
33
|
+
- Hero: `pt-40 pb-32 lg:pt-64 lg:pb-48`
|
|
34
|
+
- Default: `py-32 lg:py-64`
|
|
35
|
+
- Tight: `py-24 lg:py-40`
|
|
36
|
+
- **Allowed scale values:** 4 8 12 16 24 32 48 64 96 128 160 192 256. The high end (160/192/256) is intentional — architectural whitespace signals scale.
|
|
37
|
+
|
|
38
|
+
## Color
|
|
39
|
+
No hex anywhere. All color via tokens. Opacity via `/N` modifier on token, not via new tokens. White and pure black are forbidden — `--paper-warm` (`35 12% 96%`) and the deep concrete-shadow ink (`220 14% 14%`) replace them.
|
|
40
|
+
|
|
41
|
+
The palette is restraint and material:
|
|
42
|
+
- **Concrete** — Tadao Ando exposed-formwork gray, the structural neutral.
|
|
43
|
+
- **Wood-warm** — Kengo Kuma cedar, the warm material counterpoint.
|
|
44
|
+
- **Sky-aalto** — Alvar Aalto luminous sky-blue, used sparingly as an accent moment.
|
|
45
|
+
- **Primary teal-blue** — Aalto window-glass; reserved for primary action and focus, never decorative.
|
|
46
|
+
|
|
47
|
+
Saturation never exceeds what would read in a printed Vitra catalog under warm gallery light.
|
|
48
|
+
|
|
49
|
+
## Radius
|
|
50
|
+
`--radius: 0`. **Sharp corners only.** Pills are disallowed (`pillsAllowed: false`) — pills read web-app, not architectural-magazine. Architecture is right angles; the page reflects the buildings.
|
|
51
|
+
|
|
52
|
+
## Shadows
|
|
53
|
+
**Minimal.** Single utility: `.hairline-deep` — `0 1px 0 0 hsl(var(--foreground) / 0.18)`. A 1px architectural divider line at 18% opacity. No drop shadows. No glows. Depth comes from the hairline and from whitespace.
|
|
54
|
+
|
|
55
|
+
## Motion
|
|
56
|
+
Two keyframes, both very slow:
|
|
57
|
+
- **`slow-fade`** — opacity + 16px translate, **1500ms**. The standard entrance. Architectural pacing; the page settles, it does not perform.
|
|
58
|
+
- **`ken-burns-monumental`** — slow scale from `1.0` to `1.08` over **40 seconds**, infinite. Reserved for the hero architectural photograph — Dezeen-style monumental presence, barely perceptible motion.
|
|
59
|
+
|
|
60
|
+
No marquee, no parallax, no chip-bounce. Easing: `cubic-bezier(0.22, 1, 0.36, 1)`. `prefers-reduced-motion` is honored — `ken-burns-monumental` is disabled entirely under reduced motion.
|
|
61
|
+
|
|
62
|
+
## Component patterns
|
|
63
|
+
- **Buttons:** the default primary CTA is an **uppercase tracked text-link with a hairline underline** (foreground color, letter-spacing 0.1em). Solid-filled rectangular buttons are reserved for **one 'Visit Project' CTA per page** — thin foreground bg + paper-warm text. No rounded corners, no shadows, no hover lift. Tracked-uppercase reads AD/Vitra; rounded reads consumer.
|
|
64
|
+
- **Cards:** no card chrome on photography — the image sits directly on the warm paper page, caption in mono below. When a card is needed, hairline top + hairline bottom rule at `foreground / 0.18`, no fill differentiation. Internal padding `p-12 lg:p-16`. Title in EB Garamond, eyebrow in tracked-uppercase Inter.
|
|
65
|
+
- **Inputs:** border-bottom only (1px `--border`). No full box. Label above in tracked-uppercase Inter small caps. Placeholder italic in muted-foreground.
|
|
66
|
+
- **CTAs:** default CTA is uppercase tracked text-link with hairline underline appearing on hover. The single 'Visit Project' solid-fill button per page is the **one** marketing moment — never repeated. There is no second.
|
|
67
|
+
|
|
68
|
+
## Recommended rich media
|
|
69
|
+
|
|
70
|
+
The page is led by **monumental architectural photography**: a single building, dramatic perspective, natural light. Supporting imagery includes interior tableaus, material close-ups (concrete texture, wood grain, glass reflection, brushed metal), and drawing-style line illustrations of floor plans or axonometric projections.
|
|
71
|
+
|
|
72
|
+
**AI tool recommendations.**
|
|
73
|
+
- **Midjourney / Flux** — prompts like *"Dezeen architectural photography, Tadao Ando concrete building, single subject, dramatic perspective, natural light, 35mm Hasselblad"*; for interiors, *"Architectural Digest interior tableau, Kengo Kuma natural materials, warm daylight, large-format film"*; for material studies, *"close-up concrete formwork texture, soft shadow, Vitra catalog still life"*.
|
|
74
|
+
- **Recraft** — for line-drawing floor plans, axonometric projections, and Vitra-style technical illustration. Single-weight black line on warm paper.
|
|
75
|
+
|
|
76
|
+
**Aspect ratios.** **4:5 portrait** (architectural-magazine standard, Dezeen feature) and **16:9** for the monumental hero photograph. Never 1:1 (social-media aesthetic). Never 3:2 casual.
|
|
77
|
+
|
|
78
|
+
**Color in imagery.** Natural light, warm-cool balance, restrained saturation. Concrete grays, cedar browns, sky teals — never neon, never high-key consumer color. Black-and-white architectural photography is welcome.
|
|
79
|
+
|
|
80
|
+
**Video.** Used sparingly and only for hero architecture — a single 40s slow pan or `ken-burns-monumental` loop over a still. Never autoplay with sound. ≤8 MB AV1 or H.265.
|
|
81
|
+
|
|
82
|
+
**Captions are mandatory.** Project name, architect, year, location — in JetBrains Mono small. *"Church of the Light · Tadao Ando · 1989 · Ibaraki, Osaka"* style attribution always.
|
|
83
|
+
|
|
84
|
+
**Performance.** Hero image ≤200 KB AVIF at 2000w; inline figures ≤100 KB. LCP under 2.5s — if it slips, the photograph is too large, not the framework.
|
|
85
|
+
|
|
86
|
+
**Avoid.** Action photography. Decorative ornament. Gradient meshes. Social-media energy. Stock photography. AI-photorealistic renders with uncanny perspective. Glassmorphism. Lens flare. Anything that reads more SaaS than Vitra showroom. **Restraint is the direction** — when in doubt, remove.
|
|
87
|
+
|
|
88
|
+
**Accessibility.** Long-form alt-text — describe the building, materials, light, perspective as if for a blind reader. *"A concrete church interior with a cross-shaped opening in the rear wall admitting a beam of natural sunlight, photographed in late afternoon."* The bar is editorial.
|
|
89
|
+
|
|
90
|
+
## Component families
|
|
91
|
+
None at install time. Family conventions emerge as the project grows; the Director appends them here as they are established.
|
|
92
|
+
|
|
93
|
+
## Details
|
|
94
|
+
- **Selection:** `hsl(var(--primary) / 0.20)` background, foreground text — Aalto-teal highlight on concrete ink.
|
|
95
|
+
- **Focus ring:** `1px solid hsl(var(--ring))`. Thin and quiet — architectural precision, never decorative.
|
|
96
|
+
- **Scrollbar:** thin.
|
|
97
|
+
|
|
98
|
+
## Exceptions
|
|
99
|
+
None yet. When an intentional one-of-one violation lands, add it here with the reason. The Director's consistency pass lists all exceptions for human review.
|
|
100
|
+
|
|
101
|
+
## Revisions
|
|
102
|
+
- Initial direction, generated at install time.
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import type { Direction } from "../schema";
|
|
2
|
+
|
|
3
|
+
export const architectural: Direction = {
|
|
4
|
+
name: "architectural",
|
|
5
|
+
ethos:
|
|
6
|
+
"Dezeen monumental photography · Architectural Digest sans+serif pairing · Vitra furniture catalog · Tadao Ando concrete restraint · Kengo Kuma natural materials",
|
|
7
|
+
references: [
|
|
8
|
+
{ brand: "Dezeen", trait: "architecture-magazine layout, monumental photography" },
|
|
9
|
+
{ brand: "Architectural Digest", trait: "sans + serif pairing, luxe but restrained" },
|
|
10
|
+
{ brand: "Vitra", trait: "furniture catalog precision" },
|
|
11
|
+
{ brand: "Tadao Ando", trait: "concrete brutalism — elegant, not raw" },
|
|
12
|
+
{ brand: "Kengo Kuma", trait: "natural wood and stone materiality" },
|
|
13
|
+
],
|
|
14
|
+
feel:
|
|
15
|
+
"Monumental architectural photography is the lead. Generous whitespace that " +
|
|
16
|
+
"signals scale. Thin sans-serif display paired with serif body — the AD " +
|
|
17
|
+
"paired-type rhythm. A single deep restrained accent (concrete blue or warm " +
|
|
18
|
+
"wood brown). Reads like an AD photo essay — quiet but expensive.",
|
|
19
|
+
|
|
20
|
+
fonts: {
|
|
21
|
+
display: {
|
|
22
|
+
family: "Inter",
|
|
23
|
+
fallback: ["Söhne", "system-ui", "-apple-system", "BlinkMacSystemFont", "sans-serif"],
|
|
24
|
+
from: "Inter at thin weights — Söhne-feel architectural sans, AD/Dezeen display register",
|
|
25
|
+
googleFont: "Inter",
|
|
26
|
+
weights: [300, 400, 600, 700],
|
|
27
|
+
},
|
|
28
|
+
body: {
|
|
29
|
+
family: "EB Garamond",
|
|
30
|
+
fallback: ["Iowan Old Style", "Apple Garamond", "Garamond", "Georgia", "serif"],
|
|
31
|
+
from: "EB Garamond — serif body paired with thin sans display, the Architectural Digest convention",
|
|
32
|
+
googleFont: "EB+Garamond:wght@400;500;600",
|
|
33
|
+
weights: [400, 500, 600],
|
|
34
|
+
},
|
|
35
|
+
mono: {
|
|
36
|
+
family: "JetBrains Mono",
|
|
37
|
+
fallback: ["ui-monospace", "SFMono-Regular", "Consolas", "monospace"],
|
|
38
|
+
from: "JetBrains Mono — small only; issue numbers, project credits, Vitra catalog metadata",
|
|
39
|
+
googleFont: "JetBrains+Mono",
|
|
40
|
+
weights: [400],
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
|
|
44
|
+
typography: {
|
|
45
|
+
headingTracking: "-0.02em", // Inter at thin weights and large sizes wants tight tracking
|
|
46
|
+
bodyTracking: "0", // EB Garamond body — neutral, never decorative
|
|
47
|
+
fontFeatureSettings: '"kern", "tnum", "ss01"',
|
|
48
|
+
h1ScaleClamp: "clamp(3rem, 7vw, 6rem)", // monumental — Dezeen hero scale
|
|
49
|
+
bodyBaseSize: "1.0625rem", // 17px serif body — readable AD-style prose
|
|
50
|
+
bodyLineHeight: "1.75", // generous, photo-essay pacing
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
colors: {
|
|
54
|
+
background: { hsl: "35 12% 96%", from: "warm white architectural paper — Vitra catalog stock" },
|
|
55
|
+
foreground: { hsl: "220 14% 14%", from: "deep ink — Tadao Ando concrete shadow" },
|
|
56
|
+
card: { hsl: "0 0% 100%", from: "card surface — sits cleanly on the warm paper bg" },
|
|
57
|
+
popover: { hsl: "0 0% 100%", from: "same as card; depth from hairline only" },
|
|
58
|
+
primary: { hsl: "195 30% 28%", from: "deep restrained teal-blue — Aalto window glass" },
|
|
59
|
+
primaryForeground: { hsl: "35 12% 96%", from: "warm paper on Aalto teal" },
|
|
60
|
+
secondary: { hsl: "35 10% 92%", from: "warm paper, one tier deeper — Kengo Kuma natural-stone tone" },
|
|
61
|
+
secondaryForeground: { hsl: "220 14% 14%", from: "concrete ink on warm paper" },
|
|
62
|
+
muted: { hsl: "35 10% 92%", from: "same as secondary — differentiation by usage, not color" },
|
|
63
|
+
mutedForeground: { hsl: "220 10% 38%", from: "Dezeen secondary text — slate ink for credits and captions" },
|
|
64
|
+
accent: { hsl: "35 14% 89%", from: "warm paper, deepest tier — hover surface only" },
|
|
65
|
+
accentForeground: { hsl: "220 14% 14%", from: "concrete ink on hover" },
|
|
66
|
+
border: { hsl: "220 12% 82%", from: "Vitra hairline rule — barely visible architectural division line" },
|
|
67
|
+
input: { hsl: "220 12% 82%", from: "same as border — inputs are hairlines in the plan" },
|
|
68
|
+
ring: { hsl: "195 30% 28%", from: "primary Aalto-glass teal — used for focus only" },
|
|
69
|
+
destructive: { hsl: "8 55% 42%", from: "restrained terracotta alert — Vitra catalog warning, not screaming red" },
|
|
70
|
+
destructiveForeground: { hsl: "35 12% 96%", from: "warm paper on terracotta" },
|
|
71
|
+
brand: {
|
|
72
|
+
concrete: { hsl: "210 8% 65%", from: "Tadao Ando concrete gray — exposed formwork, the canonical material" },
|
|
73
|
+
"wood-warm": { hsl: "28 32% 42%", from: "Kengo Kuma cedar — the warm natural-wood counterpoint" },
|
|
74
|
+
"sky-aalto": { hsl: "200 50% 80%", from: "Alvar Aalto sky-blue accent — luminous, restrained, used sparingly" },
|
|
75
|
+
"paper-warm": { hsl: "35 12% 96%", from: "warm architectural paper — alias of the background" },
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
|
|
79
|
+
spacing: {
|
|
80
|
+
base: 4,
|
|
81
|
+
scale: [4, 8, 12, 16, 24, 32, 48, 64, 96, 128, 160, 192, 256], // architectural whitespace — doubled vs editorial
|
|
82
|
+
containerMax: "max-w-6xl", // 1152px — monumental photography needs room
|
|
83
|
+
containerPadding: "px-6 lg:px-16",
|
|
84
|
+
sectionPadding: {
|
|
85
|
+
hero: "pt-40 pb-32 lg:pt-64 lg:pb-48", // doubled architectural scale
|
|
86
|
+
default: "py-32 lg:py-64", // generous AD photo-essay pacing
|
|
87
|
+
tight: "py-24 lg:py-40",
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
|
|
91
|
+
radius: {
|
|
92
|
+
base: "0", // architectural precision — never rounded
|
|
93
|
+
pillsAllowed: false, // pills read web-app, not architectural-magazine
|
|
94
|
+
},
|
|
95
|
+
|
|
96
|
+
shadows: {
|
|
97
|
+
style: "minimal",
|
|
98
|
+
utilities: {
|
|
99
|
+
"hairline-deep":
|
|
100
|
+
"0 1px 0 0 hsl(var(--foreground) / 0.18)", // architectural divider line — 1px in foreground at 18% opacity
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
|
|
104
|
+
motion: {
|
|
105
|
+
easing: "cubic-bezier(0.22, 1, 0.36, 1)",
|
|
106
|
+
durations: {
|
|
107
|
+
reveal: 1500, // very slow — architectural pacing
|
|
108
|
+
loop: 8000,
|
|
109
|
+
ambient: 40000, // 40s ken-burns on hero photography
|
|
110
|
+
},
|
|
111
|
+
keyframes: {
|
|
112
|
+
"slow-fade": {
|
|
113
|
+
css:
|
|
114
|
+
"from { opacity: 0; transform: translateY(16px); }\n" +
|
|
115
|
+
"to { opacity: 1; transform: translateY(0); }",
|
|
116
|
+
defaultDuration: 1500,
|
|
117
|
+
iteration: "once",
|
|
118
|
+
purpose:
|
|
119
|
+
"the standard entrance — 1.5s reveal at architectural pace. No bounce, no flash; the page settles.",
|
|
120
|
+
},
|
|
121
|
+
"ken-burns-monumental": {
|
|
122
|
+
css:
|
|
123
|
+
"from { transform: scale(1.0); }\n" +
|
|
124
|
+
"to { transform: scale(1.08); }",
|
|
125
|
+
defaultDuration: 40000,
|
|
126
|
+
iteration: "infinite",
|
|
127
|
+
purpose:
|
|
128
|
+
"40s slow zoom on hero architectural photographs — Dezeen-style monumental presence, barely perceptible motion.",
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
respectsReducedMotion: true,
|
|
132
|
+
},
|
|
133
|
+
|
|
134
|
+
density: "low",
|
|
135
|
+
|
|
136
|
+
patterns: {
|
|
137
|
+
button:
|
|
138
|
+
"Primary CTA is an uppercase tracked text-link with a hairline underline (foreground color, letter-spacing 0.1em). " +
|
|
139
|
+
"Solid-filled rectangular buttons are reserved for one 'Visit Project' CTA per page — thin foreground bg + paper text. " +
|
|
140
|
+
"No rounded corners, no shadows, no hover lift. Tracked-uppercase reads AD/Vitra; rounded reads consumer.",
|
|
141
|
+
card:
|
|
142
|
+
"No card chrome on photography — image sits directly on the warm paper page, caption in mono below. " +
|
|
143
|
+
"When a card is needed, hairline top rule + hairline bottom rule in foreground/18, no fill differentiation. " +
|
|
144
|
+
"Internal padding generous (p-12 lg:p-16). Title in EB Garamond, eyebrow in tracked-uppercase Inter.",
|
|
145
|
+
input:
|
|
146
|
+
"Border-bottom only (1px border token). No full box. Label sits above in tracked-uppercase Inter small caps. " +
|
|
147
|
+
"Placeholder in muted-foreground italic.",
|
|
148
|
+
cta:
|
|
149
|
+
"Default CTA is uppercase tracked text-link with hairline underline appearing on hover. " +
|
|
150
|
+
"The single 'Visit Project' solid-fill button per page uses foreground bg + paper-warm text — never repeated.",
|
|
151
|
+
},
|
|
152
|
+
|
|
153
|
+
details: {
|
|
154
|
+
selectionBg: "hsl(var(--primary) / 0.20)",
|
|
155
|
+
selectionFg: "hsl(var(--foreground))",
|
|
156
|
+
focusRing: "1px solid hsl(var(--ring))",
|
|
157
|
+
scrollbarStyle: "thin",
|
|
158
|
+
},
|
|
159
|
+
};
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Atelier Radiance
|
|
2
|
+
|
|
3
|
+
> Boutique creative agency register — dark canvas hero broken by warm-cream and sage-green inverted bands, high-contrast Didone-style serif display at monumental scale, a recurring sunburst SVG ornament (small, bespoke, 8-pointed radial star) that appears 6+ times across the composition as the studio's identity mark, and a single burgundy accent reserved for CTAs only.
|
|
4
|
+
|
|
5
|
+
**Slug:** `atelier-radiance` — **Surface:** web — **Density:** balanced
|
|
6
|
+
|
|
7
|
+
## Influence
|
|
8
|
+
|
|
9
|
+
Rodeo-Drive-adjacent boutique creative agencies — high-end small studios that trade on refinement + editorial polish (the register held by boutique branding shops like Motto, Base Design at their most luxurious, and independent NY / LA studios that photograph their work in editorial contexts). Also luxury print advertising (the discipline of Bulgari / Cartier campaign layouts translated to a working studio page). Distinct from case-panel's showcase-agency register — Atelier Radiance is smaller, warmer, more editorial.
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
## Signature move
|
|
13
|
+
|
|
14
|
+
A recurring SUNBURST SVG ornament — 8-pointed radial star with alternating long and short rays, drawn as a bespoke inline SVG path (not a font, not an emoji, not stock iconography) — repeats 6+ times across the composition as the studio's identity mark. It appears at monumental scale (120px+ burgundy) in the hero next to the wordmark, at medium scale (48px cream) at the top of the "What we do" band, at small scale (28px cream) on each of the six service tiles, and at tiny scale (16px sage) on the testimonial band. Big serif Didone-style DISPLAY WORDMARK ("SOLSTICE") at 100-140px on the dark hero canvas, letter-spacing normal, high stroke-contrast — thin verticals meeting thick horizontals so the wordmark reads as a luxury print advertising headline. A STAT QUAD immediately below the wordmark ("12+ YEARS / 20+ BRANDS / 100% TAILORED / ∞ CREATIVITY & GROWTH") — each number in the big serif at 48-60px, each label in Montserrat 12px 600-weight caps beneath. The composition ALTERNATES DARK / CREAM / SAGE BANDS through the page — dark hero → white "Our Approach" numbered list → dark full-bleed photograph slider → cream "What we do" band with 6 service tiles → sage-green testimonial carousel → white FAQ accordion → dark contact-form band → dark footer. Approach list uses BIG SERIF NUMERALS (01 / 02 / 03) at 48px beside each item title, with HAIRLINE DIVIDERS between rows (a rare legitimate exception to the no-hairline-between-sections rule because this IS a numbered list layout that the register calls for). Burgundy #8F161F is RESERVED for the sunburst ornaments + the "Book a discovery call" + "Send message" CTAs — it never floods a large area. Border-radius 0 everywhere. Brand character sits in the recurring sunburst ornament, the Didone display type, the disciplined dark/cream/sage rhythm, and the burgundy CTA restraint — not in decoration, not in glow, not in stock-agency animation.
|
|
15
|
+
|
|
16
|
+
## Palette
|
|
17
|
+
|
|
18
|
+
- **bg:** `#000000`
|
|
19
|
+
- **surface:** `#111111`
|
|
20
|
+
- **ink:** `#FFFFFF`
|
|
21
|
+
- **accent:** `#8F161F`
|
|
22
|
+
|
|
23
|
+
## Typography
|
|
24
|
+
|
|
25
|
+
- **Display:** Instrument Serif (free, Google Fonts) at 400 weight, or Bodoni Moda / Playfair Display as broader-market fallback — letter-spacing normal, mixed case. At scale — 100-140px hero wordmark, 72-90px section headlines, 50-60px big serif numerals for stat quad and approach list, 22-28px h3. Instrument Serif is the reference face's closest free approximation (Atcarquette is a paid Didone with high stroke-contrast; Instrument Serif hits the same register from Google Fonts). The wordmark leans on the display's letterform contrast — thin verticals meeting thick horizontals — so serif substitutions must preserve that contrast, not smooth it out.
|
|
26
|
+
- **Body:** Montserrat (free, Google Fonts) — 400 weight for body, 500 for labels, 600 for CTA + nav. 14-16px body copy, line-height 1.5. Sentence case, not all caps. Small caption labels ("WHY RODEO?" "WHAT WE DO") use a MODEST 12px Montserrat 600 with LETTER-SPACING 0.14em (below the mono-caps-eyebrow slop-blocklist fingerprint threshold — this is a legitimate boutique-agency caps label, not an eyebrow ornament).
|
|
27
|
+
- **Mono:** none. Atelier Radiance is a consumer luxury surface — mono has no role.
|
|
28
|
+
- **Scale:** 1.5 (perfect fifth — deliberately wide contrast so the serif display shouts at editorial scale and body settles into refined captioning)
|
|
29
|
+
|
|
30
|
+
## Motion
|
|
31
|
+
|
|
32
|
+
Ships live in the section renderer (no external dependencies):
|
|
33
|
+
1. Hero wordmark reveal — the serif wordmark fades in from opacity 0 + slight blur(2px) → 1 + blur(0) over 900ms cubic-bezier(0.19,1,0.22,1) on first paint. Letters do NOT stagger (this is an editorial register, not a marketing register).
|
|
34
|
+
2. Sunburst ornament rotation — the burgundy sunburst next to the hero rotates 90deg over 1200ms cubic-bezier on first paint, settling into its final position. Reads as "the identity mark clicking into place."
|
|
35
|
+
3. Numbered approach items — each row fades in from opacity 0 + translateY(12px) with 120ms stagger + 600ms cubic-bezier when scrolled into view. IntersectionObserver-driven.
|
|
36
|
+
4. Photo-hero slider — click left/right arrows or drag to advance. Transitions between photos are 800ms cubic-bezier ease-in-out crossfade, NOT auto-advance (auto-advancing is the slop-blocklist hit; this waits for user input).
|
|
37
|
+
5. Service tile hover — the burgundy sunburst on each tile spins 15deg + scales(1.05) on card hover, 220ms cubic-bezier. Card background stays flat (no lift, no shadow — this is boutique restraint, not corporate polish).
|
|
38
|
+
6. Testimonial carousel — click left/right chevrons to advance. Auto-advances every 8s IF the user hasn't clicked; pauses on hover. Duration 8s is a testimonial-appropriate pace (long enough to read).
|
|
39
|
+
7. FAQ accordion — chevron rotates 45deg (+ becomes ×) on open, 400ms cubic-bezier. Only one open at a time. Body expands smoothly.
|
|
40
|
+
8. Contact form focus — field label lifts + gets underlined on focus, 200ms transition. Send button hover flips from burgundy-fill to burgundy-outline with cream text, 200ms.
|
|
41
|
+
9. prefers-reduced-motion: reduce — wordmark and sunburst at final state; stagger disabled; auto-advance carousel paused; hover transitions instant; slider still functional but crossfade becomes instant.
|
|
42
|
+
|
|
43
|
+
Customer installs these as dependencies for the deeper motion tier:
|
|
44
|
+
- Lenis — smooth inertial scroll (the alternating dark/cream/sage band transitions really benefit from inertial scroll for the editorial cadence).
|
|
45
|
+
- GSAP ScrollTrigger — the approach-list stagger + service-tile reveal + testimonial-carousel logic all sit comfortably in a GSAP timeline.
|
|
46
|
+
- Custom branded preloader — the sunburst ornament expanding from center at 120px → 40px final position, then the wordmark fading in from behind it.
|
|
47
|
+
|
|
48
|
+
Motion character: refined, editorial, considered. Custom cubic-bezier(0.19,1,0.22,1) for reveals. Nothing quick, nothing bouncy, nothing tech-forward. The whole point is that this register reads as "designed by a small studio with editorial sensibility" — motion is intentional but never showy.
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
## Imagery
|
|
52
|
+
|
|
53
|
+
Full-bleed editorial PHOTOGRAPHY on the dark canvas — luxury travel / hospitality / lifestyle imagery under directional light (a hotel garden with a figure in white, a boutique interior with warm-tungsten lighting, a fashion look-book portrait). Photo-hero section carries a real hero image with small caption bottom-left ("Solstice Studio × Baitong Hotel — Phnom Penh 2025" register). Service tiles are FLAT COLORED PANELS (cream or sage) with the burgundy sunburst centered as the only mark — no photography inside service tiles, because that's the ornament's role. Testimonial cards use a small circular avatar FPO block for the author photo. NO gradient blobs, NO glassmorphism, NO stock illustrations. The register reads as PRINTED + PHOTOGRAPHED + SET-DESIGNED, not as a generated dashboard.
|
|
54
|
+
|
|
55
|
+
## Best for
|
|
56
|
+
|
|
57
|
+
- Boutique creative agencies (small studios trading on editorial polish + named clients)
|
|
58
|
+
- Luxury brand consultancies (boutique branding + strategy shops)
|
|
59
|
+
- High-end freelance creative directors + brand designers
|
|
60
|
+
- Independent creative studios doing hospitality / fashion / lifestyle work
|
|
61
|
+
- Rebrand marketing pages for premium consumer brands wanting agency-editorial register
|
|
62
|
+
- Portfolio + case-study surfaces for creative directors, photographers, and stylists
|
|
63
|
+
|
|
64
|
+
## Reject if
|
|
65
|
+
|
|
66
|
+
_Director grades each of the following as a pass/fail check. Any violation blocks the theme._
|
|
67
|
+
|
|
68
|
+
- Border-radius greater than 0px anywhere on the page — sharp corners are core to the identity
|
|
69
|
+
- Rounded pill buttons or fully-rounded CTAs — buttons are sharp-cornered with 0 radius, that's it
|
|
70
|
+
- Sans-serif display type at hero scale — the display face MUST be a high-contrast Didone-style serif (Instrument Serif / Bodoni Moda / Playfair Display), never Inter Display / Anton / DM Sans
|
|
71
|
+
- Mono type as a decorative label voice — mono has no role on this consumer luxury surface
|
|
72
|
+
- Multiple accent colors flooding the composition — burgundy is the ONE studio CTA color. The cream + sage + white are BAND surfaces, not accents. Introducing gold / orange / teal as additional accents collapses the register.
|
|
73
|
+
- Warm-tan canvas as the primary background — the canvas IS DARK (near-black). Swapping to warm-tan collapses this into generic-boutique-editorial slop.
|
|
74
|
+
- Corporate polish — no drop-shadow-md, no soft-glow, no gradient hero backdrop. The composition is FLAT and EDITORIAL, not corporate.
|
|
75
|
+
- Three-tier pricing cards or feature-pillar grids — the service grid is deliberately 6 tiles with an ornament on each, not 3 stat cards with icons
|
|
76
|
+
- Center-aligned hero — hero is LEFT-WEIGHTED with the wordmark and stat quad flush left, and the sunburst ornament flush right
|
|
77
|
+
- Grain overlay everywhere — grain lives ONLY on the darker bands as a subtle overlay per the reference, never smeared across cream or sage surfaces
|
|
78
|
+
- Auto-advancing hero sliders that cycle without user input — the photo hero waits for click or drag; only the testimonial carousel auto-advances (at 8s intervals with pause-on-hover)
|
|
79
|
+
- Emoji or decorative unicode marks — the sunburst SVG carries all the ornamentation
|
|
80
|
+
- Instagram-face stock photography — imagery MUST feel editorial + directed. Avoid smiling-woman-with-latte stock; reach for architectural interiors, garden scenes, luxury hospitality
|
|
81
|
+
- Mono-caps eyebrows (SECTION · X style dot-metadata) — the register uses Montserrat 12px 600 caps with 0.14em tracking for labels, which is below the mono-caps-eyebrow CSS fingerprint threshold and reads as a legitimate boutique-agency label, not an ornament
|
|
82
|
+
|
|
83
|
+
## Banned defaults (inherited + theme-specific)
|
|
84
|
+
|
|
85
|
+
- claude-cream (#F4F1EA + serif + #D97757)
|
|
86
|
+
- void+acid (near-black bg + single bright acid-green or vermilion accent)
|
|
87
|
+
- broadsheet-on-noneditorial (hairline rules + zero border-radius + newspaper columns on non-editorial content)
|
|
88
|
+
- tech-bro purple gradient (purple→blue gradient hero + centered headline + double CTA + emoji icons)
|
|
89
|
+
- uniform-everything (identical padding + one weight of one sans doing every job + rounded-2xl + shadow-md cards)
|
|
90
|
+
- sunburst-as-decoration (the sunburst is the STUDIO'S IDENTITY MARK. It has 6+ specific placements — hero, What-we-do headline, each of the 6 service tiles, testimonial band, footer. Adding a random sunburst anywhere ELSE collapses it from identity mark to decorative ornament and the register dies.)
|
|
91
|
+
- burgundy-flood (burgundy is CTA + sunburst color ONLY. The moment you use it as a section background or a large surface color, the register collapses into wine-region-DTC slop.)
|
|
92
|
+
- serif-plus-modern-sans-body (the body face is Montserrat which pairs with the serif — using Inter / SF Pro / a modern-tech sans in the body flips this register into stock consumer-tech and the boutique-agency read dies.)
|
|
93
|
+
- sun-washed-hospitality-palette (Base 42 Boutique Hotel is limestone canvas + caramel + eucalyptus. Adopting THAT palette here collapses Atelier Radiance INTO Base 42 — the register only holds if the canvas is DARK not limestone.)
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Generated from theme.yml. Merge into your tailwind.config.ts under theme.extend.
|
|
2
|
+
// slug: atelier-radiance
|
|
3
|
+
export const atelierRadianceTailwindExtend = {
|
|
4
|
+
colors: {
|
|
5
|
+
bg: "#000000",
|
|
6
|
+
surface: "#111111",
|
|
7
|
+
ink: "#FFFFFF",
|
|
8
|
+
accent: "#8F161F",
|
|
9
|
+
},
|
|
10
|
+
fontFamily: {
|
|
11
|
+
display: ["Instrument Serif (free, Google Fonts) at 400 weight, or Bodoni Moda / Playfair Display as broader-market fallback — letter-spacing normal, mixed case. At scale — 100-140px hero wordmark, 72-90px section headlines, 50-60px big serif numerals for stat quad and approach list, 22-28px h3. Instrument Serif is the reference face's closest free approximation (Atcarquette is a paid Didone with high stroke-contrast; Instrument Serif hits the same register from Google Fonts). The wordmark leans on the display's letterform contrast — thin verticals meeting thick horizontals — so serif substitutions must preserve that contrast, not smooth it out."],
|
|
12
|
+
body: ["Montserrat (free, Google Fonts) — 400 weight for body, 500 for labels, 600 for CTA + nav. 14-16px body copy, line-height 1.5. Sentence case, not all caps. Small caption labels (\"WHY RODEO?\" \"WHAT WE DO\") use a MODEST 12px Montserrat 600 with LETTER-SPACING 0.14em (below the mono-caps-eyebrow slop-blocklist fingerprint threshold — this is a legitimate boutique-agency caps label, not an eyebrow ornament)."],
|
|
13
|
+
mono: ["none. Atelier Radiance is a consumer luxury surface — mono has no role."],
|
|
14
|
+
},
|
|
15
|
+
};
|