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,392 @@
1
+ # Design System Inspiration of Grammarly (iOS)
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ Grammarly's iOS app is a *calm writing surface wrapped around an opinionated assistant*. The canvas is pure white (`#FFFFFF`) in light mode and a warm charcoal (`#121212`) in dark — never stark, because the product's job is to make your own prose feel comfortable to read while a quiet green assistant works in the margins. Open the editor and you see a near-frameless document: a serene title in Inter 22-26pt bold, body copy at 16pt with generous 1.65 line-height, and — the signature moment — words and phrases marked with **colored underlines**. Each underline is a category: a red squiggle for Correctness, a blue highlight for Clarity, a green dotted line for Engagement, a purple line for Delivery. Tapping any marked span slides up a **suggestion card** from the bottom: a small colored category dot, a strikethrough-old → green-new word swap, a one-sentence plain-language explanation, and a single green "Accept" pill with a circular dismiss. This card is the heartbeat of the entire app.
6
+
7
+ The other two signature affordances are the **document score ring** — a thin circular gauge in the top-right showing an overall 0–100 number that fills Grammarly Green as the writing improves — and the **assistant bar** pinned to the bottom: a small green Grammarly orb (the rotated-G logomark), a running suggestion count ("14 suggestions · 3 Correctness · 6 Clarity · 5 Engagement"), and a "Review" CTA that walks the user card-by-card. Everything in the app routes through these three: the colored underline (where), the suggestion card (what), the assistant bar (how many left).
8
+
9
+ The color system is monobrand and disciplined. There is exactly **one** brand accent — Grammarly Green (`#15C39A`, deepening to `#11A683`) — and it carries every primary action, the score ring, and the orb. There is no secondary brand color. Functional color lives entirely in the four **suggestion categories**: Correctness Red (`#E5484D`), Clarity Blue (`#3B82F6`), Engagement Green (`#16A34A`), Delivery Purple (`#8B5CF6`). These four hues never act as CTAs — they only color underlines, category dots, and inline highlights. Premium upsell uses a warm gold (`#E0A82E`). The restraint is the point: the assistant is helpful, not loud.
10
+
11
+ Typography is a clean grotesque. Grammarly's product uses a humanist sans (Apercu in marketing, SF Pro / system on iOS); **Inter** is the closest free face and is used here. Hierarchy is editorial: screen title 32pt/800, document heading 22-26pt/700, card title 18pt/700, editor body 16pt/400 (the calm reading size), suggestion title 15pt/600, explanation 14pt/400, category tag 12pt/700 uppercase. Weight concentrates at 400/600/700/800 — regular for prose, semibold for suggestion titles, bold for headings, extrabold for screen titles. The type system is built to recede so the user's own words read cleanly.
12
+
13
+ **Key Characteristics:**
14
+ - Calm writing canvas — pure white (`#FFFFFF`) light / warm charcoal (`#121212`) dark, near-frameless editor
15
+ - Single brand accent — Grammarly Green (`#15C39A` / `#11A683`); no secondary brand color
16
+ - Color-coded suggestion underlines — red Correctness, blue Clarity, green Engagement, purple Delivery
17
+ - Suggestion card — bottom card with category dot, strikethrough → green swap, explanation, green Accept pill
18
+ - Document score ring — thin circular 0–100 gauge, top-right, fills Grammarly Green as writing improves
19
+ - Assistant bar — pinned bottom strip: green orb + running suggestion count + Review CTA
20
+ - Tone detector — emoji + tone pills ("Confident", "Formal") summarizing how the writing reads
21
+ - Pill-shaped buttons everywhere — fully rounded (999pt) primary, secondary, premium
22
+ - Inter / SF Pro type — editorial hierarchy, body at 16pt for calm reading
23
+ - Premium gold (`#E0A82E`) for upsell — the only non-green, non-functional accent
24
+ - Minimal chrome — back chevron, doc title, score ring up top; assistant bar at bottom; nothing else
25
+
26
+ ## 2. Color Palette & Roles
27
+
28
+ ### Primary (Interactive)
29
+ - **Grammarly Green** (`#15C39A`): The single brand accent — Accept buttons, score ring, assistant orb, active states, links.
30
+ - **Green Deep** (`#11A683`): Deeper green for emphasis, gradient end, large fills.
31
+ - **Green Pressed** (`#0E8A6D`): Pressed state of any green button.
32
+ - **Green Tint** (`#15C39A1F`): 12% green wash behind selected suggestions and the accepted-state flash.
33
+
34
+ ### Suggestion Categories (Functional — underlines & dots only, NEVER CTAs)
35
+ - **Correctness Red** (`#E5484D`): Grammar, spelling, punctuation — red squiggle underline + red dot.
36
+ - **Clarity Blue** (`#3B82F6`): Wordiness, hard-to-read sentences — blue highlight + blue dot.
37
+ - **Engagement Green** (`#16A34A`): Bland, repetitive language — green dotted underline + green dot.
38
+ - **Delivery Purple** (`#8B5CF6`): Tone, formality, confidence — purple underline + purple dot.
39
+
40
+ ### Premium / Upsell
41
+ - **Premium Gold** (`#E0A82E`): "Try Premium", premium-only suggestion lock, upgrade banners.
42
+ - **Premium Gold Pressed** (`#C8941F`): Pressed state.
43
+
44
+ ### Canvas & Surfaces (Light Mode)
45
+ - **Canvas White** (`#FFFFFF`): Primary editor canvas.
46
+ - **Surface 1** (`#F7F8F8`): Suggestion cards, settings rows, elevated panels.
47
+ - **Surface 2** (`#EEF0F0`): Pressed rows, tone pills, secondary chips.
48
+ - **Divider** (`#E4E6E6`): Hairline separators.
49
+
50
+ ### Canvas & Surfaces (Dark Mode)
51
+ - **Dark Canvas** (`#121212`): Primary dark editor — warm charcoal, NOT pure black.
52
+ - **Dark Surface 1** (`#1C1C1E`): Suggestion cards, settings rows.
53
+ - **Dark Surface 2** (`#262629`): Pressed rows, tone pills.
54
+ - **Dark Divider** (`#2C2C2E`): Hairline separators.
55
+
56
+ ### Text
57
+ - **Text Primary Light** (`#1A1A1A`): Editor body, headings — near-black, slightly warm.
58
+ - **Text Secondary Light** (`#6B6B70`): Explanations, metadata, tone labels.
59
+ - **Text Tertiary Light** (`#9A9A9F`): Placeholders, disabled.
60
+ - **Text Primary Dark** (`#E4E4E4`): Editor body on dark.
61
+ - **Text Secondary Dark** (`#9A9A9F`): Secondary text on dark (shared with light tertiary).
62
+ - **Text Tertiary Dark** (`#6A6A6E`): Disabled on dark.
63
+
64
+ ### Underline / Highlight Roles
65
+
66
+ | Role | Light Mode | Dark Mode | Treatment |
67
+ |------|-----------|-----------|-----------|
68
+ | Correctness | `#E5484D` | `#F05A5F` | 2pt solid squiggle underline |
69
+ | Clarity | `#3B82F6` | `#5A95F8` | 18% fill highlight + 2pt underline |
70
+ | Engagement | `#16A34A` | `#22B85A` | 2pt dotted underline |
71
+ | Delivery | `#8B5CF6` | `#A07CF8` | 2pt solid underline |
72
+ | Accepted flash | `#15C39A1F` | `#15C39A24` | 12% green wash, 600ms fade |
73
+
74
+ ### Semantic
75
+ - **Error Red** (`#E5484D`): Sync failure toast, destructive confirm (shares Correctness hue).
76
+ - **Success Green** (`#15C39A`): "All clear" state, save-success toast (uses brand green).
77
+ - **Warning Gold** (`#E0A82E`): Premium-locked notice, plagiarism flag.
78
+ - **Info Blue** (`#3B82F6`): Informational tip banners (shares Clarity hue).
79
+
80
+ ## 3. Typography Rules
81
+
82
+ ### Font Family
83
+ - **Product**: `Apercu` (Colophon Foundry — Grammarly's brand grotesque) in marketing; `SF Pro Text` / `SF Pro Display` on iOS via the system stack.
84
+ - **Closest Free Face**: `Inter` (by Rasmus Andersson, 2020, SIL OFL) — humanist grotesque with near-identical proportions, excellent UI hinting.
85
+ - **Mono (rare)**: `SF Mono` for in-app code samples and the plagiarism source viewer.
86
+ - **Fallback Stack**: `-apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif`
87
+
88
+ ### Hierarchy
89
+
90
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
91
+ |------|------|------|--------|-------------|----------------|-------|
92
+ | Screen Title | Inter | 32pt | 800 | 1.15 | -0.6pt | "Assistant", "Insights" top-level |
93
+ | Document Heading | Inter | 26pt | 700 | 1.2 | -0.4pt | Title inside the editor (H1) |
94
+ | Document Subhead | Inter | 22pt | 700 | 1.25 | -0.3pt | H2 inside editor / section title |
95
+ | Card Title | Inter | 18pt | 700 | 1.3 | -0.1pt | Suggestion category headline |
96
+ | Editor Body | Inter | 16pt | 400 | 1.65 | 0pt | The prose being edited — calm reading size |
97
+ | Suggestion Title | Inter | 15pt | 600 | 1.35 | 0pt | "Consider a more concise phrase" |
98
+ | Suggestion Swap | Inter | 16pt | 600 | 1.4 | 0pt | Old (strikethrough) → New (green) word |
99
+ | Explanation | Inter | 14pt | 400 | 1.5 | 0pt | Plain-language rule rationale |
100
+ | Card Meta / Action | Inter | 13pt | 600 | 1.0 | 0.1pt | "Accept", "Dismiss", count labels |
101
+ | Category Tag | Inter | 12pt | 700 | 1.0 | 0.4pt | "CORRECTNESS" uppercase |
102
+ | Tone Pill | Inter | 12pt | 600 | 1.0 | 0.2pt | "Confident", "Formal" |
103
+ | Score Number | Inter | 17pt | 700 | 1.0 | 0pt | Number inside the score ring |
104
+ | Tab / Bar Label | Inter | 11pt | 600 | 1.0 | 0.1pt | Assistant-bar subtitle |
105
+ | Button | Inter | 16pt | 700 | 1.0 | 0pt | Primary pill label |
106
+
107
+ ### Principles
108
+ - **Editorial first**: Sizes follow document logic (title → heading → body), so the editor reads like a clean word processor, not a dashboard.
109
+ - **Calm body**: Editor body is 16pt/400 with a roomy 1.65 line-height — the prose must feel pleasant to read, not cramped.
110
+ - **Weight discipline**: 400 (prose), 600 (suggestion titles/actions), 700 (headings/categories), 800 (screen titles). No thin, no black, no light.
111
+ - **Categories are uppercase 12pt/700**: the four category tags are the only consistently uppercased text — a fixed, scannable label.
112
+ - **Dynamic Type first-class**: Document heading, body, suggestion title, explanation all scale; category tags, tone pills, score number, bar labels stay fixed.
113
+
114
+ ## 4. Component Stylings
115
+
116
+ ### Buttons
117
+
118
+ **Primary Button (Accept / Continue / Save)**
119
+ - Shape: Fully rounded pill, 999pt corner radius
120
+ - Background: `#15C39A` (Grammarly Green) / same on dark
121
+ - Text: `#06281F` (deep green-black for contrast on green) — Inter 16pt weight 700
122
+ - Padding: 14pt vertical, 28pt horizontal (Accept inside card stretches full width, 10pt vertical)
123
+ - Pressed: background `#0E8A6D` + scale 0.98
124
+ - Disabled: background `#15C39A` at 40% opacity
125
+
126
+ **Secondary / Ghost Button (Dismiss / Skip)**
127
+ - Background: transparent
128
+ - Text: `#15C39A` light / `#15C39A` dark
129
+ - Border: 1.5pt `#15C39A`
130
+ - Corner radius: 999pt (pill)
131
+ - Padding: 12pt vertical, 22pt horizontal
132
+ - Font: Inter 15pt weight 600
133
+ - Pressed: background `#15C39A14` (8% green)
134
+
135
+ **Premium Button (Try Premium / Upgrade)**
136
+ - Background: `#E0A82E` (Premium Gold)
137
+ - Text: `#2A1E04` Inter 14pt weight 700
138
+ - Corner radius: 999pt
139
+ - Padding: 11pt vertical, 20pt horizontal
140
+ - Pressed: background `#C8941F` + scale 0.98
141
+
142
+ **Dismiss Icon Button (× on suggestion card)**
143
+ - Size: 44pt × 40pt pill, 1pt `#E4E6E6` / `#2C2C2E` border
144
+ - Glyph: 16pt × in `#6B6B70` / `#9A9A9F`
145
+ - Pressed: background `#EEF0F0` / `#262629`
146
+
147
+ **Text Button (See all suggestions / Learn more)**
148
+ - Font: Inter 14pt weight 600
149
+ - Color: `#15C39A`
150
+ - No underline; 12pt vertical hit padding
151
+ - Pressed: 60% opacity
152
+
153
+ ### Suggestion Card (the core atom)
154
+
155
+ The single most important component. Slides up from the bottom when a marked span is tapped.
156
+
157
+ - Container: `#F7F8F8` light / `#1C1C1E` dark, 16pt corner radius, 1pt `#E4E6E6` / `#2C2C2E` border, shadow `0 8px 24px rgba(0,0,0,0.12)` light / `rgba(0,0,0,0.5)` dark
158
+ - Padding: 16pt all
159
+ - **Header row**: 10pt category dot (category color) + category tag (Inter 12pt 700 uppercase, `#6B6B70`)
160
+ - **Swap line**: old word in category color with line-through, "→" in `#9A9A9F`, new word in `#15C39A` weight 600 (Inter 16pt)
161
+ - **Explanation**: Inter 14pt 400 `#6B6B70`, 1.5 line-height, max 2 lines
162
+ - **Actions row**: full-width green "Accept" pill (Inter 14pt 700, `#06281F` on `#15C39A`) + 44pt dismiss icon button at 10pt gap
163
+ - Premium-locked variant: Accept replaced by gold "Unlock with Premium" + lock glyph
164
+
165
+ ### Document Score Ring
166
+
167
+ - Diameter: 38pt (top bar) / 60pt (insights screen)
168
+ - Track: 3pt `#E4E6E6` / `#2C2C2E`
169
+ - Progress arc: 3pt `#15C39A`, sweeps from 12 o'clock clockwise, length = score/100
170
+ - Center: score number Inter 13-17pt 700, color = `#15C39A` (≥90), `#E0A82E` (60–89), `#E5484D` (<60)
171
+ - Animation: arc fills 0 → target over 600ms ease-out when document opens or a suggestion is accepted
172
+
173
+ ### Colored Underlines (inline marking)
174
+
175
+ - **Correctness**: 2pt solid wavy underline `#E5484D` under the flagged span
176
+ - **Clarity**: 18% `#3B82F6` background fill + 2pt solid `#3B82F6` underline, 2pt corner radius
177
+ - **Engagement**: 2pt dotted underline `#16A34A`
178
+ - **Delivery**: 2pt solid underline `#8B5CF6`
179
+ - Tapping a span: span scrolls to vertical center, suggestion card animates up, span gets a faint category-tint background while card is open
180
+
181
+ ### Tone Detector
182
+
183
+ - A horizontal row above/below the editor: leading emoji (😊 / 🙂 / 😐 / 😟 reflecting detected sentiment) 18pt, "Tone sounds" label Inter 13pt `#6B6B70`, then 1–3 tone pills
184
+ - Tone pill: `#EEF0F0` / `#262629` background, 1pt divider border, Inter 12pt 600 `#1A1A1A` / `#E4E4E4`, 999pt radius, 5pt × 12pt padding
185
+
186
+ ### Assistant Bar (pinned bottom)
187
+
188
+ - Height: 64pt + safe area, background `rgba(255,255,255,0.96)` / `rgba(18,18,18,0.96)` with saturate-blur, 0.5pt top border
189
+ - Leading: 36pt green orb (circle `#15C39A`) containing the white rotated-G logomark 20pt
190
+ - Center: count title Inter 15pt 700 ("14 suggestions"), subtitle Inter 11pt 600 `#6B6B70` ("3 Correctness · 6 Clarity · 5 Engagement")
191
+ - Trailing: "Review" CTA — small green pill, Inter 13pt 700 `#06281F`
192
+ - When zero suggestions: orb stays green, title becomes "All clear" with a check, no Review CTA
193
+
194
+ ### Navigation
195
+
196
+ **Top Bar (Editor)**
197
+ - Height: 44pt + safe area
198
+ - Leading: back chevron `chevron.left` 22pt `#1A1A1A` / `#E4E4E4`
199
+ - Center: document title Inter 15pt 600, truncating
200
+ - Trailing: 38pt score ring
201
+
202
+ **Bottom Tab Bar (App shell — Documents / Assistant / Account)**
203
+ - Height: 56pt + safe area, `#FFFFFF` / `#121212`, 0.5pt top border
204
+ - 3 tabs: Documents (`doc.text`), Assistant (the green orb, center, slightly enlarged), Account (`person.circle`)
205
+ - Active color: `#15C39A`; inactive `#9A9A9F`
206
+ - Labels: Inter 11pt 600, always shown; no tint pill — icon + label color change only
207
+
208
+ ### Input Fields
209
+
210
+ **New Document / Title Field**
211
+ - Height: 48pt, background `#F7F8F8` / `#1C1C1E`, no border, 12pt corner radius
212
+ - Placeholder: "Untitled document" Inter 16pt `#9A9A9F`
213
+ - Focus: 1.5pt `#15C39A` border
214
+
215
+ **Search (Documents list)**
216
+ - Height: 40pt, `#EEF0F0` / `#262629`, 999pt radius
217
+ - Leading `magnifyingglass` 16pt `#9A9A9F`, placeholder "Search documents" Inter 14pt `#9A9A9F`
218
+
219
+ ### Distinctive Components
220
+
221
+ **Suggestion Card** — see core atom above; the defining component.
222
+
223
+ **Document Score Ring** — thin animated 0–100 gauge; the at-a-glance health metric.
224
+
225
+ **Colored Category Underlines** — the inline marking language; four hues, four treatments.
226
+
227
+ **Tone Detector Row** — emoji + tone pills; Grammarly's signature "how does this sound" read.
228
+
229
+ **Assistant Orb** — the rotated-G logomark in a green circle; appears in the bar, as the center tab, and as the floating keyboard-extension button.
230
+
231
+ **Weekly Insights Card** — a stat card on the Account tab: large score ring + "You were more productive than 88% of Grammarly users", productivity / mastery / vocabulary mini-rings.
232
+
233
+ **Custom Keyboard Strip** — in the Grammarly Keyboard extension: a thin strip above the keys showing the green orb + the next suggestion inline with a tap-to-accept chip.
234
+
235
+ ## 5. Layout Principles
236
+
237
+ ### Spacing System
238
+ - Base unit: 4pt
239
+ - Scale: 4, 8, 12, 16, 20, 24, 32, 40, 48, 64
240
+ - Editor horizontal inset: 20pt
241
+ - Card internal padding: 16pt
242
+ - Block / paragraph gap in editor: 16pt
243
+ - Suggestion card → assistant bar gap: 0 (card sits directly above bar)
244
+
245
+ ### Grid & Container
246
+ - iPhone: editor at 20pt horizontal insets, full-width suggestion card minus 16pt insets
247
+ - iPad: editor max-width 680pt centered, 24pt insets; suggestion card can dock to a right rail (360pt) instead of sliding from bottom
248
+ - Documents list: single-column cards, 16pt insets, 12pt gap
249
+
250
+ ### Whitespace Philosophy
251
+ - **The prose breathes**: 16pt body line-height becomes 1.65 — reading comfort outranks density
252
+ - **One thing at a time**: only one suggestion card is visible at once; the assistant walks you through serially
253
+ - **Chrome recedes**: top bar and assistant bar are the only persistent UI; everything else is the user's document
254
+ - **Cards float, prose is flat**: suggestion cards get a soft shadow; the editor surface itself has no borders or cards
255
+
256
+ ### Border Radius Scale
257
+ - Square (0pt): underlines, full-bleed dividers
258
+ - Subtle (4pt): inline Clarity highlight, small chips
259
+ - Standard (8pt): list rows, banners
260
+ - Comfortable (12pt): input fields, settings cards
261
+ - Card (16pt): suggestion card, insights card
262
+ - Large (20pt): bottom sheets, modals
263
+ - Pill (999pt): all buttons, tone pills, score-count chip
264
+ - Circle (50%): assistant orb, score ring, avatars
265
+
266
+ ## 6. Depth & Elevation
267
+
268
+ Grammarly is mostly flat — the editor has zero elevation so the prose reads like paper. Shadow is reserved for *the assistant speaking*.
269
+
270
+ | Level | Treatment | Use |
271
+ |-------|-----------|-----|
272
+ | Flat (Level 0) | No shadow | Editor surface, document text, list rows |
273
+ | Card (Level 1) | `rgba(0,0,0,0.12) 0 8px 24px` light / `rgba(0,0,0,0.5) 0 8px 24px` dark | Suggestion card, insights card |
274
+ | Bar (Level 2) | `rgba(0,0,0,0.10) 0 -2px 12px` + saturate-blur | Assistant bar, top bar on scroll |
275
+ | Sheet (Level 3) | `rgba(0,0,0,0.16) 0 -8px 32px` | Bottom sheets (share, settings, premium paywall) |
276
+ | Modal Scrim | `rgba(0,0,0,0.4)` | Dim behind paywall and confirm modals |
277
+
278
+ **Shadow Philosophy**: The suggestion card's shadow says "this is the assistant talking — it floats above your document and you can act on it or dismiss it." The editor itself never lifts. On dark mode, shadows are deepened to `0.5` opacity and floating surfaces add a 1pt `#2C2C2E` border as a secondary elevation cue, since shadow is hard to read on charcoal.
279
+
280
+ ### Motion
281
+ - **Suggestion card present**: slides up from bottom edge + fades in over 280ms ease-out (spring response 0.4, damping 0.85); the tapped span scrolls to vertical center in parallel
282
+ - **Accept**: card fades + slides down 220ms ease-in; the flagged span animates old→new text with a 200ms crossfade; a 12% green wash flashes over the corrected span and fades over 600ms; soft success haptic
283
+ - **Dismiss**: card slides down 200ms ease-in; underline removed instantly
284
+ - **Score ring fill**: arc sweeps 0 → target over 600ms ease-out on document open; on accept, arc animates from old → new value over 400ms with a soft tick haptic at completion
285
+ - **Tone pills**: fade + 4pt rise in 200ms when tone is recomputed (debounced 800ms after typing stops)
286
+ - **Assistant bar count**: number rolls (odometer) over 250ms when suggestion count changes
287
+ - **Tab switch**: cross-dissolve 200ms; the center assistant orb has a gentle 1.0→1.06→1.0 pulse when new suggestions arrive
288
+ - **Haptic feedback**: soft success on Accept, light tick on score-ring completion, light impact on card present
289
+
290
+ ## 7. Do's and Don'ts
291
+
292
+ ### Do
293
+ - Use pure white (`#FFFFFF`) light / warm charcoal (`#121212`) dark as the editor canvas — NOT off-white, NOT pure black
294
+ - Use Grammarly Green (`#15C39A` → `#11A683`) as the ONE brand accent — CTAs, score ring, orb
295
+ - Color suggestion underlines by category — red Correctness, blue Clarity, green Engagement, purple Delivery
296
+ - Slide the suggestion card up from the bottom with a soft shadow — it is the assistant speaking
297
+ - Show one suggestion card at a time and walk the user serially via the assistant bar
298
+ - Keep editor body at 16pt/400 with 1.65 line-height — reading comfort first
299
+ - Make all buttons fully rounded pills (999pt)
300
+ - Animate the score ring arc filling on open and on accept (600ms / 400ms ease-out)
301
+ - Use the tone detector (emoji + tone pills) to summarize how the writing reads
302
+ - Flash a faint green wash over a span after Accept, then fade it (600ms)
303
+ - Use Premium Gold (`#E0A82E`) only for upsell — never as a functional or primary color
304
+
305
+ ### Don't
306
+ - Don't use the four category colors (red/blue/green/purple) as buttons or CTAs — they only mark text
307
+ - Don't introduce a secondary brand color — Grammarly is monobrand green
308
+ - Don't put a card or border around the editor prose — the document is flat, only suggestion cards float
309
+ - Don't show multiple suggestion cards stacked — one at a time, serially
310
+ - Don't use pure black (`#000000`) for body text — warm near-black `#1A1A1A` light / `#E4E4E4` dark
311
+ - Don't cram the editor with a tight line-height — 1.65 is the calm reading rhythm
312
+ - Don't use rectangular (sharp-corner) buttons — every button is a pill
313
+ - Don't make the score ring jump instantly — it sweeps over 600ms
314
+ - Don't tint the active tab with a pill background — Notion-style color-only change (icon + label go green)
315
+ - Don't animate aggressively — motion is 200–600ms ease-out, calm and reassuring
316
+ - Don't surface the full card on a plain tap of unmarked text — cards appear only when a marked span is tapped or via the Review walkthrough
317
+
318
+ ## 8. Responsive Behavior
319
+
320
+ ### Device Sizes
321
+ | Device | Width | Key Changes |
322
+ |--------|-------|-------------|
323
+ | iPhone SE (3rd gen) | 375pt | Editor 16pt insets; suggestion card full-width; tone row wraps to 2 pills max |
324
+ | iPhone 13/14/15 | 390pt | Standard layout, 20pt editor insets |
325
+ | iPhone 15/16 Pro | 393pt | Dynamic Island accommodated in top bar |
326
+ | iPhone 15/16 Pro Max | 430pt | Larger editor measure; tone row shows up to 3 pills |
327
+ | iPad (portrait) | 768pt | Editor max 680pt centered; suggestion card docks to bottom OR right rail (user setting) |
328
+ | iPad (landscape) | 1024pt+ | 2-pane: documents list (320pt) + editor; suggestion card as 360pt right rail |
329
+
330
+ ### Dynamic Type
331
+ - Document heading, editor body, suggestion title, explanation: full scale
332
+ - Category tags, tone pills, score number, assistant-bar labels, tab labels: FIXED (layout-sensitive)
333
+ - Code samples: scale to XL but stay SF Mono
334
+
335
+ ### Orientation
336
+ - All screens rotate; iPad landscape promotes the documents list into a persistent sidebar
337
+ - Suggestion card relocates from bottom sheet (portrait) to right rail (landscape / iPad) so it never covers the prose being corrected
338
+
339
+ ### Touch Targets
340
+ - Accept pill: full card width, 40pt tall
341
+ - Dismiss icon button: 44pt × 40pt
342
+ - Score ring (tap to open insights): 38pt glyph, 44pt hit
343
+ - Tab bar icons: 24pt glyph, 56pt hit
344
+ - Marked span tap: span height + 8pt vertical hit padding
345
+
346
+ ### Safe Area Handling
347
+ - Top: top bar respects safe area and Dynamic Island
348
+ - Bottom: assistant bar + home indicator respected; suggestion card sits directly above the assistant bar, both above the home indicator
349
+ - Keyboard: editor scrolls above the keyboard; the suggestion card and assistant bar lift to sit above the keyboard when it is open
350
+ - Sides: 20pt editor inset (16pt on SE)
351
+
352
+ ## 9. Agent Prompt Guide
353
+
354
+ ### Quick Color Reference
355
+ - Canvas (light): `#FFFFFF`
356
+ - Canvas (dark): `#121212`
357
+ - Surface 1: `#F7F8F8` light / `#1C1C1E` dark
358
+ - Divider: `#E4E6E6` light / `#2C2C2E` dark
359
+ - Text primary: `#1A1A1A` light / `#E4E4E4` dark
360
+ - Text secondary: `#6B6B70` light / `#9A9A9F` dark
361
+ - Brand green (single accent): `#15C39A` → deep `#11A683` → pressed `#0E8A6D`
362
+ - Correctness underline: `#E5484D`
363
+ - Clarity underline/highlight: `#3B82F6`
364
+ - Engagement underline: `#16A34A`
365
+ - Delivery underline: `#8B5CF6`
366
+ - Premium gold: `#E0A82E`
367
+ - Accept-flash wash: `#15C39A1F`
368
+
369
+ ### Example Component Prompts
370
+ - "Build the Grammarly suggestion card in SwiftUI: a bottom-anchored card, `#F7F8F8` light / `#1C1C1E` dark, 16pt corner radius, 1pt divider border, shadow `rgba(0,0,0,0.12) 0 8px 24px`. Header row: 10pt category dot (Correctness `#E5484D`) + 'CORRECTNESS' in Inter 12pt w700 uppercase `#6B6B70`. Swap line: old word `#E5484D` with strikethrough, '→' `#9A9A9F`, new word `#15C39A` w600, Inter 16pt. Explanation: Inter 14pt w400 `#6B6B70`, max 2 lines. Actions: full-width green Accept pill (Inter 14pt w700, `#06281F` on `#15C39A`, 999pt radius) + 44×40 dismiss icon button. Card slides up + fades over 280ms spring, soft haptic."
371
+
372
+ - "Create the Grammarly document score ring: 38pt circle, 3pt track `#E4E6E6`, 3pt progress arc `#15C39A` sweeping clockwise from 12 o'clock, arc length = score/100. Center number Inter 13pt w700, color `#15C39A` if ≥90 else `#E0A82E` if ≥60 else `#E5484D`. On appear, animate arc 0 → score over 600ms ease-out; on accept, animate old → new value over 400ms with a light tick haptic."
373
+
374
+ - "Render Grammarly colored underlines on a text run: Correctness = 2pt solid wavy `#E5484D` underline; Clarity = 18% `#3B82F6` background fill + 2pt solid `#3B82F6` underline, 2pt corner radius; Engagement = 2pt dotted `#16A34A`; Delivery = 2pt solid `#8B5CF6`. On tap, scroll the span to vertical center, give it a faint category-tint background, and present the suggestion card from the bottom."
375
+
376
+ - "Build the Grammarly assistant bar: 64pt + safe area, `rgba(18,18,18,0.96)` dark with saturate blur, 0.5pt top border. Leading 36pt green circle `#15C39A` with white rotated-G logomark 20pt. Center: 'X suggestions' Inter 15pt w700 + subtitle '3 Correctness · 6 Clarity · 5 Engagement' Inter 11pt w600 `#9A9A9F`. Trailing small green 'Review' pill Inter 13pt w700 `#06281F`. When count is 0: title 'All clear' + check, no Review CTA. Count rolls odometer-style over 250ms on change."
377
+
378
+ - "Create the Grammarly tone detector row: leading emoji 18pt (😊/🙂/😐/😟 by sentiment), 'Tone sounds' Inter 13pt `#6B6B70`, then 1–3 tone pills. Tone pill: `#262629` bg, 1pt `#2C2C2E` border, Inter 12pt w600 `#E4E4E4`, 999pt radius, 5×12 padding. Recompute debounced 800ms after typing stops; pills fade + 4pt rise over 200ms."
379
+
380
+ - "Build the Grammarly accept interaction: on tap Accept, fade+slide the card down 220ms ease-in, crossfade the flagged span's old→new text over 200ms, flash a 12% `#15C39A` wash over the corrected span fading over 600ms, decrement the assistant-bar count with an odometer roll, advance the score ring to its new value over 400ms, fire a soft success haptic."
381
+
382
+ ### Iteration Guide
383
+ 1. Canvas is pure white light / warm charcoal `#121212` dark — NOT pure black, NOT off-white
384
+ 2. There is exactly ONE brand accent: Grammarly Green `#15C39A` (deep `#11A683`) — every CTA, the ring, the orb
385
+ 3. The four category colors (red/blue/green/purple) mark text ONLY — never buttons, never CTAs
386
+ 4. The suggestion card slides up from the bottom with a soft shadow — it is the assistant speaking
387
+ 5. Show ONE suggestion card at a time; the assistant bar walks the user through serially
388
+ 6. Editor body is 16pt/400 with 1.65 line-height — reading comfort beats density
389
+ 7. Every button is a fully rounded pill (999pt)
390
+ 8. The score ring is a thin animated 0–100 arc that fills green on open and on accept
391
+ 9. Premium Gold `#E0A82E` is upsell-only — never functional, never primary
392
+ 10. Motion is calm: 200–600ms ease-out, soft haptics, an odometer count, a green accept-flash that fades