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,441 @@
1
+ # Design System Inspiration of Gmail (iOS)
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ Gmail's iOS app is a Material You inbox that inherits Google's multicolor brand DNA while staying clean enough to spend all day in. The canvas is pure white (`#FFFFFF`) on light mode — the screen feels like paper, deliberately unbranded, so the *contents* of your inbox (subjects, snippets, labels) carry the visual information. The only structural saturation comes from the Gmail red (`#D93025`) reserved almost exclusively for the Compose FAB (the floating plus button bottom-right), the Gmail logotype, and destructive states like "Delete forever". Outside of that single red accent, the UI leans on Google's 4-color palette — Red `#EA4335`, Yellow `#FBBC04`, Green `#34A853`, Blue `#4285F4` — applied sparingly on category chips, avatar fallbacks, and Smart Reply affordances.
6
+
7
+ The identity-defining moment is the **Compose FAB** — a red squircle-ish rounded square floating in the bottom-right corner, filled with a white `+` (and the word "Compose" on tablet widths). It sits above the email list, casts a soft Material shadow, and lifts on scroll to stay in reach. Gmail's history as a mobile-first rewrite of webmail shows here: the compose action is the most important verb in the app, and the FAB guarantees it's always one tap away. Every other interaction (swipe to archive, tap to open, pinch to zoom) is touch-native and treats the email list as a dense scrolling surface rather than a designed page.
8
+
9
+ Typography is a two-family stack: **Google Sans** for titles and buttons (proprietary; the geometric humanist sans used on google.com, Android, Pixel devices) and **Roboto** for body and metadata (also proprietary to Google, optimized for on-screen legibility at small sizes). On iOS, Gmail falls back to SF Pro when Google Sans isn't bundled, keeping the system-native feel. Hierarchy is compact: email-list subject lines at 14pt weight 500, snippets at 13pt weight 400 in gray, sender names at 14pt weight 500 (bold if unread). The expressive type moment is the inbox section header ("Today", "Yesterday", "This week"), which appears in Google Sans 13pt weight 500 uppercase tracked, acting as a temporal ruler through the day's mail.
10
+
11
+ **Key Characteristics:**
12
+ - Pure white canvas (`#FFFFFF`) light / near-black (`#202124`) dark — unbranded surface, content-first
13
+ - Gmail red (`#D93025`) reserved for the Compose FAB and destructive actions — everything else is calm
14
+ - Material You influenced: soft shadows, rounded squircle icons, floating action button as primary CTA
15
+ - Google 4-color palette (`#EA4335` red, `#FBBC04` yellow, `#34A853` green, `#4285F4` blue) applied to avatars, labels, Smart Reply chips
16
+ - Email list rows with 36pt circular avatars — color-coded by sender, show initial or photo
17
+ - Unread state = bold sender + bold subject + vertical inbox indicator stripe
18
+ - Swipe actions: archive (left, light teal), delete (right, red) — customizable by user
19
+ - Label chips in user-picked colors, 500pt pill radius, Google Sans
20
+ - Bottom tab bar: Mail, Chat, Spaces, Meet — Chat/Spaces/Meet optional per user
21
+ - Smart Reply — 3 auto-generated chip suggestions above the keyboard in thread view
22
+ - Thread view: collapsible quoted replies, in-thread inline compose at bottom
23
+
24
+ ## 2. Color Palette & Roles
25
+
26
+ ### Primary
27
+ - **Gmail Red** (`#D93025`): The Compose FAB, destructive "Delete forever" actions, error toast backgrounds, the Gmail "M" logo accent.
28
+ - **Gmail Red Pressed** (`#B3261E`): Pressed state for the Compose FAB.
29
+ - **Gmail Red Subtle** (`#FCE8E6`): Selected/hover tint for destructive rows (appears on "Delete" confirmation dialogs).
30
+
31
+ ### Google Brand Palette (Applied to Chips, Labels, Avatars)
32
+ - **Google Red** (`#EA4335`): Category "Primary" indicator, avatar fallback for senders whose name starts A-F.
33
+ - **Google Yellow** (`#FBBC04`): Starred emails, "Important" marker, avatar fallback G-L.
34
+ - **Google Green** (`#34A853`): "Verified sender" check, avatar fallback M-R.
35
+ - **Google Blue** (`#4285F4`): Link color, Meet-integration chips, avatar fallback S-Z.
36
+
37
+ ### Canvas & Surfaces
38
+ - **Canvas Light** (`#FFFFFF`): Primary light canvas — email list, thread view background.
39
+ - **Surface Light** (`#F6F8FC`): Section card backgrounds, quoted reply blocks, tonal buttons.
40
+ - **Surface Elevated Light** (`#FFFFFFF`): Hovered rows fall to `#F1F3F4` — very subtle.
41
+ - **Surface Pressed Light** (`#F1F3F4`): Tonal-button pressed, row pressed.
42
+ - **Divider Light** (`#DADCE0`): Hairline dividers between email rows on thread view; omitted in inbox list (rows separated by whitespace only).
43
+
44
+ ### Text
45
+ - **Text Primary Light** (`#202124`): Primary body — sender names, subjects, body copy.
46
+ - **Text Secondary Light** (`#5F6368`): Snippets, timestamps, metadata, secondary UI.
47
+ - **Text Disabled Light** (`#9AA0A6`): Placeholder, disabled state, low-emphasis labels.
48
+ - **Text Link** (`#1A73E8`): Blue hyperlinks in email body — slightly deeper blue than Google Blue.
49
+
50
+ ### Dark Mode
51
+ - **Dark Canvas** (`#202124`): Primary dark background — a near-black charcoal (Google's dark-mode standard, NOT pure `#000`).
52
+ - **Dark Surface 1** (`#28292C`): Elevated surfaces, tonal button backgrounds.
53
+ - **Dark Surface 2** (`#303134`): Higher elevation — quoted blocks, sheets, modals.
54
+ - **Dark Divider** (`#3C4043`): Hairline dividers.
55
+ - **Dark Text Primary** (`#E8EAED`): Body text.
56
+ - **Dark Text Secondary** (`#BDC1C6`): Metadata, timestamps.
57
+ - **Dark Text Disabled** (`#9AA0A6`): Placeholder.
58
+ - **Dark Gmail Red** (`#F28B82`): Compose FAB shifts to lighter red on dark for contrast — Google's established dark-mode red.
59
+
60
+ ### Semantic
61
+ - **Unread Indicator** (`#D93025`): The 4pt vertical red stripe at the left of an unread email row (only on "Important" or styled variants; default unread is bold text only).
62
+ - **Selected Row** (`#E8F0FE`): Row highlight when multi-selected for bulk action.
63
+ - **Label Chips**: User-defined — rendered as filled pills with user-picked hex + auto-contrast text (Google's picker offers 24 preset hues).
64
+ - **Starred Yellow** (`#F5BA18`): Star-fill color when user stars an email.
65
+ - **Snooze Purple** (`#A142F4`): Snooze button accent color.
66
+ - **Archive Teal** (`#1E8E3E` or user-picked): Left-swipe archive action color (default green-teal).
67
+
68
+ ## 3. Typography Rules
69
+
70
+ ### Font Family
71
+ - **Display / Titles / Buttons**: `Google Sans` (proprietary, by Google) — geometric humanist sans with open apertures and warm curves. The logo face and all nav/button type.
72
+ - **Body / UI**: `Roboto` (proprietary, by Google; available free under Apache 2.0 for web) — neutral grotesque optimized for screen at small sizes. All email body, metadata, list rows.
73
+ - **Fallback Stack**: `-apple-system, BlinkMacSystemFont, 'SF Pro Text', 'SF Pro Display', 'Segoe UI', Helvetica, Arial, sans-serif`
74
+ - **Monospace (code in emails)**: `Roboto Mono`
75
+ - **Non-Latin**: Gmail ships Noto family localizations per script
76
+
77
+ ### Hierarchy
78
+
79
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
80
+ |------|------|------|--------|-------------|----------------|-------|
81
+ | Screen Title (Large) | Google Sans | 28pt | 400 | 1.2 | 0pt | "Inbox", "Starred" nav large title |
82
+ | Screen Title (Compact) | Google Sans | 20pt | 500 | 1.2 | 0.15pt | Compressed title when scrolled |
83
+ | Section Header | Google Sans | 13pt | 500 | 1.2 | 0.8pt | "Today", "Yesterday", "This week" — uppercase tracked |
84
+ | Email Subject (Unread) | Google Sans | 14pt | 500 | 1.3 | 0pt | Bold when unread, Roboto regular when read |
85
+ | Email Sender (Unread) | Google Sans | 14pt | 500 | 1.2 | 0pt | Bold for unread |
86
+ | Email Sender (Read) | Roboto | 14pt | 400 | 1.2 | 0pt | Regular for read |
87
+ | Email Snippet | Roboto | 13pt | 400 | 1.3 | 0pt | 1-line clamp with ellipsis |
88
+ | Thread Subject | Google Sans | 22pt | 400 | 1.25 | 0pt | Thread view hero title |
89
+ | Thread Body | Roboto | 15pt | 400 | 1.5 | 0pt | Email body in thread |
90
+ | Button (FAB) | Google Sans | 16pt | 500 | 1.0 | 0.1pt | Compose FAB label (on tablet widths) |
91
+ | Button (Tonal) | Google Sans | 14pt | 500 | 1.0 | 0.1pt | "Reply", "Reply all", "Forward" |
92
+ | Smart Reply Chip | Google Sans | 14pt | 500 | 1.0 | 0pt | Auto-suggestion chips |
93
+ | Label Chip | Google Sans | 12pt | 500 | 1.0 | 0.2pt | User label pills |
94
+ | Timestamp | Roboto | 13pt | 400 | 1.2 | 0pt | Right-aligned time in row |
95
+ | Tab Label | Google Sans | 12pt | 500 | 1.0 | 0.1pt | Bottom tab labels |
96
+ | Meta / Microcopy | Roboto | 12pt | 400 | 1.3 | 0pt | "3 of 1,234", "From: Sarah" |
97
+
98
+ ### Principles
99
+ - **Two families, clear division**: Google Sans carries emotion and structure (titles, buttons, section headers, labels); Roboto carries information (email body, snippets, metadata). Never mix them within a single text block.
100
+ - **Unread = weight change**: Bold sender + bold subject when unread; regular weight when read. The weight is the dominant unread signal, NOT color change.
101
+ - **Weight concentrated at 400 / 500 / 700**: Roboto Regular, Google Sans Medium for emphasis, Bold only for Smart Compose highlights.
102
+ - **Dynamic Type first-class**: Body, subjects, and snippets scale; section headers, tab labels, timestamps stay fixed.
103
+ - **Section headers tracked**: "TODAY", "YESTERDAY" at 0.8pt letter-spacing — gives the temporal ruler a calendar-like signal.
104
+
105
+ ## 4. Component Stylings
106
+
107
+ ### Buttons
108
+
109
+ **Compose FAB (The Gmail Red Button)**
110
+ The single most recognizable Gmail component. A floating red square with a white plus icon.
111
+ - Shape: Rounded square, 16pt corner radius (Material You squircle feel, not a pure circle)
112
+ - Size: 56pt × 56pt on iPhone; extended to 96pt × 56pt with "Compose" label visible on tablet widths and in landscape
113
+ - Background: `#D93025` (Gmail red)
114
+ - Icon: SF Symbol `pencil` or `square.and.pencil` 24pt in white
115
+ - Position: fixed bottom-right, 16pt from right edge, 16pt above tab bar (or above safe area on non-tab screens)
116
+ - Shadow: `rgba(0,0,0,0.2) 0 4px 12px`
117
+ - Pressed: background `#B3261E`, scale 0.96, medium haptic
118
+ - Scroll behavior: on downward scroll, FAB shrinks to icon-only (56×56), re-expands on scroll-up
119
+ - Used only for: creating a new email
120
+
121
+ **Tonal Button (Reply / Reply All / Forward)**
122
+ - Shape: Pill, 500pt corner radius
123
+ - Background: `#F6F8FC` (Surface Light) in light, `#28292C` in dark
124
+ - Text: `#1A73E8` (link blue) — this is the one place link blue appears as button text
125
+ - Padding: 10pt vertical, 24pt horizontal
126
+ - Font: Google Sans, 14pt, weight 500
127
+ - Pressed: background `#E1E5EA` + scale 0.98
128
+ - Leading SF Symbol: `arrowshape.turn.up.left` (Reply), `arrowshape.turn.up.left.2` (Reply all), `arrowshape.turn.up.right` (Forward) — 18pt
129
+
130
+ **Icon Button (Archive / Delete / Mark Unread)**
131
+ - 40pt circular hit area, 24pt SF Symbol
132
+ - Default color: `#5F6368` (Text Secondary)
133
+ - Pressed: 36pt circle background in `#F1F3F4` appears underneath on tap
134
+ - Icons: `archivebox` (archive), `trash` (delete), `envelope.badge` (mark unread), `star` / `star.fill` (star)
135
+
136
+ **Smart Reply Chip**
137
+ - Shape: Pill, 500pt corner radius, 1pt outline `#DADCE0`
138
+ - Background: transparent (or `#F6F8FC` on tablet)
139
+ - Text: `#1A73E8` (link blue)
140
+ - Padding: 10pt vertical, 16pt horizontal
141
+ - Font: Google Sans, 14pt, weight 500
142
+ - Displayed in a horizontal scrolling row above the keyboard in thread view
143
+ - Tap: inserts suggestion as reply text and focuses compose box
144
+
145
+ ### Cards & Containers
146
+
147
+ **Email List Row (Primary inbox row)**
148
+ - Height: 72pt (fixed)
149
+ - Background: `#FFFFFF` (or `#F1F3F4` when selected for bulk)
150
+ - Padding: 16pt horizontal
151
+ - Structure (leading to trailing):
152
+ 1. Leading: 36pt circular avatar — photo or initial on colored fallback background
153
+ 2. 12pt gap, then text column (flex)
154
+ - Top line: Sender name (14pt w500 Google Sans if unread, w400 Roboto if read)
155
+ - Bottom line: Subject (14pt, same weight as sender) + " — " + Snippet (13pt w400 `#5F6368`) wrapped in single line with ellipsis overflow
156
+ 3. Trailing: timestamp (13pt `#5F6368`), 2pt gap, Star icon (24pt)
157
+ 4. Unread indicator: if unread, sender + subject bold; optional 3pt `#D93025` vertical bar at leading edge of row (user-configurable "Important markers")
158
+ - Swipe left: reveals archive action pane (teal `#1E8E3E` background + archive icon)
159
+ - Swipe right: reveals delete action pane (red `#D93025` background + trash icon)
160
+ - Tap: opens thread view
161
+ - Press-hold: multi-select mode — avatar transforms to checkmark, row shows `#E8F0FE` selected state
162
+
163
+ **Email Avatar**
164
+ - 36pt circle
165
+ - Photo if available (remote image with placeholder)
166
+ - Fallback: initial letter in white, 16pt Google Sans 500, over colored circle (Google Red/Yellow/Green/Blue based on hash of sender email)
167
+
168
+ **Thread View Header**
169
+ - Height: 120pt (variable, grows with subject length)
170
+ - Background: `#FFFFFF`
171
+ - Subject: 22pt w400 Google Sans, 2-line clamp
172
+ - Below: Label chip row (user labels applied to thread) — horizontal scroll
173
+ - Star icon trailing
174
+
175
+ **Thread Email Card (expanded)**
176
+ - Background: `#FFFFFF`
177
+ - Top: sender avatar + name/email + timestamp + "to me" expand row
178
+ - Body: full email content, 15pt Roboto regular, with inline images and inline replies
179
+ - Bottom: Reply / Reply all / Forward tonal buttons row
180
+ - Collapsed (previous emails in thread): shows just sender + date on one 56pt row, ellipsis icon to expand
181
+
182
+ **Quoted Reply Block**
183
+ - Background: `#F6F8FC` (Surface Light)
184
+ - Left border: 3pt `#DADCE0` solid
185
+ - Padding: 12pt
186
+ - Font: Roboto 14pt w400 `#5F6368` (slightly darker on dark mode)
187
+ - Collapsed by default with "..." toggle at top to expand
188
+
189
+ **Label Chip (applied to thread)**
190
+ - Background: user-picked hex with 10% opacity
191
+ - Border: 1pt user hex
192
+ - Text: user hex
193
+ - Padding: 4pt vertical, 10pt horizontal
194
+ - Font: Google Sans 12pt w500
195
+ - Corner radius: 500pt (pill)
196
+
197
+ ### Navigation
198
+
199
+ **Bottom Tab Bar**
200
+ - Height: 56pt + safe area
201
+ - Background: `#FFFFFF` (light) / `#202124` (dark) with 0.5pt top border `#DADCE0` / `#3C4043`
202
+ - Tabs (2 default, up to 4 configurable): Mail, Chat, Spaces, Meet
203
+ - Icon size: 24pt
204
+ - Active tab: icon fills with `#1A73E8` (link blue) + `#E8F0FE` pill background tint behind icon (56pt wide × 32pt tall, 500pt radius) — Material You active-indicator treatment
205
+ - Inactive: icon `#5F6368`
206
+ - Labels: Google Sans 12pt w500 below icon (`#1A73E8` when active, `#5F6368` when inactive)
207
+
208
+ **Top Nav (Inbox)**
209
+ - Height: 56pt + safe area (collapses from 120pt when large-title is scrolled)
210
+ - Leading: menu hamburger icon (24pt `#202124`) — opens the left drawer with Inbox / Starred / Snoozed / Sent / Drafts / All Mail / Spam / Trash / Labels list
211
+ - Center: search bar (40pt tall, `#F6F8FC` fill, 500pt radius, leading magnifyingglass 18pt, placeholder "Search in mail" 14pt w400 `#5F6368`)
212
+ - Trailing: profile avatar 28pt (tap opens Google account switcher sheet)
213
+
214
+ **Top Nav (Thread)**
215
+ - Height: 56pt + safe area
216
+ - Leading: back chevron 24pt `#5F6368`
217
+ - Trailing action row: archive icon, trash icon, mark-unread icon, snooze icon, ellipsis — all 24pt, 40pt hit, 8pt gap
218
+
219
+ **Left Drawer (Mailboxes)**
220
+ - Full-height sheet sliding in from left, 320pt wide (or 80% screen width on small devices)
221
+ - Background: `#FFFFFF`
222
+ - Header: large Gmail logo + account avatar + email address
223
+ - Mailbox rows: 52pt tall, leading icon (24pt) + label (Roboto 14pt w400) + trailing unread count badge (red circle with white count for urgent, gray for standard)
224
+ - Active mailbox: filled icon + `#E8F0FE` row background
225
+
226
+ ### Input Fields
227
+
228
+ **Search Bar (Top Nav)**
229
+ - Height: 40pt
230
+ - Background: `#F6F8FC` (Surface Light)
231
+ - Corner radius: 500pt (pill)
232
+ - Leading icon `magnifyingglass` 18pt `#5F6368`
233
+ - Placeholder "Search in mail" 14pt w400 `#5F6368`
234
+ - Focus: expand to full-width overlay with cancel button; search chips appear below (From:, To:, Has attachment, etc.)
235
+
236
+ **Compose Subject Field**
237
+ - Height: 48pt
238
+ - Background: `#FFFFFF`
239
+ - Border bottom: 1pt `#DADCE0`, 2pt `#1A73E8` on focus
240
+ - Placeholder: "Subject" 16pt w400 `#5F6368`
241
+
242
+ **Compose Body**
243
+ - Multi-line auto-growing text area
244
+ - Background: `#FFFFFF`
245
+ - Font: Roboto 15pt w400 `#202124`
246
+ - Placeholder: "Compose email"
247
+ - Smart Compose (gray ghost-text prediction): 15pt w400 `#9AA0A6` that appears inline as you type; tab/swipe right to accept
248
+
249
+ ### Distinctive Components
250
+
251
+ **Compose FAB**
252
+ Red squircle (56×56, 16pt radius) bottom-right with white pencil icon. The signature element. Shrinks to icon-only on scroll-down, expands back on scroll-up. This is THE Gmail.
253
+
254
+ **Swipe Actions (Archive / Delete)**
255
+ - Left swipe on email row: row slides left revealing a teal `#1E8E3E` archive pane with white `archivebox` icon; full swipe archives, partial swipe confirms with the action label visible
256
+ - Right swipe: red `#D93025` delete pane with `trash` icon
257
+ - User can customize left/right actions (Archive, Delete, Mark as read, Move, Snooze) in Settings
258
+
259
+ **Smart Reply**
260
+ - In thread view above keyboard, a horizontal row of 3 chip-suggestions auto-generated by ML
261
+ - Each chip is a Smart Reply Chip (see above)
262
+ - Tap: inserts text into compose field, sends automatically after brief edit-window or on confirmation
263
+
264
+ **Star (Email Marker)**
265
+ - SF Symbol `star` (outline) → `star.fill` filled yellow `#F5BA18` when starred
266
+ - 24pt glyph, trailing position in email list rows and thread view
267
+ - Tap: toggle state + soft haptic
268
+
269
+ **Smart Compose (Inline Prediction)**
270
+ - While composing, gray ghost text appears after cursor: "Thanks for reaching out." ghost-gray `#9AA0A6`
271
+ - Accept: tab key or swipe-right on iOS
272
+ - Dismiss: keep typing, the ghost disappears
273
+
274
+ **Account Switcher Sheet**
275
+ - Tap profile avatar in top nav → opens bottom sheet showing all Google accounts
276
+ - Each row: large avatar 40pt + name + email address + "Manage your Google Account" link
277
+ - Trailing action: "Add another account", "Sign out of all accounts"
278
+
279
+ **Label Color Picker (when labeling thread)**
280
+ - Bottom sheet with 24 preset color swatches in a 6-column grid, 40pt circles, 8pt gap
281
+ - Selected swatch gets white check icon overlay
282
+ - Below: "Create new label" text input
283
+
284
+ ## 5. Layout Principles
285
+
286
+ ### Spacing System
287
+ - Base unit: 4pt
288
+ - Scale: 4, 8, 12, 16, 20, 24, 32, 40, 48, 56, 72, 96
289
+ - Email row: 16pt horizontal insets, 72pt fixed height
290
+ - Section gap: 24pt between inbox section headers
291
+ - Sheet internal padding: 16pt horizontal, 20pt vertical
292
+
293
+ ### Grid & Container
294
+ - iPhone: full-width email rows (0pt horizontal margin), 16pt internal row padding
295
+ - iPad: 2-column split-view (left: mailbox list + inbox, right: thread view), edge gap 24pt
296
+ - Compose sheet: modal from bottom, 88% screen height
297
+ - Settings list: standard iOS grouped list with 16pt section insets
298
+
299
+ ### Whitespace Philosophy
300
+ - **Dense inbox rows**: 72pt per row packs roughly 10 emails per viewport — browsing speed prioritized
301
+ - **Breathable thread view**: 24pt vertical padding around email body; quoted replies collapsed to save vertical space
302
+ - **FAB breathing room**: 16pt from right edge, 16pt above tab bar — never crowded into corner
303
+ - **Compose is spacious**: the subject and body get full screen width with 16pt insets, no chrome competing
304
+
305
+ ### Border Radius Scale
306
+ - Square (0pt): Inbox row (full-bleed), email avatars-fallback-background is circle
307
+ - Soft (4pt): Inline attachment tiles inside email body
308
+ - Icon Squircle (8pt): Category tab indicators, small chips
309
+ - FAB Squircle (16pt): Compose FAB corner radius — Material You signature
310
+ - Comfortable (20pt): Bottom sheets, context menu cards
311
+ - Pill (500pt): All buttons (tonal, Smart Reply, tab active indicator), label chips
312
+ - Circle (50%): Avatars, icon button backgrounds on tap
313
+
314
+ ## 6. Depth & Elevation
315
+
316
+ Gmail follows Material Design elevation — shadows are soft, layered, and communicate z-axis hierarchy.
317
+
318
+ | Level | Treatment | Use |
319
+ |-------|-----------|-----|
320
+ | Flat (Level 0) | No shadow | Email list rows, thread body, drawer rows |
321
+ | Level 1 | `rgba(0,0,0,0.05) 0 1px 2px` + `rgba(0,0,0,0.1) 0 1px 3px 1px` | Elevated cards, top nav when scrolled |
322
+ | Level 2 | `rgba(0,0,0,0.1) 0 1px 2px` + `rgba(0,0,0,0.15) 0 2px 6px 2px` | Snooze / label picker sheets |
323
+ | Level 3 | `rgba(0,0,0,0.1) 0 4px 8px 3px` + `rgba(0,0,0,0.15) 0 1px 3px` | Compose FAB, floating menus |
324
+ | Level 4 | `rgba(0,0,0,0.1) 0 6px 10px 4px` + `rgba(0,0,0,0.15) 0 2px 3px` | Modal dialogs, full-screen sheets |
325
+ | Scrim | `rgba(0,0,0,0.32)` | Behind drawer and modal sheets |
326
+
327
+ **Shadow Philosophy**: Gmail's shadows are layered (two shadows per elevation — a crisp close shadow + a softer distant one) to mimic Material's physically-based depth model. The FAB uses Level 3 so it always feels "lifted" above the inbox surface. Dark mode slightly reduces shadow opacity (from `0.15` to `0.3` on the distant shadow) because pure black-on-black shadows are invisible; Material switches to a subtle surface-tint instead.
328
+
329
+ ### Motion
330
+ - **FAB tap**: scale 0.96 → 1.0 spring 300ms damping 0.7 + `.impactOccurred(.medium)` haptic
331
+ - **FAB scroll behavior**: on downscroll, width animates from 120pt → 56pt in 200ms ease-out; on upscroll, reverses
332
+ - **Swipe action**: 60fps pan gesture; threshold of 40% screen width commits the action; under 40% snaps back with 250ms spring
333
+ - **Row tap to thread**: row stays in place; thread view slides in from right over 300ms ease-out; no shared-element transition
334
+ - **Star tap**: icon swaps state + scale 1.0 → 1.2 → 1.0 spring 300ms + `.impactOccurred(.light)`
335
+ - **Archive completion**: archived row collapses vertically (height 72 → 0) over 300ms ease-in-out, adjacent rows shift up
336
+ - **Smart Reply chip tap**: chip ripple animates + text fades into compose box over 200ms
337
+ - **Pull-to-refresh**: Gmail "M" logo in red swirls as circular progress indicator
338
+
339
+ ## 7. Do's and Don'ts
340
+
341
+ ### Do
342
+ - Use pure white (`#FFFFFF`) as the light canvas — content is the color, not the chrome
343
+ - Position the Compose FAB bottom-right at 16pt from edges — never inline, never centered
344
+ - Use Gmail red (`#D93025`) ONLY for the Compose FAB and destructive actions — it's sacred
345
+ - Apply the Google 4-color palette to avatars, category chips, Smart Reply chips — never to structural UI
346
+ - Use Google Sans for titles/buttons, Roboto for body/metadata — don't mix within a block
347
+ - Make unread state bold weight on sender + subject — color-change alone is insufficient
348
+ - Implement left-swipe archive, right-swipe delete — with user-configurable actions in Settings
349
+ - Show Smart Reply chips above keyboard in thread view — Google's ML affordance
350
+ - Layer shadows (close + distant) following Material elevation model
351
+ - Use the 16pt corner radius squircle shape on the FAB — Material You signature
352
+
353
+ ### Don't
354
+ - Don't use pure black `#000000` on dark mode — use `#202124` (Google's standard)
355
+ - Don't color the inbox chrome — the FAB is the only chromatic element; everything else is grayscale
356
+ - Don't use circles for the Compose FAB — it's a 16pt squircle, not a pure circle
357
+ - Don't show red anywhere outside of destructive actions and the FAB
358
+ - Don't mix Google Sans and Roboto in the same text block — clear division
359
+ - Don't add drop-shadows to inbox rows — they're flat; separation is whitespace only
360
+ - Don't use bold weight liberally — it's the unread signal and must stay meaningful
361
+ - Don't hide the Compose FAB — even on scroll, it shrinks to icon-only but stays visible
362
+ - Don't use true-gold for starred (`#F5BA18` is the correct Gmail yellow for stars, not `#FFD700`)
363
+ - Don't treat the bottom tabs as always-visible — user can hide Chat/Spaces/Meet entirely
364
+
365
+ ## 8. Responsive Behavior
366
+
367
+ ### Device Sizes
368
+ | Device | Width | Key Changes |
369
+ |--------|-------|-------------|
370
+ | iPhone SE (3rd gen) | 375pt | Inbox row clamps to 2-line sender+snippet overflow; tab bar labels may hide |
371
+ | iPhone 13/14/15 | 390pt | Standard 72pt rows, 56pt FAB |
372
+ | iPhone 15/16 Pro | 393pt | Dynamic Island accommodated in top nav |
373
+ | iPhone 15/16 Pro Max | 430pt | FAB expands to Extended 96×56pt with "Compose" text visible |
374
+ | iPad | 768pt+ | Split view: mailbox list (left 320pt), inbox (center ~350pt), thread (right flex). FAB extended with "Compose" label. |
375
+
376
+ ### Dynamic Type
377
+ - Email body, subjects, snippets, thread content: full scale
378
+ - Section headers, timestamps, tab labels, Smart Reply chips, label chips: FIXED (layout-sensitive)
379
+ - FAB icon: fixed size, FAB width adjusts
380
+
381
+ ### Orientation
382
+ - iPhone inbox: portrait-preferred, rotates to landscape with same row layout
383
+ - Thread view: fully rotates
384
+ - iPad: fully rotates with split-view layout adjusting
385
+
386
+ ### Touch Targets
387
+ - Compose FAB: 56pt — impossible to miss
388
+ - Email row: 72pt full-row tap
389
+ - Icon buttons in top nav: 24pt glyph, 40pt hit
390
+ - Tab bar: 24pt icon, 56pt effective
391
+ - Star toggle: 24pt icon, 44pt hit
392
+
393
+ ### Safe Area Handling
394
+ - Top: top nav respects safe area and Dynamic Island
395
+ - Bottom: tab bar + home indicator respected; FAB floats above tab bar with 16pt clearance
396
+ - Compose keyboard: body area adjusts with `keyboardAvoidingView`, FAB hidden when compose sheet presented
397
+ - Sides: 16pt content inset on non-inbox screens; inbox is full-bleed
398
+
399
+ ## 9. Agent Prompt Guide
400
+
401
+ ### Quick Color Reference
402
+ - Canvas (light): `#FFFFFF`
403
+ - Canvas (dark): `#202124`
404
+ - Surface 1 (light): `#F6F8FC`
405
+ - Divider: `#DADCE0`
406
+ - Text primary: `#202124` light / `#E8EAED` dark
407
+ - Text secondary: `#5F6368` light / `#BDC1C6` dark
408
+ - Link blue: `#1A73E8`
409
+ - Gmail red (FAB): `#D93025`
410
+ - Gmail red pressed: `#B3261E`
411
+ - Google Red (brand): `#EA4335`
412
+ - Google Yellow: `#FBBC04`
413
+ - Google Green: `#34A853`
414
+ - Google Blue: `#4285F4`
415
+ - Starred yellow: `#F5BA18`
416
+ - Archive teal: `#1E8E3E`
417
+
418
+ ### Example Component Prompts
419
+ - "Create the Gmail Compose FAB in SwiftUI: 56pt × 56pt rounded square with 16pt corner radius, `#D93025` background, white `square.and.pencil` SF Symbol at 24pt centered, shadow `rgba(0,0,0,0.2) 0 4px 12px`. Position: fixed bottom-right, 16pt inset from edges, 16pt above safe-area/tab-bar. Pressed: background `#B3261E`, scale 0.96, medium haptic. On tablet widths: expand to 96×56pt with 'Compose' label in Google Sans 16pt weight 500 white."
420
+
421
+ - "Build a Gmail email list row: 72pt tall, `#FFFFFF` background, 16pt horizontal padding. Leading: 36pt circular avatar (colored fallback with white initial in Google Sans 16pt w500 — color chosen by hash of sender email from Google Red/Yellow/Green/Blue). 12pt gap, then text column: sender name 14pt Google Sans w500 (bold if unread, regular Roboto if read) — then below it subject + ' — ' + snippet in 13pt Roboto w400 `#5F6368` (clamp 1 line). Trailing: timestamp 13pt `#5F6368`, 8pt gap, star icon (outline `#5F6368` or fill `#F5BA18` if starred). Left swipe reveals teal `#1E8E3E` archive pane; right swipe reveals red `#D93025` delete pane."
422
+
423
+ - "Design the Gmail bottom tab bar: 56pt + safe area, `#FFFFFF` / `#202124` dark, 0.5pt top border `#DADCE0`. 4 tabs: Mail (envelope), Chat (bubble.left), Spaces (person.3), Meet (video). Active tab: icon tinted `#1A73E8` with `#E8F0FE` pill background (56pt × 32pt, 500pt radius) behind the icon — Material You active-indicator. Inactive icon `#5F6368`. Labels below icons in Google Sans 12pt w500 matching tint."
424
+
425
+ - "Render the Gmail thread view: top nav with back chevron + archive/trash/mark-unread/snooze/ellipsis icon row. Subject in Google Sans 22pt w400 `#202124`, 2-line clamp. Below: label chips row. Then email card: sender avatar (36pt) + name + email + timestamp + 'to me' expand, followed by email body in Roboto 15pt w400 line-height 1.5. Quoted replies in `#F6F8FC` block with 3pt `#DADCE0` left border, collapsed by default with '...' toggle. Bottom: tonal buttons Reply / Reply all / Forward — pill shape, `#F6F8FC` bg, `#1A73E8` text, leading SF Symbol arrow."
426
+
427
+ - "Build the Gmail Smart Reply row: horizontal scrolling row of 3 pill chips above the keyboard in thread view. Each chip: 500pt radius, 1pt `#DADCE0` border, transparent background, `#1A73E8` text in Google Sans 14pt w500, 10pt vertical + 16pt horizontal padding. Tap: inserts suggestion into compose text field + soft haptic. Space between chips: 8pt."
428
+
429
+ - "Create a Gmail label chip: pill shape 500pt radius, user-picked hex at 10% opacity fill, 1pt border at full hex, text at full hex in Google Sans 12pt w500, 4pt vertical + 10pt horizontal padding. Applied inline below thread subject (horizontal scrolling row). Tap: opens label management sheet."
430
+
431
+ ### Iteration Guide
432
+ 1. Canvas is pure white `#FFFFFF` in light, charcoal `#202124` in dark — NOT true black, NOT pure off-white
433
+ 2. Gmail red `#D93025` is reserved for the Compose FAB and destructive actions — nothing else
434
+ 3. The Compose FAB is a 16pt corner-radius squircle (Material You), NOT a circle — bottom-right, 56×56
435
+ 4. Google Sans for titles + buttons + labels; Roboto for body + metadata — never mix within a block
436
+ 5. Unread state = bold weight change (Google Sans on sender + subject), NOT color alone
437
+ 6. Inbox rows are flat — no shadow; separation is whitespace between rows
438
+ 7. Shadows are layered (close + distant) per Material elevation model — FAB at Level 3
439
+ 8. Swipe left archive (teal `#1E8E3E`), swipe right delete (red `#D93025`) — user-configurable
440
+ 9. Smart Reply chips are `#1A73E8` text on transparent outline pill — above keyboard in thread
441
+ 10. Tab bar active indicator is a `#E8F0FE` pill background behind the icon — Material You signature