@hex-core/themes 0.1.0 → 0.2.0

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 (577) hide show
  1. package/dist/chunk-2LXEWDOF.js +68 -0
  2. package/dist/chunk-2LXEWDOF.js.map +1 -0
  3. package/dist/chunk-2SIVAJHV.js +68 -0
  4. package/dist/chunk-2SIVAJHV.js.map +1 -0
  5. package/dist/chunk-2UVSQNAF.js +68 -0
  6. package/dist/chunk-2UVSQNAF.js.map +1 -0
  7. package/dist/chunk-2XBAWSN6.js +68 -0
  8. package/dist/chunk-2XBAWSN6.js.map +1 -0
  9. package/dist/chunk-3FR2JLIS.js +68 -0
  10. package/dist/chunk-3FR2JLIS.js.map +1 -0
  11. package/dist/chunk-4AQSFP5U.js +68 -0
  12. package/dist/chunk-4AQSFP5U.js.map +1 -0
  13. package/dist/chunk-4CRJPM5Q.js +68 -0
  14. package/dist/chunk-4CRJPM5Q.js.map +1 -0
  15. package/dist/chunk-4EAEPKGB.js +68 -0
  16. package/dist/chunk-4EAEPKGB.js.map +1 -0
  17. package/dist/chunk-4JPNRIHQ.js +68 -0
  18. package/dist/chunk-4JPNRIHQ.js.map +1 -0
  19. package/dist/chunk-4WCDNNON.js +68 -0
  20. package/dist/chunk-4WCDNNON.js.map +1 -0
  21. package/dist/chunk-4XQKUS33.js +68 -0
  22. package/dist/chunk-4XQKUS33.js.map +1 -0
  23. package/dist/chunk-5FW5RHIU.js +68 -0
  24. package/dist/chunk-5FW5RHIU.js.map +1 -0
  25. package/dist/chunk-64G56KOZ.js +68 -0
  26. package/dist/chunk-64G56KOZ.js.map +1 -0
  27. package/dist/chunk-6UDYRVS2.js +68 -0
  28. package/dist/chunk-6UDYRVS2.js.map +1 -0
  29. package/dist/chunk-75HM5DPO.js +68 -0
  30. package/dist/chunk-75HM5DPO.js.map +1 -0
  31. package/dist/chunk-7VETPCK7.js +68 -0
  32. package/dist/chunk-7VETPCK7.js.map +1 -0
  33. package/dist/chunk-BMH72AOR.js +68 -0
  34. package/dist/chunk-BMH72AOR.js.map +1 -0
  35. package/dist/chunk-BTDSHLZE.js +68 -0
  36. package/dist/chunk-BTDSHLZE.js.map +1 -0
  37. package/dist/chunk-BTKVLLPL.js +68 -0
  38. package/dist/chunk-BTKVLLPL.js.map +1 -0
  39. package/dist/chunk-CZDOW4UT.js +68 -0
  40. package/dist/chunk-CZDOW4UT.js.map +1 -0
  41. package/dist/chunk-DHT4VCQG.js +68 -0
  42. package/dist/chunk-DHT4VCQG.js.map +1 -0
  43. package/dist/chunk-DM6DAYEM.js +68 -0
  44. package/dist/chunk-DM6DAYEM.js.map +1 -0
  45. package/dist/chunk-DN2M4ZI5.js +68 -0
  46. package/dist/chunk-DN2M4ZI5.js.map +1 -0
  47. package/dist/chunk-DOUW4N6H.js +68 -0
  48. package/dist/chunk-DOUW4N6H.js.map +1 -0
  49. package/dist/chunk-DTZPLDZ5.js +68 -0
  50. package/dist/chunk-DTZPLDZ5.js.map +1 -0
  51. package/dist/chunk-E6MRSOPD.js +68 -0
  52. package/dist/chunk-E6MRSOPD.js.map +1 -0
  53. package/dist/chunk-FABPV7PL.js +68 -0
  54. package/dist/chunk-FABPV7PL.js.map +1 -0
  55. package/dist/chunk-FM67TP64.js +68 -0
  56. package/dist/chunk-FM67TP64.js.map +1 -0
  57. package/dist/chunk-GFABZZVH.js +68 -0
  58. package/dist/chunk-GFABZZVH.js.map +1 -0
  59. package/dist/chunk-HTLRH4MJ.js +68 -0
  60. package/dist/chunk-HTLRH4MJ.js.map +1 -0
  61. package/dist/chunk-IDBHZ2PV.js +68 -0
  62. package/dist/chunk-IDBHZ2PV.js.map +1 -0
  63. package/dist/chunk-J54YKOPC.js +68 -0
  64. package/dist/chunk-J54YKOPC.js.map +1 -0
  65. package/dist/chunk-JN5K3V7M.js +68 -0
  66. package/dist/chunk-JN5K3V7M.js.map +1 -0
  67. package/dist/chunk-JU4TDT2G.js +528 -0
  68. package/dist/chunk-JU4TDT2G.js.map +1 -0
  69. package/dist/chunk-JWBGRQJI.js +68 -0
  70. package/dist/chunk-JWBGRQJI.js.map +1 -0
  71. package/dist/chunk-KFVFORR5.js +68 -0
  72. package/dist/chunk-KFVFORR5.js.map +1 -0
  73. package/dist/chunk-LILQL4KG.js +68 -0
  74. package/dist/chunk-LILQL4KG.js.map +1 -0
  75. package/dist/chunk-M7JXKTNY.js +68 -0
  76. package/dist/chunk-M7JXKTNY.js.map +1 -0
  77. package/dist/chunk-NM567GJA.js +68 -0
  78. package/dist/chunk-NM567GJA.js.map +1 -0
  79. package/dist/chunk-NMWHITVJ.js +68 -0
  80. package/dist/chunk-NMWHITVJ.js.map +1 -0
  81. package/dist/chunk-NSWZ6DXW.js +68 -0
  82. package/dist/chunk-NSWZ6DXW.js.map +1 -0
  83. package/dist/chunk-NXSLVEML.js +68 -0
  84. package/dist/chunk-NXSLVEML.js.map +1 -0
  85. package/dist/chunk-NZX4NVB7.js +68 -0
  86. package/dist/chunk-NZX4NVB7.js.map +1 -0
  87. package/dist/chunk-OAB7GNRG.js +68 -0
  88. package/dist/chunk-OAB7GNRG.js.map +1 -0
  89. package/dist/chunk-P4I6HJZA.js +68 -0
  90. package/dist/chunk-P4I6HJZA.js.map +1 -0
  91. package/dist/chunk-PC3NQBOZ.js +68 -0
  92. package/dist/chunk-PC3NQBOZ.js.map +1 -0
  93. package/dist/chunk-PE3RNDVR.js +68 -0
  94. package/dist/chunk-PE3RNDVR.js.map +1 -0
  95. package/dist/chunk-Q2Q3577E.js +68 -0
  96. package/dist/chunk-Q2Q3577E.js.map +1 -0
  97. package/dist/chunk-QEMINSRG.js +68 -0
  98. package/dist/chunk-QEMINSRG.js.map +1 -0
  99. package/dist/chunk-RGBZ3ZXX.js +68 -0
  100. package/dist/chunk-RGBZ3ZXX.js.map +1 -0
  101. package/dist/chunk-RWSUTY67.js +68 -0
  102. package/dist/chunk-RWSUTY67.js.map +1 -0
  103. package/dist/chunk-SB3JKBJD.js +68 -0
  104. package/dist/chunk-SB3JKBJD.js.map +1 -0
  105. package/dist/chunk-TAHSZ55U.js +68 -0
  106. package/dist/chunk-TAHSZ55U.js.map +1 -0
  107. package/dist/chunk-TCR3NGBV.js +68 -0
  108. package/dist/chunk-TCR3NGBV.js.map +1 -0
  109. package/dist/chunk-TKPBFOEN.js +68 -0
  110. package/dist/chunk-TKPBFOEN.js.map +1 -0
  111. package/dist/chunk-TN6KDVAG.js +68 -0
  112. package/dist/chunk-TN6KDVAG.js.map +1 -0
  113. package/dist/chunk-UIMBGFLW.js +68 -0
  114. package/dist/chunk-UIMBGFLW.js.map +1 -0
  115. package/dist/chunk-UL4F5NTU.js +68 -0
  116. package/dist/chunk-UL4F5NTU.js.map +1 -0
  117. package/dist/chunk-UWDKL3IR.js +68 -0
  118. package/dist/chunk-UWDKL3IR.js.map +1 -0
  119. package/dist/chunk-VNYLNLIH.js +68 -0
  120. package/dist/chunk-VNYLNLIH.js.map +1 -0
  121. package/dist/chunk-W2VEHVDK.js +68 -0
  122. package/dist/chunk-W2VEHVDK.js.map +1 -0
  123. package/dist/chunk-WMYSBUH5.js +68 -0
  124. package/dist/chunk-WMYSBUH5.js.map +1 -0
  125. package/dist/chunk-WNTQIMRE.js +68 -0
  126. package/dist/chunk-WNTQIMRE.js.map +1 -0
  127. package/dist/chunk-WY72KJJW.js +68 -0
  128. package/dist/chunk-WY72KJJW.js.map +1 -0
  129. package/dist/chunk-WYTM3WHD.js +68 -0
  130. package/dist/chunk-WYTM3WHD.js.map +1 -0
  131. package/dist/chunk-XGQWOJRB.js +68 -0
  132. package/dist/chunk-XGQWOJRB.js.map +1 -0
  133. package/dist/chunk-YZKPRCKP.js +68 -0
  134. package/dist/chunk-YZKPRCKP.js.map +1 -0
  135. package/dist/chunk-ZEPFA7ZT.js +68 -0
  136. package/dist/chunk-ZEPFA7ZT.js.map +1 -0
  137. package/dist/chunk-ZIMELPXX.js +68 -0
  138. package/dist/chunk-ZIMELPXX.js.map +1 -0
  139. package/dist/chunk-ZMAIAAT6.js +68 -0
  140. package/dist/chunk-ZMAIAAT6.js.map +1 -0
  141. package/dist/chunk-ZOCDSEOF.js +68 -0
  142. package/dist/chunk-ZOCDSEOF.js.map +1 -0
  143. package/dist/chunk-ZSUTMUVB.js +68 -0
  144. package/dist/chunk-ZSUTMUVB.js.map +1 -0
  145. package/dist/index.d.ts +185 -23
  146. package/dist/index.js +359 -3
  147. package/dist/index.js.map +1 -1
  148. package/dist/presets/_briefs/airbnb.d.ts +3 -0
  149. package/dist/presets/_briefs/airbnb.js +551 -0
  150. package/dist/presets/_briefs/airbnb.js.map +1 -0
  151. package/dist/presets/_briefs/airtable.d.ts +3 -0
  152. package/dist/presets/_briefs/airtable.js +560 -0
  153. package/dist/presets/_briefs/airtable.js.map +1 -0
  154. package/dist/presets/_briefs/apple.d.ts +3 -0
  155. package/dist/presets/_briefs/apple.js +568 -0
  156. package/dist/presets/_briefs/apple.js.map +1 -0
  157. package/dist/presets/_briefs/binance.d.ts +3 -0
  158. package/dist/presets/_briefs/binance.js +640 -0
  159. package/dist/presets/_briefs/binance.js.map +1 -0
  160. package/dist/presets/_briefs/bmw-m.d.ts +3 -0
  161. package/dist/presets/_briefs/bmw-m.js +509 -0
  162. package/dist/presets/_briefs/bmw-m.js.map +1 -0
  163. package/dist/presets/_briefs/bmw.d.ts +3 -0
  164. package/dist/presets/_briefs/bmw.js +550 -0
  165. package/dist/presets/_briefs/bmw.js.map +1 -0
  166. package/dist/presets/_briefs/bugatti.d.ts +3 -0
  167. package/dist/presets/_briefs/bugatti.js +460 -0
  168. package/dist/presets/_briefs/bugatti.js.map +1 -0
  169. package/dist/presets/_briefs/cal.d.ts +3 -0
  170. package/dist/presets/_briefs/cal.js +548 -0
  171. package/dist/presets/_briefs/cal.js.map +1 -0
  172. package/dist/presets/_briefs/claude.d.ts +3 -0
  173. package/dist/presets/_briefs/claude.js +595 -0
  174. package/dist/presets/_briefs/claude.js.map +1 -0
  175. package/dist/presets/_briefs/clay.d.ts +3 -0
  176. package/dist/presets/_briefs/clay.js +547 -0
  177. package/dist/presets/_briefs/clay.js.map +1 -0
  178. package/dist/presets/_briefs/clickhouse.d.ts +3 -0
  179. package/dist/presets/_briefs/clickhouse.js +550 -0
  180. package/dist/presets/_briefs/clickhouse.js.map +1 -0
  181. package/dist/presets/_briefs/cohere.d.ts +3 -0
  182. package/dist/presets/_briefs/cohere.js +457 -0
  183. package/dist/presets/_briefs/cohere.js.map +1 -0
  184. package/dist/presets/_briefs/coinbase.d.ts +3 -0
  185. package/dist/presets/_briefs/coinbase.js +576 -0
  186. package/dist/presets/_briefs/coinbase.js.map +1 -0
  187. package/dist/presets/_briefs/composio.d.ts +3 -0
  188. package/dist/presets/_briefs/composio.js +512 -0
  189. package/dist/presets/_briefs/composio.js.map +1 -0
  190. package/dist/presets/_briefs/cursor.d.ts +3 -0
  191. package/dist/presets/_briefs/cursor.js +543 -0
  192. package/dist/presets/_briefs/cursor.js.map +1 -0
  193. package/dist/presets/_briefs/elevenlabs.d.ts +3 -0
  194. package/dist/presets/_briefs/elevenlabs.js +510 -0
  195. package/dist/presets/_briefs/elevenlabs.js.map +1 -0
  196. package/dist/presets/_briefs/expo.d.ts +3 -0
  197. package/dist/presets/_briefs/expo.js +532 -0
  198. package/dist/presets/_briefs/expo.js.map +1 -0
  199. package/dist/presets/_briefs/ferrari.d.ts +3 -0
  200. package/dist/presets/_briefs/ferrari.js +537 -0
  201. package/dist/presets/_briefs/ferrari.js.map +1 -0
  202. package/dist/presets/_briefs/figma.d.ts +3 -0
  203. package/dist/presets/_briefs/figma.js +226 -0
  204. package/dist/presets/_briefs/figma.js.map +1 -0
  205. package/dist/presets/_briefs/framer.d.ts +3 -0
  206. package/dist/presets/_briefs/framer.js +252 -0
  207. package/dist/presets/_briefs/framer.js.map +1 -0
  208. package/dist/presets/_briefs/hashicorp.d.ts +3 -0
  209. package/dist/presets/_briefs/hashicorp.js +284 -0
  210. package/dist/presets/_briefs/hashicorp.js.map +1 -0
  211. package/dist/presets/_briefs/ibm.d.ts +3 -0
  212. package/dist/presets/_briefs/ibm.js +338 -0
  213. package/dist/presets/_briefs/ibm.js.map +1 -0
  214. package/dist/presets/_briefs/intercom.d.ts +3 -0
  215. package/dist/presets/_briefs/intercom.js +152 -0
  216. package/dist/presets/_briefs/intercom.js.map +1 -0
  217. package/dist/presets/_briefs/kraken.d.ts +3 -0
  218. package/dist/presets/_briefs/kraken.js +131 -0
  219. package/dist/presets/_briefs/kraken.js.map +1 -0
  220. package/dist/presets/_briefs/lamborghini.d.ts +3 -0
  221. package/dist/presets/_briefs/lamborghini.js +294 -0
  222. package/dist/presets/_briefs/lamborghini.js.map +1 -0
  223. package/dist/presets/_briefs/linear.d.ts +3 -0
  224. package/dist/presets/_briefs/linear.js +373 -0
  225. package/dist/presets/_briefs/linear.js.map +1 -0
  226. package/dist/presets/_briefs/lovable.d.ts +3 -0
  227. package/dist/presets/_briefs/lovable.js +304 -0
  228. package/dist/presets/_briefs/lovable.js.map +1 -0
  229. package/dist/presets/_briefs/mastercard.d.ts +3 -0
  230. package/dist/presets/_briefs/mastercard.js +371 -0
  231. package/dist/presets/_briefs/mastercard.js.map +1 -0
  232. package/dist/presets/_briefs/meta.d.ts +3 -0
  233. package/dist/presets/_briefs/meta.js +372 -0
  234. package/dist/presets/_briefs/meta.js.map +1 -0
  235. package/dist/presets/_briefs/minimax.d.ts +3 -0
  236. package/dist/presets/_briefs/minimax.js +263 -0
  237. package/dist/presets/_briefs/minimax.js.map +1 -0
  238. package/dist/presets/_briefs/mintlify.d.ts +3 -0
  239. package/dist/presets/_briefs/mintlify.js +332 -0
  240. package/dist/presets/_briefs/mintlify.js.map +1 -0
  241. package/dist/presets/_briefs/miro.d.ts +3 -0
  242. package/dist/presets/_briefs/miro.js +114 -0
  243. package/dist/presets/_briefs/miro.js.map +1 -0
  244. package/dist/presets/_briefs/mistral.d.ts +3 -0
  245. package/dist/presets/_briefs/mistral.js +267 -0
  246. package/dist/presets/_briefs/mistral.js.map +1 -0
  247. package/dist/presets/_briefs/mongodb.d.ts +3 -0
  248. package/dist/presets/_briefs/mongodb.js +272 -0
  249. package/dist/presets/_briefs/mongodb.js.map +1 -0
  250. package/dist/presets/_briefs/nike.d.ts +3 -0
  251. package/dist/presets/_briefs/nike.js +369 -0
  252. package/dist/presets/_briefs/nike.js.map +1 -0
  253. package/dist/presets/_briefs/notion.d.ts +3 -0
  254. package/dist/presets/_briefs/notion.js +315 -0
  255. package/dist/presets/_briefs/notion.js.map +1 -0
  256. package/dist/presets/_briefs/nvidia.d.ts +3 -0
  257. package/dist/presets/_briefs/nvidia.js +299 -0
  258. package/dist/presets/_briefs/nvidia.js.map +1 -0
  259. package/dist/presets/_briefs/ollama.d.ts +3 -0
  260. package/dist/presets/_briefs/ollama.js +273 -0
  261. package/dist/presets/_briefs/ollama.js.map +1 -0
  262. package/dist/presets/_briefs/opencode.d.ts +3 -0
  263. package/dist/presets/_briefs/opencode.js +287 -0
  264. package/dist/presets/_briefs/opencode.js.map +1 -0
  265. package/dist/presets/_briefs/pinterest.d.ts +3 -0
  266. package/dist/presets/_briefs/pinterest.js +236 -0
  267. package/dist/presets/_briefs/pinterest.js.map +1 -0
  268. package/dist/presets/_briefs/playstation.d.ts +3 -0
  269. package/dist/presets/_briefs/playstation.js +370 -0
  270. package/dist/presets/_briefs/playstation.js.map +1 -0
  271. package/dist/presets/_briefs/posthog.d.ts +3 -0
  272. package/dist/presets/_briefs/posthog.js +262 -0
  273. package/dist/presets/_briefs/posthog.js.map +1 -0
  274. package/dist/presets/_briefs/raycast.d.ts +3 -0
  275. package/dist/presets/_briefs/raycast.js +274 -0
  276. package/dist/presets/_briefs/raycast.js.map +1 -0
  277. package/dist/presets/_briefs/renault.d.ts +3 -0
  278. package/dist/presets/_briefs/renault.js +317 -0
  279. package/dist/presets/_briefs/renault.js.map +1 -0
  280. package/dist/presets/_briefs/replicate.d.ts +3 -0
  281. package/dist/presets/_briefs/replicate.js +267 -0
  282. package/dist/presets/_briefs/replicate.js.map +1 -0
  283. package/dist/presets/_briefs/resend.d.ts +3 -0
  284. package/dist/presets/_briefs/resend.js +309 -0
  285. package/dist/presets/_briefs/resend.js.map +1 -0
  286. package/dist/presets/_briefs/revolut.d.ts +3 -0
  287. package/dist/presets/_briefs/revolut.js +191 -0
  288. package/dist/presets/_briefs/revolut.js.map +1 -0
  289. package/dist/presets/_briefs/runwayml.d.ts +3 -0
  290. package/dist/presets/_briefs/runwayml.js +250 -0
  291. package/dist/presets/_briefs/runwayml.js.map +1 -0
  292. package/dist/presets/_briefs/sanity.d.ts +3 -0
  293. package/dist/presets/_briefs/sanity.js +363 -0
  294. package/dist/presets/_briefs/sanity.js.map +1 -0
  295. package/dist/presets/_briefs/sentry.d.ts +3 -0
  296. package/dist/presets/_briefs/sentry.js +268 -0
  297. package/dist/presets/_briefs/sentry.js.map +1 -0
  298. package/dist/presets/_briefs/shopify.d.ts +3 -0
  299. package/dist/presets/_briefs/shopify.js +356 -0
  300. package/dist/presets/_briefs/shopify.js.map +1 -0
  301. package/dist/presets/_briefs/slack.d.ts +3 -0
  302. package/dist/presets/_briefs/slack.js +221 -0
  303. package/dist/presets/_briefs/slack.js.map +1 -0
  304. package/dist/presets/_briefs/spacex.d.ts +3 -0
  305. package/dist/presets/_briefs/spacex.js +200 -0
  306. package/dist/presets/_briefs/spacex.js.map +1 -0
  307. package/dist/presets/_briefs/spotify.d.ts +3 -0
  308. package/dist/presets/_briefs/spotify.js +252 -0
  309. package/dist/presets/_briefs/spotify.js.map +1 -0
  310. package/dist/presets/_briefs/starbucks.d.ts +3 -0
  311. package/dist/presets/_briefs/starbucks.js +586 -0
  312. package/dist/presets/_briefs/starbucks.js.map +1 -0
  313. package/dist/presets/_briefs/stripe.d.ts +3 -0
  314. package/dist/presets/_briefs/stripe.js +328 -0
  315. package/dist/presets/_briefs/stripe.js.map +1 -0
  316. package/dist/presets/_briefs/supabase.d.ts +3 -0
  317. package/dist/presets/_briefs/supabase.js +261 -0
  318. package/dist/presets/_briefs/supabase.js.map +1 -0
  319. package/dist/presets/_briefs/superhuman.d.ts +3 -0
  320. package/dist/presets/_briefs/superhuman.js +258 -0
  321. package/dist/presets/_briefs/superhuman.js.map +1 -0
  322. package/dist/presets/_briefs/tesla.d.ts +3 -0
  323. package/dist/presets/_briefs/tesla.js +292 -0
  324. package/dist/presets/_briefs/tesla.js.map +1 -0
  325. package/dist/presets/_briefs/theverge.d.ts +3 -0
  326. package/dist/presets/_briefs/theverge.js +345 -0
  327. package/dist/presets/_briefs/theverge.js.map +1 -0
  328. package/dist/presets/_briefs/together.d.ts +3 -0
  329. package/dist/presets/_briefs/together.js +269 -0
  330. package/dist/presets/_briefs/together.js.map +1 -0
  331. package/dist/presets/_briefs/uber.d.ts +3 -0
  332. package/dist/presets/_briefs/uber.js +301 -0
  333. package/dist/presets/_briefs/uber.js.map +1 -0
  334. package/dist/presets/_briefs/vercel.d.ts +3 -0
  335. package/dist/presets/_briefs/vercel.js +316 -0
  336. package/dist/presets/_briefs/vercel.js.map +1 -0
  337. package/dist/presets/_briefs/vodafone.d.ts +3 -0
  338. package/dist/presets/_briefs/vodafone.js +429 -0
  339. package/dist/presets/_briefs/vodafone.js.map +1 -0
  340. package/dist/presets/_briefs/voltagent.d.ts +3 -0
  341. package/dist/presets/_briefs/voltagent.js +329 -0
  342. package/dist/presets/_briefs/voltagent.js.map +1 -0
  343. package/dist/presets/_briefs/warp.d.ts +3 -0
  344. package/dist/presets/_briefs/warp.js +259 -0
  345. package/dist/presets/_briefs/warp.js.map +1 -0
  346. package/dist/presets/_briefs/webflow.d.ts +3 -0
  347. package/dist/presets/_briefs/webflow.js +98 -0
  348. package/dist/presets/_briefs/webflow.js.map +1 -0
  349. package/dist/presets/_briefs/wired.d.ts +3 -0
  350. package/dist/presets/_briefs/wired.js +284 -0
  351. package/dist/presets/_briefs/wired.js.map +1 -0
  352. package/dist/presets/_briefs/wise.d.ts +3 -0
  353. package/dist/presets/_briefs/wise.js +179 -0
  354. package/dist/presets/_briefs/wise.js.map +1 -0
  355. package/dist/presets/_briefs/x.d.ts +3 -0
  356. package/dist/presets/_briefs/x.js +263 -0
  357. package/dist/presets/_briefs/x.js.map +1 -0
  358. package/dist/presets/_briefs/zapier.d.ts +3 -0
  359. package/dist/presets/_briefs/zapier.js +334 -0
  360. package/dist/presets/_briefs/zapier.js.map +1 -0
  361. package/dist/presets/airbnb.d.ts +5 -0
  362. package/dist/presets/airbnb.js +7 -0
  363. package/dist/presets/airbnb.js.map +1 -0
  364. package/dist/presets/airtable.d.ts +5 -0
  365. package/dist/presets/airtable.js +7 -0
  366. package/dist/presets/airtable.js.map +1 -0
  367. package/dist/presets/apple.d.ts +5 -0
  368. package/dist/presets/apple.js +7 -0
  369. package/dist/presets/apple.js.map +1 -0
  370. package/dist/presets/binance.d.ts +5 -0
  371. package/dist/presets/binance.js +7 -0
  372. package/dist/presets/binance.js.map +1 -0
  373. package/dist/presets/bmw-m.d.ts +5 -0
  374. package/dist/presets/bmw-m.js +7 -0
  375. package/dist/presets/bmw-m.js.map +1 -0
  376. package/dist/presets/bmw.d.ts +5 -0
  377. package/dist/presets/bmw.js +7 -0
  378. package/dist/presets/bmw.js.map +1 -0
  379. package/dist/presets/bugatti.d.ts +5 -0
  380. package/dist/presets/bugatti.js +7 -0
  381. package/dist/presets/bugatti.js.map +1 -0
  382. package/dist/presets/cal.d.ts +5 -0
  383. package/dist/presets/cal.js +7 -0
  384. package/dist/presets/cal.js.map +1 -0
  385. package/dist/presets/claude.d.ts +5 -0
  386. package/dist/presets/claude.js +7 -0
  387. package/dist/presets/claude.js.map +1 -0
  388. package/dist/presets/clay.d.ts +5 -0
  389. package/dist/presets/clay.js +7 -0
  390. package/dist/presets/clay.js.map +1 -0
  391. package/dist/presets/clickhouse.d.ts +5 -0
  392. package/dist/presets/clickhouse.js +7 -0
  393. package/dist/presets/clickhouse.js.map +1 -0
  394. package/dist/presets/cohere.d.ts +5 -0
  395. package/dist/presets/cohere.js +7 -0
  396. package/dist/presets/cohere.js.map +1 -0
  397. package/dist/presets/coinbase.d.ts +5 -0
  398. package/dist/presets/coinbase.js +7 -0
  399. package/dist/presets/coinbase.js.map +1 -0
  400. package/dist/presets/composio.d.ts +5 -0
  401. package/dist/presets/composio.js +7 -0
  402. package/dist/presets/composio.js.map +1 -0
  403. package/dist/presets/cursor.d.ts +5 -0
  404. package/dist/presets/cursor.js +7 -0
  405. package/dist/presets/cursor.js.map +1 -0
  406. package/dist/presets/elevenlabs.d.ts +5 -0
  407. package/dist/presets/elevenlabs.js +7 -0
  408. package/dist/presets/elevenlabs.js.map +1 -0
  409. package/dist/presets/expo.d.ts +5 -0
  410. package/dist/presets/expo.js +7 -0
  411. package/dist/presets/expo.js.map +1 -0
  412. package/dist/presets/ferrari.d.ts +5 -0
  413. package/dist/presets/ferrari.js +7 -0
  414. package/dist/presets/ferrari.js.map +1 -0
  415. package/dist/presets/figma.d.ts +5 -0
  416. package/dist/presets/figma.js +7 -0
  417. package/dist/presets/figma.js.map +1 -0
  418. package/dist/presets/framer.d.ts +5 -0
  419. package/dist/presets/framer.js +7 -0
  420. package/dist/presets/framer.js.map +1 -0
  421. package/dist/presets/hashicorp.d.ts +5 -0
  422. package/dist/presets/hashicorp.js +7 -0
  423. package/dist/presets/hashicorp.js.map +1 -0
  424. package/dist/presets/ibm.d.ts +5 -0
  425. package/dist/presets/ibm.js +7 -0
  426. package/dist/presets/ibm.js.map +1 -0
  427. package/dist/presets/index.d.ts +94 -0
  428. package/dist/presets/index.js +297 -0
  429. package/dist/presets/index.js.map +1 -0
  430. package/dist/presets/intercom.d.ts +5 -0
  431. package/dist/presets/intercom.js +7 -0
  432. package/dist/presets/intercom.js.map +1 -0
  433. package/dist/presets/kraken.d.ts +5 -0
  434. package/dist/presets/kraken.js +7 -0
  435. package/dist/presets/kraken.js.map +1 -0
  436. package/dist/presets/lamborghini.d.ts +5 -0
  437. package/dist/presets/lamborghini.js +7 -0
  438. package/dist/presets/lamborghini.js.map +1 -0
  439. package/dist/presets/linear.d.ts +5 -0
  440. package/dist/presets/linear.js +7 -0
  441. package/dist/presets/linear.js.map +1 -0
  442. package/dist/presets/lovable.d.ts +5 -0
  443. package/dist/presets/lovable.js +7 -0
  444. package/dist/presets/lovable.js.map +1 -0
  445. package/dist/presets/mastercard.d.ts +5 -0
  446. package/dist/presets/mastercard.js +7 -0
  447. package/dist/presets/mastercard.js.map +1 -0
  448. package/dist/presets/meta.d.ts +5 -0
  449. package/dist/presets/meta.js +7 -0
  450. package/dist/presets/meta.js.map +1 -0
  451. package/dist/presets/minimax.d.ts +5 -0
  452. package/dist/presets/minimax.js +7 -0
  453. package/dist/presets/minimax.js.map +1 -0
  454. package/dist/presets/mintlify.d.ts +5 -0
  455. package/dist/presets/mintlify.js +7 -0
  456. package/dist/presets/mintlify.js.map +1 -0
  457. package/dist/presets/miro.d.ts +5 -0
  458. package/dist/presets/miro.js +7 -0
  459. package/dist/presets/miro.js.map +1 -0
  460. package/dist/presets/mistral.d.ts +5 -0
  461. package/dist/presets/mistral.js +7 -0
  462. package/dist/presets/mistral.js.map +1 -0
  463. package/dist/presets/mongodb.d.ts +5 -0
  464. package/dist/presets/mongodb.js +7 -0
  465. package/dist/presets/mongodb.js.map +1 -0
  466. package/dist/presets/nike.d.ts +5 -0
  467. package/dist/presets/nike.js +7 -0
  468. package/dist/presets/nike.js.map +1 -0
  469. package/dist/presets/notion.d.ts +5 -0
  470. package/dist/presets/notion.js +7 -0
  471. package/dist/presets/notion.js.map +1 -0
  472. package/dist/presets/nvidia.d.ts +5 -0
  473. package/dist/presets/nvidia.js +7 -0
  474. package/dist/presets/nvidia.js.map +1 -0
  475. package/dist/presets/ollama.d.ts +5 -0
  476. package/dist/presets/ollama.js +7 -0
  477. package/dist/presets/ollama.js.map +1 -0
  478. package/dist/presets/opencode.d.ts +5 -0
  479. package/dist/presets/opencode.js +7 -0
  480. package/dist/presets/opencode.js.map +1 -0
  481. package/dist/presets/pinterest.d.ts +5 -0
  482. package/dist/presets/pinterest.js +7 -0
  483. package/dist/presets/pinterest.js.map +1 -0
  484. package/dist/presets/playstation.d.ts +5 -0
  485. package/dist/presets/playstation.js +7 -0
  486. package/dist/presets/playstation.js.map +1 -0
  487. package/dist/presets/posthog.d.ts +5 -0
  488. package/dist/presets/posthog.js +7 -0
  489. package/dist/presets/posthog.js.map +1 -0
  490. package/dist/presets/raycast.d.ts +5 -0
  491. package/dist/presets/raycast.js +7 -0
  492. package/dist/presets/raycast.js.map +1 -0
  493. package/dist/presets/renault.d.ts +5 -0
  494. package/dist/presets/renault.js +7 -0
  495. package/dist/presets/renault.js.map +1 -0
  496. package/dist/presets/replicate.d.ts +5 -0
  497. package/dist/presets/replicate.js +7 -0
  498. package/dist/presets/replicate.js.map +1 -0
  499. package/dist/presets/resend.d.ts +5 -0
  500. package/dist/presets/resend.js +7 -0
  501. package/dist/presets/resend.js.map +1 -0
  502. package/dist/presets/revolut.d.ts +5 -0
  503. package/dist/presets/revolut.js +7 -0
  504. package/dist/presets/revolut.js.map +1 -0
  505. package/dist/presets/runwayml.d.ts +5 -0
  506. package/dist/presets/runwayml.js +7 -0
  507. package/dist/presets/runwayml.js.map +1 -0
  508. package/dist/presets/sanity.d.ts +5 -0
  509. package/dist/presets/sanity.js +7 -0
  510. package/dist/presets/sanity.js.map +1 -0
  511. package/dist/presets/sentry.d.ts +5 -0
  512. package/dist/presets/sentry.js +7 -0
  513. package/dist/presets/sentry.js.map +1 -0
  514. package/dist/presets/shopify.d.ts +5 -0
  515. package/dist/presets/shopify.js +7 -0
  516. package/dist/presets/shopify.js.map +1 -0
  517. package/dist/presets/slack.d.ts +5 -0
  518. package/dist/presets/slack.js +7 -0
  519. package/dist/presets/slack.js.map +1 -0
  520. package/dist/presets/spacex.d.ts +5 -0
  521. package/dist/presets/spacex.js +7 -0
  522. package/dist/presets/spacex.js.map +1 -0
  523. package/dist/presets/spotify.d.ts +5 -0
  524. package/dist/presets/spotify.js +7 -0
  525. package/dist/presets/spotify.js.map +1 -0
  526. package/dist/presets/starbucks.d.ts +5 -0
  527. package/dist/presets/starbucks.js +7 -0
  528. package/dist/presets/starbucks.js.map +1 -0
  529. package/dist/presets/stripe.d.ts +5 -0
  530. package/dist/presets/stripe.js +7 -0
  531. package/dist/presets/stripe.js.map +1 -0
  532. package/dist/presets/supabase.d.ts +5 -0
  533. package/dist/presets/supabase.js +7 -0
  534. package/dist/presets/supabase.js.map +1 -0
  535. package/dist/presets/superhuman.d.ts +5 -0
  536. package/dist/presets/superhuman.js +7 -0
  537. package/dist/presets/superhuman.js.map +1 -0
  538. package/dist/presets/tesla.d.ts +5 -0
  539. package/dist/presets/tesla.js +7 -0
  540. package/dist/presets/tesla.js.map +1 -0
  541. package/dist/presets/theverge.d.ts +5 -0
  542. package/dist/presets/theverge.js +7 -0
  543. package/dist/presets/theverge.js.map +1 -0
  544. package/dist/presets/together.d.ts +5 -0
  545. package/dist/presets/together.js +7 -0
  546. package/dist/presets/together.js.map +1 -0
  547. package/dist/presets/uber.d.ts +5 -0
  548. package/dist/presets/uber.js +7 -0
  549. package/dist/presets/uber.js.map +1 -0
  550. package/dist/presets/vercel.d.ts +5 -0
  551. package/dist/presets/vercel.js +7 -0
  552. package/dist/presets/vercel.js.map +1 -0
  553. package/dist/presets/vodafone.d.ts +5 -0
  554. package/dist/presets/vodafone.js +7 -0
  555. package/dist/presets/vodafone.js.map +1 -0
  556. package/dist/presets/voltagent.d.ts +5 -0
  557. package/dist/presets/voltagent.js +7 -0
  558. package/dist/presets/voltagent.js.map +1 -0
  559. package/dist/presets/warp.d.ts +5 -0
  560. package/dist/presets/warp.js +7 -0
  561. package/dist/presets/warp.js.map +1 -0
  562. package/dist/presets/webflow.d.ts +5 -0
  563. package/dist/presets/webflow.js +7 -0
  564. package/dist/presets/webflow.js.map +1 -0
  565. package/dist/presets/wired.d.ts +5 -0
  566. package/dist/presets/wired.js +7 -0
  567. package/dist/presets/wired.js.map +1 -0
  568. package/dist/presets/wise.d.ts +5 -0
  569. package/dist/presets/wise.js +7 -0
  570. package/dist/presets/wise.js.map +1 -0
  571. package/dist/presets/x.d.ts +5 -0
  572. package/dist/presets/x.js +7 -0
  573. package/dist/presets/x.js.map +1 -0
  574. package/dist/presets/zapier.d.ts +5 -0
  575. package/dist/presets/zapier.js +7 -0
  576. package/dist/presets/zapier.js.map +1 -0
  577. package/package.json +15 -3
