@aexol/spectral 0.7.0 โ†’ 0.7.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 (459) hide show
  1. package/dist/agent/index.js +76 -301
  2. package/dist/cli.js +11 -0
  3. package/dist/designer/data/systems/agentic/DESIGN.md +71 -0
  4. package/dist/designer/data/systems/agentic/components.html +154 -0
  5. package/dist/designer/data/systems/agentic/tokens.css +63 -0
  6. package/dist/designer/data/systems/airbnb/DESIGN.md +393 -0
  7. package/dist/designer/data/systems/airbnb/components.html +1373 -0
  8. package/dist/designer/data/systems/airbnb/tokens.css +261 -0
  9. package/dist/designer/data/systems/airtable/DESIGN.md +92 -0
  10. package/dist/designer/data/systems/airtable/components.html +489 -0
  11. package/dist/designer/data/systems/airtable/tokens.css +261 -0
  12. package/dist/designer/data/systems/ant/DESIGN.md +71 -0
  13. package/dist/designer/data/systems/ant/components.html +154 -0
  14. package/dist/designer/data/systems/ant/tokens.css +63 -0
  15. package/dist/designer/data/systems/apple/DESIGN.md +250 -0
  16. package/dist/designer/data/systems/apple/components.html +749 -0
  17. package/dist/designer/data/systems/apple/tokens.css +286 -0
  18. package/dist/designer/data/systems/application/DESIGN.md +71 -0
  19. package/dist/designer/data/systems/application/components.html +154 -0
  20. package/dist/designer/data/systems/application/tokens.css +63 -0
  21. package/dist/designer/data/systems/arc/DESIGN.md +152 -0
  22. package/dist/designer/data/systems/arc/components.html +432 -0
  23. package/dist/designer/data/systems/arc/tokens.css +137 -0
  24. package/dist/designer/data/systems/artistic/DESIGN.md +71 -0
  25. package/dist/designer/data/systems/artistic/components.html +136 -0
  26. package/dist/designer/data/systems/artistic/tokens.css +63 -0
  27. package/dist/designer/data/systems/atelier-zero/DESIGN.md +316 -0
  28. package/dist/designer/data/systems/atelier-zero/components.html +136 -0
  29. package/dist/designer/data/systems/atelier-zero/tokens.css +63 -0
  30. package/dist/designer/data/systems/bento/DESIGN.md +71 -0
  31. package/dist/designer/data/systems/bento/components.html +136 -0
  32. package/dist/designer/data/systems/bento/tokens.css +63 -0
  33. package/dist/designer/data/systems/binance/DESIGN.md +348 -0
  34. package/dist/designer/data/systems/binance/components.html +550 -0
  35. package/dist/designer/data/systems/binance/tokens.css +255 -0
  36. package/dist/designer/data/systems/bmw/DESIGN.md +183 -0
  37. package/dist/designer/data/systems/bmw/components.html +551 -0
  38. package/dist/designer/data/systems/bmw/tokens.css +179 -0
  39. package/dist/designer/data/systems/bmw-m/DESIGN.md +246 -0
  40. package/dist/designer/data/systems/bmw-m/components.html +342 -0
  41. package/dist/designer/data/systems/bmw-m/tokens.css +64 -0
  42. package/dist/designer/data/systems/bold/DESIGN.md +71 -0
  43. package/dist/designer/data/systems/bold/components.html +136 -0
  44. package/dist/designer/data/systems/bold/tokens.css +63 -0
  45. package/dist/designer/data/systems/brutalism/DESIGN.md +71 -0
  46. package/dist/designer/data/systems/brutalism/components.html +154 -0
  47. package/dist/designer/data/systems/brutalism/tokens.css +63 -0
  48. package/dist/designer/data/systems/bugatti/DESIGN.md +271 -0
  49. package/dist/designer/data/systems/bugatti/components.html +342 -0
  50. package/dist/designer/data/systems/bugatti/tokens.css +64 -0
  51. package/dist/designer/data/systems/cafe/DESIGN.md +71 -0
  52. package/dist/designer/data/systems/cafe/components.html +136 -0
  53. package/dist/designer/data/systems/cafe/tokens.css +63 -0
  54. package/dist/designer/data/systems/cal/DESIGN.md +262 -0
  55. package/dist/designer/data/systems/cal/components.html +376 -0
  56. package/dist/designer/data/systems/cal/tokens.css +265 -0
  57. package/dist/designer/data/systems/canva/DESIGN.md +157 -0
  58. package/dist/designer/data/systems/canva/components.html +461 -0
  59. package/dist/designer/data/systems/canva/tokens.css +147 -0
  60. package/dist/designer/data/systems/cisco/DESIGN.md +201 -0
  61. package/dist/designer/data/systems/cisco/components.html +342 -0
  62. package/dist/designer/data/systems/cisco/tokens.css +64 -0
  63. package/dist/designer/data/systems/claude/DESIGN.md +315 -0
  64. package/dist/designer/data/systems/claude/components.html +483 -0
  65. package/dist/designer/data/systems/claude/tokens.css +130 -0
  66. package/dist/designer/data/systems/clay/DESIGN.md +307 -0
  67. package/dist/designer/data/systems/clay/components.html +136 -0
  68. package/dist/designer/data/systems/clay/tokens.css +63 -0
  69. package/dist/designer/data/systems/claymorphism/DESIGN.md +71 -0
  70. package/dist/designer/data/systems/claymorphism/components.html +136 -0
  71. package/dist/designer/data/systems/claymorphism/tokens.css +63 -0
  72. package/dist/designer/data/systems/clean/DESIGN.md +71 -0
  73. package/dist/designer/data/systems/clean/components.html +136 -0
  74. package/dist/designer/data/systems/clean/tokens.css +63 -0
  75. package/dist/designer/data/systems/clickhouse/DESIGN.md +284 -0
  76. package/dist/designer/data/systems/clickhouse/components.html +506 -0
  77. package/dist/designer/data/systems/clickhouse/tokens.css +135 -0
  78. package/dist/designer/data/systems/cohere/DESIGN.md +269 -0
  79. package/dist/designer/data/systems/cohere/components.html +353 -0
  80. package/dist/designer/data/systems/cohere/tokens.css +126 -0
  81. package/dist/designer/data/systems/coinbase/DESIGN.md +132 -0
  82. package/dist/designer/data/systems/coinbase/components.html +501 -0
  83. package/dist/designer/data/systems/coinbase/tokens.css +257 -0
  84. package/dist/designer/data/systems/colorful/DESIGN.md +71 -0
  85. package/dist/designer/data/systems/colorful/components.html +136 -0
  86. package/dist/designer/data/systems/colorful/tokens.css +63 -0
  87. package/dist/designer/data/systems/composio/DESIGN.md +310 -0
  88. package/dist/designer/data/systems/composio/components.html +342 -0
  89. package/dist/designer/data/systems/composio/tokens.css +64 -0
  90. package/dist/designer/data/systems/contemporary/DESIGN.md +71 -0
  91. package/dist/designer/data/systems/contemporary/components.html +136 -0
  92. package/dist/designer/data/systems/contemporary/tokens.css +63 -0
  93. package/dist/designer/data/systems/corporate/DESIGN.md +71 -0
  94. package/dist/designer/data/systems/corporate/components.html +136 -0
  95. package/dist/designer/data/systems/corporate/tokens.css +63 -0
  96. package/dist/designer/data/systems/cosmic/DESIGN.md +71 -0
  97. package/dist/designer/data/systems/cosmic/components.html +136 -0
  98. package/dist/designer/data/systems/cosmic/tokens.css +63 -0
  99. package/dist/designer/data/systems/creative/DESIGN.md +71 -0
  100. package/dist/designer/data/systems/creative/components.html +136 -0
  101. package/dist/designer/data/systems/creative/tokens.css +63 -0
  102. package/dist/designer/data/systems/cursor/DESIGN.md +312 -0
  103. package/dist/designer/data/systems/cursor/components.html +654 -0
  104. package/dist/designer/data/systems/cursor/tokens.css +218 -0
  105. package/dist/designer/data/systems/dashboard/DESIGN.md +71 -0
  106. package/dist/designer/data/systems/dashboard/components.html +154 -0
  107. package/dist/designer/data/systems/dashboard/tokens.css +63 -0
  108. package/dist/designer/data/systems/default/DESIGN.md +62 -0
  109. package/dist/designer/data/systems/default/components.html +523 -0
  110. package/dist/designer/data/systems/default/tokens.css +200 -0
  111. package/dist/designer/data/systems/discord/DESIGN.md +162 -0
  112. package/dist/designer/data/systems/discord/components.html +359 -0
  113. package/dist/designer/data/systems/discord/tokens.css +125 -0
  114. package/dist/designer/data/systems/dithered/DESIGN.md +71 -0
  115. package/dist/designer/data/systems/dithered/components.html +136 -0
  116. package/dist/designer/data/systems/dithered/tokens.css +63 -0
  117. package/dist/designer/data/systems/doodle/DESIGN.md +71 -0
  118. package/dist/designer/data/systems/doodle/components.html +136 -0
  119. package/dist/designer/data/systems/doodle/tokens.css +63 -0
  120. package/dist/designer/data/systems/dramatic/DESIGN.md +71 -0
  121. package/dist/designer/data/systems/dramatic/components.html +136 -0
  122. package/dist/designer/data/systems/dramatic/tokens.css +63 -0
  123. package/dist/designer/data/systems/duolingo/DESIGN.md +154 -0
  124. package/dist/designer/data/systems/duolingo/components.html +532 -0
  125. package/dist/designer/data/systems/duolingo/tokens.css +130 -0
  126. package/dist/designer/data/systems/editorial/DESIGN.md +71 -0
  127. package/dist/designer/data/systems/editorial/components.html +154 -0
  128. package/dist/designer/data/systems/editorial/tokens.css +63 -0
  129. package/dist/designer/data/systems/elegant/DESIGN.md +71 -0
  130. package/dist/designer/data/systems/elegant/components.html +136 -0
  131. package/dist/designer/data/systems/elegant/tokens.css +63 -0
  132. package/dist/designer/data/systems/elevenlabs/DESIGN.md +268 -0
  133. package/dist/designer/data/systems/elevenlabs/components.html +342 -0
  134. package/dist/designer/data/systems/elevenlabs/tokens.css +127 -0
  135. package/dist/designer/data/systems/energetic/DESIGN.md +72 -0
  136. package/dist/designer/data/systems/energetic/components.html +136 -0
  137. package/dist/designer/data/systems/energetic/tokens.css +63 -0
  138. package/dist/designer/data/systems/enterprise/DESIGN.md +71 -0
  139. package/dist/designer/data/systems/enterprise/components.html +154 -0
  140. package/dist/designer/data/systems/enterprise/tokens.css +63 -0
  141. package/dist/designer/data/systems/expo/DESIGN.md +284 -0
  142. package/dist/designer/data/systems/expo/components.html +342 -0
  143. package/dist/designer/data/systems/expo/tokens.css +64 -0
  144. package/dist/designer/data/systems/expressive/DESIGN.md +71 -0
  145. package/dist/designer/data/systems/expressive/components.html +136 -0
  146. package/dist/designer/data/systems/expressive/tokens.css +63 -0
  147. package/dist/designer/data/systems/fantasy/DESIGN.md +71 -0
  148. package/dist/designer/data/systems/fantasy/components.html +136 -0
  149. package/dist/designer/data/systems/fantasy/tokens.css +63 -0
  150. package/dist/designer/data/systems/ferrari/DESIGN.md +317 -0
  151. package/dist/designer/data/systems/ferrari/components.html +342 -0
  152. package/dist/designer/data/systems/ferrari/tokens.css +64 -0
  153. package/dist/designer/data/systems/figma/DESIGN.md +223 -0
  154. package/dist/designer/data/systems/figma/components.html +344 -0
  155. package/dist/designer/data/systems/figma/tokens.css +126 -0
  156. package/dist/designer/data/systems/flat/DESIGN.md +71 -0
  157. package/dist/designer/data/systems/flat/components.html +136 -0
  158. package/dist/designer/data/systems/flat/tokens.css +63 -0
  159. package/dist/designer/data/systems/framer/DESIGN.md +249 -0
  160. package/dist/designer/data/systems/framer/components.html +438 -0
  161. package/dist/designer/data/systems/framer/tokens.css +238 -0
  162. package/dist/designer/data/systems/friendly/DESIGN.md +71 -0
  163. package/dist/designer/data/systems/friendly/components.html +136 -0
  164. package/dist/designer/data/systems/friendly/tokens.css +63 -0
  165. package/dist/designer/data/systems/futuristic/DESIGN.md +71 -0
  166. package/dist/designer/data/systems/futuristic/components.html +136 -0
  167. package/dist/designer/data/systems/futuristic/tokens.css +63 -0
  168. package/dist/designer/data/systems/github/DESIGN.md +155 -0
  169. package/dist/designer/data/systems/github/components.html +383 -0
  170. package/dist/designer/data/systems/github/tokens.css +125 -0
  171. package/dist/designer/data/systems/glassmorphism/DESIGN.md +71 -0
  172. package/dist/designer/data/systems/glassmorphism/components.html +154 -0
  173. package/dist/designer/data/systems/glassmorphism/tokens.css +63 -0
  174. package/dist/designer/data/systems/gradient/DESIGN.md +71 -0
  175. package/dist/designer/data/systems/gradient/components.html +154 -0
  176. package/dist/designer/data/systems/gradient/tokens.css +63 -0
  177. package/dist/designer/data/systems/hashicorp/DESIGN.md +281 -0
  178. package/dist/designer/data/systems/hashicorp/components.html +502 -0
  179. package/dist/designer/data/systems/hashicorp/tokens.css +272 -0
  180. package/dist/designer/data/systems/hud/DESIGN.md +173 -0
  181. package/dist/designer/data/systems/hud/components.html +136 -0
  182. package/dist/designer/data/systems/hud/tokens.css +63 -0
  183. package/dist/designer/data/systems/huggingface/DESIGN.md +149 -0
  184. package/dist/designer/data/systems/huggingface/components.html +346 -0
  185. package/dist/designer/data/systems/huggingface/tokens.css +125 -0
  186. package/dist/designer/data/systems/ibm/DESIGN.md +335 -0
  187. package/dist/designer/data/systems/ibm/components.html +342 -0
  188. package/dist/designer/data/systems/ibm/tokens.css +64 -0
  189. package/dist/designer/data/systems/intercom/DESIGN.md +149 -0
  190. package/dist/designer/data/systems/intercom/components.html +557 -0
  191. package/dist/designer/data/systems/intercom/tokens.css +150 -0
  192. package/dist/designer/data/systems/kami/DESIGN.md +410 -0
  193. package/dist/designer/data/systems/kami/components.html +601 -0
  194. package/dist/designer/data/systems/kami/tokens.css +272 -0
  195. package/dist/designer/data/systems/kraken/DESIGN.md +128 -0
  196. package/dist/designer/data/systems/kraken/components.html +342 -0
  197. package/dist/designer/data/systems/kraken/tokens.css +64 -0
  198. package/dist/designer/data/systems/lamborghini/DESIGN.md +291 -0
  199. package/dist/designer/data/systems/lamborghini/components.html +342 -0
  200. package/dist/designer/data/systems/lamborghini/tokens.css +64 -0
  201. package/dist/designer/data/systems/levels/DESIGN.md +71 -0
  202. package/dist/designer/data/systems/levels/components.html +154 -0
  203. package/dist/designer/data/systems/levels/tokens.css +63 -0
  204. package/dist/designer/data/systems/linear-app/DESIGN.md +370 -0
  205. package/dist/designer/data/systems/linear-app/components.html +370 -0
  206. package/dist/designer/data/systems/linear-app/tokens.css +130 -0
  207. package/dist/designer/data/systems/lingo/DESIGN.md +71 -0
  208. package/dist/designer/data/systems/lingo/components.html +154 -0
  209. package/dist/designer/data/systems/lingo/tokens.css +63 -0
  210. package/dist/designer/data/systems/loom/DESIGN.md +201 -0
  211. package/dist/designer/data/systems/loom/components.html +446 -0
  212. package/dist/designer/data/systems/loom/tokens.css +138 -0
  213. package/dist/designer/data/systems/lovable/DESIGN.md +301 -0
  214. package/dist/designer/data/systems/lovable/components.html +441 -0
  215. package/dist/designer/data/systems/lovable/tokens.css +258 -0
  216. package/dist/designer/data/systems/luxury/DESIGN.md +71 -0
  217. package/dist/designer/data/systems/luxury/components.html +154 -0
  218. package/dist/designer/data/systems/luxury/tokens.css +63 -0
  219. package/dist/designer/data/systems/mastercard/DESIGN.md +368 -0
  220. package/dist/designer/data/systems/mastercard/components.html +342 -0
  221. package/dist/designer/data/systems/mastercard/tokens.css +64 -0
  222. package/dist/designer/data/systems/material/DESIGN.md +71 -0
  223. package/dist/designer/data/systems/material/components.html +154 -0
  224. package/dist/designer/data/systems/material/tokens.css +63 -0
  225. package/dist/designer/data/systems/meta/DESIGN.md +369 -0
  226. package/dist/designer/data/systems/meta/components.html +398 -0
  227. package/dist/designer/data/systems/meta/tokens.css +263 -0
  228. package/dist/designer/data/systems/minimal/DESIGN.md +71 -0
  229. package/dist/designer/data/systems/minimal/components.html +154 -0
  230. package/dist/designer/data/systems/minimal/tokens.css +63 -0
  231. package/dist/designer/data/systems/minimax/DESIGN.md +260 -0
  232. package/dist/designer/data/systems/minimax/components.html +590 -0
  233. package/dist/designer/data/systems/minimax/tokens.css +148 -0
  234. package/dist/designer/data/systems/mintlify/DESIGN.md +329 -0
  235. package/dist/designer/data/systems/mintlify/components.html +737 -0
  236. package/dist/designer/data/systems/mintlify/tokens.css +256 -0
  237. package/dist/designer/data/systems/miro/DESIGN.md +111 -0
  238. package/dist/designer/data/systems/miro/components.html +342 -0
  239. package/dist/designer/data/systems/miro/tokens.css +64 -0
  240. package/dist/designer/data/systems/mission-control/DESIGN.md +474 -0
  241. package/dist/designer/data/systems/mission-control/components.html +136 -0
  242. package/dist/designer/data/systems/mission-control/tokens.css +63 -0
  243. package/dist/designer/data/systems/mistral-ai/DESIGN.md +264 -0
  244. package/dist/designer/data/systems/mistral-ai/components.html +338 -0
  245. package/dist/designer/data/systems/mistral-ai/tokens.css +125 -0
  246. package/dist/designer/data/systems/modern/DESIGN.md +71 -0
  247. package/dist/designer/data/systems/modern/components.html +154 -0
  248. package/dist/designer/data/systems/modern/tokens.css +63 -0
  249. package/dist/designer/data/systems/mongodb/DESIGN.md +269 -0
  250. package/dist/designer/data/systems/mongodb/components.html +462 -0
  251. package/dist/designer/data/systems/mongodb/tokens.css +176 -0
  252. package/dist/designer/data/systems/mono/DESIGN.md +71 -0
  253. package/dist/designer/data/systems/mono/components.html +136 -0
  254. package/dist/designer/data/systems/mono/tokens.css +63 -0
  255. package/dist/designer/data/systems/neobrutalism/DESIGN.md +71 -0
  256. package/dist/designer/data/systems/neobrutalism/components.html +136 -0
  257. package/dist/designer/data/systems/neobrutalism/tokens.css +63 -0
  258. package/dist/designer/data/systems/neon/DESIGN.md +71 -0
  259. package/dist/designer/data/systems/neon/components.html +136 -0
  260. package/dist/designer/data/systems/neon/tokens.css +63 -0
  261. package/dist/designer/data/systems/neumorphism/DESIGN.md +71 -0
  262. package/dist/designer/data/systems/neumorphism/components.html +136 -0
  263. package/dist/designer/data/systems/neumorphism/tokens.css +63 -0
  264. package/dist/designer/data/systems/nike/DESIGN.md +366 -0
  265. package/dist/designer/data/systems/nike/components.html +512 -0
  266. package/dist/designer/data/systems/nike/tokens.css +304 -0
  267. package/dist/designer/data/systems/notion/DESIGN.md +312 -0
  268. package/dist/designer/data/systems/notion/components.html +413 -0
  269. package/dist/designer/data/systems/notion/tokens.css +130 -0
  270. package/dist/designer/data/systems/nvidia/DESIGN.md +296 -0
  271. package/dist/designer/data/systems/nvidia/components.html +414 -0
  272. package/dist/designer/data/systems/nvidia/tokens.css +133 -0
  273. package/dist/designer/data/systems/ollama/DESIGN.md +270 -0
  274. package/dist/designer/data/systems/ollama/components.html +700 -0
  275. package/dist/designer/data/systems/ollama/tokens.css +242 -0
  276. package/dist/designer/data/systems/openai/DESIGN.md +140 -0
  277. package/dist/designer/data/systems/openai/components.html +382 -0
  278. package/dist/designer/data/systems/openai/tokens.css +133 -0
  279. package/dist/designer/data/systems/opencode-ai/DESIGN.md +284 -0
  280. package/dist/designer/data/systems/opencode-ai/components.html +389 -0
  281. package/dist/designer/data/systems/opencode-ai/tokens.css +126 -0
  282. package/dist/designer/data/systems/pacman/DESIGN.md +71 -0
  283. package/dist/designer/data/systems/pacman/components.html +342 -0
  284. package/dist/designer/data/systems/pacman/tokens.css +64 -0
  285. package/dist/designer/data/systems/paper/DESIGN.md +71 -0
  286. package/dist/designer/data/systems/paper/components.html +136 -0
  287. package/dist/designer/data/systems/paper/tokens.css +63 -0
  288. package/dist/designer/data/systems/perplexity/DESIGN.md +286 -0
  289. package/dist/designer/data/systems/perplexity/components.html +455 -0
  290. package/dist/designer/data/systems/perplexity/tokens.css +151 -0
  291. package/dist/designer/data/systems/perspective/DESIGN.md +71 -0
  292. package/dist/designer/data/systems/perspective/components.html +136 -0
  293. package/dist/designer/data/systems/perspective/tokens.css +63 -0
  294. package/dist/designer/data/systems/pinterest/DESIGN.md +233 -0
  295. package/dist/designer/data/systems/pinterest/components.html +865 -0
  296. package/dist/designer/data/systems/pinterest/tokens.css +262 -0
  297. package/dist/designer/data/systems/playstation/DESIGN.md +367 -0
  298. package/dist/designer/data/systems/playstation/components.html +414 -0
  299. package/dist/designer/data/systems/playstation/tokens.css +150 -0
  300. package/dist/designer/data/systems/posthog/DESIGN.md +259 -0
  301. package/dist/designer/data/systems/posthog/components.html +827 -0
  302. package/dist/designer/data/systems/posthog/tokens.css +272 -0
  303. package/dist/designer/data/systems/premium/DESIGN.md +71 -0
  304. package/dist/designer/data/systems/premium/components.html +154 -0
  305. package/dist/designer/data/systems/premium/tokens.css +63 -0
  306. package/dist/designer/data/systems/professional/DESIGN.md +71 -0
  307. package/dist/designer/data/systems/professional/components.html +136 -0
  308. package/dist/designer/data/systems/professional/tokens.css +63 -0
  309. package/dist/designer/data/systems/publication/DESIGN.md +71 -0
  310. package/dist/designer/data/systems/publication/components.html +154 -0
  311. package/dist/designer/data/systems/publication/tokens.css +63 -0
  312. package/dist/designer/data/systems/raycast/DESIGN.md +271 -0
  313. package/dist/designer/data/systems/raycast/components.html +507 -0
  314. package/dist/designer/data/systems/raycast/tokens.css +143 -0
  315. package/dist/designer/data/systems/refined/DESIGN.md +71 -0
  316. package/dist/designer/data/systems/refined/components.html +136 -0
  317. package/dist/designer/data/systems/refined/tokens.css +63 -0
  318. package/dist/designer/data/systems/renault/DESIGN.md +314 -0
  319. package/dist/designer/data/systems/renault/components.html +154 -0
  320. package/dist/designer/data/systems/renault/tokens.css +63 -0
  321. package/dist/designer/data/systems/replicate/DESIGN.md +264 -0
  322. package/dist/designer/data/systems/replicate/components.html +340 -0
  323. package/dist/designer/data/systems/replicate/tokens.css +125 -0
  324. package/dist/designer/data/systems/resend/DESIGN.md +306 -0
  325. package/dist/designer/data/systems/resend/components.html +839 -0
  326. package/dist/designer/data/systems/resend/tokens.css +353 -0
  327. package/dist/designer/data/systems/retro/DESIGN.md +71 -0
  328. package/dist/designer/data/systems/retro/components.html +136 -0
  329. package/dist/designer/data/systems/retro/tokens.css +63 -0
  330. package/dist/designer/data/systems/revolut/DESIGN.md +188 -0
  331. package/dist/designer/data/systems/revolut/components.html +342 -0
  332. package/dist/designer/data/systems/revolut/tokens.css +64 -0
  333. package/dist/designer/data/systems/runwayml/DESIGN.md +247 -0
  334. package/dist/designer/data/systems/runwayml/components.html +638 -0
  335. package/dist/designer/data/systems/runwayml/tokens.css +204 -0
  336. package/dist/designer/data/systems/sanity/DESIGN.md +360 -0
  337. package/dist/designer/data/systems/sanity/components.html +342 -0
  338. package/dist/designer/data/systems/sanity/tokens.css +64 -0
  339. package/dist/designer/data/systems/sentry/DESIGN.md +265 -0
  340. package/dist/designer/data/systems/sentry/components.html +387 -0
  341. package/dist/designer/data/systems/sentry/tokens.css +219 -0
  342. package/dist/designer/data/systems/shadcn/DESIGN.md +71 -0
  343. package/dist/designer/data/systems/shadcn/components.html +732 -0
  344. package/dist/designer/data/systems/shadcn/tokens.css +255 -0
  345. package/dist/designer/data/systems/shopify/DESIGN.md +353 -0
  346. package/dist/designer/data/systems/shopify/components.html +342 -0
  347. package/dist/designer/data/systems/shopify/tokens.css +141 -0
  348. package/dist/designer/data/systems/simple/DESIGN.md +71 -0
  349. package/dist/designer/data/systems/simple/components.html +136 -0
  350. package/dist/designer/data/systems/simple/tokens.css +63 -0
  351. package/dist/designer/data/systems/skeumorphism/DESIGN.md +71 -0
  352. package/dist/designer/data/systems/skeumorphism/components.html +136 -0
  353. package/dist/designer/data/systems/skeumorphism/tokens.css +63 -0
  354. package/dist/designer/data/systems/slack/DESIGN.md +363 -0
  355. package/dist/designer/data/systems/slack/components.html +387 -0
  356. package/dist/designer/data/systems/slack/tokens.css +127 -0
  357. package/dist/designer/data/systems/sleek/DESIGN.md +71 -0
  358. package/dist/designer/data/systems/sleek/components.html +136 -0
  359. package/dist/designer/data/systems/sleek/tokens.css +63 -0
  360. package/dist/designer/data/systems/spacex/DESIGN.md +197 -0
  361. package/dist/designer/data/systems/spacex/components.html +496 -0
  362. package/dist/designer/data/systems/spacex/tokens.css +154 -0
  363. package/dist/designer/data/systems/spacious/DESIGN.md +71 -0
  364. package/dist/designer/data/systems/spacious/components.html +136 -0
  365. package/dist/designer/data/systems/spacious/tokens.css +63 -0
  366. package/dist/designer/data/systems/spotify/DESIGN.md +249 -0
  367. package/dist/designer/data/systems/spotify/components.html +365 -0
  368. package/dist/designer/data/systems/spotify/tokens.css +127 -0
  369. package/dist/designer/data/systems/starbucks/DESIGN.md +583 -0
  370. package/dist/designer/data/systems/starbucks/components.html +493 -0
  371. package/dist/designer/data/systems/starbucks/tokens.css +182 -0
  372. package/dist/designer/data/systems/storytelling/DESIGN.md +71 -0
  373. package/dist/designer/data/systems/storytelling/components.html +136 -0
  374. package/dist/designer/data/systems/storytelling/tokens.css +63 -0
  375. package/dist/designer/data/systems/stripe/DESIGN.md +325 -0
  376. package/dist/designer/data/systems/stripe/components.html +1018 -0
  377. package/dist/designer/data/systems/stripe/tokens.css +295 -0
  378. package/dist/designer/data/systems/supabase/DESIGN.md +258 -0
  379. package/dist/designer/data/systems/supabase/components.html +741 -0
  380. package/dist/designer/data/systems/supabase/tokens.css +294 -0
  381. package/dist/designer/data/systems/superhuman/DESIGN.md +255 -0
  382. package/dist/designer/data/systems/superhuman/components.html +537 -0
  383. package/dist/designer/data/systems/superhuman/tokens.css +160 -0
  384. package/dist/designer/data/systems/tesla/DESIGN.md +289 -0
  385. package/dist/designer/data/systems/tesla/components.html +724 -0
  386. package/dist/designer/data/systems/tesla/tokens.css +285 -0
  387. package/dist/designer/data/systems/tetris/DESIGN.md +71 -0
  388. package/dist/designer/data/systems/tetris/components.html +342 -0
  389. package/dist/designer/data/systems/tetris/tokens.css +64 -0
  390. package/dist/designer/data/systems/theverge/DESIGN.md +342 -0
  391. package/dist/designer/data/systems/theverge/components.html +342 -0
  392. package/dist/designer/data/systems/theverge/tokens.css +64 -0
  393. package/dist/designer/data/systems/together-ai/DESIGN.md +266 -0
  394. package/dist/designer/data/systems/together-ai/components.html +422 -0
  395. package/dist/designer/data/systems/together-ai/tokens.css +127 -0
  396. package/dist/designer/data/systems/totality-festival/DESIGN.md +206 -0
  397. package/dist/designer/data/systems/totality-festival/components.html +136 -0
  398. package/dist/designer/data/systems/totality-festival/tokens.css +63 -0
  399. package/dist/designer/data/systems/trading-terminal/DESIGN.md +178 -0
  400. package/dist/designer/data/systems/trading-terminal/components.html +154 -0
  401. package/dist/designer/data/systems/trading-terminal/tokens.css +63 -0
  402. package/dist/designer/data/systems/uber/DESIGN.md +298 -0
  403. package/dist/designer/data/systems/uber/components.html +347 -0
  404. package/dist/designer/data/systems/uber/tokens.css +131 -0
  405. package/dist/designer/data/systems/urdu/DESIGN.md +1002 -0
  406. package/dist/designer/data/systems/urdu/components.html +136 -0
  407. package/dist/designer/data/systems/urdu/tokens.css +63 -0
  408. package/dist/designer/data/systems/vercel/DESIGN.md +313 -0
  409. package/dist/designer/data/systems/vercel/components.html +839 -0
  410. package/dist/designer/data/systems/vercel/tokens.css +270 -0
  411. package/dist/designer/data/systems/vibrant/DESIGN.md +71 -0
  412. package/dist/designer/data/systems/vibrant/components.html +136 -0
  413. package/dist/designer/data/systems/vibrant/tokens.css +63 -0
  414. package/dist/designer/data/systems/vintage/DESIGN.md +71 -0
  415. package/dist/designer/data/systems/vintage/components.html +136 -0
  416. package/dist/designer/data/systems/vintage/tokens.css +63 -0
  417. package/dist/designer/data/systems/vodafone/DESIGN.md +426 -0
  418. package/dist/designer/data/systems/vodafone/components.html +342 -0
  419. package/dist/designer/data/systems/vodafone/tokens.css +64 -0
  420. package/dist/designer/data/systems/voltagent/DESIGN.md +326 -0
  421. package/dist/designer/data/systems/voltagent/components.html +154 -0
  422. package/dist/designer/data/systems/voltagent/tokens.css +63 -0
  423. package/dist/designer/data/systems/warm-editorial/DESIGN.md +65 -0
  424. package/dist/designer/data/systems/warm-editorial/components.html +136 -0
  425. package/dist/designer/data/systems/warm-editorial/tokens.css +63 -0
  426. package/dist/designer/data/systems/warp/DESIGN.md +256 -0
  427. package/dist/designer/data/systems/warp/components.html +411 -0
  428. package/dist/designer/data/systems/warp/tokens.css +156 -0
  429. package/dist/designer/data/systems/webex/DESIGN.md +207 -0
  430. package/dist/designer/data/systems/webex/components.html +342 -0
  431. package/dist/designer/data/systems/webex/tokens.css +64 -0
  432. package/dist/designer/data/systems/webflow/DESIGN.md +95 -0
  433. package/dist/designer/data/systems/webflow/components.html +413 -0
  434. package/dist/designer/data/systems/webflow/tokens.css +191 -0
  435. package/dist/designer/data/systems/wechat/DESIGN.md +302 -0
  436. package/dist/designer/data/systems/wechat/components.html +507 -0
  437. package/dist/designer/data/systems/wechat/tokens.css +176 -0
  438. package/dist/designer/data/systems/wired/DESIGN.md +281 -0
  439. package/dist/designer/data/systems/wired/components.html +342 -0
  440. package/dist/designer/data/systems/wired/tokens.css +64 -0
  441. package/dist/designer/data/systems/wise/DESIGN.md +176 -0
  442. package/dist/designer/data/systems/wise/components.html +365 -0
  443. package/dist/designer/data/systems/wise/tokens.css +141 -0
  444. package/dist/designer/data/systems/x-ai/DESIGN.md +260 -0
  445. package/dist/designer/data/systems/x-ai/components.html +460 -0
  446. package/dist/designer/data/systems/x-ai/tokens.css +268 -0
  447. package/dist/designer/data/systems/xiaohongshu/DESIGN.md +402 -0
  448. package/dist/designer/data/systems/xiaohongshu/components.html +865 -0
  449. package/dist/designer/data/systems/xiaohongshu/tokens.css +193 -0
  450. package/dist/designer/data/systems/zapier/DESIGN.md +331 -0
  451. package/dist/designer/data/systems/zapier/components.html +342 -0
  452. package/dist/designer/data/systems/zapier/tokens.css +64 -0
  453. package/dist/designer/guidelines.js +176 -0
  454. package/dist/designer/index.js +236 -0
  455. package/dist/designer/skills.js +1675 -0
  456. package/dist/designer/systems.js +216 -0
  457. package/dist/server/pi-bridge.js +155 -5
  458. package/dist/server/session-stream.js +45 -1
  459. package/package.json +1 -1
