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,411 @@
1
+ # Design System Inspiration of Zwift (iOS)
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ Zwift's iOS app is a window into a video game. Unlike a typical fitness tracker, the dominant surface is not a list or a card stack — it is a **full-bleed 3D virtual world**. When you ride, the screen is a rendered cycling game (Watopia's volcano, London's parks, a snow-capped Alpe), and every piece of interface is a **glassmorphic overlay** floating on top of it: a translucent route banner at the top, a row of big metric tiles at the bottom (the **rider HUD**: Power / Cadence / Heart-rate), an action bar, and ride-event toasts. The signature screen of Zwift is **the ride HUD**: your avatar on a road, the route name + lap progress, and three-to-five oversized numbers that must be readable from two metres away on an iPad propped in front of a turbo trainer.
6
+
7
+ The design philosophy is "game first, chrome second, numbers huge." Because the content behind the UI is a moving, full-color 3D scene, all chrome must be semi-transparent dark glass (`rgba(12,12,12,0.6)` with an 8pt blur) so the road, riders, and scenery read through it — never opaque cards that would block the world. The numbers are the other obsession: power, cadence, heart-rate, speed, distance, and W/kg are rendered in a **tall condensed display face** at 28–34pt+ so a sweating rider can glance at them mid-effort. Outside the ride — the home menu, route picker, workout library, profile, club hub — the app falls back to a more conventional dark app shell on a solid near-black base (`#161616`) with the same orange accent, but the *defining* experience is the heads-up overlay on the game.
8
+
9
+ The color system pairs a hot brand orange with a fixed, semantic data palette. **Zwift Orange (`#FC6719`)** is the brand action color: the Start Ride button, the rider's default jersey, route-progress fill, the active power-up, achievement bursts. Critically, the live ride metrics use a **fixed semantic color mapping** that Zwift users learn by muscle memory: **Power = orange (`#FC6719`)**, **Cadence = yellow (`#E8C547`)**, **Heart-rate = red (`#F0413E`)**, **W/kg = cyan (`#2BD4D9`)**, distance/time neutral white. This mapping is consistent across the phone app, the in-game HUD, and the companion overlays so a rider always knows which number is which by color alone. The app-shell surfaces use a neutral dark ladder (`#161616` → `#1F1F1F` → `#2A2A2A` → `#353535`), and achievement / segment-PR moments use a green (`#57C84D`).
10
+
11
+ Typography is a two-face system: a **tall condensed display face (Barlow Semi Condensed, the closest free analog to Zwift's in-game numerics)** for all big numbers, screen titles, route names, and buttons — chosen because condensed numerals pack maximum legibility into the small glass tiles — and **Inter** for body copy, list rows, captions, and settings where readability at small sizes matters more than punch. Every numeric read-out uses tabular figures so a `99` → `100` watt change does not make the HUD jump. Hierarchy: HUD metrics at 28–34pt/800 tabular, screen titles at 28pt/800 (often all-caps), section headers at 22pt/700, card/route titles at 18pt/700, body at 16pt/400 Inter, list rows at 15pt/600 Inter, captions at 13pt, and metric unit labels at 11pt/700 uppercase.
12
+
13
+ **Key Characteristics:**
14
+ - **Full-bleed 3D virtual world** is the canvas during a ride — the UI floats on a rendered game
15
+ - **Glassmorphic overlays** — all in-ride chrome is translucent dark glass (`rgba(12,12,12,0.6)` + blur)
16
+ - **Rider HUD** — big metric tiles (Power / Cadence / Heart-rate / W/kg) readable from 2m away
17
+ - **Fixed semantic metric colors** — Power orange, Cadence yellow, HR red, W/kg cyan (muscle-memory)
18
+ - **Zwift Orange (`#FC6719`)** is the brand action color — Start Ride, jersey, route progress, power-up
19
+ - **Tall condensed display face** (Barlow Semi Condensed analog) for all numbers/titles/buttons
20
+ - **Route banner** — translucent top strip: world + route name, distance/lap, orange progress bar
21
+ - **Power-Up** — a glanceable in-ride ability tile (orange when armed) — a game mechanic in the UI
22
+ - **Tabular figures** on every metric so the HUD never jumps as numbers change
23
+ - **App-shell fallback** — menus, route picker, workouts on a solid `#161616` dark base, same orange
24
+ - **Achievement bursts** — green (`#57C84D`) badges/route-completion + orange confetti moments
25
+ - Bottom action bar (Action / Power-Up / Workout / Riders / Menu) — game controls, not page nav
26
+
27
+ ## 2. Color Palette & Roles
28
+
29
+ ### Primary (Interactive / Brand)
30
+ - **Zwift Orange** (`#FC6719`): Brand action color — Start Ride, rider jersey, route-progress fill, armed power-up, primary CTAs, active nav.
31
+ - **Zwift Orange Pressed** (`#D9530E`): Pressed state on primary buttons.
32
+ - **Zwift Orange Soft** (`#3A2110`): ~12–20% orange tint — tonal fills, selected list rows, soft badges.
33
+
34
+ ### Ride Metric Semantics (FIXED — do not remap)
35
+ - **Power** (`#FC6719`): Watts read-out (shares the brand orange — power is the hero metric).
36
+ - **Cadence** (`#E8C547`): RPM read-out — warm yellow.
37
+ - **Heart-Rate** (`#F0413E`): BPM read-out — red.
38
+ - **W/kg & Effort** (`#2BD4D9`): Watts-per-kilo, FTP %, effort gauge — cyan.
39
+ - **Speed / Distance / Time** (`#FFFFFF`): Neutral white — context, not effort.
40
+
41
+ ### Glass Overlay Surfaces (over the 3D world)
42
+ - **Glass Panel** (`rgba(12,12,12,0.60)` + blur 8): HUD tiles, route banner, toasts.
43
+ - **Glass Panel Heavy** (`rgba(15,15,15,0.80)` + blur 12): action bar, modals over the world.
44
+ - **Glass Stroke** (`rgba(255,255,255,0.10)`): 1pt hairline on glass for definition.
45
+ - **Glass Button** (`rgba(255,255,255,0.10)` + blur): secondary in-ride glass buttons.
46
+
47
+ ### App-Shell Surfaces (solid, off-ride)
48
+ - **App Canvas** (`#161616`): Menus, route picker, workouts, profile background.
49
+ - **Card Surface** (`#1F1F1F`): Route cards, list rows, sheets.
50
+ - **Surface 2** (`#2A2A2A`): Inputs, raised chips, segmented track.
51
+ - **Surface 3** (`#353535`): Thumbnails, hovered/pressed rows.
52
+ - **Divider** (`#303030`): Hairline dividers in the app shell.
53
+
54
+ ### Text
55
+ - **Text Primary** (`#FFFFFF`): Titles, HUD numbers — pure white for max contrast on world + dark.
56
+ - **Text Secondary** (`#A8AAAD`): Captions, unit labels, metadata.
57
+ - **Text Tertiary** (`#6C6E72`): Disabled, low-emphasis.
58
+ - **Text on Orange** (`#FFFFFF`): Label on the orange CTA.
59
+
60
+ ### Semantic
61
+ - **Success / Achievement** (`#57C84D`): Route-complete, badge unlock, segment PR.
62
+ - **Warning** (`#E8C547`): Trainer disconnect, low-battery sensor (shares cadence yellow).
63
+ - **Error** (`#F0413E`): Pairing failure, sync error (shares HR red).
64
+ - **Drop / Ride-On** (`#FC6719`): "Ride On!" kudos burst (brand orange).
65
+
66
+ ### Color Roles Table
67
+
68
+ | Role | Value | Context |
69
+ |------|-------|---------|
70
+ | Brand action | `#FC6719` | Start Ride, jersey, progress, power-up |
71
+ | Power metric | `#FC6719` | Watts (hero number) |
72
+ | Cadence metric | `#E8C547` | RPM |
73
+ | Heart-rate metric | `#F0413E` | BPM |
74
+ | W/kg metric | `#2BD4D9` | Watts/kg, FTP%, effort |
75
+ | Glass panel | `rgba(12,12,12,0.60)` | In-ride overlays |
76
+ | Glass heavy | `rgba(15,15,15,0.80)` | Action bar, modals |
77
+ | App canvas | `#161616` | Off-ride shell |
78
+ | Card surface | `#1F1F1F` | Route/list cards |
79
+ | Surface 2 / 3 | `#2A2A2A` / `#353535` | Inputs, thumbs |
80
+ | Divider | `#303030` | App-shell hairlines |
81
+ | Text primary | `#FFFFFF` | Titles, HUD |
82
+ | Text secondary | `#A8AAAD` | Captions, units |
83
+ | Success | `#57C84D` | Achievements |
84
+
85
+ ## 3. Typography Rules
86
+
87
+ ### Font Family
88
+ - **Display / Numeric**: `Barlow Semi Condensed` (by Jeremy Tribby, SIL OFL) — the closest free analog to Zwift's in-game condensed numerics. Tall, condensed, high-impact; used for all big numbers, screen titles, route names, and button labels because condensed glyphs pack maximum legibility into small glass tiles viewed from a distance.
89
+ - **Body / UI**: `Inter` (by Rasmus Andersson, SIL OFL) — used for body copy, list rows, captions, settings, and any dense text where small-size readability beats punch.
90
+ - **System Fallback**: `-apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif`
91
+ - **Numeric rule**: every metric (watts, rpm, bpm, W/kg, km, time, FTP%) renders with **tabular figures** so the HUD never jumps as numbers change.
92
+ - **All-caps for action**: screen titles and button labels are frequently uppercase (game-UI energy); body text is sentence case.
93
+
94
+ ### Hierarchy
95
+
96
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
97
+ |------|------|------|--------|-------------|----------------|-------|
98
+ | HUD Metric (primary) | Barlow Semi Cond. | 34pt | 800 | 1.0 | -0.3pt | Watts/HR/cadence on glass — **tabular** |
99
+ | HUD Metric (compact) | Barlow Semi Cond. | 28pt | 800 | 1.0 | -0.2pt | Smaller tiles (W/kg, distance) — **tabular** |
100
+ | Screen Title | Barlow Semi Cond. | 28pt | 800 | 1.1 | 0.4pt | "RIDE", "WORKOUTS" — often all-caps |
101
+ | Section Header | Barlow Semi Cond. | 22pt | 700 | 1.2 | 0.2pt | "Choose Your Route" |
102
+ | Card / Route Title | Barlow Semi Cond. | 18pt | 700 | 1.25 | 0.2pt | "Watopia · Volcano Flat" |
103
+ | Body | Inter | 16pt | 400 | 1.5 | 0pt | Descriptions, event info, settings |
104
+ | List Row | Inter | 15pt | 600 | 1.35 | 0pt | Route/event/club rows |
105
+ | Caption | Inter | 13pt | 500 | 1.4 | 0pt | Distance/lap, timestamps, helper text |
106
+ | Metric Unit | Barlow Semi Cond. | 11pt | 700 | 1.0 | 0.6pt | WATTS / RPM / BPM — uppercase |
107
+ | Button | Barlow Semi Cond. | 16pt | 700 | 1.0 | 0.3pt | Primary button — uppercase |
108
+ | Tab / Action Label | Inter | 10pt | 600 | 1.0 | 0.1pt | Bottom action-bar labels |
109
+ | Badge | Barlow Semi Cond. | 11pt | 800 | 1.0 | 0.4pt | Achievement / power-up label — uppercase |
110
+
111
+ ### Principles
112
+ - **Numbers are the product**: HUD metrics use the condensed display face at 28–34pt+, tabular, so they read from a trainer 2m away — never shrink them to fit.
113
+ - **Two faces, clear split**: condensed display for numbers/titles/buttons; Inter for body/lists/captions — never mix within one element.
114
+ - **Tabular figures mandatory on metrics**: a 2-digit → 3-digit watt change must not shift the HUD.
115
+ - **All-caps signals action / game energy**: titles and buttons; body stays sentence case for readability.
116
+ - **Weight concentrated at 400 / 500 / 600 / 700 / 800**: Inter regular/medium/semibold for text; Barlow bold/extrabold for display.
117
+ - **Dynamic Type with floors**: body, list rows, captions scale; HUD metrics, unit labels, tab labels stay fixed (the glass-tile layout and glance-legibility depend on it).
118
+
119
+ ## 4. Component Stylings
120
+
121
+ ### Buttons
122
+
123
+ **Primary Button (Start Ride / Join Event)**
124
+ - Shape: rounded rectangle, 10pt corner radius
125
+ - Background: `#FC6719` (Zwift Orange) / text `#FFFFFF`
126
+ - Padding: 14pt vertical, 30pt horizontal; full-width hero variant spans content inset
127
+ - Font: Barlow Semi Condensed 16pt weight 700, **uppercase**, +0.3pt tracking
128
+ - Pressed: background `#D9530E` + scale 0.98
129
+ - Disabled: `#2A2A2A` background, `#6C6E72` text
130
+
131
+ **Secondary / Outline Button (Free Ride)**
132
+ - Background: transparent
133
+ - Border: 1.5pt `rgba(255,255,255,0.5)` (on world) or `#353535` (in app shell)
134
+ - Text: `#FFFFFF`, Barlow Semi Condensed 14pt weight 700, uppercase
135
+ - Corner radius: 10pt; padding 11pt / 22pt
136
+ - Pressed: background `rgba(255,255,255,0.1)`
137
+
138
+ **Glass Button (in-ride: Change Route / Camera)**
139
+ - Background: `rgba(255,255,255,0.10)` + blur 8
140
+ - Text: `#FFFFFF`, Barlow Semi Condensed 14pt/700 uppercase
141
+ - Corner radius: 10pt; padding 11pt / 20pt
142
+ - Sits directly on the 3D world; 1pt `rgba(255,255,255,0.10)` stroke
143
+
144
+ **Text Button (View all worlds)**
145
+ - Background: transparent
146
+ - Text: `#FC6719`, Inter 14pt weight 700
147
+ - No border; used in the app shell only
148
+
149
+ **Power-Up Tile (in-ride game ability)**
150
+ - 56pt rounded square (10pt radius), glass when empty, **solid `#FC6719`** when armed
151
+ - Center: power-up glyph (aero helmet, feather, truck) 24pt white
152
+ - A brief orange pulse + haptic when collected; tap (or volume button) to deploy
153
+
154
+ ### Core Atoms
155
+
156
+ **HUD Metric Tile** (the core atom)
157
+ - A glass tile: `rgba(12,12,12,0.60)` + blur 8, 12pt radius, ~10pt padding, min-width ~88pt
158
+ - Value: Barlow Semi Condensed 34pt/800, **tabular**, in the metric's fixed semantic color
159
+ - Unit: Barlow Semi Condensed 11pt/700 uppercase `#A8AAAD`, 4pt below the value
160
+ - Tiles sit in a row near the bottom of the world; 3–5 tiles depending on screen size
161
+ - Optional trend caret (▲/▼) for power vs. target during a structured workout
162
+
163
+ **Route Banner**
164
+ - Translucent top strip: `rgba(15,15,15,0.62)` + blur 8, 12pt radius, 14pt inset from edges
165
+ - Leading: 30pt orange flag/route badge
166
+ - Title: route name in Barlow Semi Condensed 16pt/700; sub: `12.4 / 19.3 km · Lap 2 of 3` Inter 11pt `#A8AAAD`
167
+ - Trailing/below: a 4pt progress bar, track `rgba(255,255,255,0.18)`, fill `#FC6719`
168
+
169
+ **Action Bar (in-ride)**
170
+ - Heavy glass: `rgba(18,18,18,0.92)` + blur 20, 0.5pt `#303030` top stroke, ~78pt incl. home indicator
171
+ - 5 controls: Action (U-turn/elbow/wave), Power-Up, Workout, Riders, Menu
172
+ - 22pt icons; default `#A8AAAD`; the armed Power-Up tints `#FC6719` with a soft fill
173
+ - Labels: Inter 10pt/600
174
+
175
+ **Route Card (off-ride picker)**
176
+ - `#1F1F1F` card, 12pt radius; a world thumbnail (16:9), an orange "elevation" sparkline
177
+ - Title (Barlow 18pt/700), stats row (distance / elevation / lead-in) Inter 13pt `#A8AAAD`
178
+ - Trailing chevron; tap → route detail with a "Start" CTA
179
+
180
+ **Event Row (rides / races / workouts list)**
181
+ - `#1F1F1F` row; leading time block (Barlow tabular), title (Inter 15pt/600), category badge (A/B/C/D color-coded), W/kg range in cyan
182
+ - Trailing "Join" pill (orange when within join window)
183
+
184
+ **Achievement Burst**
185
+ - Center toast on the world: green (`#57C84D`) badge + Barlow 11pt/800 uppercase label
186
+ - "ROUTE COMPLETE" / "NEW PR" / "LEVEL UP" + a brief orange confetti sweep + haptic
187
+
188
+ **Ride-On Burst ("Ride On!")**
189
+ - A small orange thumbs/lightning burst overlay when another rider gives you kudos — `#FC6719`, 600ms fade
190
+
191
+ ### Navigation
192
+
193
+ **Bottom Action Bar (in-ride — game controls, not page nav)**
194
+ - See Action Bar above — Action / Power-Up / Workout / Riders / Menu
195
+ - This is the in-game control surface, distinct from the app-shell tab bar
196
+
197
+ **App-Shell Tab Bar (off-ride)**
198
+ - Height: ~64pt incl. home indicator; background `#161616` with 0.5pt `#303030` top border
199
+ - Tabs: Home, Workouts, Events, Clubs, Profile
200
+ - 22pt icons; active `#FC6719`; inactive `#6C6E72`; labels Inter 10pt/600
201
+ - No tint pill — active is icon color only
202
+
203
+ **Top Bar (app shell)**
204
+ - Screen title in Barlow Semi Condensed 28pt/800 (often uppercase), collapsing on scroll
205
+ - Leading back chevron; trailing contextual icon (filter, search, settings)
206
+
207
+ ### Input Fields
208
+
209
+ **Search Field (route / event / rider search)**
210
+ - 40pt tall, `#2A2A2A` bg, 10pt radius, leading 16pt magnifier `#A8AAAD`
211
+ - Placeholder Inter 15pt `#6C6E72`; focus → 1.5pt `#FC6719` border
212
+
213
+ **Stepper / Slider (FTP, weight, trainer difficulty)**
214
+ - Track `#2A2A2A`; filled portion + thumb `#FC6719`; value in Barlow tabular
215
+ - Used in workout setup and profile
216
+
217
+ **Segmented Control (Free Ride / Workout / Event)**
218
+ - Track `#2A2A2A`, 10pt radius; selected segment `#FC6719` text-on-fill or `#353535` with white text; unselected `#A8AAAD`
219
+
220
+ ### Distinctive Components
221
+
222
+ **The Rider HUD**
223
+ - The signature Zwift component: a row of glass metric tiles over the 3D world, each value in its fixed semantic color, big condensed tabular numerals — readable from a turbo trainer
224
+
225
+ **Glassmorphic Overlay System**
226
+ - Every in-ride panel is translucent dark glass + blur so the game reads through — never opaque
227
+
228
+ **Power-Up Mechanic**
229
+ - An in-UI game ability: a glass tile that fills solid orange when a power-up is armed, deployable mid-ride — a videogame affordance living in a fitness app
230
+
231
+ **Route / Elevation Profile**
232
+ - A live elevation strip showing the course; the rider's position marker advances along it; gradient % shown in a small glass chip; the climb segment can recolor by gradient
233
+
234
+ **Structured Workout Bar**
235
+ - During a workout: a colored interval graph (zones Z1–Z6 in a blue→red ramp) scrolling under a "now" line; target power vs. actual shown with the trend caret
236
+
237
+ **Achievement & Level System**
238
+ - XP bar, level-up bursts, route badges, drops (in-game currency) — green/orange game feedback
239
+
240
+ **Companion Mini-Map**
241
+ - A glass mini-map of the world with rider dots; tap to open the full map / "ride with" a friend
242
+
243
+ **Ride-On Kudos**
244
+ - The orange "Ride On!" burst — Zwift's signature social micro-interaction
245
+
246
+ ## 5. Layout Principles
247
+
248
+ ### Spacing System
249
+ - Base unit: 4pt
250
+ - Scale: 4, 8, 10, 12, 14, 16, 20, 24, 32, 40, 56
251
+ - In-ride overlay inset: 14pt from screen edges (world bleeds full-screen behind)
252
+ - HUD tile gap: 8–12pt; tile internal padding ~10pt
253
+ - App-shell content inset: 16pt; card gap 12pt
254
+ - Section gap: 24pt
255
+
256
+ ### Grid & Container
257
+ - In-ride: world is full-bleed; overlays are anchored (banner top, HUD bottom, action bar bottom)
258
+ - HUD: a centered/spread row of 3–5 equal tiles; drops to 3 on iPhone, up to 5 on iPad
259
+ - App shell: single column, 16pt insets; route grid can be 2-up on iPad
260
+ - Elevation profile: full-width strip, fixed ~64pt height
261
+
262
+ ### Whitespace Philosophy
263
+ - **The world is the whitespace**: in-ride, negative space *is* the 3D scene — keep overlays minimal so the game breathes
264
+ - **Glass, not blocks**: never cover the world with opaque panels; translucency keeps spatial context
265
+ - **Numbers get maximum air**: HUD tiles are generously padded so the big numerals never feel cramped
266
+ - **App shell is conventional**: off-ride, standard dark-app spacing — cards, lists, 16pt insets
267
+
268
+ ### Border Radius Scale
269
+ - Square (0pt): full-bleed world, elevation strip edges
270
+ - Subtle (4pt): micro chips, segment ticks
271
+ - Small (8pt): route badges, small glass chips
272
+ - Standard (10pt): buttons, power-up tile, glass buttons, search, segmented control
273
+ - Comfortable (12pt): HUD tiles, route banner, route cards, sheets
274
+ - Large (20pt): bottom sheets, modals
275
+ - Pill (500pt): "Join" pills, filter chips, category badges
276
+ - Circle (50%): rider avatars, mini-map dots
277
+
278
+ ## 6. Depth & Elevation
279
+
280
+ Zwift's depth model is unusual: the *real* depth is the rendered 3D world itself (true perspective, parallax, lighting). The 2D UI sits in flat layers *above* the game, separated by translucency + blur rather than drop shadows — a shadow on glass would fight the scene.
281
+
282
+ | Layer | Treatment | Use |
283
+ |-------|-----------|-----|
284
+ | World (Layer -1) | Rendered 3D scene, real perspective/lighting | The ride itself |
285
+ | Glass (Layer 0) | `rgba(12,12,12,0.60)` + blur 8, 1pt `rgba(255,255,255,0.10)` stroke | HUD tiles, route banner |
286
+ | Glass Heavy (Layer 1) | `rgba(18,18,18,0.92)` + blur 20 | Action bar, in-ride modals |
287
+ | App Card (Layer 1, off-ride) | `#1F1F1F`, no shadow | Route/event cards in the shell |
288
+ | Floating (Layer 2) | `rgba(0,0,0,0.5) 0 8px 24px` (app shell only) | Sheets, dropdowns off-ride |
289
+ | Sheet (Layer 3) | `rgba(0,0,0,0.6) 0 -10px 32px` + 20pt top radius | Bottom sheets |
290
+ | Overlay scrim | `rgba(0,0,0,0.55)` | Behind modals (dims the world or shell) |
291
+
292
+ **Shadow Philosophy**: in-ride, depth is the game's real 3D rendering; UI separation is achieved with frosted glass + a 1pt light stroke, never drop shadows (which would look pasted onto the scene). Drop shadows are only used in the off-ride app shell for sheets and dropdowns, where there is no 3D scene to respect.
293
+
294
+ ### Motion
295
+ - **HUD metric update**: numbers tick smoothly (no jump) — interpolate value changes over ~200ms; tabular figures keep width fixed
296
+ - **Power-Up collected**: tile fills orange with a 250ms scale-pop + glow + medium haptic; "armed" state pulses subtly
297
+ - **Power-Up deployed**: tile empties with a 200ms sweep + a world VFX (draft boost, etc.)
298
+ - **Achievement burst**: badge scales 0.8→1.0 (300ms spring), green glow, orange confetti sweep (~800ms), success haptic
299
+ - **Ride-On**: orange burst fades in/out over 600ms with a soft haptic
300
+ - **Route progress**: the orange bar advances continuously (linear, 1:1 with distance)
301
+ - **Overlay show/hide**: glass panels fade + 8pt slide (200ms ease-out); tap world to toggle HUD visibility
302
+ - **App-shell nav**: standard iOS push (300ms); route picker cards parallax slightly on scroll
303
+ - **Lap / segment**: a brief glass toast slides down (250ms), shows split time, auto-dismisses (3s)
304
+ - **Haptics**: medium on power-up collect/deploy, success on achievement, soft on Ride-On and lap
305
+
306
+ ## 7. Do's and Don'ts
307
+
308
+ ### Do
309
+ - Keep the 3D world full-bleed during a ride — it is the canvas, not a background image
310
+ - Make every in-ride panel glassmorphic (`rgba(12,12,12,0.6)` + blur) so the game reads through
311
+ - Use the fixed metric color mapping — Power orange, Cadence yellow, HR red, W/kg cyan — always
312
+ - Render HUD numbers in the tall condensed face at 28–34pt+, tabular, for 2-metre legibility
313
+ - Use Zwift Orange (`#FC6719`) for the brand actions — Start Ride, jersey, route progress, power-up
314
+ - Treat the Power-Up as a real game affordance (glass when empty, solid orange when armed)
315
+ - Interpolate metric value changes (~200ms) so the HUD ticks smoothly and never jumps
316
+ - Use uppercase Barlow for titles and buttons (game energy); Inter sentence-case for body
317
+ - Fall back to a conventional `#161616` dark app shell for menus / route picker / profile
318
+ - Celebrate achievements with green (`#57C84D`) + an orange confetti burst + haptic
319
+ - Separate UI from the world with frosted glass + a 1pt light stroke, not drop shadows
320
+
321
+ ### Don't
322
+ - Don't cover the world with opaque panels — translucency preserves spatial context
323
+ - Don't remap the metric semantic colors — riders know them by muscle memory
324
+ - Don't shrink HUD numbers to fit more chrome — legibility from a trainer is non-negotiable
325
+ - Don't use proportional figures on metrics — tabular only, so the HUD doesn't jump
326
+ - Don't put drop shadows on in-ride glass — they look pasted onto the 3D scene
327
+ - Don't mix the two faces within one element (no Inter digits in a Barlow title, etc.)
328
+ - Don't use the app-shell solid surfaces over the world — those are off-ride only
329
+ - Don't make the bottom action bar a "page nav" — it's in-game controls (Action/Power-Up/etc.)
330
+ - Don't animate the world's UI aggressively — overlays fade/slide quietly (200–300ms)
331
+ - Don't lowercase button labels — Zwift's CTAs are uppercase, condensed, energetic
332
+ - Don't use orange for cadence/HR — orange is power + brand only
333
+
334
+ ## 8. Responsive Behavior
335
+
336
+ ### Device Sizes
337
+ | Device | Width | Key Changes |
338
+ |--------|-------|-------------|
339
+ | iPhone SE (3rd gen) | 375pt | HUD shows 3 tiles; route banner sub-line truncates |
340
+ | iPhone 13 / 14 / 15 | 390pt | Standard 3-tile HUD |
341
+ | iPhone 15 / 16 Pro | 393pt | Dynamic Island avoided by the route banner; HUD unaffected |
342
+ | iPhone 15 / 16 Pro Max | 430pt | HUD can show 4 tiles; larger numerals |
343
+ | iPad (portrait) | 768pt | HUD 4–5 tiles; mini-map visible; route picker 2-up |
344
+ | iPad (landscape) | 1024pt+ | The primary "trainer" layout — full HUD, mini-map, elevation strip all visible |
345
+
346
+ ### Dynamic Type
347
+ - Scales: body, list rows, captions, settings (Inter)
348
+ - Fixed: HUD metrics, metric unit labels, screen titles, button labels, tab labels (Barlow display — glance-legibility and glass-tile layout depend on it)
349
+ - Numeric metrics never scale with Dynamic Type but always retain tabular figures
350
+
351
+ ### Orientation
352
+ - **In-ride: landscape-preferred** (the trainer layout) — the world + full HUD shine in landscape; portrait shows a reduced 3-tile HUD
353
+ - App shell: portrait-primary; supports rotation on iPad
354
+ - Elevation strip and mini-map re-flow per orientation
355
+
356
+ ### Touch Targets
357
+ - HUD tiles: large by nature (~88pt+ wide), tap to expand a metric detail
358
+ - Power-Up tile: 56pt, 44pt+ effective hit
359
+ - Action-bar controls: 22pt glyph, 49pt hit
360
+ - App-shell rows: 44pt+ tall
361
+ - "Join" / category pills: 32pt+ tall
362
+
363
+ ### Safe Area Handling
364
+ - In-ride: the route banner clears the Dynamic Island / notch; the action bar respects the home indicator; the world bleeds under both
365
+ - App shell: standard safe-area insets; tab bar respects the home indicator
366
+ - Keyboard (search): app-shell content scrolls above the keyboard
367
+ - Sides: 14pt overlay inset in-ride, 16pt content inset in the shell
368
+
369
+ ## 9. Agent Prompt Guide
370
+
371
+ ### Quick Color Reference
372
+ - Brand action / Power: `#FC6719`
373
+ - Orange pressed: `#D9530E`
374
+ - Cadence (RPM): `#E8C547`
375
+ - Heart-rate (BPM): `#F0413E`
376
+ - W/kg & effort: `#2BD4D9`
377
+ - Glass panel: `rgba(12,12,12,0.60)` + blur 8
378
+ - Glass heavy (action bar): `rgba(18,18,18,0.92)` + blur 20
379
+ - Glass stroke: `rgba(255,255,255,0.10)`
380
+ - App canvas (off-ride): `#161616`
381
+ - Card surface: `#1F1F1F`
382
+ - Surface 2 / 3: `#2A2A2A` / `#353535`
383
+ - Divider: `#303030`
384
+ - Text primary: `#FFFFFF`
385
+ - Text secondary: `#A8AAAD`
386
+ - Success / achievement: `#57C84D`
387
+
388
+ ### Example Component Prompts
389
+ - "Build the Zwift rider HUD in SwiftUI: a horizontal row of 3 glass metric tiles over a full-bleed 3D scene. Each tile: `.ultraThinMaterial` tinted `rgba(12,12,12,0.60)`, 12pt radius, ~10pt padding, 1pt `rgba(255,255,255,0.10)` stroke. Value in Barlow Semi Condensed 34pt weight 800, `.monospacedDigit()`, in the metric's fixed color (Power `#FC6719`, Cadence `#E8C547`, HR `#F0413E`); unit label below in Barlow 11pt/700 uppercase `#A8AAAD`. Interpolate value changes over 200ms so numbers tick, never jump."
390
+
391
+ - "Create the Zwift route banner: a translucent top strip, `rgba(15,15,15,0.62)` + blur 8, 12pt radius, 14pt inset from screen edges, clearing the Dynamic Island. Leading 30pt orange route badge. Title 'Watopia · Volcano Flat' in Barlow Semi Condensed 16pt/700 white; sub-line '12.4 / 19.3 km · Lap 2 of 3' in Inter 11pt `#A8AAAD`. Below: a 4pt progress bar, track `rgba(255,255,255,0.18)`, fill `#FC6719`, advancing linearly with distance."
392
+
393
+ - "Build the Zwift Power-Up tile: a 56pt rounded square (10pt radius). Empty state: glass (`rgba(255,255,255,0.10)` + blur) with a faint glyph. Armed state: solid `#FC6719` with a white 24pt power-up glyph (aero helmet / feather / truck). On collect, scale-pop 0.8→1.0 over 250ms + an orange glow + a medium haptic, then a subtle armed pulse. Tap to deploy: empty with a 200ms sweep."
394
+
395
+ - "Render the Zwift in-ride action bar: heavy glass `rgba(18,18,18,0.92)` + blur 20, 0.5pt `#303030` top stroke, ~78pt tall incl. home indicator. 5 controls: Action, Power-Up, Workout, Riders, Menu — 22pt icons, default `#A8AAAD`, labels Inter 10pt/600. The Power-Up control tints `#FC6719` with a soft fill when a power-up is armed. This is a game-control surface, not page navigation."
396
+
397
+ - "Create the Zwift primary CTA: a `#FC6719` button, 10pt radius, 14×30pt padding, label in Barlow Semi Condensed 16pt weight 700 UPPERCASE with +0.3pt tracking, white text. Pressed: `#D9530E` + scale 0.98. Use for 'START RIDE' / 'JOIN EVENT'."
398
+
399
+ - "Render the Zwift off-ride route card: `#1F1F1F`, 12pt radius, a 16:9 world thumbnail, an orange elevation sparkline, title in Barlow 18pt/700, a stats row (distance / elevation / lead-in) in Inter 13pt `#A8AAAD`, trailing chevron. App-shell canvas behind is solid `#161616` (no glass off-ride)."
400
+
401
+ ### Iteration Guide
402
+ 1. In-ride, the 3D world is full-bleed — UI floats on top as glass, never as opaque cards
403
+ 2. All in-ride chrome is glassmorphic: `rgba(12,12,12,0.6)` + blur, 1pt white stroke — no drop shadows
404
+ 3. Metric colors are FIXED and learned by muscle memory — Power orange, Cadence yellow, HR red, W/kg cyan
405
+ 4. HUD numbers are tall condensed Barlow at 28–34pt+, tabular — readable from a trainer 2m away
406
+ 5. Zwift Orange `#FC6719` is brand action (Start Ride, jersey, route progress, armed power-up)
407
+ 6. The Power-Up is a real game affordance — glass when empty, solid orange when armed
408
+ 7. Interpolate metric changes (~200ms) so the HUD ticks smoothly and never jumps
409
+ 8. Uppercase Barlow for titles/buttons (game energy); Inter sentence-case for body/lists
410
+ 9. Off-ride menus/route picker/profile fall back to a conventional solid `#161616` dark shell
411
+ 10. Achievements are green `#57C84D` + an orange confetti burst + haptic; in-ride is landscape-preferred
@@ -0,0 +1,125 @@
1
+ # Design System Inspired by Kraken
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ Kraken's website is a clean, trustworthy crypto exchange that uses purple as its commanding brand color. The design operates on white backgrounds with Kraken Purple (`#7132f5`, `#5741d8`, `#5b1ecf`) creating a distinctive, professional crypto identity. The proprietary Kraken-Brand font handles display headings with bold (700) weight and negative tracking, while Kraken-Product (with IBM Plex Sans fallback) serves as the UI workhorse.
6
+
7
+ **Key Characteristics:**
8
+ - Kraken Purple (`#7132f5`) as primary brand with darker variants (`#5741d8`, `#5b1ecf`)
9
+ - Kraken-Brand (display) + Kraken-Product (UI) dual font system
10
+ - Near-black (`#101114`) text with cool blue-gray neutral scale
11
+ - 12px radius buttons (rounded but not pill)
12
+ - Subtle shadows (`rgba(0,0,0,0.03) 0px 4px 24px`) — whisper-level
13
+ - Green accent (`#149e61`) for positive/success states
14
+
15
+ ## 2. Color Palette & Roles
16
+
17
+ ### Primary
18
+ - **Kraken Purple** (`#7132f5`): Primary CTA, brand accent, links
19
+ - **Purple Dark** (`#5741d8`): Button borders, outlined variants
20
+ - **Purple Deep** (`#5b1ecf`): Deepest purple
21
+ - **Purple Subtle** (`rgba(133,91,251,0.16)`): Purple at 16% — subtle button backgrounds
22
+ - **Near Black** (`#101114`): Primary text
23
+
24
+ ### Neutral
25
+ - **Cool Gray** (`#686b82`): Primary neutral, borders at 24% opacity
26
+ - **Silver Blue** (`#9497a9`): Secondary text, muted elements
27
+ - **White** (`#ffffff`): Primary surface
28
+ - **Border Gray** (`#dedee5`): Divider borders
29
+
30
+ ### Semantic
31
+ - **Green** (`#149e61`): Success/positive at 16% opacity for badges
32
+ - **Green Dark** (`#026b3f`): Badge text
33
+
34
+ ## 3. Typography Rules
35
+
36
+ ### Font Families
37
+ - **Display**: `Kraken-Brand`, fallbacks: `IBM Plex Sans, Helvetica, Arial`
38
+ - **UI / Body**: `Kraken-Product`, fallbacks: `Helvetica Neue, Helvetica, Arial`
39
+
40
+ ### Hierarchy
41
+
42
+ | Role | Font | Size | Weight | Line Height | Letter Spacing |
43
+ |------|------|------|--------|-------------|----------------|
44
+ | Display Hero | Kraken-Brand | 48px | 700 | 1.17 | -1px |
45
+ | Section Heading | Kraken-Brand | 36px | 700 | 1.22 | -0.5px |
46
+ | Sub-heading | Kraken-Brand | 28px | 700 | 1.29 | -0.5px |
47
+ | Feature Title | Kraken-Product | 22px | 600 | 1.20 | normal |
48
+ | Body | Kraken-Product | 16px | 400 | 1.38 | normal |
49
+ | Body Medium | Kraken-Product | 16px | 500 | 1.38 | normal |
50
+ | Button | Kraken-Product | 16px | 500–600 | 1.38 | normal |
51
+ | Caption | Kraken-Product | 14px | 400–700 | 1.43–1.71 | normal |
52
+ | Small | Kraken-Product | 12px | 400–500 | 1.33 | normal |
53
+ | Micro | Kraken-Product | 7px | 500 | 1.00 | uppercase |
54
+
55
+ ## 4. Component Stylings
56
+
57
+ ### Buttons
58
+
59
+ **Primary Purple**
60
+ - Background: `#7132f5`
61
+ - Text: `#ffffff`
62
+ - Padding: 13px 16px
63
+ - Radius: 12px
64
+
65
+ **Purple Outlined**
66
+ - Background: `#ffffff`
67
+ - Text: `#5741d8`
68
+ - Border: `1px solid #5741d8`
69
+ - Radius: 12px
70
+
71
+ **Purple Subtle**
72
+ - Background: `rgba(133,91,251,0.16)`
73
+ - Text: `#7132f5`
74
+ - Padding: 8px
75
+ - Radius: 12px
76
+
77
+ **White Button**
78
+ - Background: `#ffffff`
79
+ - Text: `#101114`
80
+ - Radius: 10px
81
+ - Shadow: `rgba(0,0,0,0.03) 0px 4px 24px`
82
+
83
+ **Secondary Gray**
84
+ - Background: `rgba(148,151,169,0.08)`
85
+ - Text: `#101114`
86
+ - Radius: 12px
87
+
88
+ ### Badges
89
+ - Success: `rgba(20,158,97,0.16)` bg, `#026b3f` text, 6px radius
90
+ - Neutral: `rgba(104,107,130,0.12)` bg, `#484b5e` text, 8px radius
91
+
92
+ ## 5. Layout Principles
93
+
94
+ ### Spacing: 1px, 2px, 3px, 4px, 5px, 6px, 8px, 10px, 12px, 13px, 15px, 16px, 20px, 24px, 25px
95
+ ### Border Radius: 3px, 6px, 8px, 10px, 12px, 16px, 9999px, 50%
96
+
97
+ ## 6. Depth & Elevation
98
+ - Subtle: `rgba(0,0,0,0.03) 0px 4px 24px`
99
+ - Micro: `rgba(16,24,40,0.04) 0px 1px 4px`
100
+
101
+ ## 7. Do's and Don'ts
102
+
103
+ ### Do
104
+ - Use Kraken Purple (#7132f5) for CTAs and links
105
+ - Apply 12px radius on all buttons
106
+ - Use Kraken-Brand for headings, Kraken-Product for body
107
+
108
+ ### Don't
109
+ - Don't use pill buttons — 12px is the max radius for buttons
110
+ - Don't use other purples outside the defined scale
111
+
112
+ ## 8. Responsive Behavior
113
+ Breakpoints: 375px, 425px, 640px, 768px, 1024px, 1280px, 1536px
114
+
115
+ ## 9. Agent Prompt Guide
116
+
117
+ ### Quick Color Reference
118
+ - Brand: Kraken Purple (`#7132f5`)
119
+ - Dark variant: `#5741d8`
120
+ - Text: Near Black (`#101114`)
121
+ - Secondary text: `#9497a9`
122
+ - Background: White (`#ffffff`)
123
+
124
+ ### Example Component Prompts
125
+ - "Create hero: white background. Kraken-Brand 48px weight 700, letter-spacing -1px. Purple CTA (#7132f5, 12px radius, 13px 16px padding)."