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,400 @@
1
+ # Design System Inspiration of Nike Run Club (iOS)
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ Nike Run Club is a stadium tunnel — black walls, white spotlights, a runner sprinting into them. The canvas is true black (`#000000`) on every screen, the typography is editorial and athletic, and every interaction is shouted in screaming capital letters. NRC is unapologetically loud. Where Strava is a newspaper, NRC is a poster. The brand is built for the moment just before a hard run: bold display weights, deep contrast, urgent action verbs ("LET'S DO THIS", "START RUN", "GO").
6
+
7
+ The accent is Nike Volt (`#CCFF00`) — the radioactive yellow-green that's been on Nike Air Max heels since the late 80s — backed by Nike Red (`#FA5400`) for fire moments and an austere Brake-Light Red (`#E50916`) for the workout-finish heart-rate-zone screens. Volt is the brand voice: progress rings on guided runs, accent strokes on stats, the "START" button on quick runs. Red is reserved for results, achievements, and "you crushed it" messaging. Everything else is monochromatic — true black canvas, white text, Nike Gray ladder (`#1A1A1A` to `#8E8E8E`) for substrate hierarchy.
8
+
9
+ Typography is Nike's house display face Trade Gothic (Heavy Condensed for the screaming hero numbers, Bold Condensed for section heads) backed by SF Pro for body and metadata. Trade Gothic Condensed is the secret sauce — it lets Nike pack "8.2 MILES" or "4.5K RUN" at hero-display size into a single line without losing impact, and the heavy condensed weight is the visual signature of Nike's stadium graphics, shoe campaigns, and apparel tags. Numbers are tabular (`tnum`) on every stat. Letter spacing is generous on display caps (0.5pt at 64pt down to 0.2pt at 16pt) — Nike-style headlines breathe.
10
+
11
+ The hero screen of the app is the Run Tracking screen during an active run: pure black canvas, a Volt-yellow progress ring filling clockwise around the elapsed time, three stats (DISTANCE / PACE / HEART RATE) stacked above it in giant condensed caps, and a pause/stop control at the bottom. This screen is what NRC is famous for — it's the closest a phone gets to feeling like a piece of equipment.
12
+
13
+ **Key Characteristics:**
14
+ - True black canvas (`#000000`) on every screen — sports broadcasting aesthetic
15
+ - Nike Volt (`#CCFF00`) — the radioactive accent on progress rings, primary CTAs, achievements
16
+ - Nike Red (`#FA5400`) — fire/intensity accent on workout results, "crushed it" moments
17
+ - Trade Gothic Heavy Condensed — the hero display face; everything screams in CONDENSED ALL CAPS
18
+ - Run Tracking screen: massive Volt progress ring + 3-up stat stack DISTANCE / PACE / HR
19
+ - Numbers everywhere — tabular, condensed, screaming sizes (88pt elapsed time during a run)
20
+ - Coach Bennett voice-over branding — friendly text labels paired with hard ALL CAPS verbs
21
+ - Workout cards with full-bleed photography of athletes (real Nike athletes, training gyms)
22
+ - "Achievement medals" — illustrated badges in Volt/Red gradients, animated reveal on completion
23
+ - Bottom tab bar: Home / Activity / Coach / Goal / Profile — black with Volt active state
24
+ - Heavy haptics on "Start Run" and milestones — `.heavy` impact, not `.medium`
25
+ - Action buttons are full-width pills with screaming labels: "LET'S DO THIS", "START RUN", "FINISH"
26
+
27
+ ## 2. Color Palette & Roles
28
+
29
+ ### Primary
30
+ - **Nike Volt** (`#CCFF00`): THE accent — progress rings, primary CTAs, active states, achievement gradients, voice-coach prompts.
31
+ - **Volt Pressed** (`#9FCC00`): Active/pressed state on Volt CTAs.
32
+ - **Volt Dim** (`#8AA800`): Used on light-mode (rare in NRC) for accessibility-compliant accent on white.
33
+
34
+ ### Secondary (Intensity)
35
+ - **Nike Red** (`#FA5400`): "Crushed it" moments, achievement reveals, fire callouts, the brand's secondary signature.
36
+ - **Brake-Light Red** (`#E50916`): Heart rate zone 5 (max), pace-too-slow warning, error states.
37
+
38
+ ### Canvas, Surfaces & Dividers
39
+ - **True Black** (`#000000`): Primary canvas everywhere — Nike's stadium void.
40
+ - **Nike Charcoal** (`#0A0A0A`): A whisper lighter than the canvas — section background variations, card fills inside the dark.
41
+ - **Nike Surface 1** (`#1A1A1A`): Card backgrounds on home feed, settings rows.
42
+ - **Nike Surface 2** (`#2B2B2B`): Pressed states, input field fill, chip backgrounds.
43
+ - **Nike Divider** (`#333333`): Hairline row dividers inside settings and result detail.
44
+
45
+ ### Text
46
+ - **Pure White** (`#FFFFFF`): Primary text — every hero stat, every button label, every screaming caps headline.
47
+ - **Nike Gray 1** (`#B3B3B3`): Secondary text — labels, "MIN/MI" units, metadata, "Hosted by Coach Bennett".
48
+ - **Nike Gray 2** (`#8E8E8E`): Tertiary — placeholder, disabled, "Tap to continue" prompts.
49
+ - **Nike Gray 3** (`#5C5C5C`): Quaternary — separator caption, footnotes, "as of 9:42 AM".
50
+
51
+ ### Heart Rate Zones (used on the workout results "training effect" page)
52
+ - **HR Zone 1 (Easy)** (`#3D87F4`): Endurance blue.
53
+ - **HR Zone 2 (Steady)** (`#48C77E`): Steady green.
54
+ - **HR Zone 3 (Moderate)** (`#FFD600`): Tempo yellow.
55
+ - **HR Zone 4 (Hard)** (`#FA5400`): Threshold orange (Nike Red).
56
+ - **HR Zone 5 (Max)** (`#E50916`): Max red (Brake-Light Red).
57
+
58
+ ### Semantic
59
+ - **Success Volt** (`#CCFF00`): Run uploaded, sync complete (Volt doubles as success).
60
+ - **Warning Amber** (`#FFC400`): GPS signal weak, low battery in session.
61
+ - **Error Red** (`#E50916`): Failed sync, payment failed, GPS lost.
62
+
63
+ ### Light Mode
64
+ NRC does have a light mode (for accessibility) but Nike's brand is intentionally dark-first; light mode is rarely used in marketing.
65
+ - **Light Canvas** (`#FFFFFF`)
66
+ - **Light Surface** (`#F4F4F4`)
67
+ - **Light Text Primary** (`#0A0A0A`)
68
+ - **Volt on Light** (`#8AA800`): Volt darkened to pass WCAG AA on white.
69
+ - **Red on Light** (`#FA5400`): unchanged
70
+
71
+ ## 3. Typography Rules
72
+
73
+ ### Font Family
74
+ - **Display (hero stats, section heads, button labels)**: `Trade Gothic Next LT W04 Heavy Condensed` (proprietary licensed face by Linotype) — the screaming Nike voice
75
+ - **Display alt**: `Futura Condensed Extra Bold` is a sometimes-substitute on shoe drops; not used in NRC chrome
76
+ - **Body / metadata**: `SF Pro Text` — Apple-system fallback for body, comments, coach copy
77
+ - **Fallback stack**: `'Trade Gothic Next LT', 'Trade Gothic LT Std', 'Helvetica Neue Condensed Bold', 'Arial Narrow Bold', -apple-system, sans-serif`
78
+ - **Web/marketing Google Fonts substitute**: `Oswald` (close enough — geometric condensed with similar proportions); `Bebas Neue` for ultra-condensed all-caps moments
79
+ - **Numeric weight**: SF Pro `monospacedDigit()` on every running stat — pace, distance, elapsed, calories, HR
80
+
81
+ ### Hierarchy
82
+
83
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
84
+ |------|------|------|--------|-------------|----------------|-------|
85
+ | Run Hero Stat | Trade Gothic Condensed | 88pt | 900 (Heavy) | 0.95 | 0.5pt | Elapsed time during active run: "1:14:23" |
86
+ | Pre/Post Run Hero | Trade Gothic Condensed | 64pt | 900 | 0.95 | 0.4pt | "8.2 MI" on the results screen |
87
+ | Large Nav Headline | Trade Gothic Condensed | 48pt | 900 | 0.95 | 0.3pt | "JUST DO IT", "LET'S DO THIS" — pre-run hype copy |
88
+ | Screaming Section Header | Trade Gothic Condensed | 32pt | 900 | 1.0 | 0.3pt | "TODAY'S RUN", "ACHIEVEMENTS" UPPERCASE |
89
+ | Sub Header | Trade Gothic Condensed | 22pt | 700 (Bold) | 1.1 | 0.3pt | "5K · 30 MIN · COACH BENNETT" UPPERCASE |
90
+ | Stat Label (under big number) | Trade Gothic Condensed | 13pt | 700 | 1.0 | 1.0pt | "MIN/MI", "BPM", "CAL" UPPERCASE — very wide tracking |
91
+ | Card Title | SF Pro Display | 17pt | 700 | 1.2 | -0.2pt | Run plan card title (mixed case allowed) |
92
+ | Body | SF Pro Text | 15pt | 400 (Regular) | 1.45 | -0.1pt | Coach Bennett's voice copy, training plan descriptions |
93
+ | Body Bold | SF Pro Text | 15pt | 600 | 1.45 | -0.1pt | Inline emphasis |
94
+ | Button Label | Trade Gothic Condensed | 17pt | 900 | 1.0 | 0.5pt | "START RUN", "FINISH", "PAUSE" UPPERCASE |
95
+ | Tab Label | SF Pro Text | 10pt | 600 | 1.0 | 0.3pt | Bottom tab — mixed case |
96
+ | Metadata | SF Pro Text | 13pt | 400 | 1.3 | 0pt | "Aug 12 · 8:42 AM", "5 miles · Recovery" |
97
+ | Caption | SF Pro Text | 11pt | 500 | 1.3 | 0.1pt | "GPS connecting...", "Powered by NRC" |
98
+ | Achievement Number | Trade Gothic Condensed | 56pt | 900 | 0.95 | 0pt | "100" miles, "1,000" lifetime — on achievement medal reveal |
99
+
100
+ ### Principles
101
+ - **Trade Gothic Condensed Heavy Condensed for every hero number and every button label** — the Nike sound
102
+ - **Tracking widens at small sizes**: 1.0pt at 13pt stat labels, 0.5pt at 17pt buttons, 0.3pt at 48pt headlines — uppercase Nike copy breathes
103
+ - **Line-height 0.95-1.0 at display**: Nike crops tight; condensed letterforms don't need vertical air
104
+ - **`monospacedDigit()` on every stat** — pace columns must align on the results page
105
+ - **Mixed case allowed in body copy only** — anything Trade Gothic is UPPERCASE; anything SF Pro can be mixed
106
+ - **Dynamic Type respected on body and metadata**; FIXED on hero numbers (the entire visual identity depends on them)
107
+
108
+ ## 4. Component Stylings
109
+
110
+ ### Run Tracking Screen (the hero component)
111
+
112
+ **Layout**
113
+ - Full-screen, black canvas, portrait orientation locked
114
+ - Top: GPS signal strength + battery + time (status bar, white)
115
+ - Top-third: 3-up stat row — DISTANCE / PACE / HR — each cell vertically stacked label-over-value
116
+ - Label: Trade Gothic Condensed 13pt 700 white @ 70% with 1.0pt tracking UPPERCASE — "DISTANCE / MIN/MI / BPM"
117
+ - Value: Trade Gothic Condensed 64pt Heavy white tabular — "1.4", "8:42", "152"
118
+ - Middle: Massive Volt progress ring — 280pt diameter, 6pt stroke, fill `#CCFF00`, track `rgba(255,255,255,0.1)`
119
+ - Inside the ring: elapsed time at 88pt Trade Gothic Condensed Heavy white tabular — "12:34"
120
+ - Below the time, inside the ring: "ELAPSED" label at 13pt UPPERCASE 1.0pt tracking white @ 70%
121
+ - Bottom: Pause button (large circle, white) and Lock screen affordance (smaller, side)
122
+ - Background: pure `#000000`, no other content
123
+
124
+ **Progress Ring**
125
+ - Stroke: 6pt rounded cap
126
+ - Track: `rgba(255,255,255,0.1)`
127
+ - Fill: Volt `#CCFF00`, starts at -90° (12 o'clock) and progresses clockwise
128
+ - Rotates only when there's a "Coach Bennett interval" — otherwise it just fills toward the run's goal
129
+ - Animation: discrete 1s linear ticks for each progress unit (mile, kilometer, time interval)
130
+
131
+ **Pause / Stop / Lock Buttons**
132
+ - Pause: 72pt × 72pt white circle with 28pt black `pause.fill` glyph, centered horizontally near the bottom
133
+ - After pause, Pause becomes Resume (Volt circle with black `play.fill`) + Stop button appears to the left (red circle `#E50916`)
134
+ - Lock affordance: 48pt × 48pt black circle with white `lock` glyph, top-right inset 16pt — tap to disable accidental taps mid-run
135
+
136
+ ### Pre-Run / Post-Run Hero Cards
137
+
138
+ **Pre-Run "LET'S DO THIS" Screen**
139
+ - Full-bleed photography of a runner mid-stride (Nike athlete or stock photography)
140
+ - 60% gradient overlay from transparent (top) to `rgba(0,0,0,0.85)` (bottom)
141
+ - Bottom-aligned content stack:
142
+ - Coach attribution: SF Pro Text 13pt Medium white @ 70% — "COACH BENNETT · 30 MIN · RECOVERY"
143
+ - Headline: Trade Gothic Condensed 48pt Heavy white UPPERCASE — "EASY RECOVERY RUN"
144
+ - Body: SF Pro Text 15pt Regular white — Coach's intro paragraph
145
+ - "LET'S DO THIS" full-width pill button below
146
+
147
+ **Post-Run Results "YOU CRUSHED IT" Screen**
148
+ - Black canvas
149
+ - Hero: Trade Gothic Condensed 64pt Heavy Volt `#CCFF00` — "YOU CRUSHED IT"
150
+ - Below: 3-up stat row in same massive Trade Gothic numbers (white)
151
+ - Map snapshot below stats: route polyline in Volt `#CCFF00` with `rgba(204,255,0,0.3)` halo
152
+ - Coach Bennett quote card: dark surface, Coach's photo + quote in body italic
153
+ - "ACHIEVEMENTS UNLOCKED" section if any — animated medal reveal
154
+
155
+ ### Achievement Medal (the celebration moment)
156
+
157
+ **Design**
158
+ - Hexagonal medal silhouette, 200pt diameter, gradient fill Volt `#CCFF00` → Nike Red `#FA5400` for "100 miles" tier, or solid Volt for milestone tiers
159
+ - Centered icon: Trade Gothic Condensed Heavy 56pt — the milestone number ("100", "500", "1K")
160
+ - Below the medal: medal name in Trade Gothic 22pt UPPERCASE "100 MILES" + description in SF Pro Text 15pt Regular
161
+ - Reveal animation: 800ms — medal fades in at 0.5x scale, springs to 1.0x at damping 0.6, simultaneously a 8-particle Volt confetti burst behind the medal
162
+ - Tap: bouncing scale 1.0 → 1.05 → 1.0, haptic `.notificationOccurred(.success)`
163
+
164
+ ### Run Plan Card (Home Feed)
165
+
166
+ **Structure**
167
+ - Full-width minus 16pt margins, 320pt tall
168
+ - Background: full-bleed photography with `rgba(0,0,0,0.6)` overlay gradient bottom-up
169
+ - Bottom-aligned content (16pt inset):
170
+ - Eyebrow: "GUIDED RUN · 25 MIN" in SF Pro Text 11pt Medium UPPERCASE white @ 70% with 0.5pt tracking
171
+ - Title: "RECOVERY MILE" in Trade Gothic Condensed 32pt Heavy white UPPERCASE
172
+ - Description: "Coach Bennett · Easy effort" in SF Pro Text 13pt Regular white @ 80%
173
+ - Corner radius: 16pt
174
+ - No shadow (the canvas is already black; shadow doesn't help)
175
+ - Tap: scale 0.98, haptic `.impactOccurred(.medium)`, push to plan detail
176
+
177
+ ### Buttons
178
+
179
+ **Primary Action Button ("START RUN", "LET'S DO THIS", "FINISH")**
180
+ - Full-width minus 16pt margins
181
+ - Background: `#FFFFFF` (white on black canvas — the inversion of the canvas)
182
+ - Text: `#000000`, Trade Gothic Condensed 17pt Heavy 900 UPPERCASE, 0.5pt tracking
183
+ - Corner radius: 32pt (full pill, very rounded)
184
+ - Height: 56pt
185
+ - Pressed: scale 0.98, no color change
186
+ - Haptic on tap: `.impactOccurred(.heavy)` — Nike's CTA tap is the heaviest in the system
187
+
188
+ **Volt Highlight Button (special celebratory CTAs)**
189
+ - Background: `#CCFF00` Volt
190
+ - Text: `#000000`, Trade Gothic Condensed 17pt Heavy UPPERCASE
191
+ - Used for "CLAIM YOUR MEDAL", "JOIN CHALLENGE"
192
+ - Same shape and shadow as primary
193
+
194
+ **Outline Button (secondary)**
195
+ - Background: transparent
196
+ - Border: 2pt `#FFFFFF`
197
+ - Text: `#FFFFFF`, Trade Gothic Condensed 17pt Heavy UPPERCASE
198
+ - Same shape
199
+
200
+ **Pause / Stop Circular Buttons (in-run)**
201
+ - Pause: 72pt × 72pt white circle with black `pause.fill` 28pt
202
+ - Stop: 72pt × 72pt `#E50916` red circle with white `stop.fill` 28pt
203
+ - Tap: scale 0.95, haptic `.impactOccurred(.heavy)`
204
+
205
+ **Text Link**
206
+ - "VIEW ALL" or "SEE DETAILS" in Trade Gothic Condensed 14pt Bold UPPERCASE white, 0.5pt tracking
207
+ - No underline, 44pt hit area
208
+
209
+ ### Navigation
210
+
211
+ **Bottom Tab Bar**
212
+ - Height: 56pt + safe area
213
+ - Background: `#000000` with 0.5pt `#333333` top hairline
214
+ - Tabs (5): Home / Activity / Coach / Goal / Profile
215
+ - Icon: 24pt outlined SF Symbol, `#5C5C5C` inactive / `#FFFFFF` active
216
+ - Active state: white icon + 4pt Volt `#CCFF00` underline dot below the icon, centered
217
+ - Labels: SF Pro Text 10pt Semibold mixed case, `#8E8E8E` inactive / `#FFFFFF` active
218
+ - Tap haptic: `.selectionChanged()`
219
+
220
+ **Top App Bar**
221
+ - Height: 56pt + safe area
222
+ - Background: `#000000`
223
+ - Title: Trade Gothic Condensed 32pt Heavy UPPERCASE white — "HOME", "ACTIVITY", "GOAL"
224
+ - Right: action glyphs at 22pt white
225
+
226
+ ### Input Fields
227
+
228
+ **Text Field**
229
+ - Background: `#2B2B2B`
230
+ - Border: 1pt `rgba(255,255,255,0.1)` default, 2pt Volt focused
231
+ - Corner radius: 8pt
232
+ - Padding: 14pt vertical, 14pt horizontal
233
+ - Text: SF Pro Text 15pt Regular white
234
+ - Placeholder: `#8E8E8E`
235
+
236
+ ### Distinctive Components
237
+
238
+ **Heart Rate Zone Bar (on the workout results page)**
239
+ - A horizontal stacked bar — 5 segments, each colored to its zone (`#3D87F4` blue → `#48C77E` green → `#FFD600` yellow → `#FA5400` orange → `#E50916` red), proportional to time spent in each zone
240
+ - Height: 8pt
241
+ - Corner radius: 4pt
242
+ - Below the bar: 5 zone labels in Trade Gothic Condensed 11pt 700 UPPERCASE white with zone color dots, plus zone time in tabular SF Pro
243
+
244
+ **Pace Ladder (workout intervals)**
245
+ - Vertical list of intervals
246
+ - Each row: interval number (Trade Gothic 22pt Heavy white) + target pace (Trade Gothic 17pt 700 Volt) + actual pace (SF Pro 13pt Regular Nike Gray 1) + rest interval bar
247
+
248
+ **Coach Bennett Quote Card**
249
+ - Background: `#1A1A1A`
250
+ - Coach's circular photo, 48pt diameter, top-left
251
+ - Coach name: SF Pro Text 13pt Semibold white "COACH BENNETT" UPPERCASE
252
+ - Quote: SF Pro Text 17pt Regular Italic white — Coach's voice line ("So beautiful, what a run.")
253
+ - Corner radius: 16pt
254
+ - Padding: 16pt
255
+
256
+ ## 5. Layout Principles
257
+
258
+ ### Spacing System
259
+ - Base unit: 4pt
260
+ - Scale: 4, 8, 12, 16, 20, 24, 32, 40, 48, 64, 80
261
+ - Standard horizontal margin: 16pt on most screens; 24pt on Run Tracking and post-run results
262
+ - Section vertical gap: 32pt between major sections; 48pt above hero CTA buttons
263
+
264
+ ### Grid & Container
265
+ - Content width: full minus 16pt margins
266
+ - Plan cards: full-width, stacked vertically (no grid)
267
+ - Activity history: chronological vertical list with date separators
268
+ - Profile achievements: 3-col 1:1 hexagonal medal grid
269
+
270
+ ### Whitespace Philosophy
271
+ - **Black is the breathing room**: the canvas absorbs visual fatigue, the Volt and the Trade Gothic command attention
272
+ - **Hero numbers crop tight**: line-height 0.95 means the elapsed time touches the progress ring's inner edge — that's intentional
273
+ - **Stack tightly, but space hero CTAs**: 48pt gap above a "START RUN" button so it reads as committed
274
+
275
+ ### Border Radius Scale
276
+ - Square (0pt): map polyline halo, stat-row dividers
277
+ - Standard (8pt): text fields, input fills
278
+ - Medium (16pt): plan cards, quote cards
279
+ - Pill (32pt): primary action button (very rounded but not full pill)
280
+ - Full Pill (500pt): chip pills, tag pills
281
+ - Circle (50%): avatars, pause/stop buttons, profile photos
282
+
283
+ ## 6. Depth & Elevation
284
+
285
+ | Level | Treatment | Use |
286
+ |-------|-----------|-----|
287
+ | Flat (Level 0) | No shadow | Almost everything — Nike is flat on black |
288
+ | Card (Level 1) | None (the photo's gradient overlay creates the depth) | Plan cards |
289
+ | Pop (Level 2) | `rgba(204,255,0,0.4) 0 6px 16px` Volt glow | The "START RUN" button or active progress ring |
290
+ | Sheet (Level 3) | `rgba(0,0,0,0.6) 0 -8px 32px` | Bottom sheets for Pause confirmation, Lock screen |
291
+
292
+ **Shadow Philosophy**: Nike is flat on black. The only elevation is the Volt glow under "START RUN" (a colored shadow that says GO) and the natural gradient overlays on photography. Cards never cast neutral shadows — that's a Material/Google idiom, not a Nike idiom.
293
+
294
+ ### Motion
295
+ - **Progress ring fill**: 1s linear tick per progress unit (mile / km / interval); no spring, just deterministic
296
+ - **"START RUN" tap**: scale 0.98 instant + `.impactOccurred(.heavy)` haptic, then transition to Run Tracking screen via 400ms `.easeOut` fade (no slide)
297
+ - **Pause tap**: button scales to 0.95 + haptic `.impactOccurred(.heavy)`, transforms to Resume (Volt circle) + Stop (red circle) over 250ms spring
298
+ - **Achievement medal reveal**: 800ms — fade in at 0.5x scale, spring to 1.0x at `response: 0.4 dampingFraction: 0.6`, simultaneously 8-particle Volt confetti burst with `delay: 0.2`
299
+ - **Coach Bennett voice cue indicator**: subtle Volt dot blinks at 1Hz when Coach is speaking via headphones
300
+ - **Tab switch**: `.selectionChanged()` haptic, icon fades from outlined to filled in 200ms, Volt underline dot slides via `matchedGeometryEffect`
301
+ - **Confetti burst on milestone (PR mile pace, fastest 5K)**: bigger burst — 16 Volt particles + heavy haptic
302
+
303
+ ## 7. Do's and Don'ts
304
+
305
+ ### Do
306
+ - Use true black `#000000` for the canvas on every screen — Nike's brand is dark-first
307
+ - Use Volt `#CCFF00` as the primary accent — progress rings, active states, primary CTAs (when not white)
308
+ - Use Trade Gothic Condensed Heavy for every hero number and every button label — CONDENSED ALL CAPS is the Nike voice
309
+ - Apply 0.5pt-1.0pt letter spacing on uppercase Trade Gothic — Nike copy breathes
310
+ - Use `monospacedDigit()` on every running stat — pace columns must align
311
+ - Render the run-tracking progress ring at exactly 280pt diameter with 6pt stroke and rounded caps
312
+ - Use heavy haptics on "START RUN" and "PAUSE" — Nike's CTAs are committed, not casual
313
+ - Use 88pt Trade Gothic for the elapsed time inside the progress ring — it's the visual identity
314
+ - Show Coach Bennett's photo + name on every guided run plan card
315
+ - Use white as the primary CTA color (white pill on black canvas) — the inversion of the canvas is the brand
316
+ - Use Nike Red `#FA5400` for results/achievements, Volt for in-run/progress — they're different verbs
317
+ - Use the hexagonal medal silhouette for achievements (not a circle, not a star — Nike's pattern is hex)
318
+
319
+ ### Don't
320
+ - Don't use a light canvas as the default — NRC is dark-first; light mode exists only for accessibility
321
+ - Don't use mixed case in Trade Gothic — it's UPPERCASE only; only SF Pro body copy uses mixed case
322
+ - Don't render the progress ring with sharp caps — it must be rounded
323
+ - Don't use system blue or any cool accent — Nike's palette is monochromatic black/white with Volt + Red
324
+ - Don't use proportional digits in stats — `monospacedDigit()` is mandatory
325
+ - Don't put a drop shadow under cards — Nike is flat on black
326
+ - Don't replace Trade Gothic with a system condensed face — `SF Compressed` is close but Trade Gothic's letterforms (especially the lowercase 'a' on the rare title) are part of the brand
327
+ - Don't use the heavy haptic on tab switches — that's reserved for "START RUN", "PAUSE", and achievement reveals
328
+ - Don't use the medal hexagon as an avatar — hex is exclusively for achievements
329
+ - Don't use any Volt larger than 20% surface area on a screen — it's an accent, not a color field; Volt fields are exhausting
330
+
331
+ ## 8. Responsive Behavior
332
+
333
+ ### Device Sizes
334
+ | Device | Width | Key Changes |
335
+ |--------|-------|-------------|
336
+ | iPhone SE (3rd gen) | 375pt | Progress ring shrinks to 240pt; hero number 72pt |
337
+ | iPhone 13/14/15 | 390pt | Standard 280pt ring, 88pt hero number |
338
+ | iPhone 15/16 Pro | 393pt | Dynamic Island respected — top app bar sits below it |
339
+ | iPhone 15/16 Pro Max | 430pt | Larger 320pt ring, 96pt hero number |
340
+ | Apple Watch (companion) | 184-220pt | Run tracking simplified to elapsed + pace stacked, no ring |
341
+ | iPad | 768pt+ | Run tracking unchanged (single-column); home feed uses 2-col plan grid |
342
+
343
+ ### Dynamic Type
344
+ - Body and metadata: full scale
345
+ - Run hero stats (Trade Gothic 88pt): FIXED — the visual identity depends on them
346
+ - Button labels (Trade Gothic 17pt): FIXED
347
+ - Plan card titles: scale up to xLarge then clamp
348
+
349
+ ### Orientation
350
+ - Portrait-locked on Run Tracking
351
+ - Map view on activity detail can rotate
352
+ - Plan detail and Coach screens are portrait-locked
353
+
354
+ ### Touch Targets
355
+ - Pause button: 72pt visual, 80pt tap area
356
+ - Tab icons: 24pt visual, 56pt tap row
357
+ - Primary action button: 56pt height full-width
358
+
359
+ ### Safe Area Handling
360
+ - Top: safe area honored — top app bar sits below Dynamic Island / notch
361
+ - Bottom: tab bar respects home indicator; Run Tracking pause button respects safe area inset
362
+
363
+ ## 9. Agent Prompt Guide
364
+
365
+ ### Quick Color Reference
366
+ - Canvas: `#000000`
367
+ - Surface 1: `#1A1A1A`
368
+ - Surface 2: `#2B2B2B`
369
+ - Divider: `#333333`
370
+ - Nike Volt: `#CCFF00`
371
+ - Volt Pressed: `#9FCC00`
372
+ - Nike Red: `#FA5400`
373
+ - Brake Red: `#E50916`
374
+ - White: `#FFFFFF`
375
+ - Gray 1: `#B3B3B3`
376
+ - Gray 2: `#8E8E8E`
377
+ - HR Zone 1 (Blue): `#3D87F4`
378
+ - HR Zone 2 (Green): `#48C77E`
379
+ - HR Zone 3 (Yellow): `#FFD600`
380
+ - HR Zone 4 (Orange): `#FA5400`
381
+ - HR Zone 5 (Red): `#E50916`
382
+
383
+ ### Example Component Prompts
384
+ - "Build the Nike Run Club tracking screen: pure `#000000` canvas, locked to portrait. Top third has a 3-up horizontal row of stats — 'DISTANCE 1.4', 'PACE 8:42', 'BPM 152'. Labels in Trade Gothic Condensed 13pt Heavy white @ 70% with 1.0pt tracking UPPERCASE; values in Trade Gothic Condensed 64pt Heavy white tabular. Below: a 280pt diameter Volt `#CCFF00` progress ring with 6pt rounded stroke and `rgba(255,255,255,0.1)` track. Inside the ring: elapsed time '12:34' in Trade Gothic Condensed 88pt Heavy white tabular + 'ELAPSED' label below it in Trade Gothic 13pt with 1.0pt tracking UPPERCASE white @ 70%. Bottom: 72pt white pause circle button with a 28pt black `pause.fill` glyph. On the right inset 16pt: a 48pt black circle with white lock glyph."
385
+ - "Render the Nike pre-run hero card: full-bleed photo of a runner at golden hour, with a `linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.85) 100%)` overlay. Bottom-aligned content stack: 'COACH BENNETT · 30 MIN · RECOVERY' in SF Pro Text 13pt Medium UPPERCASE white @ 70% with 0.5pt tracking. Below: 'EASY RECOVERY RUN' headline in Trade Gothic Condensed 48pt Heavy white UPPERCASE with 0.3pt tracking. Below: 2-line body paragraph in SF Pro Text 15pt Regular white. Below: full-width 'LET'S DO THIS' primary CTA — 56pt tall white pill (32pt corner radius), label in Trade Gothic Condensed 17pt Heavy `#000000` UPPERCASE with 0.5pt tracking. Haptic on tap: `.impactOccurred(.heavy)`."
386
+ - "Build a Nike achievement medal reveal: 200pt hexagonal silhouette, gradient Volt `#CCFF00` → Nike Red `#FA5400` fill. Centered milestone number '100' in Trade Gothic Condensed 56pt Heavy black tabular. Below the medal: '100 MILES' in Trade Gothic 22pt Heavy white UPPERCASE + 'Lifetime distance' in SF Pro Text 15pt Regular Nike Gray. Animation: medal fades in at 0.5x scale and springs to 1.0x with `.spring(response: 0.4, dampingFraction: 0.6)`, simultaneously emit 8 Volt particles in a 200pt radius burst over 600ms. Haptic on reveal: `.notificationOccurred(.success)`."
387
+ - "Design the bottom tab bar: 56pt + safe area, `#000000` background with a 0.5pt `#333333` top hairline. Five tabs — Home / Activity / Coach / Goal / Profile — each with a 24pt outlined SF Symbol. Inactive icon `#5C5C5C`, active icon `#FFFFFF`. Below the active icon: a 4pt Volt `#CCFF00` circle dot, slides between tabs via `matchedGeometryEffect`. Labels in SF Pro Text 10pt Semibold, mixed case, `#8E8E8E` inactive / `#FFFFFF` active. Tap haptic: `.selectionChanged()`."
388
+ - "Render the heart-rate zone bar from a workout results page: 8pt horizontal stacked bar with 4pt rounded corners. Five segments proportional to time spent — blue `#3D87F4`, green `#48C77E`, yellow `#FFD600`, orange `#FA5400`, red `#E50916`. Below the bar: 5 zone labels in Trade Gothic Condensed 11pt Heavy white UPPERCASE 'Z1 EASY · Z2 STEADY · Z3 MOD · Z4 HARD · Z5 MAX' each prefixed by an 8pt color dot, plus zone time '12:34' in SF Pro Text 11pt Regular Nike Gray 1 monospaced."
389
+
390
+ ### Iteration Guide
391
+ 1. Canvas is `#000000` true black on every screen — Nike's stadium void
392
+ 2. Volt `#CCFF00` is the primary accent — progress rings, active states, achievements
393
+ 3. Nike Red `#FA5400` for results/celebration, Brake Red `#E50916` for warnings/HR max
394
+ 4. Trade Gothic Condensed Heavy on every hero number and every button label — UPPERCASE
395
+ 5. SF Pro Text for body and metadata — mixed case allowed
396
+ 6. Run tracking ring is exactly 280pt × 6pt stroke with rounded caps and a `rgba(255,255,255,0.1)` track
397
+ 7. Elapsed time inside the ring is 88pt Trade Gothic Heavy tabular — the visual identity
398
+ 8. Primary CTA is a white pill on black canvas (`#FFFFFF` background, `#000000` Trade Gothic label) — 56pt, 32pt corner radius
399
+ 9. Heavy haptics on "START RUN" and "PAUSE" — Nike's CTAs are committed
400
+ 10. Achievements use hexagonal medals — never circles, never stars — with Volt or Volt→Red gradients