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,410 @@
1
+ # Design System Inspiration of Hevy (iOS)
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ Hevy's iOS app is a dark-first, gym-floor instrument. Open it and you are not greeted by marketing chrome — you are dropped into a near-black training canvas (`#0E1116`) engineered to never glare under fluorescent gym lights or wash out in direct sun. The product's entire reason to exist is the **live workout log**: a vertical stack of exercise cards, each containing a dense **set table** (Set / Previous / kg / Reps / ✓) with numbers in tabular figures so the layout never jitters while you type weights between sets with sweaty thumbs. Everything else — the home feed, the profile, the analytics — orbits this one screen. The signature moment of Hevy is **a workout in progress**: a running duration timer in Hevy Blue at the top, a glanceable rest-timer pill counting down, set rows that flip green as you tick them off, and a gold PR badge that fires the instant you beat a personal record.
6
+
7
+ The interface philosophy is "a clipboard that does math." There is no decorative photography, no gradients-for-mood, no illustration. Chrome is reduced to what a lifter needs mid-set: the exercise name (always in Hevy Blue, the tap target to swap or superset), a `Previous` column so you know what to beat, two editable number cells, and a checkmark. The rest of the app's surface area is reporting — volume charts, muscle-group splits, 1RM trend lines, a strava-like home feed of friends' workouts — but all of it is rendered in the same disciplined dark palette with the single blue accent.
8
+
9
+ The color system is monochrome-plus-one. The canvas and three surface tiers are all desaturated blue-greys (`#0E1116` → `#161B22` → `#1F2630` → `#283040`). **Hevy Blue (`#1E6FFF`)** is the *only* action color in the entire product — it is the Finish button, the active tab, every exercise title, every primary CTA, and the rest-timer ring. There is no secondary brand hue. Two semantic colors punctuate the log: a **set-done green (`#2FBF71`)** that washes a completed row at ~16% opacity, and **PR gold (`#F5B83D`)** for the personal-record badge — the app's small dopamine hit. Destructive actions use a muted red (`#F1545B`). This restraint is deliberate: a workout log is read in 2-second glances between sets, so the palette must let the *numbers* be the loudest thing on screen.
10
+
11
+ Typography is **Inter** throughout — a humanist sans with excellent small-size legibility and, critically, a tabular-figures feature that Hevy leans on hard for every weight, rep, set count, volume total, and timer. Hierarchy is functional: screen titles at 32pt/800, routine names at 26pt/700, exercise names at 18pt/700, metric read-outs at 17pt/700 with `tabular-nums`, body at 16pt/400, the set-table cells at 15pt/600, captions (the `Previous` hint) at 13pt, and column labels at 11pt uppercase. The type system never tries to be expressive — it tries to be unmissable at arm's length while you're under a barbell.
12
+
13
+ **Key Characteristics:**
14
+ - Near-black training canvas (`#0E1116`) dark-first — no light mode default; engineered for gym lighting
15
+ - The live **workout log** is the interface: stacked exercise cards, each a dense set table
16
+ - **Set table** — Set / Previous / kg / Reps / ✓ — all numerics in tabular figures so rows never shift
17
+ - **Hevy Blue (`#1E6FFF`)** is the single action color: Finish, active tab, exercise titles, all CTAs
18
+ - **Rest-timer pill** — a soft-blue countdown bar with an animated ring and a Skip affordance
19
+ - **PR badge** — gold (`#F5B83D`) "★ NEW PR" chip that fires when a set beats a record
20
+ - **Set-done state** — completed rows wash green (`#2FBF71` @ 16%) with a filled checkmark
21
+ - **Previous column** — last session's weight×reps shown inline so you always know the target
22
+ - Running **duration timer** in Hevy Blue at the top of every active workout
23
+ - Inter everywhere with aggressive use of the tabular-figures feature for all numbers
24
+ - Strava-style **home feed** of friends' completed workouts (cards, kudos, comments)
25
+ - Minimal chrome: 5-tab bottom bar (Home / Profile / Workout / History / Exercises)
26
+
27
+ ## 2. Color Palette & Roles
28
+
29
+ ### Primary (Interactive)
30
+ - **Hevy Blue** (`#1E6FFF`): The single action color — Finish button, active tab, exercise titles, primary CTAs, rest-timer ring, links.
31
+ - **Hevy Blue Pressed** (`#1857CC`): Pressed state on primary buttons.
32
+ - **Hevy Blue Soft** (`#14233F`): 12–16% blue tint — rest-timer pill background, tonal button fill, selected-row glow.
33
+
34
+ ### Canvas & Surfaces (Dark — default)
35
+ - **Training Canvas** (`#0E1116`): Primary app background — near-black, blue-cool, the launch surface.
36
+ - **Card Surface** (`#161B22`): Exercise cards, feed cards, list rows, sheets.
37
+ - **Input Surface** (`#1F2630`): Editable set cells (kg / reps), search field, segmented control track.
38
+ - **Surface 3** (`#283040`): Exercise thumbnails, raised chips, hovered/pressed rows.
39
+ - **Divider** (`#262C36`): Hairline dividers between cards and table rows.
40
+
41
+ ### Canvas & Surfaces (Light — optional, opt-in)
42
+ - **Light Canvas** (`#F4F6FA`): Light-mode background (a minority setting).
43
+ - **Light Card** (`#FFFFFF`): Cards on light.
44
+ - **Light Input** (`#EEF1F6`): Editable cells on light.
45
+ - **Light Divider** (`#E2E6EE`): Hairlines on light.
46
+
47
+ ### Text
48
+ - **Text Primary** (`#F2F4F8`): Headings, weights, reps, the numbers that matter — near-white.
49
+ - **Text Secondary** (`#9BA3B0`): Labels, captions, column headers, the `Previous` hint.
50
+ - **Text Tertiary** (`#5E6675`): Disabled, placeholder, the `⋯` glyph.
51
+ - **Text Primary (Light)** (`#11151C`): Primary text on light mode.
52
+ - **Text Secondary (Light)** (`#5E6675`): Secondary on light mode.
53
+
54
+ ### Semantic
55
+ - **Set Done Green** (`#2FBF71`): Completed-set checkmark fill + row wash at 16% (`#2FBF7129`).
56
+ - **PR Gold** (`#F5B83D`): "★ NEW PR" badge background-tint + text; the record-broken signal.
57
+ - **Error / Destructive Red** (`#F1545B`): Discard workout, delete set, validation errors.
58
+ - **Warning Amber** (`#F5A623`): "Unsaved changes", deload suggestions.
59
+ - **Kudos Blue** (`#1E6FFF`): Feed like/kudos active state (same as primary).
60
+
61
+ ### Color Roles Table
62
+
63
+ | Role | Dark Mode | Light Mode |
64
+ |------|-----------|-----------|
65
+ | Canvas | `#0E1116` | `#F4F6FA` |
66
+ | Card surface | `#161B22` | `#FFFFFF` |
67
+ | Input surface | `#1F2630` | `#EEF1F6` |
68
+ | Surface 3 / chips | `#283040` | `#E6EAF1` |
69
+ | Divider | `#262C36` | `#E2E6EE` |
70
+ | Action (Hevy Blue) | `#1E6FFF` | `#1E6FFF` |
71
+ | Action pressed | `#1857CC` | `#1857CC` |
72
+ | Blue soft fill | `#14233F` | `#E5EEFF` |
73
+ | Text primary | `#F2F4F8` | `#11151C` |
74
+ | Text secondary | `#9BA3B0` | `#5E6675` |
75
+ | Set done | `#2FBF71` | `#1E9E59` |
76
+ | PR gold | `#F5B83D` | `#C8881A` |
77
+ | Error | `#F1545B` | `#E0353C` |
78
+
79
+ ## 3. Typography Rules
80
+
81
+ ### Font Family
82
+ - **Primary**: `Inter` (by Rasmus Andersson, SIL OFL) — humanist sans with superb small-size legibility and a first-class `tnum` (tabular figures) OpenType feature, which Hevy uses for every number on screen.
83
+ - **System Fallback**: `-apple-system, BlinkMacSystemFont, 'SF Pro Text', 'SF Pro Display', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif`
84
+ - **Numeric rule**: every weight, rep count, set index, volume total, RPE, 1RM, percentage, and timer renders with **tabular figures** (`font-variant-numeric: tabular-nums`) so the set table and timers never reflow as digits change.
85
+ - **No alternate families**: unlike note apps, Hevy ships one face. Brand consistency over user choice.
86
+
87
+ ### Hierarchy
88
+
89
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
90
+ |------|------|------|--------|-------------|----------------|-------|
91
+ | Screen Title | Inter | 32pt | 800 | 1.15 | -0.6pt | "Workout", "History" — large nav title |
92
+ | Routine Title | Inter | 26pt | 700 | 1.2 | -0.4pt | Routine / workout name at top of log |
93
+ | Section Header | Inter | 22pt | 700 | 1.25 | -0.3pt | "This Week", chart section titles |
94
+ | Exercise Name | Inter | 18pt | 700 | 1.3 | -0.2pt | Exercise title — always in Hevy Blue |
95
+ | Metric / Timer | Inter | 17pt | 700 | 1.2 | 0pt | Duration, volume, 1RM — **tabular-nums** |
96
+ | Body | Inter | 16pt | 400 | 1.5 | 0pt | Descriptions, feed text, settings |
97
+ | Set Cell | Inter | 15pt | 600 | 1.3 | 0pt | kg / reps values — **tabular-nums** |
98
+ | Card Title | Inter | 15pt | 600 | 1.3 | -0.1pt | Feed card title, list row title |
99
+ | Caption | Inter | 13pt | 500 | 1.4 | 0pt | `Previous` hint, timestamps, helper text |
100
+ | Column Label | Inter | 11pt | 600 | 1.1 | 0.5pt | SET / PREVIOUS / KG / REPS — uppercase |
101
+ | Tab Label | Inter | 10pt | 600 | 1.0 | 0.1pt | Bottom tab labels |
102
+ | Button | Inter | 16pt | 700 | 1.0 | 0pt | Primary button label |
103
+ | Badge | Inter | 10pt | 800 | 1.0 | 0.3pt | PR / streak chips — uppercase |
104
+
105
+ ### Principles
106
+ - **Numbers are the loudest element**: weights, reps, and timers use 700 weight + tabular figures; everything supporting them is lighter and greyer.
107
+ - **Tabular figures everywhere numeric**: the set table must not reflow when a 9 becomes a 10 — `tnum` is mandatory on every digit.
108
+ - **Weight concentrated at 400 / 500 / 600 / 700 / 800**: regular body, medium captions, semibold cells, bold exercise names + metrics, extrabold screen titles.
109
+ - **Hevy Blue carries hierarchy too**: an exercise name is bold *and* blue because it is both the heading and the tap-to-edit affordance.
110
+ - **Dynamic Type with floors**: titles, body, and cells scale; column labels, tab labels, and badges stay fixed (table layout is digit-sensitive).
111
+ - **Uppercase only for micro-labels**: column headers and badges; never body or titles.
112
+
113
+ ## 4. Component Stylings
114
+
115
+ ### Buttons
116
+
117
+ **Primary Button (Finish Workout / Save Routine)**
118
+ - Shape: rounded rectangle, 12pt corner radius
119
+ - Background: `#1E6FFF` (Hevy Blue) / text `#FFFFFF`
120
+ - Padding: 14pt vertical, 28pt horizontal; full-width variant spans content inset
121
+ - Font: Inter 16pt weight 700
122
+ - Pressed: background `#1857CC` + scale 0.98
123
+ - Disabled: `#1F2630` background, `#5E6675` text
124
+
125
+ **Secondary / Outline Button (Add Exercise)**
126
+ - Background: transparent
127
+ - Border: 1.5pt `#1E6FFF`
128
+ - Text: `#1E6FFF`, Inter 15pt weight 600
129
+ - Corner radius: 12pt; padding 11pt / 22pt
130
+ - Pressed: background `#14233F`
131
+
132
+ **Tonal Button (+ Add Set / inline actions)**
133
+ - Background: `#14233F` (Blue Soft) — or `#1F2630` for neutral inline actions
134
+ - Text: `#1E6FFF` (or `#9BA3B0` neutral), Inter 14pt weight 700
135
+ - Corner radius: 10pt; padding 11pt / 20pt
136
+ - Used as the full-width "+ Add Set" row inside an exercise card
137
+
138
+ **Destructive Text Button (Discard / Delete Set)**
139
+ - Background: transparent
140
+ - Text: `#F1545B`, Inter 14pt weight 600
141
+ - No border; confirmation sheet required before destructive commit
142
+
143
+ **Icon Button (exercise `⋯`, set swipe actions)**
144
+ - 24pt glyph in 44pt hit area
145
+ - Default `#5E6675`; active `#F2F4F8`
146
+ - Swipe-left on a set row reveals delete (`#F1545B`) and a warm-up toggle
147
+
148
+ ### Core Atoms
149
+
150
+ **Set Row** (the core atom)
151
+ - A table row inside an exercise card: `[set-index chip] [previous] [kg cell] [reps cell] [✓]`
152
+ - Set-index chip: 28pt rounded square, `#1F2630` bg, `#9BA3B0` 13pt/700; warm-up sets show `W`, drop sets `D`, failure `F`
153
+ - `Previous` cell: `#5E6675` 13pt, format `60 × 10` (last session's matching set)
154
+ - Editable cells (kg / reps): `#1F2630` bg, 8pt radius, `#F2F4F8` 15pt/600, tabular figures; focused → 1.5pt `#1E6FFF` border
155
+ - Checkmark: 26pt rounded-square; empty = 1.5pt `#262C36` border; checked = filled `#2FBF71` + white tick, and the entire row washes `#2FBF7129`
156
+ - Row height: 40pt; 7pt vertical cell padding
157
+
158
+ **Exercise Card**
159
+ - Background `#161B22`, 1pt `#262C36` border, 16pt corner radius, 14pt padding, 14pt gap between cards
160
+ - Header: 36pt exercise thumbnail (`#283040`, blue glyph), exercise name (`#1E6FFF` 18pt/700), trailing `⋯`
161
+ - Body: the set table
162
+ - Footer: full-width "+ Add Set" tonal row (34pt, 9pt radius, `#1F2630`, `#9BA3B0` 13pt/700)
163
+
164
+ **Rest-Timer Pill**
165
+ - 44pt tall, full-width minus 18pt inset, 12pt radius
166
+ - Background `#14233F`, 1pt `rgba(30,111,255,0.35)` border
167
+ - Leading: 22pt progress ring (3pt stroke, track `rgba(30,111,255,0.3)`, fill `#1E6FFF`, sweeping as time elapses)
168
+ - Center: `Rest · 1:24` in `#1E6FFF` 14pt/600 tabular
169
+ - Trailing: `Skip` in `#9BA3B0` 13pt/600; tap adds/subtracts 15s with ± controls on long-press
170
+
171
+ **PR Badge**
172
+ - Inline chip: background `#F5B83D` at 18% (`#F5B83D2E`), text `#F5B83D`, Inter 10pt/800 uppercase
173
+ - Content: `★ NEW PR · 1RM 87.5 kg` (also fires for best-set-volume and best-reps records)
174
+ - Appears under the set table the moment a logged set beats a stored record; a brief gold pulse + soft haptic
175
+
176
+ **Metric Stat (timer / volume / sets)**
177
+ - Stacked: 11pt `#9BA3B0` label over 17pt/700 `#F2F4F8` value (tabular)
178
+ - Live duration value tints `#1E6FFF`
179
+ - Used in the workout header row and on the post-workout summary
180
+
181
+ **Feed Card (Strava-like home)**
182
+ - `#161B22` card, 16pt radius; header avatar + name + relative time
183
+ - Workout title (`#F2F4F8` 15pt/600), stat strip (Duration / Volume / PRs), muscle-split bar
184
+ - Footer: kudos (filled `#1E6FFF` when liked) + comment count
185
+
186
+ ### Navigation
187
+
188
+ **Bottom Tab Bar**
189
+ - Height: 68pt incl. home indicator; background `rgba(14,17,22,0.94)` + blur, 0.5pt `#262C36` top border
190
+ - 5 tabs: Home, Profile, **Workout** (center), History, Exercises
191
+ - Icon 22pt; active color `#1E6FFF` with a soft `rgba(30,111,255,0.16)` icon fill; inactive `#5E6675`
192
+ - Labels: Inter 10pt/600, always shown
193
+ - No tint pill — active state is icon color + soft fill only
194
+
195
+ **Top Bar (in-workout)**
196
+ - Routine name (26pt/700) leading; trailing `Finish` button (Hevy Blue, 10pt radius, 13pt/700)
197
+ - Below: the metric stat row (Duration / Volume / Sets) then the rest-timer pill
198
+ - On scroll, a compact title + Finish stay pinned
199
+
200
+ **Large-Title Screens (Home / History / Exercises)**
201
+ - iOS large-title pattern: 32pt/800 title that collapses to a 17pt centered nav title on scroll
202
+ - Trailing: contextual icon (filter, add, search)
203
+
204
+ ### Input Fields
205
+
206
+ **Set Cell Input (kg / reps)**
207
+ - 36pt tall, `#1F2630` bg, 8pt radius, centered `#F2F4F8` 15pt/600 tabular
208
+ - Numeric keypad; focus → 1.5pt `#1E6FFF` border, value selected for fast overwrite
209
+ - Empty placeholder shows the `Previous` value greyed at `#5E6675`
210
+
211
+ **Search Field (Exercises / Add Exercise)**
212
+ - 40pt tall, `#1F2630` bg, 12pt radius, leading 16pt magnifier `#9BA3B0`
213
+ - Placeholder "Search exercises" `#5E6675` 15pt
214
+ - Focus: 1.5pt `#1E6FFF` border
215
+
216
+ **Segmented Control (chart range: 1W / 1M / 3M / 1Y)**
217
+ - Track `#1F2630`, 10pt radius; selected segment `#283040` with `#F2F4F8` text; unselected `#9BA3B0`
218
+ - 32pt tall, equal segments
219
+
220
+ ### Distinctive Components
221
+
222
+ **The Set Table**
223
+ - The signature Hevy component: a per-exercise grid with columns SET / PREVIOUS / KG / REPS / ✓
224
+ - Tabular figures lock column widths; the `Previous` column is the killer feature (always know the target)
225
+ - Checking a set washes it green and auto-starts the rest timer
226
+
227
+ **Rest-Timer Pill with Sweeping Ring**
228
+ - Auto-starts on set completion; the ring depletes; ±15s controls; soft haptic + sound at 0
229
+ - Persists as a Live Activity / Dynamic Island countdown when the app backgrounds
230
+
231
+ **Gold PR Badge**
232
+ - Fires for 1RM, best set volume, or best reps; gold pulse + haptic; collected on the profile's "Records" page
233
+
234
+ **Post-Workout Summary**
235
+ - Full-screen card: duration, total volume, set count, list of PRs, muscle-split donut, share-image button
236
+ - The single celebratory moment — confetti-free, just numbers and PR gold
237
+
238
+ **Muscle-Split Bar / Donut**
239
+ - Horizontal stacked bar (or donut) of volume per muscle group; segments use a calm desaturated ramp, never the brand blue
240
+
241
+ **Friends Feed**
242
+ - Strava-style chronological feed of friends' completed workouts with kudos and comments
243
+
244
+ **1RM / Volume Trend Chart**
245
+ - Line chart on `#0E1116`; line in `#1E6FFF`, gridlines `#262C36`, axis labels `#5E6675`; PR points marked in `#F5B83D`
246
+
247
+ ## 5. Layout Principles
248
+
249
+ ### Spacing System
250
+ - Base unit: 4pt
251
+ - Scale: 4, 8, 12, 14, 16, 20, 24, 32, 40, 48, 64
252
+ - Content inset: 16–18pt horizontal
253
+ - Card padding: 14pt; card-to-card gap: 14pt
254
+ - Set-row vertical padding: 7pt; row height ~40pt
255
+ - Section gap: 24pt
256
+
257
+ ### Grid & Container
258
+ - iPhone: single column, 16–18pt insets, cards full-width
259
+ - Set table: 5 columns — index (28pt) / previous (flex) / kg (flex) / reps (flex) / check (26pt)
260
+ - iPad: content max-width ~720pt centered; optional 2-column for feed + summary
261
+ - Charts: full-bleed minus inset, fixed aspect 16:9
262
+
263
+ ### Whitespace Philosophy
264
+ - **Density where it counts**: the set table is intentionally tight so a full exercise fits on screen mid-set
265
+ - **Breathing room between exercises**: 14pt gaps + card borders separate exercises clearly
266
+ - **Numbers get air**: metric stats and the timer get generous vertical padding so they read at a glance
267
+ - **No decorative whitespace**: every pixel serves logging or reading; the app is a tool, not a magazine
268
+
269
+ ### Border Radius Scale
270
+ - Square (0pt): chart plot area, full-bleed media
271
+ - Subtle (4pt): rarely used micro-elements
272
+ - Small (8pt): set cells, set-index chip
273
+ - Standard (10pt): tonal buttons, segmented control, Finish button
274
+ - Comfortable (12pt): primary/outline buttons, rest pill, search field
275
+ - Card (16pt): exercise cards, feed cards, sheets
276
+ - Large (20pt): bottom sheets, modals
277
+ - Pill (500pt): filter chips, kudos pill
278
+ - Circle (50%): avatars, the rest-timer ring
279
+
280
+ ## 6. Depth & Elevation
281
+
282
+ Hevy is mostly flat — depth is conveyed by the surface-tier ladder (`#0E1116` → `#161B22` → `#1F2630` → `#283040`) and hairline borders, not by drop shadows. Shadows appear only on truly floating UI.
283
+
284
+ | Level | Treatment | Use |
285
+ |-------|-----------|-----|
286
+ | Base (Level 0) | Canvas `#0E1116`, no shadow | App background |
287
+ | Card (Level 1) | `#161B22` + 1pt `#262C36` border | Exercise cards, feed cards, list rows |
288
+ | Raised (Level 2) | `#1F2630` / `#283040`, no shadow | Set cells, chips, segmented control |
289
+ | Floating (Level 3) | `rgba(0,0,0,0.5) 0 8px 24px` | Sheets, dropdowns, the add-exercise picker |
290
+ | Sheet (Level 4) | `rgba(0,0,0,0.6) 0 -10px 32px` + 20pt top radius | Bottom sheets (set-type, rest settings) |
291
+ | Overlay | `rgba(0,0,0,0.55)` scrim | Behind modals and the post-workout summary |
292
+
293
+ **Shadow Philosophy**: on a near-black canvas, drop shadows barely register, so Hevy uses the surface ladder + 1pt borders as the primary depth cue and reserves real shadows for genuinely floating layers. Floating panels also get a subtle border so they read as detached even when the shadow is faint.
294
+
295
+ ### Motion
296
+ - **Set check**: tapping ✓ fills the box (120ms ease-out), washes the row green (150ms), triggers a soft success haptic, and auto-starts the rest timer
297
+ - **Rest-timer ring**: continuous linear sweep over the rest duration; ±15s buttons nudge with a 200ms spring; soft + sound at 0
298
+ - **PR badge**: scales 0.9→1.0 with a 220ms spring + brief gold opacity pulse + a celebratory soft-impact haptic
299
+ - **Add set**: new row slides down (height 0→auto, 200ms ease-out) and the cell focuses
300
+ - **Finish workout**: primary button → post-workout summary pushes up as a full-screen sheet (320ms ease-out)
301
+ - **Tab switch**: instant; no cross-fade (a gym tool should feel immediate)
302
+ - **Pull-to-refresh (feed)**: standard iOS spinner; cards fade-in on load
303
+ - **Live Activity**: rest countdown mirrors to Dynamic Island / Lock Screen with the ring + remaining time
304
+ - **Haptics**: soft impact on set check, medium on PR, light tick on rest ± and timer end
305
+
306
+ ## 7. Do's and Don'ts
307
+
308
+ ### Do
309
+ - Default to dark — launch into the near-black training canvas (`#0E1116`); it's engineered for gyms
310
+ - Use Hevy Blue (`#1E6FFF`) as the *only* action color — Finish, tabs, exercise titles, CTAs
311
+ - Render every number with tabular figures so the set table and timers never reflow
312
+ - Show the `Previous` column on every set — knowing the target is the core value proposition
313
+ - Wash completed set rows green (`#2FBF7129`) with a filled `#2FBF71` checkmark
314
+ - Fire a gold (`#F5B83D`) PR badge the moment a record breaks — it's the app's dopamine hit
315
+ - Auto-start the rest timer on set completion and surface it as a glanceable pill
316
+ - Keep the set table dense — a full exercise should fit on screen mid-set
317
+ - Make the exercise name both bold *and* blue (it's heading + edit affordance)
318
+ - Use the surface ladder + 1pt borders for depth, not heavy shadows
319
+ - Mirror the rest timer to Dynamic Island / Live Activity when backgrounded
320
+
321
+ ### Don't
322
+ - Don't add a second brand accent — Hevy Blue is the entire action vocabulary
323
+ - Don't use proportional figures anywhere numeric — the table will jitter as digits change
324
+ - Don't hide the `Previous` column to "clean up" — it's the feature
325
+ - Don't decorate with photography, gradients-for-mood, or illustration — numbers are the content
326
+ - Don't use pure black (`#000000`) for the canvas — `#0E1116` (blue-cool near-black) is correct
327
+ - Don't make PRs loud with confetti — a gold badge + pulse + haptic is the whole celebration
328
+ - Don't add tab-bar tint pills — active is icon color + soft fill only
329
+ - Don't space the set table loosely — density is intentional for mid-workout speed
330
+ - Don't animate aggressively — a gym tool must feel instant; motion is 120–320ms, functional
331
+ - Don't tint charts with the brand blue's hue for non-data chrome — keep gridlines neutral grey
332
+ - Don't block logging behind confirmation dialogs — only destructive actions confirm
333
+
334
+ ## 8. Responsive Behavior
335
+
336
+ ### Device Sizes
337
+ | Device | Width | Key Changes |
338
+ |--------|-------|-------------|
339
+ | iPhone SE (3rd gen) | 375pt | Set table tightens to 6pt cell padding; metric row wraps to 2+1 |
340
+ | iPhone 13 / 14 / 15 | 390pt | Standard layout |
341
+ | iPhone 15 / 16 Pro | 393pt | Dynamic Island hosts the rest-timer Live Activity |
342
+ | iPhone 15 / 16 Pro Max | 430pt | Larger set cells; metric values at 18pt |
343
+ | iPad (portrait) | 768pt | Content max-width 720pt centered; feed + summary can go 2-column |
344
+ | iPad (landscape) | 1024pt+ | Optional split: exercise list rail + active set table |
345
+
346
+ ### Dynamic Type
347
+ - Scales: screen titles, routine titles, exercise names, body, set-cell values
348
+ - Fixed: column labels, tab labels, PR/streak badges, set-index chip (table layout is digit-width-sensitive)
349
+ - Numeric metrics scale but always retain tabular figures
350
+
351
+ ### Orientation
352
+ - iPhone: portrait-locked for the workout log (one-handed mid-set use)
353
+ - iPad: supports landscape with the split set-table layout
354
+ - Charts rotate and re-fit
355
+
356
+ ### Touch Targets
357
+ - Set-cell input: 36pt tall, full-cell tap
358
+ - Checkmark: 26pt glyph, 44pt hit
359
+ - Tab icons: 22pt glyph, 49pt hit
360
+ - `+ Add Set` row: 34pt tall, full-width tap
361
+ - Rest ± controls: 32pt hit minimum
362
+
363
+ ### Safe Area Handling
364
+ - Top: large title / workout header respects safe area + Dynamic Island
365
+ - Bottom: tab bar + home indicator respected; the rest pill floats above the keyboard when a cell is focused
366
+ - Keyboard: numeric keypad pushes the active exercise card into view; rest pill stays pinned above it
367
+ - Sides: 16–18pt content inset
368
+
369
+ ## 9. Agent Prompt Guide
370
+
371
+ ### Quick Color Reference
372
+ - Canvas (dark): `#0E1116`
373
+ - Card surface: `#161B22`
374
+ - Input surface: `#1F2630`
375
+ - Surface 3 / chips: `#283040`
376
+ - Divider: `#262C36`
377
+ - Hevy Blue (action): `#1E6FFF`
378
+ - Blue pressed: `#1857CC`
379
+ - Blue soft fill: `#14233F`
380
+ - Text primary: `#F2F4F8`
381
+ - Text secondary: `#9BA3B0`
382
+ - Text tertiary: `#5E6675`
383
+ - Set done green: `#2FBF71` (row wash `#2FBF7129`)
384
+ - PR gold: `#F5B83D` (badge bg `#F5B83D2E`)
385
+ - Error red: `#F1545B`
386
+
387
+ ### Example Component Prompts
388
+ - "Build the Hevy active-workout header in SwiftUI: leading routine name in Inter 26pt weight 700 `#F2F4F8`; trailing `Finish` button — `#1E6FFF` bg, white Inter 13pt/700, 10pt radius, 7×16pt padding. Below: a 3-up metric row (Duration / Volume / Sets), each a VStack of an 11pt `#9BA3B0` label over a 17pt/700 value with `.monospacedDigit()`; the Duration value tints `#1E6FFF`. Background `#0E1116`."
389
+
390
+ - "Create a Hevy set row: an HStack — 28pt rounded-square index chip (`#1F2630` bg, `#9BA3B0` 13pt/700), a `Previous` label `#5E6675` 13pt formatted `60 × 10`, two 36pt editable cells (`#1F2630` bg, 8pt radius, `#F2F4F8` 15pt/600, monospaced digits, 1.5pt `#1E6FFF` border on focus), and a 26pt checkmark (empty: 1.5pt `#262C36` border; checked: filled `#2FBF71` + white tick). On check, wash the whole row `#2FBF71` at 16% alpha and start the rest timer."
391
+
392
+ - "Render the Hevy rest-timer pill: 44pt tall, full-width minus 18pt, 12pt radius, `#14233F` bg, 1pt `rgba(30,111,255,0.35)` border. Leading 22pt circular progress ring (3pt stroke, track `rgba(30,111,255,0.3)`, fill `#1E6FFF`) sweeping over the rest duration. Center text `Rest · 1:24` in `#1E6FFF` 14pt/600 monospaced. Trailing `Skip` in `#9BA3B0` 13pt/600. Soft haptic + sound at 0; mirror to a Live Activity."
393
+
394
+ - "Build the Hevy PR badge: an inline chip with `#F5B83D` at 18% alpha background, `#F5B83D` text, Inter 10pt weight 800 uppercase, content `★ NEW PR · 1RM 87.5 kg`. On appear, spring-scale 0.9→1.0 over 220ms with a brief gold opacity pulse and a medium-impact haptic."
395
+
396
+ - "Create a Hevy exercise card: `#161B22` bg, 1pt `#262C36` border, 16pt radius, 14pt padding. Header: 36pt thumbnail (`#283040`, blue glyph), exercise name in `#1E6FFF` Inter 18pt/700, trailing `⋯` `#5E6675`. Body: the set table (columns SET / PREVIOUS / KG / REPS / ✓, 11pt uppercase `#9BA3B0` headers). Footer: a full-width `+ Add Set` tonal row, 34pt, 9pt radius, `#1F2630` bg, `#9BA3B0` 13pt/700."
397
+
398
+ - "Render the Hevy bottom tab bar: 68pt incl. home indicator, `rgba(14,17,22,0.94)` + blur, 0.5pt `#262C36` top border. Tabs: Home, Profile, Workout (center), History, Exercises. 22pt icons; active `#1E6FFF` with a soft `rgba(30,111,255,0.16)` fill; inactive `#5E6675`; labels Inter 10pt/600 always shown. No tint pill."
399
+
400
+ ### Iteration Guide
401
+ 1. Canvas is near-black blue-cool `#0E1116` — NOT pure black, NOT a warm dark
402
+ 2. Hevy Blue `#1E6FFF` is the ONLY action color — Finish, tabs, exercise titles, every CTA
403
+ 3. Every number uses tabular figures — the set table must never reflow as digits change
404
+ 4. The `Previous` column is mandatory on every set — it is the product's core value
405
+ 5. Completed set rows wash green `#2FBF71` @ 16% with a filled checkmark; rest timer auto-starts
406
+ 6. PR badge is gold `#F5B83D` and fires on record-break — a pulse + haptic, never confetti
407
+ 7. Surface ladder (`#0E1116`→`#161B22`→`#1F2630`→`#283040`) + 1pt borders carry depth, not shadows
408
+ 8. The set table is intentionally dense so a full exercise fits on screen mid-set
409
+ 9. Exercise names are bold AND blue (heading + tap-to-edit affordance)
410
+ 10. Motion is functional and fast (120–320ms) — a gym tool must feel instant