@@ -0,0 +1,493 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>Starbucks โ€” reference components</title>
7
+ <meta
8
+ name="description"
9
+ content="Reference fixture for design-systems/starbucks. Warm cream canvas,
10
+ four-tier green system, full-pill buttons, whisper-soft layered shadows,
11
+ and SoDoSans with universal -0.01em tracking."
12
+ />
13
+
14
+ <style>
15
+ :root {
16
+ --bg: #f2f0eb;
17
+ --surface: #ffffff;
18
+ --surface-warm: #edebe9;
19
+
20
+ --fg: rgba(0, 0, 0, 0.87);
21
+ --fg-2: #33433d;
22
+ --muted: rgba(0, 0, 0, 0.58);
23
+ --meta: var(--muted);
24
+
25
+ --border: #d6dbde;
26
+ --border-soft: #e7e7e7;
27
+
28
+ --accent: #00754A;
29
+ --accent-on: #ffffff;
30
+ --accent-hover: color-mix(in oklab, var(--accent), black 8%);
31
+ --accent-active: color-mix(in oklab, var(--accent), black 14%);
32
+
33
+ --success: #16a34a;
34
+ --warn: #fbbc05;
35
+ --danger: #c82014;
36
+
37
+ --font-display: SoDoSans, "Helvetica Neue", Helvetica, Arial, sans-serif;
38
+ --font-body: SoDoSans, "Helvetica Neue", Helvetica, Arial, sans-serif;
39
+ --font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
40
+
41
+ --text-xs: 13px;
42
+ --text-sm: 14px;
43
+ --text-base: 16px;
44
+ --text-lg: 19px;
45
+ --text-xl: 24px;
46
+ --text-2xl: 32px;
47
+ --text-3xl: 45px;
48
+ --text-4xl: 58px;
49
+
50
+ --leading-body: 1.5;
51
+ --leading-tight: 1.2;
52
+ --tracking-display: -0.01em;
53
+
54
+ --space-1: 4px;
55
+ --space-2: 8px;
56
+ --space-3: 12px;
57
+ --space-4: 16px;
58
+ --space-5: 20px;
59
+ --space-6: 24px;
60
+ --space-8: 32px;
61
+ --space-12: 48px;
62
+
63
+ --section-y-desktop: 64px;
64
+ --section-y-tablet: 48px;
65
+ --section-y-phone: 32px;
66
+
67
+ --radius-sm: 4px;
68
+ --radius-md: 12px;
69
+ --radius-lg: 16px;
70
+ --radius-pill: 9999px;
71
+
72
+ --elev-flat: none;
73
+ --elev-ring: 0 0 0 1px var(--border);
74
+ --elev-raised: 0 0 0.5px 0 rgba(0, 0, 0, 0.14), 0 1px 1px 0 rgba(0, 0, 0, 0.24);
75
+
76
+ --focus-ring: 0 0 0 3px color-mix(in oklab, var(--accent), transparent 70%);
77
+
78
+ --motion-fast: 150ms;
79
+ --motion-base: 200ms;
80
+ --ease-standard: cubic-bezier(0.25, 0.46, 0.45, 0.94);
81
+
82
+ --container-max: 1440px;
83
+ --container-gutter-desktop: 40px;
84
+ --container-gutter-tablet: 24px;
85
+ --container-gutter-phone: 16px;
86
+ }
87
+
88
+ /* โ”€โ”€โ”€ Reset โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ */
89
+ *, *::before, *::after { box-sizing: border-box; }
90
+ html, body { margin: 0; padding: 0; }
91
+ body {
92
+ background: var(--bg);
93
+ color: var(--fg);
94
+ font-family: var(--font-body);
95
+ font-size: var(--text-base);
96
+ line-height: var(--leading-body);
97
+ letter-spacing: var(--tracking-display);
98
+ -webkit-font-smoothing: antialiased;
99
+ }
100
+
101
+ /* โ”€โ”€โ”€ Layout โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ */
102
+ .container {
103
+ max-width: var(--container-max);
104
+ margin-inline: auto;
105
+ padding-inline: var(--container-gutter-desktop);
106
+ }
107
+ section { padding-block: var(--section-y-desktop); }
108
+ @media (max-width: 1023px) {
109
+ .container { padding-inline: var(--container-gutter-tablet); }
110
+ section { padding-block: var(--section-y-tablet); }
111
+ }
112
+ @media (max-width: 639px) {
113
+ .container { padding-inline: var(--container-gutter-phone); }
114
+ section { padding-block: var(--section-y-phone); }
115
+ }
116
+
117
+ /* โ”€โ”€โ”€ Typography โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
118
+ * Universal -0.01em tracking; hierarchy carried by weight + color,
119
+ * not by size jumps. H1 in Starbucks Green; H2 stays in Text Black. */
120
+ h1, h2, h3 {
121
+ font-family: var(--font-display);
122
+ line-height: var(--leading-tight);
123
+ letter-spacing: var(--tracking-display);
124
+ margin: 0;
125
+ }
126
+ h1 {
127
+ font-size: var(--text-3xl);
128
+ font-weight: 600;
129
+ color: #006241;
130
+ }
131
+ h2 {
132
+ font-size: var(--text-xl);
133
+ font-weight: 400;
134
+ color: var(--fg);
135
+ }
136
+ h3 {
137
+ font-size: var(--text-lg);
138
+ font-weight: 600;
139
+ color: var(--fg);
140
+ }
141
+ p { margin: 0; }
142
+ .lead {
143
+ font-size: var(--text-lg);
144
+ color: var(--fg);
145
+ line-height: var(--leading-body);
146
+ }
147
+ .body-muted { color: var(--muted); }
148
+ .body-sm { font-size: var(--text-sm); }
149
+ .eyebrow {
150
+ font-size: var(--text-xs);
151
+ color: var(--muted);
152
+ text-transform: uppercase;
153
+ letter-spacing: 0.15em;
154
+ font-weight: 600;
155
+ }
156
+ .stack-3 > * + * { margin-block-start: var(--space-3); }
157
+ .stack-4 > * + * { margin-block-start: var(--space-4); }
158
+ .stack-6 > * + * { margin-block-start: var(--space-6); }
159
+
160
+ /* โ”€โ”€โ”€ Buttons โ€” universal 9999px pill, scale(0.95) press โ”€โ”€ */
161
+ .btn {
162
+ display: inline-flex;
163
+ align-items: center;
164
+ gap: var(--space-2);
165
+ padding: 14px 28px;
166
+ border-radius: var(--radius-pill);
167
+ font-family: var(--font-body);
168
+ font-size: var(--text-base);
169
+ font-weight: 600;
170
+ line-height: 1.2;
171
+ letter-spacing: var(--tracking-display);
172
+ cursor: pointer;
173
+ border: 1px solid transparent;
174
+ transition: background-color var(--motion-base) var(--ease-standard),
175
+ color var(--motion-base) var(--ease-standard),
176
+ border-color var(--motion-base) var(--ease-standard),
177
+ transform var(--motion-fast) var(--ease-standard);
178
+ text-decoration: none;
179
+ }
180
+ .btn:active { transform: scale(0.95); }
181
+ .btn:focus-visible { outline: none; box-shadow: var(--focus-ring); }
182
+
183
+ /* Primary Filled โ€” Green Accent fill */
184
+ .btn-primary {
185
+ background: var(--accent);
186
+ color: var(--accent-on);
187
+ border-color: var(--accent);
188
+ }
189
+ .btn-primary:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
190
+
191
+ /* Primary Outlined โ€” transparent / Green Accent stroke */
192
+ .btn-secondary {
193
+ background: transparent;
194
+ color: var(--accent);
195
+ border-color: var(--accent);
196
+ }
197
+ .btn-secondary:hover {
198
+ background: color-mix(in oklab, var(--accent), transparent 92%);
199
+ }
200
+
201
+ /* Dark Outlined โ€” Text Black stroke (top-nav "Sign in") */
202
+ .btn-ghost {
203
+ background: transparent;
204
+ color: var(--fg);
205
+ border-color: var(--fg);
206
+ padding: 7px 16px;
207
+ font-size: var(--text-sm);
208
+ }
209
+ .btn-ghost:hover { background: rgba(0, 0, 0, 0.04); }
210
+
211
+ /* โ”€โ”€โ”€ Inputs โ€” outlined-rectangle with --radius-sm โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ */
212
+ .field { display: flex; flex-direction: column; gap: var(--space-2); }
213
+ .field label {
214
+ font-size: var(--text-sm);
215
+ font-weight: 600;
216
+ color: var(--fg);
217
+ }
218
+ .field input {
219
+ padding: 12px var(--space-4);
220
+ border-radius: var(--radius-sm);
221
+ border: 1px solid var(--border);
222
+ background: var(--surface);
223
+ color: var(--fg);
224
+ font-family: var(--font-body);
225
+ font-size: var(--text-base);
226
+ letter-spacing: var(--tracking-display);
227
+ outline: none;
228
+ transition: border-color var(--motion-fast) var(--ease-standard),
229
+ box-shadow var(--motion-fast) var(--ease-standard);
230
+ }
231
+ .field input:focus-visible {
232
+ border-color: var(--accent);
233
+ box-shadow: var(--focus-ring);
234
+ }
235
+ .field input::placeholder { color: var(--muted); }
236
+ .field-help { font-size: var(--text-xs); color: var(--muted); }
237
+
238
+ /* โ”€โ”€โ”€ Cards โ€” whisper-soft dual shadow, --radius-md โ”€โ”€โ”€โ”€โ”€โ”€โ”€ */
239
+ .card {
240
+ background: var(--surface);
241
+ border-radius: var(--radius-md);
242
+ padding: var(--space-6);
243
+ display: flex;
244
+ flex-direction: column;
245
+ gap: var(--space-3);
246
+ box-shadow: var(--elev-raised);
247
+ }
248
+ .card-eyebrow {
249
+ font-size: var(--text-xs);
250
+ color: var(--accent);
251
+ text-transform: uppercase;
252
+ letter-spacing: 0.15em;
253
+ font-weight: 700;
254
+ }
255
+
256
+ /* โ”€โ”€โ”€ Badges โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ */
257
+ .badge {
258
+ display: inline-flex; align-items: center; gap: var(--space-2);
259
+ padding: 4px var(--space-3);
260
+ border-radius: var(--radius-pill);
261
+ font-size: var(--text-xs); font-weight: 600; line-height: 1.4;
262
+ }
263
+ .badge-success { color: var(--success); background: color-mix(in oklab, var(--success), transparent 88%); }
264
+ .badge-muted { color: var(--muted); background: var(--surface-warm); }
265
+ .badge-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
266
+
267
+ /* Rewards Cost Pill โ€” gold outline on transparent */
268
+ .badge-rewards {
269
+ color: #cba258;
270
+ background: transparent;
271
+ border: 1px solid #cba258;
272
+ letter-spacing: 0.05em;
273
+ }
274
+
275
+ /* โ”€โ”€โ”€ Links โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ */
276
+ a { color: var(--accent); text-decoration: none; }
277
+ a:hover { text-decoration: underline; text-underline-offset: 3px; }
278
+ kbd {
279
+ font-family: var(--font-mono); font-size: var(--text-xs);
280
+ padding: 2px 6px; border-radius: var(--radius-sm);
281
+ border: 1px solid var(--border); background: var(--surface); color: var(--muted);
282
+ }
283
+
284
+ /* โ”€โ”€โ”€ Hero / Layout helpers โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ */
285
+ .hero {
286
+ background: var(--bg);
287
+ padding-block: var(--section-y-desktop);
288
+ }
289
+ .hero-grid {
290
+ display: grid;
291
+ grid-template-columns: 1.4fr 1fr;
292
+ gap: var(--space-12);
293
+ align-items: center;
294
+ }
295
+ @media (max-width: 1023px) {
296
+ .hero-grid { grid-template-columns: 1fr; gap: var(--space-8); }
297
+ }
298
+ .hero-actions {
299
+ display: flex;
300
+ gap: var(--space-3);
301
+ margin-block-start: var(--space-6);
302
+ flex-wrap: wrap;
303
+ }
304
+ .hero-meta {
305
+ display: flex; flex-direction: column; gap: var(--space-3);
306
+ padding: var(--space-6);
307
+ background: var(--surface);
308
+ border-radius: var(--radius-md);
309
+ box-shadow: var(--elev-raised);
310
+ }
311
+
312
+ .features-grid {
313
+ display: grid;
314
+ grid-template-columns: repeat(3, 1fr);
315
+ gap: var(--space-6);
316
+ }
317
+ @media (max-width: 1023px) { .features-grid { grid-template-columns: 1fr 1fr; } }
318
+ @media (max-width: 639px) { .features-grid { grid-template-columns: 1fr; } }
319
+
320
+ .form-row {
321
+ display: grid;
322
+ grid-template-columns: 1fr 1fr;
323
+ gap: var(--space-12);
324
+ align-items: start;
325
+ }
326
+ @media (max-width: 1023px) { .form-row { grid-template-columns: 1fr; } }
327
+ .form { display: flex; flex-direction: column; gap: var(--space-4); max-width: 440px; }
328
+ .form-actions { display: flex; gap: var(--space-3); margin-block-start: var(--space-2); flex-wrap: wrap; }
329
+ .icon { width: 16px; height: 16px; flex-shrink: 0; }
330
+ .row-between { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); }
331
+
332
+ /* Feature band โ€” House Green band with white text on dark surface */
333
+ .band-dark {
334
+ background: #1E3932;
335
+ border-radius: var(--radius-md);
336
+ padding: var(--space-12) var(--space-8);
337
+ color: #ffffff;
338
+ }
339
+ .band-dark h2 { color: #ffffff; }
340
+ .band-dark .lead { color: rgba(255, 255, 255, 0.70); }
341
+ .band-dark .btn-primary {
342
+ background: #ffffff;
343
+ color: var(--accent);
344
+ border-color: #ffffff;
345
+ }
346
+ .band-dark .btn-primary:hover { background: rgba(255, 255, 255, 0.92); border-color: rgba(255, 255, 255, 0.92); }
347
+ .band-dark .btn-secondary {
348
+ background: transparent;
349
+ color: #ffffff;
350
+ border-color: #ffffff;
351
+ }
352
+ .band-dark .btn-secondary:hover { background: rgba(255, 255, 255, 0.12); }
353
+ </style>
354
+ </head>
355
+ <body>
356
+ <main class="container">
357
+ <section class="hero" data-od-id="hero">
358
+ <div class="hero-grid">
359
+ <div class="stack-4">
360
+ <p class="eyebrow">Reference fixture ยท starbucks</p>
361
+ <h1>More than coffee โ€” your third place, on the house.</h1>
362
+ <p class="lead" style="max-width: 56ch">
363
+ Warm cream canvas, four greens with assigned roles, and the friendly
364
+ confidence of SoDoSans. Open the app, find a store, or sit awhile โ€”
365
+ every surface is built to feel like the cafรฉ itself.
366
+ </p>
367
+ <div class="hero-actions">
368
+ <a href="./tokens.css" class="btn btn-primary">
369
+ Order now
370
+ <svg class="icon" viewBox="0 0 24 24" fill="none"
371
+ stroke="currentColor" stroke-width="2"
372
+ stroke-linecap="round" stroke-linejoin="round"
373
+ aria-hidden="true"><path d="M5 12h14M13 6l6 6-6 6"/></svg>
374
+ </a>
375
+ <a href="./DESIGN.md" class="btn btn-secondary">Join Rewards</a>
376
+ <a href="#" class="btn btn-ghost">Find a store</a>
377
+ </div>
378
+ </div>
379
+ <aside class="hero-meta" aria-label="Store status">
380
+ <div class="row-between">
381
+ <span class="body-sm">Nearest store</span>
382
+ <span class="badge badge-success">
383
+ <span class="badge-dot" aria-hidden="true"></span>
384
+ Open ยท 1.2 mi
385
+ </span>
386
+ </div>
387
+ <p class="body-sm" style="color: var(--muted)">
388
+ Pike Place Roast brewing now ยท pickup in 6&nbsp;min
389
+ </p>
390
+ <span class="badge badge-rewards" style="align-self:flex-start">200โ˜… free drink</span>
391
+ <p class="body-sm" style="color: var(--muted)">
392
+ Press <kbd>โŒ˜</kbd> <kbd>K</kbd> to reorder a favorite.
393
+ </p>
394
+ </aside>
395
+ </div>
396
+ </section>
397
+
398
+ <section data-od-id="features">
399
+ <div class="stack-3">
400
+ <p class="eyebrow">A system for the cafรฉ</p>
401
+ <h2 style="max-width: 28ch">Warmth, mapped to a role โ€” never a single brand green.</h2>
402
+ </div>
403
+ <div class="features-grid" style="margin-block-start: var(--space-8)">
404
+ <article class="card">
405
+ <p class="card-eyebrow">Four-tier green</p>
406
+ <h3>Starbucks ยท Accent ยท House ยท Uplift</h3>
407
+ <p class="body-muted body-sm">
408
+ Each green is mapped to a surface role: Starbucks Green for headings,
409
+ Green Accent (#00754A) for CTAs and the Frap, House Green for deep
410
+ feature bands and the footer, Uplift for decorative accents.
411
+ </p>
412
+ <a href="./tokens.css" class="body-sm">Inspect tokens โ†’</a>
413
+ </article>
414
+ <article class="card">
415
+ <p class="card-eyebrow">Warm cream canvas</p>
416
+ <h3>Never pure white.</h3>
417
+ <p class="body-muted body-sm">
418
+ Neutral Warm (#f2f0eb) and Ceramic (#edebe9) reference cafรฉ paper,
419
+ wood, and ceramic mugs. White is reserved for the card surface so
420
+ content reads like a mug placed on the table.
421
+ </p>
422
+ <a href="./DESIGN.md" class="body-sm">Read the rule โ†’</a>
423
+ </article>
424
+ <article class="card">
425
+ <p class="card-eyebrow">Pill + press</p>
426
+ <h3>Full-pill buttons, scale(0.95) press.</h3>
427
+ <p class="body-muted body-sm">
428
+ Every button is a 9999px pill. The active-press tactile rebound
429
+ uses transform: scale(0.95) โ€” a signature micro-interaction across
430
+ every CTA, including the floating Frap order button.
431
+ </p>
432
+ <a href="./tokens.css" class="body-sm">Inspect motion โ†’</a>
433
+ </article>
434
+ </div>
435
+ </section>
436
+
437
+ <section data-od-id="band">
438
+ <div class="band-dark">
439
+ <div class="hero-grid">
440
+ <div class="stack-4">
441
+ <p class="eyebrow" style="color: rgba(255,255,255,0.70)">Rewards</p>
442
+ <h2 style="font-size: var(--text-2xl); font-weight: 600">
443
+ Free coffee is just the beginning.
444
+ </h2>
445
+ <p class="lead">
446
+ Earn a Star for every dollar โ€” redeem for handcrafted drinks,
447
+ food, and at-home favorites. Members also unlock birthday treats,
448
+ free refills in-cafรฉ, and exclusive offers.
449
+ </p>
450
+ <div class="hero-actions">
451
+ <a href="#" class="btn btn-primary">Sign up for free</a>
452
+ <a href="#" class="btn btn-secondary">Learn more</a>
453
+ </div>
454
+ </div>
455
+ <div class="stack-3" aria-label="Rewards summary">
456
+ <p class="body-sm" style="color: rgba(255,255,255,0.70)">Your Stars</p>
457
+ <p style="font-family: var(--font-display); font-size: var(--text-4xl); font-weight: 600; line-height: var(--leading-tight); letter-spacing: var(--tracking-display)">
458
+ 312<span style="color: #cba258">โ˜…</span>
459
+ </p>
460
+ <p class="body-sm" style="color: rgba(255,255,255,0.70)">
461
+ 88 more Stars to your next free handcrafted drink.
462
+ </p>
463
+ </div>
464
+ </div>
465
+ </div>
466
+ </section>
467
+
468
+ <section data-od-id="form">
469
+ <div class="form-row">
470
+ <div class="stack-4">
471
+ <p class="eyebrow">Join Rewards</p>
472
+ <h2>Sit awhile โ€” and earn a Star on the way out.</h2>
473
+ <p class="body-muted" style="max-width: 48ch">
474
+ No fees, no commitment. Save your favorite drink, skip the line
475
+ with mobile order, and let the third place come to you.
476
+ </p>
477
+ </div>
478
+ <form class="form" onsubmit="event.preventDefault();">
479
+ <div class="field">
480
+ <label for="email">Work email</label>
481
+ <input id="email" type="email" placeholder="you@starbucks.com" autocomplete="email" required />
482
+ <p class="field-help">We'll send your welcome Star and nothing else.</p>
483
+ </div>
484
+ <div class="form-actions">
485
+ <button type="submit" class="btn btn-primary">Create account</button>
486
+ <button type="button" class="btn btn-secondary">Browse menu</button>
487
+ </div>
488
+ </form>
489
+ </div>
490
+ </section>
491
+ </main>
492
+ </body>
493
+ </html>
@@ -0,0 +1,182 @@
1
+ /* โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
2
+ * design-systems/starbucks/tokens.css
3
+ *
4
+ * Structured token bindings for "Design System Inspired by Starbucks".
5
+ * Warm cream canvas, four-tier green system, full-pill buttons, whisper-
6
+ * soft layered shadows, and SoDoSans with universal -0.01em tracking.
7
+ *
8
+ * Key brand decisions encoded here:
9
+ * - Neutral Warm cream (#f2f0eb) as the page canvas โ€” never pure white
10
+ * - Green Accent (#00754A) reserved for the primary CTA fill / Frap
11
+ * - Text Black at rgba(0, 0, 0, 0.87) to match the warm canvas temperature
12
+ * - Whisper-soft dual-shadow card elevation โ€” never one heavy drop
13
+ * - Universal -0.01em tracking on SoDoSans across every surface
14
+ * - 9999px pill radius โ€” every button is a full pill, no exceptions
15
+ * - Measured ease-out (0.25, 0.46, 0.45, 0.94) โ€” the Starbucks expander
16
+ *
17
+ * No C-extensions: every token in this :root maps to a shared schema slot.
18
+ * โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ */
19
+
20
+ :root {
21
+ /* โ”€โ”€โ”€ Surface โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
22
+ * Warm cream canvas: the brand never sits on cold white. Neutral
23
+ * Warm references cafรฉ paper and store wood; Ceramic is the
24
+ * slightly warmer/darker step used for zone separators and
25
+ * partnership bands. White is reserved for the card surface so
26
+ * content cards feel like ceramic mugs on a wood table. */
27
+ --bg: #f2f0eb; /* Neutral Warm โ€” primary page canvas */
28
+ --surface: #ffffff; /* White โ€” content card / modal surface */
29
+ --surface-warm: #edebe9; /* Ceramic โ€” zone separator, warmer tier */
30
+
31
+ /* โ”€โ”€โ”€ Foreground โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
32
+ * Text Black is 87%-opacity black, never pure #000 โ€” it reads
33
+ * warmer on the cream canvas. Rewards Green (--fg-2) is the
34
+ * dustier slate-green used only on Rewards-page text blocks: a
35
+ * "reward surface" signal without reaching for Starbucks Green. */
36
+ --fg: rgba(0, 0, 0, 0.87); /* Text Black โ€” primary heading + body */
37
+ --fg-2: #33433d; /* Rewards Green โ€” dustier reading tier */
38
+ --muted: rgba(0, 0, 0, 0.58); /* Text Black Soft โ€” secondary / metadata */
39
+ --meta: var(--muted); /* alias โ€” single secondary text tier */
40
+
41
+ /* โ”€โ”€โ”€ Border โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
42
+ * Input Border (#d6dbde) is the explicit DESIGN.md value for the
43
+ * outlined-rectangle Add-in / Milk / Customize fields. The soft
44
+ * tier is the nutrition-table hairline โ€” quiet enough to row-
45
+ * separate without competing with the card edge. */
46
+ --border: #d6dbde; /* Input Border โ€” outlined rectangle edge */
47
+ --border-soft: #e7e7e7; /* Nutrition-table row hairline */
48
+
49
+ /* โ”€โ”€โ”€ Accent โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
50
+ * Green Accent (#00754A) is the CTA green โ€” the brighter, more
51
+ * luminous tier in the four-tier green system. Reserved for the
52
+ * primary filled pill CTAs and the Frap floating circular order
53
+ * button. Starbucks Green (#006241) is the heading tier and stays
54
+ * inline on h1; House Green (#1E3932) is the feature-band /
55
+ * footer tier and stays inline at those surfaces. */
56
+ --accent: #00754A; /* Green Accent โ€” primary CTA / Frap fill */
57
+ --accent-on: #ffffff;
58
+ --accent-hover: color-mix(in oklab, var(--accent), black 8%);
59
+ --accent-active: color-mix(in oklab, var(--accent), black 14%);
60
+
61
+ /* โ”€โ”€โ”€ Semantic โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
62
+ * Red (#c82014) is the explicit DESIGN.md error / destructive
63
+ * value. Yellow (#fbbc05) is the documented warning / legacy brand
64
+ * touch. Success has no brand-specific value in DESIGN.md โ€” keep
65
+ * the schema default so it does not collide with the four-tier
66
+ * green system. */
67
+ --success: #16a34a;
68
+ --warn: #fbbc05; /* Yellow โ€” DESIGN.md warning state */
69
+ --danger: #c82014; /* Red โ€” DESIGN.md error / destructive */
70
+
71
+ /* โ”€โ”€โ”€ Typography โ€” fonts โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
72
+ * SoDoSans is Starbucks' proprietary corporate typeface (licensed
73
+ * from House Industries; not publicly available). Display and body
74
+ * share the same stack โ€” the visual identity comes from the
75
+ * universal -0.01em / -0.16px tracking, not from typeface mixing.
76
+ * Lander Tall (Rewards serif) and Kalam (Careers script) are
77
+ * context-specific and intentionally NOT promoted to schema
78
+ * slots โ€” they stay inline at their respective surfaces. */
79
+ --font-display: SoDoSans, "Helvetica Neue", Helvetica, Arial, sans-serif;
80
+ --font-body: SoDoSans, "Helvetica Neue", Helvetica, Arial, sans-serif;
81
+ --font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
82
+
83
+ /* โ”€โ”€โ”€ Typography โ€” type scale โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
84
+ * DESIGN.md anchors at 1rem = 10px and uses semantic textSize-1
85
+ * through textSize-10. We bind the px values directly so the
86
+ * pasted :root works without the 62.5% root font-size trick.
87
+ * Hierarchy is carried by weight + color, not by size jumps โ€”
88
+ * H1 and H2 share 24px (--text-xl), only weight (600 vs 400) and
89
+ * color (Starbucks-Green vs Text Black) separate them. */
90
+ --text-xs: 13px; /* Micro / text-1 โ€” caption */
91
+ --text-sm: 14px; /* Small / text-2 โ€” button, label */
92
+ --text-base: 16px; /* Body / text-3 โ€” default body */
93
+ --text-lg: 19px; /* Body Large โ€” hero intro copy */
94
+ --text-xl: 24px; /* H1 / H2 โ€” shared by weight, not size */
95
+ --text-2xl: 32px; /* sub-heading bridge to hero */
96
+ --text-3xl: 45px; /* Hero Large / text-8 */
97
+ --text-4xl: 58px; /* Jumbo / text-9 โ€” display ceiling */
98
+
99
+ /* โ”€โ”€โ”€ Typography โ€” leading & tracking โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
100
+ * Body leading 1.5, display leading 1.2 โ€” the schema-standard
101
+ * two-mode rhythm. Tracking sits at -0.01em across the entire
102
+ * system: SoDoSans reads slightly compressed, which gives it its
103
+ * confident-but-friendly presence without feeling squeezed. */
104
+ --leading-body: 1.5;
105
+ --leading-tight: 1.2;
106
+ --tracking-display: -0.01em; /* universal โ€” DESIGN.md letterSpacingNormal */
107
+
108
+ /* โ”€โ”€โ”€ Spacing โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
109
+ * 4px grid. The brand's universal rhythm constant is 16px
110
+ * (--space-4) โ€” the default outer gutter, card padding baseline,
111
+ * and body text size all share it. The off-grid Starbucks rem
112
+ * scale (4 / 8 / 16 / 24 / 32 / 40 / 48 / 56 / 64) maps cleanly
113
+ * to this schema with 12px and 20px filling the gaps. */
114
+ --space-1: 4px;
115
+ --space-2: 8px;
116
+ --space-3: 12px;
117
+ --space-4: 16px; /* universal rhythm โ€” gutter, card pad, body */
118
+ --space-5: 20px;
119
+ --space-6: 24px;
120
+ --space-8: 32px;
121
+ --space-12: 48px;
122
+
123
+ /* โ”€โ”€โ”€ Section rhythm โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
124
+ * 64px desktop / 48px tablet / 32px phone โ€” generous breathing so
125
+ * the cream canvas can carry "plenty of space in the cafรฉ". The
126
+ * brand never uses divider lines between sections; whitespace
127
+ * does the work. */
128
+ --section-y-desktop: 64px;
129
+ --section-y-tablet: 48px;
130
+ --section-y-phone: 32px;
131
+
132
+ /* โ”€โ”€โ”€ Radius โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
133
+ * Two anchor values define the geometry: 12px on cards / modals
134
+ * (--cardBorderRadius), 9999px on every button (--buttonBorderRadius
135
+ * is 50px on the brand, but 9999px pills are visually identical at
136
+ * any reasonable height). 4px is reserved for outlined-rectangle
137
+ * inputs (Add-in / Milk / store availability). 16px stays as the
138
+ * larger-container tier for hero-photo frames. */
139
+ --radius-sm: 4px; /* outlined-rectangle inputs */
140
+ --radius-md: 12px; /* cards, modals โ€” --cardBorderRadius */
141
+ --radius-lg: 16px; /* larger containers */
142
+ --radius-pill: 9999px; /* full pill โ€” universal button radius */
143
+
144
+ /* โ”€โ”€โ”€ Elevation โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
145
+ * Whisper-soft layered shadows. The brand forbids a single heavy
146
+ * drop shadow; instead it stacks 2โ€“3 low-alpha shadows with
147
+ * different offsets to simulate ambient + direct lighting. The
148
+ * --elev-raised value here is the canonical Starbucks card
149
+ * --cardBoxShadow (DESIGN.md ยง6). The Frap floating button gets
150
+ * its own stacked shadow inline at the component level. */
151
+ --elev-flat: none;
152
+ --elev-ring: 0 0 0 1px var(--border);
153
+ --elev-raised: 0 0 0.5px 0 rgba(0, 0, 0, 0.14), 0 1px 1px 0 rgba(0, 0, 0, 0.24);
154
+
155
+ /* โ”€โ”€โ”€ Focus ring โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
156
+ * Green-tinted ring built from --accent. DESIGN.md does not
157
+ * publish a brand-specific focus treatment, so we keep the
158
+ * schema's accent-tinted formula โ€” Green Accent reads cleanly
159
+ * against the warm cream canvas and the white card surface. */
160
+ --focus-ring: 0 0 0 3px color-mix(in oklab, var(--accent), transparent 70%);
161
+
162
+ /* โ”€โ”€โ”€ Motion โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
163
+ * 150ms for micro-states (the universal `transform: scale(0.95)`
164
+ * pressed-button rebound), 200ms for general state changes
165
+ * (DESIGN.md: `all 0.2s ease` on buttons). The standard easing
166
+ * curve is the Starbucks Expander cubic-bezier from DESIGN.md
167
+ * ยง4 โ€” a measured ease-out rather than the schema's snappier
168
+ * default, giving accordions and disclosures a calm cafรฉ cadence. */
169
+ --motion-fast: 150ms;
170
+ --motion-base: 200ms;
171
+ --ease-standard: cubic-bezier(0.25, 0.46, 0.45, 0.94);
172
+
173
+ /* โ”€โ”€โ”€ Layout โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
174
+ * Content caps at 1440px (--columnWidthXLarge per DESIGN.md ยง5).
175
+ * Gutters scale progressively: 40px desktop (--outerGutterLarge),
176
+ * 24px tablet (--outerGutterMedium), 16px phone (--outerGutter,
177
+ * the universal rhythm constant). */
178
+ --container-max: 1440px;
179
+ --container-gutter-desktop: 40px;
180
+ --container-gutter-tablet: 24px;
181
+ --container-gutter-phone: 16px;
182
+ }