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,474 @@
1
+ # Design System Inspiration of Slack (iOS)
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ Slack's iOS app is defined by a single unmistakable color: **Slack Aubergine** (`#4A154B`), the deep wine-purple of the default left sidebar. That aubergine is the app's visual anchor — it's the first thing you see when you open Slack on mobile (a screen-filling aubergine pane if the sidebar is open), and it's the color that distinguishes Slack from every other messaging app. The 2019 rebrand simplified Slack's earlier rainbow logo into a more restrained four-color pinwheel (yellow, pink, green, blue), but internally the aubergine remains the workspace's "home" color and is carried over into the brand's custom typography. Critically, workspaces can customize this sidebar color in Preferences — a fuchsia workspace, a blue workspace, a monochrome black workspace — so the aubergine is the *default*, not a hardcoded brand.
6
+
7
+ The content surfaces outside the sidebar are clean white (`#FFFFFF`) in light mode or a near-black canvas (`#1A1D21`) in dark mode, giving Slack a two-zone visual structure: the saturated workspace sidebar on one side, the neutral conversation canvas on the other. Channel names (`#design`, `#general`) appear in the sidebar in a muted lavender-white (`#CFC3CF`) with full-white on the active channel. Unread channels get the bold treatment — channel name shifts to `#FFFFFF` bold, and a small count badge (for direct mentions) appears in bright red (`#E01E5A`, another Slack signature hue).
8
+
9
+ Messages are typographic and chunky — Slack uses **Slack Lato** (a proprietary face that evolved from Lato → Larsseit → today's Slack Lato / "Slack Sans" custom cut). Usernames appear in bold 15pt just above the message body, with timestamp in 12pt muted gray beside them. Messages breathe — generous vertical padding between turns, and generous internal 16pt side padding. Emoji reactions appear as inline chips below the message with emoji + count + blue outline when the current user has reacted. Threaded replies live in a pane that slides in from the right (or takes over the full screen on iPhone) — threads are as important as the main channel in Slack's model.
10
+
11
+ **Key Characteristics:**
12
+ - Slack Aubergine (`#4A154B`) as the signature sidebar color — workspace-customizable
13
+ - Two-zone layout: saturated workspace sidebar + clean content canvas
14
+ - 4-color brand pinwheel (yellow, pink, green, blue) — appears in the Slack logo and Huddle banners, rarely in UI chrome
15
+ - Unread channels: bold white + optional red mention badge (`#E01E5A`)
16
+ - Emoji reactions as inline pill chips below every message — with count and the current user's reaction highlighted blue
17
+ - Threads slide in from the right — threads are first-class, not secondary
18
+ - Huddles banner — blue (`#1264A3`) top strip when an audio huddle is active
19
+ - Status with custom emoji — every user can set a 30-character status + emoji next to their name
20
+ - Bottom tab bar: Home, DMs, Activity, Later, Search (5 tabs; Home tab = channel list + DMs)
21
+ - Mention colors: @channel = green pill, @here = yellow pill, @you = red pill
22
+ - Slack Lato typography — friendly geometric, 400 / 700 weights
23
+ - Online presence: small green dot (`#007A5A`) on avatar bottom-right
24
+
25
+ ## 2. Color Palette & Roles
26
+
27
+ ### Primary (Sidebar Default / Brand Anchor)
28
+ - **Slack Aubergine** (`#4A154B`): Default sidebar background — the signature color.
29
+ - **Aubergine Dark** (`#3F0E40`): Pressed state, darker sidebar tints on hover rows.
30
+ - **Aubergine Channel Text** (`#CFC3CF`): Channel name color on aubergine sidebar (muted lavender-white).
31
+ - **Aubergine Active** (`#FFFFFF`): Active channel name in sidebar — full white.
32
+ - **Aubergine Active BG** (`#1164A3` or workspace-custom): The highlighted row when a channel is selected on the sidebar. Default is a blue accent (`#1164A3`).
33
+
34
+ ### Slack 4-Color Logo Palette (Used in Logo + Some Chrome)
35
+ - **Logo Yellow** (`#ECB22E`): Logo pinwheel yellow — also used in Huddle call notice and "NEW" flags.
36
+ - **Logo Pink** (`#E01E5A`): Logo pinwheel pink — also used for mention badges and urgent states.
37
+ - **Logo Green** (`#2EB67D`): Logo pinwheel green — also used for online presence dot.
38
+ - **Logo Blue** (`#36C5F0`): Logo pinwheel blue — also used for link color on aubergine surfaces.
39
+
40
+ ### Canvas & Surfaces (Light Content Area)
41
+ - **Canvas Light** (`#FFFFFF`): Main conversation canvas — channel body.
42
+ - **Surface Light** (`#F8F8F8`): Search result rows, hovered list items, input field backgrounds.
43
+ - **Pressed Light** (`#E6E6E6`): Pressed states, selected rows.
44
+ - **Divider Light** (`#DDDDDD`): Hairline separators.
45
+ - **Thread Pane Background** (`#FFFFFF`): Same as main canvas when open.
46
+
47
+ ### Canvas & Surfaces (Dark Content Area)
48
+ - **Canvas Dark** (`#1A1D21`): Main conversation canvas on dark mode — charcoal-gray, not black.
49
+ - **Dark Surface 1** (`#222529`): Elevated rows, input backgrounds.
50
+ - **Dark Surface 2** (`#2C2D30`): Thread pane, sheet backgrounds.
51
+ - **Dark Divider** (`#35373B`): Hairline separators on dark.
52
+
53
+ ### Text
54
+ - **Text Primary Light** (`#1D1C1D`): Primary message body, user names.
55
+ - **Text Secondary Light** (`#616061`): Timestamps, metadata, channel topic.
56
+ - **Text Tertiary Light** (`#868686`): Placeholder, disabled.
57
+ - **Text on Aubergine** (`#FFFFFF`): Active channel in sidebar, workspace name.
58
+ - **Text on Aubergine Secondary** (`#CFC3CF`): Inactive channel names.
59
+
60
+ ### Dark Mode Text
61
+ - **Text Primary Dark** (`#D1D2D3`): Primary message body on dark.
62
+ - **Text Secondary Dark** (`#ABABAD`): Timestamps.
63
+ - **Text Tertiary Dark** (`#6C6D6E`): Placeholder.
64
+
65
+ ### Semantic & Status
66
+ - **Online Presence Green** (`#007A5A`): Small green dot on avatar when user online (a darker, more saturated green than the logo green — intentional for dot legibility).
67
+ - **Mention Pink** (`#E01E5A`): Mention badge (red pill with white count next to channel name if user is @-mentioned in that channel).
68
+ - **Typing Indicator Blue** (`#1264A3`): "Alice is typing..." indicator color + Huddles header strip.
69
+ - **Link Blue** (`#1264A3`): Inline links in messages.
70
+ - **Urgent Red** (`#E01E5A`): Destructive actions, error toasts.
71
+ - **Success Green** (`#007A5A`): Send-success flash.
72
+ - **@Channel Green BG** (`#F5E3BE` light / `#4A3D0D` dark): Yellow-green pill background for `@channel` mentions inline.
73
+ - **@Here Yellow BG** (`#FEF9E7` light / `#4A420D` dark): Yellow pill for `@here`.
74
+ - **@You Red BG** (`#F9D5DB` light / `#5A2731` dark): Red pill for `@yourname` mentions.
75
+ - **Reaction Chip (you reacted)** outline `#1264A3` with `#E3F2FC` background light.
76
+
77
+ ### Workspace Sidebar Custom Colors (Examples of Preset Themes)
78
+ Slack lets users pick alternate sidebar themes. Common ones include:
79
+ - **Aubergine** (default): `#4A154B` / active `#1164A3`
80
+ - **Monument**: `#2C2D30` (dark gray) / active `#481349`
81
+ - **Tangerine**: `#CA4400` (orange) / active `#6B140C`
82
+ - **Ochre**: `#8B6A05` (mustard) / active `#481349`
83
+
84
+ Workspace admins can set a custom hex, so any sidebar color is possible.
85
+
86
+ ## 3. Typography Rules
87
+
88
+ ### Font Family
89
+ - **Primary (2022+)**: `Slack Lato` (proprietary; formerly `Lato` → `Larsseit` → today's custom cut, also marketed as "Slack Sans"). A rounded geometric sans with warm curves, humanist apertures.
90
+ - **Code / Mono**: `Operator Mono` (for some code blocks) or `Menlo` / `SF Mono` on iOS.
91
+ - **Fallback Stack**: `-apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Helvetica Neue', Helvetica, Arial, sans-serif`
92
+ - **Non-Latin**: Slack ships script-specific fallbacks — Noto family for CJK/Devanagari/Arabic/Hebrew.
93
+
94
+ ### Hierarchy
95
+
96
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
97
+ |------|------|------|--------|-------------|----------------|-------|
98
+ | Workspace Name (Sidebar header) | Slack Lato | 18pt | 700 | 1.2 | -0.2pt | Top of sidebar |
99
+ | Channel Name (Sidebar, active) | Slack Lato | 15pt | 700 | 1.3 | 0pt | White bold for active |
100
+ | Channel Name (Sidebar, default) | Slack Lato | 15pt | 400 | 1.3 | 0pt | Muted lavender-white |
101
+ | Channel Name (Sidebar, unread) | Slack Lato | 15pt | 700 | 1.3 | 0pt | Full white bold for unread |
102
+ | Channel Header Title | Slack Lato | 17pt | 700 | 1.2 | 0pt | `# design` at top of channel |
103
+ | Channel Topic | Slack Lato | 13pt | 400 | 1.3 | 0pt | Gray subtitle below channel name |
104
+ | Username (Message) | Slack Lato | 15pt | 700 | 1.3 | 0pt | Bold sender name at top of message turn |
105
+ | Timestamp | Slack Lato | 12pt | 400 | 1.2 | 0pt | Muted gray beside username |
106
+ | Message Body | Slack Lato | 15pt | 400 | 1.5 | 0pt | Main message text |
107
+ | Thread Count | Slack Lato | 13pt | 600 | 1.0 | 0pt | "5 replies, last reply 3h ago" |
108
+ | Reaction Count | Slack Lato | 12pt | 600 | 1.0 | 0pt | Number next to emoji on reaction chip |
109
+ | Mention Text | Slack Lato | 15pt | 700 | 1.5 | 0pt | `@sarah` bold blue |
110
+ | Button (Primary) | Slack Lato | 15pt | 700 | 1.0 | 0pt | Green "Create channel" etc. |
111
+ | Button (Secondary) | Slack Lato | 14pt | 600 | 1.0 | 0pt | Outline buttons |
112
+ | Code Inline | Menlo | 13pt | 400 | 1.4 | 0pt | Code in message |
113
+ | Tab Label | Slack Lato | 11pt | 600 | 1.0 | 0.1pt | Bottom tab labels |
114
+ | Meta / Small | Slack Lato | 11pt | 400 | 1.2 | 0pt | "Edited", "Sent from mobile" |
115
+ | Status (User) | Slack Lato | 13pt | 400 | 1.2 | 0pt | Emoji + 30-char status next to name |
116
+
117
+ ### Principles
118
+ - **Two weights dominate**: 400 and 700 — Slack's type hierarchy is driven primarily by weight contrast, not size variation
119
+ - **Weight concentrated at 400 / 600 / 700**: Regular body, semibold for reactions/threads, bold for names/headings
120
+ - **Warm geometric feel**: Slack Lato has rounder terminals than pure grotesque — signals friendly, human tone
121
+ - **Uppercase only on a few UI labels**: "UNREADS", "MENTIONS & REACTIONS" section headers in sidebar — tracked 1.0pt
122
+ - **Dynamic Type first-class**: Body, message text, channel names scale; timestamps, reaction counts, tab labels fixed
123
+
124
+ ## 4. Component Stylings
125
+
126
+ ### Buttons
127
+
128
+ **Primary Button (Create channel / Submit)**
129
+ - Background: `#007A5A` (Slack Green — for send actions) OR `#4A154B` (aubergine — for workspace-context actions)
130
+ - Text: `#FFFFFF`
131
+ - Padding: 12pt vertical, 16pt horizontal
132
+ - Corner radius: 4pt (Slack buttons are modestly rounded, not full pills)
133
+ - Font: Slack Lato 15pt weight 700
134
+ - Pressed: darken 10% + scale 0.98 + medium haptic
135
+
136
+ **Secondary / Ghost Button**
137
+ - Background: transparent
138
+ - Border: 1pt solid `#1D1C1D` light / `#D1D2D3` dark
139
+ - Text: `#1D1C1D` light / `#D1D2D3` dark
140
+ - Padding: 10pt vertical, 16pt horizontal
141
+ - Corner radius: 4pt
142
+ - Font: Slack Lato 14pt weight 600
143
+ - Pressed: background `#E6E6E6`
144
+
145
+ **Icon Button (Header action / React / More)**
146
+ - 40pt hit area, 22pt SF Symbol
147
+ - Default color: `#616061` light / `#ABABAD` dark
148
+ - Pressed: background `#E6E6E6` light / `#35373B` dark (circular 36pt)
149
+ - Active (e.g., bell when notifications on): `#007A5A`
150
+
151
+ **Send Button (Message Composer)**
152
+ - Shape: square, 32pt, 4pt corner radius
153
+ - Background: `#007A5A` (green) when text entered, `#868686` (gray) when disabled
154
+ - Icon: SF Symbol `paperplane.fill` 16pt white
155
+ - Trailing position in composer
156
+ - Pressed: darken + medium haptic
157
+
158
+ ### Messages & Reactions
159
+
160
+ **Message Row**
161
+ The core content atom of Slack.
162
+ - Background: `#FFFFFF` light / `#1A1D21` dark
163
+ - Horizontal padding: 16pt (larger on iPad)
164
+ - Vertical padding: 4pt top, 4pt bottom (but 12pt top margin before a new sender's first message — "collapsed" consecutive messages from same sender)
165
+ - Structure:
166
+ 1. Leading: 36pt avatar (rounded square 4pt corner, NOT circular — Slack's signature distinction from most chat apps)
167
+ 2. Content column:
168
+ - Top line: username (bold 15pt) + "• status emoji + status" + timestamp (12pt `#616061`)
169
+ - Message body (15pt w400, 1.5 line-height)
170
+ - Inline attachments (images, file cards) full-width
171
+ - Reactions row (emoji pill chips)
172
+ - Thread indicator ("5 replies, last reply 3h ago" — blue text link)
173
+
174
+ - On hover (desktop) / long-press (mobile): reaction bar appears with quick-react emojis + "Add reaction" + "Reply in thread" + more
175
+
176
+ **Reaction Chip (Pill)**
177
+ - Shape: pill, 500pt corner radius
178
+ - Background: `#F1F1F1` default / `#E3F2FC` when you reacted light
179
+ - Border: 1pt `transparent` default / 1pt `#1264A3` when you reacted
180
+ - Padding: 4pt vertical, 8pt horizontal
181
+ - Content: 14pt emoji + 12pt w600 count text (separator 4pt gap)
182
+ - Font: Slack Lato 12pt weight 600 `#1D1C1D`
183
+ - Inline row below message body
184
+ - Tap: toggle your reaction + soft haptic
185
+
186
+ **Thread Indicator**
187
+ - Appears below message when thread exists
188
+ - Leading 16pt small avatar(s) of repliers (up to 3 overlapped)
189
+ - Text: "5 replies, last reply 3h ago" in Slack Lato 13pt w600 `#1264A3`
190
+ - Trailing chevron
191
+ - Tap: opens thread pane
192
+
193
+ **Mention Pill (inline in message)**
194
+ - Inline element within text flow
195
+ - Background: role-specific (green for @channel, yellow for @here, red for @user)
196
+ - Text: role-matched dark color
197
+ - Font: Slack Lato 15pt w700
198
+ - Padding: 1pt vertical, 4pt horizontal
199
+ - Corner radius: 4pt
200
+
201
+ **Huddles Banner (when audio huddle active)**
202
+ - Full-width banner at top of channel when huddle is live
203
+ - Background: `#1264A3` (Typing Indicator Blue)
204
+ - Height: 56pt
205
+ - Content: 4-color pinwheel icon + "Huddle in progress" + participant avatars overlap + "Join" button
206
+ - Haptic + sound on entry into a huddle
207
+
208
+ ### Sidebar
209
+
210
+ **Workspace Header (top of sidebar)**
211
+ - Height: 56pt + safe area
212
+ - Background: aubergine `#4A154B` (or workspace-custom color)
213
+ - Leading: workspace icon — 32pt rounded square, 4pt radius (the workspace's custom logo or initial)
214
+ - Center: workspace name in Slack Lato 18pt w700 white + drop-down chevron
215
+ - Trailing: edit pencil icon (for workspace settings)
216
+
217
+ **Channel List Row (in sidebar)**
218
+ - Height: 32pt
219
+ - Padding: 4pt vertical, 16pt horizontal
220
+ - Background: transparent (aubergine visible); pressed = 10% black overlay; active = blue highlight `#1164A3`
221
+ - Structure:
222
+ - Leading: channel-type icon — `#` for public, `🔒` for private, `@` for DM avatar (20pt), `mute` for muted
223
+ - Name: Slack Lato 15pt — muted lavender `#CFC3CF` default, white bold if unread, full white if active
224
+ - Trailing: mention badge (small red pill with count) if current user has mentions, OR muted icon if muted
225
+ - Sections:
226
+ - "Starred" (if any starred channels)
227
+ - "Channels" (# public)
228
+ - "Direct messages" (avatars of DM partners)
229
+ - "Apps"
230
+
231
+ **Sidebar Section Header**
232
+ - Uppercase label in Slack Lato 11pt w700 tracked 1.0pt
233
+ - Color: `#CFC3CF` at 50% opacity (subtle)
234
+ - Padding: 16pt top, 4pt bottom, 16pt horizontal
235
+ - Trailing: expand/collapse chevron + "+" add icon
236
+ - Examples: "CHANNELS", "DIRECT MESSAGES", "APPS"
237
+
238
+ ### Navigation
239
+
240
+ **Bottom Tab Bar**
241
+ - Height: 56pt + safe area
242
+ - Background: `#FFFFFF` / `#1A1D21` dark, with 0.5pt top border `#DDDDDD` / `#35373B`
243
+ - Tabs (5): Home, DMs, Activity, Later, Search
244
+ - Icon size: 24pt
245
+ - Active color: `#1D1C1D` light / `#D1D2D3` dark (active = bold icon, NOT a color shift)
246
+ - Inactive: `#616061` / `#ABABAD`
247
+ - Labels: Slack Lato 11pt w600, shown always
248
+ - Badges: red pill with white count on Activity and DMs tabs when unread
249
+
250
+ **Top Nav (Channel View)**
251
+ - Height: 52pt + safe area
252
+ - Leading: back chevron (24pt) or workspace avatar (32pt, taps opens sidebar)
253
+ - Center: channel name `# design` with leading `#` or `🔒` icon, Slack Lato 17pt w700 + topic/member count in 12pt w400 `#616061` below
254
+ - Trailing: headphone icon (start huddle) + "i" info icon + search icon
255
+
256
+ **Thread Pane (slides from right)**
257
+ - Full-screen on iPhone (takes over), slide-in pane on iPad (50% screen)
258
+ - Top: "Thread" label + back chevron + "Also send to #channel" checkbox
259
+ - Body: original parent message + replies below
260
+ - Slides in from right with 250ms ease-out; slides out on back swipe
261
+
262
+ ### Input Fields
263
+
264
+ **Message Composer**
265
+ - Docked at bottom of channel / thread
266
+ - Background: `#FFFFFF` / `#1A1D21` dark
267
+ - Border: 1pt `#DDDDDD` / `#35373B` top
268
+ - Padding: 8pt horizontal, 8pt vertical
269
+ - Auto-growing text area: min 40pt height, max 200pt then scrolls
270
+ - Formatting toolbar above input: Bold / Italic / Strikethrough / Code / Link / Bulleted / Numbered / Quote / Code block (small icons, hidden by default, expand via "Aa" button)
271
+ - Leading "+" button (attach file / upload photo / mention)
272
+ - Trailing: emoji picker icon + "@" mention icon + microphone (voice note) + Send (green square when text present)
273
+
274
+ **Search Bar (Search tab)**
275
+ - Height: 44pt
276
+ - Background: `#F8F8F8` / `#222529` dark
277
+ - Border radius: 8pt
278
+ - Leading icon `magnifyingglass` 18pt `#616061`
279
+ - Placeholder: "Search workspace" Slack Lato 15pt w400 `#616061`
280
+ - Focus: 1pt `#1264A3` border
281
+ - Below search bar: recent searches, trending topics, people
282
+
283
+ **Channel Picker (long-press "+" in composer)**
284
+ - Bottom sheet listing channels to switch to, DM users, or "Create new channel"
285
+
286
+ ### Distinctive Components
287
+
288
+ **Aubergine Sidebar**
289
+ The signature Slack component. Full-height left sidebar in `#4A154B` (or custom) with workspace header + channel list + DMs + apps. Swipe-right from anywhere in the app to open; swipe-left to close. Users who switch workspaces (shift down on the sidebar top) see a vertical strip of workspace icons to the left of the aubergine.
290
+
291
+ **Huddles Banner**
292
+ A blue (`#1264A3`) strip across the top of the channel when a huddle is active, showing participants and a Join button. Tap to join.
293
+
294
+ **Emoji Reaction Chip**
295
+ Below every message, a horizontal row of pill chips: emoji glyph + count. The chip you've reacted with has a blue outline (`#1264A3`). Tap to toggle your reaction; tap "+" to add a new reaction from the picker.
296
+
297
+ **Thread Indicator**
298
+ "5 replies, last reply 3h ago" link below a message with a thread — tap to open thread pane. Leading up to 3 avatars of repliers.
299
+
300
+ **Status with Emoji**
301
+ Next to a user's name in Slack (everywhere: sidebar, messages, mentions, profile), users can set a 30-character status + emoji — e.g., "🌴 On vacation until Mon" — that appears inline.
302
+
303
+ **Mention Pills (Inline)**
304
+ `@channel` (green), `@here` (yellow), `@you` (red) appear as colored pill backgrounds with bold text in the message body — bold and unmissable.
305
+
306
+ **Online Presence Dot**
307
+ A small 8pt green dot (`#007A5A`) on the bottom-right of a user's avatar when they're online. The avatar is a rounded square (4pt) — Slack's signature deviation from the chat-app circle.
308
+
309
+ **Saved Items ("Later" tab)**
310
+ Messages and items you've bookmarked — distinguished by a small bookmark icon on the message.
311
+
312
+ ## 5. Layout Principles
313
+
314
+ ### Spacing System
315
+ - Base unit: 4pt
316
+ - Scale: 4, 8, 12, 16, 20, 24, 32, 40, 56, 72
317
+ - Message vertical gap (same sender, consecutive): 4pt
318
+ - Message vertical gap (new sender): 12pt
319
+ - Sidebar row: 32pt, 4pt vertical padding
320
+ - Bottom tab: 56pt
321
+
322
+ ### Grid & Container
323
+ - iPhone: full-width messages, 16pt horizontal inset
324
+ - iPad: split-view — sidebar (280pt) + channel (center ~500pt) + thread pane (right 380pt when open)
325
+ - Sidebar width: 280pt on iPhone (full-width when swiped open), 260pt on iPad
326
+
327
+ ### Whitespace Philosophy
328
+ - **Dense messages, breathing rhythm**: messages from same sender collapse closer together (4pt gap); new sender gets 12pt top margin — creating conversational "turns"
329
+ - **Aubergine is confident**: sidebar uses full color, no whitespace margins — it's meant to feel "owned" by the workspace
330
+ - **Thread pane is breathing room**: threads get same padding as main channel — equal first-class status
331
+
332
+ ### Border Radius Scale
333
+ - Square (0pt): Huddles banner, full-bleed media
334
+ - Subtle (4pt): Avatars (rounded square — Slack's signature), buttons, message attachment cards
335
+ - Standard (8pt): Search bar, input fields, settings rows
336
+ - Comfortable (12pt): Bottom sheets, modals
337
+ - Pill (500pt): Reaction chips, mention pills, tab active pill
338
+ - Circle (50%): Online presence dot
339
+
340
+ ## 6. Depth & Elevation
341
+
342
+ | Level | Treatment | Use |
343
+ |-------|-----------|-----|
344
+ | Flat (Level 0) | No shadow | Sidebar, messages, channel body |
345
+ | Subtle (Level 1) | `rgba(0,0,0,0.08) 0 1px 4px` | Attachment cards, link preview cards |
346
+ | Floating (Level 2) | `rgba(0,0,0,0.12) 0 4px 16px` | Reaction picker, emoji picker, mention autocomplete |
347
+ | Sheet (Level 3) | `rgba(0,0,0,0.16) 0 -4px 24px` | Bottom sheets (compose, channel picker, status) |
348
+ | Modal Overlay | `rgba(0,0,0,0.4)` | Dim behind sheets and dialogs |
349
+ | Thread Pane | 1pt left border `#DDDDDD` | Divider between channel and thread (no shadow) |
350
+
351
+ **Shadow Philosophy**: Slack is flat by design — most surfaces have no shadow. Shadows appear only on ephemeral UI (reaction picker, emoji picker, bottom sheets) where the "this is floating" signal matters. The thread pane uses a 1pt border instead of a shadow because it's a structural divider, not an overlay. On dark mode, shadow opacity is reduced and a subtle border is added as a secondary signal.
352
+
353
+ ### Motion
354
+ - **Sidebar open/close**: edge-swipe drags 1:1; threshold 50% commits with spring 250ms damping 0.8 + soft haptic
355
+ - **Message send**: send button shrinks briefly (scale 0.9 → 1.0 over 200ms) + text field clears + message "flies into" channel from bottom — scale 0.96 → 1.0 over 250ms
356
+ - **Reaction add**: emoji chip scales 0 → 1.1 → 1.0 spring 300ms + soft haptic
357
+ - **Thread pane open**: slide-in from right 250ms ease-out
358
+ - **Huddle join**: fullscreen fade from current context + haptic success + bell sound
359
+ - **Long-press message**: reaction picker + action menu appears with spring scale-in (250ms)
360
+ - **Typing indicator**: "Alice is typing..." text pulses opacity 1.0 ↔ 0.6 over 1.2s loop
361
+ - **Mention autocomplete**: dropdown appears below cursor with fade-in 150ms
362
+ - **Push to refresh**: standard iOS spinner (Slack doesn't customize)
363
+ - **Haptics**: soft on message send, light on reaction add, medium on huddle join, success on workspace switch
364
+
365
+ ## 7. Do's and Don'ts
366
+
367
+ ### Do
368
+ - Use Slack Aubergine (`#4A154B`) as the default sidebar color — it's the signature brand anchor
369
+ - Make sidebar color workspace-customizable (admin setting) — allow any hex
370
+ - Use rounded-square (4pt corner) avatars — NOT circles — Slack's distinct choice
371
+ - Surface reactions below every message as inline pill chips with emoji + count
372
+ - Show threads as first-class: "5 replies, last reply 3h ago" link + slide-in pane on tap
373
+ - Use mention pills inline — green `@channel`, yellow `@here`, red `@user`
374
+ - Use Slack Lato (or Lato fallback) at weights 400 / 600 / 700 only
375
+ - Place the Huddles banner at top of channel when active — blue `#1264A3`
376
+ - Support status + emoji next to every user name — 30-char status is part of the identity
377
+ - Green dot (`#007A5A`) on avatar bottom-right when online
378
+ - Make the thread pane full-screen on iPhone, side-pane on iPad
379
+
380
+ ### Don't
381
+ - Don't use circle avatars — rounded-square (4pt) is Slack's signature
382
+ - Don't hardcode the sidebar color — it's workspace-customizable
383
+ - Don't use Slack aubergine anywhere except the sidebar (and login screens) — it's the sidebar's color
384
+ - Don't put mentions without the colored pill background — the pill IS the mention
385
+ - Don't ignore threads — they need a sliding pane, not a tap-through replacement of the main view
386
+ - Don't use Helvetica or SF Pro Display — Slack Lato's warmth is the voice
387
+ - Don't use Lato weights 300/500/900 — 400/600/700 only
388
+ - Don't animate reactions elaborately — a gentle spring scale is enough
389
+ - Don't use heavy shadows on messages — Slack is flat; shadows only on floating ephemeral UI
390
+ - Don't cram the channel name with decorations — leading `#` / `🔒` + name + bottom topic line is the canonical layout
391
+ - Don't mix @mention styles — each color is semantic and fixed
392
+
393
+ ## 8. Responsive Behavior
394
+
395
+ ### Device Sizes
396
+ | Device | Width | Key Changes |
397
+ |--------|-------|-------------|
398
+ | iPhone SE (3rd gen) | 375pt | Sidebar at 80% width when open |
399
+ | iPhone 13/14/15 | 390pt | Standard layout |
400
+ | iPhone 15/16 Pro | 393pt | Dynamic Island accommodated in top nav |
401
+ | iPhone 15/16 Pro Max | 430pt | Larger avatar (40pt) and reaction row |
402
+ | iPad (portrait) | 768pt | 2-column: sidebar (260pt) + channel |
403
+ | iPad (landscape) | 1024pt+ | 3-column: sidebar + channel + thread pane (optional) |
404
+
405
+ ### Dynamic Type
406
+ - Message body, usernames, channel names: full scale
407
+ - Timestamps, reaction counts, tab labels, small meta: FIXED (layout-sensitive)
408
+ - Username bold: scales
409
+ - Code inline: scales in monospace family
410
+
411
+ ### Orientation
412
+ - iPhone: portrait-preferred; rotates for media + huddles
413
+ - Thread pane on iPhone = full takeover (rotates as main content)
414
+ - iPad: fully rotates with layout adapting
415
+
416
+ ### Touch Targets
417
+ - Message row: full-width tap (opens thread or action sheet on long-press)
418
+ - Reaction chip: 28pt tall, 44pt effective hit
419
+ - Send button: 32pt square, 44pt hit
420
+ - Sidebar row: 32pt tall, full-row tap
421
+ - Tab bar: 24pt icon, 56pt effective
422
+
423
+ ### Safe Area Handling
424
+ - Top: top nav respects safe area + Dynamic Island
425
+ - Bottom: tab bar + home indicator respected; composer rises above keyboard
426
+ - Sides: 16pt content inset on channel body; sidebar is edge-to-edge
427
+ - Huddle banner: sits directly under top nav, above channel scroll area
428
+
429
+ ## 9. Agent Prompt Guide
430
+
431
+ ### Quick Color Reference
432
+ - Sidebar (default): `#4A154B` (Aubergine)
433
+ - Sidebar pressed: `#3F0E40`
434
+ - Sidebar active row: `#1164A3`
435
+ - Channel text on sidebar (default): `#CFC3CF`
436
+ - Channel text on sidebar (active/unread): `#FFFFFF`
437
+ - Canvas light: `#FFFFFF`
438
+ - Canvas dark: `#1A1D21`
439
+ - Text primary: `#1D1C1D` light / `#D1D2D3` dark
440
+ - Text secondary: `#616061` light / `#ABABAD` dark
441
+ - Divider: `#DDDDDD` light / `#35373B` dark
442
+ - Online green: `#007A5A`
443
+ - Mention red: `#E01E5A`
444
+ - Huddle / typing blue: `#1264A3`
445
+ - Logo yellow: `#ECB22E`
446
+ - Logo pink: `#E01E5A`
447
+ - Logo green: `#2EB67D`
448
+ - Logo blue: `#36C5F0`
449
+ - Send button green: `#007A5A`
450
+
451
+ ### Example Component Prompts
452
+ - "Build the Slack sidebar in SwiftUI: full-height left pane, 280pt wide, background `#4A154B` (aubergine). Workspace header at top: 56pt tall, leading 32pt rounded-square workspace icon (4pt radius), workspace name 'Acme Design' in Slack Lato 18pt w700 white, trailing chevron + edit pencil icon. Section 'CHANNELS' label in Slack Lato 11pt w700 tracked 1.0pt `#CFC3CF` 50% opacity, 16pt top padding. Channel rows (32pt tall): leading `#` icon 16pt `#CFC3CF`, channel name 'design' Slack Lato 15pt (w400 default `#CFC3CF`, w700 white for unread, w700 white for active on `#1164A3` row bg). Trailing mention badge (red pill `#E01E5A` with white count) if mentions present."
453
+
454
+ - "Create a Slack message row: 16pt horizontal padding, 4pt vertical padding (12pt top margin if new sender). Leading 36pt rounded-square avatar (4pt corner radius). Content column: username in Slack Lato 15pt w700 `#1D1C1D` + status emoji + 30-char status + timestamp '10:42 AM' in Slack Lato 12pt w400 `#616061`. Message body in Slack Lato 15pt w400 line-height 1.5. Below body: reaction chips row — each chip is pill 500pt radius, `#F1F1F1` bg (or `#E3F2FC` with 1pt `#1264A3` border if you've reacted), 14pt emoji + 12pt w600 count, 4pt vertical 8pt horizontal padding. Thread indicator below: 'View thread' as Slack Lato 13pt w600 `#1264A3` with leading 16pt overlapping avatars of repliers."
455
+
456
+ - "Design the Slack emoji reaction chip: pill 500pt radius, 4pt vertical + 8pt horizontal padding, 14pt emoji + 4pt gap + 12pt w600 count text. Default bg `#F1F1F1` with no border. You-reacted state: bg `#E3F2FC` with 1pt `#1264A3` border. Tap: toggle + soft haptic + chip scale 1.0 → 1.15 → 1.0 spring 300ms. Tap '+' button at end of chip row to open full emoji picker."
457
+
458
+ - "Build the Slack mention pill inline in a message: `@sarah` chip with bg `#F9D5DB` + text `#5A2731` (red for @user), OR `@channel` with bg `#D4EBD8` + text `#1C5A3D` (green), OR `@here` with bg `#FEF9E7` + text `#5D4A0D` (yellow). Font Slack Lato 15pt w700. Padding 1pt vertical 4pt horizontal, 4pt corner radius. Tap: opens user profile or shows channel context."
459
+
460
+ - "Create the Slack bottom tab bar: 56pt + safe area, `#FFFFFF` / `#1A1D21` dark, 0.5pt top border `#DDDDDD`. 5 tabs: Home (house icon for channels+DMs), DMs (chat bubbles), Activity (bell — with red badge if unread), Later (bookmark/clock), Search (magnifyingglass). 24pt icons. Active: `#1D1C1D` bold icon; inactive `#616061`. Slack Lato 11pt w600 labels. Red badge pill `#E01E5A` with white count on Activity tab when unread mentions exist."
461
+
462
+ - "Render the Slack Huddles banner at top of channel: full-width strip under top nav, 56pt tall, bg `#1264A3`. Leading: 4-color pinwheel logo icon 24pt (yellow/pink/green/blue quadrants). Center: 'Huddle in progress' in Slack Lato 15pt w700 white + 3 overlapping participant avatars (24pt rounded-square). Trailing: 'Join' button — white bg, 4pt radius, Slack Lato 14pt w700 `#1264A3`, 8pt vertical + 16pt horizontal padding. Tap: enters huddle full-screen."
463
+
464
+ ### Iteration Guide
465
+ 1. Slack Aubergine (`#4A154B`) is the default sidebar — NOT the canvas, NOT the accent. Workspaces can customize.
466
+ 2. Avatars are rounded-square (4pt radius), NOT circles — Slack's unmistakable choice
467
+ 3. Canvas is white (`#FFFFFF`) / dark charcoal (`#1A1D21`) — NOT aubergine on the conversation area
468
+ 4. Channel text on sidebar: muted `#CFC3CF` default, bold white for unread, bold white for active (with blue `#1164A3` row bg)
469
+ 5. Reactions are inline pill chips with emoji + count — blue outline `#1264A3` when you've reacted
470
+ 6. Threads are first-class: "5 replies" link opens a slide-in pane (full-screen on iPhone, side on iPad)
471
+ 7. Mentions have colored pill backgrounds inline: green for @channel, yellow for @here, red for @user
472
+ 8. Typography is Slack Lato at weights 400 / 600 / 700 — NO light, NO black
473
+ 9. Huddles banner is blue `#1264A3` across the top of the channel when active — 4-color pinwheel icon
474
+ 10. Online presence = 8pt `#007A5A` green dot on avatar bottom-right (not a ring, a dot)