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,405 @@
1
+ # Design System Inspiration of Hinge (iOS)
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ Hinge's iOS app reads like a personal journal printed on warm uncoated paper. The canvas is a soft off-white — almost a cream — that intentionally rejects the cold pure-white of most tech apps, because Hinge's premise is intimate: this is the app "designed to be deleted", and the surface is supposed to feel quiet, considered, careful. Where Tinder's swipe stack is a slot machine of full-bleed faces, Hinge's profile is a vertical scroll — long, novel-like, prompts interleaved with photos — and you respond by tapping a specific paragraph or picture and leaving a comment. The interaction model is the design: Hinge is a conversation, not a verdict.
6
+
7
+ The accent that does almost all the work is Hinge Black (`#1A1A1A`) — a warm, slightly desaturated near-black used for primary type and the iconic "H" mark. The signature pop is a single gold-orange that Hinge uses for one thing only: the Standouts star, the Roses currency, and certain premium moments. Everything else is greyscale on cream. The restraint is the brand. When the entire app is paper-textured neutrals and a profile suddenly blooms with a single Rose icon, the gesture lands.
8
+
9
+ Typography is dominated by Sailec — the proprietary face Hinge uses for prompts and personal-attribute text. Headlines and the iconic prompts ("Two truths and a lie", "My simple pleasures") are set in display weights at 28-32pt; prompts answers are oversized at 22-24pt — a tweet-sized intimate statement, sized like a magazine pull-quote, given more weight than the photos themselves. Below the answers, attribute chips (height, job, location, education) use a smaller geometric sans at 13-14pt, sitting on subtle pill backgrounds. The voice the type carries is editorial-personal: a profile reads like an excerpt from someone's diary.
10
+
11
+ **Key Characteristics:**
12
+ - Cream canvas (`#FDF8F2`) and Paper White (`#FAF6F0`) — warm off-whites that never read as cold
13
+ - Hinge Black (`#1A1A1A`) for type and the iconic "H" mark — a warm near-black, not pure
14
+ - Single gold accent (`#E8A04D`) reserved for Standouts star, Roses currency, premium edges
15
+ - Vertical scrolling profiles with prompt cards and photos interleaved — never a card stack
16
+ - Comment-on-photo and Like-with-a-comment patterns — tap any prompt or photo to react
17
+ - Heart button (filled black `#1A1A1A`) under every prompt and photo — the most pressed button in the app
18
+ - Rose icon (filled gold `#E8A04D`) — premium send, reserved for "this is the one"
19
+ - Bottom tab: Discover / Likes You / Standouts / Matches / Profile — 5 tabs, labeled, black-active
20
+ - Sailec for display + prompts; Inter or system fallback for chrome and attributes
21
+ - Subtle, paper-soft shadows (`rgba(0,0,0,0.06)`) and 12-16pt corner radii on all cards
22
+
23
+ ## 2. Color Palette & Roles
24
+
25
+ ### Primary
26
+ - **Hinge Black** (`#1A1A1A`): The brand color — type, "H" mark, primary CTAs, filled heart, active tab, vote check.
27
+ - **Black Pressed** (`#0A0A0A`): Pressed-state of Hinge Black on CTAs.
28
+ - **Hinge Cream** (`#FDF8F2`): The signature canvas — every screen background by default.
29
+
30
+ ### Brand Accents
31
+ - **Rose Gold** (`#E8A04D`): The single accent — Standouts star, Roses currency icon, premium "send a Rose" CTA, gold ring on hero standout cards.
32
+ - **Rose Gold Deep** (`#C57E2E`): Pressed state on Rose CTAs, gold sparkle on the Roses sheet.
33
+ - **Rose Gold Light** (`#F5D9A8`): Soft fill behind the Standouts module, gold halo on the Rose icon at large sizes.
34
+
35
+ ### Surfaces & Dividers
36
+ - **Paper White** (`#FAF6F0`): Card fill — prompt cards, photo frames, sheet backgrounds.
37
+ - **Surface Sand** (`#F2EBE0`): Attribute chip fills, input field backgrounds, sticky note feel.
38
+ - **Surface Sand 2** (`#E8DFD0`): Pressed states on chips, hairline-thicker dividers.
39
+ - **Divider Bone** (`#E0D6C5`): 0.5pt row dividers on settings and forms.
40
+ - **Hinge Shadow** (`rgba(28, 20, 10, 0.08)`): Card shadow — warm-tinted, never blue-grey.
41
+
42
+ ### Text
43
+ - **Hinge Black** (`#1A1A1A`): Primary text — prompt questions, prompt answers, names.
44
+ - **Hinge Graphite** (`#4A4239`): Secondary text — attribute labels, dates, "x liked your prompt" metadata. Warm-tinted, not neutral grey.
45
+ - **Hinge Stone** (`#7A7268`): Tertiary text — placeholder, helper, "Send a Like" hint.
46
+ - **Hinge Bone** (`#B0A89C`): Disabled labels, very-secondary metadata.
47
+
48
+ ### Semantic
49
+ - **Match Green** (`#2D7A4B`): "It's a match" confirmation banner, profile "verified" checkmark.
50
+ - **Warning Amber** (`#D88B2E`): Profile incomplete warnings, photo review pending.
51
+ - **Error Red** (`#B33A2F`): Form errors, decline confirmation on Likes You.
52
+ - **Info Slate** (`#5A6273`): Rarely used — Hinge Labs info banners, external links.
53
+
54
+ ### Dark Mode
55
+ Hinge added dark mode in 2022. It is warm-dark — preserving the paper feel, never going pure black.
56
+ - **Dark Canvas** (`#16130E`): Warm near-black canvas — the cream-paper-at-night feel.
57
+ - **Dark Surface 1** (`#1E1A14`): Cards and prompt boxes.
58
+ - **Dark Surface 2** (`#2A2520`): Chip fills and pressed states.
59
+ - **Dark Divider** (`#2F2A22`): Hairlines.
60
+ - **Dark Text Primary** (`#EFE8DA`): Inverted Hinge Black, slightly warm.
61
+ - **Dark Text Secondary** (`#A89E8E`): Inverted Hinge Graphite.
62
+ - **Rose Gold (dark)** (`#F0B05C`): Brightened gold for OLED — the Standouts star and Rose icon get +8% luminance on dark canvas.
63
+
64
+ ## 3. Typography Rules
65
+
66
+ ### Font Family
67
+ - **Primary (display, prompts)**: `Sailec` — geometric humanist sans by Type Dynamic, used across Hinge marketing and in-app
68
+ - **Weights available**: Light (300), Regular (400), Medium (500), Bold (700), Black (900)
69
+ - **Secondary (UI chrome, body, chips)**: `Inter` or system — paired for compact UI sizes 12-15pt
70
+ - **Fallback stack**: `-apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text', 'Helvetica Neue', sans-serif` — SF Pro is the warmer system fallback
71
+ - **Web/marketing Google Fonts substitute**: `Manrope` or `DM Sans` — both capture Sailec's mix of warmth and geometric clarity
72
+
73
+ ### Hierarchy
74
+
75
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
76
+ |------|------|------|--------|-------------|----------------|-------|
77
+ | Display Hero | Sailec | 36pt | 700 (Bold) | 1.1 | -0.6pt | "It's a match!" celebration, name on profile detail |
78
+ | Prompt Question | Sailec | 22pt | 500 (Medium) | 1.25 | -0.2pt | "Two truths and a lie", italicized in some templates |
79
+ | Prompt Answer | Sailec | 24pt | 700 (Bold) | 1.25 | -0.3pt | The user's response — the most prominent text on profile |
80
+ | Name + Age | Sailec | 28pt | 700 | 1.15 | -0.4pt | "Sigrún, 28" at top of profile |
81
+ | Section Header | Sailec | 18pt | 700 | 1.2 | -0.1pt | "Vitals", "My Vices", on profile detail |
82
+ | Card Body | Inter | 16pt | 400 (Regular) | 1.4 | 0pt | Prompt context, settings descriptions |
83
+ | Card Body Bold | Inter | 16pt | 600 (Semi) | 1.4 | 0pt | Emphasis within paragraphs |
84
+ | Attribute Chip | Inter | 14pt | 500 (Medium) | 1.3 | 0pt | "5'9", "Engineer", "San Francisco" |
85
+ | Metadata | Inter | 13pt | 400 | 1.3 | 0pt | "Liked your prompt 2h ago", date stamps |
86
+ | Button (Primary) | Sailec | 16pt | 700 | 1.0 | 0pt | "Send Like", "Send Rose", "Match" |
87
+ | Tab Label | Sailec | 10pt | 500 | 1.0 | 0.2pt | Bottom tab bar — all caps not used |
88
+ | Comment Input | Inter | 16pt | 400 | 1.35 | 0pt | "Add a comment…" placeholder |
89
+ | Helper / Caption | Inter | 12pt | 400 | 1.3 | 0pt | "Visible to people who liked you", fine print |
90
+ | Match Banner | Sailec | 14pt | 700 | 1.0 | 0.2pt | "You matched with Sigrún" in success green |
91
+
92
+ ### Principles
93
+ - **Prompts get magazine-pull-quote weight**: Answers at 24pt Bold are intentionally larger than supporting photos in visual weight — Hinge wants you to read the words, not skim the face.
94
+ - **Sailec carries voice, Inter carries chrome**: Display, prompts, and CTAs in Sailec; everything tabular or compact in Inter.
95
+ - **Warm Hinge Black, never pure**: Body text sits at `#1A1A1A`, not `#000000` — alongside the cream canvas, this is what makes the surface feel like printed paper.
96
+ - **Italic prompts on certain templates**: Prompt questions like "I geek out on _" sometimes use Sailec Italic for the answer-blank line — a typographic wink that makes them feel handwritten.
97
+ - **Dynamic Type respected on prompt content, name, body**: Attribute chips and tab labels are fixed (layout-sensitive); profile content scales generously.
98
+ - **Tracking is editorial — tight at display, neutral at body**: -0.6pt at 36pt falling to 0pt at body, no positive tracking anywhere except caps-set tab labels at +0.2pt.
99
+
100
+ ## 4. Component Stylings
101
+
102
+ ### Buttons
103
+
104
+ **Primary CTA (Send Like / Send Rose / Match / Continue)**
105
+ - Background: `#1A1A1A`
106
+ - Text: `#FAF6F0` (Paper White, not pure white — warm contrast)
107
+ - Padding: 16pt vertical, 32pt horizontal
108
+ - Corner radius: 28pt (capsule — fully rounded, height ≈ 56pt)
109
+ - Height: 56pt fixed
110
+ - Pressed: background `#0A0A0A`, scale 0.97
111
+ - Haptic: `.impactOccurred(.medium)` on Send Like; `.notificationOccurred(.success)` on match
112
+
113
+ **Rose CTA (Send a Rose — premium)**
114
+ - Background: `#1A1A1A` with a 1pt gold inner stroke (`#E8A04D`)
115
+ - Text: `#FAF6F0`, with a 16pt filled Rose icon in `#E8A04D` leading the label
116
+ - Padding: 14pt vertical, 28pt horizontal
117
+ - Corner radius: 28pt
118
+ - Selected/Rose-spent state: background turns `#E8A04D`, text turns `#1A1A1A`
119
+ - The Rose CTA always carries a `.heavy` haptic — it costs currency and the haptic communicates weight
120
+
121
+ **Heart Tap (under every prompt and photo — the most-pressed button)**
122
+ - Container: 44pt circle, `#FAF6F0` fill on canvas with 1pt `#1A1A1A` stroke
123
+ - Icon: filled heart, `#1A1A1A`, 18pt
124
+ - Pressed state: scale 0.88, fill flips to `#1A1A1A` solid with white heart
125
+ - Tapped state (the "leave a comment" affordance): expands into a sheet with a text field and the chosen prompt/photo pinned at top
126
+ - Haptic: `.impactOccurred(.light)` on initial tap; `.impactOccurred(.medium)` on send
127
+
128
+ **Secondary Text Button ("Decline" on Likes You, "Skip" on prompts)**
129
+ - Background: transparent
130
+ - Text: `#4A4239`, Sailec 14pt weight 500
131
+ - No border, 44pt hit target
132
+ - Underline only on text-link variants ("Read more", "Show all")
133
+
134
+ **X Decline (Likes You stack)**
135
+ - 48pt circle, `#FAF6F0` fill, 1.5pt `#1A1A1A` stroke, 22pt black X glyph
136
+ - Lives bottom-left of the Likes You card; the heart-with-comment lives bottom-right
137
+ - Pressed state: scale 0.92
138
+
139
+ ### Cards & Containers
140
+
141
+ **Prompt Card (The Hero Component)**
142
+ - Width: full content width (viewport - 32pt horizontal margins)
143
+ - Background: `#FAF6F0` (Paper White, NOT cream — slightly whiter than canvas for the lift)
144
+ - Border: 0.5pt `#E0D6C5` (Divider Bone)
145
+ - Corner radius: 16pt
146
+ - Padding: 24pt all around
147
+ - Structure: question at top (Sailec 22pt Medium `#4A4239`, italicized on certain templates), 12pt gap, answer (Sailec 24pt Bold `#1A1A1A`), then a 44pt heart-tap button bottom-right with 12pt inset
148
+ - Shadow: `rgba(28, 20, 10, 0.06) 0 2px 8px` — barely-there paper lift
149
+ - The card is the canonical reactive surface — tap anywhere on it (not just the heart) and you go straight into "leave a comment"
150
+
151
+ **Photo Card**
152
+ - Width: full content width
153
+ - Aspect: 4:5 (portrait) — taller than Tinder's photos, by design
154
+ - Corner radius: 16pt
155
+ - Heart-tap: 44pt circle in bottom-right with 16pt inset
156
+ - No caption overlays — Hinge keeps photos clean; the captions live in prompt cards
157
+
158
+ **Attribute Chip Row (Vitals)**
159
+ - Each chip: pill, `#F2EBE0` (Surface Sand) background, 8pt vertical / 14pt horizontal padding, Inter 14pt Medium `#1A1A1A`
160
+ - 13pt SF Symbol or custom glyph leading the label (e.g., `ruler`, `briefcase.fill`, `mappin`, `graduationcap.fill`)
161
+ - 8pt gap between chips, wrapping into 2-3 rows under the name header
162
+ - Verified-attribute chips get a tiny `checkmark.seal.fill` in `#2D7A4B` (Match Green) trailing the label
163
+
164
+ **Standouts Card (Premium hero)**
165
+ - Width: full minus 32pt margins
166
+ - Aspect: 1:1 (square) for the photo at top
167
+ - Corner radius: 20pt
168
+ - Background: `#FAF6F0` with a 1pt `#E8A04D` (Rose Gold) gradient border — this is the only gold-bordered surface in the app
169
+ - Header strip above the photo: 32pt tall, `#F5D9A8` (Rose Gold Light) fill, 14pt `star.fill` in `#E8A04D` + "Standout" label in Sailec 12pt Bold `#1A1A1A`
170
+ - Below the photo: a single prompt answer in Sailec 24pt Bold, then the Rose CTA pinned at the bottom
171
+ - Tap haptic: a softer `.impactOccurred(.soft)` because the Standouts list is delicate — these are people specifically curated for you
172
+
173
+ **Likes You Tile (grid view)**
174
+ - 2-col grid, 8pt gap, full-bleed photos with the answered prompt below
175
+ - Each tile: 16pt radius, photo 4:5 aspect, prompt text below in Sailec 16pt Medium `#1A1A1A` truncated to 2 lines
176
+ - Blur overlay on non-subscribed accounts — full reveal requires Hinge+
177
+ - Tap opens the full vertical-scroll profile
178
+
179
+ ### Navigation
180
+
181
+ **Top Header Bar (Discover / Likes You / Standouts / Matches / Profile)**
182
+ - Height: 56pt (no large-title pattern like Airbnb — Hinge uses a slim header)
183
+ - Background: `#FDF8F2` (canvas), no blur — content scrolls under cleanly
184
+ - Title: Sailec 24pt Bold `#1A1A1A`, left-aligned, 20pt leading margin
185
+ - Trailing icons: 24pt filter icon on Discover, 24pt sort-by icon on Likes You
186
+
187
+ **Bottom Tab Bar**
188
+ - Height: 56pt + safe area
189
+ - Background: `#FDF8F2` with 0.5pt `#E0D6C5` top divider; semi-transparent `.regularMaterial` blur when content scrolls beneath
190
+ - Tabs: Discover (compass), Likes You (heart-stack), Standouts (star), Matches (chat-bubble), Profile (person)
191
+ - Icon size: 24pt, outlined default / filled when active
192
+ - Active color: `#1A1A1A` (Hinge Black) — no special accent; the active tab uses filled icons + a 2pt black indicator dot 4pt below the icon
193
+ - Inactive: `#7A7268`
194
+ - Labels: Sailec 10pt weight 500, visible always
195
+ - Tap haptic: `.selectionChanged()` on each switch
196
+
197
+ **The "H" Mark**
198
+ - The proprietary "H" logomark — a tall, thin slab-serif uppercase "H" usually inside a circle
199
+ - Render: `#1A1A1A` on cream canvas; reversed (Paper White on Hinge Black circle) for splash and onboarding hero
200
+ - Used on splash, the Match celebration screen behind the names, and as a watermark on shared profile links
201
+ - Never rendered in any color other than `#1A1A1A` or `#FAF6F0` (and the rare gold variant on the "Standouts" launch screen)
202
+
203
+ ### Input Fields
204
+
205
+ **Comment Input (the most-used input in the app)**
206
+ - Background: `#F2EBE0` (Surface Sand)
207
+ - Border: none
208
+ - Corner radius: 24pt (capsule)
209
+ - Padding: 14pt vertical, 20pt horizontal
210
+ - Placeholder: "Add a comment…" in Inter 16pt Regular `#7A7268`
211
+ - Send icon: 28pt circle in `#1A1A1A` trailing the input, white arrow glyph
212
+ - Disabled state (no text): send circle drops to `#B0A89C`
213
+ - The comment input is paired with the prompt or photo it's replying to — that source is pinned at the top of the sheet, sized to half the available height
214
+
215
+ **Text Field (Profile editing, settings)**
216
+ - Background: `#FAF6F0` (Paper White)
217
+ - Border: 1pt `#E0D6C5` default, 1.5pt `#1A1A1A` focused
218
+ - Corner radius: 12pt
219
+ - Height: 52pt
220
+ - Label: floating — sits as placeholder at 16pt Regular `#7A7268` when empty; animates to 12pt Medium `#4A4239` at the top-left corner when focused or filled
221
+ - Text: Inter 16pt Regular `#1A1A1A`
222
+
223
+ **Prompt Picker (full-screen modal)**
224
+ - Scrollable list of prompt templates grouped by mood ("About me", "Self-care", "Story time")
225
+ - Each prompt row: 64pt tall, `#FAF6F0` background, 12pt radius, Sailec 16pt Medium label, 1pt `#E0D6C5` divider beneath
226
+ - Tapping a prompt expands inline into a text editor with character counter (max 150 chars) in Inter 12pt at top-right
227
+
228
+ ### Distinctive Components
229
+
230
+ **Match Celebration ("You matched with…")**
231
+ - Full-screen takeover, `#FDF8F2` canvas
232
+ - Two photos side-by-side at top (each 120pt circle), 24pt gap, soft confetti animation in Rose Gold particles
233
+ - "It's a match!" in Sailec 36pt Bold `#1A1A1A` centered
234
+ - Subline: "You and Sigrún liked each other" in Inter 16pt Regular `#4A4239`
235
+ - Primary CTA: "Send a message" pill, full width, Hinge Black
236
+ - Secondary CTA: "Keep browsing" text button below
237
+ - Haptic on entry: `.notificationOccurred(.success)` + a slight `.impactOccurred(.soft)` 200ms later as the photos settle
238
+
239
+ **Rose Send Sheet**
240
+ - A bottom sheet, top corners 24pt radius
241
+ - 80pt rose icon at top in `#E8A04D` (Rose Gold), with a subtle 1500ms pulse halo
242
+ - "Send Sigrún a Rose?" in Sailec 22pt Bold
243
+ - Sub: "You have 3 Roses · Roses stand out 3× more than likes"
244
+ - Primary CTA: "Send Rose" with the rose icon leading
245
+ - Tertiary action: "Maybe later"
246
+ - Background: `#FAF6F0` with a 1pt Rose Gold border on the sheet to signal the premium moment
247
+
248
+ **Profile Vertical Scroll (the architecture)**
249
+ - A long single-column scroll: name+age header → vitals chip row → photo 1 → prompt 1 → photo 2 → prompt 2 → photo 3 → prompt 3 → photo 4 → vitals 2 (Religion/Politics/Family Plans) → photo 5 → prompt 4 → photo 6 → bottom action bar
250
+ - Each photo and each prompt is a separate reactive card with its own heart-tap
251
+ - 16pt vertical gap between cards
252
+ - Bottom action bar (sticky on Likes You; bottom-of-scroll on Discover): X Decline / Heart Tap area
253
+ - The architecture is the brand — there is no swipe gesture; advancement is read-and-tap, not flick
254
+
255
+ **Roses Currency Sheet**
256
+ - "You have 3 Roses" display, Sailec 28pt Bold centered, with three small `rose` icons floating above
257
+ - A 3-row purchase ladder ("3 Roses for $3.99", "12 Roses for $14.99", "36 Roses for $39.99") in Sailec 18pt Medium, each row a tappable pill
258
+ - Each row has a tiny rose-count icon and the price right-aligned in Sailec 16pt Bold
259
+
260
+ ## 5. Layout Principles
261
+
262
+ ### Spacing System
263
+ - Base unit: 4pt
264
+ - Scale: 4, 8, 12, 16, 20, 24, 32, 40, 48, 64
265
+ - Standard horizontal margin: 16pt on lists; 24pt inside prompt cards
266
+ - Section vertical gap: 16pt between prompt and photo cards (this gap defines the profile rhythm)
267
+ - Generous vertical padding inside prompt cards (24pt) — the words need to breathe
268
+
269
+ ### Grid & Container
270
+ - Content width: full device width minus 16pt horizontal margins
271
+ - Profile: single column, full-width cards stacked vertically — no two-up layout, ever
272
+ - Likes You: 2-col grid with 8pt gap on the grid view; single-column when viewing a specific profile
273
+ - Standouts: vertical carousel, one card at a time, full-width
274
+ - Attribute chips: wrap horizontally, never scroll horizontally
275
+
276
+ ### Whitespace Philosophy
277
+ - **Cream gives the spacing visual weight**: the off-white canvas reads as breathing room even at zero margin — Hinge can use tighter spacing than Airbnb because the cream itself is a soft pillow
278
+ - **Prompts get more vertical air than photos**: 24pt internal padding on prompt cards versus 16pt around photos — the words are the focal points
279
+ - **Sticky chrome is minimal**: just the top header (56pt) and tab bar (56pt + safe area) — the rest of the screen is profile
280
+
281
+ ### Border Radius Scale
282
+ - Square (0pt): rarely used — only on certain attribute glyphs
283
+ - Small (4pt): toast notifications, tiny pills
284
+ - Medium (12pt): text fields, settings rows
285
+ - Standard (16pt): prompt cards, photo cards — the signature Hinge radius
286
+ - Large (20pt): Standouts cards, modal sheets
287
+ - Capsule (28pt): primary CTAs, comment inputs — the rounded paper-feel
288
+ - Full Pill (500pt): attribute chips, secondary chips
289
+ - Circle (50%): tab indicator dot, heart-tap container, avatar in Match celebration
290
+
291
+ ## 6. Depth & Elevation
292
+
293
+ | Level | Treatment | Use |
294
+ |-------|-----------|-----|
295
+ | Flat (Level 0) | No shadow | Canvas, section dividers |
296
+ | Card (Level 1) | `rgba(28, 20, 10, 0.06) 0 2px 8px` | Prompt cards, photo cards — paper-soft lift |
297
+ | Floating (Level 2) | `rgba(28, 20, 10, 0.10) 0 4px 12px` | Standouts cards, hero modules |
298
+ | Overlay (Level 3) | `rgba(28, 20, 10, 0.14) 0 8px 24px` | Comment sheet, prompt picker modal |
299
+ | Sheet (Level 4) | `rgba(28, 20, 10, 0.18) 0 -12px 32px` | Bottom sheets (Rose send, settings actions) |
300
+ | Blur Material | `.regularMaterial` over `#FDF8F2` at 92% | Sticky bottom action bar on Likes You, tab bar |
301
+
302
+ **Shadow Philosophy**: Hinge's shadows are warm-tinted — they use a base color of `rgba(28, 20, 10, x)` rather than `rgba(0, 0, 0, x)`, which keeps the lift consistent with the cream canvas. The result is paper-on-paper depth: a prompt card lifts off the cream like a torn-out journal page placed on a leather notebook. Shadows never exceed 0.18 opacity; nothing in Hinge "pops".
303
+
304
+ ### Motion
305
+ - **Heart tap (the most repeated motion in the app)**: scale 1.0 → 0.88 → 1.0 over 250ms spring (damping 0.6), paired with `.impactOccurred(.light)` haptic; fill morph from white→black happens on the down-press
306
+ - **Card tap into comment sheet**: shared-element 400ms spring — the tapped card scales up and slides to the top of the sheet, content cross-fades; the rest of the profile blurs slightly behind
307
+ - **Match celebration confetti**: 60fps Rose Gold particle fall for 1800ms, paired with a `notificationOccurred(.success)` and a soft photo-pulse on the two avatars
308
+ - **Rose Send pulse halo**: the rose icon pulses scale 1.0 → 1.05 → 1.0 over 1500ms while the sheet is open — a gentle "this is precious" cue
309
+ - **Standouts card swipe**: vertical carousel with subtle parallax — the gold border on the active card brightens from `rgba(232, 160, 77, 0.6)` to `rgba(232, 160, 77, 1.0)` during transition
310
+ - **Tab switch**: 200ms ease — icons transition outlined→filled and the indicator dot fades in 4pt below; `.selectionChanged()` haptic on each tab
311
+
312
+ ## 7. Do's and Don'ts
313
+
314
+ ### Do
315
+ - Use the cream canvas (`#FDF8F2`) everywhere — it's the brand's most recognizable surface treatment
316
+ - Reserve Rose Gold (`#E8A04D`) for Standouts, Roses, and premium edges — nothing else
317
+ - Render the "H" mark in Hinge Black (`#1A1A1A`) on cream, or Paper White on Hinge Black — never gold, never any other color except the launch-screen variant
318
+ - Use Sailec for display, prompts, names, and CTAs; Inter or system for attribute chips and chrome
319
+ - Make every prompt card and photo independently tappable — the unit of interaction is "a moment on the profile", not "a profile"
320
+ - Put the heart-tap button on every reactive surface with consistent placement (bottom-right, 12pt inset)
321
+ - Use warm Hinge Black (`#1A1A1A`) for primary text, not pure black — the warmth is the brand
322
+ - Use warm-tinted shadows (`rgba(28, 20, 10, x)`) — never neutral blue-greys
323
+ - Add the `.impactOccurred(.light)` haptic on heart-tap and the `.impactOccurred(.heavy)` on Rose-send — currency gets weight
324
+ - Render attribute chips with a 13pt SF Symbol leading the label, on `#F2EBE0` (Surface Sand) pills
325
+ - Treat the comment input as a first-class element — capsule-rounded, generous padding, source-pinned
326
+
327
+ ### Don't
328
+ - Don't use a Tinder-style swipe stack — Hinge profiles are vertical scrolls, not card decks. The interaction model IS the design
329
+ - Don't render the canvas in pure white (`#FFFFFF`) — cream (`#FDF8F2`) is the signature
330
+ - Don't use gold (`#E8A04D`) anywhere except Standouts, Roses, and the Rose CTA — it loses its meaning if it appears in chrome
331
+ - Don't use pure black (`#000000`) for type — `#1A1A1A` is warm and intentional
332
+ - Don't make the prompt question larger than the answer — the user's words should always be the loudest element
333
+ - Don't use a 2-col grid for the main profile flow — vertical single-column is the Hinge pattern; 2-col is reserved for the Likes You preview grid
334
+ - Don't skip the heart-tap on any reactive card — the consistency is the muscle memory of the app
335
+ - Don't add a "super like" rocket or any Tinder-style escalation glyph — Hinge has Roses, full stop
336
+ - Don't put attribute chips in a horizontal scroll — they wrap, never scroll
337
+ - Don't use cool greys anywhere — Hinge's neutrals are all warm-tinted (sand, bone, graphite, stone)
338
+ - Don't blur Likes You photos for paying subscribers — the blur is the paywall, and it must lift cleanly when subscribed
339
+
340
+ ## 8. Responsive Behavior
341
+
342
+ ### Device Sizes
343
+ | Device | Width | Key Changes |
344
+ |--------|-------|-------------|
345
+ | iPhone SE (3rd gen) | 375pt | Prompt card padding drops to 20pt; photo aspect shifts 4:5 → 1:1.2 for vertical density |
346
+ | iPhone 13/14/15 | 390pt | Standard 4:5 photos, 24pt prompt card padding, 16pt horizontal margins |
347
+ | iPhone 15/16 Pro | 393pt | Dynamic Island respected; the top header drops slightly to make room |
348
+ | iPhone 15/16 Pro Max | 430pt | Photos render slightly larger; prompt answer can reach 26pt for visual parity |
349
+ | iPad | 768pt+ | 2-col profile rendering (photos right, prompts left), or full-bleed single column with side margins to keep prompt cards readable |
350
+
351
+ ### Dynamic Type
352
+ - Prompt questions, prompt answers, name, body, metadata: full scale
353
+ - Attribute chips, tab labels, the "H" mark sizing: fixed
354
+ - Comment input: full scale; the heart-tap glyph stays fixed but the input row grows
355
+
356
+ ### Orientation
357
+ - All swipe surfaces: portrait-locked
358
+ - Photo lightbox (tap-to-zoom on a profile photo): full-bleed, rotates to landscape
359
+ - The Match celebration: portrait only — confetti choreography is portrait-tuned
360
+
361
+ ### Touch Targets
362
+ - Heart-tap: 44pt circle, 56pt full hit area (8pt inset hit-slop)
363
+ - Attribute chip: 36pt tall, 80pt minimum width
364
+ - Tab bar icons: 24pt icon, full 56pt row
365
+ - CTAs: 56pt height, full width minus 24pt margins
366
+
367
+ ### Safe Area Handling
368
+ - Top: safe area honored — the 56pt header sits below the dynamic island/status bar
369
+ - Bottom: the sticky bottom action bar on Likes You respects home indicator; tab bar pins above home indicator on all other screens
370
+ - Sides: 16pt content insets on lists; 24pt inside prompt cards
371
+
372
+ ## 9. Quick Reference Cheat Sheet
373
+
374
+ ### Quick Color Reference
375
+ - Canvas: `#FDF8F2` (Hinge Cream)
376
+ - Paper White (cards): `#FAF6F0`
377
+ - Surface Sand (chips, inputs): `#F2EBE0`
378
+ - Divider Bone: `#E0D6C5`
379
+ - Hinge Black (primary): `#1A1A1A`
380
+ - Hinge Graphite (secondary): `#4A4239`
381
+ - Hinge Stone (tertiary): `#7A7268`
382
+ - Rose Gold (Standouts/Roses): `#E8A04D`
383
+ - Rose Gold Light (Standouts halo): `#F5D9A8`
384
+ - Match Green: `#2D7A4B`
385
+ - Error Red: `#B33A2F`
386
+ - Dark canvas: `#16130E`
387
+
388
+ ### Example Component Prompts
389
+ - "Create a SwiftUI Hinge prompt card: full-width card with `#FAF6F0` (Paper White) fill, 0.5pt `#E0D6C5` border, 16pt corner radius, 24pt internal padding, and a `rgba(28, 20, 10, 0.06) 0 2px 8px` shadow. The prompt question 'Two truths and a lie' is at the top in Sailec 22pt Medium `#4A4239`. Below it, the user's answer in Sailec 24pt Bold `#1A1A1A`, wrapping to 3-4 lines. A 44pt circle heart-tap button sits in the bottom-right with 12pt inset — `#FAF6F0` fill, 1pt `#1A1A1A` stroke, filled-heart glyph in `#1A1A1A` at 18pt. The whole card is tappable and bounces to scale 0.98 on press."
390
+ - "Build the Hinge bottom tab bar: 56pt tall plus safe area, `#FDF8F2` (cream) background with 0.5pt `#E0D6C5` top divider and a `.regularMaterial` blur layer for when content scrolls beneath. Five tabs: Discover (compass), Likes You (heart-stack), Standouts (star), Matches (chat-bubble), Profile (person). All icons 24pt, outlined when inactive (`#7A7268`), filled when active (`#1A1A1A`). Labels in Sailec 10pt Medium below each icon. A 4pt circle indicator dot in `#1A1A1A` appears 4pt below the active label. Selection haptic on tap."
391
+ - "Design the Standouts hero card: 1:1 photo at top with 20pt corner radius on the outer card. A 32pt header strip above the photo in `#F5D9A8` (Rose Gold Light) with a 14pt `star.fill` glyph in `#E8A04D` followed by 'Standout' in Sailec 12pt Bold `#1A1A1A`. Below the photo, a single prompt answer in Sailec 24pt Bold over 16pt padding. Pinned to the bottom: a Rose CTA — `#1A1A1A` background with a 1pt `#E8A04D` inner stroke, 'Send a Rose' label in Sailec 16pt Bold `#FAF6F0`, leading 16pt rose glyph in `#E8A04D`. The whole card has a 1pt Rose Gold gradient border around the outer frame to signal premium."
392
+ - "Create the Hinge match celebration screen: full-screen `#FDF8F2` canvas. Two 120pt circular avatars side-by-side at the vertical-center-third, 24pt apart. Rose Gold confetti particles fall from above for 1800ms on entry. Below the avatars, 'It's a match!' in Sailec 36pt Bold `#1A1A1A` centered, with -0.6pt letter spacing. Subline 24pt below: 'You and Sigrún liked each other' in Inter 16pt Regular `#4A4239`. Primary CTA 'Send a message' at the bottom — full-width capsule, 56pt tall, `#1A1A1A` background, `#FAF6F0` text in Sailec 16pt Bold. Below the CTA, a text-only 'Keep browsing' button in Inter 14pt Medium `#4A4239`. Entry haptic: `.notificationOccurred(.success)`."
393
+ - "Build the Hinge comment sheet: bottom sheet with 24pt top corner radius, `#FAF6F0` background. The tapped prompt/photo source pins at the top, scaled to occupy the upper half of the sheet — for prompts, render the question + answer in a card with `#FDF8F2` fill and a thin `#E0D6C5` border. Below the source, a capsule comment input — `#F2EBE0` background, 24pt radius, 'Add a comment about her response' placeholder in Inter 16pt Regular `#7A7268`, 14pt vertical and 20pt horizontal padding. A 28pt circle send button trails the input — `#1A1A1A` fill, white arrow glyph; reduces to `#B0A89C` when input is empty. Send haptic: `.impactOccurred(.medium)`. On send, the sheet animates down with a soft Match Green toast at the bottom."
394
+
395
+ ### Iteration Guide
396
+ 1. Canvas is `#FDF8F2` (cream); use `#FAF6F0` (Paper White) only on cards, sheets, and inputs
397
+ 2. Primary action is `#1A1A1A` (Hinge Black) — Send Like, Match, Send Rose, active tab
398
+ 3. Rose Gold `#E8A04D` is sacred — only Standouts, Roses, and premium edges
399
+ 4. Body text is `#1A1A1A` warm-black, NOT `#000000` — this is what makes the surface feel like paper
400
+ 5. Prompt cards are 16pt radius with 24pt internal padding — answers in Sailec 24pt Bold
401
+ 6. The heart-tap button sits on every reactive card at bottom-right with 12pt inset, 44pt circle
402
+ 7. Sailec for display + prompts; Inter (or system) for attribute chips and chrome
403
+ 8. Shadows are warm-tinted (`rgba(28, 20, 10, x)`), low opacity (0.06-0.18), short blur (2-12pt)
404
+ 9. The architecture is vertical scroll — never a swipe stack; advancement is read-and-tap
405
+ 10. Dark mode is warm dark `#16130E` canvas with `#EFE8DA` primary text; Rose Gold brightens to `#F0B05C` for OLED