@stylecrib/cli 0.3.1 → 0.3.2

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.
Files changed (348) hide show
  1. package/README.md +94 -9
  2. package/agents/MANIFEST.yml +136 -0
  3. package/agents/README.md +75 -0
  4. package/agents/art-director.md +168 -0
  5. package/agents/audacity-director.md +109 -0
  6. package/agents/brand-identity.md +179 -0
  7. package/agents/brand-precedent.md +119 -0
  8. package/agents/brief-enforcer.md +136 -0
  9. package/agents/component-qa.md +167 -0
  10. package/agents/cto.md +49 -0
  11. package/agents/design-director.md +184 -0
  12. package/agents/design-systems-engineer.md +162 -0
  13. package/agents/direction-curator.md +133 -0
  14. package/agents/homogeneity-detector.md +104 -0
  15. package/agents/logo-designer.md +240 -0
  16. package/agents/marketing-designer.md +156 -0
  17. package/agents/media-curator.md +165 -0
  18. package/agents/motion-engineer.md +270 -0
  19. package/agents/qa-conductor.md +143 -0
  20. package/agents/render-qa.md +133 -0
  21. package/agents/upgrade-simulator.md +123 -0
  22. package/agents/vp-architecture.md +49 -0
  23. package/agents/vp-engineering.md +49 -0
  24. package/dist/index.js +1577 -463
  25. package/package.json +11 -4
  26. package/themes/README.md +70 -0
  27. package/themes/acrylic-soft/THEME.md +142 -0
  28. package/themes/acrylic-soft/tokens.ts +180 -0
  29. package/themes/agency-creative/THEME.md +91 -0
  30. package/themes/agency-creative/tokens.ts +202 -0
  31. package/themes/agency-portfolio/THEME.md +109 -0
  32. package/themes/agency-portfolio/tokens.ts +159 -0
  33. package/themes/ai-startup/THEME.md +95 -0
  34. package/themes/ai-startup/tokens.ts +162 -0
  35. package/themes/airline-modern/THEME.md +104 -0
  36. package/themes/airline-modern/tokens.ts +179 -0
  37. package/themes/arc-stack/.anchor-render.png +0 -0
  38. package/themes/arc-stack/THEME.md +125 -0
  39. package/themes/arc-stack/audit.log.jsonl +6 -0
  40. package/themes/arc-stack/dismissals.jsonl +3 -0
  41. package/themes/arc-stack/tailwind.snippet.ts +17 -0
  42. package/themes/arc-stack/theme.yml +153 -0
  43. package/themes/arc-stack/tokens.ts +29 -0
  44. package/themes/architectural/THEME.md +102 -0
  45. package/themes/architectural/tokens.ts +159 -0
  46. package/themes/atelier-radiance/THEME.md +93 -0
  47. package/themes/atelier-radiance/audit.log.jsonl +1 -0
  48. package/themes/atelier-radiance/tailwind.snippet.ts +15 -0
  49. package/themes/atelier-radiance/theme.yml +130 -0
  50. package/themes/atelier-radiance/tokens.ts +29 -0
  51. package/themes/automotive-ev/THEME.md +87 -0
  52. package/themes/automotive-ev/tokens.ts +183 -0
  53. package/themes/automotive-luxury/THEME.md +88 -0
  54. package/themes/automotive-luxury/tokens.ts +175 -0
  55. package/themes/baby-modern/THEME.md +79 -0
  56. package/themes/baby-modern/tokens.ts +184 -0
  57. package/themes/banking-gravity/THEME.md +171 -0
  58. package/themes/banking-gravity/tokens.ts +169 -0
  59. package/themes/beauty-clean/THEME.md +92 -0
  60. package/themes/beauty-clean/tokens.ts +176 -0
  61. package/themes/beauty-luxury/THEME.md +96 -0
  62. package/themes/beauty-luxury/tokens.ts +178 -0
  63. package/themes/bento-modular/.anchor-render.png +0 -0
  64. package/themes/bento-modular/BUILD_BRIEF.md +171 -0
  65. package/themes/bento-modular/THEME.md +80 -0
  66. package/themes/bento-modular/audit.log.jsonl +3 -0
  67. package/themes/bento-modular/dismissals.jsonl +1 -0
  68. package/themes/bento-modular/tailwind.snippet.ts +17 -0
  69. package/themes/bento-modular/theme.yml +83 -0
  70. package/themes/bento-modular/tokens.ts +27 -0
  71. package/themes/bookstore-indie/THEME.md +78 -0
  72. package/themes/bookstore-indie/tokens.ts +147 -0
  73. package/themes/brutalist/THEME.md +96 -0
  74. package/themes/brutalist/tokens.ts +151 -0
  75. package/themes/business-tiles/THEME.md +141 -0
  76. package/themes/business-tiles/tokens.ts +178 -0
  77. package/themes/cabana-poster/THEME.md +158 -0
  78. package/themes/cabana-poster/audit.log.jsonl +1 -0
  79. package/themes/cabana-poster/tailwind.snippet.ts +16 -0
  80. package/themes/cabana-poster/theme.yml +221 -0
  81. package/themes/cabana-poster/tokens.ts +34 -0
  82. package/themes/case-panel/THEME.md +126 -0
  83. package/themes/case-panel/audit.log.jsonl +2 -0
  84. package/themes/case-panel/tailwind.snippet.ts +15 -0
  85. package/themes/case-panel/theme.yml +153 -0
  86. package/themes/case-panel/tokens.ts +28 -0
  87. package/themes/cinematic-dark/THEME.md +97 -0
  88. package/themes/cinematic-dark/tokens.ts +195 -0
  89. package/themes/classic-car/THEME.md +86 -0
  90. package/themes/classic-car/tokens.ts +173 -0
  91. package/themes/cloud-friendly/THEME.md +152 -0
  92. package/themes/cloud-friendly/tokens.ts +181 -0
  93. package/themes/community-niche/THEME.md +102 -0
  94. package/themes/community-niche/tokens.ts +177 -0
  95. package/themes/corporate-grid/THEME.md +154 -0
  96. package/themes/corporate-grid/tokens.ts +182 -0
  97. package/themes/couture-luxury/THEME.md +85 -0
  98. package/themes/couture-luxury/tokens.ts +146 -0
  99. package/themes/creator-social/THEME.md +131 -0
  100. package/themes/creator-social/tokens.ts +249 -0
  101. package/themes/crypto-onchain/THEME.md +100 -0
  102. package/themes/crypto-onchain/tokens.ts +207 -0
  103. package/themes/cycling-brand/THEME.md +78 -0
  104. package/themes/cycling-brand/tokens.ts +185 -0
  105. package/themes/dating-friendly/THEME.md +102 -0
  106. package/themes/dating-friendly/tokens.ts +178 -0
  107. package/themes/dense-utility/THEME.md +85 -0
  108. package/themes/dense-utility/tokens.ts +155 -0
  109. package/themes/devtool-cli/THEME.md +100 -0
  110. package/themes/devtool-cli/tokens.ts +195 -0
  111. package/themes/devtool-docs/THEME.md +105 -0
  112. package/themes/devtool-docs/tokens.ts +177 -0
  113. package/themes/editorial/THEME.md +129 -0
  114. package/themes/editorial/audit.log.jsonl +2 -0
  115. package/themes/editorial/tailwind.snippet.ts +15 -0
  116. package/themes/editorial/theme.yml +173 -0
  117. package/themes/editorial/tokens.ts +29 -0
  118. package/themes/education-formal/THEME.md +154 -0
  119. package/themes/education-formal/audit.log.jsonl +1 -0
  120. package/themes/education-formal/tailwind.snippet.ts +15 -0
  121. package/themes/education-formal/theme.yml +186 -0
  122. package/themes/education-formal/tokens.ts +29 -0
  123. package/themes/education-warm/THEME.md +91 -0
  124. package/themes/education-warm/tokens.ts +185 -0
  125. package/themes/ember-poster/README.md +79 -0
  126. package/themes/ember-poster/THEME.md +101 -0
  127. package/themes/ember-poster/audit.log.jsonl +17 -0
  128. package/themes/ember-poster/package.json +34 -0
  129. package/themes/ember-poster/tailwind.snippet.ts +17 -0
  130. package/themes/ember-poster/theme.yml +109 -0
  131. package/themes/ember-poster/tokens.ts +27 -0
  132. package/themes/enterprise-cloud/THEME.md +139 -0
  133. package/themes/enterprise-cloud/tokens.ts +179 -0
  134. package/themes/enterprise-tech/.anchor-render.png +0 -0
  135. package/themes/enterprise-tech/THEME.md +167 -0
  136. package/themes/enterprise-tech/audit.log.jsonl +1 -0
  137. package/themes/enterprise-tech/tailwind.snippet.ts +15 -0
  138. package/themes/enterprise-tech/theme.yml +202 -0
  139. package/themes/enterprise-tech/tokens.ts +29 -0
  140. package/themes/ev-charging/THEME.md +94 -0
  141. package/themes/ev-charging/tokens.ts +185 -0
  142. package/themes/farm-direct/THEME.md +92 -0
  143. package/themes/farm-direct/tokens.ts +180 -0
  144. package/themes/fintech-card/THEME.md +96 -0
  145. package/themes/fintech-card/tokens.ts +191 -0
  146. package/themes/fintech-trust/THEME.md +94 -0
  147. package/themes/fintech-trust/tokens.ts +192 -0
  148. package/themes/food-blog/THEME.md +98 -0
  149. package/themes/food-blog/tokens.ts +183 -0
  150. package/themes/forum-classic/THEME.md +100 -0
  151. package/themes/forum-classic/tokens.ts +168 -0
  152. package/themes/fresh-plate/.anchor-render.png +0 -0
  153. package/themes/fresh-plate/THEME.md +144 -0
  154. package/themes/fresh-plate/audit.log.jsonl +2 -0
  155. package/themes/fresh-plate/dismissals.jsonl +3 -0
  156. package/themes/fresh-plate/tailwind.snippet.ts +16 -0
  157. package/themes/fresh-plate/theme.yml +189 -0
  158. package/themes/fresh-plate/tokens.ts +30 -0
  159. package/themes/furniture-modern/THEME.md +94 -0
  160. package/themes/furniture-modern/tokens.ts +176 -0
  161. package/themes/gaming-esports/THEME.md +146 -0
  162. package/themes/gaming-esports/tokens.ts +199 -0
  163. package/themes/gaming-streamer/THEME.md +139 -0
  164. package/themes/gaming-streamer/tokens.ts +201 -0
  165. package/themes/glassmorphic-modern/THEME.md +119 -0
  166. package/themes/glassmorphic-modern/tokens.ts +174 -0
  167. package/themes/government-civic/THEME.md +138 -0
  168. package/themes/government-civic/tokens.ts +164 -0
  169. package/themes/gym-chain/THEME.md +79 -0
  170. package/themes/gym-chain/tokens.ts +196 -0
  171. package/themes/healthcare-bright/THEME.md +95 -0
  172. package/themes/healthcare-bright/tokens.ts +184 -0
  173. package/themes/home-decor/THEME.md +94 -0
  174. package/themes/home-decor/tokens.ts +177 -0
  175. package/themes/hotel-boutique/THEME.md +110 -0
  176. package/themes/hotel-boutique/tokens.ts +179 -0
  177. package/themes/hyperminimal-mono/THEME.md +91 -0
  178. package/themes/hyperminimal-mono/tokens.ts +150 -0
  179. package/themes/indie-art-game/THEME.md +107 -0
  180. package/themes/indie-art-game/tokens.ts +216 -0
  181. package/themes/insurance-legacy/THEME.md +101 -0
  182. package/themes/insurance-legacy/tokens.ts +182 -0
  183. package/themes/insurance-modern/THEME.md +103 -0
  184. package/themes/insurance-modern/tokens.ts +192 -0
  185. package/themes/kaiju-reveal/THEME.md +97 -0
  186. package/themes/kaiju-reveal/tokens.ts +185 -0
  187. package/themes/kinetic-data/THEME.md +172 -0
  188. package/themes/kinetic-data/audit.log.jsonl +1 -0
  189. package/themes/kinetic-data/tailwind.snippet.ts +16 -0
  190. package/themes/kinetic-data/theme.yml +207 -0
  191. package/themes/kinetic-data/tokens.ts +30 -0
  192. package/themes/kinetic-headline/.anchor-render.png +0 -0
  193. package/themes/kinetic-headline/BUILD_BRIEF.md +156 -0
  194. package/themes/kinetic-headline/THEME.md +78 -0
  195. package/themes/kinetic-headline/audit.log.jsonl +4 -0
  196. package/themes/kinetic-headline/dismissals.jsonl +1 -0
  197. package/themes/kinetic-headline/tailwind.snippet.ts +16 -0
  198. package/themes/kinetic-headline/theme.yml +81 -0
  199. package/themes/kinetic-headline/tokens.ts +26 -0
  200. package/themes/law-firm/THEME.md +108 -0
  201. package/themes/law-firm/tokens.ts +158 -0
  202. package/themes/lawtech-modern/THEME.md +107 -0
  203. package/themes/lawtech-modern/tokens.ts +192 -0
  204. package/themes/linkedin-pro/THEME.md +102 -0
  205. package/themes/linkedin-pro/tokens.ts +174 -0
  206. package/themes/logistics-modern/THEME.md +94 -0
  207. package/themes/logistics-modern/tokens.ts +187 -0
  208. package/themes/magazine-glossy/THEME.md +74 -0
  209. package/themes/magazine-glossy/tokens.ts +158 -0
  210. package/themes/marker-mag/THEME.md +128 -0
  211. package/themes/marker-mag/audit.log.jsonl +1 -0
  212. package/themes/marker-mag/tailwind.snippet.ts +15 -0
  213. package/themes/marker-mag/theme.yml +159 -0
  214. package/themes/marker-mag/tokens.ts +27 -0
  215. package/themes/marketplace-modern/THEME.md +135 -0
  216. package/themes/marketplace-modern/tokens.ts +186 -0
  217. package/themes/marketplace-vintage/THEME.md +110 -0
  218. package/themes/marketplace-vintage/tokens.ts +185 -0
  219. package/themes/maximalist/THEME.md +96 -0
  220. package/themes/maximalist/tokens.ts +168 -0
  221. package/themes/mid-century/THEME.md +109 -0
  222. package/themes/mid-century/tokens.ts +162 -0
  223. package/themes/motorcycle-brand/THEME.md +86 -0
  224. package/themes/motorcycle-brand/tokens.ts +174 -0
  225. package/themes/museum/THEME.md +83 -0
  226. package/themes/museum/tokens.ts +147 -0
  227. package/themes/music-streaming/THEME.md +101 -0
  228. package/themes/music-streaming/tokens.ts +187 -0
  229. package/themes/music-vinyl/THEME.md +98 -0
  230. package/themes/music-vinyl/tokens.ts +167 -0
  231. package/themes/nature-distilled/.anchor-render.png +0 -0
  232. package/themes/nature-distilled/BUILD_BRIEF.md +158 -0
  233. package/themes/nature-distilled/THEME.md +81 -0
  234. package/themes/nature-distilled/audit.log.jsonl +2 -0
  235. package/themes/nature-distilled/tailwind.snippet.ts +16 -0
  236. package/themes/nature-distilled/theme.yml +91 -0
  237. package/themes/nature-distilled/tokens.ts +26 -0
  238. package/themes/news-tabloid/THEME.md +72 -0
  239. package/themes/news-tabloid/tokens.ts +158 -0
  240. package/themes/news-tech/THEME.md +75 -0
  241. package/themes/news-tech/tokens.ts +149 -0
  242. package/themes/newsletter/THEME.md +82 -0
  243. package/themes/newsletter/tokens.ts +138 -0
  244. package/themes/newspaper-classic/THEME.md +74 -0
  245. package/themes/newspaper-classic/tokens.ts +159 -0
  246. package/themes/nonprofit-arts/THEME.md +78 -0
  247. package/themes/nonprofit-arts/tokens.ts +157 -0
  248. package/themes/nonprofit-warm/THEME.md +105 -0
  249. package/themes/nonprofit-warm/tokens.ts +188 -0
  250. package/themes/outdoor-adventure/THEME.md +113 -0
  251. package/themes/outdoor-adventure/tokens.ts +181 -0
  252. package/themes/overland-broadside/THEME.md +119 -0
  253. package/themes/overland-broadside/audit.log.jsonl +1 -0
  254. package/themes/overland-broadside/tailwind.snippet.ts +17 -0
  255. package/themes/overland-broadside/theme.yml +138 -0
  256. package/themes/overland-broadside/tokens.ts +27 -0
  257. package/themes/performance-engineered/THEME.md +162 -0
  258. package/themes/performance-engineered/audit.log.jsonl +1 -0
  259. package/themes/performance-engineered/tailwind.snippet.ts +15 -0
  260. package/themes/performance-engineered/theme.yml +193 -0
  261. package/themes/performance-engineered/tokens.ts +29 -0
  262. package/themes/pet-food/THEME.md +78 -0
  263. package/themes/pet-food/tokens.ts +185 -0
  264. package/themes/pharma-clinical/THEME.md +164 -0
  265. package/themes/pharma-clinical/audit.log.jsonl +1 -0
  266. package/themes/pharma-clinical/tailwind.snippet.ts +15 -0
  267. package/themes/pharma-clinical/theme.yml +201 -0
  268. package/themes/pharma-clinical/tokens.ts +29 -0
  269. package/themes/pill-editorial/THEME.md +125 -0
  270. package/themes/pill-editorial/audit.log.jsonl +1 -0
  271. package/themes/pill-editorial/tailwind.snippet.ts +15 -0
  272. package/themes/pill-editorial/theme.yml +168 -0
  273. package/themes/pill-editorial/tokens.ts +31 -0
  274. package/themes/podcast-warm/THEME.md +103 -0
  275. package/themes/podcast-warm/tokens.ts +192 -0
  276. package/themes/publisher-indie/THEME.md +78 -0
  277. package/themes/publisher-indie/tokens.ts +148 -0
  278. package/themes/raw-concrete/BUILD_BRIEF.md +157 -0
  279. package/themes/raw-concrete/THEME.md +76 -0
  280. package/themes/raw-concrete/audit.log.jsonl +10 -0
  281. package/themes/raw-concrete/tailwind.snippet.ts +16 -0
  282. package/themes/raw-concrete/theme.yml +88 -0
  283. package/themes/raw-concrete/tokens.ts +27 -0
  284. package/themes/realestate-luxury/THEME.md +94 -0
  285. package/themes/realestate-luxury/tokens.ts +169 -0
  286. package/themes/realestate-marketplace/THEME.md +106 -0
  287. package/themes/realestate-marketplace/tokens.ts +183 -0
  288. package/themes/restaurant-modern/THEME.md +109 -0
  289. package/themes/restaurant-modern/tokens.ts +172 -0
  290. package/themes/runway-fashion/THEME.md +99 -0
  291. package/themes/runway-fashion/tokens.ts +167 -0
  292. package/themes/saturday-morning/THEME.md +117 -0
  293. package/themes/saturday-morning/tokens.ts +281 -0
  294. package/themes/schema.ts +235 -0
  295. package/themes/signal-dark/BUILD_BRIEF.md +168 -0
  296. package/themes/signal-dark/THEME.md +107 -0
  297. package/themes/signal-dark/tokens.ts +181 -0
  298. package/themes/soft-modern/THEME.md +91 -0
  299. package/themes/soft-modern/tokens.ts +166 -0
  300. package/themes/solar-residential/THEME.md +92 -0
  301. package/themes/solar-residential/tokens.ts +176 -0
  302. package/themes/sports-league/THEME.md +180 -0
  303. package/themes/sports-league/audit.log.jsonl +1 -0
  304. package/themes/sports-league/tailwind.snippet.ts +15 -0
  305. package/themes/sports-league/theme.yml +213 -0
  306. package/themes/sports-league/tokens.ts +32 -0
  307. package/themes/stadium-sport/THEME.md +114 -0
  308. package/themes/stadium-sport/tokens.ts +187 -0
  309. package/themes/streetwear-hype/THEME.md +100 -0
  310. package/themes/streetwear-hype/tokens.ts +174 -0
  311. package/themes/studio-architect/THEME.md +108 -0
  312. package/themes/studio-architect/tokens.ts +162 -0
  313. package/themes/studio-photographer/THEME.md +88 -0
  314. package/themes/studio-photographer/tokens.ts +164 -0
  315. package/themes/team-kanban/.anchor-render.png +0 -0
  316. package/themes/team-kanban/THEME.md +167 -0
  317. package/themes/team-kanban/audit.log.jsonl +2 -0
  318. package/themes/team-kanban/dismissals.jsonl +1 -0
  319. package/themes/team-kanban/tailwind.snippet.ts +15 -0
  320. package/themes/team-kanban/theme.yml +209 -0
  321. package/themes/team-kanban/tokens.ts +35 -0
  322. package/themes/telehealth-modern/THEME.md +95 -0
  323. package/themes/telehealth-modern/tokens.ts +197 -0
  324. package/themes/tourism-board/THEME.md +111 -0
  325. package/themes/tourism-board/tokens.ts +173 -0
  326. package/themes/toys-modern/THEME.md +79 -0
  327. package/themes/toys-modern/tokens.ts +200 -0
  328. package/themes/travel-luxury/THEME.md +95 -0
  329. package/themes/travel-luxury/tokens.ts +162 -0
  330. package/themes/vacation-rental/THEME.md +105 -0
  331. package/themes/vacation-rental/tokens.ts +174 -0
  332. package/themes/vault-reel/THEME.md +134 -0
  333. package/themes/vault-reel/audit.log.jsonl +3 -0
  334. package/themes/vault-reel/tailwind.snippet.ts +16 -0
  335. package/themes/vault-reel/theme.yml +167 -0
  336. package/themes/vault-reel/tokens.ts +30 -0
  337. package/themes/vet-modern/THEME.md +79 -0
  338. package/themes/vet-modern/tokens.ts +194 -0
  339. package/themes/web3-restraint/THEME.md +87 -0
  340. package/themes/web3-restraint/tokens.ts +154 -0
  341. package/themes/wellness-active/THEME.md +102 -0
  342. package/themes/wellness-active/tokens.ts +203 -0
  343. package/themes/wellness-spa/THEME.md +93 -0
  344. package/themes/wellness-spa/tokens.ts +173 -0
  345. package/themes/y2k-chrome/THEME.md +118 -0
  346. package/themes/y2k-chrome/tokens.ts +249 -0
  347. package/themes/yoga-studio/THEME.md +76 -0
  348. package/themes/yoga-studio/tokens.ts +163 -0
