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,387 @@
|
|
|
1
|
+
# Design System Inspiration of Plenty of Fish (iOS)
|
|
2
|
+
|
|
3
|
+
## 1. Visual Theme & Atmosphere
|
|
4
|
+
|
|
5
|
+
Plenty of Fish (POF) is one of the original mass-market dating apps, and its iOS design system reflects that heritage: approachable, high-density, and unmistakably **blue**. Where newer dating apps lean on swipe-deck spectacle, POF is grid-first and conversation-first — it shows you *many* people at once and pushes you toward messaging quickly. The atmosphere is friendly and busy rather than minimal: rounded cards, heavy rounded type, full-color profile photography edge-to-edge, and POF Blue (`#0098DB → #00A6E2`) as the single, dominant brand color on every primary action. The default app is light (`#FFFFFF` / `#F4F5F7`); this guide also specifies a cool near-black dark mode (`#121417`).
|
|
6
|
+
|
|
7
|
+
The signature surface — and the screen this guide treats as the hero — is the **match grid**: a 2-column scrolling grid of portrait profile cards. Each card is a full-bleed photo with a bottom gradient scrim carrying the person's name + age, distance and last-active ("Sofia, 27 · 3 mi · Active now"), an "Online" pill top-left (teal dot), and a circular blue **like** button bottom-right. Above the grid sits a logo + actions bar and a segmented strip (Matches / Meet Me / Search). The grid is paired with **Meet Me** — POF's lightweight yes/maybe/no game: one large profile card at a time with three round buttons (✕ no, ? maybe, ♥ yes), the yes button in POF Blue. Together the grid and Meet Me are the heart of POF's "see lots of people, decide fast, then chat" model.
|
|
8
|
+
|
|
9
|
+
Navigation is a 5-slot bottom tab bar — Matches, Meet Me, Search, Messages (with a pink unread badge), Me — with the active tab in POF Blue. Messaging is a first-class destination (POF historically lets you message before matching), so the Messages tab and its badge are prominent. The brand typeface direction is a rounded, friendly, heavy sans; this guide uses **Nunito Sans** (free, SIL OFL) — warm, rounded, with strong 800/900 weights for names and section titles, matching POF's approachable, unintimidating personality. Color discipline: POF Blue for *brand + primary action*, teal for *online/presence*, pink for *unread/notification*, gold for *upgrade*, and full-color photography for *content*; chrome stays neutral.
|
|
10
|
+
|
|
11
|
+
**Key Characteristics:**
|
|
12
|
+
- Light (`#FFFFFF`) default / cool near-black (`#121417`) dark — friendly and busy, never pure black
|
|
13
|
+
- POF Blue (`#0098DB → #00A6E2`) is *the* brand color — logo, primary CTA, active tab, the like button
|
|
14
|
+
- Match grid — 2-column scrolling grid of full-bleed portrait photo cards with gradient name/meta scrims
|
|
15
|
+
- Meet Me — one big profile card + three round actions (✕ no / ? maybe / ♥ yes), yes in POF Blue
|
|
16
|
+
- "Online" presence pill — teal dot (`#00C9B7`) + "Online", top-left of cards; first-class presence
|
|
17
|
+
- Messaging is a primary destination — Messages tab with a pink (`#FF4F8B`) unread badge
|
|
18
|
+
- 5-slot bottom tab bar — Matches / Meet Me / Search / Messages / Me, active in POF Blue
|
|
19
|
+
- Rounded everything — 16–20pt photo cards, 999pt pill buttons, circular action buttons
|
|
20
|
+
- Heavy rounded type (Nunito Sans) — 800/900 weights for names and titles; approachable, unintimidating
|
|
21
|
+
- Distance + last-active everywhere — "3 mi · Active now" is core profile metadata, not decoration
|
|
22
|
+
- Full-color photography edge-to-edge — content is loud; chrome is neutral and recedes
|
|
23
|
+
|
|
24
|
+
## 2. Color Palette & Roles
|
|
25
|
+
|
|
26
|
+
### Primary (Interactive)
|
|
27
|
+
- **POF Blue** (`#0098DB`): The brand anchor — logo, primary CTA, active tab, the circular like button, links.
|
|
28
|
+
- **POF Blue Light** (`#00A6E2`): Gradient end (`#0098DB → #00A6E2`), highlights, selected states.
|
|
29
|
+
- **POF Blue Gradient** (`#0098DB → #00A6E2`, 135°): Primary buttons, the Meet Me "yes" button, key headers.
|
|
30
|
+
- **POF Blue Pressed** (`#0079B0`): Pressed state for blue buttons (apply via 0.93 brightness).
|
|
31
|
+
|
|
32
|
+
### Canvas & Surfaces (Light Mode)
|
|
33
|
+
- **Canvas White** (`#FFFFFF`): Primary light background, cards, sheets.
|
|
34
|
+
- **Background Grey** (`#F4F5F7`): App background behind cards and grid.
|
|
35
|
+
- **Surface Raised** (`#FFFFFF`): Cards, Meet Me card, sheets (with soft shadow).
|
|
36
|
+
- **Surface Pressed** (`#E9EBEF`): Pressed rows / chips.
|
|
37
|
+
- **Divider** (`#E4E6EA`): Hairlines, segmented-strip underline track.
|
|
38
|
+
|
|
39
|
+
### Canvas & Surfaces (Dark Mode)
|
|
40
|
+
- **Dark Canvas** (`#121417`): Primary dark background — cool near-black, NOT pure black.
|
|
41
|
+
- **Dark Surface 1** (`#1A1D21`): Cards, Meet Me card, panels.
|
|
42
|
+
- **Dark Surface 2** (`#23272C`): Search field, raised chips, hovered rows.
|
|
43
|
+
- **Dark Divider** (`#2C3036`): Hairlines and the tab-bar top border.
|
|
44
|
+
|
|
45
|
+
### Text
|
|
46
|
+
- **Text Primary Light** (`#16181C`): Names, headlines, body on light.
|
|
47
|
+
- **Text Secondary Light** (`#6B7079`): Distance, last-active, captions, placeholder.
|
|
48
|
+
- **Text Tertiary Light** (`#9BA1AB`): Disabled, inactive tab labels.
|
|
49
|
+
- **Text Primary Dark** (`#EDEFF2`): Names, headlines, body on dark.
|
|
50
|
+
- **Text Secondary Dark** (`#9BA1AB`): Distance/meta on dark.
|
|
51
|
+
- **Text Tertiary Dark** (`#6B7079`): Disabled, inactive tab labels on dark.
|
|
52
|
+
- **Text On Photo** (`#FFFFFF`): Name/meta over a card's bottom gradient scrim (always white).
|
|
53
|
+
|
|
54
|
+
### Accent / Status
|
|
55
|
+
| Role | Light Mode | Dark Mode |
|
|
56
|
+
|------|-----------|-----------|
|
|
57
|
+
| Online / Presence (teal) | `#00C9B7` | `#00C9B7` |
|
|
58
|
+
| Unread / Notification (pink) | `#FF4F8B` | `#FF4F8B` |
|
|
59
|
+
| Upgrade / Premium (gold) | `#FFB23E` | `#FFB23E` |
|
|
60
|
+
| Like (blue) | `#0098DB` | `#0098DB` |
|
|
61
|
+
| Maybe (gold outline) | `#FFB23E` | `#FFB23E` |
|
|
62
|
+
|
|
63
|
+
### Semantic
|
|
64
|
+
- **Success Green** (`#20C997`): Match-made confirmation, profile-saved toast.
|
|
65
|
+
- **Error Red** (`#FF5267`): Block/report confirmation, send-failure banner.
|
|
66
|
+
- **Warning Gold** (`#FFB23E`): Reuses Upgrade Gold for quota/limit warnings.
|
|
67
|
+
- **Scrim Gradient** (`transparent → rgba(0,0,0,0.78)`): Bottom-of-card overlay for name/meta legibility.
|
|
68
|
+
- **Selection Tint** (`#0098DB1F`): ~12% POF Blue overlay on a selected row/chip.
|
|
69
|
+
|
|
70
|
+
## 3. Typography Rules
|
|
71
|
+
|
|
72
|
+
### Font Family
|
|
73
|
+
- **Primary**: POF's UI sans (a rounded, friendly, heavy grotesque). Free stand-in: **`Nunito Sans`** (by Vernon Adams / Jacques Le Bailly, SIL OFL) — warm, rounded, with strong 800/900 weights.
|
|
74
|
+
- **Fallback Stack**: `-apple-system, BlinkMacSystemFont, 'SF Pro Text', 'SF Pro Display', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif`
|
|
75
|
+
- **Weights used**: 400 (body), 600 (meta emphasis), 700 (card names / labels), 800 (section titles / buttons), 900 (display).
|
|
76
|
+
|
|
77
|
+
### Hierarchy
|
|
78
|
+
|
|
79
|
+
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
|
80
|
+
|------|------|------|--------|-------------|----------------|-------|
|
|
81
|
+
| Display | Nunito Sans | 32pt | 900 | 1.15 | -0.6pt | Onboarding / large titles |
|
|
82
|
+
| Title | Nunito Sans | 26pt | 800 | 1.2 | -0.3pt | Screen titles ("Meet Me") |
|
|
83
|
+
| Section Title | Nunito Sans | 22pt | 800 | 1.25 | -0.2pt | "People near you" |
|
|
84
|
+
| Profile Name (detail) | Nunito Sans | 18pt | 800 | 1.3 | -0.1pt | Profile detail name + age |
|
|
85
|
+
| Body | Nunito Sans | 16pt | 400 | 1.5 | 0pt | Bio, message body, descriptions |
|
|
86
|
+
| Card Name | Nunito Sans | 15pt | 700 | 1.3 | 0pt | Name + age on grid card scrim |
|
|
87
|
+
| Button | Nunito Sans | 16pt | 800 | 1.0 | 0pt | Primary / secondary buttons |
|
|
88
|
+
| Meta | Nunito Sans | 14pt | 400 | 1.4 | 0pt | "Active now · 3 miles away" |
|
|
89
|
+
| Card Meta | Nunito Sans | 12pt | 600 | 1.35 | 0pt | Distance/last-active on card scrim |
|
|
90
|
+
| Chip / Status | Nunito Sans | 12pt | 700 | 1.3 | 0.1pt | "Online" pill, interest chips |
|
|
91
|
+
| Tab Label | Nunito Sans | 10pt | 800 | 1.0 | 0.1pt | Bottom tab labels |
|
|
92
|
+
| Badge | Nunito Sans | 9pt | 800 | 1.0 | 0.2pt | Unread count badge |
|
|
93
|
+
| Message Bubble | Nunito Sans | 15pt | 500 | 1.4 | 0pt | Chat bubble text |
|
|
94
|
+
|
|
95
|
+
### Principles
|
|
96
|
+
- **Friendly and unintimidating**: rounded heavy weights (800/900) make names and titles warm and confident, never corporate-thin — dating should feel inviting.
|
|
97
|
+
- **Weight concentrated at 400 / 600 / 700 / 800 / 900**: regular body, semibold meta, bold card names, extrabold titles/buttons, black display. No thin.
|
|
98
|
+
- **White on photos, always**: any text on a card photo is `#FFFFFF` over a bottom gradient scrim — never colored text on imagery.
|
|
99
|
+
- **Names lead**: the profile name+age is the loudest text on any card (700+) — people, not chrome, are the content.
|
|
100
|
+
- **Dynamic Type first-class**: display, titles, body, meta scale; card-scrim name/meta, tab labels, badges, status chips stay fixed (layout-sensitive over imagery).
|
|
101
|
+
|
|
102
|
+
## 4. Component Stylings
|
|
103
|
+
|
|
104
|
+
### Buttons
|
|
105
|
+
|
|
106
|
+
**Primary Button (Send Message / Continue)**
|
|
107
|
+
- Shape: pill, 999pt corner radius
|
|
108
|
+
- Background: linear gradient `#0098DB → #00A6E2` at 135°
|
|
109
|
+
- Text: `#FFFFFF`, Nunito Sans 16pt weight 800
|
|
110
|
+
- Padding: 14pt vertical, 28pt horizontal
|
|
111
|
+
- Pressed: brightness 0.93 + scale 0.98
|
|
112
|
+
|
|
113
|
+
**Secondary Solid Button (Like)**
|
|
114
|
+
- Background: solid `#0098DB` (POF Blue)
|
|
115
|
+
- Text: `#FFFFFF`, 15pt weight 800
|
|
116
|
+
- Padding: 12pt vertical, 22pt horizontal
|
|
117
|
+
- Corner radius: 999pt (pill)
|
|
118
|
+
- Pressed: background `#0079B0`
|
|
119
|
+
|
|
120
|
+
**Outline Button (View Profile)**
|
|
121
|
+
- Background: transparent
|
|
122
|
+
- Text: `#0098DB`, 15pt weight 700
|
|
123
|
+
- Border: 1.5pt `#0098DB`
|
|
124
|
+
- Corner radius: 999pt (pill)
|
|
125
|
+
- Padding: 11pt vertical, 20pt horizontal
|
|
126
|
+
- Pressed: background `#0098DB14` (8% blue)
|
|
127
|
+
|
|
128
|
+
**Upgrade Button (Upgrade / Get Premium)**
|
|
129
|
+
- Background: `#FFB23E` (Upgrade Gold)
|
|
130
|
+
- Text: `#2A1B05`, 14pt weight 800
|
|
131
|
+
- Corner radius: 999pt (pill)
|
|
132
|
+
- Padding: 10pt vertical, 18pt horizontal
|
|
133
|
+
- Often paired with a small crown/diamond glyph
|
|
134
|
+
|
|
135
|
+
**Text Button (Skip / Cancel)**
|
|
136
|
+
- Font: Nunito Sans 15pt weight 700
|
|
137
|
+
- Color: `#0098DB`
|
|
138
|
+
- No background, no underline
|
|
139
|
+
- Pressed: opacity 0.6
|
|
140
|
+
|
|
141
|
+
**Circular Action Buttons (Meet Me / card like)**
|
|
142
|
+
- Like (♥, primary): 56pt circle, `#0098DB` fill, white heart, shadow `rgba(0,152,219,0.5) 0 6px 16px`
|
|
143
|
+
- Maybe (?): 56pt circle, surface fill, 1.5pt `#FFB23E` border, gold glyph
|
|
144
|
+
- No (✕): 56pt circle, surface fill, 1.5pt divider border, secondary glyph
|
|
145
|
+
- Grid-card like: 36pt circle, `#0098DB`, white heart, smaller shadow
|
|
146
|
+
- Press: scale 0.9 + light haptic; on "yes" a brief heart pop
|
|
147
|
+
|
|
148
|
+
### Core Atoms
|
|
149
|
+
|
|
150
|
+
**Profile Grid Card**
|
|
151
|
+
- Aspect ratio 3:4, 16pt corner radius, full-bleed photo, no border
|
|
152
|
+
- Top-left "Online" pill (when present): `rgba(0,0,0,0.42)` bg, teal `#00C9B7` 7pt dot, white 12pt w700 "Online", 999pt radius
|
|
153
|
+
- Bottom gradient scrim `transparent → rgba(0,0,0,0.78)` carrying: name+age (white 15pt w700) and meta "3 mi · Active now" (white 12pt w600)
|
|
154
|
+
- Bottom-right 36pt circular blue like button
|
|
155
|
+
- Tap card → profile detail; tap heart → like (heart fills, light haptic)
|
|
156
|
+
|
|
157
|
+
**Meet Me Card**
|
|
158
|
+
- Surface card, 20pt corner radius, centered photo (1:1, 16pt radius), name+age (18pt w800), prompt "Would you like to meet {name}?" (13pt w700 secondary), then the three round buttons row
|
|
159
|
+
- Swipeable: drag left = no, right = yes, tap buttons equivalently
|
|
160
|
+
|
|
161
|
+
**"Online" / Presence Pill**
|
|
162
|
+
- Teal dot (`#00C9B7`) + label; on a card it's white text on a dark translucent pill; in a list it's teal text
|
|
163
|
+
|
|
164
|
+
**Distance / Last-Active Meta**
|
|
165
|
+
- "3 mi · Active now" — Nunito Sans 12–14pt w600 secondary; "Active now" may carry the teal dot
|
|
166
|
+
|
|
167
|
+
**Search / Filter Field**
|
|
168
|
+
- Height: 46pt, 12pt corner radius
|
|
169
|
+
- Background: `#F4F5F7` / `#23272C`
|
|
170
|
+
- Leading magnifier 18pt `#6B7079`
|
|
171
|
+
- Placeholder 15pt `#6B7079`; focus: 1.5pt `#0098DB` border
|
|
172
|
+
|
|
173
|
+
**Unread Badge**
|
|
174
|
+
- Pink `#FF4F8B` pill, white 9pt w800 count, min 16pt, on the Messages tab and conversation rows
|
|
175
|
+
|
|
176
|
+
**Avatar**
|
|
177
|
+
- 48pt circle in lists/chat; photo or POF-blue placeholder with white initial
|
|
178
|
+
|
|
179
|
+
### Navigation
|
|
180
|
+
|
|
181
|
+
**Bottom Tab Bar**
|
|
182
|
+
- Height: 70pt + safe area
|
|
183
|
+
- Background: `#FFFFFF` / `#121417` at 94% + blur, 0.5pt top border `#E4E6EA` / `#2C3036`
|
|
184
|
+
- 5 slots: Matches, Meet Me, Search, Messages (pink badge), Me
|
|
185
|
+
- Icon size: 23pt; active icon+label `#0098DB` (active icon filled); inactive `#9BA1AB`
|
|
186
|
+
- Labels: Nunito Sans 10pt w800, always shown
|
|
187
|
+
- Messages tab shows a pink unread badge top-right when count > 0
|
|
188
|
+
|
|
189
|
+
**Top Bar (Matches / grid)**
|
|
190
|
+
- Leading: POF logo + "POF" wordmark (Nunito Sans 20pt w900)
|
|
191
|
+
- Trailing: filter and search glyphs in `#0098DB`, 22pt
|
|
192
|
+
- Below: segmented strip — Matches / Meet Me / Search — active item w800 primary with a 3pt POF-Blue underline; inactive w800 tertiary
|
|
193
|
+
|
|
194
|
+
**Profile Detail**
|
|
195
|
+
- Full-bleed photo carousel with page dots, name+age overlay, scrollable bio + interests + distance, sticky bottom bar with a gradient "Send Message" pill and a circular like
|
|
196
|
+
|
|
197
|
+
### Input Fields
|
|
198
|
+
|
|
199
|
+
**Text Field (search, edit profile)**
|
|
200
|
+
- Height: 46pt, 12pt corner radius
|
|
201
|
+
- Background: `#F4F5F7` / `#23272C`, no border at rest
|
|
202
|
+
- Focus: 1.5pt `#0098DB` border
|
|
203
|
+
- Placeholder `#6B7079` 15pt; text primary 16pt
|
|
204
|
+
|
|
205
|
+
**Message Composer**
|
|
206
|
+
- Rounded 999pt pill input, leading `#23272C` field, trailing circular `#0098DB` send button (white arrow) when text present
|
|
207
|
+
- Photo/GIF affordances inside the field at 22pt `#6B7079`
|
|
208
|
+
|
|
209
|
+
### Distinctive Components
|
|
210
|
+
|
|
211
|
+
**Match Grid (signature)**
|
|
212
|
+
- The 2-column full-bleed photo grid with name/meta scrims and inline blue like buttons. POF's core "browse many at once" surface — content-dense, photo-forward.
|
|
213
|
+
|
|
214
|
+
**Meet Me (signature)**
|
|
215
|
+
- The yes/maybe/no card game. One big profile at a time; ✕ / ? / ♥ round buttons; ♥ in POF Blue with a glow and heart pop. The fastest decision loop in the app.
|
|
216
|
+
|
|
217
|
+
**"Online" Presence System**
|
|
218
|
+
- Teal-dot "Online" pill on cards + "Active now" meta — POF surfaces presence aggressively to drive timely conversations.
|
|
219
|
+
|
|
220
|
+
**Messages-First Inbox**
|
|
221
|
+
- A prominent Messages tab with pink unread badges; conversation rows show avatar, name, last message, time, and an online dot — messaging is a destination, not an afterthought.
|
|
222
|
+
|
|
223
|
+
**Upgrade Surface**
|
|
224
|
+
- Gold-accented sheets/cards ("Get Premium" / "See who likes you") with a gold CTA — the single place gold dominates.
|
|
225
|
+
|
|
226
|
+
**Profile Detail Carousel**
|
|
227
|
+
- Full-bleed swipeable photo carousel with page dots, overlaid name+age, then a scroll of bio/interest chips/distance and a sticky gradient message bar.
|
|
228
|
+
|
|
229
|
+
## 5. Layout Principles
|
|
230
|
+
|
|
231
|
+
### Spacing System
|
|
232
|
+
- Base unit: 4pt
|
|
233
|
+
- Scale: 4, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40
|
|
234
|
+
- Grid outer inset: 14pt; card gutter: 10pt; 2 columns on iPhone
|
|
235
|
+
- Section vertical rhythm: 18–22pt before a header, 12pt header→content
|
|
236
|
+
|
|
237
|
+
### Grid & Container
|
|
238
|
+
- iPhone: 2-column match grid, 14pt insets, 10pt gutter
|
|
239
|
+
- iPhone Plus/Max: 2-column with larger cards (same gutter)
|
|
240
|
+
- iPad portrait: 3-column grid; Meet Me card centered max ~480pt wide
|
|
241
|
+
- iPad landscape: 4-column grid; profile detail in a centered sheet
|
|
242
|
+
- Profile detail photo: full-bleed, fixed 4:5 region with carousel dots
|
|
243
|
+
|
|
244
|
+
### Whitespace Philosophy
|
|
245
|
+
- **Photo-forward density**: cards are tightly gridded (10pt gutters) — busy but rhythmic; photography fills the screen
|
|
246
|
+
- **Content is loud, chrome is quiet**: profile photos are full-color edge-to-edge; surrounding UI is neutral + POF Blue
|
|
247
|
+
- **Rounded warmth**: 16–20pt card radii, 999pt pill buttons, circular actions — friendly, never sharp
|
|
248
|
+
- **Color is rationed by meaning**: blue = brand/action, teal = presence, pink = unread, gold = upgrade
|
|
249
|
+
|
|
250
|
+
### Border Radius Scale
|
|
251
|
+
- Square (0pt): full-bleed carousel edges
|
|
252
|
+
- Subtle (6pt): small chips, badges
|
|
253
|
+
- Standard (10–12pt): search field, interest chips, message bubbles
|
|
254
|
+
- Comfortable (16pt): profile grid cards
|
|
255
|
+
- Large (20pt): Meet Me card, sheets
|
|
256
|
+
- Extra (28pt): large bottom sheets/modals
|
|
257
|
+
- Pill (500pt): all buttons, "Online" pill, composer
|
|
258
|
+
- Circle (50%): avatars, Meet Me / like action buttons
|
|
259
|
+
|
|
260
|
+
## 6. Depth & Elevation
|
|
261
|
+
|
|
262
|
+
POF is mostly flat with soft shadows reserved for raised cards and the circular action buttons.
|
|
263
|
+
|
|
264
|
+
| Level | Treatment | Use |
|
|
265
|
+
|-------|-----------|-----|
|
|
266
|
+
| Flat (Level 0) | No shadow | Backgrounds, dividers, list rows |
|
|
267
|
+
| Card (Level 1) | `rgba(22,24,28,0.10) 0 4px 14px` (light) | Profile grid cards, Meet Me card on light |
|
|
268
|
+
| Action Glow | `rgba(0,152,219,0.5) 0 6px 16px` | The blue like / Meet Me "yes" button |
|
|
269
|
+
| Sheet (Level 2) | `rgba(22,24,28,0.14) 0 -6px 28px` | Bottom sheets (filters, report, upgrade) |
|
|
270
|
+
| Modal Overlay | `rgba(22,24,28,0.5)` | Dim behind sheets and the photo viewer |
|
|
271
|
+
|
|
272
|
+
**Shadow Philosophy**: shadows are soft and friendly, lifting photo cards off the background and giving the blue like/yes button a confident glow so it reads as *the* primary action. On dark mode shadows nearly vanish, so cards rely on the `#1A1D21` surface step and sheets add a faint 1pt `#2C3036` top border.
|
|
273
|
+
|
|
274
|
+
### Motion
|
|
275
|
+
- **Like (grid card)**: heart scales 1→1.25→1 over 220ms with a light haptic; on mutual like a "It's a Match" overlay slides up (320ms ease-out)
|
|
276
|
+
- **Meet Me decision**: tapping ♥/✕ slides the card off (right/left) over 260ms ease-in with a light haptic; "?" lifts the card up and away (240ms); the next card eases in beneath
|
|
277
|
+
- **Meet Me swipe**: drag tracks the finger with slight rotation; release past 35% commits; spring-back if under threshold (damping 0.8)
|
|
278
|
+
- **Tab switch**: instant content swap; active icon does a subtle 1.05 pop (120ms); badge count animates a quick scale
|
|
279
|
+
- **Profile open**: card photo shared-element zooms into the detail carousel over 320ms
|
|
280
|
+
- **Message send**: bubble scales in from the composer (180ms ease-out); send button does a 0.9 press dip
|
|
281
|
+
- **Online dot**: a slow 2s pulse on the teal presence dot (opacity 1↔0.5) to signal "live"
|
|
282
|
+
- **Skeleton loading**: grid shows shimmering rounded photo placeholders (1.2s loop) while photos fetch
|
|
283
|
+
- **Haptic feedback**: light impact on like, Meet Me decision, tab switch; success haptic on a new match
|
|
284
|
+
|
|
285
|
+
## 7. Do's and Don'ts
|
|
286
|
+
|
|
287
|
+
### Do
|
|
288
|
+
- Lead with POF Blue (`#0098DB → #00A6E2`) for brand + every primary action — logo, CTA, active tab, like button
|
|
289
|
+
- Build the match grid as a 2-column full-bleed photo grid with bottom gradient name/meta scrims
|
|
290
|
+
- Make Meet Me one big card + three round buttons (✕ / ? / ♥), the ♥ in POF Blue with a glow
|
|
291
|
+
- Show presence aggressively — teal "Online" pill + "Active now" meta; pulse the teal dot
|
|
292
|
+
- Treat Messages as a primary destination — prominent tab with a pink unread badge
|
|
293
|
+
- Keep text on photos white over a bottom gradient scrim — always
|
|
294
|
+
- Round everything — 16–20pt cards, 999pt pill buttons, circular actions
|
|
295
|
+
- Use heavy rounded type (800/900) for names and titles — approachable, unintimidating
|
|
296
|
+
- Use gold (`#FFB23E`) only for upgrade/premium; pink (`#FF4F8B`) only for unread/notification
|
|
297
|
+
- Keep profile photography full-color edge-to-edge in both themes — chrome dims, content does not
|
|
298
|
+
|
|
299
|
+
### Don't
|
|
300
|
+
- Don't use pure black (`#000000`) for canvas or text — cool near-black `#121417` / near-black `#16181C`
|
|
301
|
+
- Don't put colored text on profile photos — white on a gradient scrim only
|
|
302
|
+
- Don't make the app a single swipe deck — POF is grid-first + Meet Me; show many people at once
|
|
303
|
+
- Don't bury messaging — the Messages tab and unread badge are prominent by design
|
|
304
|
+
- Don't use sharp corners — POF's rounded warmth (16–20pt, pills, circles) is the brand feel
|
|
305
|
+
- Don't recolor POF Blue per screen — one brand blue everywhere for brand/action
|
|
306
|
+
- Don't use the brand blue for upgrade — upgrade is gold; presence is teal; unread is pink
|
|
307
|
+
- Don't desaturate profile photos in dark mode — only chrome dims
|
|
308
|
+
- Don't use thin/hairline weights for names — names lead and are bold (700+)
|
|
309
|
+
- Don't put shadows on flat list rows — shadows are for raised photo cards and the blue action button only
|
|
310
|
+
- Don't hide distance/last-active — "3 mi · Active now" is core metadata, not optional decoration
|
|
311
|
+
|
|
312
|
+
## 8. Responsive Behavior
|
|
313
|
+
|
|
314
|
+
### Device Sizes
|
|
315
|
+
| Device | Width | Key Changes |
|
|
316
|
+
|--------|-------|-------------|
|
|
317
|
+
| iPhone SE (3rd gen) | 375pt | 2-col grid, 12pt insets; Meet Me buttons 52pt |
|
|
318
|
+
| iPhone 13/14/15 | 390pt | Standard 2-col grid, 14pt insets, 10pt gutter |
|
|
319
|
+
| iPhone 15/16 Pro | 393pt | Dynamic Island accommodated by the top bar |
|
|
320
|
+
| iPhone 15/16 Pro Max | 430pt | 2-col grid larger cards; insets 16pt |
|
|
321
|
+
| iPad (portrait) | 768pt | 3-col grid; Meet Me card centered max ~480pt |
|
|
322
|
+
| iPad (landscape) | 1024pt+ | 4-col grid; profile detail as a centered sheet |
|
|
323
|
+
|
|
324
|
+
### Dynamic Type
|
|
325
|
+
- Display, titles, body, meta: full scale
|
|
326
|
+
- Card-scrim name/meta, tab labels (10pt), unread badge (9pt), status chips (12pt): FIXED (layout-sensitive over imagery)
|
|
327
|
+
- Profile name in detail scales; card-scrim name stays fixed to protect the photo composition
|
|
328
|
+
|
|
329
|
+
### Orientation
|
|
330
|
+
- Grid reflows column count on rotation (2→3→4-up)
|
|
331
|
+
- Meet Me card re-centers and caps width; swipe physics unchanged
|
|
332
|
+
- Profile detail carousel keeps a fixed aspect region; rotates with letterboxing if needed
|
|
333
|
+
|
|
334
|
+
### Touch Targets
|
|
335
|
+
- Tab icons: 23pt glyph, 44pt hit
|
|
336
|
+
- Grid-card like: 36pt circle, 44pt hit
|
|
337
|
+
- Meet Me action buttons: 56pt circle (52pt SE)
|
|
338
|
+
- Top-bar icons: 22pt glyph, 44pt hit
|
|
339
|
+
- Full grid card: entire card tappable to open profile
|
|
340
|
+
|
|
341
|
+
### Safe Area Handling
|
|
342
|
+
- Top: top bar + segmented strip respect safe area + Dynamic Island
|
|
343
|
+
- Bottom: tab bar + home indicator respected; the profile-detail message bar docks above the home indicator
|
|
344
|
+
- Keyboard: message composer rises above the keyboard; search field scrolls clear
|
|
345
|
+
- Sides: 14pt grid inset (12pt SE)
|
|
346
|
+
|
|
347
|
+
## 9. Agent Prompt Guide
|
|
348
|
+
|
|
349
|
+
### Quick Color Reference
|
|
350
|
+
- Canvas (light): `#FFFFFF` / bg `#F4F5F7`
|
|
351
|
+
- Canvas (dark): `#121417`
|
|
352
|
+
- Surface 1 (dark): `#1A1D21` · Surface 2 (dark): `#23272C`
|
|
353
|
+
- Divider: `#E4E6EA` light / `#2C3036` dark
|
|
354
|
+
- Text primary: `#16181C` light / `#EDEFF2` dark
|
|
355
|
+
- Text secondary: `#6B7079` / `#9BA1AB`
|
|
356
|
+
- Text on photo: `#FFFFFF`
|
|
357
|
+
- POF Blue: `#0098DB` · POF Blue Light: `#00A6E2`
|
|
358
|
+
- Brand gradient: `#0098DB → #00A6E2` (135°)
|
|
359
|
+
- Online teal: `#00C9B7` · Unread pink: `#FF4F8B` · Upgrade gold: `#FFB23E`
|
|
360
|
+
- Success: `#20C997` · Error: `#FF5267`
|
|
361
|
+
- Card scrim: `transparent → rgba(0,0,0,0.78)`
|
|
362
|
+
- Selection tint: `#0098DB1F`
|
|
363
|
+
|
|
364
|
+
### Example Component Prompts
|
|
365
|
+
- "Build the POF match grid in SwiftUI: a 2-column `LazyVGrid`, 14pt outer inset, 10pt spacing. Each card is 3:4, 16pt corner radius, full-bleed photo. Top-left an 'Online' pill — `rgba(0,0,0,0.42)` bg, a 7pt teal `#00C9B7` dot + 'Online' in white Nunito Sans 12pt w700, 999pt radius. Bottom gradient scrim `transparent → rgba(0,0,0,0.78)` with name+age white 15pt w700 and '3 mi · Active now' white 12pt w600. Bottom-right a 36pt circular `#0098DB` like button with a white heart and shadow `rgba(0,152,219,0.5) 0 4px 12px`."
|
|
366
|
+
|
|
367
|
+
- "Create the POF Meet Me card: a `#1A1D21` surface card, 20pt corner radius, a centered 1:1 photo (16pt radius), name+age in Nunito Sans 18pt w800, prompt 'Would you like to meet {name}?' in 13pt w700 `#9BA1AB`, then a row of three 56pt circular buttons — No (✕, surface + 1.5pt divider border, secondary glyph), Maybe (?, surface + 1.5pt `#FFB23E` border, gold glyph), Yes (♥, solid `#0098DB`, white heart, shadow `rgba(0,152,219,0.5) 0 6px 16px`). Drag right = yes / left = no, commit past 35%, spring-back under threshold."
|
|
368
|
+
|
|
369
|
+
- "Render the POF bottom tab bar: 5 slots — Matches, Meet Me, Search, Messages, Me. Background `#121417` @94% + blur, 0.5pt top border `#2C3036`. 23pt glyphs + 10pt w800 labels, active `#0098DB` (filled icon), inactive `#9BA1AB`. The Messages tab shows a pink `#FF4F8B` unread badge (white 9pt w800, min 16pt) top-right when count > 0."
|
|
370
|
+
|
|
371
|
+
- "Build a POF primary button: pill (999pt), linear-gradient `#0098DB → #00A6E2` at 135°, white Nunito Sans 16pt w800, 14pt/28pt padding, pressed = brightness 0.93 + scale 0.98. Add a gold Upgrade pill (`#FFB23E` bg, `#2A1B05` text, 14pt w800) and a blue outline 'View Profile' pill (1.5pt `#0098DB`, `#0098DB` text)."
|
|
372
|
+
|
|
373
|
+
- "Create a POF 'Online' presence pill + meta row: a 7pt teal `#00C9B7` dot with a slow 2s opacity pulse (1↔0.5), 'Online' or 'Active now' in Nunito Sans 12pt w700, followed by '· 3 mi' in `#9BA1AB`. Over a photo, wrap it in a `rgba(0,0,0,0.42)` 999pt pill with white text."
|
|
374
|
+
|
|
375
|
+
- "Build the POF profile detail: a full-bleed swipeable photo carousel with page dots, an overlaid name+age (white 26pt w800 over a bottom scrim), a scroll of bio (Nunito Sans 16pt w400) + rounded interest chips + '3 miles away · Active now', and a sticky bottom bar with a gradient 'Send Message' pill `#0098DB → #00A6E2` and a 48pt circular like button."
|
|
376
|
+
|
|
377
|
+
### Iteration Guide
|
|
378
|
+
1. Canvas is white (`#FFFFFF`) light / cool near-black `#121417` dark — NOT pure black
|
|
379
|
+
2. POF Blue `#0098DB → #00A6E2` is *the* brand color — logo, primary CTA, active tab, like/yes button; one blue everywhere
|
|
380
|
+
3. The match grid is 2-column full-bleed photo cards with bottom gradient name/meta scrims — content-dense, photo-forward
|
|
381
|
+
4. Meet Me = one big card + ✕ / ? / ♥ round buttons; ♥ is POF Blue with a glow and a heart pop
|
|
382
|
+
5. Presence is teal (`#00C9B7`) and aggressive — "Online" pill + "Active now" meta + a pulsing dot
|
|
383
|
+
6. Messaging is a primary destination — prominent Messages tab with a pink (`#FF4F8B`) unread badge
|
|
384
|
+
7. Text on photos is always white over a `transparent → rgba(0,0,0,0.78)` scrim — never colored text on imagery
|
|
385
|
+
8. Round everything — 16–20pt cards, 999pt pill buttons, circular actions; heavy rounded type (800/900) for names/titles
|
|
386
|
+
9. Color is rationed by meaning — blue = brand/action, teal = presence, pink = unread, gold = upgrade
|
|
387
|
+
10. Profile photography stays full-color edge-to-edge in both themes — chrome dims, content does not; motion is friendly (180–320ms)
|