designmd-forge 1.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 (907) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +119 -0
  3. package/dist/__tests__/designStore.test.js +41 -0
  4. package/dist/__tests__/linter.test.js +23 -0
  5. package/dist/__tests__/sectionParser.test.js +60 -0
  6. package/dist/__tests__/server.test.js +129 -0
  7. package/dist/constants.js +12 -0
  8. package/dist/data/authoring-guide.md +113 -0
  9. package/dist/data/designs/airbnb.md +545 -0
  10. package/dist/data/designs/airtable.md +554 -0
  11. package/dist/data/designs/apple.md +562 -0
  12. package/dist/data/designs/binance.md +634 -0
  13. package/dist/data/designs/bmw-m.md +503 -0
  14. package/dist/data/designs/bmw.md +544 -0
  15. package/dist/data/designs/bugatti.md +454 -0
  16. package/dist/data/designs/cal.md +542 -0
  17. package/dist/data/designs/card-heavy.md +250 -0
  18. package/dist/data/designs/claude.md +589 -0
  19. package/dist/data/designs/clay.md +541 -0
  20. package/dist/data/designs/clickhouse.md +544 -0
  21. package/dist/data/designs/cohere.md +451 -0
  22. package/dist/data/designs/coinbase.md +570 -0
  23. package/dist/data/designs/composio.md +506 -0
  24. package/dist/data/designs/content-first.md +236 -0
  25. package/dist/data/designs/cursor.md +537 -0
  26. package/dist/data/designs/data-dashboard.md +300 -0
  27. package/dist/data/designs/dell-1996.md +632 -0
  28. package/dist/data/designs/elevenlabs.md +504 -0
  29. package/dist/data/designs/enterprise-neutral.md +252 -0
  30. package/dist/data/designs/expo.md +526 -0
  31. package/dist/data/designs/ferrari.md +531 -0
  32. package/dist/data/designs/figma.md +578 -0
  33. package/dist/data/designs/framer.md +544 -0
  34. package/dist/data/designs/hashicorp.md +575 -0
  35. package/dist/data/designs/hp.md +670 -0
  36. package/dist/data/designs/ibm.md +550 -0
  37. package/dist/data/designs/intercom.md +546 -0
  38. package/dist/data/designs/ios-acorns-android.md +430 -0
  39. package/dist/data/designs/ios-acorns-expo.md +381 -0
  40. package/dist/data/designs/ios-acorns-swiftui.md +378 -0
  41. package/dist/data/designs/ios-acorns.md +384 -0
  42. package/dist/data/designs/ios-airbnb-android.md +658 -0
  43. package/dist/data/designs/ios-airbnb-expo.md +457 -0
  44. package/dist/data/designs/ios-airbnb-swiftui.md +464 -0
  45. package/dist/data/designs/ios-airbnb.md +410 -0
  46. package/dist/data/designs/ios-alltrails-android.md +451 -0
  47. package/dist/data/designs/ios-alltrails-expo.md +400 -0
  48. package/dist/data/designs/ios-alltrails-swiftui.md +343 -0
  49. package/dist/data/designs/ios-alltrails.md +344 -0
  50. package/dist/data/designs/ios-amazon-android.md +686 -0
  51. package/dist/data/designs/ios-amazon-expo.md +433 -0
  52. package/dist/data/designs/ios-amazon-music-android.md +416 -0
  53. package/dist/data/designs/ios-amazon-music-expo.md +368 -0
  54. package/dist/data/designs/ios-amazon-music-swiftui.md +436 -0
  55. package/dist/data/designs/ios-amazon-music.md +389 -0
  56. package/dist/data/designs/ios-amazon-swiftui.md +460 -0
  57. package/dist/data/designs/ios-amazon.md +440 -0
  58. package/dist/data/designs/ios-apple-fitness-android.md +462 -0
  59. package/dist/data/designs/ios-apple-fitness-expo.md +373 -0
  60. package/dist/data/designs/ios-apple-fitness-swiftui.md +373 -0
  61. package/dist/data/designs/ios-apple-fitness.md +399 -0
  62. package/dist/data/designs/ios-apple-maps-android.md +646 -0
  63. package/dist/data/designs/ios-apple-maps-expo.md +557 -0
  64. package/dist/data/designs/ios-apple-maps-swiftui.md +588 -0
  65. package/dist/data/designs/ios-apple-maps.md +447 -0
  66. package/dist/data/designs/ios-apple-music-android.md +737 -0
  67. package/dist/data/designs/ios-apple-music-expo.md +596 -0
  68. package/dist/data/designs/ios-apple-music-swiftui.md +578 -0
  69. package/dist/data/designs/ios-apple-music.md +494 -0
  70. package/dist/data/designs/ios-apple-notes-android.md +675 -0
  71. package/dist/data/designs/ios-apple-notes-expo.md +468 -0
  72. package/dist/data/designs/ios-apple-notes-swiftui.md +489 -0
  73. package/dist/data/designs/ios-apple-notes.md +413 -0
  74. package/dist/data/designs/ios-apple-tv-android.md +405 -0
  75. package/dist/data/designs/ios-apple-tv-expo.md +341 -0
  76. package/dist/data/designs/ios-apple-tv-swiftui.md +348 -0
  77. package/dist/data/designs/ios-apple-tv.md +390 -0
  78. package/dist/data/designs/ios-apple-wallet-android.md +617 -0
  79. package/dist/data/designs/ios-apple-wallet-expo.md +487 -0
  80. package/dist/data/designs/ios-apple-wallet-swiftui.md +425 -0
  81. package/dist/data/designs/ios-apple-wallet.md +360 -0
  82. package/dist/data/designs/ios-asana-android.md +435 -0
  83. package/dist/data/designs/ios-asana-expo.md +411 -0
  84. package/dist/data/designs/ios-asana-swiftui.md +416 -0
  85. package/dist/data/designs/ios-asana.md +433 -0
  86. package/dist/data/designs/ios-audible-android.md +450 -0
  87. package/dist/data/designs/ios-audible-expo.md +328 -0
  88. package/dist/data/designs/ios-audible-swiftui.md +418 -0
  89. package/dist/data/designs/ios-audible.md +364 -0
  90. package/dist/data/designs/ios-bandcamp-android.md +471 -0
  91. package/dist/data/designs/ios-bandcamp-expo.md +378 -0
  92. package/dist/data/designs/ios-bandcamp-swiftui.md +374 -0
  93. package/dist/data/designs/ios-bandcamp.md +372 -0
  94. package/dist/data/designs/ios-bear-android.md +496 -0
  95. package/dist/data/designs/ios-bear-expo.md +449 -0
  96. package/dist/data/designs/ios-bear-swiftui.md +479 -0
  97. package/dist/data/designs/ios-bear.md +412 -0
  98. package/dist/data/designs/ios-bereal-android.md +392 -0
  99. package/dist/data/designs/ios-bereal-expo.md +299 -0
  100. package/dist/data/designs/ios-bereal-swiftui.md +319 -0
  101. package/dist/data/designs/ios-bereal.md +336 -0
  102. package/dist/data/designs/ios-binance-android.md +481 -0
  103. package/dist/data/designs/ios-binance-expo.md +404 -0
  104. package/dist/data/designs/ios-binance-swiftui.md +418 -0
  105. package/dist/data/designs/ios-binance.md +410 -0
  106. package/dist/data/designs/ios-bluesky-android.md +442 -0
  107. package/dist/data/designs/ios-bluesky-expo.md +362 -0
  108. package/dist/data/designs/ios-bluesky-swiftui.md +328 -0
  109. package/dist/data/designs/ios-bluesky.md +338 -0
  110. package/dist/data/designs/ios-booking-android.md +471 -0
  111. package/dist/data/designs/ios-booking-expo.md +364 -0
  112. package/dist/data/designs/ios-booking-swiftui.md +377 -0
  113. package/dist/data/designs/ios-booking.md +346 -0
  114. package/dist/data/designs/ios-bumble-android.md +756 -0
  115. package/dist/data/designs/ios-bumble-expo.md +629 -0
  116. package/dist/data/designs/ios-bumble-swiftui.md +546 -0
  117. package/dist/data/designs/ios-bumble.md +424 -0
  118. package/dist/data/designs/ios-cal-ai-android.md +664 -0
  119. package/dist/data/designs/ios-cal-ai-expo.md +415 -0
  120. package/dist/data/designs/ios-cal-ai-swiftui.md +486 -0
  121. package/dist/data/designs/ios-cal-ai.md +387 -0
  122. package/dist/data/designs/ios-calm-android.md +431 -0
  123. package/dist/data/designs/ios-calm-expo.md +384 -0
  124. package/dist/data/designs/ios-calm-swiftui.md +327 -0
  125. package/dist/data/designs/ios-calm.md +356 -0
  126. package/dist/data/designs/ios-canva-android.md +469 -0
  127. package/dist/data/designs/ios-canva-expo.md +374 -0
  128. package/dist/data/designs/ios-canva-swiftui.md +422 -0
  129. package/dist/data/designs/ios-canva.md +395 -0
  130. package/dist/data/designs/ios-cash-app-android.md +601 -0
  131. package/dist/data/designs/ios-cash-app-expo.md +453 -0
  132. package/dist/data/designs/ios-cash-app-swiftui.md +463 -0
  133. package/dist/data/designs/ios-cash-app.md +365 -0
  134. package/dist/data/designs/ios-character-ai-android.md +489 -0
  135. package/dist/data/designs/ios-character-ai-expo.md +420 -0
  136. package/dist/data/designs/ios-character-ai-swiftui.md +417 -0
  137. package/dist/data/designs/ios-character-ai.md +392 -0
  138. package/dist/data/designs/ios-charles-schwab-android.md +454 -0
  139. package/dist/data/designs/ios-charles-schwab-expo.md +388 -0
  140. package/dist/data/designs/ios-charles-schwab-swiftui.md +394 -0
  141. package/dist/data/designs/ios-charles-schwab.md +380 -0
  142. package/dist/data/designs/ios-chatgpt-android.md +753 -0
  143. package/dist/data/designs/ios-chatgpt-expo.md +644 -0
  144. package/dist/data/designs/ios-chatgpt-swiftui.md +653 -0
  145. package/dist/data/designs/ios-chatgpt.md +466 -0
  146. package/dist/data/designs/ios-chime-android.md +438 -0
  147. package/dist/data/designs/ios-chime-expo.md +419 -0
  148. package/dist/data/designs/ios-chime-swiftui.md +383 -0
  149. package/dist/data/designs/ios-chime.md +389 -0
  150. package/dist/data/designs/ios-chipotle-android.md +397 -0
  151. package/dist/data/designs/ios-chipotle-expo.md +301 -0
  152. package/dist/data/designs/ios-chipotle-swiftui.md +345 -0
  153. package/dist/data/designs/ios-chipotle.md +340 -0
  154. package/dist/data/designs/ios-citymapper-android.md +466 -0
  155. package/dist/data/designs/ios-citymapper-expo.md +420 -0
  156. package/dist/data/designs/ios-citymapper-swiftui.md +424 -0
  157. package/dist/data/designs/ios-citymapper.md +394 -0
  158. package/dist/data/designs/ios-claude-android.md +625 -0
  159. package/dist/data/designs/ios-claude-expo.md +671 -0
  160. package/dist/data/designs/ios-claude-swiftui.md +649 -0
  161. package/dist/data/designs/ios-claude.md +447 -0
  162. package/dist/data/designs/ios-clickup-android.md +484 -0
  163. package/dist/data/designs/ios-clickup-expo.md +423 -0
  164. package/dist/data/designs/ios-clickup-swiftui.md +416 -0
  165. package/dist/data/designs/ios-clickup.md +431 -0
  166. package/dist/data/designs/ios-clubhouse-android.md +524 -0
  167. package/dist/data/designs/ios-clubhouse-expo.md +425 -0
  168. package/dist/data/designs/ios-clubhouse-swiftui.md +447 -0
  169. package/dist/data/designs/ios-clubhouse.md +406 -0
  170. package/dist/data/designs/ios-coffee-meets-bagel-android.md +461 -0
  171. package/dist/data/designs/ios-coffee-meets-bagel-expo.md +372 -0
  172. package/dist/data/designs/ios-coffee-meets-bagel-swiftui.md +368 -0
  173. package/dist/data/designs/ios-coffee-meets-bagel.md +376 -0
  174. package/dist/data/designs/ios-coinbase-android.md +611 -0
  175. package/dist/data/designs/ios-coinbase-expo.md +500 -0
  176. package/dist/data/designs/ios-coinbase-swiftui.md +490 -0
  177. package/dist/data/designs/ios-coinbase.md +409 -0
  178. package/dist/data/designs/ios-copilot-android.md +625 -0
  179. package/dist/data/designs/ios-copilot-expo.md +423 -0
  180. package/dist/data/designs/ios-copilot-swiftui.md +471 -0
  181. package/dist/data/designs/ios-copilot.md +367 -0
  182. package/dist/data/designs/ios-craft-android.md +459 -0
  183. package/dist/data/designs/ios-craft-expo.md +417 -0
  184. package/dist/data/designs/ios-craft-swiftui.md +449 -0
  185. package/dist/data/designs/ios-craft.md +449 -0
  186. package/dist/data/designs/ios-crunchyroll-android.md +432 -0
  187. package/dist/data/designs/ios-crunchyroll-expo.md +388 -0
  188. package/dist/data/designs/ios-crunchyroll-swiftui.md +417 -0
  189. package/dist/data/designs/ios-crunchyroll.md +388 -0
  190. package/dist/data/designs/ios-crypto-com-android.md +461 -0
  191. package/dist/data/designs/ios-crypto-com-expo.md +404 -0
  192. package/dist/data/designs/ios-crypto-com-swiftui.md +419 -0
  193. package/dist/data/designs/ios-crypto-com.md +410 -0
  194. package/dist/data/designs/ios-deepseek-android.md +471 -0
  195. package/dist/data/designs/ios-deepseek-expo.md +391 -0
  196. package/dist/data/designs/ios-deepseek-swiftui.md +354 -0
  197. package/dist/data/designs/ios-deepseek.md +393 -0
  198. package/dist/data/designs/ios-deezer-android.md +475 -0
  199. package/dist/data/designs/ios-deezer-expo.md +400 -0
  200. package/dist/data/designs/ios-deezer-swiftui.md +430 -0
  201. package/dist/data/designs/ios-deezer.md +388 -0
  202. package/dist/data/designs/ios-deliveroo-android.md +493 -0
  203. package/dist/data/designs/ios-deliveroo-expo.md +424 -0
  204. package/dist/data/designs/ios-deliveroo-swiftui.md +398 -0
  205. package/dist/data/designs/ios-deliveroo.md +420 -0
  206. package/dist/data/designs/ios-delta-android.md +439 -0
  207. package/dist/data/designs/ios-delta-expo.md +381 -0
  208. package/dist/data/designs/ios-delta-swiftui.md +400 -0
  209. package/dist/data/designs/ios-delta.md +397 -0
  210. package/dist/data/designs/ios-discord-android.md +611 -0
  211. package/dist/data/designs/ios-discord-expo.md +618 -0
  212. package/dist/data/designs/ios-discord-swiftui.md +630 -0
  213. package/dist/data/designs/ios-discord.md +451 -0
  214. package/dist/data/designs/ios-disney-plus-android.md +464 -0
  215. package/dist/data/designs/ios-disney-plus-expo.md +358 -0
  216. package/dist/data/designs/ios-disney-plus-swiftui.md +412 -0
  217. package/dist/data/designs/ios-disney-plus.md +355 -0
  218. package/dist/data/designs/ios-dominos-android.md +417 -0
  219. package/dist/data/designs/ios-dominos-expo.md +316 -0
  220. package/dist/data/designs/ios-dominos-swiftui.md +340 -0
  221. package/dist/data/designs/ios-dominos.md +347 -0
  222. package/dist/data/designs/ios-doordash-android.md +527 -0
  223. package/dist/data/designs/ios-doordash-expo.md +323 -0
  224. package/dist/data/designs/ios-doordash-swiftui.md +301 -0
  225. package/dist/data/designs/ios-doordash.md +393 -0
  226. package/dist/data/designs/ios-dropbox-android.md +522 -0
  227. package/dist/data/designs/ios-dropbox-expo.md +393 -0
  228. package/dist/data/designs/ios-dropbox-swiftui.md +400 -0
  229. package/dist/data/designs/ios-dropbox.md +374 -0
  230. package/dist/data/designs/ios-duolingo-android.md +641 -0
  231. package/dist/data/designs/ios-duolingo-expo.md +597 -0
  232. package/dist/data/designs/ios-duolingo-swiftui.md +539 -0
  233. package/dist/data/designs/ios-duolingo.md +409 -0
  234. package/dist/data/designs/ios-ebay-android.md +436 -0
  235. package/dist/data/designs/ios-ebay-expo.md +344 -0
  236. package/dist/data/designs/ios-ebay-swiftui.md +308 -0
  237. package/dist/data/designs/ios-ebay.md +355 -0
  238. package/dist/data/designs/ios-espn-android.md +468 -0
  239. package/dist/data/designs/ios-espn-expo.md +387 -0
  240. package/dist/data/designs/ios-espn-swiftui.md +410 -0
  241. package/dist/data/designs/ios-espn.md +384 -0
  242. package/dist/data/designs/ios-etsy-android.md +439 -0
  243. package/dist/data/designs/ios-etsy-expo.md +351 -0
  244. package/dist/data/designs/ios-etsy-swiftui.md +296 -0
  245. package/dist/data/designs/ios-etsy.md +355 -0
  246. package/dist/data/designs/ios-evernote-android.md +419 -0
  247. package/dist/data/designs/ios-evernote-expo.md +379 -0
  248. package/dist/data/designs/ios-evernote-swiftui.md +380 -0
  249. package/dist/data/designs/ios-evernote.md +416 -0
  250. package/dist/data/designs/ios-expedia-android.md +451 -0
  251. package/dist/data/designs/ios-expedia-expo.md +433 -0
  252. package/dist/data/designs/ios-expedia-swiftui.md +399 -0
  253. package/dist/data/designs/ios-expedia.md +431 -0
  254. package/dist/data/designs/ios-facebook-android.md +628 -0
  255. package/dist/data/designs/ios-facebook-expo.md +471 -0
  256. package/dist/data/designs/ios-facebook-swiftui.md +459 -0
  257. package/dist/data/designs/ios-facebook.md +452 -0
  258. package/dist/data/designs/ios-feeld-android.md +431 -0
  259. package/dist/data/designs/ios-feeld-expo.md +379 -0
  260. package/dist/data/designs/ios-feeld-swiftui.md +401 -0
  261. package/dist/data/designs/ios-feeld.md +378 -0
  262. package/dist/data/designs/ios-fidelity-android.md +426 -0
  263. package/dist/data/designs/ios-fidelity-expo.md +396 -0
  264. package/dist/data/designs/ios-fidelity-swiftui.md +398 -0
  265. package/dist/data/designs/ios-fidelity.md +387 -0
  266. package/dist/data/designs/ios-figma-android.md +578 -0
  267. package/dist/data/designs/ios-figma-expo.md +504 -0
  268. package/dist/data/designs/ios-figma-swiftui.md +542 -0
  269. package/dist/data/designs/ios-figma.md +404 -0
  270. package/dist/data/designs/ios-fitbit-android.md +439 -0
  271. package/dist/data/designs/ios-fitbit-expo.md +389 -0
  272. package/dist/data/designs/ios-fitbit-swiftui.md +380 -0
  273. package/dist/data/designs/ios-fitbit.md +396 -0
  274. package/dist/data/designs/ios-flickr-android.md +506 -0
  275. package/dist/data/designs/ios-flickr-expo.md +434 -0
  276. package/dist/data/designs/ios-flickr-swiftui.md +421 -0
  277. package/dist/data/designs/ios-flickr.md +394 -0
  278. package/dist/data/designs/ios-flighty-android.md +418 -0
  279. package/dist/data/designs/ios-flighty-expo.md +353 -0
  280. package/dist/data/designs/ios-flighty-swiftui.md +337 -0
  281. package/dist/data/designs/ios-flighty.md +357 -0
  282. package/dist/data/designs/ios-flo-android.md +447 -0
  283. package/dist/data/designs/ios-flo-expo.md +363 -0
  284. package/dist/data/designs/ios-flo-swiftui.md +355 -0
  285. package/dist/data/designs/ios-flo.md +351 -0
  286. package/dist/data/designs/ios-garmin-connect-android.md +531 -0
  287. package/dist/data/designs/ios-garmin-connect-expo.md +429 -0
  288. package/dist/data/designs/ios-garmin-connect-swiftui.md +459 -0
  289. package/dist/data/designs/ios-garmin-connect.md +419 -0
  290. package/dist/data/designs/ios-gas-android.md +438 -0
  291. package/dist/data/designs/ios-gas-expo.md +350 -0
  292. package/dist/data/designs/ios-gas-swiftui.md +329 -0
  293. package/dist/data/designs/ios-gas.md +387 -0
  294. package/dist/data/designs/ios-gemini-android.md +568 -0
  295. package/dist/data/designs/ios-gemini-expo.md +416 -0
  296. package/dist/data/designs/ios-gemini-swiftui.md +424 -0
  297. package/dist/data/designs/ios-gemini.md +351 -0
  298. package/dist/data/designs/ios-github-android.md +507 -0
  299. package/dist/data/designs/ios-github-expo.md +486 -0
  300. package/dist/data/designs/ios-github-swiftui.md +459 -0
  301. package/dist/data/designs/ios-github.md +394 -0
  302. package/dist/data/designs/ios-gmail-android.md +548 -0
  303. package/dist/data/designs/ios-gmail-expo.md +457 -0
  304. package/dist/data/designs/ios-gmail-swiftui.md +470 -0
  305. package/dist/data/designs/ios-gmail.md +441 -0
  306. package/dist/data/designs/ios-goodreads-android.md +436 -0
  307. package/dist/data/designs/ios-goodreads-expo.md +407 -0
  308. package/dist/data/designs/ios-goodreads-swiftui.md +378 -0
  309. package/dist/data/designs/ios-goodreads.md +385 -0
  310. package/dist/data/designs/ios-google-calendar-android.md +565 -0
  311. package/dist/data/designs/ios-google-calendar-expo.md +616 -0
  312. package/dist/data/designs/ios-google-calendar-swiftui.md +585 -0
  313. package/dist/data/designs/ios-google-calendar.md +431 -0
  314. package/dist/data/designs/ios-google-maps-android.md +614 -0
  315. package/dist/data/designs/ios-google-maps-expo.md +515 -0
  316. package/dist/data/designs/ios-google-maps-swiftui.md +484 -0
  317. package/dist/data/designs/ios-google-maps.md +451 -0
  318. package/dist/data/designs/ios-grammarly-android.md +449 -0
  319. package/dist/data/designs/ios-grammarly-expo.md +383 -0
  320. package/dist/data/designs/ios-grammarly-swiftui.md +381 -0
  321. package/dist/data/designs/ios-grammarly.md +392 -0
  322. package/dist/data/designs/ios-grindr-android.md +494 -0
  323. package/dist/data/designs/ios-grindr-expo.md +358 -0
  324. package/dist/data/designs/ios-grindr-swiftui.md +357 -0
  325. package/dist/data/designs/ios-grindr.md +356 -0
  326. package/dist/data/designs/ios-grok-android.md +471 -0
  327. package/dist/data/designs/ios-grok-expo.md +388 -0
  328. package/dist/data/designs/ios-grok-swiftui.md +397 -0
  329. package/dist/data/designs/ios-grok.md +357 -0
  330. package/dist/data/designs/ios-groupme-android.md +551 -0
  331. package/dist/data/designs/ios-groupme-expo.md +442 -0
  332. package/dist/data/designs/ios-groupme-swiftui.md +439 -0
  333. package/dist/data/designs/ios-groupme.md +424 -0
  334. package/dist/data/designs/ios-grubhub-android.md +506 -0
  335. package/dist/data/designs/ios-grubhub-expo.md +428 -0
  336. package/dist/data/designs/ios-grubhub-swiftui.md +408 -0
  337. package/dist/data/designs/ios-grubhub.md +427 -0
  338. package/dist/data/designs/ios-happn-android.md +464 -0
  339. package/dist/data/designs/ios-happn-expo.md +411 -0
  340. package/dist/data/designs/ios-happn-swiftui.md +401 -0
  341. package/dist/data/designs/ios-happn.md +400 -0
  342. package/dist/data/designs/ios-headspace-android.md +688 -0
  343. package/dist/data/designs/ios-headspace-expo.md +574 -0
  344. package/dist/data/designs/ios-headspace-swiftui.md +498 -0
  345. package/dist/data/designs/ios-headspace.md +430 -0
  346. package/dist/data/designs/ios-hevy-android.md +473 -0
  347. package/dist/data/designs/ios-hevy-expo.md +405 -0
  348. package/dist/data/designs/ios-hevy-swiftui.md +367 -0
  349. package/dist/data/designs/ios-hevy.md +410 -0
  350. package/dist/data/designs/ios-hinge-android.md +743 -0
  351. package/dist/data/designs/ios-hinge-expo.md +580 -0
  352. package/dist/data/designs/ios-hinge-swiftui.md +512 -0
  353. package/dist/data/designs/ios-hinge.md +405 -0
  354. package/dist/data/designs/ios-hopper-android.md +440 -0
  355. package/dist/data/designs/ios-hopper-expo.md +353 -0
  356. package/dist/data/designs/ios-hopper-swiftui.md +340 -0
  357. package/dist/data/designs/ios-hopper.md +354 -0
  358. package/dist/data/designs/ios-hulu-android.md +435 -0
  359. package/dist/data/designs/ios-hulu-expo.md +331 -0
  360. package/dist/data/designs/ios-hulu-swiftui.md +374 -0
  361. package/dist/data/designs/ios-hulu.md +353 -0
  362. package/dist/data/designs/ios-iheartradio-android.md +481 -0
  363. package/dist/data/designs/ios-iheartradio-expo.md +417 -0
  364. package/dist/data/designs/ios-iheartradio-swiftui.md +423 -0
  365. package/dist/data/designs/ios-iheartradio.md +381 -0
  366. package/dist/data/designs/ios-imessage-android.md +426 -0
  367. package/dist/data/designs/ios-imessage-expo.md +384 -0
  368. package/dist/data/designs/ios-imessage-swiftui.md +378 -0
  369. package/dist/data/designs/ios-imessage.md +394 -0
  370. package/dist/data/designs/ios-instacart-android.md +471 -0
  371. package/dist/data/designs/ios-instacart-expo.md +349 -0
  372. package/dist/data/designs/ios-instacart-swiftui.md +378 -0
  373. package/dist/data/designs/ios-instacart.md +360 -0
  374. package/dist/data/designs/ios-instagram-android.md +646 -0
  375. package/dist/data/designs/ios-instagram-expo.md +310 -0
  376. package/dist/data/designs/ios-instagram-swiftui.md +333 -0
  377. package/dist/data/designs/ios-instagram.md +376 -0
  378. package/dist/data/designs/ios-jira-android.md +432 -0
  379. package/dist/data/designs/ios-jira-expo.md +375 -0
  380. package/dist/data/designs/ios-jira-swiftui.md +433 -0
  381. package/dist/data/designs/ios-jira.md +424 -0
  382. package/dist/data/designs/ios-kakaotalk-android.md +491 -0
  383. package/dist/data/designs/ios-kakaotalk-expo.md +418 -0
  384. package/dist/data/designs/ios-kakaotalk-swiftui.md +406 -0
  385. package/dist/data/designs/ios-kakaotalk.md +414 -0
  386. package/dist/data/designs/ios-kayak-android.md +466 -0
  387. package/dist/data/designs/ios-kayak-expo.md +407 -0
  388. package/dist/data/designs/ios-kayak-swiftui.md +426 -0
  389. package/dist/data/designs/ios-kayak.md +392 -0
  390. package/dist/data/designs/ios-kick-android.md +487 -0
  391. package/dist/data/designs/ios-kick-expo.md +434 -0
  392. package/dist/data/designs/ios-kick-swiftui.md +429 -0
  393. package/dist/data/designs/ios-kick.md +389 -0
  394. package/dist/data/designs/ios-kik-android.md +433 -0
  395. package/dist/data/designs/ios-kik-expo.md +363 -0
  396. package/dist/data/designs/ios-kik-swiftui.md +363 -0
  397. package/dist/data/designs/ios-kik.md +392 -0
  398. package/dist/data/designs/ios-kindle-android.md +439 -0
  399. package/dist/data/designs/ios-kindle-expo.md +356 -0
  400. package/dist/data/designs/ios-kindle-swiftui.md +372 -0
  401. package/dist/data/designs/ios-kindle.md +369 -0
  402. package/dist/data/designs/ios-klarna-android.md +420 -0
  403. package/dist/data/designs/ios-klarna-expo.md +349 -0
  404. package/dist/data/designs/ios-klarna-swiftui.md +360 -0
  405. package/dist/data/designs/ios-klarna.md +356 -0
  406. package/dist/data/designs/ios-lemon8-android.md +492 -0
  407. package/dist/data/designs/ios-lemon8-expo.md +413 -0
  408. package/dist/data/designs/ios-lemon8-swiftui.md +428 -0
  409. package/dist/data/designs/ios-lemon8.md +378 -0
  410. package/dist/data/designs/ios-life360-android.md +474 -0
  411. package/dist/data/designs/ios-life360-expo.md +375 -0
  412. package/dist/data/designs/ios-life360-swiftui.md +390 -0
  413. package/dist/data/designs/ios-life360.md +402 -0
  414. package/dist/data/designs/ios-line-android.md +517 -0
  415. package/dist/data/designs/ios-line-expo.md +402 -0
  416. package/dist/data/designs/ios-line-swiftui.md +361 -0
  417. package/dist/data/designs/ios-line.md +362 -0
  418. package/dist/data/designs/ios-linear-android.md +457 -0
  419. package/dist/data/designs/ios-linear-expo.md +367 -0
  420. package/dist/data/designs/ios-linear-swiftui.md +401 -0
  421. package/dist/data/designs/ios-linear.md +368 -0
  422. package/dist/data/designs/ios-linkedin-android.md +620 -0
  423. package/dist/data/designs/ios-linkedin-expo.md +469 -0
  424. package/dist/data/designs/ios-linkedin-swiftui.md +472 -0
  425. package/dist/data/designs/ios-linkedin.md +444 -0
  426. package/dist/data/designs/ios-locket-android.md +500 -0
  427. package/dist/data/designs/ios-locket-expo.md +375 -0
  428. package/dist/data/designs/ios-locket-swiftui.md +375 -0
  429. package/dist/data/designs/ios-locket.md +381 -0
  430. package/dist/data/designs/ios-lyft-android.md +406 -0
  431. package/dist/data/designs/ios-lyft-expo.md +333 -0
  432. package/dist/data/designs/ios-lyft-swiftui.md +315 -0
  433. package/dist/data/designs/ios-lyft.md +337 -0
  434. package/dist/data/designs/ios-marriott-bonvoy-android.md +488 -0
  435. package/dist/data/designs/ios-marriott-bonvoy-expo.md +412 -0
  436. package/dist/data/designs/ios-marriott-bonvoy-swiftui.md +461 -0
  437. package/dist/data/designs/ios-marriott-bonvoy.md +379 -0
  438. package/dist/data/designs/ios-mastodon-android.md +476 -0
  439. package/dist/data/designs/ios-mastodon-expo.md +379 -0
  440. package/dist/data/designs/ios-mastodon-swiftui.md +349 -0
  441. package/dist/data/designs/ios-mastodon.md +337 -0
  442. package/dist/data/designs/ios-match-android.md +496 -0
  443. package/dist/data/designs/ios-match-expo.md +393 -0
  444. package/dist/data/designs/ios-match-swiftui.md +450 -0
  445. package/dist/data/designs/ios-match.md +382 -0
  446. package/dist/data/designs/ios-max-android.md +454 -0
  447. package/dist/data/designs/ios-max-expo.md +342 -0
  448. package/dist/data/designs/ios-max-swiftui.md +332 -0
  449. package/dist/data/designs/ios-max.md +352 -0
  450. package/dist/data/designs/ios-mcdonalds-android.md +497 -0
  451. package/dist/data/designs/ios-mcdonalds-expo.md +382 -0
  452. package/dist/data/designs/ios-mcdonalds-swiftui.md +394 -0
  453. package/dist/data/designs/ios-mcdonalds.md +410 -0
  454. package/dist/data/designs/ios-messenger-android.md +523 -0
  455. package/dist/data/designs/ios-messenger-expo.md +379 -0
  456. package/dist/data/designs/ios-messenger-swiftui.md +369 -0
  457. package/dist/data/designs/ios-messenger.md +361 -0
  458. package/dist/data/designs/ios-microsoft-teams-android.md +446 -0
  459. package/dist/data/designs/ios-microsoft-teams-expo.md +362 -0
  460. package/dist/data/designs/ios-microsoft-teams-swiftui.md +384 -0
  461. package/dist/data/designs/ios-microsoft-teams.md +359 -0
  462. package/dist/data/designs/ios-midjourney-android.md +503 -0
  463. package/dist/data/designs/ios-midjourney-expo.md +406 -0
  464. package/dist/data/designs/ios-midjourney-swiftui.md +376 -0
  465. package/dist/data/designs/ios-midjourney.md +407 -0
  466. package/dist/data/designs/ios-miro-android.md +475 -0
  467. package/dist/data/designs/ios-miro-expo.md +421 -0
  468. package/dist/data/designs/ios-miro-swiftui.md +407 -0
  469. package/dist/data/designs/ios-miro.md +424 -0
  470. package/dist/data/designs/ios-monday-android.md +426 -0
  471. package/dist/data/designs/ios-monday-expo.md +382 -0
  472. package/dist/data/designs/ios-monday-swiftui.md +386 -0
  473. package/dist/data/designs/ios-monday.md +415 -0
  474. package/dist/data/designs/ios-monzo-android.md +423 -0
  475. package/dist/data/designs/ios-monzo-expo.md +391 -0
  476. package/dist/data/designs/ios-monzo-swiftui.md +371 -0
  477. package/dist/data/designs/ios-monzo.md +382 -0
  478. package/dist/data/designs/ios-myfitnesspal-android.md +631 -0
  479. package/dist/data/designs/ios-myfitnesspal-expo.md +489 -0
  480. package/dist/data/designs/ios-myfitnesspal-swiftui.md +500 -0
  481. package/dist/data/designs/ios-myfitnesspal.md +408 -0
  482. package/dist/data/designs/ios-netflix-android.md +570 -0
  483. package/dist/data/designs/ios-netflix-expo.md +528 -0
  484. package/dist/data/designs/ios-netflix-swiftui.md +543 -0
  485. package/dist/data/designs/ios-netflix.md +476 -0
  486. package/dist/data/designs/ios-nextdoor-android.md +399 -0
  487. package/dist/data/designs/ios-nextdoor-expo.md +317 -0
  488. package/dist/data/designs/ios-nextdoor-swiftui.md +343 -0
  489. package/dist/data/designs/ios-nextdoor.md +332 -0
  490. package/dist/data/designs/ios-nike-run-club-android.md +598 -0
  491. package/dist/data/designs/ios-nike-run-club-expo.md +459 -0
  492. package/dist/data/designs/ios-nike-run-club-swiftui.md +474 -0
  493. package/dist/data/designs/ios-nike-run-club.md +400 -0
  494. package/dist/data/designs/ios-noom-android.md +455 -0
  495. package/dist/data/designs/ios-noom-expo.md +362 -0
  496. package/dist/data/designs/ios-noom-swiftui.md +369 -0
  497. package/dist/data/designs/ios-noom.md +404 -0
  498. package/dist/data/designs/ios-notion-android.md +575 -0
  499. package/dist/data/designs/ios-notion-expo.md +543 -0
  500. package/dist/data/designs/ios-notion-swiftui.md +562 -0
  501. package/dist/data/designs/ios-notion.md +506 -0
  502. package/dist/data/designs/ios-nubank-android.md +447 -0
  503. package/dist/data/designs/ios-nubank-expo.md +391 -0
  504. package/dist/data/designs/ios-nubank-swiftui.md +391 -0
  505. package/dist/data/designs/ios-nubank.md +388 -0
  506. package/dist/data/designs/ios-obsidian-android.md +456 -0
  507. package/dist/data/designs/ios-obsidian-expo.md +401 -0
  508. package/dist/data/designs/ios-obsidian-swiftui.md +412 -0
  509. package/dist/data/designs/ios-obsidian.md +363 -0
  510. package/dist/data/designs/ios-okcupid-android.md +496 -0
  511. package/dist/data/designs/ios-okcupid-expo.md +378 -0
  512. package/dist/data/designs/ios-okcupid-swiftui.md +343 -0
  513. package/dist/data/designs/ios-okcupid.md +364 -0
  514. package/dist/data/designs/ios-opentable-android.md +426 -0
  515. package/dist/data/designs/ios-opentable-expo.md +350 -0
  516. package/dist/data/designs/ios-opentable-swiftui.md +328 -0
  517. package/dist/data/designs/ios-opentable.md +411 -0
  518. package/dist/data/designs/ios-oura-android.md +426 -0
  519. package/dist/data/designs/ios-oura-expo.md +353 -0
  520. package/dist/data/designs/ios-oura-swiftui.md +327 -0
  521. package/dist/data/designs/ios-oura.md +356 -0
  522. package/dist/data/designs/ios-overcast-android.md +508 -0
  523. package/dist/data/designs/ios-overcast-expo.md +420 -0
  524. package/dist/data/designs/ios-overcast-swiftui.md +427 -0
  525. package/dist/data/designs/ios-overcast.md +414 -0
  526. package/dist/data/designs/ios-pandora-android.md +477 -0
  527. package/dist/data/designs/ios-pandora-expo.md +406 -0
  528. package/dist/data/designs/ios-pandora-swiftui.md +413 -0
  529. package/dist/data/designs/ios-pandora.md +366 -0
  530. package/dist/data/designs/ios-panera-android.md +414 -0
  531. package/dist/data/designs/ios-panera-expo.md +352 -0
  532. package/dist/data/designs/ios-panera-swiftui.md +369 -0
  533. package/dist/data/designs/ios-panera.md +412 -0
  534. package/dist/data/designs/ios-paramount-plus-android.md +415 -0
  535. package/dist/data/designs/ios-paramount-plus-expo.md +363 -0
  536. package/dist/data/designs/ios-paramount-plus-swiftui.md +372 -0
  537. package/dist/data/designs/ios-paramount-plus.md +400 -0
  538. package/dist/data/designs/ios-paypal-android.md +535 -0
  539. package/dist/data/designs/ios-paypal-expo.md +429 -0
  540. package/dist/data/designs/ios-paypal-swiftui.md +466 -0
  541. package/dist/data/designs/ios-paypal.md +393 -0
  542. package/dist/data/designs/ios-peacock-android.md +453 -0
  543. package/dist/data/designs/ios-peacock-expo.md +393 -0
  544. package/dist/data/designs/ios-peacock-swiftui.md +420 -0
  545. package/dist/data/designs/ios-peacock.md +411 -0
  546. package/dist/data/designs/ios-peloton-android.md +470 -0
  547. package/dist/data/designs/ios-peloton-expo.md +401 -0
  548. package/dist/data/designs/ios-peloton-swiftui.md +409 -0
  549. package/dist/data/designs/ios-peloton.md +415 -0
  550. package/dist/data/designs/ios-perplexity-android.md +553 -0
  551. package/dist/data/designs/ios-perplexity-expo.md +703 -0
  552. package/dist/data/designs/ios-perplexity-swiftui.md +602 -0
  553. package/dist/data/designs/ios-perplexity.md +453 -0
  554. package/dist/data/designs/ios-pinterest-android.md +551 -0
  555. package/dist/data/designs/ios-pinterest-expo.md +466 -0
  556. package/dist/data/designs/ios-pinterest-swiftui.md +464 -0
  557. package/dist/data/designs/ios-pinterest.md +427 -0
  558. package/dist/data/designs/ios-plenty-of-fish-android.md +462 -0
  559. package/dist/data/designs/ios-plenty-of-fish-expo.md +380 -0
  560. package/dist/data/designs/ios-plenty-of-fish-swiftui.md +429 -0
  561. package/dist/data/designs/ios-plenty-of-fish.md +387 -0
  562. package/dist/data/designs/ios-plex-android.md +403 -0
  563. package/dist/data/designs/ios-plex-expo.md +333 -0
  564. package/dist/data/designs/ios-plex-swiftui.md +349 -0
  565. package/dist/data/designs/ios-plex.md +379 -0
  566. package/dist/data/designs/ios-pluto-tv-android.md +413 -0
  567. package/dist/data/designs/ios-pluto-tv-expo.md +379 -0
  568. package/dist/data/designs/ios-pluto-tv-swiftui.md +411 -0
  569. package/dist/data/designs/ios-pluto-tv.md +362 -0
  570. package/dist/data/designs/ios-pocket-casts-android.md +492 -0
  571. package/dist/data/designs/ios-pocket-casts-expo.md +430 -0
  572. package/dist/data/designs/ios-pocket-casts-swiftui.md +479 -0
  573. package/dist/data/designs/ios-pocket-casts.md +427 -0
  574. package/dist/data/designs/ios-postman-android.md +472 -0
  575. package/dist/data/designs/ios-postman-expo.md +372 -0
  576. package/dist/data/designs/ios-postman-swiftui.md +377 -0
  577. package/dist/data/designs/ios-postman.md +405 -0
  578. package/dist/data/designs/ios-prime-video-android.md +447 -0
  579. package/dist/data/designs/ios-prime-video-expo.md +365 -0
  580. package/dist/data/designs/ios-prime-video-swiftui.md +333 -0
  581. package/dist/data/designs/ios-prime-video.md +351 -0
  582. package/dist/data/designs/ios-quora-android.md +513 -0
  583. package/dist/data/designs/ios-quora-expo.md +362 -0
  584. package/dist/data/designs/ios-quora-swiftui.md +375 -0
  585. package/dist/data/designs/ios-quora.md +359 -0
  586. package/dist/data/designs/ios-raya-android.md +401 -0
  587. package/dist/data/designs/ios-raya-expo.md +366 -0
  588. package/dist/data/designs/ios-raya-swiftui.md +393 -0
  589. package/dist/data/designs/ios-raya.md +366 -0
  590. package/dist/data/designs/ios-reddit-android.md +605 -0
  591. package/dist/data/designs/ios-reddit-expo.md +553 -0
  592. package/dist/data/designs/ios-reddit-swiftui.md +514 -0
  593. package/dist/data/designs/ios-reddit.md +460 -0
  594. package/dist/data/designs/ios-resy-android.md +430 -0
  595. package/dist/data/designs/ios-resy-expo.md +344 -0
  596. package/dist/data/designs/ios-resy-swiftui.md +330 -0
  597. package/dist/data/designs/ios-resy.md +412 -0
  598. package/dist/data/designs/ios-revolut-android.md +433 -0
  599. package/dist/data/designs/ios-revolut-expo.md +379 -0
  600. package/dist/data/designs/ios-revolut-swiftui.md +372 -0
  601. package/dist/data/designs/ios-revolut.md +353 -0
  602. package/dist/data/designs/ios-robinhood-android.md +587 -0
  603. package/dist/data/designs/ios-robinhood-expo.md +416 -0
  604. package/dist/data/designs/ios-robinhood-swiftui.md +431 -0
  605. package/dist/data/designs/ios-robinhood.md +380 -0
  606. package/dist/data/designs/ios-runna-android.md +485 -0
  607. package/dist/data/designs/ios-runna-expo.md +388 -0
  608. package/dist/data/designs/ios-runna-swiftui.md +413 -0
  609. package/dist/data/designs/ios-runna.md +390 -0
  610. package/dist/data/designs/ios-shazam-android.md +436 -0
  611. package/dist/data/designs/ios-shazam-expo.md +348 -0
  612. package/dist/data/designs/ios-shazam-swiftui.md +394 -0
  613. package/dist/data/designs/ios-shazam.md +338 -0
  614. package/dist/data/designs/ios-signal-android.md +462 -0
  615. package/dist/data/designs/ios-signal-expo.md +361 -0
  616. package/dist/data/designs/ios-signal-swiftui.md +350 -0
  617. package/dist/data/designs/ios-signal.md +357 -0
  618. package/dist/data/designs/ios-skype-android.md +398 -0
  619. package/dist/data/designs/ios-skype-expo.md +368 -0
  620. package/dist/data/designs/ios-skype-swiftui.md +369 -0
  621. package/dist/data/designs/ios-skype.md +406 -0
  622. package/dist/data/designs/ios-skyscanner-android.md +451 -0
  623. package/dist/data/designs/ios-skyscanner-expo.md +423 -0
  624. package/dist/data/designs/ios-skyscanner-swiftui.md +419 -0
  625. package/dist/data/designs/ios-skyscanner.md +421 -0
  626. package/dist/data/designs/ios-slack-android.md +695 -0
  627. package/dist/data/designs/ios-slack-expo.md +601 -0
  628. package/dist/data/designs/ios-slack-swiftui.md +594 -0
  629. package/dist/data/designs/ios-slack.md +474 -0
  630. package/dist/data/designs/ios-sleep-cycle-android.md +436 -0
  631. package/dist/data/designs/ios-sleep-cycle-expo.md +380 -0
  632. package/dist/data/designs/ios-sleep-cycle-swiftui.md +409 -0
  633. package/dist/data/designs/ios-sleep-cycle.md +386 -0
  634. package/dist/data/designs/ios-snapchat-android.md +671 -0
  635. package/dist/data/designs/ios-snapchat-expo.md +528 -0
  636. package/dist/data/designs/ios-snapchat-swiftui.md +557 -0
  637. package/dist/data/designs/ios-snapchat.md +478 -0
  638. package/dist/data/designs/ios-sofi-android.md +446 -0
  639. package/dist/data/designs/ios-sofi-expo.md +387 -0
  640. package/dist/data/designs/ios-sofi-swiftui.md +379 -0
  641. package/dist/data/designs/ios-sofi.md +385 -0
  642. package/dist/data/designs/ios-soundcloud-android.md +488 -0
  643. package/dist/data/designs/ios-soundcloud-expo.md +364 -0
  644. package/dist/data/designs/ios-soundcloud-swiftui.md +399 -0
  645. package/dist/data/designs/ios-soundcloud.md +359 -0
  646. package/dist/data/designs/ios-southwest-android.md +446 -0
  647. package/dist/data/designs/ios-southwest-expo.md +389 -0
  648. package/dist/data/designs/ios-southwest-swiftui.md +405 -0
  649. package/dist/data/designs/ios-southwest.md +405 -0
  650. package/dist/data/designs/ios-spotify-android.md +427 -0
  651. package/dist/data/designs/ios-spotify-expo.md +321 -0
  652. package/dist/data/designs/ios-spotify-swiftui.md +312 -0
  653. package/dist/data/designs/ios-spotify.md +366 -0
  654. package/dist/data/designs/ios-starbucks-android.md +622 -0
  655. package/dist/data/designs/ios-starbucks-expo.md +497 -0
  656. package/dist/data/designs/ios-starbucks-swiftui.md +500 -0
  657. package/dist/data/designs/ios-starbucks.md +440 -0
  658. package/dist/data/designs/ios-strava-android.md +656 -0
  659. package/dist/data/designs/ios-strava-expo.md +501 -0
  660. package/dist/data/designs/ios-strava-swiftui.md +465 -0
  661. package/dist/data/designs/ios-strava.md +433 -0
  662. package/dist/data/designs/ios-strong-android.md +479 -0
  663. package/dist/data/designs/ios-strong-expo.md +396 -0
  664. package/dist/data/designs/ios-strong-swiftui.md +363 -0
  665. package/dist/data/designs/ios-strong.md +415 -0
  666. package/dist/data/designs/ios-substack-android.md +440 -0
  667. package/dist/data/designs/ios-substack-expo.md +395 -0
  668. package/dist/data/designs/ios-substack-swiftui.md +371 -0
  669. package/dist/data/designs/ios-substack.md +372 -0
  670. package/dist/data/designs/ios-swiggy-android.md +549 -0
  671. package/dist/data/designs/ios-swiggy-expo.md +443 -0
  672. package/dist/data/designs/ios-swiggy-swiftui.md +471 -0
  673. package/dist/data/designs/ios-swiggy.md +432 -0
  674. package/dist/data/designs/ios-taco-bell-android.md +529 -0
  675. package/dist/data/designs/ios-taco-bell-expo.md +407 -0
  676. package/dist/data/designs/ios-taco-bell-swiftui.md +419 -0
  677. package/dist/data/designs/ios-taco-bell.md +430 -0
  678. package/dist/data/designs/ios-telegram-android.md +676 -0
  679. package/dist/data/designs/ios-telegram-expo.md +594 -0
  680. package/dist/data/designs/ios-telegram-swiftui.md +518 -0
  681. package/dist/data/designs/ios-telegram.md +458 -0
  682. package/dist/data/designs/ios-the-league-android.md +454 -0
  683. package/dist/data/designs/ios-the-league-expo.md +391 -0
  684. package/dist/data/designs/ios-the-league-swiftui.md +409 -0
  685. package/dist/data/designs/ios-the-league.md +368 -0
  686. package/dist/data/designs/ios-things-3-android.md +421 -0
  687. package/dist/data/designs/ios-things-3-expo.md +351 -0
  688. package/dist/data/designs/ios-things-3-swiftui.md +359 -0
  689. package/dist/data/designs/ios-things-3.md +339 -0
  690. package/dist/data/designs/ios-threads-android.md +588 -0
  691. package/dist/data/designs/ios-threads-expo.md +468 -0
  692. package/dist/data/designs/ios-threads-swiftui.md +452 -0
  693. package/dist/data/designs/ios-threads.md +424 -0
  694. package/dist/data/designs/ios-threema-android.md +496 -0
  695. package/dist/data/designs/ios-threema-expo.md +415 -0
  696. package/dist/data/designs/ios-threema-swiftui.md +446 -0
  697. package/dist/data/designs/ios-threema.md +397 -0
  698. package/dist/data/designs/ios-tidal-android.md +398 -0
  699. package/dist/data/designs/ios-tidal-expo.md +323 -0
  700. package/dist/data/designs/ios-tidal-swiftui.md +340 -0
  701. package/dist/data/designs/ios-tidal.md +351 -0
  702. package/dist/data/designs/ios-tiktok-android.md +654 -0
  703. package/dist/data/designs/ios-tiktok-expo.md +578 -0
  704. package/dist/data/designs/ios-tiktok-swiftui.md +595 -0
  705. package/dist/data/designs/ios-tiktok.md +387 -0
  706. package/dist/data/designs/ios-tinder-android.md +681 -0
  707. package/dist/data/designs/ios-tinder-expo.md +512 -0
  708. package/dist/data/designs/ios-tinder-swiftui.md +497 -0
  709. package/dist/data/designs/ios-tinder.md +415 -0
  710. package/dist/data/designs/ios-todoist-android.md +711 -0
  711. package/dist/data/designs/ios-todoist-expo.md +607 -0
  712. package/dist/data/designs/ios-todoist-swiftui.md +573 -0
  713. package/dist/data/designs/ios-todoist.md +418 -0
  714. package/dist/data/designs/ios-trello-android.md +412 -0
  715. package/dist/data/designs/ios-trello-expo.md +332 -0
  716. package/dist/data/designs/ios-trello-swiftui.md +359 -0
  717. package/dist/data/designs/ios-trello.md +344 -0
  718. package/dist/data/designs/ios-tripadvisor-android.md +450 -0
  719. package/dist/data/designs/ios-tripadvisor-expo.md +322 -0
  720. package/dist/data/designs/ios-tripadvisor-swiftui.md +326 -0
  721. package/dist/data/designs/ios-tripadvisor.md +356 -0
  722. package/dist/data/designs/ios-tubi-android.md +453 -0
  723. package/dist/data/designs/ios-tubi-expo.md +419 -0
  724. package/dist/data/designs/ios-tubi-swiftui.md +463 -0
  725. package/dist/data/designs/ios-tubi.md +383 -0
  726. package/dist/data/designs/ios-tumblr-android.md +462 -0
  727. package/dist/data/designs/ios-tumblr-expo.md +374 -0
  728. package/dist/data/designs/ios-tumblr-swiftui.md +380 -0
  729. package/dist/data/designs/ios-tumblr.md +337 -0
  730. package/dist/data/designs/ios-turo-android.md +500 -0
  731. package/dist/data/designs/ios-turo-expo.md +454 -0
  732. package/dist/data/designs/ios-turo-swiftui.md +447 -0
  733. package/dist/data/designs/ios-turo.md +392 -0
  734. package/dist/data/designs/ios-twitch-android.md +412 -0
  735. package/dist/data/designs/ios-twitch-expo.md +342 -0
  736. package/dist/data/designs/ios-twitch-swiftui.md +328 -0
  737. package/dist/data/designs/ios-twitch.md +354 -0
  738. package/dist/data/designs/ios-uber-android.md +637 -0
  739. package/dist/data/designs/ios-uber-eats-android.md +502 -0
  740. package/dist/data/designs/ios-uber-eats-expo.md +407 -0
  741. package/dist/data/designs/ios-uber-eats-swiftui.md +393 -0
  742. package/dist/data/designs/ios-uber-eats.md +353 -0
  743. package/dist/data/designs/ios-uber-expo.md +512 -0
  744. package/dist/data/designs/ios-uber-swiftui.md +483 -0
  745. package/dist/data/designs/ios-uber.md +395 -0
  746. package/dist/data/designs/ios-united-airlines-android.md +494 -0
  747. package/dist/data/designs/ios-united-airlines-expo.md +408 -0
  748. package/dist/data/designs/ios-united-airlines-swiftui.md +453 -0
  749. package/dist/data/designs/ios-united-airlines.md +388 -0
  750. package/dist/data/designs/ios-venmo-android.md +654 -0
  751. package/dist/data/designs/ios-venmo-expo.md +458 -0
  752. package/dist/data/designs/ios-venmo-swiftui.md +469 -0
  753. package/dist/data/designs/ios-venmo.md +436 -0
  754. package/dist/data/designs/ios-vercel-android.md +454 -0
  755. package/dist/data/designs/ios-vercel-expo.md +387 -0
  756. package/dist/data/designs/ios-vercel-swiftui.md +374 -0
  757. package/dist/data/designs/ios-vercel.md +399 -0
  758. package/dist/data/designs/ios-vero-android.md +498 -0
  759. package/dist/data/designs/ios-vero-expo.md +376 -0
  760. package/dist/data/designs/ios-vero-swiftui.md +374 -0
  761. package/dist/data/designs/ios-vero.md +394 -0
  762. package/dist/data/designs/ios-viber-android.md +377 -0
  763. package/dist/data/designs/ios-viber-expo.md +375 -0
  764. package/dist/data/designs/ios-viber-swiftui.md +378 -0
  765. package/dist/data/designs/ios-viber.md +403 -0
  766. package/dist/data/designs/ios-vimeo-android.md +465 -0
  767. package/dist/data/designs/ios-vimeo-expo.md +347 -0
  768. package/dist/data/designs/ios-vimeo-swiftui.md +383 -0
  769. package/dist/data/designs/ios-vimeo.md +403 -0
  770. package/dist/data/designs/ios-vrbo-android.md +488 -0
  771. package/dist/data/designs/ios-vrbo-expo.md +395 -0
  772. package/dist/data/designs/ios-vrbo-swiftui.md +421 -0
  773. package/dist/data/designs/ios-vrbo.md +383 -0
  774. package/dist/data/designs/ios-vsco-android.md +490 -0
  775. package/dist/data/designs/ios-vsco-expo.md +413 -0
  776. package/dist/data/designs/ios-vsco-swiftui.md +449 -0
  777. package/dist/data/designs/ios-vsco.md +412 -0
  778. package/dist/data/designs/ios-walmart-android.md +479 -0
  779. package/dist/data/designs/ios-walmart-expo.md +370 -0
  780. package/dist/data/designs/ios-walmart-swiftui.md +387 -0
  781. package/dist/data/designs/ios-walmart.md +366 -0
  782. package/dist/data/designs/ios-waze-android.md +695 -0
  783. package/dist/data/designs/ios-waze-expo.md +587 -0
  784. package/dist/data/designs/ios-waze-swiftui.md +601 -0
  785. package/dist/data/designs/ios-waze.md +453 -0
  786. package/dist/data/designs/ios-webull-android.md +429 -0
  787. package/dist/data/designs/ios-webull-expo.md +384 -0
  788. package/dist/data/designs/ios-webull-swiftui.md +406 -0
  789. package/dist/data/designs/ios-webull.md +375 -0
  790. package/dist/data/designs/ios-wechat-android.md +545 -0
  791. package/dist/data/designs/ios-wechat-expo.md +398 -0
  792. package/dist/data/designs/ios-wechat-swiftui.md +394 -0
  793. package/dist/data/designs/ios-wechat.md +363 -0
  794. package/dist/data/designs/ios-whatsapp-android.md +568 -0
  795. package/dist/data/designs/ios-whatsapp-expo.md +502 -0
  796. package/dist/data/designs/ios-whatsapp-swiftui.md +483 -0
  797. package/dist/data/designs/ios-whatsapp.md +425 -0
  798. package/dist/data/designs/ios-whoop-android.md +635 -0
  799. package/dist/data/designs/ios-whoop-expo.md +562 -0
  800. package/dist/data/designs/ios-whoop-swiftui.md +553 -0
  801. package/dist/data/designs/ios-whoop.md +419 -0
  802. package/dist/data/designs/ios-wise-android.md +428 -0
  803. package/dist/data/designs/ios-wise-expo.md +357 -0
  804. package/dist/data/designs/ios-wise-swiftui.md +356 -0
  805. package/dist/data/designs/ios-wise.md +361 -0
  806. package/dist/data/designs/ios-x-twitter-android.md +618 -0
  807. package/dist/data/designs/ios-x-twitter-expo.md +442 -0
  808. package/dist/data/designs/ios-x-twitter-swiftui.md +429 -0
  809. package/dist/data/designs/ios-x-twitter.md +432 -0
  810. package/dist/data/designs/ios-yelp-android.md +455 -0
  811. package/dist/data/designs/ios-yelp-expo.md +397 -0
  812. package/dist/data/designs/ios-yelp-swiftui.md +369 -0
  813. package/dist/data/designs/ios-yelp.md +398 -0
  814. package/dist/data/designs/ios-youtube-android.md +668 -0
  815. package/dist/data/designs/ios-youtube-expo.md +435 -0
  816. package/dist/data/designs/ios-youtube-music-android.md +450 -0
  817. package/dist/data/designs/ios-youtube-music-expo.md +404 -0
  818. package/dist/data/designs/ios-youtube-music-swiftui.md +434 -0
  819. package/dist/data/designs/ios-youtube-music.md +381 -0
  820. package/dist/data/designs/ios-youtube-swiftui.md +496 -0
  821. package/dist/data/designs/ios-youtube.md +466 -0
  822. package/dist/data/designs/ios-zalo-android.md +510 -0
  823. package/dist/data/designs/ios-zalo-expo.md +389 -0
  824. package/dist/data/designs/ios-zalo-swiftui.md +431 -0
  825. package/dist/data/designs/ios-zalo.md +388 -0
  826. package/dist/data/designs/ios-zomato-android.md +527 -0
  827. package/dist/data/designs/ios-zomato-expo.md +437 -0
  828. package/dist/data/designs/ios-zomato-swiftui.md +433 -0
  829. package/dist/data/designs/ios-zomato.md +439 -0
  830. package/dist/data/designs/ios-zoom-android.md +423 -0
  831. package/dist/data/designs/ios-zoom-expo.md +355 -0
  832. package/dist/data/designs/ios-zoom-swiftui.md +379 -0
  833. package/dist/data/designs/ios-zoom.md +357 -0
  834. package/dist/data/designs/ios-zwift-android.md +402 -0
  835. package/dist/data/designs/ios-zwift-expo.md +402 -0
  836. package/dist/data/designs/ios-zwift-swiftui.md +378 -0
  837. package/dist/data/designs/ios-zwift.md +411 -0
  838. package/dist/data/designs/kraken.md +125 -0
  839. package/dist/data/designs/lamborghini.md +288 -0
  840. package/dist/data/designs/linear.app.md +548 -0
  841. package/dist/data/designs/lovable.md +298 -0
  842. package/dist/data/designs/mastercard.md +365 -0
  843. package/dist/data/designs/material-clean.md +289 -0
  844. package/dist/data/designs/meta.md +683 -0
  845. package/dist/data/designs/midnight-pro.md +256 -0
  846. package/dist/data/designs/minimal-brutalist.md +245 -0
  847. package/dist/data/designs/minimax.md +746 -0
  848. package/dist/data/designs/mintlify.md +852 -0
  849. package/dist/data/designs/miro.md +825 -0
  850. package/dist/data/designs/mistral.ai.md +773 -0
  851. package/dist/data/designs/mongodb.md +767 -0
  852. package/dist/data/designs/nike.md +575 -0
  853. package/dist/data/designs/nintendo-2001.md +649 -0
  854. package/dist/data/designs/notion.md +821 -0
  855. package/dist/data/designs/nova-mobile-design-md.md +235 -0
  856. package/dist/data/designs/nvidia.md +640 -0
  857. package/dist/data/designs/ollama.md +539 -0
  858. package/dist/data/designs/opencode.ai.md +521 -0
  859. package/dist/data/designs/pinterest.md +597 -0
  860. package/dist/data/designs/playful-color.md +253 -0
  861. package/dist/data/designs/playstation.md +661 -0
  862. package/dist/data/designs/posthog.md +690 -0
  863. package/dist/data/designs/raycast.md +669 -0
  864. package/dist/data/designs/renault.md +589 -0
  865. package/dist/data/designs/replicate.md +616 -0
  866. package/dist/data/designs/resend.md +585 -0
  867. package/dist/data/designs/revolut.md +636 -0
  868. package/dist/data/designs/runwayml.md +244 -0
  869. package/dist/data/designs/sanity.md +357 -0
  870. package/dist/data/designs/sentry.md +551 -0
  871. package/dist/data/designs/shopify.md +516 -0
  872. package/dist/data/designs/slack.md +482 -0
  873. package/dist/data/designs/soft-glass.md +258 -0
  874. package/dist/data/designs/spacex.md +363 -0
  875. package/dist/data/designs/spotify.md +246 -0
  876. package/dist/data/designs/starbucks.md +580 -0
  877. package/dist/data/designs/stripe.md +487 -0
  878. package/dist/data/designs/supabase.md +462 -0
  879. package/dist/data/designs/superhuman.md +448 -0
  880. package/dist/data/designs/tesla.md +286 -0
  881. package/dist/data/designs/theverge.md +339 -0
  882. package/dist/data/designs/together.ai.md +633 -0
  883. package/dist/data/designs/uber.md +636 -0
  884. package/dist/data/designs/vercel.md +736 -0
  885. package/dist/data/designs/vodafone.md +538 -0
  886. package/dist/data/designs/voltagent.md +521 -0
  887. package/dist/data/designs/warp.md +526 -0
  888. package/dist/data/designs/webflow.md +588 -0
  889. package/dist/data/designs/wired.md +497 -0
  890. package/dist/data/designs/wise.md +544 -0
  891. package/dist/data/designs/x.ai.md +465 -0
  892. package/dist/data/designs/zapier.md +537 -0
  893. package/dist/data/index.json +2600 -0
  894. package/dist/httpServer.js +83 -0
  895. package/dist/index.js +13 -0
  896. package/dist/server.js +32 -0
  897. package/dist/services/designStore.js +59 -0
  898. package/dist/services/linter.js +87 -0
  899. package/dist/services/sectionParser.js +154 -0
  900. package/dist/tools/authoring.js +131 -0
  901. package/dist/tools/browse.js +232 -0
  902. package/dist/tools/diff.js +88 -0
  903. package/dist/tools/getDesign.js +216 -0
  904. package/dist/tools/guardrails.js +87 -0
  905. package/dist/tools/lint.js +104 -0
  906. package/dist/types.js +1 -0
  907. package/package.json +65 -0