@@ -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.)"
@@ -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: "pharma-clinical",
5
+ family: "C",
6
+ base: "30",
7
+ palette: {
8
+ "bg": "#f7f3e8",
9
+ "surface": "#ffffff",
10
+ "ink": "#1a1a1a",
11
+ "accent": "#6b1a1a",
12
+ "cream": "#f0eadc",
13
+ "darkInk": "#0a0a0a",
14
+ "mute": "#6a6558"
15
+ },
16
+ typography: {
17
+ "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.",
18
+ "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.",
19
+ "mono": "none. Pharma Clinical is a consumer corporate publishing surface. Mono has no role.",
20
+ "scale": "1.333 (perfect fourth — restrained, comfortable for long-form medical copy)",
21
+ "eyebrow_exception": "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.\n"
22
+ },
23
+ surface: "web",
24
+ density: "balanced",
25
+ motion: "Ships live in the section renderer (no external dependencies):\n1. 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.\n2. 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.\n3. 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.\n4. Clinical data counters — each stat number rolls from 0 → target on first scroll into view via requestAnimationFrame, 2000ms ease-out.\n5. Patient portrait progressive reveal — the story-band portrait fades from blur(6px) + opacity 0.4 → blur(0) + opacity 1 over 900ms cubic-bezier.\n6. Timeline sequential reveal — milestone dots animate in with 120ms per-dot stagger + 500ms cubic-bezier when the timeline scrolls into view.\n7. Nav shrink on scroll — masthead height reduces from 88px → 56px after 200px of scroll, transitioning padding + wordmark font-size over 300ms cubic-bezier.\n8. Section reveals — each below-fold section fades in from opacity 0 + translateY(24px) → 0 over 700ms cubic-bezier on IntersectionObserver at 25% threshold.\n9. 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).\n\nMotion 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.\n",
26
+ signature: "Warm cream canvas at #f7f3e8 — the register's non-negotiable base\n(deliberately warmer than editorial's gallery #fafafa, cooler than\ncabana-poster's #eedfca, and distinct from claude-cream #F4F1EA).\nCold near-black ink #1a1a1a with ONE burgundy accent #6b1a1a used\nONLY for clinical-phase chip fills + section-marker underlines +\nhover states + pull-quote marks. Sharp corners everywhere.\n\nComposition begins with a MASTHEAD — a Bodoni-family wordmark\n\"WATERSHED\" (ALL CAPS, letter-spacing 0.03em, ~24px) on the left,\na horizontal nav row center (For patients / For clinicians / Our\nscience / Our pipeline / Careers / Investors), a filled burgundy\nrectangular \"Contact\" button right-aligned. The masthead shrinks\nafter 200px of scroll.\n\nHero: a two-column split — LEFT column carries the big Bodoni\ndisplay headline (~64px, mixed case) + a Inter Tight body-copy\nlede paragraph + a burgundy \"Learn about our science →\" text\nlink with hover underline. RIGHT column carries a full-bleed\npatient / scientist portrait photograph (studio-quality, warm\ndirectional light) with a small caption strip beneath (\"Photograph:\nDr. Ren Havelock, Head of Clinical Research, Watershed\").\n\nBelow the hero: a NUMBERED PIPELINE STAGES section — a horizontal\nprogress bar with 5 phase markers (Discovery / Preclinical / Phase\n01 / Phase 02 / Phase 03), each marked by a small burgundy chip and\na molecule count. On scroll into view, the progress fill animates\nfrom 0 → active-phase% and phase chips fade in with 160ms stagger.\n\nA PATIENT STORY BAND follows — a full-width warm cream inverted\nband with a large patient portrait photograph on the left and a\npatient-quote pull with attribution on the right (\"For the first\ntime in eleven years, I slept through a Tuesday.\" — Amara, on\nstarting an investigational treatment). Italic Bodoni for the\npull quote at 32px.\n\nCLINICAL DATA CALLOUTS — a 3-column grid with counting numbers:\n247 (active trials), 12,483 (patients enrolled globally), 89%\n(retention through phase 3). Each number counts up from 0 on\nscroll into view. Below each number a body-copy explanation and\na small footnote citation.\n\nSCIENTIFIC ILLUSTRATION section — a paired layout with a bespoke\nMOLECULE SVG on one side (a stylized protein-fold visualization)\nand a scientific-explanation paragraph on the other. The molecule\nis drawn as line-art with subtle burgundy highlights, not as a 3D\nrender.\n\nMILESTONE TIMELINE — a vertical timeline (rule + dots) with 6\nhistorical entries (Founded 2003, First IPO, First approval, etc).\nDots animate in with 120ms per-dot stagger on scroll into view.\n\nCAREERS BAND — warm cream inverted background with a \"We're\nhiring across research + clinical + regulatory + commercial\"\nmonumental Bodoni headline + a 4-column open-role list + a\nphotograph of the actual laboratory space.\n\nFooter: a dark inverted band with the big Bodoni wordmark\nrepeated, colophon paragraph, 4-column utility grid (About,\nPatients, Investors, Legal), and small legal disclaimers.\n\nSix bespoke SVG marks (molecule protein-fold, capsule outline,\nmicroscope silhouette, patient-portrait framing bracket, phase-\nchip separator glyph, timeline milestone dot) are dropped as\nPUNCTUATION at specific compositional moments — never as a\nuniform icon row.\n",
27
+ } as const;
28
+
29
+ export type Tokens = typeof tokens;
@@ -0,0 +1,125 @@
1
+ # Pill Editorial
2
+
3
+ > Modern cultural editorial register — black canvas broken by rounded pill tiles and a warm cream inverted band, monumental Million-family bold uppercase display type at 240px+, and a comprehensive 999px border-radius applied to every card / button / tile / image / form input / nav pill without exception.
4
+
5
+ **Slug:** `pill-editorial` — **Surface:** web — **Density:** dense
6
+
7
+ ## Influence
8
+
9
+ Modern culturally-specific creative studios (the register held by Black-owned and community-forward creative agencies at their most confident + editorial). Also modern-editorial rounded-chrome design systems (the Blackbird, Cash App at their most warm, Are.na when it leans playful). Distinct from other Family C bases through the FULLY ROUNDED chrome and the MONUMENTAL display type at editorial-poster scale.
10
+
11
+
12
+ ## Signature move
13
+
14
+ Every card, button, tile, image, form input, and nav pill in the
15
+ composition ships at 999px border-radius — the FULLY ROUNDED chrome
16
+ is the register's distinguishing structural move. This is the first
17
+ theme in the library with a non-zero border radius; every previous
18
+ theme (10 of 10) uses 0px sharp corners. Monumental display type at
19
+ 240px (Million reference face; Fraunces 900 free fallback), all-caps,
20
+ breaking the baseline grid — the display is the primary design
21
+ element. A featured PORTRAIT PILL TILE at ~600x900px shows the
22
+ studio's featured subject inside a rounded-pill mask (aspect ratio
23
+ ~2:3), with a horizontal LOADING text marquee scrolling across the
24
+ bottom of the image. A big cartoon SVG illustration (a person on a
25
+ bicycle with a bird companion, hand-drawn in cream on black)
26
+ anchors the "PLAY AS PRACTICE" motto section. Below, a 5-card grid
27
+ of recommendation pill tiles — each card is a fully-rounded pill
28
+ with a portrait image at the top, a small colored accent chip, a
29
+ title, and a byline. A newsletter capture with an amber pill button.
30
+ A 3-book recommended-reading strip with each book cover in a rounded
31
+ pill mask. The composition closes with a monumental "FOR YOU"
32
+ headline and a 3-card audience-segment grid (For Artists / For
33
+ Institutions / For Your Team) — each card a large rounded pill
34
+ tile with a portrait image and a small accent-chip. Small
35
+ mono-caps 10-12px 0.2em-tracked eyebrow labels are LEGITIMATELY
36
+ USED here (rare exception to the universal slop-blocklist — see
37
+ eyebrow_exception in typography). Brand character sits in the
38
+ rounded chrome, the monumental display, and the editorial
39
+ portraits — not in decoration, not in geometric ornament.
40
+
41
+ ## Palette
42
+
43
+ - **bg:** `#000000`
44
+ - **surface:** `#111111`
45
+ - **ink:** `#FFFFFF`
46
+ - **accent:** `#146C5A`
47
+
48
+ ## Typography
49
+
50
+ - **Display:** Million (paid) or a bold display serif fallback — Fraunces at 900 weight, or Recoleta / DM Serif Display at bold weight — 800-900 weight, UPPERCASE always, letter-spacing normal or slightly positive. At scale — 240px monumental hero, 160px section headline, 60-80px subheads, 34px h3. Million is the reference face (a bold retro-display serif with chunky proportions); Fraunces at 900-weight bold-italic-off is the closest free approximation with similar chunky-display proportions and expressive character. Reference uses a slightly weird retro-serif face that carries character rather than restraint — the display is expressive, not disciplined.
51
+ - **Body:** Inter Tight or a system sans — 400-500 weight, mixed case, 15-18px body copy, line-height 1.5. Small labels get 12px 500-weight sentence case.
52
+ - **Mono:** none. Pill Editorial is a consumer editorial surface — mono has no role.
53
+ - **Scale:** 1.5 (perfect fifth — deliberately wide contrast so the monumental display shouts and body settles calm)
54
+
55
+ ## Motion
56
+
57
+ Ships live in the section renderer (no external dependencies):
58
+ 1. Monumental hero headline reveal — the display type fades in from opacity 0 + slight scale(0.96) → 1 over 800ms cubic-bezier(0.19,1,0.22,1) on first paint. No letter-stagger (this is an editorial register, not a marketing register).
59
+ 2. LOADING marquee — the "LOADING" text on the featured portrait image scrolls horizontally at 40s per loop, continuously (pauses on hover). This IS a legitimate marquee per the reference — spec allows.
60
+ 3. Featured pill tiles hover — the rounded pill image tile scales(1.02) + rotates slightly (-1deg) on hover, 220ms cubic-bezier. Reads as "picking up a physical print off the wall."
61
+ 4. Card grid stagger — the 5-card recommendation grid fades in with 80ms stagger + 600ms cubic-bezier when scrolled into view.
62
+ 5. Newsletter form focus — pill input outline transitions from cream to amber on focus, 200ms.
63
+ 6. PLAY AS PRACTICE cartoon SVG — the illustrated character rocks 2deg back and forth on a 3s loop; pauses on hover for readability.
64
+ 7. FOR YOU audience-segment cards — hover scales the pill card 1.02 + lifts the internal image scale(1.05), 240ms cubic-bezier.
65
+ 8. prefers-reduced-motion: reduce — hero at final scale; LOADING marquee paused; card stagger + hover disabled; cartoon rocking paused. State changes still fire.
66
+
67
+ Customer installs these as dependencies for the deeper motion tier:
68
+ - Lenis — smooth inertial scroll (the tall page benefits from inertial cadence).
69
+ - GSAP DrawSVG for the cartoon illustration reveals + monumental headline character animations.
70
+ - Custom preloader with the monumental wordmark drawing letter-by-letter over the black canvas.
71
+
72
+ Motion character: playful, cultural, tactile. Custom cubic-bezier(0.19,1,0.22,1) for reveals. The register lives between corporate editorial and playful cultural — motion should feel considered but not clinical.
73
+
74
+
75
+ ## Imagery
76
+
77
+ Editorial PORTRAIT PHOTOGRAPHY of subjects — the reference uses
78
+ images of Black artists, cultural figures, and creative practitioners
79
+ photographed under directional light in colorful outfits against
80
+ colored backdrops. FPO imagery here should read as culturally
81
+ specific + editorially considered — colored backdrop rectangles
82
+ with subject silhouettes, textural cutouts, and warm-forward
83
+ lighting cues. Never generic stock. Every photo tile is masked to
84
+ a 999px rounded-pill shape. Cartoon SVG illustrations (bespoke,
85
+ hand-drawn feel — line art of figures, animals, and simple
86
+ environmental cues) mixed with photography. NO gradient blobs, NO
87
+ glassmorphism, NO stock-diverse-workplace photography (that's the
88
+ slop tell). The register lives at the intersection of magazine
89
+ editorial + community-forward creative studio.
90
+
91
+ ## Best for
92
+
93
+ - Cultural intelligence studios and Black-owned creative agencies
94
+ - Modern editorial magazines with a culturally-specific voice
95
+ - Community-forward creative studios (art advisories, cultural consultancies)
96
+ - Podcast + editorial platforms with a distinct subculture perspective
97
+ - Independent art advisories serving cultural institutions + artists
98
+ - Boutique studios doing brand work for museums, cultural venues, and heritage brands
99
+
100
+ ## Reject if
101
+
102
+ _Director grades each of the following as a pass/fail check. Any violation blocks the theme._
103
+
104
+ - Non-999px border radius — this is the register's distinguishing structural move. Every card, button, tile, image, form input, nav pill MUST ship at 999px.
105
+ - Serif or humanist display type at the hero scale — the display face MUST be a bold retro-display serif with chunky character (Million, Fraunces 900, Recoleta, DM Serif Display). Inter Display / Anton / DM Sans have the wrong register.
106
+ - Multiple accent colors flooding the composition — cream + forest + amber is the studio's palette. Introducing pink / purple / any additional color as an accent collapses the register.
107
+ - Neutral canvas (white / cream / gray) as the primary background — canvas IS black. Swapping to a light canvas collapses this into generic-editorial slop.
108
+ - Corporate polish — no drop-shadow-md, no soft-glow, no gradient backdrop. Pill tiles are FLAT rounded rectangles with color fills only.
109
+ - Sharp-cornered cards or buttons anywhere on the page — the 999px pill is universal in this theme.
110
+ - Generic stock photography that reads as 'diverse workplace' — imagery MUST feel editorial + culturally specific. Portraits under directional light on colored backdrops, not lunch meetings around a laptop.
111
+ - Uniform 3-column feature grids — the FOR YOU section is 3 cards but each card has a DIFFERENT color, DIFFERENT image, DIFFERENT audience label. It's not a template.
112
+ - Emoji or decorative unicode marks — cartoon SVG illustrations and photography carry all the ornamentation
113
+ - Auto-advancing hero sliders / cycling headline words — only the LOADING marquee is auto (per reference); everything else waits for user input
114
+
115
+ ## Banned defaults (inherited + theme-specific)
116
+
117
+ - claude-cream (#F4F1EA + serif + #D97757)
118
+ - void+acid (near-black bg + single bright acid-green or vermilion accent)
119
+ - broadsheet-on-noneditorial (hairline rules + zero border-radius + newspaper columns on non-editorial content)
120
+ - tech-bro purple gradient (purple→blue gradient hero + centered headline + double CTA + emoji icons)
121
+ - uniform-everything (identical padding + one weight of one sans doing every job + rounded-2xl + shadow-md cards)
122
+ - sharp-corner-anywhere (this theme's whole point is the fully-rounded pill chrome. A sharp-cornered card, button, or input anywhere on the page immediately breaks the register.)
123
+ - cream-flood (cream is INVERTED-BAND-BACKGROUND + CARD-FILL color, not a canvas primary. Making cream the whole page background collapses the theme into a generic warm-editorial and the black-canvas identity dies.)
124
+ - generic-diverse-workplace-photography (the imagery must be EDITORIAL PORTRAIT under directional light on colored backdrops. Stock photography of racially-diverse people in an office collapses the register into corporate-diversity slop.)
125
+ - pill-plus-shadow (rounded pills with drop-shadow-md is the stock Medium / Substack aesthetic. Pills here must be FLAT color-fill rectangles with no shadow.)
@@ -0,0 +1 @@
1
+ {"slug":"pill-editorial","gates":[{"gate":"slop-blocklist","verdict":{"passed":true,"failures":[]},"ran_at":"2026-07-04T07:42:34.447Z","dismissed":[]},{"gate":"regression-scan","verdict":{"passed":true,"failures":[]},"ran_at":"2026-07-04T07:42:34.455Z","dismissed":[]},{"gate":"avoid-rubric","verdict":{"passed":true,"failures":[]},"ran_at":"2026-07-04T07:43:17.213Z","dismissed":[]},{"gate":"anchor-compare","verdict":{"passed":true,"failures":[],"skipped":"Family C rubric.md missing at /Users/mattfrischer/Taste/site/design-system/golden-set/C/rubric.md — anchor-compare skipped."},"ran_at":"2026-07-04T07:43:17.214Z","dismissed":[]}],"overall":"PASS","ran_at":"2026-07-04T07:42:34.447Z"}
@@ -0,0 +1,15 @@
1
+ // Generated from theme.yml. Merge into your tailwind.config.ts under theme.extend.
2
+ // slug: pill-editorial
3
+ export const pillEditorialTailwindExtend = {
4
+ colors: {
5
+ bg: "#000000",
6
+ surface: "#111111",
7
+ ink: "#FFFFFF",
8
+ accent: "#146C5A",
9
+ },
10
+ fontFamily: {
11
+ display: ["Million (paid) or a bold display serif fallback — Fraunces at 900 weight, or Recoleta / DM Serif Display at bold weight — 800-900 weight, UPPERCASE always, letter-spacing normal or slightly positive. At scale — 240px monumental hero, 160px section headline, 60-80px subheads, 34px h3. Million is the reference face (a bold retro-display serif with chunky proportions); Fraunces at 900-weight bold-italic-off is the closest free approximation with similar chunky-display proportions and expressive character. Reference uses a slightly weird retro-serif face that carries character rather than restraint — the display is expressive, not disciplined."],
12
+ body: ["Inter Tight or a system sans — 400-500 weight, mixed case, 15-18px body copy, line-height 1.5. Small labels get 12px 500-weight sentence case."],
13
+ mono: ["none. Pill Editorial is a consumer editorial surface — mono has no role."],
14
+ },
15
+ };
@@ -0,0 +1,168 @@
1
+ # Pill Editorial — Family C, Editorial & Print.
2
+ #
3
+ # NEW-BASE CANDIDATE for BESPOKE_THEME_SYSTEM.md. FIRST theme in the
4
+ # library with a non-zero border radius. Every previous theme (10 of
5
+ # 10) has been 0px sharp corners. Pill Editorial ships every card,
6
+ # button, tile, image, form input, and nav pill at 999px radius —
7
+ # the register is FULLY ROUNDED as its distinguishing feature.
8
+ #
9
+ # Family placement — Editorial & Print register, but distinct from
10
+ # other Family C bases:
11
+ # - Base 26 Cut & Paste Zine — pure ransom-note chaos (marker-mag
12
+ # adjacent)
13
+ # - Base 27 Type Specimen — foundry showcase
14
+ # - Ember Poster (my new-base) — warm-dark editorial
15
+ # - Case Panel (my new-base) — agency portfolio
16
+ # - Marker Mag (my new-base) — student DIY
17
+ # - Atelier Radiance (my new-base) — luxury boutique
18
+ # Pill Editorial fills the gap of MODERN CULTURAL EDITORIAL — a
19
+ # distinctly Black-cultural-studio register with rounded pills as the
20
+ # structural chrome and monumental display type as the identity.
21
+ #
22
+ # Authored from Matt's provided design brief (2026-07-04,
23
+ # thefutureinblack.com reference — a real cultural intelligence studio).
24
+ # Placeholder brand is a fictional cultural intelligence studio called
25
+ # KIN — domain-agnostic mockup that could re-skin to any culturally-
26
+ # specific creative studio, editorial magazine, art advisory, or
27
+ # community-forward brand. The register expresses "modern editorial"
28
+ # through the ROUNDED PILL chrome + MONUMENTAL display type +
29
+ # EDITORIAL PHOTOGRAPHY that photographs subjects with cultural
30
+ # specificity rather than generic-stock aesthetic.
31
+ #
32
+ # Eleventh theme via the v2 harness. Fourth Family C theme (after
33
+ # ember-poster + case-panel + marker-mag). Sixth NEW BASE.
34
+ #
35
+ # Alternative slugs considered — culture-studio (too generic),
36
+ # soft-editorial (imprecise), pill-cultural (backward word order),
37
+ # radius-editorial (technical framing). Pill Editorial picked because
38
+ # "pill" nails the 999px radius signature and "editorial" carries the
39
+ # magazine/monumental-type register that anchors this base.
40
+
41
+ name: Pill Editorial
42
+ concept: Modern cultural editorial register — black canvas broken by rounded pill tiles and a warm cream inverted band, monumental Million-family bold uppercase display type at 240px+, and a comprehensive 999px border-radius applied to every card / button / tile / image / form input / nav pill without exception.
43
+ influence: |
44
+ Modern culturally-specific creative studios (the register held by Black-owned and community-forward creative agencies at their most confident + editorial). Also modern-editorial rounded-chrome design systems (the Blackbird, Cash App at their most warm, Are.na when it leans playful). Distinct from other Family C bases through the FULLY ROUNDED chrome and the MONUMENTAL display type at editorial-poster scale.
45
+
46
+ family: C
47
+ base_number: 26
48
+ base_note: |
49
+ New-base candidate in Family C, adjacent to Base 26 Cut & Paste Zine but from a fundamentally different aesthetic tradition. Base 26 is punk photocopy anarchy; Pill Editorial is refined modern editorial with rounded chrome. Both trade on their subculture register but through opposite structural moves — Cut & Paste through torn edges + mismatched fonts, Pill Editorial through fully-rounded pills + one confident monumental display. This is the FIRST theme with a non-zero border radius in the library — the 999px pill is the register's distinguishing structural move.
50
+
51
+ render_url: http://localhost:5173/themes/pill-editorial
52
+
53
+ surface: web
54
+
55
+ typography:
56
+ display: Million (paid) or a bold display serif fallback — Fraunces at 900 weight, or Recoleta / DM Serif Display at bold weight — 800-900 weight, UPPERCASE always, letter-spacing normal or slightly positive. At scale — 240px monumental hero, 160px section headline, 60-80px subheads, 34px h3. Million is the reference face (a bold retro-display serif with chunky proportions); Fraunces at 900-weight bold-italic-off is the closest free approximation with similar chunky-display proportions and expressive character. Reference uses a slightly weird retro-serif face that carries character rather than restraint — the display is expressive, not disciplined.
57
+ body: Inter Tight or a system sans — 400-500 weight, mixed case, 15-18px body copy, line-height 1.5. Small labels get 12px 500-weight sentence case.
58
+ mono: none. Pill Editorial is a consumer editorial surface — mono has no role.
59
+ scale: 1.5 (perfect fifth — deliberately wide contrast so the monumental display shouts and body settles calm)
60
+ eyebrow_exception: |
61
+ The universal slop-blocklist bans mono-caps eyebrows as a general defensive rule. Pill Editorial LEGITIMATELY uses small uppercase 0.2em-tracked 10-12px labels as section eyebrows because the reference site (thefutureinblack.com) genuinely uses them in this exact register — they are part of the modern-editorial vocabulary this base descends from. Every use of a small caps label in this theme is deliberate and reference-anchored, not defensive slop. This is a THEME-SPECIFIC EXCEPTION that must be manually preserved during harness grading.
62
+
63
+ palette:
64
+ bg: "#000000" # canvas — dark hero + full-page dark register
65
+ surface: "#111111" # slightly-lifted panel on the dark canvas
66
+ ink: "#FFFFFF" # white — primary text on the dark canvas
67
+ accent: "#146C5A" # primary accent (forest green) — pill CTAs + accent word inside headlines
68
+ cream: "#F2E6CA" # warm parchment — inverted "For You" section band + editorial pill tiles
69
+ forest: "#146C5A" # same as accent — kept as a semantic alias for downstream tokens
70
+ amber: "#E8A628" # secondary accent — highlight underlines + small pill badges
71
+ darkInk: "#0A0A0A" # ink for text on cream + forest pill tiles
72
+ mute: "#8A8078" # secondary text (labels, captions)
73
+
74
+ density: dense
75
+
76
+ motion: |
77
+ Ships live in the section renderer (no external dependencies):
78
+ 1. Monumental hero headline reveal — the display type fades in from opacity 0 + slight scale(0.96) → 1 over 800ms cubic-bezier(0.19,1,0.22,1) on first paint. No letter-stagger (this is an editorial register, not a marketing register).
79
+ 2. LOADING marquee — the "LOADING" text on the featured portrait image scrolls horizontally at 40s per loop, continuously (pauses on hover). This IS a legitimate marquee per the reference — spec allows.
80
+ 3. Featured pill tiles hover — the rounded pill image tile scales(1.02) + rotates slightly (-1deg) on hover, 220ms cubic-bezier. Reads as "picking up a physical print off the wall."
81
+ 4. Card grid stagger — the 5-card recommendation grid fades in with 80ms stagger + 600ms cubic-bezier when scrolled into view.
82
+ 5. Newsletter form focus — pill input outline transitions from cream to amber on focus, 200ms.
83
+ 6. PLAY AS PRACTICE cartoon SVG — the illustrated character rocks 2deg back and forth on a 3s loop; pauses on hover for readability.
84
+ 7. FOR YOU audience-segment cards — hover scales the pill card 1.02 + lifts the internal image scale(1.05), 240ms cubic-bezier.
85
+ 8. prefers-reduced-motion: reduce — hero at final scale; LOADING marquee paused; card stagger + hover disabled; cartoon rocking paused. State changes still fire.
86
+
87
+ Customer installs these as dependencies for the deeper motion tier:
88
+ - Lenis — smooth inertial scroll (the tall page benefits from inertial cadence).
89
+ - GSAP DrawSVG for the cartoon illustration reveals + monumental headline character animations.
90
+ - Custom preloader with the monumental wordmark drawing letter-by-letter over the black canvas.
91
+
92
+ Motion character: playful, cultural, tactile. Custom cubic-bezier(0.19,1,0.22,1) for reveals. The register lives between corporate editorial and playful cultural — motion should feel considered but not clinical.
93
+
94
+ signature: |
95
+ Every card, button, tile, image, form input, and nav pill in the
96
+ composition ships at 999px border-radius — the FULLY ROUNDED chrome
97
+ is the register's distinguishing structural move. This is the first
98
+ theme in the library with a non-zero border radius; every previous
99
+ theme (10 of 10) uses 0px sharp corners. Monumental display type at
100
+ 240px (Million reference face; Fraunces 900 free fallback), all-caps,
101
+ breaking the baseline grid — the display is the primary design
102
+ element. A featured PORTRAIT PILL TILE at ~600x900px shows the
103
+ studio's featured subject inside a rounded-pill mask (aspect ratio
104
+ ~2:3), with a horizontal LOADING text marquee scrolling across the
105
+ bottom of the image. A big cartoon SVG illustration (a person on a
106
+ bicycle with a bird companion, hand-drawn in cream on black)
107
+ anchors the "PLAY AS PRACTICE" motto section. Below, a 5-card grid
108
+ of recommendation pill tiles — each card is a fully-rounded pill
109
+ with a portrait image at the top, a small colored accent chip, a
110
+ title, and a byline. A newsletter capture with an amber pill button.
111
+ A 3-book recommended-reading strip with each book cover in a rounded
112
+ pill mask. The composition closes with a monumental "FOR YOU"
113
+ headline and a 3-card audience-segment grid (For Artists / For
114
+ Institutions / For Your Team) — each card a large rounded pill
115
+ tile with a portrait image and a small accent-chip. Small
116
+ mono-caps 10-12px 0.2em-tracked eyebrow labels are LEGITIMATELY
117
+ USED here (rare exception to the universal slop-blocklist — see
118
+ eyebrow_exception in typography). Brand character sits in the
119
+ rounded chrome, the monumental display, and the editorial
120
+ portraits — not in decoration, not in geometric ornament.
121
+
122
+ imagery: |
123
+ Editorial PORTRAIT PHOTOGRAPHY of subjects — the reference uses
124
+ images of Black artists, cultural figures, and creative practitioners
125
+ photographed under directional light in colorful outfits against
126
+ colored backdrops. FPO imagery here should read as culturally
127
+ specific + editorially considered — colored backdrop rectangles
128
+ with subject silhouettes, textural cutouts, and warm-forward
129
+ lighting cues. Never generic stock. Every photo tile is masked to
130
+ a 999px rounded-pill shape. Cartoon SVG illustrations (bespoke,
131
+ hand-drawn feel — line art of figures, animals, and simple
132
+ environmental cues) mixed with photography. NO gradient blobs, NO
133
+ glassmorphism, NO stock-diverse-workplace photography (that's the
134
+ slop tell). The register lives at the intersection of magazine
135
+ editorial + community-forward creative studio.
136
+
137
+ best_for:
138
+ - Cultural intelligence studios and Black-owned creative agencies
139
+ - Modern editorial magazines with a culturally-specific voice
140
+ - Community-forward creative studios (art advisories, cultural consultancies)
141
+ - Podcast + editorial platforms with a distinct subculture perspective
142
+ - Independent art advisories serving cultural institutions + artists
143
+ - Boutique studios doing brand work for museums, cultural venues, and heritage brands
144
+
145
+ avoid:
146
+ - "Non-999px border radius — this is the register's distinguishing structural move. Every card, button, tile, image, form input, nav pill MUST ship at 999px."
147
+ - "Serif or humanist display type at the hero scale — the display face MUST be a bold retro-display serif with chunky character (Million, Fraunces 900, Recoleta, DM Serif Display). Inter Display / Anton / DM Sans have the wrong register."
148
+ - "Multiple accent colors flooding the composition — cream + forest + amber is the studio's palette. Introducing pink / purple / any additional color as an accent collapses the register."
149
+ - "Neutral canvas (white / cream / gray) as the primary background — canvas IS black. Swapping to a light canvas collapses this into generic-editorial slop."
150
+ - "Corporate polish — no drop-shadow-md, no soft-glow, no gradient backdrop. Pill tiles are FLAT rounded rectangles with color fills only."
151
+ - "Sharp-cornered cards or buttons anywhere on the page — the 999px pill is universal in this theme."
152
+ - "Generic stock photography that reads as 'diverse workplace' — imagery MUST feel editorial + culturally specific. Portraits under directional light on colored backdrops, not lunch meetings around a laptop."
153
+ - "Uniform 3-column feature grids — the FOR YOU section is 3 cards but each card has a DIFFERENT color, DIFFERENT image, DIFFERENT audience label. It's not a template."
154
+ - "Emoji or decorative unicode marks — cartoon SVG illustrations and photography carry all the ornamentation"
155
+ - "Auto-advancing hero sliders / cycling headline words — only the LOADING marquee is auto (per reference); everything else waits for user input"
156
+
157
+ banned_defaults:
158
+ # Global blocklist from BESPOKE_THEME_SYSTEM.md
159
+ - "claude-cream (#F4F1EA + serif + #D97757)"
160
+ - "void+acid (near-black bg + single bright acid-green or vermilion accent)"
161
+ - "broadsheet-on-noneditorial (hairline rules + zero border-radius + newspaper columns on non-editorial content)"
162
+ - "tech-bro purple gradient (purple→blue gradient hero + centered headline + double CTA + emoji icons)"
163
+ - "uniform-everything (identical padding + one weight of one sans doing every job + rounded-2xl + shadow-md cards)"
164
+ # Base-specific
165
+ - "sharp-corner-anywhere (this theme's whole point is the fully-rounded pill chrome. A sharp-cornered card, button, or input anywhere on the page immediately breaks the register.)"
166
+ - "cream-flood (cream is INVERTED-BAND-BACKGROUND + CARD-FILL color, not a canvas primary. Making cream the whole page background collapses the theme into a generic warm-editorial and the black-canvas identity dies.)"
167
+ - "generic-diverse-workplace-photography (the imagery must be EDITORIAL PORTRAIT under directional light on colored backdrops. Stock photography of racially-diverse people in an office collapses the register into corporate-diversity slop.)"
168
+ - "pill-plus-shadow (rounded pills with drop-shadow-md is the stock Medium / Substack aesthetic. Pills here must be FLAT color-fill rectangles with no shadow.)"
@@ -0,0 +1,31 @@
1
+ // Generated from theme.yml. Do not edit by hand — edit theme.yml + re-materialize.
2
+
3
+ export const tokens = {
4
+ slug: "pill-editorial",
5
+ family: "C",
6
+ base: "26",
7
+ palette: {
8
+ "bg": "#000000",
9
+ "surface": "#111111",
10
+ "ink": "#FFFFFF",
11
+ "accent": "#146C5A",
12
+ "cream": "#F2E6CA",
13
+ "forest": "#146C5A",
14
+ "amber": "#E8A628",
15
+ "darkInk": "#0A0A0A",
16
+ "mute": "#8A8078"
17
+ },
18
+ typography: {
19
+ "display": "Million (paid) or a bold display serif fallback — Fraunces at 900 weight, or Recoleta / DM Serif Display at bold weight — 800-900 weight, UPPERCASE always, letter-spacing normal or slightly positive. At scale — 240px monumental hero, 160px section headline, 60-80px subheads, 34px h3. Million is the reference face (a bold retro-display serif with chunky proportions); Fraunces at 900-weight bold-italic-off is the closest free approximation with similar chunky-display proportions and expressive character. Reference uses a slightly weird retro-serif face that carries character rather than restraint — the display is expressive, not disciplined.",
20
+ "body": "Inter Tight or a system sans — 400-500 weight, mixed case, 15-18px body copy, line-height 1.5. Small labels get 12px 500-weight sentence case.",
21
+ "mono": "none. Pill Editorial is a consumer editorial surface — mono has no role.",
22
+ "scale": "1.5 (perfect fifth — deliberately wide contrast so the monumental display shouts and body settles calm)",
23
+ "eyebrow_exception": "The universal slop-blocklist bans mono-caps eyebrows as a general defensive rule. Pill Editorial LEGITIMATELY uses small uppercase 0.2em-tracked 10-12px labels as section eyebrows because the reference site (thefutureinblack.com) genuinely uses them in this exact register — they are part of the modern-editorial vocabulary this base descends from. Every use of a small caps label in this theme is deliberate and reference-anchored, not defensive slop. This is a THEME-SPECIFIC EXCEPTION that must be manually preserved during harness grading.\n"
24
+ },
25
+ surface: "web",
26
+ density: "dense",
27
+ motion: "Ships live in the section renderer (no external dependencies):\n1. Monumental hero headline reveal — the display type fades in from opacity 0 + slight scale(0.96) → 1 over 800ms cubic-bezier(0.19,1,0.22,1) on first paint. No letter-stagger (this is an editorial register, not a marketing register).\n2. LOADING marquee — the \"LOADING\" text on the featured portrait image scrolls horizontally at 40s per loop, continuously (pauses on hover). This IS a legitimate marquee per the reference — spec allows.\n3. Featured pill tiles hover — the rounded pill image tile scales(1.02) + rotates slightly (-1deg) on hover, 220ms cubic-bezier. Reads as \"picking up a physical print off the wall.\"\n4. Card grid stagger — the 5-card recommendation grid fades in with 80ms stagger + 600ms cubic-bezier when scrolled into view.\n5. Newsletter form focus — pill input outline transitions from cream to amber on focus, 200ms.\n6. PLAY AS PRACTICE cartoon SVG — the illustrated character rocks 2deg back and forth on a 3s loop; pauses on hover for readability.\n7. FOR YOU audience-segment cards — hover scales the pill card 1.02 + lifts the internal image scale(1.05), 240ms cubic-bezier.\n8. prefers-reduced-motion: reduce — hero at final scale; LOADING marquee paused; card stagger + hover disabled; cartoon rocking paused. State changes still fire.\n\nCustomer installs these as dependencies for the deeper motion tier:\n- Lenis — smooth inertial scroll (the tall page benefits from inertial cadence).\n- GSAP DrawSVG for the cartoon illustration reveals + monumental headline character animations.\n- Custom preloader with the monumental wordmark drawing letter-by-letter over the black canvas.\n\nMotion character: playful, cultural, tactile. Custom cubic-bezier(0.19,1,0.22,1) for reveals. The register lives between corporate editorial and playful cultural — motion should feel considered but not clinical.\n",
28
+ signature: "Every card, button, tile, image, form input, and nav pill in the\ncomposition ships at 999px border-radius — the FULLY ROUNDED chrome\nis the register's distinguishing structural move. This is the first\ntheme in the library with a non-zero border radius; every previous\ntheme (10 of 10) uses 0px sharp corners. Monumental display type at\n240px (Million reference face; Fraunces 900 free fallback), all-caps,\nbreaking the baseline grid — the display is the primary design\nelement. A featured PORTRAIT PILL TILE at ~600x900px shows the\nstudio's featured subject inside a rounded-pill mask (aspect ratio\n~2:3), with a horizontal LOADING text marquee scrolling across the\nbottom of the image. A big cartoon SVG illustration (a person on a\nbicycle with a bird companion, hand-drawn in cream on black)\nanchors the \"PLAY AS PRACTICE\" motto section. Below, a 5-card grid\nof recommendation pill tiles — each card is a fully-rounded pill\nwith a portrait image at the top, a small colored accent chip, a\ntitle, and a byline. A newsletter capture with an amber pill button.\nA 3-book recommended-reading strip with each book cover in a rounded\npill mask. The composition closes with a monumental \"FOR YOU\"\nheadline and a 3-card audience-segment grid (For Artists / For\nInstitutions / For Your Team) — each card a large rounded pill\ntile with a portrait image and a small accent-chip. Small\nmono-caps 10-12px 0.2em-tracked eyebrow labels are LEGITIMATELY\nUSED here (rare exception to the universal slop-blocklist — see\neyebrow_exception in typography). Brand character sits in the\nrounded chrome, the monumental display, and the editorial\nportraits — not in decoration, not in geometric ornament.\n",
29
+ } as const;
30
+
31
+ export type Tokens = typeof tokens;