@@ -0,0 +1,316 @@
1
+ // src/presets/_briefs/vercel.ts
2
+ var vercelBrief = `# Design System Inspired by Vercel
3
+
4
+ ## 1. Visual Theme & Atmosphere
5
+
6
+ Vercel's website is the visual thesis of developer infrastructure made invisible \u2014 a design system so restrained it borders on philosophical. The page is overwhelmingly white (\`#ffffff\`) with near-black (\`#171717\`) text, creating a gallery-like emptiness where every element earns its pixel. This isn't minimalism as decoration; it's minimalism as engineering principle. The Geist design system treats the interface like a compiler treats code \u2014 every unnecessary token is stripped away until only structure remains.
7
+
8
+ The custom Geist font family is the crown jewel. Geist Sans uses aggressive negative letter-spacing (-2.4px to -2.88px at display sizes), creating headlines that feel compressed, urgent, and engineered \u2014 like code that's been minified for production. At body sizes, the tracking relaxes but the geometric precision persists. Geist Mono completes the system as the monospace companion for code, terminal output, and technical labels. Both fonts enable OpenType \`"liga"\` (ligatures) globally, adding a layer of typographic sophistication that rewards close reading.
9
+
10
+ What distinguishes Vercel from other monochrome design systems is its shadow-as-border philosophy. Instead of traditional CSS borders, Vercel uses \`box-shadow: 0px 0px 0px 1px rgba(0,0,0,0.08)\` \u2014 a zero-offset, zero-blur, 1px-spread shadow that creates a border-like line without the box model implications. This technique allows borders to exist in the shadow layer, enabling smoother transitions, rounded corners without clipping, and a subtler visual weight than traditional borders. The entire depth system is built on layered, multi-value shadow stacks where each layer serves a specific purpose: one for the border, one for soft elevation, one for ambient depth.
11
+
12
+ **Key Characteristics:**
13
+ - Geist Sans with extreme negative letter-spacing (-2.4px to -2.88px at display) \u2014 text as compressed infrastructure
14
+ - Geist Mono for code and technical labels with OpenType \`"liga"\` globally
15
+ - Shadow-as-border technique: \`box-shadow 0px 0px 0px 1px\` replaces traditional borders throughout
16
+ - Multi-layer shadow stacks for nuanced depth (border + elevation + ambient in single declarations)
17
+ - Near-pure white canvas with \`#171717\` text \u2014 not quite black, creating micro-contrast softness
18
+ - Workflow-specific accent colors: Ship Red (\`#ff5b4f\`), Preview Pink (\`#de1d8d\`), Develop Blue (\`#0a72ef\`)
19
+ - Focus ring system using \`hsla(212, 100%, 48%, 1)\` \u2014 a saturated blue for accessibility
20
+ - Pill badges (9999px) with tinted backgrounds for status indicators
21
+
22
+ ## 2. Color Palette & Roles
23
+
24
+ ### Primary
25
+ - **Vercel Black** (\`#171717\`): Primary text, headings, dark surface backgrounds. Not pure black \u2014 the slight warmth prevents harshness.
26
+ - **Pure White** (\`#ffffff\`): Page background, card surfaces, button text on dark.
27
+ - **True Black** (\`#000000\`): Secondary use, \`--geist-console-text-color-default\`, used in specific console/code contexts.
28
+
29
+ ### Workflow Accent Colors
30
+ - **Ship Red** (\`#ff5b4f\`): \`--ship-text\`, the "ship to production" workflow step \u2014 warm, urgent coral-red.
31
+ - **Preview Pink** (\`#de1d8d\`): \`--preview-text\`, the preview deployment workflow \u2014 vivid magenta-pink.
32
+ - **Develop Blue** (\`#0a72ef\`): \`--develop-text\`, the development workflow \u2014 bright, focused blue.
33
+
34
+ ### Console / Code Colors
35
+ - **Console Blue** (\`#0070f3\`): \`--geist-console-text-color-blue\`, syntax highlighting blue.
36
+ - **Console Purple** (\`#7928ca\`): \`--geist-console-text-color-purple\`, syntax highlighting purple.
37
+ - **Console Pink** (\`#eb367f\`): \`--geist-console-text-color-pink\`, syntax highlighting pink.
38
+
39
+ ### Interactive
40
+ - **Link Blue** (\`#0072f5\`): Primary link color with underline decoration.
41
+ - **Focus Blue** (\`hsla(212, 100%, 48%, 1)\`): \`--ds-focus-color\`, focus ring on interactive elements.
42
+ - **Ring Blue** (\`rgba(147, 197, 253, 0.5)\`): \`--tw-ring-color\`, Tailwind ring utility.
43
+
44
+ ### Neutral Scale
45
+ - **Gray 900** (\`#171717\`): Primary text, headings, nav text.
46
+ - **Gray 600** (\`#4d4d4d\`): Secondary text, description copy.
47
+ - **Gray 500** (\`#666666\`): Tertiary text, muted links.
48
+ - **Gray 400** (\`#808080\`): Placeholder text, disabled states.
49
+ - **Gray 100** (\`#ebebeb\`): Borders, card outlines, dividers.
50
+ - **Gray 50** (\`#fafafa\`): Subtle surface tint, inner shadow highlight.
51
+
52
+ ### Surface & Overlay
53
+ - **Overlay Backdrop** (\`hsla(0, 0%, 98%, 1)\`): \`--ds-overlay-backdrop-color\`, modal/dialog backdrop.
54
+ - **Selection Text** (\`hsla(0, 0%, 95%, 1)\`): \`--geist-selection-text-color\`, text selection highlight.
55
+ - **Badge Blue Bg** (\`#ebf5ff\`): Pill badge background, tinted blue surface.
56
+ - **Badge Blue Text** (\`#0068d6\`): Pill badge text, darker blue for readability.
57
+
58
+ ### Shadows & Depth
59
+ - **Border Shadow** (\`rgba(0, 0, 0, 0.08) 0px 0px 0px 1px\`): The signature \u2014 replaces traditional borders.
60
+ - **Subtle Elevation** (\`rgba(0, 0, 0, 0.04) 0px 2px 2px\`): Minimal lift for cards.
61
+ - **Card Stack** (\`rgba(0,0,0,0.08) 0px 0px 0px 1px, rgba(0,0,0,0.04) 0px 2px 2px, rgba(0,0,0,0.04) 0px 8px 8px -8px, #fafafa 0px 0px 0px 1px\`): Full multi-layer card shadow.
62
+ - **Ring Border** (\`rgb(235, 235, 235) 0px 0px 0px 1px\`): Light gray ring-border for tabs and images.
63
+
64
+ ## 3. Typography Rules
65
+
66
+ ### Font Family
67
+ - **Primary**: \`Geist\`, with fallbacks: \`Arial, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol\`
68
+ - **Monospace**: \`Geist Mono\`, with fallbacks: \`ui-monospace, SFMono-Regular, Roboto Mono, Menlo, Monaco, Liberation Mono, DejaVu Sans Mono, Courier New\`
69
+ - **OpenType Features**: \`"liga"\` enabled globally on all Geist text; \`"tnum"\` for tabular numbers on specific captions.
70
+
71
+ ### Hierarchy
72
+
73
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
74
+ |------|------|------|--------|-------------|----------------|-------|
75
+ | Display Hero | Geist | 48px (3.00rem) | 600 | 1.00\u20131.17 (tight) | -2.4px to -2.88px | Maximum compression, billboard impact |
76
+ | Section Heading | Geist | 40px (2.50rem) | 600 | 1.20 (tight) | -2.4px | Feature section titles |
77
+ | Sub-heading Large | Geist | 32px (2.00rem) | 600 | 1.25 (tight) | -1.28px | Card headings, sub-sections |
78
+ | Sub-heading | Geist | 32px (2.00rem) | 400 | 1.50 | -1.28px | Lighter sub-headings |
79
+ | Card Title | Geist | 24px (1.50rem) | 600 | 1.33 | -0.96px | Feature cards |
80
+ | Card Title Light | Geist | 24px (1.50rem) | 500 | 1.33 | -0.96px | Secondary card headings |
81
+ | Body Large | Geist | 20px (1.25rem) | 400 | 1.80 (relaxed) | normal | Introductions, feature descriptions |
82
+ | Body | Geist | 18px (1.13rem) | 400 | 1.56 | normal | Standard reading text |
83
+ | Body Small | Geist | 16px (1.00rem) | 400 | 1.50 | normal | Standard UI text |
84
+ | Body Medium | Geist | 16px (1.00rem) | 500 | 1.50 | normal | Navigation, emphasized text |
85
+ | Body Semibold | Geist | 16px (1.00rem) | 600 | 1.50 | -0.32px | Strong labels, active states |
86
+ | Button / Link | Geist | 14px (0.88rem) | 500 | 1.43 | normal | Buttons, links, captions |
87
+ | Button Small | Geist | 14px (0.88rem) | 400 | 1.00 (tight) | normal | Compact buttons |
88
+ | Caption | Geist | 12px (0.75rem) | 400\u2013500 | 1.33 | normal | Metadata, tags |
89
+ | Mono Body | Geist Mono | 16px (1.00rem) | 400 | 1.50 | normal | Code blocks |
90
+ | Mono Caption | Geist Mono | 13px (0.81rem) | 500 | 1.54 | normal | Code labels |
91
+ | Mono Small | Geist Mono | 12px (0.75rem) | 500 | 1.00 (tight) | normal | \`text-transform: uppercase\`, technical labels |
92
+ | Micro Badge | Geist | 7px (0.44rem) | 700 | 1.00 (tight) | normal | \`text-transform: uppercase\`, tiny badges |
93
+
94
+ ### Principles
95
+ - **Compression as identity**: Geist Sans at display sizes uses -2.4px to -2.88px letter-spacing \u2014 the most aggressive negative tracking of any major design system. This creates text that feels _minified_, like code optimized for production. The tracking progressively relaxes as size decreases: -1.28px at 32px, -0.96px at 24px, -0.32px at 16px, and normal at 14px.
96
+ - **Ligatures everywhere**: Every Geist text element enables OpenType \`"liga"\`. Ligatures aren't decorative \u2014 they're structural, creating tighter, more efficient glyph combinations.
97
+ - **Three weights, strict roles**: 400 (body/reading), 500 (UI/interactive), 600 (headings/emphasis). No bold (700) except for tiny micro-badges. This narrow weight range creates hierarchy through size and tracking, not weight.
98
+ - **Mono for identity**: Geist Mono in uppercase with \`"tnum"\` or \`"liga"\` serves as the "developer console" voice \u2014 compact technical labels that connect the marketing site to the product.
99
+
100
+ ## 4. Component Stylings
101
+
102
+ ### Buttons
103
+
104
+ **Primary White (Shadow-bordered)**
105
+ - Background: \`#ffffff\`
106
+ - Text: \`#171717\`
107
+ - Padding: 0px 6px (minimal \u2014 content-driven width)
108
+ - Radius: 6px (subtly rounded)
109
+ - Shadow: \`rgb(235, 235, 235) 0px 0px 0px 1px\` (ring-border)
110
+ - Hover: background shifts to \`var(--ds-gray-1000)\` (dark)
111
+ - Focus: \`2px solid var(--ds-focus-color)\` outline + \`var(--ds-focus-ring)\` shadow
112
+ - Use: Standard secondary button
113
+
114
+ **Primary Dark (Inferred from Geist system)**
115
+ - Background: \`#171717\`
116
+ - Text: \`#ffffff\`
117
+ - Padding: 8px 16px
118
+ - Radius: 6px
119
+ - Use: Primary CTA ("Start Deploying", "Get Started")
120
+
121
+ **Pill Button / Badge**
122
+ - Background: \`#ebf5ff\` (tinted blue)
123
+ - Text: \`#0068d6\`
124
+ - Padding: 0px 10px
125
+ - Radius: 9999px (full pill)
126
+ - Font: 12px weight 500
127
+ - Use: Status badges, tags, feature labels
128
+
129
+ **Large Pill (Navigation)**
130
+ - Background: transparent or \`#171717\`
131
+ - Radius: 64px\u2013100px
132
+ - Use: Tab navigation, section selectors
133
+
134
+ ### Cards & Containers
135
+ - Background: \`#ffffff\`
136
+ - Border: via shadow \u2014 \`rgba(0, 0, 0, 0.08) 0px 0px 0px 1px\`
137
+ - Radius: 8px (standard), 12px (featured/image cards)
138
+ - Shadow stack: \`rgba(0,0,0,0.08) 0px 0px 0px 1px, rgba(0,0,0,0.04) 0px 2px 2px, #fafafa 0px 0px 0px 1px\`
139
+ - Image cards: \`1px solid #ebebeb\` with 12px top radius
140
+ - Hover: subtle shadow intensification
141
+
142
+ ### Inputs & Forms
143
+ - Radio: standard styling with focus \`var(--ds-gray-200)\` background
144
+ - Focus shadow: \`1px 0 0 0 var(--ds-gray-alpha-600)\`
145
+ - Focus outline: \`2px solid var(--ds-focus-color)\` \u2014 consistent blue focus ring
146
+ - Border: via shadow technique, not traditional border
147
+
148
+ ### Navigation
149
+ - Clean horizontal nav on white, sticky
150
+ - Vercel logotype left-aligned, 262x52px
151
+ - Links: Geist 14px weight 500, \`#171717\` text
152
+ - Active: weight 600 or underline
153
+ - CTA: dark pill buttons ("Start Deploying", "Contact Sales")
154
+ - Mobile: hamburger menu collapse
155
+ - Product dropdowns with multi-level menus
156
+
157
+ ### Image Treatment
158
+ - Product screenshots with \`1px solid #ebebeb\` border
159
+ - Top-rounded images: \`12px 12px 0px 0px\` radius
160
+ - Dashboard/code preview screenshots dominate feature sections
161
+ - Soft gradient backgrounds behind hero images (pastel multi-color)
162
+
163
+ ### Distinctive Components
164
+
165
+ **Workflow Pipeline**
166
+ - Three-step horizontal pipeline: Develop \u2192 Preview \u2192 Ship
167
+ - Each step has its own accent color: Blue \u2192 Pink \u2192 Red
168
+ - Connected with lines/arrows
169
+ - The visual metaphor for Vercel's core value proposition
170
+
171
+ **Trust Bar / Logo Grid**
172
+ - Company logos (Perplexity, ChatGPT, Cursor, etc.) in grayscale
173
+ - Horizontal scroll or grid layout
174
+ - Subtle \`#ebebeb\` border separation
175
+
176
+ **Metric Cards**
177
+ - Large number display (e.g., "10x faster")
178
+ - Geist 48px weight 600 for the metric
179
+ - Description below in gray body text
180
+ - Shadow-bordered card container
181
+
182
+ ## 5. Layout Principles
183
+
184
+ ### Spacing System
185
+ - Base unit: 8px
186
+ - Scale: 1px, 2px, 3px, 4px, 5px, 6px, 8px, 10px, 12px, 14px, 16px, 32px, 36px, 40px
187
+ - Notable gap: jumps from 16px to 32px \u2014 no 20px or 24px in primary scale
188
+
189
+ ### Grid & Container
190
+ - Max content width: approximately 1200px
191
+ - Hero: centered single-column with generous top padding
192
+ - Feature sections: 2\u20133 column grids for cards
193
+ - Full-width dividers using \`border-bottom: 1px solid #171717\`
194
+ - Code/dashboard screenshots as full-width or contained with border
195
+
196
+ ### Whitespace Philosophy
197
+ - **Gallery emptiness**: Massive vertical padding between sections (80px\u2013120px+). The white space IS the design \u2014 it communicates that Vercel has nothing to prove and nothing to hide.
198
+ - **Compressed text, expanded space**: The aggressive negative letter-spacing on headlines is counterbalanced by generous surrounding whitespace. The text is dense; the space around it is vast.
199
+ - **Section rhythm**: White sections alternate with white sections \u2014 there's no color variation between sections. Separation comes from borders (shadow-borders) and spacing alone.
200
+
201
+ ### Border Radius Scale
202
+ - Micro (2px): Inline code snippets, small spans
203
+ - Subtle (4px): Small containers
204
+ - Standard (6px): Buttons, links, functional elements
205
+ - Comfortable (8px): Cards, list items
206
+ - Image (12px): Featured cards, image containers (top-rounded)
207
+ - Large (64px): Tab navigation pills
208
+ - XL (100px): Large navigation links
209
+ - Full Pill (9999px): Badges, status pills, tags
210
+ - Circle (50%): Menu toggle, avatar containers
211
+
212
+ ## 6. Depth & Elevation
213
+
214
+ | Level | Treatment | Use |
215
+ |-------|-----------|-----|
216
+ | Flat (Level 0) | No shadow | Page background, text blocks |
217
+ | Ring (Level 1) | \`rgba(0,0,0,0.08) 0px 0px 0px 1px\` | Shadow-as-border for most elements |
218
+ | Light Ring (Level 1b) | \`rgb(235,235,235) 0px 0px 0px 1px\` | Lighter ring for tabs, images |
219
+ | Subtle Card (Level 2) | Ring + \`rgba(0,0,0,0.04) 0px 2px 2px\` | Standard cards with minimal lift |
220
+ | Full Card (Level 3) | Ring + Subtle + \`rgba(0,0,0,0.04) 0px 8px 8px -8px\` + inner \`#fafafa\` ring | Featured cards, highlighted panels |
221
+ | Focus (Accessibility) | \`2px solid hsla(212, 100%, 48%, 1)\` outline | Keyboard focus on all interactive elements |
222
+
223
+ **Shadow Philosophy**: Vercel has arguably the most sophisticated shadow system in modern web design. Rather than using shadows for elevation in the traditional Material Design sense, Vercel uses multi-value shadow stacks where each layer has a distinct architectural purpose: one creates the "border" (0px spread, 1px), another adds ambient softness (2px blur), another handles depth at distance (8px blur with negative spread), and an inner ring (\`#fafafa\`) creates the subtle highlight that makes the card "glow" from within. This layered approach means cards feel built, not floating.
224
+
225
+ ### Decorative Depth
226
+ - Hero gradient: soft, pastel multi-color gradient wash behind hero content (barely visible, atmospheric)
227
+ - Section borders: \`1px solid #171717\` (full dark line) between major sections
228
+ - No background color variation \u2014 depth comes entirely from shadow layering and border contrast
229
+
230
+ ## 7. Do's and Don'ts
231
+
232
+ ### Do
233
+ - Use Geist Sans with aggressive negative letter-spacing at display sizes (-2.4px to -2.88px at 48px)
234
+ - Use shadow-as-border (\`0px 0px 0px 1px rgba(0,0,0,0.08)\`) instead of traditional CSS borders
235
+ - Enable \`"liga"\` on all Geist text \u2014 ligatures are structural, not optional
236
+ - Use the three-weight system: 400 (body), 500 (UI), 600 (headings)
237
+ - Apply workflow accent colors (Red/Pink/Blue) only in their workflow context
238
+ - Use multi-layer shadow stacks for cards (border + elevation + ambient + inner highlight)
239
+ - Keep the color palette achromatic \u2014 grays from \`#171717\` to \`#ffffff\` are the system
240
+ - Use \`#171717\` instead of \`#000000\` for primary text \u2014 the micro-warmth matters
241
+
242
+ ### Don't
243
+ - Don't use positive letter-spacing on Geist Sans \u2014 it's always negative or zero
244
+ - Don't use weight 700 (bold) on body text \u2014 600 is the maximum, used only for headings
245
+ - Don't use traditional CSS \`border\` on cards \u2014 use the shadow-border technique
246
+ - Don't introduce warm colors (oranges, yellows, greens) into the UI chrome
247
+ - Don't apply the workflow accent colors (Ship Red, Preview Pink, Develop Blue) decoratively
248
+ - Don't use heavy shadows (> 0.1 opacity) \u2014 the shadow system is whisper-level
249
+ - Don't increase body text letter-spacing \u2014 Geist is designed to run tight
250
+ - Don't use pill radius (9999px) on primary action buttons \u2014 pills are for badges/tags only
251
+ - Don't skip the inner \`#fafafa\` ring in card shadows \u2014 it's the glow that makes the system work
252
+
253
+ ## 8. Responsive Behavior
254
+
255
+ ### Breakpoints
256
+ | Name | Width | Key Changes |
257
+ |------|-------|-------------|
258
+ | Mobile Small | <400px | Tight single column, minimal padding |
259
+ | Mobile | 400\u2013600px | Standard mobile, stacked layout |
260
+ | Tablet Small | 600\u2013768px | 2-column grids begin |
261
+ | Tablet | 768\u20131024px | Full card grids, expanded padding |
262
+ | Desktop Small | 1024\u20131200px | Standard desktop layout |
263
+ | Desktop | 1200\u20131400px | Full layout, maximum content width |
264
+ | Large Desktop | >1400px | Centered, generous margins |
265
+
266
+ ### Touch Targets
267
+ - Buttons use comfortable padding (8px\u201316px vertical)
268
+ - Navigation links at 14px with adequate spacing
269
+ - Pill badges have 10px horizontal padding for tap targets
270
+ - Mobile menu toggle uses 50% radius circular button
271
+
272
+ ### Collapsing Strategy
273
+ - Hero: display 48px \u2192 scales down, maintains negative tracking proportionally
274
+ - Navigation: horizontal links + CTAs \u2192 hamburger menu
275
+ - Feature cards: 3-column \u2192 2-column \u2192 single column stacked
276
+ - Code screenshots: maintain aspect ratio, may horizontally scroll
277
+ - Trust bar logos: grid \u2192 horizontal scroll
278
+ - Footer: multi-column \u2192 stacked single column
279
+ - Section spacing: 80px+ \u2192 48px on mobile
280
+
281
+ ### Image Behavior
282
+ - Dashboard screenshots maintain border treatment at all sizes
283
+ - Hero gradient softens/simplifies on mobile
284
+ - Product screenshots use responsive images with consistent border radius
285
+ - Full-width sections maintain edge-to-edge treatment
286
+
287
+ ## 9. Agent Prompt Guide
288
+
289
+ ### Quick Color Reference
290
+ - Primary CTA: Vercel Black (\`#171717\`)
291
+ - Background: Pure White (\`#ffffff\`)
292
+ - Heading text: Vercel Black (\`#171717\`)
293
+ - Body text: Gray 600 (\`#4d4d4d\`)
294
+ - Border (shadow): \`rgba(0, 0, 0, 0.08) 0px 0px 0px 1px\`
295
+ - Link: Link Blue (\`#0072f5\`)
296
+ - Focus ring: Focus Blue (\`hsla(212, 100%, 48%, 1)\`)
297
+
298
+ ### Example Component Prompts
299
+ - "Create a hero section on white background. Headline at 48px Geist weight 600, line-height 1.00, letter-spacing -2.4px, color #171717. Subtitle at 20px Geist weight 400, line-height 1.80, color #4d4d4d. Dark CTA button (#171717, 6px radius, 8px 16px padding) and ghost button (white, shadow-border rgba(0,0,0,0.08) 0px 0px 0px 1px, 6px radius)."
300
+ - "Design a card: white background, no CSS border. Use shadow stack: rgba(0,0,0,0.08) 0px 0px 0px 1px, rgba(0,0,0,0.04) 0px 2px 2px, #fafafa 0px 0px 0px 1px. Radius 8px. Title at 24px Geist weight 600, letter-spacing -0.96px. Body at 16px weight 400, #4d4d4d."
301
+ - "Build a pill badge: #ebf5ff background, #0068d6 text, 9999px radius, 0px 10px padding, 12px Geist weight 500."
302
+ - "Create navigation: white sticky header. Geist 14px weight 500 for links, #171717 text. Dark pill CTA 'Start Deploying' right-aligned. Shadow-border on bottom: rgba(0,0,0,0.08) 0px 0px 0px 1px."
303
+ - "Design a workflow section showing three steps: Develop (text color #0a72ef), Preview (#de1d8d), Ship (#ff5b4f). Each step: 14px Geist Mono uppercase label + 24px Geist weight 600 title + 16px weight 400 description in #4d4d4d."
304
+
305
+ ### Iteration Guide
306
+ 1. Always use shadow-as-border instead of CSS border \u2014 \`0px 0px 0px 1px rgba(0,0,0,0.08)\` is the foundation
307
+ 2. Letter-spacing scales with font size: -2.4px at 48px, -1.28px at 32px, -0.96px at 24px, normal at 14px
308
+ 3. Three weights only: 400 (read), 500 (interact), 600 (announce)
309
+ 4. Color is functional, never decorative \u2014 workflow colors (Red/Pink/Blue) mark pipeline stages only
310
+ 5. The inner \`#fafafa\` ring in card shadows is what gives Vercel cards their subtle inner glow
311
+ 6. Geist Mono uppercase for technical labels, Geist Sans for everything else
312
+ `;
313
+ export {
314
+ vercelBrief
315
+ };
316
+ //# sourceMappingURL=vercel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/presets/_briefs/vercel.ts"],"sourcesContent":["// AUTO-GENERATED — do not hand-edit. Source: https://github.com/voltagent/awesome-design-md\nexport const vercelBrief = `# Design System Inspired by Vercel\n\n## 1. Visual Theme & Atmosphere\n\nVercel's website is the visual thesis of developer infrastructure made invisible — a design system so restrained it borders on philosophical. The page is overwhelmingly white (\\`#ffffff\\`) with near-black (\\`#171717\\`) text, creating a gallery-like emptiness where every element earns its pixel. This isn't minimalism as decoration; it's minimalism as engineering principle. The Geist design system treats the interface like a compiler treats code — every unnecessary token is stripped away until only structure remains.\n\nThe custom Geist font family is the crown jewel. Geist Sans uses aggressive negative letter-spacing (-2.4px to -2.88px at display sizes), creating headlines that feel compressed, urgent, and engineered — like code that's been minified for production. At body sizes, the tracking relaxes but the geometric precision persists. Geist Mono completes the system as the monospace companion for code, terminal output, and technical labels. Both fonts enable OpenType \\`\"liga\"\\` (ligatures) globally, adding a layer of typographic sophistication that rewards close reading.\n\nWhat distinguishes Vercel from other monochrome design systems is its shadow-as-border philosophy. Instead of traditional CSS borders, Vercel uses \\`box-shadow: 0px 0px 0px 1px rgba(0,0,0,0.08)\\` — a zero-offset, zero-blur, 1px-spread shadow that creates a border-like line without the box model implications. This technique allows borders to exist in the shadow layer, enabling smoother transitions, rounded corners without clipping, and a subtler visual weight than traditional borders. The entire depth system is built on layered, multi-value shadow stacks where each layer serves a specific purpose: one for the border, one for soft elevation, one for ambient depth.\n\n**Key Characteristics:**\n- Geist Sans with extreme negative letter-spacing (-2.4px to -2.88px at display) — text as compressed infrastructure\n- Geist Mono for code and technical labels with OpenType \\`\"liga\"\\` globally\n- Shadow-as-border technique: \\`box-shadow 0px 0px 0px 1px\\` replaces traditional borders throughout\n- Multi-layer shadow stacks for nuanced depth (border + elevation + ambient in single declarations)\n- Near-pure white canvas with \\`#171717\\` text — not quite black, creating micro-contrast softness\n- Workflow-specific accent colors: Ship Red (\\`#ff5b4f\\`), Preview Pink (\\`#de1d8d\\`), Develop Blue (\\`#0a72ef\\`)\n- Focus ring system using \\`hsla(212, 100%, 48%, 1)\\` — a saturated blue for accessibility\n- Pill badges (9999px) with tinted backgrounds for status indicators\n\n## 2. Color Palette & Roles\n\n### Primary\n- **Vercel Black** (\\`#171717\\`): Primary text, headings, dark surface backgrounds. Not pure black — the slight warmth prevents harshness.\n- **Pure White** (\\`#ffffff\\`): Page background, card surfaces, button text on dark.\n- **True Black** (\\`#000000\\`): Secondary use, \\`--geist-console-text-color-default\\`, used in specific console/code contexts.\n\n### Workflow Accent Colors\n- **Ship Red** (\\`#ff5b4f\\`): \\`--ship-text\\`, the \"ship to production\" workflow step — warm, urgent coral-red.\n- **Preview Pink** (\\`#de1d8d\\`): \\`--preview-text\\`, the preview deployment workflow — vivid magenta-pink.\n- **Develop Blue** (\\`#0a72ef\\`): \\`--develop-text\\`, the development workflow — bright, focused blue.\n\n### Console / Code Colors\n- **Console Blue** (\\`#0070f3\\`): \\`--geist-console-text-color-blue\\`, syntax highlighting blue.\n- **Console Purple** (\\`#7928ca\\`): \\`--geist-console-text-color-purple\\`, syntax highlighting purple.\n- **Console Pink** (\\`#eb367f\\`): \\`--geist-console-text-color-pink\\`, syntax highlighting pink.\n\n### Interactive\n- **Link Blue** (\\`#0072f5\\`): Primary link color with underline decoration.\n- **Focus Blue** (\\`hsla(212, 100%, 48%, 1)\\`): \\`--ds-focus-color\\`, focus ring on interactive elements.\n- **Ring Blue** (\\`rgba(147, 197, 253, 0.5)\\`): \\`--tw-ring-color\\`, Tailwind ring utility.\n\n### Neutral Scale\n- **Gray 900** (\\`#171717\\`): Primary text, headings, nav text.\n- **Gray 600** (\\`#4d4d4d\\`): Secondary text, description copy.\n- **Gray 500** (\\`#666666\\`): Tertiary text, muted links.\n- **Gray 400** (\\`#808080\\`): Placeholder text, disabled states.\n- **Gray 100** (\\`#ebebeb\\`): Borders, card outlines, dividers.\n- **Gray 50** (\\`#fafafa\\`): Subtle surface tint, inner shadow highlight.\n\n### Surface & Overlay\n- **Overlay Backdrop** (\\`hsla(0, 0%, 98%, 1)\\`): \\`--ds-overlay-backdrop-color\\`, modal/dialog backdrop.\n- **Selection Text** (\\`hsla(0, 0%, 95%, 1)\\`): \\`--geist-selection-text-color\\`, text selection highlight.\n- **Badge Blue Bg** (\\`#ebf5ff\\`): Pill badge background, tinted blue surface.\n- **Badge Blue Text** (\\`#0068d6\\`): Pill badge text, darker blue for readability.\n\n### Shadows & Depth\n- **Border Shadow** (\\`rgba(0, 0, 0, 0.08) 0px 0px 0px 1px\\`): The signature — replaces traditional borders.\n- **Subtle Elevation** (\\`rgba(0, 0, 0, 0.04) 0px 2px 2px\\`): Minimal lift for cards.\n- **Card Stack** (\\`rgba(0,0,0,0.08) 0px 0px 0px 1px, rgba(0,0,0,0.04) 0px 2px 2px, rgba(0,0,0,0.04) 0px 8px 8px -8px, #fafafa 0px 0px 0px 1px\\`): Full multi-layer card shadow.\n- **Ring Border** (\\`rgb(235, 235, 235) 0px 0px 0px 1px\\`): Light gray ring-border for tabs and images.\n\n## 3. Typography Rules\n\n### Font Family\n- **Primary**: \\`Geist\\`, with fallbacks: \\`Arial, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol\\`\n- **Monospace**: \\`Geist Mono\\`, with fallbacks: \\`ui-monospace, SFMono-Regular, Roboto Mono, Menlo, Monaco, Liberation Mono, DejaVu Sans Mono, Courier New\\`\n- **OpenType Features**: \\`\"liga\"\\` enabled globally on all Geist text; \\`\"tnum\"\\` for tabular numbers on specific captions.\n\n### Hierarchy\n\n| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |\n|------|------|------|--------|-------------|----------------|-------|\n| Display Hero | Geist | 48px (3.00rem) | 600 | 1.00–1.17 (tight) | -2.4px to -2.88px | Maximum compression, billboard impact |\n| Section Heading | Geist | 40px (2.50rem) | 600 | 1.20 (tight) | -2.4px | Feature section titles |\n| Sub-heading Large | Geist | 32px (2.00rem) | 600 | 1.25 (tight) | -1.28px | Card headings, sub-sections |\n| Sub-heading | Geist | 32px (2.00rem) | 400 | 1.50 | -1.28px | Lighter sub-headings |\n| Card Title | Geist | 24px (1.50rem) | 600 | 1.33 | -0.96px | Feature cards |\n| Card Title Light | Geist | 24px (1.50rem) | 500 | 1.33 | -0.96px | Secondary card headings |\n| Body Large | Geist | 20px (1.25rem) | 400 | 1.80 (relaxed) | normal | Introductions, feature descriptions |\n| Body | Geist | 18px (1.13rem) | 400 | 1.56 | normal | Standard reading text |\n| Body Small | Geist | 16px (1.00rem) | 400 | 1.50 | normal | Standard UI text |\n| Body Medium | Geist | 16px (1.00rem) | 500 | 1.50 | normal | Navigation, emphasized text |\n| Body Semibold | Geist | 16px (1.00rem) | 600 | 1.50 | -0.32px | Strong labels, active states |\n| Button / Link | Geist | 14px (0.88rem) | 500 | 1.43 | normal | Buttons, links, captions |\n| Button Small | Geist | 14px (0.88rem) | 400 | 1.00 (tight) | normal | Compact buttons |\n| Caption | Geist | 12px (0.75rem) | 400–500 | 1.33 | normal | Metadata, tags |\n| Mono Body | Geist Mono | 16px (1.00rem) | 400 | 1.50 | normal | Code blocks |\n| Mono Caption | Geist Mono | 13px (0.81rem) | 500 | 1.54 | normal | Code labels |\n| Mono Small | Geist Mono | 12px (0.75rem) | 500 | 1.00 (tight) | normal | \\`text-transform: uppercase\\`, technical labels |\n| Micro Badge | Geist | 7px (0.44rem) | 700 | 1.00 (tight) | normal | \\`text-transform: uppercase\\`, tiny badges |\n\n### Principles\n- **Compression as identity**: Geist Sans at display sizes uses -2.4px to -2.88px letter-spacing — the most aggressive negative tracking of any major design system. This creates text that feels _minified_, like code optimized for production. The tracking progressively relaxes as size decreases: -1.28px at 32px, -0.96px at 24px, -0.32px at 16px, and normal at 14px.\n- **Ligatures everywhere**: Every Geist text element enables OpenType \\`\"liga\"\\`. Ligatures aren't decorative — they're structural, creating tighter, more efficient glyph combinations.\n- **Three weights, strict roles**: 400 (body/reading), 500 (UI/interactive), 600 (headings/emphasis). No bold (700) except for tiny micro-badges. This narrow weight range creates hierarchy through size and tracking, not weight.\n- **Mono for identity**: Geist Mono in uppercase with \\`\"tnum\"\\` or \\`\"liga\"\\` serves as the \"developer console\" voice — compact technical labels that connect the marketing site to the product.\n\n## 4. Component Stylings\n\n### Buttons\n\n**Primary White (Shadow-bordered)**\n- Background: \\`#ffffff\\`\n- Text: \\`#171717\\`\n- Padding: 0px 6px (minimal — content-driven width)\n- Radius: 6px (subtly rounded)\n- Shadow: \\`rgb(235, 235, 235) 0px 0px 0px 1px\\` (ring-border)\n- Hover: background shifts to \\`var(--ds-gray-1000)\\` (dark)\n- Focus: \\`2px solid var(--ds-focus-color)\\` outline + \\`var(--ds-focus-ring)\\` shadow\n- Use: Standard secondary button\n\n**Primary Dark (Inferred from Geist system)**\n- Background: \\`#171717\\`\n- Text: \\`#ffffff\\`\n- Padding: 8px 16px\n- Radius: 6px\n- Use: Primary CTA (\"Start Deploying\", \"Get Started\")\n\n**Pill Button / Badge**\n- Background: \\`#ebf5ff\\` (tinted blue)\n- Text: \\`#0068d6\\`\n- Padding: 0px 10px\n- Radius: 9999px (full pill)\n- Font: 12px weight 500\n- Use: Status badges, tags, feature labels\n\n**Large Pill (Navigation)**\n- Background: transparent or \\`#171717\\`\n- Radius: 64px–100px\n- Use: Tab navigation, section selectors\n\n### Cards & Containers\n- Background: \\`#ffffff\\`\n- Border: via shadow — \\`rgba(0, 0, 0, 0.08) 0px 0px 0px 1px\\`\n- Radius: 8px (standard), 12px (featured/image cards)\n- Shadow stack: \\`rgba(0,0,0,0.08) 0px 0px 0px 1px, rgba(0,0,0,0.04) 0px 2px 2px, #fafafa 0px 0px 0px 1px\\`\n- Image cards: \\`1px solid #ebebeb\\` with 12px top radius\n- Hover: subtle shadow intensification\n\n### Inputs & Forms\n- Radio: standard styling with focus \\`var(--ds-gray-200)\\` background\n- Focus shadow: \\`1px 0 0 0 var(--ds-gray-alpha-600)\\`\n- Focus outline: \\`2px solid var(--ds-focus-color)\\` — consistent blue focus ring\n- Border: via shadow technique, not traditional border\n\n### Navigation\n- Clean horizontal nav on white, sticky\n- Vercel logotype left-aligned, 262x52px\n- Links: Geist 14px weight 500, \\`#171717\\` text\n- Active: weight 600 or underline\n- CTA: dark pill buttons (\"Start Deploying\", \"Contact Sales\")\n- Mobile: hamburger menu collapse\n- Product dropdowns with multi-level menus\n\n### Image Treatment\n- Product screenshots with \\`1px solid #ebebeb\\` border\n- Top-rounded images: \\`12px 12px 0px 0px\\` radius\n- Dashboard/code preview screenshots dominate feature sections\n- Soft gradient backgrounds behind hero images (pastel multi-color)\n\n### Distinctive Components\n\n**Workflow Pipeline**\n- Three-step horizontal pipeline: Develop → Preview → Ship\n- Each step has its own accent color: Blue → Pink → Red\n- Connected with lines/arrows\n- The visual metaphor for Vercel's core value proposition\n\n**Trust Bar / Logo Grid**\n- Company logos (Perplexity, ChatGPT, Cursor, etc.) in grayscale\n- Horizontal scroll or grid layout\n- Subtle \\`#ebebeb\\` border separation\n\n**Metric Cards**\n- Large number display (e.g., \"10x faster\")\n- Geist 48px weight 600 for the metric\n- Description below in gray body text\n- Shadow-bordered card container\n\n## 5. Layout Principles\n\n### Spacing System\n- Base unit: 8px\n- Scale: 1px, 2px, 3px, 4px, 5px, 6px, 8px, 10px, 12px, 14px, 16px, 32px, 36px, 40px\n- Notable gap: jumps from 16px to 32px — no 20px or 24px in primary scale\n\n### Grid & Container\n- Max content width: approximately 1200px\n- Hero: centered single-column with generous top padding\n- Feature sections: 2–3 column grids for cards\n- Full-width dividers using \\`border-bottom: 1px solid #171717\\`\n- Code/dashboard screenshots as full-width or contained with border\n\n### Whitespace Philosophy\n- **Gallery emptiness**: Massive vertical padding between sections (80px–120px+). The white space IS the design — it communicates that Vercel has nothing to prove and nothing to hide.\n- **Compressed text, expanded space**: The aggressive negative letter-spacing on headlines is counterbalanced by generous surrounding whitespace. The text is dense; the space around it is vast.\n- **Section rhythm**: White sections alternate with white sections — there's no color variation between sections. Separation comes from borders (shadow-borders) and spacing alone.\n\n### Border Radius Scale\n- Micro (2px): Inline code snippets, small spans\n- Subtle (4px): Small containers\n- Standard (6px): Buttons, links, functional elements\n- Comfortable (8px): Cards, list items\n- Image (12px): Featured cards, image containers (top-rounded)\n- Large (64px): Tab navigation pills\n- XL (100px): Large navigation links\n- Full Pill (9999px): Badges, status pills, tags\n- Circle (50%): Menu toggle, avatar containers\n\n## 6. Depth & Elevation\n\n| Level | Treatment | Use |\n|-------|-----------|-----|\n| Flat (Level 0) | No shadow | Page background, text blocks |\n| Ring (Level 1) | \\`rgba(0,0,0,0.08) 0px 0px 0px 1px\\` | Shadow-as-border for most elements |\n| Light Ring (Level 1b) | \\`rgb(235,235,235) 0px 0px 0px 1px\\` | Lighter ring for tabs, images |\n| Subtle Card (Level 2) | Ring + \\`rgba(0,0,0,0.04) 0px 2px 2px\\` | Standard cards with minimal lift |\n| Full Card (Level 3) | Ring + Subtle + \\`rgba(0,0,0,0.04) 0px 8px 8px -8px\\` + inner \\`#fafafa\\` ring | Featured cards, highlighted panels |\n| Focus (Accessibility) | \\`2px solid hsla(212, 100%, 48%, 1)\\` outline | Keyboard focus on all interactive elements |\n\n**Shadow Philosophy**: Vercel has arguably the most sophisticated shadow system in modern web design. Rather than using shadows for elevation in the traditional Material Design sense, Vercel uses multi-value shadow stacks where each layer has a distinct architectural purpose: one creates the \"border\" (0px spread, 1px), another adds ambient softness (2px blur), another handles depth at distance (8px blur with negative spread), and an inner ring (\\`#fafafa\\`) creates the subtle highlight that makes the card \"glow\" from within. This layered approach means cards feel built, not floating.\n\n### Decorative Depth\n- Hero gradient: soft, pastel multi-color gradient wash behind hero content (barely visible, atmospheric)\n- Section borders: \\`1px solid #171717\\` (full dark line) between major sections\n- No background color variation — depth comes entirely from shadow layering and border contrast\n\n## 7. Do's and Don'ts\n\n### Do\n- Use Geist Sans with aggressive negative letter-spacing at display sizes (-2.4px to -2.88px at 48px)\n- Use shadow-as-border (\\`0px 0px 0px 1px rgba(0,0,0,0.08)\\`) instead of traditional CSS borders\n- Enable \\`\"liga\"\\` on all Geist text — ligatures are structural, not optional\n- Use the three-weight system: 400 (body), 500 (UI), 600 (headings)\n- Apply workflow accent colors (Red/Pink/Blue) only in their workflow context\n- Use multi-layer shadow stacks for cards (border + elevation + ambient + inner highlight)\n- Keep the color palette achromatic — grays from \\`#171717\\` to \\`#ffffff\\` are the system\n- Use \\`#171717\\` instead of \\`#000000\\` for primary text — the micro-warmth matters\n\n### Don't\n- Don't use positive letter-spacing on Geist Sans — it's always negative or zero\n- Don't use weight 700 (bold) on body text — 600 is the maximum, used only for headings\n- Don't use traditional CSS \\`border\\` on cards — use the shadow-border technique\n- Don't introduce warm colors (oranges, yellows, greens) into the UI chrome\n- Don't apply the workflow accent colors (Ship Red, Preview Pink, Develop Blue) decoratively\n- Don't use heavy shadows (> 0.1 opacity) — the shadow system is whisper-level\n- Don't increase body text letter-spacing — Geist is designed to run tight\n- Don't use pill radius (9999px) on primary action buttons — pills are for badges/tags only\n- Don't skip the inner \\`#fafafa\\` ring in card shadows — it's the glow that makes the system work\n\n## 8. Responsive Behavior\n\n### Breakpoints\n| Name | Width | Key Changes |\n|------|-------|-------------|\n| Mobile Small | <400px | Tight single column, minimal padding |\n| Mobile | 400–600px | Standard mobile, stacked layout |\n| Tablet Small | 600–768px | 2-column grids begin |\n| Tablet | 768–1024px | Full card grids, expanded padding |\n| Desktop Small | 1024–1200px | Standard desktop layout |\n| Desktop | 1200–1400px | Full layout, maximum content width |\n| Large Desktop | >1400px | Centered, generous margins |\n\n### Touch Targets\n- Buttons use comfortable padding (8px–16px vertical)\n- Navigation links at 14px with adequate spacing\n- Pill badges have 10px horizontal padding for tap targets\n- Mobile menu toggle uses 50% radius circular button\n\n### Collapsing Strategy\n- Hero: display 48px → scales down, maintains negative tracking proportionally\n- Navigation: horizontal links + CTAs → hamburger menu\n- Feature cards: 3-column → 2-column → single column stacked\n- Code screenshots: maintain aspect ratio, may horizontally scroll\n- Trust bar logos: grid → horizontal scroll\n- Footer: multi-column → stacked single column\n- Section spacing: 80px+ → 48px on mobile\n\n### Image Behavior\n- Dashboard screenshots maintain border treatment at all sizes\n- Hero gradient softens/simplifies on mobile\n- Product screenshots use responsive images with consistent border radius\n- Full-width sections maintain edge-to-edge treatment\n\n## 9. Agent Prompt Guide\n\n### Quick Color Reference\n- Primary CTA: Vercel Black (\\`#171717\\`)\n- Background: Pure White (\\`#ffffff\\`)\n- Heading text: Vercel Black (\\`#171717\\`)\n- Body text: Gray 600 (\\`#4d4d4d\\`)\n- Border (shadow): \\`rgba(0, 0, 0, 0.08) 0px 0px 0px 1px\\`\n- Link: Link Blue (\\`#0072f5\\`)\n- Focus ring: Focus Blue (\\`hsla(212, 100%, 48%, 1)\\`)\n\n### Example Component Prompts\n- \"Create a hero section on white background. Headline at 48px Geist weight 600, line-height 1.00, letter-spacing -2.4px, color #171717. Subtitle at 20px Geist weight 400, line-height 1.80, color #4d4d4d. Dark CTA button (#171717, 6px radius, 8px 16px padding) and ghost button (white, shadow-border rgba(0,0,0,0.08) 0px 0px 0px 1px, 6px radius).\"\n- \"Design a card: white background, no CSS border. Use shadow stack: rgba(0,0,0,0.08) 0px 0px 0px 1px, rgba(0,0,0,0.04) 0px 2px 2px, #fafafa 0px 0px 0px 1px. Radius 8px. Title at 24px Geist weight 600, letter-spacing -0.96px. Body at 16px weight 400, #4d4d4d.\"\n- \"Build a pill badge: #ebf5ff background, #0068d6 text, 9999px radius, 0px 10px padding, 12px Geist weight 500.\"\n- \"Create navigation: white sticky header. Geist 14px weight 500 for links, #171717 text. Dark pill CTA 'Start Deploying' right-aligned. Shadow-border on bottom: rgba(0,0,0,0.08) 0px 0px 0px 1px.\"\n- \"Design a workflow section showing three steps: Develop (text color #0a72ef), Preview (#de1d8d), Ship (#ff5b4f). Each step: 14px Geist Mono uppercase label + 24px Geist weight 600 title + 16px weight 400 description in #4d4d4d.\"\n\n### Iteration Guide\n1. Always use shadow-as-border instead of CSS border — \\`0px 0px 0px 1px rgba(0,0,0,0.08)\\` is the foundation\n2. Letter-spacing scales with font size: -2.4px at 48px, -1.28px at 32px, -0.96px at 24px, normal at 14px\n3. Three weights only: 400 (read), 500 (interact), 600 (announce)\n4. Color is functional, never decorative — workflow colors (Red/Pink/Blue) mark pipeline stages only\n5. The inner \\`#fafafa\\` ring in card shadows is what gives Vercel cards their subtle inner glow\n6. Geist Mono uppercase for technical labels, Geist Sans for everything else\n`;\n"],"mappings":";AACO,IAAM,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;","names":[]}
@@ -0,0 +1,3 @@
1
+ declare const vodafoneBrief = "# Design System Inspired by Vodafone\n\n## 1. Visual Theme & Atmosphere\n\nVodafone's corporate web system carries the confident, broadcast-scale presence of a global telecom brand \u2014 built around a single, fiercely-owned brand red and a restrained, editorial layout that lets imagery and type carry the emotional weight. Every page opens the same way: a cinematic dark hero image behind a towering, tight-tracked uppercase display headline (\"EVERYONE. CONNECTED.\", \"INVESTORS\", \"OUR BUSINESS\") followed by a deep red full-width band that acts as a chapter break, then a crisp white editorial grid or a near-black section reserved for institutional content (share ticker, global map, ESG data). The voice is institutional but human: warm documentary photography \u2014 cable-laying crews, coral reefs, pine forests, urban twilight \u2014 photographed with color-graded realism and set against clean neutral surfaces that never compete with the content.\n\nThe typography system is the signature. A custom Vodafone display face runs all the way up to 144px in heavy 800-weight uppercase with negative tracking, and it holds that voice consistently across every page template. Body copy sits in a calm 16-18px mid-weight rhythm. This dual scale \u2014 monumental at the top, almost quiet at the bottom \u2014 creates the \"corporate newsroom\" feeling: every page reads like the front of a national paper whose masthead happens to be red.\n\nSurface treatment is disciplined and predictable: a three-surface pass of white (editorial canvas) \u2192 Vodafone red (band dividers, CTA buttons, the famous speech-mark logo) \u2192 near-black charcoal (footer, share-ticker panel, global-impact map). There is almost no decorative shadow, almost no gradient, and almost no rounded-corner softness. Edges are small and clinical (2px and 6px), buttons operate as a two-tier system \u2014 tight 2px rectangles for utility/form actions, and fully-rounded 60px pills for primary content CTAs. This is a design system that trusts the brand color to do the heavy lifting and gets out of its way everywhere else.\n\n**Key Characteristics:**\n- Vodafone Red (`#e60000`) is the single dominant accent \u2014 used for CTAs, dividers, band sections, the speech-mark logo, and the rotated \"IMPACT\" brand-mark type on the sustainability map\n- Monumental uppercase display type (up to 144px, weight 800, negative letter-spacing) paired with calm 16-18px body copy\n- A universal page rhythm: dark atmospheric hero \u2192 monumental uppercase headline \u2192 full-width red band \u2192 white editorial canvas \u2192 dark charcoal institutional panel \u2192 charcoal footer\n- Two-tier button system: tight 2px-radius rectangles for utility actions, fully-pill 60px buttons for primary content CTAs (both equally primary, selected by context)\n- Documentary photography (people, infrastructure, cities, nature) dominates over illustration; no stock-icon noise\n- Near-absence of shadows and gradients \u2014 hierarchy comes from type weight, color blocks, and spacing rather than elevation\n- Deep charcoal surface (`#25282b`) is reused as the footer AND the institutional data panel (share ticker, world map) \u2014 a single material for anything formal and numeric\n\n## 2. Color Palette & Roles\n\n### Primary\n\n- **Vodafone Red** (`#e60000`): The brand's single, non-negotiable signature \u2014 used for primary CTA backgrounds, the speech-mark logo, full-bleed band dividers between editorial sections, tag-pill outlines, and the rotated brand-mark type that labels the global-impact map. This red must never be substituted or tinted; it is the identity.\n\n### Secondary & Accent\n\n- **Pure White** (`#ffffff`): The dominant editorial canvas \u2014 page background, card backgrounds, reversed text on dark or red surfaces, and circular icon-button fills.\n- **Signal Blue** (`#3860be`): Reserved for inline text links in their resting state (underlined), providing a calm accessible blue that reads clearly against both white and dark surfaces.\n- **Deep Brand Red Shade** (`#ac1811`): A darker red appears on quiet label chips (notably on the sustainability page) \u2014 used sparingly for low-prominence tag elements that need red identity without drawing primary attention.\n\n### Surface & Background\n\n- **Canvas White** (`#ffffff`): The primary page and card surface. Every editorial module sits on this canvas.\n- **Light Neutral** (`#f2f2f2`): Used for filled neutral pill-badge backgrounds and quiet UI chrome where full white would disappear against the canvas.\n- **Charcoal Institutional Panel** (`#25282b`): The same color used for text is reused as a full-width dark surface for the footer, the share-ticker panel, and the global-impact map section. It transforms the page into a \"data mode\" environment.\n- **Translucent White Overlay** (`rgba(255,255,255,0.1)`): A soft glass tint used for pill buttons that sit on dark hero imagery \u2014 lets the photo breathe through the button.\n\n### Neutrals & Text\n\n- **Charcoal Headline** (`#25282b`): All heading text on light surfaces and the charcoal surface color itself \u2014 a near-black with a faint cool tint, never pure black.\n- **Secondary Body Grey** (`#7e7e7e`): Body copy, meta text, and secondary labels \u2014 a true mid-grey that reads as unemphatic but still legible.\n- **Form Text Grey** (`#333333`): Borders on input-style ghost buttons and the text color inside them.\n- **Disabled Grey** (`#bebebe`): Inactive chip text on subtle ghost-style controls.\n- **Translucent White Divider** (`rgba(255,255,255,0.25)`): Hairline column dividers on dark institutional panels (footer columns, map legend rows).\n\n### Semantic & Accent\n\n- **Surface Red Band** (`#e60000`): The same brand red deployed as a full-width band between editorial sections \u2014 functions as a chapter divider and a visual amplifier for the brand. Appears on every page template.\n- **Tag Pill Red Border** (`#e60000`): 1px outline on light tag pills, letting the brand color touch small UI without drowning card content.\n\n### Gradient System\n\nVodafone's design is intentionally gradient-free. The only tonal variation is a subtle photographic vignette on hero imagery (dim coral reefs, pine forests, cable-laying crews, urban twilight), where the image itself \u2014 not a CSS gradient \u2014 provides the tonal ramp. No linear gradients are used on buttons, cards, or surfaces.\n\n## 3. Typography Rules\n\n### Font Family\n\n- **Primary**: `Vodafone` (custom corporate sans-serif)\n- **Fallback stack**: `Vodafone, \"Helvetica Neue\", Arial, sans-serif`\n- **Icon font**: `icomoon` \u2014 carries pictograph glyphs at 18px/24px/48px fixed sizes\n- **Rendering**: `font-smoothing: antialiased` across the board; OpenType features are not aggressively used \u2014 the design relies on weight and tracking, not stylistic alternates\n\n### Hierarchy\n\n| Role | Size | Weight | Line Height | Letter Spacing | Notes |\n|------|------|--------|-------------|----------------|-------|\n| Display / Hero XL | 144px | 800 | 0.79 | -1px | Uppercase; the signature \"EVERYONE. CONNECTED.\" treatment |\n| Display / Hero L | 126px | 800 | 0.90 | -1px | Uppercase; used when the hero headline is longer |\n| Display / Hero M | 90px | 800 | 0.93 | \u2014 | Uppercase; secondary hero or full-bleed section heads |\n| Display / Impact | 70px | 800 | 1.17 | -1px | Sustainability section numeric / callout scale |\n| H1 \u2014 Light | 48px | 300 | 1.08 | \u2014 | Section headlines set in light weight for editorial calm |\n| H1 \u2014 Bold | 48px | 800 | 1.00 | -1px | Institutional data headers (share price on charcoal panel) |\n| H2 \u2014 Light | 40px | 300 | 1.10 | \u2014 | Sub-section headers |\n| H2 \u2014 Bold | 40px | 700 | 1.10 | \u2014 | Denser sub-section headers |\n| H3 \u2014 Bold | 32px | 700 | 1.25 | \u2014 | Card cluster titles and feature intros |\n| H4 \u2014 Bold | 24px | 700 | 1.00 | \u2014 | Card titles (news, feature, article modules) |\n| H4 \u2014 Light | 24px | 300 | 1.42 | \u2014 | Intro paragraphs on investor / sustainability pages |\n| H5 \u2014 Bold | 20px | 700 | 1.30 | \u2014 | Compact module titles and side callouts |\n| Lead Body | 20px | 400 | 1.40 | \u2014 | Introductory paragraphs under large headlines |\n| Body Large | 18px | 400 | 1.56 | \u2014 | Long-form article body and prominent copy |\n| Body Bold | 18px | 600 | 1.56 | \u2014 | Emphasized inline phrases |\n| Body Base | 16px | 400 | 1.38 | \u2014 | Default paragraph size |\n| Label Uppercase | 16px | 800 | 1.50 | \u2014 | Uppercase navigational labels |\n| Eyebrow / Date | 14px | 400/700 | 1.43 | \u2014 | Article date stamps and meta (14 APR 2026) |\n| Tag Pill | 14px | 700 | 1.50 | \u2014 | Badge text inside red-outlined pills |\n| Caption Uppercase | 14px | 400 | 1.14 | \u2014 | Uppercase meta label |\n| Caption | 12px | 500 | 2.00 | \u2014 | Footer meta, legal lines |\n| Micro Label | 12px | 600 | 1.33 | \u2014 | Uppercase tiny labels on badges and counters |\n| Button Primary | 14.4px | 700 | 1.00 | 0.144px | Primary filled button label |\n| Button Compact | 12px | 700 | 1.00 | 0.12px | Compact button label |\n\n### Principles\n\n- **Dual-scale drama**: the system deliberately stretches from 144px down to 8.5px without mid-range showing off. The result is a clear corporate hierarchy \u2014 monumental for brand moments, calm for reading.\n- **Uppercase display, mixed-case body**: all the largest display sizes are uppercase with negative tracking, while everything 48px and below is sentence case with normal tracking.\n- **Weight spread**: only three real weights do the work \u2014 800 (display), 700 (bold bodies, buttons, tags), and 400 (reading body). A lighter 300-weight is used for editorial-style 40px/48px headlines when a calmer voice is wanted.\n- **No italics, no decorative letterspacing on body**: the body system is deliberately neutral so the display work can shout.\n- **Rotated brand-mark type**: on the sustainability section, the word \"IMPACT\" is set in brand red at a large display size and rotated 90\u00B0 to run vertically along the edge of a dark world-map panel \u2014 a distinctive typographic flourish that the template uses to label its institutional data surfaces.\n\n### Note on Font Substitutes\n\nThe Vodafone corporate typeface is proprietary. When recreating the look in open systems, substitute with **Inter** at weights 400/600/800, or **Neue Haas Grotesk** if available. Inter needs its letter-spacing reduced by roughly 1-2% at display sizes (80px+) to approximate the Vodafone face's tight tracking; its line-height should be set to 0.85-0.95 for the uppercase display tier.\n\n## 4. Component Stylings\n\n### Buttons\n\nVodafone operates a genuine two-tier primary button system. Both tiers are used as primary calls to action \u2014 the difference is context (form/chrome vs editorial/content), not hierarchy.\n\n**Primary Red Rectangle** (utility / form CTA \u2014 \"Accept All Cookies\", \"Subscribe\")\n- Background: Vodafone Red (`#e60000`)\n- Text: Pure White (`#ffffff`), 14.4px, weight 700, letter-spacing 0.144px\n- Padding: 12px vertical, 10px horizontal\n- Border: 1px solid Vodafone Red (`#e60000`)\n- Border radius: 2px \u2014 deliberately sharp-cornered\n- Default state: solid red fill with crisp 2px corners\n- Active state: brief opacity drop to `0.9` on press\n\n**Primary Red Pill** (editorial / content CTA \u2014 \"Link to Our approach to ESG\", \"EXPLORE CONNECTING PEOPLE\")\n- Background: Vodafone Red (`#e60000`)\n- Text: Pure White (`#ffffff`), 14.4px, weight 700, letter-spacing 0.144px\n- Padding: 16px uniform\n- Border radius: 60px \u2014 fully pill-shaped\n- Default state: solid red fill with rounded ends\n- Active state: brief opacity drop to `0.9` on press\n\n**Ghost White Rectangle** (secondary form action)\n- Background: Pure White (`#ffffff`)\n- Text: Form Text Grey (`#333333`), 14.4px, weight 700\n- Padding: 12px vertical, 10px horizontal\n- Border: 1px solid Form Text Grey (`#333333`)\n- Border radius: 2px\n- Default state: white fill with charcoal outline\n- Active state: opacity `0.9` on press\n\n**Glass Pill** (sits on dark hero imagery \u2014 secondary content CTA)\n- Background: Pure White at 10% opacity (`rgba(255,255,255,0.1)`)\n- Text: Pure White (`#ffffff`), weight 700\n- Padding: 8px vertical, 16px horizontal\n- Border radius: 24px \u2014 fully pill-shaped\n- Default state: soft translucent pill lets the photo breathe through\n\n**Content Ghost Pill** (inline within editorial cards \u2014 low-emphasis content CTA)\n- Background: Black at 5% opacity (`rgba(0,0,0,0.05)`)\n- Text: Vodafone Red (`#e60000`), 14.4px, weight 700\n- Padding: 15px uniform\n- Border radius: 60px \u2014 fully pill-shaped\n- Default state: nearly transparent pill with red text\n\n**Icon Control Button** (video play/pause, carousel arrows, close)\n- Background: Pure White (`#ffffff`)\n- Icon color: Charcoal Headline (`#25282b`)\n- Border radius: 50% \u2014 perfect circle\n- Outline: 1px solid white, used for focus indication\n- Size: typically 32-40px diameter\n\n### Cards & Containers\n\n**News / Editorial Card** (homepage article tile)\n- Background: Pure White (`#ffffff`)\n- Border radius: 6px (applied to image corners and card container)\n- Shadow: none \u2014 cards rely on spacing and the image aspect ratio for separation\n- Internal layout: 16:9 image on top \u2192 12px gap \u2192 eyebrow row (date + tag pill) \u2192 8px gap \u2192 H4 Bold title \u2192 16px card padding on sides and bottom\n- The card image uses `object-fit: cover` and rounded top corners (6px top-left/top-right)\n\n**Asymmetric Corner Card** (featured homepage cards)\n- Background: Pure White (`#ffffff`)\n- Border radius: `0px 6px 0px 0px` \u2014 a deliberate single-corner-rounded shape that echoes the Vodafone speech-mark logo's curved geometry\n- No shadow, no border \u2014 the asymmetric radius itself is the visual signature\n\n**Circular Portrait / Pictogram Container** (sustainability page)\n- Background: Pure White (`#ffffff`)\n- Border radius: 100% \u2014 perfect circle\n- Used for ESG pictograms and executive portraits inside the institutional content area\n\n### Inputs & Forms\n\nVodafone's corporate site does not expose many inline form controls on the homepage, but button-style inputs follow these rules:\n\n- Background: Pure White (`#ffffff`)\n- Text: Form Text Grey (`#333333`), 16px, weight 400\n- Border: 1px solid Form Text Grey (`#333333`)\n- Border radius: 2px\n- Padding: 12px 10px\n- Error state (when shown): the 1px border shifts to Vodafone Red (`#e60000`) and error message text inherits the same red at 12px weight 600\n\n### Navigation\n\n**Top bar**\n- Background: transparent over hero imagery; solid white (`#ffffff`) on scroll or interior pages\n- Height: approximately 64px desktop, 56px mobile\n- Logo: Vodafone speech-mark, 40\u00D740px red circle with a white \"speech-mark\" cut-out, left-aligned\n- Nav links: 16px weight 400 Charcoal Headline (`#25282b`) on white; reversed to white when sitting on dark hero imagery\n- Right-side utility: small icon links (search, locale, menu) rendered as 24px icomoon glyphs\n- On interior pages (Investors, Sustainable Business), the top bar shows additional secondary-nav row: \"Vodafone Business / Vodafone Foundation / Our site\" labels, aligned right\n\n**Mobile collapse**\n- At approximately 768px the horizontal nav collapses into a hamburger\n- Mobile menu opens as a full-width overlay with white surface, 18px weight 400 link rows, 16px vertical padding per row\n\n### Image Treatment\n\n- **Hero images**: full-bleed, dark atmospheric photography (coral reefs, pine forests, cable crews, urban twilight) with a natural vignette or cool-tone color grade \u2014 no CSS overlay is needed because the imagery itself is pre-graded\n- **Card thumbnails**: 16:9 aspect ratio, 6px top corner radius matching the card\n- **Square editorial images**: 1:1 ratio used in feature modules, always 6px corner radius\n- **Round portraits**: 100% (perfect circle) for executive headshots and ESG pictograms\n- **Loading**: lazy-loading triggers on scroll; images stabilize within ~200ms of entering the viewport\n- **No decorative borders on images** \u2014 the card radius does all the framing work\n\n### Tag Pills / Badges\n\nTwo distinct pill styles appear:\n\n**Outlined Red Pill** (used inline on article card metadata, e.g., \"EMPOWERING PEOPLE\")\n- Background: Pure White at 80% opacity (`rgba(255,255,255,0.8)`)\n- Text: Near-black at 80% opacity (`rgba(0,0,0,0.8)`), 12px, weight 600, uppercase\n- Border: 1px solid Vodafone Red (`#e60000`)\n- Padding: 6px\n- Border radius: small-rounded (roughly 2px)\n\n**Filled Neutral Pill** (quieter tags)\n- Background: Light Neutral (`#f2f2f2`)\n- Text: Charcoal Headline (`#25282b`), 14px, weight 700\n- Padding: 4px 12px\n- Border radius: 32px \u2014 fully pill-shaped\n\n### Red Divider Band\n\nA signature reusable component that appears on every page template: a full-width band of Vodafone Red (`#e60000`) that runs horizontally across the page to separate the monumental hero from the editorial body beneath it. It carries no text and no controls \u2014 it simply is the brand's way of saying \"new chapter.\" Typical height: 40-80px.\n\n### Share Ticker Panel (Investor pages)\n\nA distinctive institutional component that anchors the investor template:\n- Background: Charcoal Institutional Panel (`#25282b`)\n- Large numeric display: share price set in 48px weight 800 white type with negative letter-spacing (e.g., \"116.05 GBX\")\n- Metadata row: delay notice (e.g., \"15-min delayed\") and timestamp in 14px weight 400 secondary grey text\n- Layout: sits as a horizontal strip above the footer, spans the full content width\n- Hairline dividers (`rgba(255,255,255,0.25)`) separate the ticker from the footer columns\n\n### Global Impact Map Panel (Sustainability pages)\n\nA signature reusable component that anchors the sustainability template:\n- Background: Charcoal Institutional Panel (`#25282b`)\n- A dark minimal world-map illustration in slightly lighter grey\n- Red circular markers (`#e60000`) plotted on geographic locations where the brand operates\n- Vertically-rotated brand word \"IMPACT\" set in Vodafone Red at large display size (weight 800, uppercase, 90\u00B0 rotated) running along one edge of the panel \u2014 this is the template's signature typographic move\n- Small legend with red markers and white uppercase labels at the top-left\n\n### Footer\n\nA universal component across all page templates:\n- Background: Charcoal Institutional Panel (`#25282b`)\n- Layout: 4-column link grid (Our company / Investors / Vodafone websites / Share price) followed by a \"Connect with us\" social row and legal/privacy line\n- Logo: red speech-mark repeats bottom-right at 32-40px\n- Column header type: 16px weight 800 uppercase white\n- Column link type: 14px weight 400 white, stacked vertically with 12px row spacing\n- Divider hairlines: `rgba(255,255,255,0.25)` between column group and legal row\n\n## 5. Layout Principles\n\n### Spacing System\n\nBase unit: **8px**. The scale accommodates both tight UI (1px, 2px, 4px) and generous editorial rhythm (16px, 20px, 24px, 32px). Two values (`32px` and `38px`) appear across every page in the analysis, making them the template's universal rhythm constants.\n\n| Token | Value | Typical Use |\n|-------|-------|-------------|\n| 2xs | 2px | Hairline separators |\n| xs | 4px | Icon-to-text gap in tight controls |\n| sm | 8px | Base rhythm unit |\n| md | 12px | Card internal padding, eyebrow-to-title gap |\n| base | 16px | Paragraph rhythm, card padding, pill button padding |\n| lg | 20px | Section-internal spacing |\n| xl | 24px | Card-to-card spacing, column gutters |\n| 2xl | 32px | Section intro-to-content breaks \u2014 universal constant |\n| 3xl | 38px | Band-to-next-section vertical push \u2014 universal constant |\n| section | 64-96px | Vertical rhythm between major editorial modules |\n\n### Grid & Container\n\n- **Max content width**: approximately 1440px on very large screens; articles and hero modules typically sit at 1200px\n- **Column pattern on cards**: 3-up or 4-up card grid at desktop (1200-1440px), 2-up at tablet (768-1024px), stacked 1-up at mobile (<768px)\n- **Horizontal padding**: 32px at desktop edge, 20px at tablet, 16px at mobile\n- **Gutters between cards**: 24px desktop, 16px mobile\n- **Institutional panel (share ticker, world map, footer)**: always full-bleed edge-to-edge at every breakpoint\n\n### Whitespace Philosophy\n\nVodafone's editorial canvas leans generous \u2014 whitespace is used as a visual palette cleanser between a monumental headline and the card grid or data panel that follows. Sections are separated by tall vertical rhythm (64-96px) plus the occasional red band that acts as both a separator and a brand signal. Within cards, spacing is tight and efficient (12-16px) so the photography can take the stage.\n\n### Border Radius Scale\n\n| Token | Value | Typical Use |\n|-------|-------|-------------|\n| hairline | 1px | Inline text wraps, small badges |\n| button-tight | 2px | Primary and secondary rectangle button corners \u2014 the brand's utility-form look |\n| card | 6px | News cards, images, input fields |\n| asymmetric | `0px 6px 0px 0px` | Featured cards (top-right corner only) |\n| glass-pill | 24px | Translucent white pills sitting on dark hero imagery |\n| badge-pill | 32px | Filled neutral pill badges |\n| cta-pill | 60px | Primary red content CTAs \u2014 the brand's editorial button look |\n| circle | 50% | Icon buttons, carousel arrows, close controls |\n| portrait | 100% | Circular portraits and ESG pictograms |\n\n## 6. Depth & Elevation\n\nVodafone's system is deliberately flat. There is almost no conventional box-shadow in the UI. Hierarchy is carried by color (red bands, charcoal institutional panels), typography weight (800 vs 400), and spacing.\n\n| Level | Treatment | Use |\n|-------|-----------|-----|\n| 0 \u2014 Surface | No shadow, no border | Default card, default section |\n| 1 \u2014 Outline | 1px solid border at low-opacity | Ghost buttons, outlined pills |\n| 2 \u2014 Inset Highlight | `inset 0 0 0 1px` on focus | Pressed / focused controls |\n| 3 \u2014 Photographic depth | The photography itself carries the depth | Hero imagery |\n| 4 \u2014 Surface shift | Charcoal institutional panel below a white editorial canvas | Share ticker / world map / footer |\n\nShadow philosophy: Vodafone treats drop shadows as a distraction from brand clarity. The few extracted shadow tokens are reserved for inset focus rings. The dominant \"elevation\" in the system is a **color surface shift** \u2014 switching from the white editorial canvas to the charcoal institutional panel \u2014 rather than a lift-off drop shadow.\n\n### Decorative Depth\n\nThe only decorative depth cues are:\n- Atmospheric dark hero photography that carries its own cinematic tonal depth (no CSS overlay needed)\n- The rotated vertical \"IMPACT\" wordmark on the sustainability map, which creates the illusion of a fourth wall alongside the map panel\n\n## 7. Do's and Don'ts\n\n### Do\n\n- Use Vodafone Red (`#e60000`) as the single loudest element on any screen \u2014 one primary CTA per fold, one red band per editorial break\n- Set display headlines in uppercase 800-weight with tight negative tracking; let them run to 90-144px on desktop\n- Pair monumental display type with calm 16-18px body copy \u2014 the scale jump is the system\n- Switch the button radius based on context: 2px rectangles for form and utility actions, 60px pills for editorial content CTAs\n- Let documentary photography breathe at 16:9 or 1:1 on a 6px radius \u2014 no decorative borders, no heavy overlays\n- Use the red band as a full-width chapter divider between every hero and the content below it\n- Anchor every page with a charcoal institutional surface (`#25282b`) \u2014 the footer always, and on investor/sustainability pages extend the same color up to include the share ticker or the global-impact map\n- Respect the universal page rhythm: dark hero \u2192 red band \u2192 white editorial \u2192 charcoal institutional \u2192 charcoal footer\n\n### Don't\n\n- Don't introduce a second brand hue to rival Vodafone Red \u2014 no teals, no purples, no orange accents\n- Don't soften rectangle button corners beyond 2px, and don't shrink pill button corners below 60px \u2014 the two shapes are both load-bearing\n- Don't add drop shadows to cards or buttons \u2014 the system is intentionally flat and uses surface color to carry elevation\n- Don't use gradients on backgrounds, buttons, or text\n- Don't mix uppercase tracking on body text \u2014 uppercase is reserved for display, labels, and micro-labels\n- Don't use italics for emphasis \u2014 use weight 600/700 instead\n- Don't decorate headlines with colored underlines or highlights \u2014 the type does the work\n- Don't use pure black (`#000000`) for text or surfaces \u2014 always use Charcoal Headline (`#25282b`)\n\n## 8. Responsive Behavior\n\n### Breakpoints\n\nThe practical tiers observed across all three templates:\n\n| Name | Width | Key Changes |\n|------|-------|-------------|\n| Mobile | \u2264 600px | Nav collapses to hamburger; hero display drops to ~56-72px; cards stack 1-up |\n| Mobile Large | 601-767px | Hero display ~72-90px; cards still stack 1-up |\n| Tablet | 768-1023px | Nav re-expands; cards grid 2-up; hero display ~90-120px |\n| Laptop | 1024-1199px | Full nav; cards 3-up; hero display ~120-144px |\n| Desktop | 1200-1439px | Standard editorial layout; cards 3-up or 4-up |\n| Wide | \u2265 1440px | Content caps at 1440px; outer canvas padding grows |\n\n### Touch Targets\n\nAll interactive controls meet a 44\u00D744px minimum on mobile. Icon buttons use 40\u00D740px circular hit areas which expand with 4px invisible padding on touch devices. Primary CTA buttons land at approximately 48\u00D748px on mobile (16px top/bottom + text line for pills; 12px + text line for rectangles).\n\n### Collapsing Strategy\n\n- **Nav**: horizontal links collapse into a hamburger at 768px; the logo stays left-aligned at all widths\n- **Card grid**: 4-up \u2192 3-up at 1200px \u2192 2-up at 768px \u2192 1-up at 600px, with gutters shrinking from 24px to 16px\n- **Hero display type**: step-reduces through 144 \u2192 126 \u2192 90 \u2192 72 \u2192 56px as viewports shrink\n- **Section padding**: 96px vertical at desktop, 64px at tablet, 48px at mobile\n- **Red divider bands**: remain full-width at every breakpoint; their vertical height compresses from ~80px at desktop to ~40px at mobile\n- **Institutional panels (share ticker / world map)**: on mobile, multi-column content restacks into a single vertical stream but the charcoal surface stays edge-to-edge\n- **Vertically-rotated \"IMPACT\" wordmark**: becomes a horizontal label or is dropped entirely on mobile where vertical space is limited\n\n### Image Behavior\n\n- Hero imagery: art-directed variant at mobile (tighter crop) versus desktop (wide atmospheric frame)\n- Card thumbnails: always 16:9 regardless of viewport; `loading=\"lazy\"` is standard\n- Circular portraits: fixed at 80-120px diameter on desktop, shrinking to 64-80px on mobile\n- Logo: fixed at 40\u00D740px across breakpoints (consistent brand mark size)\n\n## 9. Agent Prompt Guide\n\n### Quick Color Reference\n\n- Primary CTA: \"Vodafone Red (`#e60000`)\"\n- Background: \"Canvas White (`#ffffff`)\"\n- Heading text: \"Charcoal Headline (`#25282b`)\"\n- Body text: \"Secondary Body Grey (`#7e7e7e`)\"\n- Institutional surface: \"Charcoal Institutional Panel (`#25282b`)\"\n- Inline link: \"Signal Blue (`#3860be`)\"\n- Quiet pill background: \"Light Neutral (`#f2f2f2`)\"\n\n### Example Component Prompts\n\n- \"Create a primary red rectangle button: Vodafone Red (`#e60000`) background, pure white 14.4px weight 700 text, 2px border radius (sharp corners), 12px vertical \u00D7 10px horizontal padding. Use for form and utility actions. No shadow, no gradient.\"\n- \"Create a primary red pill CTA: Vodafone Red (`#e60000`) background, pure white 14.4px weight 700 text, 60px border radius (fully pill-shaped), 16px uniform padding. Use for editorial content calls-to-action.\"\n- \"Design an editorial news card: white background, 6px border radius, 16:9 image at the top, 12px eyebrow row containing a date and a red-outlined uppercase tag pill, then a 24px weight 700 Charcoal title. No shadow \u2014 spacing alone separates cards.\"\n- \"Build a hero section: dark atmospheric photo as the full-bleed background, monumental uppercase headline at 144px weight 800 with -1px letter-spacing, single Vodafone Red pill CTA beneath it, no overlay gradient.\"\n- \"Create a red divider band: full-width strip of Vodafone Red (`#e60000`), 64px tall on desktop and 40px on mobile, no text, no controls \u2014 it acts purely as a visual chapter break between editorial sections.\"\n- \"Design an institutional data panel: full-bleed Charcoal Institutional Panel (`#25282b`) background, large numeric display at 48px weight 800 white with negative letter-spacing, 14px weight 400 grey meta row beneath. Use for share ticker or stats callout.\"\n- \"Design a global impact map: Charcoal Institutional Panel (`#25282b`) background, minimal grey world-map illustration, red Vodafone-red circular markers on operational locations, the brand word 'IMPACT' set at large display size in brand red and rotated 90\u00B0 to run vertically along one edge.\"\n\n### Iteration Guide\n\nWhen refining existing screens generated with this design system:\n\n1. Focus on ONE component at a time \u2014 the system has few moving parts, so small refinements compound\n2. Reference specific color names and hex codes from this document when describing changes\n3. Use natural language (\"sharper corners,\" \"more generous vertical rhythm\") alongside specific measurements\n4. When in doubt about radius, remember: 2px for form/utility buttons, 60px for editorial pills, 6px for cards, 50%/100% for icon and portrait circles\n5. Keep the brand rule absolute: only one Vodafone Red element should dominate any given fold\n\n### Known Gaps\n\n- Form input styles (text fields, dropdowns, toggles) are not exposed on these page templates; their specs are inferred from the ghost-button pattern and may need refinement when real forms are designed\n- The Vodafone corporate typeface is proprietary and cannot be reproduced exactly in open systems; Inter with tightened tracking at display sizes is the closest open substitute\n- Animation and transition timings are intentionally not documented \u2014 the site uses them sparingly and the values are not extractable from static analysis\n- The share ticker's exact number styling (separators, currency glyph) is documented from the investor-page screenshot; other regional variants may display differently\n";
2
+
3
+ export { vodafoneBrief };