@aexol/spectral 0.9.269 → 0.9.271

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 (573) 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/extensions/dataset-uploader/cleaner.js +1 -1
  14. package/dist/extensions/dataset-uploader/scrubber.d.ts +2 -0
  15. package/dist/extensions/dataset-uploader/scrubber.d.ts.map +1 -1
  16. package/dist/extensions/dataset-uploader/scrubber.js +30 -1
  17. package/dist/generated/zeus/index.d.ts +0 -4
  18. package/dist/generated/zeus/index.d.ts.map +1 -1
  19. package/dist/memory/debug-log.d.ts.map +1 -1
  20. package/dist/memory/debug-log.js +20 -2
  21. package/dist/memory/tools/compact-context.d.ts +1 -1
  22. package/dist/memory/tools/compact-context.d.ts.map +1 -1
  23. package/dist/memory/tools/compact-context.js +4 -1
  24. package/dist/memory/tools/recall-observation.d.ts +3 -3
  25. package/dist/memory/tools/recall-observation.d.ts.map +1 -1
  26. package/dist/memory/tools/recall-observation.js +4 -1
  27. package/dist/memory/tools/receive-agent-observations.d.ts +3 -3
  28. package/dist/memory/tools/receive-agent-observations.d.ts.map +1 -1
  29. package/dist/memory/tools/receive-agent-observations.js +4 -1
  30. package/dist/memory/tools/share-project-observation.d.ts +3 -3
  31. package/dist/memory/tools/share-project-observation.d.ts.map +1 -1
  32. package/dist/memory/tools/share-project-observation.js +4 -1
  33. package/dist/memory/tools/write-project-observation.d.ts +3 -3
  34. package/dist/memory/tools/write-project-observation.d.ts.map +1 -1
  35. package/dist/memory/tools/write-project-observation.js +4 -1
  36. package/dist/relay/client.d.ts.map +1 -1
  37. package/dist/relay/client.js +5 -2
  38. package/dist/sdk/ai/env-api-keys.js +1 -1
  39. package/dist/sdk/coding-agent/core/extensions/loader.d.ts.map +1 -1
  40. package/dist/sdk/coding-agent/core/extensions/loader.js +31 -3
  41. package/dist/sdk/coding-agent/core/theme.js +1 -1
  42. package/dist/server/handlers/agent-settings.d.ts.map +1 -1
  43. package/dist/server/handlers/agent-settings.js +4 -1
  44. package/dist/server/handlers/settings-lock.d.ts.map +1 -1
  45. package/dist/server/handlers/settings-lock.js +4 -1
  46. package/dist/server/storage.d.ts.map +1 -1
  47. package/dist/server/storage.js +13 -1
  48. package/dist/utils/serve-state.d.ts +17 -0
  49. package/dist/utils/serve-state.d.ts.map +1 -1
  50. package/dist/utils/serve-state.js +73 -0
  51. package/package.json +1 -1
  52. package/dist/designer/data/skills/blog-post.d.ts +0 -3
  53. package/dist/designer/data/skills/blog-post.d.ts.map +0 -1
  54. package/dist/designer/data/skills/blog-post.js +0 -84
  55. package/dist/designer/data/skills/blog-post.ts +0 -87
  56. package/dist/designer/data/skills/critique.d.ts +0 -3
  57. package/dist/designer/data/skills/critique.d.ts.map +0 -1
  58. package/dist/designer/data/skills/critique.js +0 -109
  59. package/dist/designer/data/skills/critique.ts +0 -112
  60. package/dist/designer/data/skills/dashboard.d.ts +0 -3
  61. package/dist/designer/data/skills/dashboard.d.ts.map +0 -1
  62. package/dist/designer/data/skills/dashboard.js +0 -165
  63. package/dist/designer/data/skills/dashboard.ts +0 -168
  64. package/dist/designer/data/skills/design-brief.d.ts +0 -3
  65. package/dist/designer/data/skills/design-brief.d.ts.map +0 -1
  66. package/dist/designer/data/skills/design-brief.js +0 -141
  67. package/dist/designer/data/skills/design-brief.ts +0 -144
  68. package/dist/designer/data/skills/design-skill.d.ts +0 -10
  69. package/dist/designer/data/skills/design-skill.d.ts.map +0 -1
  70. package/dist/designer/data/skills/design-skill.js +0 -1
  71. package/dist/designer/data/skills/design-skill.ts +0 -9
  72. package/dist/designer/data/skills/docs-page.d.ts +0 -3
  73. package/dist/designer/data/skills/docs-page.d.ts.map +0 -1
  74. package/dist/designer/data/skills/docs-page.js +0 -68
  75. package/dist/designer/data/skills/docs-page.ts +0 -71
  76. package/dist/designer/data/skills/index.d.ts +0 -3
  77. package/dist/designer/data/skills/index.d.ts.map +0 -1
  78. package/dist/designer/data/skills/index.js +0 -28
  79. package/dist/designer/data/skills/index.ts +0 -30
  80. package/dist/designer/data/skills/magazine-poster.d.ts +0 -3
  81. package/dist/designer/data/skills/magazine-poster.d.ts.map +0 -1
  82. package/dist/designer/data/skills/magazine-poster.js +0 -70
  83. package/dist/designer/data/skills/magazine-poster.ts +0 -73
  84. package/dist/designer/data/skills/mobile-app.d.ts +0 -3
  85. package/dist/designer/data/skills/mobile-app.d.ts.map +0 -1
  86. package/dist/designer/data/skills/mobile-app.js +0 -229
  87. package/dist/designer/data/skills/mobile-app.ts +0 -232
  88. package/dist/designer/data/skills/motion-frames.d.ts +0 -3
  89. package/dist/designer/data/skills/motion-frames.d.ts.map +0 -1
  90. package/dist/designer/data/skills/motion-frames.js +0 -121
  91. package/dist/designer/data/skills/motion-frames.ts +0 -124
  92. package/dist/designer/data/skills/pricing-page.d.ts +0 -3
  93. package/dist/designer/data/skills/pricing-page.d.ts.map +0 -1
  94. package/dist/designer/data/skills/pricing-page.js +0 -76
  95. package/dist/designer/data/skills/pricing-page.ts +0 -79
  96. package/dist/designer/data/skills/saas-landing.d.ts +0 -3
  97. package/dist/designer/data/skills/saas-landing.d.ts.map +0 -1
  98. package/dist/designer/data/skills/saas-landing.js +0 -71
  99. package/dist/designer/data/skills/saas-landing.ts +0 -74
  100. package/dist/designer/data/skills/slide-deck.d.ts +0 -3
  101. package/dist/designer/data/skills/slide-deck.d.ts.map +0 -1
  102. package/dist/designer/data/skills/slide-deck.js +0 -213
  103. package/dist/designer/data/skills/slide-deck.ts +0 -216
  104. package/dist/designer/data/skills/social-carousel.d.ts +0 -3
  105. package/dist/designer/data/skills/social-carousel.d.ts.map +0 -1
  106. package/dist/designer/data/skills/social-carousel.js +0 -135
  107. package/dist/designer/data/skills/social-carousel.ts +0 -138
  108. package/dist/designer/data/skills/web-prototype.d.ts +0 -3
  109. package/dist/designer/data/skills/web-prototype.d.ts.map +0 -1
  110. package/dist/designer/data/skills/web-prototype.js +0 -159
  111. package/dist/designer/data/skills/web-prototype.ts +0 -162
  112. package/dist/designer/data/systems/agentic/DESIGN.md +0 -71
  113. package/dist/designer/data/systems/agentic/components.html +0 -154
  114. package/dist/designer/data/systems/agentic/tokens.css +0 -63
  115. package/dist/designer/data/systems/airbnb/DESIGN.md +0 -393
  116. package/dist/designer/data/systems/airbnb/components.html +0 -1373
  117. package/dist/designer/data/systems/airbnb/tokens.css +0 -261
  118. package/dist/designer/data/systems/airtable/DESIGN.md +0 -92
  119. package/dist/designer/data/systems/airtable/components.html +0 -489
  120. package/dist/designer/data/systems/airtable/tokens.css +0 -261
  121. package/dist/designer/data/systems/ant/DESIGN.md +0 -71
  122. package/dist/designer/data/systems/ant/components.html +0 -154
  123. package/dist/designer/data/systems/ant/tokens.css +0 -63
  124. package/dist/designer/data/systems/apple/DESIGN.md +0 -250
  125. package/dist/designer/data/systems/apple/components.html +0 -749
  126. package/dist/designer/data/systems/apple/tokens.css +0 -286
  127. package/dist/designer/data/systems/application/DESIGN.md +0 -71
  128. package/dist/designer/data/systems/application/components.html +0 -154
  129. package/dist/designer/data/systems/application/tokens.css +0 -63
  130. package/dist/designer/data/systems/arc/DESIGN.md +0 -152
  131. package/dist/designer/data/systems/arc/components.html +0 -432
  132. package/dist/designer/data/systems/arc/tokens.css +0 -137
  133. package/dist/designer/data/systems/artistic/DESIGN.md +0 -71
  134. package/dist/designer/data/systems/artistic/components.html +0 -136
  135. package/dist/designer/data/systems/artistic/tokens.css +0 -63
  136. package/dist/designer/data/systems/atelier-zero/DESIGN.md +0 -316
  137. package/dist/designer/data/systems/atelier-zero/components.html +0 -136
  138. package/dist/designer/data/systems/atelier-zero/tokens.css +0 -63
  139. package/dist/designer/data/systems/bento/DESIGN.md +0 -71
  140. package/dist/designer/data/systems/bento/components.html +0 -136
  141. package/dist/designer/data/systems/bento/tokens.css +0 -63
  142. package/dist/designer/data/systems/binance/DESIGN.md +0 -348
  143. package/dist/designer/data/systems/binance/components.html +0 -550
  144. package/dist/designer/data/systems/binance/tokens.css +0 -255
  145. package/dist/designer/data/systems/bmw/DESIGN.md +0 -183
  146. package/dist/designer/data/systems/bmw/components.html +0 -551
  147. package/dist/designer/data/systems/bmw/tokens.css +0 -179
  148. package/dist/designer/data/systems/bmw-m/DESIGN.md +0 -246
  149. package/dist/designer/data/systems/bmw-m/components.html +0 -342
  150. package/dist/designer/data/systems/bmw-m/tokens.css +0 -64
  151. package/dist/designer/data/systems/bold/DESIGN.md +0 -71
  152. package/dist/designer/data/systems/bold/components.html +0 -136
  153. package/dist/designer/data/systems/bold/tokens.css +0 -63
  154. package/dist/designer/data/systems/brutalism/DESIGN.md +0 -71
  155. package/dist/designer/data/systems/brutalism/components.html +0 -154
  156. package/dist/designer/data/systems/brutalism/tokens.css +0 -63
  157. package/dist/designer/data/systems/bugatti/DESIGN.md +0 -271
  158. package/dist/designer/data/systems/bugatti/components.html +0 -342
  159. package/dist/designer/data/systems/bugatti/tokens.css +0 -64
  160. package/dist/designer/data/systems/cafe/DESIGN.md +0 -71
  161. package/dist/designer/data/systems/cafe/components.html +0 -136
  162. package/dist/designer/data/systems/cafe/tokens.css +0 -63
  163. package/dist/designer/data/systems/cal/DESIGN.md +0 -262
  164. package/dist/designer/data/systems/cal/components.html +0 -376
  165. package/dist/designer/data/systems/cal/tokens.css +0 -265
  166. package/dist/designer/data/systems/canva/DESIGN.md +0 -157
  167. package/dist/designer/data/systems/canva/components.html +0 -461
  168. package/dist/designer/data/systems/canva/tokens.css +0 -147
  169. package/dist/designer/data/systems/cisco/DESIGN.md +0 -201
  170. package/dist/designer/data/systems/cisco/components.html +0 -342
  171. package/dist/designer/data/systems/cisco/tokens.css +0 -64
  172. package/dist/designer/data/systems/claude/DESIGN.md +0 -315
  173. package/dist/designer/data/systems/claude/components.html +0 -483
  174. package/dist/designer/data/systems/claude/tokens.css +0 -130
  175. package/dist/designer/data/systems/clay/DESIGN.md +0 -307
  176. package/dist/designer/data/systems/clay/components.html +0 -136
  177. package/dist/designer/data/systems/clay/tokens.css +0 -63
  178. package/dist/designer/data/systems/claymorphism/DESIGN.md +0 -71
  179. package/dist/designer/data/systems/claymorphism/components.html +0 -136
  180. package/dist/designer/data/systems/claymorphism/tokens.css +0 -63
  181. package/dist/designer/data/systems/clean/DESIGN.md +0 -71
  182. package/dist/designer/data/systems/clean/components.html +0 -136
  183. package/dist/designer/data/systems/clean/tokens.css +0 -63
  184. package/dist/designer/data/systems/clickhouse/DESIGN.md +0 -284
  185. package/dist/designer/data/systems/clickhouse/components.html +0 -506
  186. package/dist/designer/data/systems/clickhouse/tokens.css +0 -135
  187. package/dist/designer/data/systems/cohere/DESIGN.md +0 -269
  188. package/dist/designer/data/systems/cohere/components.html +0 -353
  189. package/dist/designer/data/systems/cohere/tokens.css +0 -126
  190. package/dist/designer/data/systems/coinbase/DESIGN.md +0 -132
  191. package/dist/designer/data/systems/coinbase/components.html +0 -501
  192. package/dist/designer/data/systems/coinbase/tokens.css +0 -257
  193. package/dist/designer/data/systems/colorful/DESIGN.md +0 -71
  194. package/dist/designer/data/systems/colorful/components.html +0 -136
  195. package/dist/designer/data/systems/colorful/tokens.css +0 -63
  196. package/dist/designer/data/systems/composio/DESIGN.md +0 -310
  197. package/dist/designer/data/systems/composio/components.html +0 -342
  198. package/dist/designer/data/systems/composio/tokens.css +0 -64
  199. package/dist/designer/data/systems/contemporary/DESIGN.md +0 -71
  200. package/dist/designer/data/systems/contemporary/components.html +0 -136
  201. package/dist/designer/data/systems/contemporary/tokens.css +0 -63
  202. package/dist/designer/data/systems/corporate/DESIGN.md +0 -71
  203. package/dist/designer/data/systems/corporate/components.html +0 -136
  204. package/dist/designer/data/systems/corporate/tokens.css +0 -63
  205. package/dist/designer/data/systems/cosmic/DESIGN.md +0 -71
  206. package/dist/designer/data/systems/cosmic/components.html +0 -136
  207. package/dist/designer/data/systems/cosmic/tokens.css +0 -63
  208. package/dist/designer/data/systems/creative/DESIGN.md +0 -71
  209. package/dist/designer/data/systems/creative/components.html +0 -136
  210. package/dist/designer/data/systems/creative/tokens.css +0 -63
  211. package/dist/designer/data/systems/cursor/DESIGN.md +0 -312
  212. package/dist/designer/data/systems/cursor/components.html +0 -654
  213. package/dist/designer/data/systems/cursor/tokens.css +0 -218
  214. package/dist/designer/data/systems/dashboard/DESIGN.md +0 -71
  215. package/dist/designer/data/systems/dashboard/components.html +0 -154
  216. package/dist/designer/data/systems/dashboard/tokens.css +0 -63
  217. package/dist/designer/data/systems/default/DESIGN.md +0 -62
  218. package/dist/designer/data/systems/default/components.html +0 -523
  219. package/dist/designer/data/systems/default/tokens.css +0 -200
  220. package/dist/designer/data/systems/discord/DESIGN.md +0 -162
  221. package/dist/designer/data/systems/discord/components.html +0 -359
  222. package/dist/designer/data/systems/discord/tokens.css +0 -125
  223. package/dist/designer/data/systems/dithered/DESIGN.md +0 -71
  224. package/dist/designer/data/systems/dithered/components.html +0 -136
  225. package/dist/designer/data/systems/dithered/tokens.css +0 -63
  226. package/dist/designer/data/systems/doodle/DESIGN.md +0 -71
  227. package/dist/designer/data/systems/doodle/components.html +0 -136
  228. package/dist/designer/data/systems/doodle/tokens.css +0 -63
  229. package/dist/designer/data/systems/dramatic/DESIGN.md +0 -71
  230. package/dist/designer/data/systems/dramatic/components.html +0 -136
  231. package/dist/designer/data/systems/dramatic/tokens.css +0 -63
  232. package/dist/designer/data/systems/duolingo/DESIGN.md +0 -154
  233. package/dist/designer/data/systems/duolingo/components.html +0 -532
  234. package/dist/designer/data/systems/duolingo/tokens.css +0 -130
  235. package/dist/designer/data/systems/editorial/DESIGN.md +0 -71
  236. package/dist/designer/data/systems/editorial/components.html +0 -154
  237. package/dist/designer/data/systems/editorial/tokens.css +0 -63
  238. package/dist/designer/data/systems/elegant/DESIGN.md +0 -71
  239. package/dist/designer/data/systems/elegant/components.html +0 -136
  240. package/dist/designer/data/systems/elegant/tokens.css +0 -63
  241. package/dist/designer/data/systems/elevenlabs/DESIGN.md +0 -268
  242. package/dist/designer/data/systems/elevenlabs/components.html +0 -342
  243. package/dist/designer/data/systems/elevenlabs/tokens.css +0 -127
  244. package/dist/designer/data/systems/energetic/DESIGN.md +0 -72
  245. package/dist/designer/data/systems/energetic/components.html +0 -136
  246. package/dist/designer/data/systems/energetic/tokens.css +0 -63
  247. package/dist/designer/data/systems/enterprise/DESIGN.md +0 -71
  248. package/dist/designer/data/systems/enterprise/components.html +0 -154
  249. package/dist/designer/data/systems/enterprise/tokens.css +0 -63
  250. package/dist/designer/data/systems/expo/DESIGN.md +0 -284
  251. package/dist/designer/data/systems/expo/components.html +0 -342
  252. package/dist/designer/data/systems/expo/tokens.css +0 -64
  253. package/dist/designer/data/systems/expressive/DESIGN.md +0 -71
  254. package/dist/designer/data/systems/expressive/components.html +0 -136
  255. package/dist/designer/data/systems/expressive/tokens.css +0 -63
  256. package/dist/designer/data/systems/fantasy/DESIGN.md +0 -71
  257. package/dist/designer/data/systems/fantasy/components.html +0 -136
  258. package/dist/designer/data/systems/fantasy/tokens.css +0 -63
  259. package/dist/designer/data/systems/ferrari/DESIGN.md +0 -317
  260. package/dist/designer/data/systems/ferrari/components.html +0 -342
  261. package/dist/designer/data/systems/ferrari/tokens.css +0 -64
  262. package/dist/designer/data/systems/figma/DESIGN.md +0 -223
  263. package/dist/designer/data/systems/figma/components.html +0 -344
  264. package/dist/designer/data/systems/figma/tokens.css +0 -126
  265. package/dist/designer/data/systems/flat/DESIGN.md +0 -71
  266. package/dist/designer/data/systems/flat/components.html +0 -136
  267. package/dist/designer/data/systems/flat/tokens.css +0 -63
  268. package/dist/designer/data/systems/framer/DESIGN.md +0 -249
  269. package/dist/designer/data/systems/framer/components.html +0 -438
  270. package/dist/designer/data/systems/framer/tokens.css +0 -238
  271. package/dist/designer/data/systems/friendly/DESIGN.md +0 -71
  272. package/dist/designer/data/systems/friendly/components.html +0 -136
  273. package/dist/designer/data/systems/friendly/tokens.css +0 -63
  274. package/dist/designer/data/systems/futuristic/DESIGN.md +0 -71
  275. package/dist/designer/data/systems/futuristic/components.html +0 -136
  276. package/dist/designer/data/systems/futuristic/tokens.css +0 -63
  277. package/dist/designer/data/systems/github/DESIGN.md +0 -155
  278. package/dist/designer/data/systems/github/components.html +0 -383
  279. package/dist/designer/data/systems/github/tokens.css +0 -125
  280. package/dist/designer/data/systems/glassmorphism/DESIGN.md +0 -71
  281. package/dist/designer/data/systems/glassmorphism/components.html +0 -154
  282. package/dist/designer/data/systems/glassmorphism/tokens.css +0 -63
  283. package/dist/designer/data/systems/gradient/DESIGN.md +0 -71
  284. package/dist/designer/data/systems/gradient/components.html +0 -154
  285. package/dist/designer/data/systems/gradient/tokens.css +0 -63
  286. package/dist/designer/data/systems/hashicorp/DESIGN.md +0 -281
  287. package/dist/designer/data/systems/hashicorp/components.html +0 -502
  288. package/dist/designer/data/systems/hashicorp/tokens.css +0 -272
  289. package/dist/designer/data/systems/hud/DESIGN.md +0 -173
  290. package/dist/designer/data/systems/hud/components.html +0 -136
  291. package/dist/designer/data/systems/hud/tokens.css +0 -63
  292. package/dist/designer/data/systems/huggingface/DESIGN.md +0 -149
  293. package/dist/designer/data/systems/huggingface/components.html +0 -346
  294. package/dist/designer/data/systems/huggingface/tokens.css +0 -125
  295. package/dist/designer/data/systems/ibm/DESIGN.md +0 -335
  296. package/dist/designer/data/systems/ibm/components.html +0 -342
  297. package/dist/designer/data/systems/ibm/tokens.css +0 -64
  298. package/dist/designer/data/systems/intercom/DESIGN.md +0 -149
  299. package/dist/designer/data/systems/intercom/components.html +0 -557
  300. package/dist/designer/data/systems/intercom/tokens.css +0 -150
  301. package/dist/designer/data/systems/kami/DESIGN.md +0 -410
  302. package/dist/designer/data/systems/kami/components.html +0 -601
  303. package/dist/designer/data/systems/kami/tokens.css +0 -272
  304. package/dist/designer/data/systems/kraken/DESIGN.md +0 -128
  305. package/dist/designer/data/systems/kraken/components.html +0 -342
  306. package/dist/designer/data/systems/kraken/tokens.css +0 -64
  307. package/dist/designer/data/systems/lamborghini/DESIGN.md +0 -291
  308. package/dist/designer/data/systems/lamborghini/components.html +0 -342
  309. package/dist/designer/data/systems/lamborghini/tokens.css +0 -64
  310. package/dist/designer/data/systems/levels/DESIGN.md +0 -71
  311. package/dist/designer/data/systems/levels/components.html +0 -154
  312. package/dist/designer/data/systems/levels/tokens.css +0 -63
  313. package/dist/designer/data/systems/linear-app/DESIGN.md +0 -370
  314. package/dist/designer/data/systems/linear-app/components.html +0 -370
  315. package/dist/designer/data/systems/linear-app/tokens.css +0 -130
  316. package/dist/designer/data/systems/lingo/DESIGN.md +0 -71
  317. package/dist/designer/data/systems/lingo/components.html +0 -154
  318. package/dist/designer/data/systems/lingo/tokens.css +0 -63
  319. package/dist/designer/data/systems/loom/DESIGN.md +0 -201
  320. package/dist/designer/data/systems/loom/components.html +0 -446
  321. package/dist/designer/data/systems/loom/tokens.css +0 -138
  322. package/dist/designer/data/systems/lovable/DESIGN.md +0 -301
  323. package/dist/designer/data/systems/lovable/components.html +0 -441
  324. package/dist/designer/data/systems/lovable/tokens.css +0 -258
  325. package/dist/designer/data/systems/luxury/DESIGN.md +0 -71
  326. package/dist/designer/data/systems/luxury/components.html +0 -154
  327. package/dist/designer/data/systems/luxury/tokens.css +0 -63
  328. package/dist/designer/data/systems/mastercard/DESIGN.md +0 -368
  329. package/dist/designer/data/systems/mastercard/components.html +0 -342
  330. package/dist/designer/data/systems/mastercard/tokens.css +0 -64
  331. package/dist/designer/data/systems/material/DESIGN.md +0 -71
  332. package/dist/designer/data/systems/material/components.html +0 -154
  333. package/dist/designer/data/systems/material/tokens.css +0 -63
  334. package/dist/designer/data/systems/meta/DESIGN.md +0 -369
  335. package/dist/designer/data/systems/meta/components.html +0 -398
  336. package/dist/designer/data/systems/meta/tokens.css +0 -263
  337. package/dist/designer/data/systems/minimal/DESIGN.md +0 -71
  338. package/dist/designer/data/systems/minimal/components.html +0 -154
  339. package/dist/designer/data/systems/minimal/tokens.css +0 -63
  340. package/dist/designer/data/systems/minimax/DESIGN.md +0 -260
  341. package/dist/designer/data/systems/minimax/components.html +0 -590
  342. package/dist/designer/data/systems/minimax/tokens.css +0 -148
  343. package/dist/designer/data/systems/mintlify/DESIGN.md +0 -329
  344. package/dist/designer/data/systems/mintlify/components.html +0 -737
  345. package/dist/designer/data/systems/mintlify/tokens.css +0 -256
  346. package/dist/designer/data/systems/miro/DESIGN.md +0 -111
  347. package/dist/designer/data/systems/miro/components.html +0 -342
  348. package/dist/designer/data/systems/miro/tokens.css +0 -64
  349. package/dist/designer/data/systems/mission-control/DESIGN.md +0 -474
  350. package/dist/designer/data/systems/mission-control/components.html +0 -136
  351. package/dist/designer/data/systems/mission-control/tokens.css +0 -63
  352. package/dist/designer/data/systems/mistral-ai/DESIGN.md +0 -264
  353. package/dist/designer/data/systems/mistral-ai/components.html +0 -338
  354. package/dist/designer/data/systems/mistral-ai/tokens.css +0 -125
  355. package/dist/designer/data/systems/modern/DESIGN.md +0 -71
  356. package/dist/designer/data/systems/modern/components.html +0 -154
  357. package/dist/designer/data/systems/modern/tokens.css +0 -63
  358. package/dist/designer/data/systems/mongodb/DESIGN.md +0 -269
  359. package/dist/designer/data/systems/mongodb/components.html +0 -462
  360. package/dist/designer/data/systems/mongodb/tokens.css +0 -176
  361. package/dist/designer/data/systems/mono/DESIGN.md +0 -71
  362. package/dist/designer/data/systems/mono/components.html +0 -136
  363. package/dist/designer/data/systems/mono/tokens.css +0 -63
  364. package/dist/designer/data/systems/neobrutalism/DESIGN.md +0 -71
  365. package/dist/designer/data/systems/neobrutalism/components.html +0 -136
  366. package/dist/designer/data/systems/neobrutalism/tokens.css +0 -63
  367. package/dist/designer/data/systems/neon/DESIGN.md +0 -71
  368. package/dist/designer/data/systems/neon/components.html +0 -136
  369. package/dist/designer/data/systems/neon/tokens.css +0 -63
  370. package/dist/designer/data/systems/neumorphism/DESIGN.md +0 -71
  371. package/dist/designer/data/systems/neumorphism/components.html +0 -136
  372. package/dist/designer/data/systems/neumorphism/tokens.css +0 -63
  373. package/dist/designer/data/systems/nike/DESIGN.md +0 -366
  374. package/dist/designer/data/systems/nike/components.html +0 -512
  375. package/dist/designer/data/systems/nike/tokens.css +0 -304
  376. package/dist/designer/data/systems/notion/DESIGN.md +0 -312
  377. package/dist/designer/data/systems/notion/components.html +0 -413
  378. package/dist/designer/data/systems/notion/tokens.css +0 -130
  379. package/dist/designer/data/systems/nvidia/DESIGN.md +0 -296
  380. package/dist/designer/data/systems/nvidia/components.html +0 -414
  381. package/dist/designer/data/systems/nvidia/tokens.css +0 -133
  382. package/dist/designer/data/systems/ollama/DESIGN.md +0 -270
  383. package/dist/designer/data/systems/ollama/components.html +0 -700
  384. package/dist/designer/data/systems/ollama/tokens.css +0 -242
  385. package/dist/designer/data/systems/openai/DESIGN.md +0 -140
  386. package/dist/designer/data/systems/openai/components.html +0 -382
  387. package/dist/designer/data/systems/openai/tokens.css +0 -133
  388. package/dist/designer/data/systems/opencode-ai/DESIGN.md +0 -284
  389. package/dist/designer/data/systems/opencode-ai/components.html +0 -389
  390. package/dist/designer/data/systems/opencode-ai/tokens.css +0 -126
  391. package/dist/designer/data/systems/pacman/DESIGN.md +0 -71
  392. package/dist/designer/data/systems/pacman/components.html +0 -342
  393. package/dist/designer/data/systems/pacman/tokens.css +0 -64
  394. package/dist/designer/data/systems/paper/DESIGN.md +0 -71
  395. package/dist/designer/data/systems/paper/components.html +0 -136
  396. package/dist/designer/data/systems/paper/tokens.css +0 -63
  397. package/dist/designer/data/systems/perplexity/DESIGN.md +0 -286
  398. package/dist/designer/data/systems/perplexity/components.html +0 -455
  399. package/dist/designer/data/systems/perplexity/tokens.css +0 -151
  400. package/dist/designer/data/systems/perspective/DESIGN.md +0 -71
  401. package/dist/designer/data/systems/perspective/components.html +0 -136
  402. package/dist/designer/data/systems/perspective/tokens.css +0 -63
  403. package/dist/designer/data/systems/pinterest/DESIGN.md +0 -233
  404. package/dist/designer/data/systems/pinterest/components.html +0 -865
  405. package/dist/designer/data/systems/pinterest/tokens.css +0 -262
  406. package/dist/designer/data/systems/playstation/DESIGN.md +0 -367
  407. package/dist/designer/data/systems/playstation/components.html +0 -414
  408. package/dist/designer/data/systems/playstation/tokens.css +0 -150
  409. package/dist/designer/data/systems/posthog/DESIGN.md +0 -259
  410. package/dist/designer/data/systems/posthog/components.html +0 -827
  411. package/dist/designer/data/systems/posthog/tokens.css +0 -272
  412. package/dist/designer/data/systems/premium/DESIGN.md +0 -71
  413. package/dist/designer/data/systems/premium/components.html +0 -154
  414. package/dist/designer/data/systems/premium/tokens.css +0 -63
  415. package/dist/designer/data/systems/professional/DESIGN.md +0 -71
  416. package/dist/designer/data/systems/professional/components.html +0 -136
  417. package/dist/designer/data/systems/professional/tokens.css +0 -63
  418. package/dist/designer/data/systems/publication/DESIGN.md +0 -71
  419. package/dist/designer/data/systems/publication/components.html +0 -154
  420. package/dist/designer/data/systems/publication/tokens.css +0 -63
  421. package/dist/designer/data/systems/raycast/DESIGN.md +0 -271
  422. package/dist/designer/data/systems/raycast/components.html +0 -507
  423. package/dist/designer/data/systems/raycast/tokens.css +0 -143
  424. package/dist/designer/data/systems/refined/DESIGN.md +0 -71
  425. package/dist/designer/data/systems/refined/components.html +0 -136
  426. package/dist/designer/data/systems/refined/tokens.css +0 -63
  427. package/dist/designer/data/systems/renault/DESIGN.md +0 -314
  428. package/dist/designer/data/systems/renault/components.html +0 -154
  429. package/dist/designer/data/systems/renault/tokens.css +0 -63
  430. package/dist/designer/data/systems/replicate/DESIGN.md +0 -264
  431. package/dist/designer/data/systems/replicate/components.html +0 -340
  432. package/dist/designer/data/systems/replicate/tokens.css +0 -125
  433. package/dist/designer/data/systems/resend/DESIGN.md +0 -306
  434. package/dist/designer/data/systems/resend/components.html +0 -839
  435. package/dist/designer/data/systems/resend/tokens.css +0 -353
  436. package/dist/designer/data/systems/retro/DESIGN.md +0 -71
  437. package/dist/designer/data/systems/retro/components.html +0 -136
  438. package/dist/designer/data/systems/retro/tokens.css +0 -63
  439. package/dist/designer/data/systems/revolut/DESIGN.md +0 -188
  440. package/dist/designer/data/systems/revolut/components.html +0 -342
  441. package/dist/designer/data/systems/revolut/tokens.css +0 -64
  442. package/dist/designer/data/systems/runwayml/DESIGN.md +0 -247
  443. package/dist/designer/data/systems/runwayml/components.html +0 -638
  444. package/dist/designer/data/systems/runwayml/tokens.css +0 -204
  445. package/dist/designer/data/systems/sanity/DESIGN.md +0 -360
  446. package/dist/designer/data/systems/sanity/components.html +0 -342
  447. package/dist/designer/data/systems/sanity/tokens.css +0 -64
  448. package/dist/designer/data/systems/sentry/DESIGN.md +0 -265
  449. package/dist/designer/data/systems/sentry/components.html +0 -387
  450. package/dist/designer/data/systems/sentry/tokens.css +0 -219
  451. package/dist/designer/data/systems/shadcn/DESIGN.md +0 -71
  452. package/dist/designer/data/systems/shadcn/components.html +0 -732
  453. package/dist/designer/data/systems/shadcn/tokens.css +0 -255
  454. package/dist/designer/data/systems/shopify/DESIGN.md +0 -353
  455. package/dist/designer/data/systems/shopify/components.html +0 -342
  456. package/dist/designer/data/systems/shopify/tokens.css +0 -141
  457. package/dist/designer/data/systems/simple/DESIGN.md +0 -71
  458. package/dist/designer/data/systems/simple/components.html +0 -136
  459. package/dist/designer/data/systems/simple/tokens.css +0 -63
  460. package/dist/designer/data/systems/skeumorphism/DESIGN.md +0 -71
  461. package/dist/designer/data/systems/skeumorphism/components.html +0 -136
  462. package/dist/designer/data/systems/skeumorphism/tokens.css +0 -63
  463. package/dist/designer/data/systems/slack/DESIGN.md +0 -363
  464. package/dist/designer/data/systems/slack/components.html +0 -387
  465. package/dist/designer/data/systems/slack/tokens.css +0 -127
  466. package/dist/designer/data/systems/sleek/DESIGN.md +0 -71
  467. package/dist/designer/data/systems/sleek/components.html +0 -136
  468. package/dist/designer/data/systems/sleek/tokens.css +0 -63
  469. package/dist/designer/data/systems/spacex/DESIGN.md +0 -197
  470. package/dist/designer/data/systems/spacex/components.html +0 -496
  471. package/dist/designer/data/systems/spacex/tokens.css +0 -154
  472. package/dist/designer/data/systems/spacious/DESIGN.md +0 -71
  473. package/dist/designer/data/systems/spacious/components.html +0 -136
  474. package/dist/designer/data/systems/spacious/tokens.css +0 -63
  475. package/dist/designer/data/systems/spotify/DESIGN.md +0 -249
  476. package/dist/designer/data/systems/spotify/components.html +0 -365
  477. package/dist/designer/data/systems/spotify/tokens.css +0 -127
  478. package/dist/designer/data/systems/starbucks/DESIGN.md +0 -583
  479. package/dist/designer/data/systems/starbucks/components.html +0 -493
  480. package/dist/designer/data/systems/starbucks/tokens.css +0 -182
  481. package/dist/designer/data/systems/storytelling/DESIGN.md +0 -71
  482. package/dist/designer/data/systems/storytelling/components.html +0 -136
  483. package/dist/designer/data/systems/storytelling/tokens.css +0 -63
  484. package/dist/designer/data/systems/stripe/DESIGN.md +0 -325
  485. package/dist/designer/data/systems/stripe/components.html +0 -1018
  486. package/dist/designer/data/systems/stripe/tokens.css +0 -295
  487. package/dist/designer/data/systems/supabase/DESIGN.md +0 -258
  488. package/dist/designer/data/systems/supabase/components.html +0 -741
  489. package/dist/designer/data/systems/supabase/tokens.css +0 -294
  490. package/dist/designer/data/systems/superhuman/DESIGN.md +0 -255
  491. package/dist/designer/data/systems/superhuman/components.html +0 -537
  492. package/dist/designer/data/systems/superhuman/tokens.css +0 -160
  493. package/dist/designer/data/systems/tesla/DESIGN.md +0 -289
  494. package/dist/designer/data/systems/tesla/components.html +0 -724
  495. package/dist/designer/data/systems/tesla/tokens.css +0 -285
  496. package/dist/designer/data/systems/tetris/DESIGN.md +0 -71
  497. package/dist/designer/data/systems/tetris/components.html +0 -342
  498. package/dist/designer/data/systems/tetris/tokens.css +0 -64
  499. package/dist/designer/data/systems/theverge/DESIGN.md +0 -342
  500. package/dist/designer/data/systems/theverge/components.html +0 -342
  501. package/dist/designer/data/systems/theverge/tokens.css +0 -64
  502. package/dist/designer/data/systems/together-ai/DESIGN.md +0 -266
  503. package/dist/designer/data/systems/together-ai/components.html +0 -422
  504. package/dist/designer/data/systems/together-ai/tokens.css +0 -127
  505. package/dist/designer/data/systems/totality-festival/DESIGN.md +0 -206
  506. package/dist/designer/data/systems/totality-festival/components.html +0 -136
  507. package/dist/designer/data/systems/totality-festival/tokens.css +0 -63
  508. package/dist/designer/data/systems/trading-terminal/DESIGN.md +0 -178
  509. package/dist/designer/data/systems/trading-terminal/components.html +0 -154
  510. package/dist/designer/data/systems/trading-terminal/tokens.css +0 -63
  511. package/dist/designer/data/systems/uber/DESIGN.md +0 -298
  512. package/dist/designer/data/systems/uber/components.html +0 -347
  513. package/dist/designer/data/systems/uber/tokens.css +0 -131
  514. package/dist/designer/data/systems/urdu/DESIGN.md +0 -1002
  515. package/dist/designer/data/systems/urdu/components.html +0 -136
  516. package/dist/designer/data/systems/urdu/tokens.css +0 -63
  517. package/dist/designer/data/systems/vercel/DESIGN.md +0 -313
  518. package/dist/designer/data/systems/vercel/components.html +0 -839
  519. package/dist/designer/data/systems/vercel/tokens.css +0 -270
  520. package/dist/designer/data/systems/vibrant/DESIGN.md +0 -71
  521. package/dist/designer/data/systems/vibrant/components.html +0 -136
  522. package/dist/designer/data/systems/vibrant/tokens.css +0 -63
  523. package/dist/designer/data/systems/vintage/DESIGN.md +0 -71
  524. package/dist/designer/data/systems/vintage/components.html +0 -136
  525. package/dist/designer/data/systems/vintage/tokens.css +0 -63
  526. package/dist/designer/data/systems/vodafone/DESIGN.md +0 -426
  527. package/dist/designer/data/systems/vodafone/components.html +0 -342
  528. package/dist/designer/data/systems/vodafone/tokens.css +0 -64
  529. package/dist/designer/data/systems/voltagent/DESIGN.md +0 -326
  530. package/dist/designer/data/systems/voltagent/components.html +0 -154
  531. package/dist/designer/data/systems/voltagent/tokens.css +0 -63
  532. package/dist/designer/data/systems/warm-editorial/DESIGN.md +0 -65
  533. package/dist/designer/data/systems/warm-editorial/components.html +0 -136
  534. package/dist/designer/data/systems/warm-editorial/tokens.css +0 -63
  535. package/dist/designer/data/systems/warp/DESIGN.md +0 -256
  536. package/dist/designer/data/systems/warp/components.html +0 -411
  537. package/dist/designer/data/systems/warp/tokens.css +0 -156
  538. package/dist/designer/data/systems/webex/DESIGN.md +0 -207
  539. package/dist/designer/data/systems/webex/components.html +0 -342
  540. package/dist/designer/data/systems/webex/tokens.css +0 -64
  541. package/dist/designer/data/systems/webflow/DESIGN.md +0 -95
  542. package/dist/designer/data/systems/webflow/components.html +0 -413
  543. package/dist/designer/data/systems/webflow/tokens.css +0 -191
  544. package/dist/designer/data/systems/wechat/DESIGN.md +0 -302
  545. package/dist/designer/data/systems/wechat/components.html +0 -507
  546. package/dist/designer/data/systems/wechat/tokens.css +0 -176
  547. package/dist/designer/data/systems/wired/DESIGN.md +0 -281
  548. package/dist/designer/data/systems/wired/components.html +0 -342
  549. package/dist/designer/data/systems/wired/tokens.css +0 -64
  550. package/dist/designer/data/systems/wise/DESIGN.md +0 -176
  551. package/dist/designer/data/systems/wise/components.html +0 -365
  552. package/dist/designer/data/systems/wise/tokens.css +0 -141
  553. package/dist/designer/data/systems/x-ai/DESIGN.md +0 -260
  554. package/dist/designer/data/systems/x-ai/components.html +0 -460
  555. package/dist/designer/data/systems/x-ai/tokens.css +0 -268
  556. package/dist/designer/data/systems/xiaohongshu/DESIGN.md +0 -402
  557. package/dist/designer/data/systems/xiaohongshu/components.html +0 -865
  558. package/dist/designer/data/systems/xiaohongshu/tokens.css +0 -193
  559. package/dist/designer/data/systems/zapier/DESIGN.md +0 -331
  560. package/dist/designer/data/systems/zapier/components.html +0 -342
  561. package/dist/designer/data/systems/zapier/tokens.css +0 -64
  562. package/dist/designer/guidelines.d.ts +0 -23
  563. package/dist/designer/guidelines.d.ts.map +0 -1
  564. package/dist/designer/guidelines.js +0 -176
  565. package/dist/designer/philosophies.d.ts +0 -33
  566. package/dist/designer/philosophies.d.ts.map +0 -1
  567. package/dist/designer/philosophies.js +0 -668
  568. package/dist/designer/skills.d.ts +0 -21
  569. package/dist/designer/skills.d.ts.map +0 -1
  570. package/dist/designer/skills.js +0 -34
  571. package/dist/designer/systems.d.ts +0 -36
  572. package/dist/designer/systems.d.ts.map +0 -1
  573. package/dist/designer/systems.js +0 -221
