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,458 @@
1
+ # Design System Inspiration of Telegram (iOS)
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ Telegram's iOS app is a messenger that lets the user's taste dominate the chrome. Out of the box it ships a confident Sky Blue (`#0088CC`) accent over a true-white or pure-black canvas, but the entire color system is a "themeable surface" — users can pick any hex code as an accent, apply custom chat backgrounds, even import community themes with rainbow gradients. That theming flexibility is the brand. A Telegram install in 2026 can look like anything from a corporate blue client to a neon-purple night-theme maximalist setup, and all of it is *still* unmistakably Telegram because the UI rhythm — bubble shape, nav structure, type scale, gesture language — holds steady no matter what color is poured in.
6
+
7
+ The default light experience is a clean white canvas with Sky Blue (`#0088CC` / `#40A7E3`) accents on the send button, the active tab, and the link color. The default dark experience is a crushed near-black (`#212121` or even `#000000` on OLED mode) that maximizes battery life and readability. Where WhatsApp chose a warm cream wallpaper, Telegram chose *emptiness*: chat canvas is a flat color by default. The mood is Russian-tech-maximalist — lots of white space, lots of speed, lots of customization hooks; think Durov-aesthetic where every screen feels engineered rather than designed.
8
+
9
+ Typography is SF Pro on iOS, rendered with Telegram's very particular attention to size hierarchy. Chat bubbles default to 17pt regular; contact names 17pt semibold; timestamps 11pt. But Telegram's real typographic signature is how it renders *expressive content*: animated emoji (Lottie-level vector animations on message-sent triggers), custom sticker packs that auto-scale, syntax-highlighted code blocks in monospace, and message formatting (bold, italic, spoiler, quote, code) applied inline. A Telegram chat is a typographic playground in a way WhatsApp's intentionally is not.
10
+
11
+ **Key Characteristics:**
12
+ - Sky Blue (`#0088CC` / `#40A7E3`) default accent — but **every color is themeable**, including custom user-picked hex
13
+ - True white canvas (`#FFFFFF`) light / crushed black (`#212121` or `#000000` OLED) dark
14
+ - Outgoing bubble (`#2B86FD` blue, default theme) — bubble color is themeable; some themes use gradients
15
+ - Custom chat backgrounds per-chat (gradients, patterns, photos, solid colors)
16
+ - Swipe-from-edge to reply — full-screen iOS-native pan gesture, not a right-swipe on the row
17
+ - Floating mini-player for voice messages and music — pinned across chat navigation
18
+ - Animated emoji + sticker packs (Lottie-style vector animations) that play on send
19
+ - Silent message send (long-press the send button) — a signature Telegram gesture
20
+ - Secret chats with self-destruct timers — visually distinct with a lock icon on the chat header
21
+ - Channel vs Group distinction — broadcast-only channels have "Subscribers" (no reply affordance)
22
+ - Custom Telegram-style outlined icons — NOT SF Symbols everywhere, a proprietary icon vocabulary
23
+ - Up to 2GB file sharing, shown inline as a progress card
24
+ - OLED dark mode (`#000000`) as a toggle option separate from standard dark
25
+
26
+ ## 2. Color Palette & Roles
27
+
28
+ ### Primary (Default Blue Theme)
29
+ - **Telegram Blue** (`#0088CC`): Classic accent — nav bar tint, text links, active tab icon.
30
+ - **Sky Blue** (`#40A7E3`): Lighter accent — selection highlights, toggles ON.
31
+ - **Bubble Blue (Outgoing)** (`#2B86FD`): Outgoing chat bubble fill in the default blue theme.
32
+ - **Deep Blue (Pressed)** (`#0071B0`): Pressed state for primary blue buttons.
33
+
34
+ ### Accent Variants (User-Selectable)
35
+ Telegram lets the user pick any accent color. The UI adapts — every blue surface re-paints to the chosen hex. Common accent palette Telegram offers:
36
+ - Green Mint (`#3FC1B0`), Rose (`#FF5C77`), Orange (`#FB8C4A`), Purple (`#6F7BF7`), Raspberry (`#C9426B`), Cyan (`#2AAFBA`), Yellow (`#FFAC45`).
37
+
38
+ ### Canvas & Surfaces (Light Theme)
39
+ - **Canvas** (`#FFFFFF`): Chat list, settings, chat canvas when no wallpaper set.
40
+ - **Chat Background (Default Blue Wallpaper)** (`#DBE7F4`): Default soft-blue chat wallpaper (though user can set any).
41
+ - **Surface 1** (`#F7F7F7`): Section group background, settings list tint.
42
+ - **Surface 2** (`#EFEFF4`): iOS grouped list background.
43
+ - **Divider** (`#C7C7CC`): Hairline separator (iOS default tint).
44
+
45
+ ### Canvas & Surfaces (Dark Theme — Default)
46
+ - **Canvas (Dark)** (`#212121`): Standard dark canvas — a crushed near-black.
47
+ - **Surface 1 (Dark)** (`#1C1C1C`): Card background, elevated surface.
48
+ - **Surface 2 (Dark)** (`#2C2C2E`): Bottom-sheet, modal, context-menu background.
49
+ - **Divider (Dark)** (`#383838`): Dark-mode hairline separator.
50
+
51
+ ### Canvas & Surfaces (OLED Dark — Optional)
52
+ - **OLED Canvas** (`#000000`): Pure black for OLED battery savings.
53
+ - **OLED Surface** (`#0A0A0A`): Subtle elevation over pure black.
54
+
55
+ ### Chat Bubbles
56
+ - **Outgoing Bubble (Light)** (`#2B86FD`): Default blue theme — bubble background.
57
+ - **Outgoing Bubble Gradient**: Some themes use `#2B86FD → #61B3FF` vertical gradient.
58
+ - **Outgoing Text** (`#FFFFFF`): White text on blue bubble.
59
+ - **Incoming Bubble (Light)** (`#FFFFFF`): White fill with 1pt `#E5E5E5` border.
60
+ - **Incoming Bubble (Dark)** (`#2A2A2A`): Dark-mode incoming fill.
61
+ - **Secret Chat Outgoing** (`#4EA53C` green tint): Secret chat messages are subtly different.
62
+
63
+ ### Text
64
+ - **Text Primary (Light)** (`#000000`): Bubble text, contact names, titles.
65
+ - **Text Secondary (Light)** (`#707579`): Message preview, timestamps, metadata.
66
+ - **Text Tertiary (Light)** (`#A0A6AD`): Placeholder, disabled.
67
+ - **Text Primary (Dark)** (`#FFFFFF`): Dark-mode primary.
68
+ - **Text Secondary (Dark)** (`#8D8E93`): Dark-mode metadata.
69
+
70
+ ### Semantic
71
+ - **Read Receipt Blue** (`#0088CC`): Double check = seen. Color matches accent.
72
+ - **Sent Gray** (`#B1B1B1`): Single check = sent.
73
+ - **Error Red** (`#E53935`): Destructive actions, failed send.
74
+ - **Destructive Red** (`#E35561`): Delete chat, block user, kick member.
75
+ - **Online Green** (`#4DD364`): "Online now" status under contact name.
76
+ - **Verified Blue** (`#0088CC` with check): Verified channels / users.
77
+ - **Premium Purple** (`#AE6FFD → #CE6BFF` gradient): Telegram Premium badge, stars, and special reactions.
78
+
79
+ ### Sender Colors (Group Chats)
80
+ Telegram assigns each sender a color from a 7-color palette for their name in group chats — for scannability. Typical palette:
81
+ - `#FC5C51` (red), `#FA790F` (orange), `#895DD5` (purple), `#0FB297` (green), `#00C1A6` (teal), `#3CA5EC` (blue), `#FF5274` (pink).
82
+
83
+ ### Message States
84
+ - **Unread Divider** (`#B1B1B1` text + `#E5E5E5` line or `#0088CC` accent): Horizontal "Unread messages" line dividing old and new messages in a chat.
85
+
86
+ ## 3. Typography Rules
87
+
88
+ ### Font Family
89
+ - **Primary**: `SF Pro Text` (body) and `SF Pro Display` (titles) — iOS native. Telegram ships no proprietary font in its mobile app.
90
+ - **Fallback Stack**: `-apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif`
91
+ - **Monospace**: `SF Mono` — used in code blocks (triple-backtick Markdown), pre-formatted text.
92
+ - **Emoji**: Apple Color Emoji — Telegram also supports custom emoji packs that render as animated Lottie files inline.
93
+ - **Non-Latin**: Full iOS font substitution; Telegram is heavily used in Cyrillic, Arabic, Persian, CJK.
94
+
95
+ ### Hierarchy
96
+
97
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
98
+ |------|------|------|--------|-------------|----------------|-------|
99
+ | Large Title | SF Pro Display | 34pt | 700 | 1.12 | 0.37pt | "Chats", "Settings" large titles |
100
+ | Screen Title | SF Pro Display | 17pt | 600 | 1.18 | -0.4pt | Nav bar title collapsed state |
101
+ | Contact Name | SF Pro Text | 17pt | 600 | 1.23 | -0.4pt | Chat list, profile titles |
102
+ | Bubble Body | SF Pro Text | 17pt | 400 | 1.29 | -0.4pt | Chat bubble text |
103
+ | Bubble Sender (Group) | SF Pro Text | 14pt | 600 | 1.23 | -0.2pt | Sender name inside bubble (tinted color) |
104
+ | Message Preview | SF Pro Text | 15pt | 400 | 1.33 | -0.2pt | Chat list last message preview |
105
+ | Timestamp (List) | SF Pro Text | 13pt | 400 | 1.2 | 0pt | Chat list time |
106
+ | Timestamp (Bubble) | SF Pro Text | 11pt | 400 | 1.0 | 0pt | In-bubble timestamp |
107
+ | Section Header | SF Pro Text | 13pt | 400 | 1.2 | 0pt | iOS grouped list section labels |
108
+ | Body | SF Pro Text | 17pt | 400 | 1.4 | -0.4pt | Body text, Settings rows |
109
+ | Callout | SF Pro Text | 16pt | 400 | 1.3 | -0.3pt | Link previews, attachments |
110
+ | Footnote | SF Pro Text | 13pt | 400 | 1.3 | -0.1pt | Sub-copy, hints |
111
+ | Caption | SF Pro Text | 12pt | 400 | 1.3 | 0pt | Metadata, file sizes |
112
+ | Tab Label | SF Pro Text | 10pt | 500 | 1.0 | 0.1pt | Bottom tab labels |
113
+ | Button (Primary) | SF Pro Text | 17pt | 600 | 1.0 | -0.4pt | iOS native button type |
114
+ | Code (Monospace) | SF Mono | 15pt | 400 | 1.4 | 0pt | Inline code & code blocks |
115
+ | Blockquote | SF Pro Text | 17pt | 400 italic | 1.3 | -0.4pt | Quoted-reply block text |
116
+
117
+ ### Principles
118
+ - **Defer to iOS**: Like WhatsApp, Telegram's iOS app adheres to Apple HIG type sizes closely.
119
+ - **Dynamic Type supported**: Bubble text, contact names, message previews all scale.
120
+ - **Inline formatting**: Telegram renders bold, italic, underline, strikethrough, spoiler, code, pre, link as inline styling inside bubbles using Markdown-ish syntax (bold via `**`, italic via `__`, spoiler via `||`).
121
+ - **Theme-coupled color**: Link color and sender-name tints inherit from the user's chosen accent color.
122
+ - **Animated emoji replace static**: When a recipient sends a single emoji, Telegram often plays a fullscreen Lottie animation — type escapes its frame.
123
+
124
+ ## 4. Component Stylings
125
+
126
+ ### Buttons
127
+
128
+ **Primary Send Button (In Compose Bar)**
129
+ - Shape: Tappable text/icon button, no container
130
+ - Icon: Custom Telegram paper-plane glyph (NOT SF Symbol) — 26pt
131
+ - Color: `#0088CC` (accent) when text present; same as inactive when empty (shows `mic` / `camera` icons instead)
132
+ - Long-press: Opens silent-send / schedule-send menu
133
+ - Haptic: soft impact on send
134
+
135
+ **Primary Button (Sheet / Onboarding CTA)**
136
+ - Shape: Full-width rectangle, 10pt corner radius
137
+ - Height: 50pt
138
+ - Background: `#0088CC` (accent)
139
+ - Text: white, SF Pro Text 17pt weight 600
140
+ - Pressed: `#0071B0` + scale 0.98
141
+ - Used for: "Continue", "Log In", "Create Account", "Join"
142
+
143
+ **Secondary Text Button**
144
+ - Background: transparent
145
+ - Text: `#0088CC` (accent) or `#E53935` (destructive)
146
+ - Font: SF Pro Text 17pt weight 400
147
+ - No fill, no border — pure iOS link style
148
+
149
+ **Floating Send in Compose (with morph)**
150
+ - When text is empty: show mic + attach + camera icons (24pt each, gray `#707579`)
151
+ - When text is present: send paper-plane icon (`#0088CC`) replaces the cluster
152
+ - Crossfade morph on keystroke change
153
+
154
+ **Floating Action Menu (Compose Attach)**
155
+ - Triggered by + attach icon
156
+ - Bottom sheet with labeled grid: Photo/Video, File, Location, Contact, Poll, Music
157
+ - Each tile: 64pt circular blue icon + 13pt label beneath
158
+
159
+ ### Cards & Containers
160
+
161
+ **Chat List Row**
162
+ - Height: 76pt
163
+ - Structure: 54pt circular avatar (leading, 16pt inset) → 12pt gap → stacked (name + preview + verified check if applicable) → trailing (time + unread pill + muted icon + pinned icon)
164
+ - Background: `#FFFFFF` light / `#212121` dark
165
+ - Pressed: `#F2F2F7` light / `#2C2C2E` dark
166
+ - Swipe-left: Mute, Delete, More
167
+ - Swipe-right: Read/Unread, Pin, Archive
168
+ - Pinned row: slightly shaded background `#F7F7F7` and pin glyph trailing
169
+
170
+ **Chat Bubble (Outgoing — Default Blue Theme)**
171
+ - Max width: 80% of chat canvas
172
+ - Background: `#2B86FD` (or gradient `#2B86FD → #61B3FF` in gradient themes)
173
+ - Text color: white
174
+ - Padding: 8pt vertical, 12pt horizontal
175
+ - Corner radius: 17pt on all corners EXCEPT bottom-trailing which is 6pt (soft tail, not a full point)
176
+ - Trailing: 11pt white timestamp + double check read-tick (white)
177
+ - Tap-and-hold: reveals reactions + context menu (copy, reply, forward, edit, delete, pin)
178
+
179
+ **Chat Bubble (Incoming)**
180
+ - Max width: 80%
181
+ - Background: `#FFFFFF` light / `#2A2A2A` dark
182
+ - Text color: `#000000` light / `#FFFFFF` dark
183
+ - 1pt border: `#E5E5E5` light only (visible on plain-white wallpapers)
184
+ - Corner radius: 17pt all corners EXCEPT bottom-leading which is 6pt
185
+ - Trailing: 11pt `#707579` timestamp
186
+
187
+ **Quote Block (Inline Reply Preview)**
188
+ - Nested at TOP of bubble that's replying
189
+ - 3pt vertical accent bar on leading edge in sender's group color (or accent `#0088CC`)
190
+ - Background: 10% tint over bubble bg
191
+ - Sender name 13pt weight 600 in accent
192
+ - Quoted text 13pt regular, 2-line clamp
193
+
194
+ **File Attachment Card (inside bubble)**
195
+ - Horizontal card inside a bubble
196
+ - Leading 40pt circular icon (file type colored — PDF red, ZIP gray, music blue)
197
+ - File name 15pt weight 600 + size 13pt `#707579`
198
+ - Tap to download; shows circular progress ring overlay on icon
199
+
200
+ **Link Preview Card (inside bubble)**
201
+ - Image (if available) at top, full-width of bubble (16pt corner radius inherited, no rounding inside bubble)
202
+ - Source name 13pt weight 600 accent color
203
+ - Title 15pt weight 600
204
+ - Description 13pt `#707579`
205
+ - Appears above the message text, not below
206
+
207
+ ### Navigation
208
+
209
+ **Bottom Tab Bar**
210
+ - Height: 49pt + safe area
211
+ - Background: `.regularMaterial` blur over `#FFFFFF` (light) / `#1C1C1C` (dark) at 92% opacity
212
+ - Tabs: Contacts, Calls, Chats, Settings (iOS default; may vary per user preference)
213
+ - Icon: 28pt (Telegram custom outlined icons, NOT SF Symbols)
214
+ - Active color: `#0088CC` (user accent)
215
+ - Inactive: `#8D8E93`
216
+ - Labels: SF Pro 10pt weight 500, always shown
217
+ - Badge: red circle with white count, top-right
218
+
219
+ **Top Nav (Chat Screen)**
220
+ - Height: 44pt + safe area
221
+ - Leading: back chevron + avatar (32pt) + contact name + typing/last-seen status (13pt gray)
222
+ - Trailing: video-call icon + phone-call icon + more-ellipsis (for secret chats: lock-icon replaces phone)
223
+ - Background: same blur treatment as tab bar
224
+ - Secret chat: small lock emoji next to the name — slight green-tint background
225
+
226
+ **Top Nav (Chat List)**
227
+ - Large-title "Chats" scroll-collapsing
228
+ - Leading: "Edit" text button
229
+ - Trailing: New chat icon (Telegram pencil-with-circle custom glyph)
230
+ - Search bar: pulls down on overscroll, 36pt pill
231
+
232
+ ### Input Fields
233
+
234
+ **Compose Bar**
235
+ - Height: ~44pt single-line, grows to 120pt multiline
236
+ - Structure: leading attach + icon → multiline text field → trailing emoji face → sticker icon → voice-mic OR send
237
+ - Background: `#FFFFFF` light / `#1C1C1C` dark (elevated over chat canvas)
238
+ - Input field: inline, no pill container (different from WhatsApp) — just a text field
239
+ - Placeholder: "Message", 16pt `#A0A6AD`
240
+ - Bottom 1pt `#E5E5E5` divider from chat canvas
241
+
242
+ **Search Bar**
243
+ - Native iOS search bar (`.searchable` in SwiftUI)
244
+ - Background: `#F2F2F7` light / `#1C1C1C` dark
245
+ - Height: 36pt
246
+ - Cancel button text: accent color `#0088CC`
247
+
248
+ ### Distinctive Components
249
+
250
+ **Animated Emoji / Sticker Playback**
251
+ Telegram's crown jewel. When a message contains exactly one emoji (or certain large emoji), it renders at a much bigger size and plays a Lottie animation on receipt/send.
252
+ - Size: Single emoji = 72pt rendered glyph
253
+ - Animation: Lottie/vector loop, ~2-3s duration, played once on arrival
254
+ - Some "interactive" emojis (heart, rocket) play a full-screen effect across both sender's and receiver's screens simultaneously
255
+ - Custom sticker packs: users and channels publish free or premium packs; render as 128pt animated vectors in bubbles
256
+
257
+ **Floating Voice/Music Mini Player**
258
+ Persistent pill that floats above the chat canvas when a voice message or music track is playing — similar to a Picture-in-Picture pill.
259
+ - Position: top of chat screen, just below nav bar
260
+ - Background: `#FFFFFF` light / `#1C1C1C` dark, with subtle shadow
261
+ - Height: 40pt
262
+ - Content: track title + horizontal waveform/progress + close X
263
+ - Tap: jump back to the playing message; swipe down: dismiss
264
+ - Persists across chat switches — this is unique to Telegram
265
+
266
+ **Swipe-from-Edge to Reply**
267
+ Not a swipe on the row — a gesture that lets you pan the entire bubble horizontally (usually to the left for outgoing, right for incoming) to trigger a reply.
268
+ - Threshold: ~60pt horizontal drag
269
+ - Visual: an arrow-with-hook icon appears at the drag edge as the bubble moves
270
+ - Haptic: soft tick at threshold
271
+ - Release past threshold: opens reply composer with that message quoted
272
+
273
+ **Silent Message Send (Long-Press Send)**
274
+ Long-pressing the send button opens a popover menu:
275
+ - Send Without Sound (no push notification sound on recipient)
276
+ - Schedule Message (pick a future time)
277
+ - Send When Online (auto-send when recipient comes online)
278
+ - This gesture is a core Telegram differentiator.
279
+
280
+ **Self-Destruct Timer (Secret Chats)**
281
+ Secret chats have a clock glyph next to the compose bar; tapping sets a timer (1s → 1 week). After recipient views, the message erases.
282
+ - Timer indicator: small countdown clock on read bubbles
283
+ - Secret chat header: lock emoji + "Secret Chat" + timer setting
284
+ - Screenshot notification: Telegram notifies the sender if the recipient screenshots a secret chat
285
+
286
+ **Reactions (Emoji Reaction Palette)**
287
+ - Long-press any message → reactions palette appears
288
+ - Free users: ~6 preset emojis (heart, thumbs-up, fire, laugh, surprise, cry)
289
+ - Premium users: any emoji + custom animated reactions
290
+ - Palette: horizontal floating capsule with reactions + a "+" for full picker
291
+ - Reaction chip appears below-trailing of bubble after pick; shows count if multiple users reacted
292
+ - Tap reaction chip to add yours; long-press to see who reacted
293
+
294
+ **Channel Broadcast vs Group**
295
+ - **Channel**: broadcast-only; users are "Subscribers" not "Members"; only admins post; no inline reply UI for most users; reactions + comments via linked-group
296
+ - **Group** / **Supergroup**: anyone can post; reply + mention + admin tools visible
297
+ - Channel avatar often has a custom accent color/background for identity
298
+ - Channels can have a custom gradient header (purple, rainbow) — the "channel color" feature
299
+
300
+ **Custom Chat Background**
301
+ Per-chat configurable: solid color, gradient, pattern tile, or photo. Accessible via chat settings.
302
+
303
+ ## 5. Layout Principles
304
+
305
+ ### Spacing System
306
+ - Base unit: 4pt
307
+ - Scale: 4, 8, 12, 16, 20, 24, 32, 44, 56, 76
308
+ - Standard screen margin: 16pt horizontal
309
+ - Chat bubble margin from edge: 8pt
310
+ - Between bubbles same sender: 2pt; different sender: 8pt
311
+
312
+ ### Grid & Container
313
+ - Content width: full device width
314
+ - Chat canvas: full bleed; bubbles max 80%
315
+ - Settings list: iOS grouped list with 16pt insets
316
+
317
+ ### Whitespace Philosophy
318
+ - **Defer to iOS density**: Telegram follows iOS list patterns — 44pt minimum row heights, standard padding.
319
+ - **Chat canvas breathes**: Bubbles have 8pt gaps between different senders; the wallpaper/canvas is meant to be visible.
320
+ - **Floating elements pop**: The voice mini-player floats with shadow — it's meant to feel separate from the content.
321
+
322
+ ### Border Radius Scale
323
+ - Square (0pt): Status bar overlays, rare
324
+ - Soft (6pt): Bubble tail corner (not fully pointed, a soft notch)
325
+ - Standard (10pt): Primary sheet CTAs, file cards
326
+ - Bubble (17pt): Main chat bubble corner radius
327
+ - Comfortable (20pt): Context menu, reactions palette
328
+ - Pill (22-28pt): Floating voice player, filter chips
329
+ - Full Circle (50%): Avatars, profile photos, send button (when designed as circle)
330
+
331
+ ## 6. Depth & Elevation
332
+
333
+ | Level | Treatment | Use |
334
+ |-------|-----------|-----|
335
+ | Flat (0) | No shadow | List rows, bubbles on canvas |
336
+ | Subtle (1) | `rgba(0,0,0,0.08) 0 1px 3px` | Incoming bubbles (very subtle) |
337
+ | Floating (2) | `rgba(0,0,0,0.16) 0 4px 16px` | Voice mini-player, reactions palette |
338
+ | Sheet (3) | `rgba(0,0,0,0.25) 0 -12px 32px` | Action sheets, modals |
339
+ | Modal Overlay | `rgba(0,0,0,0.45)` backdrop | Context menu overlay, attachment picker |
340
+ | Nav Blur | `.regularMaterial` 92% | Top nav and bottom tab |
341
+
342
+ **Shadow Philosophy**: Telegram is flatter than most messengers; shadows are reserved for floating, detached elements (the voice pill, the reactions palette, the context menu popover). Chat bubbles are intentionally shadow-less; they sit flat on the canvas. The context-menu popover on long-press is the one place where heavy blur + dark backdrop creates real depth.
343
+
344
+ ### Motion
345
+ - **Bubble send**: Slides up and lands with a slight overshoot spring (damping 0.6)
346
+ - **Animated emoji**: Lottie timeline 1.5-3s, plays once on arrival
347
+ - **Interactive emoji (heart/rocket)**: Full-screen animation sync'd across sender + receiver
348
+ - **Swipe-to-reply**: 60fps pan, haptic tick at threshold
349
+ - **Silent send long-press**: Standard iOS long-press 0.5s threshold → popover
350
+ - **Voice mini-player entry**: Slides down from top over 200ms
351
+ - **Reactions palette appearance**: Scales from center of bubble with spring, 300ms
352
+ - **Custom background pan**: On scroll, background may subtly parallax (can be disabled)
353
+ - **Context menu open**: Bubble "lifts" up with scale 1.05, backdrop blurs, menu fans out below
354
+
355
+ ## 7. Do's and Don'ts
356
+
357
+ ### Do
358
+ - Use `#0088CC` (Telegram Blue) as the default accent — but build the system so accent is a single variable that users can change
359
+ - Use `#2B86FD` for outgoing bubbles in default blue theme; support accent-tinted outgoing bubbles
360
+ - Respect user-selected chat backgrounds (solid, gradient, tile, photo)
361
+ - Use SF Pro + Telegram's proprietary outlined icon vocabulary (NOT SF Symbols alone)
362
+ - Offer OLED dark mode (`#000000`) as a distinct option from default dark
363
+ - Support inline Markdown-ish formatting (bold, italic, spoiler, code, pre)
364
+ - Animate single-emoji messages with Lottie playback
365
+ - Include the silent-send and scheduled-send long-press gesture on the send button
366
+ - Use the floating voice mini-player when audio is playing — pin it across chats
367
+ - Use swipe-from-edge (not swipe-from-row) to trigger reply
368
+
369
+ ### Don't
370
+ - Don't hardcode accent color — theme it; the accent variable should cascade
371
+ - Don't use WhatsApp's asymmetric tail — Telegram bubble tails are SUBTLY notched (6pt), not pointed
372
+ - Don't use warm cream chat backgrounds; Telegram defaults to cool white/soft-blue or pure dark
373
+ - Don't use SF Symbols for everything — Telegram's tab bar uses outlined custom glyphs
374
+ - Don't dim the whole screen on long-press — only the backdrop around the context menu blurs
375
+ - Don't use shadows on chat bubbles — they're flat
376
+ - Don't hide the read-receipt timestamp — Telegram shows time + ticks consistently
377
+ - Don't auto-delete messages without the secret-chat UI indicating it
378
+ - Don't use green for read receipts (that's WhatsApp) — use accent-colored check-check
379
+ - Don't skip the scheduled-send option — it's a core differentiator
380
+
381
+ ## 8. Responsive Behavior
382
+
383
+ ### Device Sizes
384
+ | Device | Width | Key Changes |
385
+ |--------|-------|-------------|
386
+ | iPhone SE (3rd gen) | 375pt | Bubble max 78%; avatar 50pt in chat list |
387
+ | iPhone 13/14/15 | 390pt | Standard 54pt avatar, 80% bubble |
388
+ | iPhone 15/16 Pro | 393pt | Dynamic Island accommodated in voice mini-player |
389
+ | iPhone 15/16 Pro Max | 430pt | Avatar grows to 56pt |
390
+ | iPad | 768pt+ | Split view: chat list left, conversation right; bubbles constrained to 60% of right pane |
391
+
392
+ ### Dynamic Type
393
+ - Bubble body, contact name, message preview: full scale
394
+ - Inline timestamp: fixed 11pt
395
+ - Tab labels: fixed 10pt
396
+ - Large title: scales to 40pt max
397
+ - Lottie emoji: scales with text size up to 96pt
398
+
399
+ ### Orientation
400
+ - Chat list / Settings: portrait-locked on iPhone
401
+ - Calls: rotate to landscape
402
+ - Media viewer: rotate to landscape
403
+ - iPad: all orientations supported
404
+
405
+ ### Touch Targets
406
+ - Send icon: 44pt effective hit
407
+ - Chat list row: 76pt
408
+ - Reactions palette emojis: 36pt glyph, 48pt hit
409
+ - Tab bar icons: 28pt glyph, 44pt hit
410
+ - Bubble swipe-to-reply threshold: 60pt drag
411
+
412
+ ### Safe Area Handling
413
+ - Top: safe area honored
414
+ - Voice mini-player: sits just below nav bar, above chat content
415
+ - Bottom: compose bar hugs safe area
416
+ - Keyboard: native iOS push
417
+
418
+ ## 9. Agent Prompt Guide
419
+
420
+ ### Quick Color Reference
421
+ - Telegram Blue (accent): `#0088CC`
422
+ - Sky Blue (lighter): `#40A7E3`
423
+ - Bubble Blue (outgoing): `#2B86FD`
424
+ - Bubble Pressed: `#0071B0`
425
+ - Canvas (light): `#FFFFFF`
426
+ - Canvas (dark): `#212121`
427
+ - Canvas (OLED): `#000000`
428
+ - Surface 1 (light): `#F7F7F7`
429
+ - Surface 1 (dark): `#1C1C1C`
430
+ - Surface 2 (dark): `#2C2C2E`
431
+ - Chat background (default blue tile): `#DBE7F4`
432
+ - Text primary (light): `#000000`
433
+ - Text secondary (light): `#707579`
434
+ - Text primary (dark): `#FFFFFF`
435
+ - Text secondary (dark): `#8D8E93`
436
+ - Online green: `#4DD364`
437
+ - Error red: `#E53935`
438
+ - Premium purple gradient: `#AE6FFD → #CE6BFF`
439
+
440
+ ### Example Component Prompts
441
+ - "Create a SwiftUI Telegram outgoing bubble: max-width 80%, background #2B86FD, text #FFFFFF at SF Pro 17pt weight 400. Corner radius 17pt on all corners EXCEPT bottom-trailing which is 6pt (subtle notch). Inline trailing timestamp '10:24' 11pt white at 80% opacity + white double-check ticks 12pt."
442
+ - "Build the Telegram compose bar: no pill container — just a flat text field with leading paperclip attach icon (24pt #707579) and trailing emoji face + sticker + mic icons. When text present, trailing morphs to a single #0088CC paper-plane. Long-press send reveals the silent-send / scheduled-send popover menu."
443
+ - "Design the floating voice mini-player: 40pt tall rounded-pill (22pt radius) pinned just below the nav bar, background #FFFFFF light / #1C1C1C dark with rgba(0,0,0,0.16) 0 4px 16px shadow. Content: 13pt weight 600 track title + horizontal waveform/progress + close X. Swipe-down to dismiss; persists across chat switches."
444
+ - "Create the chat list row: 76pt height, 54pt circular avatar leading, 12pt gap, stacked contact name 17pt weight 600 + preview 15pt weight 400 #707579. Trailing: 13pt timestamp #707579 top-right, unread pill (#0088CC background, white text 13pt, 10pt corner radius), muted/pinned icons as applicable. Pinned rows have #F7F7F7 background tint."
445
+ - "Build a Telegram context menu on bubble long-press: bubble scales 1.05, backdrop blurs with .regularMaterial, reactions palette appears ABOVE bubble (floating capsule, 48pt emoji size, #FFFFFF background, 24pt corner radius, 16pt shadow), and action menu appears BELOW bubble with Reply, Copy, Forward, Edit, Delete — native iOS context menu with 20pt corner radius and #2C2C2E dark tint."
446
+ - "Design a Telegram self-destruct timer secret-chat header: nav bar has a 14pt lock.shield emoji next to contact name, a tiny countdown '10s' badge, and a subtle #C8E6C9 tint on the nav background. Chat canvas gets a green-tinged watermark lock glyph in the bottom corner at 10% opacity."
447
+
448
+ ### Iteration Guide
449
+ 1. Canvas defaults to `#FFFFFF` light / `#212121` dark — offer an OLED toggle for `#000000`
450
+ 2. Accent color is a SINGLE variable — every blue surface reads from it, because users theme the app
451
+ 3. Outgoing bubble `#2B86FD` default; support gradient outgoing `#2B86FD → #61B3FF` for gradient themes
452
+ 4. Bubble corner radius is 17pt everywhere EXCEPT the tail corner (6pt notch — not fully pointed)
453
+ 5. Bubbles are FLAT — no shadows. Shadows are only on the voice pill and context menu popover.
454
+ 6. Typography is pure SF Pro at iOS HIG sizes; inline formatting (bold, italic, spoiler, code) via Markdown syntax
455
+ 7. Swipe-from-edge triggers reply (not swipe-on-row) — bubble pans with user finger
456
+ 8. Long-press send button opens silent-send / scheduled-send popover — don't skip this
457
+ 9. Animated Lottie emoji + sticker playback on single-emoji messages — scale to 72pt glyph
458
+ 10. Floating voice mini-player pins below nav bar when audio plays — persistent across chats