designmd-forge 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (907) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +119 -0
  3. package/dist/__tests__/designStore.test.js +41 -0
  4. package/dist/__tests__/linter.test.js +23 -0
  5. package/dist/__tests__/sectionParser.test.js +60 -0
  6. package/dist/__tests__/server.test.js +129 -0
  7. package/dist/constants.js +12 -0
  8. package/dist/data/authoring-guide.md +113 -0
  9. package/dist/data/designs/airbnb.md +545 -0
  10. package/dist/data/designs/airtable.md +554 -0
  11. package/dist/data/designs/apple.md +562 -0
  12. package/dist/data/designs/binance.md +634 -0
  13. package/dist/data/designs/bmw-m.md +503 -0
  14. package/dist/data/designs/bmw.md +544 -0
  15. package/dist/data/designs/bugatti.md +454 -0
  16. package/dist/data/designs/cal.md +542 -0
  17. package/dist/data/designs/card-heavy.md +250 -0
  18. package/dist/data/designs/claude.md +589 -0
  19. package/dist/data/designs/clay.md +541 -0
  20. package/dist/data/designs/clickhouse.md +544 -0
  21. package/dist/data/designs/cohere.md +451 -0
  22. package/dist/data/designs/coinbase.md +570 -0
  23. package/dist/data/designs/composio.md +506 -0
  24. package/dist/data/designs/content-first.md +236 -0
  25. package/dist/data/designs/cursor.md +537 -0
  26. package/dist/data/designs/data-dashboard.md +300 -0
  27. package/dist/data/designs/dell-1996.md +632 -0
  28. package/dist/data/designs/elevenlabs.md +504 -0
  29. package/dist/data/designs/enterprise-neutral.md +252 -0
  30. package/dist/data/designs/expo.md +526 -0
  31. package/dist/data/designs/ferrari.md +531 -0
  32. package/dist/data/designs/figma.md +578 -0
  33. package/dist/data/designs/framer.md +544 -0
  34. package/dist/data/designs/hashicorp.md +575 -0
  35. package/dist/data/designs/hp.md +670 -0
  36. package/dist/data/designs/ibm.md +550 -0
  37. package/dist/data/designs/intercom.md +546 -0
  38. package/dist/data/designs/ios-acorns-android.md +430 -0
  39. package/dist/data/designs/ios-acorns-expo.md +381 -0
  40. package/dist/data/designs/ios-acorns-swiftui.md +378 -0
  41. package/dist/data/designs/ios-acorns.md +384 -0
  42. package/dist/data/designs/ios-airbnb-android.md +658 -0
  43. package/dist/data/designs/ios-airbnb-expo.md +457 -0
  44. package/dist/data/designs/ios-airbnb-swiftui.md +464 -0
  45. package/dist/data/designs/ios-airbnb.md +410 -0
  46. package/dist/data/designs/ios-alltrails-android.md +451 -0
  47. package/dist/data/designs/ios-alltrails-expo.md +400 -0
  48. package/dist/data/designs/ios-alltrails-swiftui.md +343 -0
  49. package/dist/data/designs/ios-alltrails.md +344 -0
  50. package/dist/data/designs/ios-amazon-android.md +686 -0
  51. package/dist/data/designs/ios-amazon-expo.md +433 -0
  52. package/dist/data/designs/ios-amazon-music-android.md +416 -0
  53. package/dist/data/designs/ios-amazon-music-expo.md +368 -0
  54. package/dist/data/designs/ios-amazon-music-swiftui.md +436 -0
  55. package/dist/data/designs/ios-amazon-music.md +389 -0
  56. package/dist/data/designs/ios-amazon-swiftui.md +460 -0
  57. package/dist/data/designs/ios-amazon.md +440 -0
  58. package/dist/data/designs/ios-apple-fitness-android.md +462 -0
  59. package/dist/data/designs/ios-apple-fitness-expo.md +373 -0
  60. package/dist/data/designs/ios-apple-fitness-swiftui.md +373 -0
  61. package/dist/data/designs/ios-apple-fitness.md +399 -0
  62. package/dist/data/designs/ios-apple-maps-android.md +646 -0
  63. package/dist/data/designs/ios-apple-maps-expo.md +557 -0
  64. package/dist/data/designs/ios-apple-maps-swiftui.md +588 -0
  65. package/dist/data/designs/ios-apple-maps.md +447 -0
  66. package/dist/data/designs/ios-apple-music-android.md +737 -0
  67. package/dist/data/designs/ios-apple-music-expo.md +596 -0
  68. package/dist/data/designs/ios-apple-music-swiftui.md +578 -0
  69. package/dist/data/designs/ios-apple-music.md +494 -0
  70. package/dist/data/designs/ios-apple-notes-android.md +675 -0
  71. package/dist/data/designs/ios-apple-notes-expo.md +468 -0
  72. package/dist/data/designs/ios-apple-notes-swiftui.md +489 -0
  73. package/dist/data/designs/ios-apple-notes.md +413 -0
  74. package/dist/data/designs/ios-apple-tv-android.md +405 -0
  75. package/dist/data/designs/ios-apple-tv-expo.md +341 -0
  76. package/dist/data/designs/ios-apple-tv-swiftui.md +348 -0
  77. package/dist/data/designs/ios-apple-tv.md +390 -0
  78. package/dist/data/designs/ios-apple-wallet-android.md +617 -0
  79. package/dist/data/designs/ios-apple-wallet-expo.md +487 -0
  80. package/dist/data/designs/ios-apple-wallet-swiftui.md +425 -0
  81. package/dist/data/designs/ios-apple-wallet.md +360 -0
  82. package/dist/data/designs/ios-asana-android.md +435 -0
  83. package/dist/data/designs/ios-asana-expo.md +411 -0
  84. package/dist/data/designs/ios-asana-swiftui.md +416 -0
  85. package/dist/data/designs/ios-asana.md +433 -0
  86. package/dist/data/designs/ios-audible-android.md +450 -0
  87. package/dist/data/designs/ios-audible-expo.md +328 -0
  88. package/dist/data/designs/ios-audible-swiftui.md +418 -0
  89. package/dist/data/designs/ios-audible.md +364 -0
  90. package/dist/data/designs/ios-bandcamp-android.md +471 -0
  91. package/dist/data/designs/ios-bandcamp-expo.md +378 -0
  92. package/dist/data/designs/ios-bandcamp-swiftui.md +374 -0
  93. package/dist/data/designs/ios-bandcamp.md +372 -0
  94. package/dist/data/designs/ios-bear-android.md +496 -0
  95. package/dist/data/designs/ios-bear-expo.md +449 -0
  96. package/dist/data/designs/ios-bear-swiftui.md +479 -0
  97. package/dist/data/designs/ios-bear.md +412 -0
  98. package/dist/data/designs/ios-bereal-android.md +392 -0
  99. package/dist/data/designs/ios-bereal-expo.md +299 -0
  100. package/dist/data/designs/ios-bereal-swiftui.md +319 -0
  101. package/dist/data/designs/ios-bereal.md +336 -0
  102. package/dist/data/designs/ios-binance-android.md +481 -0
  103. package/dist/data/designs/ios-binance-expo.md +404 -0
  104. package/dist/data/designs/ios-binance-swiftui.md +418 -0
  105. package/dist/data/designs/ios-binance.md +410 -0
  106. package/dist/data/designs/ios-bluesky-android.md +442 -0
  107. package/dist/data/designs/ios-bluesky-expo.md +362 -0
  108. package/dist/data/designs/ios-bluesky-swiftui.md +328 -0
  109. package/dist/data/designs/ios-bluesky.md +338 -0
  110. package/dist/data/designs/ios-booking-android.md +471 -0
  111. package/dist/data/designs/ios-booking-expo.md +364 -0
  112. package/dist/data/designs/ios-booking-swiftui.md +377 -0
  113. package/dist/data/designs/ios-booking.md +346 -0
  114. package/dist/data/designs/ios-bumble-android.md +756 -0
  115. package/dist/data/designs/ios-bumble-expo.md +629 -0
  116. package/dist/data/designs/ios-bumble-swiftui.md +546 -0
  117. package/dist/data/designs/ios-bumble.md +424 -0
  118. package/dist/data/designs/ios-cal-ai-android.md +664 -0
  119. package/dist/data/designs/ios-cal-ai-expo.md +415 -0
  120. package/dist/data/designs/ios-cal-ai-swiftui.md +486 -0
  121. package/dist/data/designs/ios-cal-ai.md +387 -0
  122. package/dist/data/designs/ios-calm-android.md +431 -0
  123. package/dist/data/designs/ios-calm-expo.md +384 -0
  124. package/dist/data/designs/ios-calm-swiftui.md +327 -0
  125. package/dist/data/designs/ios-calm.md +356 -0
  126. package/dist/data/designs/ios-canva-android.md +469 -0
  127. package/dist/data/designs/ios-canva-expo.md +374 -0
  128. package/dist/data/designs/ios-canva-swiftui.md +422 -0
  129. package/dist/data/designs/ios-canva.md +395 -0
  130. package/dist/data/designs/ios-cash-app-android.md +601 -0
  131. package/dist/data/designs/ios-cash-app-expo.md +453 -0
  132. package/dist/data/designs/ios-cash-app-swiftui.md +463 -0
  133. package/dist/data/designs/ios-cash-app.md +365 -0
  134. package/dist/data/designs/ios-character-ai-android.md +489 -0
  135. package/dist/data/designs/ios-character-ai-expo.md +420 -0
  136. package/dist/data/designs/ios-character-ai-swiftui.md +417 -0
  137. package/dist/data/designs/ios-character-ai.md +392 -0
  138. package/dist/data/designs/ios-charles-schwab-android.md +454 -0
  139. package/dist/data/designs/ios-charles-schwab-expo.md +388 -0
  140. package/dist/data/designs/ios-charles-schwab-swiftui.md +394 -0
  141. package/dist/data/designs/ios-charles-schwab.md +380 -0
  142. package/dist/data/designs/ios-chatgpt-android.md +753 -0
  143. package/dist/data/designs/ios-chatgpt-expo.md +644 -0
  144. package/dist/data/designs/ios-chatgpt-swiftui.md +653 -0
  145. package/dist/data/designs/ios-chatgpt.md +466 -0
  146. package/dist/data/designs/ios-chime-android.md +438 -0
  147. package/dist/data/designs/ios-chime-expo.md +419 -0
  148. package/dist/data/designs/ios-chime-swiftui.md +383 -0
  149. package/dist/data/designs/ios-chime.md +389 -0
  150. package/dist/data/designs/ios-chipotle-android.md +397 -0
  151. package/dist/data/designs/ios-chipotle-expo.md +301 -0
  152. package/dist/data/designs/ios-chipotle-swiftui.md +345 -0
  153. package/dist/data/designs/ios-chipotle.md +340 -0
  154. package/dist/data/designs/ios-citymapper-android.md +466 -0
  155. package/dist/data/designs/ios-citymapper-expo.md +420 -0
  156. package/dist/data/designs/ios-citymapper-swiftui.md +424 -0
  157. package/dist/data/designs/ios-citymapper.md +394 -0
  158. package/dist/data/designs/ios-claude-android.md +625 -0
  159. package/dist/data/designs/ios-claude-expo.md +671 -0
  160. package/dist/data/designs/ios-claude-swiftui.md +649 -0
  161. package/dist/data/designs/ios-claude.md +447 -0
  162. package/dist/data/designs/ios-clickup-android.md +484 -0
  163. package/dist/data/designs/ios-clickup-expo.md +423 -0
  164. package/dist/data/designs/ios-clickup-swiftui.md +416 -0
  165. package/dist/data/designs/ios-clickup.md +431 -0
  166. package/dist/data/designs/ios-clubhouse-android.md +524 -0
  167. package/dist/data/designs/ios-clubhouse-expo.md +425 -0
  168. package/dist/data/designs/ios-clubhouse-swiftui.md +447 -0
  169. package/dist/data/designs/ios-clubhouse.md +406 -0
  170. package/dist/data/designs/ios-coffee-meets-bagel-android.md +461 -0
  171. package/dist/data/designs/ios-coffee-meets-bagel-expo.md +372 -0
  172. package/dist/data/designs/ios-coffee-meets-bagel-swiftui.md +368 -0
  173. package/dist/data/designs/ios-coffee-meets-bagel.md +376 -0
  174. package/dist/data/designs/ios-coinbase-android.md +611 -0
  175. package/dist/data/designs/ios-coinbase-expo.md +500 -0
  176. package/dist/data/designs/ios-coinbase-swiftui.md +490 -0
  177. package/dist/data/designs/ios-coinbase.md +409 -0
  178. package/dist/data/designs/ios-copilot-android.md +625 -0
  179. package/dist/data/designs/ios-copilot-expo.md +423 -0
  180. package/dist/data/designs/ios-copilot-swiftui.md +471 -0
  181. package/dist/data/designs/ios-copilot.md +367 -0
  182. package/dist/data/designs/ios-craft-android.md +459 -0
  183. package/dist/data/designs/ios-craft-expo.md +417 -0
  184. package/dist/data/designs/ios-craft-swiftui.md +449 -0
  185. package/dist/data/designs/ios-craft.md +449 -0
  186. package/dist/data/designs/ios-crunchyroll-android.md +432 -0
  187. package/dist/data/designs/ios-crunchyroll-expo.md +388 -0
  188. package/dist/data/designs/ios-crunchyroll-swiftui.md +417 -0
  189. package/dist/data/designs/ios-crunchyroll.md +388 -0
  190. package/dist/data/designs/ios-crypto-com-android.md +461 -0
  191. package/dist/data/designs/ios-crypto-com-expo.md +404 -0
  192. package/dist/data/designs/ios-crypto-com-swiftui.md +419 -0
  193. package/dist/data/designs/ios-crypto-com.md +410 -0
  194. package/dist/data/designs/ios-deepseek-android.md +471 -0
  195. package/dist/data/designs/ios-deepseek-expo.md +391 -0
  196. package/dist/data/designs/ios-deepseek-swiftui.md +354 -0
  197. package/dist/data/designs/ios-deepseek.md +393 -0
  198. package/dist/data/designs/ios-deezer-android.md +475 -0
  199. package/dist/data/designs/ios-deezer-expo.md +400 -0
  200. package/dist/data/designs/ios-deezer-swiftui.md +430 -0
  201. package/dist/data/designs/ios-deezer.md +388 -0
  202. package/dist/data/designs/ios-deliveroo-android.md +493 -0
  203. package/dist/data/designs/ios-deliveroo-expo.md +424 -0
  204. package/dist/data/designs/ios-deliveroo-swiftui.md +398 -0
  205. package/dist/data/designs/ios-deliveroo.md +420 -0
  206. package/dist/data/designs/ios-delta-android.md +439 -0
  207. package/dist/data/designs/ios-delta-expo.md +381 -0
  208. package/dist/data/designs/ios-delta-swiftui.md +400 -0
  209. package/dist/data/designs/ios-delta.md +397 -0
  210. package/dist/data/designs/ios-discord-android.md +611 -0
  211. package/dist/data/designs/ios-discord-expo.md +618 -0
  212. package/dist/data/designs/ios-discord-swiftui.md +630 -0
  213. package/dist/data/designs/ios-discord.md +451 -0
  214. package/dist/data/designs/ios-disney-plus-android.md +464 -0
  215. package/dist/data/designs/ios-disney-plus-expo.md +358 -0
  216. package/dist/data/designs/ios-disney-plus-swiftui.md +412 -0
  217. package/dist/data/designs/ios-disney-plus.md +355 -0
  218. package/dist/data/designs/ios-dominos-android.md +417 -0
  219. package/dist/data/designs/ios-dominos-expo.md +316 -0
  220. package/dist/data/designs/ios-dominos-swiftui.md +340 -0
  221. package/dist/data/designs/ios-dominos.md +347 -0
  222. package/dist/data/designs/ios-doordash-android.md +527 -0
  223. package/dist/data/designs/ios-doordash-expo.md +323 -0
  224. package/dist/data/designs/ios-doordash-swiftui.md +301 -0
  225. package/dist/data/designs/ios-doordash.md +393 -0
  226. package/dist/data/designs/ios-dropbox-android.md +522 -0
  227. package/dist/data/designs/ios-dropbox-expo.md +393 -0
  228. package/dist/data/designs/ios-dropbox-swiftui.md +400 -0
  229. package/dist/data/designs/ios-dropbox.md +374 -0
  230. package/dist/data/designs/ios-duolingo-android.md +641 -0
  231. package/dist/data/designs/ios-duolingo-expo.md +597 -0
  232. package/dist/data/designs/ios-duolingo-swiftui.md +539 -0
  233. package/dist/data/designs/ios-duolingo.md +409 -0
  234. package/dist/data/designs/ios-ebay-android.md +436 -0
  235. package/dist/data/designs/ios-ebay-expo.md +344 -0
  236. package/dist/data/designs/ios-ebay-swiftui.md +308 -0
  237. package/dist/data/designs/ios-ebay.md +355 -0
  238. package/dist/data/designs/ios-espn-android.md +468 -0
  239. package/dist/data/designs/ios-espn-expo.md +387 -0
  240. package/dist/data/designs/ios-espn-swiftui.md +410 -0
  241. package/dist/data/designs/ios-espn.md +384 -0
  242. package/dist/data/designs/ios-etsy-android.md +439 -0
  243. package/dist/data/designs/ios-etsy-expo.md +351 -0
  244. package/dist/data/designs/ios-etsy-swiftui.md +296 -0
  245. package/dist/data/designs/ios-etsy.md +355 -0
  246. package/dist/data/designs/ios-evernote-android.md +419 -0
  247. package/dist/data/designs/ios-evernote-expo.md +379 -0
  248. package/dist/data/designs/ios-evernote-swiftui.md +380 -0
  249. package/dist/data/designs/ios-evernote.md +416 -0
  250. package/dist/data/designs/ios-expedia-android.md +451 -0
  251. package/dist/data/designs/ios-expedia-expo.md +433 -0
  252. package/dist/data/designs/ios-expedia-swiftui.md +399 -0
  253. package/dist/data/designs/ios-expedia.md +431 -0
  254. package/dist/data/designs/ios-facebook-android.md +628 -0
  255. package/dist/data/designs/ios-facebook-expo.md +471 -0
  256. package/dist/data/designs/ios-facebook-swiftui.md +459 -0
  257. package/dist/data/designs/ios-facebook.md +452 -0
  258. package/dist/data/designs/ios-feeld-android.md +431 -0
  259. package/dist/data/designs/ios-feeld-expo.md +379 -0
  260. package/dist/data/designs/ios-feeld-swiftui.md +401 -0
  261. package/dist/data/designs/ios-feeld.md +378 -0
  262. package/dist/data/designs/ios-fidelity-android.md +426 -0
  263. package/dist/data/designs/ios-fidelity-expo.md +396 -0
  264. package/dist/data/designs/ios-fidelity-swiftui.md +398 -0
  265. package/dist/data/designs/ios-fidelity.md +387 -0
  266. package/dist/data/designs/ios-figma-android.md +578 -0
  267. package/dist/data/designs/ios-figma-expo.md +504 -0
  268. package/dist/data/designs/ios-figma-swiftui.md +542 -0
  269. package/dist/data/designs/ios-figma.md +404 -0
  270. package/dist/data/designs/ios-fitbit-android.md +439 -0
  271. package/dist/data/designs/ios-fitbit-expo.md +389 -0
  272. package/dist/data/designs/ios-fitbit-swiftui.md +380 -0
  273. package/dist/data/designs/ios-fitbit.md +396 -0
  274. package/dist/data/designs/ios-flickr-android.md +506 -0
  275. package/dist/data/designs/ios-flickr-expo.md +434 -0
  276. package/dist/data/designs/ios-flickr-swiftui.md +421 -0
  277. package/dist/data/designs/ios-flickr.md +394 -0
  278. package/dist/data/designs/ios-flighty-android.md +418 -0
  279. package/dist/data/designs/ios-flighty-expo.md +353 -0
  280. package/dist/data/designs/ios-flighty-swiftui.md +337 -0
  281. package/dist/data/designs/ios-flighty.md +357 -0
  282. package/dist/data/designs/ios-flo-android.md +447 -0
  283. package/dist/data/designs/ios-flo-expo.md +363 -0
  284. package/dist/data/designs/ios-flo-swiftui.md +355 -0
  285. package/dist/data/designs/ios-flo.md +351 -0
  286. package/dist/data/designs/ios-garmin-connect-android.md +531 -0
  287. package/dist/data/designs/ios-garmin-connect-expo.md +429 -0
  288. package/dist/data/designs/ios-garmin-connect-swiftui.md +459 -0
  289. package/dist/data/designs/ios-garmin-connect.md +419 -0
  290. package/dist/data/designs/ios-gas-android.md +438 -0
  291. package/dist/data/designs/ios-gas-expo.md +350 -0
  292. package/dist/data/designs/ios-gas-swiftui.md +329 -0
  293. package/dist/data/designs/ios-gas.md +387 -0
  294. package/dist/data/designs/ios-gemini-android.md +568 -0
  295. package/dist/data/designs/ios-gemini-expo.md +416 -0
  296. package/dist/data/designs/ios-gemini-swiftui.md +424 -0
  297. package/dist/data/designs/ios-gemini.md +351 -0
  298. package/dist/data/designs/ios-github-android.md +507 -0
  299. package/dist/data/designs/ios-github-expo.md +486 -0
  300. package/dist/data/designs/ios-github-swiftui.md +459 -0
  301. package/dist/data/designs/ios-github.md +394 -0
  302. package/dist/data/designs/ios-gmail-android.md +548 -0
  303. package/dist/data/designs/ios-gmail-expo.md +457 -0
  304. package/dist/data/designs/ios-gmail-swiftui.md +470 -0
  305. package/dist/data/designs/ios-gmail.md +441 -0
  306. package/dist/data/designs/ios-goodreads-android.md +436 -0
  307. package/dist/data/designs/ios-goodreads-expo.md +407 -0
  308. package/dist/data/designs/ios-goodreads-swiftui.md +378 -0
  309. package/dist/data/designs/ios-goodreads.md +385 -0
  310. package/dist/data/designs/ios-google-calendar-android.md +565 -0
  311. package/dist/data/designs/ios-google-calendar-expo.md +616 -0
  312. package/dist/data/designs/ios-google-calendar-swiftui.md +585 -0
  313. package/dist/data/designs/ios-google-calendar.md +431 -0
  314. package/dist/data/designs/ios-google-maps-android.md +614 -0
  315. package/dist/data/designs/ios-google-maps-expo.md +515 -0
  316. package/dist/data/designs/ios-google-maps-swiftui.md +484 -0
  317. package/dist/data/designs/ios-google-maps.md +451 -0
  318. package/dist/data/designs/ios-grammarly-android.md +449 -0
  319. package/dist/data/designs/ios-grammarly-expo.md +383 -0
  320. package/dist/data/designs/ios-grammarly-swiftui.md +381 -0
  321. package/dist/data/designs/ios-grammarly.md +392 -0
  322. package/dist/data/designs/ios-grindr-android.md +494 -0
  323. package/dist/data/designs/ios-grindr-expo.md +358 -0
  324. package/dist/data/designs/ios-grindr-swiftui.md +357 -0
  325. package/dist/data/designs/ios-grindr.md +356 -0
  326. package/dist/data/designs/ios-grok-android.md +471 -0
  327. package/dist/data/designs/ios-grok-expo.md +388 -0
  328. package/dist/data/designs/ios-grok-swiftui.md +397 -0
  329. package/dist/data/designs/ios-grok.md +357 -0
  330. package/dist/data/designs/ios-groupme-android.md +551 -0
  331. package/dist/data/designs/ios-groupme-expo.md +442 -0
  332. package/dist/data/designs/ios-groupme-swiftui.md +439 -0
  333. package/dist/data/designs/ios-groupme.md +424 -0
  334. package/dist/data/designs/ios-grubhub-android.md +506 -0
  335. package/dist/data/designs/ios-grubhub-expo.md +428 -0
  336. package/dist/data/designs/ios-grubhub-swiftui.md +408 -0
  337. package/dist/data/designs/ios-grubhub.md +427 -0
  338. package/dist/data/designs/ios-happn-android.md +464 -0
  339. package/dist/data/designs/ios-happn-expo.md +411 -0
  340. package/dist/data/designs/ios-happn-swiftui.md +401 -0
  341. package/dist/data/designs/ios-happn.md +400 -0
  342. package/dist/data/designs/ios-headspace-android.md +688 -0
  343. package/dist/data/designs/ios-headspace-expo.md +574 -0
  344. package/dist/data/designs/ios-headspace-swiftui.md +498 -0
  345. package/dist/data/designs/ios-headspace.md +430 -0
  346. package/dist/data/designs/ios-hevy-android.md +473 -0
  347. package/dist/data/designs/ios-hevy-expo.md +405 -0
  348. package/dist/data/designs/ios-hevy-swiftui.md +367 -0
  349. package/dist/data/designs/ios-hevy.md +410 -0
  350. package/dist/data/designs/ios-hinge-android.md +743 -0
  351. package/dist/data/designs/ios-hinge-expo.md +580 -0
  352. package/dist/data/designs/ios-hinge-swiftui.md +512 -0
  353. package/dist/data/designs/ios-hinge.md +405 -0
  354. package/dist/data/designs/ios-hopper-android.md +440 -0
  355. package/dist/data/designs/ios-hopper-expo.md +353 -0
  356. package/dist/data/designs/ios-hopper-swiftui.md +340 -0
  357. package/dist/data/designs/ios-hopper.md +354 -0
  358. package/dist/data/designs/ios-hulu-android.md +435 -0
  359. package/dist/data/designs/ios-hulu-expo.md +331 -0
  360. package/dist/data/designs/ios-hulu-swiftui.md +374 -0
  361. package/dist/data/designs/ios-hulu.md +353 -0
  362. package/dist/data/designs/ios-iheartradio-android.md +481 -0
  363. package/dist/data/designs/ios-iheartradio-expo.md +417 -0
  364. package/dist/data/designs/ios-iheartradio-swiftui.md +423 -0
  365. package/dist/data/designs/ios-iheartradio.md +381 -0
  366. package/dist/data/designs/ios-imessage-android.md +426 -0
  367. package/dist/data/designs/ios-imessage-expo.md +384 -0
  368. package/dist/data/designs/ios-imessage-swiftui.md +378 -0
  369. package/dist/data/designs/ios-imessage.md +394 -0
  370. package/dist/data/designs/ios-instacart-android.md +471 -0
  371. package/dist/data/designs/ios-instacart-expo.md +349 -0
  372. package/dist/data/designs/ios-instacart-swiftui.md +378 -0
  373. package/dist/data/designs/ios-instacart.md +360 -0
  374. package/dist/data/designs/ios-instagram-android.md +646 -0
  375. package/dist/data/designs/ios-instagram-expo.md +310 -0
  376. package/dist/data/designs/ios-instagram-swiftui.md +333 -0
  377. package/dist/data/designs/ios-instagram.md +376 -0
  378. package/dist/data/designs/ios-jira-android.md +432 -0
  379. package/dist/data/designs/ios-jira-expo.md +375 -0
  380. package/dist/data/designs/ios-jira-swiftui.md +433 -0
  381. package/dist/data/designs/ios-jira.md +424 -0
  382. package/dist/data/designs/ios-kakaotalk-android.md +491 -0
  383. package/dist/data/designs/ios-kakaotalk-expo.md +418 -0
  384. package/dist/data/designs/ios-kakaotalk-swiftui.md +406 -0
  385. package/dist/data/designs/ios-kakaotalk.md +414 -0
  386. package/dist/data/designs/ios-kayak-android.md +466 -0
  387. package/dist/data/designs/ios-kayak-expo.md +407 -0
  388. package/dist/data/designs/ios-kayak-swiftui.md +426 -0
  389. package/dist/data/designs/ios-kayak.md +392 -0
  390. package/dist/data/designs/ios-kick-android.md +487 -0
  391. package/dist/data/designs/ios-kick-expo.md +434 -0
  392. package/dist/data/designs/ios-kick-swiftui.md +429 -0
  393. package/dist/data/designs/ios-kick.md +389 -0
  394. package/dist/data/designs/ios-kik-android.md +433 -0
  395. package/dist/data/designs/ios-kik-expo.md +363 -0
  396. package/dist/data/designs/ios-kik-swiftui.md +363 -0
  397. package/dist/data/designs/ios-kik.md +392 -0
  398. package/dist/data/designs/ios-kindle-android.md +439 -0
  399. package/dist/data/designs/ios-kindle-expo.md +356 -0
  400. package/dist/data/designs/ios-kindle-swiftui.md +372 -0
  401. package/dist/data/designs/ios-kindle.md +369 -0
  402. package/dist/data/designs/ios-klarna-android.md +420 -0
  403. package/dist/data/designs/ios-klarna-expo.md +349 -0
  404. package/dist/data/designs/ios-klarna-swiftui.md +360 -0
  405. package/dist/data/designs/ios-klarna.md +356 -0
  406. package/dist/data/designs/ios-lemon8-android.md +492 -0
  407. package/dist/data/designs/ios-lemon8-expo.md +413 -0
  408. package/dist/data/designs/ios-lemon8-swiftui.md +428 -0
  409. package/dist/data/designs/ios-lemon8.md +378 -0
  410. package/dist/data/designs/ios-life360-android.md +474 -0
  411. package/dist/data/designs/ios-life360-expo.md +375 -0
  412. package/dist/data/designs/ios-life360-swiftui.md +390 -0
  413. package/dist/data/designs/ios-life360.md +402 -0
  414. package/dist/data/designs/ios-line-android.md +517 -0
  415. package/dist/data/designs/ios-line-expo.md +402 -0
  416. package/dist/data/designs/ios-line-swiftui.md +361 -0
  417. package/dist/data/designs/ios-line.md +362 -0
  418. package/dist/data/designs/ios-linear-android.md +457 -0
  419. package/dist/data/designs/ios-linear-expo.md +367 -0
  420. package/dist/data/designs/ios-linear-swiftui.md +401 -0
  421. package/dist/data/designs/ios-linear.md +368 -0
  422. package/dist/data/designs/ios-linkedin-android.md +620 -0
  423. package/dist/data/designs/ios-linkedin-expo.md +469 -0
  424. package/dist/data/designs/ios-linkedin-swiftui.md +472 -0
  425. package/dist/data/designs/ios-linkedin.md +444 -0
  426. package/dist/data/designs/ios-locket-android.md +500 -0
  427. package/dist/data/designs/ios-locket-expo.md +375 -0
  428. package/dist/data/designs/ios-locket-swiftui.md +375 -0
  429. package/dist/data/designs/ios-locket.md +381 -0
  430. package/dist/data/designs/ios-lyft-android.md +406 -0
  431. package/dist/data/designs/ios-lyft-expo.md +333 -0
  432. package/dist/data/designs/ios-lyft-swiftui.md +315 -0
  433. package/dist/data/designs/ios-lyft.md +337 -0
  434. package/dist/data/designs/ios-marriott-bonvoy-android.md +488 -0
  435. package/dist/data/designs/ios-marriott-bonvoy-expo.md +412 -0
  436. package/dist/data/designs/ios-marriott-bonvoy-swiftui.md +461 -0
  437. package/dist/data/designs/ios-marriott-bonvoy.md +379 -0
  438. package/dist/data/designs/ios-mastodon-android.md +476 -0
  439. package/dist/data/designs/ios-mastodon-expo.md +379 -0
  440. package/dist/data/designs/ios-mastodon-swiftui.md +349 -0
  441. package/dist/data/designs/ios-mastodon.md +337 -0
  442. package/dist/data/designs/ios-match-android.md +496 -0
  443. package/dist/data/designs/ios-match-expo.md +393 -0
  444. package/dist/data/designs/ios-match-swiftui.md +450 -0
  445. package/dist/data/designs/ios-match.md +382 -0
  446. package/dist/data/designs/ios-max-android.md +454 -0
  447. package/dist/data/designs/ios-max-expo.md +342 -0
  448. package/dist/data/designs/ios-max-swiftui.md +332 -0
  449. package/dist/data/designs/ios-max.md +352 -0
  450. package/dist/data/designs/ios-mcdonalds-android.md +497 -0
  451. package/dist/data/designs/ios-mcdonalds-expo.md +382 -0
  452. package/dist/data/designs/ios-mcdonalds-swiftui.md +394 -0
  453. package/dist/data/designs/ios-mcdonalds.md +410 -0
  454. package/dist/data/designs/ios-messenger-android.md +523 -0
  455. package/dist/data/designs/ios-messenger-expo.md +379 -0
  456. package/dist/data/designs/ios-messenger-swiftui.md +369 -0
  457. package/dist/data/designs/ios-messenger.md +361 -0
  458. package/dist/data/designs/ios-microsoft-teams-android.md +446 -0
  459. package/dist/data/designs/ios-microsoft-teams-expo.md +362 -0
  460. package/dist/data/designs/ios-microsoft-teams-swiftui.md +384 -0
  461. package/dist/data/designs/ios-microsoft-teams.md +359 -0
  462. package/dist/data/designs/ios-midjourney-android.md +503 -0
  463. package/dist/data/designs/ios-midjourney-expo.md +406 -0
  464. package/dist/data/designs/ios-midjourney-swiftui.md +376 -0
  465. package/dist/data/designs/ios-midjourney.md +407 -0
  466. package/dist/data/designs/ios-miro-android.md +475 -0
  467. package/dist/data/designs/ios-miro-expo.md +421 -0
  468. package/dist/data/designs/ios-miro-swiftui.md +407 -0
  469. package/dist/data/designs/ios-miro.md +424 -0
  470. package/dist/data/designs/ios-monday-android.md +426 -0
  471. package/dist/data/designs/ios-monday-expo.md +382 -0
  472. package/dist/data/designs/ios-monday-swiftui.md +386 -0
  473. package/dist/data/designs/ios-monday.md +415 -0
  474. package/dist/data/designs/ios-monzo-android.md +423 -0
  475. package/dist/data/designs/ios-monzo-expo.md +391 -0
  476. package/dist/data/designs/ios-monzo-swiftui.md +371 -0
  477. package/dist/data/designs/ios-monzo.md +382 -0
  478. package/dist/data/designs/ios-myfitnesspal-android.md +631 -0
  479. package/dist/data/designs/ios-myfitnesspal-expo.md +489 -0
  480. package/dist/data/designs/ios-myfitnesspal-swiftui.md +500 -0
  481. package/dist/data/designs/ios-myfitnesspal.md +408 -0
  482. package/dist/data/designs/ios-netflix-android.md +570 -0
  483. package/dist/data/designs/ios-netflix-expo.md +528 -0
  484. package/dist/data/designs/ios-netflix-swiftui.md +543 -0
  485. package/dist/data/designs/ios-netflix.md +476 -0
  486. package/dist/data/designs/ios-nextdoor-android.md +399 -0
  487. package/dist/data/designs/ios-nextdoor-expo.md +317 -0
  488. package/dist/data/designs/ios-nextdoor-swiftui.md +343 -0
  489. package/dist/data/designs/ios-nextdoor.md +332 -0
  490. package/dist/data/designs/ios-nike-run-club-android.md +598 -0
  491. package/dist/data/designs/ios-nike-run-club-expo.md +459 -0
  492. package/dist/data/designs/ios-nike-run-club-swiftui.md +474 -0
  493. package/dist/data/designs/ios-nike-run-club.md +400 -0
  494. package/dist/data/designs/ios-noom-android.md +455 -0
  495. package/dist/data/designs/ios-noom-expo.md +362 -0
  496. package/dist/data/designs/ios-noom-swiftui.md +369 -0
  497. package/dist/data/designs/ios-noom.md +404 -0
  498. package/dist/data/designs/ios-notion-android.md +575 -0
  499. package/dist/data/designs/ios-notion-expo.md +543 -0
  500. package/dist/data/designs/ios-notion-swiftui.md +562 -0
  501. package/dist/data/designs/ios-notion.md +506 -0
  502. package/dist/data/designs/ios-nubank-android.md +447 -0
  503. package/dist/data/designs/ios-nubank-expo.md +391 -0
  504. package/dist/data/designs/ios-nubank-swiftui.md +391 -0
  505. package/dist/data/designs/ios-nubank.md +388 -0
  506. package/dist/data/designs/ios-obsidian-android.md +456 -0
  507. package/dist/data/designs/ios-obsidian-expo.md +401 -0
  508. package/dist/data/designs/ios-obsidian-swiftui.md +412 -0
  509. package/dist/data/designs/ios-obsidian.md +363 -0
  510. package/dist/data/designs/ios-okcupid-android.md +496 -0
  511. package/dist/data/designs/ios-okcupid-expo.md +378 -0
  512. package/dist/data/designs/ios-okcupid-swiftui.md +343 -0
  513. package/dist/data/designs/ios-okcupid.md +364 -0
  514. package/dist/data/designs/ios-opentable-android.md +426 -0
  515. package/dist/data/designs/ios-opentable-expo.md +350 -0
  516. package/dist/data/designs/ios-opentable-swiftui.md +328 -0
  517. package/dist/data/designs/ios-opentable.md +411 -0
  518. package/dist/data/designs/ios-oura-android.md +426 -0
  519. package/dist/data/designs/ios-oura-expo.md +353 -0
  520. package/dist/data/designs/ios-oura-swiftui.md +327 -0
  521. package/dist/data/designs/ios-oura.md +356 -0
  522. package/dist/data/designs/ios-overcast-android.md +508 -0
  523. package/dist/data/designs/ios-overcast-expo.md +420 -0
  524. package/dist/data/designs/ios-overcast-swiftui.md +427 -0
  525. package/dist/data/designs/ios-overcast.md +414 -0
  526. package/dist/data/designs/ios-pandora-android.md +477 -0
  527. package/dist/data/designs/ios-pandora-expo.md +406 -0
  528. package/dist/data/designs/ios-pandora-swiftui.md +413 -0
  529. package/dist/data/designs/ios-pandora.md +366 -0
  530. package/dist/data/designs/ios-panera-android.md +414 -0
  531. package/dist/data/designs/ios-panera-expo.md +352 -0
  532. package/dist/data/designs/ios-panera-swiftui.md +369 -0
  533. package/dist/data/designs/ios-panera.md +412 -0
  534. package/dist/data/designs/ios-paramount-plus-android.md +415 -0
  535. package/dist/data/designs/ios-paramount-plus-expo.md +363 -0
  536. package/dist/data/designs/ios-paramount-plus-swiftui.md +372 -0
  537. package/dist/data/designs/ios-paramount-plus.md +400 -0
  538. package/dist/data/designs/ios-paypal-android.md +535 -0
  539. package/dist/data/designs/ios-paypal-expo.md +429 -0
  540. package/dist/data/designs/ios-paypal-swiftui.md +466 -0
  541. package/dist/data/designs/ios-paypal.md +393 -0
  542. package/dist/data/designs/ios-peacock-android.md +453 -0
  543. package/dist/data/designs/ios-peacock-expo.md +393 -0
  544. package/dist/data/designs/ios-peacock-swiftui.md +420 -0
  545. package/dist/data/designs/ios-peacock.md +411 -0
  546. package/dist/data/designs/ios-peloton-android.md +470 -0
  547. package/dist/data/designs/ios-peloton-expo.md +401 -0
  548. package/dist/data/designs/ios-peloton-swiftui.md +409 -0
  549. package/dist/data/designs/ios-peloton.md +415 -0
  550. package/dist/data/designs/ios-perplexity-android.md +553 -0
  551. package/dist/data/designs/ios-perplexity-expo.md +703 -0
  552. package/dist/data/designs/ios-perplexity-swiftui.md +602 -0
  553. package/dist/data/designs/ios-perplexity.md +453 -0
  554. package/dist/data/designs/ios-pinterest-android.md +551 -0
  555. package/dist/data/designs/ios-pinterest-expo.md +466 -0
  556. package/dist/data/designs/ios-pinterest-swiftui.md +464 -0
  557. package/dist/data/designs/ios-pinterest.md +427 -0
  558. package/dist/data/designs/ios-plenty-of-fish-android.md +462 -0
  559. package/dist/data/designs/ios-plenty-of-fish-expo.md +380 -0
  560. package/dist/data/designs/ios-plenty-of-fish-swiftui.md +429 -0
  561. package/dist/data/designs/ios-plenty-of-fish.md +387 -0
  562. package/dist/data/designs/ios-plex-android.md +403 -0
  563. package/dist/data/designs/ios-plex-expo.md +333 -0
  564. package/dist/data/designs/ios-plex-swiftui.md +349 -0
  565. package/dist/data/designs/ios-plex.md +379 -0
  566. package/dist/data/designs/ios-pluto-tv-android.md +413 -0
  567. package/dist/data/designs/ios-pluto-tv-expo.md +379 -0
  568. package/dist/data/designs/ios-pluto-tv-swiftui.md +411 -0
  569. package/dist/data/designs/ios-pluto-tv.md +362 -0
  570. package/dist/data/designs/ios-pocket-casts-android.md +492 -0
  571. package/dist/data/designs/ios-pocket-casts-expo.md +430 -0
  572. package/dist/data/designs/ios-pocket-casts-swiftui.md +479 -0
  573. package/dist/data/designs/ios-pocket-casts.md +427 -0
  574. package/dist/data/designs/ios-postman-android.md +472 -0
  575. package/dist/data/designs/ios-postman-expo.md +372 -0
  576. package/dist/data/designs/ios-postman-swiftui.md +377 -0
  577. package/dist/data/designs/ios-postman.md +405 -0
  578. package/dist/data/designs/ios-prime-video-android.md +447 -0
  579. package/dist/data/designs/ios-prime-video-expo.md +365 -0
  580. package/dist/data/designs/ios-prime-video-swiftui.md +333 -0
  581. package/dist/data/designs/ios-prime-video.md +351 -0
  582. package/dist/data/designs/ios-quora-android.md +513 -0
  583. package/dist/data/designs/ios-quora-expo.md +362 -0
  584. package/dist/data/designs/ios-quora-swiftui.md +375 -0
  585. package/dist/data/designs/ios-quora.md +359 -0
  586. package/dist/data/designs/ios-raya-android.md +401 -0
  587. package/dist/data/designs/ios-raya-expo.md +366 -0
  588. package/dist/data/designs/ios-raya-swiftui.md +393 -0
  589. package/dist/data/designs/ios-raya.md +366 -0
  590. package/dist/data/designs/ios-reddit-android.md +605 -0
  591. package/dist/data/designs/ios-reddit-expo.md +553 -0
  592. package/dist/data/designs/ios-reddit-swiftui.md +514 -0
  593. package/dist/data/designs/ios-reddit.md +460 -0
  594. package/dist/data/designs/ios-resy-android.md +430 -0
  595. package/dist/data/designs/ios-resy-expo.md +344 -0
  596. package/dist/data/designs/ios-resy-swiftui.md +330 -0
  597. package/dist/data/designs/ios-resy.md +412 -0
  598. package/dist/data/designs/ios-revolut-android.md +433 -0
  599. package/dist/data/designs/ios-revolut-expo.md +379 -0
  600. package/dist/data/designs/ios-revolut-swiftui.md +372 -0
  601. package/dist/data/designs/ios-revolut.md +353 -0
  602. package/dist/data/designs/ios-robinhood-android.md +587 -0
  603. package/dist/data/designs/ios-robinhood-expo.md +416 -0
  604. package/dist/data/designs/ios-robinhood-swiftui.md +431 -0
  605. package/dist/data/designs/ios-robinhood.md +380 -0
  606. package/dist/data/designs/ios-runna-android.md +485 -0
  607. package/dist/data/designs/ios-runna-expo.md +388 -0
  608. package/dist/data/designs/ios-runna-swiftui.md +413 -0
  609. package/dist/data/designs/ios-runna.md +390 -0
  610. package/dist/data/designs/ios-shazam-android.md +436 -0
  611. package/dist/data/designs/ios-shazam-expo.md +348 -0
  612. package/dist/data/designs/ios-shazam-swiftui.md +394 -0
  613. package/dist/data/designs/ios-shazam.md +338 -0
  614. package/dist/data/designs/ios-signal-android.md +462 -0
  615. package/dist/data/designs/ios-signal-expo.md +361 -0
  616. package/dist/data/designs/ios-signal-swiftui.md +350 -0
  617. package/dist/data/designs/ios-signal.md +357 -0
  618. package/dist/data/designs/ios-skype-android.md +398 -0
  619. package/dist/data/designs/ios-skype-expo.md +368 -0
  620. package/dist/data/designs/ios-skype-swiftui.md +369 -0
  621. package/dist/data/designs/ios-skype.md +406 -0
  622. package/dist/data/designs/ios-skyscanner-android.md +451 -0
  623. package/dist/data/designs/ios-skyscanner-expo.md +423 -0
  624. package/dist/data/designs/ios-skyscanner-swiftui.md +419 -0
  625. package/dist/data/designs/ios-skyscanner.md +421 -0
  626. package/dist/data/designs/ios-slack-android.md +695 -0
  627. package/dist/data/designs/ios-slack-expo.md +601 -0
  628. package/dist/data/designs/ios-slack-swiftui.md +594 -0
  629. package/dist/data/designs/ios-slack.md +474 -0
  630. package/dist/data/designs/ios-sleep-cycle-android.md +436 -0
  631. package/dist/data/designs/ios-sleep-cycle-expo.md +380 -0
  632. package/dist/data/designs/ios-sleep-cycle-swiftui.md +409 -0
  633. package/dist/data/designs/ios-sleep-cycle.md +386 -0
  634. package/dist/data/designs/ios-snapchat-android.md +671 -0
  635. package/dist/data/designs/ios-snapchat-expo.md +528 -0
  636. package/dist/data/designs/ios-snapchat-swiftui.md +557 -0
  637. package/dist/data/designs/ios-snapchat.md +478 -0
  638. package/dist/data/designs/ios-sofi-android.md +446 -0
  639. package/dist/data/designs/ios-sofi-expo.md +387 -0
  640. package/dist/data/designs/ios-sofi-swiftui.md +379 -0
  641. package/dist/data/designs/ios-sofi.md +385 -0
  642. package/dist/data/designs/ios-soundcloud-android.md +488 -0
  643. package/dist/data/designs/ios-soundcloud-expo.md +364 -0
  644. package/dist/data/designs/ios-soundcloud-swiftui.md +399 -0
  645. package/dist/data/designs/ios-soundcloud.md +359 -0
  646. package/dist/data/designs/ios-southwest-android.md +446 -0
  647. package/dist/data/designs/ios-southwest-expo.md +389 -0
  648. package/dist/data/designs/ios-southwest-swiftui.md +405 -0
  649. package/dist/data/designs/ios-southwest.md +405 -0
  650. package/dist/data/designs/ios-spotify-android.md +427 -0
  651. package/dist/data/designs/ios-spotify-expo.md +321 -0
  652. package/dist/data/designs/ios-spotify-swiftui.md +312 -0
  653. package/dist/data/designs/ios-spotify.md +366 -0
  654. package/dist/data/designs/ios-starbucks-android.md +622 -0
  655. package/dist/data/designs/ios-starbucks-expo.md +497 -0
  656. package/dist/data/designs/ios-starbucks-swiftui.md +500 -0
  657. package/dist/data/designs/ios-starbucks.md +440 -0
  658. package/dist/data/designs/ios-strava-android.md +656 -0
  659. package/dist/data/designs/ios-strava-expo.md +501 -0
  660. package/dist/data/designs/ios-strava-swiftui.md +465 -0
  661. package/dist/data/designs/ios-strava.md +433 -0
  662. package/dist/data/designs/ios-strong-android.md +479 -0
  663. package/dist/data/designs/ios-strong-expo.md +396 -0
  664. package/dist/data/designs/ios-strong-swiftui.md +363 -0
  665. package/dist/data/designs/ios-strong.md +415 -0
  666. package/dist/data/designs/ios-substack-android.md +440 -0
  667. package/dist/data/designs/ios-substack-expo.md +395 -0
  668. package/dist/data/designs/ios-substack-swiftui.md +371 -0
  669. package/dist/data/designs/ios-substack.md +372 -0
  670. package/dist/data/designs/ios-swiggy-android.md +549 -0
  671. package/dist/data/designs/ios-swiggy-expo.md +443 -0
  672. package/dist/data/designs/ios-swiggy-swiftui.md +471 -0
  673. package/dist/data/designs/ios-swiggy.md +432 -0
  674. package/dist/data/designs/ios-taco-bell-android.md +529 -0
  675. package/dist/data/designs/ios-taco-bell-expo.md +407 -0
  676. package/dist/data/designs/ios-taco-bell-swiftui.md +419 -0
  677. package/dist/data/designs/ios-taco-bell.md +430 -0
  678. package/dist/data/designs/ios-telegram-android.md +676 -0
  679. package/dist/data/designs/ios-telegram-expo.md +594 -0
  680. package/dist/data/designs/ios-telegram-swiftui.md +518 -0
  681. package/dist/data/designs/ios-telegram.md +458 -0
  682. package/dist/data/designs/ios-the-league-android.md +454 -0
  683. package/dist/data/designs/ios-the-league-expo.md +391 -0
  684. package/dist/data/designs/ios-the-league-swiftui.md +409 -0
  685. package/dist/data/designs/ios-the-league.md +368 -0
  686. package/dist/data/designs/ios-things-3-android.md +421 -0
  687. package/dist/data/designs/ios-things-3-expo.md +351 -0
  688. package/dist/data/designs/ios-things-3-swiftui.md +359 -0
  689. package/dist/data/designs/ios-things-3.md +339 -0
  690. package/dist/data/designs/ios-threads-android.md +588 -0
  691. package/dist/data/designs/ios-threads-expo.md +468 -0
  692. package/dist/data/designs/ios-threads-swiftui.md +452 -0
  693. package/dist/data/designs/ios-threads.md +424 -0
  694. package/dist/data/designs/ios-threema-android.md +496 -0
  695. package/dist/data/designs/ios-threema-expo.md +415 -0
  696. package/dist/data/designs/ios-threema-swiftui.md +446 -0
  697. package/dist/data/designs/ios-threema.md +397 -0
  698. package/dist/data/designs/ios-tidal-android.md +398 -0
  699. package/dist/data/designs/ios-tidal-expo.md +323 -0
  700. package/dist/data/designs/ios-tidal-swiftui.md +340 -0
  701. package/dist/data/designs/ios-tidal.md +351 -0
  702. package/dist/data/designs/ios-tiktok-android.md +654 -0
  703. package/dist/data/designs/ios-tiktok-expo.md +578 -0
  704. package/dist/data/designs/ios-tiktok-swiftui.md +595 -0
  705. package/dist/data/designs/ios-tiktok.md +387 -0
  706. package/dist/data/designs/ios-tinder-android.md +681 -0
  707. package/dist/data/designs/ios-tinder-expo.md +512 -0
  708. package/dist/data/designs/ios-tinder-swiftui.md +497 -0
  709. package/dist/data/designs/ios-tinder.md +415 -0
  710. package/dist/data/designs/ios-todoist-android.md +711 -0
  711. package/dist/data/designs/ios-todoist-expo.md +607 -0
  712. package/dist/data/designs/ios-todoist-swiftui.md +573 -0
  713. package/dist/data/designs/ios-todoist.md +418 -0
  714. package/dist/data/designs/ios-trello-android.md +412 -0
  715. package/dist/data/designs/ios-trello-expo.md +332 -0
  716. package/dist/data/designs/ios-trello-swiftui.md +359 -0
  717. package/dist/data/designs/ios-trello.md +344 -0
  718. package/dist/data/designs/ios-tripadvisor-android.md +450 -0
  719. package/dist/data/designs/ios-tripadvisor-expo.md +322 -0
  720. package/dist/data/designs/ios-tripadvisor-swiftui.md +326 -0
  721. package/dist/data/designs/ios-tripadvisor.md +356 -0
  722. package/dist/data/designs/ios-tubi-android.md +453 -0
  723. package/dist/data/designs/ios-tubi-expo.md +419 -0
  724. package/dist/data/designs/ios-tubi-swiftui.md +463 -0
  725. package/dist/data/designs/ios-tubi.md +383 -0
  726. package/dist/data/designs/ios-tumblr-android.md +462 -0
  727. package/dist/data/designs/ios-tumblr-expo.md +374 -0
  728. package/dist/data/designs/ios-tumblr-swiftui.md +380 -0
  729. package/dist/data/designs/ios-tumblr.md +337 -0
  730. package/dist/data/designs/ios-turo-android.md +500 -0
  731. package/dist/data/designs/ios-turo-expo.md +454 -0
  732. package/dist/data/designs/ios-turo-swiftui.md +447 -0
  733. package/dist/data/designs/ios-turo.md +392 -0
  734. package/dist/data/designs/ios-twitch-android.md +412 -0
  735. package/dist/data/designs/ios-twitch-expo.md +342 -0
  736. package/dist/data/designs/ios-twitch-swiftui.md +328 -0
  737. package/dist/data/designs/ios-twitch.md +354 -0
  738. package/dist/data/designs/ios-uber-android.md +637 -0
  739. package/dist/data/designs/ios-uber-eats-android.md +502 -0
  740. package/dist/data/designs/ios-uber-eats-expo.md +407 -0
  741. package/dist/data/designs/ios-uber-eats-swiftui.md +393 -0
  742. package/dist/data/designs/ios-uber-eats.md +353 -0
  743. package/dist/data/designs/ios-uber-expo.md +512 -0
  744. package/dist/data/designs/ios-uber-swiftui.md +483 -0
  745. package/dist/data/designs/ios-uber.md +395 -0
  746. package/dist/data/designs/ios-united-airlines-android.md +494 -0
  747. package/dist/data/designs/ios-united-airlines-expo.md +408 -0
  748. package/dist/data/designs/ios-united-airlines-swiftui.md +453 -0
  749. package/dist/data/designs/ios-united-airlines.md +388 -0
  750. package/dist/data/designs/ios-venmo-android.md +654 -0
  751. package/dist/data/designs/ios-venmo-expo.md +458 -0
  752. package/dist/data/designs/ios-venmo-swiftui.md +469 -0
  753. package/dist/data/designs/ios-venmo.md +436 -0
  754. package/dist/data/designs/ios-vercel-android.md +454 -0
  755. package/dist/data/designs/ios-vercel-expo.md +387 -0
  756. package/dist/data/designs/ios-vercel-swiftui.md +374 -0
  757. package/dist/data/designs/ios-vercel.md +399 -0
  758. package/dist/data/designs/ios-vero-android.md +498 -0
  759. package/dist/data/designs/ios-vero-expo.md +376 -0
  760. package/dist/data/designs/ios-vero-swiftui.md +374 -0
  761. package/dist/data/designs/ios-vero.md +394 -0
  762. package/dist/data/designs/ios-viber-android.md +377 -0
  763. package/dist/data/designs/ios-viber-expo.md +375 -0
  764. package/dist/data/designs/ios-viber-swiftui.md +378 -0
  765. package/dist/data/designs/ios-viber.md +403 -0
  766. package/dist/data/designs/ios-vimeo-android.md +465 -0
  767. package/dist/data/designs/ios-vimeo-expo.md +347 -0
  768. package/dist/data/designs/ios-vimeo-swiftui.md +383 -0
  769. package/dist/data/designs/ios-vimeo.md +403 -0
  770. package/dist/data/designs/ios-vrbo-android.md +488 -0
  771. package/dist/data/designs/ios-vrbo-expo.md +395 -0
  772. package/dist/data/designs/ios-vrbo-swiftui.md +421 -0
  773. package/dist/data/designs/ios-vrbo.md +383 -0
  774. package/dist/data/designs/ios-vsco-android.md +490 -0
  775. package/dist/data/designs/ios-vsco-expo.md +413 -0
  776. package/dist/data/designs/ios-vsco-swiftui.md +449 -0
  777. package/dist/data/designs/ios-vsco.md +412 -0
  778. package/dist/data/designs/ios-walmart-android.md +479 -0
  779. package/dist/data/designs/ios-walmart-expo.md +370 -0
  780. package/dist/data/designs/ios-walmart-swiftui.md +387 -0
  781. package/dist/data/designs/ios-walmart.md +366 -0
  782. package/dist/data/designs/ios-waze-android.md +695 -0
  783. package/dist/data/designs/ios-waze-expo.md +587 -0
  784. package/dist/data/designs/ios-waze-swiftui.md +601 -0
  785. package/dist/data/designs/ios-waze.md +453 -0
  786. package/dist/data/designs/ios-webull-android.md +429 -0
  787. package/dist/data/designs/ios-webull-expo.md +384 -0
  788. package/dist/data/designs/ios-webull-swiftui.md +406 -0
  789. package/dist/data/designs/ios-webull.md +375 -0
  790. package/dist/data/designs/ios-wechat-android.md +545 -0
  791. package/dist/data/designs/ios-wechat-expo.md +398 -0
  792. package/dist/data/designs/ios-wechat-swiftui.md +394 -0
  793. package/dist/data/designs/ios-wechat.md +363 -0
  794. package/dist/data/designs/ios-whatsapp-android.md +568 -0
  795. package/dist/data/designs/ios-whatsapp-expo.md +502 -0
  796. package/dist/data/designs/ios-whatsapp-swiftui.md +483 -0
  797. package/dist/data/designs/ios-whatsapp.md +425 -0
  798. package/dist/data/designs/ios-whoop-android.md +635 -0
  799. package/dist/data/designs/ios-whoop-expo.md +562 -0
  800. package/dist/data/designs/ios-whoop-swiftui.md +553 -0
  801. package/dist/data/designs/ios-whoop.md +419 -0
  802. package/dist/data/designs/ios-wise-android.md +428 -0
  803. package/dist/data/designs/ios-wise-expo.md +357 -0
  804. package/dist/data/designs/ios-wise-swiftui.md +356 -0
  805. package/dist/data/designs/ios-wise.md +361 -0
  806. package/dist/data/designs/ios-x-twitter-android.md +618 -0
  807. package/dist/data/designs/ios-x-twitter-expo.md +442 -0
  808. package/dist/data/designs/ios-x-twitter-swiftui.md +429 -0
  809. package/dist/data/designs/ios-x-twitter.md +432 -0
  810. package/dist/data/designs/ios-yelp-android.md +455 -0
  811. package/dist/data/designs/ios-yelp-expo.md +397 -0
  812. package/dist/data/designs/ios-yelp-swiftui.md +369 -0
  813. package/dist/data/designs/ios-yelp.md +398 -0
  814. package/dist/data/designs/ios-youtube-android.md +668 -0
  815. package/dist/data/designs/ios-youtube-expo.md +435 -0
  816. package/dist/data/designs/ios-youtube-music-android.md +450 -0
  817. package/dist/data/designs/ios-youtube-music-expo.md +404 -0
  818. package/dist/data/designs/ios-youtube-music-swiftui.md +434 -0
  819. package/dist/data/designs/ios-youtube-music.md +381 -0
  820. package/dist/data/designs/ios-youtube-swiftui.md +496 -0
  821. package/dist/data/designs/ios-youtube.md +466 -0
  822. package/dist/data/designs/ios-zalo-android.md +510 -0
  823. package/dist/data/designs/ios-zalo-expo.md +389 -0
  824. package/dist/data/designs/ios-zalo-swiftui.md +431 -0
  825. package/dist/data/designs/ios-zalo.md +388 -0
  826. package/dist/data/designs/ios-zomato-android.md +527 -0
  827. package/dist/data/designs/ios-zomato-expo.md +437 -0
  828. package/dist/data/designs/ios-zomato-swiftui.md +433 -0
  829. package/dist/data/designs/ios-zomato.md +439 -0
  830. package/dist/data/designs/ios-zoom-android.md +423 -0
  831. package/dist/data/designs/ios-zoom-expo.md +355 -0
  832. package/dist/data/designs/ios-zoom-swiftui.md +379 -0
  833. package/dist/data/designs/ios-zoom.md +357 -0
  834. package/dist/data/designs/ios-zwift-android.md +402 -0
  835. package/dist/data/designs/ios-zwift-expo.md +402 -0
  836. package/dist/data/designs/ios-zwift-swiftui.md +378 -0
  837. package/dist/data/designs/ios-zwift.md +411 -0
  838. package/dist/data/designs/kraken.md +125 -0
  839. package/dist/data/designs/lamborghini.md +288 -0
  840. package/dist/data/designs/linear.app.md +548 -0
  841. package/dist/data/designs/lovable.md +298 -0
  842. package/dist/data/designs/mastercard.md +365 -0
  843. package/dist/data/designs/material-clean.md +289 -0
  844. package/dist/data/designs/meta.md +683 -0
  845. package/dist/data/designs/midnight-pro.md +256 -0
  846. package/dist/data/designs/minimal-brutalist.md +245 -0
  847. package/dist/data/designs/minimax.md +746 -0
  848. package/dist/data/designs/mintlify.md +852 -0
  849. package/dist/data/designs/miro.md +825 -0
  850. package/dist/data/designs/mistral.ai.md +773 -0
  851. package/dist/data/designs/mongodb.md +767 -0
  852. package/dist/data/designs/nike.md +575 -0
  853. package/dist/data/designs/nintendo-2001.md +649 -0
  854. package/dist/data/designs/notion.md +821 -0
  855. package/dist/data/designs/nova-mobile-design-md.md +235 -0
  856. package/dist/data/designs/nvidia.md +640 -0
  857. package/dist/data/designs/ollama.md +539 -0
  858. package/dist/data/designs/opencode.ai.md +521 -0
  859. package/dist/data/designs/pinterest.md +597 -0
  860. package/dist/data/designs/playful-color.md +253 -0
  861. package/dist/data/designs/playstation.md +661 -0
  862. package/dist/data/designs/posthog.md +690 -0
  863. package/dist/data/designs/raycast.md +669 -0
  864. package/dist/data/designs/renault.md +589 -0
  865. package/dist/data/designs/replicate.md +616 -0
  866. package/dist/data/designs/resend.md +585 -0
  867. package/dist/data/designs/revolut.md +636 -0
  868. package/dist/data/designs/runwayml.md +244 -0
  869. package/dist/data/designs/sanity.md +357 -0
  870. package/dist/data/designs/sentry.md +551 -0
  871. package/dist/data/designs/shopify.md +516 -0
  872. package/dist/data/designs/slack.md +482 -0
  873. package/dist/data/designs/soft-glass.md +258 -0
  874. package/dist/data/designs/spacex.md +363 -0
  875. package/dist/data/designs/spotify.md +246 -0
  876. package/dist/data/designs/starbucks.md +580 -0
  877. package/dist/data/designs/stripe.md +487 -0
  878. package/dist/data/designs/supabase.md +462 -0
  879. package/dist/data/designs/superhuman.md +448 -0
  880. package/dist/data/designs/tesla.md +286 -0
  881. package/dist/data/designs/theverge.md +339 -0
  882. package/dist/data/designs/together.ai.md +633 -0
  883. package/dist/data/designs/uber.md +636 -0
  884. package/dist/data/designs/vercel.md +736 -0
  885. package/dist/data/designs/vodafone.md +538 -0
  886. package/dist/data/designs/voltagent.md +521 -0
  887. package/dist/data/designs/warp.md +526 -0
  888. package/dist/data/designs/webflow.md +588 -0
  889. package/dist/data/designs/wired.md +497 -0
  890. package/dist/data/designs/wise.md +544 -0
  891. package/dist/data/designs/x.ai.md +465 -0
  892. package/dist/data/designs/zapier.md +537 -0
  893. package/dist/data/index.json +2600 -0
  894. package/dist/httpServer.js +83 -0
  895. package/dist/index.js +13 -0
  896. package/dist/server.js +32 -0
  897. package/dist/services/designStore.js +59 -0
  898. package/dist/services/linter.js +87 -0
  899. package/dist/services/sectionParser.js +154 -0
  900. package/dist/tools/authoring.js +131 -0
  901. package/dist/tools/browse.js +232 -0
  902. package/dist/tools/diff.js +88 -0
  903. package/dist/tools/getDesign.js +216 -0
  904. package/dist/tools/guardrails.js +87 -0
  905. package/dist/tools/lint.js +104 -0
  906. package/dist/types.js +1 -0
  907. package/package.json +65 -0
