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,405 @@
1
+ # Design System Inspiration of Southwest (iOS)
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ Southwest's iOS app is built around a single product truth that no other airline shares: **there are no assigned seats**. You don't pick 14C. You get a *boarding position* — a letter group (A, B, or C) and a number (1–60) — and you board in that order. So the entire app is engineered around two moments that don't exist anywhere else in air travel: the **24-hour check-in countdown** (you must check in exactly 24 hours before departure to earn the lowest possible boarding number) and the **boarding-position reveal** (a giant `A23` readout that tells you exactly where you stand in line). Every other screen — booking, trips, Rapid Rewards — is in service of getting you to a good boarding position and a friendly, low-stress trip.
6
+
7
+ The brand is anchored by the **Heart**, Southwest's tri-color logo: a heart split into Southwest Blue (`#304CB2`), Bold Red (`#E51D23`), and Warm Yellow (`#F9B612`). These three colors are not decorative — they are a strict role system. **Blue is structure** (canvas, headers, primary chrome, the brand frame). **Yellow is action** (the primary CTA, the boarding-position number, the "do this now" signal — it is Southwest's "Spotify Green"). **Red is alerts only** (cancellations, irregular operations, destructive confirms) — it is never used for decoration, never for a happy CTA. This discipline is the signature of the system: a Southwest screen is mostly navy and white with one loud yellow element, and red appears only when something is wrong.
8
+
9
+ The app's personality is **warm, plainspoken, and a little playful** — "Bags fly free", "Wanna Get Away", "Transfarency", "LUV" (the NYSE ticker and the spirit). Copy is friendly and direct; the UI never tries to be clever or minimal for its own sake. Cards are generously rounded (16–20pt), the boarding position is enormous and unmissable, and the check-in countdown is treated like a launch clock. The light theme is white surfaces on a soft cool-gray wash with Southwest Blue chrome; the dark theme (documented here as the primary catalog rendering) drops to a deep navy `#0E1726` (a darkened Southwest Blue, never neutral black) with the exact same Yellow and Red so the brand reads identically in any light.
10
+
11
+ Typography is **Southwest Sans** (the airline's proprietary humanist sans, by Monotype) with **Inter** as the open-source fallback for implementation. Hierarchy is loud and confident: the boarding group can reach 88pt weight 900, screen titles are 32pt weight 900, and even body copy leans heavier (400–500) than a typical iOS app, matching the friendly, high-contrast tone. Numbers — boarding positions, fares, points balances, countdown clocks — are always the heaviest, largest things on their screen.
12
+
13
+ **Key Characteristics:**
14
+ - No seat map anywhere — the product is a **boarding position** (group A/B/C + number 1–60), not a seat
15
+ - **24-hour check-in countdown** — a launch-clock ring; check in exactly at T-24h for the best position
16
+ - Giant **boarding-position readout** (`A23`) — Warm Yellow group letter, white position number, the loudest element on screen
17
+ - **Heart tri-color role system** — Blue = structure, Yellow = action, Red = alerts only (never decoration)
18
+ - **Wanna Get Away fare ladder** — Wanna Get Away / WGA Plus / Anytime / Business Select, dollars + Rapid Rewards points
19
+ - **Rapid Rewards** points-forward loyalty — balance pill, A-List / A-List Preferred tiers, Companion Pass
20
+ - "Bags fly free", "Transfarency", "no change fees" — friendly, plainspoken value props surfaced as cards
21
+ - Deep navy canvas (`#0E1726`) dark / soft cool-gray + white light — never neutral black, always brand-tinted
22
+ - Generously rounded cards (16–20pt), heavy numeric type (up to 900 weight), confident high-contrast hierarchy
23
+ - Bottom tab bar: Home / Book / Trips / Rapid Rewards / Account — Yellow active tint, no pill
24
+
25
+ ## 2. Color Palette & Roles
26
+
27
+ ### Primary (Interactive)
28
+ - **Warm Yellow** (`#F9B612`): THE primary action color — primary CTA fill ("Check in", "Continue"), the boarding-position group letter, "do this now" signals. Southwest's brand-defining accent.
29
+ - **Warm Yellow Pressed** (`#E0A300`): Pressed/active state of the primary CTA.
30
+ - **Southwest Blue** (`#304CB2`): Structural brand color — secondary CTA fill, headers, the Heart frame, selected chips, brand surfaces.
31
+ - **Bright Blue** (`#2567E8`): Link / interactive text color — used for inline links and ghost-button borders; on dark it brightens for WCAG AA on the navy canvas.
32
+
33
+ ### Canvas & Surfaces (Light Mode)
34
+ - **Canvas** (`#FFFFFF`): Primary light canvas — clean white.
35
+ - **Surface Wash** (`#F2F5FB`): App background behind cards, grouped-table backdrop — a soft cool gray-blue, never neutral.
36
+ - **Surface Card** (`#FFFFFF`): Card and sheet fills, elevated above the wash with a soft shadow.
37
+ - **Surface Pressed** (`#E7ECF6`): Pressed list rows.
38
+ - **Divider** (`#DCE2EE`): Hairline dividers between rows and sections.
39
+
40
+ ### Canvas & Surfaces (Dark Mode)
41
+ - **Navy Canvas** (`#0E1726`): Primary dark canvas — a darkened Southwest Blue, NOT neutral black.
42
+ - **Dark Surface 1** (`#16223A`): Card and sheet fills.
43
+ - **Dark Surface 2** (`#1F2E4A`): Raised tiles, segmented controls, secondary fills.
44
+ - **Dark Divider** (`#2A3A57`): Hairline dividers on dark.
45
+
46
+ ### Text
47
+ - **Text Primary Light** (`#1A2233`): Primary text on light — a deep navy-ink, NOT pure black.
48
+ - **Text Secondary Light** (`#5A6783`): Metadata, captions, secondary labels.
49
+ - **Text Tertiary Light** (`#8C99B3`): Disabled, very low-emphasis, placeholder.
50
+ - **Text Primary Dark** (`#EAF0FA`): Primary text on the navy canvas.
51
+ - **Text Secondary Dark** (`#9DAAC4`): Metadata on dark.
52
+ - **Text Tertiary Dark** (`#67748F`): Disabled / inactive on dark.
53
+ - **Text On Yellow** (`#1A1A1A`): Text/icon color on the Warm Yellow CTA — near-black for AA contrast.
54
+ - **Text On Blue** (`#FFFFFF`): Text on Southwest Blue fills.
55
+
56
+ ### Heart Tri-Color (Brand)
57
+ The three Heart colors are a strict role system — not a palette to mix freely.
58
+
59
+ | Heart Color | Hex | Role |
60
+ |-------------|-----|------|
61
+ | Southwest Blue | `#304CB2` | Structure — chrome, headers, secondary CTA, brand frame |
62
+ | Bold Red | `#E51D23` | Alerts only — cancellations, irregular ops, destructive confirm |
63
+ | Warm Yellow | `#F9B612` | Action — primary CTA, boarding position, "do this now" |
64
+
65
+ ### Semantic
66
+
67
+ | Role | Light | Dark |
68
+ |------|-------|------|
69
+ | Success / On Time | `#1E8E4E` | `#1FAE5E` |
70
+ | Warning / Delay | `#F9B612` | `#F9B612` |
71
+ | Error / Cancelled | `#E51D23` | `#E51D23` |
72
+ | Info | `#304CB2` | `#2567E8` |
73
+ | Boarding Position (group) | `#F9B612` | `#F9B612` |
74
+ | Boarding Position (number) | `#1A2233` on yellow card / `#FFFFFF` on blue card | `#FFFFFF` |
75
+ | Points / Rapid Rewards | `#304CB2` | `#2567E8` |
76
+
77
+ ### Semantic Notes
78
+ - **Red is sacred**: `#E51D23` appears ONLY for flight cancellations, irregular operations, schedule changes, and destructive confirmations ("Cancel reservation"). Never a CTA, never decoration, never a "sale" badge.
79
+ - **Yellow is the one CTA**: there is exactly one Warm Yellow element per screen in most cases — the primary action. If two yellows compete, the layout is wrong.
80
+ - **Blue carries everything else**: navigation, structure, secondary actions, the brand frame, points. It is the workhorse.
81
+ - **The boarding position owns its screen**: the `A23` readout is always the largest, heaviest, highest-contrast element wherever it appears.
82
+
83
+ ## 3. Typography Rules
84
+
85
+ ### Font Family
86
+ - **Brand Font**: `Southwest Sans` (proprietary humanist sans by Monotype for Southwest Airlines) — friendly, rounded terminals, excellent at large display sizes for fares and boarding positions.
87
+ - **Implementation Fallback**: `Inter` (by Rasmus Andersson, SIL OFL) — closest free humanist sans with a full 100–900 weight range and superb numerals; use for clones.
88
+ - **System Fallback Stack**: `-apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif`
89
+ - **Numerals**: tabular, lining figures everywhere numbers update (countdown clock, fares, points balance) so digits don't jitter.
90
+
91
+ ### Hierarchy
92
+
93
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
94
+ |------|------|------|--------|-------------|----------------|-------|
95
+ | Boarding Group | Southwest Sans | 88pt | 900 | 0.9 | -2pt | The `A` letter — Warm Yellow, the loudest glyph in the app |
96
+ | Boarding Number | Southwest Sans | 52pt | 800 | 1.0 | -1pt | The `23` — white, paired with the group letter |
97
+ | Screen Title | Southwest Sans | 32pt | 900 | 1.1 | -0.4pt | "Your trip", "Book a flight" |
98
+ | Airport Code | Southwest Sans | 26pt | 800 | 1.05 | -0.4pt | `DAL`, `MDW` — 3-letter codes on the flight strip |
99
+ | Section Header | Southwest Sans | 22pt | 800 | 1.2 | -0.2pt | "Wanna Get Away", "Choose your flight" |
100
+ | Subsection | Southwest Sans | 18pt | 700 | 1.3 | -0.1pt | "Rapid Rewards", "Trip details" |
101
+ | Body | Southwest Sans | 16pt | 400 | 1.5 | 0pt | Paragraph copy, value props |
102
+ | Body Emphasis | Southwest Sans | 16pt | 600 | 1.5 | 0pt | Inline emphasis, bolded value words |
103
+ | Card Title | Southwest Sans | 15pt | 600 | 1.35 | 0pt | "Board in group A, position 23" |
104
+ | Fare Price | Southwest Sans | 19pt | 800 | 1.1 | 0pt | "$98" on a fare card |
105
+ | Eyebrow / Label | Southwest Sans | 13pt | 700 | 1.2 | 0.6pt | "BOARDING POSITION" — uppercase, tracked |
106
+ | Meta | Southwest Sans | 12pt | 500 | 1.3 | 0pt | "WN 2418 · Mon, Jun 9" |
107
+ | Button | Southwest Sans | 16pt | 800 | 1.0 | 0.1pt | Primary/secondary button labels |
108
+ | Tab Label | Southwest Sans | 10pt | 600 | 1.0 | 0.1pt | Bottom tab labels |
109
+ | Countdown Clock | Southwest Sans | 11pt (ring) / 34pt (full) | 800 | 1.0 | 0pt | Tabular figures, monospace-stable |
110
+
111
+ ### Principles
112
+ - **Numbers are the heroes**: boarding positions, fares, points, and countdown clocks are always the heaviest and largest elements on their screen — heavier than any heading near them.
113
+ - **Friendly, not minimal**: body and label weights run heavier (400/500/600) than a typical iOS app to match the warm, confident brand voice. Avoid thin/light weights entirely.
114
+ - **Tabular figures always**: any number that can change (clock, balance, fare) uses tabular lining numerals so layout never shifts.
115
+ - **Uppercase tracked eyebrows**: small labels above big numbers ("BOARDING POSITION", "CONFIRMATION") are 13pt 700 uppercase with +0.6pt tracking.
116
+ - **Dynamic Type**: titles, body, card titles, fare prices scale; boarding group/number, tab labels, eyebrow labels, and the countdown clock stay fixed (layout-critical).
117
+
118
+ ## 4. Component Stylings
119
+
120
+ ### Buttons
121
+
122
+ **Primary Button (Check in / Continue / Select flight)**
123
+ - Shape: rounded rectangle, 8pt corner radius, full-width on forms
124
+ - Background: `#F9B612` (Warm Yellow) — the one CTA color
125
+ - Text: `#1A1A1A` Southwest Sans 16pt weight 800
126
+ - Height: 52pt
127
+ - Pressed: background `#E0A300` + scale 0.98
128
+ - Disabled: `#F9B612` at 38% opacity, text at 50%
129
+
130
+ **Secondary Button (structural action)**
131
+ - Background: `#304CB2` (Southwest Blue)
132
+ - Text: `#FFFFFF` Southwest Sans 16pt weight 800
133
+ - Height: 52pt, 8pt corner radius
134
+ - Pressed: background darken 8% + scale 0.98
135
+
136
+ **Ghost / Outline Button**
137
+ - Background: transparent
138
+ - Border: 1.5pt `#2567E8` (Bright Blue)
139
+ - Text: `#2567E8` light / brighten on dark, Southwest Sans 14pt weight 700
140
+ - Height: 44pt, 8pt corner radius
141
+ - Pressed: background `#2567E8` at 8% opacity
142
+
143
+ **Destructive Button (Cancel reservation)**
144
+ - Background: transparent, text `#E51D23` Southwest Sans 16pt weight 700
145
+ - OR filled `#E51D23` / `#FFFFFF` for the final destructive confirm only
146
+ - This is the ONLY place red appears as an action
147
+
148
+ **Text Button (link)**
149
+ - Southwest Sans 14pt weight 700, color `#2567E8`
150
+ - No underline; pressed: 60% opacity
151
+
152
+ ### Boarding Position Card (the signature atom)
153
+ - Container: 20pt corner radius, gradient `#304CB2 → #243C8E` (Southwest Blue), soft blue glow shadow
154
+ - Eyebrow: "BOARDING POSITION" — 13pt 700 uppercase, `rgba(255,255,255,0.78)`, +1.2pt tracking
155
+ - Group letter: 88pt weight 900, `#F9B612` (Warm Yellow), the dominant element
156
+ - Position number: 52pt weight 800, `#FFFFFF`, baseline-aligned with the group letter
157
+ - Caption: "Board in group A, position 23" — 13pt 500, `rgba(255,255,255,0.85)`
158
+ - Footer (after a 1pt 18%-white divider): two columns — "BOARDING STARTS / 4:25 PM" and "CONFIRMATION / K9F2Q2", labels 11pt 600 uppercase, values 16pt 700 white
159
+ - Optional yellow radial accent bleed in the top-right corner
160
+
161
+ ### Check-In Countdown (the second signature atom)
162
+ - Container: card, 16pt corner radius, `Surface 1`, 1pt divider border
163
+ - Ring: 54pt circular progress, track `Divider`, progress `#F9B612` (Warm Yellow), 5pt stroke, rounded cap, rotates -90° start
164
+ - Center clock: tabular `HH:MM` 11pt 800 in `#F9B612`
165
+ - Texts: title "Check-in opens soon" 15pt 700; subtitle "Opens 24 hrs before departure to lock your spot" 12pt secondary
166
+ - Trailing action: small Warm Yellow pill "Notify" → becomes "Check in now" (full yellow CTA) when the ring completes
167
+ - When live: the ring fills, the clock turns into a live countdown, and the primary CTA becomes the loud full-width "Check in" button
168
+
169
+ ### Flight Strip
170
+ - Container: card, 16pt corner radius, `Surface 1`
171
+ - Route row: origin code (26pt 800) — center mini-route (a 60×14 arrow line in Warm Yellow + "Nonstop · 2h 35m" 10pt uppercase) — destination code (26pt 800)
172
+ - Meta row: "WN 2418 · Mon, Jun 9" left, "Gate B14 · 4:55 PM" right, 12pt 500 secondary
173
+ - Status chip (optional): "On Time" success / "Delayed" yellow / "Cancelled" red `#E51D23`
174
+
175
+ ### Wanna Get Away Fare Ladder
176
+ - Horizontal row of fare cards (Wanna Get Away / WGA Plus / Anytime / Business Select)
177
+ - Each card: 12pt corner radius, `Surface 2` fill, 1pt divider border
178
+ - Selected card: 2pt `#F9B612` border + Yellow-at-10% tint fill
179
+ - Fare name: 11pt 700 uppercase tracked, secondary
180
+ - Price: dollars 19pt 800 primary; "5,940 pts" 11pt 600 secondary on the line below
181
+ - Bottom-up presentation: cheapest (Wanna Get Away) leftmost
182
+
183
+ ### Rapid Rewards Points Pill
184
+ - Pill, 500pt radius, `#304CB2` (Blue) fill, white text, leading 14pt star glyph filled `#F9B612`
185
+ - Tier variant: `#F9B612` fill, `#1A1A1A` text, blue star — used for "A-List" / "A-List Preferred" badges
186
+ - Balance format: "54,820 pts" Southwest Sans 14pt 800 tabular
187
+
188
+ ### Navigation
189
+
190
+ **Bottom Tab Bar**
191
+ - Height: 68pt total (50pt + safe area)
192
+ - Background: `#FFFFFF` light / `#0E1726` dark, 0.5pt top divider, blur on scroll
193
+ - Tabs (5): Home, Book, Trips, Rapid Rewards, Account
194
+ - Icon: 22pt; active fill, inactive stroke
195
+ - Active color: `#F9B612` (Warm Yellow) — NO pill/indicator; just icon+label tint change
196
+ - Inactive: `#8C99B3` light / `#67748F` dark
197
+ - Labels: Southwest Sans 10pt 600, always shown
198
+
199
+ **Top App Bar**
200
+ - Height: 44pt + safe area, transparent over canvas
201
+ - Title: 22–32pt 800/900 (large title on Home/Trips, compact on detail)
202
+ - Leading: back chevron (detail) or none
203
+ - Trailing: clock/help icon in a 34pt circular `Surface 2` button
204
+
205
+ **Segmented Control (One-way / Round trip)**
206
+ - Track: `Surface 2`, 10pt radius, 4pt inset
207
+ - Selected segment: `#FFFFFF` light / `#304CB2` dark thumb, label 14pt 700
208
+ - Unselected label: secondary 14pt 500
209
+
210
+ ### Input Fields
211
+
212
+ **Search / Field**
213
+ - Height: 52pt
214
+ - Background: `#FFFFFF` light (1pt `#DCE2EE` border) / `#1F2E4A` dark
215
+ - Corner radius: 10pt
216
+ - Leading 18pt icon `#5A6783`
217
+ - Label floats above on focus; focus border 2pt `#304CB2`
218
+ - Placeholder: 16pt 400 tertiary
219
+
220
+ **Airport Picker Row**
221
+ - 56pt tall, leading 3-letter code in a tinted square, city name 16pt 600 + "DAL · Dallas Love Field" 12pt secondary
222
+ - Selected: `#304CB2` at 8% tint + leading checkmark
223
+
224
+ **Date / Calendar**
225
+ - Month grid; selected date `#304CB2` filled circle, white text
226
+ - Range: endpoints filled blue, in-between days `#304CB2` at 12% tint
227
+ - Today: 1.5pt `#F9B612` ring
228
+
229
+ ### Distinctive Components
230
+
231
+ **Boarding Position Reveal**
232
+ - After check-in completes, the position animates in: the card scales 0.96 → 1.0, the group letter counts up A→ (or just pops), and a soft success haptic fires. This is the app's payoff moment.
233
+
234
+ **24-Hour Check-In Clock**
235
+ - The launch-clock metaphor: a ring that empties toward T-0, a tabular HH:MM:SS when within the final hour, and a state flip to the full Warm Yellow "Check in" CTA exactly at T-24h.
236
+
237
+ **Bags Fly Free / Transfarency Cards**
238
+ - Friendly value-prop cards: a leading illustrative icon, a bold one-line claim ("Bags fly free"), and a plain-language sub. Blue or neutral surface, never red. These reinforce the warm brand voice.
239
+
240
+ **Digital Boarding Pass**
241
+ - Full-screen pass: large `A23` position, QR/barcode, flight strip, "Confirmation K9F2Q2", brand Heart watermark. The position number remains the visual hero even here.
242
+
243
+ **Rapid Rewards Hub**
244
+ - Big tabular points balance (32pt 900), tier badge pill (A-List), Companion Pass progress bar, "Points + cash" toggle on fares.
245
+
246
+ **Flight Status Timeline**
247
+ - Vertical timeline: Scheduled → Boarding → Departed → Arrived; current node Warm Yellow filled, completed nodes Blue, future nodes divider-gray; a red node + banner only on cancellation/irregular ops.
248
+
249
+ ## 5. Layout Principles
250
+
251
+ ### Spacing System
252
+ - Base unit: 4pt
253
+ - Scale: 4, 8, 12, 16, 20, 24, 32, 40, 48, 64
254
+ - Screen horizontal inset: 20pt
255
+ - Card internal padding: 18–22pt
256
+ - Gap between stacked cards: 18pt
257
+ - Boarding card is visually dominant — it gets the most vertical real estate above the fold
258
+
259
+ ### Grid & Container
260
+ - iPhone: single column, 20pt insets, full-width cards and CTAs
261
+ - iPad: content max-width 640pt centered; the boarding card may sit beside the flight strip in a 2-up on wide layouts
262
+ - The primary CTA is always full-width and pinned (or bottom of scroll) on action screens
263
+
264
+ ### Whitespace Philosophy
265
+ - **The position breathes**: the boarding card is surrounded by generous space so the `A23` reads instantly — never crowded by chrome
266
+ - **One loud thing per screen**: lots of calm navy/white, one Warm Yellow focal point; red only on exceptions
267
+ - **Cards over lists**: information is grouped into rounded cards with clear internal hierarchy, not dense table rows
268
+ - **Friendly density**: comfortable, not compact — Southwest is not a power-user tool
269
+
270
+ ### Border Radius Scale
271
+ - Square (0pt): full-bleed dividers, the barcode strip
272
+ - Subtle (4pt): tiny chips, accent ticks
273
+ - Standard (8pt): buttons, fields-adjacent elements
274
+ - Field (10pt): inputs, segmented controls
275
+ - Card (12pt): fare cards, list cards
276
+ - Comfortable (16pt): primary content cards, sheets
277
+ - Hero (20pt): the boarding-position card
278
+ - Pill (500pt): points pills, status chips, filter chips
279
+ - Circle (50%): avatars, the countdown ring, icon buttons
280
+
281
+ ## 6. Depth & Elevation
282
+
283
+ Southwest uses soft, brand-tinted elevation — never harsh neutral shadows.
284
+
285
+ | Level | Treatment | Use |
286
+ |-------|-----------|-----|
287
+ | Flat (Level 0) | No shadow | Canvas, inline text, dividers |
288
+ | Card (Level 1) | `rgba(20,30,55,0.08) 0 2px 10px` light / 1pt `#2A3A57` border on dark | Standard cards, fare cards |
289
+ | Hero (Level 2) | `rgba(48,76,178,0.30) 0 14px 30px -16px` (blue-tinted glow) | Boarding-position card |
290
+ | Sheet (Level 3) | `rgba(14,23,38,0.18) 0 -6px 24px` | Bottom sheets (fare details, seat-free explainer) |
291
+ | Modal Overlay | `rgba(14,23,38,0.55)` scrim | Behind modals and sheets |
292
+
293
+ **Shadow Philosophy**: elevation is used to lift the boarding card above everything else — its shadow is a *blue glow*, not gray, reinforcing the Heart. Standard cards get a faint cool shadow on light and a 1pt divider border on dark (shadows read poorly on the navy canvas). Nothing else floats.
294
+
295
+ ### Motion
296
+ - **Boarding-position reveal**: card scales `0.96 → 1.0` over 280ms `easeOut`, group letter cross-fades + 6pt rise, soft success haptic — the payoff moment
297
+ - **Check-in countdown tick**: clock digits flip with a 120ms vertical roll; the ring animates its stroke continuously; at T-0 the ring fills and the CTA cross-fades to the full Warm Yellow "Check in" over 240ms
298
+ - **Primary CTA press**: scale `1.0 → 0.98` 120ms + Warm Yellow → Pressed Yellow
299
+ - **Fare selection**: selected card border animates Yellow in over 150ms; price area subtle scale 1.0 → 1.03 → 1.0
300
+ - **Tab change**: instant icon/label tint to Warm Yellow; no pill slide (there is no pill)
301
+ - **Sheet present**: bottom sheet rises 320ms `easeOut` with scrim fade
302
+ - **Page push**: native iOS push, 300ms horizontal slide
303
+ - **Cancellation alert**: the red banner slides down 220ms and a warning haptic fires — the only place red animates
304
+ - **Haptics**: success on check-in/position reveal; light on CTA press and fare select; warning on cancellation
305
+
306
+ ## 7. Do's and Don'ts
307
+
308
+ ### Do
309
+ - Use Warm Yellow (`#F9B612`) as the single primary CTA and the boarding-position group letter
310
+ - Make the boarding position (`A23`) the largest, heaviest, highest-contrast element on its screen
311
+ - Treat the 24-hour check-in as a launch-clock countdown — a ring that empties toward T-0
312
+ - Use Southwest Blue (`#304CB2`) for structure, chrome, secondary actions, and points
313
+ - Reserve Bold Red (`#E51D23`) strictly for cancellations, irregular ops, and destructive confirms
314
+ - Use a deep navy canvas (`#0E1726`) for dark mode — a darkened Southwest Blue, never neutral black
315
+ - Use heavy numeric type (up to 900) with tabular figures for positions, fares, points, clocks
316
+ - Keep the voice warm and plainspoken — "Bags fly free", "Wanna Get Away", "no change fees"
317
+ - Present fares bottom-up: Wanna Get Away cheapest and leftmost
318
+ - Show Rapid Rewards as a points-forward pill with tier badges (A-List)
319
+ - Round content cards generously (16pt) and the boarding card most of all (20pt)
320
+
321
+ ### Don't
322
+ - Don't show a seat map or seat selection — Southwest has no assigned seats; the product is a position
323
+ - Don't use Yellow for more than one thing per screen — if two yellows compete, the layout is wrong
324
+ - Don't use Red for CTAs, sales badges, or decoration — red means something is wrong
325
+ - Don't use neutral black (`#000000`) for the dark canvas or body text — use navy `#0E1726` / ink `#1A2233`
326
+ - Don't bury the boarding position in a list row — it owns its screen
327
+ - Don't use thin/light font weights — the brand is friendly and confident, weights run heavy
328
+ - Don't make the check-in moment quiet — it is the highest-stakes interaction in the app
329
+ - Don't add a tab-bar pill/indicator — active state is a Warm Yellow tint only
330
+ - Don't let numbers jitter — always tabular lining figures on anything that updates
331
+ - Don't make it feel like a power-user tool — comfortable density, generous whitespace, warm copy
332
+ - Don't desaturate the Heart colors in dark mode — Yellow and Red stay identical across themes
333
+
334
+ ## 8. Responsive Behavior
335
+
336
+ ### Device Sizes
337
+ | Device | Width | Key Changes |
338
+ |--------|-------|-------------|
339
+ | iPhone SE (3rd gen) | 375pt | Boarding group drops to 72pt; single-column; CTA full-width pinned |
340
+ | iPhone 13/14/15 | 390pt | Standard layout; boarding group 88pt |
341
+ | iPhone 15/16 Pro | 393pt | Dynamic Island accommodated; boarding card clears the island |
342
+ | iPhone 15/16 Pro Max | 430pt | Boarding group up to 96pt; more vertical breathing room |
343
+ | iPad (portrait) | 768pt | Content max 640pt centered; boarding card + flight strip stacked |
344
+ | iPad (landscape) | 1024pt+ | 2-up: boarding card beside flight strip; fare ladder in a 4-wide row |
345
+
346
+ ### Dynamic Type
347
+ - Scales: screen titles, section headers, body, card titles, fare prices, value-prop copy
348
+ - Fixed (layout-critical): boarding group/number, countdown clock, tab labels, eyebrow labels, airport codes
349
+ - Code/barcode strip never scales
350
+
351
+ ### Orientation
352
+ - iPhone: portrait-primary; boarding pass supports landscape (barcode rotates for scanners)
353
+ - iPad: full rotation; split layouts reflow boarding card / flight strip side-by-side
354
+
355
+ ### Touch Targets
356
+ - Primary CTA: 52pt tall
357
+ - Tab icons: 22pt glyph, 48pt+ hit area
358
+ - Fare card: full card tappable, ≥ 64pt tall
359
+ - Icon buttons: 34pt visible, 44pt hit
360
+ - Date cells: 40pt circular hit
361
+
362
+ ### Safe Area Handling
363
+ - Top: app bar and boarding card respect the Dynamic Island/notch
364
+ - Bottom: tab bar + home indicator respected; pinned CTA sits above the home indicator
365
+ - Boarding pass: full-bleed, barcode kept clear of safe-area insets for scannability
366
+
367
+ ## 9. Agent Prompt Guide
368
+
369
+ ### Quick Color Reference
370
+ - Primary CTA / boarding group (Warm Yellow): `#F9B612` (pressed `#E0A300`)
371
+ - Structure / secondary (Southwest Blue): `#304CB2`
372
+ - Link / bright blue: `#2567E8`
373
+ - Alerts only (Bold Red): `#E51D23`
374
+ - Canvas (light): `#FFFFFF` · wash `#F2F5FB`
375
+ - Canvas (dark): `#0E1726` · surface 1 `#16223A` · surface 2 `#1F2E4A`
376
+ - Divider: `#DCE2EE` light / `#2A3A57` dark
377
+ - Text primary: `#1A2233` light / `#EAF0FA` dark
378
+ - Text secondary: `#5A6783` light / `#9DAAC4` dark
379
+ - Text on Yellow: `#1A1A1A` · text on Blue: `#FFFFFF`
380
+ - Success: `#1E8E4E` light / `#1FAE5E` dark
381
+
382
+ ### Example Component Prompts
383
+ - "Build the Southwest boarding-position card in SwiftUI: 20pt corner radius, gradient `#304CB2 → #243C8E`, soft blue glow shadow `rgba(48,76,178,0.3) 0 14px 30px -16px`. Eyebrow 'BOARDING POSITION' Southwest Sans 13pt w700 uppercase `rgba(255,255,255,0.78)` +1.2pt tracking. Group letter 'A' 88pt w900 `#F9B612`; position number '23' 52pt w800 white, baseline-aligned. Caption 'Board in group A, position 23' 13pt w500 `rgba(255,255,255,0.85)`. 1pt 18%-white divider, then two columns: 'BOARDING STARTS / 4:25 PM' and 'CONFIRMATION / K9F2Q2'."
384
+
385
+ - "Create the Southwest 24-hour check-in countdown: card 16pt radius `#16223A` with 1pt `#2A3A57` border. Leading 54pt ring — track `#2A3A57`, progress `#F9B612` 5pt stroke rounded cap rotated -90°, center tabular clock '23:41' 11pt w800 `#F9B612`. Title 'Check-in opens soon' 15pt w700, sub 'Opens 24 hrs before departure to lock your spot' 12pt secondary. Trailing Warm Yellow pill 'Notify'. When the ring completes, swap the pill for a full-width `#F9B612` 52pt 'Check in' CTA with `#1A1A1A` text."
386
+
387
+ - "Build the Southwest primary button: 52pt tall, 8pt corner radius, `#F9B612` fill, label Southwest Sans 16pt w800 `#1A1A1A`. Pressed: `#E0A300` + scale 0.98. There is exactly one of these per screen — it is the only Warm Yellow element."
388
+
389
+ - "Render the Wanna Get Away fare ladder: a horizontal row of cards (Wanna Get Away, WGA Plus, Anytime, Business Select) cheapest leftmost. Card 12pt radius `#1F2E4A`, 1pt `#2A3A57` border; selected card 2pt `#F9B612` border + Yellow-10% fill. Fare name 11pt w700 uppercase tracked secondary; price '$98' 19pt w800 primary; '5,940 pts' 11pt w600 secondary below."
390
+
391
+ - "Build the Southwest bottom tab bar: 5 tabs Home / Book / Trips / Rapid Rewards / Account, height 68pt, `#0E1726` dark bg, 0.5pt `#2A3A57` top divider. Active tint `#F9B612` (icon fill + label), inactive `#67748F`. NO pill or indicator — only a color tint change. Labels Southwest Sans 10pt w600 always visible."
392
+
393
+ - "Create the Southwest flight status timeline: vertical nodes Scheduled → Boarding → Departed → Arrived. Current node `#F9B612` filled, completed nodes `#304CB2`, future nodes `#2A3A57`. On cancellation only, render a node and top banner in `#E51D23` with a warning haptic."
394
+
395
+ ### Iteration Guide
396
+ 1. There is NO seat map — never add seat selection; the product is a boarding position (group A/B/C + number 1–60)
397
+ 2. The boarding position (`A23`) is the loudest element on its screen — Warm Yellow group letter, white number, 88/52pt weight 900/800
398
+ 3. The 24-hour check-in is a launch clock — a ring emptying toward T-0 that flips to the full Yellow CTA at T-24h
399
+ 4. Warm Yellow `#F9B612` is the ONE primary CTA color — one per screen; Blue `#304CB2` is everything structural
400
+ 5. Bold Red `#E51D23` is alerts ONLY — cancellations, irregular ops, destructive confirms; never decoration or a CTA
401
+ 6. Dark canvas is navy `#0E1726` (a darkened Southwest Blue), never neutral black; light text is ink `#1A2233`
402
+ 7. Numbers are heavy and tabular — positions, fares, points, clocks never jitter and outweigh nearby headings
403
+ 8. Fares present bottom-up: Wanna Get Away cheapest and leftmost; show dollars + Rapid Rewards points together
404
+ 9. Cards are generously rounded (16pt) and the boarding card most of all (20pt) with a blue-glow shadow
405
+ 10. Voice is warm and plainspoken — "Bags fly free", "Wanna Get Away", "no change fees"; never minimal-for-its-own-sake