@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,749 @@
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>Apple — reference components</title>
7
+ <meta
8
+ name="description"
9
+ content="Reference fixture for design-systems/apple. Every visible
10
+ token comes from tokens.css; the page itself follows Apple's
11
+ editorial rules — pale-gray feature ladder over white, single
12
+ Apple Action Blue accent capped at ≤2 visible uses per screen,
13
+ SF Pro display at compressed tracking, and the signature 980px
14
+ capsule CTA."
15
+ />
16
+
17
+ <style>
18
+ /* :root paste — sourced verbatim from
19
+ design-systems/apple/tokens.css. Keep this block in sync
20
+ when tokens.css changes. The agent prompt instructs the
21
+ Designer panelist to paste this block as the FIRST thing in
22
+ their <style>, then reference everything below via var(...). */
23
+ :root {
24
+ --bg: #ffffff;
25
+ --surface: #f5f5f7;
26
+ --surface-warm: #fbfbfd;
27
+
28
+ --fg: #1d1d1f;
29
+ --fg-2: #424245;
30
+ --muted: #6e6e73;
31
+ --meta: #86868b;
32
+
33
+ --border: #d2d2d7;
34
+ --border-soft: #e8e8ed;
35
+
36
+ --accent: #0071e3;
37
+ --accent-on: #ffffff;
38
+ --accent-hover: #0077ed;
39
+ --accent-active: #0066cc;
40
+
41
+ --success: #16a34a;
42
+ --warn: #eab308;
43
+ --danger: #dc2626;
44
+
45
+ --font-display:
46
+ "SF Pro Display", "SF Pro Icons", "Helvetica Neue", Helvetica, Arial, sans-serif;
47
+ --font-body:
48
+ "SF Pro Text", "SF Pro Icons", "Helvetica Neue", Helvetica, Arial, sans-serif;
49
+ --font-mono:
50
+ "SF Mono", ui-monospace, "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
51
+
52
+ --text-xs: 12px;
53
+ --text-sm: 14px;
54
+ --text-base: 17px;
55
+ --text-lg: 21px;
56
+ --text-xl: 28px;
57
+ --text-2xl: 40px;
58
+ --text-3xl: 56px;
59
+ --text-4xl: 80px;
60
+
61
+ --leading-body: 1.47;
62
+ --leading-tight: 1.05;
63
+
64
+ --tracking-display: -0.015em;
65
+
66
+ --space-1: 4px;
67
+ --space-2: 8px;
68
+ --space-3: 12px;
69
+ --space-4: 16px;
70
+ --space-5: 20px;
71
+ --space-6: 24px;
72
+ --space-8: 32px;
73
+ --space-12: 48px;
74
+
75
+ --section-y-desktop: 100px;
76
+ --section-y-tablet: 64px;
77
+ --section-y-phone: 40px;
78
+
79
+ --radius-sm: 8px;
80
+ --radius-md: 12px;
81
+ --radius-lg: 18px;
82
+ --radius-pill: 980px;
83
+
84
+ --elev-flat: none;
85
+ --elev-ring: 0 0 0 1px var(--border);
86
+ --elev-raised: 0 12px 32px rgba(0, 0, 0, 0.08);
87
+
88
+ --focus-ring: 0 0 0 4px color-mix(in oklab, var(--accent), transparent 65%);
89
+
90
+ --motion-fast: 150ms;
91
+ --motion-base: 220ms;
92
+ --ease-standard: cubic-bezier(0.28, 0, 0.22, 1);
93
+
94
+ --container-max: 1024px;
95
+ --container-gutter-desktop: 22px;
96
+ --container-gutter-tablet: 18px;
97
+ --container-gutter-phone: 16px;
98
+ }
99
+
100
+ /* ─── Reset (minimal) ───────────────────────────────────────── */
101
+ *, *::before, *::after { box-sizing: border-box; }
102
+ html, body { margin: 0; padding: 0; }
103
+ body {
104
+ background: var(--bg);
105
+ color: var(--fg);
106
+ font-family: var(--font-body);
107
+ font-size: var(--text-base);
108
+ line-height: var(--leading-body);
109
+ font-weight: 400;
110
+ letter-spacing: -0.022em; /* SF Pro Text body, per DESIGN.md §3 */
111
+ -webkit-font-smoothing: antialiased;
112
+ -moz-osx-font-smoothing: grayscale;
113
+ }
114
+
115
+ /* ─── Layout primitives ─────────────────────────────────────── */
116
+ .container {
117
+ max-width: var(--container-max);
118
+ margin-inline: auto;
119
+ padding-inline: var(--container-gutter-desktop);
120
+ }
121
+ section {
122
+ padding-block: var(--section-y-desktop);
123
+ }
124
+ /* Apple uses surface contrast, not borders, to separate chapters
125
+ (DESIGN.md §5 — "section transitions rely more on surface
126
+ changes than decorative separators"). The .band-* helpers
127
+ below switch the chapter canvas while the container stays
128
+ constant. */
129
+ .band-light { background: var(--bg); color: var(--fg); }
130
+ .band-soft { background: var(--surface); color: var(--fg); }
131
+ .band-warm { background: var(--surface-warm); color: var(--fg); }
132
+ @media (max-width: 1023px) {
133
+ .container { padding-inline: var(--container-gutter-tablet); }
134
+ section { padding-block: var(--section-y-tablet); }
135
+ }
136
+ @media (max-width: 639px) {
137
+ .container { padding-inline: var(--container-gutter-phone); }
138
+ section { padding-block: var(--section-y-phone); }
139
+ }
140
+
141
+ /* ─── Typography ────────────────────────────────────────────── */
142
+ h1, h2, h3 {
143
+ font-family: var(--font-display);
144
+ margin: 0;
145
+ color: var(--fg);
146
+ }
147
+ /* DESIGN.md §3 — Hero Display L (56px / 600 / 1.07). We set
148
+ tracking via the display token so all hero copy compresses
149
+ consistently. */
150
+ h1 {
151
+ font-size: var(--text-3xl);
152
+ font-weight: 600;
153
+ line-height: var(--leading-tight);
154
+ letter-spacing: var(--tracking-display);
155
+ }
156
+ h2 {
157
+ font-size: var(--text-2xl);
158
+ font-weight: 600;
159
+ line-height: 1.1;
160
+ letter-spacing: var(--tracking-display);
161
+ }
162
+ h3 {
163
+ font-size: var(--text-xl);
164
+ font-weight: 600;
165
+ line-height: 1.14;
166
+ letter-spacing: -0.007em; /* DESIGN.md §3 — Card/Product Title */
167
+ }
168
+ p { margin: 0; }
169
+
170
+ .lead {
171
+ font-size: var(--text-lg);
172
+ line-height: 1.38;
173
+ color: var(--fg-2);
174
+ font-weight: 400;
175
+ letter-spacing: -0.011em;
176
+ }
177
+ .body-muted { color: var(--muted); }
178
+ .body-meta { color: var(--meta); font-size: var(--text-sm); }
179
+ .body-sm { font-size: var(--text-sm); }
180
+
181
+ /* `.eyebrow` — small uppercase label above hero / section heads.
182
+ DESIGN.md §3 has no eyebrow row in the hierarchy table; this
183
+ is the agreed pattern for OD reference fixtures and uses the
184
+ 12px micro-UI tier with positive tracking so the rule reads
185
+ as deliberate. */
186
+ .eyebrow {
187
+ font-family: var(--font-display);
188
+ font-size: var(--text-xs);
189
+ font-weight: 600;
190
+ line-height: 1;
191
+ color: var(--accent);
192
+ text-transform: uppercase;
193
+ letter-spacing: 0.08em;
194
+ }
195
+
196
+ .stack-3 > * + * { margin-block-start: var(--space-3); }
197
+ .stack-4 > * + * { margin-block-start: var(--space-4); }
198
+ .stack-6 > * + * { margin-block-start: var(--space-6); }
199
+
200
+ /* ─── Buttons ─────────────────────────────────────────────────
201
+ * Apple's CTA family is split across two silhouettes:
202
+ * - .btn-pill / .btn-pill-secondary — the signature 980px
203
+ * capsule used on every marketing hero and product page.
204
+ * - .btn / .btn-primary / .btn-secondary — the 8/12px-radius
205
+ * compact controls used in commerce / configurator
206
+ * surfaces where the capsule would feel too marketing-y.
207
+ *
208
+ * Both share base sizing (8/15px padding per DESIGN.md §4) and
209
+ * the focus halo. Hover lifts the blue (--accent-hover) rather
210
+ * than darkens it — Apple's documented behaviour. Press scales
211
+ * the button down 2% per DESIGN.md §4 ("active controls
212
+ * commonly reduce scale to indicate physical press"). */
213
+ .btn {
214
+ display: inline-flex;
215
+ align-items: center;
216
+ gap: var(--space-2);
217
+ padding: 8px 16px;
218
+ border: 1px solid transparent;
219
+ border-radius: var(--radius-sm);
220
+ font-family: var(--font-body);
221
+ font-weight: 500;
222
+ font-size: var(--text-sm);
223
+ line-height: 1.2;
224
+ cursor: pointer;
225
+ text-decoration: none;
226
+ transition:
227
+ background-color var(--motion-fast) var(--ease-standard),
228
+ border-color var(--motion-fast) var(--ease-standard),
229
+ transform var(--motion-fast) var(--ease-standard),
230
+ box-shadow var(--motion-fast) var(--ease-standard);
231
+ }
232
+ .btn:focus-visible {
233
+ outline: none;
234
+ box-shadow: var(--focus-ring);
235
+ }
236
+ .btn:active { transform: scale(0.98); }
237
+
238
+ .btn-primary {
239
+ background: var(--accent);
240
+ color: var(--accent-on);
241
+ }
242
+ .btn-primary:hover { background: var(--accent-hover); }
243
+ .btn-primary:active { background: var(--accent-active); }
244
+
245
+ .btn-secondary {
246
+ background: transparent;
247
+ color: var(--fg);
248
+ border-color: var(--border);
249
+ }
250
+ .btn-secondary:hover {
251
+ background: var(--surface);
252
+ border-color: var(--meta);
253
+ }
254
+
255
+ /* The Apple capsule. --radius-pill is bound to 980px in tokens
256
+ (the literal published Apple value); the geometry is the
257
+ brand signature and earns its own component. */
258
+ .btn-pill {
259
+ display: inline-flex;
260
+ align-items: center;
261
+ gap: var(--space-2);
262
+ padding: 12px 22px;
263
+ border: none;
264
+ border-radius: var(--radius-pill);
265
+ font-family: var(--font-body);
266
+ font-weight: 400;
267
+ font-size: var(--text-base);
268
+ line-height: 1.2;
269
+ letter-spacing: -0.005em;
270
+ cursor: pointer;
271
+ text-decoration: none;
272
+ background: var(--accent);
273
+ color: var(--accent-on);
274
+ transition:
275
+ background-color var(--motion-fast) var(--ease-standard),
276
+ transform var(--motion-fast) var(--ease-standard),
277
+ box-shadow var(--motion-fast) var(--ease-standard);
278
+ }
279
+ .btn-pill:hover { background: var(--accent-hover); }
280
+ .btn-pill:active { background: var(--accent-active); transform: scale(0.98); }
281
+ .btn-pill:focus-visible {
282
+ outline: none;
283
+ box-shadow: var(--focus-ring);
284
+ }
285
+ .btn-pill-secondary {
286
+ background: transparent;
287
+ color: var(--accent);
288
+ box-shadow: var(--elev-ring);
289
+ }
290
+ .btn-pill-secondary:hover {
291
+ background: var(--surface);
292
+ color: var(--accent-hover);
293
+ }
294
+ .btn-pill-secondary:active {
295
+ color: var(--accent-active);
296
+ transform: scale(0.98);
297
+ }
298
+
299
+ /* ─── Inputs ────────────────────────────────────────────────
300
+ * Apple's retail inputs are border-led rather than fill-led —
301
+ * a hairline #d2d2d7 box on white, dark text, the focus halo
302
+ * tightens the border to --accent and adds the blue glow.
303
+ * Density stays quiet so device imagery dominates. */
304
+ .field {
305
+ display: flex;
306
+ flex-direction: column;
307
+ gap: var(--space-2);
308
+ }
309
+ .field label {
310
+ font-size: var(--text-sm);
311
+ font-weight: 500;
312
+ color: var(--fg);
313
+ letter-spacing: -0.016em;
314
+ }
315
+ .field input {
316
+ padding: 12px 14px;
317
+ border-radius: var(--radius-sm);
318
+ border: 1px solid var(--border);
319
+ background: var(--bg);
320
+ color: var(--fg);
321
+ font-family: var(--font-body);
322
+ font-size: var(--text-base);
323
+ line-height: 1.2;
324
+ outline: none;
325
+ transition:
326
+ border-color var(--motion-fast) var(--ease-standard),
327
+ box-shadow var(--motion-fast) var(--ease-standard);
328
+ }
329
+ .field input::placeholder { color: var(--muted); }
330
+ .field input:hover { border-color: var(--meta); }
331
+ .field input:focus-visible {
332
+ border-color: var(--accent);
333
+ box-shadow: var(--focus-ring);
334
+ }
335
+ .field-help {
336
+ font-size: var(--text-xs);
337
+ color: var(--muted);
338
+ }
339
+
340
+ /* ─── Cards ─────────────────────────────────────────────────
341
+ * Two intents:
342
+ * - .card plain editorial / product card. Lives on
343
+ * pale gray (--surface) bands; lifts to
344
+ * white (--bg) with a hairline. No shadow
345
+ * by default — surface contrast does the
346
+ * work.
347
+ * - .card-feature featured spotlight. Squircle 18px
348
+ * (--radius-lg), the soft Apple shadow on
349
+ * hover. Used sparingly — one per band. */
350
+ .card {
351
+ background: var(--bg);
352
+ border: 1px solid var(--border);
353
+ border-radius: var(--radius-lg);
354
+ padding: var(--space-6);
355
+ display: flex;
356
+ flex-direction: column;
357
+ gap: var(--space-3);
358
+ transition: box-shadow var(--motion-base) var(--ease-standard);
359
+ }
360
+ .card:hover {
361
+ box-shadow: var(--elev-raised);
362
+ }
363
+ .card-feature {
364
+ background: var(--surface-warm);
365
+ border: 1px solid var(--border-soft);
366
+ border-radius: var(--radius-lg);
367
+ padding: var(--space-8) var(--space-6);
368
+ display: flex;
369
+ flex-direction: column;
370
+ gap: var(--space-4);
371
+ box-shadow: var(--elev-raised);
372
+ }
373
+
374
+ /* ─── Badges ──────────────────────────────────────────────── */
375
+ .badge {
376
+ display: inline-flex;
377
+ align-items: center;
378
+ gap: var(--space-2);
379
+ padding: 4px var(--space-3);
380
+ border-radius: var(--radius-pill);
381
+ font-family: var(--font-body);
382
+ font-size: var(--text-xs);
383
+ font-weight: 500;
384
+ line-height: 1.4;
385
+ letter-spacing: -0.01em;
386
+ }
387
+ .badge-success {
388
+ color: var(--success);
389
+ background: color-mix(in oklab, var(--success), transparent 90%);
390
+ }
391
+ .badge-muted {
392
+ color: var(--muted);
393
+ background: color-mix(in oklab, var(--muted), transparent 88%);
394
+ }
395
+ .badge-dot {
396
+ width: 6px;
397
+ height: 6px;
398
+ border-radius: 50%;
399
+ background: currentColor;
400
+ }
401
+
402
+ /* ─── Links ─────────────────────────────────────────────────
403
+ * Apple's link tone uses Body Link Blue (#0066cc, our
404
+ * --accent-active) for inline reading, with the chevron-arrow
405
+ * suffix on call-to-action links. The base color is --accent
406
+ * for buttons / nav; here we re-bind for the inline reading
407
+ * tone via --accent-active. */
408
+ a {
409
+ color: var(--accent-active);
410
+ text-decoration: none;
411
+ }
412
+ a:hover {
413
+ text-decoration: underline;
414
+ text-underline-offset: 3px;
415
+ }
416
+
417
+ /* ─── Kbd ─────────────────────────────────────────────────── */
418
+ kbd {
419
+ font-family: var(--font-mono);
420
+ font-size: var(--text-xs);
421
+ font-weight: 500;
422
+ padding: 2px 6px;
423
+ border-radius: var(--radius-sm);
424
+ border: 1px solid var(--border);
425
+ background: var(--bg);
426
+ color: var(--fg-2);
427
+ }
428
+
429
+ /* ─── Distinctive: glass nav strip ──────────────────────────
430
+ * DESIGN.md §4 — "Global Marketing Nav: compact dark translucent
431
+ * bar with small-type links and restrained iconography." We
432
+ * implement the light counterpart: a frosted white strip with
433
+ * backdrop-blur, hairline bottom border, and SF Pro Text 14px
434
+ * link tier. The blur is what gives Apple chrome its signature
435
+ * "atmospheric layering" (DESIGN.md §6). */
436
+ .nav {
437
+ position: sticky;
438
+ top: 0;
439
+ z-index: 10;
440
+ background: color-mix(in oklab, var(--bg), transparent 20%);
441
+ -webkit-backdrop-filter: saturate(180%) blur(20px);
442
+ backdrop-filter: saturate(180%) blur(20px);
443
+ border-bottom: 1px solid var(--border-soft);
444
+ }
445
+ .nav-inner {
446
+ max-width: var(--container-max);
447
+ margin-inline: auto;
448
+ padding-inline: var(--container-gutter-desktop);
449
+ height: 44px;
450
+ display: flex;
451
+ align-items: center;
452
+ justify-content: space-between;
453
+ gap: var(--space-6);
454
+ }
455
+ .nav-brand {
456
+ font-family: var(--font-display);
457
+ font-size: var(--text-base);
458
+ font-weight: 500;
459
+ color: var(--fg);
460
+ letter-spacing: -0.011em;
461
+ }
462
+ .nav-links {
463
+ display: flex;
464
+ gap: var(--space-6);
465
+ list-style: none;
466
+ padding: 0;
467
+ margin: 0;
468
+ }
469
+ .nav-links a {
470
+ font-size: var(--text-sm);
471
+ font-weight: 400;
472
+ color: var(--fg);
473
+ letter-spacing: -0.016em;
474
+ opacity: 0.8;
475
+ transition: opacity var(--motion-fast) var(--ease-standard);
476
+ }
477
+ .nav-links a:hover {
478
+ opacity: 1;
479
+ text-decoration: none;
480
+ }
481
+ @media (max-width: 639px) {
482
+ .nav-inner { gap: var(--space-3); padding-inline: var(--container-gutter-phone); }
483
+ .nav-links { gap: var(--space-4); }
484
+ }
485
+
486
+ /* ─── Section-specific layout ───────────────────────────── */
487
+ .hero-grid {
488
+ display: grid;
489
+ grid-template-columns: 1.3fr 1fr;
490
+ gap: var(--space-12);
491
+ align-items: end;
492
+ }
493
+ @media (max-width: 1023px) {
494
+ .hero-grid { grid-template-columns: 1fr; gap: var(--space-8); }
495
+ }
496
+ .hero-actions {
497
+ display: flex;
498
+ flex-wrap: wrap;
499
+ gap: var(--space-3);
500
+ margin-block-start: var(--space-6);
501
+ }
502
+ .hero-meta {
503
+ display: flex;
504
+ flex-direction: column;
505
+ gap: var(--space-3);
506
+ padding: var(--space-5);
507
+ border: 1px solid var(--border);
508
+ border-radius: var(--radius-md);
509
+ background: var(--bg);
510
+ }
511
+ .features-grid {
512
+ display: grid;
513
+ grid-template-columns: 1.3fr 1fr 1fr;
514
+ gap: var(--space-5);
515
+ }
516
+ @media (max-width: 1023px) {
517
+ .features-grid { grid-template-columns: 1fr 1fr; }
518
+ .features-grid > :first-child { grid-column: span 2; }
519
+ }
520
+ @media (max-width: 639px) {
521
+ .features-grid { grid-template-columns: 1fr; }
522
+ .features-grid > :first-child { grid-column: auto; }
523
+ }
524
+ .form-row {
525
+ display: grid;
526
+ grid-template-columns: 1.3fr 1fr;
527
+ gap: var(--space-12);
528
+ align-items: start;
529
+ }
530
+ @media (max-width: 1023px) {
531
+ .form-row { grid-template-columns: 1fr; gap: var(--space-8); }
532
+ }
533
+ .form {
534
+ display: flex;
535
+ flex-direction: column;
536
+ gap: var(--space-4);
537
+ max-width: 420px;
538
+ }
539
+ .form-actions {
540
+ display: flex;
541
+ flex-wrap: wrap;
542
+ gap: var(--space-3);
543
+ margin-block-start: var(--space-2);
544
+ }
545
+ .icon { width: 16px; height: 16px; flex-shrink: 0; }
546
+ .row-between {
547
+ display: flex;
548
+ align-items: center;
549
+ justify-content: space-between;
550
+ gap: var(--space-3);
551
+ }
552
+ </style>
553
+ </head>
554
+ <body>
555
+ <!-- ════════════════════════════════════════════════════════════
556
+ NAV — Apple's distinctive frosted-glass strip. Sticky to top,
557
+ 44px tall, SF Pro Text 14px links at 0.8 opacity that
558
+ brighten on hover. Backdrop saturate + blur is what gives
559
+ Apple chrome its atmospheric layering (DESIGN.md §6).
560
+ ═══════════════════════════════════════════════════════════════ -->
561
+ <header class="nav" data-od-id="nav">
562
+ <div class="nav-inner">
563
+ <span class="nav-brand">Apple</span>
564
+ <nav aria-label="Primary">
565
+ <ul class="nav-links">
566
+ <li><a href="#hero">Tokens</a></li>
567
+ <li><a href="#features">System</a></li>
568
+ <li><a href="#form">Contact</a></li>
569
+ </ul>
570
+ </nav>
571
+ </div>
572
+ </header>
573
+
574
+ <main>
575
+ <!-- ════════════════════════════════════════════════════════════
576
+ HERO — exercises: h1 (56px display, tracking -0.015em),
577
+ .lead, .eyebrow, .btn-pill (the signature 980px capsule)
578
+ paired with .btn-pill-secondary (ring-edge counterpart),
579
+ kbd, .badge-success. Asymmetric grid (1.3:1) so the
580
+ composition doesn't read as a generic centered template.
581
+ ═══════════════════════════════════════════════════════════════ -->
582
+ <section class="band-light" data-od-id="hero" id="hero">
583
+ <div class="container">
584
+ <div class="hero-grid">
585
+ <div class="stack-4">
586
+ <p class="eyebrow">Reference fixture · Apple</p>
587
+ <h1>Quiet chrome. Loud product. One token block.</h1>
588
+ <p class="lead" style="max-width: 52ch">
589
+ The interface engineered to disappear, distilled into
590
+ fifty-six tokens. Pale-gray feature ladder over white,
591
+ a single Apple Action Blue, SF Pro at compressed
592
+ tracking, and the 980-pixel capsule that has carried
593
+ every Buy button for a decade.
594
+ </p>
595
+ <div class="hero-actions">
596
+ <a href="./tokens.css" class="btn-pill">
597
+ View tokens
598
+ <svg
599
+ class="icon"
600
+ viewBox="0 0 24 24"
601
+ fill="none"
602
+ stroke="currentColor"
603
+ stroke-width="1.75"
604
+ stroke-linecap="round"
605
+ stroke-linejoin="round"
606
+ aria-hidden="true"
607
+ >
608
+ <path d="M5 12h14M13 6l6 6-6 6" />
609
+ </svg>
610
+ </a>
611
+ <a href="./DESIGN.md" class="btn-pill btn-pill-secondary">
612
+ Read the spec
613
+ </a>
614
+ </div>
615
+ </div>
616
+
617
+ <aside class="hero-meta" aria-label="System status">
618
+ <div class="row-between">
619
+ <span class="body-sm">System status</span>
620
+ <span class="badge badge-success">
621
+ <span class="badge-dot" aria-hidden="true"></span>
622
+ Stable
623
+ </span>
624
+ </div>
625
+ <p class="body-sm body-muted">
626
+ Last reviewed
627
+ <time datetime="2026-05-14">2026-05-14</time> · v0.1
628
+ </p>
629
+ <p class="body-sm body-muted">
630
+ Press <kbd>⌘</kbd> <kbd>K</kbd> to search tokens.
631
+ </p>
632
+ </aside>
633
+ </div>
634
+ </div>
635
+ </section>
636
+
637
+ <!-- ════════════════════════════════════════════════════════════
638
+ FEATURES — band switches to pale Apple gray (--surface),
639
+ cards lift back to white with a hairline. The first card
640
+ is .card-feature (squircle, soft Apple shadow), the next
641
+ two are plain .card. Each card describes a real property
642
+ of this fixture (no "feature one/two/three" filler).
643
+ ═══════════════════════════════════════════════════════════════ -->
644
+ <section class="band-soft" data-od-id="features" id="features">
645
+ <div class="container">
646
+ <div class="stack-3" style="max-width: 720px">
647
+ <p class="eyebrow">What this fixture exercises</p>
648
+ <h2>Every component below uses only var(--*).</h2>
649
+ <p class="lead body-muted">
650
+ Three cards, three real schema decisions worth
651
+ inspecting. Rebind the token block and the same shapes
652
+ follow.
653
+ </p>
654
+ </div>
655
+
656
+ <div class="features-grid" style="margin-block-start: var(--space-12)">
657
+ <article class="card-feature">
658
+ <p class="eyebrow">Featured</p>
659
+ <h3>Surface ladder, three stops, no aliasing.</h3>
660
+ <p class="body-muted">
661
+ Pure white retail canvas, near-white bridge, pale
662
+ Apple gray feature band. Apple's three light tiers
663
+ are real, so we keep --surface-warm independent of
664
+ --surface instead of collapsing it. Cards on the
665
+ gray band lift back to white with a hairline.
666
+ </p>
667
+ <div>
668
+ <a href="./tokens.css" class="btn btn-secondary">
669
+ Inspect tokens
670
+ </a>
671
+ </div>
672
+ </article>
673
+
674
+ <article class="card">
675
+ <h3>Accent discipline</h3>
676
+ <p class="body-muted body-sm">
677
+ --accent appears at most twice on this screen — the
678
+ primary capsule CTA and the focus halo. The hero
679
+ status uses --success instead, so the page does not
680
+ feel mono-blue.
681
+ </p>
682
+ <a href="./DESIGN.md" class="body-sm">Read the rule →</a>
683
+ </article>
684
+
685
+ <article class="card">
686
+ <h3>Type at scale</h3>
687
+ <p class="body-muted body-sm">
688
+ SF Pro Display for the hero, SF Pro Text for body and
689
+ controls, body baseline at 17px (not 16), display
690
+ tracking compressed to -0.015em. Hierarchy comes from
691
+ size and weight — never a third type face.
692
+ </p>
693
+ <a href="./tokens.css" class="body-sm">Inspect typography →</a>
694
+ </article>
695
+ </div>
696
+ </div>
697
+ </section>
698
+
699
+ <!-- ════════════════════════════════════════════════════════════
700
+ FORM — exercises: .field, input :focus-visible (border
701
+ tightens to --accent + the 4px blue halo), .btn-primary
702
+ (the compact 8px-radius commerce CTA), .btn-secondary
703
+ (border-led counterpart), .field-help. Band switches to
704
+ the warm near-white tier so the form reads as a quiet
705
+ transactional surface, not a hero.
706
+ ═══════════════════════════════════════════════════════════════ -->
707
+ <section class="band-warm" data-od-id="form" id="form">
708
+ <div class="container">
709
+ <div class="form-row">
710
+ <div class="stack-4">
711
+ <p class="eyebrow">Form components</p>
712
+ <h2>Inputs inherit the same tokens.</h2>
713
+ <p class="lead body-muted" style="max-width: 48ch">
714
+ Border-led containment, dark Near-Black Ink text, the
715
+ focus halo at four pixels of soft Apple Action Blue.
716
+ The submit button reuses the compact .btn-primary —
717
+ no new token introduced for this section.
718
+ </p>
719
+ </div>
720
+
721
+ <form class="form" onsubmit="event.preventDefault();">
722
+ <div class="field">
723
+ <label for="email">Apple ID email</label>
724
+ <input
725
+ id="email"
726
+ type="email"
727
+ placeholder="you@icloud.com"
728
+ autocomplete="email"
729
+ required
730
+ />
731
+ <p class="field-help">
732
+ We'll send the spec PDF and nothing else.
733
+ </p>
734
+ </div>
735
+ <div class="form-actions">
736
+ <button type="submit" class="btn btn-primary">
737
+ Send the spec
738
+ </button>
739
+ <button type="button" class="btn btn-secondary">
740
+ Skip for now
741
+ </button>
742
+ </div>
743
+ </form>
744
+ </div>
745
+ </div>
746
+ </section>
747
+ </main>
748
+ </body>
749
+ </html>