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,460 @@
1
+ # Design System Inspiration of Reddit (iOS)
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ Reddit's iOS app is a card-based community reader organized around the single most recognizable interactive control in consumer tech: the upvote/downvote column. Every post in a feed — whether from r/aww, r/AskReddit, or r/programming — is laid out the same way: a horizontal card with the vote arrow stack on the left (up arrow, karma number, down arrow), a subreddit avatar + "r/subredditname", a post title, optional media preview, and a row of actions (comments count, share, save, more). The consistency of this unit is the brand. A Reddit power user can scan 50 cards in 20 seconds because every card is structurally identical.
6
+
7
+ Reddit's color system is a two-pole light-mode vs dark-mode pair stitched together by the Reddit Orange-Red (`#FF4500`) — the single brand accent seen in the app logo, subreddit pill tints, and (historically) the upvote hover. The functional accent work, though, is done by a smaller palette: Upvote Orange (`#FF8717`) on active upvotes, Downvote Blue-Purple (`#7193FF` light / `#9494FF` dark) on active downvotes, and a grayscale for dormant votes. This is a meaningful chromatic decision: orange + blue-purple are complementary, they read semantically (warmth vs coolness) for approve vs disapprove, and they NEVER both light up at once because a user can only vote one way.
8
+
9
+ The mood is information-density-first. Reddit is a reading and scrolling app — people spend minutes in a thread, not seconds — so the app tolerates high-density cards with small type (14pt body, 12pt metadata) and uses ample white space ONLY inside cards (16pt internal padding), not between them. Newer Reddit iOS adds media-first card variants — photo-dominant, video-autoplaying — but the bone structure (vote column + meta + title + actions) stays. Subreddit customization is a signature feature: each community can set its own accent color (the "subreddit color"), its own banner image, its own sidebar rules, so a thread in r/AnimalCrossing looks cozy green and a thread in r/programming looks cool steel.
10
+
11
+ **Key Characteristics:**
12
+ - Reddit Orange-Red (`#FF4500`) as the brand color — logo, subreddit pill accent, rare CTAs
13
+ - Vote column on every post/comment — up arrow, karma number, down arrow in a vertical stack
14
+ - Upvote orange (`#FF8717`) and downvote blue-purple (`#7193FF`) as complementary semantic pair
15
+ - Card-first feed UI — every post is a self-contained card with avatar + title + preview + actions
16
+ - Subreddit avatars as circular icons — and subreddit accent color customization per community
17
+ - Flair pills (rectangular 4pt-radius chips) for post tags — per-subreddit styled
18
+ - Comment thread indentation lines — thin vertical rules on the leading edge of nested replies
19
+ - Snoo (the alien mascot) as the fallback avatar and Empty State character
20
+ - Chat Channels with real-time chat — a newer feature with Discord-like group messaging
21
+ - Media-first post variants — full-bleed image cards, video autoplay with mute toggle
22
+ - Light mode (`#F6F7F8` new / `#DAE0E6` old) and dark mode (`#1A1A1B` canvas, `#272729` cards)
23
+ - Reddit Sans (custom font, 2023+) with Noto Sans and SF Pro fallbacks
24
+
25
+ ## 2. Color Palette & Roles
26
+
27
+ ### Primary Brand
28
+ - **Reddit Orange-Red** (`#FF4500`): The single brand accent — logo, primary CTA pill, subreddit pill accent, occasional button.
29
+ - **Reddit Red** (`#FF585B`): Alerts, destructive banners, "community removed" warnings.
30
+ - **Orange-Red Pressed** (`#CC3700`): Pressed state for primary CTAs.
31
+
32
+ ### Vote Colors (The Semantic Pair)
33
+ - **Upvote Orange** (`#FF8717`): Active upvote — slightly yellower than Reddit Red, intentionally distinct from the brand red.
34
+ - **Upvote Orange (Dark Mode)** (`#FFAA66`): Lighter variant for dark mode contrast.
35
+ - **Downvote Blue-Purple (Light)** (`#7193FF`): Active downvote — indigo-adjacent, cold.
36
+ - **Downvote Blue-Purple (Dark)** (`#9494FF`): Lighter variant for dark mode.
37
+ - **Vote Arrow Inactive** (`#878A8C` light / `#818384` dark): Gray dormant state.
38
+
39
+ ### Canvas & Surfaces (Light Mode)
40
+ - **Canvas (New)** (`#F6F7F8`): Default light canvas — a cool very-light gray.
41
+ - **Canvas (Classic)** (`#DAE0E6`): The "old Reddit" blue-tinged light canvas, still used in some contexts.
42
+ - **Card Surface** (`#FFFFFF`): Post cards and comment threads sit on white.
43
+ - **Surface 2** (`#F2F3F5`): Hovered/pressed card state.
44
+ - **Divider** (`#EDEFF1`): Hairline between cards, between comments.
45
+ - **Subreddit Banner Placeholder** (`#0079D3`): Default blue tint if no custom banner.
46
+
47
+ ### Canvas & Surfaces (Dark Mode)
48
+ - **Canvas (Dark)** (`#1A1A1B`): Primary dark canvas.
49
+ - **Card Surface (Dark)** (`#272729`): Post cards and comment threads.
50
+ - **Surface 2 (Dark)** (`#343536`): Hovered / pressed card state, input backgrounds.
51
+ - **Divider (Dark)** (`#343536`): Dark-mode separator.
52
+ - **Chat Surface (Dark)** (`#161617`): Slightly darker than canvas for chat screens.
53
+
54
+ ### Text
55
+ - **Text Primary (Light)** (`#1A1A1B`): Post titles, body text.
56
+ - **Text Secondary (Light)** (`#7C7C7C`): Metadata — "2h ago", "r/subreddit • 125 comments".
57
+ - **Text Tertiary (Light)** (`#AFAFAF`): Placeholder, disabled.
58
+ - **Text Primary (Dark)** (`#D7DADC`): Dark-mode primary.
59
+ - **Text Secondary (Dark)** (`#818384`): Dark-mode metadata.
60
+ - **Text Link** (`#0079D3`): Hyperlinks in comments and post body.
61
+
62
+ ### Subreddit Accent Colors
63
+ Each subreddit can set its own "accent color" — seen on the join button, the sidebar, and the banner tint. This is configurable per-community, commonly:
64
+ - Default (`#0079D3`), Gaming (`#24A0ED`), AskReddit (`#FF4500`), Memes (`#A5A4A4`), etc.
65
+
66
+ ### Semantic
67
+ - **Success Green** (`#46D160`): Successful actions.
68
+ - **Warning Yellow** (`#FFB000`): Warning banners.
69
+ - **Error Red** (`#FF585B`): Error messages.
70
+ - **Gold Award** (`#FFB000`): Gold Award badge (Reddit removed in 2023 but still in historical data).
71
+ - **Silver Award** (`#C7C7C7`): Silver Award badge.
72
+ - **Reddit Premium** (`#FFD635`): Premium subscriber badge, Reddit Gold era.
73
+ - **NSFW Tag** (`#F3B200` pill with black text): "NSFW" post flair.
74
+ - **Spoiler Tag** (`#000000` pill with white text): "SPOILER" flair.
75
+
76
+ ## 3. Typography Rules
77
+
78
+ ### Font Family
79
+ - **Primary (2023+)**: `Reddit Sans` (proprietary, released 2023) — a humanist sans with gentle curves, designed for long reading sessions. Has Regular, Medium, SemiBold, Bold, Black.
80
+ - **Secondary (Fallback)**: `Noto Sans` — used for non-Latin scripts.
81
+ - **Tertiary (Fallback)**: `SF Pro Text` / `SF Pro Display` — iOS native fallback.
82
+ - **Monospace**: `Reddit Mono` (2023+) for code blocks; fallback `SF Mono`.
83
+ - **Fallback Stack**: `-apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Noto Sans', Helvetica, Arial, sans-serif`
84
+
85
+ ### Hierarchy
86
+
87
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
88
+ |------|------|------|--------|-------------|----------------|-------|
89
+ | Large Title | Reddit Sans | 24pt | 700 | 1.2 | -0.3pt | "Home", "Popular", subreddit name on detail |
90
+ | Post Title | Reddit Sans | 18pt | 600 | 1.25 | -0.2pt | The post title card headline |
91
+ | Body Text | Reddit Sans | 14pt | 400 | 1.5 | -0.1pt | Post body, comment body |
92
+ | Comment Body | Reddit Sans | 14pt | 400 | 1.5 | -0.1pt | Same as body (comments are first-class) |
93
+ | Metadata | Reddit Sans | 12pt | 400 | 1.3 | 0pt | "r/subreddit • 2h ago • 125 comments" |
94
+ | Karma (Vote Column) | Reddit Sans | 12pt | 700 | 1.0 | 0pt | The number between up/down arrows |
95
+ | Subreddit Pill | Reddit Sans | 12pt | 600 | 1.0 | 0pt | "r/AnimalCrossing" pill |
96
+ | Flair Pill | Reddit Sans | 11pt | 600 | 1.0 | 0.2pt | Per-subreddit colored flair tags |
97
+ | Username | Reddit Sans | 12pt | 500 | 1.2 | 0pt | "u/username" in comments |
98
+ | Button (Primary) | Reddit Sans | 14pt | 600 | 1.0 | 0pt | "Join", "Continue" |
99
+ | Tab Label | Reddit Sans | 11pt | 500 | 1.0 | 0.1pt | Bottom tab labels |
100
+ | Nav Title | Reddit Sans | 17pt | 600 | 1.2 | -0.2pt | Top nav bar title |
101
+ | Section Header | Reddit Sans | 13pt | 700 | 1.2 | 0.5pt | "COMMUNITY INFO" tracked uppercase |
102
+ | Code (Mono) | Reddit Mono | 13pt | 400 | 1.5 | 0pt | Inline + block code in comments |
103
+
104
+ ### Principles
105
+ - **14pt is the workhorse**: Post body, comments, replies all at 14pt regular. This is tuned for long-form reading in a chat-like density.
106
+ - **12pt for metadata**: Timestamps, subreddit pills, comment context all at 12pt — small but scannable.
107
+ - **18pt for post title** is the hero — big enough to catch attention on a card, small enough to fit multi-line titles.
108
+ - **Dynamic Type respected**: Body text and post titles scale; vote-column karma number, tab labels, and flair pills are fixed for layout.
109
+ - **Username hierarchy**: "u/username" in 12pt weight 500 — not as prominent as subreddit `r/` pills, because Reddit is community-first, not user-first.
110
+ - **Markdown rendering**: Post and comment bodies render full Markdown — `**bold**`, `*italic*`, `~~strike~~`, `> quote`, `[link](url)`, `` `code` ``, triple-backtick blocks, headers, lists.
111
+
112
+ ## 4. Component Stylings
113
+
114
+ ### Buttons
115
+
116
+ **Primary Pill (Join / Continue)**
117
+ - Shape: Pill, 24pt corner radius (or 500pt for full-capsule)
118
+ - Background: `#FF4500` for universal primary; subreddit-accent color for community-specific CTA
119
+ - Text: white, Reddit Sans 14pt weight 600
120
+ - Padding: 8pt vertical, 20pt horizontal
121
+ - Pressed: darker shade + scale 0.97
122
+ - Used for: "Join" (subreddit), "Continue", "Create Post"
123
+
124
+ **Secondary Outline**
125
+ - Background: transparent
126
+ - Text: subreddit accent color (or `#1A1A1B` / `#D7DADC` default)
127
+ - Border: 1pt solid `#EDEFF1` (light) or `#343536` (dark)
128
+ - Pressed: background `#F2F3F5` / `#343536`
129
+ - Used for: "Joined" (after joining), "Follow"
130
+
131
+ **Subreddit Join Button**
132
+ - Same as primary pill, but tinted in the subreddit's custom accent color
133
+ - When joined, shifts to outline style with "Joined" text
134
+ - Icon prefix: `+` (not joined) or `checkmark` (joined)
135
+
136
+ **Vote Arrow (The Signature Button)**
137
+ - Two stacked icons with a karma number between them
138
+ - Arrow icon: upward/downward chevron, 18pt
139
+ - Default (inactive): `#878A8C` / `#818384`
140
+ - Active up: `#FF8717` (orange)
141
+ - Active down: `#7193FF` / `#9494FF` (blue-purple)
142
+ - Hit target: 36pt × 36pt per arrow
143
+ - Tap: immediate state change + soft haptic + brief scale bounce (1.0 → 1.2 → 1.0)
144
+ - Karma number: Reddit Sans 12pt weight 700, center-aligned between arrows, color matches active vote state (orange/blue-purple/gray)
145
+
146
+ **Icon Actions (Comments, Share, Save, More)**
147
+ - Size: 18pt icon + optional count
148
+ - Layout: horizontal row below post content
149
+ - Default: `#878A8C` / `#818384`
150
+ - Active (saved): `#FFB000` gold
151
+ - Tap hit area: 44pt
152
+
153
+ ### Cards & Containers
154
+
155
+ **Post Card (The Signature Component)**
156
+ A self-contained post as a card with structured sections.
157
+ - Background: `#FFFFFF` light / `#272729` dark
158
+ - Corner radius: 0pt (old Reddit style) or 16pt (new card style — user preference toggle)
159
+ - Padding: 12pt internal
160
+ - Structure (TOP to BOTTOM):
161
+ 1. **Header row** (10pt height): subreddit avatar (20pt circular) + `r/subreddit` pill + `•` + timestamp + `•` + optional "Pinned" or "Crosspost" tag
162
+ 2. **Title row**: post title in Reddit Sans 18pt weight 600, `#1A1A1B` / `#D7DADC`, up to 3-line clamp
163
+ 3. **Flair row** (optional): horizontal row of pill tags, 11pt weight 600
164
+ 4. **Preview row** (optional): image, video, gallery, link card, or text preview
165
+ 5. **Action row** (32pt height): Vote arrow column + karma (left) + comments count + share + save + more (right side)
166
+ - Between cards: 8pt gap with canvas color showing through
167
+ - Tap: slight background tint (`#F2F3F5` / `#343536`) + navigate to detail
168
+
169
+ **Post Card — Media-First Variant**
170
+ For image/video-dominant posts, the media takes the top 60% of the card with title + vote column overlaid or below:
171
+ - Image: full-width, up to 16:9 or 1:1 aspect
172
+ - 16pt radius on corners (when cards enabled); 0pt when classic view
173
+ - Title below image in 18pt weight 600
174
+ - Vote column at bottom-left; actions bottom-right
175
+
176
+ **Comment**
177
+ - Leading indentation line: 2pt `#EDEFF1` / `#343536` vertical bar, `Int × 10pt` from leading edge (each reply level indents 10pt)
178
+ - Structure: avatar (optional, 20pt circular) + username + `•` + timestamp + `•` + karma (if not hidden) — then body text
179
+ - Body: 14pt weight 400, line-height 1.5
180
+ - Trailing actions: reply, vote arrows, share, more (ghost/muted icons)
181
+ - Collapse indicator: `[-]` or `[+]` at leading edge to toggle thread collapse
182
+
183
+ **Subreddit Banner (Detail Screen)**
184
+ - Full-width banner image OR solid color matching subreddit accent
185
+ - Height: 120-180pt
186
+ - Subreddit avatar: circular 72pt, overlapping the bottom of banner by 36pt, white 3pt border
187
+ - Below: subreddit name (Reddit Sans 22pt weight 700), member count (12pt `#7C7C7C`)
188
+ - Trailing "Join/Joined" button at top-right of banner
189
+
190
+ **Chat Channel Card**
191
+ - Newer Reddit feature — group chat rooms
192
+ - Similar card layout to posts but with "Live" badge if active
193
+ - Member count + "chatting now" indicator
194
+
195
+ ### Navigation
196
+
197
+ **Bottom Tab Bar**
198
+ - Height: 49pt + safe area
199
+ - Background: `#FFFFFF` (light) / `#1A1A1B` (dark) — solid, no blur
200
+ - Tabs: Home, Communities, Create (center, with `+` FAB-style), Chat, Inbox
201
+ - Active color: `#FF4500` (brand red) or `#D7DADC` (neutral — varies)
202
+ - Inactive: `#878A8C` / `#818384`
203
+ - Labels: Reddit Sans 11pt weight 500
204
+ - Badge: red `#FF585B` circle with white count
205
+
206
+ **Top Nav (Feed)**
207
+ - Height: 44pt + safe area
208
+ - Leading: profile avatar (28pt circular)
209
+ - Center: subreddit name or "Home" / "Popular" / "All" switcher (tap to open sheet)
210
+ - Trailing: search + sort + more
211
+ - Background: `#FFFFFF` light / `#1A1A1B` dark with bottom 1pt divider
212
+
213
+ **Top Nav (Subreddit Detail)**
214
+ - Transparent over banner image when scrolled to top
215
+ - Collapses to solid surface with subreddit name + back chevron on scroll
216
+ - Trailing: Join button + search + more
217
+
218
+ ### Input Fields
219
+
220
+ **Compose (Create Post)**
221
+ - Full-screen modal
222
+ - Subreddit picker at top (pill with `r/pickme` placeholder)
223
+ - Title input: 18pt weight 600 placeholder "Title"
224
+ - Body input: 14pt regular placeholder "body (optional)"
225
+ - Formatting toolbar: Bold, Italic, Link, Quote, Code, List (flat icons, 20pt)
226
+ - Attach row: Photo/Video, Poll, Link, GIF
227
+ - Submit button: `#FF4500` pill "Post" in top-right nav
228
+
229
+ **Search Bar**
230
+ - Height: 40pt
231
+ - Corner radius: 20pt (pill)
232
+ - Background: `#F2F3F5` light / `#343536` dark
233
+ - Leading: `magnifyingglass` 18pt `#878A8C`
234
+ - Placeholder: "Search Reddit"
235
+
236
+ **Comment Input**
237
+ - Appears at bottom of thread when "Add a comment" tapped
238
+ - Expandable multiline; starts at ~40pt height, grows to ~200pt
239
+ - Corner radius: 20pt
240
+ - Focus: shows submit button at trailing right in `#FF4500`
241
+
242
+ ### Distinctive Components
243
+
244
+ **Vote Column (The Signature)**
245
+ A vertical stack of three elements: up arrow, karma number, down arrow.
246
+ - Width: 44pt (standard) or 32pt (compact)
247
+ - Height: ~72pt (22pt arrow + 28pt number + 22pt arrow)
248
+ - Up arrow: `chevron.up` or custom up-tri icon, 18pt
249
+ - Number: Reddit Sans 12pt weight 700, center
250
+ - Down arrow: `chevron.down` or custom down-tri icon, 18pt
251
+ - State transitions:
252
+ - None → Up: arrow fills orange, number turns orange, number increments, scale bounce
253
+ - None → Down: arrow fills blue-purple, number turns blue-purple, number decrements, scale bounce
254
+ - Up → None: arrow returns to gray, number to gray, decrements
255
+ - Up → Down: arrow slides down, color changes, number decrements by 2, scale bounce
256
+ - Haptic: selection haptic on each state change
257
+ - Position: left side of post card (standard), or below media (media-first variant)
258
+
259
+ **Flair Pill**
260
+ - Small rectangular or rounded tag attached to post
261
+ - Per-subreddit styled — background color, text color, optional emoji prefix
262
+ - Shape: 4pt corner radius, 11pt weight 600 text
263
+ - Padding: 3pt vertical, 6pt horizontal
264
+ - Example tags: "News", "Discussion", "Shitpost", "NSFW", "Spoiler"
265
+ - System flairs:
266
+ - "NSFW": `#F3B200` bg, black text
267
+ - "SPOILER": black bg, white text
268
+ - "OC" (Original Content): `#46D160` bg, white text
269
+
270
+ **Subreddit Pill (Inline `r/subredditname`)**
271
+ - Used inside post cards and anywhere a subreddit is referenced inline
272
+ - No background; subreddit avatar 16pt circular + `r/name` in 12pt weight 600
273
+ - Tap: navigate to subreddit
274
+ - Color: brand red `#FF4500` when top-level header, neutral `#1A1A1B` / `#D7DADC` when inline
275
+
276
+ **Comment Thread Indentation**
277
+ - Each nested reply indents 10pt
278
+ - A 2pt wide vertical line on the leading edge of nested replies in `#EDEFF1` / `#343536`
279
+ - Lines are continuous — when you scroll down the reply chain, the line follows
280
+ - Collapse on tap: `[-]` → `[+]` toggles hide sub-thread
281
+
282
+ **Snoo (The Alien Mascot)**
283
+ - Reddit's owl-eyed alien mascot in red-and-orange spacesuit
284
+ - Appears on: empty state illustrations, error 404 pages, splash screen, settings > about
285
+ - Also featured in Snoovatar feature — users design their own Snoo as their profile avatar
286
+
287
+ **Award Icons (Deprecated but still visible)**
288
+ - Pre-2023 awards: Silver, Gold, Platinum — shown as small icons next to post/comment titles
289
+ - Still visible on historical posts even though the feature was removed
290
+ - Icons: 16pt round with metal-colored backgrounds
291
+
292
+ **Media Gallery**
293
+ - When a post has multiple images, render as horizontal swipe gallery with pagination dots at bottom
294
+ - 1-indexed counter in top-right corner: "1/4"
295
+
296
+ **Live Chat Channel**
297
+ - Reddit Chat Channels render as a Discord-like threaded chat with real-time messages
298
+ - Each message: avatar + username (in subreddit accent color) + message body + timestamp
299
+ - "N typing" indicator at bottom
300
+ - Join/Leave affordance
301
+
302
+ ## 5. Layout Principles
303
+
304
+ ### Spacing System
305
+ - Base unit: 4pt
306
+ - Scale: 4, 8, 10, 12, 16, 20, 24, 32, 44, 72
307
+ - Standard margin: 16pt horizontal on screens
308
+ - Card padding: 12pt internal
309
+ - Card-to-card gap: 8pt
310
+ - Comment indentation step: 10pt per reply level
311
+
312
+ ### Grid & Container
313
+ - Feed: single column, full-width cards with 16pt side margins (or 0pt full-bleed in classic view)
314
+ - Card content: left-aligned; vote column left, actions right
315
+ - Chat: full-width single column with 16pt padding
316
+
317
+ ### Whitespace Philosophy
318
+ - **Inside cards**: generous 12-16pt padding
319
+ - **Between cards**: minimal 8pt gap — the canvas color acts as a visual break
320
+ - **Comment thread**: tight vertical density (10pt between comments) to fit long discussions
321
+ - **Post detail**: comfortable reading density (16pt gaps between body sections)
322
+
323
+ ### Border Radius Scale
324
+ - Square (0pt): Classic view post cards, dividers
325
+ - Soft (4pt): Flair pills, compact buttons
326
+ - Standard (8pt): Media corners in classic view, code blocks
327
+ - Card (16pt): New card-style post cards, subreddit banner
328
+ - Pill (500pt / 24pt): Primary CTAs, Join button, search bar
329
+ - Full Circle (50%): Avatars, subreddit icons, up/down arrows on vote
330
+
331
+ ## 6. Depth & Elevation
332
+
333
+ | Level | Treatment | Use |
334
+ |-------|-----------|-----|
335
+ | Flat (0) | No shadow | Cards sitting on canvas (card radius provides visual separation) |
336
+ | Hover (1) | `rgba(0,0,0,0.04)` background tint | Pressed card state |
337
+ | Floating (2) | `rgba(0,0,0,0.08) 0 2px 8px` | Floating "Back to top" button, overlay toast |
338
+ | Sheet (3) | `rgba(0,0,0,0.2) 0 -12px 32px` | Bottom action sheet (sort, filter, more) |
339
+ | Modal Overlay | `rgba(0,0,0,0.5)` backdrop | Modal dim |
340
+
341
+ **Shadow Philosophy**: Reddit is largely flat. Cards sit on the canvas with either a corner radius or a hairline divider — not shadows. Only genuinely floating UI (the "back to top" pill, bottom-sheet actions) has shadows.
342
+
343
+ ### Motion
344
+ - **Vote tap**: Arrow icon scales 1.0 → 1.25 → 1.0 spring, color cross-fades, karma number tick animates + haptic selection
345
+ - **Card tap**: 200ms ease-out background tint to `#F2F3F5` / `#343536`
346
+ - **Navigate to detail**: Native iOS push transition; card stays in place at feed top
347
+ - **Comment expand/collapse**: 60fps height animation, 200ms ease
348
+ - **Join button**: "Join" → "Joined" with checkmark scale bounce + green flash
349
+ - **Media gallery swipe**: Horizontal page gesture with spring snap
350
+ - **Pull-to-refresh**: Red Snoo alien icon spins as refresh indicator
351
+ - **Infinite scroll**: New cards fade + slide up 8pt over 150ms
352
+ - **Chat message arrival**: Slide up from bottom + opacity fade over 200ms
353
+
354
+ ## 7. Do's and Don'ts
355
+
356
+ ### Do
357
+ - Use `#FF4500` (Reddit Orange-Red) as the single brand accent — logo, key CTAs
358
+ - Use the semantic vote pair: `#FF8717` upvote orange and `#7193FF` downvote blue-purple
359
+ - Show the vote column on EVERY post and comment — it's the brand
360
+ - Keep cards flat — use corner radius (16pt in card view, 0pt in classic) not shadows
361
+ - Render Markdown inline: bold, italic, quote, code, link
362
+ - Support subreddit accent color customization — the Join button should tint to community color
363
+ - Use circular subreddit avatars — `r/subredditname` pill next to avatar
364
+ - Indent comment replies 10pt per level with a 2pt vertical rule on the leading edge
365
+ - Use Reddit Sans (fallback Noto Sans, then SF Pro) at 14pt body / 18pt title / 12pt meta
366
+ - Offer both card view (16pt corners) and classic view (0pt full-bleed) as a user preference
367
+
368
+ ### Don't
369
+ - Don't flip the semantic vote colors — upvote MUST be warm (orange) and downvote cool (blue-purple)
370
+ - Don't put the vote column anywhere other than left of post content (or below media in media-first)
371
+ - Don't use drop shadows on post cards — Reddit is flat
372
+ - Don't skip the subreddit `r/name` pill — every post must identify its community
373
+ - Don't use brand red `#FF4500` for the upvote — that's `#FF8717` orange
374
+ - Don't use blue `#0079D3` as an accent — that's the LINK color, not the brand color
375
+ - Don't round subreddit avatars to anything other than circles
376
+ - Don't compress the metadata row — `r/subreddit • timestamp • comments` should be readable
377
+ - Don't use Discord-style role colors for usernames — Reddit keeps usernames neutral
378
+ - Don't animate vote state changes too aggressively — a subtle bounce + color swap is enough
379
+
380
+ ## 8. Responsive Behavior
381
+
382
+ ### Device Sizes
383
+ | Device | Width | Key Changes |
384
+ |--------|-------|-------------|
385
+ | iPhone SE (3rd gen) | 375pt | Vote column collapses to 32pt; title clamp 2 lines |
386
+ | iPhone 13/14/15 | 390pt | Standard 44pt vote column; 3-line title clamp |
387
+ | iPhone 15/16 Pro | 393pt | Dynamic Island accommodated in nav |
388
+ | iPhone 15/16 Pro Max | 430pt | Standard layout with slightly wider cards |
389
+ | iPad | 768pt+ | Two-column feed in landscape |
390
+
391
+ ### Dynamic Type
392
+ - Post title, body, comment body: respect Dynamic Type
393
+ - Karma number, tab labels, flair pills, vote arrow icons: fixed size
394
+ - Timestamp / metadata: respects Dynamic Type but capped at 14pt
395
+
396
+ ### Orientation
397
+ - Feed, thread, chat: portrait-locked on iPhone (except video posts in landscape)
398
+ - Image / video viewer: rotates to landscape
399
+ - iPad: all orientations; feed becomes 2-column in landscape
400
+
401
+ ### Touch Targets
402
+ - Vote arrows: 36pt × 36pt each, stacked
403
+ - Card tap: full card surface
404
+ - Action row icons: 44pt hit area
405
+ - Subreddit pill tap: hit area expands around pill
406
+ - Comment collapse arrow: 32pt hit area
407
+
408
+ ### Safe Area Handling
409
+ - Top: nav bar respects safe area; transparent over banner scrolls into solid
410
+ - Bottom: tab bar respects home indicator; chat compose bar floats above safe area
411
+ - Sides: 16pt content insets
412
+
413
+ ## 9. Agent Prompt Guide
414
+
415
+ ### Quick Color Reference
416
+ - Reddit Orange-Red: `#FF4500`
417
+ - Reddit Red (alert): `#FF585B`
418
+ - Upvote Orange: `#FF8717`
419
+ - Upvote Dark Variant: `#FFAA66`
420
+ - Downvote Blue-Purple (light): `#7193FF`
421
+ - Downvote Blue-Purple (dark): `#9494FF`
422
+ - Vote Inactive (light): `#878A8C`
423
+ - Vote Inactive (dark): `#818384`
424
+ - Canvas (new light): `#F6F7F8`
425
+ - Canvas (classic light): `#DAE0E6`
426
+ - Canvas (dark): `#1A1A1B`
427
+ - Card surface (light): `#FFFFFF`
428
+ - Card surface (dark): `#272729`
429
+ - Surface 2 (light): `#F2F3F5`
430
+ - Surface 2 (dark): `#343536`
431
+ - Divider (light): `#EDEFF1`
432
+ - Divider (dark): `#343536`
433
+ - Text primary (light): `#1A1A1B`
434
+ - Text secondary (light): `#7C7C7C`
435
+ - Text primary (dark): `#D7DADC`
436
+ - Text secondary (dark): `#818384`
437
+ - Link: `#0079D3`
438
+ - Default subreddit accent: `#0079D3`
439
+ - Gold Award / Premium: `#FFB000`
440
+ - Success green: `#46D160`
441
+
442
+ ### Example Component Prompts
443
+ - "Create a SwiftUI Reddit vote column: 44pt wide, 72pt tall stack. Top: up-chevron icon 18pt (gray #878A8C default, orange #FF8717 when active). Center: karma number in Reddit Sans 12pt weight 700, centered, color matching active state. Bottom: down-chevron icon 18pt (gray default, #7193FF blue-purple when active). Tap: scale 1.0 → 1.25 → 1.0 spring on icon + selection haptic + number tick increment. Three states: neutral, up (orange), down (blue-purple)."
444
+ - "Build a Reddit post card: background #FFFFFF light / #272729 dark, 16pt corner radius, 12pt internal padding. Top row: 20pt circular subreddit avatar + `r/AnimalCrossing` pill in 12pt weight 600 + '• 2h ago • 125 comments' in 12pt #7C7C7C. Next: post title in Reddit Sans 18pt weight 600 #1A1A1B, max 3 lines. Optional flair row: horizontal pills with per-subreddit colors. Image preview if available, 16pt corners. Bottom action row: vote column left + (comments icon + count, share icon, save icon, more-ellipsis) right at 18pt each #878A8C."
445
+ - "Design the Reddit comment thread row: leading indentation bars at 10pt per reply level, 2pt wide #EDEFF1. Header row: 20pt avatar (optional) + 'u/username' 12pt weight 500 + '• 2h' timestamp 12pt #7C7C7C + '• 234' karma 12pt weight 500. Body text in Reddit Sans 14pt weight 400 line-height 1.5. Support markdown inline. Trailing action row: reply icon + vote arrows + share + more. Collapse indicator `[-]` / `[+]` at leading edge toggles sub-thread visibility."
446
+ - "Create the subreddit banner detail: full-width banner image (120-180pt tall) or solid accent color. Circular subreddit avatar (72pt) with white 3pt border overlapping the bottom edge by 36pt. Below: subreddit name in Reddit Sans 22pt weight 700, member count '142k members' in 12pt #7C7C7C. Top-right of banner: Join pill in subreddit accent color (#FF4500 default, or custom like #0079D3), white text 14pt weight 600, pill 24pt corner radius — morphs to 'Joined' with checkmark prefix after tap."
447
+ - "Build a Reddit flair pill: rectangular tag, 4pt corner radius, 3pt vertical × 6pt horizontal padding. Reddit Sans 11pt weight 600. Per-subreddit styled — backgrounds and text colors configurable. System flairs: 'NSFW' in `#F3B200` bg + black text, 'SPOILER' in black bg + white text, 'OC' in `#46D160` bg + white text."
448
+ - "Design the Reddit bottom tab bar: 5 tabs — Home, Communities, Create (center, +-icon styled differently), Chat, Inbox. Icons 22pt. Active color: #FF4500 (brand) or #1A1A1B (neutral — both in use). Inactive: #878A8C. Labels: Reddit Sans 11pt weight 500. Background: solid #FFFFFF light / #1A1A1B dark, no blur. Red `#FF585B` badge pill on Inbox tab when unread messages exist."
449
+
450
+ ### Iteration Guide
451
+ 1. The vote column is non-negotiable — up-chevron + karma number + down-chevron appears on EVERY post and comment
452
+ 2. Upvote is ORANGE `#FF8717` and downvote is BLUE-PURPLE `#7193FF` — these are complementary and semantic (warm vs cool)
453
+ 3. Reddit brand red `#FF4500` is the BRAND color (logo, primary CTA) — it is NOT the upvote color. Do not confuse.
454
+ 4. Cards are FLAT — use 16pt corner radius in card view, 0pt full-bleed in classic view, NEVER drop shadows
455
+ 5. Canvas is `#F6F7F8` (new light) / `#1A1A1B` (dark); cards sit on `#FFFFFF` light / `#272729` dark
456
+ 6. Subreddit accent color is configurable per community — the Join button and sidebar tint adapt
457
+ 7. Comment threads indent 10pt per reply with a 2pt `#EDEFF1` / `#343536` vertical rule on the leading edge
458
+ 8. Typography: Reddit Sans (fallback Noto Sans, then SF Pro). 14pt body / 18pt title / 12pt meta. Weights 400, 500, 600, 700.
459
+ 9. Flair pills are 4pt radius rectangles with per-subreddit or per-system color; NSFW `#F3B200`, Spoiler black, OC green
460
+ 10. Render full Markdown inline in post body and comments — bold, italic, quote, code, link