@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,78 @@
|
|
|
1
|
+
# Design Direction — Pet-Food
|
|
2
|
+
|
|
3
|
+
## Ethos
|
|
4
|
+
The Farmer's Dog beige restraint · Open Farm pantry-label warmth · Ollie playful DTC chrome · Spot & Tango fresh-batch friendliness · Nom Nom homemade-recipe sincerity
|
|
5
|
+
|
|
6
|
+
## Feel
|
|
7
|
+
Pantry-label honesty meets dog-walk warmth. Beige and oat-cream surfaces, soft terracotta as the principal action, sage as the wellness mark, brown ink instead of black. Friendly humanist sans for chrome, gentle italic serif for ingredient names. The page feels like a folded recipe card from a small kitchen, not a vet portal or a scary feed-bag.
|
|
8
|
+
|
|
9
|
+
## Reference brands
|
|
10
|
+
- **The Farmer's Dog** → beige paper + brown ink + dog-portrait hero. The principal reference for surfaces and ink color.
|
|
11
|
+
- **Open Farm** → pantry-label transparency. Sourcing is the design — every ingredient is named, weighted, and origin-tagged.
|
|
12
|
+
- **Ollie** → playful DTC chrome. Pup-profile-first flow; the dog's name leads the page.
|
|
13
|
+
- **Spot & Tango** → fresh-batch friendly type, weekly-delivery cadence.
|
|
14
|
+
- **Nom Nom** → homemade-recipe sincerity, soft photography, vet-formulated but never clinical.
|
|
15
|
+
|
|
16
|
+
## Tokens
|
|
17
|
+
Surface stack is **oat-cream** (background) → **lighter oat** (card) → **deeper beige / sage tint** (secondary / muted / accent). Brand tokens: `--terracotta`, `--sage`, `--oat`, `--kraft`, `--ink`, `--pumpkin`. Primary is `--terracotta` — the principal action. `--sage` is the wellness/transparency mark (sourcing, vet-approval). `--pumpkin` is the limited-edition playful accent — birthday treats, holiday recipes — never default.
|
|
18
|
+
|
|
19
|
+
## Typography
|
|
20
|
+
- **Display:** Fraunces. Soft serif with optical sizes — reads pantry-label, not church-bulletin. Use weights 500–700 for headings; italic is reserved for ingredient names ("free-range chicken" set in italic mid-sentence).
|
|
21
|
+
- **Body:** DM Sans. Friendly humanist sans, low x-height, warm on cream. 16px base, line-height 1.6.
|
|
22
|
+
- **Mono:** DM Mono. Reserved for ingredient weights ("212g"), batch numbers, delivery dates — the kitchen-recipe instrument feel.
|
|
23
|
+
|
|
24
|
+
H1 uses `clamp(2.25rem, 5.5vw, 4rem)`. Tracking `-0.015em` on display.
|
|
25
|
+
|
|
26
|
+
## Spacing
|
|
27
|
+
- **Container:** `max-w-6xl px-4 lg:px-8` — pantry-shelf width, not magazine column.
|
|
28
|
+
- **Section padding tiers:**
|
|
29
|
+
- Hero: `pt-20 pb-14 lg:pt-28 lg:pb-20`
|
|
30
|
+
- Default: `py-16 lg:py-24`
|
|
31
|
+
- Tight: `py-10 lg:py-14`
|
|
32
|
+
- **Allowed scale values:** 4 6 8 10 12 16 20 24 32 40 48 64 80.
|
|
33
|
+
|
|
34
|
+
## Color
|
|
35
|
+
No hex in components — tokens only. Pure white and pure black are forbidden; use `--oat` (background) and `--ink` (brown-22°). Saturated brand-blue, brand-purple, or signal-red are out of palette. Wellness-positive is sage; alert is `--destructive` (allergy/contraindication rust). No "trust blue" — this brand earns trust through ingredient transparency, not enterprise polish.
|
|
36
|
+
|
|
37
|
+
## Radius
|
|
38
|
+
`--radius: 1rem` (16px). Generous, friendlier than soft-modern. Pills are allowed for breed-tags, life-stage chips ("Puppy", "Senior 7+"), and ingredient filters. Square corners are forbidden — they read clinical.
|
|
39
|
+
|
|
40
|
+
## Shadows
|
|
41
|
+
**Soft.** `.shadow-pantry` for cards (1+6 pantry-shadow), `.shadow-pantry-lg` for hover lift. No glows, no neon edges — this is a kitchen, not a console.
|
|
42
|
+
|
|
43
|
+
## Motion
|
|
44
|
+
Three keyframes: `fade-rise` (500ms entrance), `tail-wag` (800ms playful rotation, hover-only on pup avatars and birthday chips — *never* on functional UI), `soft-pulse` (2200ms loop for next-delivery countdown). `prefers-reduced-motion` is honored.
|
|
45
|
+
|
|
46
|
+
Easing `cubic-bezier(0.22, 1, 0.36, 1)`.
|
|
47
|
+
|
|
48
|
+
## Component patterns
|
|
49
|
+
- **Buttons:** primary = terracotta solid + oat text, rounded-2xl, shadow-pantry. Secondary = oat fill + kraft border + brown-ink text. Tertiary = terracotta text-link. Never gradient — pantry labels are flat.
|
|
50
|
+
- **Cards:** rounded-2xl, oat-card on oat-cream, 1px kraft border, shadow-pantry. Pup-profile cards get a 2px terracotta top-border when the plan is active.
|
|
51
|
+
- **Inputs:** rounded-xl, 1px kraft border, oat-card fill. Pup-name and breed inputs may show a small dog-emoji glyph in the left padding. Focus = 2px terracotta ring at 40% opacity. Placeholder italic in soft-brown.
|
|
52
|
+
- **Plan-builder flow:** step indicators are small terracotta dots connected by a dashed kraft line. The dog's name appears in Fraunces italic at the top of every step ("Marlow's plan, step 2 of 3").
|
|
53
|
+
- **Ingredient cards:** kraft-bordered, ingredient name in Fraunces italic, weight in DM Mono, source line in DM Sans muted-foreground. Vet-approved badge in sage pill.
|
|
54
|
+
|
|
55
|
+
## Recommended rich media
|
|
56
|
+
Photography is the lead medium: dog portraits in natural window light, food in shallow ceramic bowls, raw ingredients on wood cutting boards. Color graded to warm honey shadow, never high-key studio. Aspect ratios 4:5 portrait for pups, 3:2 landscape for food. Never 16:9 cinematic (off-feel for DTC). Never 1:1 (too Instagram-stock). No illustrated dog-icon decoration. No 3D renders of kibble.
|
|
57
|
+
|
|
58
|
+
**AI tool recommendations:** Midjourney with *"natural window light, golden retriever portrait, Kodak Portra 400 film, soft cream tones, slight grain, shallow depth of field"*. For food: *"raw chicken and sweet potato on wooden cutting board, overhead, soft natural light, cream linen background, no garnish, food photography"*. Avoid bright commercial pet-food stock.
|
|
59
|
+
|
|
60
|
+
**Performance:** hero pup ≤140 KB AVIF at 1600w; ingredient inline ≤80 KB. LCP ≤2s.
|
|
61
|
+
|
|
62
|
+
**Avoid:** stock photos of "happy family with golden retriever", cartoon dog mascots, paw-print decoration, kibble-bag-product-shot heroes (this site sells fresh, not bags), gradient backgrounds, glassmorphic anything, dark-mode toggle, "scientifically formulated" lab-coat shots — that is competitor territory, not ours.
|
|
63
|
+
|
|
64
|
+
**Accessibility:** alt-text describes the dog by breed and posture — *"A senior beagle rests its chin on a hand in late afternoon kitchen light."* Not *"A dog."*
|
|
65
|
+
|
|
66
|
+
## Component families
|
|
67
|
+
None at install time. Plan-builder, ingredient-card, and pup-profile-row are the three canonical bespoke families; the Director will codify them as they're reused.
|
|
68
|
+
|
|
69
|
+
## Details
|
|
70
|
+
- **Selection:** `hsl(var(--terracotta) / 0.2)` background, foreground text.
|
|
71
|
+
- **Focus ring:** `2px solid hsl(var(--ring) / 0.55)`.
|
|
72
|
+
- **Scrollbar:** thin.
|
|
73
|
+
|
|
74
|
+
## Exceptions
|
|
75
|
+
None yet.
|
|
76
|
+
|
|
77
|
+
## Revisions
|
|
78
|
+
- Initial direction, generated at install time.
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import type { Direction } from "../schema";
|
|
2
|
+
|
|
3
|
+
// pet-food — The Farmer's Dog / Open Farm / Ollie warm DTC. Beige paper,
|
|
4
|
+
// friendly humanist sans, a single dog-walk-on-a-fall-morning palette:
|
|
5
|
+
// oat cream, terracotta, sage, brown ink. The page reads like a pantry
|
|
6
|
+
// label, not a vet chart. Photography is dog-portrait warm, never clinical.
|
|
7
|
+
export const petFood: Direction = {
|
|
8
|
+
name: "pet-food" as Direction["name"],
|
|
9
|
+
ethos:
|
|
10
|
+
"The Farmer's Dog beige restraint · Open Farm pantry-label warmth · " +
|
|
11
|
+
"Ollie playful DTC chrome · Spot & Tango fresh-batch friendliness · " +
|
|
12
|
+
"Nom Nom homemade-recipe sincerity",
|
|
13
|
+
references: [
|
|
14
|
+
{ brand: "The Farmer's Dog", trait: "beige paper + brown ink + dog-portrait hero" },
|
|
15
|
+
{ brand: "Open Farm", trait: "pantry-label transparency, sourcing as design" },
|
|
16
|
+
{ brand: "Ollie", trait: "playful DTC chrome, pup-profile-first flow" },
|
|
17
|
+
{ brand: "Spot & Tango", trait: "fresh-batch friendly type, weekly-delivery cadence" },
|
|
18
|
+
{ brand: "Nom Nom", trait: "homemade-recipe sincerity, soft photography" },
|
|
19
|
+
],
|
|
20
|
+
feel:
|
|
21
|
+
"Pantry-label honesty meets dog-walk warmth. Beige and oat-cream surfaces, " +
|
|
22
|
+
"soft terracotta as the principal action, sage as the wellness mark, brown ink " +
|
|
23
|
+
"instead of black. Friendly humanist sans for chrome, gentle italic serif for " +
|
|
24
|
+
"ingredient names. The page feels like a folded recipe card from a small kitchen, " +
|
|
25
|
+
"not a vet portal or a scary feed-bag.",
|
|
26
|
+
|
|
27
|
+
fonts: {
|
|
28
|
+
display: {
|
|
29
|
+
family: "Fraunces",
|
|
30
|
+
fallback: ["Recoleta", "Iowan Old Style", "Georgia", "serif"],
|
|
31
|
+
from: "Open Farm / Farmer's Dog — soft serif with optical sizes, reads pantry-label not church-bulletin",
|
|
32
|
+
googleFont: "Fraunces",
|
|
33
|
+
weights: [400, 500, 600, 700],
|
|
34
|
+
},
|
|
35
|
+
body: {
|
|
36
|
+
family: "DM Sans",
|
|
37
|
+
fallback: ["Inter", "system-ui", "-apple-system", "sans-serif"],
|
|
38
|
+
from: "Ollie / Spot & Tango — friendly humanist sans, low x-height, reads warm on cream",
|
|
39
|
+
googleFont: "DM+Sans",
|
|
40
|
+
weights: [400, 500, 600],
|
|
41
|
+
},
|
|
42
|
+
mono: {
|
|
43
|
+
family: "DM Mono",
|
|
44
|
+
fallback: ["IBM Plex Mono", "ui-monospace", "monospace"],
|
|
45
|
+
from: "ingredient weights, batch numbers, delivery dates — kitchen-recipe instrument feel",
|
|
46
|
+
googleFont: "DM+Mono",
|
|
47
|
+
weights: [400, 500],
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
|
|
51
|
+
typography: {
|
|
52
|
+
headingTracking: "-0.015em",
|
|
53
|
+
bodyTracking: "0",
|
|
54
|
+
fontFeatureSettings: '"ss01", "calt", "liga"',
|
|
55
|
+
h1ScaleClamp: "clamp(2.25rem, 5.5vw, 4rem)",
|
|
56
|
+
bodyBaseSize: "1rem",
|
|
57
|
+
bodyLineHeight: "1.6",
|
|
58
|
+
},
|
|
59
|
+
|
|
60
|
+
colors: {
|
|
61
|
+
background: { hsl: "36 38% 95%", from: "Farmer's Dog oat-cream — warmer than soft-modern white, never pure" },
|
|
62
|
+
foreground: { hsl: "22 32% 18%", from: "deep brown ink — never black; Open Farm ingredient panel text" },
|
|
63
|
+
card: { hsl: "36 44% 98%", from: "lighter oat — card lifts a half-step off the pantry-paper background" },
|
|
64
|
+
popover: { hsl: "36 44% 98%", from: "same as card" },
|
|
65
|
+
primary: { hsl: "14 62% 52%", from: "Farmer's Dog terracotta — warm rust, principal action" },
|
|
66
|
+
primaryForeground: { hsl: "36 44% 98%", from: "oat-cream on terracotta" },
|
|
67
|
+
secondary: { hsl: "36 28% 90%", from: "deeper beige panel — secondary surface, like brown-bag kraft" },
|
|
68
|
+
secondaryForeground: { hsl: "22 32% 22%", from: "brown ink on beige" },
|
|
69
|
+
muted: { hsl: "36 24% 92%", from: "quiet beige — table-row, helper background" },
|
|
70
|
+
mutedForeground: { hsl: "22 18% 42%", from: "soft brown — captions, meta, ingredient sub-text" },
|
|
71
|
+
accent: { hsl: "150 28% 88%", from: "Open Farm pale sage — hover and wellness chip surface" },
|
|
72
|
+
accentForeground: { hsl: "150 38% 22%", from: "deep sage on tint" },
|
|
73
|
+
border: { hsl: "30 22% 84%", from: "warm hairline — kraft-paper edge, never cool gray" },
|
|
74
|
+
input: { hsl: "30 22% 84%", from: "same as border" },
|
|
75
|
+
ring: { hsl: "14 62% 52%", from: "primary terracotta, focus only" },
|
|
76
|
+
destructive: { hsl: "8 70% 48%", from: "deeper rust — allergy / contraindication, distinct from terracotta primary" },
|
|
77
|
+
destructiveForeground: { hsl: "36 44% 98%", from: "oat-cream on alert" },
|
|
78
|
+
brand: {
|
|
79
|
+
terracotta: { hsl: "14 62% 52%", from: "= primary; Farmer's Dog principal action color" },
|
|
80
|
+
"terracotta-soft": { hsl: "14 58% 92%", from: "terracotta tint — selected step, plan-included chip" },
|
|
81
|
+
sage: { hsl: "150 38% 38%", from: "Open Farm wellness sage — protein/source markers, vet-recommended" },
|
|
82
|
+
"sage-soft": { hsl: "150 28% 88%", from: "alias for accent — adherence-good and natural-source chip" },
|
|
83
|
+
oat: { hsl: "36 38% 95%", from: "alias for background — the pantry-paper itself" },
|
|
84
|
+
kraft: { hsl: "30 30% 78%", from: "Open Farm kraft accent — sourcing-panel border, brown-bag energy" },
|
|
85
|
+
ink: { hsl: "22 32% 18%", from: "alias for foreground — warm brown ink, never black" },
|
|
86
|
+
pumpkin: { hsl: "28 78% 58%", from: "Ollie playful accent — limited-time recipe and birthday-treat callout" },
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
|
|
90
|
+
spacing: {
|
|
91
|
+
base: 4,
|
|
92
|
+
scale: [4, 6, 8, 10, 12, 16, 20, 24, 32, 40, 48, 64, 80],
|
|
93
|
+
containerMax: "max-w-6xl",
|
|
94
|
+
containerPadding: "px-4 lg:px-8",
|
|
95
|
+
sectionPadding: {
|
|
96
|
+
hero: "pt-20 pb-14 lg:pt-28 lg:pb-20",
|
|
97
|
+
default: "py-16 lg:py-24",
|
|
98
|
+
tight: "py-10 lg:py-14",
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
|
|
102
|
+
radius: {
|
|
103
|
+
base: "1rem", // 16px — generous DTC roundness, friendlier than soft-modern
|
|
104
|
+
pillsAllowed: true, // pills core for breed-tags, ingredient chips, plan toggles
|
|
105
|
+
},
|
|
106
|
+
|
|
107
|
+
shadows: {
|
|
108
|
+
style: "soft",
|
|
109
|
+
utilities: {
|
|
110
|
+
"shadow-pantry":
|
|
111
|
+
"0 1px 2px hsl(22 30% 30% / 0.05), 0 6px 16px hsl(22 30% 30% / 0.06)",
|
|
112
|
+
"shadow-pantry-lg":
|
|
113
|
+
"0 2px 6px hsl(22 30% 30% / 0.05), 0 18px 40px hsl(22 30% 30% / 0.10)",
|
|
114
|
+
"shadow-pantry-inset":
|
|
115
|
+
"inset 0 1px 0 hsl(0 0% 100% / 0.55)",
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
|
|
119
|
+
motion: {
|
|
120
|
+
easing: "cubic-bezier(0.22, 1, 0.36, 1)",
|
|
121
|
+
durations: {
|
|
122
|
+
reveal: 500,
|
|
123
|
+
loop: 2200,
|
|
124
|
+
ambient: 18000,
|
|
125
|
+
},
|
|
126
|
+
keyframes: {
|
|
127
|
+
"fade-rise": {
|
|
128
|
+
css:
|
|
129
|
+
"from { opacity: 0; transform: translateY(10px); }\n" +
|
|
130
|
+
"to { opacity: 1; transform: translateY(0); }",
|
|
131
|
+
defaultDuration: 500,
|
|
132
|
+
iteration: "once",
|
|
133
|
+
purpose: "entrance for ingredient panels, plan cards, testimonial rows",
|
|
134
|
+
},
|
|
135
|
+
"tail-wag": {
|
|
136
|
+
css:
|
|
137
|
+
"0%, 100% { transform: rotate(-3deg); }\n" +
|
|
138
|
+
"50% { transform: rotate(3deg); }",
|
|
139
|
+
defaultDuration: 800,
|
|
140
|
+
iteration: "once",
|
|
141
|
+
purpose: "playful hover on pup avatars and birthday-treat chips — never on functional UI",
|
|
142
|
+
},
|
|
143
|
+
"soft-pulse": {
|
|
144
|
+
css:
|
|
145
|
+
"0%, 100% { opacity: 1; }\n" +
|
|
146
|
+
"50% { opacity: 0.7; }",
|
|
147
|
+
defaultDuration: 2200,
|
|
148
|
+
iteration: "infinite",
|
|
149
|
+
purpose: "next-delivery countdown and fresh-batch availability indicator",
|
|
150
|
+
},
|
|
151
|
+
},
|
|
152
|
+
respectsReducedMotion: true,
|
|
153
|
+
},
|
|
154
|
+
|
|
155
|
+
density: "medium",
|
|
156
|
+
|
|
157
|
+
patterns: {
|
|
158
|
+
button:
|
|
159
|
+
"Primary = solid terracotta fill, oat-cream text, rounded-2xl, shadow-pantry. " +
|
|
160
|
+
"Secondary = oat-cream fill with 1px kraft border, brown-ink text. " +
|
|
161
|
+
"Tertiary = text-link in terracotta with underline-on-hover. " +
|
|
162
|
+
"Pills allowed for breed-tags, life-stage chips, and ingredient filters. " +
|
|
163
|
+
"Hover: shadow-pantry-lg + 2% darken. Never gradient fills — pantry labels are flat.",
|
|
164
|
+
card:
|
|
165
|
+
"Rounded-2xl, oat-card fill on oat-cream background, 1px kraft border, shadow-pantry. " +
|
|
166
|
+
"Internal padding p-6 lg:p-8. Title in Fraunces 600 (display serif), body in DM Sans. " +
|
|
167
|
+
"Pup-profile cards may use a 2px terracotta top-border to indicate the active plan.",
|
|
168
|
+
input:
|
|
169
|
+
"Rounded-xl, 1px kraft border, oat-card background. Label sits above in DM Sans 500. " +
|
|
170
|
+
"Focus = 2px terracotta ring at 40% opacity. Placeholder italic in soft-brown. " +
|
|
171
|
+
"Pup-name and breed-search inputs may show a small dog-emoji icon inside the left padding.",
|
|
172
|
+
cta:
|
|
173
|
+
"Primary terracotta solid is the principal action. " +
|
|
174
|
+
"'Build my plan' CTAs always lead — never side-by-side with a low-commitment secondary. " +
|
|
175
|
+
"Sage ghost is reserved for wellness/transparency context (ingredient sourcing, vet-approval). " +
|
|
176
|
+
"Pumpkin is the playful limited-time accent — birthday treats, holiday recipes, never default.",
|
|
177
|
+
},
|
|
178
|
+
|
|
179
|
+
details: {
|
|
180
|
+
selectionBg: "hsl(var(--terracotta) / 0.2)",
|
|
181
|
+
selectionFg: "hsl(var(--foreground))",
|
|
182
|
+
focusRing: "2px solid hsl(var(--ring) / 0.55)",
|
|
183
|
+
scrollbarStyle: "thin",
|
|
184
|
+
},
|
|
185
|
+
};
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# Pharma Clinical
|
|
2
|
+
|
|
3
|
+
> Warm-professional pharmaceutical register — cream canvas at
|
|
4
|
+
|
|
5
|
+
**Slug:** `pharma-clinical` — **Surface:** web — **Density:** balanced
|
|
6
|
+
|
|
7
|
+
## Influence
|
|
8
|
+
|
|
9
|
+
Big-pharmaceutical corporate publishing (Genentech at its warmest and
|
|
10
|
+
most patient-forward, Roche investor communications, Regeneron
|
|
11
|
+
scientific brochures). Distinct from tech-bio surfaces through the
|
|
12
|
+
WARM CREAM canvas + BODONI DISPLAY SERIF + BURGUNDY ACCENT trio —
|
|
13
|
+
which reads as trust-and-tradition rather than startup-and-disruption.
|
|
14
|
+
The register lives at the intersection of clinical-journal typography
|
|
15
|
+
and boutique-agency editorial polish.
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
## Signature move
|
|
19
|
+
|
|
20
|
+
Warm cream canvas at #f7f3e8 — the register's non-negotiable base
|
|
21
|
+
(deliberately warmer than editorial's gallery #fafafa, cooler than
|
|
22
|
+
cabana-poster's #eedfca, and distinct from claude-cream #F4F1EA).
|
|
23
|
+
Cold near-black ink #1a1a1a with ONE burgundy accent #6b1a1a used
|
|
24
|
+
ONLY for clinical-phase chip fills + section-marker underlines +
|
|
25
|
+
hover states + pull-quote marks. Sharp corners everywhere.
|
|
26
|
+
|
|
27
|
+
Composition begins with a MASTHEAD — a Bodoni-family wordmark
|
|
28
|
+
"WATERSHED" (ALL CAPS, letter-spacing 0.03em, ~24px) on the left,
|
|
29
|
+
a horizontal nav row center (For patients / For clinicians / Our
|
|
30
|
+
science / Our pipeline / Careers / Investors), a filled burgundy
|
|
31
|
+
rectangular "Contact" button right-aligned. The masthead shrinks
|
|
32
|
+
after 200px of scroll.
|
|
33
|
+
|
|
34
|
+
Hero: a two-column split — LEFT column carries the big Bodoni
|
|
35
|
+
display headline (~64px, mixed case) + a Inter Tight body-copy
|
|
36
|
+
lede paragraph + a burgundy "Learn about our science →" text
|
|
37
|
+
link with hover underline. RIGHT column carries a full-bleed
|
|
38
|
+
patient / scientist portrait photograph (studio-quality, warm
|
|
39
|
+
directional light) with a small caption strip beneath ("Photograph:
|
|
40
|
+
Dr. Ren Havelock, Head of Clinical Research, Watershed").
|
|
41
|
+
|
|
42
|
+
Below the hero: a NUMBERED PIPELINE STAGES section — a horizontal
|
|
43
|
+
progress bar with 5 phase markers (Discovery / Preclinical / Phase
|
|
44
|
+
01 / Phase 02 / Phase 03), each marked by a small burgundy chip and
|
|
45
|
+
a molecule count. On scroll into view, the progress fill animates
|
|
46
|
+
from 0 → active-phase% and phase chips fade in with 160ms stagger.
|
|
47
|
+
|
|
48
|
+
A PATIENT STORY BAND follows — a full-width warm cream inverted
|
|
49
|
+
band with a large patient portrait photograph on the left and a
|
|
50
|
+
patient-quote pull with attribution on the right ("For the first
|
|
51
|
+
time in eleven years, I slept through a Tuesday." — Amara, on
|
|
52
|
+
starting an investigational treatment). Italic Bodoni for the
|
|
53
|
+
pull quote at 32px.
|
|
54
|
+
|
|
55
|
+
CLINICAL DATA CALLOUTS — a 3-column grid with counting numbers:
|
|
56
|
+
247 (active trials), 12,483 (patients enrolled globally), 89%
|
|
57
|
+
(retention through phase 3). Each number counts up from 0 on
|
|
58
|
+
scroll into view. Below each number a body-copy explanation and
|
|
59
|
+
a small footnote citation.
|
|
60
|
+
|
|
61
|
+
SCIENTIFIC ILLUSTRATION section — a paired layout with a bespoke
|
|
62
|
+
MOLECULE SVG on one side (a stylized protein-fold visualization)
|
|
63
|
+
and a scientific-explanation paragraph on the other. The molecule
|
|
64
|
+
is drawn as line-art with subtle burgundy highlights, not as a 3D
|
|
65
|
+
render.
|
|
66
|
+
|
|
67
|
+
MILESTONE TIMELINE — a vertical timeline (rule + dots) with 6
|
|
68
|
+
historical entries (Founded 2003, First IPO, First approval, etc).
|
|
69
|
+
Dots animate in with 120ms per-dot stagger on scroll into view.
|
|
70
|
+
|
|
71
|
+
CAREERS BAND — warm cream inverted background with a "We're
|
|
72
|
+
hiring across research + clinical + regulatory + commercial"
|
|
73
|
+
monumental Bodoni headline + a 4-column open-role list + a
|
|
74
|
+
photograph of the actual laboratory space.
|
|
75
|
+
|
|
76
|
+
Footer: a dark inverted band with the big Bodoni wordmark
|
|
77
|
+
repeated, colophon paragraph, 4-column utility grid (About,
|
|
78
|
+
Patients, Investors, Legal), and small legal disclaimers.
|
|
79
|
+
|
|
80
|
+
Six bespoke SVG marks (molecule protein-fold, capsule outline,
|
|
81
|
+
microscope silhouette, patient-portrait framing bracket, phase-
|
|
82
|
+
chip separator glyph, timeline milestone dot) are dropped as
|
|
83
|
+
PUNCTUATION at specific compositional moments — never as a
|
|
84
|
+
uniform icon row.
|
|
85
|
+
|
|
86
|
+
## Palette
|
|
87
|
+
|
|
88
|
+
- **bg:** `#f7f3e8`
|
|
89
|
+
- **surface:** `#ffffff`
|
|
90
|
+
- **ink:** `#1a1a1a`
|
|
91
|
+
- **accent:** `#6b1a1a`
|
|
92
|
+
|
|
93
|
+
## Typography
|
|
94
|
+
|
|
95
|
+
- **Display:** A Bodoni-family display serif with strong stress contrast and elegant serifs — the reference uses Fenice / Bodoni Moda. Free fallback stack — "Bodoni Moda", "Playfair Display", "PT Serif Display", Georgia, serif. Weight 500-700, mixed case for section titles + patient-name callouts, ALL CAPS ONLY for the wordmark. Top of scale ~64px for hero headline, 40px for section headings, 28px for pull quotes. Never uppercase at body scale.
|
|
96
|
+
- **Body:** A clean geometric sans for body copy — Inter Tight / Söhne / Aktiv Grotesk. Free fallback stack — "Inter Tight", Inter, "Space Grotesk", system-ui, sans-serif. Weight 400 for body copy, 500 for small labels, 600 for phase-indicator chips. 15-16px body copy, line-height 1.55.
|
|
97
|
+
- **Mono:** none. Pharma Clinical is a consumer corporate publishing surface. Mono has no role.
|
|
98
|
+
- **Scale:** 1.333 (perfect fourth — restrained, comfortable for long-form medical copy)
|
|
99
|
+
|
|
100
|
+
## Motion
|
|
101
|
+
|
|
102
|
+
Ships live in the section renderer (no external dependencies):
|
|
103
|
+
1. Hero display serif reveal — headline fades in from opacity 0 + translateY(24px) over 800ms cubic-bezier(0.23,1,0.32,1) on first paint. Body copy follows with 200ms delay.
|
|
104
|
+
2. Hero photograph fade + scale — the patient/scientist portrait opens from opacity 0.5 + scale(1.02) to opacity 1 + scale(1) over 1200ms cubic-bezier.
|
|
105
|
+
3. Numbered pipeline progress bar — as the pipeline section scrolls into view (IntersectionObserver at 40%), the progress fill animates from 0% → active-phase% over 1400ms cubic-bezier. Phase-indicator chips fade in with 160ms per-chip stagger.
|
|
106
|
+
4. Clinical data counters — each stat number rolls from 0 → target on first scroll into view via requestAnimationFrame, 2000ms ease-out.
|
|
107
|
+
5. Patient portrait progressive reveal — the story-band portrait fades from blur(6px) + opacity 0.4 → blur(0) + opacity 1 over 900ms cubic-bezier.
|
|
108
|
+
6. Timeline sequential reveal — milestone dots animate in with 120ms per-dot stagger + 500ms cubic-bezier when the timeline scrolls into view.
|
|
109
|
+
7. Nav shrink on scroll — masthead height reduces from 88px → 56px after 200px of scroll, transitioning padding + wordmark font-size over 300ms cubic-bezier.
|
|
110
|
+
8. Section reveals — each below-fold section fades in from opacity 0 + translateY(24px) → 0 over 700ms cubic-bezier on IntersectionObserver at 25% threshold.
|
|
111
|
+
9. prefers-reduced-motion: reduce — all reveals disabled; counters show final value; pipeline shows at active phase; nav still shrinks (state change); hover still works (interaction feedback).
|
|
112
|
+
|
|
113
|
+
Motion character: quiet, precise, trust-first. Custom cubic-bezier(0.23,1,0.32,1) for all reveals. Never marketing-loud, never startup-flashy — reads as a considered pharma annual report, not a SaaS product tour.
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
## Imagery
|
|
117
|
+
|
|
118
|
+
EDITORIAL patient portrait + scientist portrait + laboratory
|
|
119
|
+
photography under warm directional light — the reference uses
|
|
120
|
+
quiet, dignified portraits of real patients and researchers, shot
|
|
121
|
+
in interior clinical / laboratory settings with soft window light.
|
|
122
|
+
FPO imagery here should read as considered documentary portraiture
|
|
123
|
+
(posed subject, warm interior light, minimal styling). NO stock
|
|
124
|
+
"diverse team in lab coats around a laptop" photography (that's the
|
|
125
|
+
AI-tell for corporate-pharma slop). NO 3D-rendered molecule
|
|
126
|
+
visualizations that read as game engine (bespoke SVG only). NO
|
|
127
|
+
warm-radial-gradient fills as placeholder decoration.
|
|
128
|
+
|
|
129
|
+
## Best for
|
|
130
|
+
|
|
131
|
+
- Big-pharmaceutical and biopharmaceutical corporate sites
|
|
132
|
+
- Clinical trial recruitment and patient-facing pharma sites
|
|
133
|
+
- Medical research organizations and academic clinical research units
|
|
134
|
+
- Healthcare technology companies with a clinical / regulatory register
|
|
135
|
+
- Boutique specialty-med brands (fertility, precision oncology, rare disease)
|
|
136
|
+
- Corporate reports and investor communications for life-sciences firms
|
|
137
|
+
|
|
138
|
+
## Reject if
|
|
139
|
+
|
|
140
|
+
_Director grades each of the following as a pass/fail check. Any violation blocks the theme._
|
|
141
|
+
|
|
142
|
+
- Dark canvas (near-black / true-black) as the primary background — Pharma Clinical's canvas is warm CREAM at #f7f3e8. A dark canvas inverts the trust-forward warm-professional register into a startup-biotech register (which is a different theme).
|
|
143
|
+
- Sans-serif display type — the display face MUST be a Bodoni-family serif with strong stress contrast (Bodoni Moda / Playfair Display fallback). Sans display collapses this into a modern-biotech register.
|
|
144
|
+
- Multi-color accent palette — the whole register's move is ONE burgundy accent doing everything (phase chips, hover states, underlines, pull-quote mark). Introducing amber / cyan / any second accent collapses the discipline into candy-corporate slop.
|
|
145
|
+
- Rounded corners on cards, buttons, phase-chip pills, timeline dots, or photograph frames — 0px radius everywhere.
|
|
146
|
+
- Stock diverse-team-in-lab-coat photography — imagery MUST feel like editorial documentary portraiture (quiet posed subjects under warm directional light). Stock team-around-laptop photography is the AI-tell for corporate pharma slop.
|
|
147
|
+
- 3D-rendered molecule visualizations — molecule illustrations MUST be bespoke SVG line-art with subtle burgundy highlights. Game-engine 3D renders read as tech-biotech, not warm-clinical.
|
|
148
|
+
- Mono-caps eyebrow labels outside the two legitimate use sites — CLINICAL-PHASE INDICATOR (PHASE 01) and SECTION MARKER (OUR SCIENCE) are the ONLY permitted mono-caps uses. Any additional 'SECTION · X' / 'CHAPTER · Y' / 'MIN READ' plate is slop-blocklist violation.
|
|
149
|
+
- Cycling headline words / auto-advancing sliders / horizontal tickers — pharma register requires STATIC, RESTRAINED motion. Marketing-web motion collapses into startup slop.
|
|
150
|
+
- Warm-radial gradient placeholder fills — every photograph FPO must read as documentary portraiture. Warm-radial gradients are the AI-tell for missing imagery.
|
|
151
|
+
- Big saturated hero-marketing display type at 200px+ — the register requires RESTRAINED display scale so the content (data callouts, patient stories, pipeline) carries the drama, not the type.
|
|
152
|
+
|
|
153
|
+
## Banned defaults (inherited + theme-specific)
|
|
154
|
+
|
|
155
|
+
- claude-cream (#F4F1EA + serif + #D97757) — this theme's canvas is #f7f3e8, WARMER than claude-cream and distinct.
|
|
156
|
+
- void+acid (near-black bg + single bright acid-green or vermilion accent)
|
|
157
|
+
- broadsheet-on-noneditorial (hairline rules + zero border-radius + newspaper columns on non-editorial content)
|
|
158
|
+
- tech-bro purple gradient (purple→blue gradient hero + centered headline + double CTA + emoji icons)
|
|
159
|
+
- uniform-everything (identical padding + one weight of one sans doing every job + rounded-2xl + shadow-md cards)
|
|
160
|
+
- dark-biotech-inversion (canvas is warm cream. Swapping to dark canvas collapses into a modern-biotech register that reads as startup, not big-pharma.)
|
|
161
|
+
- multi-accent-flood (ONE burgundy accent doing 100% of the punctuation. Introducing cyan / orange / any secondary accent collapses the discipline into candy-corporate.)
|
|
162
|
+
- stock-lab-coat-photography (imagery must feel documentary and considered. Stock diverse-team-in-lab is the AI-tell for corporate-pharma slop.)
|
|
163
|
+
- 3d-molecule-render (molecule visualization must be bespoke SVG line-art with burgundy highlights. 3D game-engine renders read as tech-startup, not warm-pharma.)
|
|
164
|
+
- monumental-marketing-hero (hero display stays RESTRAINED at ~64px so the pipeline / patient stories / data callouts carry the composition. Big marketing hero type collapses the register into SaaS slop.)
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Generated from theme.yml. Merge into your tailwind.config.ts under theme.extend.
|
|
2
|
+
// slug: pharma-clinical
|
|
3
|
+
export const pharmaClinicalTailwindExtend = {
|
|
4
|
+
colors: {
|
|
5
|
+
bg: "#f7f3e8",
|
|
6
|
+
surface: "#ffffff",
|
|
7
|
+
ink: "#1a1a1a",
|
|
8
|
+
accent: "#6b1a1a",
|
|
9
|
+
},
|
|
10
|
+
fontFamily: {
|
|
11
|
+
display: ["A Bodoni-family display serif with strong stress contrast and elegant serifs — the reference uses Fenice / Bodoni Moda. Free fallback stack — \"Bodoni Moda\", \"Playfair Display\", \"PT Serif Display\", Georgia, serif. Weight 500-700, mixed case for section titles + patient-name callouts, ALL CAPS ONLY for the wordmark. Top of scale ~64px for hero headline, 40px for section headings, 28px for pull quotes. Never uppercase at body scale."],
|
|
12
|
+
body: ["A clean geometric sans for body copy — Inter Tight / Söhne / Aktiv Grotesk. Free fallback stack — \"Inter Tight\", Inter, \"Space Grotesk\", system-ui, sans-serif. Weight 400 for body copy, 500 for small labels, 600 for phase-indicator chips. 15-16px body copy, line-height 1.55."],
|
|
13
|
+
mono: ["none. Pharma Clinical is a consumer corporate publishing surface. Mono has no role."],
|
|
14
|
+
},
|
|
15
|
+
};
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
# Pharma Clinical — Family C, Editorial & Print (corporate-editorial subregion).
|
|
2
|
+
#
|
|
3
|
+
# Warm-professional pharmaceutical register. Cream canvas at #f7f3e8 with
|
|
4
|
+
# cold near-black ink (#1a1a1a) and ONE burgundy accent (#6b1a1a) used
|
|
5
|
+
# for phase-indicator chips, hover states, and pull-quote marks. Sharp
|
|
6
|
+
# corners everywhere. Display type in a Bodoni-family serif (Bodoni
|
|
7
|
+
# Moda / Playfair fallback); body copy in Inter Tight. Editorial-quality
|
|
8
|
+
# patient photography, numbered pipeline stages, and scientific
|
|
9
|
+
# illustrations of molecules do the visual work.
|
|
10
|
+
#
|
|
11
|
+
# Influence anchor (per Matt's pick): Genentech — big-pharma polish at
|
|
12
|
+
# its most trust-forward. Placeholder brand: "WATERSHED" — a fictional
|
|
13
|
+
# biopharmaceutical imprint. Original name, original copy, no
|
|
14
|
+
# reproductions of any reference.
|
|
15
|
+
#
|
|
16
|
+
# Distinct from other Family C bases:
|
|
17
|
+
# - Ember Poster is warm-dark editorial serif with hand-drawn ornaments
|
|
18
|
+
# - Case Panel is agency portfolio bento
|
|
19
|
+
# - Marker Mag is punk zine chaos
|
|
20
|
+
# - Pill Editorial is 999px cultural editorial
|
|
21
|
+
# - Cabana Poster is vintage travel-poster warmth
|
|
22
|
+
# - Editorial (v2) is Aperture photography-first quarterly
|
|
23
|
+
# Pharma Clinical fills the CORPORATE-EDITORIAL PHARMA slot — warm
|
|
24
|
+
# publication register applied to trust-first pharma / biotech / clinical
|
|
25
|
+
# / research-org communication.
|
|
26
|
+
#
|
|
27
|
+
# Sixteenth theme via the v2 harness. Seventh Family C theme. Upgrade
|
|
28
|
+
# of the existing v1 archetype-fallback slug, not a new-base candidate.
|
|
29
|
+
|
|
30
|
+
name: Pharma Clinical
|
|
31
|
+
concept: Warm-professional pharmaceutical register — cream canvas at #f7f3e8 with cold near-black ink and ONE burgundy accent (#6b1a1a) used sparingly for phase-indicator chips and hover states. Bodoni-family display serif paired with Inter Tight body. Editorial patient photography, numbered pipeline stages (with animated progress on scroll into view), clinical data callouts (real-time counting), and scientific molecule illustrations. Reads like a Genentech annual report crossed with a New England Journal of Medicine feature — evidence-first, trust-forward, human-warm.
|
|
32
|
+
influence: |
|
|
33
|
+
Big-pharmaceutical corporate publishing (Genentech at its warmest and
|
|
34
|
+
most patient-forward, Roche investor communications, Regeneron
|
|
35
|
+
scientific brochures). Distinct from tech-bio surfaces through the
|
|
36
|
+
WARM CREAM canvas + BODONI DISPLAY SERIF + BURGUNDY ACCENT trio —
|
|
37
|
+
which reads as trust-and-tradition rather than startup-and-disruption.
|
|
38
|
+
The register lives at the intersection of clinical-journal typography
|
|
39
|
+
and boutique-agency editorial polish.
|
|
40
|
+
|
|
41
|
+
family: C
|
|
42
|
+
base_number: 30
|
|
43
|
+
base_note: |
|
|
44
|
+
Family C editorial subregion, CORPORATE-EDITORIAL PHARMA slot.
|
|
45
|
+
Distinct from other Family C bases through the WARM CREAM + DISPLAY
|
|
46
|
+
SERIF + BURGUNDY ACCENT trio and the DATA-FORWARD signature moves
|
|
47
|
+
(numbered pipeline, clinical counters, timeline). Editorial (v2) is
|
|
48
|
+
Aperture photography-first quarterly with vermilion accent; Pharma
|
|
49
|
+
Clinical inverts the pairing (serif display over sans body) and swaps
|
|
50
|
+
the accent hue to burgundy. Both share sharp corners and single-accent
|
|
51
|
+
discipline but read as different publication types. This is an
|
|
52
|
+
upgrade of the existing v1 pharma-clinical slug from
|
|
53
|
+
archetype-fallback to a full bespoke composition.
|
|
54
|
+
|
|
55
|
+
render_url: http://localhost:5173/themes/pharma-clinical
|
|
56
|
+
|
|
57
|
+
surface: web
|
|
58
|
+
|
|
59
|
+
typography:
|
|
60
|
+
display: A Bodoni-family display serif with strong stress contrast and elegant serifs — the reference uses Fenice / Bodoni Moda. Free fallback stack — "Bodoni Moda", "Playfair Display", "PT Serif Display", Georgia, serif. Weight 500-700, mixed case for section titles + patient-name callouts, ALL CAPS ONLY for the wordmark. Top of scale ~64px for hero headline, 40px for section headings, 28px for pull quotes. Never uppercase at body scale.
|
|
61
|
+
body: A clean geometric sans for body copy — Inter Tight / Söhne / Aktiv Grotesk. Free fallback stack — "Inter Tight", Inter, "Space Grotesk", system-ui, sans-serif. Weight 400 for body copy, 500 for small labels, 600 for phase-indicator chips. 15-16px body copy, line-height 1.55.
|
|
62
|
+
mono: none. Pharma Clinical is a consumer corporate publishing surface. Mono has no role.
|
|
63
|
+
scale: 1.333 (perfect fourth — restrained, comfortable for long-form medical copy)
|
|
64
|
+
eyebrow_exception: |
|
|
65
|
+
Pharma Clinical LEGITIMATELY uses small uppercase 0.14em-tracked 10-11px labels for CLINICAL-PHASE INDICATORS (PHASE 01 / PHASE 02 / PHASE 03) and SECTION MARKERS (OUR SCIENCE / OUR PATIENTS / OUR PIPELINE). This is a THEME-SPECIFIC EXCEPTION — the reference publication style uses these EXACTLY in this register, as diegetic clinical publication markers rather than as decorative eyebrow slop. Every use is deliberate and reference-anchored.
|
|
66
|
+
|
|
67
|
+
palette:
|
|
68
|
+
bg: "#f7f3e8" # canvas — warm cream, warmer than gallery but cooler than cabana
|
|
69
|
+
surface: "#ffffff" # pure white raised panel
|
|
70
|
+
ink: "#1a1a1a" # cold near-black ink
|
|
71
|
+
accent: "#6b1a1a" # deep burgundy — the ONE accent
|
|
72
|
+
cream: "#f0eadc" # deeper cream for inverted band
|
|
73
|
+
darkInk: "#0a0a0a" # pure black for masthead + inverted band
|
|
74
|
+
mute: "#6a6558" # warm gray — captions + micro-labels
|
|
75
|
+
|
|
76
|
+
density: balanced
|
|
77
|
+
|
|
78
|
+
motion: |
|
|
79
|
+
Ships live in the section renderer (no external dependencies):
|
|
80
|
+
1. Hero display serif reveal — headline fades in from opacity 0 + translateY(24px) over 800ms cubic-bezier(0.23,1,0.32,1) on first paint. Body copy follows with 200ms delay.
|
|
81
|
+
2. Hero photograph fade + scale — the patient/scientist portrait opens from opacity 0.5 + scale(1.02) to opacity 1 + scale(1) over 1200ms cubic-bezier.
|
|
82
|
+
3. Numbered pipeline progress bar — as the pipeline section scrolls into view (IntersectionObserver at 40%), the progress fill animates from 0% → active-phase% over 1400ms cubic-bezier. Phase-indicator chips fade in with 160ms per-chip stagger.
|
|
83
|
+
4. Clinical data counters — each stat number rolls from 0 → target on first scroll into view via requestAnimationFrame, 2000ms ease-out.
|
|
84
|
+
5. Patient portrait progressive reveal — the story-band portrait fades from blur(6px) + opacity 0.4 → blur(0) + opacity 1 over 900ms cubic-bezier.
|
|
85
|
+
6. Timeline sequential reveal — milestone dots animate in with 120ms per-dot stagger + 500ms cubic-bezier when the timeline scrolls into view.
|
|
86
|
+
7. Nav shrink on scroll — masthead height reduces from 88px → 56px after 200px of scroll, transitioning padding + wordmark font-size over 300ms cubic-bezier.
|
|
87
|
+
8. Section reveals — each below-fold section fades in from opacity 0 + translateY(24px) → 0 over 700ms cubic-bezier on IntersectionObserver at 25% threshold.
|
|
88
|
+
9. prefers-reduced-motion: reduce — all reveals disabled; counters show final value; pipeline shows at active phase; nav still shrinks (state change); hover still works (interaction feedback).
|
|
89
|
+
|
|
90
|
+
Motion character: quiet, precise, trust-first. Custom cubic-bezier(0.23,1,0.32,1) for all reveals. Never marketing-loud, never startup-flashy — reads as a considered pharma annual report, not a SaaS product tour.
|
|
91
|
+
|
|
92
|
+
signature: |
|
|
93
|
+
Warm cream canvas at #f7f3e8 — the register's non-negotiable base
|
|
94
|
+
(deliberately warmer than editorial's gallery #fafafa, cooler than
|
|
95
|
+
cabana-poster's #eedfca, and distinct from claude-cream #F4F1EA).
|
|
96
|
+
Cold near-black ink #1a1a1a with ONE burgundy accent #6b1a1a used
|
|
97
|
+
ONLY for clinical-phase chip fills + section-marker underlines +
|
|
98
|
+
hover states + pull-quote marks. Sharp corners everywhere.
|
|
99
|
+
|
|
100
|
+
Composition begins with a MASTHEAD — a Bodoni-family wordmark
|
|
101
|
+
"WATERSHED" (ALL CAPS, letter-spacing 0.03em, ~24px) on the left,
|
|
102
|
+
a horizontal nav row center (For patients / For clinicians / Our
|
|
103
|
+
science / Our pipeline / Careers / Investors), a filled burgundy
|
|
104
|
+
rectangular "Contact" button right-aligned. The masthead shrinks
|
|
105
|
+
after 200px of scroll.
|
|
106
|
+
|
|
107
|
+
Hero: a two-column split — LEFT column carries the big Bodoni
|
|
108
|
+
display headline (~64px, mixed case) + a Inter Tight body-copy
|
|
109
|
+
lede paragraph + a burgundy "Learn about our science →" text
|
|
110
|
+
link with hover underline. RIGHT column carries a full-bleed
|
|
111
|
+
patient / scientist portrait photograph (studio-quality, warm
|
|
112
|
+
directional light) with a small caption strip beneath ("Photograph:
|
|
113
|
+
Dr. Ren Havelock, Head of Clinical Research, Watershed").
|
|
114
|
+
|
|
115
|
+
Below the hero: a NUMBERED PIPELINE STAGES section — a horizontal
|
|
116
|
+
progress bar with 5 phase markers (Discovery / Preclinical / Phase
|
|
117
|
+
01 / Phase 02 / Phase 03), each marked by a small burgundy chip and
|
|
118
|
+
a molecule count. On scroll into view, the progress fill animates
|
|
119
|
+
from 0 → active-phase% and phase chips fade in with 160ms stagger.
|
|
120
|
+
|
|
121
|
+
A PATIENT STORY BAND follows — a full-width warm cream inverted
|
|
122
|
+
band with a large patient portrait photograph on the left and a
|
|
123
|
+
patient-quote pull with attribution on the right ("For the first
|
|
124
|
+
time in eleven years, I slept through a Tuesday." — Amara, on
|
|
125
|
+
starting an investigational treatment). Italic Bodoni for the
|
|
126
|
+
pull quote at 32px.
|
|
127
|
+
|
|
128
|
+
CLINICAL DATA CALLOUTS — a 3-column grid with counting numbers:
|
|
129
|
+
247 (active trials), 12,483 (patients enrolled globally), 89%
|
|
130
|
+
(retention through phase 3). Each number counts up from 0 on
|
|
131
|
+
scroll into view. Below each number a body-copy explanation and
|
|
132
|
+
a small footnote citation.
|
|
133
|
+
|
|
134
|
+
SCIENTIFIC ILLUSTRATION section — a paired layout with a bespoke
|
|
135
|
+
MOLECULE SVG on one side (a stylized protein-fold visualization)
|
|
136
|
+
and a scientific-explanation paragraph on the other. The molecule
|
|
137
|
+
is drawn as line-art with subtle burgundy highlights, not as a 3D
|
|
138
|
+
render.
|
|
139
|
+
|
|
140
|
+
MILESTONE TIMELINE — a vertical timeline (rule + dots) with 6
|
|
141
|
+
historical entries (Founded 2003, First IPO, First approval, etc).
|
|
142
|
+
Dots animate in with 120ms per-dot stagger on scroll into view.
|
|
143
|
+
|
|
144
|
+
CAREERS BAND — warm cream inverted background with a "We're
|
|
145
|
+
hiring across research + clinical + regulatory + commercial"
|
|
146
|
+
monumental Bodoni headline + a 4-column open-role list + a
|
|
147
|
+
photograph of the actual laboratory space.
|
|
148
|
+
|
|
149
|
+
Footer: a dark inverted band with the big Bodoni wordmark
|
|
150
|
+
repeated, colophon paragraph, 4-column utility grid (About,
|
|
151
|
+
Patients, Investors, Legal), and small legal disclaimers.
|
|
152
|
+
|
|
153
|
+
Six bespoke SVG marks (molecule protein-fold, capsule outline,
|
|
154
|
+
microscope silhouette, patient-portrait framing bracket, phase-
|
|
155
|
+
chip separator glyph, timeline milestone dot) are dropped as
|
|
156
|
+
PUNCTUATION at specific compositional moments — never as a
|
|
157
|
+
uniform icon row.
|
|
158
|
+
|
|
159
|
+
imagery: |
|
|
160
|
+
EDITORIAL patient portrait + scientist portrait + laboratory
|
|
161
|
+
photography under warm directional light — the reference uses
|
|
162
|
+
quiet, dignified portraits of real patients and researchers, shot
|
|
163
|
+
in interior clinical / laboratory settings with soft window light.
|
|
164
|
+
FPO imagery here should read as considered documentary portraiture
|
|
165
|
+
(posed subject, warm interior light, minimal styling). NO stock
|
|
166
|
+
"diverse team in lab coats around a laptop" photography (that's the
|
|
167
|
+
AI-tell for corporate-pharma slop). NO 3D-rendered molecule
|
|
168
|
+
visualizations that read as game engine (bespoke SVG only). NO
|
|
169
|
+
warm-radial-gradient fills as placeholder decoration.
|
|
170
|
+
|
|
171
|
+
best_for:
|
|
172
|
+
- Big-pharmaceutical and biopharmaceutical corporate sites
|
|
173
|
+
- Clinical trial recruitment and patient-facing pharma sites
|
|
174
|
+
- Medical research organizations and academic clinical research units
|
|
175
|
+
- Healthcare technology companies with a clinical / regulatory register
|
|
176
|
+
- Boutique specialty-med brands (fertility, precision oncology, rare disease)
|
|
177
|
+
- Corporate reports and investor communications for life-sciences firms
|
|
178
|
+
|
|
179
|
+
avoid:
|
|
180
|
+
- "Dark canvas (near-black / true-black) as the primary background — Pharma Clinical's canvas is warm CREAM at #f7f3e8. A dark canvas inverts the trust-forward warm-professional register into a startup-biotech register (which is a different theme)."
|
|
181
|
+
- "Sans-serif display type — the display face MUST be a Bodoni-family serif with strong stress contrast (Bodoni Moda / Playfair Display fallback). Sans display collapses this into a modern-biotech register."
|
|
182
|
+
- "Multi-color accent palette — the whole register's move is ONE burgundy accent doing everything (phase chips, hover states, underlines, pull-quote mark). Introducing amber / cyan / any second accent collapses the discipline into candy-corporate slop."
|
|
183
|
+
- "Rounded corners on cards, buttons, phase-chip pills, timeline dots, or photograph frames — 0px radius everywhere."
|
|
184
|
+
- "Stock diverse-team-in-lab-coat photography — imagery MUST feel like editorial documentary portraiture (quiet posed subjects under warm directional light). Stock team-around-laptop photography is the AI-tell for corporate pharma slop."
|
|
185
|
+
- "3D-rendered molecule visualizations — molecule illustrations MUST be bespoke SVG line-art with subtle burgundy highlights. Game-engine 3D renders read as tech-biotech, not warm-clinical."
|
|
186
|
+
- "Mono-caps eyebrow labels outside the two legitimate use sites — CLINICAL-PHASE INDICATOR (PHASE 01) and SECTION MARKER (OUR SCIENCE) are the ONLY permitted mono-caps uses. Any additional 'SECTION · X' / 'CHAPTER · Y' / 'MIN READ' plate is slop-blocklist violation."
|
|
187
|
+
- "Cycling headline words / auto-advancing sliders / horizontal tickers — pharma register requires STATIC, RESTRAINED motion. Marketing-web motion collapses into startup slop."
|
|
188
|
+
- "Warm-radial gradient placeholder fills — every photograph FPO must read as documentary portraiture. Warm-radial gradients are the AI-tell for missing imagery."
|
|
189
|
+
- "Big saturated hero-marketing display type at 200px+ — the register requires RESTRAINED display scale so the content (data callouts, patient stories, pipeline) carries the drama, not the type."
|
|
190
|
+
|
|
191
|
+
banned_defaults:
|
|
192
|
+
- "claude-cream (#F4F1EA + serif + #D97757) — this theme's canvas is #f7f3e8, WARMER than claude-cream and distinct."
|
|
193
|
+
- "void+acid (near-black bg + single bright acid-green or vermilion accent)"
|
|
194
|
+
- "broadsheet-on-noneditorial (hairline rules + zero border-radius + newspaper columns on non-editorial content)"
|
|
195
|
+
- "tech-bro purple gradient (purple→blue gradient hero + centered headline + double CTA + emoji icons)"
|
|
196
|
+
- "uniform-everything (identical padding + one weight of one sans doing every job + rounded-2xl + shadow-md cards)"
|
|
197
|
+
- "dark-biotech-inversion (canvas is warm cream. Swapping to dark canvas collapses into a modern-biotech register that reads as startup, not big-pharma.)"
|
|
198
|
+
- "multi-accent-flood (ONE burgundy accent doing 100% of the punctuation. Introducing cyan / orange / any secondary accent collapses the discipline into candy-corporate.)"
|
|
199
|
+
- "stock-lab-coat-photography (imagery must feel documentary and considered. Stock diverse-team-in-lab is the AI-tell for corporate-pharma slop.)"
|
|
200
|
+
- "3d-molecule-render (molecule visualization must be bespoke SVG line-art with burgundy highlights. 3D game-engine renders read as tech-startup, not warm-pharma.)"
|
|
201
|
+
- "monumental-marketing-hero (hero display stays RESTRAINED at ~64px so the pipeline / patient stories / data callouts carry the composition. Big marketing hero type collapses the register into SaaS slop.)"
|