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,424 @@
1
+ # Design System Inspiration of Miro (iOS)
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ Miro's iOS app is built around one radical idea: an **infinite canvas** in your pocket. Where most productivity apps are lists and forms, Miro is a boundless, pannable, zoomable whiteboard — you pinch to zoom, drag two fingers to pan, and the content (sticky notes, shapes, connectors, frames, images, text) lives in an unbounded 2D coordinate space, not a scrolling document. The board background is a subtle **dotted or square grid** on a near-white surface (`#F5F5F7` light, deep neutral `#202024` dark) that scales with zoom, giving spatial reference without competing with content. This canvas-first model is Miro's entire identity: the UI is minimal chrome floating *over* the board, never framing it.
6
+
7
+ The brand color is impossible to mistake: **Miro Yellow** (`#FFD02F`) — the warm, almost-gold yellow of the logo and of a default sticky note — paired with **Miro Ink** (`#050038`), a very dark desaturated indigo that's Miro's "black" for text, the logo, and dark buttons. Yellow is the primary action color (Create board, the active toolbar tool, the brand mark). When you select an object on the canvas, the selection bounding box, resize handles, and transform UI render in **Miro Blue** (`#4262FF`) — a distinct functional accent reserved for selection/interaction state, never confused with the brand yellow.
8
+
9
+ The signature interaction surfaces are: the **floating toolbar** (a rounded-rectangle bar of creation tools — select, sticky note, pen, shapes, text, frame, comment, more — that hovers at the bottom or side of the canvas; the active tool fills Miro Yellow with an ink glyph), the **sticky note** (a tight-4pt-radius colored square with a soft drop shadow and a bottom drag-grip; the most-created object, available in a fixed pastel palette), **connectors** (lines/arrows that snap object-to-object and reflow when objects move), **frames** (dashed-border named regions that group content and become presentation slides), and **live multiplayer cursors** (per-collaborator colored arrows with a name tag, moving in real time). Everything in Miro is created and arranged through these affordances on the canvas.
10
+
11
+ Typography is **Inter** as the UI face (Miro's product UI uses a clean neutral grotesque very close to Inter; Inter is the faithful, freely-licensed stand-in), falling back to SF Pro on iOS. Because most "text" in Miro is *user content on sticky notes and shapes*, the type system is more about UI hierarchy than editorial rhythm: board title 28pt extrabold, section/heading 22pt bold, frame labels 18pt bold, sticky-note text 16pt semibold (auto-fit to note size), body/UI 16pt, toolbar/controls 15pt semibold, meta 14pt. The whole app feels energetic, collaborative, and tactile — bright yellow, soft-shadowed paper notes, springy object manipulation, and the constant subtle presence of other people's cursors.
12
+
13
+ **Key Characteristics:**
14
+ - **Infinite canvas** — pinch-zoom, two-finger pan; content lives in unbounded 2D space, not a scroll view
15
+ - **Dotted/square grid board** — `#F5F5F7` light / `#202024` dark; grid scales with zoom for spatial reference
16
+ - **Miro Yellow** (`#FFD02F`) + **Miro Ink** (`#050038`) — the unmistakable brand pair
17
+ - **Miro Blue** (`#4262FF`) — functional selection/interaction accent (bounding box, handles), distinct from brand
18
+ - **Floating toolbar** — rounded bar of creation tools; active tool fills yellow with ink glyph
19
+ - **Sticky notes** — tight 4pt-radius pastel paper squares with soft shadow + drag-grip; the core object
20
+ - **Connectors** — object-snapping lines/arrows that reflow when objects move
21
+ - **Frames** — dashed named regions that group content and double as presentation slides
22
+ - **Live multiplayer cursors** — per-user colored arrows + name tags moving in real time
23
+ - **Zoom control + minimap** — persistent zoom pill (+ / value / −); minimap for board navigation
24
+ - Minimal chrome: compact board top bar (back · board name · collaborators · share · ⋯) over the canvas
25
+
26
+ ## 2. Color Palette & Roles
27
+
28
+ ### Primary (Interactive / Brand)
29
+ - **Miro Yellow** (`#FFD02F`): Primary action — Create board, active toolbar tool fill, brand mark.
30
+ - **Miro Yellow Pressed** (`#E8B800`): Pressed state for yellow controls.
31
+ - **Miro Ink** (`#050038`): Brand "black" — logo, primary text on light, dark button background, glyph on yellow.
32
+ - **Miro Blue** (`#4262FF`): Functional selection accent — bounding box, resize handles, links, focus ring, active connector.
33
+ - **Miro Blue Pressed** (`#2F4AE0`): Pressed state for blue controls.
34
+
35
+ ### Canvas & Surfaces (Light Mode)
36
+ - **Board Surface** (`#F5F5F7`): The infinite-canvas background.
37
+ - **Grid Dots/Lines** (`#D7D7DE`): Subtle grid on the board (scales with zoom).
38
+ - **Canvas White** (`#FFFFFF`): App chrome base, sheets, sticky-note inspector.
39
+ - **Surface Gray** (`#F1F1F4`): Toolbar/panel fills, secondary chrome.
40
+ - **Surface Pressed** (`#E6E6EB`): Pressed rows, hovered tools.
41
+ - **Divider** (`#E3E3E8`): Hairline dividers in chrome.
42
+
43
+ ### Canvas & Surfaces (Dark Mode)
44
+ - **Dark Canvas** (`#1B1B1F`): App chrome base in dark.
45
+ - **Dark Board** (`#202024`): The infinite-canvas background in dark.
46
+ - **Dark Grid** (`#38383F`): Subtle grid on dark board.
47
+ - **Dark Surface 1** (`#26262B`): Toolbar, top bar, sheets.
48
+ - **Dark Surface 2** (`#313138`): Hovered tools, pressed rows.
49
+ - **Dark Divider** (`#38383F`): Hairline dividers.
50
+
51
+ ### Text
52
+ - **Text Primary Light** (`#050038`): Primary chrome/UI text — Miro Ink.
53
+ - **Text Secondary Light** (`#6B6B7B`): Metadata, captions.
54
+ - **Text Tertiary Light** (`#9A9AA4`): Disabled, low-emphasis, connector default.
55
+ - **Text Primary Dark** (`#ECECEF`): Primary text on dark.
56
+ - **Text Secondary Dark** (`#9A9AA4`): Secondary on dark (shared tone).
57
+ - **Note Ink** (`#2A2A33`): Text rendered *on* colored sticky notes (dark, on all pastel fills).
58
+
59
+ ### Sticky Note Palette (fixed pastels — paper, never goes dark)
60
+ These are the user-selectable sticky-note / shape-fill colors. They stay full-color in both themes.
61
+
62
+ | Role | Fill | On-Note Text |
63
+ |------|------|--------------|
64
+ | Yellow (default) | `#FEF3B6` | `#2A2A33` |
65
+ | Pink | `#F8C8D8` | `#2A2A33` |
66
+ | Green | `#C7E8C7` | `#2A2A33` |
67
+ | Blue | `#BCE0F5` | `#2A2A33` |
68
+ | Orange | `#FCD9B6` | `#2A2A33` |
69
+ | Violet | `#DCC9F0` | `#2A2A33` |
70
+ | Teal | `#BFE8E0` | `#2A2A33` |
71
+ | Gray | `#E2E2E6` | `#2A2A33` |
72
+
73
+ ### Multiplayer Cursor Colors (per-collaborator)
74
+ Assigned round-robin to collaborators; identical across themes.
75
+
76
+ | Slot | Color |
77
+ |------|-------|
78
+ | 1 | `#4262FF` |
79
+ | 2 | `#F24822` |
80
+ | 3 | `#14AE5C` |
81
+ | 4 | `#9747FF` |
82
+ | 5 | `#F2A900` |
83
+ | 6 | `#E5489E` |
84
+
85
+ ### Semantic
86
+ - **Error Red** (`#E5484D`): Delete confirmation, error toast, destructive actions.
87
+ - **Success Green** (`#2EA56A`): Save/sync-success toast, online indicator.
88
+ - **Warning Amber** (`#F0A92B`): Warning callouts, offline/limited-sync banner.
89
+ - **Selection Blue** (`#4262FF`): Bounding box, resize handles, marquee selection.
90
+ - **Marquee Fill** (`#4262FF1F`): ~12% blue fill of the drag-select rectangle.
91
+
92
+ ## 3. Typography Rules
93
+
94
+ ### Font Family
95
+ - **Primary**: `Inter` (by Rasmus Andersson, SIL OFL) — neutral humanist grotesque; faithful, freely-licensed stand-in for Miro's product UI sans, excellent at small UI sizes and on sticky notes.
96
+ - **Handwriting Option (sticky/marker)**: `Caveat` (Google Fonts, SIL OFL) — optional marker/handwriting style some users pick for sticky notes and pen-adjacent text.
97
+ - **Mono (code/embed)**: `JetBrains Mono` (SIL OFL) — used only inside code embeds.
98
+ - **Fallback Stack**: `-apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif`
99
+ - **iOS behavior**: falls back to SF Pro Display (titles) / SF Pro Text (UI) when Inter isn't bundled.
100
+
101
+ ### Hierarchy
102
+
103
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
104
+ |------|------|------|--------|-------------|----------------|-------|
105
+ | Board Title | Inter | 28pt | 800 | 1.2 | -0.5pt | Top bar / board info sheet |
106
+ | Section / H1 | Inter | 22pt | 700 | 1.25 | -0.3pt | Sheet titles, frame headings |
107
+ | Frame Label | Inter | 18pt | 700 | 1.3 | -0.2pt | Dashed-frame name label |
108
+ | Sticky Note | Inter | 16pt | 600 | 1.3 | 0pt | Text on a note (auto-fits to note size) |
109
+ | Body / UI | Inter | 16pt | 400 | 1.5 | 0pt | Sheet body, descriptions |
110
+ | Toolbar / Control | Inter | 15pt | 600 | 1.0 | 0pt | Tool labels, segmented controls |
111
+ | Button | Inter | 15pt | 700 | 1.0 | 0pt | Primary/secondary buttons |
112
+ | Meta | Inter | 14pt | 400 | 1.4 | 0pt | "Edited by Dana · 4 collaborators" |
113
+ | Caption / Zoom | Inter | 12pt | 600 | 1.0 | 0.2pt | Zoom %, small labels |
114
+ | Connector Label | Inter | 13pt | 500 | 1.2 | 0pt | Optional label on a connector |
115
+ | List Row | Inter | 16pt | 500 | 1.3 | 0pt | Boards list, templates list |
116
+ | Tab Label | Inter | 10pt | 600 | 1.0 | 0.1pt | Bottom tab labels (boards home) |
117
+ | Avatar Initials | Inter | 11pt | 700 | 1.0 | 0.2pt | Collaborator avatar fallback |
118
+
119
+ ### Principles
120
+ - **UI hierarchy over editorial rhythm**: most "text" is user content on notes/shapes — the type ramp serves chrome and labels, not long-form reading.
121
+ - **Sticky-note text auto-fits**: note text starts at 16pt w600 and scales down to fit the note's box (min ~9pt) as you type — never clips.
122
+ - **Extrabold reserved for the board title**: 800 is the single most expressive weight; toolbar/buttons top out at 700.
123
+ - **High legibility at zoom**: UI text stays fixed pixel size regardless of canvas zoom; only canvas *content* scales with zoom.
124
+ - **Dynamic Type for chrome**: sheet titles, body, list rows scale; toolbar labels, zoom %, avatar initials, connector labels stay fixed.
125
+
126
+ ## 4. Component Stylings
127
+
128
+ ### Buttons
129
+
130
+ **Primary Button (Create board / Done)**
131
+ - Shape: Rounded rectangle, 10pt corner radius
132
+ - Background: `#FFD02F` (Miro Yellow)
133
+ - Text: `#050038` (Miro Ink), Inter 15pt weight 700
134
+ - Padding: 13pt vertical, 26pt horizontal
135
+ - Pressed: `#E8B800` + scale 0.98 + soft haptic
136
+
137
+ **Dark Button (Share / secondary primary)**
138
+ - Background: `#050038` (Miro Ink)
139
+ - Text: `#FFFFFF`, Inter 15pt weight 700
140
+ - Same shape/padding; pressed: lighten 8% + scale 0.98
141
+
142
+ **Secondary / Outline Button**
143
+ - Background: transparent
144
+ - Text: `#050038` light / `#ECECEF` dark
145
+ - Border: 1pt `#E3E3E8` / `#38383F`
146
+ - Corner radius: 10pt
147
+ - Padding: 12pt vertical, 20pt horizontal
148
+ - Font: Inter 14pt weight 600
149
+ - Pressed: background `#E6E6EB` / `#313138`
150
+
151
+ **Ghost / Text Button (Invite / Cancel)**
152
+ - Background: transparent, no border
153
+ - Text: `#4262FF` (action) or `#6B6B7B` (Cancel)
154
+ - Font: Inter 14pt weight 600
155
+ - Pressed: 0.6 opacity
156
+
157
+ **Toolbar Tool Button**
158
+ - Size: 40pt tile, 11pt corner radius, inside the floating bar (8pt bar padding, 16pt bar radius)
159
+ - Default: glyph `#6B6B7B` / `#9A9AA4`, transparent fill
160
+ - Active (selected tool): fill `#FFD02F`, glyph `#050038`
161
+ - Pressed: scale 0.94 + soft haptic; long-press opens the tool's sub-palette (e.g. shape picker)
162
+
163
+ **Zoom Control Buttons (`+` / `−`)**
164
+ - Stacked pill, 38pt wide; glyph `#050038` / `#ECECEF` 18pt; center shows zoom % (Inter 12pt w600)
165
+ - Tap steps zoom by 25%; the % label tap resets to 100% / fit
166
+
167
+ ### Canvas Objects (the core atoms)
168
+
169
+ **Sticky Note** — *signature*
170
+ - Shape: square (default ~96pt at 100% zoom), 4pt corner radius (tight — paper feel)
171
+ - Fill: one of the fixed pastel palette (default yellow `#FEF3B6`)
172
+ - Shadow: soft `0 8px 18px -8px rgba(0,0,0,0.18)` light / `…0.55` dark — notes "lift" off the board
173
+ - Text: Inter 16pt w600 `#2A2A33`, center-aligned, auto-fit to box
174
+ - Selected: 2pt `#4262FF` bounding box at 2pt offset + corner resize handles + a bottom drag-grip pill
175
+ - Double-tap to edit text; long-press to drag; pinch on a selected note to resize
176
+
177
+ **Shape (rectangle / ellipse / diamond / etc.)**
178
+ - Stroke: 2pt, default `#050038`; fill: transparent or a pastel
179
+ - Corner radius: shape-dependent (rounded-rect default 8pt)
180
+ - Selected: same `#4262FF` bounding box + handles
181
+
182
+ **Connector (line / arrow)**
183
+ - Stroke: 2pt `#4262FF` when selected, `#6B6B7B` default
184
+ - Endpoints snap to object anchor points; reflows automatically when either object moves
185
+ - Optional mid-label: Inter 13pt w500 on a small white/ink chip
186
+ - Style options: straight / elbow / curved; arrowhead on/off
187
+
188
+ **Frame**
189
+ - Border: 2pt dashed `#9A9AA4`
190
+ - Corner radius: 6pt
191
+ - Label: top-left, Inter 18pt w700 `#6B6B7B`
192
+ - Acts as a content group; doubles as a presentation slide in present mode
193
+
194
+ **Text Object**
195
+ - Free-floating text on the canvas; Inter, size set by the user; default `#050038`
196
+ - Selected: dashed `#4262FF` box + handles
197
+
198
+ **Image / Embed Object**
199
+ - Dropped/pasted media; selected box + handles; corner radius 4pt
200
+
201
+ **Comment Pin**
202
+ - A circular `#FFD02F` pin (28pt) with an ink speech-glyph; tap opens the comment thread bubble
203
+
204
+ ### Board Structure & Navigation
205
+
206
+ **Board Top Bar (over the canvas)**
207
+ - Height: 48pt + safe area, translucent over the board
208
+ - Leading: back chevron + board name + disclosure chevron (board menu)
209
+ - Trailing: collaborator avatar stack (26pt circles, overlapping) · share · ⋯ (board actions)
210
+ - No large title — the canvas is the content
211
+
212
+ **Floating Toolbar**
213
+ - Position: bottom-center (phone) or left edge (tablet), floating with `0 14px 32px -12px rgba(0,0,0,0.22)` shadow
214
+ - Background: `#FFFFFF` / `#26262B`, 1pt divider border, 16pt corner radius, 8pt padding
215
+ - Tools (typical order): Select, Sticky note, Pen, Shapes, Text, Frame, Comment, More (`+`)
216
+ - Active tool: yellow fill + ink glyph; tools are 40pt tiles, 11pt radius
217
+
218
+ **Zoom + Navigation**
219
+ - Persistent zoom pill (bottom-right) `+ / value / −`
220
+ - Minimap (toggle): a small board-overview thumbnail with a viewport rectangle for fast navigation
221
+ - Two-finger drag pans; pinch zooms; double-tap empty space zooms to fit
222
+
223
+ **Boards Home (outside a board)**
224
+ - A standard list/grid of board thumbnails; bottom tab bar: Boards, Templates, Activity, Profile
225
+ - List rows: thumbnail + board name (Inter 16pt w500) + meta (Inter 14pt) + ⋯
226
+ - Active tab: `#050038` / `#ECECEF` icon (no tint pill); inactive `#6B6B7B` / `#9A9AA4`
227
+
228
+ ### Input & Panels
229
+
230
+ **Board Search / Find on Board**
231
+ - Height: 44pt; background `#F1F1F4` / `#313138`; no border; 10pt radius
232
+ - Leading `magnifyingglass` 16pt `#9A9AA4`; placeholder "Search board" 15pt `#9A9AA4`
233
+ - Focus: 2pt `#4262FF` ring
234
+
235
+ **Object Inspector (context bar)**
236
+ - A floating bar that appears above a selected object: color swatch, font, lock, duplicate, delete
237
+ - Background `#FFFFFF` / `#26262B`, 12pt radius, soft shadow; swatches are 24pt circles
238
+
239
+ **Bottom Sheet (Templates / Share / Board menu)**
240
+ - Corner radius 16pt (top); grabber handle; spring-presented; dim `rgba(5,0,56,0.32)` behind
241
+
242
+ ### Distinctive Components
243
+
244
+ **Infinite Canvas** — the defining surface: an unbounded 2D coordinate space with a zoom-aware dotted/square grid. Pinch-zoom, two-finger pan, double-tap-to-fit. All objects live here in absolute coordinates.
245
+
246
+ **Floating Toolbar** — the creation hub: a rounded floating bar whose active tool fills Miro Yellow with an ink glyph. Long-press a tool to open its sub-palette (shapes, pen colors, sticky colors).
247
+
248
+ **Sticky Note** — the iconic object: a tight-radius pastel paper square with a soft lift shadow, auto-fitting text, a `#4262FF` selection box, and a bottom drag-grip. The default and most-created object.
249
+
250
+ **Connector** — smart object-to-object lines/arrows that snap to anchor points and reflow live as objects move; optional mid-label chip.
251
+
252
+ **Frame** — a dashed, named region that groups content and becomes a slide in present mode; its label sits top-left.
253
+
254
+ **Live Multiplayer Cursors** — per-collaborator colored arrows with name tags moving in real time across the board; the constant signal that Miro is multiplayer.
255
+
256
+ **Minimap & Zoom Pill** — persistent spatial-navigation aids: a viewport-rectangle minimap and a `+ / % / −` zoom pill, because an infinite canvas needs wayfinding.
257
+
258
+ **Comment Pin** — a yellow circular pin dropped on the canvas; tap to expand a threaded comment bubble; resolves with a check.
259
+
260
+ ## 5. Layout Principles
261
+
262
+ ### Spacing System
263
+ - Base unit: 4pt
264
+ - Scale: 4, 8, 12, 16, 20, 24, 32, 40, 48, 64
265
+ - Toolbar tile size: 40pt; bar padding: 8pt
266
+ - Chrome content inset: 16pt horizontal
267
+ - Default sticky note: ~96pt square at 100% zoom; grid cell: 28pt at 100% zoom
268
+
269
+ ### Grid & Container
270
+ - The board is **not** a fixed grid — it's an unbounded coordinate plane; the visible dotted grid is a zoom-scaled reference overlay
271
+ - Chrome (top bar, toolbar, sheets) is laid out in standard 16pt-inset device space, floating over the canvas
272
+ - iPhone: toolbar bottom-center; iPad: toolbar can dock to the left edge; sheets max-width 520pt centered on tablet
273
+ - Objects snap to the grid and to other objects' edges/centers (smart guides) when dragging
274
+
275
+ ### Whitespace Philosophy
276
+ - **The board breathes infinitely**: there is no "page" — empty canvas is a feature; objects float with intentional spacing the user controls
277
+ - **Chrome floats, never frames**: toolbar, top bar, and inspector hover over the canvas with shadows; they never box it in
278
+ - **Notes lift off the board**: every sticky/shape gets a soft drop shadow so content reads as physical paper on a surface
279
+ - **Selection is loud, idle is quiet**: idle objects have no chrome; selecting one summons the `#4262FF` box, handles, and inspector
280
+
281
+ ### Border Radius Scale
282
+ - Square (0pt): grid, marquee rectangle
283
+ - Paper (4pt): sticky notes, image objects, comment chips (tight — paper feel)
284
+ - Subtle (8pt): rounded-rect shapes
285
+ - Comfortable (10pt): buttons, search bar, inspector swatch row
286
+ - Standard (12pt): inspector bar, zoom pill, popovers
287
+ - Large (16pt): floating toolbar, bottom sheets
288
+ - Pill (500pt): drag-grip, segmented toggles, tags
289
+ - Circle (50%): collaborator avatars, comment pins
290
+
291
+ ## 6. Depth & Elevation
292
+
293
+ Miro uses depth to separate *content on the board* from *chrome over the board*, and to make objects feel like physical paper.
294
+
295
+ | Level | Treatment | Use |
296
+ |-------|-----------|-----|
297
+ | Board (Level 0) | No shadow, grid overlay | The infinite canvas itself |
298
+ | Object (Level 1) | `0 8px 18px -8px rgba(0,0,0,0.18)` light / `…0.55` dark | Sticky notes, shapes, images on the board |
299
+ | Chrome (Level 2) | `0 8px 20px -10px rgba(0,0,0,0.16)` | Top bar, zoom pill, inspector bar |
300
+ | Floating (Level 3) | `0 14px 32px -12px rgba(0,0,0,0.22)` | Floating toolbar, popovers, tool sub-palettes |
301
+ | Sheet (Level 4) | `0 -10px 40px rgba(5,0,56,0.20)` | Bottom sheets (Templates, Share, Board menu) |
302
+ | Modal Overlay | `rgba(5,0,56,0.32)` | Dim behind sheets/modals (ink-tinted) |
303
+
304
+ **Shadow Philosophy**: object shadows make sticky notes read as paper lifted off a board (the tactile core of Miro); chrome shadows make floating UI clearly hover above the canvas. The dim behind modals is *ink-tinted* (`rgba(5,0,56,…)`) not pure black, reinforcing the brand. On dark mode, object/chrome shadows deepen and a 1pt divider border is added to floating panels as a secondary elevation cue.
305
+
306
+ ### Motion
307
+ - **Pan**: 1:1 finger tracking with momentum/inertia decay (deceleration ≈ UIScrollView, ~0.5s glide)
308
+ - **Zoom (pinch)**: continuous, anchored at the pinch midpoint; double-tap-to-fit animates over 350ms ease-out
309
+ - **Object drag**: 60fps follow with a slight scale-up (1.03) + shadow bloom; smart-guide snap lines appear instantly; drop settles with spring (response 0.30, damping 0.82) + soft haptic
310
+ - **Object create (e.g. sticky)**: appears with a 200ms spring scale-in from 0.85 at the tap point + soft haptic
311
+ - **Connector draw**: rubber-band line follows the finger; snaps to a target anchor with a subtle magnet pull + tick haptic
312
+ - **Tool select**: active-tool yellow fill cross-fades in 120ms; tool sub-palette pops with 180ms spring
313
+ - **Selection box**: `#4262FF` bounding box + handles fade-in over 120ms when an object is selected
314
+ - **Multiplayer cursors**: remote cursors interpolate smoothly between network updates (~16–60ms tween) so they glide, not jump
315
+ - **Sheet present**: slides up 360ms spring (response 0.40, damping 0.82), ink dim fades in
316
+ - **Save/sync**: silent; a subtle "Saved"/"Syncing…" pill appears only on conflict or offline
317
+ - **Haptic feedback**: soft impact on object create, drag drop/snap, connector snap, tool select
318
+
319
+ ## 7. Do's and Don'ts
320
+
321
+ ### Do
322
+ - Treat the board as an **infinite 2D canvas** — pinch-zoom, two-finger pan, absolute object coordinates
323
+ - Render a **zoom-scaled dotted/square grid** as the board reference — `#D7D7DE` light / `#38383F` dark
324
+ - Use **Miro Yellow** (`#FFD02F`) + **Miro Ink** (`#050038`) for brand/primary actions; glyph on yellow is always ink
325
+ - Reserve **Miro Blue** (`#4262FF`) strictly for selection/interaction state (box, handles, marquee, links)
326
+ - Make sticky notes tight-radius (4pt) pastel paper squares with a soft lift shadow + drag-grip
327
+ - Float the toolbar over the canvas; fill the **active tool** yellow with an ink glyph
328
+ - Keep sticky-note text **auto-fitting** to the note box (16pt w600 down to ~9pt)
329
+ - Show **live multiplayer cursors** with per-user colors + name tags, interpolated smoothly
330
+ - Provide a persistent **zoom pill + minimap** — an infinite canvas needs wayfinding
331
+ - Keep UI text fixed pixel size; only **canvas content** scales with zoom
332
+ - Use object shadows so notes/shapes read as physical paper lifted off the board
333
+
334
+ ### Don't
335
+ - Don't make the board a scroll view or a fixed-size page — it's an unbounded coordinate plane
336
+ - Don't tint the brand with blue or the selection with yellow — yellow = brand/action, blue = selection
337
+ - Don't use pure black for text or dim — Miro Ink `#050038` and ink-tinted dim are correct
338
+ - Don't give sticky notes large/rounded radii — 4pt tight paper corners are the signature
339
+ - Don't dock the toolbar as an opaque bottom bar that frames the canvas — it floats over it
340
+ - Don't desaturate sticky notes in dark mode — paper stays full-color; only chrome goes dark
341
+ - Don't scale UI chrome text with canvas zoom — only objects zoom
342
+ - Don't omit the zoom/minimap affordances — users get lost on an infinite canvas without them
343
+ - Don't make multiplayer cursors jump frame-to-frame — interpolate so they glide
344
+ - Don't animate object creation/drag without spring + haptic — the tactile feel is core
345
+ - Don't box the canvas in chrome borders — chrome floats with shadows, never frames
346
+
347
+ ## 8. Responsive Behavior
348
+
349
+ ### Device Sizes
350
+ | Device | Width | Key Changes |
351
+ |--------|-------|-------------|
352
+ | iPhone SE (3rd gen) | 375pt | Toolbar bottom-center, condensed (overflow into More); zoom pill smaller |
353
+ | iPhone 13/14/15 | 390pt | Standard layout |
354
+ | iPhone 15/16 Pro | 393pt | Dynamic Island accommodated in board top bar |
355
+ | iPhone 15/16 Pro Max | 430pt | Full toolbar visible without overflow |
356
+ | iPad (portrait) | 768pt | Toolbar can dock to the left edge; inspector as a side panel |
357
+ | iPad (landscape) | 1024pt+ | Left toolbar + right properties panel; larger minimap |
358
+
359
+ ### Dynamic Type
360
+ - Sheet titles, body, list rows, board title: full scale
361
+ - Toolbar labels, zoom %, avatar initials, connector labels, tab labels: FIXED (layout-sensitive)
362
+ - Sticky-note text: auto-fits to note box (independent of Dynamic Type — content, not chrome)
363
+
364
+ ### Orientation
365
+ - All screens rotate; the canvas viewport recomputes but object world-coordinates are preserved
366
+ - iPad gains a docked left toolbar + right properties panel in landscape
367
+ - Pinch/pan gestures unaffected by rotation
368
+
369
+ ### Touch Targets
370
+ - Toolbar tool: 40pt tile (≥44pt hit with padding)
371
+ - Zoom `+`/`−`: 38pt wide, 36pt tall (44pt hit area)
372
+ - Object resize handle: 12pt glyph, 44pt hit
373
+ - Avatar in stack: 26pt visible, 44pt hit
374
+ - Comment pin: 28pt, 44pt hit
375
+ - List rows / buttons: ≥44pt tall
376
+
377
+ ### Safe Area Handling
378
+ - Top: board top bar respects safe area + Dynamic Island (translucent over canvas)
379
+ - Bottom: floating toolbar and zoom pill sit above the home indicator
380
+ - Keyboard: editing sticky-note text raises an inline editor above the keyboard; canvas re-centers the note
381
+ - Sides: chrome insets 16pt; the canvas itself bleeds edge-to-edge under the chrome
382
+
383
+ ## 9. Agent Prompt Guide
384
+
385
+ ### Quick Color Reference
386
+ - Board (light): `#F5F5F7` · Board (dark): `#202024`
387
+ - Grid: `#D7D7DE` light / `#38383F` dark
388
+ - Chrome surface: `#FFFFFF` light / `#26262B` dark
389
+ - Text primary: `#050038` (Miro Ink) light / `#ECECEF` dark
390
+ - Text secondary: `#6B6B7B` light / `#9A9AA4` dark
391
+ - Miro Yellow (brand/primary): `#FFD02F` (pressed `#E8B800`)
392
+ - Miro Ink (brand black / dark btn): `#050038`
393
+ - Miro Blue (selection/interaction): `#4262FF`
394
+ - Sticky yellow (default): `#FEF3B6` · pink `#F8C8D8` · green `#C7E8C7` · blue `#BCE0F5`
395
+ - On-note text: `#2A2A33`
396
+ - Error: `#E5484D` · Success: `#2EA56A` · Warning: `#F0A92B`
397
+ - Marquee fill: `#4262FF1F`
398
+
399
+ ### Example Component Prompts
400
+ - "Build the Miro infinite canvas in SwiftUI: a zoom-scaled dotted grid (dots `#D7D7DE` light / `#38383F` dark) on a `#F5F5F7` / `#202024` board. Support `MagnificationGesture` for pinch-zoom anchored at the pinch midpoint, two-finger `DragGesture` for pan with inertia, and double-tap to zoom-to-fit over 350ms. Objects are positioned in absolute world coordinates and transformed by the current zoom/offset."
401
+
402
+ - "Create a Miro sticky note: a ~96pt square with 4pt corner radius, fill `#FEF3B6` (default yellow), soft shadow `0 8px 18px -8px rgba(0,0,0,0.18)`. Auto-fit text in Inter 16pt w600 `#2A2A33`, center-aligned, scaling down to ~9pt to fit. When selected, draw a 2pt `#4262FF` bounding box at 2pt offset with corner resize handles and a bottom drag-grip pill. Double-tap edits text; created with a 200ms spring scale-in from 0.85 + soft haptic."
403
+
404
+ - "Render the Miro floating toolbar: a `#FFFFFF` / `#26262B` rounded bar, 16pt corner radius, 8pt padding, 1pt divider border, shadow `0 14px 32px -12px rgba(0,0,0,0.22)`, bottom-center over the canvas. Tools (Select, Sticky, Pen, Shapes, Text, Frame, Comment, More) are 40pt tiles at 11pt radius; default glyph `#6B6B7B`. The active tool fills `#FFD02F` with a `#050038` glyph. Long-press a tool opens its sub-palette with a 180ms spring."
405
+
406
+ - "Build the Miro primary button: `#FFD02F` background, 10pt corner radius, Inter 15pt w700 `#050038` label, 13pt vertical / 26pt horizontal padding. Pressed: `#E8B800` + scale 0.98 + soft haptic. Variant: dark button with `#050038` bg and `#FFFFFF` label."
407
+
408
+ - "Create a Miro connector: a 2pt line whose endpoints snap to two objects' anchor points and reflow whenever either object moves. Default stroke `#6B6B7B`, `#4262FF` when selected, optional arrowhead, optional mid-label chip in Inter 13pt w500. Drawing rubber-bands from the source and magnet-snaps to the target with a tick haptic."
409
+
410
+ - "Render Miro live multiplayer cursors: per-collaborator colored arrow (colors round-robin from `#4262FF`, `#F24822`, `#14AE5C`, `#9747FF`, `#F2A900`, `#E5489E`) with a name-tag pill in that color (Inter 10pt w700 white). Interpolate position smoothly between network updates so cursors glide, never jump."
411
+
412
+ - "Build the Miro zoom pill: a stacked `#FFFFFF` / `#26262B` pill (12pt radius, soft shadow) bottom-right with `+` (top), the zoom % in Inter 12pt w600 (middle), and `−` (bottom). Tap `+`/`−` steps zoom 25%; tapping the % resets to fit."
413
+
414
+ ### Iteration Guide
415
+ 1. The board is an **infinite 2D canvas** — pinch-zoom, two-finger pan with inertia, absolute world coordinates; NOT a scroll view
416
+ 2. Render a **zoom-scaled dotted/square grid** as the board (`#D7D7DE` light / `#38383F` dark) — it scales with zoom
417
+ 3. **Miro Yellow `#FFD02F` + Miro Ink `#050038`** = brand/primary; glyph on yellow is always ink
418
+ 4. **Miro Blue `#4262FF`** is reserved strictly for selection/interaction (bounding box, handles, marquee, links)
419
+ 5. Sticky notes are tight-4pt-radius pastel paper squares with a soft lift shadow + drag-grip; text auto-fits
420
+ 6. The toolbar **floats** over the canvas; the active tool fills yellow with an ink glyph
421
+ 7. Provide a persistent **zoom pill + minimap** — an infinite canvas needs wayfinding
422
+ 8. Show **live multiplayer cursors** (per-user colors, name tags) interpolated smoothly
423
+ 9. UI chrome text is **fixed size**; only canvas *content* scales with zoom
424
+ 10. Motion is springy + haptic on create/drag/snap; remote cursors glide; dim behind modals is ink-tinted `rgba(5,0,56,0.32)`