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,390 @@
1
+ # Design System Inspiration of Runna (iOS)
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ Runna is a structured-training app for runners, and its design feels like a coach's plan come to life: confident, athletic, and energetic, but disciplined enough that you can read a whole training week at a glance. The app is **dark-first** — runners train at dawn and dusk and check the screen mid-run on a wrist or armband, so a low-glare dark canvas is the default and primary experience. That canvas is a deep blue-black `#0E0E16`, deliberately tinted toward the brand Indigo rather than neutral grey, so the whole UI feels cohesive with the brand even in the darkest surfaces. Cards lift to `#181826`.
6
+
7
+ Two signature elements define every Runna screen. First, the **training-plan calendar** — a horizontal week strip of seven day cells, each color-coded by run type and state: a completed run glows green, today is a solid Indigo cell with a Lime dot, a rest day is muted, and upcoming sessions carry their run-type color (Tempo amber, Intervals coral, Long-run indigo). The strip turns an 8-week plan into something you can scan in a second — "what did I do, what's today, what's coming". Second, the **guided run-session card** — a bold Indigo gradient card showing today's workout title ("6 × 800m @ 5K pace"), key stats (distance / duration / pace), and a Lime "Start guided run" button — paired with a **workout-structure breakdown**: a segmented bar (warm-up → main set → cooldown) plus per-step rows with pace targets.
8
+
9
+ The brand is a two-color system used with intent. **Runna Indigo** (`#4F46E5`) is the structural color — plan surfaces, the today cell, the long-run type, primary informational buttons, the app icon. **Runna Lime** (`#C2F94E`) is the energy/"go" color — it is reserved almost exclusively for action: the Start button, the today-marker dot, key CTAs, progress accents. The contrast between disciplined indigo and electric lime is the entire brand personality: structure plus drive. Run-type colors (Easy green `#34D399`, Tempo amber `#FBBF24`, Intervals coral `#FB7185`, Long indigo `#4F46E5`) form a fixed semantic palette so athletes learn to read effort by color.
10
+
11
+ Typography is **Sora** — a geometric sans with a slightly technical, athletic character (squared-off curves, even rhythm). It reads like performance gear: modern, confident, data-friendly. Numerals — pace, distance, splits — are heavy (700–800) because they're the substance of a training app; descriptive copy is regular (400). Lime always pairs with near-black text (`#1A1A1A`) for contrast; it is never used as a text color on dark.
12
+
13
+ **Key Characteristics:**
14
+ - Dark-first, Indigo-tinted blue-black canvas (`#0E0E16`) — low-glare for dawn/dusk training
15
+ - Training-plan week strip — seven color-coded day cells (done / today / rest / typed), the at-a-glance plan
16
+ - Guided run-session card — bold Indigo gradient, workout title + stats + Lime Start button
17
+ - Workout-structure breakdown — segmented warm-up → main set → cooldown bar + per-step pace rows
18
+ - Two-color brand system — Indigo `#4F46E5` (structure) + Lime `#C2F94E` (energy/"go")
19
+ - Lime is action-only — Start button, today dot, key CTAs; never a text color on dark
20
+ - Run-type color system — Easy `#34D399`, Tempo `#FBBF24`, Intervals `#FB7185`, Long `#4F46E5` (fixed)
21
+ - Pace targets everywhere — every step shows a `/km` (or `/mi`) target, heavy numerals
22
+ - Sora geometric sans — athletic, technical; heavy stats, regular prose
23
+ - Squared-soft cards (14–22pt radius) — disciplined, not bubbly
24
+ - Minimal chrome — 5-tab bottom bar: Plan / Run / Progress / Club / Profile
25
+
26
+ ## 2. Color Palette & Roles
27
+
28
+ ### Primary (Interactive)
29
+ - **Runna Lime** (`#C2F94E`): THE "go" color — Start-run button, today-marker dot, primary CTAs, progress accents. Always with near-black text.
30
+ - **Lime Pressed** (`#A3D93B`): Pressed state for Lime actions.
31
+ - **Runna Indigo** (`#4F46E5`): Structural color — plan surfaces, today cell, session-card gradient, secondary/informational buttons, long-run type.
32
+ - **Indigo Bright** (`#6366F1`): Indigo highlights, borders on the today cell, gradient highlight.
33
+ - **Indigo Pressed** (`#4338CA`): Pressed state for Indigo buttons.
34
+
35
+ ### Canvas & Surfaces (Dark — default)
36
+ - **Canvas** (`#0E0E16`): Primary background — blue-black, tinted toward Indigo, NOT neutral.
37
+ - **Surface 1** (`#181826`): Card backgrounds (day cells, structure card, lists).
38
+ - **Surface 2** (`#222234`): Raised chips, week pill, segmented track, ghost buttons.
39
+ - **Divider** (`#2C2C42`): Hairline borders and separators.
40
+
41
+ ### Canvas & Surfaces (Light — optional)
42
+ - **Light Canvas** (`#F6F6FB`): Pale indigo-white light background.
43
+ - **Light Surface** (`#FFFFFF`): Cards in light mode.
44
+ - **Light Divider** (`#E5E5F0`): Hairlines in light mode.
45
+
46
+ ### Text
47
+ - **Text Primary Dark** (`#F3F3FB`): Headlines, pace numbers on dark.
48
+ - **Text Secondary Dark** (`#9C9CB8`): Metadata, descriptions on dark.
49
+ - **Text Tertiary Dark** (`#65657E`): Rest-day labels, axis, disabled.
50
+ - **Text On Lime** (`#1A1A1A`): Near-black — the ONLY text color used on Lime fills.
51
+ - **Text Primary Light** (`#15151F`): Primary text on light mode.
52
+
53
+ ### Run-Type Color System (semantic — FIXED across themes)
54
+
55
+ | Type | Color | Meaning |
56
+ |------|-------|---------|
57
+ | Easy / Recovery | `#34D399` | Conversational pace; warm-up & cool-down also use this |
58
+ | Tempo / Threshold | `#FBBF24` | Sustained hard effort |
59
+ | Intervals / Speed | `#FB7185` | Hard repeats with recovery |
60
+ | Long Run | `#4F46E5` | Endurance — uses Runna Indigo |
61
+ | Completed | `#34D399` | A finished session (green check state) |
62
+ | Rest | `#65657E` | Rest / off day (muted) |
63
+
64
+ ### Semantic
65
+ - **Success** (`#34D399`): Run completed, plan on track (same as Easy — intentional).
66
+ - **Error** (`#FB7185`): Sync failure, missed session (same hue as Intervals — intentional).
67
+ - **Warning** (`#FBBF24`): Behind-plan nudge (same as Tempo — intentional).
68
+ - **PR / Achievement** (`#C2F94E`): Personal-record badge, milestone (Lime = celebration).
69
+
70
+ ## 3. Typography Rules
71
+
72
+ ### Font Family
73
+ - **Primary**: `Sora` (by Jonathan Hill / Soulcave, Google Fonts, SIL OFL) — a geometric grotesque with a technical, athletic character; even rhythm and squared curves read like performance gear and keep dense pace data legible.
74
+ - **Fallback Stack**: `-apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif`
75
+ - **Numerals**: Sora 700–800 for all pace/distance/duration/split values. Use tabular figures on pace and the live run clock so digits don't jitter mid-run.
76
+
77
+ ### Hierarchy
78
+
79
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
80
+ |------|------|------|--------|-------------|----------------|-------|
81
+ | Screen Title | Sora | 32pt | 800 | 1.15 | -0.4pt | "Your plan", "Progress" |
82
+ | Plan Title | Sora | 26pt | 800 | 1.2 | -0.3pt | "Build week", "Race week" |
83
+ | Session Title | Sora | 21pt | 800 | 1.2 | -0.3pt | "6 × 800m @ 5K pace" |
84
+ | Section Title | Sora | 22pt | 700 | 1.25 | -0.2pt | "Workout structure" |
85
+ | Card Title | Sora | 18pt | 700 | 1.3 | -0.1pt | Step / list card titles |
86
+ | Body | Sora | 16pt | 400 | 1.5 | 0pt | Workout description copy |
87
+ | Step Item | Sora | 15pt | 600 | 1.4 | 0pt | "800m intervals · 90s recovery" |
88
+ | Meta | Sora | 14pt | 400 | 1.4 | 0pt | "3 runs · 11.2 km this week" |
89
+ | Stat Value | Sora | 18pt | 800 | 1.1 | -0.2pt | Distance/duration/pace on session card |
90
+ | Eyebrow | Sora | 11pt | 700 | 1.0 | 1.2pt | "5K PLAN · WEEK 4 OF 8" — uppercase, tracked, lime |
91
+ | Button | Sora | 16pt | 800 | 1.0 | 0.1pt | Primary CTA label |
92
+ | Pace / Tag | Sora | 12pt | 700 | 1.0 | 0.2pt | "4:35 /km", run-type chips |
93
+ | Day Cell Num | Sora | 14pt | 800 | 1.0 | 0pt | Date number in week strip |
94
+ | Tab Label | Sora | 10pt | 600 | 1.0 | 0.1pt | Bottom tab labels |
95
+
96
+ ### Principles
97
+ - **Data-forward**: pace, distance, and splits are the substance — they're the heaviest type on screen (700–800), prose is regular (400).
98
+ - **Athletic geometry**: Sora's squared, technical curves are chosen because they read like performance equipment; do not swap for a soft rounded sans.
99
+ - **Eyebrows are lime + tracked**: the small uppercase plan label uses Lime with 1.2pt tracking — the one place Lime appears in type (on dark, only above an Indigo or dark surface where it has contrast).
100
+ - **Tabular numerals during runs**: the live clock, pace, and distance use tabular figures so the run screen doesn't shift.
101
+ - **Dynamic Type**: titles, plan/session titles, section, card title, body, step item scale; eyebrow, pace/tag, day-cell number, tab labels stay fixed (layout-sensitive).
102
+
103
+ ## 4. Component Stylings
104
+
105
+ ### Buttons
106
+
107
+ **Primary "Go" Button (Start Guided Run)**
108
+ - Shape: Rounded rectangle, 14pt corner radius
109
+ - Background: `#C2F94E` (Runna Lime)
110
+ - Text: `#1A1A1A` (near-black), Sora 16pt weight 800; optional leading play glyph
111
+ - Padding: 13–15pt vertical, full-width on session card
112
+ - Pressed: `#A3D93B` + scale 0.98
113
+ - Disabled: `#222234` fill, `#65657E` text
114
+
115
+ **Indigo / Informational Button (View Plan)**
116
+ - Background: `#4F46E5` (Runna Indigo)
117
+ - Text: `#FFFFFF`, Sora 16pt weight 800
118
+ - Corner radius: 14pt
119
+ - Padding: 15pt vertical, 30pt horizontal
120
+ - Pressed: `#4338CA` + scale 0.98
121
+
122
+ **Outline Button (Reschedule)**
123
+ - Background: transparent
124
+ - Text: `#F3F3FB`, Sora 14pt weight 700
125
+ - Border: 1.5pt `#2C2C42`
126
+ - Corner radius: 14pt
127
+ - Padding: 13pt vertical, 24pt horizontal
128
+ - Pressed: background `#181826`
129
+
130
+ **Text Button (Swap workout)**
131
+ - Font: Sora 14pt weight 800, color `#C2F94E`
132
+ - No background, no underline
133
+ - Pressed: opacity 0.6
134
+
135
+ ### Core Atoms
136
+
137
+ **Card**
138
+ - Background: `#181826`
139
+ - Border: 1pt `#2C2C42`
140
+ - Corner radius: 14pt (step/list cards), 22pt (session gradient card)
141
+ - Padding: 16–18pt
142
+ - Shadow: minimal on dark — rely on surface lift + border; session card has a faint indigo glow
143
+
144
+ **Day Cell (week strip)**
145
+ - Aspect ~0.62 (tall), 14pt corner radius
146
+ - Default: `#181826` bg, `#2C2C42` border, weekday label 10pt weight 700 tertiary, date 14pt weight 800, a 7pt run-type dot
147
+ - Completed: `rgba(52,211,153,0.12)` bg, `rgba(52,211,153,0.35)` border, date in `#34D399`
148
+ - Today: solid `#4F46E5` bg, `#6366F1` border, white label/date, Lime dot
149
+ - Rest: muted — date in `#65657E`, neutral dot
150
+
151
+ **Run-Type Chip**
152
+ - Rounded rect, 10pt corner radius, Sora 13pt weight 800
153
+ - Fill = run-type color; text `#1A1A1A` on Easy/Tempo/Intervals, white on Long (Indigo)
154
+ - Padding: 8pt vertical, 14pt horizontal
155
+
156
+ **Workout-Structure Segmented Bar**
157
+ - Horizontal bar, ~30–34pt tall, 8pt corner radius, 3pt gaps between segments
158
+ - Each segment colored by phase (warm-up/cool = Easy green, main set = its run-type color)
159
+ - Segment widths proportional to phase duration; tiny uppercase label inside if it fits (9pt weight 800)
160
+
161
+ **Step Row**
162
+ - Leading 32pt rounded-square (9pt radius) phase icon, colored by phase, 2-letter code (WU / 6× / CD) in near-black weight 800
163
+ - Title (15pt weight 700) + description (11pt weight 500 secondary)
164
+ - Trailing pace value (13pt weight 800) with a small "/km" sublabel (10pt weight 600 tertiary)
165
+ - 10pt vertical padding, 1pt bottom divider
166
+
167
+ ### Navigation
168
+
169
+ **Bottom Tab Bar**
170
+ - Height: 68pt + safe area
171
+ - Background: `rgba(14,14,22,0.94)` with `backdrop-filter: blur(20px) saturate(180%)`, 0.5pt top border `#2C2C42`
172
+ - Tabs (5): Plan · Run · Progress · Club · Profile
173
+ - Icon size: 22pt
174
+ - Active: `#C2F94E` (Lime — the active tab; icon fills solid)
175
+ - Inactive: `#65657E`
176
+ - Label: Sora 10pt weight 600, always shown
177
+ - No tint pill — color/fill change only
178
+
179
+ **Plan Header (no nav bar)**
180
+ - The Plan screen has no UINavigationBar — a header block: eyebrow ("5K PLAN · WEEK 4 OF 8" lime, tracked) + plan title (26pt weight 800) + meta line, with a trailing "Week 4 ▾" pill to switch weeks
181
+ - Detail screens (Run summary) use a sheet/push with a leading back chevron
182
+
183
+ ### Input Fields
184
+
185
+ **Week Switcher Pill**
186
+ - Pill-ish, `#222234` bg, `#2C2C42` border, 999pt radius
187
+ - "Week 4 ▾" Sora 12pt weight 700, trailing chevron — taps open a week picker sheet
188
+
189
+ **Pace / Goal Stepper (plan setup)**
190
+ - Large Sora 24pt weight 800 numeral (target pace or race time)
191
+ - − / + circular buttons `#222234`, lime glyph
192
+ - Unit toggle (km / mi) as a small pill segment
193
+
194
+ **Segmented Control (This week / All / Calendar)**
195
+ - Container: `#222234`, 999pt radius, 4pt inset
196
+ - Selected segment: `#4F46E5` fill, white text; others transparent, `#9C9CB8`
197
+ - Slide animation 220ms ease-out
198
+
199
+ **Search (Club / find runners)**
200
+ - Pill field, `#222234`, 999pt radius, leading magnifier 18pt `#65657E`
201
+ - Placeholder "Search runners or clubs" 15pt `#65657E`
202
+ - Focus: 1.5pt `#6366F1` border
203
+
204
+ ### Distinctive Components
205
+
206
+ **Training-Plan Week Strip — signature**
207
+ - Horizontal row of 7 day cells (see Day Cell above), full content width, 7pt gaps
208
+ - States: completed (green), today (solid Indigo + Lime dot), rest (muted), typed-upcoming (run-type dot)
209
+ - Tapping a cell opens that day's session detail; the strip scrolls horizontally for multi-week views
210
+
211
+ **Guided Run-Session Card — signature**
212
+ - Rounded card, 22pt radius, fill = linear gradient `#4F46E5 → #3A33B8` (~150°)
213
+ - Decorative translucent Lime circle bleeding off the bottom-right (`rgba(194,249,78,0.14)`)
214
+ - Lime pill tag "Today · Intervals" (near-black text, 10pt weight 800, uppercase)
215
+ - Session title white Sora 21pt weight 800
216
+ - Stats row: 3 stat blocks (Distance / Duration / Avg pace) — value 18pt weight 800 white, label 10pt weight 600 uppercase white@70%
217
+ - Full-width Lime CTA "Start guided run" with a play glyph, near-black text
218
+
219
+ **Workout-Structure Breakdown — signature**
220
+ - Header "Workout structure" 13pt weight 700
221
+ - Segmented phase bar (see above)
222
+ - Per-step rows (see Step Row): warm-up → main set → cool-down, each with a pace target
223
+
224
+ **Progress / Pace Trend Card**
225
+ - Line chart of pace or weekly volume; trend line in Lime over an Indigo-tinted fill
226
+ - PR markers as small Lime dots; goal pace as a dashed Indigo line
227
+
228
+ **Run Summary (post-run)**
229
+ - Big distance + time, splits list (per-km rows with pace bars colored by run-type), a map polyline route in Indigo with a Lime start dot
230
+ - "Great work" header and a PR badge (Lime) if a record was set
231
+
232
+ **Club Feed Row**
233
+ - Runner avatar + name + completed-session chip (run-type colored) + a kudos (Lime) button
234
+
235
+ ## 5. Layout Principles
236
+
237
+ ### Spacing System
238
+ - Base unit: 4pt
239
+ - Scale: 4, 7, 8, 10, 12, 14, 16, 18, 22, 24, 32, 40
240
+ - Screen horizontal inset: 18pt
241
+ - Card internal padding: 16–18pt
242
+ - Vertical gap between cards/sections: 14–16pt
243
+ - Week-strip cell gap: 7pt
244
+ - Step-row vertical padding: 10pt
245
+
246
+ ### Grid & Container
247
+ - iPhone: single column, 18pt horizontal insets
248
+ - The Plan screen stacks: header → week strip → session card → structure breakdown
249
+ - The week strip is a 7-column equal-flex row spanning the full content width
250
+ - iPad: content max-width 640pt centered; week strip can show 2 weeks side-by-side
251
+
252
+ ### Whitespace Philosophy
253
+ - **Disciplined, not bubbly**: cards are squared-soft (14–22pt), gaps are consistent 14–16pt — it should feel like a training plan, organized and scannable
254
+ - **The week strip earns top space**: it's the at-a-glance answer; it sits right under the header
255
+ - **The session card is the focal block**: the most saturated element, with the Lime Start button as the single clearest action
256
+ - **Pace data gets right-edge alignment**: step rows align pace values on the trailing edge so the eye can scan targets down a column
257
+
258
+ ### Border Radius Scale
259
+ - Square (0pt): segmented-bar internal divisions, route polyline ends
260
+ - Soft (8pt): structure segmented bar, small chips
261
+ - Standard (10pt): run-type chips, phase step icons
262
+ - Comfortable (14pt): cards, buttons, day cells
263
+ - Card (18pt): larger list cards, sheets' inner content
264
+ - Session (22pt): the guided run-session gradient card, bottom-sheet tops
265
+ - Pill (999pt): week switcher, segmented controls, search
266
+ - Circle (50%): avatars, stepper buttons, today/PR dots, kudos button
267
+
268
+ ## 6. Depth & Elevation
269
+
270
+ Runna is dark-first and mostly flat — depth comes from surface lift and the brand glow, not heavy shadows.
271
+
272
+ | Level | Treatment | Use |
273
+ |-------|-----------|-----|
274
+ | Flat (Level 0) | No shadow, sits on canvas | Header text, dividers, day cells |
275
+ | Surface (Level 1) | Surface lift `#181826` + 1pt `#2C2C42` border | Cards, structure breakdown, lists |
276
+ | Session (Level 1.5) | Faint indigo glow `rgba(79,70,229,0.30) 0 10px 28px` | Guided run-session gradient card |
277
+ | Sheet (Level 2) | `rgba(0,0,0,0.5) 0 -8px 30px` | Bottom sheets (week picker, swap workout, run setup) |
278
+ | Overlay | `rgba(8,8,16,0.6)` | Dim behind sheets and modals |
279
+
280
+ **Shadow Philosophy**: on the dark canvas, drop shadows read poorly, so elevation is conveyed primarily by the `#181826` surface lift plus a crisp `#2C2C42` 1pt border. The only colored elevation is the session card's faint indigo glow, which makes the day's workout feel like the energized focal point. In the optional light theme, cards gain a soft indigo-tinted shadow `rgba(79,70,229,0.10) 0 6px 18px`.
281
+
282
+ ### Motion
283
+ - **Week strip load**: day cells stagger-fade in left→right, 40ms each, 220ms ease-out; the "today" cell does a subtle 1.0→1.04→1.0 pulse on first appearance
284
+ - **Session card entrance**: scales 0.97 → 1.0 + fade over 300ms ease-out; the decorative lime circle drifts in
285
+ - **Structure bar grow**: segments expand from 0 width left→right over 500ms ease-out, in phase order
286
+ - **Start run press**: Lime button scales 0.98 + soft haptic, then a 350ms transition into the live run screen (slide-up)
287
+ - **Live run**: the pace number animates with a quick count when a new split is hit; a soft haptic marks each km
288
+ - **Step row complete (during run)**: row fills with a left→right Lime sweep + checkmark, 300ms ease-out
289
+ - **Tab switch**: cross-fade 200ms; active icon fills + Lime tint tweens 150ms
290
+ - **Segmented control**: selected pill slides 220ms ease-out
291
+ - **Sheet present**: slides up 300ms ease-out; backdrop fades 200ms
292
+ - **PR celebration**: Lime badge pops with a 400ms spring + confetti-light particles + success haptic
293
+ - **Reduce Motion**: replace stagger/scale/grow with 200ms cross-fades; bars and strip render at final state; no pulse
294
+
295
+ ## 7. Do's and Don'ts
296
+
297
+ ### Do
298
+ - Use the dark, Indigo-tinted blue-black canvas (`#0E0E16`) as the default — it's a training app for dawn/dusk
299
+ - Make the training-plan week strip the at-a-glance hero — color-coded day cells right under the header
300
+ - Reserve Lime `#C2F94E` for action and energy — Start button, today dot, key CTAs, PR badges
301
+ - Use Indigo `#4F46E5` as the structural color — plan surfaces, today cell, session card, info buttons
302
+ - Always pair Lime fills with near-black text `#1A1A1A` — never Lime as a text color on dark
303
+ - Keep the run-type color system fixed (Easy `#34D399`, Tempo `#FBBF24`, Intervals `#FB7185`, Long `#4F46E5`)
304
+ - Show a pace target on every workout step — pace is the substance; heavy numerals
305
+ - Use the segmented structure bar (warm-up → main → cool) so a session reads in one glance
306
+ - Use Sora's athletic geometry — it reads like performance gear; heavy stats, regular prose
307
+ - Right-align pace values in step rows so targets scan down a column
308
+ - Give the session card a faint indigo glow so it's the energized focal point
309
+
310
+ ### Don't
311
+ - Don't use a neutral grey/black canvas — Runna's dark is tinted toward Indigo for brand cohesion
312
+ - Don't use Lime for large fills, backgrounds, or as text on dark — it's an action accent only, with near-black text
313
+ - Don't recolor the run-type system — athletes read effort by color; keep Easy/Tempo/Intervals/Long fixed
314
+ - Don't use a soft rounded/playful font — Sora's technical geometry is core to the athletic identity
315
+ - Don't make day cells round/bubbly — they're squared-soft (14pt), disciplined like a plan
316
+ - Don't bury the week strip below the session card — the strip is the at-a-glance answer, it sits up top
317
+ - Don't hide pace targets behind a tap — every step shows its `/km` (or `/mi`) target inline
318
+ - Don't bold descriptive copy by default — prose is 400; only pace/stats are heavy
319
+ - Don't use heavy drop shadows on dark — rely on surface lift + the `#2C2C42` border
320
+ - Don't add a second action color competing with Lime for "go"
321
+ - Don't use Material-style tab tint pills — active is a Lime color/fill change only
322
+
323
+ ## 8. Responsive Behavior
324
+
325
+ ### Device Sizes
326
+ | Device | Width | Key Changes |
327
+ |--------|-------|-------------|
328
+ | iPhone SE (3rd gen) | 375pt | Day cells tighter (6pt gap); session title 19pt; 14pt insets |
329
+ | iPhone 13/14/15 | 390pt | Standard layout (reference) |
330
+ | iPhone 15/16 Pro | 393pt | Dynamic Island clearance in status zone |
331
+ | iPhone 15/16 Pro Max | 430pt | Larger day cells; session title 23pt; bigger stat values |
332
+ | iPad (portrait) | 768pt | Content max-width 640pt centered; week strip may show 14 days |
333
+ | iPad (landscape) | 1024pt+ | Two-column: week strip + session left, structure right, max 900pt |
334
+ | Apple Watch (companion) | — | Live run mirrors pace/clock; structure step + Lime progress; bigger tabular numerals |
335
+
336
+ ### Dynamic Type
337
+ - Scales: screen title, plan/session title, section, card title, body, step item
338
+ - Fixed: eyebrow, pace/tag, day-cell number, stat labels, tab labels
339
+ - Session title caps at +25% so the gradient card doesn't overflow
340
+
341
+ ### Orientation
342
+ - Phone: portrait-primary on Plan; the live run screen is portrait-locked
343
+ - iPad: supports landscape with the two-column split
344
+
345
+ ### Touch Targets
346
+ - Tab bar icons: 22pt glyph, 44pt hit
347
+ - Day cell: full-cell tap, ≥ 44pt tall
348
+ - Lime Start button: ≥ 48pt tall, full-width on the card
349
+ - Segmented control segments: 36pt tall
350
+ - Week switcher pill: ≥ 36pt tall
351
+
352
+ ### Safe Area Handling
353
+ - Top: header respects safe area + Dynamic Island
354
+ - Bottom: 68pt tab bar + home indicator; the live run controls float above the home indicator
355
+ - The session card sits inside the scroll content with top inset — never under the status bar
356
+ - Sheets respect bottom safe area; the run-setup sheet scrolls above the keyboard
357
+
358
+ ## 9. Agent Prompt Guide
359
+
360
+ ### Quick Color Reference
361
+ - Runna Indigo (structure): `#4F46E5` / bright `#6366F1` / pressed `#4338CA`
362
+ - Runna Lime (action/"go"): `#C2F94E` / pressed `#A3D93B`
363
+ - Canvas: `#0E0E16` (Indigo-tinted, NOT neutral) — light `#F6F6FB`
364
+ - Surface 1: `#181826` · Surface 2: `#222234` · Divider: `#2C2C42`
365
+ - Text primary: `#F3F3FB` / secondary `#9C9CB8` / tertiary `#65657E`
366
+ - Text on Lime (only): `#1A1A1A`
367
+ - Run types: Easy `#34D399`, Tempo `#FBBF24`, Intervals `#FB7185`, Long `#4F46E5`
368
+
369
+ ### Example Component Prompts
370
+ - "Build the Runna training-plan week strip in SwiftUI: a horizontal row of 7 equal-flex day cells with 7pt gaps. Each cell is ~0.62 aspect, 14pt corner radius, `#181826` bg, 1pt `#2C2C42` border; inside, a weekday label (Sora 10pt weight 700 `#65657E`), a date number (Sora 14pt weight 800), and a 7pt run-type dot. State variants: Completed = `rgba(52,211,153,0.12)` bg + `rgba(52,211,153,0.35)` border + date `#34D399`; Today = solid `#4F46E5` bg + `#6366F1` border + white text + a `#C2F94E` dot; Rest = date `#65657E` + neutral dot. On load, stagger-fade cells left→right 40ms each over 220ms ease-out, and pulse the Today cell 1.0→1.04→1.0 once."
371
+
372
+ - "Build the Runna guided run-session card: a 22pt-radius card filled with a linear gradient `#4F46E5 → #3A33B8` at ~150°, with a decorative `rgba(194,249,78,0.14)` circle clipped off the bottom-right. Inside: a Lime pill tag 'Today · Intervals' (Sora 10pt weight 800, near-black `#1A1A1A` text, uppercase); the session title 'Today's intervals' in Sora 21pt weight 800 white; a stats row of three blocks (Distance 8.4 km / Duration ~48 min / Avg pace 4:52) — values Sora 18pt weight 800 white, labels Sora 10pt weight 600 uppercase white@70%; and a full-width Lime button 'Start guided run' (14pt radius, near-black text, leading play glyph). Add a faint indigo glow `rgba(79,70,229,0.30) 0 10px 28px`. On appear scale 0.97→1.0 + fade 300ms ease-out."
373
+
374
+ - "Build the Runna workout-structure breakdown: a header 'Workout structure' Sora 13pt weight 700; a 30pt-tall segmented bar (8pt radius, 3pt gaps) with phase segments — warm-up & cool-down in Easy green `#34D399`, the main set in its run-type color (e.g. Intervals `#FB7185`), widths proportional to phase duration; then per-step rows: a 32pt rounded-square (9pt radius) phase icon in the phase color with a 2-letter code (WU/6×/CD) in near-black weight 800, a title (Sora 15pt weight 700) + description (11pt weight 500 `#9C9CB8`), and a trailing pace value (Sora 13pt weight 800) with a '/km' sublabel (10pt weight 600 `#65657E`), 10pt vertical padding, 1pt `#2C2C42` divider. Grow the bar segments left→right over 500ms ease-out."
375
+
376
+ - "Build the Runna primary 'go' button: a 14pt-radius rectangle, `#C2F94E` fill, near-black `#1A1A1A` Sora 16pt weight 800 text with an optional leading play glyph. Pressed: `#A3D93B` + scale 0.98. The Indigo informational variant is `#4F46E5` fill with white text."
377
+
378
+ - "Render the Runna bottom tab bar: 68pt + safe area, 5 tabs — Plan, Run, Progress, Club, Profile — 22pt icons, Sora 10pt weight 600 labels. Active tab `#C2F94E` (Lime) with the icon filled solid; inactive `#65657E`. No tint pill — color/fill change only."
379
+
380
+ ### Iteration Guide
381
+ 1. Dark-first: canvas is an Indigo-tinted blue-black `#0E0E16` (NOT neutral grey/black) — low-glare for dawn/dusk training
382
+ 2. The training-plan week strip is the at-a-glance hero — 7 color-coded day cells (done/today/rest/typed) under the header
383
+ 3. Two-color brand: Indigo `#4F46E5` is structure; Lime `#C2F94E` is action/"go" — Start button, today dot, CTAs only
384
+ 4. Lime fills always use near-black text `#1A1A1A` — Lime is never a text color on dark
385
+ 5. The run-type color system is fixed (Easy `#34D399`, Tempo `#FBBF24`, Intervals `#FB7185`, Long `#4F46E5`) — athletes read effort by color
386
+ 6. Every workout step shows a pace target inline (`/km` or `/mi`) — pace is the substance, heavy numerals
387
+ 7. The guided run-session card is the focal block — Indigo gradient + faint indigo glow + the single Lime Start button
388
+ 8. The structure segmented bar (warm-up → main → cool) makes a session readable in one glance
389
+ 9. Sora's athletic, technical geometry is core — heavy stats (700–800), regular prose (400); cards are squared-soft, not bubbly
390
+ 10. Minimal chrome — 5-tab bar, no opaque nav bar; the plan header lives in scroll content with a week-switcher pill