@@ -0,0 +1,451 @@
1
+ # Design System Inspiration of Google Maps (iOS)
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ Google Maps' iOS app is a pure map-first interface — the earth is the canvas and the UI is a handful of floating shapes laid over it. Unlike most apps that treat the map as a feature, Maps treats the map as the entire product: every search result, every place card, every navigation instruction exists as a translucent sheet or rounded pill stationed over rendered geography. The result is a chrome-light surface where road vectors, park polygons, and water bodies do all the visual heavy lifting, and the UI chrome melts into whatever landscape is beneath it. This is why a Maps screenshot taken in Manhattan looks chromatically different from one taken in Yosemite — the app is tinted by the terrain.
6
+
7
+ The accent system is a disciplined deployment of Google's four-color identity. Google Blue (`#4285F4`) is the operating accent — it marks the route polyline, the "Your location" dot with its soft accuracy halo, the "Directions" floating action button, the active tab, and any pin placed on a "home" or "work" saved place. The three remaining Google logo colors each have a single semantic job: Red (`#EA4335`) is the default pin color for a dropped/searched place (the one most users recognize as "the Google Maps pin"), Green (`#34A853`) marks saved or favorited places, Yellow (`#FBBC04`) flags alerts, construction, and caution overlays. Orange (`#FB8C00`) is used for category pins (restaurants, gas stations, hotels). Beyond these, color appears only in map tiles — park green `#C8E6C9`, water blue `#AADAFF`, highway shield yellow `#FDF6E3`, neutral building fills `#F0F0F0`.
8
+
9
+ Typography is Google Sans for headings and Roboto for body — Google's unified two-font system across its app ecosystem. Google Sans carries geometric, open, slightly humanist shapes that feel neutral on any locale; Roboto is flatter, optimized for dense UI copy and address display. The hierarchy is conservative: place card titles at 20pt weight 500, addresses in 14pt Roboto weight 400, distances in tabular numerals so "1.2 mi" and "14.7 mi" stack cleanly in a list. Turn-by-turn navigation breaks the quiet rule — the turn card shoots to 36-48pt display type in Google Sans weight 700 so the next maneuver is legible at a glance behind the wheel.
10
+
11
+ **Key Characteristics:**
12
+ - Map is the hero — full-bleed to every edge, UI floats as translucent sheets and pills
13
+ - Google Blue (`#4285F4`) as the operating accent — route line, location dot, Directions FAB
14
+ - Four-color pin system: Red (default), Green (saved), Blue (home/work), Orange (category)
15
+ - Floating top search bar ("Search here") with voice-mic and profile avatar
16
+ - Bottom sheet drawer with drag-to-expand detents — search results, place details, transit
17
+ - Category chip row (Restaurants / Hotels / Coffee / Things to do) beneath the search bar
18
+ - Blue "Your location" dot with translucent accuracy circle and heading cone
19
+ - Blue route polyline (5pt) with darker blue casing for legibility on any map color
20
+ - Turn-by-turn immersive mode: giant blue arrow, top turn card, bottom ETA, speed chip
21
+ - Dark mode uses `#202124` canvas with the map's dark-tile palette
22
+
23
+ ## 2. Color Palette & Roles
24
+
25
+ ### Primary (Google Logo Colors)
26
+ - **Google Blue** (`#4285F4`): Primary UI accent, route polyline, "Your location" dot, Directions FAB, active tab indicator, home/work pin.
27
+ - **Google Red** (`#EA4335`): Default pin color for searched/dropped places, the iconic Maps pin.
28
+ - **Google Yellow** (`#FBBC04`): Alerts, construction icons, speed trap overlays, caution chips.
29
+ - **Google Green** (`#34A853`): Saved/favorited place pins, "on-time" transit, success states.
30
+ - **Category Orange** (`#FB8C00`): Category pins (restaurants, gas stations, hotels) and related chips.
31
+
32
+ ### Blue Ramp (Operating Accent)
33
+ - **Blue Primary** (`#4285F4`): Route, FAB, location dot.
34
+ - **Blue Pressed** (`#1A73E8`): Pressed state on primary CTAs.
35
+ - **Blue Dark** (`#174EA6`): Route polyline casing outline, navigation-mode chrome.
36
+ - **Blue Halo** (`rgba(66,133,244,0.18)`): Accuracy circle around "Your location" dot, selection pill backgrounds.
37
+
38
+ ### Canvas & Text (Light Mode)
39
+ - **Canvas White** (`#FFFFFF`): Bottom sheet surface, search bar fill, card backgrounds below the map.
40
+ - **Surface Muted** (`#F1F3F4`): Category chip fill, disabled fill, sectional backgrounds.
41
+ - **Divider** (`#DADCE0`): Hairline dividers between list rows and tabs.
42
+ - **Text Primary** (`#202124`): Place titles, primary UI text.
43
+ - **Text Secondary** (`#5F6368`): Addresses, metadata, secondary labels.
44
+ - **Text Tertiary** (`#80868B`): Low-emphasis labels, disabled text.
45
+
46
+ ### Map Tile Palette (Light)
47
+ - **Road White** (`#FFFFFF`): Street surface.
48
+ - **Highway Yellow** (`#FDF6E3`): Major highways, freeways — the signature faint-yellow strip.
49
+ - **Water Blue** (`#AADAFF`): Lakes, rivers, ocean.
50
+ - **Park Green** (`#C8E6C9`): Parks, green spaces.
51
+ - **Building Fill** (`#F0F0F0`): Building footprints at zoom, with `#E0E0E0` outline.
52
+ - **Land Neutral** (`#F5F5F5`): Default land tint between roads.
53
+
54
+ ### Dark Mode
55
+ - **Dark Canvas** (`#202124`): Canvas below the map, sheet backgrounds.
56
+ - **Dark Surface 1** (`#2D2E31`): Elevated surface, search bar fill in dark.
57
+ - **Dark Surface 2** (`#3C4043`): Higher elevation, modal sheets.
58
+ - **Dark Divider** (`#3C4043`): Hairline dividers in dark mode.
59
+ - **Dark Text Primary** (`#E8EAED`).
60
+ - **Dark Text Secondary** (`#9AA0A6`).
61
+ - **Dark Map Land** (`#242F3E`), **Roads** (`#38414E`), **Water** (`#17263C`), **Parks** (`#023E58`).
62
+
63
+ ### Semantic
64
+ - **Traffic Red** (`#D50000`): Heavy traffic segment overlay on route.
65
+ - **Traffic Orange** (`#FB8C00`): Slow traffic segment overlay.
66
+ - **Traffic Green** (`#0F9D58`): Clear traffic segment overlay.
67
+ - **Alert Yellow** (`#FBBC04`): Construction, caution triangles.
68
+ - **Transit Pink** (`#E63946`): Metro/subway line colors are city-specific; the default catch is a warm red.
69
+
70
+ ## 3. Typography Rules
71
+
72
+ ### Font Family
73
+ - **Headings / Display**: `Google Sans` (geometric, slightly humanist — used for place titles, turn directions, tab headers)
74
+ - **Body / UI**: `Roboto` (dense, optimized for UI — used for addresses, list metadata, body copy)
75
+ - **Fallback Stack**: `-apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Helvetica, Arial, sans-serif`
76
+ - **Numerals**: Roboto tabular figures for distances, ETA, speed
77
+ - **CJK / Non-Latin**: Noto Sans family siblings fall back for every script Google ships
78
+
79
+ ### Hierarchy
80
+
81
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
82
+ |------|------|------|--------|-------------|----------------|-------|
83
+ | Navigation Turn | Google Sans | 36pt | 700 | 1.1 | -0.4pt | "Turn right onto Main St" in driving mode |
84
+ | Screen Title | Google Sans | 28pt | 500 | 1.15 | -0.3pt | "Your places", "Settings" hero |
85
+ | Place Title (Card) | Google Sans | 20pt | 500 | 1.2 | -0.2pt | Place sheet hero title |
86
+ | Section Header | Google Sans | 16pt | 500 | 1.25 | -0.1pt | "Photos", "Reviews", "About" |
87
+ | Row Title | Roboto | 16pt | 500 | 1.3 | 0pt | Search result row title |
88
+ | Body | Roboto | 14pt | 400 | 1.4 | 0pt | Place description, review text |
89
+ | Address | Roboto | 14pt | 400 | 1.35 | 0pt | Street address line, monospaced digits |
90
+ | Meta / Distance | Roboto | 13pt | 400 | 1.3 | 0pt | "1.2 mi · 4 min · Open now" |
91
+ | Rating | Roboto | 14pt | 500 | 1.2 | 0pt | "4.5 ★ (2,345)" — bold rating, lighter count |
92
+ | Category Chip | Google Sans | 14pt | 500 | 1.0 | 0pt | "Restaurants", "Coffee" |
93
+ | Button (Primary) | Google Sans | 16pt | 500 | 1.0 | 0pt | "Directions", "Save" |
94
+ | Button (Secondary) | Google Sans | 14pt | 500 | 1.0 | 0pt | "Call", "Share", "Start" |
95
+ | Tab Label | Google Sans | 11pt | 500 | 1.0 | 0.2pt | Tab bar labels |
96
+ | ETA / Speed | Roboto | 16pt | 500 | 1.0 | 0pt | Navigation ETA, speed chip |
97
+ | Distance Pill | Roboto | 13pt | 500 | 1.0 | 0pt | Map distance labels at route apex |
98
+
99
+ ### Principles
100
+ - **Two-font system**: Google Sans for headlines and CTAs, Roboto for everything dense and data-driven. Never swap them.
101
+ - **Weights concentrated at 400 / 500 / 700**: Regular, Medium, Bold. 500 is the workhorse weight; 700 is reserved for nav turn cards and emphasis.
102
+ - **Tabular numerals always**: distances, ratings, ETAs, speeds use Roboto's tabular figure set so columns align.
103
+ - **Rating star uses Google Yellow**: `#FBBC04` (not orange) — consistent with Google product rating stars.
104
+ - **Turn card type is the only display moment**: 36-48pt, Google Sans 700, reserved for in-navigation mode.
105
+ - **No italics**: emphasis through weight only.
106
+
107
+ ## 4. Component Stylings
108
+
109
+ ### Buttons
110
+
111
+ **Primary FAB (Directions)**
112
+ - Shape: Circle, 56pt diameter, pinned 16pt from trailing/bottom edges over the map
113
+ - Background: `#4285F4`
114
+ - Icon: SF Symbol `arrow.triangle.turn.up.right.diamond.fill` (or custom Google Directions glyph) at 24pt in `#FFFFFF`
115
+ - Shadow: `rgba(0,0,0,0.2) 0 4px 12px`
116
+ - Pressed: scale 0.95, background `#1A73E8`, medium haptic
117
+ - Used for: Directions entry from any place sheet
118
+
119
+ **Primary Pill CTA ("Start", "Save")**
120
+ - Background: `#4285F4`
121
+ - Text: `#FFFFFF`, Google Sans 16pt weight 500
122
+ - Height: 44pt
123
+ - Padding: 0 24pt
124
+ - Corner radius: 22pt (full pill)
125
+ - Pressed: `#1A73E8`, scale 0.98, light haptic
126
+ - Used for: "Start" navigation, "Save" place, "Add stop"
127
+
128
+ **Secondary Outline Button ("Call", "Share")**
129
+ - Background: transparent
130
+ - Border: 1pt solid `#DADCE0`
131
+ - Text: `#4285F4`, Google Sans 14pt weight 500
132
+ - Height: 36pt
133
+ - Corner radius: 18pt
134
+ - Leading icon: 18pt, Google Blue
135
+ - Pressed: background `#F1F3F4`
136
+
137
+ **Icon-Only Map Control (Recenter, Layers, Compass)**
138
+ - Size: 40pt circle
139
+ - Background: `#FFFFFF` with shadow `rgba(0,0,0,0.15) 0 2px 6px`
140
+ - Icon: 20pt, `#5F6368`, rounded-join geometric glyph
141
+ - Pressed: `#F1F3F4` fill
142
+ - Position: floats over the map, trailing side, stacks vertically above the Directions FAB
143
+
144
+ **Category Chip (Restaurants / Hotels / Coffee)**
145
+ - Background: `#FFFFFF` with 1pt `#DADCE0` hairline border
146
+ - Text: `#202124`, Google Sans 14pt weight 500
147
+ - Padding: 8pt vertical, 14pt horizontal
148
+ - Corner radius: 18pt (pill)
149
+ - Leading icon: 16pt colored glyph matching category (fork+knife in orange, etc.)
150
+ - Active (tapped): background `#E8F0FE` + border `#4285F4` + text `#1967D2`
151
+ - Shadow: `rgba(0,0,0,0.08) 0 1px 3px`
152
+
153
+ ### Cards & Containers
154
+
155
+ **Place Card (Bottom Sheet Hero)**
156
+ - Sits at the top of the bottom-sheet place details screen
157
+ - Leading: photo thumbnail 72×72pt with 12pt corner radius
158
+ - Place title: Google Sans 20pt w500 `#202124` (2-line clamp)
159
+ - Rating line: "4.5" in Roboto 14pt w500 `#202124` + 4.5 ★ glyphs in `#FBBC04` + "(2,345)" in Roboto 14pt w400 `#5F6368`
160
+ - Category line: "Italian restaurant · $$ · 1.2 mi"
161
+ - Open-now pill: `#34A853` "Open now" + Roboto 13pt " · Closes 10 PM" in `#5F6368`
162
+ - Action row beneath: Directions (blue pill FAB) | Save | Share | Call
163
+ - Separator: 1pt `#DADCE0` hairline below action row
164
+
165
+ **Search Result Row**
166
+ - Height: 72pt
167
+ - Leading: 48×48pt category-colored circle with 20pt white glyph (e.g., orange fork for restaurant)
168
+ - Title: Roboto 16pt w500 `#202124`
169
+ - Subtitle: Roboto 13pt w400 `#5F6368` — "1.2 mi · 123 Main St"
170
+ - Trailing: small 28pt "Directions" icon button (blue) if not currently navigating
171
+ - Pressed: background `#F1F3F4`
172
+
173
+ **Bottom Sheet Drawer**
174
+ - Position: anchored to bottom, 3 detents (collapsed 140pt, medium 380pt, expanded near-full)
175
+ - Background: `#FFFFFF` light / `#2D2E31` dark
176
+ - Corner radius: 16pt top corners, 0pt bottom
177
+ - Grabber: 32×4pt `#DADCE0` pill centered 8pt from top
178
+ - Shadow: `rgba(0,0,0,0.12) 0 -4px 20px`
179
+ - Scroll behavior: sheet-inner scrolling kicks in at expanded detent
180
+
181
+ **Route Card (Directions Sheet)**
182
+ - Modes row (Drive / Transit / Walk / Bike / Rideshare): segmented control with blue underline under active
183
+ - Primary route: "25 min (18.4 mi)" Google Sans 20pt w500 + "Fastest route, usual traffic" Roboto 13pt w400 `#5F6368`
184
+ - Alternative routes listed below in lighter gray polyline (map overlay) with "+3 min" delta chip
185
+ - "Start" CTA: blue pill 44pt full-width bottom of card
186
+
187
+ ### Navigation
188
+
189
+ **Top Floating Search Bar**
190
+ - Position: floats 8pt below top safe area, 16pt horizontal margins
191
+ - Height: 48pt
192
+ - Background: `#FFFFFF`
193
+ - Corner radius: 24pt (full pill)
194
+ - Shadow: `rgba(0,0,0,0.15) 0 2px 8px`
195
+ - Layout: leading 28pt profile avatar (circular) | center placeholder "Search here" (Google Sans 16pt w400 `#5F6368`) | trailing 24pt voice-mic icon (Google Blue when listening)
196
+ - Tap: expands to full-screen search with keyboard and recent searches below
197
+
198
+ **Bottom Tab Bar**
199
+ - Height: 56pt + safe area
200
+ - Background: `#FFFFFF` with 0.5pt top border `#DADCE0`, `.regularMaterial` blur
201
+ - Tabs: Explore, Go (commute), Saved, Contribute, Updates
202
+ - Icon size: 24pt, 2pt stroke, geometric
203
+ - Active color: `#4285F4` (filled variant with colored fill)
204
+ - Inactive: `#5F6368` (outline variant)
205
+ - Labels: Google Sans 11pt w500, always shown
206
+ - Haptic on tab change: light
207
+
208
+ **Navigation Mode Top Turn Card**
209
+ - Position: anchored at top, below safe area, full-width minus 16pt margin
210
+ - Background: `#4285F4`
211
+ - Corner radius: 16pt
212
+ - Layout: leading giant 48pt turn arrow white | turn instruction "Turn right onto Main St" in Google Sans 22pt w700 white | distance "in 0.3 mi" Roboto 14pt w400 white 70%
213
+ - Shadow: `rgba(0,0,0,0.2) 0 4px 16px`
214
+ - Next turn preview below: smaller 32pt turn arrow + "Then left onto Oak Ave" in 14pt
215
+
216
+ **Navigation Mode Bottom ETA Card**
217
+ - Position: anchored to bottom, full-width above safe area
218
+ - Background: `#FFFFFF` (light) / `#2D2E31` (dark)
219
+ - Corner radius: 16pt top corners
220
+ - Content: ETA "4:32 PM" Google Sans 22pt w500 + "18 min · 12 mi" Roboto 14pt w400 `#5F6368` + traffic color bar
221
+ - End-trip exit pill: `#EA4335` "Exit" button 36pt trailing
222
+
223
+ ### Input Fields
224
+
225
+ **Search Input (Expanded)**
226
+ - Background: `#FFFFFF` with 1pt `#DADCE0` bottom border inside a scroll container
227
+ - Height: 56pt
228
+ - Leading: 20pt back chevron `#5F6368`
229
+ - Placeholder: "Search Google Maps", Google Sans 16pt w400 `#5F6368`
230
+ - Trailing: 20pt voice-mic + 20pt clear (X) when text present
231
+ - Text color: `#202124`
232
+
233
+ **Saved Place Row**
234
+ - Height: 56pt
235
+ - Leading: 40pt colored icon circle (Home = blue house, Work = blue briefcase, custom = green bookmark)
236
+ - Title: Roboto 16pt w500 `#202124`
237
+ - Subtitle: Roboto 13pt w400 `#5F6368` address
238
+ - Trailing: 16pt chevron `#80868B`
239
+
240
+ ### Distinctive Components
241
+
242
+ **Location Dot**
243
+ - Inner dot: 12pt solid `#4285F4`
244
+ - White stroke ring: 3pt white around the blue dot
245
+ - Accuracy circle: 60-200pt radius (depends on GPS accuracy), `rgba(66,133,244,0.18)` fill with `rgba(66,133,244,0.4)` 1pt outline
246
+ - Heading cone (when compass active): 40pt translucent blue triangle wedge emanating outward from the dot
247
+ - Gentle pulse: scale 1.0 → 1.15 → 1.0 over 1.8s infinite (subtle, not attention-grabbing)
248
+
249
+ **Map Pin (Dropped Place)**
250
+ - Red Default: 32×40pt tear-drop shape, `#EA4335` fill with 3pt white inner circle, bottom-point anchored at coordinate
251
+ - Green Saved: same shape, `#34A853` fill
252
+ - Blue Home/Work: same shape with building/house glyph in white
253
+ - Orange Category: same shape with category glyph (fork, gas, bed) in white
254
+ - Drop animation: 0.35s spring with bounce, shadow grows with the pin
255
+ - Ground shadow: `rgba(0,0,0,0.25) 0 4px 6px`, 28×8pt ellipse below
256
+
257
+ **Route Polyline**
258
+ - Width: 5pt
259
+ - Color: `#4285F4` fill
260
+ - Casing: 1.5pt `#174EA6` outline
261
+ - Endcaps: rounded
262
+ - Traveled portion during navigation: 40% opacity
263
+ - Traffic overlay: red/orange/green segments drawn on top at 3pt width
264
+
265
+ **Distance Label**
266
+ - Appears at route apex midpoint during search
267
+ - Pill: white background with 1pt `#DADCE0` border
268
+ - Text: "18 mi" in Roboto 13pt w500 `#202124`
269
+ - Padding: 4pt vertical, 10pt horizontal
270
+ - Shadow: `rgba(0,0,0,0.1) 0 1px 3px`
271
+
272
+ **Pegman / Street View Chip**
273
+ - Draggable orange-yellow Pegman figure bottom-right
274
+ - Background: `#FB8C00`
275
+ - Size: 40pt circle with miniature person silhouette
276
+ - Triggered by drag: blue highlights appear on streets with Street View coverage
277
+
278
+ **Category Chip Row**
279
+ - Horizontal scroll directly below top search bar
280
+ - 10 chips: Restaurants, Coffee, Gas, Hotels, Groceries, Shopping, Things to do, More
281
+ - Gap: 8pt between chips
282
+ - Scrolls to the right with the last chip peek-visible
283
+
284
+ **Speed Chip (Navigation)**
285
+ - Bottom-left corner in nav mode
286
+ - 56pt circle
287
+ - Background: `#FFFFFF` light / `#3C4043` dark
288
+ - Current MPH number in Roboto 22pt w500
289
+ - "mph" label in Roboto 11pt w400 `#5F6368`
290
+ - Turns red with white text when over limit
291
+
292
+ ## 5. Layout Principles
293
+
294
+ ### Spacing System
295
+ - Base unit: 4pt
296
+ - Scale: 4, 8, 12, 16, 20, 24, 32, 40, 56, 72
297
+ - Map-relative margins: 16pt from screen edges for floating controls and search bar
298
+ - Sheet internal: 16pt horizontal, 20pt top (below grabber), 24pt bottom above safe area
299
+ - Gaps inside place sheet: 16pt between sections, 12pt between action buttons
300
+
301
+ ### Grid & Container
302
+ - Map: full viewport, edge-to-edge, underneath Dynamic Island and status bar
303
+ - Floating search bar: 16pt horizontal margin, pill shape
304
+ - Category chip row: starts 16pt below search bar, peek-edge right side
305
+ - Bottom sheet: full-width, attached bottom, floats with 16pt top radius
306
+ - Map controls: stacked trailing edge, 16pt from edge, offset above current sheet detent
307
+
308
+ ### Whitespace Philosophy
309
+ - **Map is king**: 60-85% of viewport, always. The UI exists to yield to geography.
310
+ - **Pills and sheets don't touch**: 16pt between any two floating elements to preserve map breathability.
311
+ - **Place cards breathe**: 16pt padding inside, 24pt between sections.
312
+ - **Turn cards are dense by necessity**: navigation mode's UI is denser to fit every detail needed at speed.
313
+
314
+ ### Border Radius Scale
315
+ - Square (0pt): Map tiles (they are the geometry itself)
316
+ - Soft (8pt): Inline badges, small status pills
317
+ - Standard (12pt): Place thumbnails, photo tiles, inner card surfaces
318
+ - Comfortable (16pt): Bottom sheet top, turn cards, ETA card
319
+ - Pill (18-24pt): Chips, secondary buttons, primary pill CTAs
320
+ - Full Pill (full): Top floating search bar, category chips
321
+ - Circle (50%): FAB, location dot, avatar, map controls
322
+
323
+ ## 6. Depth & Elevation
324
+
325
+ | Level | Treatment | Use |
326
+ |-------|-----------|-----|
327
+ | Flat (Level 0) | No shadow | Map tiles, map pins (rely on ground shadow) |
328
+ | Hairline (Level 1) | 1pt `#DADCE0` border | Category chips (default), segmented controls |
329
+ | Floating Pill (Level 2) | `rgba(0,0,0,0.15) 0 2px 8px` | Top search bar, distance labels on map |
330
+ | Floating Control (Level 3) | `rgba(0,0,0,0.15) 0 2px 6px` | Map control buttons (recenter, layers, compass) |
331
+ | FAB (Level 4) | `rgba(0,0,0,0.2) 0 4px 12px` | Directions FAB |
332
+ | Bottom Sheet (Level 5) | `rgba(0,0,0,0.12) 0 -4px 20px` | Bottom drawer for search results and place detail |
333
+ | Turn Card (Level 6) | `rgba(0,0,0,0.2) 0 4px 16px` | Navigation top turn card on blue |
334
+ | Dim Overlay | `rgba(0,0,0,0.5)` | Behind modal sheets (route alternatives) |
335
+
336
+ **Shadow Philosophy**: Because every piece of UI sits on top of a textured, colored map, shadows need to separate "UI plane" from "map plane" without overpowering the geography. A 15% black shadow at 8pt blur reads cleanly against both park-green and ocean-blue tiles. The FAB's shadow is the most aggressive (20% / 12pt) because the button is the primary action and must lift cleanly above any terrain. Map pins get a ground-hugging ellipse shadow instead of a drop — this is what makes them feel dropped into the world rather than placed on a canvas.
337
+
338
+ ### Motion
339
+ - **Pin drop**: 0.35s spring with overshoot 1.1 → 1.0, shadow scales up with pin, medium haptic
340
+ - **Search bar expand to full screen**: 0.28s ease-out, pill morphs into full-width search panel with list fade-in
341
+ - **Bottom sheet detent change**: 0.35s spring, damping 0.85 — snaps cleanly between collapsed/medium/expanded
342
+ - **FAB press**: scale 0.95 → 1.0 spring (damping 0.7), paired with `.impactOccurred(.medium)` haptic
343
+ - **Route draw on start**: polyline traces from origin to destination over 600ms ease-out, then camera pans to follow
344
+ - **Location dot pulse**: continuous 1.8s ease-in-out scale 1.0 → 1.15 → 1.0
345
+ - **Turn card swap**: slides up from below, previous card fades to 0, 300ms ease-in-out, light haptic on arrival at each turn
346
+ - **Camera flyTo on recenter**: 0.6s ease-in-out, no haptic (soft action)
347
+ - **Traffic overlay fade-in**: 400ms ease-out as traffic data loads
348
+ - **Dark mode cross-fade**: map tiles cross-fade over 1.2s on system theme toggle
349
+
350
+ ## 7. Do's and Don'ts
351
+
352
+ ### Do
353
+ - Keep the map at 60%+ of viewport on every primary screen — it's the product
354
+ - Use Google Blue (`#4285F4`) for the route polyline, location dot, and Directions FAB
355
+ - Float the top search bar as a pill with 16pt margins and a soft shadow
356
+ - Render the bottom sheet with 16pt top corners, visible grabber, three detents
357
+ - Use the four-color pin system: Red default, Green saved, Blue home/work, Orange category
358
+ - Use Google Sans for titles and CTAs, Roboto for body and metadata (tabular numerals on data)
359
+ - Display traffic as colored overlay on the route: red heavy, orange slow, green clear
360
+ - Trigger medium haptic on pin drop and "Start navigation"; light haptic on tab change
361
+ - Show the accuracy circle around the location dot — it's the trust signal
362
+ - Use `#202124` canvas in dark mode with the dark-map tile palette
363
+
364
+ ### Don't
365
+ - Don't color the map itself with brand colors — the map uses its own tile palette
366
+ - Don't round map pins heavily — the tear-drop shape with 3pt white inner dot is the silhouette
367
+ - Don't drop pin shadows — use a ground-hugging ellipse for on-world feel
368
+ - Don't animate the map aggressively — camera moves are 0.3-0.6s ease, never snap
369
+ - Don't stack more than 3 floating map controls trailing edge — it clutters the map
370
+ - Don't use red (`#EA4335`) for generic UI actions — it reads as a pin or destructive
371
+ - Don't override tabular numerals for distances — columns must align
372
+ - Don't hide the bottom sheet when a route is active — the ETA card must remain visible
373
+ - Don't center-align body text in place cards — Maps content is left-aligned (LTR)
374
+ - Don't introduce new accent colors — the four Google logo colors each have a job already
375
+
376
+ ## 8. Responsive Behavior
377
+
378
+ ### Device Sizes
379
+ | Device | Width | Key Changes |
380
+ |--------|-------|-------------|
381
+ | iPhone SE (3rd gen) | 375pt | Category chip row fits 4 visible, bottom sheet collapsed 120pt |
382
+ | iPhone 13/14/15 | 390pt | Standard 5 visible chips, 140pt collapsed sheet |
383
+ | iPhone 15/16 Pro | 393pt | Dynamic Island pushes search bar 8pt lower |
384
+ | iPhone 15/16 Pro Max | 430pt | 6 visible chips, turn card scales to 180pt tall in nav mode |
385
+ | iPad | 768pt+ | Map full-bleed; sheet becomes a 420pt floating panel anchored leading side |
386
+
387
+ ### Dynamic Type
388
+ - Place titles, addresses, row titles: full scale
389
+ - Navigation turn instruction: scales to 48pt max
390
+ - Distance/ETA labels: fixed size (layout-sensitive)
391
+ - Speed chip: fixed size
392
+ - Tab labels: scale up to 13pt, then truncate
393
+
394
+ ### Orientation
395
+ - Explore / Saved / Updates: **portrait-locked**
396
+ - Navigation mode: **rotates to landscape** — turn card moves to top, ETA to bottom-right, map expands horizontally
397
+ - Street View: **rotates freely** — 360° horizontal pan works best with device orientation
398
+
399
+ ### Touch Targets
400
+ - Directions FAB: 56pt (hero action)
401
+ - Top search bar: 48pt tall, full-row tappable
402
+ - Category chips: 36pt tall with 44pt effective hit
403
+ - Map pins: 40pt hit area despite 32pt visual
404
+ - Map controls: 40pt visible, 44pt hit
405
+ - Tab bar icons: 24pt icon inside 44pt hit
406
+
407
+ ### Safe Area Handling
408
+ - Top: search bar floats 8pt below safe area top
409
+ - Bottom: sheet extends to home indicator; content padded 24pt above indicator
410
+ - Dynamic Island: search bar sits 8pt below the island bottom edge
411
+ - Sides: map edge-to-edge; floating controls 16pt inset
412
+
413
+ ## 9. Agent Prompt Guide
414
+
415
+ ### Quick Color Reference
416
+ - Canvas (light): `#FFFFFF`
417
+ - Canvas (dark): `#202124`
418
+ - Surface muted: `#F1F3F4`
419
+ - Divider: `#DADCE0`
420
+ - Text primary: `#202124`
421
+ - Text secondary: `#5F6368`
422
+ - Google Blue (route, FAB, location): `#4285F4`
423
+ - Blue pressed: `#1A73E8`
424
+ - Pin Red (default): `#EA4335`
425
+ - Pin Green (saved): `#34A853`
426
+ - Pin Orange (category): `#FB8C00`
427
+ - Rating Yellow: `#FBBC04`
428
+ - Map road: `#FFFFFF`
429
+ - Map highway: `#FDF6E3`
430
+ - Map water: `#AADAFF`
431
+ - Map park: `#C8E6C9`
432
+ - Map building: `#F0F0F0`
433
+
434
+ ### Example Component Prompts
435
+ - "Create a SwiftUI Google Maps top search bar: floats 8pt below safe area with 16pt horizontal margins, 48pt tall pill (full corner radius), `#FFFFFF` background, `rgba(0,0,0,0.15) 0 2px 8px` shadow. Leading 28pt circular profile avatar, center placeholder 'Search here' in Google Sans 16pt w400 `#5F6368`, trailing 24pt microphone icon in `#5F6368`. Tap expands to full-screen search."
436
+ - "Build the Directions FAB: 56pt circle floating 16pt from trailing/bottom edges over the map, `#4285F4` background, 24pt white directional arrow SF Symbol `arrow.triangle.turn.up.right.diamond.fill`. Shadow `rgba(0,0,0,0.2) 0 4px 12px`. Pressed: scale 0.95, background `#1A73E8`, medium haptic."
437
+ - "Design the Your Location dot: 12pt solid `#4285F4` inner dot with 3pt white stroke ring, translucent `rgba(66,133,244,0.18)` accuracy circle 120pt radius around it with 1pt `rgba(66,133,244,0.4)` outline, 40pt heading cone triangle emanating outward from the dot when compass is active. Gentle pulse 1.0 → 1.15 → 1.0 over 1.8s."
438
+ - "Create a place bottom sheet: anchored to bottom, 3 detents (140pt / 380pt / near-full), 16pt top corner radius, `#FFFFFF` background, `rgba(0,0,0,0.12) 0 -4px 20px` shadow. 32×4pt `#DADCE0` grabber centered 8pt from top. Inside: 72pt photo thumbnail leading, place title 'Blue Bottle Coffee' in Google Sans 20pt w500, rating '4.5' + 4.5 gold stars in `#FBBC04` + '(2,345)' in Roboto 14pt, category 'Coffee shop · $$ · 1.2 mi', green 'Open now' pill. Action row: blue 44pt Directions pill + Save + Share + Call."
439
+ - "Build the navigation turn card: anchored at top below safe area with 16pt margins, `#4285F4` background, 16pt corner radius, shadow `rgba(0,0,0,0.2) 0 4px 16px`. Leading 48pt white turn arrow glyph, turn instruction 'Turn right onto Main St' in Google Sans 22pt w700 white, distance 'in 0.3 mi' in Roboto 14pt w400 white 70% opacity below. Smaller next-turn preview '32pt arrow + Then left onto Oak Ave' at 14pt below."
440
+ - "Design a category chip row: horizontal scroll directly below the search bar with 16pt leading inset and 8pt between chips. Each chip: 36pt tall pill with `#FFFFFF` background, 1pt `#DADCE0` border, 16pt colored category glyph leading, 'Restaurants' label in Google Sans 14pt w500 `#202124`, 14pt horizontal padding. Active state: background `#E8F0FE`, border `#4285F4`, text `#1967D2`."
441
+
442
+ ### Iteration Guide
443
+ 1. The map owns 60%+ of the viewport on every primary screen — UI is layered, never stacked below
444
+ 2. Google Blue (`#4285F4`) is the operating accent — route, location dot, Directions FAB
445
+ 3. Four pin colors, four jobs: Red default, Green saved, Blue home/work, Orange category
446
+ 4. Google Sans for titles, Roboto for body and metadata; Roboto tabular numerals for all data
447
+ 5. Bottom sheet has 16pt top corners with a visible 32×4pt `#DADCE0` grabber — the drag-to-expand contract
448
+ 6. Float the search bar as a pill with a soft shadow; keep 16pt margins to the screen edges
449
+ 7. Turn cards in nav mode use `#4285F4` background and 22pt bold white text — the only display moment
450
+ 8. Location dot's accuracy halo is the trust signal — always render it with `rgba(66,133,244,0.18)` fill
451
+ 9. Dark mode uses `#202124` canvas (not pure black) to match the dark map tile palette