@@ -1,262 +0,0 @@
1
- # Design System Inspired by Cal.com
2
-
3
- > Category: Productivity & SaaS
4
- > Open-source scheduling. Clean neutral UI, developer-oriented simplicity.
5
-
6
- ## 1. Visual Theme & Atmosphere
7
-
8
- Cal.com's website is a masterclass in monochromatic restraint — a grayscale world where boldness comes not from color but from the sheer confidence of black text on white space. Inspired by Uber's minimal aesthetic, the palette is deliberately stripped of hue: near-black headings (`#242424`), mid-gray secondary text (`#898989`), and pure white surfaces. Color is treated as a foreign substance — when it appears (a rare blue link, a green trust badge), it feels like a controlled accent in an otherwise black-and-white photograph.
9
-
10
- Cal Sans, the brand's custom geometric display typeface designed by Mark Davis, is the visual centerpiece. Letters are intentionally spaced extremely close at large sizes, creating dense, architectural headlines that feel like they're carved into the page. At 64px and 48px, Cal Sans headings sit at weight 600 with a tight 1.10 line-height — confident, compressed, and immediately recognizable. For body text, the system switches to Inter, providing "rock-solid" readability that complements Cal Sans's display personality. The typography pairing creates a clear division: Cal Sans speaks, Inter explains.
11
-
12
- The elevation system is notably sophisticated for a minimal site — 11 shadow definitions create a nuanced depth hierarchy using multi-layered shadows that combine ring borders (`0px 0px 0px 1px`), soft diffused shadows, and inset highlights. This shadow-first approach to depth (rather than border-first) gives surfaces a subtle three-dimensionality that feels modern and polished. Built on Framer with a border-radius scale from 2px to 9999px (pill), Cal.com balances geometric precision with soft, rounded interactive elements.
13
-
14
- **Key Characteristics:**
15
- - Purely grayscale brand palette — no brand colors, boldness through monochrome
16
- - Cal Sans custom geometric display font with extremely tight default letter-spacing
17
- - Multi-layered shadow system (11 definitions) with ring borders + diffused shadows + inset highlights
18
- - Cal Sans for headings, Inter for body — clean typographic division
19
- - Wide border-radius scale from 2px to 9999px (pill) — versatile rounding
20
- - White canvas with near-black (#242424) text — maximum contrast, zero decoration
21
- - Product screenshots as primary visual content — the scheduling UI sells itself
22
- - Built on Framer platform
23
-
24
- ## 2. Color Palette & Roles
25
-
26
- ### Primary
27
- - **Charcoal** (`#242424`): Primary heading and button text — Cal.com's signature near-black, warmer than pure black
28
- - **Midnight** (`#111111`): Deepest text/overlay color — used at 50% opacity for subtle overlays
29
- - **White** (`#ffffff`): Primary background and surface — the dominant canvas
30
-
31
- ### Secondary & Accent
32
- - **Link Blue** (`#0099ff`): In-text links with underline decoration — the only blue in the system, reserved strictly for hyperlinks
33
- - **Focus Ring** (`#3b82f6` at 50% opacity): Keyboard focus indicator — accessibility-only, invisible in normal interaction
34
- - **Default Link** (`#0000ee`): Browser-default link color on some elements — unmodified, signaling openness
35
-
36
- ### Surface & Background
37
- - **Pure White** (`#ffffff`): Primary page background and card surfaces
38
- - **Light Gray** (approx `#f5f5f5`): Subtle section differentiation — barely visible tint
39
- - **Mid Gray** (`#898989`): Secondary text, descriptions, and muted labels
40
-
41
- ### Neutrals & Text
42
- - **Charcoal** (`#242424`): Headlines, buttons, primary UI text
43
- - **Midnight** (`#111111`): Deep black for high-contrast links and nav text
44
- - **Mid Gray** (`#898989`): Descriptions, secondary labels, muted content
45
- - **Pure Black** (`#000000`): Certain link text elements
46
- - **Border Gray** (approx `rgba(34, 42, 53, 0.08–0.10)`): Shadow-based borders using ring shadows instead of CSS borders
47
-
48
- ### Semantic & Accent
49
- - Cal.com is deliberately colorless for brand elements — "a grayscale brand to emphasise on boldness and professionalism"
50
- - Product UI screenshots show color (blues, greens in the scheduling interface), but the marketing site itself stays monochrome
51
- - The philosophy mirrors Uber's approach: let the content carry color, the frame stays neutral
52
-
53
- ### Gradient System
54
- - No gradients on the marketing site — the design is fully flat and monochrome
55
- - Depth is achieved entirely through shadows, not color transitions
56
-
57
- ## 3. Typography Rules
58
-
59
- ### Font Family
60
- - **Display**: `Cal Sans` — custom geometric sans-serif by Mark Davis. Open-source, available on Google Fonts and GitHub. Extremely tight default letter-spacing designed for large headlines. Has 6 character variants (Cc, j, t, u, 0, 1)
61
- - **Body**: `Inter` — "rock-solid" standard body font. Fallback: `Inter Placeholder`
62
- - **UI Light**: `Cal Sans UI Variable Light` — light-weight variant (300) for softer UI text with -0.2px letter-spacing
63
- - **UI Medium**: `Cal Sans UI Medium` — medium-weight variant (500) for emphasized captions
64
- - **Mono**: `Roboto Mono` — for code blocks and technical content
65
- - **Tertiary**: `Matter Regular` / `Matter SemiBold` / `Matter Medium` — additional body fonts for specific contexts
66
-
67
- ### Hierarchy
68
-
69
- | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
70
- |------|------|------|--------|-------------|----------------|-------|
71
- | Display Hero | Cal Sans | 64px | 600 | 1.10 | 0px | Maximum impact, tight default spacing |
72
- | Section Heading | Cal Sans | 48px | 600 | 1.10 | 0px | Large section titles |
73
- | Feature Heading | Cal Sans | 24px | 600 | 1.30 | 0px | Feature block headlines |
74
- | Sub-heading | Cal Sans | 20px | 600 | 1.20 | +0.2px | Positive spacing for readability at smaller size |
75
- | Sub-heading Alt | Cal Sans | 20px | 600 | 1.50 | 0px | Relaxed line-height variant |
76
- | Card Title | Cal Sans | 16px | 600 | 1.10 | 0px | Smallest Cal Sans usage |
77
- | Caption Label | Cal Sans | 12px | 600 | 1.50 | 0px | Small labels in Cal Sans |
78
- | Body Light | Cal Sans UI Light | 18px | 300 | 1.30 | -0.2px | Light-weight body intro text |
79
- | Body Light Standard | Cal Sans UI Light | 16px | 300 | 1.50 | -0.2px | Light-weight body text |
80
- | Caption Light | Cal Sans UI Light | 14px | 300 | 1.40–1.50 | -0.2 to -0.28px | Light captions and descriptions |
81
- | UI Label | Inter | 16px | 600 | 1.00 | 0px | UI buttons and nav labels |
82
- | Caption Inter | Inter | 14px | 500 | 1.14 | 0px | Small UI text |
83
- | Micro | Inter | 12px | 500 | 1.00 | 0px | Smallest Inter text |
84
- | Code | Roboto Mono | 14px | 600 | 1.00 | 0px | Code snippets, technical text |
85
- | Body Matter | Matter Regular | 14px | 400 | 1.14 | 0px | Alternate body text (product UI) |
86
-
87
- ### Principles
88
- - **Cal Sans at large, Inter at small**: Cal Sans is exclusively for headings and display — never for body text. The system enforces this division strictly
89
- - **Tight by default, space when small**: Cal Sans letters are "intentionally spaced to be extremely close" at large sizes. At 20px and below, positive letter-spacing (+0.2px) must be applied to prevent cramming
90
- - **Weight 300 body variant**: Cal Sans UI Variable Light at 300 weight creates an elegant, airy body text that contrasts with the dense 600-weight headlines
91
- - **Weight 600 dominance**: Nearly all Cal Sans usage is at weight 600 (semi-bold) — the font was designed to perform at this weight
92
- - **Negative tracking on light text**: Cal Sans UI Light uses -0.2px to -0.28px letter-spacing, subtly tightening the already-compact letterforms
93
-
94
- ## 4. Component Stylings
95
-
96
- ### Buttons
97
- - **Dark Primary**: `#242424` (or `#1e1f23`) background, white text, 6–8px radius. Hover: opacity reduction to 0.7. The signature CTA — maximally dark on white
98
- - **White/Ghost**: White background with shadow-ring border, dark text. Uses the multi-layered shadow system for subtle elevation
99
- - **Pill**: 9999px radius for rounded pill-shaped actions and badges
100
- - **Compact**: 4px padding, small text — utility actions within product UI
101
- - **Inset highlight**: Some buttons feature `rgba(255, 255, 255, 0.15) 0px 2px 0px inset` — a subtle inner-top highlight creating a 3D pressed effect
102
-
103
- ### Cards & Containers
104
- - **Shadow Card**: White background, multi-layered shadow — `rgba(19, 19, 22, 0.7) 0px 1px 5px -4px, rgba(34, 42, 53, 0.08) 0px 0px 0px 1px, rgba(34, 42, 53, 0.05) 0px 4px 8px 0px`. The ring shadow (0px 0px 0px 1px) acts as a shadow-border
105
- - **Product UI Cards**: Screenshots of the scheduling interface displayed in card containers with shadow elevation
106
- - **Radius**: 8px for standard cards, 12px for larger containers, 16px for prominent sections
107
- - **Hover**: Likely subtle shadow deepening or scale transform
108
-
109
- ### Inputs & Forms
110
- - **Select dropdown**: White background, `#000000` text, 1px solid `rgb(118, 118, 118)` border
111
- - **Focus**: Uses Framer's focus outline system (`--framer-focus-outline`)
112
- - **Text input**: 8px radius, standard border treatment
113
- - **Minimal form presence**: The marketing site prioritizes CTA buttons over complex forms
114
-
115
- ### Navigation
116
- - **Top nav**: White/transparent background, Cal Sans links at near-black
117
- - **Nav text**: `#111111` (Midnight) for primary links, `#000000` for emphasis
118
- - **CTA button**: Dark Primary in the nav — high contrast call-to-action
119
- - **Mobile**: Collapses to hamburger with simplified navigation
120
- - **Sticky**: Fixed on scroll
121
-
122
- ### Image Treatment
123
- - **Product screenshots**: Large scheduling UI screenshots — the product is the primary visual
124
- - **Trust logos**: Grayscale company logos in a horizontal trust bar
125
- - **Aspect ratios**: Wide landscape for product UI screenshots
126
- - **No decorative imagery**: No illustrations, photos, or abstract graphics — pure product + typography
127
-
128
- ## 5. Layout Principles
129
-
130
- ### Spacing System
131
- - **Base unit**: 8px
132
- - **Scale**: 1px, 2px, 3px, 4px, 6px, 8px, 12px, 16px, 20px, 24px, 28px, 80px, 96px
133
- - **Section padding**: 80px–96px vertical between major sections (generous)
134
- - **Card padding**: 12px–24px internal
135
- - **Component gaps**: 4px–8px between related elements
136
- - **Notable jump**: From 28px to 80px — a deliberate gap emphasizing the section-level spacing tier
137
-
138
- ### Grid & Container
139
- - **Max width**: ~1200px content container, centered
140
- - **Column patterns**: Full-width hero, centered text blocks, 2-3 column feature grids
141
- - **Feature showcase**: Product screenshots flanked by description text
142
- - **Breakpoints**: 98px, 640px, 768px, 810px, 1024px, 1199px — Framer-generated
143
-
144
- ### Whitespace Philosophy
145
- - **Lavish section spacing**: 80px–96px between sections creates a breathable, premium feel
146
- - **Product-first content**: Screenshots dominate the visual space — minimal surrounding decoration
147
- - **Centered headlines**: Cal Sans headings centered with generous margins above and below
148
-
149
- ### Border Radius Scale
150
- - **2px**: Subtle rounding on inline elements
151
- - **4px**: Small UI components
152
- - **6px–7px**: Buttons, small cards, images
153
- - **8px**: Standard interactive elements — buttons, inputs, images
154
- - **12px**: Medium containers — links, larger cards, images
155
- - **16px**: Large section containers
156
- - **29px**: Special rounded elements
157
- - **100px**: Large rounding — nearly circular on small elements
158
- - **1000px**: Very large rounding
159
- - **9999px**: Full pill shape — badges, links
160
-
161
- ## 6. Depth & Elevation
162
-
163
- | Level | Treatment | Use |
164
- |-------|-----------|-----|
165
- | Level 0 (Flat) | No shadow | Page canvas, basic text containers |
166
- | Level 1 (Inset) | `rgba(0,0,0,0.16) 0px 1px 1.9px 0px inset` | Pressed/recessed elements, input wells |
167
- | Level 2 (Ring + Soft) | `rgba(19,19,22,0.7) 0px 1px 5px -4px, rgba(34,42,53,0.08) 0px 0px 0px 1px, rgba(34,42,53,0.05) 0px 4px 8px` | Cards, containers — the workhorse shadow |
168
- | Level 3 (Ring + Soft Alt) | `rgba(36,36,36,0.7) 0px 1px 5px -4px, rgba(36,36,36,0.05) 0px 4px 8px` | Alt card elevation without ring border |
169
- | Level 4 (Inset Highlight) | `rgba(255,255,255,0.15) 0px 2px 0px inset` or `rgb(255,255,255) 0px 2px 0px inset` | Button inner highlight — 3D pressed effect |
170
- | Level 5 (Soft Only) | `rgba(34,42,53,0.05) 0px 4px 8px` | Subtle ambient shadow |
171
-
172
- ### Shadow Philosophy
173
- Cal.com's shadow system is the most sophisticated element of the design — 11 shadow definitions using a multi-layered compositing technique:
174
- - **Ring borders**: `0px 0px 0px 1px` shadows act as borders, avoiding CSS `border` entirely. This creates hairline containment without affecting layout
175
- - **Diffused soft shadows**: `0px 4px 8px` at 5% opacity add gentle ambient depth
176
- - **Sharp contact shadows**: `0px 1px 5px -4px` at 70% opacity create tight bottom-edge shadows for grounding
177
- - **Inset highlights**: White inset shadows at the top of buttons create a subtle 3D bevel
178
- - Shadows are composed in comma-separated stacks — each surface gets 2-3 layered shadow definitions working together
179
-
180
- ### Decorative Depth
181
- - No gradients or glow effects
182
- - All depth comes from the sophisticated shadow compositing system
183
- - The overall effect is subtle but precise — surfaces feel like physical cards sitting on a table
184
-
185
- ## 7. Do's and Don'ts
186
-
187
- ### Do
188
- - Use Cal Sans exclusively for headings (24px+) and never for body text — it's a display font with tight default spacing
189
- - Apply positive letter-spacing (+0.2px) when using Cal Sans below 24px — the font cramps at small sizes without it
190
- - Maintain the grayscale palette — boldness comes from contrast, not color
191
- - Use the multi-layered shadow system for card elevation — ring shadow + diffused shadow + contact shadow
192
- - Keep backgrounds pure white — the monochrome philosophy requires a clean canvas
193
- - Use Inter for all body text at weight 300–600 — it's the reliable counterpart to Cal Sans's display personality
194
- - Let product screenshots be the visual content — no illustrations, no decorative graphics
195
- - Apply generous section spacing (80px–96px) — the breathing room is essential to the premium feel
196
-
197
- ### Don't
198
- - Use Cal Sans for body text or text below 16px — it wasn't designed for extended reading
199
- - Add brand colors — Cal.com is intentionally grayscale, color is reserved for links and UI states only
200
- - Use CSS borders when shadows can achieve the same containment — the ring-shadow technique is the system's approach
201
- - Apply negative letter-spacing to Cal Sans at small sizes — it needs positive spacing (+0.2px) below 24px
202
- - Create heavy, dark shadows — Cal.com's shadows are subtle (5% opacity diffused) with sharp contact edges
203
- - Use illustrations, abstract graphics, or decorative elements — the visual language is typography + product UI only
204
- - Mix Cal Sans weights — the font is designed for weight 600, other weights break the intended character
205
- - Reduce section spacing below 48px — the generous whitespace is core to the premium monochrome aesthetic
206
-
207
- ## 8. Responsive Behavior
208
-
209
- ### Breakpoints
210
- | Name | Width | Key Changes |
211
- |------|-------|-------------|
212
- | Mobile | <640px | Single column, hero text ~36px, stacked features, hamburger nav |
213
- | Tablet Small | 640px–768px | 2-column begins for some elements |
214
- | Tablet | 768px–810px | Layout adjustments, fuller grid |
215
- | Tablet Large | 810px–1024px | Multi-column feature grids |
216
- | Desktop | 1024px–1199px | Full layout, expanded navigation |
217
- | Large Desktop | >1199px | Max-width container, centered content |
218
-
219
- ### Touch Targets
220
- - Buttons: 8px radius with comfortable padding (10px+ vertical)
221
- - Nav links: Dark text with adequate spacing
222
- - Mobile CTAs: Full-width dark buttons for easy thumb access
223
- - Pill badges: 9999px radius creates large, tappable targets
224
-
225
- ### Collapsing Strategy
226
- - **Navigation**: Full horizontal nav → hamburger on mobile
227
- - **Hero**: 64px Cal Sans display → ~36px on mobile
228
- - **Feature grids**: Multi-column → 2-column → single stacked column
229
- - **Product screenshots**: Scale within containers, maintaining aspect ratios
230
- - **Section spacing**: Reduces from 80px–96px to ~48px on mobile
231
-
232
- ### Image Behavior
233
- - Product screenshots scale responsively
234
- - Trust logos reflow to multi-row grid on mobile
235
- - No art direction changes — same compositions at all sizes
236
- - Images use 7px–12px border-radius for consistent rounded corners
237
-
238
- ## 9. Agent Prompt Guide
239
-
240
- ### Quick Color Reference
241
- - Primary Text: Charcoal (`#242424`)
242
- - Deep Text: Midnight (`#111111`)
243
- - Secondary Text: Mid Gray (`#898989`)
244
- - Background: Pure White (`#ffffff`)
245
- - Link: Link Blue (`#0099ff`)
246
- - CTA Button: Charcoal (`#242424`) bg, white text
247
- - Shadow Border: `rgba(34, 42, 53, 0.08)` ring
248
-
249
- ### Example Component Prompts
250
- - "Create a hero section with white background, 64px Cal Sans heading at weight 600, line-height 1.10, #242424 text, centered layout with a dark CTA button (#242424, 8px radius, white text)"
251
- - "Design a scheduling card with white background, multi-layered shadow (0px 1px 5px -4px rgba(19,19,22,0.7), 0px 0px 0px 1px rgba(34,42,53,0.08), 0px 4px 8px rgba(34,42,53,0.05)), 12px radius"
252
- - "Build a navigation bar with white background, Inter links at 14px weight 500 in #111111, a dark CTA button (#242424), sticky positioning"
253
- - "Create a trust bar with grayscale company logos, horizontally centered, 16px gap between logos, on white background"
254
- - "Design a feature section with 48px Cal Sans heading (weight 600, #242424), 16px Inter body text (weight 300, #898989, line-height 1.50), and a product screenshot with 12px radius and the card shadow"
255
-
256
- ### Iteration Guide
257
- When refining existing screens generated with this design system:
258
- 1. Verify headings use Cal Sans at weight 600, body uses Inter — never mix them
259
- 2. Check that the palette is purely grayscale — if you see brand colors, remove them
260
- 3. Ensure card elevation uses the multi-layered shadow stack, not CSS borders
261
- 4. Confirm section spacing is generous (80px+) — if sections feel cramped, add more space
262
- 5. The overall tone should feel like a clean, professional scheduling tool — monochrome confidence without any decorative flourishes
@@ -1,376 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1" />
6
- <title>Cal — reference components</title>
7
- <meta
8
- name="description"
9
- content="Reference fixture for design-systems/cal. Pure-white canvas, charcoal
10
- (#242424) text, link-blue reserved for hyperlinks, and a multi-layer
11
- ring-shadow stack that replaces CSS borders."
12
- />
13
-
14
- <style>
15
- :root {
16
- --bg: #ffffff;
17
- --surface: #ffffff;
18
- --surface-warm: var(--surface);
19
-
20
- --fg: #242424;
21
- --fg-2: #111111;
22
- --muted: #898989;
23
- --meta: var(--muted);
24
-
25
- --border: rgba(34, 42, 53, 0.08);
26
- --border-soft: rgba(34, 42, 53, 0.05);
27
-
28
- --accent: #0099ff;
29
- --accent-on: #ffffff;
30
- --accent-hover: color-mix(in oklab, var(--accent), black 8%);
31
- --accent-active: color-mix(in oklab, var(--accent), black 14%);
32
-
33
- --success: #16a34a;
34
- --warn: #eab308;
35
- --danger: #dc2626;
36
-
37
- --font-display: "Cal Sans", "Inter", -apple-system, "Segoe UI", Arial, sans-serif;
38
- --font-body: "Inter", -apple-system, "Segoe UI", Arial, sans-serif;
39
- --font-mono: "Roboto Mono", ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
40
-
41
- --text-xs: 12px;
42
- --text-sm: 14px;
43
- --text-base: 16px;
44
- --text-lg: 20px;
45
- --text-xl: 24px;
46
- --text-2xl: 32px;
47
- --text-3xl: 48px;
48
- --text-4xl: 64px;
49
-
50
- --leading-body: 1.5;
51
- --leading-tight: 1.1;
52
- --tracking-display: 0;
53
-
54
- --space-1: 4px;
55
- --space-2: 8px;
56
- --space-3: 12px;
57
- --space-4: 16px;
58
- --space-5: 20px;
59
- --space-6: 24px;
60
- --space-8: 32px;
61
- --space-12: 48px;
62
-
63
- --section-y-desktop: 96px;
64
- --section-y-tablet: 64px;
65
- --section-y-phone: 48px;
66
-
67
- --radius-sm: 8px;
68
- --radius-md: 12px;
69
- --radius-lg: 16px;
70
- --radius-pill: 9999px;
71
-
72
- --elev-flat: none;
73
- --elev-ring: 0 0 0 1px var(--border);
74
- --elev-raised:
75
- 0 1px 5px -4px rgba(19, 19, 22, 0.7),
76
- 0 0 0 1px rgba(34, 42, 53, 0.08),
77
- 0 4px 8px rgba(34, 42, 53, 0.05);
78
-
79
- --focus-ring: 0 0 0 3px color-mix(in oklab, var(--accent), transparent 70%);
80
-
81
- --motion-fast: 150ms;
82
- --motion-base: 200ms;
83
- --ease-standard: cubic-bezier(0.2, 0, 0, 1);
84
-
85
- --container-max: 1200px;
86
- --container-gutter-desktop: 24px;
87
- --container-gutter-tablet: 16px;
88
- --container-gutter-phone: 12px;
89
- }
90
-
91
- /* ─── Reset ─────────────────────────────────────────────── */
92
- *, *::before, *::after { box-sizing: border-box; }
93
- html, body { margin: 0; padding: 0; }
94
- body {
95
- background: var(--bg);
96
- color: var(--fg);
97
- font-family: var(--font-body);
98
- font-size: var(--text-base);
99
- line-height: var(--leading-body);
100
- -webkit-font-smoothing: antialiased;
101
- }
102
-
103
- /* ─── Layout ─────────────────────────────────────────────── */
104
- .container { max-width: var(--container-max); margin-inline: auto; padding-inline: var(--container-gutter-desktop); }
105
- section { padding-block: var(--section-y-desktop); }
106
- section + section { border-top: 1px solid var(--border); }
107
- @media (max-width: 1023px) {
108
- .container { padding-inline: var(--container-gutter-tablet); }
109
- section { padding-block: var(--section-y-tablet); }
110
- }
111
- @media (max-width: 639px) {
112
- .container { padding-inline: var(--container-gutter-phone); }
113
- section { padding-block: var(--section-y-phone); }
114
- }
115
-
116
- /* ─── Typography — Cal Sans for display, Inter for body ─── */
117
- h1, h2, h3 {
118
- font-family: var(--font-display);
119
- font-weight: 600; /* Cal Sans is designed for weight 600 */
120
- line-height: var(--leading-tight);
121
- letter-spacing: var(--tracking-display);
122
- color: var(--fg);
123
- margin: 0;
124
- }
125
- h1 { font-size: var(--text-4xl); }
126
- h2 { font-size: var(--text-3xl); }
127
- h3 { font-size: var(--text-xl); line-height: 1.3; }
128
- p { margin: 0; }
129
- .lead {
130
- font-family: var(--font-body);
131
- font-size: var(--text-lg);
132
- color: var(--muted);
133
- line-height: var(--leading-body);
134
- font-weight: 400;
135
- }
136
- .body-muted { color: var(--muted); }
137
- .body-sm { font-size: var(--text-sm); }
138
- .eyebrow {
139
- font-family: var(--font-body);
140
- font-size: var(--text-xs);
141
- color: var(--muted);
142
- text-transform: uppercase;
143
- letter-spacing: 0.08em;
144
- font-weight: 500;
145
- }
146
- .stack-3 > * + * { margin-block-start: var(--space-3); }
147
- .stack-4 > * + * { margin-block-start: var(--space-4); }
148
- .stack-6 > * + * { margin-block-start: var(--space-6); }
149
-
150
- /* ─── Buttons — charcoal-on-white primary, ghost secondary ─ */
151
- .btn {
152
- display: inline-flex;
153
- align-items: center;
154
- gap: var(--space-2);
155
- padding: 10px 16px;
156
- border-radius: var(--radius-sm);
157
- font-family: var(--font-body);
158
- font-size: var(--text-sm);
159
- font-weight: 500;
160
- line-height: 1;
161
- cursor: pointer;
162
- border: none;
163
- transition: background-color var(--motion-fast) var(--ease-standard),
164
- box-shadow var(--motion-fast) var(--ease-standard),
165
- opacity var(--motion-fast) var(--ease-standard);
166
- text-decoration: none;
167
- }
168
- .btn:focus-visible { outline: none; box-shadow: var(--focus-ring); }
169
- /* Primary: charcoal (#242424) on white — Cal.com's signature CTA */
170
- .btn-primary {
171
- background: var(--fg);
172
- color: #ffffff;
173
- }
174
- .btn-primary:hover { opacity: 0.85; }
175
- .btn-primary:active { opacity: 0.75; }
176
- /* Secondary: white with ring-shadow border — uses the elevation system */
177
- .btn-secondary {
178
- background: var(--surface);
179
- color: var(--fg);
180
- box-shadow: var(--elev-ring);
181
- }
182
- .btn-secondary:hover {
183
- box-shadow:
184
- 0 0 0 1px rgba(34, 42, 53, 0.12),
185
- 0 1px 2px rgba(34, 42, 53, 0.04);
186
- }
187
-
188
- /* ─── Inputs — minimal, ring-on-focus ─────────────────────── */
189
- .field { display: flex; flex-direction: column; gap: var(--space-2); }
190
- .field label {
191
- font-size: var(--text-sm);
192
- font-weight: 500;
193
- color: var(--fg-2);
194
- }
195
- .field input {
196
- padding: 10px 12px;
197
- border-radius: var(--radius-sm);
198
- border: 1px solid var(--border);
199
- background: var(--bg);
200
- color: var(--fg);
201
- font-family: var(--font-body);
202
- font-size: var(--text-sm);
203
- outline: none;
204
- transition: border-color var(--motion-fast) var(--ease-standard),
205
- box-shadow var(--motion-fast) var(--ease-standard);
206
- }
207
- .field input:focus-visible {
208
- border-color: var(--accent);
209
- box-shadow: var(--focus-ring);
210
- }
211
- .field input::placeholder { color: var(--muted); }
212
- .field-help { font-size: var(--text-xs); color: var(--muted); }
213
-
214
- /* ─── Cards — white surface, multi-layer ring-shadow stack ─ */
215
- .card {
216
- background: var(--surface);
217
- border-radius: var(--radius-md);
218
- padding: var(--space-6);
219
- display: flex;
220
- flex-direction: column;
221
- gap: var(--space-3);
222
- box-shadow: var(--elev-raised); /* Cal.com's workhorse card shadow */
223
- transition: box-shadow var(--motion-base) var(--ease-standard);
224
- }
225
- .card:hover {
226
- box-shadow:
227
- 0 2px 8px -4px rgba(19, 19, 22, 0.7),
228
- 0 0 0 1px rgba(34, 42, 53, 0.1),
229
- 0 8px 16px rgba(34, 42, 53, 0.06);
230
- }
231
-
232
- /* ─── Badges ────────────────────────────────────────────── */
233
- .badge {
234
- display: inline-flex; align-items: center; gap: var(--space-2);
235
- padding: 3px var(--space-2);
236
- border-radius: var(--radius-pill);
237
- font-family: var(--font-body);
238
- font-size: var(--text-xs); font-weight: 500; line-height: 1.6;
239
- }
240
- .badge-success { color: var(--success); background: color-mix(in oklab, var(--success), transparent 90%); }
241
- .badge-muted { color: var(--muted); background: color-mix(in oklab, var(--muted), transparent 92%); }
242
- .badge-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
243
-
244
- /* ─── Links — the only blue in the system ───────────────── */
245
- a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
246
- a:hover { color: var(--accent-hover); }
247
- a.card-link { text-decoration: none; color: var(--fg-2); font-weight: 500; }
248
- a.card-link:hover { color: var(--accent); }
249
- kbd {
250
- font-family: var(--font-mono); font-size: var(--text-xs);
251
- padding: 2px 6px; border-radius: var(--radius-sm);
252
- background: var(--surface); color: var(--muted);
253
- box-shadow: var(--elev-ring);
254
- }
255
-
256
- /* ─── Layout helpers ────────────────────────────────────── */
257
- .hero-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: var(--space-12); align-items: end; }
258
- @media (max-width: 1023px) { .hero-grid { grid-template-columns: 1fr; gap: var(--space-8); } }
259
- .hero-actions { display: flex; gap: var(--space-3); margin-block-start: var(--space-6); flex-wrap: wrap; }
260
- .hero-meta {
261
- display: flex; flex-direction: column; gap: var(--space-3);
262
- padding: var(--space-4);
263
- border-radius: var(--radius-md);
264
- background: var(--surface);
265
- box-shadow: var(--elev-raised);
266
- }
267
- .features-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-5); }
268
- @media (max-width: 1023px) { .features-grid { grid-template-columns: 1fr 1fr; } }
269
- @media (max-width: 639px) { .features-grid { grid-template-columns: 1fr; } }
270
- .form-row { display: grid; grid-template-columns: 1.4fr 1fr; gap: var(--space-12); align-items: start; }
271
- @media (max-width: 1023px) { .form-row { grid-template-columns: 1fr; } }
272
- .form { display: flex; flex-direction: column; gap: var(--space-4); max-width: 420px; }
273
- .form-actions { display: flex; gap: var(--space-3); margin-block-start: var(--space-2); }
274
- .icon { width: 16px; height: 16px; flex-shrink: 0; }
275
- .row-between { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); }
276
- </style>
277
- </head>
278
- <body>
279
- <main class="container">
280
- <section data-od-id="hero">
281
- <div class="hero-grid">
282
- <div class="stack-4">
283
- <p class="eyebrow">Reference fixture · cal</p>
284
- <h1>Scheduling infrastructure for everyone.</h1>
285
- <p class="lead" style="max-width: 52ch">
286
- Open-source meetings, calendars, and booking links that just work —
287
- for individuals, teams, and the developers building the next wave
288
- of scheduling on top of an API they can read.
289
- </p>
290
- <div class="hero-actions">
291
- <a href="./tokens.css" class="btn btn-primary" style="text-decoration: none">
292
- View tokens
293
- <svg class="icon" viewBox="0 0 24 24" fill="none"
294
- stroke="currentColor" stroke-width="1.75"
295
- stroke-linecap="round" stroke-linejoin="round"
296
- aria-hidden="true"><path d="M5 12h14M13 6l6 6-6 6"/></svg>
297
- </a>
298
- <a href="./DESIGN.md" class="btn btn-secondary" style="text-decoration: none">Read the spec</a>
299
- </div>
300
- </div>
301
- <aside class="hero-meta" aria-label="Booking status">
302
- <div class="row-between">
303
- <span class="body-sm" style="color: var(--fg-2)">Booking API</span>
304
- <span class="badge badge-success">
305
- <span class="badge-dot" aria-hidden="true"></span>
306
- Operational
307
- </span>
308
- </div>
309
- <p class="body-sm" style="color: var(--muted)">Last reviewed <time datetime="2026-05-15">2026-05-15</time> · v1.0</p>
310
- <p class="body-sm" style="color: var(--muted)">Press <kbd>⌘</kbd> <kbd>K</kbd> to search availability.</p>
311
- </aside>
312
- </div>
313
- </section>
314
-
315
- <section data-od-id="features">
316
- <div class="stack-3">
317
- <p class="eyebrow">What this fixture exercises</p>
318
- <h2 style="max-width: 22ch">A calendar that gets out of the way.</h2>
319
- </div>
320
- <div class="features-grid" style="margin-block-start: var(--space-8)">
321
- <article class="card">
322
- <h3>Monochrome by design</h3>
323
- <p class="body-muted body-sm">
324
- Pure white canvas, charcoal (#242424) text, and a single
325
- link-blue. Boldness comes from contrast, not from color.
326
- </p>
327
- <a href="./tokens.css" class="body-sm card-link">Inspect tokens →</a>
328
- </article>
329
- <article class="card">
330
- <h3>Cal Sans speaks. Inter explains.</h3>
331
- <p class="body-muted body-sm">
332
- A custom geometric display face for headings, Inter for body.
333
- The font pairing enforces a clear typographic division —
334
- Cal Sans is never used below 16px.
335
- </p>
336
- <a href="./DESIGN.md" class="body-sm card-link">Read the pairing →</a>
337
- </article>
338
- <article class="card">
339
- <h3>Shadows do the bordering</h3>
340
- <p class="body-muted body-sm">
341
- A multi-layer ring + contact + ambient shadow stack replaces
342
- CSS borders. Surfaces feel like physical cards sitting on a
343
- table — never floating, never flat.
344
- </p>
345
- <a href="./tokens.css" class="body-sm card-link">Inspect elevation →</a>
346
- </article>
347
- </div>
348
- </section>
349
-
350
- <section data-od-id="form">
351
- <div class="form-row">
352
- <div class="stack-4">
353
- <p class="eyebrow">Form components</p>
354
- <h2>Get scheduling at the speed of Cal.</h2>
355
- <p class="body-muted" style="max-width: 48ch">
356
- Inputs are minimal: hairline border, charcoal text, and the
357
- one link-blue makes its second appearance only on the focus
358
- ring — exactly where it earns its keep.
359
- </p>
360
- </div>
361
- <form class="form" onsubmit="event.preventDefault();">
362
- <div class="field">
363
- <label for="email">Work email</label>
364
- <input id="email" type="email" placeholder="you@company.com" autocomplete="email" required />
365
- <p class="field-help">We'll send your booking link and nothing else.</p>
366
- </div>
367
- <div class="form-actions">
368
- <button type="submit" class="btn btn-primary">Create my link</button>
369
- <button type="button" class="btn btn-secondary">See a demo</button>
370
- </div>
371
- </form>
372
- </div>
373
- </section>
374
- </main>
375
- </body>
376
- </html>