@felloinnovations/brand-kit 0.4.0 → 0.5.1

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 (363) hide show
  1. package/AGENTS.md +198 -24
  2. package/CHANGELOG.md +221 -0
  3. package/README.md +38 -9
  4. package/design-system/01-how-claude-decides.md +26 -17
  5. package/design-system/02-principles.md +11 -6
  6. package/design-system/03-colour.md +135 -47
  7. package/design-system/04-type.md +45 -23
  8. package/design-system/05-space-and-layout.md +175 -52
  9. package/design-system/06-sizing-profiles.md +4 -4
  10. package/design-system/07-scrolling.md +66 -20
  11. package/design-system/08-choosing-components.md +50 -22
  12. package/design-system/09-charts.md +71 -28
  13. package/design-system/10-patterns.md +33 -10
  14. package/design-system/11-page-recipes.md +110 -23
  15. package/design-system/12-content.md +2 -1
  16. package/design-system/13-motion.md +330 -47
  17. package/design-system/14-accessibility.md +47 -24
  18. package/design-system/15-ai-experiences.md +11 -6
  19. package/design-system/16-creativity.md +1 -1
  20. package/design-system/17-decisions.md +367 -1
  21. package/design-system/18-checklist.md +79 -16
  22. package/design-system/19-public-pages.md +6 -4
  23. package/design-system/20-palettes.md +275 -0
  24. package/design-system/README.md +30 -17
  25. package/design-system/components/ActionList/README.md +96 -10
  26. package/design-system/components/ActionList/preview.html +52 -7
  27. package/design-system/components/ActionList/style.css +64 -0
  28. package/design-system/components/ActivityGrid/README.md +38 -2
  29. package/design-system/components/ActivityGrid/preview.html +1 -1
  30. package/design-system/components/ActivityGrid/style.css +35 -0
  31. package/design-system/components/AppShell/README.md +205 -75
  32. package/design-system/components/AppShell/preview.html +339 -58
  33. package/design-system/components/AppShell/style.css +154 -0
  34. package/design-system/components/Avatar/README.md +37 -10
  35. package/design-system/components/Avatar/preview.html +13 -4
  36. package/design-system/components/Avatar/style.css +14 -0
  37. package/design-system/components/Badge/README.md +41 -19
  38. package/design-system/components/Badge/preview.html +13 -10
  39. package/design-system/components/Badge/style.css +23 -0
  40. package/design-system/components/Banner/README.md +30 -9
  41. package/design-system/components/Banner/preview.html +1 -1
  42. package/design-system/components/Banner/style.css +19 -0
  43. package/design-system/components/Breadcrumb/README.md +58 -46
  44. package/design-system/components/Breadcrumb/preview.html +16 -16
  45. package/design-system/components/Breadcrumb/style.css +17 -0
  46. package/design-system/components/Button/README.md +113 -55
  47. package/design-system/components/Button/preview.html +98 -25
  48. package/design-system/components/Button/style.css +86 -0
  49. package/design-system/components/Card/README.md +158 -49
  50. package/design-system/components/Card/preview.html +141 -19
  51. package/design-system/components/Card/style.css +115 -0
  52. package/design-system/components/CardBoard/README.md +58 -37
  53. package/design-system/components/CardBoard/preview.html +26 -29
  54. package/design-system/components/ChatCard/README.md +115 -29
  55. package/design-system/components/ChatCard/preview.html +149 -32
  56. package/design-system/components/ChatCard/style.css +49 -0
  57. package/design-system/components/ChatShell/README.md +116 -0
  58. package/design-system/components/ChatShell/preview.html +201 -0
  59. package/design-system/components/ChatShell/style.css +86 -0
  60. package/design-system/components/ChatTurn/README.md +78 -35
  61. package/design-system/components/ChatTurn/preview.html +60 -28
  62. package/design-system/components/ChatTurn/style.css +50 -0
  63. package/design-system/components/CheckRow/README.md +141 -0
  64. package/design-system/components/CheckRow/preview.html +140 -0
  65. package/design-system/components/CheckRow/style.css +88 -0
  66. package/design-system/components/Checkbox/README.md +58 -22
  67. package/design-system/components/Checkbox/preview.html +112 -50
  68. package/design-system/components/Checkbox/style.css +45 -0
  69. package/design-system/components/Chip/README.md +78 -47
  70. package/design-system/components/Chip/preview.html +29 -4
  71. package/design-system/components/Chip/style.css +17 -0
  72. package/design-system/components/Combobox/README.md +44 -11
  73. package/design-system/components/Combobox/preview.html +35 -12
  74. package/design-system/components/Combobox/style.css +54 -0
  75. package/design-system/components/Composer/README.md +137 -35
  76. package/design-system/components/Composer/preview.html +115 -40
  77. package/design-system/components/Composer/style.css +81 -0
  78. package/design-system/components/ConfirmDialog/README.md +73 -52
  79. package/design-system/components/ConfirmDialog/preview.html +70 -26
  80. package/design-system/components/ConfirmDialog/style.css +5 -0
  81. package/design-system/components/Cover/preview.html +3 -3
  82. package/design-system/components/Cover/style.css +19 -0
  83. package/design-system/components/DateInput/README.md +77 -12
  84. package/design-system/components/DateInput/preview.html +27 -12
  85. package/design-system/components/DateInput/style.css +38 -0
  86. package/design-system/components/Dialog/README.md +112 -44
  87. package/design-system/components/Dialog/preview.html +141 -18
  88. package/design-system/components/Dialog/style.css +74 -0
  89. package/design-system/components/EmptyState/README.md +42 -12
  90. package/design-system/components/EmptyState/preview.html +11 -11
  91. package/design-system/components/EmptyState/style.css +9 -0
  92. package/design-system/components/EntryShell/README.md +73 -48
  93. package/design-system/components/EntryShell/preview.html +60 -27
  94. package/design-system/components/EntryShell/style.css +19 -0
  95. package/design-system/components/FeatureGrid/README.md +61 -39
  96. package/design-system/components/FeatureGrid/preview.html +2 -2
  97. package/design-system/components/FeatureGrid/style.css +20 -0
  98. package/design-system/components/FileUpload/README.md +33 -3
  99. package/design-system/components/FileUpload/preview.html +18 -4
  100. package/design-system/components/FileUpload/style.css +23 -0
  101. package/design-system/components/FilterBar/README.md +114 -0
  102. package/design-system/components/FilterBar/preview.html +82 -0
  103. package/design-system/components/FilterBar/style.css +22 -0
  104. package/design-system/components/Fold/README.md +84 -26
  105. package/design-system/components/Fold/preview.html +77 -34
  106. package/design-system/components/Fold/style.css +48 -0
  107. package/design-system/components/Footer/README.md +62 -39
  108. package/design-system/components/Footer/preview.html +5 -5
  109. package/design-system/components/Footer/style.css +30 -0
  110. package/design-system/components/FunnelBars/README.md +24 -3
  111. package/design-system/components/FunnelBars/preview.html +5 -5
  112. package/design-system/components/FunnelBars/style.css +13 -0
  113. package/design-system/components/GoalBars/README.md +54 -10
  114. package/design-system/components/GoalBars/preview.html +69 -28
  115. package/design-system/components/GoalBars/style.css +51 -0
  116. package/design-system/components/GoalTicks/README.md +74 -58
  117. package/design-system/components/GoalTicks/preview.html +41 -118
  118. package/design-system/components/GoalTicks/style.css +37 -0
  119. package/design-system/components/GoalTubes/README.md +29 -3
  120. package/design-system/components/GoalTubes/preview.html +6 -6
  121. package/design-system/components/GoalTubes/style.css +23 -0
  122. package/design-system/components/Heatmap/README.md +133 -0
  123. package/design-system/components/Heatmap/preview.html +168 -0
  124. package/design-system/components/Heatmap/style.css +119 -0
  125. package/design-system/components/Hero/README.md +58 -40
  126. package/design-system/components/Hero/preview.html +1 -1
  127. package/design-system/components/Hero/style.css +19 -0
  128. package/design-system/components/HoverCard/README.md +114 -0
  129. package/design-system/components/HoverCard/preview.html +107 -0
  130. package/design-system/components/HoverCard/style.css +59 -0
  131. package/design-system/components/IconButton/README.md +69 -38
  132. package/design-system/components/IconButton/preview.html +77 -43
  133. package/design-system/components/IconButton/style.css +45 -0
  134. package/design-system/components/Input/README.md +36 -11
  135. package/design-system/components/Input/preview.html +1 -1
  136. package/design-system/components/Input/style.css +23 -0
  137. package/design-system/components/KanbanBoard/README.md +93 -45
  138. package/design-system/components/KanbanBoard/preview.html +159 -43
  139. package/design-system/components/KanbanBoard/style.css +53 -0
  140. package/design-system/components/Kbd/README.md +25 -9
  141. package/design-system/components/Kbd/preview.html +6 -2
  142. package/design-system/components/Kbd/style.css +9 -0
  143. package/design-system/components/KitButton/README.md +81 -47
  144. package/design-system/components/KitButton/preview.html +35 -13
  145. package/design-system/components/KitButton/style.css +46 -0
  146. package/design-system/components/KitCard/README.md +75 -44
  147. package/design-system/components/KitCard/preview.html +18 -10
  148. package/design-system/components/KitCard/style.css +15 -0
  149. package/design-system/components/KitInput/README.md +54 -39
  150. package/design-system/components/KitInput/preview.html +7 -7
  151. package/design-system/components/KitInput/style.css +23 -0
  152. package/design-system/components/Leaderboard/README.md +76 -49
  153. package/design-system/components/Leaderboard/preview.html +61 -26
  154. package/design-system/components/Leaderboard/style.css +44 -0
  155. package/design-system/components/ListDetail/README.md +222 -0
  156. package/design-system/components/ListDetail/preview.html +213 -0
  157. package/design-system/components/ListDetail/style.css +148 -0
  158. package/design-system/components/LoadBar/README.md +79 -0
  159. package/design-system/components/LoadBar/preview.html +40 -0
  160. package/design-system/components/LoadBar/style.css +17 -0
  161. package/design-system/components/MarketingNav/README.md +76 -42
  162. package/design-system/components/MarketingNav/preview.html +37 -8
  163. package/design-system/components/MarketingNav/style.css +45 -0
  164. package/design-system/components/Matrix/README.md +129 -0
  165. package/design-system/components/Matrix/preview.html +99 -0
  166. package/design-system/components/Matrix/style.css +84 -0
  167. package/design-system/components/Menu/README.md +117 -41
  168. package/design-system/components/Menu/preview.html +85 -23
  169. package/design-system/components/Menu/style.css +61 -0
  170. package/design-system/components/Meter/README.md +39 -4
  171. package/design-system/components/Meter/preview.html +18 -1
  172. package/design-system/components/Meter/style.css +23 -0
  173. package/design-system/components/MetricTile/README.md +237 -0
  174. package/design-system/components/MetricTile/preview.html +241 -0
  175. package/design-system/components/MetricTile/style.css +129 -0
  176. package/design-system/components/Morph/README.md +106 -0
  177. package/design-system/components/Morph/preview.html +103 -0
  178. package/design-system/components/Morph/style.css +31 -0
  179. package/design-system/components/Motion/README.md +164 -0
  180. package/design-system/components/Motion/preview.html +2537 -0
  181. package/design-system/components/NumberInput/README.md +27 -8
  182. package/design-system/components/NumberInput/preview.html +21 -5
  183. package/design-system/components/NumberInput/style.css +34 -0
  184. package/design-system/components/PaceBar/README.md +75 -0
  185. package/design-system/components/PaceBar/preview.html +67 -0
  186. package/design-system/components/PaceBar/style.css +25 -0
  187. package/design-system/components/Page/README.md +57 -18
  188. package/design-system/components/Page/preview.html +15 -17
  189. package/design-system/components/Page/style.css +7 -0
  190. package/design-system/components/PageBar/README.md +90 -34
  191. package/design-system/components/PageBar/preview.html +60 -19
  192. package/design-system/components/PageBar/style.css +35 -0
  193. package/design-system/components/PageHero/README.md +87 -51
  194. package/design-system/components/PageHero/preview.html +35 -6
  195. package/design-system/components/PageHero/style.css +31 -0
  196. package/design-system/components/Pagination/README.md +70 -49
  197. package/design-system/components/Pagination/preview.html +24 -15
  198. package/design-system/components/Pagination/style.css +12 -0
  199. package/design-system/components/Panel/README.md +109 -51
  200. package/design-system/components/Panel/preview.html +118 -20
  201. package/design-system/components/Panel/style.css +51 -0
  202. package/design-system/components/PasswordInput/README.md +50 -18
  203. package/design-system/components/PasswordInput/preview.html +71 -21
  204. package/design-system/components/PasswordInput/style.css +31 -0
  205. package/design-system/components/Plate/README.md +75 -17
  206. package/design-system/components/Plate/preview.html +40 -7
  207. package/design-system/components/Plate/style.css +37 -0
  208. package/design-system/components/Popover/README.md +70 -49
  209. package/design-system/components/Popover/preview.html +44 -22
  210. package/design-system/components/Popover/style.css +41 -0
  211. package/design-system/components/PricingTable/README.md +69 -49
  212. package/design-system/components/PricingTable/preview.html +21 -21
  213. package/design-system/components/PricingTable/style.css +21 -0
  214. package/design-system/components/ProgressPetals/README.md +31 -3
  215. package/design-system/components/ProgressPetals/preview.html +14 -15
  216. package/design-system/components/ProgressPetals/style.css +27 -0
  217. package/design-system/components/README.md +151 -0
  218. package/design-system/components/Radio/README.md +40 -17
  219. package/design-system/components/Radio/preview.html +16 -1
  220. package/design-system/components/Radio/style.css +21 -0
  221. package/design-system/components/RankBar/README.md +29 -2
  222. package/design-system/components/RankBar/preview.html +14 -12
  223. package/design-system/components/RankBar/style.css +18 -0
  224. package/design-system/components/Ring/README.md +61 -11
  225. package/design-system/components/Ring/preview.html +55 -10
  226. package/design-system/components/Ring/style.css +49 -0
  227. package/design-system/components/ScoreHero/README.md +91 -0
  228. package/design-system/components/ScoreHero/preview.html +104 -0
  229. package/design-system/components/ScoreHero/style.css +32 -0
  230. package/design-system/components/Section/README.md +72 -33
  231. package/design-system/components/Section/preview.html +46 -16
  232. package/design-system/components/Section/style.css +18 -0
  233. package/design-system/components/Segmented/README.md +100 -55
  234. package/design-system/components/Segmented/preview.html +107 -26
  235. package/design-system/components/Segmented/style.css +94 -0
  236. package/design-system/components/SegmentedProgress/README.md +64 -0
  237. package/design-system/components/SegmentedProgress/preview.html +69 -0
  238. package/design-system/components/SegmentedProgress/style.css +11 -0
  239. package/design-system/components/Select/README.md +47 -12
  240. package/design-system/components/Select/preview.html +28 -2
  241. package/design-system/components/Select/style.css +22 -0
  242. package/design-system/components/ShareBar/README.md +69 -0
  243. package/design-system/components/ShareBar/preview.html +72 -0
  244. package/design-system/components/ShareBar/style.css +25 -0
  245. package/design-system/components/SideList/README.md +147 -0
  246. package/design-system/components/SideList/preview.html +139 -0
  247. package/design-system/components/SideList/style.css +94 -0
  248. package/design-system/components/Skeleton/README.md +53 -16
  249. package/design-system/components/Skeleton/preview.html +35 -23
  250. package/design-system/components/Skeleton/style.css +17 -0
  251. package/design-system/components/Slider/README.md +95 -0
  252. package/design-system/components/Slider/preview.html +49 -0
  253. package/design-system/components/Slider/style.css +13 -0
  254. package/design-system/components/Split/README.md +112 -0
  255. package/design-system/components/Split/preview.html +105 -0
  256. package/design-system/components/Split/style.css +30 -0
  257. package/design-system/components/Starter/README.md +21 -9
  258. package/design-system/components/Starter/preview.html +5 -5
  259. package/design-system/components/Stat/README.md +64 -43
  260. package/design-system/components/Stat/preview.html +3 -3
  261. package/design-system/components/Stat/style.css +15 -0
  262. package/design-system/components/StatTiles/README.md +88 -44
  263. package/design-system/components/StatTiles/preview.html +142 -71
  264. package/design-system/components/StatTiles/style.css +64 -0
  265. package/design-system/components/StatusLine/README.md +85 -0
  266. package/design-system/components/StatusLine/preview.html +49 -0
  267. package/design-system/components/StatusLine/style.css +14 -0
  268. package/design-system/components/StatusScreen/README.md +49 -35
  269. package/design-system/components/StatusScreen/preview.html +20 -5
  270. package/design-system/components/StatusScreen/style.css +9 -0
  271. package/design-system/components/StepLine/README.md +97 -0
  272. package/design-system/components/StepLine/preview.html +108 -0
  273. package/design-system/components/StepLine/style.css +62 -0
  274. package/design-system/components/Stepper/README.md +35 -13
  275. package/design-system/components/Stepper/style.css +13 -0
  276. package/design-system/components/StreakCalendar/README.md +22 -1
  277. package/design-system/components/StreakCalendar/preview.html +10 -10
  278. package/design-system/components/StreakCalendar/style.css +12 -0
  279. package/design-system/components/SuggestionChip/README.md +87 -0
  280. package/design-system/components/SuggestionChip/preview.html +42 -0
  281. package/design-system/components/SuggestionChip/style.css +20 -0
  282. package/design-system/components/Switch/README.md +44 -24
  283. package/design-system/components/Switch/preview.html +23 -8
  284. package/design-system/components/Switch/style.css +31 -0
  285. package/design-system/components/Table/README.md +129 -58
  286. package/design-system/components/Table/preview.html +106 -72
  287. package/design-system/components/Table/style.css +104 -0
  288. package/design-system/components/Tabs/README.md +71 -46
  289. package/design-system/components/Tabs/preview.html +56 -24
  290. package/design-system/components/Tabs/style.css +44 -0
  291. package/design-system/components/Testimonial/README.md +48 -32
  292. package/design-system/components/Testimonial/preview.html +14 -14
  293. package/design-system/components/Testimonial/style.css +12 -0
  294. package/design-system/components/TextArea/README.md +27 -11
  295. package/design-system/components/TextArea/preview.html +8 -2
  296. package/design-system/components/TextArea/style.css +12 -0
  297. package/design-system/components/ThemeSwitch/README.md +116 -0
  298. package/design-system/components/ThemeSwitch/preview.html +57 -0
  299. package/design-system/components/ThemeSwitch/style.css +6 -0
  300. package/design-system/components/TickRow/README.md +52 -36
  301. package/design-system/components/TickRow/preview.html +64 -41
  302. package/design-system/components/TickRow/style.css +23 -0
  303. package/design-system/components/TickStrip/README.md +95 -0
  304. package/design-system/components/TickStrip/preview.html +88 -0
  305. package/design-system/components/TickStrip/style.css +42 -0
  306. package/design-system/components/Tile/README.md +79 -18
  307. package/design-system/components/Tile/preview.html +91 -40
  308. package/design-system/components/Tile/style.css +36 -0
  309. package/design-system/components/Timeline/README.md +68 -48
  310. package/design-system/components/Timeline/preview.html +27 -15
  311. package/design-system/components/Timeline/style.css +25 -0
  312. package/design-system/components/Toast/README.md +70 -38
  313. package/design-system/components/Toast/preview.html +43 -8
  314. package/design-system/components/Toast/style.css +25 -0
  315. package/design-system/components/Tooltip/README.md +93 -35
  316. package/design-system/components/Tooltip/preview.html +69 -15
  317. package/design-system/components/Tooltip/style.css +78 -0
  318. package/design-system/components/TopBar/README.md +67 -53
  319. package/design-system/components/TopBar/preview.html +14 -27
  320. package/design-system/components/TopBar/style.css +35 -0
  321. package/design-system/components/TopicRail/README.md +108 -0
  322. package/design-system/components/TopicRail/preview.html +58 -0
  323. package/design-system/components/TopicRail/style.css +48 -0
  324. package/design-system/components/TrendBars/README.md +52 -14
  325. package/design-system/components/TrendBars/preview.html +65 -32
  326. package/design-system/components/TrendBars/style.css +25 -0
  327. package/design-system/components/TrendLine/README.md +164 -0
  328. package/design-system/components/TrendLine/preview.html +373 -0
  329. package/design-system/components/TrendLine/style.css +155 -0
  330. package/design-system/components/Well/README.md +64 -22
  331. package/design-system/components/Well/preview.html +14 -14
  332. package/design-system/components/Well/style.css +22 -0
  333. package/design-system/components/_house.css +324 -0
  334. package/design-system/components/bundle.css +4086 -744
  335. package/design-system/tokens.json +1310 -124
  336. package/dist/fello-core.css +2 -2
  337. package/dist/fello.css +6 -1369
  338. package/dist/fello.scoped.css +7 -0
  339. package/dist/index.d.ts +109 -10
  340. package/dist/index.js +781 -96
  341. package/dist/palettes.d.ts +464 -0
  342. package/dist/palettes.js +497 -0
  343. package/dist/scoped.d.ts +3 -0
  344. package/dist/scoped.js +16 -0
  345. package/dist/toast.d.ts +14 -0
  346. package/dist/toast.js +33 -29
  347. package/dist/tokens.d.ts +1686 -62
  348. package/dist/tokens.js +1668 -61
  349. package/package.json +20 -4
  350. package/scripts/check-palette.mjs +295 -0
  351. package/scripts/token-model.mjs +552 -0
  352. package/tokens/_dark.css +173 -0
  353. package/tokens/_palettes.css +46 -0
  354. package/tokens/_product.css +266 -53
  355. package/tokens/_source.hubl.css +39 -19
  356. package/tokens/design-tokens.json +319 -0
  357. package/tokens/palettes.ts +504 -0
  358. package/tokens/shadcn-compat.css +19 -19
  359. package/tokens/shadcn-compat.hsl.css +76 -0
  360. package/tokens/tokens.css +1287 -62
  361. package/tokens/tokens.md +587 -61
  362. package/tokens/tokens.root.css +1293 -62
  363. package/tokens/tokens.ts +1677 -64
