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,447 @@
1
+ # Design System Inspiration of Apple Maps (iOS)
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ Apple Maps is the canonical reference for what a system-native iOS map should feel like — a soft cream-paper canvas, generous translucent search card, and the precise dance of SF Symbols, native blurs, and just-right typography that defines every first-party Apple app. The map itself is the brand: the cartography uses a warm parchment beige (`#F6F1E6`) over land, soft `#B9D9EB` blues over water, slate roads, and the carefully chosen Apple transit colors (BART orange, MTA green, MUNI gold) on subway and rail lines. Where Google Maps reaches for saturated category icons and dense POI clutter, Apple Maps reaches for whitespace — the map breathes, labels render only at the right zoom level, and the UI chrome floats above the cartography as a translucent companion rather than a frame.
6
+
7
+ The accent is the system iOS Blue (`#007AFF` adjacent — Apple Maps uses a slightly more saturated `#0A84FF` in their direction lines and Look Around button). It carries the directions polyline, the "current location" puck (a pulsing blue dot with a directional cone), and primary actions inside the search card. Categories are color-coded with restraint: Food orange `#FF9500`, Coffee brown `#A5694C`, Drinks teal `#5AC8FA`, Shopping yellow `#FFCC00`, Parking purple `#AF52DE`, Transit varies by line. The signature Maps Red `#FF3B30` is reserved for the dropped pin and "place card" header — it's the same iOS system red, never a custom hue.
8
+
9
+ Typography is SF Pro — Display for nav titles and place names, Text for body and list rows, Compact for the place-card subtitles where width is precious. Apple uses tabular figures aggressively on times, distances, and addresses ("0.4 mi · 2 min"). The weight stack runs Regular (400), Medium (500), Semibold (600), and Bold (700) — the system stack used everywhere else in iOS. The Maps app is one of the most disciplined demonstrations of San Francisco at scale: every label on the map, every row in the place card, every time estimate uses the system face at the exact metrics that ship in iOS itself.
10
+
11
+ **Key Characteristics:**
12
+ - Map canvas: warm cream/parchment `#F6F1E6` over land with `#B9D9EB` water — the cartography IS the brand
13
+ - System iOS Blue `#0A84FF` for directions polyline, current-location puck, primary CTAs
14
+ - Maps Red `#FF3B30` for the dropped pin and the place-card identity bar
15
+ - Floating translucent search card (`.regularMaterial` blur) — sliding bottom sheet with three detents
16
+ - "Where to?" placeholder, search field corner radius matches Apple's standard 13pt
17
+ - Translucent floating buttons (compass, location, 3D view toggle) — top-right vertical stack, `.regularMaterial` blur, circular
18
+ - Category color-coding: Food `#FF9500`, Coffee `#A5694C`, Drinks `#5AC8FA`, Shopping `#FFCC00`, Parking `#AF52DE`
19
+ - The current-location puck — pulsing blue dot with a directional cone for heading
20
+ - SF Pro at the system stack — Display, Text, Compact variants; tabular figures on every distance/time
21
+ - 3D building extrusions when zoomed past street level — a signature Apple Maps detail
22
+ - Subway/transit colors: BART orange, MTA green, NYC subway color per line — accurate to the agency
23
+
24
+ ## 2. Color Palette & Roles
25
+
26
+ ### Primary
27
+ - **Maps Blue** (`#0A84FF`): Directions polyline, current-location puck, Look Around button, primary CTAs inside the place card. This is the iOS system Blue, slightly more saturated than the generic `systemBlue` (Apple Maps boosts it for legibility on cream canvas).
28
+ - **Maps Blue Pressed** (`#0967D2`): Active state on direction tap and primary buttons.
29
+ - **Maps Red** (`#FF3B30`): Dropped pin, place-card identity bar, "Report an issue" labels. The iOS system Red — unchanged.
30
+
31
+ ### Map Cartography
32
+ - **Map Cream** (`#F6F1E6`): Land surface — the signature warm parchment beige.
33
+ - **Map Water** (`#B9D9EB`): Oceans, rivers, lakes — soft cool blue.
34
+ - **Map Park Green** (`#D6E5C9`): Parks, open green space.
35
+ - **Map Road** (`#FFFFFF`): Major roads — bright white over cream.
36
+ - **Map Road Outline** (`#D5CFC0`): Minor road outlines, thin strokes.
37
+ - **Map Highway** (`#FFD966`): Highway fill (US convention), thin yellow.
38
+ - **Map Building 2D** (`#EFE9DD`): Building footprints at street zoom.
39
+ - **Map Building 3D** (`#E6DFD0`): Extruded buildings, slightly cooler.
40
+ - **Map Label** (`#594F3F`): Map label text (city, neighborhood, street names) — a warm dark slate.
41
+
42
+ ### Category Colors
43
+ - **Food Orange** (`#FF9500`): Restaurants, food category pins.
44
+ - **Coffee Brown** (`#A5694C`): Coffee shops, cafés.
45
+ - **Drinks Teal** (`#5AC8FA`): Bars, nightlife.
46
+ - **Shopping Yellow** (`#FFCC00`): Stores, retail.
47
+ - **Parking Purple** (`#AF52DE`): Parking lots, garages.
48
+ - **Hotel Indigo** (`#5856D6`): Lodging.
49
+ - **Health Pink** (`#FF2D55`): Hospitals, medical.
50
+ - **Gas Red** (`#FF3B30`): Gas stations.
51
+ - **EV Charge Green** (`#34C759`): EV charging.
52
+
53
+ ### Transit Colors (Match Real Agency)
54
+ Apple Maps uses each transit agency's actual line colors — these are a few canonical examples:
55
+ - **BART Orange** (`#F69E13`), **BART Yellow** (`#FFDE0A`), **BART Red** (`#ED1C24`)
56
+ - **MTA Green** (`#00933C`), **MTA Yellow** (`#FCCC0A`), **MTA Red** (`#EE352E`), **MTA Blue** (`#0039A6`)
57
+ - **MUNI Red** (`#BD2D38`), **MUNI Gold** (`#FFCC33`)
58
+ - **NYC Subway L** (`#A7A9AC` Gray), **TFL Tube Bakerloo** (`#894E24`), etc.
59
+
60
+ ### Canvas, Surfaces & Dividers (UI Chrome)
61
+ - **Card Canvas** (`#FFFFFF`): Place card, search card, sheet backgrounds.
62
+ - **Surface Gray** (`#F2F2F7`): Search field fill, secondary surface, category chip backgrounds.
63
+ - **Surface Gray 2** (`#E5E5EA`): Pressed states on list rows.
64
+ - **Divider** (`#C7C7CC`): iOS standard hairline (0.5pt at @2x renders as 1px).
65
+ - **Blur Material** (`.regularMaterial`): The translucent map controls and sticky card headers — system blur, NOT a custom value.
66
+
67
+ ### Text
68
+ - **Ink** (`#000000`): Primary text — place names, nav titles. Apple uses pure black on Maps for crispness against cream.
69
+ - **Secondary** (`#3C3C43` at 60% opacity): Subtitles, addresses, "0.4 mi · 2 min", category labels.
70
+ - **Tertiary** (`#3C3C43` at 30% opacity): Disabled labels, "No reviews yet".
71
+ - **Quaternary** (`#3C3C43` at 18% opacity): Placeholder text, separator labels.
72
+ - **Inverse White** (`#FFFFFF`): Text on saturated buttons.
73
+
74
+ ### Semantic
75
+ - **Success Green** (`#34C759`): Route ETA badge (when on time), "Open now" indicator.
76
+ - **Warning Amber** (`#FF9500`): "Limited service", congestion ahead, parking limited.
77
+ - **Error Red** (`#FF3B30`): "Route closed", construction, severe traffic.
78
+ - **Info Blue** (`#0A84FF`): Hyperlinks inside the place card, "Open in Apple Maps" actions.
79
+
80
+ ### Dark Mode
81
+ Apple Maps dark mode is one of the showcases of iOS dark — a true cool charcoal canvas with brighter Maps Blue.
82
+ - **Dark Canvas** (`#000000`): Beneath everything.
83
+ - **Dark Map Land** (`#2A2826`): Warm-toned dark gray over land — the dark equivalent of the cream paper.
84
+ - **Dark Map Water** (`#1C2638`): Deep navy water.
85
+ - **Dark Map Park** (`#2C3A2A`): Dark forest green.
86
+ - **Dark Card Surface** (`#1C1C1E`): Place card, sheets.
87
+ - **Dark Surface 2** (`#2C2C2E`): Pressed states.
88
+ - **Dark Divider** (`#38383A`): Hairlines.
89
+ - **Dark Text Primary** (`#FFFFFF`): Primary text on cards.
90
+ - **Dark Text Secondary** (`#EBEBF5` at 60% opacity): Secondary text.
91
+ - **Maps Blue (Dark)** (`#409CFF`): Slightly brighter blue for dark mode legibility.
92
+
93
+ ## 3. Typography Rules
94
+
95
+ ### Font Family
96
+ - **Primary Display**: `SF Pro Display` for sizes ≥20pt (place card title, large nav)
97
+ - **Primary Text**: `SF Pro Text` for body, rows, metadata
98
+ - **Primary Compact**: `SF Pro Compact` for narrow secondary labels (place card subtitle when condensed)
99
+ - **Weights available**: Regular (400), Medium (500), Semibold (600), Bold (700), Heavy (800) — Heavy reserved for the place-card title only
100
+ - **Map labels**: SF Pro Text Regular at sizes from 9pt to 18pt depending on zoom and importance
101
+ - **Fallback stack**: `-apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text', 'Helvetica Neue', sans-serif`
102
+ - **Web/marketing Google Fonts substitute**: `Inter` (closest neutral grotesque) — falls back gracefully
103
+ - **Tabular figures**: Mandatory on all distances (`0.4 mi`), times (`2 min`), ETAs (`6:14 PM`), prices (`$$`)
104
+
105
+ ### Hierarchy
106
+
107
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
108
+ |------|------|------|--------|-------------|----------------|-------|
109
+ | Place Card Title | SF Pro Display | 28pt | 700 (Bold) | 1.15 | -0.4pt | "Tartine Bakery" |
110
+ | Place Card Subtitle | SF Pro Text | 15pt | 400 | 1.3 | 0pt | "Bakery · French · $$" |
111
+ | Hero Search Placeholder | SF Pro Display | 17pt | 400 | 1.3 | 0pt | "Search Maps" |
112
+ | Nav Title (Inline) | SF Pro Display | 17pt | 600 | 1.2 | -0.2pt | "Directions" |
113
+ | Section Header (Card) | SF Pro Text | 13pt | 600 | 1.2 | 0.4pt UPPERCASE | "HOURS", "OVERVIEW" |
114
+ | List Row Title | SF Pro Text | 17pt | 400 | 1.3 | 0pt | Search suggestion row |
115
+ | List Row Subtitle | SF Pro Text | 13pt | 400 | 1.2 | 0pt | Suggestion address |
116
+ | ETA Time | SF Pro Display | 22pt | 600 | 1.1 | -0.2pt tnum | "6:14 PM" |
117
+ | ETA Duration | SF Pro Display | 17pt | 500 | 1.2 | 0pt tnum | "32 min · 1.2 mi" |
118
+ | Direction Step Title | SF Pro Display | 22pt | 600 | 1.2 | -0.2pt | "Turn right onto Market St" |
119
+ | Direction Step Distance | SF Pro Text | 17pt | 500 | 1.3 | 0pt tnum | "0.4 mi" |
120
+ | Category Pill Label | SF Pro Text | 14pt | 500 | 1.0 | 0pt | "Food", "Coffee" |
121
+ | Map Label (Major City) | SF Pro Display | 14pt | 600 | 1.0 | 0pt | "San Francisco" |
122
+ | Map Label (Neighborhood) | SF Pro Text | 12pt | 500 | 1.0 | 0pt | "Mission District" |
123
+ | Map Label (Street) | SF Pro Text | 10pt | 400 | 1.0 | 0pt | "Market St" |
124
+ | Button Label | SF Pro Text | 17pt | 600 | 1.0 | 0pt | "Directions", "Call" |
125
+ | Tab Label | SF Pro Text | 10pt | 500 | 1.0 | 0.1pt | (No bottom tab in Apple Maps) |
126
+ | Caption | SF Pro Text | 12pt | 400 | 1.3 | 0pt | Photo credits, fine print |
127
+ | Transit Line Label | SF Pro Text | 12pt | 700 (Bold) | 1.0 | 0pt | "BART" inside the colored badge |
128
+
129
+ ### Principles
130
+ - **System face, system stack**: Apple Maps uses SF Pro at the exact metrics shipped with iOS. Don't substitute a custom face — the goal is to feel system-native.
131
+ - **Tabular figures everywhere numeric**: distances, times, ETAs, prices, phone numbers
132
+ - **Display for headlines, Text for body, Compact for narrow secondary**: this is the canonical Apple optical hierarchy
133
+ - **Letter spacing tightens at display sizes** (-0.4pt at 28pt) and relaxes to 0 at body
134
+ - **Heavy (800) reserved for place-card title** — almost nothing else uses Heavy
135
+ - **Semibold (600) is the default emphasis weight**, not Bold (700)
136
+ - **Black `#000000` for primary text on cream canvas** — Apple uses pure black for crispness; the cream background warms it visually
137
+ - **Section headers in 13pt UPPERCASE Semibold with 0.4pt tracking** — the canonical iOS section-header pattern
138
+ - **Dynamic Type respected on everything except map labels** (zoom-controlled), tab labels, and ETA numbers (layout-sensitive)
139
+
140
+ ## 4. Component Stylings
141
+
142
+ ### The Search Card (Sliding Bottom Sheet — Hero Component)
143
+
144
+ The defining Apple Maps interaction. A translucent card that slides up over the map with three detents.
145
+
146
+ - **Width**: full screen
147
+ - **Detents**: small (88pt — just the search bar visible), medium (~50% of screen), large (full-screen modal)
148
+ - **Background**: `.regularMaterial` blur over the underlying map — a translucent frosted layer
149
+ - **Top corner radius**: 10pt (medium and large detents); 0pt on small (just the search bar)
150
+ - **Drag indicator (grabber)**: 36pt × 5pt rounded rectangle in `#3C3C43` at 30% opacity, 8pt below the top edge
151
+ - **Search field**:
152
+ - Full width minus 32pt margins
153
+ - Height: 44pt
154
+ - Background: `#F2F2F7` (Surface Gray) inside the blur material
155
+ - Corner radius: 10pt
156
+ - Leading: 16pt SF Symbol `magnifyingglass`, color `#3C3C43` at 60% opacity
157
+ - Text: SF Pro Display 17pt Regular `#000000`, placeholder "Search Maps" in `#3C3C43` at 30%
158
+ - Trailing: microphone (`mic.fill`) and "Cancel" button when active
159
+ - **Below the search field**: horizontal category pills row — Food / Coffee / Drinks / Shopping / Parking / Transit
160
+ - **Below that (medium detent)**: Favorites, Recents, Guides — each in a 2-col grid of large rounded tiles
161
+
162
+ ### Category Pill (Below Search Field)
163
+
164
+ - **Size**: 64pt wide × 88pt tall
165
+ - **Background**: `#FFFFFF` solid white card (NOT translucent — the category pills sit on the search card)
166
+ - **Corner radius**: 14pt
167
+ - **Icon**: 28pt SF Symbol filled, color matches category (e.g., `fork.knife` in `#FF9500` Orange for Food)
168
+ - **Label**: SF Pro Text 14pt Medium `#000000`, centered below icon, 1-line
169
+ - **Padding**: 16pt vertical, 8pt horizontal
170
+ - **Tap**: scale 0.96, opens category-filtered search
171
+
172
+ ### The Dropped Pin
173
+
174
+ - **Shape**: SF Symbol `mappin.and.ellipse` 32pt OR custom pin shape — teardrop with a circle base
175
+ - **Color**: `#FF3B30` Maps Red (always, regardless of category — this is the universal "you tapped here" pin)
176
+ - **Shadow**: `rgba(0,0,0,0.3) 0 3px 6px` for legibility over varied cartography
177
+ - **Position**: anchored at the tip of the teardrop, exactly on the tapped coordinate
178
+ - **Drop animation**: appears from above with a 400ms ease-out bounce on long-press
179
+
180
+ ### The Current-Location Puck
181
+
182
+ - **Container**: 22pt circle, blue `#0A84FF` solid fill with a 3pt white outer ring
183
+ - **Cone** (when heading is known): a 90° triangular cone extending from the puck in the heading direction, gradient from `rgba(10,132,255,0.4)` to transparent over 60pt
184
+ - **Pulse**: a subtle 30pt outer ring, opacity 0.2, scales 1.0 → 1.6 → 1.0 over 2000ms, infinite loop
185
+ - **Compass indicator**: a small chevron arrow inside the puck pointing in the direction of travel when navigating
186
+
187
+ ### Place Card (Detail View)
188
+
189
+ When a user taps a pin or selects a search result, the place card slides up.
190
+
191
+ - **Top section** (60pt):
192
+ - Place title: SF Pro Display 28pt Bold `#000000`, e.g., "Tartine Bakery"
193
+ - Subtitle: SF Pro Text 15pt Regular `#3C3C43`@60%, "Bakery · French · $$"
194
+ - "X" close button: top-right, 30pt circle with `xmark` SF Symbol, `.regularMaterial` background
195
+ - **Action button row** (60pt, horizontal scroll if needed):
196
+ - "Directions": filled `#0A84FF` pill, white text, 44pt height, 24pt horizontal padding, SF Pro Text 17pt Semibold
197
+ - "Call": outlined `#0A84FF` pill (1pt border, white background, blue text)
198
+ - "Share": outlined gray pill
199
+ - "Save": outlined gray pill with heart icon
200
+ - **Photo row** (when available): horizontal scroll of 16:9 photo cards, 80pt tall, 12pt corner radius
201
+ - **Info sections** (each below):
202
+ - Hours: row with green "Open" badge or red "Closed" + closing time
203
+ - Address: row with map-pin icon + tap to copy
204
+ - Phone: row with phone icon + tappable number
205
+ - Website: row with globe icon + domain
206
+ - **Reviews section** (separate UPPERCASE section header): star rating row + "23 reviews" + review cards if expanded
207
+ - **Sticky "Directions" bottom button**: 48pt height, `#0A84FF` background, 8pt corner radius, white text
208
+
209
+ ### Map Controls (Floating Top-Right Stack)
210
+
211
+ Three circular translucent buttons stacked vertically in the top-right corner over the map:
212
+
213
+ - **Container**: each button is 44pt × 44pt circle
214
+ - **Background**: `.regularMaterial` blur — soft frosted white over the map
215
+ - **Icons**: SF Symbols, 18pt, color `#000000` (or `#FFFFFF` in dark mode)
216
+ - **Stack**: 8pt vertical gap between buttons
217
+ - **Position**: top-right with 16pt inset from edge, 16pt below safe area top
218
+ - **Buttons (top to bottom)**:
219
+ 1. **Layer picker** (`square.3.layers.3d`) — opens map style selector (Standard / Satellite / Hybrid / Transit)
220
+ 2. **Current location** (`location.fill` when locked, `location` when not) — centers map on user
221
+ 3. **3D toggle / Compass** (`map.fill` or `compass`) — toggles 3D buildings
222
+
223
+ ### Directions Screen Components
224
+
225
+ **Step Card (Active Direction)**
226
+ - Position: top of screen below safe area, full width
227
+ - Height: 96pt
228
+ - Background: `.regularMaterial` blur over the map
229
+ - Layout: 56pt SF Symbol direction arrow (e.g., `arrow.turn.up.right`) in `#0A84FF` + step title in SF Pro Display 22pt Semibold + distance in SF Pro Text 17pt Medium
230
+ - The arrow rotates to match the actual direction (left, right, slight left, sharp right, etc.)
231
+
232
+ **ETA Bar (Bottom of Directions)**
233
+ - Position: sticky bottom, full width
234
+ - Height: 80pt
235
+ - Background: `.regularMaterial` blur with `#FFFFFF` 92% over content
236
+ - Layout: "32 min" SF Pro Display 22pt Semibold + "1.2 mi · arriving 6:14 PM" SF Pro Text 17pt Regular `#3C3C43`@60%
237
+ - Right side: "End" button — outlined red pill (`#FF3B30` border, white background, red text) for stopping navigation
238
+
239
+ **Directions Polyline**
240
+ - Stroke: `#0A84FF` Maps Blue, 5pt width
241
+ - Cap: rounded
242
+ - Animated dash on the upcoming step: 12pt dash, 6pt gap, animating at 2 dashes per second to convey direction
243
+
244
+ ### Buttons
245
+
246
+ **Primary Filled CTA (Directions / Continue)**
247
+ - Background: `#0A84FF`
248
+ - Text: `#FFFFFF`, SF Pro Text 17pt Semibold
249
+ - Padding: 12pt vertical, 24pt horizontal
250
+ - Corner radius: 8pt (or 22pt for full pill on the action row)
251
+ - Height: 44pt
252
+ - Pressed: background `#0967D2`, scale 0.97
253
+ - Haptic: `.impactOccurred(.medium)`
254
+
255
+ **Outlined Secondary (Call / Share / Save)**
256
+ - Background: `#FFFFFF`
257
+ - Border: 1pt `#0A84FF`
258
+ - Text: `#0A84FF`, SF Pro Text 17pt Semibold
259
+ - Padding: 12pt vertical, 24pt horizontal
260
+ - Corner radius: 22pt (full pill)
261
+ - Height: 44pt
262
+
263
+ **Text-Only Action**
264
+ - No background or border
265
+ - Text: `#0A84FF`, SF Pro Text 17pt Regular
266
+ - 44pt hit target
267
+
268
+ ### Distinctive Components
269
+
270
+ **Look Around Button**
271
+ - Position: appears on the place card when Look Around is available
272
+ - 56pt height pill, full-width content area
273
+ - Background: `#0A84FF` with white SF Symbol `binoculars.fill` 18pt + "Look Around" in SF Pro Text 17pt Semibold white
274
+ - Tap: launches the 360° street imagery view with a 600ms cross-fade
275
+
276
+ **Transit Line Badge**
277
+ - 24pt × 24pt rounded square in the transit line's exact agency color
278
+ - Centered letter or number (e.g., "L", "6", "N") in SF Pro Text 12pt Bold white
279
+ - Used on transit pins, route segments, and inside the place card for nearby stations
280
+
281
+ **Traffic Indicator (on roads)**
282
+ - Thin colored stripes drawn over the road geometry
283
+ - Green `#34C759`: light traffic
284
+ - Amber `#FF9500`: moderate
285
+ - Red `#FF3B30`: heavy
286
+ - Black `#000000`: closed
287
+
288
+ **Compass Glyph (Rotating)**
289
+ - Appears in the top-right map controls when the user rotates the map manually
290
+ - 44pt circle with `.regularMaterial`, animated arrow inside pointing north (red half) and south (white half)
291
+ - Tap to reset rotation to north-up with 400ms ease
292
+
293
+ ## 5. Layout Principles
294
+
295
+ ### Spacing System
296
+ - Base unit: 4pt (iOS standard)
297
+ - Scale: 4, 8, 12, 16, 20, 24, 32, 44, 56, 64
298
+ - Standard horizontal margin: 16pt on cards, 0pt on full-bleed map
299
+ - Section vertical gap: 24pt between sections in the place card; 16pt between rows
300
+
301
+ ### Grid & Container
302
+ - Place card width: full screen
303
+ - Search card detents: 88pt / ~50% / full-screen
304
+ - Category pills: 64pt wide each, horizontal scroll
305
+ - Action button row: equal-width pills with 8pt gap
306
+
307
+ ### Whitespace Philosophy
308
+ - **The map IS the canvas**: UI chrome floats above as translucent companions, never overwhelms the cartography
309
+ - **Generous breathing on cards**: 24pt section gaps; place card top section has 32pt above title
310
+ - **Sticky search card compresses the map** — at large detent, the user is effectively in a list view with the map peeking above; at small detent, the map is 88% of the screen
311
+ - **Map controls float top-right with 16pt inset** — never crowd the map edges
312
+
313
+ ### Border Radius Scale
314
+ - Square (0pt): the map itself
315
+ - Standard (8pt): primary buttons, place-card sticky button
316
+ - Card (10pt): the search card top edge, search field background, place-card sections
317
+ - Medium (12pt): photo row cards, info row cards
318
+ - Soft (14pt): category pill backgrounds
319
+ - Comfortable (22pt): action row pill buttons (full pill at 44pt height)
320
+ - Circle (50%): map control buttons, current-location puck, close X button
321
+
322
+ ## 6. Depth & Elevation
323
+
324
+ | Level | Treatment | Use |
325
+ |-------|-----------|-----|
326
+ | Flat (Level 0) | No shadow | Map itself |
327
+ | Card (Level 1) | `rgba(0,0,0,0.08) 0 2px 8px` | Photo cards inside place card |
328
+ | Floating (Level 2) | `rgba(0,0,0,0.12) 0 4px 12px` | Category pills, place-card top elevation |
329
+ | Overlay (Level 3) | `rgba(0,0,0,0.16) 0 6px 20px` | Dropped pin shadow |
330
+ | Sheet (Level 4) | `rgba(0,0,0,0.20) 0 -8px 24px` | Search card large detent |
331
+ | Blur Material | `.regularMaterial` | Search card background, map controls, step card, ETA bar — the signature Apple Maps treatment |
332
+
333
+ **Shadow Philosophy**: Apple Maps uses BLUR as its primary depth treatment, not shadow. The translucent `.regularMaterial` background on the search card, map controls, step card, and ETA bar lets the cartography show through faintly — this is what makes the UI feel like it floats. Drop shadows are used sparingly on photo cards and the dropped pin, where blur isn't appropriate. The combination of blur + cream-paper canvas + warm map colors creates the unmistakable Apple Maps atmosphere.
334
+
335
+ ### Motion
336
+ - **Search card detent transition**: 350ms spring (damping 0.85, response 0.45s) — feels physical, like a sheet of paper sliding into place
337
+ - **Pin drop**: 400ms ease-out with a tiny bounce at the end — the pin "lands"
338
+ - **Current location lock**: when user taps location button, map pans to puck in 600ms ease-out, then triggers a brief 1.0 → 1.2 → 1.0 scale pulse on the puck
339
+ - **Category pill tap**: scale 0.96 instant, then 200ms ease-out spring back
340
+ - **Direction step transition**: 300ms cross-fade between consecutive step cards, with the arrow rotating in 250ms ease
341
+ - **Map style picker open**: 400ms shared-element transition — the small layer button morphs into the full picker sheet
342
+ - **Look Around launch**: 600ms cross-fade from map to 360° view; on close, reverse with a slight zoom
343
+ - **3D building extrude**: when zooming past street level, buildings raise from flat to 3D over 400ms ease
344
+ - **Pulse on current location**: 2000ms infinite — opacity 0.3 → 0.0 with scale 1.0 → 1.6
345
+
346
+ ## 7. Do's and Don'ts
347
+
348
+ ### Do
349
+ - Use the cream-paper canvas `#F6F1E6` for the map land surface — this is the most recognizable Apple Maps visual
350
+ - Use Maps Blue `#0A84FF` for the directions polyline, current-location puck, and primary CTAs
351
+ - Use Maps Red `#FF3B30` (the iOS system red) for the dropped pin and place-card identity
352
+ - Use `.regularMaterial` blur on the search card, map controls, step card, ETA bar — blur IS the depth system
353
+ - Use SF Pro at the system stack (Display, Text, Compact) — no custom face
354
+ - Use tabular figures on ALL distances, times, ETAs ("0.4 mi · 2 min · arriving 6:14 PM")
355
+ - Render the current-location puck as a 22pt blue dot with white ring and a pulsing 30pt outer ring
356
+ - Use the directional cone on the puck when heading is known
357
+ - Use category colors per the canonical set: Food `#FF9500`, Coffee `#A5694C`, Drinks `#5AC8FA`, Shopping `#FFCC00`, Parking `#AF52DE`
358
+ - Stack map controls top-right in a circular vertical pile with 8pt gaps
359
+ - Use real transit agency colors on transit line badges — BART orange, MTA green, etc.
360
+
361
+ ### Don't
362
+ - Don't use a custom map style that overrides the cream `#F6F1E6` land color — it's signature
363
+ - Don't use a solid background on the search card — `.regularMaterial` blur is non-negotiable
364
+ - Don't put the current-location button at the bottom — it stacks in the top-right with the layer and 3D buttons
365
+ - Don't replace SF Pro with a custom font — Apple Maps is intentionally system-native
366
+ - Don't omit tabular figures from times and distances — column alignment matters
367
+ - Don't use Material elevation shadows (1pt + 3pt blur dual-shadow) — those are Google's; Apple uses single soft shadows and blur
368
+ - Don't recolor the dropped pin per category — the pin is always Maps Red, category color appears on the place icon inside the pin
369
+ - Don't render the place card with sharp corners — 10pt top corner radius is the standard
370
+ - Don't make the directions polyline thinner than 5pt or use a color other than `#0A84FF`
371
+ - Don't use Bold (700) for body text — Semibold (600) is the default emphasis weight in Apple Maps
372
+ - Don't omit the pulse animation on the current-location puck — it's the live-tracking signal
373
+
374
+ ## 8. Responsive Behavior
375
+
376
+ ### Device Sizes
377
+ | Device | Width | Key Changes |
378
+ |--------|-------|-------------|
379
+ | iPhone SE (3rd gen) | 375pt | Search card detents adjust — small is 80pt; category pills wrap to 1 row |
380
+ | iPhone 13/14/15 | 390pt | Standard layout — 6 category pills fit horizontally |
381
+ | iPhone 15/16 Pro | 393pt | Dynamic Island respected in search card top inset |
382
+ | iPhone 15/16 Pro Max | 430pt | 7-8 category pills visible, larger photo cards in place card |
383
+ | iPad Mini | 744pt | Search card becomes a left sidebar at 360pt wide; map takes remaining width |
384
+ | iPad Pro 11" | 834pt | Sidebar persistent, place card opens as right-side detail pane |
385
+ | iPad Pro 13" | 1024pt | Full split-view with sidebar + map + place card simultaneously |
386
+
387
+ ### Dynamic Type
388
+ - Place card title, body, list rows, button labels: full scale
389
+ - Map labels, ETA numbers, distance/time tabular figures, category pill labels: fixed (layout and zoom-sensitive)
390
+ - Place card title clamps at 36pt max even at Accessibility XL
391
+
392
+ ### Orientation
393
+ - Portrait: default; search card is bottom sheet
394
+ - Landscape on iPhone: search card becomes a left-side panel at ~360pt; map takes remaining
395
+ - iPad: sidebar + map at all orientations; place card switches between sheet (portrait) and right-pane (landscape)
396
+
397
+ ### Touch Targets
398
+ - Map control buttons: 44pt × 44pt circle
399
+ - Category pill: 64pt × 88pt
400
+ - Action row button: 44pt height, 88pt minimum width
401
+ - Search field: full-width 44pt
402
+ - Pin tap: 44pt × 44pt hit area centered on the pin tip
403
+ - Direction step arrow: 56pt SF Symbol with full step-card tap area
404
+
405
+ ### Safe Area Handling
406
+ - Top: map controls sit 16pt below safe area top, respect Dynamic Island
407
+ - Bottom: search card respects safe area; small detent shows search bar above home indicator with 16pt padding
408
+ - Sides: 16pt margins on card content; map is full-bleed
409
+
410
+ ## 9. Quick Reference Cheat Sheet
411
+
412
+ ### Quick Color Reference
413
+ - Map cream canvas: `#F6F1E6`
414
+ - Map water: `#B9D9EB`
415
+ - Map park: `#D6E5C9`
416
+ - **Maps Blue**: `#0A84FF`
417
+ - **Maps Blue Pressed**: `#0967D2`
418
+ - **Maps Red** (pin): `#FF3B30`
419
+ - **Food Orange**: `#FF9500`
420
+ - **Coffee Brown**: `#A5694C`
421
+ - **Drinks Teal**: `#5AC8FA`
422
+ - **Shopping Yellow**: `#FFCC00`
423
+ - **Parking Purple**: `#AF52DE`
424
+ - Card canvas: `#FFFFFF`
425
+ - Surface Gray: `#F2F2F7`
426
+ - Ink (text): `#000000`
427
+ - Secondary (60% opacity): `rgba(60,60,67,0.6)`
428
+ - Map label color: `#594F3F`
429
+
430
+ ### Example Component Prompts
431
+ - "Create a SwiftUI Apple Maps search card: a sliding bottom sheet with three detents (88pt small, 50% medium, full-screen large), 10pt top corner radius, `.regularMaterial` blur background. Inside: a 36pt × 5pt drag indicator at top in `#3C3C43`@30%, then a full-width 44pt search field with `#F2F2F7` background, 10pt corner radius, leading `magnifyingglass` SF Symbol, placeholder 'Search Maps' in SF Pro Display 17pt Regular. Below the search field: horizontal scroll of category pills (64pt × 88pt white cards with 14pt corner radius, 28pt SF Symbol icon in category color, 14pt Medium label below)."
432
+ - "Build the Apple Maps current-location puck: a 22pt blue `#0A84FF` filled circle with a 3pt white outer ring, plus a 30pt outer pulsing ring at 0.2 opacity scaling 1.0 → 1.6 over 2000ms infinite. When heading is known, render a 90° triangular cone extending 60pt from the puck in the heading direction with a gradient from `rgba(10,132,255,0.4)` to transparent."
433
+ - "Design the Apple Maps place card: 28pt SF Pro Display Bold place title `#000000`, 15pt SF Pro Text Regular subtitle `Bakery · French · $$` in `#3C3C43`@60%. Below: a horizontal scroll of 44pt-tall action pills — 'Directions' filled `#0A84FF` with white text, 'Call' / 'Share' / 'Save' outlined `#0A84FF` border on white. Sticky bottom 'Directions' button at 48pt height, `#0A84FF` background, 8pt corner radius."
434
+ - "Build the Apple Maps directions step card: full-width sticky at top, 96pt tall, `.regularMaterial` blur over the map. Leading: 56pt `arrow.turn.up.right` SF Symbol in `#0A84FF`, rotated to match the actual direction. Center: 'Turn right onto Market St' in SF Pro Display 22pt Semibold `#000000`. Below: '0.4 mi' in SF Pro Text 17pt Medium tabular `#3C3C43`@60%."
435
+ - "Create the Apple Maps map controls stack: three circular 44pt buttons stacked vertically in the top-right corner with 8pt gaps, 16pt inset from the right edge and 16pt below safe area top. Each button is `.regularMaterial` blur with an 18pt SF Symbol inside: top is `square.3.layers.3d` (layer picker), middle is `location.fill` (current location), bottom is `map.fill` (3D toggle)."
436
+
437
+ ### Iteration Guide
438
+ 1. Map canvas is cream `#F6F1E6` for land, soft `#B9D9EB` for water — the cartography IS the brand
439
+ 2. Maps Blue `#0A84FF` for directions polyline, current-location puck, primary CTAs
440
+ 3. Maps Red `#FF3B30` for the dropped pin only — universal regardless of category
441
+ 4. `.regularMaterial` blur on every floating UI surface — search card, map controls, step card, ETA bar
442
+ 5. SF Pro at the system stack — Display, Text, Compact — no custom face
443
+ 6. Tabular figures on every numeric label — distance, time, ETA, price
444
+ 7. Map controls stack top-right with 8pt gaps; current location is the middle button
445
+ 8. Category pills sit on the search card as 64×88pt white tiles with category-color icons
446
+ 9. The current-location puck pulses every 2 seconds — opacity 0.3 → 0.0, scale 1.0 → 1.6
447
+ 10. Dark mode uses warm `#2A2826` over land (the dark equivalent of cream), brighter Maps Blue `#409CFF`