@hex-core/themes 0.1.1 → 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,3 @@
1
+ declare const coinbaseBrief = "---\nversion: alpha\nname: Coinbase\ndescription: An institutional-grade crypto exchange whose marketing surfaces read like a quietly-confident financial-services brand. The base canvas is pure white; Coinbase Blue (`#0052ff`) is the single brand voltage, used scarcely on primary CTAs, signature glyphs, and inline accent moments. Type runs Coinbase's licensed CoinbaseDisplay (display) and CoinbaseSans (body) at modest weights \u2014 display sits at weight 400 not 700, signaling editorial calm rather than fintech-bombastic. Page rhythm rotates between bright white sections, soft gray elevation bands, and full-bleed dark editorial heroes (`#0a0b0d`) carrying product-ui mockup cards. Iconography is geometric and minimal; depth comes from card-on-card layering, never decorative shadows.\n\ncolors:\n primary: \"#0052ff\"\n primary-active: \"#003ecc\"\n primary-disabled: \"#a8b8cc\"\n ink: \"#0a0b0d\"\n body: \"#5b616e\"\n body-strong: \"#0a0b0d\"\n muted: \"#7c828a\"\n muted-soft: \"#a8acb3\"\n hairline: \"#dee1e6\"\n hairline-soft: \"#eef0f3\"\n canvas: \"#ffffff\"\n surface-soft: \"#f7f7f7\"\n surface-card: \"#ffffff\"\n surface-strong: \"#eef0f3\"\n surface-dark: \"#0a0b0d\"\n surface-dark-elevated: \"#16181c\"\n on-primary: \"#ffffff\"\n on-dark: \"#ffffff\"\n on-dark-soft: \"#a8acb3\"\n semantic-up: \"#05b169\"\n semantic-down: \"#cf202f\"\n accent-yellow: \"#f4b000\"\n\ntypography:\n display-mega:\n fontFamily: \"'Coinbase Display', -apple-system, system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif\"\n fontSize: 80px\n fontWeight: 400\n lineHeight: 1.0\n letterSpacing: -2px\n display-xl:\n fontFamily: \"'Coinbase Display', sans-serif\"\n fontSize: 64px\n fontWeight: 400\n lineHeight: 1.0\n letterSpacing: -1.6px\n display-lg:\n fontFamily: \"'Coinbase Display', sans-serif\"\n fontSize: 52px\n fontWeight: 400\n lineHeight: 1.0\n letterSpacing: -1.3px\n display-md:\n fontFamily: \"'Coinbase Display', sans-serif\"\n fontSize: 44px\n fontWeight: 400\n lineHeight: 1.09\n letterSpacing: -1px\n display-sm:\n fontFamily: \"'Coinbase Sans', sans-serif\"\n fontSize: 36px\n fontWeight: 400\n lineHeight: 1.11\n letterSpacing: -0.5px\n title-lg:\n fontFamily: \"'Coinbase Sans', sans-serif\"\n fontSize: 32px\n fontWeight: 400\n lineHeight: 1.13\n letterSpacing: -0.4px\n title-md:\n fontFamily: \"'Coinbase Sans', sans-serif\"\n fontSize: 18px\n fontWeight: 600\n lineHeight: 1.33\n letterSpacing: 0\n title-sm:\n fontFamily: \"'Coinbase Sans', sans-serif\"\n fontSize: 16px\n fontWeight: 600\n lineHeight: 1.25\n letterSpacing: 0\n body-md:\n fontFamily: \"'Coinbase Sans', sans-serif\"\n fontSize: 16px\n fontWeight: 400\n lineHeight: 1.5\n letterSpacing: 0\n body-strong:\n fontFamily: \"'Coinbase Sans', sans-serif\"\n fontSize: 16px\n fontWeight: 700\n lineHeight: 1.5\n letterSpacing: 0\n body-sm:\n fontFamily: \"'Coinbase Sans', sans-serif\"\n fontSize: 14px\n fontWeight: 400\n lineHeight: 1.5\n letterSpacing: 0\n caption:\n fontFamily: \"'Coinbase Sans', sans-serif\"\n fontSize: 13px\n fontWeight: 400\n lineHeight: 1.5\n letterSpacing: 0\n caption-strong:\n fontFamily: \"'Coinbase Sans', sans-serif\"\n fontSize: 12px\n fontWeight: 600\n lineHeight: 1.5\n letterSpacing: 0\n number-display:\n fontFamily: \"'Coinbase Mono', 'Coinbase Sans', monospace\"\n fontSize: 18px\n fontWeight: 500\n lineHeight: 1.4\n letterSpacing: 0\n button:\n fontFamily: \"'Coinbase Sans', sans-serif\"\n fontSize: 16px\n fontWeight: 600\n lineHeight: 1.15\n letterSpacing: 0\n nav-link:\n fontFamily: \"'Coinbase Sans', sans-serif\"\n fontSize: 14px\n fontWeight: 500\n lineHeight: 1.4\n letterSpacing: 0\n\nrounded:\n none: 0px\n xs: 4px\n sm: 8px\n md: 12px\n lg: 16px\n xl: 24px\n pill: 100px\n full: 9999px\n\nspacing:\n xxs: 4px\n xs: 8px\n sm: 12px\n base: 16px\n md: 20px\n lg: 24px\n xl: 32px\n xxl: 48px\n section: 96px\n\ncomponents:\n top-nav-light:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.nav-link}\"\n height: 64px\n top-nav-on-dark:\n backgroundColor: \"{colors.surface-dark}\"\n textColor: \"{colors.on-dark}\"\n typography: \"{typography.nav-link}\"\n height: 64px\n button-primary:\n backgroundColor: \"{colors.primary}\"\n textColor: \"{colors.on-primary}\"\n typography: \"{typography.button}\"\n rounded: \"{rounded.pill}\"\n padding: 12px 20px\n height: 44px\n button-primary-active:\n backgroundColor: \"{colors.primary-active}\"\n textColor: \"{colors.on-primary}\"\n rounded: \"{rounded.pill}\"\n button-primary-disabled:\n backgroundColor: \"{colors.primary-disabled}\"\n textColor: \"{colors.on-primary}\"\n rounded: \"{rounded.pill}\"\n button-secondary-light:\n backgroundColor: \"{colors.surface-strong}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.button}\"\n rounded: \"{rounded.pill}\"\n padding: 12px 20px\n height: 44px\n button-secondary-dark:\n backgroundColor: \"{colors.surface-dark-elevated}\"\n textColor: \"{colors.on-dark}\"\n typography: \"{typography.button}\"\n rounded: \"{rounded.pill}\"\n padding: 12px 20px\n height: 44px\n button-outline-on-dark:\n backgroundColor: transparent\n textColor: \"{colors.on-dark}\"\n typography: \"{typography.button}\"\n rounded: \"{rounded.pill}\"\n padding: 11px 19px\n height: 44px\n button-tertiary-text:\n backgroundColor: transparent\n textColor: \"{colors.primary}\"\n typography: \"{typography.button}\"\n button-pill-cta:\n backgroundColor: \"{colors.primary}\"\n textColor: \"{colors.on-primary}\"\n typography: \"{typography.button}\"\n rounded: \"{rounded.pill}\"\n padding: 16px 32px\n height: 56px\n hero-band-dark:\n backgroundColor: \"{colors.surface-dark}\"\n textColor: \"{colors.on-dark}\"\n typography: \"{typography.display-mega}\"\n padding: 96px\n hero-band-light:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.display-mega}\"\n padding: 96px\n product-ui-card-dark:\n backgroundColor: \"{colors.surface-dark-elevated}\"\n textColor: \"{colors.on-dark}\"\n rounded: \"{rounded.xl}\"\n padding: 32px\n product-ui-card-light:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.ink}\"\n rounded: \"{rounded.xl}\"\n padding: 32px\n feature-card:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.title-md}\"\n rounded: \"{rounded.xl}\"\n padding: 32px\n asset-row:\n backgroundColor: transparent\n textColor: \"{colors.ink}\"\n typography: \"{typography.body-md}\"\n padding: 16px 0\n price-up-cell:\n backgroundColor: transparent\n textColor: \"{colors.semantic-up}\"\n typography: \"{typography.number-display}\"\n price-down-cell:\n backgroundColor: transparent\n textColor: \"{colors.semantic-down}\"\n typography: \"{typography.number-display}\"\n pricing-tier-card:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.body-md}\"\n rounded: \"{rounded.xl}\"\n padding: 32px\n pricing-tier-featured:\n backgroundColor: \"{colors.surface-dark}\"\n textColor: \"{colors.on-dark}\"\n typography: \"{typography.body-md}\"\n rounded: \"{rounded.xl}\"\n padding: 32px\n cta-band-dark:\n backgroundColor: \"{colors.surface-dark}\"\n textColor: \"{colors.on-dark}\"\n typography: \"{typography.display-lg}\"\n padding: 96px\n text-input:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.body-md}\"\n rounded: \"{rounded.md}\"\n padding: 14px 16px\n height: 48px\n search-input-pill:\n backgroundColor: \"{colors.surface-strong}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.body-md}\"\n rounded: \"{rounded.pill}\"\n padding: 12px 20px\n height: 44px\n badge-pill:\n backgroundColor: \"{colors.surface-strong}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.caption-strong}\"\n rounded: \"{rounded.pill}\"\n padding: 4px 12px\n asset-icon-circular:\n backgroundColor: \"{colors.surface-strong}\"\n rounded: \"{rounded.full}\"\n size: 32px\n footer-light:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.body}\"\n typography: \"{typography.body-sm}\"\n padding: 64px 48px\n footer-link:\n backgroundColor: transparent\n textColor: \"{colors.body}\"\n typography: \"{typography.body-sm}\"\n legal-band:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.muted}\"\n typography: \"{typography.caption}\"\n---\n\n## Overview\n\nCoinbase reads like an institutional financial brand that happens to trade crypto \u2014 the marketing surfaces are quiet, white-canvas, editorially-spaced, and almost monochromatic. The single brand voltage is **Coinbase Blue** (`{colors.primary}` \u2014 #0052ff), used scarcely: every primary CTA pill, the brand wordmark, and inline emphasis links. Beyond that one blue, the system is white canvas + ink + soft gray elevation bands + a deep near-black editorial canvas (`{colors.surface-dark}` \u2014 #0a0b0d) for full-bleed product-mockup heroes.\n\nType pairs **CoinbaseDisplay** for hero headlines with **CoinbaseSans** for body, captions, and navigation. Display sits at **weight 400** \u2014 not the 700+ typical of trading platforms. The choice signals editorial calm and institutional trust rather than fintech urgency.\n\nThe page rhythm rotates three modes: bright white editorial sections, soft-gray elevation bands, and **full-bleed dark editorial heroes** carrying layered product-UI mockup cards. The dark hero with floating dashboard mockups is the single most distinctive component.\n\n**Key Characteristics:**\n- Single accent color: `{colors.primary}` (#0052ff Coinbase Blue) carries every primary CTA, wordmark, and inline brand link. Used scarcely.\n- Modest display weights \u2014 CoinbaseDisplay at weight 400, never 700+.\n- Editorial pill geometry: every CTA is `{rounded.pill}` (100px), every asset glyph is `{rounded.full}`, every card is `{rounded.xl}` (24px). Sharp corners absent.\n- Full-bleed dark heroes with floating product-UI cards: `{component.hero-band-dark}` plus inline `{component.product-ui-card-dark}` mockups is the brand's strongest signature pattern.\n- Trading semantics: `{colors.semantic-up}` (#05b169) and `{colors.semantic-down}` (#cf202f) \u2014 text color only, never background fills.\n- 96px section rhythm \u2014 generous editorial pacing.\n\n## Colors\n\n### Brand & Accent\n- **Coinbase Blue** (`{colors.primary}` \u2014 #0052ff): The single brand color. Every primary CTA pill, the Coinbase wordmark, and inline brand links.\n- **Coinbase Blue Active** (`{colors.primary-active}` \u2014 #003ecc): Press-state darken on the primary pill.\n- **Coinbase Blue Disabled** (`{colors.primary-disabled}` \u2014 #a8b8cc): Faded-blue tint for disabled CTAs.\n- **Accent Yellow** (`{colors.accent-yellow}` \u2014 #f4b000): A small sub-brand accent used very sparingly on Bitcoin/asset glyph fills inside feature cards. Illustrative-only, not an action color.\n\n### Surface\n- **Canvas** (`{colors.canvas}` \u2014 #ffffff): The default page floor.\n- **Surface Soft** (`{colors.surface-soft}` \u2014 #f7f7f7): Subtle alternating band surface.\n- **Surface Strong** (`{colors.surface-strong}` \u2014 #eef0f3): The light-gray fill behind secondary buttons, search pills, asset-icon plates.\n- **Surface Dark** (`{colors.surface-dark}` \u2014 #0a0b0d): Deep near-black canvas for full-bleed dark heroes, CTA bands. Same hex as `{colors.ink}` \u2014 page-floor and text-color share the value.\n- **Surface Dark Elevated** (`{colors.surface-dark-elevated}` \u2014 #16181c): One step lighter, used for floating product-UI mockup cards inside dark heroes.\n\n### Hairlines\n- **Hairline** (`{colors.hairline}` \u2014 #dee1e6): Default 1px divider on white surfaces.\n- **Hairline Soft** (`{colors.hairline-soft}` \u2014 #eef0f3): Lighter divider \u2014 same hex as `{colors.surface-strong}`.\n\n### Text\n- **Ink** (`{colors.ink}` \u2014 #0a0b0d): Display headings, primary nav, body emphasis.\n- **Body** (`{colors.body}` \u2014 #5b616e): Default running-text \u2014 slightly cool gray.\n- **Body Strong** (`{colors.body-strong}` \u2014 #0a0b0d): Same as ink, used for stronger emphasis.\n- **Muted** (`{colors.muted}` \u2014 #7c828a): Sub-titles, breadcrumbs, footer secondary.\n- **Muted Soft** (`{colors.muted-soft}` \u2014 #a8acb3): Disabled link text.\n- **On Primary** (`{colors.on-primary}` \u2014 #ffffff): White text on Coinbase Blue CTAs.\n- **On Dark** (`{colors.on-dark}` \u2014 #ffffff): White text on dark heroes.\n- **On Dark Soft** (`{colors.on-dark-soft}` \u2014 #a8acb3): Muted off-white for secondary text on dark.\n\n### Trading Semantics\n- **Semantic Up** (`{colors.semantic-up}` \u2014 #05b169): \"Price up\" green, text color only.\n- **Semantic Down** (`{colors.semantic-down}` \u2014 #cf202f): \"Price down\" red, text color only.\n\n## Typography\n\n### Font Family\nThe system runs **CoinbaseDisplay** (display headlines), **CoinbaseSans** (body, navigation, captions, buttons), **CoinbaseIcons** (icon font), and **CoinbaseMono** for tabular numerical data. Fallback stack: `-apple-system, system-ui, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif`.\n\nThe display/body split is functional: CoinbaseDisplay carries hero headlines only; CoinbaseSans carries everything else.\n\n### Hierarchy\n\n| Token | Size | Weight | Line Height | Letter Spacing | Use |\n|---|---|---|---|---|---|\n| `{typography.display-mega}` | 80px | 400 | 1.0 | -2px | Homepage hero h1 |\n| `{typography.display-xl}` | 64px | 400 | 1.0 | -1.6px | Subsidiary heroes |\n| `{typography.display-lg}` | 52px | 400 | 1.0 | -1.3px | Section heads |\n| `{typography.display-md}` | 44px | 400 | 1.09 | -1px | CTA-band headlines |\n| `{typography.display-sm}` | 36px | 400 | 1.11 | -0.5px | Sub-section heads \u2014 CoinbaseSans |\n| `{typography.title-lg}` | 32px | 400 | 1.13 | -0.4px | Card group titles |\n| `{typography.title-md}` | 18px | 600 | 1.33 | 0 | Component titles, asset row primary |\n| `{typography.title-sm}` | 16px | 600 | 1.25 | 0 | List labels |\n| `{typography.body-md}` | 16px | 400 | 1.5 | 0 | Default body |\n| `{typography.body-strong}` | 16px | 700 | 1.5 | 0 | Emphasized body |\n| `{typography.body-sm}` | 14px | 400 | 1.5 | 0 | Footer body |\n| `{typography.caption}` | 13px | 400 | 1.5 | 0 | Photo captions |\n| `{typography.caption-strong}` | 12px | 600 | 1.5 | 0 | Badge pill labels |\n| `{typography.number-display}` | 18px | 500 | 1.4 | 0 | Asset prices, percent changes \u2014 CoinbaseMono |\n| `{typography.button}` | 16px | 600 | 1.15 | 0 | Standard CTA pill |\n| `{typography.nav-link}` | 14px | 500 | 1.4 | 0 | Top-nav menu items |\n\n### Principles\n- **Display weight stays at 400.** The single most distinctive typographic choice \u2014 signals \"calm institutional brand\" rather than \"trading-platform urgency.\"\n- **Negative letter-spacing on display only.** Display uses -1px to -2px tracking; body stays at 0.\n- **CoinbaseMono on every number.** Asset prices, percent changes \u2014 anything tabular renders in CoinbaseMono.\n\n### Note on Font Substitutes\nCoinbaseDisplay, CoinbaseSans, and CoinbaseMono are licensed Coinbase typefaces.\n- **CoinbaseDisplay \u2192 Inter** at weight 400, letter-spacing -1.5%.\n- **CoinbaseSans \u2192 Inter** at weight 400/600.\n- **CoinbaseMono \u2192 JetBrains Mono** or **Geist Mono** at weight 500.\n\n## Layout\n\n### Spacing System\n- **Base unit:** 4px.\n- **Tokens:** `{spacing.xxs}` 4px \u00B7 `{spacing.xs}` 8px \u00B7 `{spacing.sm}` 12px \u00B7 `{spacing.base}` 16px \u00B7 `{spacing.md}` 20px \u00B7 `{spacing.lg}` 24px \u00B7 `{spacing.xl}` 32px \u00B7 `{spacing.xxl}` 48px \u00B7 `{spacing.section}` 96px.\n- **Section padding:** `{spacing.section}` (96px) for every major editorial band.\n- **Card internal padding:** `{spacing.xl}` (32px) for feature cards and product-UI mockups.\n\n### Grid & Container\n- **Max content width:** ~1200px centered. Hero photography full-bleed.\n- **Editorial body:** Single 12-column grid.\n- **Feature card grids:** 2-up at desktop for hero splits, 3-up for benefit grids.\n- **Footer:** 6-column link list at desktop.\n\n### Whitespace Philosophy\nGenerous editorial pacing \u2014 closer to Bloomberg or the Financial Times than to a trading dashboard. 96px between bands; cards inside bands sit 24px apart. Density lives behind login walls, not on marketing.\n\n## Elevation & Depth\n\n| Level | Treatment | Use |\n|---|---|---|\n| Flat | No shadow, no border | 80% of surfaces |\n| Hairline border | 1px `{colors.hairline}` | Feature card outlines on white |\n| Soft drop | `0 4px 12px rgba(0, 0, 0, 0.04)` | Single shadow tier \u2014 hovered cards |\n| Photographic | Full-bleed product-UI mockups | Hero depth |\n\n### Decorative Depth\n- **Layered product-UI cards inside dark heroes** is the most distinctive decorative pattern \u2014 a `{component.product-ui-card-dark}` floats above a darker base canvas, often with a second smaller card overlapping at an angle.\n- **Geometric brand illustrations** carry illustrative depth where shadows would otherwise.\n\n## Shapes\n\n### Border Radius Scale\n\n| Token | Value | Use |\n|---|---|---|\n| `{rounded.none}` | 0px | Reserved (essentially unused) |\n| `{rounded.xs}` | 4px | Inline tags |\n| `{rounded.sm}` | 8px | Compact rows |\n| `{rounded.md}` | 12px | Form inputs |\n| `{rounded.lg}` | 16px | Mid-size cards |\n| `{rounded.xl}` | 24px | Feature cards, product-UI mockups, pricing tiers |\n| `{rounded.pill}` | 100px | All CTA buttons, search pills, badges |\n| `{rounded.full}` | 9999px | Asset icon circles, avatars |\n\nPill for interactive, card-radius (24px) for containers, full circle for icons. Sharp corners absent.\n\n## Components\n\n### Top Navigation\n\n**`top-nav-light`** \u2014 Default top nav on white pages. Background `{colors.canvas}`, text `{colors.ink}`, height 64px. Layout: Coinbase wordmark left, primary horizontal menu (Cryptocurrencies / Individuals / Businesses / Institutions / Developers / Company), search-icon + globe + Sign In + Sign Up CTAs right.\n\n**`top-nav-on-dark`** \u2014 Top nav over a dark hero band. Background `{colors.surface-dark}`, text `{colors.on-dark}`. Same layout.\n\n### Buttons\n\n**`button-primary`** \u2014 The signature Coinbase Blue pill. Background `{colors.primary}`, text `{colors.on-primary}`, type `{typography.button}` (16px / 600), padding 12px \u00D7 20px, height 44px, rounded `{rounded.pill}` (100px).\n\n**`button-primary-active`** \u2014 Press state. Background `{colors.primary-active}`, deeper blue.\n\n**`button-primary-disabled`** \u2014 Faded blue tint. Background `{colors.primary-disabled}`. Cursor not-allowed.\n\n**`button-secondary-light`** \u2014 Soft-gray secondary on white surfaces. Background `{colors.surface-strong}`, text `{colors.ink}`, same pill geometry.\n\n**`button-secondary-dark`** \u2014 Used on dark heroes. Background `{colors.surface-dark-elevated}`, text `{colors.on-dark}`, same pill geometry.\n\n**`button-outline-on-dark`** \u2014 Transparent pill with white outline. Background transparent, text `{colors.on-dark}`, 1px white border.\n\n**`button-tertiary-text`** \u2014 Inline text link. Background transparent, text `{colors.primary}`, type `{typography.button}`.\n\n**`button-pill-cta`** \u2014 Larger pill CTA used on the homepage hero (\"Get started\"). Same Coinbase Blue palette but with 56px height and 16px \u00D7 32px padding for a prouder stance.\n\n### Hero Bands\n\n**`hero-band-dark`** \u2014 The signature full-bleed dark hero. Background `{colors.surface-dark}`, text `{colors.on-dark}`, full-bleed layered product-UI mockup cards. Display headline left in `{typography.display-mega}` (80px / 400), subhead in `{typography.body-md}`, two CTAs.\n\n**`hero-band-light`** \u2014 White-canvas variant used on Wealth and Explore. Background `{colors.canvas}`, text `{colors.ink}`. Same skeleton, light palette.\n\n### Cards\n\n**`product-ui-card-dark`** \u2014 The floating product-UI mockup. Background `{colors.surface-dark-elevated}`, text `{colors.on-dark}`, rounded `{rounded.xl}` (24px), padding 32px. Often shown as 2-3 stacked cards at slight rotation, mimicking a layered dashboard.\n\n**`product-ui-card-light`** \u2014 Light-canvas variant used on Explore for asset cards. Background `{colors.canvas}`, text `{colors.ink}`, same geometry, 1px hairline border.\n\n**`feature-card`** \u2014 Used in 3-up and 2-up grids. Background `{colors.canvas}`, text `{colors.ink}`, type `{typography.title-md}`, rounded `{rounded.xl}`, padding 32px.\n\n### Trading Surfaces\n\n**`asset-row`** \u2014 Horizontal row in asset lists (Explore, Wealth). Background transparent, 1px hairline divider. Layout: 32px circular asset icon left, asset name + ticker, price column in `{typography.number-display}`, 24h change column with `{component.price-up-cell}` or `{component.price-down-cell}`.\n\n**`price-up-cell`** + **`price-down-cell`** \u2014 Inline price-change cells. Color only \u2014 green or red text in `{typography.number-display}`, no background fill.\n\n**`asset-icon-circular`** \u2014 Circular plate behind asset glyphs. Background `{colors.surface-strong}`, rounded `{rounded.full}`, 32px diameter.\n\n### Pricing\n\n**`pricing-tier-card`** \u2014 Standard pricing tier on Developer Platform. Background `{colors.canvas}`, rounded `{rounded.xl}`, padding 32px, 1px hairline border. Layout: tier name + price + feature checklist + CTA pill.\n\n**`pricing-tier-featured`** \u2014 The featured tier. Background `{colors.surface-dark}`, text `{colors.on-dark}`. Same skeleton, dark palette \u2014 visual inversion signals \"highlighted choice\" without colored ribbons.\n\n### Forms\n\n**`text-input`** \u2014 Standard text input. Background `{colors.canvas}`, text `{colors.ink}`, rounded `{rounded.md}` (12px), padding 14px \u00D7 16px, height 48px, 1px hairline border. On focus, border thickens to 2px Coinbase Blue.\n\n**`search-input-pill`** \u2014 Pill-shaped search bar. Background `{colors.surface-strong}`, rounded `{rounded.pill}`, padding 12px \u00D7 20px, height 44px.\n\n### Tags & Badges\n\n**`badge-pill`** \u2014 Small uppercase pill used as section labels (\"INSTITUTIONAL\", \"REGULATED\"). Background `{colors.surface-strong}`, text `{colors.ink}`, type `{typography.caption-strong}`, rounded `{rounded.pill}`.\n\n### CTA / Footer\n\n**`cta-band-dark`** \u2014 Pre-footer \"Take control of your money\" band. Background `{colors.surface-dark}`, text `{colors.on-dark}`, vertical padding 96px. Centered headline + two CTAs.\n\n**`footer-light`** \u2014 Closing white-canvas footer. Background `{colors.canvas}`, text `{colors.body}`. 6-column link list.\n\n**`footer-link`** \u2014 Individual footer link. Background transparent, text `{colors.body}`.\n\n**`legal-band`** \u2014 Bottom strip beneath footer columns. All text `{colors.muted}` at `{typography.caption}`.\n\n## Do's and Don'ts\n\n### Do\n- Reserve `{colors.primary}` (Coinbase Blue) for primary CTAs, wordmark, brand-glyph illustrations, inline accent links.\n- Set every CTA as `{rounded.pill}` (100px); every asset glyph as `{rounded.full}`.\n- Keep CoinbaseDisplay headlines at weight 400.\n- Use the dark/light band rotation as page rhythm.\n- Render every numerical value in CoinbaseMono via `{typography.number-display}`.\n- Pair every dark hero with a layered product-UI mockup card stack.\n\n### Don't\n- Don't introduce a secondary brand color. Coinbase Blue is the only action color; trading green/red are semantic-only.\n- Don't bold display copy \u2014 display sits at weight 400; bolding shifts the brand voice.\n- Don't add drop shadow tiers \u2014 system has one shadow tier.\n- Don't use sharp `{rounded.none}` (0px) on CTAs.\n- Don't mix CoinbaseDisplay and CoinbaseSans inside the same headline.\n- Don't use trading green/red as a button background.\n- Don't extract a CTA color from a third-party widget (cookie consent, OneTrust). The brand's CTA color is what appears on actual product CTAs, not on injected modals.\n\n## Responsive Behavior\n\n### Breakpoints\n\n| Name | Width | Key Changes |\n|---|---|---|\n| Mobile | < 640px | Hero h1 80\u219240px; feature card grid 1-up; asset row stacks; nav collapses to hamburger; layered product-UI cards collapse to single card. |\n| Tablet | 640\u20131024px | Hero h1 64px; feature card grid 2-up; asset rows stay horizontal but compress columns. |\n| Desktop | 1024\u20131280px | Full hero h1 80px; feature card grid 3-up; full asset row layout. |\n| Wide | > 1280px | Content caps at 1200px; hero photography full-bleed. |\n\n### Touch Targets\n- Primary CTA pill at 44px height \u2014 at WCAG AAA.\n- Larger hero pill (`{component.button-pill-cta}`) at 56px \u2014 well above AAA.\n- Asset icon circles at 32px \u2014 borderline; padded 8px row creates effective 48px tap zone.\n- Search pill at 44px height \u2014 at AAA.\n\n### Collapsing Strategy\n- Top nav switches to hamburger sheet below 768px. Sign Up CTA stays visible.\n- Hero h1 steps down: 80 \u2192 64 \u2192 52 \u2192 44 \u2192 36px on smallest screens.\n- Layered product-UI mockup cards collapse from 2-3 stacked into a single card on mobile.\n- Pricing tier rows: 3-up \u2192 2-up \u2192 1-up.\n- Asset rows on mobile stack vertically: ticker line on top, price + change line beneath.\n\n## Iteration Guide\n\n1. Focus on a single component at a time. Reference YAML keys directly.\n2. New CTAs default to `{rounded.pill}` (100px); new icon plates default to `{rounded.full}`. Cards use `{rounded.xl}`.\n3. Variants live as separate entries inside the `components:` block.\n4. Use `{token.refs}` everywhere \u2014 never inline hex.\n5. Hover state never documented. Only Default and Active/Pressed.\n6. CoinbaseDisplay 400 for display, CoinbaseSans 400/600/700 for body. CoinbaseMono on every number.\n7. Coinbase Blue stays scarce \u2014 one or two blue moments per band.\n\n## Known Gaps\n\n- CoinbaseDisplay, CoinbaseSans, CoinbaseMono are licensed; Inter and JetBrains Mono are documented substitutes.\n- In-product trading surfaces (order book, charts, order forms) are behind login walls \u2014 this document covers marketing only.\n- Animation timings out of scope.\n- Form validation states beyond focus not visible on captured surfaces.\n- Accent yellow appears only inside Bitcoin asset glyph illustrations; documented as illustrative-only.\n";
2
+
3
+ export { coinbaseBrief };
@@ -0,0 +1,576 @@
1
+ // src/presets/_briefs/coinbase.ts
2
+ var coinbaseBrief = `---
3
+ version: alpha
4
+ name: Coinbase
5
+ description: An institutional-grade crypto exchange whose marketing surfaces read like a quietly-confident financial-services brand. The base canvas is pure white; Coinbase Blue (\`#0052ff\`) is the single brand voltage, used scarcely on primary CTAs, signature glyphs, and inline accent moments. Type runs Coinbase's licensed CoinbaseDisplay (display) and CoinbaseSans (body) at modest weights \u2014 display sits at weight 400 not 700, signaling editorial calm rather than fintech-bombastic. Page rhythm rotates between bright white sections, soft gray elevation bands, and full-bleed dark editorial heroes (\`#0a0b0d\`) carrying product-ui mockup cards. Iconography is geometric and minimal; depth comes from card-on-card layering, never decorative shadows.
6
+
7
+ colors:
8
+ primary: "#0052ff"
9
+ primary-active: "#003ecc"
10
+ primary-disabled: "#a8b8cc"
11
+ ink: "#0a0b0d"
12
+ body: "#5b616e"
13
+ body-strong: "#0a0b0d"
14
+ muted: "#7c828a"
15
+ muted-soft: "#a8acb3"
16
+ hairline: "#dee1e6"
17
+ hairline-soft: "#eef0f3"
18
+ canvas: "#ffffff"
19
+ surface-soft: "#f7f7f7"
20
+ surface-card: "#ffffff"
21
+ surface-strong: "#eef0f3"
22
+ surface-dark: "#0a0b0d"
23
+ surface-dark-elevated: "#16181c"
24
+ on-primary: "#ffffff"
25
+ on-dark: "#ffffff"
26
+ on-dark-soft: "#a8acb3"
27
+ semantic-up: "#05b169"
28
+ semantic-down: "#cf202f"
29
+ accent-yellow: "#f4b000"
30
+
31
+ typography:
32
+ display-mega:
33
+ fontFamily: "'Coinbase Display', -apple-system, system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif"
34
+ fontSize: 80px
35
+ fontWeight: 400
36
+ lineHeight: 1.0
37
+ letterSpacing: -2px
38
+ display-xl:
39
+ fontFamily: "'Coinbase Display', sans-serif"
40
+ fontSize: 64px
41
+ fontWeight: 400
42
+ lineHeight: 1.0
43
+ letterSpacing: -1.6px
44
+ display-lg:
45
+ fontFamily: "'Coinbase Display', sans-serif"
46
+ fontSize: 52px
47
+ fontWeight: 400
48
+ lineHeight: 1.0
49
+ letterSpacing: -1.3px
50
+ display-md:
51
+ fontFamily: "'Coinbase Display', sans-serif"
52
+ fontSize: 44px
53
+ fontWeight: 400
54
+ lineHeight: 1.09
55
+ letterSpacing: -1px
56
+ display-sm:
57
+ fontFamily: "'Coinbase Sans', sans-serif"
58
+ fontSize: 36px
59
+ fontWeight: 400
60
+ lineHeight: 1.11
61
+ letterSpacing: -0.5px
62
+ title-lg:
63
+ fontFamily: "'Coinbase Sans', sans-serif"
64
+ fontSize: 32px
65
+ fontWeight: 400
66
+ lineHeight: 1.13
67
+ letterSpacing: -0.4px
68
+ title-md:
69
+ fontFamily: "'Coinbase Sans', sans-serif"
70
+ fontSize: 18px
71
+ fontWeight: 600
72
+ lineHeight: 1.33
73
+ letterSpacing: 0
74
+ title-sm:
75
+ fontFamily: "'Coinbase Sans', sans-serif"
76
+ fontSize: 16px
77
+ fontWeight: 600
78
+ lineHeight: 1.25
79
+ letterSpacing: 0
80
+ body-md:
81
+ fontFamily: "'Coinbase Sans', sans-serif"
82
+ fontSize: 16px
83
+ fontWeight: 400
84
+ lineHeight: 1.5
85
+ letterSpacing: 0
86
+ body-strong:
87
+ fontFamily: "'Coinbase Sans', sans-serif"
88
+ fontSize: 16px
89
+ fontWeight: 700
90
+ lineHeight: 1.5
91
+ letterSpacing: 0
92
+ body-sm:
93
+ fontFamily: "'Coinbase Sans', sans-serif"
94
+ fontSize: 14px
95
+ fontWeight: 400
96
+ lineHeight: 1.5
97
+ letterSpacing: 0
98
+ caption:
99
+ fontFamily: "'Coinbase Sans', sans-serif"
100
+ fontSize: 13px
101
+ fontWeight: 400
102
+ lineHeight: 1.5
103
+ letterSpacing: 0
104
+ caption-strong:
105
+ fontFamily: "'Coinbase Sans', sans-serif"
106
+ fontSize: 12px
107
+ fontWeight: 600
108
+ lineHeight: 1.5
109
+ letterSpacing: 0
110
+ number-display:
111
+ fontFamily: "'Coinbase Mono', 'Coinbase Sans', monospace"
112
+ fontSize: 18px
113
+ fontWeight: 500
114
+ lineHeight: 1.4
115
+ letterSpacing: 0
116
+ button:
117
+ fontFamily: "'Coinbase Sans', sans-serif"
118
+ fontSize: 16px
119
+ fontWeight: 600
120
+ lineHeight: 1.15
121
+ letterSpacing: 0
122
+ nav-link:
123
+ fontFamily: "'Coinbase Sans', sans-serif"
124
+ fontSize: 14px
125
+ fontWeight: 500
126
+ lineHeight: 1.4
127
+ letterSpacing: 0
128
+
129
+ rounded:
130
+ none: 0px
131
+ xs: 4px
132
+ sm: 8px
133
+ md: 12px
134
+ lg: 16px
135
+ xl: 24px
136
+ pill: 100px
137
+ full: 9999px
138
+
139
+ spacing:
140
+ xxs: 4px
141
+ xs: 8px
142
+ sm: 12px
143
+ base: 16px
144
+ md: 20px
145
+ lg: 24px
146
+ xl: 32px
147
+ xxl: 48px
148
+ section: 96px
149
+
150
+ components:
151
+ top-nav-light:
152
+ backgroundColor: "{colors.canvas}"
153
+ textColor: "{colors.ink}"
154
+ typography: "{typography.nav-link}"
155
+ height: 64px
156
+ top-nav-on-dark:
157
+ backgroundColor: "{colors.surface-dark}"
158
+ textColor: "{colors.on-dark}"
159
+ typography: "{typography.nav-link}"
160
+ height: 64px
161
+ button-primary:
162
+ backgroundColor: "{colors.primary}"
163
+ textColor: "{colors.on-primary}"
164
+ typography: "{typography.button}"
165
+ rounded: "{rounded.pill}"
166
+ padding: 12px 20px
167
+ height: 44px
168
+ button-primary-active:
169
+ backgroundColor: "{colors.primary-active}"
170
+ textColor: "{colors.on-primary}"
171
+ rounded: "{rounded.pill}"
172
+ button-primary-disabled:
173
+ backgroundColor: "{colors.primary-disabled}"
174
+ textColor: "{colors.on-primary}"
175
+ rounded: "{rounded.pill}"
176
+ button-secondary-light:
177
+ backgroundColor: "{colors.surface-strong}"
178
+ textColor: "{colors.ink}"
179
+ typography: "{typography.button}"
180
+ rounded: "{rounded.pill}"
181
+ padding: 12px 20px
182
+ height: 44px
183
+ button-secondary-dark:
184
+ backgroundColor: "{colors.surface-dark-elevated}"
185
+ textColor: "{colors.on-dark}"
186
+ typography: "{typography.button}"
187
+ rounded: "{rounded.pill}"
188
+ padding: 12px 20px
189
+ height: 44px
190
+ button-outline-on-dark:
191
+ backgroundColor: transparent
192
+ textColor: "{colors.on-dark}"
193
+ typography: "{typography.button}"
194
+ rounded: "{rounded.pill}"
195
+ padding: 11px 19px
196
+ height: 44px
197
+ button-tertiary-text:
198
+ backgroundColor: transparent
199
+ textColor: "{colors.primary}"
200
+ typography: "{typography.button}"
201
+ button-pill-cta:
202
+ backgroundColor: "{colors.primary}"
203
+ textColor: "{colors.on-primary}"
204
+ typography: "{typography.button}"
205
+ rounded: "{rounded.pill}"
206
+ padding: 16px 32px
207
+ height: 56px
208
+ hero-band-dark:
209
+ backgroundColor: "{colors.surface-dark}"
210
+ textColor: "{colors.on-dark}"
211
+ typography: "{typography.display-mega}"
212
+ padding: 96px
213
+ hero-band-light:
214
+ backgroundColor: "{colors.canvas}"
215
+ textColor: "{colors.ink}"
216
+ typography: "{typography.display-mega}"
217
+ padding: 96px
218
+ product-ui-card-dark:
219
+ backgroundColor: "{colors.surface-dark-elevated}"
220
+ textColor: "{colors.on-dark}"
221
+ rounded: "{rounded.xl}"
222
+ padding: 32px
223
+ product-ui-card-light:
224
+ backgroundColor: "{colors.canvas}"
225
+ textColor: "{colors.ink}"
226
+ rounded: "{rounded.xl}"
227
+ padding: 32px
228
+ feature-card:
229
+ backgroundColor: "{colors.canvas}"
230
+ textColor: "{colors.ink}"
231
+ typography: "{typography.title-md}"
232
+ rounded: "{rounded.xl}"
233
+ padding: 32px
234
+ asset-row:
235
+ backgroundColor: transparent
236
+ textColor: "{colors.ink}"
237
+ typography: "{typography.body-md}"
238
+ padding: 16px 0
239
+ price-up-cell:
240
+ backgroundColor: transparent
241
+ textColor: "{colors.semantic-up}"
242
+ typography: "{typography.number-display}"
243
+ price-down-cell:
244
+ backgroundColor: transparent
245
+ textColor: "{colors.semantic-down}"
246
+ typography: "{typography.number-display}"
247
+ pricing-tier-card:
248
+ backgroundColor: "{colors.canvas}"
249
+ textColor: "{colors.ink}"
250
+ typography: "{typography.body-md}"
251
+ rounded: "{rounded.xl}"
252
+ padding: 32px
253
+ pricing-tier-featured:
254
+ backgroundColor: "{colors.surface-dark}"
255
+ textColor: "{colors.on-dark}"
256
+ typography: "{typography.body-md}"
257
+ rounded: "{rounded.xl}"
258
+ padding: 32px
259
+ cta-band-dark:
260
+ backgroundColor: "{colors.surface-dark}"
261
+ textColor: "{colors.on-dark}"
262
+ typography: "{typography.display-lg}"
263
+ padding: 96px
264
+ text-input:
265
+ backgroundColor: "{colors.canvas}"
266
+ textColor: "{colors.ink}"
267
+ typography: "{typography.body-md}"
268
+ rounded: "{rounded.md}"
269
+ padding: 14px 16px
270
+ height: 48px
271
+ search-input-pill:
272
+ backgroundColor: "{colors.surface-strong}"
273
+ textColor: "{colors.ink}"
274
+ typography: "{typography.body-md}"
275
+ rounded: "{rounded.pill}"
276
+ padding: 12px 20px
277
+ height: 44px
278
+ badge-pill:
279
+ backgroundColor: "{colors.surface-strong}"
280
+ textColor: "{colors.ink}"
281
+ typography: "{typography.caption-strong}"
282
+ rounded: "{rounded.pill}"
283
+ padding: 4px 12px
284
+ asset-icon-circular:
285
+ backgroundColor: "{colors.surface-strong}"
286
+ rounded: "{rounded.full}"
287
+ size: 32px
288
+ footer-light:
289
+ backgroundColor: "{colors.canvas}"
290
+ textColor: "{colors.body}"
291
+ typography: "{typography.body-sm}"
292
+ padding: 64px 48px
293
+ footer-link:
294
+ backgroundColor: transparent
295
+ textColor: "{colors.body}"
296
+ typography: "{typography.body-sm}"
297
+ legal-band:
298
+ backgroundColor: "{colors.canvas}"
299
+ textColor: "{colors.muted}"
300
+ typography: "{typography.caption}"
301
+ ---
302
+
303
+ ## Overview
304
+
305
+ Coinbase reads like an institutional financial brand that happens to trade crypto \u2014 the marketing surfaces are quiet, white-canvas, editorially-spaced, and almost monochromatic. The single brand voltage is **Coinbase Blue** (\`{colors.primary}\` \u2014 #0052ff), used scarcely: every primary CTA pill, the brand wordmark, and inline emphasis links. Beyond that one blue, the system is white canvas + ink + soft gray elevation bands + a deep near-black editorial canvas (\`{colors.surface-dark}\` \u2014 #0a0b0d) for full-bleed product-mockup heroes.
306
+
307
+ Type pairs **CoinbaseDisplay** for hero headlines with **CoinbaseSans** for body, captions, and navigation. Display sits at **weight 400** \u2014 not the 700+ typical of trading platforms. The choice signals editorial calm and institutional trust rather than fintech urgency.
308
+
309
+ The page rhythm rotates three modes: bright white editorial sections, soft-gray elevation bands, and **full-bleed dark editorial heroes** carrying layered product-UI mockup cards. The dark hero with floating dashboard mockups is the single most distinctive component.
310
+
311
+ **Key Characteristics:**
312
+ - Single accent color: \`{colors.primary}\` (#0052ff Coinbase Blue) carries every primary CTA, wordmark, and inline brand link. Used scarcely.
313
+ - Modest display weights \u2014 CoinbaseDisplay at weight 400, never 700+.
314
+ - Editorial pill geometry: every CTA is \`{rounded.pill}\` (100px), every asset glyph is \`{rounded.full}\`, every card is \`{rounded.xl}\` (24px). Sharp corners absent.
315
+ - Full-bleed dark heroes with floating product-UI cards: \`{component.hero-band-dark}\` plus inline \`{component.product-ui-card-dark}\` mockups is the brand's strongest signature pattern.
316
+ - Trading semantics: \`{colors.semantic-up}\` (#05b169) and \`{colors.semantic-down}\` (#cf202f) \u2014 text color only, never background fills.
317
+ - 96px section rhythm \u2014 generous editorial pacing.
318
+
319
+ ## Colors
320
+
321
+ ### Brand & Accent
322
+ - **Coinbase Blue** (\`{colors.primary}\` \u2014 #0052ff): The single brand color. Every primary CTA pill, the Coinbase wordmark, and inline brand links.
323
+ - **Coinbase Blue Active** (\`{colors.primary-active}\` \u2014 #003ecc): Press-state darken on the primary pill.
324
+ - **Coinbase Blue Disabled** (\`{colors.primary-disabled}\` \u2014 #a8b8cc): Faded-blue tint for disabled CTAs.
325
+ - **Accent Yellow** (\`{colors.accent-yellow}\` \u2014 #f4b000): A small sub-brand accent used very sparingly on Bitcoin/asset glyph fills inside feature cards. Illustrative-only, not an action color.
326
+
327
+ ### Surface
328
+ - **Canvas** (\`{colors.canvas}\` \u2014 #ffffff): The default page floor.
329
+ - **Surface Soft** (\`{colors.surface-soft}\` \u2014 #f7f7f7): Subtle alternating band surface.
330
+ - **Surface Strong** (\`{colors.surface-strong}\` \u2014 #eef0f3): The light-gray fill behind secondary buttons, search pills, asset-icon plates.
331
+ - **Surface Dark** (\`{colors.surface-dark}\` \u2014 #0a0b0d): Deep near-black canvas for full-bleed dark heroes, CTA bands. Same hex as \`{colors.ink}\` \u2014 page-floor and text-color share the value.
332
+ - **Surface Dark Elevated** (\`{colors.surface-dark-elevated}\` \u2014 #16181c): One step lighter, used for floating product-UI mockup cards inside dark heroes.
333
+
334
+ ### Hairlines
335
+ - **Hairline** (\`{colors.hairline}\` \u2014 #dee1e6): Default 1px divider on white surfaces.
336
+ - **Hairline Soft** (\`{colors.hairline-soft}\` \u2014 #eef0f3): Lighter divider \u2014 same hex as \`{colors.surface-strong}\`.
337
+
338
+ ### Text
339
+ - **Ink** (\`{colors.ink}\` \u2014 #0a0b0d): Display headings, primary nav, body emphasis.
340
+ - **Body** (\`{colors.body}\` \u2014 #5b616e): Default running-text \u2014 slightly cool gray.
341
+ - **Body Strong** (\`{colors.body-strong}\` \u2014 #0a0b0d): Same as ink, used for stronger emphasis.
342
+ - **Muted** (\`{colors.muted}\` \u2014 #7c828a): Sub-titles, breadcrumbs, footer secondary.
343
+ - **Muted Soft** (\`{colors.muted-soft}\` \u2014 #a8acb3): Disabled link text.
344
+ - **On Primary** (\`{colors.on-primary}\` \u2014 #ffffff): White text on Coinbase Blue CTAs.
345
+ - **On Dark** (\`{colors.on-dark}\` \u2014 #ffffff): White text on dark heroes.
346
+ - **On Dark Soft** (\`{colors.on-dark-soft}\` \u2014 #a8acb3): Muted off-white for secondary text on dark.
347
+
348
+ ### Trading Semantics
349
+ - **Semantic Up** (\`{colors.semantic-up}\` \u2014 #05b169): "Price up" green, text color only.
350
+ - **Semantic Down** (\`{colors.semantic-down}\` \u2014 #cf202f): "Price down" red, text color only.
351
+
352
+ ## Typography
353
+
354
+ ### Font Family
355
+ The system runs **CoinbaseDisplay** (display headlines), **CoinbaseSans** (body, navigation, captions, buttons), **CoinbaseIcons** (icon font), and **CoinbaseMono** for tabular numerical data. Fallback stack: \`-apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif\`.
356
+
357
+ The display/body split is functional: CoinbaseDisplay carries hero headlines only; CoinbaseSans carries everything else.
358
+
359
+ ### Hierarchy
360
+
361
+ | Token | Size | Weight | Line Height | Letter Spacing | Use |
362
+ |---|---|---|---|---|---|
363
+ | \`{typography.display-mega}\` | 80px | 400 | 1.0 | -2px | Homepage hero h1 |
364
+ | \`{typography.display-xl}\` | 64px | 400 | 1.0 | -1.6px | Subsidiary heroes |
365
+ | \`{typography.display-lg}\` | 52px | 400 | 1.0 | -1.3px | Section heads |
366
+ | \`{typography.display-md}\` | 44px | 400 | 1.09 | -1px | CTA-band headlines |
367
+ | \`{typography.display-sm}\` | 36px | 400 | 1.11 | -0.5px | Sub-section heads \u2014 CoinbaseSans |
368
+ | \`{typography.title-lg}\` | 32px | 400 | 1.13 | -0.4px | Card group titles |
369
+ | \`{typography.title-md}\` | 18px | 600 | 1.33 | 0 | Component titles, asset row primary |
370
+ | \`{typography.title-sm}\` | 16px | 600 | 1.25 | 0 | List labels |
371
+ | \`{typography.body-md}\` | 16px | 400 | 1.5 | 0 | Default body |
372
+ | \`{typography.body-strong}\` | 16px | 700 | 1.5 | 0 | Emphasized body |
373
+ | \`{typography.body-sm}\` | 14px | 400 | 1.5 | 0 | Footer body |
374
+ | \`{typography.caption}\` | 13px | 400 | 1.5 | 0 | Photo captions |
375
+ | \`{typography.caption-strong}\` | 12px | 600 | 1.5 | 0 | Badge pill labels |
376
+ | \`{typography.number-display}\` | 18px | 500 | 1.4 | 0 | Asset prices, percent changes \u2014 CoinbaseMono |
377
+ | \`{typography.button}\` | 16px | 600 | 1.15 | 0 | Standard CTA pill |
378
+ | \`{typography.nav-link}\` | 14px | 500 | 1.4 | 0 | Top-nav menu items |
379
+
380
+ ### Principles
381
+ - **Display weight stays at 400.** The single most distinctive typographic choice \u2014 signals "calm institutional brand" rather than "trading-platform urgency."
382
+ - **Negative letter-spacing on display only.** Display uses -1px to -2px tracking; body stays at 0.
383
+ - **CoinbaseMono on every number.** Asset prices, percent changes \u2014 anything tabular renders in CoinbaseMono.
384
+
385
+ ### Note on Font Substitutes
386
+ CoinbaseDisplay, CoinbaseSans, and CoinbaseMono are licensed Coinbase typefaces.
387
+ - **CoinbaseDisplay \u2192 Inter** at weight 400, letter-spacing -1.5%.
388
+ - **CoinbaseSans \u2192 Inter** at weight 400/600.
389
+ - **CoinbaseMono \u2192 JetBrains Mono** or **Geist Mono** at weight 500.
390
+
391
+ ## Layout
392
+
393
+ ### Spacing System
394
+ - **Base unit:** 4px.
395
+ - **Tokens:** \`{spacing.xxs}\` 4px \xB7 \`{spacing.xs}\` 8px \xB7 \`{spacing.sm}\` 12px \xB7 \`{spacing.base}\` 16px \xB7 \`{spacing.md}\` 20px \xB7 \`{spacing.lg}\` 24px \xB7 \`{spacing.xl}\` 32px \xB7 \`{spacing.xxl}\` 48px \xB7 \`{spacing.section}\` 96px.
396
+ - **Section padding:** \`{spacing.section}\` (96px) for every major editorial band.
397
+ - **Card internal padding:** \`{spacing.xl}\` (32px) for feature cards and product-UI mockups.
398
+
399
+ ### Grid & Container
400
+ - **Max content width:** ~1200px centered. Hero photography full-bleed.
401
+ - **Editorial body:** Single 12-column grid.
402
+ - **Feature card grids:** 2-up at desktop for hero splits, 3-up for benefit grids.
403
+ - **Footer:** 6-column link list at desktop.
404
+
405
+ ### Whitespace Philosophy
406
+ Generous editorial pacing \u2014 closer to Bloomberg or the Financial Times than to a trading dashboard. 96px between bands; cards inside bands sit 24px apart. Density lives behind login walls, not on marketing.
407
+
408
+ ## Elevation & Depth
409
+
410
+ | Level | Treatment | Use |
411
+ |---|---|---|
412
+ | Flat | No shadow, no border | 80% of surfaces |
413
+ | Hairline border | 1px \`{colors.hairline}\` | Feature card outlines on white |
414
+ | Soft drop | \`0 4px 12px rgba(0, 0, 0, 0.04)\` | Single shadow tier \u2014 hovered cards |
415
+ | Photographic | Full-bleed product-UI mockups | Hero depth |
416
+
417
+ ### Decorative Depth
418
+ - **Layered product-UI cards inside dark heroes** is the most distinctive decorative pattern \u2014 a \`{component.product-ui-card-dark}\` floats above a darker base canvas, often with a second smaller card overlapping at an angle.
419
+ - **Geometric brand illustrations** carry illustrative depth where shadows would otherwise.
420
+
421
+ ## Shapes
422
+
423
+ ### Border Radius Scale
424
+
425
+ | Token | Value | Use |
426
+ |---|---|---|
427
+ | \`{rounded.none}\` | 0px | Reserved (essentially unused) |
428
+ | \`{rounded.xs}\` | 4px | Inline tags |
429
+ | \`{rounded.sm}\` | 8px | Compact rows |
430
+ | \`{rounded.md}\` | 12px | Form inputs |
431
+ | \`{rounded.lg}\` | 16px | Mid-size cards |
432
+ | \`{rounded.xl}\` | 24px | Feature cards, product-UI mockups, pricing tiers |
433
+ | \`{rounded.pill}\` | 100px | All CTA buttons, search pills, badges |
434
+ | \`{rounded.full}\` | 9999px | Asset icon circles, avatars |
435
+
436
+ Pill for interactive, card-radius (24px) for containers, full circle for icons. Sharp corners absent.
437
+
438
+ ## Components
439
+
440
+ ### Top Navigation
441
+
442
+ **\`top-nav-light\`** \u2014 Default top nav on white pages. Background \`{colors.canvas}\`, text \`{colors.ink}\`, height 64px. Layout: Coinbase wordmark left, primary horizontal menu (Cryptocurrencies / Individuals / Businesses / Institutions / Developers / Company), search-icon + globe + Sign In + Sign Up CTAs right.
443
+
444
+ **\`top-nav-on-dark\`** \u2014 Top nav over a dark hero band. Background \`{colors.surface-dark}\`, text \`{colors.on-dark}\`. Same layout.
445
+
446
+ ### Buttons
447
+
448
+ **\`button-primary\`** \u2014 The signature Coinbase Blue pill. Background \`{colors.primary}\`, text \`{colors.on-primary}\`, type \`{typography.button}\` (16px / 600), padding 12px \xD7 20px, height 44px, rounded \`{rounded.pill}\` (100px).
449
+
450
+ **\`button-primary-active\`** \u2014 Press state. Background \`{colors.primary-active}\`, deeper blue.
451
+
452
+ **\`button-primary-disabled\`** \u2014 Faded blue tint. Background \`{colors.primary-disabled}\`. Cursor not-allowed.
453
+
454
+ **\`button-secondary-light\`** \u2014 Soft-gray secondary on white surfaces. Background \`{colors.surface-strong}\`, text \`{colors.ink}\`, same pill geometry.
455
+
456
+ **\`button-secondary-dark\`** \u2014 Used on dark heroes. Background \`{colors.surface-dark-elevated}\`, text \`{colors.on-dark}\`, same pill geometry.
457
+
458
+ **\`button-outline-on-dark\`** \u2014 Transparent pill with white outline. Background transparent, text \`{colors.on-dark}\`, 1px white border.
459
+
460
+ **\`button-tertiary-text\`** \u2014 Inline text link. Background transparent, text \`{colors.primary}\`, type \`{typography.button}\`.
461
+
462
+ **\`button-pill-cta\`** \u2014 Larger pill CTA used on the homepage hero ("Get started"). Same Coinbase Blue palette but with 56px height and 16px \xD7 32px padding for a prouder stance.
463
+
464
+ ### Hero Bands
465
+
466
+ **\`hero-band-dark\`** \u2014 The signature full-bleed dark hero. Background \`{colors.surface-dark}\`, text \`{colors.on-dark}\`, full-bleed layered product-UI mockup cards. Display headline left in \`{typography.display-mega}\` (80px / 400), subhead in \`{typography.body-md}\`, two CTAs.
467
+
468
+ **\`hero-band-light\`** \u2014 White-canvas variant used on Wealth and Explore. Background \`{colors.canvas}\`, text \`{colors.ink}\`. Same skeleton, light palette.
469
+
470
+ ### Cards
471
+
472
+ **\`product-ui-card-dark\`** \u2014 The floating product-UI mockup. Background \`{colors.surface-dark-elevated}\`, text \`{colors.on-dark}\`, rounded \`{rounded.xl}\` (24px), padding 32px. Often shown as 2-3 stacked cards at slight rotation, mimicking a layered dashboard.
473
+
474
+ **\`product-ui-card-light\`** \u2014 Light-canvas variant used on Explore for asset cards. Background \`{colors.canvas}\`, text \`{colors.ink}\`, same geometry, 1px hairline border.
475
+
476
+ **\`feature-card\`** \u2014 Used in 3-up and 2-up grids. Background \`{colors.canvas}\`, text \`{colors.ink}\`, type \`{typography.title-md}\`, rounded \`{rounded.xl}\`, padding 32px.
477
+
478
+ ### Trading Surfaces
479
+
480
+ **\`asset-row\`** \u2014 Horizontal row in asset lists (Explore, Wealth). Background transparent, 1px hairline divider. Layout: 32px circular asset icon left, asset name + ticker, price column in \`{typography.number-display}\`, 24h change column with \`{component.price-up-cell}\` or \`{component.price-down-cell}\`.
481
+
482
+ **\`price-up-cell\`** + **\`price-down-cell\`** \u2014 Inline price-change cells. Color only \u2014 green or red text in \`{typography.number-display}\`, no background fill.
483
+
484
+ **\`asset-icon-circular\`** \u2014 Circular plate behind asset glyphs. Background \`{colors.surface-strong}\`, rounded \`{rounded.full}\`, 32px diameter.
485
+
486
+ ### Pricing
487
+
488
+ **\`pricing-tier-card\`** \u2014 Standard pricing tier on Developer Platform. Background \`{colors.canvas}\`, rounded \`{rounded.xl}\`, padding 32px, 1px hairline border. Layout: tier name + price + feature checklist + CTA pill.
489
+
490
+ **\`pricing-tier-featured\`** \u2014 The featured tier. Background \`{colors.surface-dark}\`, text \`{colors.on-dark}\`. Same skeleton, dark palette \u2014 visual inversion signals "highlighted choice" without colored ribbons.
491
+
492
+ ### Forms
493
+
494
+ **\`text-input\`** \u2014 Standard text input. Background \`{colors.canvas}\`, text \`{colors.ink}\`, rounded \`{rounded.md}\` (12px), padding 14px \xD7 16px, height 48px, 1px hairline border. On focus, border thickens to 2px Coinbase Blue.
495
+
496
+ **\`search-input-pill\`** \u2014 Pill-shaped search bar. Background \`{colors.surface-strong}\`, rounded \`{rounded.pill}\`, padding 12px \xD7 20px, height 44px.
497
+
498
+ ### Tags & Badges
499
+
500
+ **\`badge-pill\`** \u2014 Small uppercase pill used as section labels ("INSTITUTIONAL", "REGULATED"). Background \`{colors.surface-strong}\`, text \`{colors.ink}\`, type \`{typography.caption-strong}\`, rounded \`{rounded.pill}\`.
501
+
502
+ ### CTA / Footer
503
+
504
+ **\`cta-band-dark\`** \u2014 Pre-footer "Take control of your money" band. Background \`{colors.surface-dark}\`, text \`{colors.on-dark}\`, vertical padding 96px. Centered headline + two CTAs.
505
+
506
+ **\`footer-light\`** \u2014 Closing white-canvas footer. Background \`{colors.canvas}\`, text \`{colors.body}\`. 6-column link list.
507
+
508
+ **\`footer-link\`** \u2014 Individual footer link. Background transparent, text \`{colors.body}\`.
509
+
510
+ **\`legal-band\`** \u2014 Bottom strip beneath footer columns. All text \`{colors.muted}\` at \`{typography.caption}\`.
511
+
512
+ ## Do's and Don'ts
513
+
514
+ ### Do
515
+ - Reserve \`{colors.primary}\` (Coinbase Blue) for primary CTAs, wordmark, brand-glyph illustrations, inline accent links.
516
+ - Set every CTA as \`{rounded.pill}\` (100px); every asset glyph as \`{rounded.full}\`.
517
+ - Keep CoinbaseDisplay headlines at weight 400.
518
+ - Use the dark/light band rotation as page rhythm.
519
+ - Render every numerical value in CoinbaseMono via \`{typography.number-display}\`.
520
+ - Pair every dark hero with a layered product-UI mockup card stack.
521
+
522
+ ### Don't
523
+ - Don't introduce a secondary brand color. Coinbase Blue is the only action color; trading green/red are semantic-only.
524
+ - Don't bold display copy \u2014 display sits at weight 400; bolding shifts the brand voice.
525
+ - Don't add drop shadow tiers \u2014 system has one shadow tier.
526
+ - Don't use sharp \`{rounded.none}\` (0px) on CTAs.
527
+ - Don't mix CoinbaseDisplay and CoinbaseSans inside the same headline.
528
+ - Don't use trading green/red as a button background.
529
+ - Don't extract a CTA color from a third-party widget (cookie consent, OneTrust). The brand's CTA color is what appears on actual product CTAs, not on injected modals.
530
+
531
+ ## Responsive Behavior
532
+
533
+ ### Breakpoints
534
+
535
+ | Name | Width | Key Changes |
536
+ |---|---|---|
537
+ | Mobile | < 640px | Hero h1 80\u219240px; feature card grid 1-up; asset row stacks; nav collapses to hamburger; layered product-UI cards collapse to single card. |
538
+ | Tablet | 640\u20131024px | Hero h1 64px; feature card grid 2-up; asset rows stay horizontal but compress columns. |
539
+ | Desktop | 1024\u20131280px | Full hero h1 80px; feature card grid 3-up; full asset row layout. |
540
+ | Wide | > 1280px | Content caps at 1200px; hero photography full-bleed. |
541
+
542
+ ### Touch Targets
543
+ - Primary CTA pill at 44px height \u2014 at WCAG AAA.
544
+ - Larger hero pill (\`{component.button-pill-cta}\`) at 56px \u2014 well above AAA.
545
+ - Asset icon circles at 32px \u2014 borderline; padded 8px row creates effective 48px tap zone.
546
+ - Search pill at 44px height \u2014 at AAA.
547
+
548
+ ### Collapsing Strategy
549
+ - Top nav switches to hamburger sheet below 768px. Sign Up CTA stays visible.
550
+ - Hero h1 steps down: 80 \u2192 64 \u2192 52 \u2192 44 \u2192 36px on smallest screens.
551
+ - Layered product-UI mockup cards collapse from 2-3 stacked into a single card on mobile.
552
+ - Pricing tier rows: 3-up \u2192 2-up \u2192 1-up.
553
+ - Asset rows on mobile stack vertically: ticker line on top, price + change line beneath.
554
+
555
+ ## Iteration Guide
556
+
557
+ 1. Focus on a single component at a time. Reference YAML keys directly.
558
+ 2. New CTAs default to \`{rounded.pill}\` (100px); new icon plates default to \`{rounded.full}\`. Cards use \`{rounded.xl}\`.
559
+ 3. Variants live as separate entries inside the \`components:\` block.
560
+ 4. Use \`{token.refs}\` everywhere \u2014 never inline hex.
561
+ 5. Hover state never documented. Only Default and Active/Pressed.
562
+ 6. CoinbaseDisplay 400 for display, CoinbaseSans 400/600/700 for body. CoinbaseMono on every number.
563
+ 7. Coinbase Blue stays scarce \u2014 one or two blue moments per band.
564
+
565
+ ## Known Gaps
566
+
567
+ - CoinbaseDisplay, CoinbaseSans, CoinbaseMono are licensed; Inter and JetBrains Mono are documented substitutes.
568
+ - In-product trading surfaces (order book, charts, order forms) are behind login walls \u2014 this document covers marketing only.
569
+ - Animation timings out of scope.
570
+ - Form validation states beyond focus not visible on captured surfaces.
571
+ - Accent yellow appears only inside Bitcoin asset glyph illustrations; documented as illustrative-only.
572
+ `;
573
+ export {
574
+ coinbaseBrief
575
+ };
576
+ //# sourceMappingURL=coinbase.js.map