@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,398 @@
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>Meta — reference components</title>
7
+ <meta
8
+ name="description"
9
+ content="Reference fixture for design-systems/meta. Photography-first retail polish:
10
+ white canvas, Optimistic VF type, Meta Blue (#0064E0) pill CTAs, gallery whitespace."
11
+ />
12
+
13
+ <style>
14
+ :root {
15
+ --bg: #ffffff;
16
+ --surface: #f7f8fa;
17
+ --surface-warm: #f2f0e6;
18
+
19
+ --fg: #1c2b33;
20
+ --fg-2: #5d6c7b;
21
+ --muted: #65676b;
22
+ --meta: #8595a4;
23
+
24
+ --border: #ced0d4;
25
+ --border-soft: #dee3e9;
26
+
27
+ --accent: #0064e0;
28
+ --accent-on: #ffffff;
29
+ --accent-hover: #0143b5;
30
+ --accent-active: #004bb9;
31
+
32
+ --success: #31a24c;
33
+ --warn: #f7b928;
34
+ --danger: #e41e3f;
35
+
36
+ --font-display: "Optimistic VF", "Optimistic", Inter, Montserrat, Helvetica, Arial, "Noto Sans", sans-serif;
37
+ --font-body: "Optimistic VF", "Optimistic", Inter, Montserrat, Helvetica, Arial, "Noto Sans", sans-serif;
38
+ --font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
39
+
40
+ --text-xs: 12px;
41
+ --text-sm: 14px;
42
+ --text-base: 16px;
43
+ --text-lg: 18px;
44
+ --text-xl: 28px;
45
+ --text-2xl: 36px;
46
+ --text-3xl: 48px;
47
+ --text-4xl: 64px;
48
+
49
+ --leading-body: 1.5;
50
+ --leading-tight: 1.16;
51
+ --tracking-display: -0.01em;
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: 80px;
63
+ --section-y-tablet: 64px;
64
+ --section-y-phone: 48px;
65
+
66
+ --radius-sm: 8px;
67
+ --radius-md: 20px;
68
+ --radius-lg: 24px;
69
+ --radius-pill: 100px;
70
+
71
+ --elev-flat: none;
72
+ --elev-ring: 0 0 0 1px var(--border);
73
+ --elev-raised:
74
+ 0 12px 28px 0 rgba(0, 0, 0, 0.2),
75
+ 0 2px 4px 0 rgba(0, 0, 0, 0.1);
76
+
77
+ --focus-ring: 0 0 0 3px color-mix(in oklab, var(--accent), transparent 70%);
78
+
79
+ --motion-fast: 150ms;
80
+ --motion-base: 200ms;
81
+ --ease-standard: cubic-bezier(0.2, 0, 0, 1);
82
+
83
+ --container-max: 1440px;
84
+ --container-gutter-desktop: 40px;
85
+ --container-gutter-tablet: 24px;
86
+ --container-gutter-phone: 16px;
87
+ }
88
+
89
+ /* ─── Reset ─────────────────────────────────────────────── */
90
+ *, *::before, *::after { box-sizing: border-box; }
91
+ html, body { margin: 0; padding: 0; }
92
+ body {
93
+ background: var(--bg);
94
+ color: var(--fg);
95
+ font-family: var(--font-body);
96
+ font-size: var(--text-base);
97
+ line-height: var(--leading-body);
98
+ -webkit-font-smoothing: antialiased;
99
+ font-feature-settings: "ss01", "ss02";
100
+ }
101
+
102
+ /* ─── Layout ─────────────────────────────────────────────── */
103
+ .container { max-width: var(--container-max); margin-inline: auto; padding-inline: var(--container-gutter-desktop); }
104
+ section { padding-block: var(--section-y-desktop); }
105
+ @media (max-width: 1023px) {
106
+ .container { padding-inline: var(--container-gutter-tablet); }
107
+ section { padding-block: var(--section-y-tablet); }
108
+ }
109
+ @media (max-width: 639px) {
110
+ .container { padding-inline: var(--container-gutter-phone); }
111
+ section { padding-block: var(--section-y-phone); }
112
+ }
113
+
114
+ /* Alternating light cadence — DESIGN.md §1 walkthrough rhythm */
115
+ .surface-soft { background: var(--surface); }
116
+
117
+ /* ─── Typography — Optimistic VF, weight carries hierarchy ── */
118
+ h1, h2, h3 {
119
+ font-family: var(--font-display);
120
+ line-height: var(--leading-tight);
121
+ margin: 0;
122
+ color: var(--fg);
123
+ }
124
+ h1 { font-size: var(--text-4xl); font-weight: 500; letter-spacing: var(--tracking-display); }
125
+ h2 { font-size: var(--text-3xl); font-weight: 500; letter-spacing: var(--tracking-display); }
126
+ h3 { font-size: var(--text-lg); font-weight: 700; }
127
+ p { margin: 0; }
128
+ .lead { font-size: var(--text-lg); color: var(--fg-2); line-height: 1.44; font-weight: 300; }
129
+ .body-muted { color: var(--fg-2); }
130
+ .body-meta { color: var(--muted); }
131
+ .body-sm { font-size: var(--text-sm); }
132
+ .eyebrow {
133
+ font-size: var(--text-xs);
134
+ color: var(--muted);
135
+ text-transform: uppercase;
136
+ letter-spacing: 0.12em;
137
+ font-weight: 500;
138
+ }
139
+ .stack-3 > * + * { margin-block-start: var(--space-3); }
140
+ .stack-4 > * + * { margin-block-start: var(--space-4); }
141
+ .stack-6 > * + * { margin-block-start: var(--space-6); }
142
+ .stack-8 > * + * { margin-block-start: var(--space-8); }
143
+
144
+ @media (max-width: 1023px) {
145
+ h1 { font-size: var(--text-3xl); }
146
+ }
147
+ @media (max-width: 639px) {
148
+ h1 { font-size: var(--text-2xl); }
149
+ h2 { font-size: var(--text-xl); }
150
+ }
151
+
152
+ /* ─── Buttons — Meta Blue pill ───────────────────────────── */
153
+ .btn {
154
+ display: inline-flex;
155
+ align-items: center;
156
+ gap: var(--space-2);
157
+ padding: 10px 22px;
158
+ border-radius: var(--radius-pill);
159
+ font-family: var(--font-body);
160
+ font-size: var(--text-sm);
161
+ font-weight: 500;
162
+ line-height: 1.43;
163
+ letter-spacing: -0.14px;
164
+ cursor: pointer;
165
+ border: none;
166
+ text-decoration: none;
167
+ transition:
168
+ background-color var(--motion-base) var(--ease-standard),
169
+ color var(--motion-base) var(--ease-standard),
170
+ transform var(--motion-fast) var(--ease-standard);
171
+ }
172
+ .btn:focus-visible { outline: none; box-shadow: var(--focus-ring); }
173
+ /* Primary: Meta Blue pill — the only chromatic action */
174
+ .btn-primary {
175
+ background: var(--accent);
176
+ color: var(--accent-on);
177
+ }
178
+ .btn-primary:hover { background: var(--accent-hover); transform: scale(1.02); }
179
+ .btn-primary:active { background: var(--accent-active); transform: scale(0.98); }
180
+ /* Secondary: outlined pill, Dark Charcoal at 50% opacity per DESIGN.md §4 */
181
+ .btn-secondary {
182
+ background: transparent;
183
+ color: color-mix(in oklab, var(--fg), transparent 50%);
184
+ box-shadow: inset 0 0 0 2px rgba(10, 19, 23, 0.12);
185
+ }
186
+ .btn-secondary:hover {
187
+ background: color-mix(in oklab, var(--fg-2), transparent 30%);
188
+ color: var(--bg);
189
+ box-shadow: inset 0 0 0 2px transparent;
190
+ }
191
+
192
+ /* ─── Inputs — Dolly form pattern ────────────────────────── */
193
+ .field { display: flex; flex-direction: column; gap: var(--space-2); }
194
+ .field label { font-size: var(--text-sm); font-weight: 500; color: var(--fg); }
195
+ .field input {
196
+ padding: 12px 14px;
197
+ border-radius: var(--radius-sm);
198
+ border: 1px solid var(--border);
199
+ background: var(--bg);
200
+ color: var(--fg);
201
+ font-family: var(--font-body);
202
+ font-size: var(--text-base);
203
+ outline: none;
204
+ transition:
205
+ border-color var(--motion-base) var(--ease-standard),
206
+ box-shadow var(--motion-base) var(--ease-standard);
207
+ }
208
+ .field input:focus-visible {
209
+ border-color: var(--accent);
210
+ box-shadow: var(--focus-ring);
211
+ }
212
+ .field input::placeholder { color: var(--muted); }
213
+ .field-help { font-size: var(--text-xs); color: var(--muted); }
214
+
215
+ /* ─── Cards — 20px radius, dual-shadow elevation on hover ─ */
216
+ .card {
217
+ background: var(--bg);
218
+ border-radius: var(--radius-md);
219
+ padding: var(--space-8);
220
+ display: flex;
221
+ flex-direction: column;
222
+ gap: var(--space-4);
223
+ box-shadow: var(--elev-ring);
224
+ transition:
225
+ transform var(--motion-base) var(--ease-standard),
226
+ box-shadow var(--motion-base) var(--ease-standard);
227
+ }
228
+ .card:hover {
229
+ transform: translateY(-2px);
230
+ box-shadow: var(--elev-raised);
231
+ }
232
+ .card-feature {
233
+ background: var(--surface-warm);
234
+ border-radius: var(--radius-lg);
235
+ }
236
+
237
+ /* ─── Badges ─────────────────────────────────────────────── */
238
+ .badge {
239
+ display: inline-flex; align-items: center; gap: var(--space-2);
240
+ padding: 4px 10px;
241
+ border-radius: var(--radius-pill);
242
+ font-size: var(--text-xs); font-weight: 700; line-height: 1.43;
243
+ }
244
+ .badge-success { color: var(--success); background: color-mix(in oklab, var(--success), transparent 88%); }
245
+ .badge-muted { color: var(--muted); background: var(--surface); }
246
+ .badge-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
247
+
248
+ /* ─── Links ──────────────────────────────────────────────── */
249
+ a { color: var(--accent); text-decoration: none; transition: color var(--motion-fast) var(--ease-standard); }
250
+ a:hover { color: var(--accent-hover); text-decoration: underline; text-underline-offset: 3px; }
251
+ kbd {
252
+ font-family: var(--font-mono); font-size: var(--text-xs);
253
+ padding: 2px 6px; border-radius: var(--radius-sm);
254
+ border: 1px solid var(--border-soft); background: var(--surface); color: var(--muted);
255
+ }
256
+
257
+ /* ─── Layout helpers ─────────────────────────────────────── */
258
+ .hero-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: var(--space-12); align-items: end; }
259
+ @media (max-width: 1023px) { .hero-grid { grid-template-columns: 1fr; gap: var(--space-8); } }
260
+ .hero-actions { display: flex; gap: var(--space-3); margin-block-start: var(--space-8); flex-wrap: wrap; }
261
+ .hero-meta {
262
+ display: flex; flex-direction: column; gap: var(--space-4);
263
+ padding: var(--space-6);
264
+ border-radius: var(--radius-md);
265
+ background: var(--surface);
266
+ box-shadow: var(--elev-ring);
267
+ }
268
+ .features-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-6); }
269
+ @media (max-width: 1023px) { .features-grid { grid-template-columns: 1fr 1fr; gap: var(--space-4); } }
270
+ @media (max-width: 639px) { .features-grid { grid-template-columns: 1fr; } }
271
+ .form-row { display: grid; grid-template-columns: 1.4fr 1fr; gap: var(--space-12); align-items: start; }
272
+ @media (max-width: 1023px) { .form-row { grid-template-columns: 1fr; gap: var(--space-8); } }
273
+ .form { display: flex; flex-direction: column; gap: var(--space-5); max-width: 440px; }
274
+ .form-actions { display: flex; gap: var(--space-3); margin-block-start: var(--space-2); }
275
+ .icon { width: 16px; height: 16px; flex-shrink: 0; }
276
+ .row-between { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); }
277
+
278
+ /* Brand mark — gradient logotype dot (Meta's blue → purple → magenta) */
279
+ .brand-mark {
280
+ display: inline-flex; align-items: center; gap: var(--space-2);
281
+ font-size: var(--text-sm); font-weight: 700; color: var(--fg);
282
+ }
283
+ .brand-mark::before {
284
+ content: "";
285
+ width: 14px; height: 14px;
286
+ border-radius: 50%;
287
+ background: linear-gradient(135deg, #0064e0 0%, #6441d2 50%, #d6311f 100%);
288
+ }
289
+ </style>
290
+ </head>
291
+ <body>
292
+ <main class="container">
293
+ <section data-od-id="hero">
294
+ <div class="hero-grid">
295
+ <div class="stack-6">
296
+ <span class="brand-mark">From Meta</span>
297
+ <h1 style="max-width: 16ch">Build what brings us closer.</h1>
298
+ <p class="lead" style="max-width: 56ch">
299
+ From mixed reality to open-source AI, we ship the platforms and tools that
300
+ billions of people use to create, connect, and discover what's next.
301
+ </p>
302
+ <div class="hero-actions">
303
+ <a href="./tokens.css" class="btn btn-primary">
304
+ Explore products
305
+ <svg class="icon" viewBox="0 0 24 24" fill="none"
306
+ stroke="currentColor" stroke-width="2"
307
+ stroke-linecap="round" stroke-linejoin="round"
308
+ aria-hidden="true"><path d="M5 12h14M13 6l6 6-6 6"/></svg>
309
+ </a>
310
+ <a href="./DESIGN.md" class="btn btn-secondary">Inside Meta</a>
311
+ </div>
312
+ </div>
313
+ <aside class="hero-meta" aria-label="Newsroom">
314
+ <div class="row-between">
315
+ <span class="eyebrow">Newsroom</span>
316
+ <span class="badge badge-success">
317
+ <span class="badge-dot" aria-hidden="true"></span>
318
+ Live
319
+ </span>
320
+ </div>
321
+ <p class="body-sm body-muted" style="line-height: 1.5">
322
+ Llama 4 ships with native multimodal reasoning. Quest 4 introduces full-color
323
+ passthrough across the entire device family.
324
+ </p>
325
+ <p class="body-sm body-meta">
326
+ Updated <time datetime="2026-05-15">2026-05-15</time> · Press
327
+ <kbd>⌘</kbd> <kbd>K</kbd> to search the press library.
328
+ </p>
329
+ </aside>
330
+ </div>
331
+ </section>
332
+
333
+ <section class="surface-soft" data-od-id="features">
334
+ <div class="stack-3">
335
+ <p class="eyebrow">What we build</p>
336
+ <h2 style="max-width: 22ch">Three product families, one long-running thesis.</h2>
337
+ <p class="lead" style="max-width: 60ch">
338
+ Every Meta surface — phone, headset, glasses, model, API — is built so the next
339
+ billion creators can move at the speed of imagination.
340
+ </p>
341
+ </div>
342
+ <div class="features-grid stack-8" style="margin-block-start: var(--space-12)">
343
+ <article class="card">
344
+ <span class="eyebrow">Meta AI</span>
345
+ <h3>An assistant that meets you where you are.</h3>
346
+ <p class="body-muted body-sm">
347
+ Llama-powered, multimodal, available in every Meta app — and open-weight
348
+ for anyone who wants to build on top.
349
+ </p>
350
+ <a href="./tokens.css" class="body-sm">Try Meta AI →</a>
351
+ </article>
352
+ <article class="card card-feature">
353
+ <span class="eyebrow">Reality Labs</span>
354
+ <h3>Mixed reality, finally for everyone.</h3>
355
+ <p class="body-muted body-sm">
356
+ Quest headsets and Ray-Ban Meta glasses share one platform — pass-through
357
+ video, spatial audio, and on-device AI built in.
358
+ </p>
359
+ <a href="./DESIGN.md" class="body-sm">Inside Reality Labs →</a>
360
+ </article>
361
+ <article class="card">
362
+ <span class="eyebrow">Open source</span>
363
+ <h3>The infrastructure of the open web.</h3>
364
+ <p class="body-muted body-sm">
365
+ PyTorch, Llama, React, GraphQL — Meta open-sources the technology that
366
+ billions of products depend on, every day.
367
+ </p>
368
+ <a href="./tokens.css" class="body-sm">Browse the catalog →</a>
369
+ </article>
370
+ </div>
371
+ </section>
372
+
373
+ <section data-od-id="form">
374
+ <div class="form-row">
375
+ <div class="stack-4">
376
+ <p class="eyebrow">Stay close to what's next</p>
377
+ <h2 style="max-width: 18ch">Get the Meta brief.</h2>
378
+ <p class="body-muted" style="max-width: 48ch">
379
+ Quarterly updates on our research, product launches, and open-source releases —
380
+ written by the people who built them. No marketing copy, no tracking pixels.
381
+ </p>
382
+ </div>
383
+ <form class="form" onsubmit="event.preventDefault();">
384
+ <div class="field">
385
+ <label for="email">Work email</label>
386
+ <input id="email" type="email" placeholder="you@company.com" autocomplete="email" required />
387
+ <p class="field-help">One short email per quarter. Unsubscribe in one click.</p>
388
+ </div>
389
+ <div class="form-actions">
390
+ <button type="submit" class="btn btn-primary">Subscribe</button>
391
+ <button type="button" class="btn btn-secondary">Read past issues</button>
392
+ </div>
393
+ </form>
394
+ </div>
395
+ </section>
396
+ </main>
397
+ </body>
398
+ </html>
@@ -0,0 +1,263 @@
1
+ /* ─────────────────────────────────────────────────────────────────────────
2
+ * design-systems/meta/tokens.css
3
+ *
4
+ * Structured token bindings for "Design System Inspired by Meta (Store)".
5
+ * Photography-first retail: pure white canvas, Optimistic VF typography,
6
+ * Meta Blue (#0064E0) reserved for action, generous gallery whitespace,
7
+ * pill-shaped CTAs, dual-shadow elevation.
8
+ *
9
+ * Brand-specific schema decisions (each one bends a schema convention to
10
+ * match Meta's voice rather than the cross-brand default):
11
+ *
12
+ * 1. `--bg` is pure white (#FFFFFF), `--surface` is Warm Gray
13
+ * (#F7F8FA — Dolly's --flat-card-bg), and `--surface-warm` is
14
+ * independently bound to Linen (#F2F0E6) — the "warm off-white for
15
+ * lifestyle-adjacent sections" called out in DESIGN.md §2. Three
16
+ * genuinely different surface tiers ladder up: white for browsing,
17
+ * warm gray for card differentiation, linen for the lifestyle /
18
+ * Ray-Ban-adjacent moments. Aliasing `--surface-warm` to surface
19
+ * would collapse a meaningful brand tier.
20
+ *
21
+ * 2. The foreground ramp binds four distinct tiers — Dark Charcoal
22
+ * (#1C2B33) → Slate Gray (#5D6C7B) → Secondary Text (#65676B) →
23
+ * CTA Disabled Text (#8595A4). DESIGN.md §2 names each one as a
24
+ * shipped Dolly/FDS token with its own role (heading vs body vs
25
+ * caption vs muted/disabled), so `--fg-2` and `--meta` are bound
26
+ * independently rather than aliased to `--fg` / `--muted`.
27
+ *
28
+ * 3. `--accent` is Meta Blue (#0064E0), NOT Facebook Blue (#1877F2).
29
+ * DESIGN.md §7 ("Don'ts") explicitly forbids Facebook Blue as a
30
+ * primary CTA color — the corporate Meta Store layer overlays a
31
+ * slightly deeper, more saturated blue on the FDS gray ramp.
32
+ * `--accent-hover` and `--accent-active` are bound to the exact
33
+ * Meta Blue Hover (#0143B5) and Pressed (#004BB9) hexes from
34
+ * DESIGN.md §2 rather than computed via `color-mix()`, because
35
+ * the Dolly hover/pressed pair is hand-tuned to land on different
36
+ * hue points than a flat luminance darken.
37
+ *
38
+ * 4. Semantic colors bind to the Dolly-store palette: Success Green
39
+ * (#31A24C), Warning Amber (#F7B928), Error Red (#E41E3F) — the
40
+ * "badge" tier from DESIGN.md §2. Darker store-confirmation
41
+ * variants (#007D1E, #C80A28) live in components, not the schema,
42
+ * because they are state overrides on top of the shared semantic
43
+ * slot rather than the slot itself.
44
+ *
45
+ * 5. `--font-display` and `--font-body` share the Optimistic VF
46
+ * stack with the documented fallbacks (Montserrat, Helvetica,
47
+ * Arial, Noto Sans). Inter is added as a humanist sans bridge for
48
+ * hosts that have neither Optimistic nor Montserrat installed —
49
+ * it matches Optimistic's geometric warmth more closely than the
50
+ * Helvetica/Arial fallbacks alone. The variable font keeps weight
51
+ * 300/400/500/700 all available; component CSS picks the weight,
52
+ * not the face.
53
+ *
54
+ * 6. The type scale tracks DESIGN.md §3 verbatim: 12 / 14 / 16 / 18
55
+ * / 28 / 36 / 48 / 64. The 18px tier (`--text-lg`) is Meta's
56
+ * primary body size — Body and Heading 3 BOTH live there per
57
+ * DESIGN.md §3 — while `--text-base` (16px) is Body Compact
58
+ * reserved for navigation and dense UI. Display tracking stays
59
+ * neutral (`-0.01em`) because DESIGN.md §3 specifies negative
60
+ * letter-spacing only at small sizes (`-0.14px` to `-0.16px` on
61
+ * 14–16px UI text), not on display headlines.
62
+ *
63
+ * 7. Section rhythm is gallery-generous: 80 / 64 / 48 px desktop /
64
+ * tablet / phone, mirroring the responsive padding ladder
65
+ * DESIGN.md §8 prescribes ("Section padding: 80 → 64 → 48 → 32").
66
+ * The 32px floor folds into component-level overrides on the
67
+ * smallest viewports rather than into the shared schema.
68
+ *
69
+ * 8. Radius scale: 8 / 20 / 24 / 100. DESIGN.md §5 explicitly
70
+ * enumerates these four tiers — 8px inputs, 20px standard cards
71
+ * (--card-corner-radius), 24px feature cards & ghost buttons,
72
+ * 100px pill — and `--radius-pill` is bound to literal `100px`
73
+ * (not the schema's 9999px sentinel) because the brand's pill
74
+ * radius IS 100px and that value flows into actual padding /
75
+ * stroke calculations on Meta-Blue CTAs.
76
+ *
77
+ * 9. `--elev-raised` reproduces DESIGN.md §6 Level 2 dual-shadow
78
+ * pattern verbatim: a small sharp shadow (0 2px 4px rgba(0,0,0,
79
+ * 0.1)) for direct-light contact + a large diffused shadow
80
+ * (0 12px 28px rgba(0,0,0,0.2)) for ambient-light depth.
81
+ * Reordering or dropping a layer breaks Meta's "physically
82
+ * plausible depth" feel — the brand specifically uses two
83
+ * shadows together, not one blurred soft shadow.
84
+ *
85
+ * 10. Container caps at 1440px per DESIGN.md §5 ("Max container
86
+ * width: ~1440px"), wider than Vercel's 1200 because the store
87
+ * surfaces full-bleed cinematic product photography that needs
88
+ * the room. Gutters step 40 / 24 / 16 to preserve generous
89
+ * breathing room around hero imagery on every breakpoint.
90
+ *
91
+ * Source contracts:
92
+ * - Standard token names: design-systems/_schema/tokens.schema.ts
93
+ * - A2 fallback parity: design-systems/_schema/defaults.css
94
+ * - Lint enforcement: apps/daemon/src/lint-artifact.ts
95
+ *
96
+ * Optimistic VF is not embedded; the stack falls back through
97
+ * Montserrat → Helvetica → Arial → Noto Sans so artifacts render
98
+ * acceptably on hosts that haven't loaded the commissioned face.
99
+ * ─────────────────────────────────────────────────────────────────── */
100
+
101
+ :root {
102
+ /* ─── Surface (3 levels — schema slot) ─────────────────────────────
103
+ * Binary plus a warm tier: pure white for browsing/information,
104
+ * Warm Gray for flat card differentiation, Linen as the lifestyle-
105
+ * adjacent warm off-white. DESIGN.md §1 calls out the binary
106
+ * white/dark cadence; Linen lives between for Ray-Ban-flavored
107
+ * sections where pure white feels too cold. Dark immersive
108
+ * surfaces (#1C1E21 / #181A1B / #000000) are component-level
109
+ * overrides, not surface tokens — they're product-context, not
110
+ * canvas. */
111
+ --bg: #ffffff; /* White — primary canvas, nav, default cards */
112
+ --surface: #f7f8fa; /* Warm Gray — flat card, subtle differentiation */
113
+ --surface-warm: #f2f0e6; /* Linen — lifestyle-adjacent warm off-white */
114
+
115
+ /* ─── Foreground ramp (4 levels) ──────────────────────────────────
116
+ * Dark Charcoal heading → Slate Gray body → Secondary Text caption
117
+ * → CTA Disabled muted blue-gray. DESIGN.md §2 names each tier as
118
+ * a shipped Dolly/FDS token with its own role, so the four-level
119
+ * ramp resolves to four distinct values rather than aliasing. */
120
+ --fg: #1c2b33; /* Dark Charcoal — Dolly primary text, headings */
121
+ --fg-2: #5d6c7b; /* Slate Gray — Meta Store secondary text, body */
122
+ --muted: #65676b; /* Secondary Text — captions, labels, timestamps */
123
+ --meta: #8595a4; /* CTA Disabled — placeholder, muted blue-gray */
124
+
125
+ /* ─── Border (2 levels) ──────────────────────────────────────────
126
+ * Standard divider for input/card edges, lighter inner divider for
127
+ * Dolly section separators that should not visually compete. */
128
+ --border: #ced0d4; /* Divider — content separators, input borders */
129
+ --border-soft: #dee3e9; /* Divider Gray — lighter Dolly inner separator */
130
+
131
+ /* ─── Accent ─────────────────────────────────────────────────────
132
+ * Meta Blue is the single action color. DESIGN.md §7 forbids
133
+ * Facebook Blue (#1877F2) for primary CTAs — Meta Blue (#0064E0)
134
+ * is the deeper, more saturated corporate-store variant. Hover
135
+ * and active states are hand-tuned hexes from DESIGN.md §2, not
136
+ * `color-mix()` derivations, because Dolly's interactive states
137
+ * shift hue, not just luminance. */
138
+ --accent: #0064e0; /* Meta Blue — primary CTA, links, focus */
139
+ --accent-on: #ffffff; /* white label on Meta Blue */
140
+ --accent-hover: #0143b5; /* Meta Blue Hover — hand-tuned, not a darken */
141
+ --accent-active: #004bb9; /* Meta Blue Pressed — deepest interactive state */
142
+
143
+ /* ─── Semantic ───────────────────────────────────────────────────
144
+ * Dolly badge tier — bright enough to read on white surfaces.
145
+ * Darker store-confirmation variants (#007D1E success, #C80A28
146
+ * error) are component-level state overrides, not slot bindings. */
147
+ --success: #31a24c; /* Success Green — badge, positive indicators */
148
+ --warn: #f7b928; /* Warning Amber — attention, caution badges */
149
+ --danger: #e41e3f; /* Error Red — critical badges, notifications */
150
+
151
+ /* ─── Typography ─────────────────────────────────────────────────
152
+ * Optimistic VF is Meta's commissioned variable face; the documented
153
+ * fallbacks (Montserrat → Helvetica → Arial → Noto Sans) ensure
154
+ * artifacts read consistently on hosts without the licensed font.
155
+ * Inter bridges between Optimistic and Helvetica when neither the
156
+ * commissioned face nor Montserrat is loaded — it's the closest
157
+ * humanist geometric sans available system-wide. Display and body
158
+ * share one stack; weight (300/400/500/700) and size carry hierarchy. */
159
+ --font-display: "Optimistic VF", "Optimistic", Inter, Montserrat, Helvetica, Arial, "Noto Sans", sans-serif;
160
+ --font-body: "Optimistic VF", "Optimistic", Inter, Montserrat, Helvetica, Arial, "Noto Sans", sans-serif;
161
+ --font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
162
+
163
+ /* Type scale — DESIGN.md §3 verbatim. The 18px tier (text-lg) is
164
+ * Meta's primary body size (Body AND Heading 3 both live at 18/?);
165
+ * 16px (text-base) is Body Compact for navigation and dense UI.
166
+ * Display 1 lands at 64px on desktop; Display 2 at 48px; Heading 1
167
+ * at 36px; Heading 2 at 28px. */
168
+ --text-xs: 12px; /* Small — footer, legal, timestamps */
169
+ --text-sm: 14px; /* Caption — labels, button text, metadata */
170
+ --text-base: 16px; /* Body Compact — navigation, dense UI */
171
+ --text-lg: 18px; /* Body / Heading 3 — primary reading size */
172
+ --text-xl: 28px; /* Heading 2 — light-weight subheading */
173
+ --text-2xl: 36px; /* Heading 1 — major section heading */
174
+ --text-3xl: 48px; /* Display 2 — section heroes, product titles */
175
+ --text-4xl: 64px; /* Display 1 — hero headlines on desktop */
176
+
177
+ /* Body leading 1.5 (16px Body Compact ratio); tight leading 1.16
178
+ * (Display 1 ratio) for hero headlines. Display tracking stays
179
+ * neutral (-0.01em) — DESIGN.md §3 reserves negative tracking for
180
+ * small UI (-0.14px on Caption / Button), not for headlines. */
181
+ --leading-body: 1.5;
182
+ --leading-tight: 1.16;
183
+ --tracking-display: -0.01em;
184
+
185
+ /* ─── Spacing ────────────────────────────────────────────────────
186
+ * 8px-base scale per DESIGN.md §5 ("Base unit: 8px"). The 1px /
187
+ * 10px / 14px / 18px sub-tiers from DESIGN.md (hairlines, card
188
+ * horizontal padding, caption rhythm, body vertical rhythm) are
189
+ * inlined per-component because they are too fine to belong in
190
+ * the shared schema. */
191
+ --space-1: 4px;
192
+ --space-2: 8px;
193
+ --space-3: 12px;
194
+ --space-4: 16px;
195
+ --space-5: 20px;
196
+ --space-6: 24px;
197
+ --space-8: 32px;
198
+ --space-12: 48px;
199
+
200
+ /* Section rhythm — DESIGN.md §8: "Section padding: 80 → 64 → 48
201
+ * → 32 as viewport narrows". We bind the documented desktop /
202
+ * tablet / phone tiers; the 32px ultra-narrow floor falls into
203
+ * component-level @media overrides, not the schema. */
204
+ --section-y-desktop: 80px;
205
+ --section-y-tablet: 64px;
206
+ --section-y-phone: 48px;
207
+
208
+ /* ─── Radius ─────────────────────────────────────────────────────
209
+ * DESIGN.md §5 enumerates 8 / 20 / 24 / 100 px. Pill is literal
210
+ * 100px (not 9999px sentinel) because Meta's pill radius IS 100px
211
+ * — DESIGN.md §4 buttons specify "Border radius: fully rounded
212
+ * pill (100px)". For most components 100px and 9999px render
213
+ * identically, but 100px flows correctly into outline / focus
214
+ * geometry calculations in product. */
215
+ --radius-sm: 8px; /* Inputs, small UI, glimmer placeholders */
216
+ --radius-md: 20px; /* --card-corner-radius — standard cards */
217
+ --radius-lg: 24px; /* Feature cards, ghost buttons */
218
+ --radius-pill: 100px; /* Pill buttons, tags, badges (DESIGN.md §5) */
219
+
220
+ /* ─── Elevation ──────────────────────────────────────────────────
221
+ * Three sanctioned levels. `--elev-raised` is DESIGN.md §6 Level 2
222
+ * dual-shadow pattern reproduced verbatim: small sharp shadow for
223
+ * direct-light contact + large diffused shadow for ambient-light
224
+ * depth. Together they create "physically plausible depth without
225
+ * heavy visual weight" — never collapse to a single soft blur.
226
+ * Most surface differentiation in Meta comes from background
227
+ * color shifts (white → soft gray → dark), not shadow; cards in
228
+ * dark sections SHOULD use --elev-flat per DESIGN.md §7 ("Don'ts"). */
229
+ --elev-flat: none;
230
+ --elev-ring: 0 0 0 1px var(--border);
231
+ --elev-raised:
232
+ 0 12px 28px 0 rgba(0, 0, 0, 0.2),
233
+ 0 2px 4px 0 rgba(0, 0, 0, 0.1);
234
+
235
+ /* ─── Focus ring ─────────────────────────────────────────────────
236
+ * DESIGN.md §4 inputs: "Focus: border color shifts to accent blue,
237
+ * 3px outer ring". DESIGN.md §4 buttons: "Focus: 3px ring in accent
238
+ * color". The schema-default 3px alpha glow at the accent matches
239
+ * Meta's documented behavior; the inner-element border-color shift
240
+ * is component-level. */
241
+ --focus-ring: 0 0 0 3px color-mix(in oklab, var(--accent), transparent 70%);
242
+
243
+ /* ─── Motion ─────────────────────────────────────────────────────
244
+ * DESIGN.md §4 buttons: "Transition: background 200ms ease,
245
+ * transform 150ms ease". Two durations, one easing curve. The
246
+ * scale(1.1) hover and scale(0.9) press transforms from DESIGN.md
247
+ * are component-level animation, not schema. */
248
+ --motion-fast: 150ms;
249
+ --motion-base: 200ms;
250
+ --ease-standard: cubic-bezier(0.2, 0, 0, 1);
251
+
252
+ /* ─── Layout ─────────────────────────────────────────────────────
253
+ * DESIGN.md §5: "Max container width: ~1440px, centered with auto
254
+ * margins". Wider than Vercel/Mistral because Meta surfaces full-
255
+ * bleed cinematic product photography that needs the room. Gutters
256
+ * step 40 / 24 / 16 — DESIGN.md §5 names "Page horizontal padding:
257
+ * 24-40px depending on breakpoint" and §8 collapses to 16px on
258
+ * mobile to preserve gallery-style breathing room. */
259
+ --container-max: 1440px;
260
+ --container-gutter-desktop: 40px;
261
+ --container-gutter-tablet: 24px;
262
+ --container-gutter-phone: 16px;
263
+ }