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,388 @@
1
+ # Design System Inspiration of Deezer (iOS)
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ Deezer's iOS app is a dark-native music player whose entire identity rests on one move: a violet-tinted near-black canvas (`#0F0D13`) across which a single purple→pink gradient (`#A238FF` → `#FF0092`) is rationed like a precious resource. The app never goes pure black and never offers a true light theme — the slight violet warmth in the background means the brand gradient feels native to the same color world rather than pasted on top. Open the app and you land on a "Home for you" feed of mixes and editorial cards, but the screen everything builds toward is **Flow Now Playing**: a full-bleed living-gradient artwork tile with the equalizer waveform embedded directly inside it, a 68pt circular gradient play button, a gradient scrubber, and song metadata in heavy Inter weights.
6
+
7
+ The signature affordance is **Flow** — Deezer's personalized infinite mix. It is not a playlist; it is a generative stream represented by an animated living-gradient cover (purples bleeding into magenta-pink) badged with a small lightning "FLOW" pill. The second signature is the **embedded equalizer**: instead of a static album image, Flow's artwork carries a row of luminous white bars that rise and fall with the music, so the artwork itself *is* the visualizer. The third is the **gradient-as-scarcity rule**: chrome (chevrons, secondary transport, tab labels, dividers) stays strictly monochrome `#A29CB0`, so the only colored thing on screen is the part that *is the music* — the play button, the scrubber fill, the Flow badge, and the now-playing equalizer marker on song rows.
8
+
9
+ The color system is intentionally tiny. There is one canvas, two raised surfaces, one divider, two text levels, and exactly one accent expressed as a gradient (with its two endpoint hues, purple `#A238FF` and pink `#FF0092`, usable solo for icons and small fills). Album and Flow artwork remains full-color and luminous — content is allowed to be vivid; UI chrome is not. There is no orange, no green-except-success, no secondary brand palette. This restraint is the whole point: when 95% of the screen is desaturated near-black, the gradient reads instantly as "alive."
10
+
11
+ Typography uses **Deezer Sans** (the brand's proprietary geometric sans) with **Inter** as the faithful fallback — both are clean, slightly geometric, and carry weight beautifully. Hierarchy is heavy and confident: screen titles at 32pt weight 800, the now-playing track title at 26pt weight 800, sections at 22pt weight 700, body at 16pt weight 400. Overlines (the "FLOW · YOUR MIX" context label) are 12pt weight 700 uppercase with wide tracking. The type system leans into bold display weights because the canvas is so dark and quiet that text needs presence to anchor the layout.
12
+
13
+ **Key Characteristics:**
14
+ - Violet-tinted near-black canvas (`#0F0D13`) — dark-native, no true light theme, never pure black
15
+ - Purple→pink gradient (`#A238FF` → `#FF0092`) rationed as a scarce accent — only on "alive" elements
16
+ - **Flow** — personalized infinite mix with a living-gradient cover + lightning "FLOW" badge
17
+ - **Embedded equalizer** — luminous white bars *inside* the Flow artwork; the art is the visualizer
18
+ - 68pt circular gradient play button — the single largest, brightest object on Now Playing
19
+ - Gradient scrubber — track fill is the brand gradient; rest of UI is monochrome
20
+ - Now-playing-aware song rows — the playing track turns pink `#FF0092` with a mini equalizer
21
+ - Heavy display typography — Deezer Sans / Inter at weights 700–800 for titles
22
+ - Pill geometry — primary buttons and the Flow badge are fully rounded (999pt)
23
+ - Monochrome chrome — chevrons, secondary transport, tab icons all `#A29CB0`
24
+ - Bottom tab strip: Home / Search / Music / Profile, with purple active tint
25
+ - Full-color artwork, desaturated UI — content is vivid, chrome is quiet
26
+
27
+ ## 2. Color Palette & Roles
28
+
29
+ ### Primary (Interactive)
30
+ - **Deezer Purple** (`#A238FF`): Gradient start; solo accent for active tab, links, small icon fills.
31
+ - **Deezer Pink** (`#FF0092`): Gradient end; the "now playing" / favorited state color and equalizer color.
32
+ - **Flow Gradient**: `linear-gradient(135deg, #A238FF → #FF0092)` — the play button, scrubber fill, Flow badge.
33
+ - **Purple Deep** (`#7C28C4`): Pressed state for purple fills; deep tone inside artwork gradients.
34
+ - **Pink Pressed** (`#D60079`): Pressed state for pink fills.
35
+
36
+ ### Canvas & Surfaces (Dark — primary, the only real theme)
37
+ - **Canvas** (`#0F0D13`): Primary app background — violet-tinted near-black, NOT pure black.
38
+ - **Surface 1** (`#19161F`): Cards, sheets, raised rows, mini-player bar.
39
+ - **Surface 2** (`#221E2B`): Hovered/pressed rows, inactive scrubber track, chips.
40
+ - **Divider** (`#2A2633`): Hairline separators between rows and sections.
41
+ - **Overlay Scrim** (`#0F0D13D9`): 85% canvas behind modals and the expanded player.
42
+
43
+ ### Canvas & Surfaces (Light — fallback only; Deezer ships dark-first)
44
+ A light theme is not part of the real product; if a host OS forces light, invert minimally:
45
+
46
+ | Role | Dark Mode (primary) | Light Mode (fallback) |
47
+ |------|---------------------|------------------------|
48
+ | Canvas | `#0F0D13` | `#FFFFFF` |
49
+ | Surface 1 | `#19161F` | `#F4F2F7` |
50
+ | Surface 2 | `#221E2B` | `#EAE7F0` |
51
+ | Divider | `#2A2633` | `#E3E0EA` |
52
+ | Text Primary | `#FFFFFF` | `#15121C` |
53
+ | Text Secondary | `#A29CB0` | `#6E6880` |
54
+
55
+ ### Text
56
+ - **Text Primary** (`#FFFFFF`): Track titles, screen titles, primary metadata on dark.
57
+ - **Text Secondary** (`#A29CB0`): Artist names, sub-labels, inactive icons, captions.
58
+ - **Text Tertiary** (`#6E6880`): Disabled, very low-emphasis timestamps.
59
+ - **Text On Gradient** (`#FFFFFF`): Always white — used on the play button and primary CTA.
60
+
61
+ ### Artwork Gradient Tones (full-color, content layer)
62
+ The Flow / mix cover gradients use richer mid-tones than the UI accent:
63
+
64
+ | Role | Color |
65
+ |------|-------|
66
+ | Art Violet | `#A238FF` |
67
+ | Art Magenta Mid | `#C71F8E` |
68
+ | Art Pink | `#FF0092` |
69
+ | Art Deep Plum | `#7C28C4` |
70
+ | Art Highlight | `#FFFFFF38` (22% white radial bloom) |
71
+
72
+ ### Semantic
73
+ - **Success Green** (`#1ED760`): Download-complete, "added to favorites" toast confirm.
74
+ - **Error Red** (`#FF4D5E`): Failed download, offline error, destructive confirm.
75
+ - **Warning Amber** (`#FFB02E`): Low-bitrate / data-saver warning banners.
76
+ - **Equalizer Pink** (`#FF0092`): Now-playing animated bars on rows and in artwork (white inside art on gradient).
77
+
78
+ ## 3. Typography Rules
79
+
80
+ ### Font Family
81
+ - **Primary**: `Deezer Sans` — Deezer's proprietary geometric humanist sans, clean and confident at display weights.
82
+ - **Faithful Fallback**: `Inter` (by Rasmus Andersson, SIL OFL) — near-identical geometric humanist proportions; the recommended substitute when Deezer Sans is unavailable.
83
+ - **System Fallback Stack**: `-apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif`
84
+ - **Numerals**: Tabular figures for all timestamps and scrubber times (`font-variant-numeric: tabular-nums`).
85
+
86
+ ### Hierarchy
87
+
88
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
89
+ |------|------|------|--------|-------------|----------------|-------|
90
+ | Screen Title | Deezer Sans | 32pt | 800 | 1.15 | -0.6pt | "Flow", "Home", page hero titles |
91
+ | Now Playing Title | Deezer Sans | 26pt | 800 | 1.2 | -0.4pt | Track title on Now Playing screen |
92
+ | Section Header | Deezer Sans | 22pt | 700 | 1.25 | -0.2pt | "Made for you", "Your top mixes" |
93
+ | Subhead | Deezer Sans | 18pt | 700 | 1.3 | -0.1pt | Card group titles, sheet headers |
94
+ | Body | Inter | 16pt | 400 | 1.5 | 0pt | Descriptions, paragraph copy |
95
+ | Row Title | Deezer Sans | 15pt | 600 | 1.3 | 0pt | Song/playlist row primary line |
96
+ | Now Playing Artist | Inter | 15pt | 500 | 1.35 | 0pt | Artist · album sub-line |
97
+ | Meta | Inter | 14pt | 400 | 1.4 | 0pt | Artist names, secondary sub-labels |
98
+ | Overline | Deezer Sans | 12pt | 700 | 1.0 | 0.4pt | "FLOW · YOUR MIX" context label, UPPERCASE |
99
+ | Scrubber Time | Inter | 11pt | 500 | 1.0 | 0pt | Elapsed / remaining, tabular |
100
+ | Tab Label | Deezer Sans | 10pt | 600 | 1.0 | 0.1pt | Bottom tab labels |
101
+ | Button | Deezer Sans | 16pt | 700 | 1.0 | 0pt | Primary / pill buttons |
102
+ | Chip | Deezer Sans | 13pt | 700 | 1.0 | 0.2pt | Genre/mood chips, FLOW badge |
103
+
104
+ ### Principles
105
+ - **Heavy by default**: Titles live at 700–800. On a near-black canvas, bold weights are how hierarchy reads — never use thin/light for headings.
106
+ - **Display vs reading split**: Deezer Sans for titles, rows, chips, buttons (brand voice); Inter at 400/500 for body and metadata (reading rhythm).
107
+ - **Tracked uppercase overlines**: The context label above artwork ("FLOW · YOUR MIX") is the one place wide letter-spacing appears — it frames the hero.
108
+ - **Tabular numerals everywhere time appears**: Scrubber, durations, track counts — so digits don't jitter while playing.
109
+ - **Dynamic Type**: Titles, body, row text scale; tab labels, scrubber time, overlines, the FLOW badge stay fixed (layout-sensitive).
110
+
111
+ ## 4. Component Stylings
112
+
113
+ ### Buttons
114
+
115
+ **Primary Gradient Button (Play Flow / Subscribe)**
116
+ - Shape: Full pill, corner radius 999pt
117
+ - Background: `linear-gradient(90deg, #A238FF → #FF0092)`
118
+ - Text: `#FFFFFF`, Deezer Sans 16pt weight 700, optional leading ▶ glyph
119
+ - Padding: 14pt vertical, 30pt horizontal
120
+ - Pressed: `filter: brightness(0.92)` + scale 0.98
121
+ - Disabled: gradient at 35% opacity, text `#FFFFFF` at 50%
122
+
123
+ **Solid Purple Button (Shuffle / secondary action)**
124
+ - Background: `#A238FF` (solid, no gradient)
125
+ - Text: `#FFFFFF`, Deezer Sans 15pt weight 700
126
+ - Corner radius: 999pt
127
+ - Padding: 13pt vertical, 26pt horizontal
128
+ - Pressed: background `#7C28C4` + scale 0.98
129
+
130
+ **Outline Button (Follow / Add)**
131
+ - Background: transparent
132
+ - Border: 1.5pt `#FFFFFF` at 40% opacity (`rgba(255,255,255,0.4)`)
133
+ - Text: `#FFFFFF`, Deezer Sans 14pt weight 600
134
+ - Corner radius: 999pt
135
+ - Padding: 12pt vertical, 22pt horizontal
136
+ - Pressed: border + text to 70% opacity, background `#FFFFFF` at 6%
137
+
138
+ **Text Button (See all / Skip)**
139
+ - Text: `#A238FF`, Deezer Sans 14pt weight 700
140
+ - No background, no underline
141
+ - Pressed: opacity 0.7
142
+
143
+ **Circular Play Button (Now Playing — signature)**
144
+ - Size: 68pt diameter
145
+ - Background: `linear-gradient(135deg, #A238FF → #FF0092)`
146
+ - Glyph: ▶ / ❚❚ in `#FFFFFF`, 26pt, optically centered (+2pt right nudge for ▶)
147
+ - Shadow: `0 12px 28px -8px rgba(255,0,146,0.6)` — colored glow, not gray
148
+ - Pressed: scale 0.94, 80ms; shadow tightens
149
+
150
+ ### Core Atoms
151
+
152
+ **Living-Gradient Artwork Tile (Flow cover)**
153
+ - Aspect ratio: 1:1, corner radius 16pt
154
+ - Fill: `linear-gradient(135deg, #A238FF 0%, #C71F8E 45%, #FF0092 100%)` + a soft white radial bloom top-right (`rgba(255,255,255,0.22)`) and a deep-plum radial bottom-left (`rgba(124,40,196,0.55)`)
155
+ - Shadow: `0 24px 48px -20px rgba(162,56,255,0.55)` — colored ambient lift
156
+ - Optionally animates: gradient stops drift on a 12s loop while Flow plays
157
+
158
+ **FLOW Badge**
159
+ - Position: top-left of artwork, 16pt inset
160
+ - Background: `rgba(15,13,19,0.55)` with `backdrop-filter: blur(8px)`
161
+ - Content: lightning glyph (white, 14pt) + "FLOW" in Deezer Sans 12pt weight 800, white, 0.4pt tracking
162
+ - Corner radius: 999pt; padding 7pt vertical, 13pt right / 11pt left
163
+
164
+ **Embedded Equalizer (inside artwork)**
165
+ - Row of 10–14 bars pinned to the bottom of the artwork
166
+ - Bar color: `rgba(255,255,255,0.62)`; width flexes to fill; corner radius 3pt (top only)
167
+ - Heights animate independently (music-reactive); static design uses a varied 34–92% height set
168
+ - Bottom inset 22pt, side inset 18pt, 4pt gap between bars
169
+
170
+ **Gradient Scrubber**
171
+ - Track: 4pt height, `#221E2B`, corner radius 2pt
172
+ - Fill: `linear-gradient(90deg, #A238FF → #FF0092)`, width = progress
173
+ - Knob: 13pt white circle, `box-shadow: 0 2px 6px rgba(0,0,0,0.5)`; grows to 17pt while dragging
174
+ - Times: Inter 11pt weight 500 `#A29CB0`, tabular; elapsed left, remaining right (with leading `-`)
175
+
176
+ **Song Row (now-playing aware)**
177
+ - Height: 64pt; 44pt artwork thumb (6pt radius) + title/sub stack + trailing action
178
+ - Default: title `#FFFFFF` 15pt w600, sub `#A29CB0` 13pt; trailing ⋯ in `#A29CB0`
179
+ - Now playing: title turns `#FF0092`; trailing replaced by 4-bar mini equalizer in `#FF0092`
180
+ - Pressed: row background `#221E2B`
181
+
182
+ ### Navigation
183
+
184
+ **Bottom Tab Bar**
185
+ - Height: 52pt + safe area
186
+ - Background: `rgba(15,13,19,0.94)` with `backdrop-filter: saturate(180%) blur(20px)`, 0.5pt top border `#2A2633`
187
+ - Tabs (4): Home, Search, Music, Profile
188
+ - Icon size: 22pt; active fills solid, inactive is stroked
189
+ - Active color: `#A238FF` (purple) icon + label
190
+ - Inactive color: `#6E6880`
191
+ - Labels: Deezer Sans 10pt weight 600, always shown
192
+
193
+ **Now Playing Top Bar**
194
+ - Leading: down-chevron (collapse player), 22pt `#FFFFFF`
195
+ - Center: two-line context — overline "FLOW · YOUR MIX" (12pt w700 `#A29CB0` uppercase) over title "Made for you" (13pt w700 `#FFFFFF`)
196
+ - Trailing: ⋯ overflow menu, 22pt `#FFFFFF`
197
+
198
+ **Mini Player (collapsed)**
199
+ - Height: 56pt, sits above the tab bar, background `#19161F`
200
+ - Leading 40pt artwork thumb, title + artist stack, trailing play/pause + favorite
201
+ - A 2pt gradient progress line pinned to the very top edge of the bar
202
+
203
+ ### Input Fields
204
+
205
+ **Search Bar**
206
+ - Height: 44pt, background `#19161F`, corner radius 12pt, no border
207
+ - Leading magnifier 18pt `#A29CB0`; placeholder "Artists, tracks, podcasts…" 15pt `#A29CB0`
208
+ - Focus: 1.5pt `#A238FF` border; clears to a recent-searches list
209
+ - Voice icon trailing, `#A29CB0`
210
+
211
+ **Genre / Mood Chip**
212
+ - Height: 34pt, corner radius 999pt
213
+ - Default: background `#221E2B`, text `#FFFFFF` Deezer Sans 13pt w700
214
+ - Selected: background gradient `#A238FF → #FF0092`, text `#FFFFFF`
215
+
216
+ ### Distinctive Components
217
+
218
+ **Flow Now Playing (signature screen)**
219
+ - Full-bleed `#0F0D13` canvas; top bar → living-gradient artwork (with FLOW badge + embedded equalizer) → track title (26pt w800) + favorite heart (pink) → gradient scrubber + tabular times → transport row (shuffle/prev/PLAY/next/repeat) where only the 68pt circular play button is gradient and every other control is monochrome
220
+
221
+ **Embedded Equalizer**
222
+ - The visualizer is not a separate panel — it lives inside the artwork as white bars, making the cover itself reactive. Mirrored as a 4-bar pink marker on the currently-playing song row.
223
+
224
+ **Living-Gradient Flow Cover**
225
+ - Generative purple→magenta→pink gradient with white bloom; animates on a slow loop while Flow plays; the visual signature of "personalized infinite mix."
226
+
227
+ **Gradient Scrubber**
228
+ - The only progress indicator that uses the brand gradient; reinforces "this colored thing is the music advancing."
229
+
230
+ **Now-Playing-Aware Song Rows**
231
+ - Rows are not static lists — the active track recolors to pink and swaps its trailing affordance for a live equalizer, tying every list back to the player.
232
+
233
+ ## 5. Layout Principles
234
+
235
+ ### Spacing System
236
+ - Base unit: 4pt
237
+ - Scale: 4, 8, 12, 16, 20, 22, 24, 28, 32, 40, 48, 64
238
+ - Screen horizontal inset: 24pt (generous — the dark canvas wants air)
239
+ - Row vertical padding: 10pt; section gap: 28pt
240
+ - Artwork-to-title gap on Now Playing: 22pt
241
+
242
+ ### Grid & Container
243
+ - iPhone: single column, 24pt side insets, full-width artwork tile
244
+ - iPad: content max-width 720pt centered; artwork capped at 480pt
245
+ - Now Playing is a vertical stack, never multi-column
246
+
247
+ ### Whitespace Philosophy
248
+ - **Quiet canvas, loud focal point**: 95% of the screen is desaturated near-black so the gradient play button and living artwork dominate attention with zero competition
249
+ - **Generous side insets (24pt)**: dark UIs feel cramped at tight gutters; Deezer breathes
250
+ - **Artwork is the hero**: on Now Playing the cover claims the largest single block; everything else is supporting metadata
251
+ - **No card borders**: surfaces are distinguished by fill (`#19161F` / `#221E2B`), never by stroke
252
+
253
+ ### Border Radius Scale
254
+ - Square (0pt): full-bleed backgrounds, dividers
255
+ - Subtle (4pt): scrubber track, mini-player progress line, equalizer bar tops
256
+ - Small (6pt): song-row artwork thumbnails
257
+ - Standard (8pt): inline cards, small media tiles
258
+ - Comfortable (12pt): search bar, sheets, bottom-sheet headers
259
+ - Large (16pt): primary artwork tile, hero mix cards
260
+ - Pill (999pt): all buttons, chips, the FLOW badge
261
+ - Circle (50%): the play button, avatars
262
+
263
+ ## 6. Depth & Elevation
264
+
265
+ Deezer is mostly flat; the only "depth" is a colored glow under the gradient play button and the living artwork. There are no gray Material shadows on the dark canvas — they'd be invisible — so elevation is signaled by surface fill steps and colored ambient blooms.
266
+
267
+ | Level | Treatment | Use |
268
+ |-------|-----------|-----|
269
+ | Flat (Level 0) | No shadow; `#0F0D13` | Page content, dividers, rows |
270
+ | Raised (Level 1) | Fill step to `#19161F` | Cards, sheets, mini player |
271
+ | Pressed (Level 2) | Fill step to `#221E2B` | Hovered/pressed rows, inactive track |
272
+ | Glow (Level 3) | `0 24px 48px -20px rgba(162,56,255,0.55)` | Living artwork tile |
273
+ | Accent Glow (Level 4) | `0 12px 28px -8px rgba(255,0,146,0.6)` | 68pt circular play button |
274
+ | Scrim | `rgba(15,13,19,0.85)` | Behind modals & expanded player |
275
+
276
+ **Shadow Philosophy**: Shadows are *colored*, never gray. The play button casts a pink glow; the artwork casts a violet glow. This makes elevation feel like light emitted by the brand rather than a drop-shadow physics trick — appropriate for a dark, luminous music UI.
277
+
278
+ ### Motion
279
+ - **Player expand/collapse**: mini player → full Now Playing in 320ms spring (damping 0.82); artwork scales up from thumb position
280
+ - **Play/pause morph**: ▶ ↔ ❚❚ glyph crossfades + button scales 0.94 → 1 in 120ms; soft haptic
281
+ - **Scrubber drag**: 1:1 finger tracking; knob grows 13 → 17pt over 100ms; time labels update live
282
+ - **Equalizer bars**: continuous music-reactive height animation while playing; freeze on pause (no animation when paused — Reduce Motion safe)
283
+ - **Living gradient**: artwork gradient stops drift on a 12s ease-in-out loop while Flow plays
284
+ - **Song-row activation**: title color animates `#FFFFFF` → `#FF0092` over 180ms; mini equalizer fades in
285
+ - **Tab switch**: instant content swap; active icon fills + tints purple with a 120ms ease
286
+ - **Skip / next**: artwork slides horizontally 220ms ease-out, new metadata crossfades
287
+ - **Haptics**: soft impact on play/pause, favorite toggle, and scrub release
288
+
289
+ ## 7. Do's and Don'ts
290
+
291
+ ### Do
292
+ - Use the violet-tinted near-black `#0F0D13` as the canvas — never pure `#000000`
293
+ - Treat the purple→pink gradient as scarce — only the play button, scrubber fill, FLOW badge, and now-playing equalizer
294
+ - Embed the equalizer *inside* the Flow artwork — the art is the visualizer
295
+ - Make the circular play button the single largest, brightest object on Now Playing (68pt, gradient, pink glow)
296
+ - Recolor the now-playing song row to pink `#FF0092` and swap its trailing icon for a live equalizer
297
+ - Keep all chrome (chevrons, secondary transport, tab icons) monochrome `#A29CB0`
298
+ - Use heavy display weights (700–800) for titles — the dark canvas needs bold anchors
299
+ - Use pill geometry (999pt) for buttons, chips, and the FLOW badge
300
+ - Cast *colored* glows (violet under artwork, pink under play) — never gray drop shadows
301
+ - Use tabular numerals for every timestamp and scrubber readout
302
+ - Let album/Flow artwork stay full-color and luminous — content is vivid
303
+
304
+ ### Don't
305
+ - Don't use pure black `#000000` — the violet tint is the brand's warmth
306
+ - Don't spray the gradient across cards, headers, or backgrounds — it must stay scarce
307
+ - Don't render a separate visualizer panel — the equalizer belongs inside the artwork
308
+ - Don't color secondary transport controls — shuffle/prev/next/repeat stay `#A29CB0`
309
+ - Don't ship a real light theme — Deezer is dark-native; light is OS-forced fallback only
310
+ - Don't use gray Material drop shadows on the dark canvas — use colored glows or fill steps
311
+ - Don't use thin/light font weights for titles — minimum 600, headings 700–800
312
+ - Don't put borders on cards — distinguish surfaces by fill (`#19161F` / `#221E2B`)
313
+ - Don't tint the now-playing row purple — the "playing" state color is pink `#FF0092`
314
+ - Don't animate the equalizer while paused — bars freeze when playback stops
315
+ - Don't introduce a second accent hue (orange/teal/etc.) — the gradient is the only brand color
316
+
317
+ ## 8. Responsive Behavior
318
+
319
+ ### Device Sizes
320
+ | Device | Width | Key Changes |
321
+ |--------|-------|-------------|
322
+ | iPhone SE (3rd gen) | 375pt | Artwork tile shrinks to fit; transport row spacing tightens to 12pt |
323
+ | iPhone 13/14/15 | 390pt | Standard layout, 24pt insets |
324
+ | iPhone 15/16 Pro | 393pt | Dynamic Island accommodated; top bar respects it |
325
+ | iPhone 15/16 Pro Max | 430pt | Larger artwork; play button stays 68pt (fixed, iconic) |
326
+ | iPad (portrait) | 768pt | Content max-width 720pt centered; artwork capped 480pt |
327
+ | iPad (landscape) | 1024pt+ | Two-pane: library list left, Now Playing right; artwork max 520pt |
328
+
329
+ ### Dynamic Type
330
+ - Screen titles, now-playing title, section headers, body, row text: full scale
331
+ - Tab labels, scrubber time, overlines, FLOW badge, chip text: FIXED (layout-sensitive)
332
+ - Equalizer and artwork are graphic, unaffected by type scale
333
+
334
+ ### Orientation
335
+ - iPhone Now Playing is portrait-locked (vertical stack)
336
+ - iPad supports landscape split (library + player side-by-side)
337
+ - Artwork tile maintains 1:1 aspect in all orientations
338
+
339
+ ### Touch Targets
340
+ - Circular play button: 68pt (well above minimum)
341
+ - Secondary transport (prev/next/shuffle/repeat): 44pt hit, 26/22pt glyph
342
+ - Scrubber knob: 13pt visual, 44pt vertical hit slop
343
+ - Tab bar items: 22pt glyph, 48pt hit
344
+ - Song row: full 64pt row tappable; trailing ⋯ has 44pt hit
345
+
346
+ ### Safe Area Handling
347
+ - Top: Now Playing top bar respects safe area + Dynamic Island
348
+ - Bottom: tab bar and mini player respect home indicator
349
+ - Scrim and expanded player extend edge-to-edge under status/home areas
350
+ - Sides: 24pt content inset on all devices
351
+
352
+ ## 9. Agent Prompt Guide
353
+
354
+ ### Quick Color Reference
355
+ - Canvas: `#0F0D13` (violet-tinted near-black — NOT pure black)
356
+ - Surface 1: `#19161F`
357
+ - Surface 2: `#221E2B`
358
+ - Divider: `#2A2633`
359
+ - Text primary: `#FFFFFF`
360
+ - Text secondary: `#A29CB0`
361
+ - Deezer purple (gradient start / active tab): `#A238FF`
362
+ - Deezer pink (gradient end / now-playing): `#FF0092`
363
+ - Flow gradient: `linear-gradient(135deg, #A238FF → #FF0092)`
364
+ - Purple deep (pressed): `#7C28C4`
365
+ - Success: `#1ED760`
366
+ - Error: `#FF4D5E`
367
+ - Play-button glow: `0 12px 28px -8px rgba(255,0,146,0.6)`
368
+ - Artwork glow: `0 24px 48px -20px rgba(162,56,255,0.55)`
369
+
370
+ ### Example Component Prompts
371
+ - "Build the Deezer Flow Now Playing screen in SwiftUI: full-bleed `#0F0D13` canvas. Top bar: leading down-chevron (`#FFFFFF` 22pt), center two-line context — overline 'FLOW · YOUR MIX' (Deezer Sans/Inter 12pt w700 `#A29CB0` UPPERCASE 0.4pt tracking) over 'Made for you' (13pt w700 `#FFFFFF`), trailing ⋯. Then a 1:1 living-gradient artwork tile (corner radius 16pt, `linear-gradient(135deg,#A238FF,#C71F8E,#FF0092)` + white radial bloom top-right + violet glow `0 24px 48px -20px rgba(162,56,255,0.55)`), with a top-left FLOW badge (blurred `rgba(15,13,19,0.55)` pill, lightning glyph + 'FLOW' 12pt w800 white) and a bottom row of ~12 white equalizer bars at 62% opacity."
372
+ - "Create the Deezer circular play button: 68pt diameter, `linear-gradient(135deg,#A238FF→#FF0092)`, white ▶ glyph 26pt nudged +2pt right, shadow `0 12px 28px -8px rgba(255,0,146,0.6)`. Pressed: scale 0.94 over 120ms with a soft haptic; ▶/❚❚ crossfade on toggle."
373
+ - "Render the Deezer gradient scrubber: 4pt track `#221E2B` radius 2pt; fill `linear-gradient(90deg,#A238FF→#FF0092)` to progress; 13pt white knob with `0 2px 6px rgba(0,0,0,0.5)` growing to 17pt while dragging; below it elapsed (left) and remaining (left `-` prefix, right) in Inter 11pt w500 `#A29CB0` tabular."
374
+ - "Build a Deezer now-playing-aware song row: 64pt tall, 44pt artwork thumb (radius 6pt), title Deezer Sans 15pt w600 `#FFFFFF`, sub Inter 13pt `#A29CB0`, trailing ⋯ `#A29CB0`. If this row is the playing track: title color `#FF0092` and replace ⋯ with a 4-bar animated equalizer in `#FF0092`. Pressed background `#221E2B`."
375
+ - "Create the Deezer bottom tab bar: 52pt + safe area, `rgba(15,13,19,0.94)` blur, 0.5pt top border `#2A2633`. Tabs: Home, Search, Music, Profile — 22pt icons, labels Deezer Sans 10pt w600. Active: purple `#A238FF` filled icon + label; inactive: `#6E6880` stroked."
376
+ - "Build the Deezer primary gradient button: full pill (999pt), `linear-gradient(90deg,#A238FF→#FF0092)`, white text Deezer Sans 16pt w700 with leading ▶, padding 14×30pt. Pressed: brightness 0.92 + scale 0.98. Disabled: gradient 35% opacity."
377
+
378
+ ### Iteration Guide
379
+ 1. Canvas is violet-tinted near-black `#0F0D13` — never `#000000`, never an off-white light theme
380
+ 2. The purple→pink gradient is SCARCE — only the play button, scrubber fill, FLOW badge, now-playing equalizer
381
+ 3. The equalizer lives INSIDE the Flow artwork — the cover is the visualizer (mirrored as a pink 4-bar marker on the active row)
382
+ 4. The 68pt circular gradient play button is the single brightest object on Now Playing, with a pink glow
383
+ 5. All chrome (chevrons, secondary transport, tabs) is monochrome `#A29CB0` — color belongs only to "the music"
384
+ 6. Titles are heavy (Deezer Sans / Inter 700–800); body/metadata is Inter 400/500
385
+ 7. Shadows are colored glows (violet under art, pink under play) — never gray Material drop shadows
386
+ 8. The now-playing state color is PINK `#FF0092` — recolor the active row title and show a mini equalizer
387
+ 9. Geometry is pill-first (999pt buttons/chips/badge) with a 16pt artwork tile and 6pt row thumbs
388
+ 10. Tabular numerals on every timestamp; equalizer freezes on pause; living gradient drifts only while Flow plays