@@ -0,0 +1,504 @@
1
+ /* Generated by scripts/generate-tokens.mjs. Do not edit.
2
+ Source: Figma Marketing - Design System 3.0 (MmOx1GHtbMge4lSLp1kcs8), captured 2026-06-11,
3
+ tokens/_product.css (the product layer), tokens/_dark.css (the dark theme) and tokens/_palettes.css (the palettes).
4
+ 422 tokens: 111 kit, 311 product layer; dark: 98 night, 42 navy ground. */
5
+
6
+ /** The palette contract (D15): the only tokens a palette sets, each with its group and one-line meaning. */
7
+ export const contract = [
8
+ {
9
+ "name": "--color-bg-page",
10
+ "group": "ground",
11
+ "meaning": "The page and every card's surface: the cream most words sit on."
12
+ },
13
+ {
14
+ "name": "--ws-frame-top",
15
+ "group": "ground",
16
+ "meaning": "The top of the page wash behind a glass stage, fading into the page by 640 px; in dark the frame is flat and paints it (the shell, unless a palette says)."
17
+ },
18
+ {
19
+ "name": "--ws-stage-foot",
20
+ "group": "ground",
21
+ "meaning": "The foot of a washed stage, whose gradient starts at the page (light only)."
22
+ },
23
+ {
24
+ "name": "--color-surface",
25
+ "group": "ground",
26
+ "meaning": "What is white: a marketing card, a well row under the pointer, a chat bubble, the glass of the stage."
27
+ },
28
+ {
29
+ "name": "--ws-raised",
30
+ "group": "ground",
31
+ "meaning": "What floats off the page: a menu, a popover, a tooltip, a dialog, a panel, a toast."
32
+ },
33
+ {
34
+ "name": "--ws-tray",
35
+ "group": "ground",
36
+ "meaning": "The rim and foot of a rimmed card, and the well behind rows."
37
+ },
38
+ {
39
+ "name": "--ws-edge-card",
40
+ "group": "edge",
41
+ "meaning": "A card's and an outlined control's 0.5 px edge."
42
+ },
43
+ {
44
+ "name": "--ws-edge",
45
+ "group": "edge",
46
+ "meaning": "A divider between rows; a quiet line."
47
+ },
48
+ {
49
+ "name": "--ws-edge-hover",
50
+ "group": "edge",
51
+ "meaning": "An outlined control's edge under the pointer."
52
+ },
53
+ {
54
+ "name": "--ws-well-hover",
55
+ "group": "edge",
56
+ "meaning": "A rimmed card's rim under the pointer."
57
+ },
58
+ {
59
+ "name": "--color-text-heading",
60
+ "group": "word",
61
+ "meaning": "Titles, names, figures, navy marks, and the act fill (the primary button, a thumb, a checked box)."
62
+ },
63
+ {
64
+ "name": "--color-text-body",
65
+ "group": "word",
66
+ "meaning": "Body words: a card's line, a row."
67
+ },
68
+ {
69
+ "name": "--color-text-muted",
70
+ "group": "word",
71
+ "meaning": "Meta, labels, captions."
72
+ },
73
+ {
74
+ "name": "--color-text-interactive",
75
+ "group": "word",
76
+ "meaning": "Links and words that go somewhere, a falling number, \"working\"."
77
+ },
78
+ {
79
+ "name": "--ws-on-act",
80
+ "group": "act",
81
+ "meaning": "Words and marks on the act fill."
82
+ },
83
+ {
84
+ "name": "--ws-act-hover",
85
+ "group": "act",
86
+ "meaning": "The act fill under the pointer."
87
+ },
88
+ {
89
+ "name": "--ws-word-needs",
90
+ "group": "accent",
91
+ "meaning": "Needs you, in words: the current page, something to fix (the accent's AA step)."
92
+ },
93
+ {
94
+ "name": "--ws-focus-color",
95
+ "group": "focus",
96
+ "meaning": "The 2 px focus ring, outside or inset."
97
+ },
98
+ {
99
+ "name": "--ws-word-positive",
100
+ "group": "status",
101
+ "meaning": "Good news in words."
102
+ },
103
+ {
104
+ "name": "--ws-word-alert",
105
+ "group": "status",
106
+ "meaning": "Something wrong now, in words."
107
+ },
108
+ {
109
+ "name": "--ws-chart-finished",
110
+ "group": "chart",
111
+ "meaning": "Tone 1: done, passed, positive marks."
112
+ },
113
+ {
114
+ "name": "--ws-chart-past-half",
115
+ "group": "chart",
116
+ "meaning": "Tone 2: past halfway marks."
117
+ },
118
+ {
119
+ "name": "--ws-chart-under-half",
120
+ "group": "chart",
121
+ "meaning": "Tone 3: under halfway marks and needs-you dots."
122
+ },
123
+ {
124
+ "name": "--ws-chart-navy-light",
125
+ "group": "chart",
126
+ "meaning": "Tone 4: a second navy, for a series beside the heading navy."
127
+ },
128
+ {
129
+ "name": "--ws-chart-needs-work",
130
+ "group": "chart",
131
+ "meaning": "Tone 5: needs work marks."
132
+ },
133
+ {
134
+ "name": "--ws-chart-alert",
135
+ "group": "chart",
136
+ "meaning": "Tone 6: alert marks."
137
+ },
138
+ {
139
+ "name": "--ws-rating-strong",
140
+ "group": "rating",
141
+ "meaning": "Strong: its marks."
142
+ },
143
+ {
144
+ "name": "--ws-rating-middle",
145
+ "group": "rating",
146
+ "meaning": "Getting there (the middle band): its marks."
147
+ },
148
+ {
149
+ "name": "--ws-rating-needs-work",
150
+ "group": "rating",
151
+ "meaning": "Needs work: its marks."
152
+ },
153
+ {
154
+ "name": "--ws-agent-coach",
155
+ "group": "agent",
156
+ "meaning": "The coaching assistant's mark."
157
+ },
158
+ {
159
+ "name": "--ws-agent-growth",
160
+ "group": "agent",
161
+ "meaning": "The growth assistant's mark."
162
+ },
163
+ {
164
+ "name": "--ws-agent-recruit",
165
+ "group": "agent",
166
+ "meaning": "The recruiting assistant's mark."
167
+ },
168
+ {
169
+ "name": "--ws-agent-tally",
170
+ "group": "agent",
171
+ "meaning": "The money assistant's mark, and a softer act (a figure tab's current cell, a seat meter, a hatch)."
172
+ }
173
+ ] as const;
174
+
175
+ export type ContractToken = (typeof contract)[number]['name'];
176
+
177
+ /** The built-in palettes, named for how they look: each contract token resolved to the literal it paints, in light,
178
+ * night (data-theme="dark") and the navy ground. `default` is the kit with no attribute. In CSS the same palettes
179
+ * are `data-palette="cool"` on any element; an app that injects its CSS sets these on its own container. */
180
+ export const palettes = {
181
+ "default": {
182
+ "light": {
183
+ "--color-bg-page": "#fefbf9",
184
+ "--ws-frame-top": "#ebf0f5",
185
+ "--ws-stage-foot": "#fef9f6",
186
+ "--color-surface": "#ffffff",
187
+ "--ws-raised": "#fefbf9",
188
+ "--ws-tray": "#ededed",
189
+ "--ws-edge-card": "#d3d3d3",
190
+ "--ws-edge": "#e8e8e8",
191
+ "--ws-edge-hover": "#aaa49d",
192
+ "--ws-well-hover": "#e4e2df",
193
+ "--color-text-heading": "#093555",
194
+ "--color-text-body": "#545454",
195
+ "--color-text-muted": "#666666",
196
+ "--color-text-interactive": "#495883",
197
+ "--ws-on-act": "#ffffff",
198
+ "--ws-act-hover": "#0f4a73",
199
+ "--ws-word-needs": "#a84b3c",
200
+ "--ws-focus-color": "#093555",
201
+ "--ws-word-positive": "#09717a",
202
+ "--ws-word-alert": "#b1042f",
203
+ "--ws-chart-finished": "#098486",
204
+ "--ws-chart-past-half": "#6d4fc2",
205
+ "--ws-chart-under-half": "#ff725c",
206
+ "--ws-chart-navy-light": "#2e6088",
207
+ "--ws-chart-needs-work": "#f370a4",
208
+ "--ws-chart-alert": "#b1042f",
209
+ "--ws-rating-strong": "#098486",
210
+ "--ws-rating-middle": "#495883",
211
+ "--ws-rating-needs-work": "#f370a4",
212
+ "--ws-agent-coach": "#098486",
213
+ "--ws-agent-growth": "#6d4fc2",
214
+ "--ws-agent-recruit": "#ff725c",
215
+ "--ws-agent-tally": "#2c4870"
216
+ },
217
+ "dark": {
218
+ "--color-bg-page": "#0f1922",
219
+ "--ws-frame-top": "#0a1118",
220
+ "--ws-stage-foot": "#0f1922",
221
+ "--color-surface": "#131e28",
222
+ "--ws-raised": "#16222d",
223
+ "--ws-tray": "#1e2b38",
224
+ "--ws-edge-card": "#273544",
225
+ "--ws-edge": "#1e2a36",
226
+ "--ws-edge-hover": "#8494a5",
227
+ "--ws-well-hover": "#273544",
228
+ "--color-text-heading": "#e8edf3",
229
+ "--color-text-body": "#b0bbc7",
230
+ "--color-text-muted": "#8494a5",
231
+ "--color-text-interactive": "#93a6dc",
232
+ "--ws-on-act": "#0f1922",
233
+ "--ws-act-hover": "#d7dce2",
234
+ "--ws-word-needs": "#ff8b78",
235
+ "--ws-focus-color": "#e8edf3",
236
+ "--ws-word-positive": "#4fc7be",
237
+ "--ws-word-alert": "#ff5470",
238
+ "--ws-chart-finished": "#23a8a3",
239
+ "--ws-chart-past-half": "#9a84ee",
240
+ "--ws-chart-under-half": "#ff725c",
241
+ "--ws-chart-navy-light": "#6e9cc4",
242
+ "--ws-chart-needs-work": "#f370a4",
243
+ "--ws-chart-alert": "#ff5470",
244
+ "--ws-rating-strong": "#3bb8b2",
245
+ "--ws-rating-middle": "#93a6dc",
246
+ "--ws-rating-needs-work": "#f370a4",
247
+ "--ws-agent-coach": "#3bb8b2",
248
+ "--ws-agent-growth": "#9a84ee",
249
+ "--ws-agent-recruit": "#ff725c",
250
+ "--ws-agent-tally": "#e8edf3"
251
+ },
252
+ "navy": {
253
+ "--color-bg-page": "#021a32",
254
+ "--ws-frame-top": "#021a32",
255
+ "--ws-stage-foot": "#021a32",
256
+ "--color-surface": "#0f253c",
257
+ "--ws-raised": "#162c42",
258
+ "--ws-tray": "#2a3f53",
259
+ "--ws-edge-card": "rgba(255, 255, 255, 0.18)",
260
+ "--ws-edge": "rgba(255, 255, 255, 0.1)",
261
+ "--ws-edge-hover": "#a9a9a9",
262
+ "--ws-well-hover": "#273544",
263
+ "--color-text-heading": "#ffffff",
264
+ "--color-text-body": "#d3d3d3",
265
+ "--color-text-muted": "#a9a9a9",
266
+ "--color-text-interactive": "#93a6dc",
267
+ "--ws-on-act": "#021a32",
268
+ "--ws-act-hover": "#ebedef",
269
+ "--ws-word-needs": "#ff8b78",
270
+ "--ws-focus-color": "#ffffff",
271
+ "--ws-word-positive": "#4fc7be",
272
+ "--ws-word-alert": "#ff8282",
273
+ "--ws-chart-finished": "#23a8a3",
274
+ "--ws-chart-past-half": "#9a84ee",
275
+ "--ws-chart-under-half": "#ff725c",
276
+ "--ws-chart-navy-light": "#6e9cc4",
277
+ "--ws-chart-needs-work": "#f370a4",
278
+ "--ws-chart-alert": "#ff5470",
279
+ "--ws-rating-strong": "#3bb8b2",
280
+ "--ws-rating-middle": "#93a6dc",
281
+ "--ws-rating-needs-work": "#f370a4",
282
+ "--ws-agent-coach": "#3bb8b2",
283
+ "--ws-agent-growth": "#9a84ee",
284
+ "--ws-agent-recruit": "#ff725c",
285
+ "--ws-agent-tally": "#ffffff"
286
+ }
287
+ },
288
+ "cool": {
289
+ "light": {
290
+ "--color-bg-page": "#fefbf9",
291
+ "--ws-frame-top": "#ebf0f5",
292
+ "--ws-stage-foot": "#fefbf9",
293
+ "--color-surface": "#ffffff",
294
+ "--ws-raised": "#fefbf9",
295
+ "--ws-tray": "#ededed",
296
+ "--ws-edge-card": "#d3d3d3",
297
+ "--ws-edge": "#e2e2e2",
298
+ "--ws-edge-hover": "#aaa49d",
299
+ "--ws-well-hover": "#e4e2df",
300
+ "--color-text-heading": "#093555",
301
+ "--color-text-body": "#545454",
302
+ "--color-text-muted": "#666666",
303
+ "--color-text-interactive": "#093555",
304
+ "--ws-on-act": "#ffffff",
305
+ "--ws-act-hover": "#0f4a73",
306
+ "--ws-word-needs": "#a84b3c",
307
+ "--ws-focus-color": "#093555",
308
+ "--ws-word-positive": "#09717a",
309
+ "--ws-word-alert": "#b1042f",
310
+ "--ws-chart-finished": "#098486",
311
+ "--ws-chart-past-half": "#6d4fc2",
312
+ "--ws-chart-under-half": "#ff725c",
313
+ "--ws-chart-navy-light": "#2e6088",
314
+ "--ws-chart-needs-work": "#f370a4",
315
+ "--ws-chart-alert": "#b1042f",
316
+ "--ws-rating-strong": "#098486",
317
+ "--ws-rating-middle": "#495883",
318
+ "--ws-rating-needs-work": "#f370a4",
319
+ "--ws-agent-coach": "#098486",
320
+ "--ws-agent-growth": "#6d4fc2",
321
+ "--ws-agent-recruit": "#ff725c",
322
+ "--ws-agent-tally": "#2c4870"
323
+ },
324
+ "dark": {
325
+ "--color-bg-page": "#0f1922",
326
+ "--ws-frame-top": "#0a1118",
327
+ "--ws-stage-foot": "#0f1922",
328
+ "--color-surface": "#131e28",
329
+ "--ws-raised": "#16222d",
330
+ "--ws-tray": "#1e2b38",
331
+ "--ws-edge-card": "#273544",
332
+ "--ws-edge": "#1e2a36",
333
+ "--ws-edge-hover": "#8494a5",
334
+ "--ws-well-hover": "#273544",
335
+ "--color-text-heading": "#e8edf3",
336
+ "--color-text-body": "#b0bbc7",
337
+ "--color-text-muted": "#8494a5",
338
+ "--color-text-interactive": "#e8edf3",
339
+ "--ws-on-act": "#0f1922",
340
+ "--ws-act-hover": "#d7dce2",
341
+ "--ws-word-needs": "#ff8b78",
342
+ "--ws-focus-color": "#e8edf3",
343
+ "--ws-word-positive": "#4fc7be",
344
+ "--ws-word-alert": "#ff5470",
345
+ "--ws-chart-finished": "#23a8a3",
346
+ "--ws-chart-past-half": "#9a84ee",
347
+ "--ws-chart-under-half": "#ff725c",
348
+ "--ws-chart-navy-light": "#6e9cc4",
349
+ "--ws-chart-needs-work": "#f370a4",
350
+ "--ws-chart-alert": "#ff5470",
351
+ "--ws-rating-strong": "#3bb8b2",
352
+ "--ws-rating-middle": "#e8edf3",
353
+ "--ws-rating-needs-work": "#f370a4",
354
+ "--ws-agent-coach": "#3bb8b2",
355
+ "--ws-agent-growth": "#9a84ee",
356
+ "--ws-agent-recruit": "#ff725c",
357
+ "--ws-agent-tally": "#e8edf3"
358
+ },
359
+ "navy": {
360
+ "--color-bg-page": "#021a32",
361
+ "--ws-frame-top": "#021a32",
362
+ "--ws-stage-foot": "#021a32",
363
+ "--color-surface": "#0f253c",
364
+ "--ws-raised": "#162c42",
365
+ "--ws-tray": "#2a3f53",
366
+ "--ws-edge-card": "rgba(255, 255, 255, 0.18)",
367
+ "--ws-edge": "rgba(255, 255, 255, 0.1)",
368
+ "--ws-edge-hover": "#a9a9a9",
369
+ "--ws-well-hover": "#273544",
370
+ "--color-text-heading": "#ffffff",
371
+ "--color-text-body": "#d3d3d3",
372
+ "--color-text-muted": "#a9a9a9",
373
+ "--color-text-interactive": "#ffffff",
374
+ "--ws-on-act": "#021a32",
375
+ "--ws-act-hover": "#ebedef",
376
+ "--ws-word-needs": "#ff8b78",
377
+ "--ws-focus-color": "#ffffff",
378
+ "--ws-word-positive": "#4fc7be",
379
+ "--ws-word-alert": "#ff8282",
380
+ "--ws-chart-finished": "#23a8a3",
381
+ "--ws-chart-past-half": "#9a84ee",
382
+ "--ws-chart-under-half": "#ff725c",
383
+ "--ws-chart-navy-light": "#6e9cc4",
384
+ "--ws-chart-needs-work": "#f370a4",
385
+ "--ws-chart-alert": "#ff5470",
386
+ "--ws-rating-strong": "#3bb8b2",
387
+ "--ws-rating-middle": "#ffffff",
388
+ "--ws-rating-needs-work": "#f370a4",
389
+ "--ws-agent-coach": "#3bb8b2",
390
+ "--ws-agent-growth": "#9a84ee",
391
+ "--ws-agent-recruit": "#ff725c",
392
+ "--ws-agent-tally": "#ffffff"
393
+ }
394
+ },
395
+ "warm": {
396
+ "light": {
397
+ "--color-bg-page": "#fefbf9",
398
+ "--ws-frame-top": "#fefbf9",
399
+ "--ws-stage-foot": "#fef9f6",
400
+ "--color-surface": "#ffffff",
401
+ "--ws-raised": "#fefbf9",
402
+ "--ws-tray": "#ededed",
403
+ "--ws-edge-card": "#d3d3d3",
404
+ "--ws-edge": "#e8e8e8",
405
+ "--ws-edge-hover": "#aaa49d",
406
+ "--ws-well-hover": "#e4e2df",
407
+ "--color-text-heading": "#093555",
408
+ "--color-text-body": "#545454",
409
+ "--color-text-muted": "#666666",
410
+ "--color-text-interactive": "#495883",
411
+ "--ws-on-act": "#ffffff",
412
+ "--ws-act-hover": "#0f4a73",
413
+ "--ws-word-needs": "#a84b3c",
414
+ "--ws-focus-color": "#093555",
415
+ "--ws-word-positive": "#09717a",
416
+ "--ws-word-alert": "#b1042f",
417
+ "--ws-chart-finished": "#098486",
418
+ "--ws-chart-past-half": "#6d4fc2",
419
+ "--ws-chart-under-half": "#ff725c",
420
+ "--ws-chart-navy-light": "#2e6088",
421
+ "--ws-chart-needs-work": "#f370a4",
422
+ "--ws-chart-alert": "#b1042f",
423
+ "--ws-rating-strong": "#098486",
424
+ "--ws-rating-middle": "#495883",
425
+ "--ws-rating-needs-work": "#f370a4",
426
+ "--ws-agent-coach": "#098486",
427
+ "--ws-agent-growth": "#6d4fc2",
428
+ "--ws-agent-recruit": "#ff725c",
429
+ "--ws-agent-tally": "#2c4870"
430
+ },
431
+ "dark": {
432
+ "--color-bg-page": "#0f1922",
433
+ "--ws-frame-top": "#0a1118",
434
+ "--ws-stage-foot": "#0f1922",
435
+ "--color-surface": "#131e28",
436
+ "--ws-raised": "#16222d",
437
+ "--ws-tray": "#1e2b38",
438
+ "--ws-edge-card": "#273544",
439
+ "--ws-edge": "#1e2a36",
440
+ "--ws-edge-hover": "#8494a5",
441
+ "--ws-well-hover": "#273544",
442
+ "--color-text-heading": "#e8edf3",
443
+ "--color-text-body": "#b0bbc7",
444
+ "--color-text-muted": "#8494a5",
445
+ "--color-text-interactive": "#93a6dc",
446
+ "--ws-on-act": "#0f1922",
447
+ "--ws-act-hover": "#d7dce2",
448
+ "--ws-word-needs": "#ff8b78",
449
+ "--ws-focus-color": "#e8edf3",
450
+ "--ws-word-positive": "#4fc7be",
451
+ "--ws-word-alert": "#ff5470",
452
+ "--ws-chart-finished": "#23a8a3",
453
+ "--ws-chart-past-half": "#9a84ee",
454
+ "--ws-chart-under-half": "#ff725c",
455
+ "--ws-chart-navy-light": "#6e9cc4",
456
+ "--ws-chart-needs-work": "#f370a4",
457
+ "--ws-chart-alert": "#ff5470",
458
+ "--ws-rating-strong": "#3bb8b2",
459
+ "--ws-rating-middle": "#93a6dc",
460
+ "--ws-rating-needs-work": "#f370a4",
461
+ "--ws-agent-coach": "#3bb8b2",
462
+ "--ws-agent-growth": "#9a84ee",
463
+ "--ws-agent-recruit": "#ff725c",
464
+ "--ws-agent-tally": "#e8edf3"
465
+ },
466
+ "navy": {
467
+ "--color-bg-page": "#021a32",
468
+ "--ws-frame-top": "#021a32",
469
+ "--ws-stage-foot": "#021a32",
470
+ "--color-surface": "#0f253c",
471
+ "--ws-raised": "#162c42",
472
+ "--ws-tray": "#2a3f53",
473
+ "--ws-edge-card": "rgba(255, 255, 255, 0.18)",
474
+ "--ws-edge": "rgba(255, 255, 255, 0.1)",
475
+ "--ws-edge-hover": "#a9a9a9",
476
+ "--ws-well-hover": "#273544",
477
+ "--color-text-heading": "#ffffff",
478
+ "--color-text-body": "#d3d3d3",
479
+ "--color-text-muted": "#a9a9a9",
480
+ "--color-text-interactive": "#93a6dc",
481
+ "--ws-on-act": "#021a32",
482
+ "--ws-act-hover": "#ebedef",
483
+ "--ws-word-needs": "#ff8b78",
484
+ "--ws-focus-color": "#ffffff",
485
+ "--ws-word-positive": "#4fc7be",
486
+ "--ws-word-alert": "#ff8282",
487
+ "--ws-chart-finished": "#23a8a3",
488
+ "--ws-chart-past-half": "#9a84ee",
489
+ "--ws-chart-under-half": "#ff725c",
490
+ "--ws-chart-navy-light": "#6e9cc4",
491
+ "--ws-chart-needs-work": "#f370a4",
492
+ "--ws-chart-alert": "#ff5470",
493
+ "--ws-rating-strong": "#3bb8b2",
494
+ "--ws-rating-middle": "#93a6dc",
495
+ "--ws-rating-needs-work": "#f370a4",
496
+ "--ws-agent-coach": "#3bb8b2",
497
+ "--ws-agent-growth": "#9a84ee",
498
+ "--ws-agent-recruit": "#ff725c",
499
+ "--ws-agent-tally": "#ffffff"
500
+ }
501
+ }
502
+ } as const satisfies Record<string, Record<'light' | 'dark' | 'navy', Record<ContractToken, string>>>;
503
+
504
+ export type PaletteName = keyof typeof palettes;
@@ -1,36 +1,36 @@
1
1
  /* Generated by scripts/generate-tokens.mjs. Do not edit.
2
2
  Source: Figma Marketing - Design System 3.0 (MmOx1GHtbMge4lSLp1kcs8), captured 2026-06-11,
3
- and tokens/_product.css (the product layer).
4
- 225 tokens: 106 kit, 119 product layer. */
3
+ tokens/_product.css (the product layer), tokens/_dark.css (the dark theme) and tokens/_palettes.css (the palettes).
4
+ 422 tokens: 111 kit, 311 product layer; dark: 98 night, 42 navy ground. */
5
5
 
