@aexol/spectral 0.9.270 → 0.9.272

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 (567) hide show
  1. package/dist/agent/index.d.ts +10 -1
  2. package/dist/agent/index.d.ts.map +1 -1
  3. package/dist/agent/index.js +26 -10
  4. package/dist/commands/serve.d.ts.map +1 -1
  5. package/dist/commands/serve.js +29 -5
  6. package/dist/commands/update.d.ts +2 -2
  7. package/dist/commands/update.js +3 -3
  8. package/dist/designer/index.d.ts +13 -18
  9. package/dist/designer/index.d.ts.map +1 -1
  10. package/dist/designer/index.js +128 -201
  11. package/dist/extensions/aexol-mcp.d.ts.map +1 -1
  12. package/dist/extensions/aexol-mcp.js +23 -0
  13. package/dist/memory/debug-log.d.ts.map +1 -1
  14. package/dist/memory/debug-log.js +20 -2
  15. package/dist/memory/tools/compact-context.d.ts +1 -1
  16. package/dist/memory/tools/compact-context.d.ts.map +1 -1
  17. package/dist/memory/tools/compact-context.js +4 -1
  18. package/dist/memory/tools/recall-observation.d.ts +3 -3
  19. package/dist/memory/tools/recall-observation.d.ts.map +1 -1
  20. package/dist/memory/tools/recall-observation.js +4 -1
  21. package/dist/memory/tools/receive-agent-observations.d.ts +3 -3
  22. package/dist/memory/tools/receive-agent-observations.d.ts.map +1 -1
  23. package/dist/memory/tools/receive-agent-observations.js +4 -1
  24. package/dist/memory/tools/share-project-observation.d.ts +3 -3
  25. package/dist/memory/tools/share-project-observation.d.ts.map +1 -1
  26. package/dist/memory/tools/share-project-observation.js +4 -1
  27. package/dist/memory/tools/write-project-observation.d.ts +3 -3
  28. package/dist/memory/tools/write-project-observation.d.ts.map +1 -1
  29. package/dist/memory/tools/write-project-observation.js +4 -1
  30. package/dist/relay/client.d.ts.map +1 -1
  31. package/dist/relay/client.js +5 -2
  32. package/dist/sdk/ai/env-api-keys.js +1 -1
  33. package/dist/sdk/coding-agent/core/extensions/loader.d.ts.map +1 -1
  34. package/dist/sdk/coding-agent/core/extensions/loader.js +31 -3
  35. package/dist/sdk/coding-agent/core/theme.js +1 -1
  36. package/dist/server/handlers/agent-settings.d.ts.map +1 -1
  37. package/dist/server/handlers/agent-settings.js +4 -1
  38. package/dist/server/handlers/settings-lock.d.ts.map +1 -1
  39. package/dist/server/handlers/settings-lock.js +4 -1
  40. package/dist/server/storage.d.ts.map +1 -1
  41. package/dist/server/storage.js +13 -1
  42. package/dist/utils/serve-state.d.ts +17 -0
  43. package/dist/utils/serve-state.d.ts.map +1 -1
  44. package/dist/utils/serve-state.js +73 -0
  45. package/package.json +1 -1
  46. package/dist/designer/data/skills/blog-post.d.ts +0 -3
  47. package/dist/designer/data/skills/blog-post.d.ts.map +0 -1
  48. package/dist/designer/data/skills/blog-post.js +0 -84
  49. package/dist/designer/data/skills/blog-post.ts +0 -87
  50. package/dist/designer/data/skills/critique.d.ts +0 -3
  51. package/dist/designer/data/skills/critique.d.ts.map +0 -1
  52. package/dist/designer/data/skills/critique.js +0 -109
  53. package/dist/designer/data/skills/critique.ts +0 -112
  54. package/dist/designer/data/skills/dashboard.d.ts +0 -3
  55. package/dist/designer/data/skills/dashboard.d.ts.map +0 -1
  56. package/dist/designer/data/skills/dashboard.js +0 -165
  57. package/dist/designer/data/skills/dashboard.ts +0 -168
  58. package/dist/designer/data/skills/design-brief.d.ts +0 -3
  59. package/dist/designer/data/skills/design-brief.d.ts.map +0 -1
  60. package/dist/designer/data/skills/design-brief.js +0 -141
  61. package/dist/designer/data/skills/design-brief.ts +0 -144
  62. package/dist/designer/data/skills/design-skill.d.ts +0 -10
  63. package/dist/designer/data/skills/design-skill.d.ts.map +0 -1
  64. package/dist/designer/data/skills/design-skill.js +0 -1
  65. package/dist/designer/data/skills/design-skill.ts +0 -9
  66. package/dist/designer/data/skills/docs-page.d.ts +0 -3
  67. package/dist/designer/data/skills/docs-page.d.ts.map +0 -1
  68. package/dist/designer/data/skills/docs-page.js +0 -68
  69. package/dist/designer/data/skills/docs-page.ts +0 -71
  70. package/dist/designer/data/skills/index.d.ts +0 -3
  71. package/dist/designer/data/skills/index.d.ts.map +0 -1
  72. package/dist/designer/data/skills/index.js +0 -28
  73. package/dist/designer/data/skills/index.ts +0 -30
  74. package/dist/designer/data/skills/magazine-poster.d.ts +0 -3
  75. package/dist/designer/data/skills/magazine-poster.d.ts.map +0 -1
  76. package/dist/designer/data/skills/magazine-poster.js +0 -70
  77. package/dist/designer/data/skills/magazine-poster.ts +0 -73
  78. package/dist/designer/data/skills/mobile-app.d.ts +0 -3
  79. package/dist/designer/data/skills/mobile-app.d.ts.map +0 -1
  80. package/dist/designer/data/skills/mobile-app.js +0 -229
  81. package/dist/designer/data/skills/mobile-app.ts +0 -232
  82. package/dist/designer/data/skills/motion-frames.d.ts +0 -3
  83. package/dist/designer/data/skills/motion-frames.d.ts.map +0 -1
  84. package/dist/designer/data/skills/motion-frames.js +0 -121
  85. package/dist/designer/data/skills/motion-frames.ts +0 -124
  86. package/dist/designer/data/skills/pricing-page.d.ts +0 -3
  87. package/dist/designer/data/skills/pricing-page.d.ts.map +0 -1
  88. package/dist/designer/data/skills/pricing-page.js +0 -76
  89. package/dist/designer/data/skills/pricing-page.ts +0 -79
  90. package/dist/designer/data/skills/saas-landing.d.ts +0 -3
  91. package/dist/designer/data/skills/saas-landing.d.ts.map +0 -1
  92. package/dist/designer/data/skills/saas-landing.js +0 -71
  93. package/dist/designer/data/skills/saas-landing.ts +0 -74
  94. package/dist/designer/data/skills/slide-deck.d.ts +0 -3
  95. package/dist/designer/data/skills/slide-deck.d.ts.map +0 -1
  96. package/dist/designer/data/skills/slide-deck.js +0 -213
  97. package/dist/designer/data/skills/slide-deck.ts +0 -216
  98. package/dist/designer/data/skills/social-carousel.d.ts +0 -3
  99. package/dist/designer/data/skills/social-carousel.d.ts.map +0 -1
  100. package/dist/designer/data/skills/social-carousel.js +0 -135
  101. package/dist/designer/data/skills/social-carousel.ts +0 -138
  102. package/dist/designer/data/skills/web-prototype.d.ts +0 -3
  103. package/dist/designer/data/skills/web-prototype.d.ts.map +0 -1
  104. package/dist/designer/data/skills/web-prototype.js +0 -159
  105. package/dist/designer/data/skills/web-prototype.ts +0 -162
  106. package/dist/designer/data/systems/agentic/DESIGN.md +0 -71
  107. package/dist/designer/data/systems/agentic/components.html +0 -154
  108. package/dist/designer/data/systems/agentic/tokens.css +0 -63
  109. package/dist/designer/data/systems/airbnb/DESIGN.md +0 -393
  110. package/dist/designer/data/systems/airbnb/components.html +0 -1373
  111. package/dist/designer/data/systems/airbnb/tokens.css +0 -261
  112. package/dist/designer/data/systems/airtable/DESIGN.md +0 -92
  113. package/dist/designer/data/systems/airtable/components.html +0 -489
  114. package/dist/designer/data/systems/airtable/tokens.css +0 -261
  115. package/dist/designer/data/systems/ant/DESIGN.md +0 -71
  116. package/dist/designer/data/systems/ant/components.html +0 -154
  117. package/dist/designer/data/systems/ant/tokens.css +0 -63
  118. package/dist/designer/data/systems/apple/DESIGN.md +0 -250
  119. package/dist/designer/data/systems/apple/components.html +0 -749
  120. package/dist/designer/data/systems/apple/tokens.css +0 -286
  121. package/dist/designer/data/systems/application/DESIGN.md +0 -71
  122. package/dist/designer/data/systems/application/components.html +0 -154
  123. package/dist/designer/data/systems/application/tokens.css +0 -63
  124. package/dist/designer/data/systems/arc/DESIGN.md +0 -152
  125. package/dist/designer/data/systems/arc/components.html +0 -432
  126. package/dist/designer/data/systems/arc/tokens.css +0 -137
  127. package/dist/designer/data/systems/artistic/DESIGN.md +0 -71
  128. package/dist/designer/data/systems/artistic/components.html +0 -136
  129. package/dist/designer/data/systems/artistic/tokens.css +0 -63
  130. package/dist/designer/data/systems/atelier-zero/DESIGN.md +0 -316
  131. package/dist/designer/data/systems/atelier-zero/components.html +0 -136
  132. package/dist/designer/data/systems/atelier-zero/tokens.css +0 -63
  133. package/dist/designer/data/systems/bento/DESIGN.md +0 -71
  134. package/dist/designer/data/systems/bento/components.html +0 -136
  135. package/dist/designer/data/systems/bento/tokens.css +0 -63
  136. package/dist/designer/data/systems/binance/DESIGN.md +0 -348
  137. package/dist/designer/data/systems/binance/components.html +0 -550
  138. package/dist/designer/data/systems/binance/tokens.css +0 -255
  139. package/dist/designer/data/systems/bmw/DESIGN.md +0 -183
  140. package/dist/designer/data/systems/bmw/components.html +0 -551
  141. package/dist/designer/data/systems/bmw/tokens.css +0 -179
  142. package/dist/designer/data/systems/bmw-m/DESIGN.md +0 -246
  143. package/dist/designer/data/systems/bmw-m/components.html +0 -342
  144. package/dist/designer/data/systems/bmw-m/tokens.css +0 -64
  145. package/dist/designer/data/systems/bold/DESIGN.md +0 -71
  146. package/dist/designer/data/systems/bold/components.html +0 -136
  147. package/dist/designer/data/systems/bold/tokens.css +0 -63
  148. package/dist/designer/data/systems/brutalism/DESIGN.md +0 -71
  149. package/dist/designer/data/systems/brutalism/components.html +0 -154
  150. package/dist/designer/data/systems/brutalism/tokens.css +0 -63
  151. package/dist/designer/data/systems/bugatti/DESIGN.md +0 -271
  152. package/dist/designer/data/systems/bugatti/components.html +0 -342
  153. package/dist/designer/data/systems/bugatti/tokens.css +0 -64
  154. package/dist/designer/data/systems/cafe/DESIGN.md +0 -71
  155. package/dist/designer/data/systems/cafe/components.html +0 -136
  156. package/dist/designer/data/systems/cafe/tokens.css +0 -63
  157. package/dist/designer/data/systems/cal/DESIGN.md +0 -262
  158. package/dist/designer/data/systems/cal/components.html +0 -376
  159. package/dist/designer/data/systems/cal/tokens.css +0 -265
  160. package/dist/designer/data/systems/canva/DESIGN.md +0 -157
  161. package/dist/designer/data/systems/canva/components.html +0 -461
  162. package/dist/designer/data/systems/canva/tokens.css +0 -147
  163. package/dist/designer/data/systems/cisco/DESIGN.md +0 -201
  164. package/dist/designer/data/systems/cisco/components.html +0 -342
  165. package/dist/designer/data/systems/cisco/tokens.css +0 -64
  166. package/dist/designer/data/systems/claude/DESIGN.md +0 -315
  167. package/dist/designer/data/systems/claude/components.html +0 -483
  168. package/dist/designer/data/systems/claude/tokens.css +0 -130
  169. package/dist/designer/data/systems/clay/DESIGN.md +0 -307
  170. package/dist/designer/data/systems/clay/components.html +0 -136
  171. package/dist/designer/data/systems/clay/tokens.css +0 -63
  172. package/dist/designer/data/systems/claymorphism/DESIGN.md +0 -71
  173. package/dist/designer/data/systems/claymorphism/components.html +0 -136
  174. package/dist/designer/data/systems/claymorphism/tokens.css +0 -63
  175. package/dist/designer/data/systems/clean/DESIGN.md +0 -71
  176. package/dist/designer/data/systems/clean/components.html +0 -136
  177. package/dist/designer/data/systems/clean/tokens.css +0 -63
  178. package/dist/designer/data/systems/clickhouse/DESIGN.md +0 -284
  179. package/dist/designer/data/systems/clickhouse/components.html +0 -506
  180. package/dist/designer/data/systems/clickhouse/tokens.css +0 -135
  181. package/dist/designer/data/systems/cohere/DESIGN.md +0 -269
  182. package/dist/designer/data/systems/cohere/components.html +0 -353
  183. package/dist/designer/data/systems/cohere/tokens.css +0 -126
  184. package/dist/designer/data/systems/coinbase/DESIGN.md +0 -132
  185. package/dist/designer/data/systems/coinbase/components.html +0 -501
  186. package/dist/designer/data/systems/coinbase/tokens.css +0 -257
  187. package/dist/designer/data/systems/colorful/DESIGN.md +0 -71
  188. package/dist/designer/data/systems/colorful/components.html +0 -136
  189. package/dist/designer/data/systems/colorful/tokens.css +0 -63
  190. package/dist/designer/data/systems/composio/DESIGN.md +0 -310
  191. package/dist/designer/data/systems/composio/components.html +0 -342
  192. package/dist/designer/data/systems/composio/tokens.css +0 -64
  193. package/dist/designer/data/systems/contemporary/DESIGN.md +0 -71
  194. package/dist/designer/data/systems/contemporary/components.html +0 -136
  195. package/dist/designer/data/systems/contemporary/tokens.css +0 -63
  196. package/dist/designer/data/systems/corporate/DESIGN.md +0 -71
  197. package/dist/designer/data/systems/corporate/components.html +0 -136
  198. package/dist/designer/data/systems/corporate/tokens.css +0 -63
  199. package/dist/designer/data/systems/cosmic/DESIGN.md +0 -71
  200. package/dist/designer/data/systems/cosmic/components.html +0 -136
  201. package/dist/designer/data/systems/cosmic/tokens.css +0 -63
  202. package/dist/designer/data/systems/creative/DESIGN.md +0 -71
  203. package/dist/designer/data/systems/creative/components.html +0 -136
  204. package/dist/designer/data/systems/creative/tokens.css +0 -63
  205. package/dist/designer/data/systems/cursor/DESIGN.md +0 -312
  206. package/dist/designer/data/systems/cursor/components.html +0 -654
  207. package/dist/designer/data/systems/cursor/tokens.css +0 -218
  208. package/dist/designer/data/systems/dashboard/DESIGN.md +0 -71
  209. package/dist/designer/data/systems/dashboard/components.html +0 -154
  210. package/dist/designer/data/systems/dashboard/tokens.css +0 -63
  211. package/dist/designer/data/systems/default/DESIGN.md +0 -62
  212. package/dist/designer/data/systems/default/components.html +0 -523
  213. package/dist/designer/data/systems/default/tokens.css +0 -200
  214. package/dist/designer/data/systems/discord/DESIGN.md +0 -162
  215. package/dist/designer/data/systems/discord/components.html +0 -359
  216. package/dist/designer/data/systems/discord/tokens.css +0 -125
  217. package/dist/designer/data/systems/dithered/DESIGN.md +0 -71
  218. package/dist/designer/data/systems/dithered/components.html +0 -136
  219. package/dist/designer/data/systems/dithered/tokens.css +0 -63
  220. package/dist/designer/data/systems/doodle/DESIGN.md +0 -71
  221. package/dist/designer/data/systems/doodle/components.html +0 -136
  222. package/dist/designer/data/systems/doodle/tokens.css +0 -63
  223. package/dist/designer/data/systems/dramatic/DESIGN.md +0 -71
  224. package/dist/designer/data/systems/dramatic/components.html +0 -136
  225. package/dist/designer/data/systems/dramatic/tokens.css +0 -63
  226. package/dist/designer/data/systems/duolingo/DESIGN.md +0 -154
  227. package/dist/designer/data/systems/duolingo/components.html +0 -532
  228. package/dist/designer/data/systems/duolingo/tokens.css +0 -130
  229. package/dist/designer/data/systems/editorial/DESIGN.md +0 -71
  230. package/dist/designer/data/systems/editorial/components.html +0 -154
  231. package/dist/designer/data/systems/editorial/tokens.css +0 -63
  232. package/dist/designer/data/systems/elegant/DESIGN.md +0 -71
  233. package/dist/designer/data/systems/elegant/components.html +0 -136
  234. package/dist/designer/data/systems/elegant/tokens.css +0 -63
  235. package/dist/designer/data/systems/elevenlabs/DESIGN.md +0 -268
  236. package/dist/designer/data/systems/elevenlabs/components.html +0 -342
  237. package/dist/designer/data/systems/elevenlabs/tokens.css +0 -127
  238. package/dist/designer/data/systems/energetic/DESIGN.md +0 -72
  239. package/dist/designer/data/systems/energetic/components.html +0 -136
  240. package/dist/designer/data/systems/energetic/tokens.css +0 -63
  241. package/dist/designer/data/systems/enterprise/DESIGN.md +0 -71
  242. package/dist/designer/data/systems/enterprise/components.html +0 -154
  243. package/dist/designer/data/systems/enterprise/tokens.css +0 -63
  244. package/dist/designer/data/systems/expo/DESIGN.md +0 -284
  245. package/dist/designer/data/systems/expo/components.html +0 -342
  246. package/dist/designer/data/systems/expo/tokens.css +0 -64
  247. package/dist/designer/data/systems/expressive/DESIGN.md +0 -71
  248. package/dist/designer/data/systems/expressive/components.html +0 -136
  249. package/dist/designer/data/systems/expressive/tokens.css +0 -63
  250. package/dist/designer/data/systems/fantasy/DESIGN.md +0 -71
  251. package/dist/designer/data/systems/fantasy/components.html +0 -136
  252. package/dist/designer/data/systems/fantasy/tokens.css +0 -63
  253. package/dist/designer/data/systems/ferrari/DESIGN.md +0 -317
  254. package/dist/designer/data/systems/ferrari/components.html +0 -342
  255. package/dist/designer/data/systems/ferrari/tokens.css +0 -64
  256. package/dist/designer/data/systems/figma/DESIGN.md +0 -223
  257. package/dist/designer/data/systems/figma/components.html +0 -344
  258. package/dist/designer/data/systems/figma/tokens.css +0 -126
  259. package/dist/designer/data/systems/flat/DESIGN.md +0 -71
  260. package/dist/designer/data/systems/flat/components.html +0 -136
  261. package/dist/designer/data/systems/flat/tokens.css +0 -63
  262. package/dist/designer/data/systems/framer/DESIGN.md +0 -249
  263. package/dist/designer/data/systems/framer/components.html +0 -438
  264. package/dist/designer/data/systems/framer/tokens.css +0 -238
  265. package/dist/designer/data/systems/friendly/DESIGN.md +0 -71
  266. package/dist/designer/data/systems/friendly/components.html +0 -136
  267. package/dist/designer/data/systems/friendly/tokens.css +0 -63
  268. package/dist/designer/data/systems/futuristic/DESIGN.md +0 -71
  269. package/dist/designer/data/systems/futuristic/components.html +0 -136
  270. package/dist/designer/data/systems/futuristic/tokens.css +0 -63
  271. package/dist/designer/data/systems/github/DESIGN.md +0 -155
  272. package/dist/designer/data/systems/github/components.html +0 -383
  273. package/dist/designer/data/systems/github/tokens.css +0 -125
  274. package/dist/designer/data/systems/glassmorphism/DESIGN.md +0 -71
  275. package/dist/designer/data/systems/glassmorphism/components.html +0 -154
  276. package/dist/designer/data/systems/glassmorphism/tokens.css +0 -63
  277. package/dist/designer/data/systems/gradient/DESIGN.md +0 -71
  278. package/dist/designer/data/systems/gradient/components.html +0 -154
  279. package/dist/designer/data/systems/gradient/tokens.css +0 -63
  280. package/dist/designer/data/systems/hashicorp/DESIGN.md +0 -281
  281. package/dist/designer/data/systems/hashicorp/components.html +0 -502
  282. package/dist/designer/data/systems/hashicorp/tokens.css +0 -272
  283. package/dist/designer/data/systems/hud/DESIGN.md +0 -173
  284. package/dist/designer/data/systems/hud/components.html +0 -136
  285. package/dist/designer/data/systems/hud/tokens.css +0 -63
  286. package/dist/designer/data/systems/huggingface/DESIGN.md +0 -149
  287. package/dist/designer/data/systems/huggingface/components.html +0 -346
  288. package/dist/designer/data/systems/huggingface/tokens.css +0 -125
  289. package/dist/designer/data/systems/ibm/DESIGN.md +0 -335
  290. package/dist/designer/data/systems/ibm/components.html +0 -342
  291. package/dist/designer/data/systems/ibm/tokens.css +0 -64
  292. package/dist/designer/data/systems/intercom/DESIGN.md +0 -149
  293. package/dist/designer/data/systems/intercom/components.html +0 -557
  294. package/dist/designer/data/systems/intercom/tokens.css +0 -150
  295. package/dist/designer/data/systems/kami/DESIGN.md +0 -410
  296. package/dist/designer/data/systems/kami/components.html +0 -601
  297. package/dist/designer/data/systems/kami/tokens.css +0 -272
  298. package/dist/designer/data/systems/kraken/DESIGN.md +0 -128
  299. package/dist/designer/data/systems/kraken/components.html +0 -342
  300. package/dist/designer/data/systems/kraken/tokens.css +0 -64
  301. package/dist/designer/data/systems/lamborghini/DESIGN.md +0 -291
  302. package/dist/designer/data/systems/lamborghini/components.html +0 -342
  303. package/dist/designer/data/systems/lamborghini/tokens.css +0 -64
  304. package/dist/designer/data/systems/levels/DESIGN.md +0 -71
  305. package/dist/designer/data/systems/levels/components.html +0 -154
  306. package/dist/designer/data/systems/levels/tokens.css +0 -63
  307. package/dist/designer/data/systems/linear-app/DESIGN.md +0 -370
  308. package/dist/designer/data/systems/linear-app/components.html +0 -370
  309. package/dist/designer/data/systems/linear-app/tokens.css +0 -130
  310. package/dist/designer/data/systems/lingo/DESIGN.md +0 -71
  311. package/dist/designer/data/systems/lingo/components.html +0 -154
  312. package/dist/designer/data/systems/lingo/tokens.css +0 -63
  313. package/dist/designer/data/systems/loom/DESIGN.md +0 -201
  314. package/dist/designer/data/systems/loom/components.html +0 -446
  315. package/dist/designer/data/systems/loom/tokens.css +0 -138
  316. package/dist/designer/data/systems/lovable/DESIGN.md +0 -301
  317. package/dist/designer/data/systems/lovable/components.html +0 -441
  318. package/dist/designer/data/systems/lovable/tokens.css +0 -258
  319. package/dist/designer/data/systems/luxury/DESIGN.md +0 -71
  320. package/dist/designer/data/systems/luxury/components.html +0 -154
  321. package/dist/designer/data/systems/luxury/tokens.css +0 -63
  322. package/dist/designer/data/systems/mastercard/DESIGN.md +0 -368
  323. package/dist/designer/data/systems/mastercard/components.html +0 -342
  324. package/dist/designer/data/systems/mastercard/tokens.css +0 -64
  325. package/dist/designer/data/systems/material/DESIGN.md +0 -71
  326. package/dist/designer/data/systems/material/components.html +0 -154
  327. package/dist/designer/data/systems/material/tokens.css +0 -63
  328. package/dist/designer/data/systems/meta/DESIGN.md +0 -369
  329. package/dist/designer/data/systems/meta/components.html +0 -398
  330. package/dist/designer/data/systems/meta/tokens.css +0 -263
  331. package/dist/designer/data/systems/minimal/DESIGN.md +0 -71
  332. package/dist/designer/data/systems/minimal/components.html +0 -154
  333. package/dist/designer/data/systems/minimal/tokens.css +0 -63
  334. package/dist/designer/data/systems/minimax/DESIGN.md +0 -260
  335. package/dist/designer/data/systems/minimax/components.html +0 -590
  336. package/dist/designer/data/systems/minimax/tokens.css +0 -148
  337. package/dist/designer/data/systems/mintlify/DESIGN.md +0 -329
  338. package/dist/designer/data/systems/mintlify/components.html +0 -737
  339. package/dist/designer/data/systems/mintlify/tokens.css +0 -256
  340. package/dist/designer/data/systems/miro/DESIGN.md +0 -111
  341. package/dist/designer/data/systems/miro/components.html +0 -342
  342. package/dist/designer/data/systems/miro/tokens.css +0 -64
  343. package/dist/designer/data/systems/mission-control/DESIGN.md +0 -474
  344. package/dist/designer/data/systems/mission-control/components.html +0 -136
  345. package/dist/designer/data/systems/mission-control/tokens.css +0 -63
  346. package/dist/designer/data/systems/mistral-ai/DESIGN.md +0 -264
  347. package/dist/designer/data/systems/mistral-ai/components.html +0 -338
  348. package/dist/designer/data/systems/mistral-ai/tokens.css +0 -125
  349. package/dist/designer/data/systems/modern/DESIGN.md +0 -71
  350. package/dist/designer/data/systems/modern/components.html +0 -154
  351. package/dist/designer/data/systems/modern/tokens.css +0 -63
  352. package/dist/designer/data/systems/mongodb/DESIGN.md +0 -269
  353. package/dist/designer/data/systems/mongodb/components.html +0 -462
  354. package/dist/designer/data/systems/mongodb/tokens.css +0 -176
  355. package/dist/designer/data/systems/mono/DESIGN.md +0 -71
  356. package/dist/designer/data/systems/mono/components.html +0 -136
  357. package/dist/designer/data/systems/mono/tokens.css +0 -63
  358. package/dist/designer/data/systems/neobrutalism/DESIGN.md +0 -71
  359. package/dist/designer/data/systems/neobrutalism/components.html +0 -136
  360. package/dist/designer/data/systems/neobrutalism/tokens.css +0 -63
  361. package/dist/designer/data/systems/neon/DESIGN.md +0 -71
  362. package/dist/designer/data/systems/neon/components.html +0 -136
  363. package/dist/designer/data/systems/neon/tokens.css +0 -63
  364. package/dist/designer/data/systems/neumorphism/DESIGN.md +0 -71
  365. package/dist/designer/data/systems/neumorphism/components.html +0 -136
  366. package/dist/designer/data/systems/neumorphism/tokens.css +0 -63
  367. package/dist/designer/data/systems/nike/DESIGN.md +0 -366
  368. package/dist/designer/data/systems/nike/components.html +0 -512
  369. package/dist/designer/data/systems/nike/tokens.css +0 -304
  370. package/dist/designer/data/systems/notion/DESIGN.md +0 -312
  371. package/dist/designer/data/systems/notion/components.html +0 -413
  372. package/dist/designer/data/systems/notion/tokens.css +0 -130
  373. package/dist/designer/data/systems/nvidia/DESIGN.md +0 -296
  374. package/dist/designer/data/systems/nvidia/components.html +0 -414
  375. package/dist/designer/data/systems/nvidia/tokens.css +0 -133
  376. package/dist/designer/data/systems/ollama/DESIGN.md +0 -270
  377. package/dist/designer/data/systems/ollama/components.html +0 -700
  378. package/dist/designer/data/systems/ollama/tokens.css +0 -242
  379. package/dist/designer/data/systems/openai/DESIGN.md +0 -140
  380. package/dist/designer/data/systems/openai/components.html +0 -382
  381. package/dist/designer/data/systems/openai/tokens.css +0 -133
  382. package/dist/designer/data/systems/opencode-ai/DESIGN.md +0 -284
  383. package/dist/designer/data/systems/opencode-ai/components.html +0 -389
  384. package/dist/designer/data/systems/opencode-ai/tokens.css +0 -126
  385. package/dist/designer/data/systems/pacman/DESIGN.md +0 -71
  386. package/dist/designer/data/systems/pacman/components.html +0 -342
  387. package/dist/designer/data/systems/pacman/tokens.css +0 -64
  388. package/dist/designer/data/systems/paper/DESIGN.md +0 -71
  389. package/dist/designer/data/systems/paper/components.html +0 -136
  390. package/dist/designer/data/systems/paper/tokens.css +0 -63
  391. package/dist/designer/data/systems/perplexity/DESIGN.md +0 -286
  392. package/dist/designer/data/systems/perplexity/components.html +0 -455
  393. package/dist/designer/data/systems/perplexity/tokens.css +0 -151
  394. package/dist/designer/data/systems/perspective/DESIGN.md +0 -71
  395. package/dist/designer/data/systems/perspective/components.html +0 -136
  396. package/dist/designer/data/systems/perspective/tokens.css +0 -63
  397. package/dist/designer/data/systems/pinterest/DESIGN.md +0 -233
  398. package/dist/designer/data/systems/pinterest/components.html +0 -865
  399. package/dist/designer/data/systems/pinterest/tokens.css +0 -262
  400. package/dist/designer/data/systems/playstation/DESIGN.md +0 -367
  401. package/dist/designer/data/systems/playstation/components.html +0 -414
  402. package/dist/designer/data/systems/playstation/tokens.css +0 -150
  403. package/dist/designer/data/systems/posthog/DESIGN.md +0 -259
  404. package/dist/designer/data/systems/posthog/components.html +0 -827
  405. package/dist/designer/data/systems/posthog/tokens.css +0 -272
  406. package/dist/designer/data/systems/premium/DESIGN.md +0 -71
  407. package/dist/designer/data/systems/premium/components.html +0 -154
  408. package/dist/designer/data/systems/premium/tokens.css +0 -63
  409. package/dist/designer/data/systems/professional/DESIGN.md +0 -71
  410. package/dist/designer/data/systems/professional/components.html +0 -136
  411. package/dist/designer/data/systems/professional/tokens.css +0 -63
  412. package/dist/designer/data/systems/publication/DESIGN.md +0 -71
  413. package/dist/designer/data/systems/publication/components.html +0 -154
  414. package/dist/designer/data/systems/publication/tokens.css +0 -63
  415. package/dist/designer/data/systems/raycast/DESIGN.md +0 -271
  416. package/dist/designer/data/systems/raycast/components.html +0 -507
  417. package/dist/designer/data/systems/raycast/tokens.css +0 -143
  418. package/dist/designer/data/systems/refined/DESIGN.md +0 -71
  419. package/dist/designer/data/systems/refined/components.html +0 -136
  420. package/dist/designer/data/systems/refined/tokens.css +0 -63
  421. package/dist/designer/data/systems/renault/DESIGN.md +0 -314
  422. package/dist/designer/data/systems/renault/components.html +0 -154
  423. package/dist/designer/data/systems/renault/tokens.css +0 -63
  424. package/dist/designer/data/systems/replicate/DESIGN.md +0 -264
  425. package/dist/designer/data/systems/replicate/components.html +0 -340
  426. package/dist/designer/data/systems/replicate/tokens.css +0 -125
  427. package/dist/designer/data/systems/resend/DESIGN.md +0 -306
  428. package/dist/designer/data/systems/resend/components.html +0 -839
  429. package/dist/designer/data/systems/resend/tokens.css +0 -353
  430. package/dist/designer/data/systems/retro/DESIGN.md +0 -71
  431. package/dist/designer/data/systems/retro/components.html +0 -136
  432. package/dist/designer/data/systems/retro/tokens.css +0 -63
  433. package/dist/designer/data/systems/revolut/DESIGN.md +0 -188
  434. package/dist/designer/data/systems/revolut/components.html +0 -342
  435. package/dist/designer/data/systems/revolut/tokens.css +0 -64
  436. package/dist/designer/data/systems/runwayml/DESIGN.md +0 -247
  437. package/dist/designer/data/systems/runwayml/components.html +0 -638
  438. package/dist/designer/data/systems/runwayml/tokens.css +0 -204
  439. package/dist/designer/data/systems/sanity/DESIGN.md +0 -360
  440. package/dist/designer/data/systems/sanity/components.html +0 -342
  441. package/dist/designer/data/systems/sanity/tokens.css +0 -64
  442. package/dist/designer/data/systems/sentry/DESIGN.md +0 -265
  443. package/dist/designer/data/systems/sentry/components.html +0 -387
  444. package/dist/designer/data/systems/sentry/tokens.css +0 -219
  445. package/dist/designer/data/systems/shadcn/DESIGN.md +0 -71
  446. package/dist/designer/data/systems/shadcn/components.html +0 -732
  447. package/dist/designer/data/systems/shadcn/tokens.css +0 -255
  448. package/dist/designer/data/systems/shopify/DESIGN.md +0 -353
  449. package/dist/designer/data/systems/shopify/components.html +0 -342
  450. package/dist/designer/data/systems/shopify/tokens.css +0 -141
  451. package/dist/designer/data/systems/simple/DESIGN.md +0 -71
  452. package/dist/designer/data/systems/simple/components.html +0 -136
  453. package/dist/designer/data/systems/simple/tokens.css +0 -63
  454. package/dist/designer/data/systems/skeumorphism/DESIGN.md +0 -71
  455. package/dist/designer/data/systems/skeumorphism/components.html +0 -136
  456. package/dist/designer/data/systems/skeumorphism/tokens.css +0 -63
  457. package/dist/designer/data/systems/slack/DESIGN.md +0 -363
  458. package/dist/designer/data/systems/slack/components.html +0 -387
  459. package/dist/designer/data/systems/slack/tokens.css +0 -127
  460. package/dist/designer/data/systems/sleek/DESIGN.md +0 -71
  461. package/dist/designer/data/systems/sleek/components.html +0 -136
  462. package/dist/designer/data/systems/sleek/tokens.css +0 -63
  463. package/dist/designer/data/systems/spacex/DESIGN.md +0 -197
  464. package/dist/designer/data/systems/spacex/components.html +0 -496
  465. package/dist/designer/data/systems/spacex/tokens.css +0 -154
  466. package/dist/designer/data/systems/spacious/DESIGN.md +0 -71
  467. package/dist/designer/data/systems/spacious/components.html +0 -136
  468. package/dist/designer/data/systems/spacious/tokens.css +0 -63
  469. package/dist/designer/data/systems/spotify/DESIGN.md +0 -249
  470. package/dist/designer/data/systems/spotify/components.html +0 -365
  471. package/dist/designer/data/systems/spotify/tokens.css +0 -127
  472. package/dist/designer/data/systems/starbucks/DESIGN.md +0 -583
  473. package/dist/designer/data/systems/starbucks/components.html +0 -493
  474. package/dist/designer/data/systems/starbucks/tokens.css +0 -182
  475. package/dist/designer/data/systems/storytelling/DESIGN.md +0 -71
  476. package/dist/designer/data/systems/storytelling/components.html +0 -136
  477. package/dist/designer/data/systems/storytelling/tokens.css +0 -63
  478. package/dist/designer/data/systems/stripe/DESIGN.md +0 -325
  479. package/dist/designer/data/systems/stripe/components.html +0 -1018
  480. package/dist/designer/data/systems/stripe/tokens.css +0 -295
  481. package/dist/designer/data/systems/supabase/DESIGN.md +0 -258
  482. package/dist/designer/data/systems/supabase/components.html +0 -741
  483. package/dist/designer/data/systems/supabase/tokens.css +0 -294
  484. package/dist/designer/data/systems/superhuman/DESIGN.md +0 -255
  485. package/dist/designer/data/systems/superhuman/components.html +0 -537
  486. package/dist/designer/data/systems/superhuman/tokens.css +0 -160
  487. package/dist/designer/data/systems/tesla/DESIGN.md +0 -289
  488. package/dist/designer/data/systems/tesla/components.html +0 -724
  489. package/dist/designer/data/systems/tesla/tokens.css +0 -285
  490. package/dist/designer/data/systems/tetris/DESIGN.md +0 -71
  491. package/dist/designer/data/systems/tetris/components.html +0 -342
  492. package/dist/designer/data/systems/tetris/tokens.css +0 -64
  493. package/dist/designer/data/systems/theverge/DESIGN.md +0 -342
  494. package/dist/designer/data/systems/theverge/components.html +0 -342
  495. package/dist/designer/data/systems/theverge/tokens.css +0 -64
  496. package/dist/designer/data/systems/together-ai/DESIGN.md +0 -266
  497. package/dist/designer/data/systems/together-ai/components.html +0 -422
  498. package/dist/designer/data/systems/together-ai/tokens.css +0 -127
  499. package/dist/designer/data/systems/totality-festival/DESIGN.md +0 -206
  500. package/dist/designer/data/systems/totality-festival/components.html +0 -136
  501. package/dist/designer/data/systems/totality-festival/tokens.css +0 -63
  502. package/dist/designer/data/systems/trading-terminal/DESIGN.md +0 -178
  503. package/dist/designer/data/systems/trading-terminal/components.html +0 -154
  504. package/dist/designer/data/systems/trading-terminal/tokens.css +0 -63
  505. package/dist/designer/data/systems/uber/DESIGN.md +0 -298
  506. package/dist/designer/data/systems/uber/components.html +0 -347
  507. package/dist/designer/data/systems/uber/tokens.css +0 -131
  508. package/dist/designer/data/systems/urdu/DESIGN.md +0 -1002
  509. package/dist/designer/data/systems/urdu/components.html +0 -136
  510. package/dist/designer/data/systems/urdu/tokens.css +0 -63
  511. package/dist/designer/data/systems/vercel/DESIGN.md +0 -313
  512. package/dist/designer/data/systems/vercel/components.html +0 -839
  513. package/dist/designer/data/systems/vercel/tokens.css +0 -270
  514. package/dist/designer/data/systems/vibrant/DESIGN.md +0 -71
  515. package/dist/designer/data/systems/vibrant/components.html +0 -136
  516. package/dist/designer/data/systems/vibrant/tokens.css +0 -63
  517. package/dist/designer/data/systems/vintage/DESIGN.md +0 -71
  518. package/dist/designer/data/systems/vintage/components.html +0 -136
  519. package/dist/designer/data/systems/vintage/tokens.css +0 -63
  520. package/dist/designer/data/systems/vodafone/DESIGN.md +0 -426
  521. package/dist/designer/data/systems/vodafone/components.html +0 -342
  522. package/dist/designer/data/systems/vodafone/tokens.css +0 -64
  523. package/dist/designer/data/systems/voltagent/DESIGN.md +0 -326
  524. package/dist/designer/data/systems/voltagent/components.html +0 -154
  525. package/dist/designer/data/systems/voltagent/tokens.css +0 -63
  526. package/dist/designer/data/systems/warm-editorial/DESIGN.md +0 -65
  527. package/dist/designer/data/systems/warm-editorial/components.html +0 -136
  528. package/dist/designer/data/systems/warm-editorial/tokens.css +0 -63
  529. package/dist/designer/data/systems/warp/DESIGN.md +0 -256
  530. package/dist/designer/data/systems/warp/components.html +0 -411
  531. package/dist/designer/data/systems/warp/tokens.css +0 -156
  532. package/dist/designer/data/systems/webex/DESIGN.md +0 -207
  533. package/dist/designer/data/systems/webex/components.html +0 -342
  534. package/dist/designer/data/systems/webex/tokens.css +0 -64
  535. package/dist/designer/data/systems/webflow/DESIGN.md +0 -95
  536. package/dist/designer/data/systems/webflow/components.html +0 -413
  537. package/dist/designer/data/systems/webflow/tokens.css +0 -191
  538. package/dist/designer/data/systems/wechat/DESIGN.md +0 -302
  539. package/dist/designer/data/systems/wechat/components.html +0 -507
  540. package/dist/designer/data/systems/wechat/tokens.css +0 -176
  541. package/dist/designer/data/systems/wired/DESIGN.md +0 -281
  542. package/dist/designer/data/systems/wired/components.html +0 -342
  543. package/dist/designer/data/systems/wired/tokens.css +0 -64
  544. package/dist/designer/data/systems/wise/DESIGN.md +0 -176
  545. package/dist/designer/data/systems/wise/components.html +0 -365
  546. package/dist/designer/data/systems/wise/tokens.css +0 -141
  547. package/dist/designer/data/systems/x-ai/DESIGN.md +0 -260
  548. package/dist/designer/data/systems/x-ai/components.html +0 -460
  549. package/dist/designer/data/systems/x-ai/tokens.css +0 -268
  550. package/dist/designer/data/systems/xiaohongshu/DESIGN.md +0 -402
  551. package/dist/designer/data/systems/xiaohongshu/components.html +0 -865
  552. package/dist/designer/data/systems/xiaohongshu/tokens.css +0 -193
  553. package/dist/designer/data/systems/zapier/DESIGN.md +0 -331
  554. package/dist/designer/data/systems/zapier/components.html +0 -342
  555. package/dist/designer/data/systems/zapier/tokens.css +0 -64
  556. package/dist/designer/guidelines.d.ts +0 -23
  557. package/dist/designer/guidelines.d.ts.map +0 -1
  558. package/dist/designer/guidelines.js +0 -176
  559. package/dist/designer/philosophies.d.ts +0 -33
  560. package/dist/designer/philosophies.d.ts.map +0 -1
  561. package/dist/designer/philosophies.js +0 -668
  562. package/dist/designer/skills.d.ts +0 -21
  563. package/dist/designer/skills.d.ts.map +0 -1
  564. package/dist/designer/skills.js +0 -34
  565. package/dist/designer/systems.d.ts +0 -36
  566. package/dist/designer/systems.d.ts.map +0 -1
  567. package/dist/designer/systems.js +0 -221
