@stylecrib/cli 0.0.0-stage → 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 +163 -2
  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 +7182 -0
  25. package/package.json +69 -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,167 @@
1
+ # Team Kanban
2
+
3
+ > Trello / Notion-anchored kanban-first project-management register — off-white canvas at
4
+
5
+ **Slug:** `team-kanban` — **Surface:** web — **Density:** dense
6
+
7
+ ## Influence
8
+
9
+ Modern project-management tools (Trello at its most kanban-first,
10
+ Notion at its most workspace-forward, Height / Asana for density,
11
+ Linear for keyboard-first opinionated design). Distinct from
12
+ developer-tool surfaces through the KANBAN BOARD ANCHOR + MULTI-
13
+ COLOR CARD LABELS + AVATAR STACKS + DUE-DATE BADGES trio — which
14
+ reads as team-collaboration rather than issue-tracker.
15
+
16
+
17
+ ## Signature move
18
+
19
+ Off-white canvas at #f8f7f4 — the register's non-negotiable base
20
+ (warmer than pure white, cooler than warm cream, Notion-adjacent).
21
+ Warm coral brand accent #ff5a5f used ONLY for the wordmark, primary
22
+ CTAs, hover states, and a signature 'HIGH PRIORITY' badge color.
23
+ MULTI-COLOR card labels (blue / green / yellow / red / purple) are
24
+ LEGITIMATELY used as Kanban card category tags — this is a chrome-
25
+ inventory exception scoped ONLY to the Kanban board. Sharp-ish
26
+ corners (4px on cards, 0px on buttons and structural elements).
27
+
28
+ MASTHEAD — a coral 'CADENCE' wordmark in Inter Display 700 medium
29
+ at 20px on the left, a horizontal nav (Board / Timeline / Roster /
30
+ Retrospectives / Settings) center, a filled coral 'New task'
31
+ button right-aligned. Shrinks after 200px scroll.
32
+
33
+ HERO SPLIT — two-column layout. LEFT: small caps 'CDN-SPRINT-24 ·
34
+ ACTIVE' + big Inter Display headline ('Where the work happens.
35
+ Live.') + body copy + coral 'Create your first board' CTA + link
36
+ 'Watch the two-minute tour'. RIGHT: a preview mini kanban board at
37
+ reduced scale showing 3 columns + 2-3 cards each.
38
+
39
+ THE KANBAN BOARD — the SIGNATURE MOVE. A full horizontal Kanban
40
+ board with 4 columns (BACKLOG · 8 · gray column header / IN PROGRESS
41
+ · 3 / 5 WIP · coral column header / REVIEW · 2 · yellow column
42
+ header / DONE · 12 · green column header). Each column contains
43
+ multiple cards with:
44
+ • Multi-color label chips (blue / green / yellow / red / purple)
45
+ • Issue ID in mono (CDN-01 through CDN-25)
46
+ • Card title in Inter Display 500 at 15px
47
+ • Optional checklist progress bar with green fill percentage
48
+ • Optional due-date badge (red for overdue, yellow for imminent)
49
+ • Priority indicator (red HIGH pulses on a 2s loop)
50
+ • Avatar stack (bespoke SVG circular portraits)
51
+ • Story points in mono
52
+ ONE CARD animates every 6 seconds — slides from Backlog to In
53
+ Progress to Review to Done via CSS transform, then returns to
54
+ Backlog and restarts. The In Progress column's WIP counter updates
55
+ live as the card moves.
56
+
57
+ SPRINT METRICS — 3-panel dashboard with:
58
+ • BURNDOWN CHART (goal line drawn first in mute gray, then actual
59
+ line drawn in coral over 1400ms via stroke-dashoffset)
60
+ • VELOCITY panel with counting number (Sprint 24: 47 points) and
61
+ trend indicator (▲ 12% vs Sprint 23)
62
+ • WIP LIMIT panel showing current 3/5 with progress bar
63
+
64
+ TEAM ROSTER — 6 team-member cards with bespoke SVG circular
65
+ avatars, name, role, current-task summary, and status pill
66
+ ('Working on CDN-03', 'In review · CDN-08', 'Off · back Monday').
67
+ Cards stagger reveal at 100ms per card.
68
+
69
+ TIMELINE / GANTT VIEW — a mini alternative view showing the same 8
70
+ tasks on a horizontal timeline with day markers, task bars sliding
71
+ in from left with 80ms per-bar stagger. Task bars use the same
72
+ multi-color labels as the Kanban cards.
73
+
74
+ RETROSPECTIVE CALLOUT — quote-style summary card 'Sprint 24: 47
75
+ points shipped. 3 blockers. 1 hot-fix. Team velocity up 12% Q/Q.'
76
+ in a large Inter Display italic pull quote with team-lead attribution.
77
+
78
+ PRICING TIERS — 3-tier grid (Free / Team / Enterprise) with feature
79
+ lists and coral highlight on the recommended Team tier.
80
+
81
+ FOOTER — dark inverted band with 'CADENCE' wordmark at ~120px,
82
+ 4-column utility grid, and a small SOC 2 badge in the corner.
83
+
84
+ Six bespoke SVG marks (kanban-board icon, priority-flag, checklist-
85
+ bar, avatar-stack, timeline-marker, sprint-burndown-chart) drop as
86
+ PUNCTUATION at specific compositional moments, never as a uniform
87
+ icon row.
88
+
89
+ ## Palette
90
+
91
+ - **bg:** `#f8f7f4`
92
+ - **surface:** `#ffffff`
93
+ - **ink:** `#2a2a2a`
94
+ - **accent:** `#ff5a5f`
95
+
96
+ ## Typography
97
+
98
+ - **Display:** A modern geometric sans at medium-bold weight — Inter Display / Söhne. Free fallback stack — "Inter Display", "Inter", "Söhne", "Space Grotesk", system-ui, sans-serif. Weight 500-700, mixed case, letter-spacing -0.02em. Top of scale ~72px hero, 40px section headings, 20px card titles.
99
+ - **Body:** A clean sans for body copy and card content — Inter / system-ui. Free fallback stack — "Inter", "Söhne", system-ui, sans-serif. Weight 400 for body copy, 500 for card labels, 600 for column headers. 14-15px body copy, line-height 1.55.
100
+ - **Mono:** JetBrains Mono / IBM Plex Mono for issue IDs (CDN-01, CDN-02), story points, and sprint metrics. Weight 400-500, 11-13px. LEGITIMATE here because Kanban cards genuinely display issue IDs.
101
+ - **Scale:** 1.25 (perfect fourth — comfortable for dense card UI)
102
+
103
+ ## Motion
104
+
105
+ Ships live in the section renderer (no external dependencies):
106
+ 1. Hero + kanban board reveal on paint — headline fades in with 800ms cubic-bezier(0.23,1,0.32,1), then the kanban board fades in 200ms later.
107
+ 2. Card cycling animation — one card in the Kanban board cycles between columns every 6 seconds: it slides from Backlog → In Progress → Review → Done via CSS transform + transition, then returns to Backlog and restarts. The WIP counter in the In Progress column header updates to reflect the moving card.
108
+ 3. Sprint burndown chart — line draws via stroke-dashoffset over 1400ms cubic-bezier on IntersectionObserver visibility at 40% threshold. Goal line and actual line draw sequentially (goal first at 800ms, actual at 1400ms).
109
+ 4. Team roster stagger reveal — 6 team-member cards fade in with 100ms per-card stagger on scroll into view.
110
+ 5. Timeline bars slide-in — 8 timeline task bars slide in from left with 80ms per-bar stagger on scroll.
111
+ 6. Priority badges pulse — HIGH PRIORITY badges scale from 1 → 1.05 → 1 on a 2s loop (subtle attention pull for urgent tasks).
112
+ 7. Sprint velocity counter — count up 0 → target on scroll into view via requestAnimationFrame, 1600ms ease-out.
113
+ 8. Section reveals — each below-fold section fades in over 700ms cubic-bezier on IntersectionObserver at 25% threshold.
114
+ 9. Nav shrink on scroll after 200px.
115
+ 10. prefers-reduced-motion: reduce — card cycling paused; chart shows at full stroke; badges paused; state changes still fire.
116
+
117
+ Motion character: kinetic, team-collaboration, live-workspace. Custom cubic-bezier(0.23,1,0.32,1) for reveals + cubic-bezier(0.65, 0, 0.35, 1) for card movements. Reads as a working PM tool, not a marketing page.
118
+
119
+
120
+ ## Imagery
121
+
122
+ BESPOKE SVG diagrams and icons — the reference uses flat card UI,
123
+ SVG avatars (circle-portraits with team-color backgrounds), and
124
+ minimalist column indicators. FPO imagery here should read as
125
+ considered PM UI (flat cards, circular SVG avatars with warm skin
126
+ tones, subtle status pills). NO stock 'diverse team collaborating
127
+ around a whiteboard' photography (that's the AI-tell for corporate
128
+ PM slop). NO 3D-rendered UI mockups. NO radial-gradient placeholder
129
+ fills.
130
+
131
+ ## Best for
132
+
133
+ - Project management tools (kanban / issue tracker / roadmap)
134
+ - Team collaboration platforms and productivity SaaS
135
+ - Software engineering team dashboards
136
+ - Design ops platforms and creative-team workflow tools
137
+ - Boutique PM tools targeting design teams / creative agencies
138
+ - Remote-team collaboration hubs
139
+
140
+ ## Reject if
141
+
142
+ _Director grades each of the following as a pass/fail check. Any violation blocks the theme._
143
+
144
+ - Dark canvas — Team Kanban's canvas is OFF-WHITE at #f8f7f4. Dark canvas inverts the kanban-first PM register into a developer-issue-tracker register (Linear-adjacent, different theme).
145
+ - Pure white canvas — #f8f7f4 is deliberately WARMER than pure white, matching Notion's page-background register. Pure white kills the specific warmth this base carries.
146
+ - Serif display — the register requires modern GEOMETRIC SANS. Serif display collapses into editorial territory.
147
+ - Multi-color palette beyond the SCOPED CARD-LABEL exception — the 5-color card label palette is LEGITIMATELY scoped to the Kanban board only. Introducing multi-color as brand accent, hero decoration, or section-background flood collapses the discipline into candy slop.
148
+ - Fully-rounded pill corners on cards — cards use SMALL rounded corners (4px) NOT 999px pill. Buttons and column headers stay at 0px radius. 999px pills anywhere on this register kill the kanban-board reading.
149
+ - Stock team-collaboration photography — imagery MUST feel like considered SVG PM UI (flat cards, circular SVG avatars, subtle status pills). Stock team-around-whiteboard photography is the AI-tell for corporate PM slop.
150
+ - 3D-rendered UI mockups — visuals must be flat SVG UI elements. 3D renders read as consumer-tech launch.
151
+ - Emoji task icons ✅ 🎯 📌 — bespoke SVG only for icons. Emoji is the biggest AI-tell for corporate-PM slop.
152
+ - Marketing-loud copy language ('supercharge your team', 'unlock productivity', 'game-changing collaboration') — the register requires PM-tool voice. Marketing-loud copy collapses into startup slop.
153
+ - Cycling headline words or ticker bars — the LIVE motion is the CARD CYCLING animation only. Auto-advancing headline sliders collapse into marketing slop.
154
+
155
+ ## Banned defaults (inherited + theme-specific)
156
+
157
+ - claude-cream (#F4F1EA + serif + #D97757) — this theme's canvas is #f8f7f4, cooler than claude-cream.
158
+ - void+acid
159
+ - broadsheet-on-noneditorial
160
+ - tech-bro purple gradient
161
+ - uniform-everything
162
+ - dark-canvas-inversion (canvas is off-white. Swapping to dark inverts into Linear-adjacent developer register.)
163
+ - serif-display-anywhere (register requires modern geometric sans. Serif display collapses into editorial territory.)
164
+ - multi-color-outside-labels (5-color palette is SCOPED to Kanban card labels only. Introducing multi-color as brand accent or section flood collapses the discipline.)
165
+ - pill-card-corners (cards use 4px small-rounded corners, NOT 999px pills. 999px pills kill the Kanban board reading.)
166
+ - stock-collab-photography (imagery must be flat SVG PM UI. Stock team-around-whiteboard is the AI-tell.)
167
+ - emoji-task-icons (bespoke SVG only. Emoji is the biggest AI-tell for corporate PM slop.)
@@ -0,0 +1,2 @@
1
+ {"slug":"team-kanban","gates":[{"gate":"slop-blocklist","verdict":{"passed":true,"failures":[]},"ran_at":"2026-07-05T06:25:04.524Z","dismissed":[]},{"gate":"regression-scan","verdict":{"passed":true,"failures":[]},"ran_at":"2026-07-05T06:25:04.536Z","dismissed":[]},{"gate":"avoid-rubric","verdict":{"passed":true,"failures":[]},"ran_at":"2026-07-05T06:25:37.443Z","dismissed":[]},{"gate":"anchor-compare","verdict":{"passed":false,"failures":[{"rule":"ANCHOR-02","severity":"block","evidence":"Accent restraint — Multiple accents appear simultaneously: blue CTA 'Get Jira free', purple Jira tile, teal Confluence, green Trello, plus colored avatar chips (purple/green) — violates one-accent rule."}]},"ran_at":"2026-07-05T06:25:50.096Z","dismissed":[]}],"overall":"BLOCK","ran_at":"2026-07-05T06:25:04.524Z"}
2
+ {"slug":"team-kanban","gates":[{"gate":"slop-blocklist","verdict":{"passed":true,"failures":[]},"ran_at":"2026-07-05T06:27:44.189Z","dismissed":[]},{"gate":"regression-scan","verdict":{"passed":true,"failures":[]},"ran_at":"2026-07-05T06:27:44.199Z","dismissed":[]},{"gate":"avoid-rubric","verdict":{"passed":true,"failures":[]},"ran_at":"2026-07-05T06:28:31.976Z","dismissed":[]},{"gate":"anchor-compare","verdict":{"passed":true,"failures":[]},"ran_at":"2026-07-05T06:28:44.246Z","dismissed":[{"rule":"ANCHOR-02","severity":"block","evidence":"Accent restraint — Multiple accents coexist simultaneously — blue CTA/Jira, purple 'Taste' link + Jira icon, teal Confluence, green Trello — rainbow palette across suite tiles violates one-accent rule.","dismissed":true,"dismissal":{"scope":"this_theme","reason":"Multi-color card labels (blue/green/yellow/red/purple) are the LEGITIMATE theme-scoped exception documented in theme.yml multi_color_exception — Kanban boards genuinely require color-coded labels to function as project-management tools. The BRAND accent is coral #ff5a5f (single-hue for wordmark/CTA/hover). The multi-color palette is scoped ONLY to card category tags within the Kanban board, not to brand chrome. Grader is judging against a Family D dashboard rubric that doesn't account for kanban PM chrome inventory.","dismissed_at":"2026-07-05T06:27:44.066Z"}}]}],"overall":"PASS","ran_at":"2026-07-05T06:27:44.189Z"}
@@ -0,0 +1 @@
1
+ {"finding_id":"ANCHOR-02","scope":"this_theme","reason":"Multi-color card labels (blue/green/yellow/red/purple) are the LEGITIMATE theme-scoped exception documented in theme.yml multi_color_exception — Kanban boards genuinely require color-coded labels to function as project-management tools. The BRAND accent is coral #ff5a5f (single-hue for wordmark/CTA/hover). The multi-color palette is scoped ONLY to card category tags within the Kanban board, not to brand chrome. Grader is judging against a Family D dashboard rubric that doesn't account for kanban PM chrome inventory.","dismissed_at":"2026-07-05T06:27:44.066Z","applied":false}
@@ -0,0 +1,15 @@
1
+ // Generated from theme.yml. Merge into your tailwind.config.ts under theme.extend.
2
+ // slug: team-kanban
3
+ export const teamKanbanTailwindExtend = {
4
+ colors: {
5
+ bg: "#f8f7f4",
6
+ surface: "#ffffff",
7
+ ink: "#2a2a2a",
8
+ accent: "#ff5a5f",
9
+ },
10
+ fontFamily: {
11
+ display: ["A modern geometric sans at medium-bold weight — Inter Display / Söhne. Free fallback stack — \"Inter Display\", \"Inter\", \"Söhne\", \"Space Grotesk\", system-ui, sans-serif. Weight 500-700, mixed case, letter-spacing -0.02em. Top of scale ~72px hero, 40px section headings, 20px card titles."],
12
+ body: ["A clean sans for body copy and card content — Inter / system-ui. Free fallback stack — \"Inter\", \"Söhne\", system-ui, sans-serif. Weight 400 for body copy, 500 for card labels, 600 for column headers. 14-15px body copy, line-height 1.55."],
13
+ mono: ["JetBrains Mono / IBM Plex Mono for issue IDs (CDN-01, CDN-02), story points, and sprint metrics. Weight 400-500, 11-13px. LEGITIMATE here because Kanban cards genuinely display issue IDs."],
14
+ },
15
+ };
@@ -0,0 +1,209 @@
1
+ # Team Kanban — Family D, Contemporary Web (project-management subregion).
2
+ #
3
+ # Trello / Notion-anchored kanban-first project-management register.
4
+ # Off-white canvas (#f8f7f4) + warm coral brand accent (#ff5a5f) +
5
+ # MULTI-COLOR CARD LABELS (blue / green / yellow / red / purple) —
6
+ # multi-color labels are a THEME-SPECIFIC EXCEPTION to the general
7
+ # single-accent discipline because Kanban boards genuinely require
8
+ # color-coded labels to work as project-management tools. Geometric
9
+ # sans (Inter Display) + system-ui body + JetBrains Mono for issue IDs.
10
+ # Sharp-ish corners (4px on cards, 0px elsewhere).
11
+ #
12
+ # Influence anchor: Trello + Notion at their most kanban-forward, with
13
+ # Height / Asana density added. Placeholder brand: "CADENCE" — a
14
+ # fictional project-management tool. Original name, original copy.
15
+ #
16
+ # Distinct from other Family D bases:
17
+ # - Signal Dark is dashboard/tool with green terminal accent
18
+ # - Arc Stack is protocol infrastructure with saturated signal-glow
19
+ # - Kinetic Headline is kinetic-marketing display
20
+ # - Bento Modular is grid-driven dashboard
21
+ # - Enterprise Tech is Palantir institutional dark cyan
22
+ # - Nature Distilled is earthy grounded warmth
23
+ # - Fresh Plate is cleantech monochrome forest
24
+ # Team Kanban fills the KANBAN-FIRST PM slot — the literal kanban
25
+ # board is the composition's signature move.
26
+ #
27
+ # Twenty-first theme via the v2 harness. Sixth Family D theme.
28
+ # Upgrade of the existing v1 archetype-fallback slug.
29
+
30
+ name: Team Kanban
31
+ concept: Trello / Notion-anchored kanban-first project-management register — off-white canvas at #f8f7f4 with warm coral brand accent and MULTI-COLOR card labels (blue / green / yellow / red / purple) as a Kanban chrome-inventory exception. Geometric sans display (Inter Display) + JetBrains Mono for issue IDs. Full horizontal kanban board with 4 columns (Backlog / In Progress / Review / Done), each card carrying label chips, avatar stacks, due-date badges, checklist progress bars, priority indicators. Live card-move animation every 6 seconds (a card slides from one column to another via CSS transform), WIP counter updates as card moves, sprint burndown chart draws via stroke-dashoffset, team roster with bespoke SVG avatars, timeline / Gantt mini view.
32
+ influence: |
33
+ Modern project-management tools (Trello at its most kanban-first,
34
+ Notion at its most workspace-forward, Height / Asana for density,
35
+ Linear for keyboard-first opinionated design). Distinct from
36
+ developer-tool surfaces through the KANBAN BOARD ANCHOR + MULTI-
37
+ COLOR CARD LABELS + AVATAR STACKS + DUE-DATE BADGES trio — which
38
+ reads as team-collaboration rather than issue-tracker.
39
+
40
+ family: D
41
+ base_number: 37
42
+ base_note: |
43
+ Family D Contemporary Web, PROJECT-MANAGEMENT slot. Distinct from
44
+ other Family D bases through the KANBAN BOARD signature move (full
45
+ horizontal board is the hero — not a chart, not a spec grid) +
46
+ MULTI-COLOR CARD LABEL exception. Enterprise Tech is Palantir
47
+ cyan institutional; Signal Dark is dashboard/tool with terminal
48
+ green; Bento Modular is dashboard grid. Team Kanban fills the
49
+ kanban-first PM slot. Upgrade of the existing v1 team-kanban slug
50
+ from archetype-fallback.
51
+
52
+ render_url: http://localhost:5173/themes/team-kanban
53
+
54
+ surface: web
55
+
56
+ typography:
57
+ display: A modern geometric sans at medium-bold weight — Inter Display / Söhne. Free fallback stack — "Inter Display", "Inter", "Söhne", "Space Grotesk", system-ui, sans-serif. Weight 500-700, mixed case, letter-spacing -0.02em. Top of scale ~72px hero, 40px section headings, 20px card titles.
58
+ body: A clean sans for body copy and card content — Inter / system-ui. Free fallback stack — "Inter", "Söhne", system-ui, sans-serif. Weight 400 for body copy, 500 for card labels, 600 for column headers. 14-15px body copy, line-height 1.55.
59
+ mono: JetBrains Mono / IBM Plex Mono for issue IDs (CDN-01, CDN-02), story points, and sprint metrics. Weight 400-500, 11-13px. LEGITIMATE here because Kanban cards genuinely display issue IDs.
60
+ scale: 1.25 (perfect fourth — comfortable for dense card UI)
61
+ eyebrow_exception: |
62
+ Team Kanban LEGITIMATELY uses small-caps 0.14em-tracked 10-11px labels for KANBAN COLUMN HEADERS ('BACKLOG · 8', 'IN PROGRESS · 3 / 5 WIP', 'REVIEW · 2', 'DONE') and STATUS PILL LABELS ('IN REVIEW', 'BLOCKED', 'READY'). This is a THEME-SPECIFIC EXCEPTION — kanban column headers use these EXACTLY in this register as diegetic PM chrome, not decorative eyebrow slop.
63
+ multi_color_exception: |
64
+ Team Kanban LEGITIMATELY uses a 5-color CARD LABEL palette (blue #3d5afe / green #22c55e / yellow #fbbf24 / red #ef4444 / purple #a855f7) as CARD CATEGORY TAGS — this is a THEME-SPECIFIC EXCEPTION to the general single-accent discipline because Kanban boards require color-coded labels to work as project-management tools. The BRAND accent is coral (#ff5a5f) and is used ONLY for the brand wordmark, primary CTAs, and hover states — the multi-color palette is scoped ONLY to card labels within the Kanban board.
65
+
66
+ palette:
67
+ bg: "#f8f7f4" # off-white canvas — warm undertone (Notion-adjacent)
68
+ surface: "#ffffff" # white raised card
69
+ ink: "#2a2a2a" # warm near-black
70
+ accent: "#ff5a5f" # coral brand accent — wordmark + CTA + hover
71
+ cream: "#f8f7f4" # alias for bg
72
+ darkInk: "#0f0f0f" # deepest black for masthead
73
+ mute: "#7a7570" # dimmed for captions
74
+ labelBlue: "#3d5afe" # Kanban card label — blue
75
+ labelGreen: "#22c55e" # Kanban card label — green
76
+ labelYellow: "#fbbf24" # Kanban card label — yellow
77
+ labelRed: "#ef4444" # Kanban card label — red
78
+ labelPurple: "#a855f7" # Kanban card label — purple
79
+
80
+ density: dense
81
+
82
+ motion: |
83
+ Ships live in the section renderer (no external dependencies):
84
+ 1. Hero + kanban board reveal on paint — headline fades in with 800ms cubic-bezier(0.23,1,0.32,1), then the kanban board fades in 200ms later.
85
+ 2. Card cycling animation — one card in the Kanban board cycles between columns every 6 seconds: it slides from Backlog → In Progress → Review → Done via CSS transform + transition, then returns to Backlog and restarts. The WIP counter in the In Progress column header updates to reflect the moving card.
86
+ 3. Sprint burndown chart — line draws via stroke-dashoffset over 1400ms cubic-bezier on IntersectionObserver visibility at 40% threshold. Goal line and actual line draw sequentially (goal first at 800ms, actual at 1400ms).
87
+ 4. Team roster stagger reveal — 6 team-member cards fade in with 100ms per-card stagger on scroll into view.
88
+ 5. Timeline bars slide-in — 8 timeline task bars slide in from left with 80ms per-bar stagger on scroll.
89
+ 6. Priority badges pulse — HIGH PRIORITY badges scale from 1 → 1.05 → 1 on a 2s loop (subtle attention pull for urgent tasks).
90
+ 7. Sprint velocity counter — count up 0 → target on scroll into view via requestAnimationFrame, 1600ms ease-out.
91
+ 8. Section reveals — each below-fold section fades in over 700ms cubic-bezier on IntersectionObserver at 25% threshold.
92
+ 9. Nav shrink on scroll after 200px.
93
+ 10. prefers-reduced-motion: reduce — card cycling paused; chart shows at full stroke; badges paused; state changes still fire.
94
+
95
+ Motion character: kinetic, team-collaboration, live-workspace. Custom cubic-bezier(0.23,1,0.32,1) for reveals + cubic-bezier(0.65, 0, 0.35, 1) for card movements. Reads as a working PM tool, not a marketing page.
96
+
97
+ signature: |
98
+ Off-white canvas at #f8f7f4 — the register's non-negotiable base
99
+ (warmer than pure white, cooler than warm cream, Notion-adjacent).
100
+ Warm coral brand accent #ff5a5f used ONLY for the wordmark, primary
101
+ CTAs, hover states, and a signature 'HIGH PRIORITY' badge color.
102
+ MULTI-COLOR card labels (blue / green / yellow / red / purple) are
103
+ LEGITIMATELY used as Kanban card category tags — this is a chrome-
104
+ inventory exception scoped ONLY to the Kanban board. Sharp-ish
105
+ corners (4px on cards, 0px on buttons and structural elements).
106
+
107
+ MASTHEAD — a coral 'CADENCE' wordmark in Inter Display 700 medium
108
+ at 20px on the left, a horizontal nav (Board / Timeline / Roster /
109
+ Retrospectives / Settings) center, a filled coral 'New task'
110
+ button right-aligned. Shrinks after 200px scroll.
111
+
112
+ HERO SPLIT — two-column layout. LEFT: small caps 'CDN-SPRINT-24 ·
113
+ ACTIVE' + big Inter Display headline ('Where the work happens.
114
+ Live.') + body copy + coral 'Create your first board' CTA + link
115
+ 'Watch the two-minute tour'. RIGHT: a preview mini kanban board at
116
+ reduced scale showing 3 columns + 2-3 cards each.
117
+
118
+ THE KANBAN BOARD — the SIGNATURE MOVE. A full horizontal Kanban
119
+ board with 4 columns (BACKLOG · 8 · gray column header / IN PROGRESS
120
+ · 3 / 5 WIP · coral column header / REVIEW · 2 · yellow column
121
+ header / DONE · 12 · green column header). Each column contains
122
+ multiple cards with:
123
+ • Multi-color label chips (blue / green / yellow / red / purple)
124
+ • Issue ID in mono (CDN-01 through CDN-25)
125
+ • Card title in Inter Display 500 at 15px
126
+ • Optional checklist progress bar with green fill percentage
127
+ • Optional due-date badge (red for overdue, yellow for imminent)
128
+ • Priority indicator (red HIGH pulses on a 2s loop)
129
+ • Avatar stack (bespoke SVG circular portraits)
130
+ • Story points in mono
131
+ ONE CARD animates every 6 seconds — slides from Backlog to In
132
+ Progress to Review to Done via CSS transform, then returns to
133
+ Backlog and restarts. The In Progress column's WIP counter updates
134
+ live as the card moves.
135
+
136
+ SPRINT METRICS — 3-panel dashboard with:
137
+ • BURNDOWN CHART (goal line drawn first in mute gray, then actual
138
+ line drawn in coral over 1400ms via stroke-dashoffset)
139
+ • VELOCITY panel with counting number (Sprint 24: 47 points) and
140
+ trend indicator (▲ 12% vs Sprint 23)
141
+ • WIP LIMIT panel showing current 3/5 with progress bar
142
+
143
+ TEAM ROSTER — 6 team-member cards with bespoke SVG circular
144
+ avatars, name, role, current-task summary, and status pill
145
+ ('Working on CDN-03', 'In review · CDN-08', 'Off · back Monday').
146
+ Cards stagger reveal at 100ms per card.
147
+
148
+ TIMELINE / GANTT VIEW — a mini alternative view showing the same 8
149
+ tasks on a horizontal timeline with day markers, task bars sliding
150
+ in from left with 80ms per-bar stagger. Task bars use the same
151
+ multi-color labels as the Kanban cards.
152
+
153
+ RETROSPECTIVE CALLOUT — quote-style summary card 'Sprint 24: 47
154
+ points shipped. 3 blockers. 1 hot-fix. Team velocity up 12% Q/Q.'
155
+ in a large Inter Display italic pull quote with team-lead attribution.
156
+
157
+ PRICING TIERS — 3-tier grid (Free / Team / Enterprise) with feature
158
+ lists and coral highlight on the recommended Team tier.
159
+
160
+ FOOTER — dark inverted band with 'CADENCE' wordmark at ~120px,
161
+ 4-column utility grid, and a small SOC 2 badge in the corner.
162
+
163
+ Six bespoke SVG marks (kanban-board icon, priority-flag, checklist-
164
+ bar, avatar-stack, timeline-marker, sprint-burndown-chart) drop as
165
+ PUNCTUATION at specific compositional moments, never as a uniform
166
+ icon row.
167
+
168
+ imagery: |
169
+ BESPOKE SVG diagrams and icons — the reference uses flat card UI,
170
+ SVG avatars (circle-portraits with team-color backgrounds), and
171
+ minimalist column indicators. FPO imagery here should read as
172
+ considered PM UI (flat cards, circular SVG avatars with warm skin
173
+ tones, subtle status pills). NO stock 'diverse team collaborating
174
+ around a whiteboard' photography (that's the AI-tell for corporate
175
+ PM slop). NO 3D-rendered UI mockups. NO radial-gradient placeholder
176
+ fills.
177
+
178
+ best_for:
179
+ - Project management tools (kanban / issue tracker / roadmap)
180
+ - Team collaboration platforms and productivity SaaS
181
+ - Software engineering team dashboards
182
+ - Design ops platforms and creative-team workflow tools
183
+ - Boutique PM tools targeting design teams / creative agencies
184
+ - Remote-team collaboration hubs
185
+
186
+ avoid:
187
+ - "Dark canvas — Team Kanban's canvas is OFF-WHITE at #f8f7f4. Dark canvas inverts the kanban-first PM register into a developer-issue-tracker register (Linear-adjacent, different theme)."
188
+ - "Pure white canvas — #f8f7f4 is deliberately WARMER than pure white, matching Notion's page-background register. Pure white kills the specific warmth this base carries."
189
+ - "Serif display — the register requires modern GEOMETRIC SANS. Serif display collapses into editorial territory."
190
+ - "Multi-color palette beyond the SCOPED CARD-LABEL exception — the 5-color card label palette is LEGITIMATELY scoped to the Kanban board only. Introducing multi-color as brand accent, hero decoration, or section-background flood collapses the discipline into candy slop."
191
+ - "Fully-rounded pill corners on cards — cards use SMALL rounded corners (4px) NOT 999px pill. Buttons and column headers stay at 0px radius. 999px pills anywhere on this register kill the kanban-board reading."
192
+ - "Stock team-collaboration photography — imagery MUST feel like considered SVG PM UI (flat cards, circular SVG avatars, subtle status pills). Stock team-around-whiteboard photography is the AI-tell for corporate PM slop."
193
+ - "3D-rendered UI mockups — visuals must be flat SVG UI elements. 3D renders read as consumer-tech launch."
194
+ - "Emoji task icons ✅ 🎯 📌 — bespoke SVG only for icons. Emoji is the biggest AI-tell for corporate-PM slop."
195
+ - "Marketing-loud copy language ('supercharge your team', 'unlock productivity', 'game-changing collaboration') — the register requires PM-tool voice. Marketing-loud copy collapses into startup slop."
196
+ - "Cycling headline words or ticker bars — the LIVE motion is the CARD CYCLING animation only. Auto-advancing headline sliders collapse into marketing slop."
197
+
198
+ banned_defaults:
199
+ - "claude-cream (#F4F1EA + serif + #D97757) — this theme's canvas is #f8f7f4, cooler than claude-cream."
200
+ - "void+acid"
201
+ - "broadsheet-on-noneditorial"
202
+ - "tech-bro purple gradient"
203
+ - "uniform-everything"
204
+ - "dark-canvas-inversion (canvas is off-white. Swapping to dark inverts into Linear-adjacent developer register.)"
205
+ - "serif-display-anywhere (register requires modern geometric sans. Serif display collapses into editorial territory.)"
206
+ - "multi-color-outside-labels (5-color palette is SCOPED to Kanban card labels only. Introducing multi-color as brand accent or section flood collapses the discipline.)"
207
+ - "pill-card-corners (cards use 4px small-rounded corners, NOT 999px pills. 999px pills kill the Kanban board reading.)"
208
+ - "stock-collab-photography (imagery must be flat SVG PM UI. Stock team-around-whiteboard is the AI-tell.)"
209
+ - "emoji-task-icons (bespoke SVG only. Emoji is the biggest AI-tell for corporate PM slop.)"
@@ -0,0 +1,35 @@
1
+ // Generated from theme.yml. Do not edit by hand — edit theme.yml + re-materialize.
2
+
3
+ export const tokens = {
4
+ slug: "team-kanban",
5
+ family: "D",
6
+ base: "37",
7
+ palette: {
8
+ "bg": "#f8f7f4",
9
+ "surface": "#ffffff",
10
+ "ink": "#2a2a2a",
11
+ "accent": "#ff5a5f",
12
+ "cream": "#f8f7f4",
13
+ "darkInk": "#0f0f0f",
14
+ "mute": "#7a7570",
15
+ "labelBlue": "#3d5afe",
16
+ "labelGreen": "#22c55e",
17
+ "labelYellow": "#fbbf24",
18
+ "labelRed": "#ef4444",
19
+ "labelPurple": "#a855f7"
20
+ },
21
+ typography: {
22
+ "display": "A modern geometric sans at medium-bold weight — Inter Display / Söhne. Free fallback stack — \"Inter Display\", \"Inter\", \"Söhne\", \"Space Grotesk\", system-ui, sans-serif. Weight 500-700, mixed case, letter-spacing -0.02em. Top of scale ~72px hero, 40px section headings, 20px card titles.",
23
+ "body": "A clean sans for body copy and card content — Inter / system-ui. Free fallback stack — \"Inter\", \"Söhne\", system-ui, sans-serif. Weight 400 for body copy, 500 for card labels, 600 for column headers. 14-15px body copy, line-height 1.55.",
24
+ "mono": "JetBrains Mono / IBM Plex Mono for issue IDs (CDN-01, CDN-02), story points, and sprint metrics. Weight 400-500, 11-13px. LEGITIMATE here because Kanban cards genuinely display issue IDs.",
25
+ "scale": "1.25 (perfect fourth — comfortable for dense card UI)",
26
+ "eyebrow_exception": "Team Kanban LEGITIMATELY uses small-caps 0.14em-tracked 10-11px labels for KANBAN COLUMN HEADERS ('BACKLOG · 8', 'IN PROGRESS · 3 / 5 WIP', 'REVIEW · 2', 'DONE') and STATUS PILL LABELS ('IN REVIEW', 'BLOCKED', 'READY'). This is a THEME-SPECIFIC EXCEPTION — kanban column headers use these EXACTLY in this register as diegetic PM chrome, not decorative eyebrow slop.\n",
27
+ "multi_color_exception": "Team Kanban LEGITIMATELY uses a 5-color CARD LABEL palette (blue #3d5afe / green #22c55e / yellow #fbbf24 / red #ef4444 / purple #a855f7) as CARD CATEGORY TAGS — this is a THEME-SPECIFIC EXCEPTION to the general single-accent discipline because Kanban boards require color-coded labels to work as project-management tools. The BRAND accent is coral (#ff5a5f) and is used ONLY for the brand wordmark, primary CTAs, and hover states — the multi-color palette is scoped ONLY to card labels within the Kanban board.\n"
28
+ },
29
+ surface: "web",
30
+ density: "dense",
31
+ motion: "Ships live in the section renderer (no external dependencies):\n1. Hero + kanban board reveal on paint — headline fades in with 800ms cubic-bezier(0.23,1,0.32,1), then the kanban board fades in 200ms later.\n2. Card cycling animation — one card in the Kanban board cycles between columns every 6 seconds: it slides from Backlog → In Progress → Review → Done via CSS transform + transition, then returns to Backlog and restarts. The WIP counter in the In Progress column header updates to reflect the moving card.\n3. Sprint burndown chart — line draws via stroke-dashoffset over 1400ms cubic-bezier on IntersectionObserver visibility at 40% threshold. Goal line and actual line draw sequentially (goal first at 800ms, actual at 1400ms).\n4. Team roster stagger reveal — 6 team-member cards fade in with 100ms per-card stagger on scroll into view.\n5. Timeline bars slide-in — 8 timeline task bars slide in from left with 80ms per-bar stagger on scroll.\n6. Priority badges pulse — HIGH PRIORITY badges scale from 1 → 1.05 → 1 on a 2s loop (subtle attention pull for urgent tasks).\n7. Sprint velocity counter — count up 0 → target on scroll into view via requestAnimationFrame, 1600ms ease-out.\n8. Section reveals — each below-fold section fades in over 700ms cubic-bezier on IntersectionObserver at 25% threshold.\n9. Nav shrink on scroll after 200px.\n10. prefers-reduced-motion: reduce — card cycling paused; chart shows at full stroke; badges paused; state changes still fire.\n\nMotion character: kinetic, team-collaboration, live-workspace. Custom cubic-bezier(0.23,1,0.32,1) for reveals + cubic-bezier(0.65, 0, 0.35, 1) for card movements. Reads as a working PM tool, not a marketing page.\n",
32
+ signature: "Off-white canvas at #f8f7f4 — the register's non-negotiable base\n(warmer than pure white, cooler than warm cream, Notion-adjacent).\nWarm coral brand accent #ff5a5f used ONLY for the wordmark, primary\nCTAs, hover states, and a signature 'HIGH PRIORITY' badge color.\nMULTI-COLOR card labels (blue / green / yellow / red / purple) are\nLEGITIMATELY used as Kanban card category tags — this is a chrome-\ninventory exception scoped ONLY to the Kanban board. Sharp-ish\ncorners (4px on cards, 0px on buttons and structural elements).\n\nMASTHEAD — a coral 'CADENCE' wordmark in Inter Display 700 medium\nat 20px on the left, a horizontal nav (Board / Timeline / Roster /\nRetrospectives / Settings) center, a filled coral 'New task'\nbutton right-aligned. Shrinks after 200px scroll.\n\nHERO SPLIT — two-column layout. LEFT: small caps 'CDN-SPRINT-24 ·\nACTIVE' + big Inter Display headline ('Where the work happens.\nLive.') + body copy + coral 'Create your first board' CTA + link\n'Watch the two-minute tour'. RIGHT: a preview mini kanban board at\nreduced scale showing 3 columns + 2-3 cards each.\n\nTHE KANBAN BOARD — the SIGNATURE MOVE. A full horizontal Kanban\nboard with 4 columns (BACKLOG · 8 · gray column header / IN PROGRESS\n· 3 / 5 WIP · coral column header / REVIEW · 2 · yellow column\nheader / DONE · 12 · green column header). Each column contains\nmultiple cards with:\n • Multi-color label chips (blue / green / yellow / red / purple)\n • Issue ID in mono (CDN-01 through CDN-25)\n • Card title in Inter Display 500 at 15px\n • Optional checklist progress bar with green fill percentage\n • Optional due-date badge (red for overdue, yellow for imminent)\n • Priority indicator (red HIGH pulses on a 2s loop)\n • Avatar stack (bespoke SVG circular portraits)\n • Story points in mono\nONE CARD animates every 6 seconds — slides from Backlog to In\nProgress to Review to Done via CSS transform, then returns to\nBacklog and restarts. The In Progress column's WIP counter updates\nlive as the card moves.\n\nSPRINT METRICS — 3-panel dashboard with:\n • BURNDOWN CHART (goal line drawn first in mute gray, then actual\n line drawn in coral over 1400ms via stroke-dashoffset)\n • VELOCITY panel with counting number (Sprint 24: 47 points) and\n trend indicator (▲ 12% vs Sprint 23)\n • WIP LIMIT panel showing current 3/5 with progress bar\n\nTEAM ROSTER — 6 team-member cards with bespoke SVG circular\navatars, name, role, current-task summary, and status pill\n('Working on CDN-03', 'In review · CDN-08', 'Off · back Monday').\nCards stagger reveal at 100ms per card.\n\nTIMELINE / GANTT VIEW — a mini alternative view showing the same 8\ntasks on a horizontal timeline with day markers, task bars sliding\nin from left with 80ms per-bar stagger. Task bars use the same\nmulti-color labels as the Kanban cards.\n\nRETROSPECTIVE CALLOUT — quote-style summary card 'Sprint 24: 47\npoints shipped. 3 blockers. 1 hot-fix. Team velocity up 12% Q/Q.'\nin a large Inter Display italic pull quote with team-lead attribution.\n\nPRICING TIERS — 3-tier grid (Free / Team / Enterprise) with feature\nlists and coral highlight on the recommended Team tier.\n\nFOOTER — dark inverted band with 'CADENCE' wordmark at ~120px,\n4-column utility grid, and a small SOC 2 badge in the corner.\n\nSix bespoke SVG marks (kanban-board icon, priority-flag, checklist-\nbar, avatar-stack, timeline-marker, sprint-burndown-chart) drop as\nPUNCTUATION at specific compositional moments, never as a uniform\nicon row.\n",
33
+ } as const;
34
+
35
+ export type Tokens = typeof tokens;
@@ -0,0 +1,95 @@
1
+ # Design Direction — Telehealth-Modern
2
+
3
+ ## Ethos
4
+ Headway therapist directory · Cerebral lavender soft · Talkspace warm blue · Spruce clinical-tool density · Calm Health structured-soft
5
+
6
+ ## Feel
7
+ Modern telehealth dashboard energy. The patient schedules a session, refills a prescription, reviews a session note; the provider documents an encounter, sends a message, reviews a chart. The surface is dense but warm — cream-tinted panels, white cards, lavender as the canonical primary action, warm-blue and sage and amber as a small status palette. Inter does everything. The brand reads competent and kind — clinical-software competence with the bedside manner of a good therapist, not an EHR built in 2008.
8
+
9
+ ## Reference brands
10
+ - **Headway** → warm cream background, therapist-directory tile pattern, friendly Inter at every size.
11
+ - **Cerebral** → lavender primary, soft elevated cards, mental-health competence without the heavy clinical chrome.
12
+ - **Talkspace** → warm-blue accent for appointment and messaging surfaces, friendly approachable type.
13
+ - **Spruce Health** → dense provider-tool layouts with a warm accent, dosage strings and ICD codes in mono.
14
+ - **Calm Health** → sage for wellness/positive-status indicators, structured layouts that still feel soft.
15
+
16
+ ## Tokens
17
+ All tokens live in `src/index.css` as HSL triples. Every token's `from:` comment names its brand origin. Do not introduce numbered or generic tokens — if a new color is needed, name a brand it traces to.
18
+
19
+ Surface stack is **warm cream** (background) → **white** (card and panel) → **deeper cream** (secondary panel) → **brand-tint** (lavender-soft, warm-blue-soft, sage-soft, amber-soft as status pills and hover states). Depth comes from soft slate-tinted shadows and one-step lifts. The cream base is what distinguishes this from a generic SaaS dashboard — a pure-white page reads cold and the brand collapses.
20
+
21
+ Brand tokens: `--lavender`, `--lavender-soft`, `--warm-blue`, `--warm-blue-soft`, `--sage`, `--sage-soft`, `--amber`, `--amber-soft`, `--cream`. Primary is **Cerebral lavender**. The status palette is constrained: lavender = session/primary, warm-blue = appointment/booking, sage = adherence-good/wellness-complete, amber = pending/refill-due, warm-red = destructive/cancel.
22
+
23
+ ## Typography
24
+ - **Display:** Inter (Headway/Cerebral feel). Weights 500/600/700. Tracking `-0.015em` at large sizes.
25
+ - **Body:** Inter — same family as display. Telehealth dashboards use one face; hierarchy via weight + size, never face change. Body base **15px** with **line-height 1.55** — denser than marketing surfaces because dashboards pack information.
26
+ - **Mono:** IBM Plex Mono. Dosage strings, ICD codes, MRNs, appointment-time slots inside CTAs. Slightly warmer than JetBrains Mono — patient-facing chrome benefits from the softer stroke.
27
+
28
+ H1 uses `clamp(2rem, 4.5vw, 3.25rem)` — tool-first, not magazine-large. Numbers always use tabular figures. Font features: `"cv11"`, `"ss01"`, `"tnum"`, `"calt"`.
29
+
30
+ ## Spacing
31
+ - **Container:** `max-w-7xl px-4 lg:px-6` — wide; provider dashboards run edge-to-edge with sidebar.
32
+ - **Section padding tiers:**
33
+ - Hero: `pt-16 pb-12 lg:pt-24 lg:pb-16` (modest — this is a tool brand, not an editorial site)
34
+ - Default: `py-12 lg:py-20`
35
+ - Tight: `py-8 lg:py-12`
36
+ - **Allowed scale values:** 2 4 6 8 10 12 14 16 20 24 32 40 48 64 80. Dense-allowed micro-steps (2 and 14 included) — dashboard layouts need fine adjustments inside dense table rows and inline-form clusters.
37
+
38
+ ## Color
39
+ No hex anywhere in component files. All color via tokens. Opacity via `/N` modifier on token, not via new tokens. The status palette is closed — do not introduce a new "info" green or a "warning" orange; the four brand colors plus destructive carry every state.
40
+
41
+ Lavender is the only color that appears on primary-action buttons. Warm-blue is for appointment chips, booking flow, and chat-message bubbles — never for primary CTA. Sage indicates positive completion (adherence streak, session completed, lab in range). Amber indicates attention-needed but not alarm (Rx refill due, follow-up scheduled). Warm-red is destructive only.
42
+
43
+ ## Radius
44
+ `--radius: 0.625rem` (10px). **Softer than dense-utility, less pillowy than DTC.** Pills are allowed and core (`pillsAllowed: true`) — appointment-status chips, Rx-state badges, adherence indicators. Tighter radius than the DTC siblings because dense data tables read better with crisper corners.
45
+
46
+ ## Shadows
47
+ **Soft slate-tinted shadows.** Utilities:
48
+ - `.shadow-panel` — base panel and card lift
49
+ - `.shadow-panel-lg` — hover state and elevated detail panel
50
+ - `.shadow-popover` — dropdown, modal, calendar-pickers — heavier
51
+ - `.shadow-inset-soft` — 1px inner highlight for cards that need extra dimension
52
+
53
+ No glows. No colored drop-shadows. Shadow color is slate-tinted (not gray) so it reads warm against cream.
54
+
55
+ ## Motion
56
+ Five keyframes — `fade-rise` (panel and row entrance, 400ms — dashboard-quick), `scale-in` (modal, popover, dropdown, 180ms), `soft-pulse` (unread-message dot and live-session indicator, 1800ms infinite, opacity only), `shimmer` (appointment-list and chart-row loading skeleton), `slide-in-right` (side-panel and chart-detail drawer entrance, 280ms).
57
+
58
+ Easing: `cubic-bezier(0.22, 1, 0.36, 1)`. `prefers-reduced-motion` is honored — wrapped in a media query in every motion utility. **No ambient motion** — this is a clinical tool, and motion that doesn't confirm an action reads as distraction. The reveal duration is fast on purpose; clinical software must feel responsive.
59
+
60
+ ## Component patterns
61
+ - **Buttons:** Primary = solid lavender fill, white text, rounded-lg, shadow-panel. Secondary = white fill with 1px border, foreground text. Tertiary = text-link in lavender. Destructive = warm-red ghost (border + text), upgrades to solid only on confirm step. Hover: shadow-panel-lg + 4% darken, never scale (jumpiness in clinical chrome reads error-prone).
62
+ - **Cards:** Rounded-lg, white fill on cream background, 1px warm border, shadow-panel. Internal padding `p-5 lg:p-6` (denser than marketing). Dashboard-tile variant uses a 4px top-border in the brand color matching the data (lavender = session, warm-blue = appointment, sage = adherence, amber = pending).
63
+ - **Inputs:** Rounded-md, 1px warm border, white background. Compact height (h-9). Label sits above in Inter 500. Focus = 2px lavender ring at 40% opacity. Error = warm-red border + warm-red helper text below, no fill change. Inline validation appears as the user types — clinical forms need real-time feedback because a typo in a dosage field is a real harm.
64
+ - **CTAs:** Primary lavender solid is the dashboard default. Marketing pages may pair primary + warm-blue ghost side-by-side. Appointment-booking CTAs always show the next-available slot in mono inside the button itself (*"Book Tuesday 2:30pm"*) — reduces clicks-to-conversion.
65
+
66
+ ## Recommended rich media
67
+ Telehealth photography is **provider portraits and product-UI screenshots**, not lifestyle moments. Provider portraits look like LinkedIn done well — clean background, warm lighting, slight smile, eye contact. Patient testimonials use real photography (not stock) with consent and attribution.
68
+
69
+ Product-UI screenshots are the hero. Show the actual session interface, the actual appointment-calendar, the actual chart-note — telehealth buyers (both patients and providers) need to see the tool before they trust it. Screenshots get a subtle warm-cream device-frame background, never a starscape or gradient gimmick.
70
+
71
+ **AI tool recommendations:** **Midjourney / Flux** for provider portraits with prompts like *"professional healthcare provider portrait, soft warm lighting, neutral cream background, friendly slight smile, natural skin"*. **Recraft** or **Ideogram** for category illustrations in a friendly editorial style (lavender or warm-blue accent on cream). Avoid: 3D rendered medical instruments, glossy stethoscope shots, anything that looks like a 2014 startup marketing site.
72
+
73
+ **Aspect ratios:** 4:3 or 3:2 for product-UI screenshots (matches actual device aspect), 1:1 square for provider portraits (directory tile standard), 4:5 portrait for marketing testimonial photography. Never 21:9.
74
+
75
+ **Video:** product walkthroughs are core marketing content — ≤90 seconds, captions baked in (accessibility and sound-off mobile autoplay). Provider testimonial videos are talking-head with the provider in their actual workspace, never a green-screen studio. ≤10 MB, H.265.
76
+
77
+ **Performance:** hero screenshot ≤200 KB AVIF at 2000w (UI detail must hold up); provider-portrait tiles ≤40 KB at 400w. LCP under 2.5s.
78
+
79
+ **Avoid:** stock photography of stethoscope-on-clipboard, blue-tinted hospital corridors, doctors-pointing-at-tablets, glowing-data-overlay 3D renders, anything from a generic healthcare-marketing stock library, lens flare, the "trusted by these logos" gray-on-gray logo wall (use color logos on the warm cream — the warmth is the brand).
80
+
81
+ **Accessibility:** product-UI screenshot alt-text describes the interface state: *"Patient dashboard showing three upcoming appointments and a refill reminder for sertraline."* Provider portrait alt-text: *"Dr. Maya Chen, licensed therapist, smiling in her office."*
82
+
83
+ ## Component families
84
+ None at install time. The hint sheet for appointment-tile, chart-row, dose-card, message-bubble, and provider-directory-tile patterns lives in the design-system handoff once the first views ship; the Director appends them here as patterns stabilize.
85
+
86
+ ## Details
87
+ - **Selection:** `hsl(var(--lavender) / 0.22)` background, foreground text.
88
+ - **Focus ring:** `2px solid hsl(var(--ring) / 0.5)` — lavender at half-opacity.
89
+ - **Scrollbar:** thin.
90
+
91
+ ## Exceptions
92
+ None yet. When an intentional one-of-one violation lands (a third-party data table embedded in a chart view that must follow upstream HSL values, a partner-brand pixel-match), add it here with the reason. The Director's consistency pass lists all exceptions for human review.
93
+
94
+ ## Revisions
95
+ - Initial direction, generated at install time.