6
6
  /* Maps shadcn's semantic names onto Fello brand tokens. Import AFTER
7
- tokens.css. Existing shadcn components then render in brand colours with
8
- no edit to the components themselves. */
9
- :root {
7
+ tokens.css (or fello.css). Existing shadcn components then render in brand
8
+ colours with no edit to the components themselves, and follow the kit's dark
9
+ theme (data-theme="dark") because every name points at a kit token.
10
+ For a host that writes hsl(var(--primary)) (Tailwind v3 shadcn), import
11
+ shadcn-compat.hsl.css instead.
12
+ They are declared again on every element that can carry a palette or a theme, so a shadcn component inside a
13
+ container with its own palette takes that palette's colours. */
14
+ :root, [data-palette], [data-theme], .fello {
10
15
  --background: var(--color-bg-page);
11
16
  --foreground: var(--color-text-heading);
12
-
13
- --card: var(--color-white);
17
+ --card: var(--color-surface);
14
18
  --card-foreground: var(--color-text-heading);
15
- --popover: var(--color-dropdown-bg);
19
+ --popover: var(--ws-raised);
16
20
  --popover-foreground: var(--color-text-heading);
17
-
18
- --primary: var(--color-brand-salmon);
19
- --primary-foreground: var(--color-white);
20
- --secondary: var(--color-gray-1);
21
+ --primary: var(--color-text-heading);
22
+ --primary-foreground: var(--ws-on-act);
23
+ --secondary: var(--ws-surface-sunk);
21
24
  --secondary-foreground: var(--color-text-heading);
22
-
23
- --muted: var(--color-gray-1);
25
+ --muted: var(--ws-surface-sunk);
24
26
  --muted-foreground: var(--color-text-muted);
25
- --accent: var(--color-gray-1);
27
+ --accent: var(--ws-surface-sunk);
26
28
  --accent-foreground: var(--color-text-heading);
27
-
28
29
  --destructive: var(--color-feedback-error);
29
30
  --destructive-foreground: var(--color-white);
30
-
31
31
  --border: var(--color-border-default);
32
32
  --input: var(--color-border-default);
33
- --ring: var(--color-brand-salmon);
33
+ --ring: var(--ws-focus-color);
34
34
 
35
- --radius: var(--radius-lg);
35
+ --radius: var(--ws-radius-card);
36
36
  }
@@ -0,0 +1,76 @@
1
+ /* Generated by scripts/generate-tokens.mjs. Do not edit.
2
+ Source: Figma Marketing - Design System 3.0 (MmOx1GHtbMge4lSLp1kcs8), captured 2026-06-11,
3
+ tokens/_product.css (the product layer), tokens/_dark.css (the dark theme) and tokens/_palettes.css (the palettes).
4
+ 422 tokens: 111 kit, 311 product layer; dark: 98 night, 42 navy ground. */
5
+
6
+ /* shadcn's names as bare HSL channels, for a host whose Tailwind config writes
7
+ hsl(var(--primary)) (Tailwind v3 shadcn, Campfire). Literal values, so the dark
8
+ theme is written out too: data-theme="dark" (and "system" on a dark OS) as the
9
+ kit, and shadcn's own .dark class. The navy ground and the palettes are not here
10
+ (literal channels cannot follow them): a host that wants them reads shadcn-compat.css. */
11
+ :root, [data-theme="light"] {
12
+ --background: 24 71.4% 98.6%; /* --color-bg-page #fefbf9 */
13
+ --foreground: 205 80.9% 18.4%; /* --color-text-heading #093555 */
14
+ --card: 0 0% 100%; /* --color-surface #ffffff */
15
+ --card-foreground: 205 80.9% 18.4%; /* --color-text-heading #093555 */
16
+ --popover: 24 71.4% 98.6%; /* --ws-raised #fefbf9 */
17
+ --popover-foreground: 205 80.9% 18.4%; /* --color-text-heading #093555 */
18
+ --primary: 205 80.9% 18.4%; /* --color-text-heading #093555 */
19
+ --primary-foreground: 0 0% 100%; /* --ws-on-act #ffffff */
20
+ --secondary: 30 14.3% 94.5%; /* --ws-surface-sunk #f3f1ef */
21
+ --secondary-foreground: 205 80.9% 18.4%; /* --color-text-heading #093555 */
22
+ --muted: 30 14.3% 94.5%; /* --ws-surface-sunk #f3f1ef */
23
+ --muted-foreground: 0 0% 40%; /* --color-text-muted #666666 */
24
+ --accent: 30 14.3% 94.5%; /* --ws-surface-sunk #f3f1ef */
25
+ --accent-foreground: 205 80.9% 18.4%; /* --color-text-heading #093555 */
26
+ --destructive: 10 83.2% 62.7%; /* --color-feedback-error #ef6b51 */
27
+ --destructive-foreground: 0 0% 100%; /* --color-white #ffffff */
28
+ --border: 0 0% 91%; /* --color-border-default #e8e8e8 */
29
+ --input: 0 0% 91%; /* --color-border-default #e8e8e8 */
30
+ --ring: 205 80.9% 18.4%; /* --ws-focus-color #093555 */
31
+ --radius: 8px;
32
+ }
33
+ .dark, [data-theme="dark"] {
34
+ --background: 208 38.8% 9.6%; /* --color-bg-page #0f1922 */
35
+ --foreground: 213 31.4% 93.1%; /* --color-text-heading #e8edf3 */
36
+ --card: 209 35.6% 11.6%; /* --color-surface #131e28 */
37
+ --card-foreground: 213 31.4% 93.1%; /* --color-text-heading #e8edf3 */
38
+ --popover: 209 34.3% 13.1%; /* --ws-raised #16222d */
39
+ --popover-foreground: 213 31.4% 93.1%; /* --color-text-heading #e8edf3 */
40
+ --primary: 213 31.4% 93.1%; /* --color-text-heading #e8edf3 */
41
+ --primary-foreground: 208 38.8% 9.6%; /* --ws-on-act #0f1922 */
42
+ --secondary: 209 33.3% 13.5%; /* --ws-surface-sunk #17232e */
43
+ --secondary-foreground: 213 31.4% 93.1%; /* --color-text-heading #e8edf3 */
44
+ --muted: 209 33.3% 13.5%; /* --ws-surface-sunk #17232e */
45
+ --muted-foreground: 211 15.5% 58.2%; /* --color-text-muted #8494a5 */
46
+ --accent: 209 33.3% 13.5%; /* --ws-surface-sunk #17232e */
47
+ --accent-foreground: 213 31.4% 93.1%; /* --color-text-heading #e8edf3 */
48
+ --destructive: 10 100% 69.4%; /* --color-feedback-error #ff7d63 */
49
+ --destructive-foreground: 0 0% 100%; /* --color-white #ffffff */
50
+ --border: 210 28.6% 16.5%; /* --color-border-default #1e2a36 */
51
+ --input: 210 28.6% 16.5%; /* --color-border-default #1e2a36 */
52
+ --ring: 213 31.4% 93.1%; /* --ws-focus-color #e8edf3 */
53
+ }
54
+ @media (prefers-color-scheme: dark) {
55
+ [data-theme="system"] {
56
+ --background: 208 38.8% 9.6%; /* --color-bg-page #0f1922 */
57
+ --foreground: 213 31.4% 93.1%; /* --color-text-heading #e8edf3 */
58
+ --card: 209 35.6% 11.6%; /* --color-surface #131e28 */
59
+ --card-foreground: 213 31.4% 93.1%; /* --color-text-heading #e8edf3 */
60
+ --popover: 209 34.3% 13.1%; /* --ws-raised #16222d */
61
+ --popover-foreground: 213 31.4% 93.1%; /* --color-text-heading #e8edf3 */
62
+ --primary: 213 31.4% 93.1%; /* --color-text-heading #e8edf3 */
63
+ --primary-foreground: 208 38.8% 9.6%; /* --ws-on-act #0f1922 */
64
+ --secondary: 209 33.3% 13.5%; /* --ws-surface-sunk #17232e */
65
+ --secondary-foreground: 213 31.4% 93.1%; /* --color-text-heading #e8edf3 */
66
+ --muted: 209 33.3% 13.5%; /* --ws-surface-sunk #17232e */
67
+ --muted-foreground: 211 15.5% 58.2%; /* --color-text-muted #8494a5 */
68
+ --accent: 209 33.3% 13.5%; /* --ws-surface-sunk #17232e */
69
+ --accent-foreground: 213 31.4% 93.1%; /* --color-text-heading #e8edf3 */
70
+ --destructive: 10 100% 69.4%; /* --color-feedback-error #ff7d63 */
71
+ --destructive-foreground: 0 0% 100%; /* --color-white #ffffff */
72
+ --border: 210 28.6% 16.5%; /* --color-border-default #1e2a36 */
73
+ --input: 210 28.6% 16.5%; /* --color-border-default #1e2a36 */
74
+ --ring: 213 31.4% 93.1%; /* --ws-focus-color #e8edf3 */
75
+ }
76
+ }