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,431 @@
1
+ # Design System Inspiration of ClickUp (iOS)
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ ClickUp's iOS app is a dense, feature-maximal productivity surface whose personality is the **brand gradient** and an information-rich task list. The default canvas is white (`#FFFFFF`) in light mode and a deep blue-violet (`#1B1B2E`) in dark mode — chosen to complement the gradient, NOT neutral black. The app opens to a List view: tasks grouped under **custom status pills** ("To do", "In progress", "Review", "Complete"), where each task row packs a status checkbox, name, priority flag, tags, due date, and assignee avatar into a compact line. ClickUp's thesis is "one app to replace them all" — so the UI is deliberately dense, with 12+ view types (List, Board, Calendar, Gantt, Timeline, Workload, Table, Doc, Mind Map, Activity, Map, Embed) rendering the same task objects.
6
+
7
+ The signature visual element is the **3-stop brand gradient**: purple (`#7B68EE`) → pink (`#FD71AF`) → blue (`#49CCF9`). It is the brand's hero moment — used on the floating action button, the primary CTA, the logo, and every **ClickUp AI** surface (the AI bar, AI buttons, AI-generated content highlights). The gradient is reserved and intentional: it never tiles the background; it marks "the most important action" and "AI". The other signature is the **custom status system**: every List defines its own ordered set of colored statuses, and the task list is grouped by them — each group headed by a saturated status pill with a count.
8
+
9
+ The color system pairs the gradient triad with a functional palette: status green (`#2ECC71`), red (`#F44E6E`), orange (`#FF9F1A`), blue (`#49CCF9`), yellow (`#FFCC00`), teal (`#1ECBE1`), plus a neutral gray (`#5B5B79`) for "to do"/unset. Priority is encoded as a **colored flag triangle**: Urgent (red `#F44E6E`), High (orange `#FF9F1A`), Normal (blue `#49CCF9`), Low (gray). Tags are small rounded pills in any of the palette hues at ~22% opacity with saturated text. Color is functional and dense — it differentiates many simultaneous attributes at a glance.
10
+
11
+ Typography is **Plus Jakarta Sans** — a geometric, slightly humanist sans (a close free match to ClickUp's product face). On iOS it falls back to SF Pro. Hierarchy is confident: 32pt extrabold screen titles, 26pt extrabold list titles, 22pt section heads, 14pt semibold task names (denser/bolder than Asana's), 13pt metadata, 10pt extrabold status pills (uppercased, tracked). Headings push to 800; task names sit at a deliberate 600 so the dense list still scans.
12
+
13
+ **Key Characteristics:**
14
+ - White canvas (`#FFFFFF`) light / deep blue-violet (`#1B1B2E`) dark — complements the gradient, NOT neutral black
15
+ - 3-stop brand gradient — purple `#7B68EE` → pink `#FD71AF` → blue `#49CCF9` on FAB, primary CTA, logo, all AI surfaces
16
+ - Custom status pills — every List defines its own ordered colored statuses; the task list is grouped by them
17
+ - Dense task rows — status box + name + priority flag + tags + due + assignee packed into one compact line
18
+ - Priority flag — a colored triangle: Urgent (red) / High (orange) / Normal (blue) / Low (gray)
19
+ - ClickUp AI surfaces — the gradient marks every AI affordance (AI bar, AI buttons, AI content)
20
+ - 12+ view types — List / Board / Calendar / Gantt / Timeline / Workload / Table / Doc / Mind Map / Activity / Map
21
+ - Tags as ~22% tinted pills with saturated text in any palette hue
22
+ - Hierarchy nesting — Spaces ▸ Folders ▸ Lists ▸ Tasks ▸ Subtasks
23
+ - Squircle FAB — a rounded-square (18pt radius) gradient button, not a circle
24
+ - Minimal but information-dense chrome — bottom tab bar (Home / Tasks / Inbox / Search) + per-list view tabs
25
+
26
+ ## 2. Color Palette & Roles
27
+
28
+ ### Primary (Interactive)
29
+ - **Brand Gradient** (`#7B68EE` → `#FD71AF` → `#49CCF9`, 135°): The hero — FAB, primary CTA, logo, AI surfaces. Identical light & dark.
30
+ - **Brand Purple** (`#7B68EE`): The single solid brand color — active tab, links, solid secondary CTA, selection.
31
+ - **Brand Pink** (`#FD71AF`): Gradient mid-stop; accent on AI / highlights.
32
+ - **Brand Blue** (`#49CCF9`): Gradient end-stop; also "Normal" priority & "In progress" default status.
33
+ - **Purple Pressed** (`#6A57DD`): Pressed state of solid-purple surfaces.
34
+ - **Purple Tint** (`#7B68EE38`): ~22% purple behind selected rows / focused fields.
35
+
36
+ ### Canvas & Surfaces (Light Mode)
37
+ - **Canvas White** (`#FFFFFF`): Primary light canvas, task list background.
38
+ - **Surface Gray** (`#F7F7FB`): Grouped surfaces, sidebar, hovered rows.
39
+ - **Surface Pressed** (`#EDEDF4`): Pressed/selected rows.
40
+ - **Divider** (`#E7E7EF`): Hairline between task rows and groups.
41
+ - **Card Border** (`#DEDEE9`): 1pt border on board cards.
42
+
43
+ ### Canvas & Surfaces (Dark Mode)
44
+ - **Dark Canvas** (`#1B1B2E`): Primary dark canvas — deep blue-violet, NOT pure black.
45
+ - **Dark Surface 1** (`#232338`): Cards, grouped surfaces.
46
+ - **Dark Surface 2** (`#2C2C44`): Elevated chips, hovered rows, board columns.
47
+ - **Dark Divider** (`#383852`): Hairline dividers.
48
+ - **Dark Card Border** (`#42425C`): 1pt border on board cards in dark.
49
+
50
+ ### Text
51
+ - **Text Primary Light** (`#1B1B2E`): Primary task names, body.
52
+ - **Text Secondary Light** (`#5E5E7A`): Metadata, due dates, counts, placeholders.
53
+ - **Text Tertiary Light** (`#9292A8`): Disabled, completed-task strikethrough.
54
+ - **Text Primary Dark** (`#F1F1F6`): Primary text on dark.
55
+ - **Text Secondary Dark** (`#A6A6BC`): Metadata on dark.
56
+ - **Text Tertiary Dark** (`#6E6E88`): Disabled / completed on dark.
57
+
58
+ ### Functional Palette (Status / Priority / Tags)
59
+ The palette every custom status, priority, and tag draws from. Statuses render as **solid pills**; tags as ~22% tints.
60
+
61
+ | Role | Solid Hue | Tint (22%) | On-Solid Text |
62
+ |------|-----------|-----------|---------------|
63
+ | Green / Complete | `#2ECC71` | `#2ECC7138` | `#FFFFFF` |
64
+ | Red / Urgent | `#F44E6E` | `#F44E6E38` | `#FFFFFF` |
65
+ | Orange / High | `#FF9F1A` | `#FF9F1A38` | `#FFFFFF` |
66
+ | Blue / Normal | `#49CCF9` | `#49CCF938` | `#0E2A33` |
67
+ | Purple / Brand | `#7B68EE` | `#7B68EE38` | `#FFFFFF` |
68
+ | Pink | `#FD71AF` | `#FD71AF38` | `#FFFFFF` |
69
+ | Yellow | `#FFCC00` | `#FFCC0038` | `#3A2F00` |
70
+ | Teal | `#1ECBE1` | `#1ECBE138` | `#06363C` |
71
+ | Gray / To-do / Unset | `#5B5B79` | `#5B5B7938` | `#FFFFFF` |
72
+
73
+ ### Priority (Flag Triangle)
74
+ | Role | Color |
75
+ |------|-------|
76
+ | Urgent | `#F44E6E` |
77
+ | High | `#FF9F1A` |
78
+ | Normal | `#49CCF9` |
79
+ | Low | `#9292A8` (gray) |
80
+ | No priority | outline gray, no fill |
81
+
82
+ ### Semantic
83
+ - **Success Green** (`#2ECC71`): "Complete" status, success toast.
84
+ - **Error / Urgent Red** (`#F44E6E`): Overdue date, delete, urgent priority, error toast.
85
+ - **Warning Orange** (`#FF9F1A`): High priority, warning callout.
86
+ - **AI Glow** (`#7B68EE` → `#FD71AF` → `#49CCF9` at ~18% on a panel): backdrop tint behind ClickUp AI content.
87
+
88
+ ## 3. Typography Rules
89
+
90
+ ### Font Family
91
+ - **Primary**: `Plus Jakarta Sans` (by Tokotype, 2020, SIL OFL) — geometric humanist sans; the closest free match to ClickUp's product typeface.
92
+ - **Numeric**: Plus Jakarta Sans tabular figures for due dates, counts, points, time-tracking (`font-feature-settings: "tnum"`).
93
+ - **Fallback Stack**: `-apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif`
94
+ - **iOS Note**: falls back to SF Pro Text/Display when Plus Jakarta Sans isn't bundled.
95
+
96
+ ### Hierarchy
97
+
98
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
99
+ |------|------|------|--------|-------------|----------------|-------|
100
+ | Screen Title | Plus Jakarta Sans | 32pt | 800 | 1.15 | -0.5pt | "Everything", "Home" — large nav title |
101
+ | List Title | Plus Jakarta Sans | 26pt | 800 | 1.2 | -0.3pt | List/Folder name in header (+ color square) |
102
+ | Section | Plus Jakarta Sans | 22pt | 700 | 1.25 | -0.2pt | "Today's tasks", subsection headings |
103
+ | Subsection | Plus Jakarta Sans | 17pt | 700 | 1.3 | -0.1pt | "Assigned to me", group labels |
104
+ | Body | Plus Jakarta Sans | 15pt | 400 | 1.5 | 0pt | Task descriptions, comments, Docs |
105
+ | Task Name | Plus Jakarta Sans | 14pt | 600 | 1.35 | 0pt | The task name in a dense list row |
106
+ | Status Group Label | Plus Jakarta Sans | 10pt | 800 | 1.1 | 0.6pt | Status-pill text heading a group (uppercased) |
107
+ | Meta | Plus Jakarta Sans | 13pt | 400 | 1.35 | 0pt | Due date, subtask count, time estimate |
108
+ | Tag | Plus Jakarta Sans | 10pt | 700 | 1.0 | 0.2pt | Tag pill text |
109
+ | Button | Plus Jakarta Sans | 15pt | 700 | 1.0 | 0pt | Primary / secondary buttons |
110
+ | Text Action | Plus Jakarta Sans | 14pt | 600 | 1.0 | 0pt | "Add subtask", "More options" |
111
+ | Assignee Initials | Plus Jakarta Sans | 9pt | 700 | 1.0 | 0.2pt | Initials inside an assignee avatar |
112
+ | Tab Label | Plus Jakarta Sans | 10pt | 600 | 1.0 | 0.1pt | Bottom tab bar labels |
113
+ | Comment Author | Plus Jakarta Sans | 13pt | 700 | 1.3 | 0pt | Comment / activity author name |
114
+
115
+ ### Principles
116
+ - **Dense but legible**: ClickUp packs many attributes per row — task names at 14pt/600 (bolder than typical) so the eye anchors fast.
117
+ - **Status pills are tight & loud**: 10pt/800, uppercased, +0.6pt tracking, white-on-saturated — they head every group.
118
+ - **Weight concentrated at 400 / 600 / 700 / 800**: regular body, semibold task names & actions, bold buttons/headings, extrabold titles & status pills. No thin.
119
+ - **Tabular numerals for the data**: due dates, points, time-tracked, counts must not jitter in the dense grid.
120
+ - **The gradient never appears in type**: text is always solid; the gradient is for surfaces (FAB/CTA/AI), never letterforms in-app.
121
+ - **Dynamic Type first-class**: titles, sections, body, task names, comments scale; status pills, tags, tab labels, assignee initials stay fixed.
122
+
123
+ ## 4. Component Stylings
124
+
125
+ ### Buttons
126
+
127
+ **Primary Button (Create task / Save / Generate with AI)**
128
+ - Shape: Rounded rectangle, 10pt corner radius
129
+ - Background: the 3-stop brand gradient (135°, `#7B68EE` → `#FD71AF` → `#49CCF9`)
130
+ - Text: `#FFFFFF`, Plus Jakarta Sans 15pt weight 700
131
+ - Padding: 13pt vertical, 26pt horizontal
132
+ - Pressed: brightness 0.94 + scale 0.98
133
+ - Disabled: gradient at 40% opacity
134
+
135
+ **Solid Secondary Button (Save / Apply)**
136
+ - Background: `#7B68EE` (Brand Purple, solid)
137
+ - Text: `#FFFFFF`, Plus Jakarta Sans 15pt weight 700
138
+ - Corner radius: 10pt; padding 13/24pt
139
+ - Pressed: `#6A57DD` + scale 0.98
140
+
141
+ **Outline Button (Add subtask / Add field)**
142
+ - Background: transparent
143
+ - Text: `#1B1B2E` light / `#F1F1F6` dark, Plus Jakarta Sans 14pt weight 600
144
+ - Border: 1pt `#E7E7EF` light / `#383852` dark
145
+ - Corner radius: 10pt; padding 12/20pt
146
+ - Pressed: background `#EDEDF4` / `#2C2C44`
147
+
148
+ **Text Button (More options / Add subtask)**
149
+ - Font: Plus Jakarta Sans 14pt weight 600
150
+ - Color: `#7B68EE` (brand purple)
151
+ - Pressed: 60% opacity
152
+
153
+ **Floating Action Button (Create — squircle, not circle)**
154
+ - Size: 56pt, 18pt corner radius (rounded-square / squircle)
155
+ - Background: the 3-stop brand gradient
156
+ - Icon: white `plus` 24pt, stroke 2.6
157
+ - Shadow: `rgba(123,104,238,0.50) 0 8px 22px`
158
+ - Position: 16pt from trailing edge, 16pt above the tab bar
159
+ - Pressed: scale 0.94 + brightness 0.94
160
+
161
+ ### Task Row (the core atom)
162
+
163
+ Every task in any list view is a dense row:
164
+ - Height: ~52pt with one metadata line
165
+ - Leading: 18pt status checkbox — a 5pt-radius rounded square, 2pt border in the status color; checkmark when done
166
+ - Name: Plus Jakarta Sans 14pt w600 `#1B1B2E` / `#F1F1F6`, truncates with ellipsis
167
+ - Metadata row (6pt gap): priority flag triangle, tag pills, due date
168
+ - Trailing: 22pt circular assignee avatar (initials or photo)
169
+ - Divider: 1pt `#E7E7EF` / `#383852` between rows
170
+ - Swipe-left: Complete (green) + More; swipe-right: set priority
171
+ - Tap row: opens the full task panel (description, subtasks, custom fields, checklists, comments, activity)
172
+
173
+ **Status Checkbox**
174
+ - Default: 18pt rounded square, 5pt radius, 2pt border in the status's color, transparent fill
175
+ - "In progress" group: orange/blue border; "Complete": filled `#2ECC71` + white check
176
+ - Tap: cycles to the next status (or opens the status picker on long-press) + soft haptic
177
+
178
+ **Status Pill (group header)**
179
+ - A saturated solid pill in the status color: Plus Jakarta Sans 10pt w800, uppercased, +0.6pt tracking, white (or dark on yellow/blue) text
180
+ - 4pt vertical / 9pt horizontal padding, 5pt corner radius
181
+ - Followed by a count `#9292A8` and a trailing "+ add task" affordance
182
+
183
+ **Priority Flag**
184
+ - A small filled triangle (≈12pt) in the priority color: Urgent `#F44E6E`, High `#FF9F1A`, Normal `#49CCF9`, Low gray; "No priority" = gray outline
185
+ - Tap: opens the priority picker
186
+
187
+ **Tag Pill**
188
+ - ~22% tint of a palette hue with saturated text, Plus Jakarta Sans 10pt w700
189
+ - 2pt vertical / 7pt horizontal, 999pt radius (full pill)
190
+
191
+ ### Status Group
192
+
193
+ - A status pill (see above) + item count + "+ add task"
194
+ - Tap the pill chevron: collapse/expand the group's tasks (200ms ease-out)
195
+ - Lists define an ordered set of statuses; "Complete"-type statuses collapse by default
196
+
197
+ ### ClickUp AI Bar / Surfaces
198
+
199
+ - A horizontal bar (10pt radius) with a ~18% gradient backdrop tint + 1pt purple border
200
+ - Leading sparkle glyph in brand purple; label "ClickUp AI · {action}" in Plus Jakarta Sans 12pt w600
201
+ - AI-generated content blocks get the same subtle gradient tint to mark provenance
202
+ - AI action buttons use the full gradient fill
203
+
204
+ ### Navigation
205
+
206
+ **Bottom Tab Bar**
207
+ - Height: 52pt + safe area
208
+ - Background: `#FFFFFF` / `#1B1B2E` with 1pt top border `#E7E7EF` / `#383852`
209
+ - Tabs (4): Home, Tasks (My Work), Inbox (Notifications), Search
210
+ - Icon size: 22pt; active filled, inactive stroked
211
+ - Active color: `#7B68EE` (brand purple); inactive `#9292A8` / `#6E6E88`
212
+ - Labels: Plus Jakarta Sans 10pt w600, always shown
213
+
214
+ **View Switcher Tabs (per list)**
215
+ - Below the list title: List, Board, Calendar, Gantt, Timeline, Doc, Table, … (12+; horizontally scrollable)
216
+ - Active tab: `#7B68EE` text with a 2.5pt purple `#7B68EE` underline
217
+ - Inactive: `#5E5E7A` / `#A6A6BC`
218
+ - Plus Jakarta Sans 13pt w600, 18pt gap
219
+
220
+ **Top Nav (list / task detail)**
221
+ - Height: 44pt + safe area
222
+ - Leading: back chevron / close X + breadcrumb (Space ▸ Folder ▸ List)
223
+ - Center / leading: compact list or task title
224
+ - Trailing: ⋯ actions / share / AI
225
+
226
+ ### Input Fields
227
+
228
+ **Search Bar**
229
+ - Height: 40pt
230
+ - Background: `#F7F7FB` / `#2C2C44`
231
+ - Border: none
232
+ - Corner radius: 10pt
233
+ - Leading icon `magnifyingglass` 16pt `#9292A8`
234
+ - Placeholder: "Search tasks, docs, people" 14pt `#9292A8`
235
+ - Focus: 1.5pt `#7B68EE` border
236
+
237
+ **Inline Field / Composer**
238
+ - Tapping a custom-field or name cell turns it into an inline field with a 1.5pt `#7B68EE` focus ring
239
+ - Comment composer: `#F7F7FB` / `#2C2C44` fill, 10pt radius, "Comment or type / for commands" placeholder; a `/` slash menu and `@`-mention picker are available
240
+ - AI compose: a gradient-bordered field with the sparkle prefix
241
+
242
+ ### Distinctive Components
243
+
244
+ **Brand-Gradient FAB & AI Surfaces**
245
+ - The hero — see Buttons & AI Bar. The gradient is reserved for "most important action" and "AI"; never a background.
246
+
247
+ **Custom-Status Grouped List**
248
+ - The default screen: tasks grouped by the List's ordered custom statuses, each headed by a saturated pill.
249
+
250
+ **Board View**
251
+ - Columns = one status each; cards carry the status-color top accent + priority flag + tags + assignee
252
+ - Drag a card to another column = change its status; lift shadow + 200ms settle
253
+
254
+ **Task Panel**
255
+ - A full-screen / bottom-sheet detail: title, status pill, assignees, priority, dates, custom fields, subtasks, checklists, attachments, a description (rich-text Doc), comments + activity
256
+
257
+ **Custom Field Cell**
258
+ - Inline labeled value in the field's type: dropdown (tinted pill), number, money, progress bar, rating, formula — each compact
259
+
260
+ **Slash / Mention Menu**
261
+ - `/` opens a command menu (turn into, add field, embed); `@` mentions people/tasks/docs — a floating panel with the AI gradient border on AI options
262
+
263
+ **Inbox Notification Row**
264
+ - Leading actor avatar (28pt); bold actor + action; subtitle = task + List breadcrumb; trailing timestamp; unread = purple dot
265
+
266
+ **Hierarchy Breadcrumb**
267
+ - Space ▸ Folder ▸ List path in the top nav; each segment tappable; the Space carries its color square
268
+
269
+ ## 5. Layout Principles
270
+
271
+ ### Spacing System
272
+ - Base unit: 4pt
273
+ - Scale: 4, 6, 8, 10, 14, 16, 18, 22, 26, 32, 40, 56
274
+ - Task row vertical padding: 11pt (dense)
275
+ - Status group header: 10pt top / 6pt bottom
276
+ - Screen horizontal inset: 16pt
277
+
278
+ ### Grid & Container
279
+ - iPhone: full-width dense list; metadata wraps if narrow
280
+ - iPad: master-detail — Spaces/Lists sidebar (300pt) + list/task detail
281
+ - Board columns: ~270pt wide, horizontal scroll, 12pt gap
282
+ - Task panel: max-width 760pt centered on large screens
283
+ - Gantt/Timeline: horizontally scrolling timeline canvas
284
+
285
+ ### Whitespace Philosophy
286
+ - **Density is the point**: ClickUp deliberately surfaces many attributes per row — tight 11pt padding, small pills, compact flags — so power users see everything without tapping in
287
+ - **The gradient is rare and loud**: exactly one gradient element is visible at rest (the FAB) plus AI surfaces — its scarcity is what makes it read as "primary"
288
+ - **Status pills bucket the list**: saturated pill headers create strong visual groups in a dense scroll
289
+ - **Squircle, not circle**: the FAB's 18pt-radius rounded square is a deliberate brand signature distinct from circular FABs
290
+
291
+ ### Border Radius Scale
292
+ - Square (0pt): dividers, full-bleed media
293
+ - Subtle (5pt): status checkbox, status pills, color squares
294
+ - Standard (8-10pt): buttons, search bar, cards, AI bar
295
+ - Comfortable (14pt): bottom sheets, modals, pickers
296
+ - Squircle (18pt): the FAB, large feature cards
297
+ - Pill (999pt): tags, filter pills
298
+ - Circle (50%): assignee avatars
299
+
300
+ ## 6. Depth & Elevation
301
+
302
+ ClickUp is mostly flat — density + status color provide structure; shadows are reserved for floating, dragged, and the gradient FAB.
303
+
304
+ | Level | Treatment | Use |
305
+ |-------|-----------|-----|
306
+ | Flat (Level 0) | No shadow | Task rows, list, status group headers |
307
+ | Card (Level 1) | `rgba(0,0,0,0.07) 0 1px 4px` | Board cards at rest (light); 1pt border in dark |
308
+ | Floating (Level 2) | `rgba(0,0,0,0.14) 0 4px 14px` | Slash/mention menu, status & priority pickers, dropdowns |
309
+ | FAB | `rgba(123,104,238,0.50) 0 8px 22px` | Gradient FAB — a purple-tinted colored shadow |
310
+ | Dragged (Level 3) | `rgba(0,0,0,0.22) 0 8px 24px` | A board card / task being dragged |
311
+ | Sheet (Level 4) | `rgba(0,0,0,0.20) 0 -4px 24px` | Bottom sheets (task panel, filters, pickers) |
312
+ | Modal Scrim | `rgba(0,0,0,0.45)` | Dim behind modals/sheets |
313
+
314
+ **Shadow Philosophy**: Shadows mean "liftable / floating", never decoration. The board itself is flat — status color + density encode structure. The FAB gets a soft *purple* shadow tying it to the brand gradient. On dark, gray shadows vanish, so board cards rely on a 1pt `#42425C` border + a status-color top accent while the FAB keeps its purple glow.
315
+
316
+ ### Motion
317
+ - **Status change**: tapping the checkbox cycles status with a 180ms color crossfade + soft haptic; long-press opens the picker (fade + 4pt slide-up, 150ms); "Complete" plays a quick check-draw
318
+ - **Drag task / board card**: 1:1 finger tracking at 60fps; neighbors shift over 200ms ease-out; drop snaps with 150ms ease-out + soft haptic; status recolors on cross-column drop
319
+ - **Status group collapse/expand**: chevron rotates 90° in 150ms; tasks height 0 → auto over 200ms ease-out
320
+ - **FAB → create**: squircle scales up and the create sheet rises from bottom over 280ms ease-out
321
+ - **AI generation**: the AI bar's gradient shimmers (a 1.2s sweep) while generating; result fades in over 200ms with the gradient-tint backdrop
322
+ - **View tab switch**: 2.5pt purple underline slides over 200ms; the view cross-fades 150ms
323
+ - **Push navigation / breadcrumb drill**: iOS-native push, 300ms horizontal slide
324
+ - **Haptic feedback**: soft impact on status change, drag start, group toggle; light tick on tab switch; success tick on task complete
325
+
326
+ ## 7. Do's and Don'ts
327
+
328
+ ### Do
329
+ - Reserve the 3-stop gradient (`#7B68EE` → `#FD71AF` → `#49CCF9`) for the FAB, primary CTA, logo, and AI surfaces only
330
+ - Use the deep blue-violet `#1B1B2E` for dark canvas — it complements the gradient, NOT neutral black
331
+ - Group the task list by the List's ordered custom status pills (saturated, uppercased, 10pt/800)
332
+ - Make the FAB a squircle (56pt, 18pt radius) — a deliberate brand signature, not a circle
333
+ - Encode priority as a colored flag triangle (Urgent red / High orange / Normal blue / Low gray)
334
+ - Embrace density — surface priority + tags + due + assignee per row; power users want it all visible
335
+ - Mark every AI affordance with the gradient (AI bar tint, AI buttons, AI content backdrop)
336
+ - Use tags as ~22% tinted pills with saturated text in any palette hue
337
+ - Offer the full view switcher (List / Board / Calendar / Gantt / Timeline / Doc / …) over the same tasks
338
+ - Use tabular numerals for due dates, points, time-tracked, and counts in the dense grid
339
+ - Show the Space ▸ Folder ▸ List breadcrumb so users always know where they are
340
+
341
+ ### Don't
342
+ - Don't tile the gradient as a background or use it on body text — it marks primary action + AI only
343
+ - Don't use pure black (`#000000`) for the dark canvas — `#1B1B2E` blue-violet is correct
344
+ - Don't render statuses as faint tint chips — group-header status pills are SOLID and saturated (tags are the tinted ones)
345
+ - Don't make the FAB a circle — the squircle is the brand signature
346
+ - Don't over-sparsify the list — ClickUp's value is information density; don't strip metadata to "clean it up"
347
+ - Don't use a flat checkbox for status — it's a status-colored rounded square that cycles statuses
348
+ - Don't use heavy shadows on rows — only floating / dragged elements and the FAB get shadow
349
+ - Don't use gray as the FAB shadow — it's a soft purple glow tied to the gradient
350
+ - Don't bold task names beyond 600 or lighten below it — 14pt/600 keeps the dense list scannable
351
+ - Don't introduce a second gradient — there is exactly one brand gradient; functional colors are solids
352
+ - Don't hide the breadcrumb — hierarchy (Space/Folder/List) is core to ClickUp's mental model
353
+
354
+ ## 8. Responsive Behavior
355
+
356
+ ### Device Sizes
357
+ | Device | Width | Key Changes |
358
+ |--------|-------|-------------|
359
+ | iPhone SE (3rd gen) | 375pt | Metadata may wrap; fewer tags shown, "+N" overflow |
360
+ | iPhone 13/14/15 | 390pt | Standard dense layout |
361
+ | iPhone 15/16 Pro | 393pt | Dynamic Island accommodated in top nav |
362
+ | iPhone 15/16 Pro Max | 430pt | One extra metadata column without wrap |
363
+ | iPad (portrait) | 768pt | Master-detail: Spaces/Lists sidebar (300pt) + list/task detail |
364
+ | iPad (landscape) | 1024pt+ | Three-pane: sidebar + list + task panel; full Gantt/Table |
365
+
366
+ ### Dynamic Type
367
+ - Screen/list/section titles, body, task names, comments, Docs: full scale
368
+ - Status pills, tags, tab labels, assignee initials, status group labels: FIXED (dense-layout-sensitive)
369
+ - Due dates / points / counts: scale but stay tabular
370
+
371
+ ### Orientation
372
+ - All screens support rotation
373
+ - iPad landscape unlocks the three-pane (sidebar / list / task panel)
374
+ - Board / Gantt / Timeline scroll horizontally in both orientations
375
+
376
+ ### Touch Targets
377
+ - Status checkbox: 18pt glyph, 44pt hit area (separate from row tap)
378
+ - Tab bar icons: 22pt glyph, 44pt hit
379
+ - Task row: full-row tap opens the task panel
380
+ - Status group chevron: 16pt glyph, 44pt hit
381
+ - FAB: 56pt squircle (exceeds minimum)
382
+ - Priority flag / tag: 44pt hit even though the glyph is small
383
+
384
+ ### Safe Area Handling
385
+ - Top: list title & top nav respect safe area + Dynamic Island
386
+ - Bottom: tab bar + home indicator respected; FAB 16pt above the tab bar
387
+ - Keyboard: inline field, comment composer, and AI compose rise above the keyboard
388
+ - Sides: 16pt content inset
389
+
390
+ ## 9. Agent Prompt Guide
391
+
392
+ ### Quick Color Reference
393
+ - Canvas (light): `#FFFFFF`
394
+ - Canvas (dark): `#1B1B2E`
395
+ - Surface (dark): `#232338` / `#2C2C44`
396
+ - Divider: `#E7E7EF` light / `#383852` dark
397
+ - Text primary: `#1B1B2E` light / `#F1F1F6` dark
398
+ - Text secondary: `#5E5E7A` light / `#A6A6BC` dark
399
+ - Brand gradient: `#7B68EE` → `#FD71AF` → `#49CCF9` (135°)
400
+ - Brand purple (solid): `#7B68EE` (pressed `#6A57DD`)
401
+ - Status green / Complete: `#2ECC71`
402
+ - Status red / Urgent: `#F44E6E`
403
+ - Status orange / High: `#FF9F1A`
404
+ - Status blue / Normal: `#49CCF9`
405
+ - Gray / To-do / unset: `#5B5B79`
406
+ - Tag tint: hue at ~22% (`#7B68EE38`) with saturated text
407
+
408
+ ### Example Component Prompts
409
+ - "Build a ClickUp task row in SwiftUI: leading 18pt status checkbox (a 5pt-radius rounded square, 2pt border in the status color, transparent fill — filled `#2ECC71` + white check when done). 10pt gap to a VStack: task name Plus Jakarta Sans 14pt w600 `#1B1B2E` (truncating); below, an HStack — a priority flag triangle (filled, Urgent `#F44E6E` / High `#FF9F1A` / Normal `#49CCF9` / Low gray), tag pills (Plus Jakarta Sans 10pt w700 saturated text on a ~22% tint, 999pt radius), and a due date (`#5E5E7A`, or `#F44E6E` if overdue). Trailing: 22pt circular avatar. 11pt vertical padding, 1pt `#E7E7EF` divider, ~52pt tall. Tap checkbox cycles status with a 180ms color crossfade + soft haptic."
410
+
411
+ - "Create the ClickUp custom-status group header: a saturated solid status pill — e.g. `#49CCF9` 'IN PROGRESS' in Plus Jakarta Sans 10pt w800 uppercased +0.6pt tracking, dark `#0E2A33` text (white on most colors), 4/9pt padding, 5pt radius — followed by an item count `#9292A8` and a trailing '+ add task'. Tapping the pill chevron collapses the group (tasks height 0 → auto, 200ms ease-out)."
412
+
413
+ - "Render the ClickUp FAB: a 56pt squircle (18pt corner radius — NOT a circle) filled with the 3-stop brand gradient (135°, `#7B68EE` → `#FD71AF` → `#49CCF9`), a white `plus` icon 24pt, shadow `rgba(123,104,238,0.50) 0 8px 22px`. Position 16pt from trailing edge, 16pt above the tab bar. Press: scale 0.94 + brightness 0.94."
414
+
415
+ - "Build a ClickUp AI bar: a 10pt-radius horizontal bar with a ~18% 3-stop-gradient backdrop tint + 1pt `#7B68EE` border, a leading brand-purple sparkle glyph, label 'ClickUp AI · {action}' in Plus Jakarta Sans 12pt w600 `#5E5E7A` ('ClickUp AI' bold `#1B1B2E`). While generating, the gradient shimmers over 1.2s; the result fades in (200ms) on a gradient-tint backdrop."
416
+
417
+ - "Create the ClickUp Board view: horizontally scrolling columns (~270pt, `#F7F7FB` / `#2C2C44`, 10pt radius), one per custom status. Cards: `#FFFFFF` / `#232338`, 1pt border, a 3pt status-color top accent, priority flag + tags + 22pt avatar, lift shadow on drag (`rgba(0,0,0,0.22) 0 8px 24px`). Dropping a card into another column changes its status; drop snaps 150ms + soft haptic; the status accent recolors."
418
+
419
+ - "Create the ClickUp bottom tab bar: 52pt + safe area, `#FFFFFF` / `#1B1B2E`, 1pt top border `#E7E7EF` / `#383852`. Four tabs — Home, Tasks, Inbox, Search — 22pt icons (filled active, stroked inactive), active `#7B68EE`, inactive `#9292A8` / `#6E6E88`, labels Plus Jakarta Sans 10pt w600 always shown. A 56pt squircle gradient FAB sits bottom-right."
420
+
421
+ ### Iteration Guide
422
+ 1. Canvas is white in light, deep blue-violet `#1B1B2E` in dark — complements the gradient, NOT neutral black
423
+ 2. The 3-stop gradient (`#7B68EE` → `#FD71AF` → `#49CCF9`) is reserved for the FAB, primary CTA, logo, and AI — never a background or body text
424
+ 3. The FAB is a SQUIRCLE (56pt, 18pt radius), not a circle — a deliberate brand signature
425
+ 4. Group the task list by the List's ordered custom status pills — SOLID, saturated, uppercased 10pt/800
426
+ 5. Priority is a colored flag triangle (Urgent red / High orange / Normal blue / Low gray)
427
+ 6. Embrace density — surface priority + tags + due + assignee per row; don't strip metadata
428
+ 7. Tags are ~22% tinted pills with saturated text; statuses (group headers) are the solid ones
429
+ 8. Mark every AI affordance with the gradient (AI bar tint + border, AI buttons, AI content backdrop)
430
+ 9. Typography is Plus Jakarta Sans, confident — task names 14pt/600, titles 800, status pills 10pt/800, tabular numerals
431
+ 10. Dark mode keeps the gradient + status colors identical, inverts text to `#F1F1F6`, uses 1pt borders + status accents where shadows vanish