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.
- package/LICENSE +21 -0
- package/README.md +119 -0
- package/dist/__tests__/designStore.test.js +41 -0
- package/dist/__tests__/linter.test.js +23 -0
- package/dist/__tests__/sectionParser.test.js +60 -0
- package/dist/__tests__/server.test.js +129 -0
- package/dist/constants.js +12 -0
- package/dist/data/authoring-guide.md +113 -0
- package/dist/data/designs/airbnb.md +545 -0
- package/dist/data/designs/airtable.md +554 -0
- package/dist/data/designs/apple.md +562 -0
- package/dist/data/designs/binance.md +634 -0
- package/dist/data/designs/bmw-m.md +503 -0
- package/dist/data/designs/bmw.md +544 -0
- package/dist/data/designs/bugatti.md +454 -0
- package/dist/data/designs/cal.md +542 -0
- package/dist/data/designs/card-heavy.md +250 -0
- package/dist/data/designs/claude.md +589 -0
- package/dist/data/designs/clay.md +541 -0
- package/dist/data/designs/clickhouse.md +544 -0
- package/dist/data/designs/cohere.md +451 -0
- package/dist/data/designs/coinbase.md +570 -0
- package/dist/data/designs/composio.md +506 -0
- package/dist/data/designs/content-first.md +236 -0
- package/dist/data/designs/cursor.md +537 -0
- package/dist/data/designs/data-dashboard.md +300 -0
- package/dist/data/designs/dell-1996.md +632 -0
- package/dist/data/designs/elevenlabs.md +504 -0
- package/dist/data/designs/enterprise-neutral.md +252 -0
- package/dist/data/designs/expo.md +526 -0
- package/dist/data/designs/ferrari.md +531 -0
- package/dist/data/designs/figma.md +578 -0
- package/dist/data/designs/framer.md +544 -0
- package/dist/data/designs/hashicorp.md +575 -0
- package/dist/data/designs/hp.md +670 -0
- package/dist/data/designs/ibm.md +550 -0
- package/dist/data/designs/intercom.md +546 -0
- package/dist/data/designs/ios-acorns-android.md +430 -0
- package/dist/data/designs/ios-acorns-expo.md +381 -0
- package/dist/data/designs/ios-acorns-swiftui.md +378 -0
- package/dist/data/designs/ios-acorns.md +384 -0
- package/dist/data/designs/ios-airbnb-android.md +658 -0
- package/dist/data/designs/ios-airbnb-expo.md +457 -0
- package/dist/data/designs/ios-airbnb-swiftui.md +464 -0
- package/dist/data/designs/ios-airbnb.md +410 -0
- package/dist/data/designs/ios-alltrails-android.md +451 -0
- package/dist/data/designs/ios-alltrails-expo.md +400 -0
- package/dist/data/designs/ios-alltrails-swiftui.md +343 -0
- package/dist/data/designs/ios-alltrails.md +344 -0
- package/dist/data/designs/ios-amazon-android.md +686 -0
- package/dist/data/designs/ios-amazon-expo.md +433 -0
- package/dist/data/designs/ios-amazon-music-android.md +416 -0
- package/dist/data/designs/ios-amazon-music-expo.md +368 -0
- package/dist/data/designs/ios-amazon-music-swiftui.md +436 -0
- package/dist/data/designs/ios-amazon-music.md +389 -0
- package/dist/data/designs/ios-amazon-swiftui.md +460 -0
- package/dist/data/designs/ios-amazon.md +440 -0
- package/dist/data/designs/ios-apple-fitness-android.md +462 -0
- package/dist/data/designs/ios-apple-fitness-expo.md +373 -0
- package/dist/data/designs/ios-apple-fitness-swiftui.md +373 -0
- package/dist/data/designs/ios-apple-fitness.md +399 -0
- package/dist/data/designs/ios-apple-maps-android.md +646 -0
- package/dist/data/designs/ios-apple-maps-expo.md +557 -0
- package/dist/data/designs/ios-apple-maps-swiftui.md +588 -0
- package/dist/data/designs/ios-apple-maps.md +447 -0
- package/dist/data/designs/ios-apple-music-android.md +737 -0
- package/dist/data/designs/ios-apple-music-expo.md +596 -0
- package/dist/data/designs/ios-apple-music-swiftui.md +578 -0
- package/dist/data/designs/ios-apple-music.md +494 -0
- package/dist/data/designs/ios-apple-notes-android.md +675 -0
- package/dist/data/designs/ios-apple-notes-expo.md +468 -0
- package/dist/data/designs/ios-apple-notes-swiftui.md +489 -0
- package/dist/data/designs/ios-apple-notes.md +413 -0
- package/dist/data/designs/ios-apple-tv-android.md +405 -0
- package/dist/data/designs/ios-apple-tv-expo.md +341 -0
- package/dist/data/designs/ios-apple-tv-swiftui.md +348 -0
- package/dist/data/designs/ios-apple-tv.md +390 -0
- package/dist/data/designs/ios-apple-wallet-android.md +617 -0
- package/dist/data/designs/ios-apple-wallet-expo.md +487 -0
- package/dist/data/designs/ios-apple-wallet-swiftui.md +425 -0
- package/dist/data/designs/ios-apple-wallet.md +360 -0
- package/dist/data/designs/ios-asana-android.md +435 -0
- package/dist/data/designs/ios-asana-expo.md +411 -0
- package/dist/data/designs/ios-asana-swiftui.md +416 -0
- package/dist/data/designs/ios-asana.md +433 -0
- package/dist/data/designs/ios-audible-android.md +450 -0
- package/dist/data/designs/ios-audible-expo.md +328 -0
- package/dist/data/designs/ios-audible-swiftui.md +418 -0
- package/dist/data/designs/ios-audible.md +364 -0
- package/dist/data/designs/ios-bandcamp-android.md +471 -0
- package/dist/data/designs/ios-bandcamp-expo.md +378 -0
- package/dist/data/designs/ios-bandcamp-swiftui.md +374 -0
- package/dist/data/designs/ios-bandcamp.md +372 -0
- package/dist/data/designs/ios-bear-android.md +496 -0
- package/dist/data/designs/ios-bear-expo.md +449 -0
- package/dist/data/designs/ios-bear-swiftui.md +479 -0
- package/dist/data/designs/ios-bear.md +412 -0
- package/dist/data/designs/ios-bereal-android.md +392 -0
- package/dist/data/designs/ios-bereal-expo.md +299 -0
- package/dist/data/designs/ios-bereal-swiftui.md +319 -0
- package/dist/data/designs/ios-bereal.md +336 -0
- package/dist/data/designs/ios-binance-android.md +481 -0
- package/dist/data/designs/ios-binance-expo.md +404 -0
- package/dist/data/designs/ios-binance-swiftui.md +418 -0
- package/dist/data/designs/ios-binance.md +410 -0
- package/dist/data/designs/ios-bluesky-android.md +442 -0
- package/dist/data/designs/ios-bluesky-expo.md +362 -0
- package/dist/data/designs/ios-bluesky-swiftui.md +328 -0
- package/dist/data/designs/ios-bluesky.md +338 -0
- package/dist/data/designs/ios-booking-android.md +471 -0
- package/dist/data/designs/ios-booking-expo.md +364 -0
- package/dist/data/designs/ios-booking-swiftui.md +377 -0
- package/dist/data/designs/ios-booking.md +346 -0
- package/dist/data/designs/ios-bumble-android.md +756 -0
- package/dist/data/designs/ios-bumble-expo.md +629 -0
- package/dist/data/designs/ios-bumble-swiftui.md +546 -0
- package/dist/data/designs/ios-bumble.md +424 -0
- package/dist/data/designs/ios-cal-ai-android.md +664 -0
- package/dist/data/designs/ios-cal-ai-expo.md +415 -0
- package/dist/data/designs/ios-cal-ai-swiftui.md +486 -0
- package/dist/data/designs/ios-cal-ai.md +387 -0
- package/dist/data/designs/ios-calm-android.md +431 -0
- package/dist/data/designs/ios-calm-expo.md +384 -0
- package/dist/data/designs/ios-calm-swiftui.md +327 -0
- package/dist/data/designs/ios-calm.md +356 -0
- package/dist/data/designs/ios-canva-android.md +469 -0
- package/dist/data/designs/ios-canva-expo.md +374 -0
- package/dist/data/designs/ios-canva-swiftui.md +422 -0
- package/dist/data/designs/ios-canva.md +395 -0
- package/dist/data/designs/ios-cash-app-android.md +601 -0
- package/dist/data/designs/ios-cash-app-expo.md +453 -0
- package/dist/data/designs/ios-cash-app-swiftui.md +463 -0
- package/dist/data/designs/ios-cash-app.md +365 -0
- package/dist/data/designs/ios-character-ai-android.md +489 -0
- package/dist/data/designs/ios-character-ai-expo.md +420 -0
- package/dist/data/designs/ios-character-ai-swiftui.md +417 -0
- package/dist/data/designs/ios-character-ai.md +392 -0
- package/dist/data/designs/ios-charles-schwab-android.md +454 -0
- package/dist/data/designs/ios-charles-schwab-expo.md +388 -0
- package/dist/data/designs/ios-charles-schwab-swiftui.md +394 -0
- package/dist/data/designs/ios-charles-schwab.md +380 -0
- package/dist/data/designs/ios-chatgpt-android.md +753 -0
- package/dist/data/designs/ios-chatgpt-expo.md +644 -0
- package/dist/data/designs/ios-chatgpt-swiftui.md +653 -0
- package/dist/data/designs/ios-chatgpt.md +466 -0
- package/dist/data/designs/ios-chime-android.md +438 -0
- package/dist/data/designs/ios-chime-expo.md +419 -0
- package/dist/data/designs/ios-chime-swiftui.md +383 -0
- package/dist/data/designs/ios-chime.md +389 -0
- package/dist/data/designs/ios-chipotle-android.md +397 -0
- package/dist/data/designs/ios-chipotle-expo.md +301 -0
- package/dist/data/designs/ios-chipotle-swiftui.md +345 -0
- package/dist/data/designs/ios-chipotle.md +340 -0
- package/dist/data/designs/ios-citymapper-android.md +466 -0
- package/dist/data/designs/ios-citymapper-expo.md +420 -0
- package/dist/data/designs/ios-citymapper-swiftui.md +424 -0
- package/dist/data/designs/ios-citymapper.md +394 -0
- package/dist/data/designs/ios-claude-android.md +625 -0
- package/dist/data/designs/ios-claude-expo.md +671 -0
- package/dist/data/designs/ios-claude-swiftui.md +649 -0
- package/dist/data/designs/ios-claude.md +447 -0
- package/dist/data/designs/ios-clickup-android.md +484 -0
- package/dist/data/designs/ios-clickup-expo.md +423 -0
- package/dist/data/designs/ios-clickup-swiftui.md +416 -0
- package/dist/data/designs/ios-clickup.md +431 -0
- package/dist/data/designs/ios-clubhouse-android.md +524 -0
- package/dist/data/designs/ios-clubhouse-expo.md +425 -0
- package/dist/data/designs/ios-clubhouse-swiftui.md +447 -0
- package/dist/data/designs/ios-clubhouse.md +406 -0
- package/dist/data/designs/ios-coffee-meets-bagel-android.md +461 -0
- package/dist/data/designs/ios-coffee-meets-bagel-expo.md +372 -0
- package/dist/data/designs/ios-coffee-meets-bagel-swiftui.md +368 -0
- package/dist/data/designs/ios-coffee-meets-bagel.md +376 -0
- package/dist/data/designs/ios-coinbase-android.md +611 -0
- package/dist/data/designs/ios-coinbase-expo.md +500 -0
- package/dist/data/designs/ios-coinbase-swiftui.md +490 -0
- package/dist/data/designs/ios-coinbase.md +409 -0
- package/dist/data/designs/ios-copilot-android.md +625 -0
- package/dist/data/designs/ios-copilot-expo.md +423 -0
- package/dist/data/designs/ios-copilot-swiftui.md +471 -0
- package/dist/data/designs/ios-copilot.md +367 -0
- package/dist/data/designs/ios-craft-android.md +459 -0
- package/dist/data/designs/ios-craft-expo.md +417 -0
- package/dist/data/designs/ios-craft-swiftui.md +449 -0
- package/dist/data/designs/ios-craft.md +449 -0
- package/dist/data/designs/ios-crunchyroll-android.md +432 -0
- package/dist/data/designs/ios-crunchyroll-expo.md +388 -0
- package/dist/data/designs/ios-crunchyroll-swiftui.md +417 -0
- package/dist/data/designs/ios-crunchyroll.md +388 -0
- package/dist/data/designs/ios-crypto-com-android.md +461 -0
- package/dist/data/designs/ios-crypto-com-expo.md +404 -0
- package/dist/data/designs/ios-crypto-com-swiftui.md +419 -0
- package/dist/data/designs/ios-crypto-com.md +410 -0
- package/dist/data/designs/ios-deepseek-android.md +471 -0
- package/dist/data/designs/ios-deepseek-expo.md +391 -0
- package/dist/data/designs/ios-deepseek-swiftui.md +354 -0
- package/dist/data/designs/ios-deepseek.md +393 -0
- package/dist/data/designs/ios-deezer-android.md +475 -0
- package/dist/data/designs/ios-deezer-expo.md +400 -0
- package/dist/data/designs/ios-deezer-swiftui.md +430 -0
- package/dist/data/designs/ios-deezer.md +388 -0
- package/dist/data/designs/ios-deliveroo-android.md +493 -0
- package/dist/data/designs/ios-deliveroo-expo.md +424 -0
- package/dist/data/designs/ios-deliveroo-swiftui.md +398 -0
- package/dist/data/designs/ios-deliveroo.md +420 -0
- package/dist/data/designs/ios-delta-android.md +439 -0
- package/dist/data/designs/ios-delta-expo.md +381 -0
- package/dist/data/designs/ios-delta-swiftui.md +400 -0
- package/dist/data/designs/ios-delta.md +397 -0
- package/dist/data/designs/ios-discord-android.md +611 -0
- package/dist/data/designs/ios-discord-expo.md +618 -0
- package/dist/data/designs/ios-discord-swiftui.md +630 -0
- package/dist/data/designs/ios-discord.md +451 -0
- package/dist/data/designs/ios-disney-plus-android.md +464 -0
- package/dist/data/designs/ios-disney-plus-expo.md +358 -0
- package/dist/data/designs/ios-disney-plus-swiftui.md +412 -0
- package/dist/data/designs/ios-disney-plus.md +355 -0
- package/dist/data/designs/ios-dominos-android.md +417 -0
- package/dist/data/designs/ios-dominos-expo.md +316 -0
- package/dist/data/designs/ios-dominos-swiftui.md +340 -0
- package/dist/data/designs/ios-dominos.md +347 -0
- package/dist/data/designs/ios-doordash-android.md +527 -0
- package/dist/data/designs/ios-doordash-expo.md +323 -0
- package/dist/data/designs/ios-doordash-swiftui.md +301 -0
- package/dist/data/designs/ios-doordash.md +393 -0
- package/dist/data/designs/ios-dropbox-android.md +522 -0
- package/dist/data/designs/ios-dropbox-expo.md +393 -0
- package/dist/data/designs/ios-dropbox-swiftui.md +400 -0
- package/dist/data/designs/ios-dropbox.md +374 -0
- package/dist/data/designs/ios-duolingo-android.md +641 -0
- package/dist/data/designs/ios-duolingo-expo.md +597 -0
- package/dist/data/designs/ios-duolingo-swiftui.md +539 -0
- package/dist/data/designs/ios-duolingo.md +409 -0
- package/dist/data/designs/ios-ebay-android.md +436 -0
- package/dist/data/designs/ios-ebay-expo.md +344 -0
- package/dist/data/designs/ios-ebay-swiftui.md +308 -0
- package/dist/data/designs/ios-ebay.md +355 -0
- package/dist/data/designs/ios-espn-android.md +468 -0
- package/dist/data/designs/ios-espn-expo.md +387 -0
- package/dist/data/designs/ios-espn-swiftui.md +410 -0
- package/dist/data/designs/ios-espn.md +384 -0
- package/dist/data/designs/ios-etsy-android.md +439 -0
- package/dist/data/designs/ios-etsy-expo.md +351 -0
- package/dist/data/designs/ios-etsy-swiftui.md +296 -0
- package/dist/data/designs/ios-etsy.md +355 -0
- package/dist/data/designs/ios-evernote-android.md +419 -0
- package/dist/data/designs/ios-evernote-expo.md +379 -0
- package/dist/data/designs/ios-evernote-swiftui.md +380 -0
- package/dist/data/designs/ios-evernote.md +416 -0
- package/dist/data/designs/ios-expedia-android.md +451 -0
- package/dist/data/designs/ios-expedia-expo.md +433 -0
- package/dist/data/designs/ios-expedia-swiftui.md +399 -0
- package/dist/data/designs/ios-expedia.md +431 -0
- package/dist/data/designs/ios-facebook-android.md +628 -0
- package/dist/data/designs/ios-facebook-expo.md +471 -0
- package/dist/data/designs/ios-facebook-swiftui.md +459 -0
- package/dist/data/designs/ios-facebook.md +452 -0
- package/dist/data/designs/ios-feeld-android.md +431 -0
- package/dist/data/designs/ios-feeld-expo.md +379 -0
- package/dist/data/designs/ios-feeld-swiftui.md +401 -0
- package/dist/data/designs/ios-feeld.md +378 -0
- package/dist/data/designs/ios-fidelity-android.md +426 -0
- package/dist/data/designs/ios-fidelity-expo.md +396 -0
- package/dist/data/designs/ios-fidelity-swiftui.md +398 -0
- package/dist/data/designs/ios-fidelity.md +387 -0
- package/dist/data/designs/ios-figma-android.md +578 -0
- package/dist/data/designs/ios-figma-expo.md +504 -0
- package/dist/data/designs/ios-figma-swiftui.md +542 -0
- package/dist/data/designs/ios-figma.md +404 -0
- package/dist/data/designs/ios-fitbit-android.md +439 -0
- package/dist/data/designs/ios-fitbit-expo.md +389 -0
- package/dist/data/designs/ios-fitbit-swiftui.md +380 -0
- package/dist/data/designs/ios-fitbit.md +396 -0
- package/dist/data/designs/ios-flickr-android.md +506 -0
- package/dist/data/designs/ios-flickr-expo.md +434 -0
- package/dist/data/designs/ios-flickr-swiftui.md +421 -0
- package/dist/data/designs/ios-flickr.md +394 -0
- package/dist/data/designs/ios-flighty-android.md +418 -0
- package/dist/data/designs/ios-flighty-expo.md +353 -0
- package/dist/data/designs/ios-flighty-swiftui.md +337 -0
- package/dist/data/designs/ios-flighty.md +357 -0
- package/dist/data/designs/ios-flo-android.md +447 -0
- package/dist/data/designs/ios-flo-expo.md +363 -0
- package/dist/data/designs/ios-flo-swiftui.md +355 -0
- package/dist/data/designs/ios-flo.md +351 -0
- package/dist/data/designs/ios-garmin-connect-android.md +531 -0
- package/dist/data/designs/ios-garmin-connect-expo.md +429 -0
- package/dist/data/designs/ios-garmin-connect-swiftui.md +459 -0
- package/dist/data/designs/ios-garmin-connect.md +419 -0
- package/dist/data/designs/ios-gas-android.md +438 -0
- package/dist/data/designs/ios-gas-expo.md +350 -0
- package/dist/data/designs/ios-gas-swiftui.md +329 -0
- package/dist/data/designs/ios-gas.md +387 -0
- package/dist/data/designs/ios-gemini-android.md +568 -0
- package/dist/data/designs/ios-gemini-expo.md +416 -0
- package/dist/data/designs/ios-gemini-swiftui.md +424 -0
- package/dist/data/designs/ios-gemini.md +351 -0
- package/dist/data/designs/ios-github-android.md +507 -0
- package/dist/data/designs/ios-github-expo.md +486 -0
- package/dist/data/designs/ios-github-swiftui.md +459 -0
- package/dist/data/designs/ios-github.md +394 -0
- package/dist/data/designs/ios-gmail-android.md +548 -0
- package/dist/data/designs/ios-gmail-expo.md +457 -0
- package/dist/data/designs/ios-gmail-swiftui.md +470 -0
- package/dist/data/designs/ios-gmail.md +441 -0
- package/dist/data/designs/ios-goodreads-android.md +436 -0
- package/dist/data/designs/ios-goodreads-expo.md +407 -0
- package/dist/data/designs/ios-goodreads-swiftui.md +378 -0
- package/dist/data/designs/ios-goodreads.md +385 -0
- package/dist/data/designs/ios-google-calendar-android.md +565 -0
- package/dist/data/designs/ios-google-calendar-expo.md +616 -0
- package/dist/data/designs/ios-google-calendar-swiftui.md +585 -0
- package/dist/data/designs/ios-google-calendar.md +431 -0
- package/dist/data/designs/ios-google-maps-android.md +614 -0
- package/dist/data/designs/ios-google-maps-expo.md +515 -0
- package/dist/data/designs/ios-google-maps-swiftui.md +484 -0
- package/dist/data/designs/ios-google-maps.md +451 -0
- package/dist/data/designs/ios-grammarly-android.md +449 -0
- package/dist/data/designs/ios-grammarly-expo.md +383 -0
- package/dist/data/designs/ios-grammarly-swiftui.md +381 -0
- package/dist/data/designs/ios-grammarly.md +392 -0
- package/dist/data/designs/ios-grindr-android.md +494 -0
- package/dist/data/designs/ios-grindr-expo.md +358 -0
- package/dist/data/designs/ios-grindr-swiftui.md +357 -0
- package/dist/data/designs/ios-grindr.md +356 -0
- package/dist/data/designs/ios-grok-android.md +471 -0
- package/dist/data/designs/ios-grok-expo.md +388 -0
- package/dist/data/designs/ios-grok-swiftui.md +397 -0
- package/dist/data/designs/ios-grok.md +357 -0
- package/dist/data/designs/ios-groupme-android.md +551 -0
- package/dist/data/designs/ios-groupme-expo.md +442 -0
- package/dist/data/designs/ios-groupme-swiftui.md +439 -0
- package/dist/data/designs/ios-groupme.md +424 -0
- package/dist/data/designs/ios-grubhub-android.md +506 -0
- package/dist/data/designs/ios-grubhub-expo.md +428 -0
- package/dist/data/designs/ios-grubhub-swiftui.md +408 -0
- package/dist/data/designs/ios-grubhub.md +427 -0
- package/dist/data/designs/ios-happn-android.md +464 -0
- package/dist/data/designs/ios-happn-expo.md +411 -0
- package/dist/data/designs/ios-happn-swiftui.md +401 -0
- package/dist/data/designs/ios-happn.md +400 -0
- package/dist/data/designs/ios-headspace-android.md +688 -0
- package/dist/data/designs/ios-headspace-expo.md +574 -0
- package/dist/data/designs/ios-headspace-swiftui.md +498 -0
- package/dist/data/designs/ios-headspace.md +430 -0
- package/dist/data/designs/ios-hevy-android.md +473 -0
- package/dist/data/designs/ios-hevy-expo.md +405 -0
- package/dist/data/designs/ios-hevy-swiftui.md +367 -0
- package/dist/data/designs/ios-hevy.md +410 -0
- package/dist/data/designs/ios-hinge-android.md +743 -0
- package/dist/data/designs/ios-hinge-expo.md +580 -0
- package/dist/data/designs/ios-hinge-swiftui.md +512 -0
- package/dist/data/designs/ios-hinge.md +405 -0
- package/dist/data/designs/ios-hopper-android.md +440 -0
- package/dist/data/designs/ios-hopper-expo.md +353 -0
- package/dist/data/designs/ios-hopper-swiftui.md +340 -0
- package/dist/data/designs/ios-hopper.md +354 -0
- package/dist/data/designs/ios-hulu-android.md +435 -0
- package/dist/data/designs/ios-hulu-expo.md +331 -0
- package/dist/data/designs/ios-hulu-swiftui.md +374 -0
- package/dist/data/designs/ios-hulu.md +353 -0
- package/dist/data/designs/ios-iheartradio-android.md +481 -0
- package/dist/data/designs/ios-iheartradio-expo.md +417 -0
- package/dist/data/designs/ios-iheartradio-swiftui.md +423 -0
- package/dist/data/designs/ios-iheartradio.md +381 -0
- package/dist/data/designs/ios-imessage-android.md +426 -0
- package/dist/data/designs/ios-imessage-expo.md +384 -0
- package/dist/data/designs/ios-imessage-swiftui.md +378 -0
- package/dist/data/designs/ios-imessage.md +394 -0
- package/dist/data/designs/ios-instacart-android.md +471 -0
- package/dist/data/designs/ios-instacart-expo.md +349 -0
- package/dist/data/designs/ios-instacart-swiftui.md +378 -0
- package/dist/data/designs/ios-instacart.md +360 -0
- package/dist/data/designs/ios-instagram-android.md +646 -0
- package/dist/data/designs/ios-instagram-expo.md +310 -0
- package/dist/data/designs/ios-instagram-swiftui.md +333 -0
- package/dist/data/designs/ios-instagram.md +376 -0
- package/dist/data/designs/ios-jira-android.md +432 -0
- package/dist/data/designs/ios-jira-expo.md +375 -0
- package/dist/data/designs/ios-jira-swiftui.md +433 -0
- package/dist/data/designs/ios-jira.md +424 -0
- package/dist/data/designs/ios-kakaotalk-android.md +491 -0
- package/dist/data/designs/ios-kakaotalk-expo.md +418 -0
- package/dist/data/designs/ios-kakaotalk-swiftui.md +406 -0
- package/dist/data/designs/ios-kakaotalk.md +414 -0
- package/dist/data/designs/ios-kayak-android.md +466 -0
- package/dist/data/designs/ios-kayak-expo.md +407 -0
- package/dist/data/designs/ios-kayak-swiftui.md +426 -0
- package/dist/data/designs/ios-kayak.md +392 -0
- package/dist/data/designs/ios-kick-android.md +487 -0
- package/dist/data/designs/ios-kick-expo.md +434 -0
- package/dist/data/designs/ios-kick-swiftui.md +429 -0
- package/dist/data/designs/ios-kick.md +389 -0
- package/dist/data/designs/ios-kik-android.md +433 -0
- package/dist/data/designs/ios-kik-expo.md +363 -0
- package/dist/data/designs/ios-kik-swiftui.md +363 -0
- package/dist/data/designs/ios-kik.md +392 -0
- package/dist/data/designs/ios-kindle-android.md +439 -0
- package/dist/data/designs/ios-kindle-expo.md +356 -0
- package/dist/data/designs/ios-kindle-swiftui.md +372 -0
- package/dist/data/designs/ios-kindle.md +369 -0
- package/dist/data/designs/ios-klarna-android.md +420 -0
- package/dist/data/designs/ios-klarna-expo.md +349 -0
- package/dist/data/designs/ios-klarna-swiftui.md +360 -0
- package/dist/data/designs/ios-klarna.md +356 -0
- package/dist/data/designs/ios-lemon8-android.md +492 -0
- package/dist/data/designs/ios-lemon8-expo.md +413 -0
- package/dist/data/designs/ios-lemon8-swiftui.md +428 -0
- package/dist/data/designs/ios-lemon8.md +378 -0
- package/dist/data/designs/ios-life360-android.md +474 -0
- package/dist/data/designs/ios-life360-expo.md +375 -0
- package/dist/data/designs/ios-life360-swiftui.md +390 -0
- package/dist/data/designs/ios-life360.md +402 -0
- package/dist/data/designs/ios-line-android.md +517 -0
- package/dist/data/designs/ios-line-expo.md +402 -0
- package/dist/data/designs/ios-line-swiftui.md +361 -0
- package/dist/data/designs/ios-line.md +362 -0
- package/dist/data/designs/ios-linear-android.md +457 -0
- package/dist/data/designs/ios-linear-expo.md +367 -0
- package/dist/data/designs/ios-linear-swiftui.md +401 -0
- package/dist/data/designs/ios-linear.md +368 -0
- package/dist/data/designs/ios-linkedin-android.md +620 -0
- package/dist/data/designs/ios-linkedin-expo.md +469 -0
- package/dist/data/designs/ios-linkedin-swiftui.md +472 -0
- package/dist/data/designs/ios-linkedin.md +444 -0
- package/dist/data/designs/ios-locket-android.md +500 -0
- package/dist/data/designs/ios-locket-expo.md +375 -0
- package/dist/data/designs/ios-locket-swiftui.md +375 -0
- package/dist/data/designs/ios-locket.md +381 -0
- package/dist/data/designs/ios-lyft-android.md +406 -0
- package/dist/data/designs/ios-lyft-expo.md +333 -0
- package/dist/data/designs/ios-lyft-swiftui.md +315 -0
- package/dist/data/designs/ios-lyft.md +337 -0
- package/dist/data/designs/ios-marriott-bonvoy-android.md +488 -0
- package/dist/data/designs/ios-marriott-bonvoy-expo.md +412 -0
- package/dist/data/designs/ios-marriott-bonvoy-swiftui.md +461 -0
- package/dist/data/designs/ios-marriott-bonvoy.md +379 -0
- package/dist/data/designs/ios-mastodon-android.md +476 -0
- package/dist/data/designs/ios-mastodon-expo.md +379 -0
- package/dist/data/designs/ios-mastodon-swiftui.md +349 -0
- package/dist/data/designs/ios-mastodon.md +337 -0
- package/dist/data/designs/ios-match-android.md +496 -0
- package/dist/data/designs/ios-match-expo.md +393 -0
- package/dist/data/designs/ios-match-swiftui.md +450 -0
- package/dist/data/designs/ios-match.md +382 -0
- package/dist/data/designs/ios-max-android.md +454 -0
- package/dist/data/designs/ios-max-expo.md +342 -0
- package/dist/data/designs/ios-max-swiftui.md +332 -0
- package/dist/data/designs/ios-max.md +352 -0
- package/dist/data/designs/ios-mcdonalds-android.md +497 -0
- package/dist/data/designs/ios-mcdonalds-expo.md +382 -0
- package/dist/data/designs/ios-mcdonalds-swiftui.md +394 -0
- package/dist/data/designs/ios-mcdonalds.md +410 -0
- package/dist/data/designs/ios-messenger-android.md +523 -0
- package/dist/data/designs/ios-messenger-expo.md +379 -0
- package/dist/data/designs/ios-messenger-swiftui.md +369 -0
- package/dist/data/designs/ios-messenger.md +361 -0
- package/dist/data/designs/ios-microsoft-teams-android.md +446 -0
- package/dist/data/designs/ios-microsoft-teams-expo.md +362 -0
- package/dist/data/designs/ios-microsoft-teams-swiftui.md +384 -0
- package/dist/data/designs/ios-microsoft-teams.md +359 -0
- package/dist/data/designs/ios-midjourney-android.md +503 -0
- package/dist/data/designs/ios-midjourney-expo.md +406 -0
- package/dist/data/designs/ios-midjourney-swiftui.md +376 -0
- package/dist/data/designs/ios-midjourney.md +407 -0
- package/dist/data/designs/ios-miro-android.md +475 -0
- package/dist/data/designs/ios-miro-expo.md +421 -0
- package/dist/data/designs/ios-miro-swiftui.md +407 -0
- package/dist/data/designs/ios-miro.md +424 -0
- package/dist/data/designs/ios-monday-android.md +426 -0
- package/dist/data/designs/ios-monday-expo.md +382 -0
- package/dist/data/designs/ios-monday-swiftui.md +386 -0
- package/dist/data/designs/ios-monday.md +415 -0
- package/dist/data/designs/ios-monzo-android.md +423 -0
- package/dist/data/designs/ios-monzo-expo.md +391 -0
- package/dist/data/designs/ios-monzo-swiftui.md +371 -0
- package/dist/data/designs/ios-monzo.md +382 -0
- package/dist/data/designs/ios-myfitnesspal-android.md +631 -0
- package/dist/data/designs/ios-myfitnesspal-expo.md +489 -0
- package/dist/data/designs/ios-myfitnesspal-swiftui.md +500 -0
- package/dist/data/designs/ios-myfitnesspal.md +408 -0
- package/dist/data/designs/ios-netflix-android.md +570 -0
- package/dist/data/designs/ios-netflix-expo.md +528 -0
- package/dist/data/designs/ios-netflix-swiftui.md +543 -0
- package/dist/data/designs/ios-netflix.md +476 -0
- package/dist/data/designs/ios-nextdoor-android.md +399 -0
- package/dist/data/designs/ios-nextdoor-expo.md +317 -0
- package/dist/data/designs/ios-nextdoor-swiftui.md +343 -0
- package/dist/data/designs/ios-nextdoor.md +332 -0
- package/dist/data/designs/ios-nike-run-club-android.md +598 -0
- package/dist/data/designs/ios-nike-run-club-expo.md +459 -0
- package/dist/data/designs/ios-nike-run-club-swiftui.md +474 -0
- package/dist/data/designs/ios-nike-run-club.md +400 -0
- package/dist/data/designs/ios-noom-android.md +455 -0
- package/dist/data/designs/ios-noom-expo.md +362 -0
- package/dist/data/designs/ios-noom-swiftui.md +369 -0
- package/dist/data/designs/ios-noom.md +404 -0
- package/dist/data/designs/ios-notion-android.md +575 -0
- package/dist/data/designs/ios-notion-expo.md +543 -0
- package/dist/data/designs/ios-notion-swiftui.md +562 -0
- package/dist/data/designs/ios-notion.md +506 -0
- package/dist/data/designs/ios-nubank-android.md +447 -0
- package/dist/data/designs/ios-nubank-expo.md +391 -0
- package/dist/data/designs/ios-nubank-swiftui.md +391 -0
- package/dist/data/designs/ios-nubank.md +388 -0
- package/dist/data/designs/ios-obsidian-android.md +456 -0
- package/dist/data/designs/ios-obsidian-expo.md +401 -0
- package/dist/data/designs/ios-obsidian-swiftui.md +412 -0
- package/dist/data/designs/ios-obsidian.md +363 -0
- package/dist/data/designs/ios-okcupid-android.md +496 -0
- package/dist/data/designs/ios-okcupid-expo.md +378 -0
- package/dist/data/designs/ios-okcupid-swiftui.md +343 -0
- package/dist/data/designs/ios-okcupid.md +364 -0
- package/dist/data/designs/ios-opentable-android.md +426 -0
- package/dist/data/designs/ios-opentable-expo.md +350 -0
- package/dist/data/designs/ios-opentable-swiftui.md +328 -0
- package/dist/data/designs/ios-opentable.md +411 -0
- package/dist/data/designs/ios-oura-android.md +426 -0
- package/dist/data/designs/ios-oura-expo.md +353 -0
- package/dist/data/designs/ios-oura-swiftui.md +327 -0
- package/dist/data/designs/ios-oura.md +356 -0
- package/dist/data/designs/ios-overcast-android.md +508 -0
- package/dist/data/designs/ios-overcast-expo.md +420 -0
- package/dist/data/designs/ios-overcast-swiftui.md +427 -0
- package/dist/data/designs/ios-overcast.md +414 -0
- package/dist/data/designs/ios-pandora-android.md +477 -0
- package/dist/data/designs/ios-pandora-expo.md +406 -0
- package/dist/data/designs/ios-pandora-swiftui.md +413 -0
- package/dist/data/designs/ios-pandora.md +366 -0
- package/dist/data/designs/ios-panera-android.md +414 -0
- package/dist/data/designs/ios-panera-expo.md +352 -0
- package/dist/data/designs/ios-panera-swiftui.md +369 -0
- package/dist/data/designs/ios-panera.md +412 -0
- package/dist/data/designs/ios-paramount-plus-android.md +415 -0
- package/dist/data/designs/ios-paramount-plus-expo.md +363 -0
- package/dist/data/designs/ios-paramount-plus-swiftui.md +372 -0
- package/dist/data/designs/ios-paramount-plus.md +400 -0
- package/dist/data/designs/ios-paypal-android.md +535 -0
- package/dist/data/designs/ios-paypal-expo.md +429 -0
- package/dist/data/designs/ios-paypal-swiftui.md +466 -0
- package/dist/data/designs/ios-paypal.md +393 -0
- package/dist/data/designs/ios-peacock-android.md +453 -0
- package/dist/data/designs/ios-peacock-expo.md +393 -0
- package/dist/data/designs/ios-peacock-swiftui.md +420 -0
- package/dist/data/designs/ios-peacock.md +411 -0
- package/dist/data/designs/ios-peloton-android.md +470 -0
- package/dist/data/designs/ios-peloton-expo.md +401 -0
- package/dist/data/designs/ios-peloton-swiftui.md +409 -0
- package/dist/data/designs/ios-peloton.md +415 -0
- package/dist/data/designs/ios-perplexity-android.md +553 -0
- package/dist/data/designs/ios-perplexity-expo.md +703 -0
- package/dist/data/designs/ios-perplexity-swiftui.md +602 -0
- package/dist/data/designs/ios-perplexity.md +453 -0
- package/dist/data/designs/ios-pinterest-android.md +551 -0
- package/dist/data/designs/ios-pinterest-expo.md +466 -0
- package/dist/data/designs/ios-pinterest-swiftui.md +464 -0
- package/dist/data/designs/ios-pinterest.md +427 -0
- package/dist/data/designs/ios-plenty-of-fish-android.md +462 -0
- package/dist/data/designs/ios-plenty-of-fish-expo.md +380 -0
- package/dist/data/designs/ios-plenty-of-fish-swiftui.md +429 -0
- package/dist/data/designs/ios-plenty-of-fish.md +387 -0
- package/dist/data/designs/ios-plex-android.md +403 -0
- package/dist/data/designs/ios-plex-expo.md +333 -0
- package/dist/data/designs/ios-plex-swiftui.md +349 -0
- package/dist/data/designs/ios-plex.md +379 -0
- package/dist/data/designs/ios-pluto-tv-android.md +413 -0
- package/dist/data/designs/ios-pluto-tv-expo.md +379 -0
- package/dist/data/designs/ios-pluto-tv-swiftui.md +411 -0
- package/dist/data/designs/ios-pluto-tv.md +362 -0
- package/dist/data/designs/ios-pocket-casts-android.md +492 -0
- package/dist/data/designs/ios-pocket-casts-expo.md +430 -0
- package/dist/data/designs/ios-pocket-casts-swiftui.md +479 -0
- package/dist/data/designs/ios-pocket-casts.md +427 -0
- package/dist/data/designs/ios-postman-android.md +472 -0
- package/dist/data/designs/ios-postman-expo.md +372 -0
- package/dist/data/designs/ios-postman-swiftui.md +377 -0
- package/dist/data/designs/ios-postman.md +405 -0
- package/dist/data/designs/ios-prime-video-android.md +447 -0
- package/dist/data/designs/ios-prime-video-expo.md +365 -0
- package/dist/data/designs/ios-prime-video-swiftui.md +333 -0
- package/dist/data/designs/ios-prime-video.md +351 -0
- package/dist/data/designs/ios-quora-android.md +513 -0
- package/dist/data/designs/ios-quora-expo.md +362 -0
- package/dist/data/designs/ios-quora-swiftui.md +375 -0
- package/dist/data/designs/ios-quora.md +359 -0
- package/dist/data/designs/ios-raya-android.md +401 -0
- package/dist/data/designs/ios-raya-expo.md +366 -0
- package/dist/data/designs/ios-raya-swiftui.md +393 -0
- package/dist/data/designs/ios-raya.md +366 -0
- package/dist/data/designs/ios-reddit-android.md +605 -0
- package/dist/data/designs/ios-reddit-expo.md +553 -0
- package/dist/data/designs/ios-reddit-swiftui.md +514 -0
- package/dist/data/designs/ios-reddit.md +460 -0
- package/dist/data/designs/ios-resy-android.md +430 -0
- package/dist/data/designs/ios-resy-expo.md +344 -0
- package/dist/data/designs/ios-resy-swiftui.md +330 -0
- package/dist/data/designs/ios-resy.md +412 -0
- package/dist/data/designs/ios-revolut-android.md +433 -0
- package/dist/data/designs/ios-revolut-expo.md +379 -0
- package/dist/data/designs/ios-revolut-swiftui.md +372 -0
- package/dist/data/designs/ios-revolut.md +353 -0
- package/dist/data/designs/ios-robinhood-android.md +587 -0
- package/dist/data/designs/ios-robinhood-expo.md +416 -0
- package/dist/data/designs/ios-robinhood-swiftui.md +431 -0
- package/dist/data/designs/ios-robinhood.md +380 -0
- package/dist/data/designs/ios-runna-android.md +485 -0
- package/dist/data/designs/ios-runna-expo.md +388 -0
- package/dist/data/designs/ios-runna-swiftui.md +413 -0
- package/dist/data/designs/ios-runna.md +390 -0
- package/dist/data/designs/ios-shazam-android.md +436 -0
- package/dist/data/designs/ios-shazam-expo.md +348 -0
- package/dist/data/designs/ios-shazam-swiftui.md +394 -0
- package/dist/data/designs/ios-shazam.md +338 -0
- package/dist/data/designs/ios-signal-android.md +462 -0
- package/dist/data/designs/ios-signal-expo.md +361 -0
- package/dist/data/designs/ios-signal-swiftui.md +350 -0
- package/dist/data/designs/ios-signal.md +357 -0
- package/dist/data/designs/ios-skype-android.md +398 -0
- package/dist/data/designs/ios-skype-expo.md +368 -0
- package/dist/data/designs/ios-skype-swiftui.md +369 -0
- package/dist/data/designs/ios-skype.md +406 -0
- package/dist/data/designs/ios-skyscanner-android.md +451 -0
- package/dist/data/designs/ios-skyscanner-expo.md +423 -0
- package/dist/data/designs/ios-skyscanner-swiftui.md +419 -0
- package/dist/data/designs/ios-skyscanner.md +421 -0
- package/dist/data/designs/ios-slack-android.md +695 -0
- package/dist/data/designs/ios-slack-expo.md +601 -0
- package/dist/data/designs/ios-slack-swiftui.md +594 -0
- package/dist/data/designs/ios-slack.md +474 -0
- package/dist/data/designs/ios-sleep-cycle-android.md +436 -0
- package/dist/data/designs/ios-sleep-cycle-expo.md +380 -0
- package/dist/data/designs/ios-sleep-cycle-swiftui.md +409 -0
- package/dist/data/designs/ios-sleep-cycle.md +386 -0
- package/dist/data/designs/ios-snapchat-android.md +671 -0
- package/dist/data/designs/ios-snapchat-expo.md +528 -0
- package/dist/data/designs/ios-snapchat-swiftui.md +557 -0
- package/dist/data/designs/ios-snapchat.md +478 -0
- package/dist/data/designs/ios-sofi-android.md +446 -0
- package/dist/data/designs/ios-sofi-expo.md +387 -0
- package/dist/data/designs/ios-sofi-swiftui.md +379 -0
- package/dist/data/designs/ios-sofi.md +385 -0
- package/dist/data/designs/ios-soundcloud-android.md +488 -0
- package/dist/data/designs/ios-soundcloud-expo.md +364 -0
- package/dist/data/designs/ios-soundcloud-swiftui.md +399 -0
- package/dist/data/designs/ios-soundcloud.md +359 -0
- package/dist/data/designs/ios-southwest-android.md +446 -0
- package/dist/data/designs/ios-southwest-expo.md +389 -0
- package/dist/data/designs/ios-southwest-swiftui.md +405 -0
- package/dist/data/designs/ios-southwest.md +405 -0
- package/dist/data/designs/ios-spotify-android.md +427 -0
- package/dist/data/designs/ios-spotify-expo.md +321 -0
- package/dist/data/designs/ios-spotify-swiftui.md +312 -0
- package/dist/data/designs/ios-spotify.md +366 -0
- package/dist/data/designs/ios-starbucks-android.md +622 -0
- package/dist/data/designs/ios-starbucks-expo.md +497 -0
- package/dist/data/designs/ios-starbucks-swiftui.md +500 -0
- package/dist/data/designs/ios-starbucks.md +440 -0
- package/dist/data/designs/ios-strava-android.md +656 -0
- package/dist/data/designs/ios-strava-expo.md +501 -0
- package/dist/data/designs/ios-strava-swiftui.md +465 -0
- package/dist/data/designs/ios-strava.md +433 -0
- package/dist/data/designs/ios-strong-android.md +479 -0
- package/dist/data/designs/ios-strong-expo.md +396 -0
- package/dist/data/designs/ios-strong-swiftui.md +363 -0
- package/dist/data/designs/ios-strong.md +415 -0
- package/dist/data/designs/ios-substack-android.md +440 -0
- package/dist/data/designs/ios-substack-expo.md +395 -0
- package/dist/data/designs/ios-substack-swiftui.md +371 -0
- package/dist/data/designs/ios-substack.md +372 -0
- package/dist/data/designs/ios-swiggy-android.md +549 -0
- package/dist/data/designs/ios-swiggy-expo.md +443 -0
- package/dist/data/designs/ios-swiggy-swiftui.md +471 -0
- package/dist/data/designs/ios-swiggy.md +432 -0
- package/dist/data/designs/ios-taco-bell-android.md +529 -0
- package/dist/data/designs/ios-taco-bell-expo.md +407 -0
- package/dist/data/designs/ios-taco-bell-swiftui.md +419 -0
- package/dist/data/designs/ios-taco-bell.md +430 -0
- package/dist/data/designs/ios-telegram-android.md +676 -0
- package/dist/data/designs/ios-telegram-expo.md +594 -0
- package/dist/data/designs/ios-telegram-swiftui.md +518 -0
- package/dist/data/designs/ios-telegram.md +458 -0
- package/dist/data/designs/ios-the-league-android.md +454 -0
- package/dist/data/designs/ios-the-league-expo.md +391 -0
- package/dist/data/designs/ios-the-league-swiftui.md +409 -0
- package/dist/data/designs/ios-the-league.md +368 -0
- package/dist/data/designs/ios-things-3-android.md +421 -0
- package/dist/data/designs/ios-things-3-expo.md +351 -0
- package/dist/data/designs/ios-things-3-swiftui.md +359 -0
- package/dist/data/designs/ios-things-3.md +339 -0
- package/dist/data/designs/ios-threads-android.md +588 -0
- package/dist/data/designs/ios-threads-expo.md +468 -0
- package/dist/data/designs/ios-threads-swiftui.md +452 -0
- package/dist/data/designs/ios-threads.md +424 -0
- package/dist/data/designs/ios-threema-android.md +496 -0
- package/dist/data/designs/ios-threema-expo.md +415 -0
- package/dist/data/designs/ios-threema-swiftui.md +446 -0
- package/dist/data/designs/ios-threema.md +397 -0
- package/dist/data/designs/ios-tidal-android.md +398 -0
- package/dist/data/designs/ios-tidal-expo.md +323 -0
- package/dist/data/designs/ios-tidal-swiftui.md +340 -0
- package/dist/data/designs/ios-tidal.md +351 -0
- package/dist/data/designs/ios-tiktok-android.md +654 -0
- package/dist/data/designs/ios-tiktok-expo.md +578 -0
- package/dist/data/designs/ios-tiktok-swiftui.md +595 -0
- package/dist/data/designs/ios-tiktok.md +387 -0
- package/dist/data/designs/ios-tinder-android.md +681 -0
- package/dist/data/designs/ios-tinder-expo.md +512 -0
- package/dist/data/designs/ios-tinder-swiftui.md +497 -0
- package/dist/data/designs/ios-tinder.md +415 -0
- package/dist/data/designs/ios-todoist-android.md +711 -0
- package/dist/data/designs/ios-todoist-expo.md +607 -0
- package/dist/data/designs/ios-todoist-swiftui.md +573 -0
- package/dist/data/designs/ios-todoist.md +418 -0
- package/dist/data/designs/ios-trello-android.md +412 -0
- package/dist/data/designs/ios-trello-expo.md +332 -0
- package/dist/data/designs/ios-trello-swiftui.md +359 -0
- package/dist/data/designs/ios-trello.md +344 -0
- package/dist/data/designs/ios-tripadvisor-android.md +450 -0
- package/dist/data/designs/ios-tripadvisor-expo.md +322 -0
- package/dist/data/designs/ios-tripadvisor-swiftui.md +326 -0
- package/dist/data/designs/ios-tripadvisor.md +356 -0
- package/dist/data/designs/ios-tubi-android.md +453 -0
- package/dist/data/designs/ios-tubi-expo.md +419 -0
- package/dist/data/designs/ios-tubi-swiftui.md +463 -0
- package/dist/data/designs/ios-tubi.md +383 -0
- package/dist/data/designs/ios-tumblr-android.md +462 -0
- package/dist/data/designs/ios-tumblr-expo.md +374 -0
- package/dist/data/designs/ios-tumblr-swiftui.md +380 -0
- package/dist/data/designs/ios-tumblr.md +337 -0
- package/dist/data/designs/ios-turo-android.md +500 -0
- package/dist/data/designs/ios-turo-expo.md +454 -0
- package/dist/data/designs/ios-turo-swiftui.md +447 -0
- package/dist/data/designs/ios-turo.md +392 -0
- package/dist/data/designs/ios-twitch-android.md +412 -0
- package/dist/data/designs/ios-twitch-expo.md +342 -0
- package/dist/data/designs/ios-twitch-swiftui.md +328 -0
- package/dist/data/designs/ios-twitch.md +354 -0
- package/dist/data/designs/ios-uber-android.md +637 -0
- package/dist/data/designs/ios-uber-eats-android.md +502 -0
- package/dist/data/designs/ios-uber-eats-expo.md +407 -0
- package/dist/data/designs/ios-uber-eats-swiftui.md +393 -0
- package/dist/data/designs/ios-uber-eats.md +353 -0
- package/dist/data/designs/ios-uber-expo.md +512 -0
- package/dist/data/designs/ios-uber-swiftui.md +483 -0
- package/dist/data/designs/ios-uber.md +395 -0
- package/dist/data/designs/ios-united-airlines-android.md +494 -0
- package/dist/data/designs/ios-united-airlines-expo.md +408 -0
- package/dist/data/designs/ios-united-airlines-swiftui.md +453 -0
- package/dist/data/designs/ios-united-airlines.md +388 -0
- package/dist/data/designs/ios-venmo-android.md +654 -0
- package/dist/data/designs/ios-venmo-expo.md +458 -0
- package/dist/data/designs/ios-venmo-swiftui.md +469 -0
- package/dist/data/designs/ios-venmo.md +436 -0
- package/dist/data/designs/ios-vercel-android.md +454 -0
- package/dist/data/designs/ios-vercel-expo.md +387 -0
- package/dist/data/designs/ios-vercel-swiftui.md +374 -0
- package/dist/data/designs/ios-vercel.md +399 -0
- package/dist/data/designs/ios-vero-android.md +498 -0
- package/dist/data/designs/ios-vero-expo.md +376 -0
- package/dist/data/designs/ios-vero-swiftui.md +374 -0
- package/dist/data/designs/ios-vero.md +394 -0
- package/dist/data/designs/ios-viber-android.md +377 -0
- package/dist/data/designs/ios-viber-expo.md +375 -0
- package/dist/data/designs/ios-viber-swiftui.md +378 -0
- package/dist/data/designs/ios-viber.md +403 -0
- package/dist/data/designs/ios-vimeo-android.md +465 -0
- package/dist/data/designs/ios-vimeo-expo.md +347 -0
- package/dist/data/designs/ios-vimeo-swiftui.md +383 -0
- package/dist/data/designs/ios-vimeo.md +403 -0
- package/dist/data/designs/ios-vrbo-android.md +488 -0
- package/dist/data/designs/ios-vrbo-expo.md +395 -0
- package/dist/data/designs/ios-vrbo-swiftui.md +421 -0
- package/dist/data/designs/ios-vrbo.md +383 -0
- package/dist/data/designs/ios-vsco-android.md +490 -0
- package/dist/data/designs/ios-vsco-expo.md +413 -0
- package/dist/data/designs/ios-vsco-swiftui.md +449 -0
- package/dist/data/designs/ios-vsco.md +412 -0
- package/dist/data/designs/ios-walmart-android.md +479 -0
- package/dist/data/designs/ios-walmart-expo.md +370 -0
- package/dist/data/designs/ios-walmart-swiftui.md +387 -0
- package/dist/data/designs/ios-walmart.md +366 -0
- package/dist/data/designs/ios-waze-android.md +695 -0
- package/dist/data/designs/ios-waze-expo.md +587 -0
- package/dist/data/designs/ios-waze-swiftui.md +601 -0
- package/dist/data/designs/ios-waze.md +453 -0
- package/dist/data/designs/ios-webull-android.md +429 -0
- package/dist/data/designs/ios-webull-expo.md +384 -0
- package/dist/data/designs/ios-webull-swiftui.md +406 -0
- package/dist/data/designs/ios-webull.md +375 -0
- package/dist/data/designs/ios-wechat-android.md +545 -0
- package/dist/data/designs/ios-wechat-expo.md +398 -0
- package/dist/data/designs/ios-wechat-swiftui.md +394 -0
- package/dist/data/designs/ios-wechat.md +363 -0
- package/dist/data/designs/ios-whatsapp-android.md +568 -0
- package/dist/data/designs/ios-whatsapp-expo.md +502 -0
- package/dist/data/designs/ios-whatsapp-swiftui.md +483 -0
- package/dist/data/designs/ios-whatsapp.md +425 -0
- package/dist/data/designs/ios-whoop-android.md +635 -0
- package/dist/data/designs/ios-whoop-expo.md +562 -0
- package/dist/data/designs/ios-whoop-swiftui.md +553 -0
- package/dist/data/designs/ios-whoop.md +419 -0
- package/dist/data/designs/ios-wise-android.md +428 -0
- package/dist/data/designs/ios-wise-expo.md +357 -0
- package/dist/data/designs/ios-wise-swiftui.md +356 -0
- package/dist/data/designs/ios-wise.md +361 -0
- package/dist/data/designs/ios-x-twitter-android.md +618 -0
- package/dist/data/designs/ios-x-twitter-expo.md +442 -0
- package/dist/data/designs/ios-x-twitter-swiftui.md +429 -0
- package/dist/data/designs/ios-x-twitter.md +432 -0
- package/dist/data/designs/ios-yelp-android.md +455 -0
- package/dist/data/designs/ios-yelp-expo.md +397 -0
- package/dist/data/designs/ios-yelp-swiftui.md +369 -0
- package/dist/data/designs/ios-yelp.md +398 -0
- package/dist/data/designs/ios-youtube-android.md +668 -0
- package/dist/data/designs/ios-youtube-expo.md +435 -0
- package/dist/data/designs/ios-youtube-music-android.md +450 -0
- package/dist/data/designs/ios-youtube-music-expo.md +404 -0
- package/dist/data/designs/ios-youtube-music-swiftui.md +434 -0
- package/dist/data/designs/ios-youtube-music.md +381 -0
- package/dist/data/designs/ios-youtube-swiftui.md +496 -0
- package/dist/data/designs/ios-youtube.md +466 -0
- package/dist/data/designs/ios-zalo-android.md +510 -0
- package/dist/data/designs/ios-zalo-expo.md +389 -0
- package/dist/data/designs/ios-zalo-swiftui.md +431 -0
- package/dist/data/designs/ios-zalo.md +388 -0
- package/dist/data/designs/ios-zomato-android.md +527 -0
- package/dist/data/designs/ios-zomato-expo.md +437 -0
- package/dist/data/designs/ios-zomato-swiftui.md +433 -0
- package/dist/data/designs/ios-zomato.md +439 -0
- package/dist/data/designs/ios-zoom-android.md +423 -0
- package/dist/data/designs/ios-zoom-expo.md +355 -0
- package/dist/data/designs/ios-zoom-swiftui.md +379 -0
- package/dist/data/designs/ios-zoom.md +357 -0
- package/dist/data/designs/ios-zwift-android.md +402 -0
- package/dist/data/designs/ios-zwift-expo.md +402 -0
- package/dist/data/designs/ios-zwift-swiftui.md +378 -0
- package/dist/data/designs/ios-zwift.md +411 -0
- package/dist/data/designs/kraken.md +125 -0
- package/dist/data/designs/lamborghini.md +288 -0
- package/dist/data/designs/linear.app.md +548 -0
- package/dist/data/designs/lovable.md +298 -0
- package/dist/data/designs/mastercard.md +365 -0
- package/dist/data/designs/material-clean.md +289 -0
- package/dist/data/designs/meta.md +683 -0
- package/dist/data/designs/midnight-pro.md +256 -0
- package/dist/data/designs/minimal-brutalist.md +245 -0
- package/dist/data/designs/minimax.md +746 -0
- package/dist/data/designs/mintlify.md +852 -0
- package/dist/data/designs/miro.md +825 -0
- package/dist/data/designs/mistral.ai.md +773 -0
- package/dist/data/designs/mongodb.md +767 -0
- package/dist/data/designs/nike.md +575 -0
- package/dist/data/designs/nintendo-2001.md +649 -0
- package/dist/data/designs/notion.md +821 -0
- package/dist/data/designs/nova-mobile-design-md.md +235 -0
- package/dist/data/designs/nvidia.md +640 -0
- package/dist/data/designs/ollama.md +539 -0
- package/dist/data/designs/opencode.ai.md +521 -0
- package/dist/data/designs/pinterest.md +597 -0
- package/dist/data/designs/playful-color.md +253 -0
- package/dist/data/designs/playstation.md +661 -0
- package/dist/data/designs/posthog.md +690 -0
- package/dist/data/designs/raycast.md +669 -0
- package/dist/data/designs/renault.md +589 -0
- package/dist/data/designs/replicate.md +616 -0
- package/dist/data/designs/resend.md +585 -0
- package/dist/data/designs/revolut.md +636 -0
- package/dist/data/designs/runwayml.md +244 -0
- package/dist/data/designs/sanity.md +357 -0
- package/dist/data/designs/sentry.md +551 -0
- package/dist/data/designs/shopify.md +516 -0
- package/dist/data/designs/slack.md +482 -0
- package/dist/data/designs/soft-glass.md +258 -0
- package/dist/data/designs/spacex.md +363 -0
- package/dist/data/designs/spotify.md +246 -0
- package/dist/data/designs/starbucks.md +580 -0
- package/dist/data/designs/stripe.md +487 -0
- package/dist/data/designs/supabase.md +462 -0
- package/dist/data/designs/superhuman.md +448 -0
- package/dist/data/designs/tesla.md +286 -0
- package/dist/data/designs/theverge.md +339 -0
- package/dist/data/designs/together.ai.md +633 -0
- package/dist/data/designs/uber.md +636 -0
- package/dist/data/designs/vercel.md +736 -0
- package/dist/data/designs/vodafone.md +538 -0
- package/dist/data/designs/voltagent.md +521 -0
- package/dist/data/designs/warp.md +526 -0
- package/dist/data/designs/webflow.md +588 -0
- package/dist/data/designs/wired.md +497 -0
- package/dist/data/designs/wise.md +544 -0
- package/dist/data/designs/x.ai.md +465 -0
- package/dist/data/designs/zapier.md +537 -0
- package/dist/data/index.json +2600 -0
- package/dist/httpServer.js +83 -0
- package/dist/index.js +13 -0
- package/dist/server.js +32 -0
- package/dist/services/designStore.js +59 -0
- package/dist/services/linter.js +87 -0
- package/dist/services/sectionParser.js +154 -0
- package/dist/tools/authoring.js +131 -0
- package/dist/tools/browse.js +232 -0
- package/dist/tools/diff.js +88 -0
- package/dist/tools/getDesign.js +216 -0
- package/dist/tools/guardrails.js +87 -0
- package/dist/tools/lint.js +104 -0
- package/dist/types.js +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1,407 @@
|
|
|
1
|
+
# Design System Inspiration of Midjourney (iOS)
|
|
2
|
+
|
|
3
|
+
## 1. Visual Theme & Atmosphere
|
|
4
|
+
|
|
5
|
+
Midjourney's iOS app is a gallery first and a tool second. The canvas is **true black** (`#000000`) — not a warm charcoal, not an off-black — because the entire purpose of the screen is to make generated imagery glow on OLED. Every other surface is a barely-lifted near-black (`#0E0E0E`, `#1A1A1A`), so the only saturated color anywhere in the interface is the user's own renders. Open the app and you land on the **Create feed**: a prompt bar pinned at the bottom (or top, per layout), and below it a vertical stream of "jobs" — each job rendered as a tight **2×2 image grid** with a one-line prompt above it and a compact action row below. The grid is the hero; the chrome recedes.
|
|
6
|
+
|
|
7
|
+
This is a deliberate inversion of normal product design. Midjourney has **no brand accent color**. There is no "Spotify Green", no "Coinbase Blue" driving CTAs. White (`#FFFFFF`) is the only "primary" — it's the fill of the Imagine button, the active tab glyph, the U1–U4 upscale chips. Everything else is a grey ramp from `#FFFFFF` text down through `#A1A1A1` secondary to `#6E6E6E` tertiary. The result is a near-monochrome shell that disappears around full-color photography, exactly like a darkroom or a photographer's contact sheet. The product's roots in a Discord bot still show: the Discord blurple (`#4D5BCE`) survives as a connect/account accent, and the U1/U2/V1/V2 button grammar is lifted verbatim from the bot's reaction buttons.
|
|
8
|
+
|
|
9
|
+
The signature interaction is the **prompt → job → grid → upscale** loop. You type a natural-language prompt (optionally with `--ar`, `--v`, `--stylize`, `--style raw` parameters appended) into the prompt bar, tap **Imagine**, and a job appears at the top of the feed — first as a progressing blur, then resolving into four images. Below each grid is a row of monospace action chips: **U1 U2 U3 U4** (upscale that quadrant) and **V1 V2 V3 V4** (create variations), plus a re-roll (🔄). This grammar — parameters as flags, results as a 4-up grid, refinement as indexed chips — is Midjourney's entire identity and must be reproduced faithfully.
|
|
10
|
+
|
|
11
|
+
Typography is split-personality. The **UI** (titles, tabs, metadata) uses a clean grotesque sans — Inter on the web/app fallback — kept deliberately quiet. But **prompts and parameters** render in a **monospace** face, because a prompt is treated as code: `a glass owl, studio light --ar 3:2 --v 6 --stylize 250`. This monospace-for-prompts convention is a load-bearing brand signal — it tells the user "this string is a precise instruction, not prose."
|
|
12
|
+
|
|
13
|
+
**Key Characteristics:**
|
|
14
|
+
- True black canvas (`#000000`) — OLED black so imagery glows; dark-only, no light mode
|
|
15
|
+
- No brand accent — white (`#FFFFFF`) is the only "primary"; chrome is a grey ramp `#FFFFFF → #A1A1A1 → #6E6E6E`
|
|
16
|
+
- 2×2 image grid is the hero unit — every job renders as a 4-up quad
|
|
17
|
+
- Prompt bar — natural language + `--flag` parameters; tap Imagine to submit
|
|
18
|
+
- U1–U4 / V1–V4 chip grammar — monospace indexed chips for upscale and variation (Discord-bot heritage)
|
|
19
|
+
- Monospace for prompts & parameters — the prompt is treated as code, not prose
|
|
20
|
+
- Job feed — vertical stream of prompt + grid + action row, newest on top
|
|
21
|
+
- Discord blurple (`#4D5BCE`) survives as a connect/account accent only
|
|
22
|
+
- Progress blur — jobs resolve from a blurred placeholder to four sharp images
|
|
23
|
+
- Minimal chrome: bottom tab bar (Create / Explore / Search / Library / Profile), thin segmented control (Imagine / Edit / Personalize)
|
|
24
|
+
|
|
25
|
+
## 2. Color Palette & Roles
|
|
26
|
+
|
|
27
|
+
### Primary (Interactive)
|
|
28
|
+
- **White** (`#FFFFFF`): The only primary — Imagine button fill, active tab glyph, upscale chips (U1–U4), primary text.
|
|
29
|
+
- **White Pressed** (`#DADADA`): Pressed state of white-filled buttons.
|
|
30
|
+
- **Rate / Link Blue** (`#2D7FF9`): Hyperlinks, "Rate images" reward prompts, in-app links.
|
|
31
|
+
- **Discord Blurple** (`#4D5BCE`): "Connect Discord" / account-linking accent only — a heritage color, never a general CTA.
|
|
32
|
+
|
|
33
|
+
### Canvas & Surfaces (Dark — the only mode)
|
|
34
|
+
- **True Black Canvas** (`#000000`): Primary canvas. OLED black; behind every screen.
|
|
35
|
+
- **Surface 1** (`#0E0E0E`): Cards, sheets, the prompt bar's resting backdrop, token sections.
|
|
36
|
+
- **Surface 2** (`#1A1A1A`): Prompt input fill, ghost button background, raised rows.
|
|
37
|
+
- **Surface 3** (`#242424`): Pressed surface, hovered chips, scrubber tracks.
|
|
38
|
+
- **Divider** (`#2A2A2A`): Hairline dividers, chip borders, input borders.
|
|
39
|
+
|
|
40
|
+
### Text
|
|
41
|
+
- **Text Primary** (`#FFFFFF`): Titles, prompt text, active labels.
|
|
42
|
+
- **Text Secondary** (`#A1A1A1`): Metadata (image count, mode, elapsed time), inactive nav, prompt sub-lines.
|
|
43
|
+
- **Text Tertiary** (`#6E6E6E`): Placeholder text, disabled state, parameter hints, inactive tab labels.
|
|
44
|
+
|
|
45
|
+
### Semantic
|
|
46
|
+
- **Success Green** (`#2ECC71`): Job-complete tick, "Saved to library" toast.
|
|
47
|
+
- **Warning Amber** (`#F5A623`): "Slow / Relaxed queue" indicator, quota warnings.
|
|
48
|
+
- **Error Red** (`#E5484D`): Failed job, banned-prompt warning, network error.
|
|
49
|
+
- **Progress Shimmer** (`#1A1A1A → #2A2A2A`): Animated blur/shimmer on a rendering job before images resolve.
|
|
50
|
+
|
|
51
|
+
### Image Grid (content, not chrome)
|
|
52
|
+
The 2×2 grid carries 100% of the screen's saturation. The shell defines no decorative color — whatever the model generates is the palette. Treat generated imagery as full-bleed, full-color, and never tint or overlay it except for a 1px `#2A2A2A` seam between the four cells.
|
|
53
|
+
|
|
54
|
+
### Color Usage Rules
|
|
55
|
+
| Token | Hex | Where |
|
|
56
|
+
|-------|-----|-------|
|
|
57
|
+
| Canvas | `#000000` | Behind everything (OLED black) |
|
|
58
|
+
| Surface 1 | `#0E0E0E` | Cards, sheets, sections |
|
|
59
|
+
| Surface 2 | `#1A1A1A` | Prompt input, ghost buttons |
|
|
60
|
+
| Divider | `#2A2A2A` | Hairlines, chip & input borders |
|
|
61
|
+
| Primary (white) | `#FFFFFF` | Imagine button, active tab, U-chips, titles |
|
|
62
|
+
| Text secondary | `#A1A1A1` | Metadata, inactive nav |
|
|
63
|
+
| Text tertiary | `#6E6E6E` | Placeholders, disabled |
|
|
64
|
+
| Rate blue | `#2D7FF9` | Links, rate-images reward |
|
|
65
|
+
| Blurple | `#4D5BCE` | Discord connect only |
|
|
66
|
+
| Success | `#2ECC71` | Job complete |
|
|
67
|
+
| Error | `#E5484D` | Failed job |
|
|
68
|
+
|
|
69
|
+
## 3. Typography Rules
|
|
70
|
+
|
|
71
|
+
### Font Family
|
|
72
|
+
- **UI Sans**: `Inter` (by Rasmus Andersson, SIL OFL) — the closest open grotesque to Midjourney's clean app UI face. Used for titles, tabs, metadata, body. On iOS, falls back to SF Pro Text / SF Pro Display.
|
|
73
|
+
- **Prompt / Parameter Mono**: `SF Mono` on iOS (system monospace); `IBM Plex Mono` or `JetBrains Mono` as a bundled alternative. **Prompts and `--flags` always render monospace** — the prompt is treated as code.
|
|
74
|
+
- **Fallback Stack (sans)**: `-apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif`
|
|
75
|
+
- **Fallback Stack (mono)**: `'SF Mono', ui-monospace, Menlo, 'JetBrains Mono', monospace`
|
|
76
|
+
|
|
77
|
+
### Hierarchy
|
|
78
|
+
|
|
79
|
+
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
|
80
|
+
|------|------|------|--------|-------------|----------------|-------|
|
|
81
|
+
| Screen Title | Inter | 32pt | 800 | 1.15 | -0.4pt | "Create", large-title nav |
|
|
82
|
+
| Nav Title (compact) | Inter | 22pt | 700 | 1.2 | -0.3pt | Collapsed top bar / "Explore" |
|
|
83
|
+
| Section Heading | Inter | 19pt | 700 | 1.25 | -0.2pt | "Recent jobs", sheet titles |
|
|
84
|
+
| Body | Inter | 16pt | 400 | 1.5 | 0pt | Descriptions, settings rows |
|
|
85
|
+
| Action / Tab Active | Inter | 15pt | 600 | 1.0 | 0pt | Segmented control, primary action |
|
|
86
|
+
| Card Title | Inter | 15pt | 600 | 1.3 | 0pt | Library / album titles |
|
|
87
|
+
| Prompt Text | SF Mono | 13pt | 400 | 1.4 | 0pt | The prompt above each grid |
|
|
88
|
+
| Parameter Chip | SF Mono | 13pt | 600 | 1.0 | 0pt | `--ar 1:1`, `--stylize 250` |
|
|
89
|
+
| Job Chip (U1/V1) | SF Mono | 13pt | 600 | 1.0 | 0.2pt | Upscale / variation indexed chips |
|
|
90
|
+
| Metadata | Inter | 14pt | 400 | 1.4 | 0pt | "Relaxed · 4 images · 38s" |
|
|
91
|
+
| Caption | Inter | 12pt | 500 | 1.3 | 0pt | Timestamps, small labels |
|
|
92
|
+
| Tab Label | Inter | 10pt | 500 | 1.0 | 0.1pt | Bottom tab text |
|
|
93
|
+
| Placeholder | Inter | 14pt | 400 | 1.4 | 0pt | "What will you imagine?" |
|
|
94
|
+
|
|
95
|
+
### Principles
|
|
96
|
+
- **Two voices, one rule**: UI is quiet sans; prompts and parameters are monospace. Never render a prompt in the sans face — monospace *is* the signal that a string is an instruction.
|
|
97
|
+
- **Weight concentrated at 400 / 500 / 600 / 700 / 800**: Regular body, medium captions, semibold actions, bold headings, extrabold large title. No thin, no light.
|
|
98
|
+
- **Restraint over expression**: The type system is intentionally generic so it never competes with imagery. Brand personality lives in the grid and the `--flag` grammar, not the typeface.
|
|
99
|
+
- **Monospace is for instructions only**: prompts, parameters, U/V chips, seeds, job IDs. Nothing decorative is monospace.
|
|
100
|
+
- **Dynamic Type**: titles, body, metadata scale; tab labels, job chips, parameter chips stay fixed (layout-sensitive grid).
|
|
101
|
+
|
|
102
|
+
## 4. Component Stylings
|
|
103
|
+
|
|
104
|
+
### Buttons
|
|
105
|
+
|
|
106
|
+
**Primary Button (Imagine / Generate)**
|
|
107
|
+
- Shape: Full pill, 999pt corner radius (or 50% circle when icon-only in the prompt bar)
|
|
108
|
+
- Background: `#FFFFFF` (white — the only primary)
|
|
109
|
+
- Text / icon: `#000000`
|
|
110
|
+
- Padding: 14pt vertical, 28pt horizontal (pill); 36pt circle for the prompt-bar send
|
|
111
|
+
- Font: Inter 16pt weight 600
|
|
112
|
+
- Pressed: background `#DADADA` + scale 0.98
|
|
113
|
+
- Disabled (empty prompt): background `#242424`, text `#6E6E6E`
|
|
114
|
+
|
|
115
|
+
**Secondary / Outline Button (Vary, Remix, Edit)**
|
|
116
|
+
- Background: transparent
|
|
117
|
+
- Text: `#FFFFFF`
|
|
118
|
+
- Border: 1pt `#2A2A2A`
|
|
119
|
+
- Padding: 12pt vertical, 20pt horizontal
|
|
120
|
+
- Corner radius: 999pt (pill) or 8pt (rectangular contexts)
|
|
121
|
+
- Font: Inter 14pt weight 500
|
|
122
|
+
- Pressed: background `#1A1A1A`
|
|
123
|
+
|
|
124
|
+
**Ghost Button (Remix / inline tool)**
|
|
125
|
+
- Background: `#1A1A1A`
|
|
126
|
+
- Text: `#FFFFFF`
|
|
127
|
+
- Border: 1pt `#2A2A2A`
|
|
128
|
+
- Corner radius: 8pt
|
|
129
|
+
- Padding: 10pt vertical, 18pt horizontal
|
|
130
|
+
- Font: Inter 14pt weight 500
|
|
131
|
+
|
|
132
|
+
**Text Button (Cancel job / Delete)**
|
|
133
|
+
- Font: Inter 14pt weight 500
|
|
134
|
+
- Color: `#A1A1A1` (or `#E5484D` for destructive)
|
|
135
|
+
- No background, no border
|
|
136
|
+
- Pressed: color shifts to `#FFFFFF`
|
|
137
|
+
|
|
138
|
+
### Job Chips (the core atom)
|
|
139
|
+
|
|
140
|
+
The U1–U4 / V1–V4 chip grammar is Midjourney's signature control, inherited from the Discord bot's reaction buttons.
|
|
141
|
+
|
|
142
|
+
**Upscale Chip (U1 / U2 / U3 / U4)**
|
|
143
|
+
- Shape: rounded rectangle, 8pt corner radius
|
|
144
|
+
- Default: background `#FFFFFF`, text `#000000` (white = the actionable primary)
|
|
145
|
+
- Font: SF Mono 13pt weight 600
|
|
146
|
+
- Padding: 8pt vertical, 14pt horizontal
|
|
147
|
+
- Pressed: background `#DADADA`
|
|
148
|
+
- After upscale: chip dims to `#1A1A1A` bg / `#6E6E6E` text (consumed)
|
|
149
|
+
|
|
150
|
+
**Variation Chip (V1 / V2 / V3 / V4)**
|
|
151
|
+
- Background: `#1A1A1A`
|
|
152
|
+
- Text: `#FFFFFF`
|
|
153
|
+
- Border: 1pt `#2A2A2A`
|
|
154
|
+
- Same shape/size/font as upscale
|
|
155
|
+
- Pressed: background `#242424`
|
|
156
|
+
|
|
157
|
+
**Re-roll Chip (🔄)**
|
|
158
|
+
- Same as variation chip, leading 🔄 glyph, "Re-roll" label
|
|
159
|
+
- Re-runs the original prompt as a fresh job at the top of the feed
|
|
160
|
+
|
|
161
|
+
**Parameter Chip (`--ar 1:1`, `--stylize 250`)**
|
|
162
|
+
- Background: `#1A1A1A`, border 1pt `#2A2A2A`
|
|
163
|
+
- Text: `#FFFFFF` (flag) — SF Mono 13pt weight 600
|
|
164
|
+
- Corner radius: 8pt
|
|
165
|
+
- Read-only in the feed; tappable in the prompt composer to edit
|
|
166
|
+
|
|
167
|
+
### Image Grid (the hero)
|
|
168
|
+
|
|
169
|
+
**2×2 Job Grid**
|
|
170
|
+
- Container: 12pt corner radius, `overflow: hidden`
|
|
171
|
+
- Four equal cells, each `aspect-ratio: 1` (default `--ar 1:1`; container reshapes for `--ar 3:2`, `16:9`, `9:16`, etc.)
|
|
172
|
+
- Seam: 6pt gap rendered as `#000000` (canvas shows through) — or 1pt `#2A2A2A` hairline in compact density
|
|
173
|
+
- Tap a cell → full-screen lightbox with U/V actions for that quadrant
|
|
174
|
+
- While rendering: shimmer placeholder (`#1A1A1A → #2A2A2A` sweep) + percentage label
|
|
175
|
+
|
|
176
|
+
**Job Action Row** (below the grid)
|
|
177
|
+
- Height: 40pt
|
|
178
|
+
- Leading icons (24pt hit, 18pt glyph): favorite (heart), download, more (⋯)
|
|
179
|
+
- Trailing: U1–U4 chip cluster (or "Upscaled" state)
|
|
180
|
+
- Color: icons `#A1A1A1`, chips per chip spec above
|
|
181
|
+
|
|
182
|
+
### Prompt Bar (signature input)
|
|
183
|
+
|
|
184
|
+
- Height: 50pt, pinned (bottom of Create, or above the tab bar)
|
|
185
|
+
- Background: `#1A1A1A`, border 1pt `#2A2A2A`
|
|
186
|
+
- Corner radius: 25pt (full-height pill)
|
|
187
|
+
- Leading: 18pt insets, placeholder "What will you imagine?" in `#6E6E6E`
|
|
188
|
+
- Trailing: 36pt circular **Imagine** button — `#FFFFFF` fill, `#000000` arrow glyph
|
|
189
|
+
- On focus: border brightens to `#3A3A3A`, parameter helper chips (`--ar`, `--v`, `--stylize`) slide up above
|
|
190
|
+
- Parameters typed inline as `--flag value` render in monospace as the user types
|
|
191
|
+
|
|
192
|
+
### Navigation
|
|
193
|
+
|
|
194
|
+
**Bottom Tab Bar**
|
|
195
|
+
- Height: 70pt + safe area
|
|
196
|
+
- Background: `rgba(0,0,0,0.92)` with `backdrop-filter: blur(20px)`, 0.5pt top border `#2A2A2A`
|
|
197
|
+
- Tabs (5): Create, Explore, Search, Library, Profile
|
|
198
|
+
- Icon size: 23pt
|
|
199
|
+
- Active: glyph + label `#FFFFFF` (no tint pill — Midjourney has no accent), stroke-width thickens slightly
|
|
200
|
+
- Inactive: `#6E6E6E`
|
|
201
|
+
- Labels: Inter 10pt w500, always shown
|
|
202
|
+
|
|
203
|
+
**Segmented Control (Imagine / Edit / Personalize)**
|
|
204
|
+
- Sits below the top bar, 0.5pt bottom divider `#2A2A2A`
|
|
205
|
+
- Active item: `#FFFFFF` text + 2pt underline `#FFFFFF`
|
|
206
|
+
- Inactive: `#6E6E6E`, no underline
|
|
207
|
+
- Font: Inter 14pt w600
|
|
208
|
+
|
|
209
|
+
**Top Bar**
|
|
210
|
+
- Height: 44pt + safe area
|
|
211
|
+
- Leading: sailboat logomark (22pt, white) + screen title (Inter 19pt w700)
|
|
212
|
+
- Trailing: search + filter icons (21pt, `#A1A1A1`)
|
|
213
|
+
|
|
214
|
+
### Input Fields
|
|
215
|
+
|
|
216
|
+
**Search Bar (Explore / Library)**
|
|
217
|
+
- Height: 44pt
|
|
218
|
+
- Background: `#1A1A1A`, no border
|
|
219
|
+
- Corner radius: 12pt
|
|
220
|
+
- Leading `magnifyingglass` 18pt `#6E6E6E`
|
|
221
|
+
- Placeholder "Search the community" 14pt `#6E6E6E`
|
|
222
|
+
- Focus: 1pt `#2D7FF9` border
|
|
223
|
+
|
|
224
|
+
**Prompt Composer (full editor)**
|
|
225
|
+
- Multi-line text area, monospace, `#FFFFFF` text on `#0E0E0E`
|
|
226
|
+
- Parameter chips render inline; image references appear as 44pt thumbnails pinned at the start of the field
|
|
227
|
+
- "Imagine" pill docked bottom-right of the composer
|
|
228
|
+
|
|
229
|
+
### Distinctive Components
|
|
230
|
+
|
|
231
|
+
**Job Card (prompt + grid + actions)**
|
|
232
|
+
- The atomic unit of the feed: monospace prompt line (`#A1A1A1`, key phrase in `#FFFFFF`), 2×2 grid, action row
|
|
233
|
+
- 18pt vertical gap between job cards
|
|
234
|
+
- Newest job animates in at the top, pushing older jobs down
|
|
235
|
+
|
|
236
|
+
**U/V Chip Cluster**
|
|
237
|
+
- The Discord-bot reaction grammar surfaced natively
|
|
238
|
+
- U1–U4 are white (do-it-now); V1–V4 are dark (explore-from); re-roll re-runs the prompt
|
|
239
|
+
|
|
240
|
+
**Progress Blur → Resolve**
|
|
241
|
+
- A rendering job shows a blurred, shimmering placeholder with a percentage; on completion it crossfades (250ms) into the four sharp images with a subtle scale-from-0.98
|
|
242
|
+
|
|
243
|
+
**Parameter Helper Strip**
|
|
244
|
+
- On prompt focus, a horizontally-scrolling strip of `--ar 1:1`, `--ar 16:9`, `--v 6`, `--style raw`, `--stylize 250` chips slides up; tapping one appends the flag to the prompt in monospace
|
|
245
|
+
|
|
246
|
+
**Lightbox / Single-image View**
|
|
247
|
+
- Full-bleed image on `#000000`, swipe between the four quadrants, bottom action bar: Upscale, Vary (Subtle/Strong), Remix, Zoom Out, Download, Favorite
|
|
248
|
+
|
|
249
|
+
**Explore Masonry**
|
|
250
|
+
- The community feed renders as a dense masonry of generated images on `#000000` — no card chrome, just imagery with a tap-to-open behavior
|
|
251
|
+
|
|
252
|
+
## 5. Layout Principles
|
|
253
|
+
|
|
254
|
+
### Spacing System
|
|
255
|
+
- Base unit: 2pt (tight) — scale: 2, 4, 6, 8, 10, 14, 18, 24, 32, 48
|
|
256
|
+
- Grid cell seam: 6pt (`#000000` shows through)
|
|
257
|
+
- Job-card vertical gap: 18pt
|
|
258
|
+
- Screen horizontal inset: 14pt (imagery wants to be near-edge-to-edge)
|
|
259
|
+
|
|
260
|
+
### Grid & Container
|
|
261
|
+
- iPhone: content at 14pt horizontal insets; 2×2 grid fills the content width
|
|
262
|
+
- The job grid reshapes to the prompt's `--ar`: square (1:1), landscape (3:2, 16:9), portrait (9:16) — the container aspect changes, the 2×2 structure does not
|
|
263
|
+
- iPad: feed becomes 2 columns of job cards; Explore masonry scales to 3–4 columns
|
|
264
|
+
- Lightbox: full-bleed, zero insets, image centered on black
|
|
265
|
+
|
|
266
|
+
### Whitespace Philosophy
|
|
267
|
+
- **Black is the whitespace**: negative space is literally `#000000` — it frames imagery like matting around a print
|
|
268
|
+
- **Chrome is thin and dim**: dividers are 0.5–1pt `#2A2A2A`; metadata is `#A1A1A1`; nothing chrome competes with the grid
|
|
269
|
+
- **Imagery near-bleeds**: 14pt insets, 6pt cell seams — maximize pixels devoted to the render
|
|
270
|
+
- **No decorative surfaces**: cards are `#0E0E0E` (barely visible); the design refuses ornament so the model output is the only spectacle
|
|
271
|
+
|
|
272
|
+
### Border Radius Scale
|
|
273
|
+
- Square (0pt): full-bleed lightbox imagery, top/bottom edges
|
|
274
|
+
- Subtle (6pt): inner image-cell rounding in compact density
|
|
275
|
+
- Small (8pt): job chips, parameter chips, ghost buttons
|
|
276
|
+
- Standard (12pt): job-grid container, search bar, cards
|
|
277
|
+
- Comfortable (16pt): bottom sheets, modals
|
|
278
|
+
- Prompt Pill (25pt): the prompt bar (full-height pill)
|
|
279
|
+
- Pill (999pt): primary buttons, segmented backgrounds
|
|
280
|
+
- Circle (50%): the Imagine send button, avatars
|
|
281
|
+
|
|
282
|
+
## 6. Depth & Elevation
|
|
283
|
+
|
|
284
|
+
Midjourney is radically flat — depth would distract from imagery. Elevation exists only as separation, never as decoration.
|
|
285
|
+
|
|
286
|
+
| Level | Treatment | Use |
|
|
287
|
+
|-------|-----------|-----|
|
|
288
|
+
| Flat (Level 0) | No shadow | Job cards, feed, all content |
|
|
289
|
+
| Hairline (Level 1) | 1pt `#2A2A2A` border | Prompt bar, chips, inputs, segmented divider |
|
|
290
|
+
| Floating (Level 2) | `rgba(0,0,0,0.6) 0 8px 24px` + 1pt `#2A2A2A` | Bottom sheets, parameter helper strip, menus |
|
|
291
|
+
| Scrim (Level 3) | `rgba(0,0,0,0.7)` overlay | Behind the lightbox and modal sheets |
|
|
292
|
+
|
|
293
|
+
**Shadow Philosophy**: On true black, drop-shadows are nearly invisible — so Midjourney uses a 1pt `#2A2A2A` border as the primary "this floats" cue, with shadow only as a faint reinforcement on sheets. The lightbox doesn't elevate; it *replaces* — full-screen black scrim, image centered, no card.
|
|
294
|
+
|
|
295
|
+
### Motion
|
|
296
|
+
- **Job submit**: prompt bar's Imagine button pulses (scale 1 → 0.96 → 1, 120ms); a new shimmering job card slides in at the top over 250ms ease-out, pushing the feed down
|
|
297
|
+
- **Render progress**: shimmer sweep across the 2×2 placeholder (1.4s loop, `#1A1A1A → #2A2A2A`), percentage counts up
|
|
298
|
+
- **Resolve**: placeholder crossfades to four sharp images over 250ms + scale 0.98 → 1
|
|
299
|
+
- **Upscale tap**: U-chip flashes to `#DADADA` (90ms), upscaled result opens in lightbox with a 220ms shared-element zoom from the tapped cell
|
|
300
|
+
- **Lightbox swipe**: 1:1 finger-tracked paging between the four quadrants, 280ms spring (damping 0.85) on release
|
|
301
|
+
- **Parameter strip**: slides up 8pt + fades in over 180ms on prompt focus; slides down on blur
|
|
302
|
+
- **Tab change**: instant glyph color swap (no slide) — Midjourney keeps navigation motion silent
|
|
303
|
+
- **Haptic feedback**: soft impact on Imagine submit, light tick on chip tap, success haptic on job complete
|
|
304
|
+
|
|
305
|
+
## 7. Do's and Don'ts
|
|
306
|
+
|
|
307
|
+
### Do
|
|
308
|
+
- Use true black (`#000000`) as the canvas — OLED black makes imagery glow
|
|
309
|
+
- Treat white (`#FFFFFF`) as the only primary — Imagine button, active tab, U-chips
|
|
310
|
+
- Render the 2×2 grid as the hero — it carries 100% of the screen's color
|
|
311
|
+
- Render prompts and `--flags` in monospace — the prompt is code, not prose
|
|
312
|
+
- Use the U1–U4 / V1–V4 chip grammar verbatim — white U-chips, dark V-chips
|
|
313
|
+
- Keep chrome a grey ramp (`#FFFFFF → #A1A1A1 → #6E6E6E`) — never tint it
|
|
314
|
+
- Reshape the grid container to the prompt's `--ar` while keeping the 2×2 structure
|
|
315
|
+
- Use a 1pt `#2A2A2A` border (not shadow) as the "this floats" cue on black
|
|
316
|
+
- Reserve Discord blurple (`#4D5BCE`) for account/Discord connect only
|
|
317
|
+
- Show a shimmer placeholder + percentage while a job renders
|
|
318
|
+
|
|
319
|
+
### Don't
|
|
320
|
+
- Don't introduce a brand accent color — Midjourney deliberately has none
|
|
321
|
+
- Don't use a warm charcoal — the canvas is pure `#000000`, not `#191919`
|
|
322
|
+
- Don't tint, overlay, or filter generated imagery — content is full-color, chrome is grey
|
|
323
|
+
- Don't render prompts in the sans UI face — monospace is the instruction signal
|
|
324
|
+
- Don't add card borders/shadows around job cards — the feed is flat on black
|
|
325
|
+
- Don't use a tinted pill on the active tab — active is just `#FFFFFF`, no accent
|
|
326
|
+
- Don't reorder the U/V grammar — U is upscale (white), V is variation (dark)
|
|
327
|
+
- Don't pad imagery with large insets — 14pt insets, 6pt seams; pixels go to the render
|
|
328
|
+
- Don't animate navigation — tab changes are an instant color swap
|
|
329
|
+
- Don't use the blurple as a general CTA — it's a Discord-heritage account accent only
|
|
330
|
+
- Don't decorate empty space — black *is* the matting around the print
|
|
331
|
+
|
|
332
|
+
## 8. Responsive Behavior
|
|
333
|
+
|
|
334
|
+
### Device Sizes
|
|
335
|
+
| Device | Width | Key Changes |
|
|
336
|
+
|--------|-------|-------------|
|
|
337
|
+
| iPhone SE (3rd gen) | 375pt | 2×2 grid at 14pt insets; prompt bar full-width |
|
|
338
|
+
| iPhone 13/14/15 | 390pt | Standard layout |
|
|
339
|
+
| iPhone 15/16 Pro | 393pt | Dynamic Island accommodated in top bar |
|
|
340
|
+
| iPhone 15/16 Pro Max | 430pt | Larger grid; same structure |
|
|
341
|
+
| iPad (portrait) | 768pt | Feed → 2 columns of job cards; Explore masonry 3 cols |
|
|
342
|
+
| iPad (landscape) | 1024pt+ | Feed 2–3 columns; Explore masonry 4 cols; lightbox with side rail |
|
|
343
|
+
|
|
344
|
+
### Dynamic Type
|
|
345
|
+
- Screen title, section headings, body, metadata: full scale
|
|
346
|
+
- Tab labels, job chips (U1/V1), parameter chips, prompt monospace: FIXED (grid-layout-sensitive)
|
|
347
|
+
- Prompt text in the composer: scales to XL but stays monospace
|
|
348
|
+
|
|
349
|
+
### Orientation
|
|
350
|
+
- All screens support rotation
|
|
351
|
+
- Landscape: lightbox becomes the dominant mode (image fills, actions to the side)
|
|
352
|
+
- iPad split view: Library/Explore as primary + a job-detail secondary pane
|
|
353
|
+
|
|
354
|
+
### Touch Targets
|
|
355
|
+
- Job chip (U1/V1): 44pt min hit, 13pt mono glyph
|
|
356
|
+
- Tab bar icons: 23pt glyph, 44pt hit
|
|
357
|
+
- Imagine send button: 36pt circle, 44pt hit
|
|
358
|
+
- Grid cell: full-cell tap → lightbox
|
|
359
|
+
- Action-row icons: 18pt glyph, 24pt hit (favorite/download/more)
|
|
360
|
+
|
|
361
|
+
### Safe Area Handling
|
|
362
|
+
- Top: top bar respects safe area and Dynamic Island
|
|
363
|
+
- Bottom: prompt bar + tab bar respect home indicator
|
|
364
|
+
- Keyboard: prompt composer scrolls above keyboard; parameter helper strip docks above the keyboard
|
|
365
|
+
- Sides: 14pt content inset; lightbox is full-bleed (ignores insets)
|
|
366
|
+
|
|
367
|
+
## 9. Agent Prompt Guide
|
|
368
|
+
|
|
369
|
+
### Quick Color Reference
|
|
370
|
+
- Canvas: `#000000` (true OLED black, dark-only)
|
|
371
|
+
- Surface 1: `#0E0E0E`
|
|
372
|
+
- Surface 2: `#1A1A1A`
|
|
373
|
+
- Surface 3: `#242424`
|
|
374
|
+
- Divider: `#2A2A2A`
|
|
375
|
+
- Primary (white): `#FFFFFF`
|
|
376
|
+
- White pressed: `#DADADA`
|
|
377
|
+
- Text secondary: `#A1A1A1`
|
|
378
|
+
- Text tertiary: `#6E6E6E`
|
|
379
|
+
- Rate / link blue: `#2D7FF9`
|
|
380
|
+
- Discord blurple: `#4D5BCE`
|
|
381
|
+
- Success: `#2ECC71`
|
|
382
|
+
- Error: `#E5484D`
|
|
383
|
+
|
|
384
|
+
### Example Component Prompts
|
|
385
|
+
- "Build the Midjourney job card in SwiftUI: a monospace prompt line at top (SF Mono 13pt `#A1A1A1`, the key phrase in `#FFFFFF`), then a 2×2 image grid (12pt corner radius, four equal `aspect-ratio: 1` cells, 6pt `#000000` seam), then a 40pt action row (favorite/download/more icons 18pt `#A1A1A1` on the left, U1–U4 chip cluster on the right). 18pt gap between job cards. Canvas `#000000`."
|
|
386
|
+
|
|
387
|
+
- "Create the Midjourney prompt bar: 50pt tall pinned pill, `#1A1A1A` background, 1pt `#2A2A2A` border, 25pt corner radius. Leading 18pt inset placeholder 'What will you imagine?' in `#6E6E6E`. Trailing 36pt circular Imagine button — `#FFFFFF` fill, `#000000` arrow glyph. On focus, brighten border to `#3A3A3A` and slide up a horizontal parameter helper strip (`--ar 1:1`, `--ar 16:9`, `--v 6`, `--style raw`, `--stylize 250`) as monospace chips."
|
|
388
|
+
|
|
389
|
+
- "Render the Midjourney U/V chip cluster: U1 U2 U3 U4 as white chips (`#FFFFFF` bg, `#000000` text, SF Mono 13pt w600, 8pt corner radius, 8pt×14pt padding) — these are the do-it-now upscale actions. V1 V2 V3 V4 as dark chips (`#1A1A1A` bg, `#FFFFFF` text, 1pt `#2A2A2A` border, same shape). A trailing 🔄 'Re-roll' dark chip re-runs the original prompt. After an upscale, dim its U-chip to `#1A1A1A`/`#6E6E6E`."
|
|
390
|
+
|
|
391
|
+
- "Build the Midjourney bottom tab bar: 70pt + safe area, `rgba(0,0,0,0.92)` with 20px backdrop blur, 0.5pt `#2A2A2A` top border. Five tabs: Create, Explore, Search, Library, Profile — 23pt glyphs, Inter 10pt w500 labels. Active = `#FFFFFF` glyph+label with slightly thicker stroke and NO tint pill (Midjourney has no accent). Inactive = `#6E6E6E`."
|
|
392
|
+
|
|
393
|
+
- "Create the Midjourney render-progress state: a 2×2 placeholder grid with an animated shimmer sweep (`#1A1A1A → #2A2A2A`, 1.4s loop) and a centered percentage label in `#A1A1A1`. On completion, crossfade (250ms) to the four sharp images with a scale 0.98 → 1."
|
|
394
|
+
|
|
395
|
+
- "Build the Midjourney lightbox: full-bleed image on `#000000`, no card, 1:1 finger-tracked horizontal paging between the four quadrants (280ms spring on release). Bottom action bar: Upscale, Vary (Subtle / Strong), Remix, Zoom Out, Download, Favorite — all white-text ghost buttons on a `rgba(0,0,0,0.7)` scrim."
|
|
396
|
+
|
|
397
|
+
### Iteration Guide
|
|
398
|
+
1. Canvas is true black `#000000` — NOT a warm charcoal, NOT off-black; dark-only, no light mode
|
|
399
|
+
2. There is NO brand accent — white `#FFFFFF` is the only primary (Imagine, active tab, U-chips)
|
|
400
|
+
3. The 2×2 grid is the hero and the only source of color — chrome is a grey ramp, never tinted
|
|
401
|
+
4. Prompts and `--flags` are ALWAYS monospace — that's the "this is an instruction" signal
|
|
402
|
+
5. U1–U4 chips are white (do-it-now upscale); V1–V4 chips are dark (variations) — never swap the grammar
|
|
403
|
+
6. The grid container reshapes to the prompt's `--ar`; the 2×2 structure itself never changes
|
|
404
|
+
7. Floating elements use a 1pt `#2A2A2A` border (not shadow) — shadows vanish on black
|
|
405
|
+
8. Discord blurple `#4D5BCE` is account/Discord-connect only — never a general CTA
|
|
406
|
+
9. Imagery near-bleeds (14pt insets, 6pt seams) — pixels belong to the render, not the chrome
|
|
407
|
+
10. Motion is minimal: job slides in, shimmer resolves, chip flashes — navigation is a silent color swap
|