@@ -0,0 +1,409 @@
1
+ # Design System Inspiration of Coinbase (iOS)
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ Coinbase is the crypto exchange rendered as a serious institutional financial product. The canvas is white, the brand is a single saturated blue — Coinbase Blue (`#0052FF`) — and the entire interface is engineered to make holding cryptocurrencies feel as legitimate as holding a brokerage account. Where Cash App leans pop-cultural and Robinhood leans clean-tech, Coinbase leans grown-up institution: thoughtful spacing, deliberate typography, news-grade list density, and a chart aesthetic borrowed from Bloomberg terminals more than from consumer fintech. The app's job is to convince you that this is a real exchange, not a Discord meme economy.
6
+
7
+ The primary accent is **Coinbase Blue** (`#0052FF`) — a vivid, slightly-purple electric blue that's been the company's identity since the 2017 rebrand. It carries the primary CTAs ("Buy", "Sell", "Send"), the active tab, the portfolio chart line when up (paired with a green for up days), and the company wordmark. The "C" Coin logomark (a circle with a horizontal line through it) is the brand's geometric anchor — used at every entry point and as a loading indicator. Crypto-specific brand colors fill the asset list: **Bitcoin Orange** (`#F7931A`), **Ethereum Purple** (`#627EEA`), **USD Coin Blue** (`#2775CA`), each rendered as the circular asset icon in the portfolio list.
8
+
9
+ Typography is **Coinbase Sans** and **Coinbase Display** — proprietary faces designed by Tobias Frere-Jones (Frere-Jones Type) for Coinbase as part of the 2021 brand evolution. Coinbase Sans is a contemporary geometric sans with subtle humanist tension at body sizes; Coinbase Display is a tighter, sharper variant used for hero numbers (the portfolio value at the top of the app, the giant amount on the Buy/Sell entry screen). Coinbase Mono — also from Frere-Jones — appears on transaction hashes, wallet addresses, and order book numbers when those technical readouts are exposed. Tabular numerals run throughout: every portfolio value, every price, every percentage uses tabular figures so the asset list reads as a clean institutional column.
10
+
11
+ **Key Characteristics:**
12
+ - White canvas (`#FFFFFF`) with `#F7F8FA` for subtle surface fills — institutional clean
13
+ - Coinbase Blue (`#0052FF`) as the single brand accent for CTAs, active tab, and chart line when default
14
+ - Portfolio chart with a 2pt line, no fill below — green when up, red when down — sparkline-style mini-versions inside asset rows
15
+ - Asset list with the crypto-specific brand color in the circular icon (Bitcoin orange, ETH purple, USDC blue) + price + 24h percent change
16
+ - Buy / Sell / Send / Receive — 4 primary actions at the top of every asset detail screen
17
+ - Bottom tab bar: Home / Trade / Cards / Earn / Wallet — 5 tabs in newer versions; older = Home / Trade / Lend / Wallet / Profile
18
+ - Coinbase Sans for body, Coinbase Display for hero amounts, Coinbase Mono for technical readouts
19
+ - Subtle shadows (`rgba(0,0,0,0.04)`) — institutional minimalism, not flat-zero
20
+ - News-grade density: 56-64pt asset rows with rich sparklines on the right
21
+ - The Coinbase "C" mark — a circle with a horizontal line — used as a loading indicator with a pulse animation
22
+
23
+ ## 2. Color Palette & Roles
24
+
25
+ ### Primary
26
+ - **Coinbase Blue** (`#0052FF`): Primary CTA fill, active tab, link color, wordmark — the iconic Coinbase electric blue.
27
+ - **Coinbase Blue Pressed** (`#0040CC`): Active/pressed state.
28
+ - **Coinbase Blue Tint** (`#E5EDFF`): Tinted background for "Buy" hover states, info banners.
29
+
30
+ ### Brand Identifiers
31
+ - **Coinbase Black** (`#0A0B0D`): Almost-black with a slight cool tint — primary text, dark mode canvas. Distinct from pure `#000`.
32
+ - **Coinbase Charcoal** (`#1A1C1F`): Darker than text but lighter than canvas in dark mode.
33
+
34
+ ### Crypto Asset Colors
35
+ - **Bitcoin Orange** (`#F7931A`): The Bitcoin "₿" icon background.
36
+ - **Ethereum Purple** (`#627EEA`): The Ethereum diamond icon background.
37
+ - **USDC Blue** (`#2775CA`): USD Coin icon (different from Coinbase Blue — deeper, more navy).
38
+ - **Solana Purple** (`#9945FF`): Solana icon.
39
+ - **Cardano Blue** (`#0033AD`): Cardano icon.
40
+ - **Tether Green** (`#26A17B`): Tether (USDT) icon.
41
+
42
+ ### Canvas, Surfaces & Dividers
43
+ - **Canvas White** (`#FFFFFF`): Primary canvas everywhere on light mode.
44
+ - **Surface Gray** (`#F7F8FA`): Section backgrounds, list row press states.
45
+ - **Surface Gray 2** (`#EEF0F3`): Input field fill, chip backgrounds.
46
+ - **Divider** (`#E1E4E8`): Hairline row dividers.
47
+
48
+ ### Text
49
+ - **Text Primary** (`#0A0B0D`): Coinbase Black — primary text, portfolio values, asset titles.
50
+ - **Text Secondary** (`#5B616E`): Secondary text — ticker symbols, dates, metadata.
51
+ - **Text Tertiary** (`#80868F`): Tertiary — placeholders, disabled labels.
52
+ - **Text Muted** (`#A0A4AA`): Skeleton state, very faded labels.
53
+
54
+ ### Semantic
55
+ - **Success Green** (`#05B169`): Up portfolio movement, gain indicators, success banners.
56
+ - **Success Green Tint** (`#E6F7EF`): Tinted background for gain pills.
57
+ - **Loss Red** (`#CF202F`): Down portfolio movement, loss indicators.
58
+ - **Loss Red Tint** (`#FCE7E9`): Tinted background for loss pills.
59
+ - **Warning Amber** (`#F5A623`): Pending transactions, network congestion alerts.
60
+ - **Info Blue** (`#1652F0`): Educational tooltips, occasional info callouts (slightly different from primary).
61
+
62
+ ### Dark Mode
63
+ Coinbase introduced dark mode in 2020. The dark canvas is a deep near-black with a subtle blue undertone.
64
+ - **Dark Canvas** (`#0A0B0D`): Primary dark background.
65
+ - **Dark Surface 1** (`#13151A`): Cards, sheets.
66
+ - **Dark Surface 2** (`#1E2026`): Pressed states, chip backgrounds.
67
+ - **Dark Divider** (`#2A2E36`): Hairlines.
68
+ - **Dark Text Primary** (`#FFFFFF`): Inverted.
69
+ - **Dark Text Secondary** (`#A0A4AA`): Inverted secondary.
70
+ - **Coinbase Blue (dark)** (`#3B6CFF`): Brightened slightly for AA contrast on the dark canvas.
71
+
72
+ ## 3. Typography Rules
73
+
74
+ ### Font Family
75
+ - **Primary**: `Coinbase Sans` (proprietary, drawn by Frere-Jones Type for Coinbase ~2021)
76
+ - **Display variant**: `Coinbase Display` — used for hero portfolio values and large amounts
77
+ - **Mono variant**: `Coinbase Mono` — used for wallet addresses, transaction hashes, order book numbers
78
+ - **Weights available**: Regular (400), Medium (500), Bold (700)
79
+ - **Tabular figures**: enabled on all financial figures, percentages, percent-change deltas — non-negotiable
80
+ - **Fallback stack**: `-apple-system, BlinkMacSystemFont, 'Inter', 'Helvetica Neue', sans-serif`
81
+ - **Mono fallback**: `'SF Mono', 'Roboto Mono', 'Menlo', monospace`
82
+ - **Google Fonts substitute**: `Inter` for Sans, `JetBrains Mono` for Mono
83
+
84
+ ### Hierarchy
85
+
86
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
87
+ |------|------|------|--------|-------------|----------------|-------|
88
+ | Portfolio Hero | Coinbase Display | 40pt | 700 | 1.0 | -0.5pt | Portfolio value at top of Home — TABULAR |
89
+ | Buy/Sell Amount | Coinbase Display | 56pt | 700 | 1.0 | -1pt | Giant $-amount on Buy/Sell entry — TABULAR, auto-shrinks |
90
+ | Screen Title | Coinbase Display | 28pt | 700 | 1.1 | -0.3pt | "Home", "Trade", "Wallet" |
91
+ | Section Header | Coinbase Sans | 20pt | 700 | 1.15 | -0.2pt | "Your assets", "Watchlist", "Markets" |
92
+ | Asset Title | Coinbase Sans | 16pt | 600 | 1.3 | 0pt | "Bitcoin", "Ethereum" — full name |
93
+ | Ticker Symbol | Coinbase Sans | 13pt | 500 | 1.3 | 0.3pt | "BTC", "ETH" — tracked wider |
94
+ | Asset Price | Coinbase Sans | 16pt | 500 | 1.2 | 0pt | "$67,234.18" — TABULAR |
95
+ | Asset 24h Change | Coinbase Sans | 13pt | 500 | 1.3 | 0pt | "+$1,234 (+1.87%)" — TABULAR, green/red |
96
+ | Body | Coinbase Sans | 15pt | 400 | 1.5 | 0pt | About-the-asset paragraph, market commentary |
97
+ | Body Small | Coinbase Sans | 13pt | 400 | 1.4 | 0pt | News meta, transaction history |
98
+ | Wallet Address | Coinbase Mono | 13pt | 500 | 1.4 | 0pt | "0x742d35Cc6634C0532925a3b844Bc..." |
99
+ | Tx Hash | Coinbase Mono | 12pt | 400 | 1.4 | 0pt | Transaction hashes |
100
+ | Button Primary | Coinbase Sans | 16pt | 600 | 1.0 | 0pt | "Buy Bitcoin", "Sell", "Send" |
101
+ | Tab Label | Coinbase Sans | 10pt | 600 | 1.0 | 0.1pt | Bottom tab labels |
102
+ | All-Caps Section | Coinbase Sans | 11pt | 700 | 1.2 | 0.6pt | "PORTFOLIO VALUE", "MARKETS" — small caps |
103
+ | Range Chip | Coinbase Sans | 13pt | 600 | 1.0 | 0.3pt | "1H / 1D / 1W / 1M / 1Y / ALL" range chips |
104
+
105
+ ### Principles
106
+ - **Coinbase Display for hero, Coinbase Sans for body**: The 40pt+ portfolio value uses Display; all body, list rows, secondary text use Sans. Display is slightly tighter and more confident — it's there to make the big number feel institutional.
107
+ - **Tabular numerals everywhere financial**: every $-amount, every percentage, every quantity uses `fontVariant: ['tabular-nums']`. The asset list's vertical column of prices must align cleanly — this is the institutional clean look.
108
+ - **Coinbase Mono for technical readouts**: wallet addresses, transaction hashes, order book prices when shown. Never use Sans for an address; never use Mono for a regular price.
109
+ - **Tracked-wide ticker symbols**: BTC, ETH, USDC at 13pt with +0.3pt letter spacing — treated as branded micro-monograms, same convention as Robinhood.
110
+ - **Text in Coinbase Black, not pure black**: `#0A0B0D` carries a cool tint that aligns with the blue brand identity. Pure `#000` would feel cold and disconnected.
111
+
112
+ ## 4. Component Stylings
113
+
114
+ ### Buttons
115
+
116
+ **Primary CTA ("Buy", "Send", "Continue")**
117
+ - Background: `#0052FF` (Coinbase Blue)
118
+ - Text: `#FFFFFF`, Coinbase Sans 16pt weight 600
119
+ - Padding: 14pt vertical, 24pt horizontal
120
+ - Corner radius: 12pt
121
+ - Height: 48pt minimum
122
+ - Width: typically full-width minus 16pt margins
123
+ - Pressed: background `#0040CC`, scale 0.98
124
+ - Haptic: `.impactOccurred(.medium)` on Buy confirmation
125
+
126
+ **Secondary Button ("Sell", "Cancel")**
127
+ - Background: `#EEF0F3` (Surface Gray 2)
128
+ - Text: `#0A0B0D`, Coinbase Sans 16pt weight 600
129
+ - Same dimensions
130
+ - Pressed: background `#E1E4E8`
131
+
132
+ **4-Up Action Row (Buy / Sell / Send / Receive)**
133
+ - Container: 4 equal-width buttons in a single row at the top of an asset detail screen
134
+ - Each button: stacked icon (28pt) + label (Coinbase Sans 13pt 500)
135
+ - Background: `#F7F8FA` (Surface Gray), 12pt corner radius
136
+ - Icons: Buy = up-arrow, Sell = down-arrow, Send = paper-plane, Receive = QR-code or down-arrow-into-tray
137
+ - Icon color: `#0052FF` (Coinbase Blue)
138
+ - Label: `#0A0B0D`
139
+ - 8pt gap between buttons
140
+ - Padding: 12pt vertical inside each
141
+
142
+ **Chart Range Chip (1H / 1D / 1W / 1M / 1Y / ALL)**
143
+ - Container: 32pt × 28pt
144
+ - Background: transparent default, `#EEF0F3` selected
145
+ - Text: `#5B616E` Coinbase Sans 13pt weight 600 letter-spaced +0.3pt; selected flips to `#0A0B0D`
146
+ - Corner radius: 8pt
147
+
148
+ ### Cards & Containers
149
+
150
+ **Portfolio Hero Block (top of Home)**
151
+ - Container: full-width, no card chrome
152
+ - Layout: "PORTFOLIO BALANCE" all-caps label in Coinbase Sans 11pt 700 +0.6pt letter-spaced `#5B616E` → portfolio value "$12,847.93" in Coinbase Display 40pt 700 `#0A0B0D` tabular → 24h change "+$847.93 (+6.59%)" in Coinbase Sans 16pt 500 `#05B169` (green) or `#CF202F` (red)
153
+ - 16pt horizontal margin
154
+ - Vertical spacing: 8pt label-to-value, 4pt value-to-change
155
+
156
+ **Portfolio Chart (Home)**
157
+ - Width: full-bleed
158
+ - Height: 180pt (slightly shorter than Robinhood — Coinbase prioritizes the asset list below)
159
+ - Line: 2pt stroke, default `#0052FF` (Coinbase Blue), but switches to `#05B169` (green) when 24h is positive or `#CF202F` (red) when negative if the user has the day-color mode enabled
160
+ - No fill below the line
161
+ - Scrubber: identical pattern to Robinhood — vertical line + price bubble follows finger
162
+ - Range chips below: 1H / 1D / 1W / 1M / 1Y / ALL
163
+
164
+ **Asset Row (Your assets / Markets list)**
165
+ - Height: 64pt
166
+ - Leading: 40pt circular icon in the asset's brand color (Bitcoin orange, ETH purple, USDC blue, etc.) with the asset symbol or glyph in white centered
167
+ - Middle: asset name in Coinbase Sans 16pt 600 `#0A0B0D` above ticker + holdings ("BTC · 0.1842 BTC") in Coinbase Sans 13pt 500 `#5B616E` (ticker tracked +0.3pt)
168
+ - Trailing right-aligned: market value in Coinbase Sans 16pt 500 `#0A0B0D` tabular + 24h change in Coinbase Sans 13pt 500 tabular in green or red
169
+ - Mini sparkline (optional): 56pt × 20pt SVG line graph between the middle text block and the price, in the 24h-direction color
170
+ - Divider: 0.5pt `#E1E4E8` bottom
171
+
172
+ **Watchlist Row**
173
+ - Same as asset row but no holdings line — just ticker name + current price + 24h change + mini sparkline
174
+ - Heart icon trailing: tap to remove from watchlist
175
+
176
+ **Trade Confirmation Card**
177
+ - Container: large rounded rectangle, 16pt radius, 1pt `#E1E4E8` border, white background
178
+ - Padding: 24pt
179
+ - Layout: asset icon (48pt) + "Buy Bitcoin" Coinbase Display 22pt 700 → list of details (Amount, Spot price, Fee, Total) in Coinbase Sans 15pt — left label `#5B616E`, right value `#0A0B0D` tabular
180
+ - Bottom CTA: "Confirm purchase" full-width
181
+
182
+ ### Navigation
183
+
184
+ **Top Nav Bar (Home tab)**
185
+ - Height: 56pt + safe area
186
+ - Background: `#FFFFFF`
187
+ - Leading: Coinbase "C" mark (28pt) in Coinbase Blue (the circle-with-line logomark)
188
+ - Trailing: notification bell (24pt) + a search magnifying glass (24pt)
189
+ - Title: when present (on inner screens), centered, Coinbase Sans 17pt 600 `#0A0B0D`
190
+ - Border bottom: 0.5pt `#E1E4E8`
191
+
192
+ **Bottom Tab Bar**
193
+ - Height: 56pt + safe area
194
+ - Background: `#FFFFFF` with 0.5pt `#E1E4E8` top divider
195
+ - 5 tabs: Home / Trade / Cards / Earn / Wallet (newer); older versions: Home / Trade / Lend / Wallet / Profile
196
+ - Icon size: 24pt outlined / filled when active
197
+ - Active state: icon + label `#0052FF`
198
+ - Inactive: `#5B616E`
199
+ - Labels: Coinbase Sans 10pt 600 +0.1pt letter spacing
200
+ - Tap haptic: `.selectionChanged()`
201
+
202
+ **Sticky Buy/Sell Footer (Asset Detail bottom)**
203
+ - Height: 64pt + safe area
204
+ - Background: `#FFFFFF` with 0.5pt `#E1E4E8` top divider
205
+ - 2 buttons side by side: "Buy" (Coinbase Blue fill) + "Sell" (Surface Gray fill, black text)
206
+ - Each 48pt height, 12pt corner radius, half-width with 8pt gap
207
+
208
+ ### Input Fields
209
+
210
+ **Search Bar**
211
+ - Background: `#EEF0F3` (Surface Gray 2)
212
+ - Height: 44pt
213
+ - Corner radius: 22pt (full pill)
214
+ - Leading icon: `magnifyingglass` 16pt `#5B616E`
215
+ - Placeholder: "Search assets" in Coinbase Sans 15pt 400 `#80868F`
216
+ - Text: Coinbase Sans 15pt 400 `#0A0B0D` on focus
217
+
218
+ **Buy/Sell Amount Field**
219
+ - Fullscreen modal — the $-amount centered: Coinbase Display 56pt 700 `#0A0B0D` tabular
220
+ - Currency selector: tap to switch between USD entry and crypto entry (e.g., enter "$100" or enter "0.001 BTC")
221
+ - Standard numeric keypad below
222
+ - Auto-shrinks at 5+ digits
223
+
224
+ **Wallet Address Display**
225
+ - Coinbase Mono 13pt 500, monospaced
226
+ - Background: `#F7F8FA`, 8pt corner radius, 12pt padding
227
+ - Tap to copy with a brief toast "Copied" animation
228
+ - Truncated middle: "0x742d35Cc...8b9b9d04"
229
+
230
+ ### Distinctive Components
231
+
232
+ **The "C" Coin Mark (Logomark)**
233
+ - A perfect circle with a horizontal line through the middle — the geometric Coinbase brand mark
234
+ - Rendered in Coinbase Blue (`#0052FF`) at 28pt in the top-left of the Home tab
235
+ - Used as a loading indicator: a subtle 1500ms rotation or pulse animation
236
+ - Always perfectly geometric — no stylized variants
237
+
238
+ **Asset Icon Circles**
239
+ - Every cryptocurrency in the list gets a 40pt circular icon in its official brand color
240
+ - The asset's glyph (Bitcoin "₿", Ethereum diamond, USDC "$") sits centered in white
241
+ - These are mini brand patches — Coinbase maintains a library of asset icons matching each token's official identity
242
+ - The visual variety of orange (BTC) + purple (ETH) + blue (USDC) + green (USDT) creates the colorful asset-list signature
243
+
244
+ **Mini Sparkline (in asset rows)**
245
+ - 56pt × 20pt inline SVG line graph showing the asset's 24h price trend
246
+ - 1.5pt stroke, color matches the 24h direction (green or red)
247
+ - No axis, no labels, no fill — purely a directional micro-cue
248
+ - Sits between the ticker text and the price, right-aligned
249
+
250
+ **Buy / Sell / Send / Receive Quad**
251
+ - The 4-up action row at the top of every asset detail screen is unique to Coinbase
252
+ - Each action is equal weight, equal size — Coinbase wants the user to see "you can do all of these things, this is a real exchange"
253
+ - 12pt corner radius cards, 4-column equal grid, icons in Coinbase Blue
254
+
255
+ **Coinbase Earn Badge**
256
+ - A green pill on the right side of certain assets indicating earn opportunities ("Earn 5% APY")
257
+ - Background: `#E6F7EF`, text: `#05B169`, Coinbase Sans 12pt 600, 16pt corner radius
258
+
259
+ ## 5. Layout Principles
260
+
261
+ ### Spacing System
262
+ - Base unit: 4pt
263
+ - Scale: 4, 8, 12, 16, 20, 24, 32, 40, 48, 64
264
+ - Standard horizontal margin: 16pt — slightly tighter than airy Airbnb, denser than Cash App
265
+ - Section vertical gap: 32pt between major sections; 16pt between rows
266
+ - Card internal padding: 24pt
267
+
268
+ ### Grid & Container
269
+ - Content width: full device width minus 16pt horizontal margins
270
+ - Asset rows: 100% width within margins
271
+ - Portfolio chart: full-bleed
272
+ - 4-up action row: 4 equal columns with 8pt gaps
273
+
274
+ ### Whitespace Philosophy
275
+ - **Institutional density**: 64pt asset rows are tighter than retail apps because users expect to scan many holdings — but not as dense as a stock terminal
276
+ - **Hero has room**: the portfolio chart + hero block reserves the top 40% of the Home tab
277
+ - **Lists breathe enough**: 16pt section gaps and 0.5pt dividers (not hard rules) keep the asset list readable without crowding
278
+
279
+ ### Border Radius Scale
280
+ - Square (0pt): rare
281
+ - Small (4pt): badges, status pills
282
+ - Standard (8pt): wallet address display, info banners
283
+ - Comfortable (12pt): primary CTAs, action row cards, modal sheets
284
+ - Soft (16pt): asset detail cards, trade confirmation card, modal top
285
+ - Pill (500pt): search bar, filter chips, earn badge
286
+ - Circle (50%): avatars, asset icons, the Coinbase C mark
287
+
288
+ ## 6. Depth & Elevation
289
+
290
+ | Level | Treatment | Use |
291
+ |-------|-----------|-----|
292
+ | Flat (Level 0) | No shadow | List rows, section backgrounds, canvas |
293
+ | Whisper (Level 1) | `rgba(0,0,0,0.04) 0 2px 6px` | Asset cards on Markets, trade confirmation card |
294
+ | Card (Level 2) | `rgba(0,0,0,0.08) 0 4px 12px` | Floating action buttons, contextual menus |
295
+ | Sheet (Level 3) | `rgba(0,0,0,0.16) 0 -8px 24px` | Bottom sheets, confirm modals |
296
+ | Overlay Dim | `rgba(0,0,0,0.50)` | Behind modal sheets |
297
+
298
+ **Shadow Philosophy**: Coinbase uses very subtle elevation — the brand reads as institutional clean, not glossy. Shadows are 0.04-0.08 opacity and short (2-12pt blur). Compared to PayPal (gentle card-wallet feel), Coinbase is even more restrained. The portfolio chart and asset icons do the visual lifting, not drop shadows.
299
+
300
+ ### Motion
301
+ - **Buy/Sell tap**: scale 1.0 → 0.98 → 1.0 spring (response 0.25, damping 0.7), `.impactOccurred(.medium)` haptic
302
+ - **Order confirmation**: success modal slides up 350ms; green checkmark icon (`#05B169`) scales 0.5 → 1.0 with a delayed 100ms; `.notificationOccurred(.success)` haptic
303
+ - **Chart scrubber drag**: identical to Robinhood — vertical line follows finger, hero portfolio value updates in real-time via `.contentTransition(.numericText())`
304
+ - **Asset row tap**: row background fades from white to `#F7F8FA` over 150ms before pushing the asset detail screen
305
+ - **Tab switch**: icon transitions outline/filled over 200ms, label color animates `#5B616E` → `#0052FF`; `.selectionChanged()` haptic
306
+ - **The C-mark loading**: a slow 1500ms rotation (the circle spins; the horizontal line stays fixed inside) or a subtle 1200ms opacity pulse for shorter loads
307
+ - **Wallet address copy**: brief 1500ms green toast "Copied" appearing at the top — Coinbase doesn't use heavy confetti
308
+
309
+ ## 7. Do's and Don'ts
310
+
311
+ ### Do
312
+ - Use Coinbase Blue `#0052FF` for primary CTAs, active tab, and the C-mark — it's the core brand action color
313
+ - Use Coinbase Display for hero portfolio values (40pt+); use Coinbase Sans for everything else
314
+ - Use Coinbase Mono ONLY for wallet addresses, transaction hashes, and order book numbers
315
+ - Render each crypto asset's icon with its official brand color (Bitcoin orange, ETH purple, USDC blue) in a 40pt circle with the asset's glyph in white centered
316
+ - Use tabular numerals on every price, percentage, and quantity — the institutional asset list look depends on it
317
+ - Make the asset list rich: ticker + holdings + price + 24h change + mini sparkline — Coinbase prides itself on info density
318
+ - Use the 4-up action row (Buy / Sell / Send / Receive) at the top of every asset detail — it's the brand pattern
319
+ - Track ticker symbols at +0.3pt letter spacing — same convention as Robinhood
320
+ - Use `#0A0B0D` Coinbase Black for primary text — NOT pure black; the slight cool tint aligns with the blue brand
321
+ - Use the geometric C-mark logomark in the top-left of the Home tab — always Coinbase Blue, always perfectly circular
322
+
323
+ ### Don't
324
+ - Don't use any other blue as the brand accent — Coinbase Blue `#0052FF` is the only correct shade
325
+ - Don't use pure black `#000000` for text — `#0A0B0D` (slight cool tint) is correct
326
+ - Don't use Coinbase Sans for wallet addresses — Mono is required for technical readouts
327
+ - Don't replace the asset's brand color icon with a monochrome version — the orange / purple / blue diversity is part of the visual identity
328
+ - Don't crowd asset rows below 60pt — the rich icon + 2-line text + sparkline + price + change needs room
329
+ - Don't use green for a falling asset or red for a rising one — color binds to direction
330
+ - Don't add heavy shadows — Coinbase is institutional minimal, max 0.08 opacity
331
+ - Don't use generic stock icons for the 4-up action row — Buy/Sell/Send/Receive icons are part of the brand pattern
332
+ - Don't render the Coinbase C-mark stylized or distorted — it's a perfect circle with a horizontal line, always
333
+ - Don't soften primary text to gray — `#0A0B0D` is brand-correct
334
+
335
+ ## 8. Responsive Behavior
336
+
337
+ ### Device Sizes
338
+ | Device | Width | Key Changes |
339
+ |--------|-------|-------------|
340
+ | iPhone SE (3rd gen) | 375pt | Portfolio hero caps at 36pt; chart height reduces to 160pt; sparkline shortens to 48pt |
341
+ | iPhone 13/14/15 | 390pt | Standard 40pt hero; 180pt chart; 56pt sparkline |
342
+ | iPhone 15/16 Pro | 393pt | Dynamic Island respected; nav bar below it |
343
+ | iPhone 15/16 Pro Max | 430pt | Hero at 44pt; 200pt chart; 64pt sparkline |
344
+ | iPad | 768pt+ | 2-column: chart + portfolio on left, asset list + markets on right; sidebar nav replaces tab bar |
345
+
346
+ ### Dynamic Type
347
+ - Body text, asset row subtitles, secondary labels scale fully
348
+ - Portfolio hero (40pt) scales but clamps at 56pt
349
+ - Buy/Sell entry (56pt) scales but clamps at 72pt
350
+ - Asset price (16pt) honors scaling up to 20pt
351
+ - Tab labels and range chips are fixed
352
+ - Wallet addresses and tx hashes (Mono) are fixed — must stay legible at the original size
353
+
354
+ ### Orientation
355
+ - Portrait only on phones
356
+ - iPad supports landscape with sidebar nav
357
+
358
+ ### Touch Targets
359
+ - Asset row: full 64pt hit area
360
+ - Tab bar: 56pt full row with 24pt icons
361
+ - Primary CTA: 48pt height, full-width minus 32pt margins
362
+ - 4-up action button: full card area, ~88pt each on phone
363
+ - Wallet address tap-to-copy: full pill area
364
+
365
+ ### Safe Area Handling
366
+ - Top: nav respects safe area + Dynamic Island
367
+ - Bottom: tab bar pins above home indicator; sticky Buy/Sell footer respects it
368
+ - Modal sheets: 16pt top corners, bottom respects home indicator
369
+ - Sides: 16pt content insets
370
+
371
+ ## 9. Quick Reference Cheat Sheet
372
+
373
+ ### Color Reference
374
+ - Canvas: `#FFFFFF`
375
+ - Surface Gray: `#F7F8FA`
376
+ - Surface Gray 2: `#EEF0F3`
377
+ - Divider: `#E1E4E8`
378
+ - Text Primary (Coinbase Black): `#0A0B0D`
379
+ - Text Secondary: `#5B616E`
380
+ - Coinbase Blue: `#0052FF`
381
+ - Coinbase Blue Pressed: `#0040CC`
382
+ - Success Green: `#05B169`
383
+ - Loss Red: `#CF202F`
384
+ - Warning Amber: `#F5A623`
385
+ - Bitcoin Orange: `#F7931A`
386
+ - Ethereum Purple: `#627EEA`
387
+ - USDC Blue: `#2775CA`
388
+ - Solana Purple: `#9945FF`
389
+ - Dark Canvas: `#0A0B0D`
390
+ - Dark Surface 1: `#13151A`
391
+
392
+ ### Example Component Prompts
393
+ - "Build the Coinbase Home portfolio block: 'PORTFOLIO BALANCE' label in Coinbase Sans 11pt weight 700 letter-spaced +0.6pt `#5B616E`. Below: portfolio value '$12,847.93' in Coinbase Display 40pt weight 700 `#0A0B0D` with tabular numerals. Below: 24h change '+$847.93 (+6.59%)' in Coinbase Sans 16pt weight 500 in `#05B169` (green) if positive or `#CF202F` (red) if negative. 16pt horizontal margin."
394
+ - "Style a Coinbase asset row: 64pt tall white row. Leading 40pt circular icon in the asset's brand color (`#F7931A` for Bitcoin, `#627EEA` for Ethereum, `#2775CA` for USDC) with the asset symbol or glyph in white centered. Middle: asset name 'Bitcoin' in Coinbase Sans 16pt weight 600 `#0A0B0D` above 'BTC · 0.1842 BTC' in Coinbase Sans 13pt weight 500 `#5B616E` (ticker tracked +0.3pt). Then a 56pt × 20pt mini sparkline SVG in the 24h-direction color (green up, red down). Trailing right-aligned: market value '$12,389.42' in Coinbase Sans 16pt weight 500 `#0A0B0D` tabular above '+$234.18 (+1.92%)' in Coinbase Sans 13pt weight 500 tabular green or red. 0.5pt `#E1E4E8` bottom divider."
395
+ - "Render the Coinbase 4-up action row on an asset detail screen: 4 equal-width buttons in a single row — Buy, Sell, Send, Receive. Each button is a 12pt-radius `#F7F8FA` rounded rectangle with a stacked 28pt Coinbase Blue icon (`#0052FF`) above a Coinbase Sans 13pt weight 500 label in `#0A0B0D`. 8pt gap between buttons, 12pt internal padding. Buy = up-arrow, Sell = down-arrow, Send = paper-plane, Receive = QR-code."
396
+ - "Build the Coinbase Buy/Sell amount screen: fullscreen modal with the $-amount centered. Use Coinbase Display 56pt weight 700 in `#0A0B0D` with tabular numerals. Currency selector below: 'USD' / 'BTC' tap-toggle in Coinbase Sans 13pt 500 `#5B616E` with a chevron. Standard numeric keypad at the bottom. Sticky CTA at the bottom: 'Preview buy' or 'Buy Bitcoin' in Coinbase Blue `#0052FF` fill, white Coinbase Sans 16pt 600 text, 48pt height, 12pt corner radius."
397
+ - "Render a Coinbase wallet address display: Coinbase Mono 13pt weight 500 in `#0A0B0D`, with the middle truncated like '0x742d35Cc...8b9b9d04'. Surface Gray `#F7F8FA` background, 8pt corner radius, 12pt padding. Tap-to-copy with a 1500ms green toast 'Copied' appearing at the top of the screen."
398
+
399
+ ### Iteration Guide
400
+ 1. Canvas is `#FFFFFF` (light) or `#0A0B0D` Coinbase Black (dark) — the dark canvas has a subtle cool tint
401
+ 2. Coinbase Blue `#0052FF` is THE brand accent — primary CTAs, active tab, C-mark, link color
402
+ 3. Primary text is `#0A0B0D` (Coinbase Black, slight cool tint), NOT pure black
403
+ 4. Coinbase Display for hero portfolio values (40pt+); Coinbase Sans for everything else; Coinbase Mono ONLY for wallet addresses and tx hashes
404
+ 5. Every asset gets a circular 40pt icon in its OFFICIAL brand color — Bitcoin orange, ETH purple, USDC blue — with white glyph centered
405
+ 6. Tabular numerals on every price / percentage / quantity — the institutional asset list look depends on it
406
+ 7. Mini sparkline (56pt × 20pt) inside each asset row showing 24h trend in the direction color
407
+ 8. 4-up action row (Buy / Sell / Send / Receive) is the brand pattern on every asset detail screen
408
+ 9. Track ticker symbols at +0.3pt letter spacing — branded micro-monograms
409
+ 10. Shadows are 0.04-0.08 opacity — Coinbase is institutional clean, not glossy