@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,304 @@
1
+ /* ─────────────────────────────────────────────────────────────────────────
2
+ * design-systems/nike/tokens.css
3
+ *
4
+ * Structured token bindings for "Design System Inspired by Nike" —
5
+ * the kinetic retail cathedral. A monochromatic UI (black/white/grey
6
+ * only) so that athletic photography and product color carry the
7
+ * emotional weight, with massive uppercase Nike Futura ND display
8
+ * typography that punches through hero imagery like a typographic
9
+ * shockwave. This file is the *machine-readable* form of the values
10
+ * described in `DESIGN.md`. Agents paste the `:root { … }` block
11
+ * verbatim into the first `<style>` of every artifact, then reference
12
+ * everything via var(--name) from then on.
13
+ *
14
+ * Brand-specific schema decisions (non-obvious bindings worth flagging
15
+ * for reviewers and downstream brand authors):
16
+ * 1. --bg is pure white (#FFFFFF) and --fg is Nike Black (#111111),
17
+ * not pure black. The fractional warmth at #111111 is a
18
+ * brand-determining choice ("Don't use #000000 for text" — §7
19
+ * do's-and-don'ts) so we honor it strictly even though the gap
20
+ * from #000 is small.
21
+ * 2. --surface and --surface-warm bind to two real tiers of Nike's
22
+ * grey ladder: --surface → #F5F5F5 (Light Gray, Podium grey-100,
23
+ * the search-fill / placeholder / skeleton tier) and
24
+ * --surface-warm → #FAFAFA (Snow, grey-50, the lightest near-
25
+ * white differentiation tier). Collapsing surface-warm to an
26
+ * alias would erase a real brand feature — Nike walks the full
27
+ * 50/100/200 surface ramp.
28
+ * 3. --accent is bound to Nike Black (#111111), the same value as
29
+ * --fg. Nike's UI accent IS black: §9 ("Quick Color Reference")
30
+ * lists "Primary CTA: Nike Black (#111111)" and §7 forbids
31
+ * brand colors beyond the grey scale for UI elements ("product
32
+ * photography is the color"). The schema's ≤2 visible accent
33
+ * uses per screen aligns naturally because Nike already self-
34
+ * polices its UI to a single chromatic move.
35
+ * 4. --accent-hover is bound to #707072 (Grey-500 / Secondary Text),
36
+ * not a black-mix darkening. Nike's documented primary-button
37
+ * hover SHIFTS to grey rather than darkening (§4 — "Hover:
38
+ * background shifts to Grey-500"); the schema's default formula
39
+ * would fight that motion. --accent-active darkens to true
40
+ * black (#000000) — the only place pure black appears in the
41
+ * system, reserved for the press-feedback moment.
42
+ * 5. --fg-2 aliases to --fg, while --muted (#707072) and --meta
43
+ * (#9E9EA0) bind to independent values. Nike's text hierarchy
44
+ * is essentially binary at the primary tier (no intermediate
45
+ * between Nike Black and Secondary Text), but it does keep a
46
+ * separate tertiary / disabled tier for metadata.
47
+ * 6. --border-soft binds to #E5E5E5 (Hover Gray / grey-200) — Nike's
48
+ * §6 documents the only sanctioned divider as
49
+ * `0px -1px 0px 0px #E5E5E5 inset`. The hairline #CACACB
50
+ * (--border) reads as a card edge; #E5E5E5 reads as a row-
51
+ * separator whisper.
52
+ * 7. --radius-pill is bound to 30px, NOT 9999px. Nike's signature
53
+ * pill button uses 30px literally (§4 — "fully rounded pill
54
+ * (30px)") and the number is itself a brand-recognisable
55
+ * detail. Apple makes the same kind of choice with 980px; we
56
+ * follow that precedent rather than collapsing to the schema
57
+ * default.
58
+ * 8. --elev-raised is ring-only (`0 0 0 1px var(--border)`),
59
+ * identical to --elev-ring. §6 declares Nike's elevation model
60
+ * "radically flat — no card shadows, no hover lifts, no
61
+ * floating elements." Binding raised to a blur shadow would
62
+ * contradict the brand; we bind it to the ring so artifacts
63
+ * that reference --elev-raised still resolve, but produce the
64
+ * flat / hairline look Nike intends.
65
+ * 9. --focus-ring is the documented 2px solid blue ring
66
+ * `0 0 0 2px rgba(39, 93, 197, 1)` from §4 / §6, NOT the
67
+ * schema's transparent-mixed accent halo. Nike's focus indicator
68
+ * is a deliberate chromatic break — the only blue moment in the
69
+ * whole UI — and we keep it verbatim.
70
+ * 10. --tracking-display is -0.02em. The DESIGN.md hierarchy table
71
+ * leaves display letter-spacing as "—", but the user-facing
72
+ * brief calls for "tight tracking" on the BIG uppercase
73
+ * condensed Futura display; -0.02em (≈ -1.92px on 96px)
74
+ * compresses the Futura ND silhouette into the monolithic
75
+ * stadium-scoreboard block §3 describes without crushing
76
+ * smaller display tiers.
77
+ * 11. --leading-tight is 0.90, the most aggressive tight-leading
78
+ * binding in any brand on the repo. §3 calls it "impossibly
79
+ * tight" and the typographic identity depends on it; ascenders
80
+ * and descenders nearly touch on the 96px display.
81
+ *
82
+ * Contract sources:
83
+ * - Standard token names: design-systems/_schema/tokens.schema.ts
84
+ * (TOKEN_SCHEMA — every name below appears there or as an
85
+ * explicit B-slot.)
86
+ * - A2 fallback values: design-systems/_schema/defaults.css
87
+ * (We override --accent-on, --accent-hover, --accent-active,
88
+ * --success, --warn, --danger, --radius-md, --radius-lg,
89
+ * --radius-pill, --elev-raised, --focus-ring; the rest match
90
+ * defaults.)
91
+ *
92
+ * Keep this file additive: never invent token names not also documented
93
+ * in DESIGN.md or the shared schema.
94
+ * ─────────────────────────────────────────────────────────────────── */
95
+
96
+ :root {
97
+ /* ─── Surface (3 levels) ──────────────────────────────────────────
98
+ * Nike's surface ladder runs 50 → 100 → 200 across grey-50/100/200.
99
+ * --bg is the white retail canvas (the most common default page
100
+ * background); --surface is the Light Gray feature/skeleton tier;
101
+ * --surface-warm is the Snow near-white differentiation tier that
102
+ * appears between hero bands and merchandise grids on nike.com.
103
+ * All three bind to real values — collapsing surface-warm would
104
+ * erase a real brand feature. */
105
+ --bg: #ffffff; /* Nike White — primary page canvas */
106
+ --surface: #f5f5f5; /* Light Gray (Podium grey-100) — fill / skeleton */
107
+ --surface-warm: #fafafa; /* Snow (Podium grey-50) — lightest tier */
108
+
109
+ /* ─── Foreground ramp (4 levels) ─────────────────────────────────
110
+ * Nike's text neutrals are explicitly named in DESIGN.md §2:
111
+ * Nike Black (primary text — #111111, deliberately not #000000),
112
+ * Secondary Text (#707072, descriptive copy / metadata / price
113
+ * labels), and Disabled Text (#9E9EA0, inactive elements). The
114
+ * brand's hierarchy is binary at the primary tier (no #2 stop
115
+ * between #111111 and #707072), so --fg-2 collapses to var(--fg);
116
+ * --muted and --meta bind to independent values. */
117
+ --fg: #111111; /* Nike Black — primary text, headings, nav links */
118
+ --fg-2: var(--fg); /* alias — no intermediate between primary and muted */
119
+ --muted: #707072; /* Secondary Text (grey-500) — descriptive copy */
120
+ --meta: #9e9ea0; /* Disabled Text (grey-400) — tertiary / metadata */
121
+
122
+ /* ─── Border (2 levels) ──────────────────────────────────────────
123
+ * Nike's border palette is restrained: --border (#CACACB, grey-300)
124
+ * is the standard input / divider weight; --border-soft (#E5E5E5,
125
+ * grey-200) is the documented inset-divider color that whispers
126
+ * between rows in dense product grids without competing with the
127
+ * #CACACB hairline. */
128
+ --border: #cacacb; /* Border Secondary (grey-300) — input borders, dividers */
129
+ --border-soft: #e5e5e5; /* Hover Gray (grey-200) — inset row separator */
130
+
131
+ /* ─── Accent ──────────────────────────────────────────────────────
132
+ * Nike's UI accent IS black. §9 ("Quick Color Reference") lists
133
+ * Primary CTA as Nike Black (#111111); §7 ("Don't introduce brand
134
+ * colors beyond the grey scale for UI elements") forbids using a
135
+ * chromatic accent. Product photography carries all the color, so
136
+ * the schema's "≤2 visible uses per screen" cap aligns naturally
137
+ * with Nike's already-monochrome UI policy. */
138
+ --accent: #111111; /* Nike Black — primary action color */
139
+ --accent-on: #ffffff; /* white label on black fill */
140
+
141
+ /* ─── Accent states ───────────────────────────────────────────────
142
+ * Nike's documented primary-button hover shifts to Grey-500 (§4 —
143
+ * "Hover: background shifts to Grey-500 (#707072)") rather than
144
+ * darkening, so we override the schema's black-mix formula with
145
+ * the literal grey-500 value. --accent-active darkens to pure
146
+ * black — the ONLY place #000000 appears in the entire system,
147
+ * reserved for the press-feedback moment when Nike Black
148
+ * compresses one stop further. */
149
+ --accent-hover: #707072; /* Grey-500 — documented hover, not a darken */
150
+ --accent-active: #000000; /* True black — the only #000000 in the system */
151
+
152
+ /* ─── Semantic ────────────────────────────────────────────────────
153
+ * Nike reserves color exclusively for semantic meaning (red=error,
154
+ * green=success, yellow=warning) — the only chromatic moves in the
155
+ * whole UI besides product photography. Values come straight from
156
+ * §2's "Semantic & Accent" block. */
157
+ --success: #007d48; /* Success Green — confirmation, availability */
158
+ --warn: #fca600; /* Yellow-500 — warning state */
159
+ --danger: #d30005; /* Nike Red — critical errors, sale badges */
160
+
161
+ /* ─── Typography ──────────────────────────────────────────────────
162
+ * Nike's documented split is THREE families that we collapse onto
163
+ * the schema's two slots via fallback chains:
164
+ * - Nike Futura ND: custom condensed Futura, 96px hero display
165
+ * ONLY (§7 forbids it below 24px). Falls back to Helvetica Now
166
+ * Display Medium for headings.
167
+ * - Helvetica Now Display Medium: 24–32px section heads.
168
+ * - Helvetica Now Text: navigation, body, controls.
169
+ *
170
+ * --font-display chains Nike Futura ND → Helvetica Now Display
171
+ * Medium → Helvetica Neue, so hero h1 lands on Futura when
172
+ * available and gracefully degrades to Helvetica Now Display
173
+ * (Nike's documented heading face) on every other surface.
174
+ * --font-body holds the workhorse Helvetica Now Text stack. */
175
+ --font-display:
176
+ "Nike Futura ND", "Helvetica Now Display Medium", "Helvetica Now Display", "Helvetica Neue", Helvetica, Arial, sans-serif;
177
+ --font-body:
178
+ "Helvetica Now Text Medium", "Helvetica Now Text", "Helvetica Neue", Helvetica, Arial, sans-serif;
179
+ --font-mono:
180
+ ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
181
+
182
+ /* Type scale (px) — derived from DESIGN.md §3 hierarchy table.
183
+ * Nike's documented sizes are 12 / 14 / 16 / 24 / 32 / 96; the
184
+ * --text-lg and --text-3xl slots interpolate cleanly into the
185
+ * existing system (20px = emphasized body / promo links;
186
+ * 48px = mid-display, between H1 and Hero). The 96px display is
187
+ * the brand ceiling — the typographic shockwave §3 describes. */
188
+ --text-xs: 12px; /* Small / Tiny — timestamps, legal text */
189
+ --text-sm: 14px; /* Caption / Link Small / Button Small */
190
+ --text-base: 16px; /* Body / Link / Button / H3 — Nike's reading baseline */
191
+ --text-lg: 20px; /* Promoted body — interpolation tier */
192
+ --text-xl: 24px; /* Heading 2 — subsection titles */
193
+ --text-2xl: 32px; /* Heading 1 — section heads */
194
+ --text-3xl: 48px; /* Mid-display — interpolation tier */
195
+ --text-4xl: 96px; /* Display Hero — typographic shockwave */
196
+
197
+ /* Nike's leading envelope is unusually airy in the body (1.75 —
198
+ * generous for product browsing) and uniquely tight at the top
199
+ * (0.90 — the "impossibly tight" display ceiling §3 calls a
200
+ * stadium scoreboard). Both numbers come straight from §3. */
201
+ --leading-body: 1.75; /* Body — comfortable product-browsing rhythm */
202
+ --leading-tight: 0.9; /* Hero Display — ascenders nearly touch descenders */
203
+
204
+ /* Display tracking compresses to -0.02em — condensed Futura ND
205
+ * wants slight letter-spacing tightening to read as the monolithic
206
+ * uppercase block §3 describes (≈ -1.92px on the 96px hero).
207
+ * Body type stays at 0 / component-controlled. */
208
+ --tracking-display: -0.02em;
209
+
210
+ /* ─── Spacing ─────────────────────────────────────────────────────
211
+ * Nike's grid is 4px base / 8px primary multiples (§5). The shared
212
+ * schema's 4-8-12-16-20-24-32-48 scale is verbatim Nike — no
213
+ * overrides needed. Component-internal values (the 4–12px product-
214
+ * grid gaps that create Nike's "dense superstore" feel) stay
215
+ * inline at the call site. */
216
+ --space-1: 4px; /* tight icon gaps, inline spacing */
217
+ --space-2: 8px; /* base unit, button icon gaps */
218
+ --space-3: 12px; /* card internal padding, tight margins */
219
+ --space-4: 16px; /* standard padding, nav spacing */
220
+ --space-5: 20px; /* product card gaps */
221
+ --space-6: 24px; /* section internal padding, grid gaps */
222
+ --space-8: 32px; /* section breaks */
223
+ --space-12: 48px; /* major section padding */
224
+
225
+ /* ─── Section rhythm ──────────────────────────────────────────────
226
+ * Nike's section padding scales 80 → 48 → 32 across desktop /
227
+ * tablet / phone (§5 / §8 — "Section padding: 80px → 48px → 32px
228
+ * → 24px as viewport narrows"). The 80px desktop top is the hero-
229
+ * section padding from the §5 spacing scale (--space-10 in Nike's
230
+ * native vocabulary). */
231
+ --section-y-desktop: 80px;
232
+ --section-y-tablet: 48px;
233
+ --section-y-phone: 32px;
234
+
235
+ /* ─── Radius ──────────────────────────────────────────────────────
236
+ * Nike uses purposeful radius tiers (§5): 0px on product imagery,
237
+ * 8px on form inputs (non-search), 20px on UI containers, 24px on
238
+ * search inputs, 30px on buttons (full pill), 50% on circular
239
+ * icons. Mapped onto the schema:
240
+ * --radius-sm → 8px compact controls and form fields
241
+ * --radius-md → 20px interactive containers (Nike's card)
242
+ * --radius-lg → 24px search inputs / medium pills
243
+ * --radius-pill → 30px Nike's signature button capsule —
244
+ * we keep the literal value rather than
245
+ * collapse to 9999px because the number
246
+ * itself is a brand-recognisable detail
247
+ * (same precedent as Apple's 980px). */
248
+ --radius-sm: 8px;
249
+ --radius-md: 20px;
250
+ --radius-lg: 24px;
251
+ --radius-pill: 30px;
252
+
253
+ /* ─── Elevation (3 levels) ────────────────────────────────────────
254
+ * Nike's elevation philosophy is radically flat (§6 — "no card
255
+ * shadows, no hover lifts, no floating elements"). Three sanctioned
256
+ * levels:
257
+ * - flat → none (the default; tonal contrast does the work)
258
+ * - ring → hairline 1px box-shadow border (the only sanctioned
259
+ * container outline)
260
+ * - raised → SAME as ring. We deliberately collapse raised onto
261
+ * the ring tier because Nike refuses blur shadows.
262
+ * Components that reference var(--elev-raised) still
263
+ * resolve, but produce the flat / hairline result Nike
264
+ * intends — never the Material-flavoured float that
265
+ * would betray the brand. */
266
+ --elev-flat: none;
267
+ --elev-ring: 0 0 0 1px var(--border);
268
+ --elev-raised: 0 0 0 1px var(--border);
269
+
270
+ /* ─── Focus ring ──────────────────────────────────────────────────
271
+ * Nike's keyboard-focus signal is the documented 2px solid blue
272
+ * ring at rgba(39, 93, 197, 1) — §4 / §6. This is the ONLY blue
273
+ * moment in the entire UI, a deliberate chromatic break from the
274
+ * monochrome canvas to satisfy WCAG focus visibility. We bind the
275
+ * literal value rather than the schema's transparent-mixed accent
276
+ * formula because Nike's focus is intentionally NOT the accent
277
+ * (which is black, indistinguishable from the surface it would
278
+ * outline). */
279
+ --focus-ring: 0 0 0 2px rgba(39, 93, 197, 1);
280
+
281
+ /* ─── Motion ──────────────────────────────────────────────────────
282
+ * Nike's transitions are all 200ms ease (§4 — "Transition:
283
+ * background 200ms ease", "border-color 200ms ease", "opacity
284
+ * 200ms ease for image swap on hover"). The schema defaults match
285
+ * already; we keep them verbatim. --motion-fast (150ms) covers
286
+ * micro-states like hover-tints and focus; --motion-base (200ms)
287
+ * is the documented hero-state duration. */
288
+ --motion-fast: 150ms;
289
+ --motion-base: 200ms;
290
+ --ease-standard: cubic-bezier(0.2, 0, 0, 1);
291
+
292
+ /* ─── Layout ──────────────────────────────────────────────────────
293
+ * Nike's content scaffolding (§5) is 1920px max container with
294
+ * 1440px standard content width. We bind --container-max to 1440px
295
+ * because that is the documented STANDARD content width, the one
296
+ * artifacts should target — the 1920px ceiling is reserved for
297
+ * full-bleed hero photography that breaks out of the container.
298
+ * Gutters step 48 → 24 → 16 across desktop / tablet / phone, the
299
+ * exact horizontal-padding values from §5. */
300
+ --container-max: 1440px;
301
+ --container-gutter-desktop: 48px;
302
+ --container-gutter-tablet: 24px;
303
+ --container-gutter-phone: 16px;
304
+ }
@@ -0,0 +1,312 @@
1
+ # Design System Inspired by Notion
2
+
3
+ > Category: Productivity & SaaS
4
+ > All-in-one workspace. Warm minimalism, serif headings, soft surfaces.
5
+
6
+ ## 1. Visual Theme & Atmosphere
7
+
8
+ Notion's website embodies the philosophy of the tool itself: a blank canvas that gets out of your way. The design system is built on warm neutrals rather than cold grays, creating a distinctly approachable minimalism that feels like quality paper rather than sterile glass. The page canvas is pure white (`#ffffff`) but the text isn't pure black -- it's a warm near-black (`rgba(0,0,0,0.95)`) that softens the reading experience imperceptibly. The warm gray scale (`#f6f5f4`, `#31302e`, `#615d59`, `#a39e98`) carries subtle yellow-brown undertones, giving the interface a tactile, almost analog warmth.
9
+
10
+ The custom NotionInter font (a modified Inter) is the backbone of the system. At display sizes (64px), it uses aggressive negative letter-spacing (-2.125px), creating headlines that feel compressed and precise. The weight range is broader than typical systems: 400 for body, 500 for UI elements, 600 for semi-bold labels, and 700 for display headings. OpenType features `"lnum"` (lining numerals) and `"locl"` (localized forms) are enabled on larger text, adding typographic sophistication that rewards close reading.
11
+
12
+ What makes Notion's visual language distinctive is its border philosophy. Rather than heavy borders or shadows, Notion uses ultra-thin `1px solid rgba(0,0,0,0.1)` borders -- borders that exist as whispers, barely perceptible division lines that create structure without weight. The shadow system is equally restrained: multi-layer stacks with cumulative opacity never exceeding 0.05, creating depth that's felt rather than seen.
13
+
14
+ **Key Characteristics:**
15
+ - NotionInter (modified Inter) with negative letter-spacing at display sizes (-2.125px at 64px)
16
+ - Warm neutral palette: grays carry yellow-brown undertones (`#f6f5f4` warm white, `#31302e` warm dark)
17
+ - Near-black text via `rgba(0,0,0,0.95)` -- not pure black, creating micro-warmth
18
+ - Ultra-thin borders: `1px solid rgba(0,0,0,0.1)` throughout -- whisper-weight division
19
+ - Multi-layer shadow stacks with sub-0.05 opacity for barely-there depth
20
+ - Notion Blue (`#0075de`) as the singular accent color for CTAs and interactive elements
21
+ - Pill badges (9999px radius) with tinted blue backgrounds for status indicators
22
+ - 8px base spacing unit with an organic, non-rigid scale
23
+
24
+ ## 2. Color Palette & Roles
25
+
26
+ ### Primary
27
+ - **Notion Black** (`rgba(0,0,0,0.95)` / `#000000f2`): Primary text, headings, body copy. The 95% opacity softens pure black without sacrificing readability.
28
+ - **Pure White** (`#ffffff`): Page background, card surfaces, button text on blue.
29
+ - **Notion Blue** (`#0075de`): Primary CTA, link color, interactive accent -- the only saturated color in the core UI chrome.
30
+
31
+ ### Brand Secondary
32
+ - **Deep Navy** (`#213183`): Secondary brand color, used sparingly for emphasis and dark feature sections.
33
+ - **Active Blue** (`#005bab`): Button active/pressed state -- darker variant of Notion Blue.
34
+
35
+ ### Warm Neutral Scale
36
+ - **Warm White** (`#f6f5f4`): Background surface tint, section alternation, subtle card fill. The yellow undertone is key.
37
+ - **Warm Dark** (`#31302e`): Dark surface background, dark section text. Warmer than standard grays.
38
+ - **Warm Gray 500** (`#615d59`): Secondary text, descriptions, muted labels.
39
+ - **Warm Gray 300** (`#a39e98`): Placeholder text, disabled states, caption text.
40
+
41
+ ### Semantic Accent Colors
42
+ - **Teal** (`#2a9d99`): Success states, positive indicators.
43
+ - **Green** (`#1aae39`): Confirmation, completion badges.
44
+ - **Orange** (`#dd5b00`): Warning states, attention indicators.
45
+ - **Pink** (`#ff64c8`): Decorative accent, feature highlights.
46
+ - **Purple** (`#391c57`): Premium features, deep accents.
47
+ - **Brown** (`#523410`): Earthy accent, warm feature sections.
48
+
49
+ ### Interactive
50
+ - **Link Blue** (`#0075de`): Primary link color with underline-on-hover.
51
+ - **Link Light Blue** (`#62aef0`): Lighter link variant for dark backgrounds.
52
+ - **Focus Blue** (`#097fe8`): Focus ring on interactive elements.
53
+ - **Badge Blue Bg** (`#f2f9ff`): Pill badge background, tinted blue surface.
54
+ - **Badge Blue Text** (`#097fe8`): Pill badge text, darker blue for readability.
55
+
56
+ ### Shadows & Depth
57
+ - **Card Shadow** (`rgba(0,0,0,0.04) 0px 4px 18px, rgba(0,0,0,0.027) 0px 2.025px 7.84688px, rgba(0,0,0,0.02) 0px 0.8px 2.925px, rgba(0,0,0,0.01) 0px 0.175px 1.04062px`): Multi-layer card elevation.
58
+ - **Deep Shadow** (`rgba(0,0,0,0.01) 0px 1px 3px, rgba(0,0,0,0.02) 0px 3px 7px, rgba(0,0,0,0.02) 0px 7px 15px, rgba(0,0,0,0.04) 0px 14px 28px, rgba(0,0,0,0.05) 0px 23px 52px`): Five-layer deep elevation for modals and featured content.
59
+ - **Whisper Border** (`1px solid rgba(0,0,0,0.1)`): Standard division border -- cards, dividers, sections.
60
+
61
+ ## 3. Typography Rules
62
+
63
+ ### Font Family
64
+ - **Primary**: `NotionInter`, with fallbacks: `Inter, -apple-system, system-ui, Segoe UI, Helvetica, Apple Color Emoji, Arial, Segoe UI Emoji, Segoe UI Symbol`
65
+ - **OpenType Features**: `"lnum"` (lining numerals) and `"locl"` (localized forms) enabled on display and heading text.
66
+
67
+ ### Hierarchy
68
+
69
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
70
+ |------|------|------|--------|-------------|----------------|-------|
71
+ | Display Hero | NotionInter | 64px (4.00rem) | 700 | 1.00 (tight) | -2.125px | Maximum compression, billboard headlines |
72
+ | Display Secondary | NotionInter | 54px (3.38rem) | 700 | 1.04 (tight) | -1.875px | Secondary hero, feature headlines |
73
+ | Section Heading | NotionInter | 48px (3.00rem) | 700 | 1.00 (tight) | -1.5px | Feature section titles, with `"lnum"` |
74
+ | Sub-heading Large | NotionInter | 40px (2.50rem) | 700 | 1.50 | normal | Card headings, feature sub-sections |
75
+ | Sub-heading | NotionInter | 26px (1.63rem) | 700 | 1.23 (tight) | -0.625px | Section sub-titles, content headers |
76
+ | Card Title | NotionInter | 22px (1.38rem) | 700 | 1.27 (tight) | -0.25px | Feature cards, list titles |
77
+ | Body Large | NotionInter | 20px (1.25rem) | 600 | 1.40 | -0.125px | Introductions, feature descriptions |
78
+ | Body | NotionInter | 16px (1.00rem) | 400 | 1.50 | normal | Standard reading text |
79
+ | Body Medium | NotionInter | 16px (1.00rem) | 500 | 1.50 | normal | Navigation, emphasized UI text |
80
+ | Body Semibold | NotionInter | 16px (1.00rem) | 600 | 1.50 | normal | Strong labels, active states |
81
+ | Body Bold | NotionInter | 16px (1.00rem) | 700 | 1.50 | normal | Headlines at body size |
82
+ | Nav / Button | NotionInter | 15px (0.94rem) | 600 | 1.33 | normal | Navigation links, button text |
83
+ | Caption | NotionInter | 14px (0.88rem) | 500 | 1.43 | normal | Metadata, secondary labels |
84
+ | Caption Light | NotionInter | 14px (0.88rem) | 400 | 1.43 | normal | Body captions, descriptions |
85
+ | Badge | NotionInter | 12px (0.75rem) | 600 | 1.33 | 0.125px | Pill badges, tags, status labels |
86
+ | Micro Label | NotionInter | 12px (0.75rem) | 400 | 1.33 | 0.125px | Small metadata, timestamps |
87
+
88
+ ### Principles
89
+ - **Compression at scale**: NotionInter at display sizes uses -2.125px letter-spacing at 64px, progressively relaxing to -0.625px at 26px and normal at 16px. The compression creates density at headlines while maintaining readability at body sizes.
90
+ - **Four-weight system**: 400 (body/reading), 500 (UI/interactive), 600 (emphasis/navigation), 700 (headings/display). The broader weight range compared to most systems allows nuanced hierarchy.
91
+ - **Warm scaling**: Line height tightens as size increases -- 1.50 at body (16px), 1.23-1.27 at sub-headings, 1.00-1.04 at display. This creates denser, more impactful headlines.
92
+ - **Badge micro-tracking**: The 12px badge text uses positive letter-spacing (0.125px) -- the only positive tracking in the system, creating wider, more legible small text.
93
+
94
+ ## 4. Component Stylings
95
+
96
+ ### Buttons
97
+
98
+ **Primary Blue**
99
+ - Background: `#0075de` (Notion Blue)
100
+ - Text: `#ffffff`
101
+ - Padding: 8px 16px
102
+ - Radius: 4px (subtle)
103
+ - Border: `1px solid transparent`
104
+ - Hover: background darkens to `#005bab`
105
+ - Active: scale(0.9) transform
106
+ - Focus: `2px solid` focus outline, `var(--shadow-level-200)` shadow
107
+ - Use: Primary CTA ("Get Notion free", "Try it")
108
+
109
+ **Secondary / Tertiary**
110
+ - Background: `rgba(0,0,0,0.05)` (translucent warm gray)
111
+ - Text: `#000000` (near-black)
112
+ - Padding: 8px 16px
113
+ - Radius: 4px
114
+ - Hover: text color shifts, scale(1.05)
115
+ - Active: scale(0.9) transform
116
+ - Use: Secondary actions, form submissions
117
+
118
+ **Ghost / Link Button**
119
+ - Background: transparent
120
+ - Text: `rgba(0,0,0,0.95)`
121
+ - Decoration: underline on hover
122
+ - Use: Tertiary actions, inline links
123
+
124
+ **Pill Badge Button**
125
+ - Background: `#f2f9ff` (tinted blue)
126
+ - Text: `#097fe8`
127
+ - Padding: 4px 8px
128
+ - Radius: 9999px (full pill)
129
+ - Font: 12px weight 600
130
+ - Use: Status badges, feature labels, "New" tags
131
+
132
+ ### Cards & Containers
133
+ - Background: `#ffffff`
134
+ - Border: `1px solid rgba(0,0,0,0.1)` (whisper border)
135
+ - Radius: 12px (standard cards), 16px (featured/hero cards)
136
+ - Shadow: `rgba(0,0,0,0.04) 0px 4px 18px, rgba(0,0,0,0.027) 0px 2.025px 7.84688px, rgba(0,0,0,0.02) 0px 0.8px 2.925px, rgba(0,0,0,0.01) 0px 0.175px 1.04062px`
137
+ - Hover: subtle shadow intensification
138
+ - Image cards: 12px top radius, image fills top half
139
+
140
+ ### Inputs & Forms
141
+ - Background: `#ffffff`
142
+ - Text: `rgba(0,0,0,0.9)`
143
+ - Border: `1px solid #dddddd`
144
+ - Padding: 6px
145
+ - Radius: 4px
146
+ - Focus: blue outline ring
147
+ - Placeholder: warm gray `#a39e98`
148
+
149
+ ### Navigation
150
+ - Clean horizontal nav on white, not sticky
151
+ - Brand logo left-aligned (33x34px icon + wordmark)
152
+ - Links: NotionInter 15px weight 500-600, near-black text
153
+ - Hover: color shift to `var(--color-link-primary-text-hover)`
154
+ - CTA: blue pill button ("Get Notion free") right-aligned
155
+ - Mobile: hamburger menu collapse
156
+ - Product dropdowns with multi-level categorized menus
157
+
158
+ ### Image Treatment
159
+ - Product screenshots with `1px solid rgba(0,0,0,0.1)` border
160
+ - Top-rounded images: `12px 12px 0px 0px` radius
161
+ - Dashboard/workspace preview screenshots dominate feature sections
162
+ - Warm gradient backgrounds behind hero illustrations (decorative character illustrations)
163
+
164
+ ### Distinctive Components
165
+
166
+ **Feature Cards with Illustrations**
167
+ - Large illustrative headers (The Great Wave, product UI screenshots)
168
+ - 12px radius card with whisper border
169
+ - Title at 22px weight 700, description at 16px weight 400
170
+ - Warm white (`#f6f5f4`) background variant for alternating sections
171
+
172
+ **Trust Bar / Logo Grid**
173
+ - Company logos (trusted teams section) in their brand colors
174
+ - Horizontal scroll or grid layout with team counts
175
+ - Metric display: large number + description pattern
176
+
177
+ **Metric Cards**
178
+ - Large number display (e.g., "$4,200 ROI")
179
+ - NotionInter 40px+ weight 700 for the metric
180
+ - Description below in warm gray body text
181
+ - Whisper-bordered card container
182
+
183
+ ## 5. Layout Principles
184
+
185
+ ### Spacing System
186
+ - Base unit: 8px
187
+ - Scale: 2px, 3px, 4px, 5px, 6px, 7px, 8px, 11px, 12px, 14px, 16px, 24px, 32px
188
+ - Non-rigid organic scale with fractional values (5.6px, 6.4px) for micro-adjustments
189
+
190
+ ### Grid & Container
191
+ - Max content width: approximately 1200px
192
+ - Hero: centered single-column with generous top padding (80-120px)
193
+ - Feature sections: 2-3 column grids for cards
194
+ - Full-width warm white (`#f6f5f4`) section backgrounds for alternation
195
+ - Code/dashboard screenshots as contained with whisper border
196
+
197
+ ### Whitespace Philosophy
198
+ - **Generous vertical rhythm**: 64-120px between major sections. Notion lets content breathe with vast vertical padding.
199
+ - **Warm alternation**: White sections alternate with warm white (`#f6f5f4`) sections, creating gentle visual rhythm without harsh color breaks.
200
+ - **Content-first density**: Body text blocks are compact (line-height 1.50) but surrounded by ample margin, creating islands of readable content in a sea of white space.
201
+
202
+ ### Border Radius Scale
203
+ - Micro (4px): Buttons, inputs, functional interactive elements
204
+ - Subtle (5px): Links, list items, menu items
205
+ - Standard (8px): Small cards, containers, inline elements
206
+ - Comfortable (12px): Standard cards, feature containers, image tops
207
+ - Large (16px): Hero cards, featured content, promotional blocks
208
+ - Full Pill (9999px): Badges, pills, status indicators
209
+ - Circle (100%): Tab indicators, avatars
210
+
211
+ ## 6. Depth & Elevation
212
+
213
+ | Level | Treatment | Use |
214
+ |-------|-----------|-----|
215
+ | Flat (Level 0) | No shadow, no border | Page background, text blocks |
216
+ | Whisper (Level 1) | `1px solid rgba(0,0,0,0.1)` | Standard borders, card outlines, dividers |
217
+ | Soft Card (Level 2) | 4-layer shadow stack (max opacity 0.04) | Content cards, feature blocks |
218
+ | Deep Card (Level 3) | 5-layer shadow stack (max opacity 0.05, 52px blur) | Modals, featured panels, hero elements |
219
+ | Focus (Accessibility) | `2px solid var(--focus-color)` outline | Keyboard focus on all interactive elements |
220
+
221
+ **Shadow Philosophy**: Notion's shadow system uses multiple layers with extremely low individual opacity (0.01 to 0.05) that accumulate into soft, natural-looking elevation. The 4-layer card shadow spans from 1.04px to 18px blur, creating a gradient of depth rather than a single hard shadow. The 5-layer deep shadow extends to 52px blur at 0.05 opacity, producing ambient occlusion that feels like natural light rather than computer-generated depth. This layered approach makes elements feel embedded in the page rather than floating above it.
222
+
223
+ ### Decorative Depth
224
+ - Hero section: decorative character illustrations (playful, hand-drawn style)
225
+ - Section alternation: white to warm white (`#f6f5f4`) background shifts
226
+ - No hard section borders -- separation comes from background color changes and spacing
227
+
228
+ ## 7. Responsive Behavior
229
+
230
+ ### Breakpoints
231
+ | Name | Width | Key Changes |
232
+ |------|-------|-------------|
233
+ | Mobile Small | <400px | Tight single column, minimal padding |
234
+ | Mobile | 400-600px | Standard mobile, stacked layout |
235
+ | Tablet Small | 600-768px | 2-column grids begin |
236
+ | Tablet | 768-1080px | Full card grids, expanded padding |
237
+ | Desktop Small | 1080-1200px | Standard desktop layout |
238
+ | Desktop | 1200-1440px | Full layout, maximum content width |
239
+ | Large Desktop | >1440px | Centered, generous margins |
240
+
241
+ ### Touch Targets
242
+ - Buttons use comfortable padding (8px-16px vertical)
243
+ - Navigation links at 15px with adequate spacing
244
+ - Pill badges have 8px horizontal padding for tap targets
245
+ - Mobile menu toggle uses standard hamburger button
246
+
247
+ ### Collapsing Strategy
248
+ - Hero: 64px display -> scales to 40px -> 26px on mobile, maintains proportional letter-spacing
249
+ - Navigation: horizontal links + blue CTA -> hamburger menu
250
+ - Feature cards: 3-column -> 2-column -> single column stacked
251
+ - Product screenshots: maintain aspect ratio with responsive images
252
+ - Trust bar logos: grid -> horizontal scroll on mobile
253
+ - Footer: multi-column -> stacked single column
254
+ - Section spacing: 80px+ -> 48px on mobile
255
+
256
+ ### Image Behavior
257
+ - Workspace screenshots maintain whisper border at all sizes
258
+ - Hero illustrations scale proportionally
259
+ - Product screenshots use responsive images with consistent border radius
260
+ - Full-width warm white sections maintain edge-to-edge treatment
261
+
262
+ ## 8. Accessibility & States
263
+
264
+ ### Focus System
265
+ - All interactive elements receive visible focus indicators
266
+ - Focus outline: `2px solid` with focus color + shadow level 200
267
+ - Tab navigation supported throughout all interactive components
268
+ - High contrast text: near-black on white exceeds WCAG AAA (>14:1 ratio)
269
+
270
+ ### Interactive States
271
+ - **Default**: Standard appearance with whisper borders
272
+ - **Hover**: Color shift on text, scale(1.05) on buttons, underline on links
273
+ - **Active/Pressed**: scale(0.9) transform, darker background variant
274
+ - **Focus**: Blue outline ring with shadow reinforcement
275
+ - **Disabled**: Warm gray (`#a39e98`) text, reduced opacity
276
+
277
+ ### Color Contrast
278
+ - Primary text (rgba(0,0,0,0.95)) on white: ~18:1 ratio
279
+ - Secondary text (#615d59) on white: ~5.5:1 ratio (WCAG AA)
280
+ - Blue CTA (#0075de) on white: ~4.6:1 ratio (WCAG AA for large text)
281
+ - Badge text (#097fe8) on badge bg (#f2f9ff): ~4.5:1 ratio (WCAG AA for large text)
282
+
283
+ ## 9. Agent Prompt Guide
284
+
285
+ ### Quick Color Reference
286
+ - Primary CTA: Notion Blue (`#0075de`)
287
+ - Background: Pure White (`#ffffff`)
288
+ - Alt Background: Warm White (`#f6f5f4`)
289
+ - Heading text: Near-Black (`rgba(0,0,0,0.95)`)
290
+ - Body text: Near-Black (`rgba(0,0,0,0.95)`)
291
+ - Secondary text: Warm Gray 500 (`#615d59`)
292
+ - Muted text: Warm Gray 300 (`#a39e98`)
293
+ - Border: `1px solid rgba(0,0,0,0.1)`
294
+ - Link: Notion Blue (`#0075de`)
295
+ - Focus ring: Focus Blue (`#097fe8`)
296
+
297
+ ### Example Component Prompts
298
+ - "Create a hero section on white background. Headline at 64px NotionInter weight 700, line-height 1.00, letter-spacing -2.125px, color rgba(0,0,0,0.95). Subtitle at 20px weight 600, line-height 1.40, color #615d59. Blue CTA button (#0075de, 4px radius, 8px 16px padding, white text) and ghost button (transparent bg, near-black text, underline on hover)."
299
+ - "Design a card: white background, 1px solid rgba(0,0,0,0.1) border, 12px radius. Use shadow stack: rgba(0,0,0,0.04) 0px 4px 18px, rgba(0,0,0,0.027) 0px 2.025px 7.85px, rgba(0,0,0,0.02) 0px 0.8px 2.93px, rgba(0,0,0,0.01) 0px 0.175px 1.04px. Title at 22px NotionInter weight 700, letter-spacing -0.25px. Body at 16px weight 400, color #615d59."
300
+ - "Build a pill badge: #f2f9ff background, #097fe8 text, 9999px radius, 4px 8px padding, 12px NotionInter weight 600, letter-spacing 0.125px."
301
+ - "Create navigation: white header. NotionInter 15px weight 600 for links, near-black text. Blue pill CTA 'Get Notion free' right-aligned (#0075de bg, white text, 4px radius)."
302
+ - "Design an alternating section layout: white sections alternate with warm white (#f6f5f4) sections. Each section has 64-80px vertical padding, max-width 1200px centered. Section heading at 48px weight 700, line-height 1.00, letter-spacing -1.5px."
303
+
304
+ ### Iteration Guide
305
+ 1. Always use warm neutrals -- Notion's grays have yellow-brown undertones (#f6f5f4, #31302e, #615d59, #a39e98), never blue-gray
306
+ 2. Letter-spacing scales with font size: -2.125px at 64px, -1.875px at 54px, -0.625px at 26px, normal at 16px
307
+ 3. Four weights: 400 (read), 500 (interact), 600 (emphasize), 700 (announce)
308
+ 4. Borders are whispers: 1px solid rgba(0,0,0,0.1) -- never heavier
309
+ 5. Shadows use 4-5 layers with individual opacity never exceeding 0.05
310
+ 6. The warm white (#f6f5f4) section background is essential for visual rhythm
311
+ 7. Pill badges (9999px) for status/tags, 4px radius for buttons and inputs
312
+ 8. Notion Blue (#0075de) is the only saturated color in core UI -- use it sparingly for CTAs and links