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,412 @@
|
|
|
1
|
+
# Design System Inspiration of VSCO (iOS)
|
|
2
|
+
|
|
3
|
+
## 1. Visual Theme & Atmosphere
|
|
4
|
+
|
|
5
|
+
VSCO's iOS app is a darkroom, not an app. The entire editing experience lives on a pure-black canvas (`#000000` — true black, not a charcoal) because VSCO's core belief is that the photograph is the only thing that should carry color. Open an image into the editor and you see exactly three things: the photo (full-bleed, centered, breathing with generous black margin), a hairline-thin adjustment slider, and a horizontally-scrolling carousel of film-emulation presets at the bottom. There are no cards, no shadows, no rounded panels, no tint. The chrome is a monochrome white-on-black skin so quiet that the eye never leaves the image.
|
|
6
|
+
|
|
7
|
+
The signature interface moment is the **filter/preset carousel** — a row of 56pt square thumbnails, each a tiny live preview of the photo under that film recipe (A6, C1, M5, AV4, KP9 — VSCO's famously cryptic two-character preset codes), with the active preset marked by a 2px solid-white ring (never a colored highlight). Tapping a preset cross-fades the photo into the graded look in ~250ms. The second signature is the **adjust tool tray** — a row of uppercase, wide-tracked tool labels (EXPOSURE, CONTRAST, SATURATION, GRAIN, SHARPEN, HSL…) that swap the carousel for a single **bipolar hairline slider**: a 1px track on `#3A3A3A`, a white fill from the zero-point, and an 18pt solid-white knob. The numeric value (`+2.4`, `−1.8`) sits above the slider in white. This slider is the most VSCO thing in the product — it is almost invisible, and that is the point.
|
|
8
|
+
|
|
9
|
+
The color system is radically restrained: black, white, and a 3-step gray ramp for dividers, tracks, and secondary text. There is no brand accent color — no "Spotify Green", no "Airbnb Coral". Selection, focus, and active states are all communicated through pure white (a ring, a fill, a label going from `#B3B3B3` to `#FFFFFF`). The only color that ever appears in the UI is incidental: the photograph itself, and the film-tinted preset thumbnails (warm ambers `#C8A86B`, cool steel `#7E8FA1`) which are previews of *content*, not chrome.
|
|
10
|
+
|
|
11
|
+
Typography is **Inter** (VSCO's brand face is the proprietary "VSCO Gothic"; Inter is the closest free Google substitute — a neutral grotesque). The signature typographic move is **uppercase labels with very wide letter-spacing** (`+1.6` for tool labels, `+1.0` for preset tags) — it reads like a film-stock data-back imprint or a darkroom enlarger dial. Editorial titles (the Discover and Studio screens) use sentence-case Inter at 24–32pt, weights 600–700, but the *editing chrome* is exclusively uppercase tracked caps. The type system is the only expressive flourish in an otherwise invisible UI.
|
|
12
|
+
|
|
13
|
+
**Key Characteristics:**
|
|
14
|
+
- Pure black canvas (`#000000`) — the editor is dark-native, there is NO light editing theme
|
|
15
|
+
- Monochrome UI — white, three grays, zero accent color; the photo is the only color
|
|
16
|
+
- Hairline bipolar sliders — 1px track `#3A3A3A`, white fill from zero, 18pt white knob
|
|
17
|
+
- Film-preset carousel — 56pt square live-preview thumbnails, 2px white ring on active
|
|
18
|
+
- Adjust tool tray — uppercase wide-tracked labels swap to the single slider
|
|
19
|
+
- Selection = white only — a 2px ring or a fill change, never a tint
|
|
20
|
+
- Uppercase wide-tracked Inter labels (`+1.6` tracking) — film-stock imprint feel
|
|
21
|
+
- No chrome — no cards, no shadows, no borders on the editing surface
|
|
22
|
+
- Studio = full-bleed photo grid — a tight gapless monochrome thumbnail grid
|
|
23
|
+
- Discover = editorial sentence-case feed, the only "designed" screen
|
|
24
|
+
- 2px corner radius everywhere — squares, not pills; film frames, not bubbles
|
|
25
|
+
|
|
26
|
+
## 2. Color Palette & Roles
|
|
27
|
+
|
|
28
|
+
### Primary (Interactive)
|
|
29
|
+
- **VSCO White** (`#FFFFFF`): The single interactive color — primary buttons, active labels, slider fill + knob, selection ring, "Next" action.
|
|
30
|
+
- **VSCO White Pressed** (`#DBDBDB`): Pressed state on the white primary button.
|
|
31
|
+
- **VSCO Black** (`#000000`): The canvas and the text-on-white color. Not a surface — the absence of one.
|
|
32
|
+
|
|
33
|
+
There is intentionally **no accent / brand-tint color**. VSCO communicates state with white alone.
|
|
34
|
+
|
|
35
|
+
### Canvas & Surfaces (Dark — the only mode for the editor)
|
|
36
|
+
- **VSCO Black** (`#000000`): Primary canvas — the editor stage, the photo margin, the tab bar.
|
|
37
|
+
- **Surface 1** (`#0E0E0E`): Feed / Studio / Discover screen background — a near-black lift.
|
|
38
|
+
- **Surface 2** (`#1A1A1A`): Sheets, menus, settings rows, contextual panels.
|
|
39
|
+
- **Surface 3** (`#242424`): Pressed rows, segmented-control selected fill, chips.
|
|
40
|
+
- **Divider** (`#2A2A2A`): Hairline separators between tool tray and stage, list rows.
|
|
41
|
+
- **Slider Track** (`#3A3A3A`): The unfilled portion of every adjustment slider.
|
|
42
|
+
|
|
43
|
+
### Light Mode (Studio / Discover browsing only)
|
|
44
|
+
VSCO offers a light theme for the *browsing* surfaces only (Studio grid, Discover feed, profile) — the editor never goes light. It is rarely used and deliberately plain.
|
|
45
|
+
|
|
46
|
+
| Role | Light Mode | Dark Mode |
|
|
47
|
+
|------|-----------|-----------|
|
|
48
|
+
| Canvas | `#FFFFFF` | `#000000` |
|
|
49
|
+
| Surface 1 | `#F2F2F2` | `#0E0E0E` |
|
|
50
|
+
| Surface 2 | `#E8E8E8` | `#1A1A1A` |
|
|
51
|
+
| Divider | `#DCDCDC` | `#2A2A2A` |
|
|
52
|
+
| Text Primary | `#000000` | `#FFFFFF` |
|
|
53
|
+
| Text Secondary | `#767676` | `#B3B3B3` |
|
|
54
|
+
|
|
55
|
+
### Text
|
|
56
|
+
- **Text Primary Dark** (`#FFFFFF`): Active labels, values, titles, body on black.
|
|
57
|
+
- **Text Secondary Dark** (`#B3B3B3`): Inactive tool labels, metadata, captions.
|
|
58
|
+
- **Text Tertiary Dark** (`#767676`): Disabled, EXIF detail, inactive tab icons.
|
|
59
|
+
- **Text Primary Light** (`#000000`): Body on the light browsing surfaces.
|
|
60
|
+
- **Text Secondary Light** (`#767676`): Metadata on light.
|
|
61
|
+
|
|
62
|
+
### Incidental Film Tones (content previews — not chrome)
|
|
63
|
+
These appear only inside preset thumbnails as a *preview of the graded photo*. Never use them as UI fills.
|
|
64
|
+
|
|
65
|
+
| Role | Color | Where |
|
|
66
|
+
|------|-------|-------|
|
|
67
|
+
| Film Warm (amber) | `#C8A86B` | Warm film presets (C-series, KP) thumbnail tint |
|
|
68
|
+
| Film Cool (steel) | `#7E8FA1` | Cool film presets (M-series, AV) thumbnail tint |
|
|
69
|
+
| Film Neutral | `#9A9388` | Neutral/desaturated preset thumbnail tint |
|
|
70
|
+
| Film Shadow | `#3F382C` | Shadow region of a warm-graded preview |
|
|
71
|
+
|
|
72
|
+
### Semantic
|
|
73
|
+
- **Destructive Red** (`#E5484D`): Delete photo confirmation, "Discard edits" — the ONLY non-monochrome UI color, used sparingly in destructive sheets only.
|
|
74
|
+
- **Success** (`#FFFFFF`): "Saved to Camera Roll" toast — communicated in white, not green.
|
|
75
|
+
- **Disabled**: text drops to `#767676`, controls to 38% opacity.
|
|
76
|
+
|
|
77
|
+
## 3. Typography Rules
|
|
78
|
+
|
|
79
|
+
### Font Family
|
|
80
|
+
- **Brand Face**: `VSCO Gothic` (proprietary, a neutral humanist grotesque) — not publicly licensed.
|
|
81
|
+
- **Recommended Substitute**: `Inter` (by Rasmus Andersson, SIL OFL) — neutral grotesque, excellent at small UI sizes and wide tracking.
|
|
82
|
+
- **Editorial Alternate** (Discover headlines, optional): `Inter` at 700 — VSCO occasionally sets editorial titles in a tighter display cut; Inter Bold covers it.
|
|
83
|
+
- **Fallback Stack**: `-apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif`
|
|
84
|
+
- **Monospace** (EXIF / values, optional): `SF Mono` — used only for technical capture metadata when shown.
|
|
85
|
+
|
|
86
|
+
### Hierarchy
|
|
87
|
+
|
|
88
|
+
| Role | Font | Size | Weight | Line Height | Letter Spacing | Case | Notes |
|
|
89
|
+
|------|------|------|--------|-------------|----------------|------|-------|
|
|
90
|
+
| Display | Inter | 32pt | 700 | 1.15 | -0.4pt | Sentence | "Studio", profile name hero |
|
|
91
|
+
| Title | Inter | 24pt | 600 | 1.2 | -0.2pt | Sentence | Discover section, screen title |
|
|
92
|
+
| Section | Inter | 19pt | 600 | 1.3 | -0.1pt | Sentence | "Recipes", "Recents" |
|
|
93
|
+
| Body | Inter | 16pt | 400 | 1.5 | 0pt | Sentence | Editorial body, descriptions |
|
|
94
|
+
| Label | Inter | 14pt | 500 | 1.4 | 0pt | Sentence | Row labels, "Edited 2h ago" |
|
|
95
|
+
| Caption | Inter | 13pt | 400 | 1.4 | 0pt | Sentence | EXIF, file metadata |
|
|
96
|
+
| Value (live) | Inter | 14pt | 600 | 1.0 | 0pt | Numeric | `+2.4` slider value, white |
|
|
97
|
+
| Tool Label | Inter | 12pt | 600 | 1.0 | +1.6pt | UPPERCASE | EXPOSURE, CONTRAST, GRAIN |
|
|
98
|
+
| Preset Tag | Inter | 11pt | 600 | 1.0 | +1.0pt | UPPERCASE | A6, C1, M5 preset codes |
|
|
99
|
+
| Nav Action | Inter | 13pt | 600 | 1.0 | +1.4pt | UPPERCASE | NEXT, SAVE, CANCEL |
|
|
100
|
+
| Top Title | Inter | 13pt | 500 | 1.0 | +1.4pt | UPPERCASE | EDIT (editor title bar) |
|
|
101
|
+
| Tab Label | Inter | 10pt | 600 | 1.0 | +0.6pt | UPPERCASE | Bottom tab (when shown) |
|
|
102
|
+
| Button | Inter | 12pt | 600 | 1.0 | +1.4pt | UPPERCASE | Primary / outline buttons |
|
|
103
|
+
|
|
104
|
+
### Principles
|
|
105
|
+
- **Two registers only**: sentence-case editorial (titles/body, weight 400–700) for *content* screens; UPPERCASE wide-tracked (weight 600) for *editor chrome*. Never mix within one zone.
|
|
106
|
+
- **Wide tracking is the signature**: tool labels at `+1.6`, preset codes at `+1.0`, nav actions at `+1.4` — this film-data-back imprint is VSCO's strongest type identity.
|
|
107
|
+
- **Weight stays at 400 / 500 / 600 / 700**: no thin, no black. Editorial body is 400; all chrome is 600.
|
|
108
|
+
- **Values are white, labels are gray**: the live numeric value (`+2.4`) is always `#FFFFFF`; its label is `#B3B3B3` until active.
|
|
109
|
+
- **Dynamic Type on content, fixed on chrome**: editorial titles/body scale; tool labels, preset codes, slider values, tab labels stay fixed (layout-critical, single-line).
|
|
110
|
+
|
|
111
|
+
## 4. Component Stylings
|
|
112
|
+
|
|
113
|
+
### Buttons
|
|
114
|
+
|
|
115
|
+
**Primary Button ("Next" / "Save Recipe" / "Post")**
|
|
116
|
+
- Shape: Rectangle, 2pt corner radius (film-frame square, NOT pill)
|
|
117
|
+
- Background: `#FFFFFF` / text `#000000`
|
|
118
|
+
- Padding: 14pt vertical, 28pt horizontal
|
|
119
|
+
- Font: Inter 12pt weight 600, UPPERCASE, `+1.4` tracking
|
|
120
|
+
- Pressed: background `#DBDBDB` + scale 0.98
|
|
121
|
+
- Often rendered as a top-bar text action ("NEXT") rather than a filled button — same type spec, no fill
|
|
122
|
+
|
|
123
|
+
**Outline / Secondary Button ("Save Recipe", "Edit")**
|
|
124
|
+
- Background: transparent
|
|
125
|
+
- Text: `#FFFFFF`
|
|
126
|
+
- Border: 1pt `#FFFFFF`
|
|
127
|
+
- Padding: 13pt vertical, 26pt horizontal
|
|
128
|
+
- Corner radius: 2pt
|
|
129
|
+
- Pressed: background `#FFFFFF` 12% overlay
|
|
130
|
+
|
|
131
|
+
**Ghost / Cancel Button**
|
|
132
|
+
- Background: transparent
|
|
133
|
+
- Text: `#B3B3B3` (secondary)
|
|
134
|
+
- No border, no fill
|
|
135
|
+
- Padding: 13pt vertical, 16pt horizontal
|
|
136
|
+
- Pressed: text → `#FFFFFF`
|
|
137
|
+
|
|
138
|
+
**Text Action ("Reset all", "Show original")**
|
|
139
|
+
- Font: Inter 12pt weight 600, UPPERCASE, `+1.4` tracking
|
|
140
|
+
- Color: `#FFFFFF`
|
|
141
|
+
- No underline, no fill
|
|
142
|
+
- Pressed: 60% opacity
|
|
143
|
+
|
|
144
|
+
**Icon Button (tool-tray, top bar × / ✓)**
|
|
145
|
+
- Glyph: 22pt stroke icon, `stroke-width` 1.6
|
|
146
|
+
- Hit area: 44pt
|
|
147
|
+
- Default: `#B3B3B3`; active: `#FFFFFF`
|
|
148
|
+
- No background, no ring — color change only
|
|
149
|
+
|
|
150
|
+
### Adjust Slider (the core atom)
|
|
151
|
+
|
|
152
|
+
The single most important component. A bipolar hairline.
|
|
153
|
+
- **Track**: full-width, 1pt tall, `#3A3A3A`
|
|
154
|
+
- **Fill**: from the zero-point (often center) to the knob, 1pt tall, `#FFFFFF`
|
|
155
|
+
- **Knob**: 18pt circle, solid `#FFFFFF`, shadow `rgba(0,0,0,0.6) 0 1px 4px`, hit area 44pt
|
|
156
|
+
- **Label row** (above slider): tool name UPPERCASE 12pt `+1.6` `#B3B3B3` (left), live value 14pt w600 `#FFFFFF` (right)
|
|
157
|
+
- **Zero detent**: a subtle haptic + the fill collapsing to 0 when the knob crosses the neutral value
|
|
158
|
+
- **Double-tap**: resets to default (value animates back, soft haptic)
|
|
159
|
+
- No tint, no gradient, no shadow on the track — just two hairlines
|
|
160
|
+
|
|
161
|
+
### Film-Preset Carousel (the signature)
|
|
162
|
+
|
|
163
|
+
A horizontal scroll of live-preview tiles.
|
|
164
|
+
- **Tile**: 56pt square, 2pt corner radius, the actual photo rendered under that preset's grade
|
|
165
|
+
- **Spacing**: 14pt between tiles
|
|
166
|
+
- **Label**: preset code below tile, UPPERCASE 11pt w600 `+1.0` `#B3B3B3`
|
|
167
|
+
- **Active state**: 2pt solid `#FFFFFF` ring around the tile + label → `#FFFFFF`. NEVER a colored highlight.
|
|
168
|
+
- **Strength sub-slider**: tapping an already-active preset reveals a hairline slider (same spec as Adjust) to dial preset intensity 0–12
|
|
169
|
+
- **Scroll**: free, momentum, no snapping; ~80pt left/right peek
|
|
170
|
+
|
|
171
|
+
### Tool Tray
|
|
172
|
+
|
|
173
|
+
The mode switcher under the stage.
|
|
174
|
+
- **Row**: horizontal scroll, 84pt tall, `border-top` 0.5pt `#2A2A2A`
|
|
175
|
+
- **Tool**: 22pt stroke glyph + UPPERCASE 12pt `+1.6` label, stacked, 8pt gap
|
|
176
|
+
- **Default**: `#B3B3B3`; active: `#FFFFFF` (glyph + label both)
|
|
177
|
+
- **Spacing**: 30pt between tools
|
|
178
|
+
- Selecting a tool replaces the preset carousel with that tool's slider (or sub-UI: Crop grid, HSL wheel)
|
|
179
|
+
|
|
180
|
+
### Navigation
|
|
181
|
+
|
|
182
|
+
**Editor Top Bar**
|
|
183
|
+
- Height: 52pt + safe area
|
|
184
|
+
- Leading: `×` close glyph, 22pt, weight 300, `#FFFFFF`
|
|
185
|
+
- Center: screen title "EDIT" — UPPERCASE 13pt w500 `+1.4` `#B3B3B3`
|
|
186
|
+
- Trailing: "NEXT" action — UPPERCASE 13pt w600 `+1.4` `#FFFFFF`
|
|
187
|
+
- Background: `#000000`, no border
|
|
188
|
+
|
|
189
|
+
**Bottom Tab Bar** (Studio / Feed / Discover / Profile)
|
|
190
|
+
- Height: 48pt + safe area
|
|
191
|
+
- Background: `#000000`, `border-top` 0.5pt `#2A2A2A`
|
|
192
|
+
- 4 tabs: Studio (grid), Feed (up-arrow / for-you), Discover (camera/explore), Profile (avatar)
|
|
193
|
+
- Icon: 23pt stroke; active = filled `#FFFFFF`, inactive = stroke `#767676`
|
|
194
|
+
- Labels usually hidden (icon-only); if shown, UPPERCASE 10pt w600 `+0.6`
|
|
195
|
+
- No tint pill — active is white fill only
|
|
196
|
+
|
|
197
|
+
**Studio Top Bar**
|
|
198
|
+
- Height: 44pt + safe area
|
|
199
|
+
- Leading: title "Studio" Inter 24pt w600 sentence-case `#FFFFFF`
|
|
200
|
+
- Trailing: select-mode, import, settings — 22pt stroke icons `#FFFFFF`
|
|
201
|
+
|
|
202
|
+
### Input Fields
|
|
203
|
+
|
|
204
|
+
**Search (Discover / People)**
|
|
205
|
+
- Height: 40pt
|
|
206
|
+
- Background: `#1A1A1A`
|
|
207
|
+
- Border: none
|
|
208
|
+
- Corner radius: 2pt
|
|
209
|
+
- Leading icon: magnifier 16pt `#767676`
|
|
210
|
+
- Placeholder: "Search" Inter 14pt w400 `#767676`
|
|
211
|
+
- Text: `#FFFFFF`
|
|
212
|
+
- Focus: 1pt `#FFFFFF` bottom hairline (no full border, no glow)
|
|
213
|
+
|
|
214
|
+
**Caption / Bio Text Area**
|
|
215
|
+
- Background: transparent on `#000000`
|
|
216
|
+
- Text: Inter 16pt w400 `#FFFFFF`
|
|
217
|
+
- Placeholder: `#767676`
|
|
218
|
+
- Character count: bottom-right, Inter 12pt `#767676`
|
|
219
|
+
- No box, no border — bare text on black
|
|
220
|
+
|
|
221
|
+
### Distinctive Components
|
|
222
|
+
|
|
223
|
+
**Hairline Bipolar Slider**
|
|
224
|
+
- See Adjust Slider above — the defining VSCO control. Used for every numeric adjustment and for preset strength.
|
|
225
|
+
|
|
226
|
+
**Film-Preset Tile**
|
|
227
|
+
- A live-rendered photo preview, 56pt², 2pt radius, 2px white ring when active. The carousel of these IS VSCO's identity.
|
|
228
|
+
|
|
229
|
+
**Recipe Pill**
|
|
230
|
+
- A saved set of adjustments. Shown as a 2pt-radius `#1A1A1A` tile with a tiny preview swatch + recipe number. Tap to apply all, long-press to manage.
|
|
231
|
+
|
|
232
|
+
**HSL Color Wheel**
|
|
233
|
+
- A circular hue selector with 8 color stops; selecting a hue reveals 3 hairline sliders (Hue / Saturation / Lightness). Wheel is the only "round" component; the stops are the only saturated UI color, and only because they ARE color-pickers.
|
|
234
|
+
|
|
235
|
+
**Crop / Straighten Grid**
|
|
236
|
+
- A rule-of-thirds overlay on the photo: 0.5pt `rgba(255,255,255,0.4)` grid lines, draggable corner handles (white 1pt squares), a hairline rotation dial below with degree value in white.
|
|
237
|
+
|
|
238
|
+
**Before/After Press**
|
|
239
|
+
- Press-and-hold the photo to reveal the original (un-graded) image; release returns to edited. No UI — just the image swapping, optional "ORIGINAL" caption top-left UPPERCASE 11pt `+1.0`.
|
|
240
|
+
|
|
241
|
+
**Studio Grid**
|
|
242
|
+
- A gapless (1px hairline) grid of square photo thumbnails on `#0E0E0E`. No rounding, no shadow, no labels — pure contact-sheet. Multi-select adds a 2px white inset border + white check.
|
|
243
|
+
|
|
244
|
+
**Montage / Collage Canvas**
|
|
245
|
+
- A black artboard where photo/video/shape layers compose; layer handles are 1pt white squares; the toolbar is the same UPPERCASE tracked label row.
|
|
246
|
+
|
|
247
|
+
## 5. Layout Principles
|
|
248
|
+
|
|
249
|
+
### Spacing System
|
|
250
|
+
- Base unit: 4pt
|
|
251
|
+
- Scale: 4, 8, 12, 14, 16, 20, 24, 28, 32, 40, 48
|
|
252
|
+
- Photo stage margin: 20pt horizontal, generous black breathing room
|
|
253
|
+
- Tool tray inter-item: 30pt
|
|
254
|
+
- Preset tile gap: 14pt
|
|
255
|
+
- Slider label → track: 10–12pt
|
|
256
|
+
|
|
257
|
+
### Grid & Container
|
|
258
|
+
- iPhone: editor stage is full-width minus 20pt; photo letterboxed to fit, centered
|
|
259
|
+
- Studio grid: 3-up (small), 4-up (large phones), gapless 1px hairline gutters
|
|
260
|
+
- Discover feed: single-column full-bleed editorial cards or 2-up image grid
|
|
261
|
+
- iPad: editor stage centered max ~900pt; tray + carousel pinned bottom; Studio grid up to 6-up
|
|
262
|
+
- Black margin around the photo is itself a layout element — never crop the breathing room away
|
|
263
|
+
|
|
264
|
+
### Whitespace Philosophy
|
|
265
|
+
- **The photo is sacred**: maximum black margin, photo always fully visible, never clipped by chrome
|
|
266
|
+
- **Chrome is a thin band**: controls live in a ≤140pt bottom band; the rest is black + image
|
|
267
|
+
- **No containers**: zero cards, panels, or grouped boxes on the editing surface — elements float on black
|
|
268
|
+
- **Contact-sheet density**: the Studio grid is intentionally gapless and dense — it reads like film negatives on a light table
|
|
269
|
+
|
|
270
|
+
### Border Radius Scale
|
|
271
|
+
- Square (0pt): Studio grid thumbnails, crop grid, full-bleed feed images
|
|
272
|
+
- Film frame (2pt): Preset tiles, buttons, recipe pills, search field — the default radius
|
|
273
|
+
- Subtle (4pt): Sheets, contextual menus
|
|
274
|
+
- Comfortable (8pt): Bottom sheets, modals
|
|
275
|
+
- Soft (12pt): Onboarding cards (rare)
|
|
276
|
+
- Pill (500pt): Almost never — only the membership/upsell "Try VSCO" CTA
|
|
277
|
+
- Circle (50%): Avatars, slider knob, HSL wheel
|
|
278
|
+
|
|
279
|
+
## 6. Depth & Elevation
|
|
280
|
+
|
|
281
|
+
VSCO is flatter than flat — it is *negative* depth, everything sits directly on black.
|
|
282
|
+
|
|
283
|
+
| Level | Treatment | Use |
|
|
284
|
+
|-------|-----------|-----|
|
|
285
|
+
| Stage (Level 0) | No shadow, no border | Photo, sliders, carousel, tool tray — everything on `#000000` |
|
|
286
|
+
| Knob (Level 0.5) | `rgba(0,0,0,0.6) 0 1px 4px` | The ONLY content shadow — under the white slider knob so it reads on a bright photo |
|
|
287
|
+
| Sheet (Level 1) | Slide-up `#1A1A1A` panel, no shadow, 4pt top radius | Export options, recipe manager, settings |
|
|
288
|
+
| Menu (Level 2) | `#1A1A1A`, 4pt radius, `rgba(0,0,0,0.5) 0 8px 24px` | Context menus, share sheet |
|
|
289
|
+
| Modal Scrim | `rgba(0,0,0,0.6)` | Behind sheets/modals |
|
|
290
|
+
|
|
291
|
+
**Shadow Philosophy**: VSCO uses essentially no shadow. The single exception is the slider knob, which gets a soft `0 1px 4px` so the white circle stays visible when it travels over a bright area of the photograph. Sheets and menus rely on a lighter `#1A1A1A` surface against pure black for separation, not on elevation shadow. On the (rare) light browsing theme, the same logic inverts — hairline `#DCDCDC` dividers do the separating, not shadows.
|
|
292
|
+
|
|
293
|
+
### Motion
|
|
294
|
+
- **Preset apply (cross-fade)**: photo cross-dissolves from current grade to new grade over 250ms ease-in-out; preset ring snaps instantly
|
|
295
|
+
- **Slider drag**: 1:1 finger tracking at 60fps; value text updates live; zero-detent gives a soft haptic tick as the knob crosses neutral
|
|
296
|
+
- **Slider double-tap reset**: value + knob spring back to default over 200ms ease-out + soft haptic
|
|
297
|
+
- **Tool switch**: carousel slides out / slider fades in over 180ms ease-out (horizontal 8pt offset)
|
|
298
|
+
- **Before/after press**: instant swap on press-down, instant return on release — no transition (the point is immediacy)
|
|
299
|
+
- **Tab switch**: cross-fade 200ms, no slide
|
|
300
|
+
- **Sheet present**: slide up 300ms ease-out, scrim fades in parallel
|
|
301
|
+
- **Studio multi-select**: white inset border + check scale-in 150ms ease-out per tile
|
|
302
|
+
- **Grain/film toggle**: applies live with a 200ms ease as the texture composites in
|
|
303
|
+
- **Haptics**: soft impact on zero-detent crossing, preset selection, double-tap reset, multi-select toggle
|
|
304
|
+
- **Reduce Motion**: cross-fades become instant cuts; slider reset jumps; tool switch is a plain crossfade
|
|
305
|
+
|
|
306
|
+
## 7. Do's and Don'ts
|
|
307
|
+
|
|
308
|
+
### Do
|
|
309
|
+
- Use pure black (`#000000`) for the editor — true black, dark-native, no light editing theme
|
|
310
|
+
- Keep the UI monochrome — white + three grays; the photograph is the only color
|
|
311
|
+
- Make sliders 1px hairlines on `#3A3A3A` with a solid white 18pt knob
|
|
312
|
+
- Communicate selection with a 2px white ring or a fill change — never a tint
|
|
313
|
+
- Set tool labels and preset codes in UPPERCASE Inter with wide tracking (`+1.6` / `+1.0`)
|
|
314
|
+
- Give the photo maximum black breathing room — never clip it with chrome
|
|
315
|
+
- Use 2pt corner radius as the default (film-frame square), 0pt for the Studio grid
|
|
316
|
+
- Render preset tiles as live previews of the actual photo under that grade
|
|
317
|
+
- Keep the live value text white and the label gray until active
|
|
318
|
+
- Make the Studio grid gapless and dense — a contact sheet of negatives
|
|
319
|
+
- Use the slider knob's `0 1px 4px` shadow — the only content shadow in the app
|
|
320
|
+
|
|
321
|
+
### Don't
|
|
322
|
+
- Don't introduce a brand accent color — VSCO has no "Spotify Green"; state is white
|
|
323
|
+
- Don't use a charcoal "dark mode" (`#191919` etc.) for the editor — it is true `#000000`
|
|
324
|
+
- Don't use rounded pills for buttons — buttons are 2pt-radius rectangles
|
|
325
|
+
- Don't add cards, panels, borders, or shadows to the editing surface — everything floats on black
|
|
326
|
+
- Don't tint sliders, knobs, or rings — they are white, always
|
|
327
|
+
- Don't sentence-case tool labels or preset codes — they are UPPERCASE wide-tracked
|
|
328
|
+
- Don't put gaps or rounding in the Studio grid — it is a gapless 1px-gutter contact sheet
|
|
329
|
+
- Don't animate aggressively — motion is a quiet 180–300ms cross-fade vocabulary
|
|
330
|
+
- Don't show a colored "active" highlight on presets — it's a 2px white ring only
|
|
331
|
+
- Don't crowd the photo — the black margin is a designed element, protect it
|
|
332
|
+
- Don't use color anywhere in chrome except the destructive red (`#E5484D`) in delete sheets
|
|
333
|
+
|
|
334
|
+
## 8. Responsive Behavior
|
|
335
|
+
|
|
336
|
+
### Device Sizes
|
|
337
|
+
| Device | Width | Key Changes |
|
|
338
|
+
|--------|-------|-------------|
|
|
339
|
+
| iPhone SE (3rd gen) | 375pt | Studio grid 3-up; tool tray scrolls; photo letterboxed tighter |
|
|
340
|
+
| iPhone 13/14/15 | 390pt | Standard layout; 4-up Studio grid |
|
|
341
|
+
| iPhone 15/16 Pro | 393pt | Dynamic Island clears the editor top bar |
|
|
342
|
+
| iPhone 15/16 Pro Max | 430pt | Larger photo stage; 4-up grid with slightly bigger tiles |
|
|
343
|
+
| iPad (portrait) | 768pt | Photo stage centered max ~760pt; Studio grid 5-up; tray pinned bottom |
|
|
344
|
+
| iPad (landscape) | 1024pt+ | Photo centered max ~900pt; tray + carousel as a bottom rail; Studio 6-up |
|
|
345
|
+
|
|
346
|
+
### Dynamic Type
|
|
347
|
+
- Editorial titles, section headers, body, captions: full scale
|
|
348
|
+
- Tool labels, preset codes, slider values, nav actions, tab labels: FIXED (single-line, layout-critical)
|
|
349
|
+
- Slider value never wraps — it is a fixed-width numeric
|
|
350
|
+
|
|
351
|
+
### Orientation
|
|
352
|
+
- Editor supports rotation; photo re-letterboxes to fit, tray + carousel stay bottom-pinned
|
|
353
|
+
- Studio grid reflows column count by width
|
|
354
|
+
- Crop/straighten tool fully orientation-aware
|
|
355
|
+
|
|
356
|
+
### Touch Targets
|
|
357
|
+
- Slider knob: 18pt glyph, 44pt hit
|
|
358
|
+
- Tool-tray item: 22pt glyph, 44pt hit
|
|
359
|
+
- Preset tile: 56pt (tap target is the full tile)
|
|
360
|
+
- Tab bar icon: 23pt glyph, 44pt hit
|
|
361
|
+
- Top-bar action: 13pt text, 44pt hit
|
|
362
|
+
- Studio thumbnail: full tile is the target; multi-select via long-press then tap
|
|
363
|
+
|
|
364
|
+
### Safe Area Handling
|
|
365
|
+
- Top: editor top bar respects safe area + Dynamic Island
|
|
366
|
+
- Bottom: tool tray + tab bar respect the home indicator
|
|
367
|
+
- The photo stage shrinks to fit between safe areas — it is never occluded
|
|
368
|
+
- Sides: 20pt photo margin honors the safe area on notched devices
|
|
369
|
+
|
|
370
|
+
## 9. Agent Prompt Guide
|
|
371
|
+
|
|
372
|
+
### Quick Color Reference
|
|
373
|
+
- Canvas (editor): `#000000` (true black — no light editing theme)
|
|
374
|
+
- Surface 1 (Studio/Feed bg): `#0E0E0E`
|
|
375
|
+
- Surface 2 (sheets/menus): `#1A1A1A`
|
|
376
|
+
- Surface 3 (pressed/chips): `#242424`
|
|
377
|
+
- Divider: `#2A2A2A`
|
|
378
|
+
- Slider track: `#3A3A3A`
|
|
379
|
+
- Primary / interactive: `#FFFFFF`
|
|
380
|
+
- Primary pressed: `#DBDBDB`
|
|
381
|
+
- Text primary: `#FFFFFF` (dark) / `#000000` (light browse)
|
|
382
|
+
- Text secondary: `#B3B3B3` (dark) / `#767676` (light)
|
|
383
|
+
- Text tertiary: `#767676`
|
|
384
|
+
- Destructive (delete sheets only): `#E5484D`
|
|
385
|
+
- Film tint (warm preset preview, content): `#C8A86B`
|
|
386
|
+
- Film tint (cool preset preview, content): `#7E8FA1`
|
|
387
|
+
- Accent color: NONE — selection is white
|
|
388
|
+
|
|
389
|
+
### Example Component Prompts
|
|
390
|
+
- "Build the VSCO photo editor screen in SwiftUI: pure black (`#000000`) background. Top bar 52pt: leading `×` (SF Symbol `xmark`, 22pt, `#FFFFFF`), center title 'EDIT' (Inter 13pt weight 500, UPPERCASE, `+1.4` tracking, `#B3B3B3`), trailing 'NEXT' (Inter 13pt weight 600, UPPERCASE, `+1.4`, `#FFFFFF`). Center: the photo, aspect-fit, full-width minus 20pt, 2pt corner radius, centered with generous black margin. Below: a film-preset carousel of 56pt square tiles (live preview of the photo under each grade), 14pt gap, active tile has a 2pt `#FFFFFF` ring and its UPPERCASE 11pt `+1.0` code label turns `#FFFFFF`. Bottom: an 84pt tool tray with `border-top` 0.5pt `#2A2A2A`, UPPERCASE 12pt `+1.6` `#B3B3B3` tool labels with 22pt stroke glyphs, active = `#FFFFFF`."
|
|
391
|
+
|
|
392
|
+
- "Create the VSCO adjust hairline slider: a row with the tool name on the left (Inter 12pt weight 600, UPPERCASE, `+1.6` tracking, `#B3B3B3`) and the live value on the right (Inter 14pt weight 600, `#FFFFFF`, e.g. `+2.4`). Below, a 1pt track in `#3A3A3A` full-width; a 1pt `#FFFFFF` fill from the center zero-point to the knob; an 18pt solid `#FFFFFF` circular knob with shadow `rgba(0,0,0,0.6) 0 1px 4px` and a 44pt hit area. 1:1 finger tracking, a soft haptic when the knob crosses the neutral value, double-tap resets to default over 200ms ease-out."
|
|
393
|
+
|
|
394
|
+
- "Render the VSCO film-preset tile: 56pt square, 2pt corner radius, fill = the actual photo rendered under that preset's grade. Below it, the preset code in Inter 11pt weight 600 UPPERCASE `+1.0` tracking `#B3B3B3`. Selected state: a 2pt solid `#FFFFFF` ring around the tile and the label turns `#FFFFFF` — never a colored highlight. Tapping an already-selected tile reveals a strength hairline slider (same spec as the adjust slider) below the carousel."
|
|
395
|
+
|
|
396
|
+
- "Build the VSCO Studio grid: a gapless grid of square photo thumbnails (4 columns on a 390pt phone) with 1px hairline gutters in `#2A2A2A` on a `#0E0E0E` background. No corner radius, no shadow, no labels — a contact sheet. Multi-select: long-press a tile to enter select mode, then tap to add a 2px `#FFFFFF` inset border + a small `#FFFFFF` checkmark; selected count shows in the top bar."
|
|
397
|
+
|
|
398
|
+
- "Create the VSCO tool tray: a horizontally-scrolling 84pt row, `border-top` 0.5pt `#2A2A2A`, on `#000000`. Each tool is a 22pt stroke glyph (stroke-width 1.6) above an UPPERCASE Inter 12pt weight 600 `+1.6` tracking label, stacked with 8pt gap, 30pt between tools. Inactive `#B3B3B3`, active `#FFFFFF` (glyph + label). Selecting a tool swaps the preset carousel for that tool's hairline slider."
|
|
399
|
+
|
|
400
|
+
- "Build the VSCO primary action button: a 2pt-radius rectangle (NOT a pill), `#FFFFFF` background, `#000000` text, Inter 12pt weight 600 UPPERCASE with `+1.4` letter-spacing, 14pt vertical / 28pt horizontal padding. Pressed: background `#DBDBDB` + scale 0.98. Frequently it is rendered instead as a bare top-bar text action ('NEXT') with the same type spec and no fill."
|
|
401
|
+
|
|
402
|
+
### Iteration Guide
|
|
403
|
+
1. Editor canvas is true black `#000000` — dark-native, there is NO light editing theme; only browsing screens can go light
|
|
404
|
+
2. UI is monochrome: white + `#0E0E0E`/`#1A1A1A`/`#242424` surfaces + `#B3B3B3`/`#767676` text — zero brand accent
|
|
405
|
+
3. Sliders are 1px hairlines on `#3A3A3A` with a solid white 18pt knob (the knob's `0 1px 4px` shadow is the only content shadow)
|
|
406
|
+
4. Selection is communicated with a 2px white ring or a fill/label color change — NEVER a tint
|
|
407
|
+
5. Tool labels and preset codes are UPPERCASE Inter, wide-tracked (`+1.6` tools, `+1.0` presets) — the film-data-back signature
|
|
408
|
+
6. The film-preset carousel is the identity: 56pt live-preview tiles, 2px white active ring
|
|
409
|
+
7. Default corner radius is 2pt (film-frame square); the Studio grid is 0pt and gapless (contact sheet)
|
|
410
|
+
8. The photograph is sacred — maximum black margin, never clipped by chrome, never crowded
|
|
411
|
+
9. No cards, panels, borders, or shadows on the editing surface — every control floats on black
|
|
412
|
+
10. The only non-monochrome UI color is the destructive red `#E5484D`, used solely in delete/discard sheets
|