@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,461 @@
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>Canva — reference components</title>
7
+ <meta
8
+ name="description"
9
+ content="Reference fixture for design-systems/canva. White canvas, vivid
10
+ purple→cyan gradient on hero CTAs, 12px card radii, soft cool shadows."
11
+ />
12
+
13
+ <style>
14
+ :root {
15
+ --bg: #ffffff;
16
+ --surface: #f4f5f7;
17
+ --surface-warm: var(--surface);
18
+
19
+ --fg: #0e1318;
20
+ --fg-2: #3c4043;
21
+ --muted: #5f6368;
22
+ --meta: #9aa0a6;
23
+
24
+ --border: #e1e3e6;
25
+ --border-soft: var(--border);
26
+
27
+ --accent: #7d2ae8;
28
+ --accent-on: #ffffff;
29
+ --accent-hover: #6815d4;
30
+ --accent-active: color-mix(in oklab, var(--accent), black 14%);
31
+
32
+ --success: #00b894;
33
+ --warn: #ffb020;
34
+ --danger: #ff5757;
35
+
36
+ --font-display: "Canva Sans", "YS Text", system-ui, -apple-system, sans-serif;
37
+ --font-body: "Canva Sans", "YS Text", system-ui, -apple-system, sans-serif;
38
+ --font-mono: "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
39
+
40
+ --text-xs: 11px;
41
+ --text-sm: 12px;
42
+ --text-base: 14px;
43
+ --text-lg: 16px;
44
+ --text-xl: 18px;
45
+ --text-2xl: 24px;
46
+ --text-3xl: 36px;
47
+ --text-4xl: 64px;
48
+
49
+ --leading-body: 1.5;
50
+ --leading-tight: 1.15;
51
+ --tracking-display: -0.02em;
52
+
53
+ --space-1: 4px;
54
+ --space-2: 8px;
55
+ --space-3: 12px;
56
+ --space-4: 16px;
57
+ --space-5: 20px;
58
+ --space-6: 24px;
59
+ --space-8: 32px;
60
+ --space-12: 48px;
61
+
62
+ --section-y-desktop: 96px;
63
+ --section-y-tablet: 64px;
64
+ --section-y-phone: 48px;
65
+
66
+ --radius-sm: 8px;
67
+ --radius-md: 12px;
68
+ --radius-lg: 16px;
69
+ --radius-pill: 9999px;
70
+
71
+ --elev-flat: none;
72
+ --elev-ring: 0 0 0 1px var(--border);
73
+ --elev-raised: 0 2px 8px rgba(0, 0, 0, 0.06);
74
+
75
+ --focus-ring: 0 0 0 3px rgba(125, 42, 232, 0.16);
76
+
77
+ --motion-fast: 180ms;
78
+ --motion-base: 280ms;
79
+ --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
80
+
81
+ --container-max: 1320px;
82
+ --container-gutter-desktop: 32px;
83
+ --container-gutter-tablet: 24px;
84
+ --container-gutter-phone: 16px;
85
+ }
86
+
87
+ /* ─── Reset ─────────────────────────────────────────────── */
88
+ *, *::before, *::after { box-sizing: border-box; }
89
+ html, body { margin: 0; padding: 0; }
90
+ body {
91
+ background: var(--bg);
92
+ color: var(--fg-2);
93
+ font-family: var(--font-body);
94
+ font-size: var(--text-base);
95
+ line-height: var(--leading-body);
96
+ -webkit-font-smoothing: antialiased;
97
+ }
98
+
99
+ /* ─── Layout ─────────────────────────────────────────────── */
100
+ .container { max-width: var(--container-max); margin-inline: auto; padding-inline: var(--container-gutter-desktop); }
101
+ section { padding-block: var(--section-y-desktop); }
102
+ section + section { border-top: 1px solid var(--border); }
103
+ @media (max-width: 1023px) {
104
+ .container { padding-inline: var(--container-gutter-tablet); }
105
+ section { padding-block: var(--section-y-tablet); }
106
+ }
107
+ @media (max-width: 639px) {
108
+ .container { padding-inline: var(--container-gutter-phone); }
109
+ section { padding-block: var(--section-y-phone); }
110
+ }
111
+
112
+ /* ─── Typography — weight contrast carries hierarchy ─────── */
113
+ h1, h2, h3 {
114
+ font-family: var(--font-display);
115
+ color: var(--fg);
116
+ line-height: var(--leading-tight);
117
+ margin: 0;
118
+ }
119
+ h1 {
120
+ font-size: var(--text-4xl);
121
+ font-weight: 800;
122
+ letter-spacing: var(--tracking-display);
123
+ line-height: 1.05;
124
+ }
125
+ h2 {
126
+ font-size: var(--text-2xl);
127
+ font-weight: 700;
128
+ letter-spacing: -0.005em;
129
+ line-height: 1.2;
130
+ }
131
+ h3 {
132
+ font-size: var(--text-xl);
133
+ font-weight: 600;
134
+ line-height: 1.3;
135
+ }
136
+ p { margin: 0; }
137
+ .lead {
138
+ font-size: var(--text-lg);
139
+ color: var(--muted);
140
+ line-height: var(--leading-body);
141
+ font-weight: 400;
142
+ }
143
+ .body-muted { color: var(--muted); }
144
+ .body-sm { font-size: var(--text-sm); }
145
+ .eyebrow {
146
+ font-size: var(--text-xs);
147
+ font-weight: 600;
148
+ color: var(--accent);
149
+ text-transform: uppercase;
150
+ letter-spacing: 0.08em;
151
+ }
152
+ .stack-3 > * + * { margin-block-start: var(--space-3); }
153
+ .stack-4 > * + * { margin-block-start: var(--space-4); }
154
+ .stack-6 > * + * { margin-block-start: var(--space-6); }
155
+
156
+ /* ─── Buttons — soft rectangles, single gradient moment ─── */
157
+ .btn {
158
+ display: inline-flex;
159
+ align-items: center;
160
+ gap: var(--space-2);
161
+ padding: 12px 20px;
162
+ border-radius: var(--radius-sm);
163
+ font-family: var(--font-body);
164
+ font-size: var(--text-base);
165
+ font-weight: 600;
166
+ line-height: 1.2;
167
+ cursor: pointer;
168
+ border: 1px solid transparent;
169
+ text-decoration: none;
170
+ transition:
171
+ background-color var(--motion-fast) var(--ease-standard),
172
+ border-color var(--motion-fast) var(--ease-standard),
173
+ box-shadow var(--motion-fast) var(--ease-standard),
174
+ transform var(--motion-fast) var(--ease-standard);
175
+ }
176
+ .btn:focus-visible { outline: none; box-shadow: var(--focus-ring); }
177
+ .btn:active { transform: translateY(0); }
178
+ /* Primary: the brand gradient — purple origin → cyan terminus.
179
+ The single visible gradient on the page; do not repeat. */
180
+ .btn-primary {
181
+ background: linear-gradient(135deg, #7d2ae8, #00c4cc);
182
+ color: var(--accent-on);
183
+ box-shadow: 0 2px 8px rgba(125, 42, 232, 0.2);
184
+ }
185
+ .btn-primary:hover {
186
+ box-shadow: 0 4px 14px rgba(125, 42, 232, 0.3);
187
+ transform: translateY(-1px);
188
+ }
189
+ /* Secondary: white card with cool hairline border. */
190
+ .btn-secondary {
191
+ background: var(--bg);
192
+ color: var(--fg);
193
+ border-color: var(--border);
194
+ }
195
+ .btn-secondary:hover {
196
+ background: var(--surface);
197
+ border-color: #c7cdd3;
198
+ }
199
+ /* Subtle / tertiary: purple-tinted ghost. */
200
+ .btn-subtle {
201
+ background: rgba(125, 42, 232, 0.08);
202
+ color: var(--accent);
203
+ }
204
+ .btn-subtle:hover { background: rgba(125, 42, 232, 0.14); }
205
+
206
+ /* ─── Inputs — soft, purple focus ring ──────────────────── */
207
+ .field { display: flex; flex-direction: column; gap: var(--space-2); }
208
+ .field label {
209
+ font-size: var(--text-sm);
210
+ font-weight: 600;
211
+ color: var(--fg);
212
+ }
213
+ .field input {
214
+ padding: 10px 14px;
215
+ border-radius: var(--radius-sm);
216
+ border: 1px solid var(--border);
217
+ background: var(--bg);
218
+ color: var(--fg);
219
+ font-family: var(--font-body);
220
+ font-size: var(--text-base);
221
+ outline: none;
222
+ transition:
223
+ border-color var(--motion-fast) var(--ease-standard),
224
+ box-shadow var(--motion-fast) var(--ease-standard);
225
+ }
226
+ .field input:focus-visible {
227
+ border-color: var(--accent);
228
+ box-shadow: var(--focus-ring);
229
+ }
230
+ .field input::placeholder { color: var(--meta); }
231
+ .field-help { font-size: var(--text-xs); color: var(--muted); }
232
+
233
+ /* ─── Cards — 12px radius, soft cool shadow that grows ──── */
234
+ .card {
235
+ background: var(--bg);
236
+ border: 1px solid var(--border);
237
+ border-radius: var(--radius-md);
238
+ padding: var(--space-6);
239
+ display: flex;
240
+ flex-direction: column;
241
+ gap: var(--space-3);
242
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
243
+ transition:
244
+ box-shadow var(--motion-fast) var(--ease-standard),
245
+ transform var(--motion-fast) var(--ease-standard);
246
+ }
247
+ .card:hover {
248
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
249
+ transform: translateY(-2px);
250
+ }
251
+ .card-thumb {
252
+ aspect-ratio: 4 / 3;
253
+ border-radius: var(--radius-sm);
254
+ margin-block-end: var(--space-2);
255
+ }
256
+ .card-thumb-coral { background: linear-gradient(135deg, #ff7059, #ff9633); }
257
+ .card-thumb-mint { background: linear-gradient(135deg, #48c997, #3ea6ff); }
258
+ .card-thumb-lavender { background: linear-gradient(135deg, #9b87f5, #7d2ae8); }
259
+
260
+ /* ─── Chips / category tags — pill, uppercase ───────────── */
261
+ .chip {
262
+ display: inline-flex;
263
+ align-items: center;
264
+ padding: 4px 10px;
265
+ border-radius: var(--radius-pill);
266
+ font-size: var(--text-xs);
267
+ font-weight: 600;
268
+ line-height: 1.2;
269
+ text-transform: uppercase;
270
+ letter-spacing: 0.04em;
271
+ }
272
+ .chip-coral { background: rgba(255, 112, 89, 0.14); color: #c2412c; }
273
+ .chip-mint { background: rgba(72, 201, 151, 0.16); color: #1d8a5d; }
274
+ .chip-lavender { background: rgba(155, 135, 245, 0.18); color: #5b3fcf; }
275
+
276
+ /* ─── Pro badge — gradient pill, purple → pink ──────────── */
277
+ .pro-badge {
278
+ display: inline-flex;
279
+ align-items: center;
280
+ padding: 2px var(--space-2);
281
+ border-radius: var(--radius-pill);
282
+ background: linear-gradient(135deg, #7d2ae8, #ff5757);
283
+ color: var(--accent-on);
284
+ font-size: 10px;
285
+ font-weight: 700;
286
+ line-height: 1.4;
287
+ text-transform: uppercase;
288
+ letter-spacing: 0.06em;
289
+ }
290
+
291
+ /* ─── Links ─────────────────────────────────────────────── */
292
+ a { color: var(--accent); text-decoration: none; font-weight: 600; }
293
+ a:hover { text-decoration: underline; text-underline-offset: 3px; }
294
+ kbd {
295
+ font-family: var(--font-mono); font-size: var(--text-xs);
296
+ padding: 2px 6px; border-radius: var(--radius-sm);
297
+ border: 1px solid var(--border); background: var(--surface); color: var(--muted);
298
+ }
299
+
300
+ /* ─── Layout helpers ────────────────────────────────────── */
301
+ .hero-grid {
302
+ display: grid;
303
+ grid-template-columns: 1.3fr 1fr;
304
+ gap: var(--space-12);
305
+ align-items: center;
306
+ }
307
+ @media (max-width: 1023px) {
308
+ .hero-grid { grid-template-columns: 1fr; gap: var(--space-8); }
309
+ }
310
+ .hero-actions {
311
+ display: flex; gap: var(--space-3);
312
+ margin-block-start: var(--space-6);
313
+ flex-wrap: wrap;
314
+ }
315
+ .hero-meta {
316
+ display: flex; flex-direction: column; gap: var(--space-4);
317
+ padding: var(--space-6);
318
+ border-radius: var(--radius-lg);
319
+ background: var(--surface);
320
+ }
321
+ .features-grid {
322
+ display: grid;
323
+ grid-template-columns: repeat(3, 1fr);
324
+ gap: var(--space-6);
325
+ }
326
+ @media (max-width: 1023px) { .features-grid { grid-template-columns: 1fr 1fr; gap: var(--space-4); } }
327
+ @media (max-width: 639px) { .features-grid { grid-template-columns: 1fr; } }
328
+ .form-row {
329
+ display: grid;
330
+ grid-template-columns: 1.2fr 1fr;
331
+ gap: var(--space-12);
332
+ align-items: start;
333
+ }
334
+ @media (max-width: 1023px) { .form-row { grid-template-columns: 1fr; } }
335
+ .form {
336
+ display: flex; flex-direction: column;
337
+ gap: var(--space-4);
338
+ max-width: 420px;
339
+ padding: var(--space-6);
340
+ background: var(--surface);
341
+ border-radius: var(--radius-lg);
342
+ }
343
+ .form-actions {
344
+ display: flex; gap: var(--space-3);
345
+ margin-block-start: var(--space-2);
346
+ }
347
+ .icon { width: 16px; height: 16px; flex-shrink: 0; }
348
+ .row-between {
349
+ display: flex; align-items: center;
350
+ justify-content: space-between;
351
+ gap: var(--space-3);
352
+ }
353
+ </style>
354
+ </head>
355
+ <body>
356
+ <main class="container">
357
+ <section data-od-id="hero">
358
+ <div class="hero-grid">
359
+ <div class="stack-4">
360
+ <p class="eyebrow">Reference fixture · canva</p>
361
+ <h1>Design anything.<br />Publish anywhere.</h1>
362
+ <p class="lead" style="max-width: 52ch">
363
+ From social posts to slide decks, posters to videos — drag, drop, done.
364
+ Canva makes great design accessible to every team, every brief, every brand.
365
+ </p>
366
+ <div class="hero-actions">
367
+ <a href="./tokens.css" class="btn btn-primary">
368
+ Start designing — it's free
369
+ <svg class="icon" viewBox="0 0 24 24" fill="none"
370
+ stroke="currentColor" stroke-width="2"
371
+ stroke-linecap="round" stroke-linejoin="round"
372
+ aria-hidden="true"><path d="M5 12h14M13 6l6 6-6 6"/></svg>
373
+ </a>
374
+ <a href="./DESIGN.md" class="btn btn-secondary">Read the spec</a>
375
+ </div>
376
+ </div>
377
+ <aside class="hero-meta" aria-label="Workspace status">
378
+ <div class="row-between">
379
+ <span style="font-weight: 600; color: var(--fg)">Magic Studio</span>
380
+ <span class="pro-badge">Pro</span>
381
+ </div>
382
+ <p class="body-sm body-muted">
383
+ Generate images, copy, and full layouts from a single prompt.
384
+ Active across <strong style="color: var(--fg)">12 brand kits</strong>.
385
+ </p>
386
+ <div class="row-between body-sm">
387
+ <span class="body-muted">Last edited</span>
388
+ <span><time datetime="2026-05-18">2 minutes ago</time></span>
389
+ </div>
390
+ <p class="body-sm body-muted">
391
+ Tip: press <kbd>⌘</kbd> <kbd>K</kbd> to jump to any template.
392
+ </p>
393
+ </aside>
394
+ </div>
395
+ </section>
396
+
397
+ <section data-od-id="features">
398
+ <div class="stack-3">
399
+ <p class="eyebrow">A template for every brief</p>
400
+ <h2 style="max-width: 24ch">Start from anything. Make it your own.</h2>
401
+ </div>
402
+ <div class="features-grid" style="margin-block-start: var(--space-8)">
403
+ <article class="card">
404
+ <div class="card-thumb card-thumb-coral" aria-hidden="true"></div>
405
+ <span class="chip chip-coral">Social</span>
406
+ <h3>Instagram Story</h3>
407
+ <p class="body-muted body-sm">
408
+ 1080 × 1920 vertical templates, ready for Reels and Stories.
409
+ Drop in your logo, swap fonts, publish straight to your handle.
410
+ </p>
411
+ <a href="./tokens.css" class="body-sm">Browse 1,240 templates →</a>
412
+ </article>
413
+ <article class="card">
414
+ <div class="card-thumb card-thumb-mint" aria-hidden="true"></div>
415
+ <span class="chip chip-mint">Education</span>
416
+ <h3>Lesson plans &amp; worksheets</h3>
417
+ <p class="body-muted body-sm">
418
+ Printable A4 and US Letter formats for teachers. Subject-tagged
419
+ and tested against grade-level readability scores.
420
+ </p>
421
+ <a href="./tokens.css" class="body-sm">Open the classroom kit →</a>
422
+ </article>
423
+ <article class="card">
424
+ <div class="card-thumb card-thumb-lavender" aria-hidden="true"></div>
425
+ <span class="chip chip-lavender">Personal</span>
426
+ <h3>Invitations &amp; cards</h3>
427
+ <p class="body-muted body-sm">
428
+ Birthday, wedding, save-the-date — print at home or order
429
+ through Canva Print with two-day shipping to most countries.
430
+ </p>
431
+ <a href="./tokens.css" class="body-sm">Pick an occasion →</a>
432
+ </article>
433
+ </div>
434
+ </section>
435
+
436
+ <section data-od-id="form">
437
+ <div class="form-row">
438
+ <div class="stack-4">
439
+ <p class="eyebrow">Get started</p>
440
+ <h2>Bring your team into Canva.</h2>
441
+ <p class="body-muted" style="max-width: 48ch">
442
+ Drop your work email and we'll set up your free Canva workspace —
443
+ brand kit, folders, and approvals included. No credit card needed.
444
+ </p>
445
+ </div>
446
+ <form class="form" onsubmit="event.preventDefault();">
447
+ <div class="field">
448
+ <label for="email">Work email</label>
449
+ <input id="email" type="email" placeholder="you@yourcompany.com" autocomplete="email" required />
450
+ <p class="field-help">We'll use this to create your team workspace.</p>
451
+ </div>
452
+ <div class="form-actions">
453
+ <button type="submit" class="btn btn-primary">Create workspace</button>
454
+ <button type="button" class="btn btn-subtle">See a demo</button>
455
+ </div>
456
+ </form>
457
+ </div>
458
+ </section>
459
+ </main>
460
+ </body>
461
+ </html>
@@ -0,0 +1,147 @@
1
+ /* ─────────────────────────────────────────────────────────────────────────
2
+ * design-systems/canva/tokens.css
3
+ *
4
+ * Structured token bindings for "Design System Inspired by Canva".
5
+ * Consumer-friendly design platform: white canvas, vivid purple→cyan
6
+ * gradient, generously rounded geometry, weight-driven hierarchy.
7
+ *
8
+ * Key brand decisions encoded here:
9
+ * - Pure white canvas (#ffffff) — Canva looks inviting, never tinted
10
+ * - Canva Purple (#7d2ae8) as the single accent — gradient origin
11
+ * - Four ink tiers (#0e1318 → #3c4043 → #5f6368 → #9aa0a6) — weight
12
+ * contrast and ink-tier contrast carry hierarchy together
13
+ * - 12px card / 8px button radii — soft, friendly, never sharp
14
+ * - Cool soft shadows (rgba(0,0,0,0.06)) — never warm-tinted
15
+ * - Compressed type scale (14px body, 18px H3, 64px hero) — cards
16
+ * and templates must read at thumbnail scale
17
+ * - Material-style easing (0.4,0,0.2,1) at 180ms — friendly micro-lift
18
+ * ─────────────────────────────────────────────────────────────────── */
19
+
20
+ :root {
21
+ /* ─── Surface ─────────────────────────────────────────────────────
22
+ * White canvas with cool-gray subtle break. Canva never tints its
23
+ * neutral surfaces — the purple/cyan gradient is the only colored
24
+ * brand moment on an otherwise calm white page. */
25
+ --bg: #ffffff; /* Canvas — the primary white background */
26
+ --surface: #f4f5f7; /* Surface Subtle — section break, sidebar */
27
+ --surface-warm: var(--surface); /* alias — Canva has no warm tier; palette is cool-neutral */
28
+
29
+ /* ─── Foreground ──────────────────────────────────────────────────
30
+ * Four-tier ink stack from DESIGN.md §2: Primary → Secondary →
31
+ * Muted → Faint. Each tier is materially distinct so weight + tier
32
+ * together carry hierarchy (the palette stays neutral). */
33
+ --fg: #0e1318; /* Ink Primary — headings, max-emphasis text */
34
+ --fg-2: #3c4043; /* Ink Secondary — body prose */
35
+ --muted: #5f6368; /* Ink Muted — captions, descriptions */
36
+ --meta: #9aa0a6; /* Ink Faint — placeholder, disabled label */
37
+
38
+ /* ─── Border ──────────────────────────────────────────────────────
39
+ * Cool-gray hairlines. Canva uses two visible border tiers
40
+ * (Default + Strong on hover); --border-soft has no distinct value
41
+ * in DESIGN.md, so it aliases to keep the schema satisfied without
42
+ * inventing a tier the brand does not specify. */
43
+ --border: #e1e3e6; /* Border Default — standard card hairline */
44
+ --border-soft: var(--border); /* alias — DESIGN.md specifies no softer tier */
45
+
46
+ /* ─── Accent ──────────────────────────────────────────────────────
47
+ * Canva Purple — the gradient origin. The full purple→cyan gradient
48
+ * lives in component CSS as a linear-gradient(135deg, ...) on hero
49
+ * CTAs and Pro/Magic moments; the token itself is the solid purple
50
+ * used as the always-resolvable single-value accent. */
51
+ --accent: #7d2ae8; /* Canva Purple — gradient origin, solid CTA */
52
+ --accent-on: #ffffff;
53
+ --accent-hover: #6815d4; /* DESIGN.md §4 — explicit hover value */
54
+ --accent-active: color-mix(in oklab, var(--accent), black 14%);
55
+
56
+ /* ─── Semantic ────────────────────────────────────────────────────
57
+ * Brand-specific semantic palette from DESIGN.md §2. Error reuses
58
+ * Canva Pink (#ff5757) — the same hue is the tertiary brand accent
59
+ * (Magic Studio), so destructive feedback inherits brand warmth. */
60
+ --success: #00b894; /* Success — saved, exported */
61
+ --warn: #ffb020; /* Warning — storage limit, advisory */
62
+ --danger: #ff5757; /* Error — also the Magic Studio pink */
63
+
64
+ /* ─── Typography ──────────────────────────────────────────────────
65
+ * Canva Sans for everything — geometric rounded sans, no serifs.
66
+ * JetBrains Mono only inside devtools / code blocks. */
67
+ --font-display: "Canva Sans", "YS Text", system-ui, -apple-system, sans-serif;
68
+ --font-body: "Canva Sans", "YS Text", system-ui, -apple-system, sans-serif;
69
+ --font-mono: "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
70
+
71
+ /* Type scale — DESIGN.md §3. Compressed by design: 64px hero, 36px
72
+ * H1, then steps of 24/18/16/14/12/11. Tag (11px) is the floor so
73
+ * uppercase category chips on template tiles stay legible. */
74
+ --text-xs: 11px; /* Tag — uppercase category chip */
75
+ --text-sm: 12px; /* Caption — metadata, hint text */
76
+ --text-base: 14px; /* Body — standard UI prose */
77
+ --text-lg: 16px; /* Body Large — lede, marketing body */
78
+ --text-xl: 18px; /* H3 — sub-section, card title */
79
+ --text-2xl: 24px; /* H2 — section heading */
80
+ --text-3xl: 36px; /* H1 — page heading */
81
+ --text-4xl: 64px; /* Hero — marketing display, "Design anything." */
82
+
83
+ --leading-body: 1.5;
84
+ --leading-tight: 1.15; /* H1 baseline — tight enough for 3-line card titles */
85
+ --tracking-display: -0.02em; /* ≈ -1.28px at 64px — hero only */
86
+
87
+ /* ─── Spacing ─────────────────────────────────────────────────────
88
+ * 4px base unit. Scale 4/8/12/16/20/24/32/48 covers everything in
89
+ * DESIGN.md §5 except 64 and 96 which surface only as section-y. */
90
+ --space-1: 4px;
91
+ --space-2: 8px;
92
+ --space-3: 12px;
93
+ --space-4: 16px;
94
+ --space-5: 20px;
95
+ --space-6: 24px;
96
+ --space-8: 32px;
97
+ --space-12: 48px;
98
+
99
+ /* Section rhythm — generous on desktop (96px = scale top) so the
100
+ * white canvas breathes between marketing bands; compresses on
101
+ * narrower viewports following the 4px grid. */
102
+ --section-y-desktop: 96px;
103
+ --section-y-tablet: 64px;
104
+ --section-y-phone: 48px;
105
+
106
+ /* ─── Radius ──────────────────────────────────────────────────────
107
+ * Ultra-soft. Buttons / inputs at 8px, cards at 12px (the Canva
108
+ * template tile), larger panels at 16px. Pills (9999px) reserved
109
+ * for chips, tags, and the Pro/Magic badge. */
110
+ --radius-sm: 8px; /* Buttons, inputs, secondary chrome */
111
+ --radius-md: 12px; /* Cards, template tiles — the Canva default */
112
+ --radius-lg: 16px; /* Featured panels, hero cards */
113
+ --radius-pill: 9999px; /* Chips, tags, Pro/Magic badge */
114
+
115
+ /* ─── Elevation ───────────────────────────────────────────────────
116
+ * Soft cool-toned shadows that grow on hover (DESIGN.md §4 card +
117
+ * button shadows). --elev-raised matches the resting button shadow
118
+ * — `0 2px 8px rgba(0,0,0,0.06)`. Components scale up to the hover
119
+ * variant `0 8px 24px rgba(0,0,0,0.08)` inline. */
120
+ --elev-flat: none;
121
+ --elev-ring: 0 0 0 1px var(--border);
122
+ --elev-raised: 0 2px 8px rgba(0, 0, 0, 0.06);
123
+
124
+ /* ─── Focus ring ──────────────────────────────────────────────────
125
+ * Purple-tinted 3px ring, taken verbatim from DESIGN.md §4 input
126
+ * focus spec — `0 0 0 3px rgba(125, 42, 232, 0.16)`. Soft enough to
127
+ * sit beside a 1px purple border without crowding it. */
128
+ --focus-ring: 0 0 0 3px rgba(125, 42, 232, 0.16);
129
+
130
+ /* ─── Motion ──────────────────────────────────────────────────────
131
+ * Friendly micro-interactions: 180ms hover (Canva's signature card
132
+ * lift) and 280ms for menu / dialog open (DESIGN.md §6). Easing is
133
+ * Material-style cubic-bezier(0.4, 0, 0.2, 1) — eases out softly
134
+ * rather than the snappier (0.2, 0, 0, 1) used by enterprise brands. */
135
+ --motion-fast: 180ms;
136
+ --motion-base: 280ms;
137
+ --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
138
+
139
+ /* ─── Layout ──────────────────────────────────────────────────────
140
+ * 1320px container with 32px gutter (DESIGN.md §5). Wider than
141
+ * enterprise (Cohere 1440 is editor-led; Canva 1320 fits a 4-col
142
+ * template grid at 300px per tile + gaps comfortably). */
143
+ --container-max: 1320px;
144
+ --container-gutter-desktop: 32px;
145
+ --container-gutter-tablet: 24px;
146
+ --container-gutter-phone: 16px;
147
+ }