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,410 @@
1
+ # Design System Inspiration of Airbnb (iOS)
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ Airbnb's iOS app is an editorial magazine for places to stay. The canvas is white, photography is the hero, and the UI chrome gets out of the way so a Tuscan farmhouse, a Tokyo micro-apartment, or a Joshua Tree dome can carry the full emotional weight of the screen. Where most travel apps feel like a database, Airbnb feels like a coffee-table book you can tap into — generous margins, soft corner radii (16pt on every stay card), and a color vocabulary pulled from hospitality rather than tech. The restraint is deliberate: a host's home is the brand, not Airbnb's logo.
6
+
7
+ The accent is Primary Coral (`#FF385C`) — the vibrant, slightly pink red Airbnb refreshed into in 2020 for web and marketing. It carries the primary CTAs ("Reserve", "Save", the red price bubbles on the map) and the selected-state underline on the category bar. The heritage Rausch (`#FF5A5F`) — the original brand red — still lives inside the animated Belo logomark and appears on splash moments and illustration art. Teal Babu (`#00A699`) surfaces sparingly on Experiences and Airbnb Plus badges; Arches orange (`#FC642D`) on Trips and certain category icons. Everything else is a careful ladder of warm grays and white — content-first, never decorative.
8
+
9
+ Typography is Airbnb Cereal, the proprietary face Dalton Maag drew for the brand in 2018 — a warm, slightly humanist geometric sans with six weights (Light, Book, Medium, Bold, Extra Bold, Black). Type hierarchy is editorial: large-title navigation bars at 32pt Extra Bold, stay-card titles at 15pt Medium, host bylines and review counts at 14pt Book in Foggy gray. The tone the face communicates matters as much as the metrics — Cereal is soft, round, and approachable, which is why SF Pro (warm at body sizes) is the correct system fallback.
10
+
11
+ **Key Characteristics:**
12
+ - White canvas (`#FFFFFF`) with Surface Gray (`#F7F7F7`) for section fills and search field backgrounds
13
+ - Primary Coral (`#FF385C`) as the main action color; Rausch (`#FF5A5F`) as heritage accent on the Belo logomark
14
+ - Photography-first stay cards — 4:3 or 3:2 cover photo, 16pt corner radius, full card width
15
+ - Save heart in top-right of every stay card — filled Primary Coral when saved, white w/ black outline when unsaved
16
+ - Rating row (star glyph + number + review count in Foggy) under every card, always
17
+ - Horizontal category bar at the top of Explore — icon + label chips, underline on the selected category
18
+ - Pill-shaped "Where to?" search bar with Location / Check in / Check out / Who segmentation
19
+ - Bottom tab bar: Explore / Wishlists / Trips / Inbox / Profile — all labeled, active state in Primary Coral
20
+ - Airbnb Cereal at 6 weights; warm, round, and tightly spaced
21
+ - Subtle shadows only (`rgba(0,0,0,0.08)`) — the app is content-first, not elevated
22
+
23
+ ## 2. Color Palette & Roles
24
+
25
+ ### Primary
26
+ - **Primary Coral** (`#FF385C`): Current primary — Reserve CTA, save-heart fill, category underline, map price bubbles, active tab, link color.
27
+ - **Rausch** (`#FF5A5F`): Heritage red — the animated Belo logomark, splash screen, illustration moments.
28
+ - **Coral Pressed** (`#E31C5F`): Active/pressed state on Primary Coral CTAs.
29
+
30
+ ### Extended Brand
31
+ - **Babu** (`#00A699`): Airbnb Plus badge, Experiences accent, occasional verified markers.
32
+ - **Arches** (`#FC642D`): Trips module, specific category icons (e.g., "Amazing views"), host education.
33
+ - **Beach** (`#FFB400`): Yellow used on the star glyph in rating rows.
34
+
35
+ ### Canvas, Surfaces & Dividers
36
+ - **Canvas White** (`#FFFFFF`): Primary canvas everywhere — cards, sheets, most screens.
37
+ - **Surface Gray** (`#F7F7F7`): Section backgrounds, search-field fill, empty-state panels.
38
+ - **Surface Gray 2** (`#EBEBEB`): Chip backgrounds, input field fill on forms.
39
+ - **Divider** (`#EBEBEB`): Hairline row dividers, card outlines when used.
40
+ - **Shadow Black** (`rgba(0,0,0,0.08)`): Standard soft card shadow.
41
+
42
+ ### Text
43
+ - **Hof** (`#484848`): Primary text — stay titles, large nav titles, body copy.
44
+ - **Foggy** (`#767676`): Secondary text — host bylines, review counts, metadata, strikethrough prices.
45
+ - **Foggy Light** (`#B0B0B0`): Tertiary — placeholder text, disabled labels.
46
+ - **Ink Black** (`#222222`): Occasional full-black text on hero moments (stay detail title).
47
+
48
+ ### Semantic
49
+ - **Success Green** (`#008A05`): Confirmation banners ("Booking confirmed"), Superhost check.
50
+ - **Warning Amber** (`#FFB400`): Rating stars, trip alerts.
51
+ - **Error Red** (`#C13515`): Form validation errors, failed payments.
52
+ - **Info Blue** (`#428BFF`): Rarely used — external links, some info callouts.
53
+
54
+ ### Dark Mode
55
+ Airbnb introduced dark mode on iOS in 2020. It is warm-dark, not true black — the canvas preserves photography integrity.
56
+ - **Dark Canvas** (`#121212`): Primary dark background.
57
+ - **Dark Surface 1** (`#1C1C1E`): Cards, sheets, search field fill.
58
+ - **Dark Surface 2** (`#2A2A2A`): Pressed states, chip fills.
59
+ - **Dark Divider** (`#2C2C2E`): Hairlines.
60
+ - **Dark Text Primary** (`#DDDDDD`): Hof inverted — stay titles, nav titles.
61
+ - **Dark Text Secondary** (`#A0A0A0`): Foggy inverted.
62
+ - **Primary Coral (dark)** (`#FF385C`): Unchanged — the coral reads well on dark canvas.
63
+
64
+ ## 3. Typography Rules
65
+
66
+ ### Font Family
67
+ - **Primary**: `Airbnb Cereal` (proprietary, designed by Dalton Maag, 2018)
68
+ - **Weights available**: Light (300), Book (400), Medium (500), Bold (700), Extra Bold (800), Black (900)
69
+ - **Fallback stack**: `-apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text', 'Helvetica Neue', Arial, sans-serif` — SF Pro is the correct system substitute because Cereal is warm and tightly spaced, not a pure grotesque
70
+ - **Web/marketing Google Fonts substitute**: `Plus Jakarta Sans` or `Manrope` — both capture Cereal's warmth
71
+
72
+ ### Hierarchy
73
+
74
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
75
+ |------|------|------|--------|-------------|----------------|-------|
76
+ | Large Nav Title | Cereal | 32pt | 800 (Extra Bold) | 1.15 | -0.4pt | "Explore", "Wishlists", "Trips" |
77
+ | Hero Title (Stay Detail) | Cereal | 26pt | 700 (Bold) | 1.2 | -0.3pt | Listing title at the top of a stay |
78
+ | Section Header | Cereal | 22pt | 700 | 1.2 | -0.2pt | "Where you'll sleep", "Reviews" |
79
+ | Subsection | Cereal | 18pt | 700 | 1.25 | -0.1pt | "Meet your host", "Things to know" |
80
+ | Card Title | Cereal | 15pt | 500 (Medium) | 1.3 | -0.05pt | Stay-card headline — city/name |
81
+ | Body | Cereal | 16pt | 400 (Book) | 1.4 | 0pt | About-the-host paragraph, descriptions |
82
+ | Body Small | Cereal | 14pt | 400 | 1.4 | 0pt | Amenities list items, policy text |
83
+ | Metadata | Cereal | 14pt | 400 | 1.3 | 0pt | "2,340 reviews", dates, guest count |
84
+ | Rating Number | Cereal | 14pt | 500 | 1.2 | 0pt | "4.92" next to the star glyph |
85
+ | Price (Inline) | Cereal | 15pt | 700 | 1.2 | 0pt | "$214 night" with "night" in 400 |
86
+ | Price (Hero) | Cereal | 22pt | 800 | 1.1 | -0.2pt | Total price above Reserve CTA |
87
+ | Button (Primary) | Cereal | 16pt | 700 | 1.0 | 0pt | "Reserve", "Continue", "Save" |
88
+ | Button (Secondary) | Cereal | 14pt | 500 | 1.0 | 0pt | Outline / text buttons |
89
+ | Tab Label | Cereal | 10pt | 500 | 1.0 | 0.1pt | Bottom tab bar labels |
90
+ | Chip Label | Cereal | 12pt | 500 | 1.0 | 0pt | Category bar chip text |
91
+ | Caption | Cereal | 12pt | 400 | 1.3 | 0pt | Photo credits, fine print |
92
+
93
+ ### Principles
94
+ - **Weights concentrated at 400 / 500 / 700 / 800**: Book for body, Medium for titles, Bold for section headers, Extra Bold for large nav titles. Light and Black are reserved for marketing moments.
95
+ - **Tight but positive tracking at display sizes**: -0.4pt at 32pt falling to 0pt at body.
96
+ - **Hof over pure black**: Body text sits at `#484848`, not `#000000` — this is what makes the app feel warm and editorial rather than hard.
97
+ - **Dynamic Type respected on body and metadata**: Large nav title, section headers, body, and metadata scale; tab labels, chip labels, and price bubble on the map are fixed.
98
+ - **Rating row is its own micro-typography**: 14pt star + 14pt Medium number + 14pt Book "(count)" in Foggy — repeated across the whole app.
99
+
100
+ ## 4. Component Stylings
101
+
102
+ ### Buttons
103
+
104
+ **Primary Pill CTA (Reserve / Continue / Save)**
105
+ - Background: `#FF385C`
106
+ - Text: `#FFFFFF`, Cereal 16pt weight 700
107
+ - Padding: 14pt vertical, 24pt horizontal
108
+ - Corner radius: 8pt (NOT a full pill — Airbnb uses a soft rectangle for the sticky Reserve button; the full-pill version appears on map/chips)
109
+ - Height: 48pt minimum
110
+ - Pressed: background `#E31C5F`, scale 0.98
111
+ - Haptic: `.impactOccurred(.medium)` on Reserve; `.notificationOccurred(.success)` on booking complete
112
+
113
+ **Full-Pill Filter CTA (Map / Filters / Category actions)**
114
+ - Background: `#FFFFFF`
115
+ - Border: 1pt solid `#222222`
116
+ - Text: `#222222`, Cereal 14pt weight 500
117
+ - Padding: 10pt vertical, 18pt horizontal
118
+ - Corner radius: 500pt (full pill)
119
+ - Shadow: `rgba(0,0,0,0.12) 0 2px 8px`
120
+
121
+ **Secondary Outline Button**
122
+ - Background: transparent
123
+ - Border: 1pt solid `#222222`
124
+ - Text: `#222222`, Cereal 16pt weight 500
125
+ - Padding: 12pt vertical, 20pt horizontal
126
+ - Corner radius: 8pt
127
+
128
+ **Text Link ("Show all 24 photos", "Read more")**
129
+ - Cereal 14pt weight 500
130
+ - Color: `#222222` with underline
131
+ - No background, 44pt hit target
132
+ - Used heavily under hero photo grids and in review expansion
133
+
134
+ **Save Heart (every stay card)**
135
+ - Container: 32pt × 32pt, centered in a 44pt tap target, positioned top-right of the cover photo with 12pt inset
136
+ - Unsaved state: filled white heart with 1.5pt `#222222` outline; drop shadow `rgba(0,0,0,0.2) 0 2px 4px` for legibility over varied photography
137
+ - Saved state: filled `#FF385C`, outline removed
138
+ - Animation: scale 1.0 → 1.25 → 1.0 spring bounce on tap, paired with `.impactOccurred(.soft)` haptic
139
+
140
+ ### Cards & Containers
141
+
142
+ **Stay Card (The Hero Component)**
143
+ - Width: full content width (viewport - 32pt horizontal margins)
144
+ - Structure (top to bottom): 4:3 photo carousel → 8pt gap → rating row → 2pt → title → 2pt → subtitle → 6pt → date range → 4pt → price row
145
+ - Photo: `aspectRatio 4:3`, corner radius 16pt, swipeable carousel with dot indicators bottom-center (6 dots max, white fill for current / `rgba(255,255,255,0.5)` for others)
146
+ - Heart: top-right on photo with 12pt inset
147
+ - Rating row: star glyph `#484848` + "4.92 (324)" in `#484848` Cereal 14pt Medium + Book
148
+ - Title: "Private room in Reykjavik" in Cereal 15pt Medium `#484848`, 1-line truncate
149
+ - Subtitle: "Hosted by Sigrún · Superhost" in Cereal 14pt Book `#767676`, 1-line truncate
150
+ - Dates: "Oct 12 – 17" in Cereal 14pt Book `#767676`
151
+ - Price row: "$214 night" — "$214" Cereal 15pt Bold `#484848`, "night" Cereal 15pt Book `#484848`; on sale, old price in `#767676` with strikethrough before the new price
152
+ - Tap: scale 0.98 briefly; no elevation change — photos are already visually lifted by their 16pt radius
153
+
154
+ **Rating Row Primitive**
155
+ - Star: `star.fill` SF Symbol, 12pt, color `#484848` (NOT yellow — Airbnb renders the star dark gray on cards, reserving yellow for the review-detail screens)
156
+ - Number: Cereal 14pt weight 500 `#484848`
157
+ - Review count: " · 2,340" in Cereal 14pt weight 400 `#767676` (leading middle dot with thin space)
158
+ - Spacing: 4pt between star and number, inline with middle dot + count
159
+
160
+ **Category Chip (top-of-Explore bar)**
161
+ - Height: 56pt (icon stacked above label)
162
+ - Icon: 24pt SF Symbol or custom glyph, `#717171` default, `#222222` when selected
163
+ - Label: Cereal 12pt weight 500, `#717171` default, `#222222` selected
164
+ - Selected state: 2pt `#222222` underline, full-width of the chip, 8pt below the label
165
+ - Spacing: 32pt between chips
166
+ - Horizontal scroll, 16pt leading/trailing insets, last chip peeks off the right edge
167
+
168
+ **Search Pill (Explore top)**
169
+ - Height: 56pt
170
+ - Background: `#FFFFFF` on a 20pt shadow zone above the category bar
171
+ - Border: 0.5pt `#EBEBEB`
172
+ - Corner radius: 500pt (full pill, 28pt effective)
173
+ - Shadow: `rgba(0,0,0,0.08) 0 4px 12px`, `rgba(0,0,0,0.04) 0 1px 2px`
174
+ - Content (horizontal): `magnifyingglass` 16pt `#222222` → "Where to?" Cereal 14pt weight 700 `#222222` → vertical divider → "Anywhere" Cereal 12pt Book `#767676` → divider → "Any week" → divider → "Add guests" → filter icon on far right
175
+ - Collapsed variant (after scroll): just "Where to?" + "Anywhere · Any week · Add guests" in 12pt Book
176
+
177
+ **Stay Detail Photo Grid**
178
+ - Top-of-screen grid: 1 large hero on the left (2/3 width, full height), 4 smaller thumbnails stacked on the right in a 2×2 grid
179
+ - Total height: ~320pt on iPhone
180
+ - Corner radius: 16pt on the outer frame; 0pt on internal photos (the frame clips)
181
+ - "Show all photos" pill overlay: bottom-right corner, 8pt inset, `#FFFFFF` background, 1pt `#222222` border, 500pt radius, Cereal 14pt weight 500 with `square.grid.2x2` icon
182
+
183
+ **Map Price Bubble**
184
+ - Shape: rounded rectangle, corner radius 12pt (NOT a full pill — Airbnb's map pins are slightly rounded rectangles)
185
+ - Background: `#FFFFFF` default, `#222222` when visited, `#FF385C` when selected
186
+ - Text: Cereal 14pt weight 700 — `$214` or the nightly price
187
+ - Shadow: `rgba(0,0,0,0.2) 0 2px 6px`
188
+ - Padding: 6pt vertical, 10pt horizontal
189
+ - Heart indicator: tiny 10pt heart inset top-right if saved
190
+
191
+ ### Navigation
192
+
193
+ **Large-Title Nav Bar (Explore / Wishlists / Trips / Inbox / Profile)**
194
+ - Height: variable — 96pt when scrolled to top (large title), collapses to 44pt (inline title) on scroll
195
+ - Background: `#FFFFFF` (collapses to `.regularMaterial` blur when content scrolls under)
196
+ - Title: Cereal 32pt Extra Bold `#222222`, left-aligned, 16pt leading margin
197
+ - Trailing icon: 24pt avatar or action button
198
+ - Below title: metadata strip ("3 upcoming trips", "12 new messages") in Cereal 14pt Book `#767676`
199
+
200
+ **Bottom Tab Bar**
201
+ - Height: 56pt + safe area
202
+ - Background: `#FFFFFF` with 0.5pt `#EBEBEB` top divider; semi-transparent `.regularMaterial` blur when content scrolls beneath
203
+ - Tabs: Explore, Wishlists, Trips, Inbox, Profile (all 5 always labeled)
204
+ - Icon size: 24pt, outlined SF Symbol default / filled when active
205
+ - Active color: `#FF385C` (icon + label)
206
+ - Inactive: `#717171`
207
+ - Labels: Cereal 10pt weight 500, visible always
208
+ - Tap haptic: `.selectionChanged()` on each switch
209
+
210
+ **Category Bar (below Explore large title)**
211
+ - Fixed position while scrolling within Explore
212
+ - Height: 72pt (56pt chip + 16pt bottom padding + underline space)
213
+ - Background: `#FFFFFF` with 0.5pt `#EBEBEB` bottom divider; slides up on scroll with the collapsing large title
214
+
215
+ **Sticky Booking Footer (Stay Detail bottom)**
216
+ - Height: 80pt + safe area
217
+ - Background: `#FFFFFF` with a 0.5pt `#EBEBEB` top divider, `.regularMaterial` blur above content
218
+ - Left: total price in Cereal 16pt Bold `#222222` + "total" + date range link in Cereal 14pt Book underline
219
+ - Right: "Reserve" pill button, 48pt height, Primary Coral
220
+ - The footer is persistent and translucent — always visible on scroll
221
+
222
+ ### Input Fields
223
+
224
+ **Text Field (Payment / Contact forms)**
225
+ - Background: `#FFFFFF`
226
+ - Border: 1pt `#B0B0B0` default, 2pt `#222222` focused
227
+ - Corner radius: 8pt
228
+ - Height: 56pt
229
+ - Label: floating — sits inside at 16pt Book `#767676` when empty; animates to 12pt Medium `#222222` at the top-left corner when focused or filled
230
+ - Text: Cereal 16pt Book `#222222`
231
+
232
+ **Search Input (inline, "Where to?" modal)**
233
+ - On tap, the pill expands into a full-screen modal with a vertical list of "Location / Check in / Check out / Who" as stacked cards
234
+ - Each card: 80pt tall, white background, 16pt corner radius, label at top, value below, selected card has 1pt `#222222` outline
235
+
236
+ **Date Range Picker (Calendar)**
237
+ - Two-month view, scrollable vertically, months stacked
238
+ - Month label: Cereal 18pt Bold `#484848`, left-aligned
239
+ - Weekday row: Cereal 12pt weight 500 `#767676`, centered
240
+ - Date cells: 40pt × 40pt circle when selected
241
+ - Start/end date: solid `#222222` circle, white number
242
+ - Range (between start and end): `#F7F7F7` rounded-rect fill spanning the cells
243
+ - Today: 1pt outline, no fill
244
+ - Unavailable: strikethrough with `#B0B0B0`
245
+
246
+ ### Distinctive Components
247
+
248
+ **Belo Logomark**
249
+ - The official symbol — a heart-house-pin composite — in Rausch (`#FF5A5F`), NOT Primary Coral
250
+ - Used on the splash screen, inside "About" modals, and occasionally as a loading indicator with a subtle 1200ms pulse
251
+ - Never render Belo in any color other than Rausch `#FF5A5F` or white on dark
252
+
253
+ **Host Badge Row**
254
+ - 48pt circular host avatar + "Hosted by [Name]" Cereal 16pt Medium + "Superhost · 3 years hosting" in Cereal 14pt Book `#767676`
255
+ - Appears on every stay detail; tap opens host profile sheet
256
+
257
+ **Amenities List**
258
+ - Column of rows, each: 24pt SF Symbol glyph (e.g., `wifi`, `tv.fill`, `parkingsign.circle`) + Cereal 16pt Book `#484848` label
259
+ - Unavailable amenities: glyph and text strikethrough, `#B0B0B0` color
260
+ - "Show all 24 amenities" underlined button at bottom
261
+
262
+ **Illustration Moments**
263
+ - Empty states ("No trips yet", "No messages"), onboarding, and host education use Airbnb's proprietary illustration style — soft, slightly hand-drawn vectors with a pastel palette, often a human figure doing something hospitable
264
+ - Illustrations are treated as hero elements, usually 180-240pt square, centered, with supporting copy 16pt below
265
+
266
+ ## 5. Layout Principles
267
+
268
+ ### Spacing System
269
+ - Base unit: 4pt
270
+ - Scale: 4, 8, 12, 16, 20, 24, 32, 40, 48, 64, 80
271
+ - Standard horizontal margin: 24pt on stay detail, 16pt on Explore/lists
272
+ - Section vertical gap: 40pt between major sections on stay detail; 24pt between stacked stay cards
273
+
274
+ ### Grid & Container
275
+ - Content width: full device width minus 16-24pt horizontal margins
276
+ - Stay cards: always full width of content area, stacked vertically (no 2-col grid in Explore — one card at a time with hero photo)
277
+ - Wishlist grid: 2-col square grid, 8pt gap
278
+ - Category chips: horizontal scroll, no column constraint
279
+
280
+ ### Whitespace Philosophy
281
+ - **Generous vertical breathing**: 24pt between stacked stay cards, 40pt between sections on detail
282
+ - **Photography gets the margins**: the 4:3 cover photo sets the rhythm — white space around each card is essentially as tall as the photo is wide divided by ~8
283
+ - **Sticky chrome compresses the content**: category bar + tab bar means the effective scroll viewport is ~70% — plan card heights accordingly
284
+
285
+ ### Border Radius Scale
286
+ - Square (0pt): rare — used only on strikethrough prices inline
287
+ - Small (4pt): badges, tiny pills
288
+ - Standard (8pt): text fields, Reserve CTA, sheet containers
289
+ - Soft (12pt): chip fills on search modal, map price bubbles
290
+ - Medium (16pt): stay-card photos, photo grid outer frame — the signature Airbnb radius
291
+ - Comfortable (24pt): modal sheet top corners
292
+ - Full Pill (500pt): category chips, search pill, filter buttons
293
+ - Circle (50%): avatars, date-picker selected cells, save-heart container
294
+
295
+ ## 6. Depth & Elevation
296
+
297
+ | Level | Treatment | Use |
298
+ |-------|-----------|-----|
299
+ | Flat (Level 0) | No shadow | List rows, section backgrounds, canvas |
300
+ | Card (Level 1) | `rgba(0,0,0,0.08) 0 2px 8px` | Stay cards rarely — Airbnb relies on the photo radius for lift, shadows are subtle |
301
+ | Floating (Level 2) | `rgba(0,0,0,0.12) 0 4px 12px` | Search pill, filter button, map price bubble |
302
+ | Overlay (Level 3) | `rgba(0,0,0,0.16) 0 8px 24px` | Host profile sheet, photo lightbox, filter modal |
303
+ | Sheet (Level 4) | `rgba(0,0,0,0.24) 0 -12px 32px` | Bottom sheets, booking confirmation |
304
+ | Blur Material | `.regularMaterial` over `#FFFFFF` at 92% | Sticky booking footer, scrolled nav bar, tab bar |
305
+
306
+ **Shadow Philosophy**: Airbnb is a content-first, clean app — shadows are soft, low-opacity (0.08-0.16 max), and short (2-12pt blur). The 16pt corner radius on stay-card photos does most of the visual lifting; shadows are there to separate sticky chrome from content beneath, not to make cards "pop". Compared to a fintech or food-delivery app, Airbnb's elevations are whispered.
307
+
308
+ ### Motion
309
+ - **Save heart tap**: scale 1.0 → 1.25 → 1.0 over 300ms spring (damping 0.6), paired with `.impactOccurred(.soft)` haptic
310
+ - **Photo carousel swipe**: 60fps horizontal paging with rubber-band at edges; dot indicators cross-fade
311
+ - **Category bar switch**: underline slides to the new chip via `matchedGeometryEffect` in 250ms spring
312
+ - **Search pill expand**: shared-element 400ms spring — pill morphs into the full-screen search modal, content cross-fades
313
+ - **Reserve tap**: scale 0.98 instant, then `.impactOccurred(.medium)` haptic; on success, `.notificationOccurred(.success)`
314
+ - **Map pin tap**: selected pin scales 1.0 → 1.1, color transitions `#FFFFFF` → `#FF385C`, background stay card slides up from the bottom
315
+ - **Belo loading**: slow pulse 1200ms opacity 0.6 → 1.0 → 0.6, Rausch `#FF5A5F`
316
+
317
+ ## 7. Do's and Don'ts
318
+
319
+ ### Do
320
+ - Use `#FF385C` as the primary action color for Reserve, save-heart fill, category underline, and active tab
321
+ - Use `#FF5A5F` (Rausch) for the Belo logomark and illustration moments — it's the heritage red that still appears
322
+ - Render stay-card photos at 4:3 with 16pt corner radius — this is the single most recognizable component in the app
323
+ - Place the save-heart top-right on every stay card, with a subtle drop shadow for legibility over varied photography
324
+ - Use Hof (`#484848`) for primary text, not `#000000` — Airbnb is warm, not hard
325
+ - Use Foggy (`#767676`) for the rating row review count, host byline, dates, and metadata
326
+ - Keep the category bar pinned under the large nav title on Explore
327
+ - Let photography set the chromatic mood — the UI chrome should recede
328
+ - Keep shadows soft (0.08 opacity) and short (2-8pt blur)
329
+ - Use Cereal weights 400/500/700/800 for almost everything
330
+ - Use SF Pro Display/Text as the fallback when Cereal isn't available — it's the warmest system face
331
+
332
+ ### Don't
333
+ - Don't use pure black `#000000` for body text — `#484848` (Hof) is the correct value
334
+ - Don't render stay-card photos with sharp corners or rounded corners smaller than 16pt
335
+ - Don't use Primary Coral for body text or section headers — it's a verb, not a color
336
+ - Don't replace the Belo logomark's Rausch red with Primary Coral — they are intentionally different
337
+ - Don't use aggressive shadows — stay cards are lifted by their radius, not their drop
338
+ - Don't skip the rating row on a stay card — it's part of the card's identity
339
+ - Don't use a 2-column grid for stay cards in Explore — one full-width card at a time is the Airbnb pattern
340
+ - Don't use yellow for the rating-row star on cards — it's `#484848` dark gray on cards; yellow appears only on review-detail screens
341
+ - Don't hide the sticky Reserve footer on stay detail — it's persistent throughout the scroll
342
+ - Don't use Arches orange or Babu teal as primary UI accents — they are reserved for Trips and Experiences/Plus respectively
343
+
344
+ ## 8. Responsive Behavior
345
+
346
+ ### Device Sizes
347
+ | Device | Width | Key Changes |
348
+ |--------|-------|-------------|
349
+ | iPhone SE (3rd gen) | 375pt | Stay-card photo aspect shifts 4:3 → 3:2 for compactness |
350
+ | iPhone 13/14/15 | 390pt | Standard 4:3 photos, 24pt horizontal margins on detail |
351
+ | iPhone 15/16 Pro | 393pt | Dynamic Island respected in large-title nav |
352
+ | iPhone 15/16 Pro Max | 430pt | Larger 4:3 photos, category bar shows one additional chip |
353
+ | iPad | 768pt+ | 2-col stay-card grid, photo grid uses 3×3 layout, sticky booking moves to right sidebar |
354
+
355
+ ### Dynamic Type
356
+ - Large nav titles, section headers, body, metadata: full scale
357
+ - Rating numbers, category chip labels, tab labels: fixed (layout-sensitive)
358
+ - Price bubble on map: fixed size
359
+ - Stay-card title: scales but clamps at 18pt max
360
+
361
+ ### Orientation
362
+ - Most screens: portrait-locked
363
+ - Photo lightbox (viewing all photos): rotates to landscape, full-bleed
364
+ - Map view: rotates
365
+
366
+ ### Touch Targets
367
+ - Save heart: 44pt tap area on a 32pt glyph container
368
+ - Category chip: full-height 56pt, 44pt minimum width
369
+ - Tab bar icons: 24pt icon, full 56pt row
370
+ - Reserve CTA: 48pt height, full width minus 24pt margins
371
+
372
+ ### Safe Area Handling
373
+ - Top: safe area honored — large nav title starts at safe-area top + 16pt
374
+ - Bottom: sticky Reserve footer respects home indicator; tab bar pins above home indicator on other screens
375
+ - Sides: 16-24pt content insets depending on screen
376
+
377
+ ## 9. Agent Prompt Guide
378
+
379
+ ### Quick Color Reference
380
+ - Canvas: `#FFFFFF`
381
+ - Surface Gray: `#F7F7F7`
382
+ - Divider: `#EBEBEB`
383
+ - Hof (primary text): `#484848`
384
+ - Foggy (secondary text): `#767676`
385
+ - Primary Coral (current): `#FF385C`
386
+ - Coral Pressed: `#E31C5F`
387
+ - Rausch (heritage): `#FF5A5F`
388
+ - Babu (teal): `#00A699`
389
+ - Arches (orange): `#FC642D`
390
+ - Star yellow (on review screens only): `#FFB400`
391
+ - Error red: `#C13515`
392
+
393
+ ### Example Component Prompts
394
+ - "Create a SwiftUI Airbnb stay card: full-width 4:3 photo with 16pt corner radius and a save-heart in the top-right (white-filled with black outline, shadow for legibility). Below the photo: 8pt gap, then a rating row with a 12pt star.fill in #484848 + '4.92' in Airbnb Cereal 14pt weight 500 + ' · 324' in Cereal 14pt weight 400 #767676. Then title 'Private room in Reykjavik' in Cereal 15pt weight 500 #484848, subtitle 'Hosted by Sigrún · Superhost' in Cereal 14pt weight 400 #767676, dates 'Oct 12 – 17' in Cereal 14pt weight 400 #767676, and price '$214 night' with the number in Cereal 15pt weight 700 #484848."
395
+ - "Build the Explore search pill: full-width minus 32pt margins, 56pt tall, white background with a 0.5pt #EBEBEB border and rgba(0,0,0,0.08) 0 4px 12px shadow. Leading 16pt magnifyingglass SF Symbol, then 'Where to?' in Cereal 14pt weight 700, then a vertical divider, then 'Anywhere · Any week · Add guests' in Cereal 12pt weight 400 #767676. Corner radius 500pt (full pill). Tap opens the search modal with a shared-element spring transition."
396
+ - "Design the category bar: horizontal scroll row pinned under the large nav title. Each chip is 56pt tall with a 24pt icon stacked above a 12pt weight 500 label. Default color #717171, selected color #222222. Selected chip has a 2pt #222222 underline 8pt below the label. 32pt spacing between chips, 16pt leading inset. Icons come from SF Symbols (flame, house.fill, tree.fill, etc.)."
397
+ - "Build the sticky booking footer on a stay-detail screen: 80pt tall plus safe area, white background with a 0.5pt #EBEBEB top divider and .regularMaterial blur. Left side: '$1,284 total' in Cereal 16pt weight 700 #222222 above a 'Oct 12 – 17' link in Cereal 14pt weight 400 #222222 with underline. Right side: 'Reserve' pill button, 48pt height, #FF385C background, Cereal 16pt weight 700 white text, 8pt corner radius. Haptic: .impactOccurred(.medium) on tap."
398
+ - "Create a map price bubble: rounded rectangle with 12pt corner radius, white background, 6pt vertical and 10pt horizontal padding. Text is '$214' in Cereal 14pt weight 700 #222222. Shadow: rgba(0,0,0,0.2) 0 2px 6px. Selected state: background turns #FF385C and text turns white. Visited state: background turns #222222 and text stays white."
399
+
400
+ ### Iteration Guide
401
+ 1. Canvas is `#FFFFFF`; use Surface Gray `#F7F7F7` only for search-field fill and section backgrounds
402
+ 2. Primary action is `#FF385C` — Reserve CTA, save-heart fill, category underline, active tab
403
+ 3. Rausch `#FF5A5F` is heritage — keep it on the Belo logomark and illustration moments, don't use it on modern CTAs
404
+ 4. Body text is Hof `#484848`, NOT `#000000` — this is what makes the app feel warm
405
+ 5. Stay-card photos are 4:3 with a 16pt corner radius — the single most signature visual in the app
406
+ 6. Save heart sits top-right of every stay card with a drop shadow for legibility
407
+ 7. Cereal at weights 400/500/700/800 for 95% of type; SF Pro is the correct system fallback
408
+ 8. Shadows are subtle (0.08-0.16 opacity) — Airbnb is content-first, not elevated
409
+ 9. Keep photography as the hero — UI chrome should always recede
410
+ 10. Dark mode is warm `#121212` canvas with `#DDDDDD` primary text; Primary Coral stays identical