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,451 @@
1
+ # Design System Inspiration of Discord (iOS)
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ Discord's iOS app is a dark-first community UI built around one load-bearing color: Blurple (`#5865F2`). Open the app and you're dropped into a three-pane architecture — a leftmost server rail of rounded-square server icons, a channel list in the middle, and a message thread on the right — compressed into a mobile form factor via horizontal swipe navigation. The canvas is a near-black gradient of grays: the server rail at `#1E1F22`, the channel list at `#2B2D31`, the chat area at `#313338`. These three adjacent grays are so carefully tuned that they read as sibling surfaces rather than competing panels. The whole app feels like a gaming tool: purpose-built, dense, slightly nerdy, unapologetically dark.
6
+
7
+ The mood is community clubhouse, not broadcast platform. Presence is everywhere — a green (`#23A55A`) dot next to online users, yellow (`#F0B232`) for idle, red (`#F23F43`) for do-not-disturb, gray for offline. Role colors tint usernames throughout chat (admins in red, mods in green, VIPs in hot pink — whatever the server owner configures). Nitro-subscribed users get gradient avatars and animated badges. Custom emoji reactions flood threads during peak moments. The density of visual signals — per-user color, per-role hue, per-channel pings, per-user presence — means the UI has to stay chromatically restrained in its own chrome so server content can scream.
8
+
9
+ Typography is gg sans (Discord's proprietary font, replacing Whitney in 2023) for titles and UI, with SF Pro Text as the iOS fallback when gg sans isn't loaded. The type scale is compact — 14-20pt working range — because Discord expects many messages per screen. The single moment of chromatic excess is the Nitro Gradient: a purple-to-pink gradient (`#5865F2 → #EB459E`) used on Nitro badges, Boost badges, and the occasional promo banner. Everything else stays in the gray-and-blurple lane.
10
+
11
+ **Key Characteristics:**
12
+ - Dark-first canvas — Discord exists in dark mode by default, with carefully tuned gray siblings (`#1E1F22` / `#2B2D31` / `#313338`)
13
+ - Blurple (`#5865F2`) as the single brand accent — primary CTAs, active states, mentions
14
+ - Left server rail of 48pt rounded-square server icons with active-indicator bar
15
+ - Three-pane architecture: Server rail → Channel list → Chat — compressed via horizontal swipe on mobile
16
+ - Role colors on usernames throughout chat — any hex value, user-per-server custom
17
+ - Presence dots (green/yellow/red/gray) on every avatar — always visible
18
+ - Gradient avatars + Nitro badges for premium users
19
+ - Voice channels as first-class UI — tap to join, speaking ring pulses on active speakers
20
+ - Custom emoji + animated emoji reactions — heavy use, many per message
21
+ - Mention pings with red unread badge — hierarchy: @mention > role > unread
22
+ - Spoiler tags, code blocks, Markdown formatting rendered inline
23
+ - gg sans (proprietary, 2023+) with SF Pro fallback; compact 14-20pt working range
24
+
25
+ ## 2. Color Palette & Roles
26
+
27
+ ### Primary
28
+ - **Blurple** (`#5865F2`): THE brand color — primary CTAs, active send button, active tab indicator, mention highlight, link color, online-user voice-channel bubble.
29
+ - **Blurple Hover** (`#4752C4`): Pressed / hovered state for blurple CTAs.
30
+ - **Blurple Light** (`#7289DA`): Legacy brand blurple (pre-2021), still seen on occasional assets.
31
+ - **Nitro Gradient** (`#5865F2 → #EB459E`): Diagonal gradient used on Nitro badges, Boost icons, promo ribbons.
32
+
33
+ ### Canvas & Surfaces (Dark — Default)
34
+ The three-pane gray system is Discord's signature surface language.
35
+ - **Server Rail (`#1E1F22`)**: The leftmost darkest pane — holds the rounded-square server icons.
36
+ - **Channel List Pane (`#2B2D31`)**: The middle pane — server name + channel list + member list preview.
37
+ - **Chat Canvas (`#313338`)**: The right pane where messages live. Slightly lighter so it reads as "the document".
38
+ - **Input Bar / Surface 2 (`#383A40`)**: Compose bar background, hovered channel row.
39
+ - **Elevated Modal (`#2B2D31`)**: Modal and popover surfaces match the channel-list pane tone.
40
+ - **Divider (`#3F4147`)**: Hairline separators.
41
+
42
+ ### Canvas & Surfaces (Light — Rarely Used)
43
+ Discord does ship a light mode but ~80% of users stay on dark. Light mode is a straightforward inversion:
44
+ - **Light Canvas** (`#FFFFFF`)
45
+ - **Light Surface 1** (`#F2F3F5`)
46
+ - **Light Surface 2** (`#EBEDEF`)
47
+ - **Light Divider** (`#E3E5E8`)
48
+
49
+ ### Text
50
+ - **Text Primary** (`#F2F3F5`): Message text, usernames (default, unroled), titles.
51
+ - **Text Secondary** (`#B5BAC1`): Usernames in member list, metadata, small labels.
52
+ - **Text Muted** (`#949BA4`): Timestamps, "was typing", inactive labels.
53
+ - **Text Link** (`#00A8FC`): Hyperlinks inside messages (distinct blue from Blurple).
54
+ - **Text Disabled** (`#5D6069`): Disabled labels, section subtitles.
55
+
56
+ ### Status (Presence Dots)
57
+ - **Online Green** (`#23A55A`): Active users, successful actions.
58
+ - **Idle Yellow** (`#F0B232`): Away / idle status.
59
+ - **DND Red** (`#F23F43`): Do Not Disturb, error states, @mention pings.
60
+ - **Offline Gray** (`#80848E`): Offline or invisible users.
61
+ - **Streaming Purple** (`#593695`): Currently streaming / Go-Live active.
62
+
63
+ ### Role Colors
64
+ Server admins define per-role hex colors — any value is valid. Common defaults in Discord's template system:
65
+ - Admin Red (`#ED4245`), Mod Green (`#57F287`), Booster Pink (`#EB459E`), VIP Gold (`#FEE75C`), Bot Aqua (`#23C1D2`).
66
+ Role color applies to the username in chat and in the right-side member list.
67
+
68
+ ### Semantic
69
+ - **Success** (`#23A55A`): Successful actions, check states.
70
+ - **Warning** (`#F0B232`): Warning banners, voice-disconnect notice.
71
+ - **Danger** (`#F23F43`): Destructive actions, kick, ban, mention ping.
72
+ - **Nitro** (Nitro Gradient): Premium-only features, Nitro badge.
73
+ - **Boost** (Boost Pink `#EB459E`): Server Boost badge, Level 2/3 indicators.
74
+
75
+ ## 3. Typography Rules
76
+
77
+ ### Font Family
78
+ - **Primary (2023+)**: `gg sans` (proprietary, released 2023 to replace Whitney) — geometric sans with generous apertures, optimized for long-form chat scanning.
79
+ - **Previous (2017-2023)**: `Whitney` (Hoefler & Co.) — still seen on some legacy assets.
80
+ - **Monospace**: `gg mono` (2023+) for code blocks; formerly `Consolas`.
81
+ - **Fallback Stack**: `-apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Helvetica Neue', Helvetica, Arial, sans-serif`
82
+ - **CJK**: Falls back to iOS system CJK fonts.
83
+
84
+ ### Hierarchy
85
+
86
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
87
+ |------|------|------|--------|-------------|----------------|-------|
88
+ | Screen Title | gg sans | 20pt | 700 | 1.2 | -0.2pt | "General", server name at top of channel |
89
+ | Channel Name (Active) | gg sans | 16pt | 600 | 1.25 | -0.1pt | "#general" in channel list |
90
+ | Channel Name (Inactive) | gg sans | 16pt | 500 | 1.25 | -0.1pt | Unselected channels |
91
+ | Username | gg sans | 16pt | 600 | 1.2 | -0.1pt | Sender name above message, tinted with role color |
92
+ | Message Body | gg sans | 16pt | 400 | 1.375 | -0.1pt | The actual message text |
93
+ | Timestamp (Inline) | gg sans | 12pt | 500 | 1.2 | 0pt | Next to username in chat |
94
+ | Reply Context | gg sans | 14pt | 400 | 1.25 | -0.1pt | The replied-to message preview |
95
+ | System Message | gg sans | 14pt | 500 | 1.3 | 0pt | "Welcome @user to the server!" joins |
96
+ | Section Label | gg sans | 12pt | 700 | 1.2 | 0.5pt | "ANNOUNCEMENTS" — uppercase tracked |
97
+ | Member List Name | gg sans | 14pt | 500 | 1.2 | -0.1pt | Right-side member list |
98
+ | Button (Primary) | gg sans | 14pt | 500 | 1.0 | 0pt | "Join", "Continue" |
99
+ | Tab Label | gg sans | 10pt | 600 | 1.0 | 0.1pt | Bottom tab labels |
100
+ | Code Block | gg mono | 14pt | 400 | 1.4 | 0pt | Triple-backtick code block |
101
+ | Inline Code | gg mono | 14pt | 400 | 1.0 | 0pt | Backtick-wrapped inline code |
102
+ | Blockquote | gg sans | 16pt | 400 | 1.4 | -0.1pt | `> quote` rendered with leading bar |
103
+
104
+ ### Principles
105
+ - **Compact working range**: Most UI sits at 14-16pt. 20pt is the largest non-display size.
106
+ - **Role colors on usernames**: Per-server username coloring from role assignments — applies in chat and member list.
107
+ - **Weight used sparingly**: 400 for body, 500 for labels, 600 for active states, 700 only on screen titles and section labels.
108
+ - **Markdown inline rendering**: `**bold**`, `*italic*`, `__underline__`, `~~strikethrough~~`, `` `code` ``, `||spoiler||`, `> quote` — all rendered inline by default.
109
+ - **gg mono for code**: Monospace shifts to `gg mono` inside code blocks, inheriting the 14pt / 1.4 line-height.
110
+
111
+ ## 4. Component Stylings
112
+
113
+ ### Buttons
114
+
115
+ **Primary Blurple Button**
116
+ - Shape: Rectangle, 8pt corner radius (or 4pt for compact inline)
117
+ - Background: `#5865F2`
118
+ - Text: white, gg sans 14pt weight 500
119
+ - Padding: 10pt vertical, 16pt horizontal (standard); 8pt / 12pt compact
120
+ - Pressed: `#4752C4` + scale 0.97
121
+ - Used for: "Continue", "Send Friend Request", "Join Voice"
122
+
123
+ **Secondary Button**
124
+ - Background: `#4E5058` (dark gray)
125
+ - Text: white, gg sans 14pt weight 500
126
+ - Pressed: `#6D6F78`
127
+ - Used for: "Cancel", "Maybe Later"
128
+
129
+ **Destructive Button**
130
+ - Background: `#DA373C`
131
+ - Text: white, same typography as primary
132
+ - Used for: "Leave Server", "Delete Message", "Kick User"
133
+
134
+ **Tertiary / Ghost Button**
135
+ - Background: transparent
136
+ - Text: `#5865F2` (Blurple) for affirmative, `#F23F43` for destructive
137
+ - No border, no fill — text link style
138
+
139
+ **Icon Actions (Pin, Thread, Reply, Reaction, Share)**
140
+ - Size: 20pt glyph, 36pt hit area
141
+ - Default: `#B5BAC1`
142
+ - Hover/active: `#F2F3F5`
143
+ - Active role (e.g. pinned): `#5865F2`
144
+
145
+ **Send Button (Compose Bar)**
146
+ - Shape: Icon only (no container) when message short; becomes a `#5865F2` circle 32pt when focused
147
+ - Paper-plane icon 20pt `#5865F2` or white (on filled circle)
148
+
149
+ ### Cards & Containers
150
+
151
+ **Server Icon (Left Rail)**
152
+ - Shape: Rounded square, 16pt corner radius default; transitions to 12pt corner radius on hover/active (the "squircle-to-squircle-er" effect)
153
+ - Size: 48pt × 48pt
154
+ - Padding between icons: 8pt vertical
155
+ - Active indicator: 4pt × 40pt vertical bar on the leading edge, white fill, 2pt from icon
156
+ - Unread indicator: 8pt × 8pt white dot on leading edge (shorter than active bar)
157
+ - Mention indicator: same position as unread dot, `#F23F43` red, with white digit count
158
+ - Custom server image OR initials (first 1-2 letters of server name) on Blurple gradient default background
159
+ - Folder grouping: servers can nest inside folders — folder icon is a 2x2 mini-grid of server icons
160
+
161
+ **Channel List Row**
162
+ - Height: 36pt
163
+ - Structure: leading `#` (text channel), `🔊` (voice), `📢` (announcement), or custom icon → channel name → trailing pin icon + member count (voice only)
164
+ - Background: transparent default, `#404249` on hover, `#35373C` on active
165
+ - Active channel: background `#404249` + white name + vertical leading accent bar `#5865F2` 3pt
166
+ - Unread: channel name in white + a small white dot at the far-left
167
+ - Mentioned: channel name in white + red "@" pill with count trailing
168
+
169
+ **Message Row**
170
+ - Layout: 40pt avatar (leading, 16pt inset) → 12pt gap → (username + timestamp inline on first line; message body below)
171
+ - Grouping: sequential messages from same user within 5 min skip the avatar + username and just indent
172
+ - Padding: 4pt vertical (grouped) / 16pt vertical (first of group)
173
+ - Background: transparent default, `#2E3035` on hover (desktop — mobile long-press instead)
174
+ - Reply quote: nested above message, with leading vertical bar in that sender's role color
175
+
176
+ **Voice Channel (Active)**
177
+ - Channel row expands to show active participants
178
+ - Each participant: 24pt avatar + name in role color + speaking ring
179
+ - Speaking ring: 2pt green `#23A55A` ring around avatar, pulses scale 1.0 → 1.1 when mic is active
180
+ - Join button: "Join Voice" pill with `#23A55A` background, white text
181
+ - Already joined: green `#23A55A` phone icon indicator
182
+
183
+ **Member List Row (Right Pane)**
184
+ - Height: 44pt
185
+ - Structure: 32pt avatar with presence dot (8pt, position bottom-right) → username in role color → status text 12pt muted below
186
+ - Presence dot: bottom-right overlay, 2pt border matching canvas color
187
+
188
+ ### Navigation
189
+
190
+ **Bottom Tab Bar (Mobile)**
191
+ - Height: 50pt + safe area
192
+ - Tabs: Servers (default), Messages (DMs), Notifications, You (profile)
193
+ - Icon size: 22pt
194
+ - Active color: `#F2F3F5` (white)
195
+ - Inactive: `#949BA4`
196
+ - Labels: gg sans 10pt weight 600
197
+ - Background: `#1E1F22` (matches server rail)
198
+
199
+ **Server Rail Navigation (Mobile)**
200
+ On mobile, the "server rail" is a left-edge drawer — swipe right from any chat to reveal the rail + channel list. Swipe left to close.
201
+ - Drawer width: ~75% of screen
202
+ - Left edge: 72pt server rail with vertical scroll
203
+ - Right side of drawer: 250pt channel list
204
+ - Tap a server icon: channel list re-populates for that server
205
+ - Tap a channel: drawer closes, chat loads
206
+
207
+ **Chat Top Nav**
208
+ - Height: 48pt + safe area
209
+ - Leading: hamburger / server-rail toggle + channel icon + channel name
210
+ - Trailing: pinned-messages icon + member-list icon + search icon
211
+ - Background: `#1E1F22` with 1pt bottom divider `#3F4147`
212
+
213
+ ### Input Fields
214
+
215
+ **Compose Bar**
216
+ - Height: ~52pt min, grows multiline
217
+ - Background: `#383A40` (Surface 2) — intentionally 1 step lighter than chat canvas
218
+ - Corner radius: 8pt
219
+ - Leading + icon (attach file / media — 24pt `#B5BAC1`)
220
+ - Trailing: gift icon + GIF picker + sticker picker + emoji picker (each 22pt)
221
+ - Send icon: paper-plane 20pt `#5865F2` when text present, gray when empty
222
+ - Placeholder: "Message #general", `#949BA4`
223
+ - Focus: subtle `#5865F2` glow ring (2pt)
224
+
225
+ **Search Bar**
226
+ - Background: `#1E1F22`
227
+ - Corner radius: 8pt
228
+ - Height: 36pt
229
+ - Leading magnifyingglass `#B5BAC1`
230
+ - Placeholder: "Search", `#949BA4`
231
+
232
+ ### Distinctive Components
233
+
234
+ **Server Rail (The Defining Discord Component)**
235
+ The leftmost pane of rounded-square server icons is THE visual signature of Discord.
236
+ - Background: `#1E1F22`
237
+ - Width: 72pt on mobile drawer (or ~75pt on iPad)
238
+ - Structure:
239
+ - Home button at top: 48pt Discord logo icon, `#5865F2` gradient background when active
240
+ - Horizontal divider below Home: 32pt line `#3F4147`
241
+ - Server icons scroll vertically, 48pt × 48pt with 8pt gaps
242
+ - "+" add server button at bottom: 48pt circle with `#23A55A` green plus icon
243
+ - Explore Servers button below +: 48pt circle with compass icon
244
+ - Active server: 4pt × 40pt white vertical accent bar on left edge, and icon corner radius morphs from 16pt to 12pt (squircle effect)
245
+ - Unread server: shorter 4pt × 8pt white dot
246
+ - Mention pill: trailing `#F23F43` circle with number count
247
+
248
+ **Gradient Avatar (Nitro)**
249
+ Nitro subscribers can have animated or gradient borders on their avatar.
250
+ - Gradient ring: 2-3pt wide, animating hue rotation over ~8s
251
+ - Default Nitro gradient: `#5865F2 → #EB459E → #FBB848` diagonal
252
+ - Non-Nitro avatar: solid circular border matching role color (or transparent)
253
+
254
+ **Presence Dot**
255
+ - Size: 10pt diameter
256
+ - Position: bottom-right of avatar
257
+ - Border: 2pt solid matching canvas color (so it "punches through" avatar edge)
258
+ - States: `#23A55A` (online), `#F0B232` (idle), `#F23F43` (dnd), `#80848E` (offline), `#593695` (streaming — purple with a TV glyph inside)
259
+
260
+ **Role-Colored Username**
261
+ Username text in chat and member list inherits the user's highest-priority role color. This is applied per-message, per-server.
262
+ - Implementation: tint `.foregroundStyle` based on user's top role
263
+ - Fallback: `#F2F3F5` if no role or color is white
264
+
265
+ **Emoji Reaction Chip**
266
+ - Small pill below a message showing which reactions have been added
267
+ - Pill background: `#2B2D31` default, `#404249` hover, and `#3B4EAF` when YOU reacted (Blurple tint)
268
+ - Pill border: 1pt, same color tint scheme
269
+ - Structure: 20pt emoji + count 13pt weight 500
270
+ - Tap to add/remove your reaction; long-press to see who reacted
271
+ - "+" add-reaction button at end of row when space permits
272
+
273
+ **Mention Ping Badge**
274
+ - Red `#F23F43` circle on channel icons, server icons, and tab bar
275
+ - White digit count inside at 11pt weight 700
276
+ - Max display: "99+" for counts over 99
277
+
278
+ **Spoiler Tag**
279
+ - Inline `||text||` renders as a dark blurred pill; tap to reveal
280
+ - Blurred: `#2B2D31` fill with blur filter
281
+ - Revealed: text in `#F2F3F5` with no background
282
+
283
+ **Code Block**
284
+ - Triple-backtick (``` ```) renders full-width block with:
285
+ - Background `#2B2D31`
286
+ - 1pt border `#3F4147`
287
+ - 8pt corner radius
288
+ - Padding 12pt
289
+ - Font gg mono 14pt
290
+ - Language label (optional) top-right in `#949BA4`
291
+ - Syntax highlighting for common languages (JS, Python, etc.)
292
+
293
+ **Slash Command Picker**
294
+ - When user types `/` in compose bar, a popover rises with available commands
295
+ - Background: `#2B2D31`, 8pt corner radius, 12pt blur shadow
296
+ - Row: command name + description + example
297
+ - Keyboard-navigable (arrow up/down)
298
+
299
+ ## 5. Layout Principles
300
+
301
+ ### Spacing System
302
+ - Base unit: 4pt
303
+ - Scale: 4, 8, 12, 16, 20, 24, 32, 40, 48, 56, 72
304
+ - Message row gap: 4pt (grouped) / 16pt (ungrouped)
305
+ - Server icon gap: 8pt
306
+ - Standard horizontal margin in chat: 16pt
307
+
308
+ ### Grid & Container
309
+ - Mobile: single active pane (server rail / channel list / chat) swaps via swipe
310
+ - iPad: two or three panes visible simultaneously in landscape; single pane in portrait
311
+ - Chat message max-width: full width of pane (no constraint — messages wrap naturally)
312
+ - Member list pane: 240pt fixed width
313
+
314
+ ### Whitespace Philosophy
315
+ - **Dense by design**: This is a chat app where users read hundreds of messages. Padding is tight — 4pt vertical on grouped messages, 16pt horizontal between panes.
316
+ - **Surface siblings**: The three grays (`#1E1F22`, `#2B2D31`, `#313338`) are deliberately close-valued so they read as related surfaces. Do not exaggerate the contrast.
317
+ - **Avatar-gutter standard**: The 40pt avatar + 12pt gutter is the message-row alignment grid — all attached content (reply quotes, embeds, reactions) aligns to the 52pt inset.
318
+
319
+ ### Border Radius Scale
320
+ - Square (0pt): Occasional divider rails
321
+ - Soft (4pt): Inline code, compact buttons
322
+ - Standard (8pt): Buttons, input fields, modals, code blocks
323
+ - Card (12pt): Active server icons (squircle transition)
324
+ - Server Icon Default (16pt): Rounded square server icons
325
+ - Full Circle (50%): Avatars, presence dots, send-button circle, voice ring
326
+
327
+ ## 6. Depth & Elevation
328
+
329
+ | Level | Treatment | Use |
330
+ |-------|-----------|-----|
331
+ | Flat (0) | No shadow | Chat messages, channel list rows |
332
+ | Subtle Hover (1) | `rgba(0,0,0,0.15)` background tint | Message row hover |
333
+ | Modal (2) | `rgba(0,0,0,0.4) 0 8px 24px` | Modals, slash command popover |
334
+ | Sheet (3) | `rgba(0,0,0,0.5) 0 -16px 48px` | Bottom sheets, context menus |
335
+ | Modal Overlay | `rgba(0,0,0,0.6)` backdrop blur 20 | Modal scrim, full-screen overlay |
336
+
337
+ **Shadow Philosophy**: Discord is aggressively flat. The three-gray surface system provides visual hierarchy; shadows are reserved for genuinely floating elements (modals, popovers, bottom sheets). Server icons have no shadow. Messages have no shadow. The compose bar has no shadow. Only the context menu and modal popovers lift visibly.
338
+
339
+ ### Motion
340
+ - **Server icon tap**: Scale 0.92 → 1.0 spring, corner radius morphs 16pt → 12pt (squircle effect)
341
+ - **Active indicator bar**: Slides vertically from previous position to new on server switch (200ms spring)
342
+ - **Speaking ring**: 2pt green ring around avatar, scales 1.0 → 1.15 → 1.0 pulse synced to audio amplitude
343
+ - **Message arrival**: Slides up 8pt with opacity fade-in (150ms)
344
+ - **Reaction add**: Chip scales 1.0 → 1.2 → 1.0 bounce with soft haptic
345
+ - **Drawer open (server rail swipe)**: 60fps pan with rubber-band resistance past edge
346
+ - **Gradient avatar animation**: 8s hue rotation loop (only for Nitro)
347
+ - **Typing indicator**: Three dots animating staggered opacity (300ms cycle each)
348
+ - **Spoiler reveal**: 200ms fade from blur to clear
349
+
350
+ ## 7. Do's and Don'ts
351
+
352
+ ### Do
353
+ - Use the three-gray surface system (`#1E1F22` rail → `#2B2D31` list → `#313338` chat) — the adjacency is the brand
354
+ - Use Blurple `#5865F2` ONLY as primary accent (CTAs, mentions, active states) — not decoratively
355
+ - Render server icons as 48pt rounded squares with 16pt corner radius default, 12pt on active
356
+ - Show the 4pt × 40pt white active-indicator bar on the leading edge of the selected server
357
+ - Use presence dots (green/yellow/red/gray) on every user avatar — always visible
358
+ - Apply role colors to usernames in chat — this is core to Discord's community identity
359
+ - Support full Markdown inline: bold, italic, underline, strikethrough, code, spoiler, quote
360
+ - Use gg sans (or SF Pro fallback) — compact 14-16pt working range
361
+ - Implement horizontal-swipe navigation between server rail / channel list / chat on mobile
362
+ - Show mention pings as red `#F23F43` badges with count — priority over plain unread dots
363
+
364
+ ### Don't
365
+ - Don't use pure black canvas — Discord's dark is a specific gray system, not `#000000`
366
+ - Don't exaggerate the contrast between the three grays — they should feel sibling
367
+ - Don't add decorative shadows on messages or server icons — the app is flat
368
+ - Don't use Blurple as a body text color — it's structural, not typographic
369
+ - Don't use SF Symbols for channel icons — Discord has proprietary `#` / `🔊` / `📢` glyphs
370
+ - Don't use tab-bar style navigation for channels — Discord uses a side rail + list, not a tab bar
371
+ - Don't round server icons to full circles — the SQUARE with rounded corners is the brand
372
+ - Don't skip the presence dot — status visibility is core
373
+ - Don't use heavy-weight body text — 400 for body, 500 for labels, 600 for active
374
+ - Don't forget the squircle morph (16pt → 12pt) when a server icon becomes active
375
+
376
+ ## 8. Responsive Behavior
377
+
378
+ ### Device Sizes
379
+ | Device | Width | Key Changes |
380
+ |--------|-------|-------------|
381
+ | iPhone SE (3rd gen) | 375pt | Server rail drawer takes 85% of width; member list hidden |
382
+ | iPhone 13/14/15 | 390pt | Standard drawer at 75% width |
383
+ | iPhone 15/16 Pro | 393pt | Dynamic Island accommodated in nav |
384
+ | iPhone 15/16 Pro Max | 430pt | Drawer at 70% width |
385
+ | iPad | 768pt+ | Three panes visible in landscape: rail 72pt, channel list 240pt, chat flex-1 |
386
+
387
+ ### Dynamic Type
388
+ - Message body, username, channel name: respect Dynamic Type scaling
389
+ - Timestamps, tab labels, presence dot size: fixed
390
+ - Code blocks: respect Dynamic Type but capped at 18pt
391
+
392
+ ### Orientation
393
+ - Mobile portrait: single pane visible; swipe to switch
394
+ - Mobile landscape: two panes visible (channel list + chat)
395
+ - iPad: all orientations supported; three panes in landscape
396
+
397
+ ### Touch Targets
398
+ - Server icon: 48pt × 48pt — generous enough
399
+ - Channel row: 36pt height
400
+ - Send icon: 36pt hit area
401
+ - Avatar tap in chat: 40pt + 8pt hitSlop = 48pt effective
402
+ - Reaction chip: 36pt hit area
403
+
404
+ ### Safe Area Handling
405
+ - Top: safe area honored; Dynamic Island fits into the `#1E1F22` nav bar
406
+ - Bottom: tab bar and compose bar respect home indicator
407
+ - Side: server-rail drawer starts beyond safe area, slides in over content
408
+
409
+ ## 9. Agent Prompt Guide
410
+
411
+ ### Quick Color Reference
412
+ - Blurple: `#5865F2`
413
+ - Blurple Pressed: `#4752C4`
414
+ - Server Rail: `#1E1F22`
415
+ - Channel List: `#2B2D31`
416
+ - Chat Canvas: `#313338`
417
+ - Compose Bar / Surface 2: `#383A40`
418
+ - Divider: `#3F4147`
419
+ - Text Primary: `#F2F3F5`
420
+ - Text Secondary: `#B5BAC1`
421
+ - Text Muted: `#949BA4`
422
+ - Text Disabled: `#5D6069`
423
+ - Link: `#00A8FC`
424
+ - Online Green: `#23A55A`
425
+ - Idle Yellow: `#F0B232`
426
+ - DND Red: `#F23F43`
427
+ - Offline Gray: `#80848E`
428
+ - Streaming Purple: `#593695`
429
+ - Destructive Red: `#DA373C`
430
+ - Boost Pink: `#EB459E`
431
+ - Nitro Gradient: `#5865F2 → #EB459E`
432
+
433
+ ### Example Component Prompts
434
+ - "Create the Discord server rail: vertical ScrollView, 72pt wide on mobile drawer, background #1E1F22. Top: 48pt home icon in Blurple gradient. 32pt divider below. Then 48pt rounded-square server icons (16pt corner radius default, 12pt when active) with 8pt gaps. Leading edge shows a 4pt × 40pt white active-indicator bar when selected. Mention pill: trailing #F23F43 circle with count. Bottom: 48pt green '+' and compass 'Explore' buttons."
435
+ - "Build a Discord message row: 40pt circular avatar with presence dot (10pt, bottom-right, 2pt canvas-colored border) on leading edge. Username in gg sans 16pt weight 600 tinted in role color (#ED4245 for admin, #57F287 for mod, fallback #F2F3F5), with inline 12pt weight 500 #949BA4 timestamp. Message body below in gg sans 16pt weight 400 #F2F3F5 at 1.375 line height. Support inline Markdown: bold, italic, spoiler (||text||), code (`text`). Hover: background #2E3035."
436
+ - "Design the Discord compose bar: full-width pill, background #383A40 (one step lighter than chat canvas #313338), 8pt corner radius. Leading: + attach icon 24pt #B5BAC1. Multiline TextField with placeholder 'Message #general' at #949BA4. Trailing cluster: gift, GIF, sticker, emoji icons (22pt each, #B5BAC1). Send paper-plane 20pt: #5865F2 when text present, gray when empty. On focus: 2pt #5865F2 glow ring."
437
+ - "Create a voice channel active row: 36pt row with leading 🔊 icon, channel name in gg sans 16pt weight 500, expands below to show participants. Each participant: 24pt avatar + username in role color + 2pt #23A55A speaking ring that pulses scale 1.0 → 1.15 → 1.0 when mic is hot. Trailing 'Join Voice' pill: #23A55A background, white gg sans 14pt weight 500."
438
+ - "Build a Discord emoji reaction chip row: horizontal scroll of reaction pills below a message. Each pill: 20pt emoji + 13pt count in gg sans weight 500. Background #2B2D31 default, #3B4EAF Blurple-tinted when YOU reacted, 1pt border matching. Pressed: scale 0.95 + soft haptic. Trailing '+ Add Reaction' button when space permits."
439
+ - "Design the Discord mobile bottom tab bar: 4 tabs (Servers, Messages, Notifications, You) with 22pt icons. Active tint #F2F3F5 (white), inactive #949BA4. gg sans 10pt weight 600 labels. Background #1E1F22 (matches server rail). Show #F23F43 red mention pill with white count on Notifications tab when mentions exist."
440
+
441
+ ### Iteration Guide
442
+ 1. Use the three-gray surface system: server rail `#1E1F22` → channel list `#2B2D31` → chat `#313338`. Compose bar is `#383A40` (one step lighter than chat).
443
+ 2. Blurple `#5865F2` is the only brand accent — use for CTAs, mentions, active send button. NOT for decorative borders or body text.
444
+ 3. Server icons are 48pt rounded SQUARES (16pt corner radius), not circles. Active state morphs to 12pt corner radius (the "squircle-er" effect) and shows a 4pt × 40pt white leading indicator bar.
445
+ 4. Presence dots (10pt green/yellow/red/gray) on every avatar, bottom-right, with a 2pt canvas-colored border so they punch through the avatar edge.
446
+ 5. Role-colored usernames in chat — each user gets the hex color of their highest-priority role per server. Implement as dynamic foreground tint.
447
+ 6. Horizontal-swipe navigation on mobile: server rail + channel list as a left drawer; swipe right to open, swipe left to close. NOT a tab bar.
448
+ 7. Render full Markdown inline: bold, italic, underline, strikethrough, code block (gg mono), inline code, spoiler (blurred), quote (leading bar), link.
449
+ 8. Mentions `@user` render as Blurple-tinted pill inline in messages; mention pings show red `#F23F43` badges on channels, servers, and tab bar with count.
450
+ 9. Typography: gg sans proprietary (fallback SF Pro). Compact 14-16pt working range. Weights 400, 500, 600, 700.
451
+ 10. Discord is FLAT — no shadows on messages or icons. Shadows reserved for popovers and modals only.