@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,741 @@
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>Supabase — reference components</title>
7
+ <meta
8
+ name="description"
9
+ content="Reference fixture for design-systems/supabase. Every visible
10
+ value comes from tokens.css. Supabase's signature moves: near-black
11
+ canvas, Postgres-emerald reserved as identity marker, Circular geometric
12
+ sans with weight restraint, Source Code Pro uppercase for the developer-
13
+ console voice, depth carried by a tight border hierarchy."
14
+ />
15
+
16
+ <style>
17
+ /* :root paste — sourced verbatim from design-systems/supabase/tokens.css. */
18
+ :root {
19
+ --bg: #171717;
20
+ --surface: #1c1c1c;
21
+ --surface-warm: var(--surface);
22
+
23
+ --fg: #fafafa;
24
+ --fg-2: #b4b4b4;
25
+ --muted: #898989;
26
+ --meta: #4d4d4d;
27
+
28
+ --border: #2e2e2e;
29
+ --border-soft: #242424;
30
+
31
+ --accent: #3ecf8e;
32
+ --accent-on: #0f0f0f;
33
+ --accent-hover: #00c573;
34
+ --accent-active: color-mix(in oklab, var(--accent), black 14%);
35
+
36
+ --success: #16a34a;
37
+ --warn: #eab308;
38
+ --danger: #dc2626;
39
+
40
+ --font-display: "Circular", "custom-font", "Helvetica Neue", Helvetica, Arial, sans-serif;
41
+ --font-body: "Circular", "custom-font", "Helvetica Neue", Helvetica, Arial, sans-serif;
42
+ --font-mono: "Source Code Pro", "Office Code Pro", Menlo, Monaco, Consolas, monospace;
43
+
44
+ --text-xs: 12px;
45
+ --text-sm: 14px;
46
+ --text-base: 16px;
47
+ --text-lg: 18px;
48
+ --text-xl: 24px;
49
+ --text-2xl: 32px;
50
+ --text-3xl: 36px;
51
+ --text-4xl: 72px;
52
+
53
+ --leading-body: 1.5;
54
+ --leading-tight: 1.00;
55
+ --tracking-display: normal;
56
+
57
+ --space-1: 4px;
58
+ --space-2: 8px;
59
+ --space-3: 12px;
60
+ --space-4: 16px;
61
+ --space-5: 20px;
62
+ --space-6: 24px;
63
+ --space-8: 32px;
64
+ --space-12: 48px;
65
+
66
+ --section-y-desktop: 128px;
67
+ --section-y-tablet: 80px;
68
+ --section-y-phone: 48px;
69
+
70
+ --radius-sm: 6px;
71
+ --radius-md: 8px;
72
+ --radius-lg: 16px;
73
+ --radius-pill: 9999px;
74
+
75
+ --elev-flat: none;
76
+ --elev-ring: 0 0 0 1px var(--border);
77
+ --elev-raised: 0 0 0 1px var(--border), 0 4px 12px rgba(0, 0, 0, 0.4);
78
+
79
+ --focus-ring: 0 0 0 2px color-mix(in oklab, var(--accent), transparent 50%);
80
+
81
+ --motion-fast: 150ms;
82
+ --motion-base: 200ms;
83
+ --ease-standard: cubic-bezier(0.2, 0, 0, 1);
84
+
85
+ --container-max: 1200px;
86
+ --container-gutter-desktop: 24px;
87
+ --container-gutter-tablet: 16px;
88
+ --container-gutter-phone: 16px;
89
+ }
90
+
91
+ /* ─── Reset (minimal) ─────────────────────────────────────── */
92
+ *, *::before, *::after { box-sizing: border-box; }
93
+ html, body { margin: 0; padding: 0; }
94
+ body {
95
+ background: var(--bg);
96
+ color: var(--fg-2);
97
+ font-family: var(--font-body);
98
+ font-size: var(--text-base);
99
+ line-height: var(--leading-body);
100
+ font-weight: 400;
101
+ -webkit-font-smoothing: antialiased;
102
+ text-rendering: optimizeLegibility;
103
+ }
104
+
105
+ /* ─── Layout primitives ─────────────────────────────────── */
106
+ .container {
107
+ max-width: var(--container-max);
108
+ margin-inline: auto;
109
+ padding-inline: var(--container-gutter-desktop);
110
+ }
111
+ section {
112
+ padding-block: var(--section-y-desktop);
113
+ }
114
+ section + section {
115
+ /* DESIGN.md §6: depth comes from borders, not shadows. Section
116
+ dividers use the standard border tier — a hairline against
117
+ the dark canvas, the brand's "edges define" promise. */
118
+ border-top: 1px solid var(--border);
119
+ }
120
+ @media (max-width: 1023px) {
121
+ .container { padding-inline: var(--container-gutter-tablet); }
122
+ section { padding-block: var(--section-y-tablet); }
123
+ }
124
+ @media (max-width: 639px) {
125
+ .container { padding-inline: var(--container-gutter-phone); }
126
+ section { padding-block: var(--section-y-phone); }
127
+ }
128
+
129
+ /* ─── Typography ────────────────────────────────────────────
130
+ * Weight restraint: 400 for prose, 500 for interactive elements.
131
+ * DESIGN.md §3 Principles: "There is no bold (700) in the
132
+ * detected system — hierarchy is created through size, not
133
+ * weight." Display sizes hold at leading 1.00 (the defining
134
+ * gesture) and tracking `normal`; smaller scales relax leading
135
+ * upward as the table in DESIGN.md §3 prescribes. */
136
+ h1, h2, h3, h4 {
137
+ font-family: var(--font-display);
138
+ font-weight: 400;
139
+ margin: 0;
140
+ color: var(--fg);
141
+ line-height: var(--leading-tight);
142
+ letter-spacing: var(--tracking-display);
143
+ }
144
+ h1 {
145
+ font-size: var(--text-4xl);
146
+ /* DESIGN.md §3 Display Hero: 72px / 1.00 leading / normal
147
+ tracking — the terminal-density typographic signature. */
148
+ }
149
+ h2 {
150
+ font-size: var(--text-3xl);
151
+ /* DESIGN.md §3 Section Heading: 36px / 1.25 leading.
152
+ Overrides the shared 1.00 set above. */
153
+ line-height: 1.25;
154
+ }
155
+ h3 {
156
+ font-size: var(--text-xl);
157
+ /* DESIGN.md §3 Card Title: 24px / 1.33 leading / -0.16px
158
+ tracking ≈ -0.0067em. The subtle negative tracking is the
159
+ card-title differentiation from body text. */
160
+ line-height: 1.33;
161
+ letter-spacing: -0.0067em;
162
+ }
163
+ h4 {
164
+ font-size: var(--text-lg);
165
+ line-height: 1.56;
166
+ }
167
+ p { margin: 0; }
168
+
169
+ .lede {
170
+ font-size: var(--text-base);
171
+ line-height: var(--leading-body);
172
+ color: var(--fg-2);
173
+ max-width: 56ch;
174
+ }
175
+ .body-muted { color: var(--muted); }
176
+ .body-meta { color: var(--meta); font-size: var(--text-sm); }
177
+ .body-sm { font-size: var(--text-sm); }
178
+
179
+ /* Eyebrow uses Source Code Pro uppercase — DESIGN.md §3:
180
+ "Source Code Pro in uppercase with 1.2px letter-spacing is
181
+ the 'developer console' voice — used sparingly for technical
182
+ labels that connect to the product experience." 1.2px at
183
+ 12px ≈ 0.1em. */
184
+ .eyebrow {
185
+ font-family: var(--font-mono);
186
+ font-size: var(--text-xs);
187
+ font-weight: 400;
188
+ line-height: 1.33;
189
+ color: var(--muted);
190
+ text-transform: uppercase;
191
+ letter-spacing: 0.1em;
192
+ }
193
+
194
+ .stack-3 > * + * { margin-block-start: var(--space-3); }
195
+ .stack-4 > * + * { margin-block-start: var(--space-4); }
196
+ .stack-6 > * + * { margin-block-start: var(--space-6); }
197
+
198
+ /* ─── Buttons ───────────────────────────────────────────────
199
+ * DESIGN.md §4 + §7: primary CTAs are pills (9999px radius),
200
+ * ghost buttons take the 6px standard radius. The brand
201
+ * deliberately FORBIDS in-between radii on buttons. The
202
+ * primary pill is `#0f0f0f` background with `#fafafa` text and
203
+ * a white border — the brand's "pill on dark" pattern, NOT
204
+ * `background: var(--accent)`. Emerald stays reserved for the
205
+ * brand-pill variant below and for links + focus. */
206
+ .btn {
207
+ display: inline-flex;
208
+ align-items: center;
209
+ gap: var(--space-2);
210
+ padding: var(--space-2) var(--space-8);
211
+ border: 1px solid transparent;
212
+ border-radius: var(--radius-pill);
213
+ font-family: var(--font-display);
214
+ font-size: var(--text-sm);
215
+ font-weight: 500;
216
+ line-height: 1.14;
217
+ cursor: pointer;
218
+ text-decoration: none;
219
+ background: transparent;
220
+ color: inherit;
221
+ transition:
222
+ background-color var(--motion-fast) var(--ease-standard),
223
+ border-color var(--motion-fast) var(--ease-standard),
224
+ color var(--motion-fast) var(--ease-standard);
225
+ }
226
+ .btn:focus-visible {
227
+ outline: none;
228
+ box-shadow: var(--focus-ring);
229
+ }
230
+ .btn-primary {
231
+ background: #0f0f0f;
232
+ color: var(--fg);
233
+ border-color: var(--fg);
234
+ }
235
+ .btn-primary:hover {
236
+ background: color-mix(in oklab, #0f0f0f, var(--fg) 6%);
237
+ }
238
+ .btn-secondary {
239
+ background: #0f0f0f;
240
+ color: var(--fg);
241
+ border-color: var(--border);
242
+ opacity: 0.92;
243
+ }
244
+ .btn-secondary:hover {
245
+ border-color: color-mix(in oklab, var(--border), var(--fg) 16%);
246
+ opacity: 1;
247
+ }
248
+ /* Brand pill — the one place emerald appears as a button surface.
249
+ Reserved for the single highest-intent CTA per screen so the
250
+ ≤2 accent-uses budget stays honest. */
251
+ .btn-brand {
252
+ background: var(--accent);
253
+ color: var(--accent-on);
254
+ border-color: var(--accent);
255
+ }
256
+ .btn-brand:hover {
257
+ background: var(--accent-hover);
258
+ border-color: var(--accent-hover);
259
+ }
260
+ .btn-brand:active { background: var(--accent-active); }
261
+ .btn-ghost {
262
+ background: transparent;
263
+ color: var(--fg);
264
+ border-radius: var(--radius-sm);
265
+ padding: var(--space-2) var(--space-3);
266
+ border-color: transparent;
267
+ }
268
+ .btn-ghost:hover {
269
+ background: var(--surface);
270
+ }
271
+
272
+ /* ─── Inputs ────────────────────────────────────────────────
273
+ * Border-defined edges (DESIGN.md §6 — no shadows on dark).
274
+ * On focus the border resolves to the brand accent at full
275
+ * saturation, layered with the green focus halo. */
276
+ .field {
277
+ display: flex;
278
+ flex-direction: column;
279
+ gap: var(--space-2);
280
+ }
281
+ .field label {
282
+ font-size: var(--text-sm);
283
+ font-weight: 500;
284
+ color: var(--fg);
285
+ }
286
+ .field input {
287
+ padding: var(--space-3) var(--space-4);
288
+ border: 1px solid var(--border);
289
+ border-radius: var(--radius-sm);
290
+ background: var(--bg);
291
+ color: var(--fg);
292
+ font-family: inherit;
293
+ font-size: var(--text-sm);
294
+ line-height: 1.43;
295
+ outline: none;
296
+ transition:
297
+ border-color var(--motion-fast) var(--ease-standard),
298
+ box-shadow var(--motion-fast) var(--ease-standard);
299
+ }
300
+ .field input::placeholder { color: var(--meta); }
301
+ .field input:hover { border-color: #393939; }
302
+ .field input:focus-visible {
303
+ border-color: var(--accent);
304
+ box-shadow: var(--focus-ring);
305
+ }
306
+ .field-help {
307
+ font-size: var(--text-xs);
308
+ color: var(--muted);
309
+ }
310
+
311
+ /* ─── Cards ─────────────────────────────────────────────────
312
+ * Border defines the edge (DESIGN.md §4): #2e2e2e at 8px or
313
+ * 16px radius depending on hierarchy. No shadows by default —
314
+ * the hover state introduces the green-accent border for the
315
+ * "brand-highlighted" elevation (DESIGN.md §6 Level 3). */
316
+ .card {
317
+ background: var(--surface);
318
+ border: 1px solid var(--border);
319
+ border-radius: var(--radius-lg);
320
+ padding: var(--space-6);
321
+ display: flex;
322
+ flex-direction: column;
323
+ gap: var(--space-4);
324
+ transition:
325
+ border-color var(--motion-base) var(--ease-standard),
326
+ background-color var(--motion-base) var(--ease-standard);
327
+ }
328
+ .card:hover {
329
+ border-color: color-mix(in oklab, var(--accent), transparent 70%);
330
+ }
331
+
332
+ /* ─── Badges ────────────────────────────────────────────────
333
+ * Pill badges with hairline borders — Supabase uses these for
334
+ * status markers and stage labels. The accent badge tints the
335
+ * brand emerald against the dark surface; the muted badge
336
+ * sits on the standard border tier. */
337
+ .badge {
338
+ display: inline-flex;
339
+ align-items: center;
340
+ gap: var(--space-1);
341
+ padding: var(--space-1) var(--space-3);
342
+ border-radius: var(--radius-pill);
343
+ font-family: var(--font-display);
344
+ font-size: var(--text-xs);
345
+ font-weight: 500;
346
+ line-height: 1.33;
347
+ border: 1px solid transparent;
348
+ }
349
+ .badge-accent {
350
+ color: var(--accent);
351
+ background: color-mix(in oklab, var(--accent), var(--bg) 88%);
352
+ border-color: color-mix(in oklab, var(--accent), transparent 70%);
353
+ }
354
+ .badge-muted {
355
+ color: var(--fg-2);
356
+ background: var(--surface);
357
+ border-color: var(--border);
358
+ }
359
+ .badge-success {
360
+ color: var(--success);
361
+ background: color-mix(in oklab, var(--success), var(--bg) 88%);
362
+ border-color: color-mix(in oklab, var(--success), transparent 75%);
363
+ }
364
+ .badge-dot {
365
+ width: 6px;
366
+ height: 6px;
367
+ border-radius: var(--radius-pill);
368
+ background: currentColor;
369
+ }
370
+
371
+ /* ─── Links ─────────────────────────────────────────────────
372
+ * DESIGN.md §4: "Green: #00c573 — Supabase-branded links." We
373
+ * bind link color to the interactive-green variant (which is
374
+ * `--accent-hover` in this brand's mapping — see tokens.css §4)
375
+ * because that's the documented interactive form of the accent. */
376
+ a {
377
+ color: var(--accent-hover);
378
+ text-decoration: none;
379
+ border-bottom: 1px solid color-mix(in oklab, var(--accent-hover), transparent 70%);
380
+ transition:
381
+ color var(--motion-fast) var(--ease-standard),
382
+ border-color var(--motion-fast) var(--ease-standard);
383
+ }
384
+ a:hover {
385
+ color: var(--accent);
386
+ border-bottom-color: var(--accent);
387
+ }
388
+ a:focus-visible {
389
+ outline: none;
390
+ border-radius: 2px;
391
+ box-shadow: var(--focus-ring);
392
+ }
393
+
394
+ /* ─── Kbd ───────────────────────────────────────────────────
395
+ * Source Code Pro, hairline border edge. Supabase uses kbd
396
+ * marks throughout docs with the same border-defined restraint. */
397
+ kbd {
398
+ font-family: var(--font-mono);
399
+ font-size: var(--text-xs);
400
+ padding: 2px var(--space-2);
401
+ border-radius: 4px;
402
+ background: var(--surface);
403
+ color: var(--fg);
404
+ border: 1px solid var(--border);
405
+ }
406
+
407
+ /* ─── Code chip (inline) ────────────────────────────────────
408
+ * Source Code Pro at body-adjacent size for inline product
409
+ * references — table names, env vars, function signatures. */
410
+ code.chip {
411
+ font-family: var(--font-mono);
412
+ font-size: 0.92em;
413
+ color: var(--accent);
414
+ background: color-mix(in oklab, var(--accent), var(--bg) 92%);
415
+ padding: 2px var(--space-2);
416
+ border-radius: 4px;
417
+ }
418
+
419
+ /* ─── Section-specific layout ─────────────────────────────── */
420
+ .hero {
421
+ position: relative;
422
+ overflow: hidden;
423
+ }
424
+ /* Atmospheric green wash — the single chromatic moment behind
425
+ the hero headline. A radial of `var(--accent)` at low opacity
426
+ echoes Supabase's logo-as-canvas treatment without violating
427
+ the ≤2 accent uses budget (the wash is decorative atmosphere,
428
+ not a labeled accent surface). */
429
+ .hero::before {
430
+ content: "";
431
+ position: absolute;
432
+ inset: -20% -10% auto -10%;
433
+ height: 70%;
434
+ background:
435
+ radial-gradient(
436
+ 55% 60% at 18% 30%,
437
+ color-mix(in oklab, var(--accent), var(--bg) 70%) 0%,
438
+ var(--bg) 60%
439
+ );
440
+ opacity: 0.55;
441
+ filter: blur(60px);
442
+ z-index: 0;
443
+ pointer-events: none;
444
+ }
445
+ .hero > * { position: relative; z-index: 1; }
446
+ .hero .eyebrow { margin-block-end: var(--space-5); }
447
+ .hero h1 { max-width: 16ch; }
448
+ .hero .lede {
449
+ max-width: 56ch;
450
+ margin-block-start: var(--space-6);
451
+ font-size: var(--text-lg);
452
+ line-height: 1.56;
453
+ }
454
+ .hero-actions {
455
+ display: flex;
456
+ gap: var(--space-3);
457
+ margin-block-start: var(--space-8);
458
+ align-items: center;
459
+ flex-wrap: wrap;
460
+ }
461
+ .hero-meta {
462
+ display: inline-flex;
463
+ align-items: center;
464
+ gap: var(--space-3);
465
+ margin-block-start: var(--space-6);
466
+ color: var(--muted);
467
+ font-size: var(--text-sm);
468
+ flex-wrap: wrap;
469
+ }
470
+
471
+ .features-grid {
472
+ display: grid;
473
+ grid-template-columns: repeat(3, 1fr);
474
+ gap: var(--space-5);
475
+ margin-block-start: var(--space-8);
476
+ }
477
+ @media (max-width: 1023px) {
478
+ .features-grid { grid-template-columns: 1fr 1fr; }
479
+ }
480
+ @media (max-width: 639px) {
481
+ .features-grid { grid-template-columns: 1fr; }
482
+ }
483
+ .feature-icon {
484
+ width: 36px;
485
+ height: 36px;
486
+ border-radius: var(--radius-md);
487
+ border: 1px solid var(--border);
488
+ background: var(--bg);
489
+ display: inline-flex;
490
+ align-items: center;
491
+ justify-content: center;
492
+ color: var(--accent);
493
+ }
494
+ .feature-icon svg { width: 18px; height: 18px; }
495
+
496
+ .form-row {
497
+ display: grid;
498
+ grid-template-columns: 1.2fr 1fr;
499
+ gap: var(--space-12);
500
+ align-items: start;
501
+ margin-block-start: var(--space-8);
502
+ }
503
+ @media (max-width: 1023px) {
504
+ .form-row { grid-template-columns: 1fr; gap: var(--space-8); }
505
+ }
506
+ .form {
507
+ display: flex;
508
+ flex-direction: column;
509
+ gap: var(--space-4);
510
+ max-width: 440px;
511
+ padding: var(--space-6);
512
+ background: var(--surface);
513
+ border: 1px solid var(--border);
514
+ border-radius: var(--radius-md);
515
+ box-shadow: var(--elev-raised);
516
+ }
517
+ .form-actions {
518
+ display: flex;
519
+ gap: var(--space-3);
520
+ margin-block-start: var(--space-2);
521
+ align-items: center;
522
+ flex-wrap: wrap;
523
+ }
524
+
525
+ .row-between {
526
+ display: flex;
527
+ align-items: center;
528
+ justify-content: space-between;
529
+ gap: var(--space-3);
530
+ }
531
+ .icon { width: 16px; height: 16px; flex-shrink: 0; }
532
+ </style>
533
+ </head>
534
+ <body>
535
+ <main class="container">
536
+ <!-- ════════════════════════════════════════════════════════════
537
+ HERO — exercises: radial green wash (the one chromatic
538
+ moment per screen), h1 at 72px Circular weight 400 with
539
+ leading 1.00 (the terminal-density signature), .lede in
540
+ --fg-2, .btn-brand (the emerald pill), .btn-secondary
541
+ (dark pill with hairline border), Source Code Pro eyebrow.
542
+ Hero copy reflects Supabase's "build in a weekend, scale
543
+ to millions" voice — confident, technical, terse.
544
+ ═══════════════════════════════════════════════════════════════ -->
545
+ <section class="hero" data-od-id="hero">
546
+ <p class="eyebrow">// open source · postgres-native</p>
547
+ <h1>Build in a weekend. Scale to millions.</h1>
548
+ <p class="lede">
549
+ Every Supabase project ships with a Postgres database,
550
+ authentication, instant APIs, edge functions, realtime
551
+ subscriptions, and object storage. Start with a
552
+ <code class="chip">create table</code>, deploy with a
553
+ <code class="chip">git push</code>, and let the platform
554
+ carry the load when traffic finds you.
555
+ </p>
556
+ <div class="hero-actions">
557
+ <a href="./tokens.css" class="btn btn-brand" style="border-bottom: none">
558
+ Start your project
559
+ <svg
560
+ class="icon"
561
+ viewBox="0 0 24 24"
562
+ fill="none"
563
+ stroke="currentColor"
564
+ stroke-width="1.75"
565
+ stroke-linecap="round"
566
+ stroke-linejoin="round"
567
+ aria-hidden="true"
568
+ >
569
+ <path d="M5 12h14M13 6l6 6-6 6" />
570
+ </svg>
571
+ </a>
572
+ <a href="./DESIGN.md" class="btn btn-secondary" style="border-bottom: none">
573
+ Read the docs
574
+ </a>
575
+ </div>
576
+ <p class="hero-meta">
577
+ <span class="badge badge-muted">
578
+ <span class="badge-dot" aria-hidden="true" style="color: var(--success)"></span>
579
+ All systems normal
580
+ </span>
581
+ <span>Press <kbd>⌘</kbd> <kbd>K</kbd> to search the docs.</span>
582
+ </p>
583
+ </section>
584
+
585
+ <!-- ════════════════════════════════════════════════════════════
586
+ FEATURE CARDS — three cards exercising: .card (border-as-
587
+ depth, no shadow), h3 with -0.0067em tracking and 1.33
588
+ leading (DESIGN.md card-title row), .feature-icon (hairline
589
+ bordered square with emerald glyph), .badge-accent (the
590
+ tinted brand-status pill), link bottom-border underline.
591
+ Three cards per row at desktop, collapse to two then one.
592
+ ═══════════════════════════════════════════════════════════════ -->
593
+ <section data-od-id="features">
594
+ <p class="eyebrow">// the stack</p>
595
+ <h2 style="max-width: 26ch; margin-block-start: var(--space-4)">
596
+ The open source backend that grew up.
597
+ </h2>
598
+ <p class="body-muted" style="margin-block-start: var(--space-4); max-width: 56ch">
599
+ One project, six services, all standing on Postgres. Bring
600
+ your own SQL — the rest of the platform speaks your schema.
601
+ </p>
602
+
603
+ <div class="features-grid">
604
+ <article class="card">
605
+ <div class="row-between">
606
+ <span class="feature-icon" aria-hidden="true">
607
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round">
608
+ <ellipse cx="12" cy="6" rx="8" ry="3" />
609
+ <path d="M4 6v6c0 1.66 3.58 3 8 3s8-1.34 8-3V6" />
610
+ <path d="M4 12v6c0 1.66 3.58 3 8 3s8-1.34 8-3v-6" />
611
+ </svg>
612
+ </span>
613
+ <span class="badge badge-accent">Postgres 16</span>
614
+ </div>
615
+ <h3>A dedicated database, on day one.</h3>
616
+ <p class="body-muted body-sm">
617
+ Every project gets a fully-managed Postgres instance with
618
+ extensions, point-in-time recovery, and read replicas. The
619
+ <code class="chip">supabase</code> CLI streams migrations
620
+ from <code class="chip">/supabase/migrations</code> straight
621
+ to production.
622
+ </p>
623
+ <a href="./tokens.css" class="body-sm">Explore the database &rarr;</a>
624
+ </article>
625
+
626
+ <article class="card">
627
+ <div class="row-between">
628
+ <span class="feature-icon" aria-hidden="true">
629
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round">
630
+ <rect x="3" y="11" width="18" height="10" rx="2" />
631
+ <path d="M7 11V7a5 5 0 0 1 10 0v4" />
632
+ </svg>
633
+ </span>
634
+ <span class="badge badge-accent">Row-level</span>
635
+ </div>
636
+ <h3>Auth that respects your schema.</h3>
637
+ <p class="body-muted body-sm">
638
+ Email, OAuth, magic links, and SAML — all writing to a
639
+ <code class="chip">auth.users</code> table you can join
640
+ against. Row-level security policies enforce access in
641
+ the database, not in middleware.
642
+ </p>
643
+ <a href="./DESIGN.md" class="body-sm">See the auth flow &rarr;</a>
644
+ </article>
645
+
646
+ <article class="card">
647
+ <div class="row-between">
648
+ <span class="feature-icon" aria-hidden="true">
649
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round">
650
+ <path d="M12 2v20M2 12h20" />
651
+ <circle cx="12" cy="12" r="9" />
652
+ </svg>
653
+ </span>
654
+ <span class="badge badge-success">
655
+ <span class="badge-dot" aria-hidden="true"></span>
656
+ Realtime
657
+ </span>
658
+ </div>
659
+ <h3>Subscriptions over your data.</h3>
660
+ <p class="body-muted body-sm">
661
+ Listen to row inserts, updates, and deletes from the
662
+ browser — no extra service, no manual fan-out. Realtime
663
+ streams Postgres' write-ahead log to authorized clients
664
+ over a single WebSocket.
665
+ </p>
666
+ <a href="./tokens.css" class="body-sm">Inspect the channel &rarr;</a>
667
+ </article>
668
+ </div>
669
+ </section>
670
+
671
+ <!-- ════════════════════════════════════════════════════════════
672
+ FORM — exercises: .field with border-defined input edges,
673
+ focus-visible swap to the emerald border + green focus
674
+ halo, .btn-brand and .btn-secondary reuse. Form sits in
675
+ its own bordered card with the brand's minimal elev-raised
676
+ shadow so the inputs read as recessed beneath the card.
677
+ ═══════════════════════════════════════════════════════════════ -->
678
+ <section data-od-id="form">
679
+ <p class="eyebrow">// get the launch kit</p>
680
+ <h2 style="margin-block-start: var(--space-4); max-width: 28ch">
681
+ Ship the schema. We'll handle the rest.
682
+ </h2>
683
+
684
+ <div class="form-row">
685
+ <div class="stack-4">
686
+ <p class="body-muted" style="max-width: 48ch">
687
+ Inputs, focus rings, and edges all derive from
688
+ <code class="chip">--border</code> and
689
+ <code class="chip">--accent</code>. The primary CTA reuses
690
+ <code class="chip">.btn-brand</code> unchanged — emerald
691
+ fill, near-black label, pill radius. No raw hex anywhere
692
+ in the component CSS.
693
+ </p>
694
+ <p class="body-muted body-sm">
695
+ Press <kbd>Enter</kbd> on the email field to submit. The
696
+ focus halo lands at the documented brand-highlight tint
697
+ (<code class="chip">rgba(62, 207, 142, 0.5)</code>) —
698
+ visible against the canvas without dominating the page.
699
+ </p>
700
+ <p class="body-meta">
701
+ Full reference at <a href="./tokens.css">tokens.css</a> ·
702
+ spec at <a href="./DESIGN.md">DESIGN.md</a>.
703
+ </p>
704
+ </div>
705
+
706
+ <form class="form" onsubmit="event.preventDefault();">
707
+ <div class="row-between">
708
+ <p class="eyebrow">// launch kit</p>
709
+ <span class="badge badge-success">
710
+ <span class="badge-dot" aria-hidden="true"></span>
711
+ Open
712
+ </span>
713
+ </div>
714
+ <div class="field">
715
+ <label for="email">Work email</label>
716
+ <input
717
+ id="email"
718
+ type="email"
719
+ placeholder="you@team.dev"
720
+ autocomplete="email"
721
+ required
722
+ />
723
+ <p class="field-help">
724
+ We'll send the starter repo and a Postgres schema you
725
+ can <code class="chip">supabase db push</code> on day one.
726
+ </p>
727
+ </div>
728
+ <div class="form-actions">
729
+ <button type="submit" class="btn btn-brand">
730
+ Send the kit
731
+ </button>
732
+ <button type="button" class="btn btn-ghost">
733
+ Browse the docs
734
+ </button>
735
+ </div>
736
+ </form>
737
+ </div>
738
+ </section>
739
+ </main>
740
+ </body>
741
+ </html>