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,424 @@
1
+ # Design System Inspiration of Jira (iOS)
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ Jira's iOS app is a **work-tracking instrument** — dense, structured, and deliberately utilitarian. Where consumer apps chase delight, Jira chases *legibility under load*: a single sprint board can hold dozens of issue cards across five columns, each card carrying an issue type, key, summary, labels, story points, and an assignee avatar. The design system exists to make that density scannable. The atmosphere is "clean engineering tool" — Atlassian's neutral grays, generous internal padding, hairline dividers, and exactly one saturated brand color (Jira Blue `#0052CC`) used sparingly so it always means "primary action."
6
+
7
+ The signature surface is the **board** — horizontally-scrolling status columns (To Do, In Progress, In Review, Done) each containing a vertical stack of **issue cards**. The issue card is Jira's atomic unit: an 8pt-radius rounded rectangle on a lifted surface, with a one-to-two-line summary in 15pt medium, a row of colored label chips, and a footer row pairing the issue-type icon + issue key (e.g. `MOB-388`) on the left with story points and a circular assignee avatar on the right. Tapping a card pushes the **issue detail** — a full scrollable record with a status lozenge dropdown, fields panel (Assignee, Priority, Sprint, Story points), description, and an activity/comment timeline. Board ⇄ issue detail is the loop the entire app orbits.
8
+
9
+ The color system is **semantic, not decorative**. Atlassian's design language assigns meaning to color: blue = information / primary, green = success / done, yellow = warning / in-progress-attention, red = blocked / error, purple = epics, plus a neutral gray ramp for everything structural. These appear as **status lozenges** (small uppercase rounded chips: `TO DO`, `IN PROGRESS`, `DONE`, `BLOCKED`), **issue-type icons** (green square = Story, red circle = Bug, blue check = Task, purple lightning = Epic), and **label chips** on cards. The brand blue is reserved for the Create button, links, selected tabs, and primary CTAs — it is never used as a background fill for content.
10
+
11
+ Typography is **Atlassian Sans** (Atlassian's 2023 proprietary humanist sans; falls back to SF Pro on iOS, with Inter as the closest free analog). Hierarchy is product-UI, not editorial: screen titles at 28-32pt bold, section/board titles at 20-22pt bold, issue summaries at 15-16pt medium, metadata at 12-14pt regular, and the distinctive 11-12pt uppercase letter-spaced labels used for column headers and field names. Numerals are tabular so story-point totals and counts align in columns.
12
+
13
+ **Key Characteristics:**
14
+ - Neutral-gray system — Jira Blue (`#0052CC`) is the only saturated brand color, used only for primary actions
15
+ - Board + issue card as the atomic surface — horizontal status columns of vertical card stacks
16
+ - Issue card: issue-type icon + key + summary + label chips + story points + assignee avatar
17
+ - Status lozenges — small uppercase rounded chips with semantic color (blue / green / red / yellow / neutral)
18
+ - Issue-type iconography — green square Story, red circle Bug, blue check Task, purple lightning Epic, gray Sub-task
19
+ - Light mode is near-white (`#FFFFFF` / `#F7F8F9`); dark mode is Atlassian neutral charcoal (`#1D2125`), never true black
20
+ - Warm-neutral ink `#172B4D` for primary text on light — Atlassian's signature "Navy/ink"
21
+ - Uppercase letter-spaced micro-labels (11-12pt) for column headers and field names
22
+ - Field-panel + activity-timeline issue detail — status dropdown, assignee, priority, comments
23
+ - Backlog list view — sprint sections with collapsible groups and inline issue rows
24
+ - Minimal chrome: bottom tab bar (Boards / Backlog / Search / Notifications / You), top breadcrumb + filter row
25
+
26
+ ## 2. Color Palette & Roles
27
+
28
+ ### Primary (Interactive)
29
+ - **Jira Blue** (`#0052CC`): Primary brand & action color — Create button, primary CTA fill, selected states, links (light mode).
30
+ - **Jira Blue Bold** (`#1868DB`): Brighter interactive blue used on dark surfaces — links, active tab, focus ring.
31
+ - **Jira Blue Pressed** (`#09326C`): Pressed state of primary buttons.
32
+ - **Link Blue (light)** (`#0C66E4`): Inline hyperlinks and tappable text in light mode.
33
+
34
+ ### Canvas & Surfaces (Light Mode)
35
+ - **Canvas White** (`#FFFFFF`): Primary light canvas — issue detail, modals.
36
+ - **Surface Sunken** (`#F7F8F9`): Board background, list background — subtle gray behind cards.
37
+ - **Surface Raised** (`#FFFFFF`): Issue cards (white on sunken gray, lifted by 1px border + soft shadow).
38
+ - **Surface Hover** (`#F1F2F4`): Pressed/selected rows and hovered cards.
39
+ - **Divider** (`#091E4224`): Hairline dividers between rows, fields, and sections (≈14% navy).
40
+ - **Border** (`#091E420F`): Card and input borders (≈6% navy).
41
+
42
+ ### Canvas & Surfaces (Dark Mode)
43
+ - **Dark Canvas** (`#1D2125`): Primary dark canvas — Atlassian neutral, NOT pure black.
44
+ - **Dark Surface 1** (`#22272B`): Issue cards, raised surfaces.
45
+ - **Dark Surface 2** (`#2C333A`): Columns, input fields, hovered rows.
46
+ - **Dark Surface 3** (`#38414A`): Pressed states, neutral lozenge fill.
47
+ - **Dark Divider** (`#38414A`): Hairline dividers between rows and sections.
48
+
49
+ ### Text
50
+ - **Text Primary Light** (`#172B4D`): Primary body text — Atlassian Navy ("ink"), NOT pure black.
51
+ - **Text Subtle Light** (`#44546F`): Secondary text, field labels, metadata.
52
+ - **Text Subtlest Light** (`#626F86`): Placeholder, timestamps, low-emphasis.
53
+ - **Text Disabled Light** (`#091E424F`): Disabled labels.
54
+ - **Text Primary Dark** (`#C7D1DB`): Primary body on dark.
55
+ - **Text Subtle Dark** (`#9FADBC`): Secondary text on dark.
56
+ - **Text Subtlest Dark** (`#738496`): Placeholder/timestamps on dark.
57
+
58
+ ### Semantic / Status
59
+ | Role | Light Fill | Light Text | Dark Fill | Dark Text |
60
+ |------|-----------|------------|-----------|-----------|
61
+ | Neutral (To Do) | `#DCDFE4` | `#44546F` | `#38414A` | `#9FADBC` |
62
+ | Information (In Progress) | `#E9F2FF` | `#0055CC` | `#092957` | `#8FB8F6` |
63
+ | Success (Done) | `#DCFFF1` | `#216E4E` | `#1C3329` | `#7EE2B8` |
64
+ | Warning (Attention) | `#FFF7D6` | `#7F5F01` | `#3D3000` | `#F5CD47` |
65
+ | Danger (Blocked / Error) | `#FFECEB` | `#AE2A19` | `#5D1F1A` | `#FD9891` |
66
+ | Discovery (Epic) | `#F3F0FF` | `#5E4DB2` | `#352C63` | `#B8ACF6` |
67
+
68
+ ### Issue-Type Accent Colors
69
+ - **Story Green** (`#1F845A` icon on `#FFFFFF` square): Stories.
70
+ - **Bug Red** (`#C9372C`): Bugs.
71
+ - **Task Blue** (`#1868DB`): Tasks.
72
+ - **Epic Purple** (`#8270DB` / `#6E5DC6`): Epics.
73
+ - **Sub-task Blue-Gray** (`#5E6C84`): Sub-tasks.
74
+
75
+ ### Label / Avatar Palette
76
+ Avatars and labels rotate through Atlassian's accent set: Purple `#5E4DB2`, Teal `#1D7F8C`, Magenta `#943D73`, Orange `#A54800`, Lime `#4C6B1F`, Blue `#0C66E4`.
77
+
78
+ ### Accent Functional
79
+ - **Sprint Active** (`#0052CC`): Active sprint pill.
80
+ - **Story-Point Badge** (`#DDE1E6` light / `#2C333A` dark): Rounded point counter.
81
+ - **Flag/Blocker Stripe** (`#E2483D`): Left edge stripe on flagged cards.
82
+
83
+ ## 3. Typography Rules
84
+
85
+ ### Font Family
86
+ - **Primary**: `Atlassian Sans` (Atlassian, 2023) — humanist sans engineered for product UI density and tabular numerals.
87
+ - **Mono**: `Atlassian Mono` — used in code blocks and inline code within descriptions/comments.
88
+ - **iOS Fallback**: `-apple-system, BlinkMacSystemFont, 'SF Pro Text', 'SF Pro Display'`
89
+ - **Closest Free Analog**: `Inter` (by Rasmus Andersson, SIL OFL) — geometric humanist with tabular figures and excellent small-size hinting.
90
+ - **Fallback Stack**: `'Atlassian Sans', -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Inter', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif`
91
+
92
+ ### Hierarchy
93
+
94
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
95
+ |------|------|------|--------|-------------|----------------|-------|
96
+ | Screen Title | Atlassian Sans | 28-32pt | 700 | 1.2 | -0.4pt | "Your work", "Boards" — top nav large title |
97
+ | Board / Section Title | Atlassian Sans | 22pt | 700 | 1.25 | -0.3pt | Board name, backlog header |
98
+ | Issue Title (detail) | Atlassian Sans | 20pt | 600 | 1.3 | -0.2pt | Issue summary in the detail screen |
99
+ | Subsection | Atlassian Sans | 16pt | 600 | 1.4 | 0pt | "Details", "Activity", "Description" headers |
100
+ | Body | Atlassian Sans | 16pt | 400 | 1.5 | 0pt | Description text, comment body |
101
+ | Card Summary | Atlassian Sans | 15pt | 500 | 1.4 | 0pt | Issue card title — 2-line clamp |
102
+ | Meta / Secondary | Atlassian Sans | 14pt | 400 | 1.4 | 0pt | Timestamps, "Updated by", field values |
103
+ | Field Label | Atlassian Sans | 12pt | 600 | 1.3 | 0.4pt | UPPERCASE — "ASSIGNEE", "PRIORITY", "SPRINT" |
104
+ | Column Header | Atlassian Sans | 12pt | 700 | 1.3 | 0.6pt | UPPERCASE — "IN PROGRESS", with count badge |
105
+ | Lozenge / Label | Atlassian Sans | 11pt | 700 | 1.0 | 0.4pt | UPPERCASE — status lozenges & label chips |
106
+ | Issue Key | Atlassian Sans | 11pt | 700 | 1.0 | 0.2pt | Tabular — `MOB-388` |
107
+ | Tab Label | Atlassian Sans | 10pt | 500 | 1.0 | 0.1pt | Bottom tab labels |
108
+ | Code Inline | Atlassian Mono | 13pt | 400 | 1.4 | 0pt | `inline code` in descriptions |
109
+
110
+ ### Principles
111
+ - **Tabular numerals everywhere**: story points, counts, issue keys, and totals must align — enable `font-variant-numeric: tabular-nums`.
112
+ - **Uppercase micro-labels are structural**: 11-12pt uppercase with +0.4-0.6pt tracking signals "this is a field/column/status", not content.
113
+ - **Weight ladder 400 / 500 / 600 / 700**: regular body, medium card summaries, semibold subsection/field labels, bold titles & lozenges. No thin, no black.
114
+ - **2-line clamp on card summaries**: never let a card grow unbounded — truncate at 2 lines with ellipsis.
115
+ - **Dynamic Type on content, fixed on chrome**: titles, body, descriptions scale; lozenges, issue keys, column headers, tab labels stay fixed (column layout is width-sensitive).
116
+
117
+ ## 4. Component Stylings
118
+
119
+ ### Buttons
120
+
121
+ **Primary Button (Create / Save / primary CTA)**
122
+ - Shape: Rounded rectangle, 6pt corner radius (Atlassian uses `3pt` for compact, `6pt` for prominent — prefer 6pt on mobile touch)
123
+ - Background: `#0052CC` light / `#1868DB` dark
124
+ - Text: `#FFFFFF`, Atlassian Sans 15pt weight 600
125
+ - Padding: 12pt vertical, 24pt horizontal
126
+ - Pressed: background `#09326C` light / `#0C66E4` dark + 0.98 scale
127
+ - Disabled: background `#091E420F` / text `#091E424F`
128
+
129
+ **Subtle Button (Assign to me / secondary)**
130
+ - Background: `#091E420F` light / `#2C333A` dark (subtle neutral)
131
+ - Text: `#172B4D` light / `#C7D1DB` dark, weight 500, 14pt
132
+ - Padding: 10pt vertical, 18pt horizontal, 6pt radius
133
+ - Pressed: background `#091E4224` / `#38414A`
134
+
135
+ **Outline / Default Button (Add child)**
136
+ - Background: transparent
137
+ - Border: 1pt `#091E4224` light / `#38414A` dark
138
+ - Text: `#172B4D` / `#C7D1DB`, weight 500, 14pt, 6pt radius
139
+ - Pressed: background `#F1F2F4` / `#22272B`
140
+
141
+ **Text / Link Button (View workflow)**
142
+ - No background, no border
143
+ - Text: `#0C66E4` light / `#579DFF` dark, weight 600, 14pt
144
+ - Pressed: underline + `#F1F2F4` faint background
145
+
146
+ **Icon Button (overflow ⋯ / add)**
147
+ - 24pt glyph in 44pt hit area, color `#626F86` / `#9FADBC`
148
+ - Pressed: circular `#091E420F` / `#2C333A` background
149
+
150
+ ### Core Atoms
151
+
152
+ **Status Lozenge**
153
+ - Shape: 3pt corner radius pill-rect
154
+ - Size: auto-width, 4pt vertical / 8pt horizontal padding
155
+ - Text: 11pt weight 700 UPPERCASE, +0.4pt tracking
156
+ - Color: semantic pair from §2 table (Neutral / Information / Success / Warning / Danger / Discovery)
157
+ - Dropdown variant: trailing 12pt chevron, tap opens status transition menu
158
+
159
+ **Issue-Type Icon**
160
+ - 16pt glyph in a 16-20pt rounded container (3pt radius)
161
+ - Story = white square on `#1F845A`; Bug = white circle on `#C9372C`; Task = white check on `#1868DB`; Epic = white lightning on `#8270DB`; Sub-task = link glyph on `#5E6C84`
162
+
163
+ **Label Chip**
164
+ - 3pt radius, 2pt/7pt padding, 10pt weight 700 UPPERCASE
165
+ - Tinted pastel background + saturated text from the label palette (e.g. design = `#3B2C5E`/`#C0B6F2` dark)
166
+
167
+ **Avatar**
168
+ - Circle, 22-26pt on cards, 32pt in detail header
169
+ - Initials in 10-12pt weight 700 white on a palette color, or photo
170
+ - Overlapping stack: -8pt overlap, 2pt canvas-colored border, "+N" overflow chip
171
+
172
+ **Story-Point Badge**
173
+ - Rounded pill (500pt radius), min 18pt, 11pt weight 700
174
+ - Background `#DDE1E6` light / `#2C333A` dark, text subtle
175
+
176
+ ### Issue Card
177
+
178
+ - Surface: `#FFFFFF` light / `#22272B` dark
179
+ - Corner radius: 8pt
180
+ - Border: 1pt `#091E420F` / `#38414A`
181
+ - Shadow: `0 1px 1px rgba(9,30,66,0.13), 0 0 1px rgba(9,30,66,0.16)` light / `0 1px 2px rgba(0,0,0,0.4)` dark
182
+ - Padding: 12pt all
183
+ - Structure (top → bottom): optional cover/epic-color top stripe → summary (15pt/500, 2-line clamp) → label chips row (8pt gap above) → footer row (12pt gap above): left = issue-type icon + issue key (11pt/700 subtle); right = story-point badge + assignee avatar
184
+ - Flagged variant: 3pt left edge stripe `#E2483D` + flag glyph
185
+ - Drag state: lifts to elevation 200 (`0 8px 12px rgba(9,30,66,0.15)`), 2° tilt, ghost placeholder in source column
186
+
187
+ ### Navigation
188
+
189
+ **Bottom Tab Bar**
190
+ - Height: 56pt + safe area
191
+ - Background: `#FFFFFF` / `#1D2125` with 0.5pt top border `#091E4224` / `#38414A`
192
+ - Tabs (5): Boards, Backlog, Search, Notifications, You
193
+ - Icon: 22-24pt; active fill, inactive stroke
194
+ - Active color: `#0052CC` light / `#1868DB` dark; inactive `#626F86` / `#738496`
195
+ - Labels: 10pt weight 500, always shown
196
+
197
+ **Top Bar (board/issue)**
198
+ - Height: 44pt + safe area
199
+ - Leading: back chevron OR project breadcrumb (12pt subtle)
200
+ - Center: board/issue title (compact when scrolled)
201
+ - Trailing: filter icon + overflow ⋯ + (board) avatar stack
202
+
203
+ **Board Column Header**
204
+ - 12pt UPPERCASE weight 700 column name + count badge (rounded, subtle bg)
205
+ - Sticky at top of each column while its cards scroll
206
+ - WIP-limit variant: count turns red `#C9372C` when over limit
207
+
208
+ **Sprint / Tab Strip (under title)**
209
+ - Horizontal pills: active = `#0052CC` filled white text; inactive = `#F1F2F4`/`#2C333A` subtle
210
+ - "Sprint 24", "Backlog", "Filters"
211
+
212
+ ### Input Fields
213
+
214
+ **Text Field (search / inline edit)**
215
+ - Height: 40pt
216
+ - Background: `#FFFFFF` with 1pt `#091E4224` border light / `#22272B` with 1pt `#38414A` dark (Atlassian fields are bordered, not filled)
217
+ - Corner radius: 6pt
218
+ - Leading icon (search): `magnifyingglass` 16pt subtle
219
+ - Placeholder: 14pt `#626F86` / `#738496`
220
+ - Focus: 2pt `#0052CC` / `#1868DB` border ring, no shadow
221
+
222
+ **Field Row (issue detail Details panel)**
223
+ - Label: 12pt UPPERCASE weight 600 subtle, fixed ~110pt leading column
224
+ - Value: 14-16pt primary; tappable values open a picker (assignee, priority, sprint, status)
225
+ - 44pt row height, hairline divider between fields
226
+
227
+ **Dropdown / Select**
228
+ - Trigger looks like a value with a trailing 12pt chevron
229
+ - Menu: 8pt radius card, elevation 300, 40pt rows, selected row checkmark + `#E9F2FF`/`#092957` tint
230
+
231
+ **Comment Composer**
232
+ - Multi-line, bordered, 6pt radius, "Add a comment…" placeholder
233
+ - Trailing Save (primary) + Cancel (subtle) on focus; @-mention picker on `@`
234
+
235
+ ### Distinctive Components
236
+
237
+ **Board (horizontal status columns)**
238
+ - Columns scroll horizontally; each column is a fixed ~232-280pt wide vertical card stack
239
+ - Column header sticky; "+ Create" affordance at bottom of each column
240
+ - Drag-and-drop: long-press a card → lifts → drag across columns → drop transitions issue status with haptic + status lozenge update
241
+
242
+ **Issue Detail**
243
+ - Header: issue-type icon + issue key + breadcrumb, status lozenge dropdown, title (20pt/600), action row (Assign, Watch, Share, ⋯)
244
+ - Details panel: collapsible field grid (Assignee, Status, Priority, Sprint, Story points, Labels, Reporter)
245
+ - Description block: rich-text body 16pt
246
+ - Activity tab strip: All / Comments / History / Worklog
247
+ - Comment timeline: avatar + name + timestamp + body, newest-first or oldest-first toggle
248
+
249
+ **Backlog List**
250
+ - Collapsible sprint sections ("Sprint 24 · 12 issues · 34 pts") with chevron
251
+ - Inline issue rows: issue-type icon + key + summary + status lozenge + assignee + points
252
+ - "Start sprint" / "Complete sprint" primary action per sprint section
253
+
254
+ **Priority Indicator**
255
+ - Up/down chevron stack: Highest (double-up red `#C9372C`), High (up red), Medium (equals orange `#E2B203`), Low (down blue), Lowest (double-down blue) — 14pt glyph
256
+
257
+ **Filter / Quick Filter Bar**
258
+ - Horizontal scroll of toggleable pills (Only my issues, Recently updated, Type, Epic) — selected = `#0052CC` outline + tint
259
+
260
+ **Sprint Progress Bar**
261
+ - Segmented bar: Done (green) / In Progress (blue) / To Do (neutral) proportional to points, with legend
262
+
263
+ ## 5. Layout Principles
264
+
265
+ ### Spacing System
266
+ - Base unit: 4pt (Atlassian's `space` scale)
267
+ - Scale: 2, 4, 8, 12, 16, 24, 32, 40, 48, 64
268
+ - Card internal padding: 12pt
269
+ - Card-to-card gap: 8pt
270
+ - Column gap: 12pt
271
+ - Screen horizontal inset: 16pt
272
+ - Field row height: 44pt; section gap: 24pt
273
+
274
+ ### Grid & Container
275
+ - iPhone: 16pt horizontal insets; board columns ~232-280pt fixed width, horizontal scroll
276
+ - iPad: board shows 3-4 columns without scroll; issue detail uses a 2-pane split (list + detail) at ≥768pt
277
+ - Issue detail content: max 700pt centered on large screens
278
+ - Backlog rows: full-width, 16pt insets
279
+
280
+ ### Whitespace Philosophy
281
+ - **Density with breathing room**: cards are dense internally but separated by clear 8pt gaps and sit on a sunken gray so each reads as a discrete object
282
+ - **Hairlines over boxes**: field rows and list rows are separated by 1px dividers, not nested cards
283
+ - **Color is rationed**: the canvas and chrome are neutral gray so the few semantic colors (lozenges, type icons, blue CTA) pop and carry meaning
284
+ - **Sticky structure**: column headers and the status lozenge stay pinned so context never scrolls away
285
+
286
+ ### Border Radius Scale
287
+ - Square (0pt): full-bleed dividers, sprint progress segments
288
+ - Tight (3pt): status lozenges, label chips, issue-type icon containers
289
+ - Standard (6pt): buttons, input fields, dropdown triggers
290
+ - Card (8pt): issue cards, menus, bottom sheets
291
+ - Comfortable (12-16pt): modals, large sheets
292
+ - Pill (500pt): story-point badges, sprint pills, avatars-as-buttons
293
+ - Circle (50%): avatars
294
+
295
+ ## 6. Depth & Elevation
296
+
297
+ Jira uses Atlassian's restrained elevation system — shadows communicate interaction layers, never decoration.
298
+
299
+ | Level | Treatment | Use |
300
+ |-------|-----------|-----|
301
+ | Flat (0) | No shadow; 1px border only | Board background, list rows, field rows |
302
+ | Raised (100) | `0 1px 1px rgba(9,30,66,0.13), 0 0 1px rgba(9,30,66,0.16)` | Issue cards at rest |
303
+ | Overlay (200) | `0 4px 8px rgba(9,30,66,0.15), 0 0 1px rgba(9,30,66,0.31)` | Dragged card, hovered card |
304
+ | Menu (300) | `0 8px 12px rgba(9,30,66,0.15), 0 0 1px rgba(9,30,66,0.31)` | Dropdowns, status menu, popovers |
305
+ | Sheet/Modal (400) | `0 20px 32px rgba(9,30,66,0.15)` + `rgba(9,30,66,0.54)` scrim | Bottom sheets, create-issue modal |
306
+
307
+ **Shadow Philosophy**: On light mode shadows are tinted with Atlassian Navy (`rgba(9,30,66,…)`) rather than pure black, keeping them cool and crisp. On dark mode shadows are nearly invisible, so elevation is signaled by a lighter surface step (`#22272B` → `#2C333A` → `#38414A`) plus a 1px border on overlays/menus.
308
+
309
+ ### Motion
310
+ - **Card drag**: long-press 200ms → card lifts (scale 1.02, elevation 200, 2° tilt) following finger 1:1; sibling cards reflow over 200ms ease-out; drop snaps with 150ms ease-out + medium haptic; status lozenge cross-fades to the new column's status
311
+ - **Status transition (lozenge dropdown)**: menu fades + 4pt slide-down 150ms ease-out; on select, lozenge color cross-fades 200ms
312
+ - **Screen push (board → issue)**: iOS native push, 300ms horizontal slide
313
+ - **Column scroll**: native momentum horizontal scroll with rubber-band; column headers stay pinned
314
+ - **Section collapse (backlog)**: chevron rotates 90° in 150ms; rows expand/collapse height 0↔auto 200ms ease-out
315
+ - **Pull-to-refresh**: Atlassian spinner; 250ms settle
316
+ - **Filter pill toggle**: instant tint + 100ms scale 0.97 tap feedback
317
+ - **Sprint progress bar**: segments animate width on load over 400ms ease-out
318
+ - **Haptics**: medium impact on card drop & status change; light impact on filter toggle and section collapse
319
+ - **Reduce Motion**: replace drag tilt and slide transitions with crossfades; keep instant state changes
320
+
321
+ ## 7. Do's and Don'ts
322
+
323
+ ### Do
324
+ - Use Jira Blue (`#0052CC`) ONLY for primary actions, links, and selected states — never as a content background
325
+ - Keep the canvas and chrome neutral gray so semantic colors carry meaning
326
+ - Render status as a lozenge — uppercase, tracked, semantic-colored, 3pt radius
327
+ - Use the correct issue-type icon + color (green Story / red Bug / blue Task / purple Epic / gray Sub-task)
328
+ - Pair every card footer with issue-type icon + key on the left, points + assignee on the right
329
+ - Clamp card summaries to 2 lines with ellipsis
330
+ - Use tabular numerals for points, counts, and issue keys so they align
331
+ - Use uppercase 11-12pt tracked micro-labels for columns and field labels
332
+ - Use Atlassian Navy `#172B4D` for primary text on light — not pure black
333
+ - Use neutral charcoal `#1D2125` for dark mode — not true black
334
+ - Brighten interactive blue to `#1868DB` on dark surfaces for AA contrast
335
+ - Make the board horizontally scrollable with sticky column headers and per-column Create
336
+
337
+ ### Don't
338
+ - Don't use Jira Blue as a card or section background — it must read as "action only"
339
+ - Don't introduce new accent colors — the semantic set (blue/green/red/yellow/purple/neutral) is the whole palette
340
+ - Don't show status as plain text — always a colored lozenge
341
+ - Don't let issue cards grow unbounded — 2-line summary clamp is mandatory
342
+ - Don't use pure black text (`#000000`) — `#172B4D` navy ink is correct on light
343
+ - Don't use true black (`#000000`) for dark mode — `#1D2125` Atlassian neutral is correct
344
+ - Don't mix issue-type colors (e.g. a red Story) — the type→color mapping is fixed
345
+ - Don't nest cards inside cards — field/list rows use hairline dividers, not boxes
346
+ - Don't proportional-space numerals — points and counts must align in columns
347
+ - Don't animate aggressively — Atlassian motion is 150-300ms ease-out, functional
348
+ - Don't drop shadows with pure black on light — tint them with `rgba(9,30,66,…)` navy
349
+ - Don't hide the issue key — it is the primary reference users speak and search by
350
+
351
+ ## 8. Responsive Behavior
352
+
353
+ ### Device Sizes
354
+ | Device | Width | Key Changes |
355
+ |--------|-------|-------------|
356
+ | iPhone SE (3rd gen) | 375pt | Board columns ~248pt; 1.x columns visible; compact card footer |
357
+ | iPhone 13/14/15 | 390pt | Standard layout; ~1.4 columns visible |
358
+ | iPhone 15/16 Pro | 393pt | Dynamic Island accommodated in top bar |
359
+ | iPhone 15/16 Pro Max | 430pt | Wider columns (~280pt); ~1.6 visible |
360
+ | iPad (portrait) | 768pt | 3 columns no horizontal scroll; backlog can split list + detail |
361
+ | iPad (landscape) | 1024pt+ | 4-5 columns; 2-pane (board/backlog list + issue detail) persistent |
362
+
363
+ ### Dynamic Type
364
+ - Scales: screen titles, issue title, body/description, comment text, field values
365
+ - Fixed: status lozenges, label chips, issue keys, column headers, tab labels (column width-sensitive)
366
+ - Code blocks scale to XL but stay monospace
367
+
368
+ ### Orientation
369
+ - iPhone: portrait-primary; landscape shows more columns
370
+ - iPad: split-view controller — primary backlog/board list + secondary issue detail; both rotate freely
371
+
372
+ ### Touch Targets
373
+ - Issue card: full-card tap (≥64pt tall), long-press to drag
374
+ - Status lozenge dropdown: 32pt tall, 44pt hit
375
+ - Tab bar icons: 24pt glyph, 44pt hit
376
+ - Field row: 44pt full-row tap
377
+ - Overflow / icon buttons: 24pt glyph, 44pt hit
378
+
379
+ ### Safe Area Handling
380
+ - Top: top bar + breadcrumb respect safe area and Dynamic Island
381
+ - Bottom: tab bar + home indicator respected
382
+ - Keyboard: comment composer and inline edit lift above keyboard; board scroll preserved
383
+ - Sides: 16pt content inset; board columns can bleed to edge on scroll
384
+
385
+ ## 9. Agent Prompt Guide
386
+
387
+ ### Quick Color Reference
388
+ - Primary / Jira Blue: `#0052CC` (light) · `#1868DB` (interactive on dark)
389
+ - Link blue: `#0C66E4` (light) · `#579DFF` (dark)
390
+ - Canvas: `#FFFFFF` light · `#1D2125` dark
391
+ - Sunken board bg: `#F7F8F9` light · card surface `#22272B` dark
392
+ - Surface raised (card): `#FFFFFF` light · `#22272B` dark
393
+ - Divider: `#091E4224` light · `#38414A` dark
394
+ - Text primary: `#172B4D` (Atlassian Navy) light · `#C7D1DB` dark
395
+ - Text subtle: `#44546F` light · `#9FADBC` dark
396
+ - Story green icon: `#1F845A` · Bug red: `#C9372C` · Task blue: `#1868DB` · Epic purple: `#8270DB`
397
+ - Lozenge Information: `#E9F2FF`/`#0055CC` light · `#092957`/`#8FB8F6` dark
398
+ - Lozenge Success: `#DCFFF1`/`#216E4E` light · `#1C3329`/`#7EE2B8` dark
399
+ - Lozenge Danger: `#FFECEB`/`#AE2A19` light · `#5D1F1A`/`#FD9891` dark
400
+
401
+ ### Example Component Prompts
402
+ - "Build the Jira issue card in SwiftUI: `#FFFFFF` surface (`#22272B` dark), 8pt corner radius, 1pt `#091E420F` border, elevation-100 navy-tinted shadow, 12pt padding. Top: summary in Atlassian Sans (Inter fallback) 15pt weight 500 `#172B4D`, clamped to 2 lines. Below: 8pt gap then a wrapping row of label chips (3pt radius, 2/7pt padding, 10pt weight 700 uppercase, tinted bg). Footer 12pt above: HStack — leading issue-type icon (16pt, green `#1F845A` rounded square for Story) + issue key `MOB-388` in 11pt weight 700 `#626F86`; trailing story-point pill (`#DDE1E6`, 11pt/700) + 22pt circular assignee avatar with white initials."
403
+
404
+ - "Create the Jira status lozenge: auto-width pill, 3pt corner radius, 4pt vertical / 8pt horizontal padding, text 11pt weight 700 uppercase +0.4pt tracking. Variants by semantic pair — To Do `#DCDFE4`/`#44546F`, In Progress `#E9F2FF`/`#0055CC`, Done `#DCFFF1`/`#216E4E`, Blocked `#FFECEB`/`#AE2A19` (dark: `#38414A`/`#9FADBC`, `#092957`/`#8FB8F6`, `#1C3329`/`#7EE2B8`, `#5D1F1A`/`#FD9891`). Dropdown variant adds a trailing 12pt chevron and opens a status-transition menu on tap with a 200ms color cross-fade."
405
+
406
+ - "Render the Jira board: horizontally scrolling columns, each ~248pt fixed width with a sticky header — column name in 12pt weight 700 uppercase `#738496` + count badge (rounded, `#2C333A` bg). Vertical stack of issue cards with 8pt gaps on a `#F7F8F9` sunken background (`#1D2125` dark). Long-press a card to lift it (scale 1.02, elevation 200, 2° tilt) and drag across columns; on drop, snap with 150ms ease-out, medium haptic, and cross-fade the card's status lozenge to the destination column's status."
407
+
408
+ - "Build the Jira issue detail header: issue-type icon + breadcrumb (`Mobile Apps / MOB`) in 12pt `#626F86`, a tappable status lozenge dropdown (semantic-colored), issue summary in Atlassian Sans 20pt weight 600 `#172B4D`, then an action row of subtle buttons: Assign, Watch, Share, ⋯ (`#091E420F` bg, 6pt radius, 14pt weight 500)."
409
+
410
+ - "Create the Jira Details field panel: a list of 44pt rows separated by 1px `#091E4224` dividers. Each row: leading fixed ~110pt label in 12pt weight 600 uppercase `#44546F`, trailing tappable value 14-16pt `#172B4D`. Fields: Assignee (avatar+name), Status (lozenge), Priority (chevron indicator), Sprint, Story points, Labels (chips), Reporter. Tapping a value opens an elevation-300 dropdown (8pt radius card, 40pt rows, selected row checkmark + `#E9F2FF` tint)."
411
+
412
+ - "Render the Jira bottom tab bar: 56pt + safe area, `#FFFFFF`/`#1D2125`, 0.5pt top divider. Five tabs — Boards, Backlog, Search, Notifications, You — 22-24pt icons (active filled, inactive stroked), labels 10pt weight 500 always shown. Active tint `#0052CC` (light) / `#1868DB` (dark); inactive `#626F86`/`#738496`. No pill indicator — just icon fill + color change."
413
+
414
+ ### Iteration Guide
415
+ 1. Canvas is neutral — `#FFFFFF`/`#F7F8F9` light, `#1D2125` dark (Atlassian charcoal, NOT true black)
416
+ 2. Text primary is Atlassian Navy `#172B4D` light / `#C7D1DB` dark — never pure black/white
417
+ 3. Jira Blue `#0052CC` is action-only; brighten to `#1868DB` for interactive elements on dark
418
+ 4. Status is ALWAYS a semantic lozenge — uppercase, tracked, 3pt radius, color-paired
419
+ 5. Issue-type icon→color is fixed: green Story / red Bug / blue Task / purple Epic / gray Sub-task
420
+ 6. The issue card footer pattern is mandatory: type-icon + key (left), points + avatar (right)
421
+ 7. Clamp card summaries to 2 lines; use tabular numerals for all counts/points/keys
422
+ 8. Board = horizontal columns of vertical card stacks with sticky headers + drag-to-transition
423
+ 9. Field/list rows use 1px hairline dividers — never nested cards
424
+ 10. Motion is functional Atlassian ease-out 150-300ms; shadows are navy-tinted on light, surface-step on dark