@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,109 @@
1
+ # Ember Poster — Family C, Editorial & Print.
2
+ #
3
+ # NEW-BASE CANDIDATE for BESPOKE_THEME_SYSTEM.md. Warm-dark editorial
4
+ # register — espresso-brown canvas, cream type, three hot editorial accents
5
+ # (flame, chili, caramel-gold). Marker-drawn uppercase display + Inter Tight
6
+ # body. Sharp corners throughout. Loud, confident, small-batch voice.
7
+ #
8
+ # Authored from Matt's provided design brief (2026-07-03). Placeholder
9
+ # demonstration domain is a fictional print quarterly ("PLATE") — a
10
+ # domain-agnostic mockup that could be re-skinned to any small-batch
11
+ # consumer or editorial brand. The register expresses "hand-made premium"
12
+ # through TYPE and MOTION rather than decoration.
13
+ #
14
+ # Fifth theme via the v2 harness. First non-Family-D theme, first Family C
15
+ # theme, first NEW BASE (not one of the current 60 in the spec).
16
+
17
+ name: Ember Poster
18
+ concept: Warm-dark editorial register — cream type on espresso canvas, hot editorial accents, oversized marker-uppercase display, sharp corners, loud tongue-in-cheek voice.
19
+ influence: Small-batch print editorial. Awwwards-tier independent-magazine and craft-brand sites — the register that reads "hand-made premium" through type and motion instead of ornament. Also 1970s poster editorial (bold caps, negative tracking, condensed hot palettes) and hot-shop print like The Small Object.
20
+
21
+ family: C
22
+ render_url: http://localhost:5173/themes/ember-poster
23
+
24
+ surface: web
25
+
26
+ typography:
27
+ display: Anton (or Bricolage Grotesque as broader-market fallback) — 400 weight, UPPERCASE always, letter-spacing -0.02em. At scale — 104px hero, 52px section title, 37px h3. The marker-hand alternative (Peperoncino Sans by Resistenza) is the reference face but requires commercial license; Anton is the safest free approximation.
28
+ body: Inter Tight (variable 100-900) — 400/500/700, mixed-case, line-height 1.5, 16px body, up to 40px for manifesto "voice" lines that contrast with the display "shout."
29
+ mono: JetBrains Mono — narrowly scoped to code specimens only. NOT used for section eyebrows, corner tags, metadata rows, or bylines (those defaults are universal-slop-blocklist hits).
30
+ scale: 1.333 (perfect fourth — hero/display/lead/body span a wide contrast so the display shouts and the body speaks)
31
+
32
+ palette:
33
+ bg: "#100B06"
34
+ surface: "#322C23"
35
+ ink: "#F5E4C7"
36
+ accent: "#F15726"
37
+ secondary: "#BE8D3F"
38
+ signal: "#DA1F27"
39
+
40
+ density: balanced
41
+
42
+ motion: |
43
+ Ships live in the section renderer (no external dependencies):
44
+ 1. Hero item slider — auto-advances every 4s, click 1/2/3 to jump; FPO cover + accent-gradient backdrop transition on change.
45
+ 2. Scroll-triggered reveal on hero headline — IntersectionObserver + CSS transition (translate-up + fade, 500ms cubic-bezier).
46
+ 3. Vertical letter marquee ("SMALL BATCH SMALL BATCH...") — CSS keyframe, 22s linear infinite loop, seamless via content duplication.
47
+ 4. Testimonial rails — TWO rows, opposite directions, CSS keyframe 40s linear infinite, pause on hover via animation-play-state.
48
+ 5. Stateful add-to-cart: ADD → ADDING (600ms) → ✓ ADDED (1800ms) → back. Button background flips to cream on ADDED. Per-product + separate for the pack.
49
+ 6. Subscription tier 4-issue / 12-issue: click updates price ($60 / $160) and rebuilds the visual stack reactively.
50
+ 7. Microinteractions — CSS transitions on hover states, active-state scale(0.97) on cart buttons.
51
+ 8. prefers-reduced-motion: reduce — all keyframe animations pause, transitions become instant, state changes still fire (they're content).
52
+
53
+ Customer installs these as dependencies for the deeper motion tier:
54
+ - Lenis — smooth inertial scroll across the whole page (Awwwards-tier inertial feel).
55
+ - GSAP ScrollTrigger — orchestrated multi-element timelines (image stop-motion / spin, staggered per-section reveals).
56
+ - Custom branded preloader.
57
+
58
+ Motion character: weighty but crisp, custom cubic-bezier(0.16,1,0.3,1) easings, nothing bouncy-cute. All motion serves the "confident + hand-made" tone. See sections/ember-poster.tsx for the shipping implementation.
59
+
60
+ signature: |
61
+ Cream Shrikhand-family display at 104px scale broken across multiple lines,
62
+ set on espresso-brown canvas, letter-spacing tightened to -0.02em. Feature
63
+ names rendered as stacked single-word lines filling one side of the
64
+ viewport, hero imagery beside. Three editorial accents map one-per-item
65
+ (flame orange, chili red, caramel gold) and carry through card, hover, and
66
+ cart state consistently. Border-radius is 0 everywhere. Hand-drawn splat +
67
+ antler + chef-hat ornaments and a red pen-slash strike-through for
68
+ negation. Inverted cream-bg bands break up the dark rhythm as callout
69
+ sections. NO mono-caps eyebrows, NO dot-metadata rows, NO corner tags —
70
+ brand character sits in the display type, not in ornamented labels.
71
+
72
+ imagery: |
73
+ Warm-lit editorial photography on the dark canvas with amber-tungsten
74
+ spotlight, deep shadow, high contrast, saturated. Hero and feature imagery
75
+ reads as small-batch print / small-studio quality — NO flat white product
76
+ shots, NO gradient overlays behind imagery, NO stock photography. Illustration
77
+ if used is marker-hand line-art in cream or accent color. Placeholder
78
+ compositions use clearly-labeled FPO blocks so the layout is legible
79
+ without shipping stock images.
80
+
81
+ best_for:
82
+ - Small independent magazines and quarterlies with a loud editorial voice
83
+ - Craft goods and small-batch consumer brands (books, records, ceramics, apothecary)
84
+ - Editorial launch pages for premium consumer brands that refuse corporate gloss
85
+ - Independent zines and print-adjacent brand sites
86
+ - Any Awwwards-tier editorial or brand site that trades on personality
87
+
88
+ avoid:
89
+ - "Border-radius greater than 0px anywhere on the page — sharp corners are core to the identity"
90
+ - "Rounded button chrome or pill CTAs — buttons are sharp-cornered display type"
91
+ - "Cool color palette — this register is WARM (espresso, cream, flame, chili, caramel), never blue/teal/violet"
92
+ - "Sans-serif humanist display like Inter Display or Söhne — the display face has to carry marker-hand character (Anton, Peperoncino Sans, Bricolage Grotesque)"
93
+ - "Title case or sentence case on display type — display is ALWAYS uppercase in this register"
94
+ - "Loose or default letter-spacing on display — display tracks -0.02em minimum, tighter at hero scale"
95
+ - "Corporate polish — no shadow-md cards, no soft glow, no muted color-block hero"
96
+ - "Three-tier pricing cards or feature-pillar grids — the composition refuses SaaS defaults structurally"
97
+ - "Center-aligned everything — composition is left-weighted and asymmetric, display type BREAKS the grid"
98
+ - "Cool grays for body text — body ink is cream (#F5E4C7), never #64748b slate"
99
+
100
+ banned_defaults:
101
+ # Global blocklist from BESPOKE_THEME_SYSTEM.md
102
+ - "claude-cream (#F4F1EA + serif + #D97757)"
103
+ - "void+acid (near-black bg + single bright acid-green or vermilion accent)"
104
+ - "broadsheet-on-noneditorial (hairline rules + zero border-radius + newspaper columns on non-editorial content)"
105
+ - "tech-bro purple gradient (purple→blue gradient hero + centered headline + double CTA + emoji icons)"
106
+ - "uniform-everything (identical padding + one weight of one sans doing every job + rounded-2xl + shadow-md cards)"
107
+ # Base-specific
108
+ - "warm-dark-plus-rainbow (espresso canvas paired with more than three accent colors — the register only holds with three heat hues used sparingly)"
109
+ - "generic-food-brand (safe rounded product cards + generic sans + soft photography — that's the corporate DTC default this register explicitly refuses)"
@@ -0,0 +1,27 @@
1
+ // Generated from theme.yml. Do not edit by hand — edit theme.yml + re-materialize.
2
+
3
+ export const tokens = {
4
+ slug: "ember-poster",
5
+ family: "C",
6
+ base: "unknown",
7
+ palette: {
8
+ "bg": "#100B06",
9
+ "surface": "#322C23",
10
+ "ink": "#F5E4C7",
11
+ "accent": "#F15726",
12
+ "secondary": "#BE8D3F",
13
+ "signal": "#DA1F27"
14
+ },
15
+ typography: {
16
+ "display": "Anton (or Bricolage Grotesque as broader-market fallback) — 400 weight, UPPERCASE always, letter-spacing -0.02em. At scale — 104px hero, 52px section title, 37px h3. The marker-hand alternative (Peperoncino Sans by Resistenza) is the reference face but requires commercial license; Anton is the safest free approximation.",
17
+ "body": "Inter Tight (variable 100-900) — 400/500/700, mixed-case, line-height 1.5, 16px body, up to 40px for manifesto \"voice\" lines that contrast with the display \"shout.\"",
18
+ "mono": "JetBrains Mono — narrowly scoped to code specimens only. NOT used for section eyebrows, corner tags, metadata rows, or bylines (those defaults are universal-slop-blocklist hits).",
19
+ "scale": "1.333 (perfect fourth — hero/display/lead/body span a wide contrast so the display shouts and the body speaks)"
20
+ },
21
+ surface: "web",
22
+ density: "balanced",
23
+ motion: "Ships live in the section renderer (no external dependencies):\n1. Hero item slider — auto-advances every 4s, click 1/2/3 to jump; FPO cover + accent-gradient backdrop transition on change.\n2. Scroll-triggered reveal on hero headline — IntersectionObserver + CSS transition (translate-up + fade, 500ms cubic-bezier).\n3. Vertical letter marquee (\"SMALL BATCH SMALL BATCH...\") — CSS keyframe, 22s linear infinite loop, seamless via content duplication.\n4. Testimonial rails — TWO rows, opposite directions, CSS keyframe 40s linear infinite, pause on hover via animation-play-state.\n5. Stateful add-to-cart: ADD → ADDING (600ms) → ✓ ADDED (1800ms) → back. Button background flips to cream on ADDED. Per-product + separate for the pack.\n6. Subscription tier 4-issue / 12-issue: click updates price ($60 / $160) and rebuilds the visual stack reactively.\n7. Microinteractions — CSS transitions on hover states, active-state scale(0.97) on cart buttons.\n8. prefers-reduced-motion: reduce — all keyframe animations pause, transitions become instant, state changes still fire (they're content).\n\nCustomer installs these as dependencies for the deeper motion tier:\n- Lenis — smooth inertial scroll across the whole page (Awwwards-tier inertial feel).\n- GSAP ScrollTrigger — orchestrated multi-element timelines (image stop-motion / spin, staggered per-section reveals).\n- Custom branded preloader.\n\nMotion character: weighty but crisp, custom cubic-bezier(0.16,1,0.3,1) easings, nothing bouncy-cute. All motion serves the \"confident + hand-made\" tone. See sections/ember-poster.tsx for the shipping implementation.\n",
24
+ signature: "Cream Shrikhand-family display at 104px scale broken across multiple lines,\nset on espresso-brown canvas, letter-spacing tightened to -0.02em. Feature\nnames rendered as stacked single-word lines filling one side of the\nviewport, hero imagery beside. Three editorial accents map one-per-item\n(flame orange, chili red, caramel gold) and carry through card, hover, and\ncart state consistently. Border-radius is 0 everywhere. Hand-drawn splat +\nantler + chef-hat ornaments and a red pen-slash strike-through for\nnegation. Inverted cream-bg bands break up the dark rhythm as callout\nsections. NO mono-caps eyebrows, NO dot-metadata rows, NO corner tags —\nbrand character sits in the display type, not in ornamented labels.\n",
25
+ } as const;
26
+
27
+ export type Tokens = typeof tokens;
@@ -0,0 +1,139 @@
1
+ # Design Direction — Enterprise-Cloud
2
+
3
+ ## Ethos
4
+ Oracle Redwood depth · NetSuite gravitas · cloud-database trust · Redwood-red brand mark · structured panel hierarchy
5
+
6
+ ## Feel
7
+ Database-company gravitas. Layered panels with soft shadows (Redwood's "depth" mechanic), Oracle's iconic brand red as the signal accent. Reads enterprise-formal — not flashy, not playful. Trusted-since-1977 energy.
8
+
9
+ ## Reference brands
10
+ - **Oracle Redwood Design System** → Oracle's design system. Depth-layered surfaces. The canonical Fusion Cloud / NetSuite / JD Edwards visual vocabulary.
11
+ - **Oracle Cloud Infrastructure** → marketing surfaces. Cloud-database trust register.
12
+ - **Oracle Database** → documentation gravitas. Structured panel hierarchy as information architecture.
13
+ - **NetSuite ERP** → dense ERP grids, formal business surfaces.
14
+ - **JD Edwards** → formal data-grid surfaces. Legacy ERP rigor — the screens an AS/400 operator would recognize.
15
+
16
+ ## Tokens
17
+ HSL triples in `src/index.css`. Surface stack steps off-white canvas (`--background` = `0 0% 99%`) up through `--surface-2` (recessed, `0 0% 96%`) and `--surface-1` / `--card` (top panel, `0 0% 100%`). Depth comes from **the elevation tier system**, not hue shift.
18
+
19
+ Brand tokens are named for their Redwood provenance: `--redwood-red` (alias for primary, the corporate brand mark), `--surface-1` (top panel), `--surface-2` (recessed), `--border-soft` (structural hairline), `--accent-teal` (Redwood secondary), `--gold-heritage` (premium-tier emphasis), `--ink-navy` (text-primary).
20
+
21
+ ## Brand-book customization
22
+ This direction targets the Oracle product family but every Oracle brand has its own override. Use the brand tokens as override hooks.
23
+
24
+ **Oracle product overrides — which product owns which accent:**
25
+ - **Oracle Cloud / Fusion Cloud / Redwood baseline** → `--primary` stays Oracle Redwood red (`8 65% 47%`). The default.
26
+ - **NetSuite** → primary actions (especially "new transaction" / "add record") historically use NetSuite orange. Override `--primary` to `24 85% 50%` for NetSuite-skinned surfaces; keep `--redwood-red` available as the secondary brand mark.
27
+ - **Hyperion / EPM** → planning surfaces use Hyperion purple. Override `--primary` to `265 50% 45%`; the elevation system and panel structure stay identical.
28
+ - **JD Edwards** → keeps Oracle red but increases density one notch (use the `2` and `4` steps more aggressively for grid padding).
29
+ - **Oracle Database docs** → keeps Oracle red but suppresses `--gold-heritage` (database docs are not a tiered-pricing surface).
30
+
31
+ **Standard enterprise brand-book overrides (when this direction is adopted by a non-Oracle ERP/database vendor):**
32
+ - **Corporate red/blue/green → `--primary`** — drop the brand-book HSL triple into `--primary` and `--ring`. The panel system is provider-agnostic.
33
+ - **Corporate display font → `--font-display`** — Inter is a stand-in for Source Sans Pro / Helvetica. Replace with the corporate font (e.g. SAP's "72", IBM's "Plex", a customer's licensed face) without changing the type scale.
34
+ - **Logo lockup space** — reserve `--space-12` (48px) clear-space around any wordmark; the masthead pattern assumes the logo sits at the surface-1 elevation tier.
35
+ - **Favicon recipe** — square brand mark on `--surface-1` (white) at 32×32; never on the off-white canvas (the 1% delta disappears at favicon scale).
36
+
37
+ **The elevation system is structural and must be preserved.** `--shadow-redwood-1` / `-2` / `-3` are the load-bearing depth language of this direction. A brand can swap colors, fonts, and even the radius (within reason — keep it ≤8px), but if a re-skin flattens the panel hierarchy or replaces the shadow tiers with borders-only, it stops being Redwood and starts being something else. The three tiers map to:
38
+ - **Tier 1 (1px drop)** — inline cards, table containers, sticky toolbars.
39
+ - **Tier 2 (4px drop)** — popovers, dropdowns, side panels, persistent overlays.
40
+ - **Tier 3 (12px drop)** — modals, dialogs, the topmost layer.
41
+
42
+ ## Component families
43
+ **ERP panels** (`*Panel`, `*RecordCard`, `*FormPanel`): rounded-md, border-soft, bg-card, `shadow-redwood-1`. Header strip with bottom border. Padding `p-5 lg:p-6`. Embedded grids inherit row borders from the panel — no double-bordering.
44
+
45
+ **Data grids** (`*Grid`, `*Table`, `*Ledger`): tabular figures, mono numeric columns, 1px row borders in `border-soft`, optional `bg-surface-2` for zebra striping (4% delta). Header row sticky with `shadow-redwood-1` when scrolled. The grid is the surface, not a decoration on top of one.
46
+
47
+ **Status pills** (`*StatusPill`, `*TierBadge`): rounded-full, text-xs, weight 500. Semantic palette — Redwood red for "critical", teal for "info", gold-heritage for "premium tier", muted for "draft". Never decorative.
48
+
49
+ **Modals & dialogs** (`*Dialog`, `*Sheet`): bg-card on `shadow-redwood-3`, max-w-2xl default. Header strip + footer strip both use border-soft. Modals enter with `panel-rise` (320ms), exit with `panel-exit` (200ms).
50
+
51
+ ## Typography
52
+ - **Display:** Inter, weights 400/500/600/700. Inter is the closest open-source approximation to Oracle's historical Source Sans Pro / Helvetica voice. Headings are body-weight escalated — this is a documentation language. H1 uses `clamp(1.875rem, 3.75vw, 2.875rem)` — restrained, because the panels are the work.
53
+ - **Body:** Inter, 15px (`0.9375rem`), line-height 1.55, tracking `0`.
54
+ - **Mono:** JetBrains Mono, weights 400/500. SQL snippets, transaction IDs, schema names, version pins.
55
+
56
+ Font features: `"tnum", "zero"` — tabular figures and slashed zero for ledgers, ERP grids, and financial reporting surfaces.
57
+
58
+ ## Spacing
59
+ - **Container:** `max-w-screen-2xl px-4 lg:px-8` — wide; ERP surfaces and dashboards claim the screen.
60
+ - **Section padding tiers:**
61
+ - Hero (rare): `pt-16 pb-12 lg:pt-24 lg:pb-16`
62
+ - Default: `py-12 lg:py-16`
63
+ - Tight: `py-8 lg:py-10`
64
+ - **Allowed scale:** **2** 4 6 8 10 12 16 20 24 32 40 48 64. The `2` step exists for icon-to-label gaps in dense ERP chrome.
65
+
66
+ Medium-high density — between enterprise-tech (Nvidia docs) and SAP Fiori. The reference is NetSuite's record screens and Oracle Fusion Cloud's data-entry surfaces.
67
+
68
+ ## Color
69
+ No hex anywhere. Pure black is forbidden (`--foreground` is `220 30% 12%`, the Oracle navy ink). The off-white canvas (`0 0% 99%`) is intentional — pure white feels printer-paper, off-white feels application-chrome.
70
+
71
+ Semantic discipline:
72
+ - **Oracle Redwood red** (`8 65% 47%`) — primary, brand mark, focus ring. The corporate signal.
73
+ - **Destructive crimson** (`354 70% 45%`) — destructive actions only. Distinct hue from brand red so "delete" and "save" never visually rhyme.
74
+ - **Accent teal** (`190 50% 35%`) — info chips, secondary CTAs, secondary brand moments.
75
+ - **Gold heritage** (`38 60% 50%`) — premium-tier emphasis, enterprise-license badges, "Diamond support" pills.
76
+ - **Ink navy** (`220 30% 12%`) — body text and headings.
77
+ - **Text secondary** (`220 12% 42%`) — captions, meta, ERP eyebrows.
78
+
79
+ ## Radius
80
+ `--radius: 0.375rem` (6px). **Modest, not pillowy.** Redwood panels are square-leaning but not knife-edge. Pills are allowed (`pillsAllowed: true`) for status chips, tier badges, and severity indicators.
81
+
82
+ ## Shadows
83
+ Style is **"soft"**. The Redwood elevation tier system — three utilities, three structural roles:
84
+ - `.shadow-redwood-1` — 1px drop. Cards, table containers, sticky toolbars. The default lift off the canvas.
85
+ - `.shadow-redwood-2` — 4px drop. Popovers, dropdowns, side panels, persistent overlays.
86
+ - `.shadow-redwood-3` — 12px drop. Modals, dialogs. The topmost layer.
87
+
88
+ Shadow color is `220 30% 12%` (the ink-navy hue) at 4–12% opacity — never pure black, never high opacity. The Redwood shadow is *present but quiet*. This is the load-bearing depth language; preserve it across re-skins.
89
+
90
+ ## Motion
91
+ - **Easing:** `cubic-bezier(0.22, 1, 0.36, 1)`
92
+ - **Duration tiers:** reveal (320ms entry / 200ms exit asymmetric), loop (1.6s), ambient (0 — no ambient motion in ERP).
93
+ - **Keyframes:**
94
+ - `panel-rise` (320ms) — entry for panels and cards. Deliberate, business-paced layer reveal.
95
+ - `panel-exit` (200ms) — exit for panels. Faster than entry, never lingers.
96
+ - `fade-in` (240ms) — popovers, menus, ERP grid rows on load.
97
+
98
+ **Deliberate, business-paced.** No bounce, no spring, no parallax, no ambient drift. Entry 320ms is the signature tempo — slow enough to feel intentional, fast enough not to delay an ERP operator entering 200 line items. `prefers-reduced-motion` honored throughout.
99
+
100
+ ## Component patterns
101
+ - **Buttons:** primary = solid Oracle red filled rectangle (`bg-primary text-primary-foreground rounded-md font-semibold`), 6px radius, weight 600. Secondary = ghost with border-soft. Tertiary = Redwood-red inline text-link. Sizes: small (`h-8 px-3 text-xs`) and default (`h-9 px-4 text-sm`).
102
+ - **Cards:** modest 6px corners (`rounded-md`), 1px `border-soft`, `bg-card` (surface-1), `shadow-redwood-1`. Padding `p-5 lg:p-6`. Header row uses bottom `border-soft`. Modal-layer panels promote to `shadow-redwood-3`.
103
+ - **Inputs:** compact (`h-9 text-sm`), 1px `border-soft`, `bg-background`, `rounded-md`. Focus uses 2px Oracle-red ring at 30% opacity. Inline validation in destructive crimson — distinct from brand red.
104
+ - **CTAs:** primary = solid Oracle red button. Secondary = ghost with border-soft. Tertiary = Redwood-red text-link. One primary CTA per surface — this is enterprise formal, not conversion theater.
105
+
106
+ ## Recommended rich media
107
+ Oracle-Redwood is **product-screenshot-heavy and diagram-heavy**. The aesthetic is the application itself — Fusion Cloud panels, NetSuite record screens, OCI consoles. The screen is the proof; the architecture diagram is the argument. No models, no atmospheric stock photography, no startup-feel lifestyle staging.
108
+
109
+ **Hero media:**
110
+ - **Product screenshots** — real Fusion Cloud / NetSuite / OCI surfaces. Cropped to show panel hierarchy and the data grid; never decoratively faded out at the edges. Present them frankly: 1px border-soft frame, optional `shadow-redwood-1`.
111
+ - **Dashboard captures** — KPI tiles, ledger views, ERP cockpit screens. Real data (synthetic but plausible — no Lorem Ipsum in numeric columns; use realistic GL account numbers).
112
+ - **Conservative photography** — only when needed (data-center exteriors, server racks, hardware product shots on neutral seamless). No models, no atmospheric shots, no warm sunset light. The Oracle Park photography aesthetic, not the WeWork one.
113
+ - **Illustrated cloud-architecture diagrams** — labeled flat-line schematics. Two-to-three-color palette (Oracle red + teal + ink-navy). Mono labels. Show the system topology; don't decorate it.
114
+
115
+ **AI tool recommendations:**
116
+ - **Excalidraw** — hand-drawn-but-precise feel for explainer diagrams and architecture sketches. The default for technical diagrams in this direction.
117
+ - **Recraft** — labeled architecture diagrams ("Oracle Cloud Infrastructure topology diagram, flat lines, three-color, mono labels, light background, formal enterprise style").
118
+ - **Mermaid / DBML** — declarative diagrams for ER schemas, sequence diagrams, deployment topologies. Often the better answer than AI for canonical Oracle Database content.
119
+ - **Carbon (carbon.now.sh)** — SQL and PL/SQL snippet images in JetBrains Mono on a light theme matching `--surface-1`.
120
+ - **Avoid Midjourney photography for enterprise** — even with careful prompting it reads slightly off (over-saturated, "AI sheen", subtly uncanny faces). For Oracle's register, AI photography feels like a startup imposter; commission real photography or use Oracle's existing product imagery.
121
+
122
+ **Aspect ratios:** 16:9 for hero architecture diagrams and dashboard captures; 4:3 for product-screen detail; natural aspect for inline charts and ledger captures; square (1:1) reserved for hardware product macros if used at all.
123
+
124
+ **Performance:** SVG diagrams inline (≤10 KB each); product screenshots ≤140 KB AVIF at 1.5x DPR; no autoplay video on ERP surfaces (it breaks the formal register). LCP target <1.8s — Oracle's customers often run these on locked-down corporate networks behind layered proxies.
125
+
126
+ **Avoid:** playful illustrations, gradient meshes, glassmorphic surfaces, Midjourney photography (reads "AI startup" — wrong register), lifestyle photography with models, atmospheric photography, purple/pink gradients, decorative SVG ornament, lens flare, 3D product renders that look like a Behance reel, anything that signals consumer-startup-AI-fad rather than database-company-since-1977.
127
+
128
+ **Accessibility:** WCAG AA on `0 0% 99%` background with `220 30% 12%` foreground passes at all sizes (contrast ratio ~16:1). Oracle red on white passes AA at ≥14px. Color-coding (red = critical, teal = info, gold = premium, muted = draft) requires a non-color signal (icon, text label) — colorblind operators exist in every Fortune-500 finance team and they read the entire ledger.
129
+
130
+ ## Details
131
+ - **Selection:** `hsl(var(--primary) / 0.18)` background, foreground text — a faint Oracle red wash.
132
+ - **Focus ring:** `2px solid hsl(var(--ring) / 0.3)` — visible against the off-white canvas without competing with the brand-red CTAs.
133
+ - **Scrollbar:** thin, navy-toned.
134
+
135
+ ## Exceptions
136
+ None yet. When an intentional violation lands (e.g. a marketing surface that promotes `--gold-heritage` to a primary CTA for an enterprise-license renewal campaign, or a NetSuite-skinned surface that swaps `--primary` to NetSuite orange), add it here with the reason.
137
+
138
+ ## Revisions
139
+ - Initial direction, generated at install time. Authored to provide the Oracle / NetSuite / Fusion Cloud / JD Edwards aesthetic — depth-layered panels, Redwood-red brand mark, ERP-grade density — that the Nvidia/IBM-leaning `enterprise-tech` direction doesn't cover.
@@ -0,0 +1,179 @@
1
+ import type { Direction } from "../schema";
2
+
3
+ export const enterpriseCloud: Direction = {
4
+ name: "enterprise-cloud",
5
+ ethos:
6
+ "Oracle Redwood depth · NetSuite gravitas · cloud-database trust · Redwood-red brand mark · structured panel hierarchy",
7
+ references: [
8
+ { brand: "Oracle Redwood Design System", trait: "depth-layered surfaces, canonical Fusion Cloud panels" },
9
+ { brand: "Oracle Cloud Infrastructure", trait: "marketing surfaces, cloud-database trust" },
10
+ { brand: "Oracle Database", trait: "documentation gravitas, structured panel hierarchy" },
11
+ { brand: "NetSuite ERP", trait: "dense ERP grids, formal business surfaces" },
12
+ { brand: "JD Edwards", trait: "formal data-grid surfaces, legacy ERP rigor" },
13
+ ],
14
+ feel:
15
+ "Database-company gravitas. Layered panels with soft shadows (Redwood's 'depth' mechanic), " +
16
+ "Oracle's iconic brand red as the signal accent. Reads enterprise-formal — not flashy, not " +
17
+ "playful. Trusted-since-1977 energy.",
18
+
19
+ fonts: {
20
+ display: {
21
+ family: "Inter",
22
+ fallback: ["Source Sans Pro", "Helvetica", "system-ui", "-apple-system", "sans-serif"],
23
+ from: "Inter — closest open-source approximation to Oracle's historical Source Sans Pro / Helvetica voice",
24
+ googleFont: "Inter:wght@400;500;600;700",
25
+ weights: [400, 500, 600, 700],
26
+ },
27
+ body: {
28
+ family: "Inter",
29
+ fallback: ["Source Sans Pro", "Helvetica", "system-ui", "-apple-system", "sans-serif"],
30
+ from: "Inter — same face as display, ERP-grade body rhythm",
31
+ googleFont: "Inter:wght@400;500;600",
32
+ weights: [400, 500, 600],
33
+ },
34
+ mono: {
35
+ family: "JetBrains Mono",
36
+ fallback: ["ui-monospace", "SFMono-Regular", "Consolas", "monospace"],
37
+ from: "JetBrains Mono — SQL snippets, transaction ids, schema names",
38
+ googleFont: "JetBrains+Mono:wght@400;500",
39
+ weights: [400, 500],
40
+ },
41
+ },
42
+
43
+ typography: {
44
+ headingTracking: "-0.01em",
45
+ bodyTracking: "0",
46
+ fontFeatureSettings: '"tnum", "zero"',
47
+ h1ScaleClamp: "clamp(1.875rem, 3.75vw, 2.875rem)",
48
+ bodyBaseSize: "0.9375rem",
49
+ bodyLineHeight: "1.55",
50
+ },
51
+
52
+ colors: {
53
+ background: { hsl: "0 0% 99%", from: "off-white — Redwood canvas" },
54
+ foreground: { hsl: "220 30% 12%", from: "deep navy ink — Oracle text-primary" },
55
+ card: { hsl: "0 0% 100%", from: "Redwood surface-1 — top panel, pure white lift" },
56
+ popover: { hsl: "0 0% 100%", from: "Redwood surface-1 — popovers ride the top layer" },
57
+
58
+ primary: { hsl: "8 65% 47%", from: "Oracle Redwood red — Pantone 200-adjacent corporate brand mark" },
59
+ primaryForeground: { hsl: "0 0% 100%", from: "white on Oracle red" },
60
+
61
+ secondary: { hsl: "0 0% 96%", from: "Redwood surface-2 — recessed panel under surface-1" },
62
+ secondaryForeground: { hsl: "220 30% 12%", from: "deep navy ink on recessed surface" },
63
+ muted: { hsl: "0 0% 96%", from: "Redwood surface-2 — same as secondary" },
64
+ mutedForeground: { hsl: "220 12% 42%", from: "Oracle text-secondary — captions, meta, ERP eyebrows" },
65
+ accent: { hsl: "220 14% 94%", from: "hover surface — one tier deeper than surface-2" },
66
+ accentForeground: { hsl: "220 30% 12%", from: "deep navy ink on hover" },
67
+
68
+ border: { hsl: "220 14% 88%", from: "Redwood border-soft — structural hairline at panel edges" },
69
+ input: { hsl: "220 14% 88%", from: "same as border-soft — input chrome" },
70
+ ring: { hsl: "8 65% 47%", from: "Oracle Redwood red — focus ring on active states" },
71
+
72
+ destructive: { hsl: "354 70% 45%", from: "deeper crimson — ERP-destructive, distinct from brand red" },
73
+ destructiveForeground: { hsl: "0 0% 100%", from: "white on destructive crimson" },
74
+
75
+ brand: {
76
+ "redwood-red": { hsl: "8 65% 47%", from: "Oracle Redwood red — alias for primary, corporate brand mark" },
77
+ "surface-1": { hsl: "0 0% 100%", from: "Redwood top panel — the highest elevation layer" },
78
+ "surface-2": { hsl: "0 0% 96%", from: "Redwood recessed panel — the layer under surface-1" },
79
+ "border-soft": { hsl: "220 14% 88%", from: "Redwood structural hairline — panel edges, table rows" },
80
+ "accent-teal": { hsl: "190 50% 35%", from: "Redwood secondary accent — info chips, secondary CTAs" },
81
+ "gold-heritage": { hsl: "38 60% 50%", from: "premium-tier emphasis — Oracle heritage gold, ERP tier badges" },
82
+ "ink-navy": { hsl: "220 30% 12%", from: "Oracle text-primary — alias for foreground" },
83
+ },
84
+ },
85
+
86
+ spacing: {
87
+ base: 4,
88
+ scale: [2, 4, 6, 8, 10, 12, 16, 20, 24, 32, 40, 48, 64],
89
+ containerMax: "max-w-screen-2xl",
90
+ containerPadding: "px-4 lg:px-8",
91
+ sectionPadding: {
92
+ hero: "pt-16 pb-12 lg:pt-24 lg:pb-16",
93
+ default: "py-12 lg:py-16",
94
+ tight: "py-8 lg:py-10",
95
+ },
96
+ },
97
+
98
+ radius: {
99
+ base: "0.375rem",
100
+ pillsAllowed: true,
101
+ },
102
+
103
+ shadows: {
104
+ style: "soft",
105
+ utilities: {
106
+ "shadow-redwood-1":
107
+ "0 1px 2px hsl(220 30% 12% / 0.06), 0 1px 1px hsl(220 30% 12% / 0.04)",
108
+ "shadow-redwood-2":
109
+ "0 2px 4px hsl(220 30% 12% / 0.06), 0 4px 8px hsl(220 30% 12% / 0.08)",
110
+ "shadow-redwood-3":
111
+ "0 6px 12px hsl(220 30% 12% / 0.08), 0 12px 24px hsl(220 30% 12% / 0.12)",
112
+ },
113
+ },
114
+
115
+ motion: {
116
+ easing: "cubic-bezier(0.22, 1, 0.36, 1)",
117
+ durations: {
118
+ reveal: 320,
119
+ loop: 1600,
120
+ ambient: 0,
121
+ },
122
+ keyframes: {
123
+ "panel-rise": {
124
+ css:
125
+ "from { opacity: 0; transform: translateY(4px); }\n" +
126
+ "to { opacity: 1; transform: translateY(0); }",
127
+ defaultDuration: 320,
128
+ iteration: "once",
129
+ purpose: "320ms entry for panels and cards — deliberate, business-paced layer reveal",
130
+ },
131
+ "panel-exit": {
132
+ css:
133
+ "from { opacity: 1; transform: translateY(0); }\n" +
134
+ "to { opacity: 0; transform: translateY(2px); }",
135
+ defaultDuration: 200,
136
+ iteration: "once",
137
+ purpose: "200ms exit for panels — faster than entry, never lingers",
138
+ },
139
+ "fade-in": {
140
+ css:
141
+ "from { opacity: 0; }\n" +
142
+ "to { opacity: 1; }",
143
+ defaultDuration: 240,
144
+ iteration: "once",
145
+ purpose: "240ms fade reveal for menus, popovers, ERP grid rows on load",
146
+ },
147
+ },
148
+ respectsReducedMotion: true,
149
+ },
150
+
151
+ density: "high",
152
+
153
+ patterns: {
154
+ button:
155
+ "Primary = solid Oracle Redwood red fill, white text, 6px radius, weight 600 (bg-primary text-primary-foreground rounded-md font-semibold). " +
156
+ "Secondary = ghost with subtle border-soft (border bg-transparent text-foreground). " +
157
+ "Tertiary = Redwood-red text-link (text-primary underline-offset-2 hover:underline). " +
158
+ "Sizes: small (h-8 px-3 text-xs) and default (h-9 px-4 text-sm).",
159
+ card:
160
+ "Modest 6px corners (rounded-md), 1px border-soft, bg-card (surface-1), shadow-redwood-1 by default. " +
161
+ "Padding p-5 lg:p-6. Header row uses bottom border-soft. " +
162
+ "Modal-layer panels promote to shadow-redwood-3. ERP-grade density inside; grids embed inline.",
163
+ input:
164
+ "Compact (h-9 text-sm), 1px border-soft, bg-background, rounded-md. " +
165
+ "Focus uses 2px Oracle-red ring at 30% opacity. Label above; helper below in mutedForeground. " +
166
+ "Inline validation in destructive crimson — distinct hue from brand red.",
167
+ cta:
168
+ "Primary = solid Oracle red button. Secondary = ghost with border-soft. " +
169
+ "Tertiary = Redwood-red inline text-link. One primary CTA per surface; " +
170
+ "this is enterprise formal, not conversion theater.",
171
+ },
172
+
173
+ details: {
174
+ selectionBg: "hsl(var(--primary) / 0.18)",
175
+ selectionFg: "hsl(var(--foreground))",
176
+ focusRing: "2px solid hsl(var(--ring) / 0.3)",
177
+ scrollbarStyle: "thin",
178
+ },
179
+ };
@@ -0,0 +1,167 @@
1
+ # Enterprise Tech
2
+
3
+ > Institutional-brutalist data-platform register — deep charcoal canvas at
4
+
5
+ **Slug:** `enterprise-tech` — **Surface:** web — **Density:** dense
6
+
7
+ ## Influence
8
+
9
+ Modern institutional data-platform brand identity systems (Palantir
10
+ Technologies at its most brutalist-serious, Databricks at its most
11
+ dressy, Recursion at its most technical). Distinct from consumer-
12
+ tech surfaces through the MEDIUM-WEIGHT DISPLAY (not thin, not bold)
13
+ + NUMBERED DOSSIER STRUCTURE + NETWORK GRAPH DIAGRAM + INSTITUTIONAL
14
+ LANGUAGE trio — which reads as defense-and-finance rather than
15
+ startup-and-SaaS.
16
+
17
+
18
+ ## Signature move
19
+
20
+ Deep charcoal canvas at #0f0f11 — the register's non-negotiable base
21
+ (deliberately warmer than pure black, matching Palantir's actual
22
+ brand render). Near-white ink #f2f2f0 with ONE electric-cyan accent
23
+ #00c8ff used ONLY for hover states, active graph-node highlights,
24
+ live-data readouts, compliance-badge borders, and CTA fills. Sharp
25
+ corners everywhere.
26
+
27
+ MASTHEAD — a "BASTION" wordmark in Söhne 500 medium at 18px with
28
+ letter-spacing 0.14em (deliberately institutional-medium, not thin
29
+ hypercar-restraint) on the left, a horizontal nav (Platform /
30
+ Capabilities / Sectors / Compliance / Company / Contact) center,
31
+ a filled electric-cyan "Request a briefing" block button right-
32
+ aligned. Masthead shrinks after 200px scroll.
33
+
34
+ HERO — two-column split. LEFT column: small cyan caps
35
+ DOSSIER · 2026-Q1 label + big medium-weight display headline
36
+ ("Data operations for the institutional stakeholder.") + a two-
37
+ paragraph body-copy block about the platform's mission +
38
+ cyan "Read the capabilities dossier →" text link. RIGHT column: a
39
+ BESPOKE NETWORK GRAPH SVG (6 nodes connected by edges, one node
40
+ highlighted cyan as "active", subtle pulse animation on each node
41
+ offset by 400ms, mono metadata labels below identifying each node
42
+ type — Data / Model / Query / Egress).
43
+
44
+ LIVE-OPS READOUT BAR — a slim inverted band below the hero showing
45
+ three live-updating counters in mono: "QUERIES PROCESSED TODAY"
46
+ (increments every 2s from 4,127,483 + random 1-5k per tick),
47
+ "ACTIVE DEPLOYMENTS" (static 217), "REGIONS ONLINE" (static 14 /
48
+ 14 with cyan dot). Reads as a live SOC (security operations
49
+ center) readout.
50
+
51
+ NUMBERED CAPABILITIES DOSSIER — 6 rows with cyan I-01 / I-02 /
52
+ I-03 / I-04 / I-05 / I-06 numbering, each row has a small icon SVG
53
+ (data-pipe / model-node / query-cursor / audit-trail / access-key
54
+ / regional-topology) + heading + body-copy block. Rows stagger
55
+ reveal on scroll (120ms per row). Hover state: cyan left border
56
+ slides in from top.
57
+
58
+ DATA-FLOW DIAGRAM — a full-width band showing "How it works" as an
59
+ SVG data-flow diagram with 5 stages (Ingest → Transform → Model
60
+ → Query → Egress) connected by paths, with 3 cyan dots animating
61
+ along the paths at 3s cycles (1s apart) to simulate streaming
62
+ data. Mono labels beneath each stage.
63
+
64
+ CASE STUDIES — 3 case study cards in a row: Defense / Finance /
65
+ Health. Each card has a sector caps label, monumental case-study
66
+ title, mono metric callout (e.g. "94% reduction in triage time"),
67
+ and a body-copy paragraph. Cards stagger reveal at 160ms per card.
68
+
69
+ COMPLIANCE + CERTIFICATIONS — a grid of 8 compliance badges (SOC 2
70
+ Type II / ISO 27001 / FedRAMP High / HIPAA / GDPR / PCI DSS /
71
+ CJIS / IL5) in a dark card grid with cyan borders on hover.
72
+
73
+ BRIEFING CTA — a full-width dark band with a terminal-style
74
+ contact form (single input field styled as a mono prompt with
75
+ ">> " prefix and cyan cursor). Filled cyan "Submit briefing
76
+ request" button.
77
+
78
+ FOOTER — deep-charcoal inverted band with medium-weight BASTION
79
+ wordmark at ~120px, a 4-column utility grid, address plate
80
+ ("Palo Alto · Washington DC · London · Zagreb"), and legal
81
+ compliance metadata (registered agent, entity address, SEC-
82
+ registered subsidiary info).
83
+
84
+ Six bespoke SVG marks (network graph, data-pipe icon, model-node
85
+ icon, audit-trail icon, compliance shield, data-flow arrow) drop
86
+ as PUNCTUATION at specific compositional moments, never as a
87
+ uniform icon row.
88
+
89
+ ## Palette
90
+
91
+ - **bg:** `#0f0f11`
92
+ - **surface:** `#1a1a1c`
93
+ - **ink:** `#f2f2f0`
94
+ - **accent:** `#00c8ff`
95
+
96
+ ## Typography
97
+
98
+ - **Display:** A precision geometric sans at MEDIUM weight (500) — the reference uses Söhne / Aktiv Grotesk / Neue Haas Grotesk at medium. Free fallback stack — "Söhne", "Neue Haas Grotesk Display", "Inter Display", Inter, "Space Grotesk", system-ui, sans-serif. Weight 500 for hero and section headings (deliberately NOT thin — that's the hypercar register, not institutional-brutalist), weight 400 for body. Mixed case, letter-spacing -0.01em. Top of scale ~88px hero, 48px section headings, 24px h3. UPPERCASE ONLY for the wordmark and section markers (I-01 / I-02 style).
99
+ - **Body:** Söhne Text / Inter Tight. Free fallback stack — "Inter Tight", Inter, "Space Grotesk", system-ui, sans-serif. Weight 400 for body copy, 500 for small labels. 15-16px body copy, line-height 1.6.
100
+ - **Mono:** JetBrains Mono / Berkeley Mono for data readouts, dossier metadata, diagram labels, network graph annotations, compliance certification IDs. Weight 400-500, 12-14px. LEGITIMATE here because the register is technical dossier — mono reads as data readout / instrument-panel, not decorative slop.
101
+ - **Scale:** 1.333 (perfect fourth — comfortable for long-form dossier reading with clear hierarchy)
102
+
103
+ ## Motion
104
+
105
+ Ships live in the section renderer (no external dependencies):
106
+ 1. Hero display reveal — headline fades in from opacity 0 + translateY(20px) over 800ms cubic-bezier(0.23,1,0.32,1) on first paint. Body copy follows with 200ms delay.
107
+ 2. Network graph node pulses — 6 nodes in the hero-right network graph SVG scale from 1 → 1.15 → 1 in a staggered loop (each node offset by 400ms, 2000ms per pulse cycle). Simulates a live-monitored graph.
108
+ 3. Live queries counter — displays a mock "queries processed today" number that increments every 2 seconds via a mock event stream (starts at 4,127,483 and increments by 1,000-5,000 per tick — reads as a live data-platform readout).
109
+ 4. Numbered dossier capability reveal — the 6 numbered capabilities fade in with 120ms per-row stagger + 500ms cubic-bezier on IntersectionObserver at 25% threshold.
110
+ 5. Data-flow diagram dots — three dots travel along SVG paths from source to sink at 3-second cycles (spaced 1s apart). Simulates data streaming through the platform.
111
+ 6. Compliance badge reveal — grid of 8 certification badges fade in with 80ms stagger on scroll into view.
112
+ 7. Case-study card reveal — 3 case study cards stagger reveal with 160ms per-card delay.
113
+ 8. Section reveals — each below-fold section fades in from opacity 0 + translateY(24px) → 0 over 700ms cubic-bezier at 25% threshold.
114
+ 9. Nav shrink on scroll after 200px.
115
+ 10. prefers-reduced-motion: reduce — all reveals disabled; queries counter shows final; network graph pulses paused; dots hidden; state changes still fire.
116
+
117
+ Motion character: institutional, dossier-precise, monitored. Custom cubic-bezier(0.23,1,0.32,1) for reveals. Never marketing-loud, never startup-hype — reads as a live security-operations-center readout, not a product-launch page.
118
+
119
+
120
+ ## Imagery
121
+
122
+ BESPOKE SVG diagrams — the reference uses network graphs, data-flow
123
+ block diagrams, capability icons, and compliance shields. FPO
124
+ imagery here should read as institutional dossier diagrams (network
125
+ topology, data-flow blocks, capability iconography). NO stock
126
+ "team meeting" photography (that's the AI-tell for corporate
127
+ enterprise slop). NO 3D-rendered abstract "cloud" imagery. NO
128
+ radial-gradient placeholder fills. NO emoji shields (only bespoke
129
+ SVG compliance badges with real certification identifiers).
130
+
131
+ ## Best for
132
+
133
+ - Institutional data platforms (government contractors, defense, finance-tier data infrastructure)
134
+ - Serious enterprise SaaS (security operations, compliance-heavy verticals)
135
+ - Government-adjacent technology (public-sector deployments, regulated industries)
136
+ - Defense and intelligence-adjacent brands (background-check platforms, secure comms)
137
+ - Finance-tier data platforms (bank-facing analytics, regulatory reporting)
138
+ - Health-tier compliance data (HIPAA-regulated analytics, clinical data platforms)
139
+
140
+ ## Reject if
141
+
142
+ _Director grades each of the following as a pass/fail check. Any violation blocks the theme._
143
+
144
+ - Light canvas — Enterprise Tech's canvas is DEEP CHARCOAL #0f0f11. Light canvas inverts the institutional-brutalist register into a modern-SaaS register (which is a different theme).
145
+ - Thin display sans (weight 200-300) — the Söhne medium at 500 is the register's fingerprint. Thin display collapses into the hypercar restraint register (Performance Engineered), which is a different theme.
146
+ - Bold display sans (weight 800-900) — bold display collapses into modern-marketing hero mode. The register requires MEDIUM (500) weight — precise, institutional, not attention-seeking.
147
+ - Multi-color accent palette — the whole discipline is ONE electric-cyan accent doing everything (hover, active nodes, live data, compliance borders, CTA fills). Introducing red / green / any second accent collapses the discipline into candy-tech slop.
148
+ - Rounded corners on cards, buttons, badges, or diagram nodes — 0px radius everywhere. The register requires sharp instrument-panel precision.
149
+ - Stock team-meeting or diverse-workplace photography — imagery MUST feel like institutional dossier diagrams (bespoke SVG). Stock team photography is the AI-tell for corporate enterprise slop.
150
+ - 3D-rendered cloud abstractions — visuals must be flat SVG diagrams (network graphs, data-flow blocks, capability icons). 3D cloud abstractions read as consumer-cloud SaaS, not institutional-data-platform.
151
+ - Emoji or unicode marks — bespoke SVG only for icons and shields.
152
+ - Marketing-loud copy language ('game-changing', 'revolutionary', 'unlock your potential') — the register requires INSTITUTIONAL, DOSSIER-PRECISE language. Marketing-loud copy collapses into startup slop.
153
+ - Cycling headline words or auto-advancing sliders — the register requires STATIC, MONITORED motion. Network node pulses and data-flow dots are legitimate (institutional-monitoring register); auto-advancing cycling is not.
154
+
155
+ ## Banned defaults (inherited + theme-specific)
156
+
157
+ - claude-cream (#F4F1EA + serif + #D97757) — this theme's canvas is dark.
158
+ - void+acid (near-black bg + single bright acid-green or vermilion accent) — accent is ELECTRIC CYAN #00c8ff, not acid-green. Vermilion collapses into cyberpunk.
159
+ - broadsheet-on-noneditorial (hairline rules + zero border-radius + newspaper columns)
160
+ - tech-bro purple gradient (purple→blue gradient hero + centered headline + double CTA + emoji icons)
161
+ - uniform-everything (identical padding + one weight of one sans doing every job + rounded-2xl + shadow-md cards)
162
+ - light-canvas-inversion (canvas is deep charcoal. Swapping to light collapses the institutional-brutalist register into a modern-SaaS register.)
163
+ - thin-hypercar-display (thin weight 200-300 is the hypercar restraint register — different theme. Enterprise Tech uses MEDIUM weight 500.)
164
+ - bold-marketing-display (bold weight 800-900 is marketing hero — different register. Enterprise Tech uses MEDIUM weight 500 — precise, institutional.)
165
+ - multi-accent-flood (ONE electric-cyan accent doing 100% of the punctuation. Introducing red / green / any second accent collapses the discipline.)
166
+ - stock-team-photography (imagery must be bespoke SVG dossier diagrams — network graphs, data-flow blocks. Stock team photography is the AI-tell.)
167
+ - 3d-cloud-abstractions (visuals must be flat SVG diagrams. 3D cloud abstractions read as consumer-cloud SaaS, not institutional-data-platform.)
@@ -0,0 +1 @@
1
+ {"slug":"enterprise-tech","gates":[{"gate":"slop-blocklist","verdict":{"passed":true,"failures":[]},"ran_at":"2026-07-05T04:49:21.319Z","dismissed":[]},{"gate":"regression-scan","verdict":{"passed":true,"failures":[]},"ran_at":"2026-07-05T04:49:21.336Z","dismissed":[]},{"gate":"avoid-rubric","verdict":{"passed":true,"failures":[]},"ran_at":"2026-07-05T04:49:52.593Z","dismissed":[]},{"gate":"anchor-compare","verdict":{"passed":true,"failures":[]},"ran_at":"2026-07-05T04:50:06.038Z","dismissed":[]}],"overall":"PASS","ran_at":"2026-07-05T04:49:21.319Z"}