@@ -1,160 +0,0 @@
1
- /* ─────────────────────────────────────────────────────────────────────────
2
- * design-systems/superhuman/tokens.css
3
- *
4
- * Structured token bindings for "Design System Inspired by Superhuman".
5
- * Premium keyboard-first email client. Predominantly white canvas with a
6
- * single dramatic gesture of color (deep purple hero), warm cream CTAs,
7
- * lavender as the sole accent, and charcoal ink (warmer than #000) for text.
8
- *
9
- * Brand identity in three sentences:
10
- * 1. Maximum confidence through minimum decoration — white dominates,
11
- * borders define containers, shadows are whispered. Lavender Glow
12
- * (#cbb7fb) is the only accent that ever leaves the warm-neutral
13
- * grayscale.
14
- * 2. Super Sans VF with non-standard weight stops (460 / 540 / 600 / 700).
15
- * Body weight is 460 — slightly heavier than regular but lighter than
16
- * medium — the typographic signature that feels confident, never bold.
17
- * 3. Two-radius binary system (8px / 16px) and ultra-tight 0.96 leading
18
- * on display sizes — headlines compress into architectural blocks
19
- * while body text breathes at 1.50 leading.
20
- *
21
- * Schema decisions:
22
- * - --bg: #ffffff (Pure White) — the dominant content canvas.
23
- * - --surface: #ffffff — cards inherit the canvas; --border defines them.
24
- * - --surface-warm: #e9e5dd (Warm Cream) — lifted warm tier for CTAs.
25
- * - --fg: #292827 (Charcoal Ink) — warm near-black, never pure black.
26
- * - --fg-2 → var(--fg) — DESIGN.md uses one ink color on light surfaces.
27
- * - --muted: #6f6c69 — warm mid-gray for captions, derived to sit
28
- * between Charcoal Ink and Parchment Border on the warm hue family.
29
- * - --border: #dcd7d3 (Parchment Border) — warm light gray, slight pink.
30
- * - --accent: #cbb7fb (Lavender Glow); --accent-on: #292827 — charcoal
31
- * on lavender (DESIGN.md "Don't use bright/saturated CTA text").
32
- * - --leading-tight: 0.96 — the signature display compression.
33
- * - --tracking-display: -0.0275em ≈ -1.32px / 48px (DESIGN.md §3).
34
- * - --radius-md: 8px (no mid-tier — DESIGN.md mandates only 8 / 16).
35
- * - --elev-raised: charcoal-tinted whisper, never gray; matches the
36
- * warm-neutral palette used everywhere else.
37
- * ─────────────────────────────────────────────────────────────────── */
38
-
39
- :root {
40
- /* ─── Surface ─────────────────────────────────────────────────────
41
- * White canvas dominates. Warm Cream (#e9e5dd) lives in --surface-warm
42
- * as the lifted warm tier — reserved for CTAs, never used as a card bg. */
43
- --bg: #ffffff; /* Pure White — primary page background */
44
- --surface: #ffffff; /* Cards inherit the canvas; --border contains them */
45
- --surface-warm: #e9e5dd; /* Warm Cream — primary button background only */
46
-
47
- /* ─── Foreground ──────────────────────────────────────────────────
48
- * Charcoal Ink — warm near-black with faint brown undertone. Body
49
- * text uses one ink color throughout; --muted is reserved for true
50
- * subtext like captions and helper labels. */
51
- --fg: #292827; /* Charcoal Ink — primary text */
52
- --fg-2: var(--fg); /* alias — DESIGN.md uses one ink for body */
53
- --muted: #6f6c69; /* Warm mid-gray — captions, helper text */
54
- --meta: var(--muted); /* alias — same warm gray for metadata */
55
-
56
- /* ─── Border ──────────────────────────────────────────────────────
57
- * Parchment Border — warm light gray with slight pink undertone.
58
- * Cards rely on borders for containment, not box shadows. */
59
- --border: #dcd7d3; /* Parchment Border — card edges, dividers */
60
- --border-soft: var(--border); /* alias — no separate inner-row tier */
61
-
62
- /* ─── Accent ──────────────────────────────────────────────────────
63
- * Lavender Glow — soft, approachable purple. The ONLY chromatic
64
- * departure from the warm-neutral palette. Charcoal sits on it for
65
- * AA contrast (lavender is too light for white text). */
66
- --accent: #cbb7fb;
67
- --accent-on: #292827; /* Charcoal on lavender — DESIGN.md §4 */
68
- --accent-hover: color-mix(in oklab, var(--accent), black 6%);
69
- --accent-active: color-mix(in oklab, var(--accent), black 12%);
70
-
71
- /* ─── Semantic ────────────────────────────────────────────────────
72
- * Superhuman's marketing exercises extreme color restraint, but the
73
- * schema requires semantic tokens for product-side usage (status pills,
74
- * inline validation). Defaults from _schema/defaults.css; legible on white. */
75
- --success: #16a34a;
76
- --warn: #eab308;
77
- --danger: #dc2626;
78
-
79
- /* ─── Typography ──────────────────────────────────────────────────
80
- * Super Sans VF — custom variable font with non-standard weight axis
81
- * (460, 540, 600, 700). Body weight is 460 — the signature stop that
82
- * sits between Regular and Medium. Fallback chain mirrors DESIGN.md §3. */
83
- --font-display: "Super Sans VF", system-ui, -apple-system, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
84
- --font-body: "Super Sans VF", system-ui, -apple-system, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
85
- --font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
86
-
87
- /* Type scale — DESIGN.md §3 hierarchy. 64px hero / 48px section /
88
- * 28px feature title / 22px card heading / 20px body heading.
89
- * All eight stops appear verbatim in DESIGN.md — no interpolation. */
90
- --text-xs: 12px; /* Micro Label */
91
- --text-sm: 14px; /* Caption family */
92
- --text-base: 16px; /* Body / Button / Nav */
93
- --text-lg: 20px; /* Body Heading */
94
- --text-xl: 22px; /* Card Heading */
95
- --text-2xl: 28px; /* Feature Title */
96
- --text-3xl: 48px; /* Section Heading */
97
- --text-4xl: 64px; /* Display Hero */
98
-
99
- /* Leading + tracking.
100
- * 0.96 — the signature display compression (DESIGN.md §3).
101
- * 1.50 — body text breathes generously by contrast.
102
- * -0.0275em ≈ -1.32px / 48px from DESIGN.md §3, applied at display sizes only. */
103
- --leading-body: 1.5;
104
- --leading-tight: 0.96;
105
- --tracking-display: -0.0275em;
106
-
107
- /* ─── Spacing ─────────────────────────────────────────────────────
108
- * 8px base. Scale per DESIGN.md §5: 4 / 8 / 12 / 16 / 20 / 24 / 32 / 48. */
109
- --space-1: 4px;
110
- --space-2: 8px;
111
- --space-3: 12px;
112
- --space-4: 16px;
113
- --space-5: 20px;
114
- --space-6: 24px;
115
- --space-8: 32px;
116
- --space-12: 48px;
117
-
118
- /* Section rhythm — DESIGN.md §5 says 48–80px between major sections.
119
- * Top of the range on desktop, compresses on smaller breakpoints. */
120
- --section-y-desktop: 80px;
121
- --section-y-tablet: 56px;
122
- --section-y-phone: 40px;
123
-
124
- /* ─── Radius ──────────────────────────────────────────────────────
125
- * Binary system — DESIGN.md §5: only 8px and 16px exist on the
126
- * marketing site. No micro-rounding (2px), no pill buttons (50px+).
127
- * --radius-md collapses to --radius-sm because the brand has no
128
- * mid-tier; --radius-pill is reserved for status dots only. */
129
- --radius-sm: 8px; /* Buttons, inputs, inline elements */
130
- --radius-md: 8px; /* No mid-tier — DESIGN.md mandates only 8/16 */
131
- --radius-lg: 16px; /* Cards, links, larger containers */
132
- --radius-pill: 9999px; /* Status dots only — never buttons */
133
-
134
- /* ─── Elevation ───────────────────────────────────────────────────
135
- * Depth lives in borders and color contrast, not shadow. The raised
136
- * tier is a charcoal-tinted whisper for product-screenshot frames
137
- * (DESIGN.md §6 "Subtle shadow … product screenshot containers"). */
138
- --elev-flat: none;
139
- --elev-ring: 0 0 0 1px var(--border);
140
- --elev-raised: 0 2px 12px rgba(41, 40, 39, 0.06);
141
-
142
- /* ─── Focus ring ──────────────────────────────────────────────────
143
- * Lavender Glow at 45% — Superhuman is keyboard-first, so the focus
144
- * indicator must read clearly without violating the muted palette. */
145
- --focus-ring: 0 0 0 3px color-mix(in oklab, var(--accent), transparent 55%);
146
-
147
- /* ─── Motion ──────────────────────────────────────────────────────
148
- * Restrained — Superhuman's velocity is in the keyboard, not the page.
149
- * Defaults from _schema/defaults.css. */
150
- --motion-fast: 150ms;
151
- --motion-base: 200ms;
152
- --ease-standard: cubic-bezier(0.2, 0, 0, 1);
153
-
154
- /* ─── Layout ──────────────────────────────────────────────────────
155
- * 1200px container — DESIGN.md §5 "~1200px content container, centered". */
156
- --container-max: 1200px;
157
- --container-gutter-desktop: 24px;
158
- --container-gutter-tablet: 16px;
159
- --container-gutter-phone: 12px;
160
- }
@@ -1,289 +0,0 @@
1
- # Design System Inspired by Tesla
2
-
3
- > Category: Automotive
4
- > Electric automotive. Radical subtraction, full-viewport photography, near-zero UI.
5
-
6
- ## 1. Visual Theme & Atmosphere
7
-
8
- Tesla's website is an exercise in radical subtraction — a digital showroom where the product is everything and the interface is almost nothing. The page opens with a full-viewport hero that fills the entire screen with cinematic car photography: three vehicles arranged on polished concrete against a hazy cityscape sky, with a single model name floating above in translucent white type. There are no decorative borders, no gradients, no patterns, no shadows. The UI exists only to provide just enough navigational structure to get out of the way. Every pixel that isn't product imagery is white space, and that restraint is the design system's most powerful statement.
9
-
10
- The color philosophy is almost ascetic: a single blue (`#3E6AE1`) for primary calls to action, three shades of dark gray for text hierarchy, and white for everything else. The entire emotional weight is carried by photography — sprawling landscape shots, studio-lit vehicle profiles, and atmospheric environmental compositions that stretch edge-to-edge across each viewport-height section. The UI chrome dissolves into the imagery. The navigation bar floats above the hero with no visible background, border, or shadow — the TESLA wordmark and five navigation labels simply exist in the space, trusting the content beneath them to provide sufficient contrast.
11
-
12
- Typography recently transitioned from Gotham to Universal Sans — a custom family split into "Display" for headlines and "Text" for body/UI elements — unifying the website, mobile app, and in-car software into a single typographic voice. The Display variant renders hero titles at 40px weight 500, while the Text variant handles everything from navigation (14px/500) to body copy (14px/400). The font carries a geometric precision with slightly humanist terminals that feels engineered rather than designed — exactly matching Tesla's brand identity of technology that doesn't need to announce itself. There are no text shadows, no text gradients, no decorative type treatments. Every letterform earns its place through clarity alone.
13
-
14
- **Key Characteristics:**
15
- - Full-viewport hero sections (100vh) dominated by cinematic car photography with minimal overlay UI
16
- - Near-zero UI decoration: no shadows, no gradients, no borders, no patterns anywhere on the page
17
- - Single accent color — Electric Blue (`#3E6AE1`) — used exclusively for primary CTA buttons
18
- - Universal Sans font family (Display + Text) unifying web, app, and in-car interfaces
19
- - Photography-first presentation where product imagery carries all emotional weight
20
- - Frosted-glass navigation concept with transparent/white nav that floats over hero content
21
- - 0.33s cubic-bezier transitions as the universal timing for all interactive state changes
22
- - Carousel-driven hero with dot indicators and edge arrow navigation for multiple vehicle showcases
23
- - "Ask a Question" persistent chatbot bar anchored to the viewport bottom
24
-
25
- ## 2. Color Palette & Roles
26
-
27
- ### Primary
28
- - **Electric Blue** (`#3E6AE1`): Primary CTA button background — a confident, mid-saturation blue (rgb 62, 106, 225) that stands alone as the only chromatic color in the entire interface. Used exclusively for "Order Now" and other primary action buttons
29
- - **Pure White** (`#FFFFFF`): Dominant background color for all surfaces, panels, navigation, and secondary button fills — the canvas that lets photography breathe
30
-
31
- ### Secondary & Accent
32
- - **Promo Blue** (`#3E6AE1`): Blue also serves for promotional text ("0% APR Available") displayed over hero imagery in the same hue as the CTA — creating a visual link between incentive messaging and action
33
- - No secondary accent colors exist. Tesla deliberately avoids color variety to maintain extreme visual discipline
34
-
35
- ### Surface & Background
36
- - **White Canvas** (`#FFFFFF`): Page background, navigation panel, dropdown menus, and all surface containers
37
- - **Light Ash** (`#F4F4F4`): Subtle alternate surface for section differentiation — barely perceptible shift from pure white (rgb 244, 244, 244)
38
- - **Carbon Dark** (`#171A20`): Dark surface color for hero text overlays and potential dark-mode contexts (rgb 23, 26, 32) — a warm near-black with a blue undertone
39
- - **Frosted Glass** (`rgba(255, 255, 255, 0.75)`): Semi-transparent white for navigation backdrop-filter effects on scroll
40
-
41
- ### Neutrals & Text
42
- - **Carbon Dark** (`#171A20`): Primary heading and navigation text — the darkest text value (rgb 23, 26, 32), used for model names, nav labels, and hero titles on light backgrounds
43
- - **Graphite** (`#393C41`): Body text and secondary content (rgb 57, 60, 65) — the default paragraph color, slightly warmer than pure gray
44
- - **Pewter** (`#5C5E62`): Tertiary text for sub-links, secondary navigation links like "Learn" and "Order" (rgb 92, 94, 98)
45
- - **Silver Fog** (`#8E8E8E`): Placeholder text in input fields and disabled states (rgb 142, 142, 142)
46
- - **Cloud Gray** (`#EEEEEE`): Light borders and divider lines (rgb 238, 238, 238)
47
- - **Pale Silver** (`#D0D1D2`): Subtle UI borders and delineation (rgb 208, 209, 210)
48
-
49
- ### Semantic & Accent
50
- - Tesla's marketing site avoids semantic color coding (no green/red/yellow status indicators). Error, success, and warning states follow standard browser defaults in form contexts
51
- - The blue CTA (`#3E6AE1`) serves as the sole interactive color signal
52
-
53
- ### Gradient System
54
- - No gradients are used anywhere in the interface
55
- - Depth is achieved entirely through photography, whitespace, and the binary contrast between full-bleed imagery and clean white surfaces
56
- - The navigation achieves layering through opacity (frosted glass effect) rather than gradient or shadow
57
-
58
- ## 3. Typography Rules
59
-
60
- ### Font Family
61
- - **Display**: `Universal Sans Display`, -apple-system, Arial, sans-serif — used for hero titles and large model names. A geometric sans-serif with precisely engineered proportions, recently replacing Gotham to unify Tesla's digital ecosystem (website, mobile app, vehicle interface)
62
- - **Text/UI**: `Universal Sans Text`, -apple-system, Arial, sans-serif — used for navigation, body copy, buttons, and all UI text. Optimized for legibility at smaller sizes with slightly wider proportions than the Display variant
63
- - **No OpenType features** detected — typography is completely unembellished
64
- - **No italic variants** observed on the marketing site
65
-
66
- ### Hierarchy
67
-
68
- | Role | Size | Weight | Line Height | Letter Spacing | Notes |
69
- |------|------|--------|-------------|----------------|-------|
70
- | Hero Title | 40px (2.50rem) | 500 | 48px (1.20) | normal | Universal Sans Display, white on dark hero imagery |
71
- | Product Name | 17px (1.06rem) | 500 | 20px (1.18) | normal | Universal Sans Text, model names in nav panel and cards |
72
- | Nav Item | 14px (0.88rem) | 500 | 16.8px (1.20) | normal | Universal Sans Text, primary navigation labels |
73
- | Body Text | 14px (0.88rem) | 400 | 20px (1.43) | normal | Universal Sans Text, paragraph and descriptive content |
74
- | Button Label | 14px (0.88rem) | 500 | 16.8px (1.20) | normal | Universal Sans Text, CTA button text |
75
- | Sub-link | 14px (0.88rem) | 400 | 20px (1.43) | normal | Tertiary links (Learn, Order, Experience) |
76
- | Promo Text | 22px (1.38rem) | 400 | 20px (0.91) | normal | White promotional text on hero ("0% APR Available") |
77
- | Category Label | 16px (est.) | 500 | — | normal | White text labels on category cards ("Sport Sedan") |
78
-
79
- ### Principles
80
- - **"Normal" letter-spacing everywhere**: Unlike most modern tech brands that use negative tracking for headlines, Tesla uses default letter-spacing at every level. This reflects a philosophy that the typeface should speak for itself without manipulation
81
- - **Weight restraint**: Only two weights appear — 500 (medium) for headings/UI and 400 (regular) for body. No bold (700), no light (300). The system avoids typographic drama
82
- - **Unified font sizing**: Most UI text clusters at 14px with only hero titles (40px) and promo text (22px) breaking away. This extreme uniformity creates a sense of engineered consistency
83
- - **Display vs Text split**: The two-variant system (Display for hero, Text for UI) creates subtle optical correction without visible stylistic difference — they appear as the same typeface at different sizes
84
- - **No text transforms**: No uppercase text appears in the main navigation or CTAs — the lowercase approach reinforces Tesla's understated confidence
85
-
86
- ## 4. Component Stylings
87
-
88
- ### Buttons
89
- All buttons use barely-rounded rectangles (4px border-radius) — creating a sharp, technical aesthetic that mirrors the precision of the vehicles.
90
-
91
- **Primary CTA** — The main action button:
92
- - Default: bg `#3E6AE1` (Electric Blue), text `#FFFFFF`, fontSize 14px, fontWeight 500, padding 4px with inner content centering, borderRadius 4px, minHeight 40px, width 200px
93
- - Border: 3px solid transparent (reserves space for focus/active border animation)
94
- - Box Shadow: `rgba(0,0,0,0) 0px 0px 0px 2px inset` (invisible at rest, animates to visible on focus)
95
- - Transition: `border-color 0.33s, background-color 0.33s, color 0.33s, box-shadow 0.25s`
96
- - Hover: subtle darkening of blue background
97
- - Used for: "Order Now" calls to action
98
-
99
- **Secondary CTA** — The alternative action button:
100
- - Default: bg `#FFFFFF`, text `#393C41` (Graphite), same dimensions and border pattern as primary
101
- - Transition: identical timing to primary (0.33s)
102
- - Used for: "View Inventory" alongside primary CTA
103
-
104
- **Nav Button** — Top navigation items:
105
- - Default: bg transparent, text `#171A20` (Carbon Dark), fontSize 14px, fontWeight 500, borderRadius 4px, padding 4px 16px, minHeight 32px
106
- - Transition: `color 0.33s, background-color 0.33s`
107
- - Active/expanded: subtle background highlight
108
- - Used for: "Vehicles", "Energy", "Charging", "Discover", "Shop"
109
-
110
- **Text Link** — In-content actions:
111
- - Default: text `#5C5E62` (Pewter), fontSize 14px, fontWeight 400, no background, no border
112
- - Hover: underline decoration with box-shadow transition
113
- - Transition: `box-shadow 0.33s cubic-bezier(0.5, 0, 0, 0.75), color 0.33s`
114
- - Used for: "Learn", "Order", "Experience", "New", "Pre-Owned" links in dropdown panel
115
-
116
- ### Cards & Containers
117
-
118
- **Vehicle Card** (Navigation panel):
119
- - Background: transparent (inherits panel white)
120
- - Border: none
121
- - Shadow: none
122
- - Content: vehicle image (transparent PNG) + model name centered below + two text links
123
- - Layout: 3-column grid within the dropdown panel
124
- - No hover animation on the card itself — interaction is via the text links beneath
125
-
126
- **Category Card** (Homepage lower section):
127
- - Background: full-bleed landscape photography
128
- - Border radius: approximately 12px (subtly rounded)
129
- - Overflow: hidden (clips image to rounded corners)
130
- - Text: white label in top-left corner ("Sport Sedan", "Midsize SUV")
131
- - Size: large format, approximately 2:1 aspect ratio
132
- - No shadow, no border, no overlay gradient — text relies on image darkness for contrast
133
-
134
- ### Inputs & Forms
135
- - Background: transparent
136
- - Text color: `#171A20` (Carbon Dark)
137
- - Placeholder color: `#8E8E8E` (Silver Fog)
138
- - Border: minimal, inherits from browser defaults
139
- - Font: Universal Sans Text, 14px
140
- - The "Ask a Question" chatbot input bar sits at the viewport bottom with a clean white background and subtle border
141
-
142
- ### Navigation
143
- - **Desktop**: Centered horizontal nav with TESLA wordmark (spaced uppercase letters) on the left, five category buttons center-aligned, and three icon buttons (help, globe/language, account) on the right
144
- - **Background**: White (transitions from transparent over dark hero to opaque white on scroll via class toggle `tds-site-header--white-background`)
145
- - **Dropdown panel**: Full-width white panel with 3-column vehicle grid + right sidebar text links, no shadow, no border — appears seamlessly below the nav
146
- - **Sticky behavior**: `sticky-without-slide` class — stays at top without slide-in animation
147
- - **Mobile**: Hamburger collapse pattern
148
- - **No visible separator** between nav and content — the nav blends with the hero
149
-
150
- ### Image Treatment
151
- - **Hero**: Full-viewport (100vh) sections with cinematic photography — edge-to-edge, no padding, no margin
152
- - **Vehicle images**: Transparent PNG renders on white background in dropdown panel, studio-quality 3/4 angle shots
153
- - **Category cards**: Landscape photography with approximately 2:1 ratio, rounded corners (12px)
154
- - **Carousel**: Auto-advancing with dot indicators (3 dots) and left/right arrow navigation on edges
155
- - **Lazy loading**: Below-fold sections use lazy loading, rendering as blank white until scrolled into view
156
-
157
- ### Persistent Chat Bar
158
- - Anchored to viewport bottom, visible across all sections
159
- - White background with subtle border
160
- - Contains: chat icon + "Ask a Question" label + placeholder text ("What's Dog Mode?") + send icon + "Schedule a Drive Today" secondary CTA
161
- - Schedule CTA has a teal/blue icon accent
162
-
163
- ## 5. Layout Principles
164
-
165
- ### Spacing System
166
- - **Base unit**: 8px
167
- - **Common values**: 8px (0.5rem), 16px (1rem), 21.44px (1.34rem)
168
- - **Button padding**: 4px (minimal outer) with content centering via flexbox, 4px 16px for nav items
169
- - **Section padding**: Full-viewport sections with content centered vertically
170
- - **Card gap**: approximately 16px between category cards
171
-
172
- ### Grid & Container
173
- - **Max width**: approximately 1383px (full viewport width used for most content)
174
- - **Hero**: Full-bleed, edge-to-edge, 100vh sections
175
- - **Navigation panel**: 3-column grid for vehicle cards with right-aligned text sidebar (~70/30 split)
176
- - **Category cards**: 2-up horizontal layout (large left card + smaller right card)
177
-
178
- ### Whitespace Philosophy
179
- Tesla uses whitespace as a luxury signal. The generous vertical spacing between sections (each section is a full viewport height) means you can only see one "message" at a time — one car, one model name, one CTA pair. This creates a gallery-like browsing experience where each scroll is a deliberate transition, not a continuous feed. White space is not empty — it's the frame that elevates each vehicle to the status of art piece.
180
-
181
- ### Border Radius Scale
182
- | Value | Context |
183
- |-------|---------|
184
- | 0px | Most elements — sharp edges are the default |
185
- | 4px | Buttons (primary, secondary, nav items) — barely perceptible rounding |
186
- | ~12px | Category cards — noticeable but restrained rounding on larger surfaces |
187
- | 50% | Carousel dot indicators — perfect circles |
188
-
189
- ## 6. Depth & Elevation
190
-
191
- | Level | Treatment | Use |
192
- |-------|-----------|-----|
193
- | Level 0 (Flat) | No shadow, no border | Default state for all elements — cards, panels, buttons at rest |
194
- | Level 1 (Frost) | `rgba(255,255,255,0.75)` backdrop | Navigation bar on scroll — frosted glass transparency |
195
- | Level 2 (Overlay) | `rgba(128,128,128,0.65)` | Modal overlays and region/cookie popups |
196
- | Level 3 (Subtle) | `rgba(0,0,0,0.05)` | Minimal shadow hints on rare hover states |
197
-
198
- ### Shadow Philosophy
199
- Tesla's approach to elevation is essentially "none." The site avoids box-shadows entirely in its primary interface. Depth is communicated through three alternative strategies:
200
- 1. **Z-index layering**: The sticky navigation sits above hero content through positioning, not shadow
201
- 2. **Opacity-based transparency**: The frosted glass nav and overlay modals use background-color opacity rather than shadow to indicate layering
202
- 3. **Photography-as-depth**: The full-bleed images create their own visual depth through perspective, lighting, and composition — making UI shadows redundant
203
-
204
- ### Decorative Depth
205
- - No gradients, glows, or atmospheric effects on UI elements
206
- - The hero imagery itself provides all visual richness — sunset skies, reflected light on car surfaces, ground shadows from studio lighting
207
- - The carousel arrow buttons use a semi-transparent white background to float above the hero imagery without disrupting it
208
-
209
- ## 7. Do's and Don'ts
210
-
211
- ### Do
212
- - Let photography dominate every screen — the product IS the design
213
- - Use Electric Blue (`#3E6AE1`) exclusively for primary CTAs — never for decorative purposes
214
- - Maintain viewport-height sections for major content blocks — one message per screen
215
- - Keep typography at weight 400-500 only — no bold, no light, no extremes
216
- - Use 4px border-radius for all interactive elements — precision over playfulness
217
- - Trust whitespace as a luxury signal — never fill available space just because it's empty
218
- - Keep all transitions at 0.33s — consistency in motion is as important as consistency in color
219
- - Use transparent PNG vehicle imagery on white backgrounds for product showcases
220
- - Center CTAs horizontally below model names — the vertical rhythm is model → subtitle → buttons
221
- - Maintain the Display/Text font split — Display for hero-scale text only, Text for everything else
222
-
223
- ### Don't
224
- - Add shadows to any element — elevation through shadow contradicts the flat, gallery aesthetic
225
- - Use more than one chromatic color besides the blue CTA — the palette is intentionally monochrome-plus-one
226
- - Apply gradients, patterns, or decorative backgrounds to surfaces — white and photography are the only backgrounds
227
- - Use text larger than 40px on the web — the typography is deliberately restrained even at hero scale
228
- - Add borders to cards or containers — separation is achieved through spacing, not lines
229
- - Use uppercase text transforms — Tesla's confidence is expressed through lowercase calm
230
- - Introduce rounded-pill buttons or large border-radii — the 4px radius is deliberate and precise
231
- - Override the Universal Sans family with other typefaces — cross-platform consistency is a core brand value
232
- - Add hover animations with scale/translate transforms — Tesla's interactions are color-only (background and border transitions)
233
- - Clutter the viewport with multiple CTAs — every screen should have at most two action buttons
234
-
235
- ## 8. Responsive Behavior
236
-
237
- ### Breakpoints
238
- | Name | Width | Key Changes |
239
- |------|-------|-------------|
240
- | Mobile | <768px | Single-column layout, hamburger nav replaces horizontal labels, hero text scales to ~28px, CTA buttons stack vertically, category cards become full-width |
241
- | Tablet | 768-1024px | 2-column nav panel, hero maintains full-viewport height, CTAs remain side-by-side, reduced horizontal padding |
242
- | Desktop | 1024-1440px | Full horizontal nav, 3-column vehicle grid in dropdown, hero at 40px, side-by-side CTAs at 200px/160px width |
243
- | Large Desktop | >1440px | Content remains centered, hero photography scales to fill wider viewports, max-width container for nav panel content |
244
-
245
- ### Touch Targets
246
- - Primary CTA buttons: 200px × 40px minimum (well above 44×44px WCAG requirement)
247
- - Nav buttons: minimum 32px height with 4px 16px padding — adequate touch targets
248
- - Carousel arrows: ~44px square white semi-transparent buttons at viewport edges
249
- - Text links ("Learn", "Order"): 14px text with adequate line-height spacing for touch
250
-
251
- ### Collapsing Strategy
252
- - **Navigation**: Horizontal category buttons (Vehicles, Energy, Charging, Discover, Shop) collapse to a hamburger/drawer menu on mobile
253
- - **Hero CTA pair**: Side-by-side buttons on desktop stack vertically on mobile
254
- - **Category cards**: 2-up horizontal layout collapses to single-column full-width on mobile
255
- - **Vehicle grid**: 3-column grid in desktop nav panel becomes 2-column on tablet, single-column on mobile
256
- - **Spacing**: Section vertical padding remains generous (viewport-height sections) but horizontal padding reduces
257
-
258
- ### Image Behavior
259
- - Hero images are fully responsive and fill the entire viewport at every breakpoint
260
- - Vehicle carousel images use `object-fit: cover` to maintain cinematic composition across widths
261
- - Transparent PNG vehicle images in the nav panel scale proportionally within their grid cells
262
- - Category card images maintain their landscape ratio and clip via `overflow: hidden` with border-radius
263
-
264
- ## 9. Agent Prompt Guide
265
-
266
- ### Quick Color Reference
267
- - Primary CTA: "Electric Blue (#3E6AE1)"
268
- - Background: "Pure White (#FFFFFF)"
269
- - Heading text: "Carbon Dark (#171A20)"
270
- - Body text: "Graphite (#393C41)"
271
- - Tertiary text: "Pewter (#5C5E62)"
272
- - Placeholder: "Silver Fog (#8E8E8E)"
273
- - Alternate surface: "Light Ash (#F4F4F4)"
274
- - Dark surface: "Carbon Dark (#171A20)"
275
-
276
- ### Example Component Prompts
277
- - "Create a hero section with a full-viewport background image, centered 'Model Y' title in Universal Sans Display at 40px weight 500 in white, a subtitle line below, and two buttons side by side: a primary Electric Blue (#3E6AE1) 'Order Now' button and a secondary white 'View Inventory' button, both with 4px border-radius and 40px height"
278
- - "Design a navigation bar with a spaced-letter wordmark on the left, five text buttons (14px, weight 500, Carbon Dark #171A20) centered, and three icon buttons on the right, all on a white background with no shadow or border"
279
- - "Build a vehicle card grid with 3 columns, each card showing a transparent-background car image above a model name (17px, weight 500, Carbon Dark) and two text links (14px, weight 400, Pewter #5C5E62) labeled 'Learn' and 'Order', on a pure white surface with no borders or shadows"
280
- - "Create a category card with full-bleed landscape photography, 12px border-radius, overflow hidden, and a white text label ('Sport Sedan') positioned in the top-left corner with no overlay gradient"
281
- - "Design a persistent bottom bar with a chat input ('Ask a Question' placeholder), a send icon, and a secondary CTA ('Schedule a Drive Today') with a teal icon, anchored to the viewport bottom on a white background"
282
-
283
- ### Iteration Guide
284
- When refining existing screens generated with this design system:
285
- 1. Focus on ONE component at a time — Tesla's system is so minimal that each element must be pixel-perfect
286
- 2. Reference specific color names and hex codes from this document — there are only 6-7 colors in the entire system
287
- 3. Use natural language descriptions, not CSS values — "barely rounded corners" not "border-radius: 4px"
288
- 4. Describe the desired "feel" alongside specific measurements — "gallery-like silence between sections" communicates the whitespace philosophy better than "margin-bottom: 100vh"
289
- 5. Always verify that photography is doing the emotional heavy-lifting — if the UI itself feels "designed," it's too much