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,433 @@
1
+ # Design System Inspiration of Asana (iOS)
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ Asana's iOS app is a calm, structured productivity surface whose entire personality comes from one warm color and a disciplined list. The default canvas is white (`#FFFFFF`) in light mode and a near-neutral charcoal (`#1E1F21`) in dark mode — Asana's signature dark, NOT pure black. The app opens to **My Tasks**: a vertically scrolling list of task rows, each with a leading circular checkbox, a task name, and a row of small metadata pills (project, due date, assignee avatar). This list IS the product. Everything else — the project board, the timeline, the inbox — is a different rendering of the same task objects.
6
+
7
+ The one piece of chrome that defines Asana visually is the **completion circle**. Every task row begins with a 20pt hollow circle that, when tapped, fills with the success green (`#62D26F`) and draws a white checkmark with a soft "celebration" animation (occasionally a flying unicorn or narwhal "celebration creature" on full-section completion). This circle is the emotional core of Asana — the moment of marking something done is deliberately satisfying. The other signature moment is the **coral floating action button (FAB)** — a 56pt circular `#F06A6A` button bottom-right that creates a new task from anywhere.
8
+
9
+ The color system is built around **Asana Coral** (`#F06A6A`) — a soft, warm red-pink that is the single brand accent. It is identical in light and dark mode. Around it sits a **multicolor object palette**: every project, tag, and custom field can be assigned one of a fixed set of hues — Plum Blue (`#4573D2`), Aqua (`#4ECBC4`), Green (`#62D26F`), Yellow (`#F8DF72`), Orange (`#F1BD6C`), Magenta (`#F26FD3`), Indigo (`#5A3FFF`), and more. In the UI these appear as low-opacity tint chips: a green pill with green text on a 16% green background, an aqua "project" tag, etc. Project **status updates** use a four-state semantic system: On track (aqua/green), At risk (yellow), Off track (red), Complete (green). Asana avoids heavy fills — color is a soft glow, never a slab.
10
+
11
+ Typography is **Inter** — the modern geometric-humanist workhorse Asana adopted for its product UI and marketing site (its older custom face being phased toward Inter on web/mobile). On iOS it falls back to SF Pro when Inter isn't bundled. Hierarchy is product-UI: a large 32pt screen title ("My Tasks"), 26pt nav titles, 22pt section heads, 15pt task-row names, 14pt metadata, 12pt pills. Headings are weight 700-800; task names sit at a confident 500; body at 400. The type system is quiet and legible — it gets out of the way so the list reads fast.
12
+
13
+ **Key Characteristics:**
14
+ - White canvas (`#FFFFFF`) light / charcoal (`#1E1F21`) dark — calm, near-neutral, NOT pure black
15
+ - The task list IS the product — a scroll of rows, each = checkbox + name + metadata pills
16
+ - Completion circle — 20pt hollow circle fills green (`#62D26F`) with a celebratory checkmark on tap
17
+ - Coral FAB — 56pt circular `#F06A6A` "create task" button bottom-right, identical in both themes
18
+ - Multicolor object palette — projects/tags/fields each get a fixed hue (plum/aqua/green/yellow/orange/magenta/indigo)
19
+ - Color as soft tint — pills are 16-18% opacity backgrounds with saturated text, never solid slabs
20
+ - Four-state status updates — On track / At risk / Off track / Complete with a colored badge
21
+ - View switcher tabs — List / Board / Calendar / Timeline / Files — same tasks, different renderings
22
+ - Section headers with collapse caret — "Today", "Upcoming", "Later" group the task list
23
+ - Assignee avatars — 22pt circular initials/photo on the trailing edge of each task row
24
+ - Minimal navigation chrome — bottom tab bar (Home / My Tasks / Inbox / Search) + per-screen view tabs
25
+
26
+ ## 2. Color Palette & Roles
27
+
28
+ ### Primary (Interactive)
29
+ - **Asana Coral** (`#F06A6A`): The single brand accent — FAB, primary CTAs, active tab, selection underline, links-as-buttons. Identical in light & dark.
30
+ - **Coral Pressed** (`#D85B5B`): Pressed/active state of coral surfaces.
31
+ - **Coral Tint** (`#F06A6A1F`): 12% coral wash behind selected rows / coral chips.
32
+ - **Link / Action Blue** (`#4573D2`): Inline text links, "Mark complete" text actions, mention chips.
33
+
34
+ ### Canvas & Surfaces (Light Mode)
35
+ - **Canvas White** (`#FFFFFF`): Primary light canvas, task list background.
36
+ - **Surface Gray** (`#F9F8F8`): Sidebar, grouped surfaces, hovered rows.
37
+ - **Surface Pressed** (`#F0EFEF`): Pressed/selected rows.
38
+ - **Divider** (`#EDEBE9`): Hairline between task rows and sections.
39
+ - **Card Border** (`#E8E6E4`): 1pt border on board cards.
40
+
41
+ ### Canvas & Surfaces (Dark Mode)
42
+ - **Dark Canvas** (`#1E1F21`): Primary dark canvas — Asana's signature charcoal, NOT pure black.
43
+ - **Dark Surface 1** (`#252628`): Cards, grouped surfaces.
44
+ - **Dark Surface 2** (`#2E2F31`): Board columns, elevated chips, hovered rows.
45
+ - **Dark Divider** (`#35363A`): Hairline dividers.
46
+ - **Dark Card Border** (`#3A3B3F`): 1pt border on board cards in dark.
47
+
48
+ ### Text
49
+ - **Text Primary Light** (`#1E1F21`): Primary body text in light mode.
50
+ - **Text Secondary Light** (`#6D6E6F`): Metadata, section counts, placeholders.
51
+ - **Text Tertiary Light** (`#9CA3A6`): Disabled, completed-task strikethrough.
52
+ - **Text Primary Dark** (`#F5F4F2`): Primary body on dark — warm off-white.
53
+ - **Text Secondary Dark** (`#A9A9AA`): Metadata on dark.
54
+ - **Text Tertiary Dark** (`#6F7073`): Disabled / completed on dark.
55
+
56
+ ### Object Palette (Project / Tag / Custom-field Hues)
57
+ These are the fixed colors a user assigns to projects, tags, sections, and custom fields. In UI they appear as a saturated text on a ~16% opacity fill of the same hue.
58
+
59
+ | Role | Solid Hue | Tint Fill (Light) | Tint Fill (Dark) |
60
+ |------|-----------|-------------------|------------------|
61
+ | Plum Blue | `#4573D2` | `#4573D214` | `#4573D229` |
62
+ | Aqua | `#4ECBC4` | `#4ECBC414` | `#4ECBC429` |
63
+ | Green | `#62D26F` | `#62D26F14` | `#62D26F29` |
64
+ | Yellow | `#F8DF72` | `#F8DF7224` | `#F8DF7229` |
65
+ | Orange | `#F1BD6C` | `#F1BD6C1F` | `#F1BD6C29` |
66
+ | Magenta | `#F26FD3` | `#F26FD314` | `#F26FD329` |
67
+ | Indigo | `#5A3FFF` | `#5A3FFF14` | `#5A3FFF29` |
68
+ | Cool Gray | `#8DA3B0` | `#8DA3B014` | `#8DA3B029` |
69
+
70
+ ### Project Status (Semantic — Status Updates)
71
+ | Role | Color | Use |
72
+ |------|-------|-----|
73
+ | On Track | `#4ECBC4` | Green/aqua status badge — project healthy |
74
+ | At Risk | `#F8DF72` | Yellow status badge — needs attention |
75
+ | Off Track | `#E8384F` | Red status badge — blocked / slipping |
76
+ | Complete | `#62D26F` | Green status badge — project done |
77
+
78
+ ### Semantic
79
+ - **Success Green** (`#62D26F`): Completed checkbox fill, success toast.
80
+ - **Error Red** (`#E8384F`): Overdue due-date pill, delete confirmation, off-track.
81
+ - **Warning Yellow** (`#F8DF72`): At-risk badge, warning callout.
82
+ - **Overdue Tint** (`#E8384F2E`): 18% red behind an overdue date pill.
83
+ - **Mention Background** (`#4573D21A`): 10% blue behind @-mention chips.
84
+
85
+ ## 3. Typography Rules
86
+
87
+ ### Font Family
88
+ - **Primary**: `Inter` (by Rasmus Andersson, 2020, SIL OFL) — geometric humanist sans optimized for UI; the face Asana uses across its product and marketing surfaces.
89
+ - **Numeric**: Inter tabular figures for due-dates, counts, and task numbers (`font-feature-settings: "tnum"`).
90
+ - **Fallback Stack**: `-apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif`
91
+ - **iOS Note**: On iOS the system falls back to SF Pro Text/Display when the bundled Inter face is absent — the metrics are close enough to preserve rhythm.
92
+
93
+ ### Hierarchy
94
+
95
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
96
+ |------|------|------|--------|-------------|----------------|-------|
97
+ | Screen Title | Inter | 32pt | 800 | 1.15 | -0.5pt | "My Tasks", "Inbox" — large nav title |
98
+ | Nav Title | Inter | 26pt | 700 | 1.2 | -0.3pt | Project / section detail title |
99
+ | Section Header | Inter | 22pt | 700 | 1.25 | -0.2pt | "Project status update" headings |
100
+ | Subsection | Inter | 18pt | 600 | 1.3 | -0.1pt | "Assigned to you", group labels |
101
+ | Body | Inter | 16pt | 400 | 1.5 | 0pt | Task descriptions, comments |
102
+ | Task Row | Inter | 15pt | 500 | 1.35 | 0pt | The task name in a list row |
103
+ | List Section Label | Inter | 13pt | 700 | 1.2 | 0.2pt | "Today" / "Upcoming" group caret rows |
104
+ | Meta | Inter | 14pt | 400 | 1.35 | 0pt | Due date, project name, counts |
105
+ | Pill | Inter | 12pt | 600 | 1.0 | 0.1pt | Project tag, status pill, due chip |
106
+ | Button | Inter | 15pt | 600 | 1.0 | 0pt | Primary / secondary buttons |
107
+ | Text Action | Inter | 14pt | 600 | 1.0 | 0pt | "Mark complete", "Add subtask" |
108
+ | Avatar Initials | Inter | 10pt | 700 | 1.0 | 0.2pt | Initials inside assignee circle |
109
+ | Tab Label | Inter | 10pt | 600 | 1.0 | 0.1pt | Bottom tab bar labels |
110
+ | Comment Author | Inter | 14pt | 700 | 1.3 | 0pt | Comment / story author name |
111
+
112
+ ### Principles
113
+ - **List legibility first**: the 15pt/500 task row is the most-read text in the app — it must stay crisp at scanning speed.
114
+ - **Weight concentrated at 400 / 500 / 600 / 700 / 800**: regular body, medium task rows, semibold buttons & pills, bold headings, extrabold screen titles. No thin.
115
+ - **Tabular numerals everywhere there are dates/counts**: due dates, section counts, "3 of 8 complete" must not jitter.
116
+ - **Quiet by design**: type carries no brand expression — Inter is neutral; the personality is the coral accent and the completion circle.
117
+ - **Dynamic Type first-class**: titles, headings, body, task rows, comments all scale; pills, tab labels, avatar initials stay fixed.
118
+
119
+ ## 4. Component Stylings
120
+
121
+ ### Buttons
122
+
123
+ **Primary Button (Add task / Save / Send update)**
124
+ - Shape: Rounded rectangle, 8pt corner radius
125
+ - Background: `#F06A6A` (Asana Coral) — identical light & dark
126
+ - Text: `#FFFFFF`, Inter 15pt weight 600
127
+ - Padding: 13pt vertical, 26pt horizontal
128
+ - Pressed: background `#D85B5B` + scale 0.98
129
+ - Disabled: `#F06A6A` at 40% opacity, text at 60%
130
+
131
+ **Secondary / Outline Button (Assign / Set due date)**
132
+ - Background: transparent
133
+ - Text: `#1E1F21` light / `#F5F4F2` dark, Inter 14pt weight 600
134
+ - Border: 1pt `#EDEBE9` light / `#35363A` dark
135
+ - Corner radius: 8pt
136
+ - Padding: 12pt vertical, 20pt horizontal
137
+ - Pressed: background `#F0EFEF` light / `#2E2F31` dark
138
+
139
+ **Pill Button (Filter / Sort / Group by)**
140
+ - Background: `#F9F8F8` light / `#2E2F31` dark
141
+ - Border: 1pt `#EDEBE9` / `#35363A`
142
+ - Corner radius: 999pt (full pill)
143
+ - Text: `#1E1F21` / `#F5F4F2`, Inter 14pt weight 600
144
+ - Padding: 10pt vertical, 18pt horizontal
145
+
146
+ **Text Button (Mark complete / Add subtask)**
147
+ - Font: Inter 14pt weight 600
148
+ - Color: `#4573D2` (action blue) — or `#62D26F` for "Mark complete"
149
+ - No background, no underline
150
+ - Pressed: 60% opacity
151
+
152
+ **Floating Action Button (Create Task)**
153
+ - Size: 56pt circle
154
+ - Background: `#F06A6A`
155
+ - Icon: white `plus` 24pt, stroke 2.5
156
+ - Shadow: `rgba(240,106,106,0.45) 0 8px 20px`
157
+ - Position: 18pt from trailing edge, 16pt above the tab bar
158
+ - Pressed: scale 0.94 + `#D85B5B`
159
+
160
+ ### Task Row (the core atom)
161
+
162
+ Every task in any list view is a row:
163
+ - Height: auto, ~58pt with one metadata line
164
+ - Leading: 20pt completion circle, 12pt gap to content
165
+ - Content: task name (Inter 15pt w500), below it a metadata row (8pt gap)
166
+ - Metadata pills: project tag (tinted hue), due-date pill (orange normal / red overdue), inline subtask count
167
+ - Trailing: 22pt assignee avatar (circular initials or photo)
168
+ - Divider: 1pt `#EDEBE9` / `#35363A` between rows
169
+ - Swipe-left: reveals "Complete" (green) + "More" (gray) actions
170
+
171
+ **Completion Circle**
172
+ - Default: 20pt circle, 1.5pt border `#9CA3A6` / `#6F7073`, transparent fill
173
+ - Tapped: fills `#62D26F`, white checkmark stroke 3pt, 200ms scale-bounce + soft haptic
174
+ - Completed task: name turns `#9CA3A6` / `#6F7073` with strikethrough
175
+ - Section-complete: optional "celebration creature" flies across (unicorn/narwhal) — 1.2s
176
+
177
+ ### Section Header (List grouping)
178
+ - Leading caret: 5pt triangle `#6D6E6F` (points right collapsed, down expanded)
179
+ - Label: Inter 13pt w700 `#1E1F21` / `#F5F4F2`
180
+ - Trailing count: Inter 12pt `#9CA3A6`
181
+ - Padding: 14pt top, 8pt bottom, 18pt horizontal
182
+ - Tap caret: collapse/expand children with 200ms ease-out
183
+
184
+ ### Pills & Tags
185
+
186
+ **Project / Tag Pill**
187
+ - Background: object hue at ~16% opacity (e.g., `#4ECBC414`)
188
+ - Text: the solid hue (e.g., `#4ECBC4`), Inter 12pt w600
189
+ - Padding: 3pt vertical, 9pt horizontal
190
+ - Corner radius: 999pt
191
+
192
+ **Due-Date Pill**
193
+ - On-time: text `#F1BD6C` on `#F1BD6C1F`
194
+ - Overdue: text `#E8384F` on `#E8384F2E`
195
+ - Same shape as project pill
196
+
197
+ **Status Badge (Status Update)**
198
+ - On track: `#4ECBC4` text on `#4ECBC42E`
199
+ - At risk: `#F8DF72` text on `#F8DF7229` (dark text on dark — yellow uses a deeper tint)
200
+ - Off track: `#E8384F` text on `#E8384F2E`
201
+ - Complete: `#62D26F` text on `#62D26F2E`
202
+ - Inter 12pt w700, 6pt vertical / 14pt horizontal, 999pt radius
203
+
204
+ ### Navigation
205
+
206
+ **Bottom Tab Bar**
207
+ - Height: 52pt + safe area
208
+ - Background: `#FFFFFF` / `#1E1F21` with 1pt top border `#EDEBE9` / `#35363A`
209
+ - Tabs (4): Home, My Tasks, Inbox, Search
210
+ - Icon size: 22pt; active filled, inactive stroked
211
+ - Active color: `#F06A6A`; inactive `#9CA3A6` / `#6F7073`
212
+ - Labels: Inter 10pt w600, always shown
213
+
214
+ **View Switcher Tabs (per screen)**
215
+ - Below the screen title: a horizontal strip — List, Board, Calendar, Timeline, Files
216
+ - Active tab: `#1E1F21` / `#F5F4F2` text with a 2pt coral `#F06A6A` underline
217
+ - Inactive: `#6D6E6F` / `#A9A9AA`
218
+ - Inter 14pt w600, 22pt gap, 1pt bottom divider
219
+
220
+ **Top Nav (detail screens)**
221
+ - Height: 44pt + safe area
222
+ - Leading: back chevron / close X
223
+ - Center: compact title (shown when scrolled past large title)
224
+ - Trailing: 30pt user avatar or ⋯ actions menu
225
+
226
+ ### Input Fields
227
+
228
+ **Search Bar**
229
+ - Height: 40pt
230
+ - Background: `#F9F8F8` / `#2E2F31`
231
+ - Border: none
232
+ - Corner radius: 10pt
233
+ - Leading icon `magnifyingglass` 16pt `#9CA3A6`
234
+ - Placeholder: "Search tasks, projects, people" 14pt `#9CA3A6`
235
+ - Focus: 1.5pt `#F06A6A` border
236
+
237
+ **Task Name / Comment Field**
238
+ - No box in inline-edit (text sits directly on canvas)
239
+ - Comment composer: `#F9F8F8` / `#2E2F31` fill, 12pt radius, 12pt padding
240
+ - Placeholder: "Add a comment" `#9CA3A6`
241
+ - Send button: coral text "Comment" appears when non-empty
242
+
243
+ ### Distinctive Components
244
+
245
+ **Completion Circle + Celebration**
246
+ - The emotional core — see Task Row. The tap-to-complete moment is deliberately delightful: green fill, checkmark draw, haptic, occasional celebration creature.
247
+
248
+ **My Tasks List**
249
+ - The default screen: sectioned (Today / Upcoming / Later or custom sections), each task a row, FAB anchored bottom-right.
250
+
251
+ **Project Board (Kanban)**
252
+ - Horizontally scrolling columns (`#F9F8F8` / `#2E2F31`, 12pt radius)
253
+ - Column header: section name uppercased, Inter 12pt w700 `#6D6E6F`
254
+ - Cards: white `#FFFFFF` / `#252628`, 1pt border, 10pt radius, 12pt padding; title + tinted tag chips + assignee avatar
255
+ - Drag card between columns: lift shadow + 200ms settle
256
+
257
+ **Status Update Card**
258
+ - A composed update post: status badge (On track / At risk / etc.), title, rich-text body, "Highlights" section
259
+ - Posted to the project's "Status" tab; appears in followers' Inbox
260
+
261
+ **Inbox Notification Row**
262
+ - Leading: actor avatar (28pt)
263
+ - Title: bold actor + action ("assigned you a task")
264
+ - Subtitle: task name + project tag
265
+ - Trailing: timestamp `#9CA3A6`; unread = coral 6pt dot on leading edge
266
+
267
+ **Subtask / Checklist Nesting**
268
+ - A task can contain subtasks — indented 24pt, each its own completion circle
269
+ - Progress: "3/8" tabular count next to parent
270
+
271
+ **Custom Field Chip**
272
+ - Inline on a task row or detail: a labeled value pill in the field's assigned hue (e.g., Priority = High in red tint, Stage = Review in plum tint)
273
+
274
+ ## 5. Layout Principles
275
+
276
+ ### Spacing System
277
+ - Base unit: 4pt
278
+ - Scale: 4, 8, 12, 14, 16, 18, 22, 24, 32, 40, 56
279
+ - Task row vertical padding: 11pt (dense but tappable)
280
+ - Section header: 14pt top / 8pt bottom
281
+ - Screen horizontal inset: 18pt
282
+
283
+ ### Grid & Container
284
+ - iPhone: content at 18pt horizontal insets, full-width list
285
+ - iPad: master-detail — left task/project list (360pt) + right detail pane
286
+ - Board columns: ~280pt wide, horizontal scroll, 12pt gap
287
+ - Detail pane: max-width 760pt centered on large screens
288
+
289
+ ### Whitespace Philosophy
290
+ - **Scannable list rhythm**: 11pt row padding + 1pt divider — dense enough to see many tasks, airy enough to tap accurately
291
+ - **Pills breathe, slabs don't exist**: metadata pills are small tinted lozenges with generous internal padding; Asana never uses full-bleed colored slabs
292
+ - **The FAB owns the bottom-right**: a persistent 56pt coral anchor; content list scrolls behind it
293
+ - **Status updates get room**: the status card uses 16-20pt internal padding so it reads as a composed post, not a list row
294
+
295
+ ### Border Radius Scale
296
+ - Square (0pt): dividers, full-bleed media
297
+ - Subtle (4pt): inline avatars-as-squares (rare), color dots
298
+ - Standard (8pt): buttons, cards-in-detail
299
+ - Card (10pt): board cards, search bar
300
+ - Comfortable (12-16pt): bottom sheets, modals, comment composer
301
+ - Pill (999pt): all pills, tags, status badges, the FAB
302
+ - Circle (50%): completion circle, assignee avatars
303
+
304
+ ## 6. Depth & Elevation
305
+
306
+ Asana is mostly flat with restrained, soft shadows reserved for floating and dragged elements.
307
+
308
+ | Level | Treatment | Use |
309
+ |-------|-----------|-----|
310
+ | Flat (Level 0) | No shadow | Task rows, list, section headers, board columns |
311
+ | Card (Level 1) | `rgba(0,0,0,0.06) 0 1px 3px` | Board cards at rest (light); 1pt border in dark |
312
+ | Floating (Level 2) | `rgba(0,0,0,0.12) 0 4px 12px` | Dropdown menus, date picker, the FAB |
313
+ | FAB | `rgba(240,106,106,0.45) 0 8px 20px` | Coral FAB — a tinted colored shadow, not gray |
314
+ | Dragged (Level 3) | `rgba(0,0,0,0.20) 0 8px 24px` | A board card / task being dragged |
315
+ | Sheet (Level 4) | `rgba(0,0,0,0.18) 0 -4px 24px` | Bottom sheets (task detail, filters) |
316
+ | Modal Scrim | `rgba(0,0,0,0.40)` | Dim behind modals/sheets |
317
+
318
+ **Shadow Philosophy**: Shadows say "this is liftable / floating", nothing decorative. The FAB is the one place Asana uses a *colored* shadow — a soft coral glow that ties the button to the brand. On dark mode, gray shadows nearly vanish, so cards rely on a 1pt `#3A3B3F` border for separation while the FAB keeps its coral glow.
319
+
320
+ ### Motion
321
+ - **Task complete**: circle scales 0.8 → 1.1 → 1.0 over 200ms ease-out, checkmark stroke draws in 150ms, soft success haptic; name fades to tertiary + strikethrough over 150ms
322
+ - **Celebration creature**: on completing all tasks in a section, a creature (unicorn/narwhal/yeti/phoenix) flies across the screen left→right over ~1.2s, then fades
323
+ - **FAB → new task**: FAB scales up and morphs into the new-task sheet rising from bottom over 280ms ease-out
324
+ - **Section collapse/expand**: caret rotates 90° in 150ms; children height 0 → auto over 200ms ease-out
325
+ - **Board card drag**: 1:1 finger tracking at 60fps; other cards shift over 200ms to make room; drop snaps with 150ms ease-out + soft haptic
326
+ - **View tab switch**: 2pt coral underline slides to the tapped tab over 200ms; content cross-fades 150ms
327
+ - **Inbox read**: tapping a notification fades its coral unread dot out over 120ms
328
+ - **Push navigation**: iOS-native push, 300ms horizontal slide
329
+ - **Haptic feedback**: soft success on task complete, soft impact on card drag start & section toggle, light tick on tab switch
330
+
331
+ ## 7. Do's and Don'ts
332
+
333
+ ### Do
334
+ - Use Asana Coral (`#F06A6A`) as the single brand accent — FAB, active tab, primary CTA — identical in light & dark
335
+ - Use the charcoal `#1E1F21` for dark canvas — NOT pure black
336
+ - Make the completion circle a delight: green fill (`#62D26F`) + checkmark draw + haptic on tap
337
+ - Render projects/tags/fields with their assigned hue as a ~16% tint fill + saturated text — never solid slabs
338
+ - Use the four-state status system (On track / At risk / Off track / Complete) for project updates
339
+ - Group the task list with collapsible section headers (caret + label + count)
340
+ - Keep the FAB persistently bottom-right with its soft coral shadow
341
+ - Give each task row an assignee avatar on the trailing edge
342
+ - Use tabular numerals for due dates, counts, and progress
343
+ - Offer the view-switcher tabs (List / Board / Calendar / Timeline / Files) over the same task data
344
+
345
+ ### Don't
346
+ - Don't introduce a second brand accent — coral is the only one; other hues are object colors, not UI accents
347
+ - Don't fill pills with solid saturated color — Asana uses ~16% tint + colored text
348
+ - Don't use pure black (`#000000`) for the dark canvas or body text
349
+ - Don't skip the completion-circle delight — a flat checkbox loses Asana's emotional core
350
+ - Don't make status updates look like list rows — they're composed posts with internal padding
351
+ - Don't hide the FAB behind content on scroll — it stays anchored and tappable
352
+ - Don't use heavy drop shadows on rows — only floating / dragged elements get shadow
353
+ - Don't use gray shadow as the FAB shadow — it must be a soft coral glow
354
+ - Don't bold task-row names heavily — 500 weight is correct; headings are 700-800
355
+ - Don't tint the whole row background per project — the tint lives in the small pill only
356
+
357
+ ## 8. Responsive Behavior
358
+
359
+ ### Device Sizes
360
+ | Device | Width | Key Changes |
361
+ |--------|-------|-------------|
362
+ | iPhone SE (3rd gen) | 375pt | Single column; metadata pills may wrap to a second line |
363
+ | iPhone 13/14/15 | 390pt | Standard layout |
364
+ | iPhone 15/16 Pro | 393pt | Dynamic Island accommodated in top nav |
365
+ | iPhone 15/16 Pro Max | 430pt | Larger task rows; two metadata lines comfortable |
366
+ | iPad (portrait) | 768pt | Master-detail: project/task list (360pt) + detail pane |
367
+ | iPad (landscape) | 1024pt+ | Three-pane optional: sidebar + list + task detail |
368
+
369
+ ### Dynamic Type
370
+ - Screen title, nav title, section headers, body, task-row names, comments: full scale
371
+ - Pills, tab labels, avatar initials, list section labels: FIXED (layout-sensitive)
372
+ - Due dates / counts: scale but stay tabular
373
+
374
+ ### Orientation
375
+ - All screens support rotation
376
+ - iPad landscape unlocks the three-pane split (sidebar / list / detail)
377
+ - Board view scrolls horizontally in both orientations
378
+
379
+ ### Touch Targets
380
+ - Completion circle: 20pt glyph, 44pt hit area
381
+ - Tab bar icons: 22pt glyph, 44pt hit
382
+ - Task row: full-row tap opens detail; circle tap completes (separate 44pt zones)
383
+ - FAB: 56pt (exceeds minimum)
384
+ - Section caret: 16pt glyph, 44pt hit
385
+
386
+ ### Safe Area Handling
387
+ - Top: large title & top nav respect safe area + Dynamic Island
388
+ - Bottom: tab bar + home indicator respected; FAB sits 16pt above the tab bar
389
+ - Keyboard: comment composer & task-name field rise above keyboard
390
+ - Sides: 18pt content inset
391
+
392
+ ## 9. Agent Prompt Guide
393
+
394
+ ### Quick Color Reference
395
+ - Canvas (light): `#FFFFFF`
396
+ - Canvas (dark): `#1E1F21`
397
+ - Surface (dark): `#252628` / `#2E2F31`
398
+ - Divider: `#EDEBE9` light / `#35363A` dark
399
+ - Text primary: `#1E1F21` light / `#F5F4F2` dark
400
+ - Text secondary: `#6D6E6F` light / `#A9A9AA` dark
401
+ - Brand coral: `#F06A6A` (pressed `#D85B5B`)
402
+ - Action blue: `#4573D2`
403
+ - Object aqua: `#4ECBC4`
404
+ - Object green / success: `#62D26F`
405
+ - Object yellow / at-risk: `#F8DF72`
406
+ - Object orange / due: `#F1BD6C`
407
+ - Object magenta: `#F26FD3`
408
+ - Error / off-track: `#E8384F`
409
+
410
+ ### Example Component Prompts
411
+ - "Build an Asana task row in SwiftUI: leading 20pt completion circle (1.5pt border `#9CA3A6`, transparent fill). 12pt gap to a VStack: task name in Inter 15pt w500 `#1E1F21`; below, an HStack of pills — a project tag (Inter 12pt w600 `#4ECBC4` on `#4ECBC414`, 999pt radius, 3/9pt padding) and a due-date pill (`#F1BD6C` on `#F1BD6C1F`, or `#E8384F` on `#E8384F2E` if overdue). Trailing: 22pt circular avatar with white initials. 11pt vertical padding, 1pt `#EDEBE9` bottom divider. On circle tap: fill `#62D26F`, draw white checkmark, scale 0.8→1.1→1.0 over 200ms + soft haptic, name → `#9CA3A6` strikethrough."
412
+
413
+ - "Create the Asana My Tasks screen: 32pt w800 title 'My Tasks' + 30pt user avatar trailing. Below, a view-switcher strip (List / Board / Calendar / Files), active = `#1E1F21` text + 2pt coral `#F06A6A` underline, Inter 14pt w600. Then a sectioned list: section header = 5pt caret + Inter 13pt w700 label + 12pt `#9CA3A6` count. A 56pt coral `#F06A6A` FAB bottom-right (18pt trailing, 16pt above tab bar) with white plus icon and shadow `rgba(240,106,106,0.45) 0 8px 20px`."
414
+
415
+ - "Render an Asana status update card: top row = status badge ('On track' Inter 12pt w700 `#4ECBC4` on `#4ECBC42E`, 999pt, 6/14pt padding) + posted date. Title in Inter 22pt w700. Body in Inter 16pt w400 `#1E1F21` / `#F5F4F2`. 18pt internal padding, `#FFFFFF` / `#252628` background, 12pt radius, 1pt `#EDEBE9` / `#3A3B3F` border."
416
+
417
+ - "Build an Asana project board column: `#F9F8F8` light / `#2E2F31` dark, 12pt radius, ~280pt wide. Header: section name uppercased Inter 12pt w700 `#6D6E6F`. Cards: `#FFFFFF` / `#252628`, 1pt `#E8E6E4` / `#3A3B3F` border, 10pt radius, 12pt padding — title Inter 13pt w500, a tinted tag chip, a 22pt assignee avatar. Drag between columns: lift `rgba(0,0,0,0.20) 0 8px 24px`, neighbors shift 200ms ease-out, soft haptic on drop."
418
+
419
+ - "Create the Asana bottom tab bar: 52pt + safe area, `#FFFFFF` / `#1E1F21`, 1pt top border `#EDEBE9` / `#35363A`. Four tabs — Home, My Tasks, Inbox, Search — 22pt icons (filled active, stroked inactive), active `#F06A6A`, inactive `#9CA3A6` / `#6F7073`, labels Inter 10pt w600 always shown. No tint pill."
420
+
421
+ - "Render an Asana Inbox notification row: 28pt actor avatar leading; title = bold actor name + action ('assigned you a task') Inter 14pt; subtitle = task name + tinted project tag; trailing timestamp `#9CA3A6` 12pt. Unread state: 6pt coral `#F06A6A` dot on the leading edge; tapping fades the dot out over 120ms."
422
+
423
+ ### Iteration Guide
424
+ 1. Canvas is white in light, charcoal `#1E1F21` in dark — NOT pure black
425
+ 2. Coral `#F06A6A` is the ONLY brand accent — identical in both themes; everything else is object color
426
+ 3. The completion circle must be a delight — green `#62D26F` fill + checkmark draw + haptic on tap
427
+ 4. Pills are ~16% tint fills with saturated text — never solid slabs; project hues come from the fixed object palette
428
+ 5. Status updates use four states — On track / At risk / Off track / Complete with a colored badge
429
+ 6. The task list is sectioned with collapsible caret headers (Today / Upcoming / custom)
430
+ 7. The FAB is a persistent 56pt coral circle bottom-right with a soft coral-tinted shadow
431
+ 8. Typography is Inter, quiet and legible — task rows at 15pt/500, headings 700-800, tabular numerals for dates
432
+ 9. View tabs (List / Board / Calendar / Timeline / Files) render the same tasks differently — active tab gets a 2pt coral underline
433
+ 10. Dark mode keeps coral identical, inverts text to warm off-white `#F5F4F2`, and uses 1pt borders where gray shadows vanish