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,478 @@
|
|
|
1
|
+
# Design System Inspiration of Snapchat (iOS)
|
|
2
|
+
|
|
3
|
+
## 1. Visual Theme & Atmosphere
|
|
4
|
+
|
|
5
|
+
Snapchat's iOS app is a camera that happens to have messaging, maps, and a video feed attached — not the other way around. The app opens directly into the live camera viewfinder, full-screen, with the lens capturing your face before you've even decided what to do. This is the single most defining characteristic of Snapchat's design philosophy: the camera IS the home screen. Every other app in this category (X, Threads, Facebook, Instagram) opens to a feed; Snapchat opens to a viewfinder. The result is an app whose design language is built around photography — edge-to-edge imagery, floating chromeless controls, and a yellow accent so saturated it functions as a signal flare.
|
|
6
|
+
|
|
7
|
+
Snap Yellow (`#FFFC00`) is the most aggressive accent color in any major social app. It's a pure primary hue — not a branded shade with hex poetry behind it, but a near-max-brightness yellow that pops off a black canvas like a hazard sign. It appears only on brand moments: the ghost logo, the snap-capture button (a 82pt yellow circle surrounded by a yellow ring), the Snapstreak 🔥 badges, and certain navigation pills. The rest of the UI is monochrome white-on-dark or white-on-photo, with specific color codes reserved for the Snap type system (red = photo snap, purple = video snap, blue = chat message, green = audio) so users can glance at their inbox and instantly parse conversation types.
|
|
8
|
+
|
|
9
|
+
The navigation model is unlike any other app: instead of a bottom tab bar, Snapchat uses a horizontal swipe-between-four-screens metaphor, where Map, Chat, Camera (center, default), Stories (Discover), and Spotlight each occupy their own full-screen canvas. The user moves between them by swiping left/right from the camera. A small tab bar at the bottom exists, but acts more as a progress indicator showing your current screen than a persistent navigation dock. Typography is Avenir Next — a humanist geometric sans with warm curves and a distinctive lowercase `a` — at Bold and Medium weights almost exclusively, creating a friendly, young-feeling type voice that contrasts against the app's dramatic photography. Bitmoji characters (user's personalized cartoon avatar) replace profile photos throughout — your bitmoji waves from the chat avatar, sleeps on the Snap Map, and features in every UI moment where other apps would use a profile photo.
|
|
10
|
+
|
|
11
|
+
**Key Characteristics:**
|
|
12
|
+
- Camera-first home screen — app opens directly to the live viewfinder full-screen
|
|
13
|
+
- Snap Yellow (`#FFFC00`) as the aggressive primary accent — ghost logo, capture button, streak flame
|
|
14
|
+
- Swipe-between-five-screens navigation — Map | Chat | Camera | Discover | Spotlight (no traditional tab bar)
|
|
15
|
+
- Color-coded snap types — Red photo, Purple video, Blue chat, Green audio (in the Chat inbox)
|
|
16
|
+
- 82pt yellow capture button with concentric yellow ring — the signature center-screen CTA
|
|
17
|
+
- Bitmoji integration — user's custom cartoon avatar replaces profile photos app-wide
|
|
18
|
+
- Stories ring — pulsing yellow ring around unread story avatars
|
|
19
|
+
- Friend emojis — 🔥 streak, 💛 best friends, 👑 super BFF, 😎 mutual best friends, 🎂 birthday
|
|
20
|
+
- Ghost logo — the flat cartoon ghost (Ghostface Chillah) as the brand mark, used on splash and loading
|
|
21
|
+
- Floating chromeless controls on the camera — no surrounding UI frame, just icons in empty corners
|
|
22
|
+
- Avenir Next font at Bold/Medium weights — warm humanist sans, no thin weights
|
|
23
|
+
- Chat auto-delete — the signature "ephemeral by default" feel where messages disappear on close
|
|
24
|
+
|
|
25
|
+
## 2. Color Palette & Roles
|
|
26
|
+
|
|
27
|
+
### Primary Brand
|
|
28
|
+
- **Snap Yellow** (`#FFFC00`): The only brand accent. Ghost logo background, capture button fill, streak flame, unread story ring pulse, Snap-added-me badges. Saturated and aggressive.
|
|
29
|
+
- **Yellow Pressed** (`#E6E300`): Pressed state on yellow interactive elements (very rare — most yellow is logo/capture).
|
|
30
|
+
- **Pure Black** (`#000000`): Primary canvas for Chat, Map UI chrome, Discover background, loading screens.
|
|
31
|
+
- **Pure White** (`#FFFFFF`): Primary text on dark surfaces, chromeless icons floating on camera viewfinder, capture-button inner ring fill (when not active).
|
|
32
|
+
|
|
33
|
+
### Canvas & Surfaces (Dark / Default)
|
|
34
|
+
- **Canvas Black** (`#000000`): Primary canvas across Chat, Stories (Discover chrome), Spotlight.
|
|
35
|
+
- **Surface 1** (`#1A1A1A`): Chat bubbles (received), Discover card backgrounds, bottom-sheet modals.
|
|
36
|
+
- **Surface 2** (`#2C2C2C`): Elevated surfaces — selected chat row, settings cells.
|
|
37
|
+
- **Divider** (`#333333`): Hairlines between chat rows, settings sections.
|
|
38
|
+
- **Camera Viewfinder**: full-bleed live-camera feed (any colors from the real world)
|
|
39
|
+
|
|
40
|
+
### Canvas & Surfaces (Light — limited use)
|
|
41
|
+
Snapchat is effectively dark/camera-default. A light canvas appears only inside certain settings screens and Memories grid.
|
|
42
|
+
- **Light Canvas** (`#FFFFFF`)
|
|
43
|
+
- **Light Surface 1** (`#F2F2F2`)
|
|
44
|
+
- **Light Text** (`#000000`)
|
|
45
|
+
|
|
46
|
+
### Text
|
|
47
|
+
- **Text Primary Dark** (`#FFFFFF`): Primary text on dark and on camera overlays.
|
|
48
|
+
- **Text Primary Light** (`#000000`): Primary text on light surfaces (settings, memories).
|
|
49
|
+
- **Text Secondary** (`#8A8A8F`): Timestamps, status ("Tap to reply", "Opened 2m ago"), metadata.
|
|
50
|
+
- **Text Tertiary** (`#555555`): Disabled / very low-emphasis.
|
|
51
|
+
|
|
52
|
+
### Snap Type Colors (Color-Coded Chat Inbox)
|
|
53
|
+
Each Snap type has a distinct icon color — this is Snapchat's signature inbox-at-a-glance signal.
|
|
54
|
+
- **Photo Snap Red** (`#FF2E3D`): Received photo snap icon in inbox (unread square with triangle point).
|
|
55
|
+
- **Video Snap Purple** (`#9B51FF`): Received video snap icon.
|
|
56
|
+
- **Chat Blue** (`#4DA7FF`): Text chat message icon.
|
|
57
|
+
- **Audio Green** (`#4CD964`): Audio note / voice message icon.
|
|
58
|
+
- **Opened State (empty outline)**: Once opened, the filled square becomes an outline of the same color — signaling "already viewed".
|
|
59
|
+
|
|
60
|
+
### Semantic
|
|
61
|
+
- **Error Red** (`#FF3B30`): Destructive actions, failed sends, "Clear streak" warnings.
|
|
62
|
+
- **Success Green** (`#00D873`): Snap sent confirmation, "Streak saved" toast.
|
|
63
|
+
- **Live Red** (`#FF2E3D`): Live Story red dot, Snap Map live event marker.
|
|
64
|
+
- **Blue Link** (`#4DA7FF`): Inline links in chat (same blue as Chat type).
|
|
65
|
+
|
|
66
|
+
### Story Ring Colors
|
|
67
|
+
- **Unread Story Ring** (`#FFFC00`): Snap Yellow with a subtle animated pulse around unread Stories on Discover page.
|
|
68
|
+
- **Read Story Ring** (`#555555`): Gray ring around viewed Stories.
|
|
69
|
+
- **Live Story Ring** (`#FF2E3D`): Red ring for Live Stories (Spotlight or partnered live events).
|
|
70
|
+
|
|
71
|
+
### Map Accent
|
|
72
|
+
- **Snap Map Zones**: Heat-map coloring on Snap Map — warmer zones (dense snaps) render in orange `#FF9A1F` / red `#FF2E3D`; cool zones in yellow `#FFFC00`.
|
|
73
|
+
|
|
74
|
+
## 3. Typography Rules
|
|
75
|
+
|
|
76
|
+
### Font Family
|
|
77
|
+
- **Primary**: `Avenir Next` (by Adrian Frutiger, published by Linotype) — a humanist geometric sans with warm curves and a distinctive two-story lowercase `a`. Snapchat ships Avenir Next Bold and Avenir Next Medium as the primary UI faces.
|
|
78
|
+
- **Display / Branded Moments**: `Avenir Next Heavy` for the largest type (splash, streak counts).
|
|
79
|
+
- **Fallback Stack**: `'Avenir Next', -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif`
|
|
80
|
+
- **CJK / Non-Latin**: Apple system fonts handle CJK; Avenir Next has Latin-plus-extended coverage.
|
|
81
|
+
|
|
82
|
+
### Hierarchy
|
|
83
|
+
|
|
84
|
+
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
|
85
|
+
|------|------|------|--------|-------------|----------------|-------|
|
|
86
|
+
| Splash Title | Avenir Next Heavy | 48pt | 900 | 1.0 | -0.5pt | "Snapchat" wordmark on launch |
|
|
87
|
+
| Screen Title | Avenir Next Bold | 24pt | 700 | 1.15 | -0.2pt | "Chat", "Stories", "My Profile" |
|
|
88
|
+
| Section Header | Avenir Next Bold | 20pt | 700 | 1.2 | -0.1pt | "Best Friends", "My Story", "For You" |
|
|
89
|
+
| Chat Row Name | Avenir Next Bold | 16pt | 700 | 1.25 | 0pt | Friend name in inbox row |
|
|
90
|
+
| Chat Message | Avenir Next Medium | 16pt | 500 | 1.3 | 0pt | Chat bubble text |
|
|
91
|
+
| Chat Status | Avenir Next Medium | 13pt | 500 | 1.25 | 0pt | "Received · 2m ago", "Tap to reply" — color `#8A8A8F` |
|
|
92
|
+
| Story Name | Avenir Next Bold | 14pt | 700 | 1.2 | 0pt | Friend name under story thumbnail |
|
|
93
|
+
| Timestamp | Avenir Next Medium | 12pt | 500 | 1.2 | 0pt | "2m", "1h", "Yesterday" |
|
|
94
|
+
| Streak Count | Avenir Next Bold | 18pt | 700 | 1.0 | 0pt | Number beside 🔥 on friend row |
|
|
95
|
+
| Camera HUD Label | Avenir Next Bold | 13pt | 700 | 1.0 | 0.3pt | "NEW CHAT", "MEMORIES" — tracked uppercase |
|
|
96
|
+
| Primary Button | Avenir Next Bold | 16pt | 700 | 1.0 | 0.2pt | "Send To", "Add", "Save Story" |
|
|
97
|
+
| Lens Label | Avenir Next Bold | 13pt | 700 | 1.0 | 0.3pt | Under camera lens carousel — tracked small caps |
|
|
98
|
+
| Bitmoji Callout | Avenir Next Medium | 14pt | 500 | 1.3 | 0pt | Bitmoji caption bubbles on chat |
|
|
99
|
+
| Spotlight Caption | Avenir Next Medium | 14pt | 500 | 1.3 | 0pt | Creator username + caption overlay on video |
|
|
100
|
+
| Discover Tile Title | Avenir Next Bold | 16pt | 700 | 1.2 | -0.1pt | Story tile name "Snapchat News", "NBA" |
|
|
101
|
+
|
|
102
|
+
### Principles
|
|
103
|
+
- **Two weights only**: Avenir Next Bold (700) and Medium (500) carry nearly everything. Heavy (900) only on splash / streak hero. No regular, no light, no thin.
|
|
104
|
+
- **Tracked caps for HUD moments**: Camera HUD labels ("MEMORIES", "NEW CHAT") use uppercase with +0.3pt tracking — evokes the "capture" feeling
|
|
105
|
+
- **Text as overlay on imagery**: Camera HUD type sits on live photo/video, so Snapchat uses a subtle drop shadow (`rgba(0,0,0,0.4) 0 1px 2px`) or a semi-transparent pill background on text labels to keep legibility across any scene
|
|
106
|
+
- **Dynamic Type respected on Chat**: chat bubbles, friend names, bios scale with user preference. Camera HUD, streak counts, and lens labels stay fixed
|
|
107
|
+
- **Bitmoji faces are the "characters"**: Where other apps use type+photo hierarchy, Snapchat often uses bitmoji-as-character with minimal type — a friend row is "Bitmoji + Name" with almost no other text
|
|
108
|
+
|
|
109
|
+
## 4. Component Stylings
|
|
110
|
+
|
|
111
|
+
### Buttons
|
|
112
|
+
|
|
113
|
+
**The Snap Capture Button (The Big Yellow Circle)**
|
|
114
|
+
The most recognizable component in the app — the center-bottom button on the camera screen that captures snaps.
|
|
115
|
+
- Outer ring: 82pt diameter, 6pt wide ring, `#FFFC00` Snap Yellow — this is the always-visible "chrome" around the inner button
|
|
116
|
+
- Inner circle: 64pt diameter, `#FFFFFF` (white) — the actual tap target
|
|
117
|
+
- Tap (photo snap): inner circle scales 0.92 → 1.0 spring + `.impact(.soft)` haptic + camera shutter sound; flash animation white overlay 100ms
|
|
118
|
+
- Long-press (video snap): inner circle fills with `#FFFC00` over the press duration (up to 60s max), the outer ring becomes a progress indicator (yellow fills clockwise over 60s), `.impact(.medium)` haptic on start, `.impact(.soft)` ticks every second
|
|
119
|
+
- Double-tap: flips front/rear camera — shutter icon spins 180° + haptic
|
|
120
|
+
- Positioned: bottom-center, 20pt from bottom safe area
|
|
121
|
+
|
|
122
|
+
**Primary "Send" Button (On Snap Preview)**
|
|
123
|
+
After capturing a snap, user sees a preview screen with the "Send To →" button.
|
|
124
|
+
- Shape: Pill, 500pt corner radius
|
|
125
|
+
- Background: `#FFFC00` Snap Yellow
|
|
126
|
+
- Text: "Send To" in Avenir Next Bold 16pt `#000000`
|
|
127
|
+
- Trailing icon: `arrow.right` 16pt black
|
|
128
|
+
- Padding: 12pt vertical, 20pt horizontal
|
|
129
|
+
- Positioned: bottom-right corner of preview screen
|
|
130
|
+
- Pressed: scale 0.97 + soft haptic
|
|
131
|
+
|
|
132
|
+
**Camera HUD Icon Buttons**
|
|
133
|
+
Floating chromeless controls scattered around the camera viewfinder.
|
|
134
|
+
- No background by default — icon only, 28pt glyph, white with subtle shadow `rgba(0,0,0,0.4) 0 1px 2px`
|
|
135
|
+
- Size: 44pt hit area
|
|
136
|
+
- Icons in corners: flash top-left, flip-camera top-right, music track top-center, memories bottom-left, chat bottom-right
|
|
137
|
+
- When activated (e.g., flash on), icon turns `#FFFC00` yellow
|
|
138
|
+
|
|
139
|
+
**Chat Send Button**
|
|
140
|
+
- Shape: circle, 40pt diameter
|
|
141
|
+
- Background: `#FFFC00` when text is present, `#2C2C2C` when empty
|
|
142
|
+
- Icon: `paperplane.fill` rotated 45° in black when yellow, white when gray
|
|
143
|
+
- Pressed: scale 0.95 + `.impact(.light)` haptic
|
|
144
|
+
|
|
145
|
+
**Add Friend / Add Button**
|
|
146
|
+
- Shape: Pill, 500pt corner radius
|
|
147
|
+
- Not-friends: `#FFFC00` fill, black text + add icon
|
|
148
|
+
- Friends/added: `#2C2C2C` fill, white text "Added" + checkmark
|
|
149
|
+
- Font: Avenir Next Bold 14pt
|
|
150
|
+
- Padding: 6pt vertical, 14pt horizontal
|
|
151
|
+
|
|
152
|
+
**Lens Carousel Button (Camera)**
|
|
153
|
+
The horizontal strip of lens thumbnails above the capture button.
|
|
154
|
+
- Each lens: 60pt circle, bitmoji or lens icon thumbnail fill
|
|
155
|
+
- Active lens: 72pt (pulsed larger), with a `#FFFC00` outer ring 3pt
|
|
156
|
+
- Inactive: 60pt, no ring
|
|
157
|
+
- Scroll: horizontal, 12pt gap
|
|
158
|
+
- Below active: small caps label in Avenir Next Bold 13pt white
|
|
159
|
+
|
|
160
|
+
### Cards & Containers
|
|
161
|
+
|
|
162
|
+
**Chat Inbox Row**
|
|
163
|
+
- Full-width, `#000000` canvas, divided by 1pt `#333333` hairline
|
|
164
|
+
- Height: 72pt
|
|
165
|
+
- Leading: 48pt bitmoji avatar (circular frame)
|
|
166
|
+
- Next: friend name in Avenir Next Bold 16pt `#FFFFFF`
|
|
167
|
+
- Below name: **snap type icon** (colored square for photo/video/chat/audio) + status text in Avenir Next Medium 13pt `#8A8A8F`
|
|
168
|
+
- Trailing: timestamp "2m", streak flame + number "🔥 47" (if streak exists), "Tap to reply" subtle arrow indicator
|
|
169
|
+
- Tap row: opens chat
|
|
170
|
+
- Swipe left: reveals "Clear" action
|
|
171
|
+
|
|
172
|
+
**Snap Type Indicator (Square Icon on Chat Row)**
|
|
173
|
+
- 16pt filled square (unopened) or outlined square (opened)
|
|
174
|
+
- Colors: Red `#FF2E3D` (photo), Purple `#9B51FF` (video), Blue `#4DA7FF` (chat), Green `#4CD964` (audio)
|
|
175
|
+
- Direction marker: a small triangular arrow-pointing-in-direction (incoming = pointing into the square; outgoing = pointing out)
|
|
176
|
+
- Double-chat (you sent AND they sent unread): double-stacked icons
|
|
177
|
+
|
|
178
|
+
**Story Thumbnail (On Discover + Friends' Stories)**
|
|
179
|
+
- 120pt × 200pt vertical rectangle, 16pt corner radius
|
|
180
|
+
- Full-bleed story-preview image as background
|
|
181
|
+
- 3pt ring border: `#FFFC00` yellow (unread), `#555555` gray (read), `#FF2E3D` red (live)
|
|
182
|
+
- Top-left: 40pt circular bitmoji of creator
|
|
183
|
+
- Bottom-left: creator name in Avenir Next Bold 14pt white + shadow
|
|
184
|
+
- Horizontally scrolling row on Stories page with 12pt gaps
|
|
185
|
+
|
|
186
|
+
**Chat Bubble (Received)**
|
|
187
|
+
- Background: `#1A1A1A` (dark) with 20pt corner radius
|
|
188
|
+
- Max width: 75%
|
|
189
|
+
- Text: Avenir Next Medium 16pt `#FFFFFF`
|
|
190
|
+
- Padding: 10pt vertical, 14pt horizontal
|
|
191
|
+
- No tail — just rounded rect
|
|
192
|
+
- Aligned to leading side, 60pt indent from left (after bitmoji avatar area)
|
|
193
|
+
|
|
194
|
+
**Chat Bubble (Sent)**
|
|
195
|
+
- Background: `#2C2C2C` (slightly lighter dark) with 20pt corner radius
|
|
196
|
+
- Text: Avenir Next Medium 16pt `#FFFFFF`
|
|
197
|
+
- Aligned to trailing side
|
|
198
|
+
- Note: Snapchat chat bubbles are NOT color-coded like some messaging apps — both sent and received are dark gray variants
|
|
199
|
+
|
|
200
|
+
**Snap Map Zone Marker**
|
|
201
|
+
- Circular bitmoji of a friend pinned to their last-known location
|
|
202
|
+
- 48pt circular bitmoji with 2pt yellow ring around it
|
|
203
|
+
- "Sleeping" state: bitmoji closed-eyes + ZZZ emoji overlay
|
|
204
|
+
- "Driving" state: bitmoji in driver-seat pose
|
|
205
|
+
- Bottom label: friend name in 12pt white with subtle shadow
|
|
206
|
+
|
|
207
|
+
**Memories Grid Cell**
|
|
208
|
+
- Square 110pt × 110pt thumbnail with 8pt corner radius
|
|
209
|
+
- Stacked corner badges for multi-snap stories
|
|
210
|
+
- Tap opens full-screen player
|
|
211
|
+
|
|
212
|
+
**Spotlight Card (Full-Screen Vertical Video)**
|
|
213
|
+
- Edge-to-edge vertical video player (like TikTok)
|
|
214
|
+
- Trailing action column: favorite heart, comment, share, more — stacked at 28pt with count beneath
|
|
215
|
+
- Bottom: creator username + caption (2-line clamp) in Avenir Next Medium 14pt white
|
|
216
|
+
- Swipe up: next video; swipe down: previous
|
|
217
|
+
|
|
218
|
+
**Discover Tile (Publisher Story)**
|
|
219
|
+
- Card 120pt wide × 200pt tall, 16pt corner radius
|
|
220
|
+
- Top: publisher logo in top-left
|
|
221
|
+
- Background: cover image
|
|
222
|
+
- Bottom: tile title "Snapchat News" in Avenir Next Bold 16pt white + dark gradient overlay for legibility
|
|
223
|
+
|
|
224
|
+
### Navigation
|
|
225
|
+
|
|
226
|
+
**Bottom Navigation Strip (NOT a traditional tab bar)**
|
|
227
|
+
Unlike most apps, Snapchat uses a horizontal swipe between 5 screens with a minimal indicator strip at the bottom.
|
|
228
|
+
- Height: 56pt + safe area
|
|
229
|
+
- Background: semi-transparent `rgba(0,0,0,0.5)` over camera OR solid `#000000` on non-camera screens
|
|
230
|
+
- 5 tabs left-to-right: Map (map pin), Chat (speech bubble), Camera (center — larger, often just the outline of capture button), Stories (play icon), Spotlight (diamond)
|
|
231
|
+
- Icon size: 28pt for side icons, 48pt visualized for camera (actually the capture button sits above this strip)
|
|
232
|
+
- Active: `#FFFFFF`
|
|
233
|
+
- Inactive: `#555555` (lower contrast)
|
|
234
|
+
- Horizontal swipe transition between screens with a 300ms spring + rubber-band edges
|
|
235
|
+
- No labels
|
|
236
|
+
|
|
237
|
+
**Camera Top Bar (Floating)**
|
|
238
|
+
- No background — just icons floating over the viewfinder
|
|
239
|
+
- Leading: user's bitmoji (32pt) — tap opens profile
|
|
240
|
+
- Trailing: search (`magnifyingglass` 28pt), three-dots overflow
|
|
241
|
+
- All white with subtle drop shadow for legibility on any background
|
|
242
|
+
|
|
243
|
+
**Chat Top Bar**
|
|
244
|
+
- Height: 56pt + safe area
|
|
245
|
+
- Background: `#000000`
|
|
246
|
+
- Leading: user bitmoji + name in Avenir Next Bold 24pt "Chat"
|
|
247
|
+
- Trailing: plus icon 28pt (new chat)
|
|
248
|
+
- Hairline divider below
|
|
249
|
+
|
|
250
|
+
### Input Fields
|
|
251
|
+
|
|
252
|
+
**Chat Input Bar (Bottom of Chat Screen)**
|
|
253
|
+
- Height: 48pt, grows on multi-line
|
|
254
|
+
- Corner radius: 24pt (pill)
|
|
255
|
+
- Background: `#1A1A1A`
|
|
256
|
+
- Leading: camera icon 24pt white (opens in-chat camera)
|
|
257
|
+
- Center: "Send a chat" placeholder in Avenir Next Medium 15pt `#8A8A8F`
|
|
258
|
+
- Trailing when empty: emoji sticker icon 24pt + gallery icon 24pt
|
|
259
|
+
- Trailing when text entered: yellow send button 40pt circular
|
|
260
|
+
|
|
261
|
+
**Search Bar**
|
|
262
|
+
- Height: 44pt
|
|
263
|
+
- Corner radius: 22pt
|
|
264
|
+
- Background: `#1A1A1A`
|
|
265
|
+
- Leading: `magnifyingglass` 18pt `#8A8A8F`
|
|
266
|
+
- Placeholder: "Search" in Avenir Next Medium 16pt `#8A8A8F`
|
|
267
|
+
|
|
268
|
+
### Distinctive Components
|
|
269
|
+
|
|
270
|
+
**The Snap Capture Flow**
|
|
271
|
+
The center-point of the app. User on camera screen taps/holds the yellow capture button, a snap (photo or video) is captured, preview screen with filters/stickers/text overlay appears, user taps "Send To →" and selects recipients from the contacts grid.
|
|
272
|
+
- Flash animation: white overlay 100ms on capture
|
|
273
|
+
- Preview transition: captured image fades into full-screen preview over 200ms
|
|
274
|
+
- Edit tools (top-right): text, sticker, drawing pen, timer, save — all floating chromeless icons
|
|
275
|
+
|
|
276
|
+
**Bitmoji Everything**
|
|
277
|
+
- User's personalized 3D cartoon avatar (via Bitmoji app, integrated by default)
|
|
278
|
+
- Used as: profile photo (replaces any "user" icon), Snap Map marker, chat avatar, sticker in chats, streak flame character
|
|
279
|
+
- Default appearance: head-shot with expressive pose
|
|
280
|
+
- On Snap Map: full-body pose showing current activity ("driving", "sleeping", "at the beach")
|
|
281
|
+
|
|
282
|
+
**Streak Flame 🔥**
|
|
283
|
+
The signature habit-loop mechanic.
|
|
284
|
+
- 🔥 emoji + number next to friend names with active streaks
|
|
285
|
+
- Triggered: daily Snap-back-and-forth between two users for 3+ consecutive days
|
|
286
|
+
- Hourglass ⌛ replaces flame when streak is at risk (fewer than 4 hours to expire)
|
|
287
|
+
- Streak save toast: "Streak saved! 🔥" in Avenir Next Bold 16pt white on `#00D873` background
|
|
288
|
+
- Streak lost animation: flame turns gray + shatter particles + sad haptic
|
|
289
|
+
|
|
290
|
+
**Friend Emoji System**
|
|
291
|
+
Snapchat awards emoji badges next to friend names based on interaction patterns.
|
|
292
|
+
- 🔥 (fire): Active streak, number indicates days
|
|
293
|
+
- 💛 (yellow heart): #1 Best Friends (mutual top-sent-to)
|
|
294
|
+
- ❤️ (red heart): Best Friends for 2+ weeks
|
|
295
|
+
- 💕 (pink hearts): Best Friends for 2+ months
|
|
296
|
+
- 👶 (baby): You just became friends
|
|
297
|
+
- 😎 (sunglasses): One of their best friends is also one of yours (mutual)
|
|
298
|
+
- 🎂 (cake): It's their birthday
|
|
299
|
+
- 🏆 (trophy): You achieved a milestone together
|
|
300
|
+
|
|
301
|
+
**Ghost Logo (Ghostface Chillah)**
|
|
302
|
+
- Yellow rounded-pentagon ghost shape with simple black eyes
|
|
303
|
+
- Used: splash screen (`#FFFC00` background + white ghost), loading states, friend-request empty states
|
|
304
|
+
- Never colored other than yellow or white
|
|
305
|
+
|
|
306
|
+
**Snap Map View**
|
|
307
|
+
- Full-screen map with styled tiles (muted colors)
|
|
308
|
+
- Friend bitmojis pinned to their last known locations
|
|
309
|
+
- Heat-map overlay showing public snap activity density (warm = dense, cool = sparse)
|
|
310
|
+
- Search bar top: "Search location" with snap-location results
|
|
311
|
+
- Tap bitmoji: shows "Last updated 4m ago" popup
|
|
312
|
+
|
|
313
|
+
**Lens Carousel (Camera)**
|
|
314
|
+
- Horizontal scrollable row of circle thumbnails 4-5 visible at a time above the capture button
|
|
315
|
+
- Active lens thumbnail: 72pt with yellow ring + small caps label
|
|
316
|
+
- Inactive: 60pt, no ring
|
|
317
|
+
- Swipe left/right on camera viewfinder switches lenses (the whole screen's AR overlay changes in real time)
|
|
318
|
+
- "Explore" button at the end of carousel opens lens browser
|
|
319
|
+
|
|
320
|
+
## 5. Layout Principles
|
|
321
|
+
|
|
322
|
+
### Spacing System
|
|
323
|
+
- Base unit: 4pt
|
|
324
|
+
- Scale: 4, 8, 12, 16, 20, 24, 32, 40, 48, 56, 72, 82
|
|
325
|
+
- Standard horizontal margin: 16pt on Chat/Stories screens
|
|
326
|
+
- Camera screen: edge-to-edge viewfinder, floating controls with 16pt inset from edges
|
|
327
|
+
- Capture button: 20pt from bottom safe area
|
|
328
|
+
|
|
329
|
+
### Grid & Container
|
|
330
|
+
- Chat rows: full-width at 72pt height
|
|
331
|
+
- Story thumbnails: 120pt × 200pt, 12pt horizontal gap
|
|
332
|
+
- Discover tiles: 2-column grid on Stories page, 8pt gap
|
|
333
|
+
- Spotlight: full-screen single-video column
|
|
334
|
+
- Snap Map: edge-to-edge with floating search
|
|
335
|
+
|
|
336
|
+
### Whitespace Philosophy
|
|
337
|
+
- **Chat breathes**: 72pt tall rows give the color-coded snap icons and bitmoji room to read
|
|
338
|
+
- **Camera is empty**: viewfinder is fully cleared of UI — controls float in the corners with purpose, never cluttering the center
|
|
339
|
+
- **Stories are dense**: the horizontal story strip packs 4-5 thumbnails per viewport to encourage browsing
|
|
340
|
+
- **Discover is a grid**: 2-column publisher tiles with compact 8pt gaps — magazine-like density
|
|
341
|
+
|
|
342
|
+
### Border Radius Scale
|
|
343
|
+
- Small (4pt): Lens carousel labels, small badges
|
|
344
|
+
- Card (8pt): Memories grid thumbnails
|
|
345
|
+
- Thumbnail (16pt): Story thumbnails, discover tiles, snap preview video corners
|
|
346
|
+
- Chat Bubble (20pt): Chat message bubbles (rounder than posts — messaging feel)
|
|
347
|
+
- Search / Pill (22pt / 500pt): Search bar, chat input bar pill, add-friend button
|
|
348
|
+
- Circle (50%): Bitmoji avatars, capture button, lens carousel thumbnails, send button
|
|
349
|
+
|
|
350
|
+
## 6. Depth & Elevation
|
|
351
|
+
|
|
352
|
+
Snapchat's depth is flat on UI surfaces but dramatic on imagery. The app privileges photography over chrome — the camera viewfinder is the most elevated surface because it's literally the primary content.
|
|
353
|
+
|
|
354
|
+
| Level | Treatment | Use |
|
|
355
|
+
|-------|-----------|-----|
|
|
356
|
+
| Flat (Level 0) | No shadow | Chat, Stories list, Spotlight (surfaces are just dark canvas) |
|
|
357
|
+
| Text-on-imagery (Level 0.5) | `rgba(0,0,0,0.4) 0 1px 2px` drop shadow on text | Camera HUD labels, story creator names, map pin names |
|
|
358
|
+
| Chat Bubbles (Level 1) | No shadow, pure background color contrast | Sent/received dark gray variants |
|
|
359
|
+
| Capture Button (Level 2) | No shadow, but the 6pt yellow ring acts as visual mass | Center-screen capture CTA |
|
|
360
|
+
| Snap Preview Tools (Level 2) | `rgba(0,0,0,0.4) 0 2px 8px` | Floating edit icons on snap preview screen |
|
|
361
|
+
| Sheet (Level 3) | `rgba(0,0,0,0.6) 0 -8px 24px` | Bottom sheet menus (send to friends list, emoji picker) |
|
|
362
|
+
| Modal Backdrop | `rgba(0,0,0,0.7)` | Behind story viewer, chat pop-in |
|
|
363
|
+
|
|
364
|
+
**Shadow Philosophy**: Shadows are used almost exclusively to keep text legible on live camera imagery — a soft drop shadow on HUD icons and labels so that on a bright sunny beach or a dark indoor shot, the UI stays readable. Chat and menu surfaces rely on solid color contrast, not elevation.
|
|
365
|
+
|
|
366
|
+
### Motion
|
|
367
|
+
- **Screen swipe (5-screen nav)**: horizontal page transition 300ms spring with rubber-band at edges; haptic `.impact(.soft)` on boundary resistance
|
|
368
|
+
- **Capture tap (photo)**: inner circle scale 0.92 → 1.0 spring 250ms + white flash overlay 100ms + `.impact(.soft)` + shutter sound
|
|
369
|
+
- **Capture hold (video)**: yellow progress ring fills clockwise over max 60s, `.impact(.medium)` on start, pulsing `.impact(.soft)` tick every 1s, release to stop
|
|
370
|
+
- **Camera flip (double-tap)**: shutter icon spins 180° 400ms + `.impact(.light)` + camera feed swaps
|
|
371
|
+
- **Lens swipe**: camera overlay cross-fades between AR effects over 200ms; center lens scales up 60pt → 72pt with yellow ring fade-in
|
|
372
|
+
- **Snap send**: preview screen slides left off-screen 300ms spring, confetti particles emit, success chime, return to camera
|
|
373
|
+
- **Streak save**: flame emoji bounces scale 1.0 → 1.3 → 1.0 + "+1 🔥" floats up 20pt fade-out over 600ms + success haptic
|
|
374
|
+
- **Bitmoji sticker tap in chat**: sticker pops in scale 0 → 1.0 spring 300ms + selection haptic
|
|
375
|
+
- **Story ring pulse (unread)**: yellow ring subtle glow-pulse every 2s (opacity 1.0 ↔ 0.7)
|
|
376
|
+
- **Snap Map zoom**: pinch-to-zoom with momentum deceleration
|
|
377
|
+
|
|
378
|
+
## 7. Do's and Don'ts
|
|
379
|
+
|
|
380
|
+
### Do
|
|
381
|
+
- Open the app directly into the live camera viewfinder — that's the Snapchat-native home state
|
|
382
|
+
- Use Snap Yellow `#FFFC00` for the capture button ring, streak flame, unread story ring, add-friend CTA — it's the single brand accent
|
|
383
|
+
- Structure the capture button as a 82pt outer yellow ring + 64pt inner white circle — the precise double-circle is iconic
|
|
384
|
+
- Color-code snap types in the inbox: red (photo), purple (video), blue (chat), green (audio) — this is the at-a-glance inbox language
|
|
385
|
+
- Use bitmoji as the default profile photo everywhere — replace generic user icons with bitmoji throughout
|
|
386
|
+
- Use Avenir Next Bold and Medium as the primary UI type — no thin, no regular (400)
|
|
387
|
+
- Float camera controls chromelessly with subtle drop shadows — no UI frame around the viewfinder
|
|
388
|
+
- Include friend emojis (🔥, 💛, 👑, 😎, 🎂) next to friend names based on interaction context
|
|
389
|
+
- Use swipe-between-five-screens navigation (Map | Chat | Camera | Stories | Spotlight) — not a traditional tab bar
|
|
390
|
+
- Pulse the unread story ring yellow with subtle opacity animation — signals "new content"
|
|
391
|
+
- Pair the capture flow with haptic + sound — shutter haptic + click sound on photo snap
|
|
392
|
+
|
|
393
|
+
### Don't
|
|
394
|
+
- Don't open to a feed — Snapchat always opens to the camera
|
|
395
|
+
- Don't use a bottom tab bar like Instagram/Facebook — Snapchat uses swipe navigation
|
|
396
|
+
- Don't reduce the yellow on the capture button — the 82pt ring is the brand signature
|
|
397
|
+
- Don't colorize chat bubbles like iMessage blue/gray — Snapchat bubbles are dark gray on dark canvas
|
|
398
|
+
- Don't replace bitmoji with photo avatars as the default — bitmoji IS the profile photo in Snapchat
|
|
399
|
+
- Don't add permanent UI chrome around the viewfinder — camera is always edge-to-edge
|
|
400
|
+
- Don't use light mode as the default — the app's gravity is dark/camera-focused
|
|
401
|
+
- Don't use thin font weights — Avenir Next weights in the app are 500 and 700 only
|
|
402
|
+
- Don't use uppercase everywhere — uppercase is reserved for HUD labels like "MEMORIES" with +0.3pt tracking
|
|
403
|
+
- Don't show read receipts as checkmarks — Snapchat shows them as the snap-type icon transitioning from filled to outline
|
|
404
|
+
- Don't skip the streak mechanics — the 🔥 and accompanying emoji system IS the social habit loop
|
|
405
|
+
- Don't make chat messages persist by default — the signature is ephemerality; messages delete on close unless saved
|
|
406
|
+
|
|
407
|
+
## 8. Responsive Behavior
|
|
408
|
+
|
|
409
|
+
### Device Sizes
|
|
410
|
+
| Device | Width | Key Changes |
|
|
411
|
+
|--------|-------|-------------|
|
|
412
|
+
| iPhone SE (3rd gen) | 375pt | Capture button 72pt (smaller); lens carousel 4 visible |
|
|
413
|
+
| iPhone 13/14/15 | 390pt | Standard 82pt capture button; lens carousel 5 visible |
|
|
414
|
+
| iPhone 15/16 Pro | 393pt | Dynamic Island accommodated — top camera icons shift around it |
|
|
415
|
+
| iPhone 15/16 Pro Max | 430pt | 82pt capture + larger lens thumbnails 72pt; more discover tiles per row |
|
|
416
|
+
| iPad | 768pt+ | Camera stays centered at max 768pt width; Chat opens to split-view with conversation list + thread |
|
|
417
|
+
|
|
418
|
+
### Dynamic Type
|
|
419
|
+
- Chat messages, chat row names, bio, settings text: full scale
|
|
420
|
+
- Camera HUD labels, streak counts, lens labels, tab indicators: fixed (layout-sensitive)
|
|
421
|
+
- Timestamps: fixed 12pt
|
|
422
|
+
- Story thumbnail names: fixed 14pt
|
|
423
|
+
|
|
424
|
+
### Orientation
|
|
425
|
+
- Camera: **portrait-locked** (the app's gravity)
|
|
426
|
+
- Chat / Stories / Spotlight / Map: **portrait-locked**
|
|
427
|
+
- Video playback in Spotlight / Stories: **rotates to landscape** for fullscreen
|
|
428
|
+
- Snap capture while video recording: can rotate if user physically rotates device, but interface stays portrait
|
|
429
|
+
|
|
430
|
+
### Touch Targets
|
|
431
|
+
- Capture button: 82pt — the largest in any app
|
|
432
|
+
- Lens thumbnails: 60-72pt
|
|
433
|
+
- Chat row: 72pt tall, full-row tappable
|
|
434
|
+
- Camera HUD icons: 28pt glyph with 44pt hit area
|
|
435
|
+
- Bottom nav icons: 28pt glyph, 56pt effective hit
|
|
436
|
+
- Chat send button: 40pt
|
|
437
|
+
|
|
438
|
+
### Safe Area Handling
|
|
439
|
+
- Top: camera icons respect safe area + Dynamic Island; bitmoji shifts slightly around island on Pro devices
|
|
440
|
+
- Bottom: capture button 20pt above home indicator; bottom nav strip respects safe area
|
|
441
|
+
- Sides: 16pt insets on Chat and Stories; camera is edge-to-edge
|
|
442
|
+
|
|
443
|
+
## 9. Agent Prompt Guide
|
|
444
|
+
|
|
445
|
+
### Quick Color Reference
|
|
446
|
+
- Canvas black: `#000000`
|
|
447
|
+
- Surface 1: `#1A1A1A`
|
|
448
|
+
- Surface 2: `#2C2C2C`
|
|
449
|
+
- Divider: `#333333`
|
|
450
|
+
- Text primary: `#FFFFFF`
|
|
451
|
+
- Text secondary: `#8A8A8F`
|
|
452
|
+
- Snap Yellow: `#FFFC00`
|
|
453
|
+
- Photo red: `#FF2E3D`
|
|
454
|
+
- Video purple: `#9B51FF`
|
|
455
|
+
- Chat blue: `#4DA7FF`
|
|
456
|
+
- Audio green: `#4CD964`
|
|
457
|
+
- Success green: `#00D873`
|
|
458
|
+
- Error red: `#FF3B30`
|
|
459
|
+
|
|
460
|
+
### Example Component Prompts
|
|
461
|
+
- "Build Snapchat's capture button in SwiftUI: concentric double-circle. Outer: 82pt diameter, 6pt wide ring in `#FFFC00` Snap Yellow. Inner: 64pt white circle centered inside. On tap (photo): inner circle scales 0.92 → 1.0 spring 250ms, white screen flash overlay 100ms, `.impact(.soft)` haptic + camera shutter sound. On long-press (video): inner fills with `#FFFC00` while outer ring becomes a clockwise progress indicator filling over max 60s, `.impact(.medium)` on start, soft ticks every 1s. On double-tap: camera flips front/rear with shutter icon 180° spin + light haptic. Position: bottom-center of camera viewfinder, 20pt from bottom safe area."
|
|
462
|
+
- "Create a Snapchat chat inbox row: 72pt height on `#000000` canvas, 1pt `#333333` divider bottom. Leading 48pt circular bitmoji avatar (16pt from left). Right of avatar: friend name 'Sarah Jones' in Avenir Next Bold 16pt `#FFFFFF`, below it the snap type indicator — 16pt filled square in red `#FF2E3D` for photo, purple `#9B51FF` for video, blue `#4DA7FF` for chat, green `#4CD964` for audio, with a triangular arrow pointing into the square (received) or out of it (sent) — followed by status 'Received · 2m ago' in Avenir Next Medium 13pt `#8A8A8F`. Trailing: timestamp '2m' in 12pt `#8A8A8F`, streak emoji '🔥 47' in Avenir Next Bold 18pt if streak exists."
|
|
463
|
+
- "Design the Snapchat Stories section: horizontal scrollable row of story thumbnails, each 120pt × 200pt rounded 16pt, full-bleed story preview image background. 3pt ring border: `#FFFC00` yellow for unread with subtle 2s opacity-pulse animation (1.0 ↔ 0.7), `#555555` gray for read, `#FF2E3D` red for live. Top-left: 40pt circular bitmoji of creator. Bottom-left: creator name in Avenir Next Bold 14pt white with `rgba(0,0,0,0.4) 0 1px 2px` drop shadow. 12pt horizontal gap between thumbnails."
|
|
464
|
+
- "Build the Snapchat camera HUD in SwiftUI: full-screen live camera viewfinder as background, chromeless controls floating in corners with `rgba(0,0,0,0.4) 0 1px 2px` drop shadow on icons for legibility over any scene. Top-left: user bitmoji 32pt (profile). Top-right: `magnifyingglass` 28pt (search). Bottom-left: `photo.on.rectangle` 28pt (memories). Bottom-right: `bubble.left.fill` 28pt (chat). Above capture button: horizontal lens carousel of 60pt circular lens thumbnails, active lens scaled to 72pt with 3pt `#FFFC00` ring + 'Beach' label in Avenir Next Bold 13pt w700 tracked 0.3pt uppercase white. Center-bottom: capture button (see separate prompt)."
|
|
465
|
+
- "Create the Snapchat chat bubble pair: received bubble on leading side — `#1A1A1A` background, 20pt corner radius, 10pt×14pt padding, Avenir Next Medium 16pt `#FFFFFF` text, max 75% width, 60pt left indent to leave room for 32pt circular bitmoji on trailing edge of leading gutter. Sent bubble on trailing side — `#2C2C2C` background, same radius/padding/font, aligned to right edge of screen. No tails — just rounded rectangles. Between-bubbles gap: 4pt for same sender, 12pt for sender change."
|
|
466
|
+
- "Build the Snap Map view: full-screen styled map (muted pastel tiles), user's friends displayed as 48pt circular bitmoji pins at their last-known locations with a 2pt yellow `#FFFC00` ring around each. Each pin shows friend's bitmoji in context pose ('driving' pose with car, 'sleeping' pose with ZZZ, 'beach' pose with sunglasses). Bottom-right: friend name label in 12pt white with drop shadow. Heat-map overlay in corners: yellow `#FFFC00` in cool zones, warming through orange `#FF9A1F` to red `#FF2E3D` in dense public-snap zones. Search bar top: `magnifyingglass` + 'Search location' in a pill at 44pt with `#1A1A1A` fill."
|
|
467
|
+
|
|
468
|
+
### Iteration Guide
|
|
469
|
+
1. Camera IS the home screen — the app opens directly to the live viewfinder full-screen
|
|
470
|
+
2. Snap Yellow `#FFFC00` is the aggressive brand accent — capture ring, streak flame, unread story ring, ghost logo
|
|
471
|
+
3. Capture button is the 82pt outer yellow ring + 64pt inner white circle — the precise double-circle is iconic
|
|
472
|
+
4. Navigation is swipe-between-five-screens (Map | Chat | Camera | Stories | Spotlight) — NOT a tab bar
|
|
473
|
+
5. Color-code snap types in chat: red (photo), purple (video), blue (chat), green (audio)
|
|
474
|
+
6. Bitmoji replaces profile photos app-wide — user's personalized cartoon avatar is the "face"
|
|
475
|
+
7. Typography is Avenir Next at Medium (500) and Bold (700) only — warm humanist geometric sans
|
|
476
|
+
8. Camera UI is chromeless — floating icons with drop shadow, no UI frame around the viewfinder
|
|
477
|
+
9. Friend emojis are the habit-loop mechanic: 🔥 streaks, 💛 best friends, 😎 mutual BFFs, 🎂 birthdays
|
|
478
|
+
10. Ephemerality is the UX signature — chats delete on close, stories expire in 24h; never persist content by default
|