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,372 @@
|
|
|
1
|
+
# Design System Inspiration of Bandcamp (iOS)
|
|
2
|
+
|
|
3
|
+
## 1. Visual Theme & Atmosphere
|
|
4
|
+
|
|
5
|
+
Bandcamp's iOS app is a paper-first, editorial music marketplace whose entire identity is built on one belief: the album artwork — uploaded by the artist — is the brand, and the UI exists to get out of its way. The canvas is near-white (`#FFFFFF` with `#F4F4F4` for grouped/elevated zones), text is near-black ink (`#1A1A1A`), and the single brand color, Bandcamp Teal (`#1DA0C3`, with a deeper `#629AA9`), is rationed almost exclusively to the things that connect a fan to an artist: the **artist name link**, the **buy/support price**, and the **fan collection**. Open the app and you land on a feed of releases your friends and the people you follow have bought, but the screen everything builds toward is the **Album Page**: an enormous square cover at the very top, the album title in heavy type, "by {Artist}" in teal, a buy card with a "name your price" affordance, an inline player with a teal waveform, and a clean numbered tracklist.
|
|
6
|
+
|
|
7
|
+
The signature affordance is the **buy/support card**. Unlike a streaming app, Bandcamp's primary action is *purchase* — a bordered, paper-gray card showing a price ("$9 USD"), an "or more" / "name your price" hint, a solid teal "Buy Digital Album" button, and an "Add to wishlist" link. This commerce-forward block is the heart of Bandcamp's UX because the whole product exists to pay artists directly. The second signature is the **big square album art**: covers are full-bleed at the top of the album page and edge-to-edge in a grid in the collection — never cropped to a circle, never decorated, always 1:1. The third is the **fan collection feed**: a social, editorial stream of "{Fan} bought {Album}" cards with the cover, title, and artist, plus the buyer's note — Bandcamp is as much a fan network as a store.
|
|
8
|
+
|
|
9
|
+
The color system is deliberately minimal and warm-neutral. There is one paper canvas, one paper-gray surface, hairline gray dividers, near-black ink text, a secondary gray, and exactly one brand color (teal, with one deeper variant). There is no gradient system, no secondary accent, no dark-by-default. Album art is allowed to be as loud as the artist made it; the chrome is quiet, gray, and typographic. This restraint is the point: on a near-white editorial page, teal reads instantly as "this is the link / the price / the way you support this artist."
|
|
10
|
+
|
|
11
|
+
Typography is clean and editorial. Bandcamp's product uses a humanist sans (referenced here with **DM Sans** as the faithful fallback) at confident weights: screen and album titles at heavy 700, artist links at 600 in teal, body at 400, prices at 600, tracklist and metadata at small 400/600. Hierarchy reads like a well-set record sleeve — title, artist, release info, then a clean tracklist — not like a product dashboard. Numerals are tabular for track numbers, durations, and player times.
|
|
12
|
+
|
|
13
|
+
**Key Characteristics:**
|
|
14
|
+
- Paper-first canvas (`#FFFFFF` / `#F4F4F4`) — light, editorial, the artwork is the brand
|
|
15
|
+
- **Bandcamp Teal** (`#1DA0C3`) rationed to artist links, the buy price, and collection accents
|
|
16
|
+
- **Buy/Support card** — bordered paper-gray block with price + "name your price" + teal Buy button
|
|
17
|
+
- **Big square album art** — full-bleed 1:1 covers, never cropped to a circle, never decorated
|
|
18
|
+
- **Fan collection feed** — social "{Fan} bought {Album}" cards with cover, title, artist, note
|
|
19
|
+
- **Inline player** with a teal waveform/scrubber and tabular time
|
|
20
|
+
- Clean numbered tracklist — hairline-separated rows, teal for the playing track
|
|
21
|
+
- Editorial typography — humanist sans (DM Sans fallback) at weights 400/600/700
|
|
22
|
+
- Small corner radii — 4pt buttons/cards, 2–4pt art tiles; restrained, paper-like
|
|
23
|
+
- Hairline gray dividers (`#E2E2E2`) instead of cards/shadows wherever possible
|
|
24
|
+
- Bottom tab strip: Feed / Discover / Collection / Profile, teal active tint
|
|
25
|
+
- Dark mode is a true inversion (cool charcoal `#101417`), NOT the default
|
|
26
|
+
|
|
27
|
+
## 2. Color Palette & Roles
|
|
28
|
+
|
|
29
|
+
### Primary (Interactive)
|
|
30
|
+
- **Bandcamp Teal** (`#1DA0C3`): The brand color — artist links, the buy price, primary "Buy" button, active tab, playing track, collection accents.
|
|
31
|
+
- **Teal Deep** (`#629AA9`): Muted teal — visited links, secondary teal text, subtle accents.
|
|
32
|
+
- **Teal Pressed** (`#17819E`): Pressed state for the Buy button and teal fills.
|
|
33
|
+
- **Dark Teal** (`#3DB5D6`): Teal shifted lighter for contrast in dark mode only.
|
|
34
|
+
|
|
35
|
+
### Canvas & Surfaces (Light — primary, Bandcamp's true identity)
|
|
36
|
+
- **Paper** (`#FFFFFF`): Primary canvas — the album page, lists, most screens.
|
|
37
|
+
- **Paper Gray** (`#F4F4F4`): Grouped/elevated zones — the buy card, settings groups, search bar.
|
|
38
|
+
- **Hover Gray** (`#EDEDED`): Pressed/selected rows.
|
|
39
|
+
- **Divider** (`#E2E2E2`): Hairline separators between tracklist rows and sections.
|
|
40
|
+
- **Track Divider** (`#F0F0F0`): Lighter hairline inside dense tracklists.
|
|
41
|
+
|
|
42
|
+
### Canvas & Surfaces (Dark — true inversion, NOT the default)
|
|
43
|
+
- **Dark Canvas** (`#101417`): Cool charcoal — Bandcamp's dark canvas, slightly blue-gray.
|
|
44
|
+
- **Dark Surface 1** (`#1A2024`): Cards, buy card, raised zones.
|
|
45
|
+
- **Dark Surface 2** (`#232B30`): Hovered/pressed rows, chips.
|
|
46
|
+
- **Dark Divider** (`#2C353B`): Hairline separators on dark.
|
|
47
|
+
|
|
48
|
+
| Role | Light Mode (primary) | Dark Mode |
|
|
49
|
+
|------|----------------------|-----------|
|
|
50
|
+
| Canvas | `#FFFFFF` | `#101417` |
|
|
51
|
+
| Grouped Surface | `#F4F4F4` | `#1A2024` |
|
|
52
|
+
| Pressed Surface | `#EDEDED` | `#232B30` |
|
|
53
|
+
| Divider | `#E2E2E2` | `#2C353B` |
|
|
54
|
+
| Text Primary | `#1A1A1A` | `#EDF1F3` |
|
|
55
|
+
| Text Secondary | `#767676` | `#93A1A8` |
|
|
56
|
+
| Brand Teal | `#1DA0C3` | `#3DB5D6` |
|
|
57
|
+
|
|
58
|
+
### Text
|
|
59
|
+
- **Ink** (`#1A1A1A`): Primary text — album titles, track names, body — a near-black, not pure black.
|
|
60
|
+
- **Text Secondary** (`#767676`): Release info, durations, captions, secondary metadata.
|
|
61
|
+
- **Text Tertiary** (`#9A9A9A`): Track numbers, very low-emphasis labels, disabled.
|
|
62
|
+
- **Link Teal** (`#1DA0C3`): Artist names, tags, in-text links, "Add to wishlist".
|
|
63
|
+
|
|
64
|
+
### Commerce
|
|
65
|
+
- **Buy Teal** (`#1DA0C3`): The "Buy Digital Album" / "Buy Now" button background.
|
|
66
|
+
- **Price Ink** (`#1A1A1A`): The price figure ("$9") in heavy weight.
|
|
67
|
+
- **NYP Gray** (`#767676`): "or more" / "name your price" / "pay what you want" hint text.
|
|
68
|
+
- **Owned Teal** (`#1DA0C3`): "In your collection" / purchased badge.
|
|
69
|
+
|
|
70
|
+
### Semantic
|
|
71
|
+
- **Success Green** (`#4CAF50`): Purchase complete, "added to collection" confirm.
|
|
72
|
+
- **Error Red** (`#E45858`): Payment failed, download error, destructive confirm.
|
|
73
|
+
- **Warning Amber** (`#E0A030`): Low-quality stream / preview-only notice.
|
|
74
|
+
|
|
75
|
+
## 3. Typography Rules
|
|
76
|
+
|
|
77
|
+
### Font Family
|
|
78
|
+
- **Primary**: Bandcamp's product humanist sans (a clean grotesque-humanist face used across web + app).
|
|
79
|
+
- **Faithful Fallback**: `DM Sans` (by Colophon Foundry, SIL OFL) — geometric-humanist, low-contrast, near-identical editorial feel; the recommended substitute.
|
|
80
|
+
- **System Fallback Stack**: `-apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif`
|
|
81
|
+
- **Numerals**: Tabular figures for track numbers, durations, prices, player times (`font-variant-numeric: tabular-nums`).
|
|
82
|
+
|
|
83
|
+
### Hierarchy
|
|
84
|
+
|
|
85
|
+
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
|
86
|
+
|------|------|------|--------|-------------|----------------|-------|
|
|
87
|
+
| Screen Title | DM Sans | 32pt | 700 | 1.15 | -0.6pt | "Collection", "Feed" page titles |
|
|
88
|
+
| Album Title | DM Sans | 22pt | 700 | 1.2 | -0.3pt | Album/track title on the album page |
|
|
89
|
+
| Section Header | DM Sans | 22pt | 700 | 1.25 | -0.2pt | "Recently collected", shelf titles |
|
|
90
|
+
| Artist Link | DM Sans | 18pt | 600 | 1.3 | 0pt | "by {Artist}" — always teal `#1DA0C3` |
|
|
91
|
+
| Subhead | DM Sans | 18pt | 600 | 1.3 | -0.1pt | Card group titles, sheet headers |
|
|
92
|
+
| Body | DM Sans | 16pt | 400 | 1.55 | 0pt | Descriptions, buyer notes, paragraph copy |
|
|
93
|
+
| Price | DM Sans | 22pt | 700 | 1.1 | -0.2pt | The "$9" figure in the buy card |
|
|
94
|
+
| Price Unit | DM Sans | 13pt | 600 | 1.2 | 0pt | "USD", "or more" |
|
|
95
|
+
| Row / Collection Title | DM Sans | 15pt | 600 | 1.3 | 0pt | Collection card title, list primary line |
|
|
96
|
+
| Meta | DM Sans | 14pt | 400 | 1.4 | 0pt | "Released June 4 · 10 tracks", durations |
|
|
97
|
+
| Track Name | DM Sans | 14pt | 500 | 1.35 | 0pt | Tracklist row (700 + teal when playing) |
|
|
98
|
+
| Track Number / Caption | DM Sans | 12pt | 600 | 1.0 | 0.3pt | Track index, small captions |
|
|
99
|
+
| Tab Label | DM Sans | 10pt | 600 | 1.0 | 0.1pt | Bottom tab labels |
|
|
100
|
+
| Button | DM Sans | 15pt | 700 | 1.0 | 0pt | Buy / primary buttons |
|
|
101
|
+
|
|
102
|
+
### Principles
|
|
103
|
+
- **Editorial, record-sleeve rhythm**: Title → artist → release info → tracklist, set like a printed sleeve — not a product dashboard.
|
|
104
|
+
- **Teal is for connection**: Artist links and the price are teal; everything informational is ink/gray. Don't tint generic UI teal.
|
|
105
|
+
- **Confident but not loud**: Titles at 700, artist/price at 600–700; body at a comfortable 400 with generous 1.55 line height for buyer notes and descriptions.
|
|
106
|
+
- **Tabular numerals**: Track numbers, durations, prices, and player times all use tabular figures so columns align.
|
|
107
|
+
- **Dynamic Type**: Titles, artist link, body, prices scale; tab labels, track numbers, captions stay fixed (layout-sensitive).
|
|
108
|
+
|
|
109
|
+
## 4. Component Stylings
|
|
110
|
+
|
|
111
|
+
### Buttons
|
|
112
|
+
|
|
113
|
+
**Primary Buy Button (Buy Digital Album / Buy Now)**
|
|
114
|
+
- Shape: Rectangle, 4pt corner radius (restrained — paper, not pill)
|
|
115
|
+
- Background: `#1DA0C3` (Bandcamp Teal)
|
|
116
|
+
- Text: `#FFFFFF`, DM Sans 15pt weight 700
|
|
117
|
+
- Padding: 13pt vertical, full-width inside the buy card
|
|
118
|
+
- Pressed: background `#17819E` + scale 0.99
|
|
119
|
+
- Disabled: teal at 40% opacity, text `#FFFFFF` at 60%
|
|
120
|
+
|
|
121
|
+
**Outline Button (Follow / Buy Track)**
|
|
122
|
+
- Background: transparent
|
|
123
|
+
- Border: 1pt `#1DA0C3`
|
|
124
|
+
- Text: `#1DA0C3`, DM Sans 14pt weight 600
|
|
125
|
+
- Corner radius: 4pt
|
|
126
|
+
- Padding: 11pt vertical, 20pt horizontal
|
|
127
|
+
- Pressed: background `#1DA0C3` at 8%, text/border to `#17819E`
|
|
128
|
+
|
|
129
|
+
**Secondary Button (Share / Gift)**
|
|
130
|
+
- Background: `#F4F4F4` (light) / `#232B30` (dark)
|
|
131
|
+
- Border: 1pt `#E2E2E2` (light) / `#2C353B` (dark)
|
|
132
|
+
- Text: `#1A1A1A` / `#EDF1F3`, DM Sans 14pt weight 600
|
|
133
|
+
- Corner radius: 4pt
|
|
134
|
+
- Pressed: background `#EDEDED`
|
|
135
|
+
|
|
136
|
+
**Text Button / Link (Add to wishlist / artist link)**
|
|
137
|
+
- Text: `#1DA0C3`, DM Sans 14pt weight 600
|
|
138
|
+
- Underline on inline links; no underline on standalone actions
|
|
139
|
+
- Pressed: color `#17819E`
|
|
140
|
+
|
|
141
|
+
### Core Atoms
|
|
142
|
+
|
|
143
|
+
**Big Square Album Art**
|
|
144
|
+
- Aspect ratio: strictly 1:1, never cropped to a circle
|
|
145
|
+
- Album page: full-bleed at the top edge, 0pt corner radius (touches the screen edges)
|
|
146
|
+
- Collection / feed grid: 2–4pt corner radius, no border, no shadow
|
|
147
|
+
- Loading: a flat `#F4F4F4` / `#1A2024` placeholder square (no shimmer gradient)
|
|
148
|
+
- The art is never tinted, darkened, or overlaid with chrome — content is sovereign
|
|
149
|
+
|
|
150
|
+
**Buy / Support Card (signature)**
|
|
151
|
+
- Background: `#F4F4F4` (light) / `#1A2024` (dark)
|
|
152
|
+
- Border: 1pt `#E2E2E2` / `#2C353B`
|
|
153
|
+
- Corner radius: 6pt
|
|
154
|
+
- Padding: 16pt all
|
|
155
|
+
- Contents: price row (`$9` in DM Sans 22pt w700 ink + "USD" 13pt w600 gray, "or more" right-aligned), a "name your price · pay what you want" hint (12pt `#767676`), a full-width teal Buy button (4pt radius), and an "Add to wishlist" teal text link centered below
|
|
156
|
+
|
|
157
|
+
**Inline Player Bar**
|
|
158
|
+
- Layout: 36pt circular ink play button + track title (13pt w600 ink) + "elapsed / total" (11pt `#767676` tabular) + a small teal waveform/scrubber
|
|
159
|
+
- Borders: 1pt `#EAEAEA` top and bottom (a banded strip, not a card)
|
|
160
|
+
- The waveform bars are teal `#1DA0C3`; the played portion is solid, the unplayed portion at 35% opacity
|
|
161
|
+
|
|
162
|
+
**Tracklist Row**
|
|
163
|
+
- Height: ~42pt; layout: track number (12pt `#9A9A9A` tabular, 18pt column) + track name (14pt w500 ink) + duration (12pt `#767676` tabular)
|
|
164
|
+
- Divider: 1pt `#F0F0F0` between rows (none on last)
|
|
165
|
+
- Playing: track name turns `#1DA0C3` weight 700
|
|
166
|
+
- Pressed: row background `#EDEDED`
|
|
167
|
+
|
|
168
|
+
**Collection Card (fan feed)**
|
|
169
|
+
- Square art (2–4pt radius) + title (13pt w600 ink, 1 line) + artist (12pt `#767676`, 1 line)
|
|
170
|
+
- Often grouped 2-up or 3-up in a row; the feed adds a "{Fan} bought this" line and an optional buyer note above the card
|
|
171
|
+
|
|
172
|
+
### Navigation
|
|
173
|
+
|
|
174
|
+
**Bottom Tab Bar**
|
|
175
|
+
- Height: 50pt + safe area
|
|
176
|
+
- Background: `#FFFFFF` (light) / `#101417` (dark), 1pt top border `#EAEAEA` / `#2C353B`
|
|
177
|
+
- Tabs (4): Feed, Discover, Collection, Profile
|
|
178
|
+
- Icon size: 22pt; active fills solid, inactive is stroked
|
|
179
|
+
- Active color: `#1DA0C3` (teal) icon + label
|
|
180
|
+
- Inactive color: `#9A9A9A` / `#5F6E75`
|
|
181
|
+
- Labels: DM Sans 10pt weight 600, always shown
|
|
182
|
+
|
|
183
|
+
**Top Navigation (Album page)**
|
|
184
|
+
- Height: 44pt + safe area
|
|
185
|
+
- Leading: back chevron, 22pt `#1A1A1A`
|
|
186
|
+
- Center: compact "Album" / context title, DM Sans 13pt w700
|
|
187
|
+
- Trailing: ⋯ overflow (share, gift, report), 22pt `#1A1A1A`
|
|
188
|
+
- No large translucent blur — a clean white bar with a hairline bottom border on scroll
|
|
189
|
+
|
|
190
|
+
### Input Fields
|
|
191
|
+
|
|
192
|
+
**Search Bar**
|
|
193
|
+
- Height: 40pt, background `#F4F4F4` / `#1A2024`, corner radius 6pt, no border
|
|
194
|
+
- Leading magnifier 16pt `#767676`; placeholder "Artists, albums, tracks…" 14pt `#767676`
|
|
195
|
+
- Focus: 1pt `#1DA0C3` border
|
|
196
|
+
|
|
197
|
+
**Name-Your-Price Field**
|
|
198
|
+
- An inline numeric field inside the buy flow: `#FFFFFF` field, 1pt `#E2E2E2` border, 4pt radius, leading "$", DM Sans 16pt ink
|
|
199
|
+
- Helper: "Minimum $X — pay what you want" in 12pt `#767676`
|
|
200
|
+
|
|
201
|
+
### Distinctive Components
|
|
202
|
+
|
|
203
|
+
**Album Page (signature screen)**
|
|
204
|
+
- Full-bleed 1:1 cover at the very top → album title (22pt w700 ink) → "by {Artist}" (18pt w600 teal) → release meta (14pt gray) → the bordered buy/support card → the banded inline player → the hairline-separated numbered tracklist. Editorial, top-to-bottom, no hero gradient.
|
|
205
|
+
|
|
206
|
+
**Buy / Support Card**
|
|
207
|
+
- The commerce heart of Bandcamp: price + "name your price" + a solid teal Buy button + wishlist link. This is the primary CTA on every release — Bandcamp exists to pay artists directly.
|
|
208
|
+
|
|
209
|
+
**Fan Collection Feed**
|
|
210
|
+
- A social editorial stream: "{Fan} bought {Album}" with the cover, title, artist, and the fan's note. Bandcamp is a fan network as much as a store; the collection is identity, not just history.
|
|
211
|
+
|
|
212
|
+
**Inline Teal Waveform Player**
|
|
213
|
+
- A banded strip (not a card) with a teal waveform/scrubber and tabular times — restrained, paper-like, lets you preview before you buy.
|
|
214
|
+
|
|
215
|
+
**Big Square Art Everywhere**
|
|
216
|
+
- 1:1 covers, never circular, never decorated, never tinted — the artwork the artist uploaded is the visual identity of every screen.
|
|
217
|
+
|
|
218
|
+
## 5. Layout Principles
|
|
219
|
+
|
|
220
|
+
### Spacing System
|
|
221
|
+
- Base unit: 4pt
|
|
222
|
+
- Scale: 4, 8, 12, 16, 20, 24, 32, 40, 48, 64
|
|
223
|
+
- Screen horizontal inset: 20pt (album body, lists)
|
|
224
|
+
- Album art: full-bleed (0pt inset) at the top of the album page
|
|
225
|
+
- Tracklist row vertical padding: 9pt; section gap: 24pt
|
|
226
|
+
|
|
227
|
+
### Grid & Container
|
|
228
|
+
- iPhone: single column, 20pt side insets for text; full-bleed art
|
|
229
|
+
- Collection: 2-up grid on phone (3-up on Plus/Max), 12pt gutter, square cells
|
|
230
|
+
- iPad: content max-width 720pt centered; collection 4–5-up grid
|
|
231
|
+
- Album page is a single editorial column, never multi-column
|
|
232
|
+
|
|
233
|
+
### Whitespace Philosophy
|
|
234
|
+
- **Paper, not panels**: the page is white with hairline dividers — content flows like a record sleeve, not stacked cards
|
|
235
|
+
- **The art owns the top**: the cover is full-bleed and the single largest element on the album page
|
|
236
|
+
- **Generous reading measure**: buyer notes and descriptions get 1.55 line height and a comfortable 20pt inset
|
|
237
|
+
- **Borders over shadows**: zones (the buy card) use a 1pt hairline border, not a drop shadow — keep the page flat and editorial
|
|
238
|
+
|
|
239
|
+
### Border Radius Scale
|
|
240
|
+
- Square (0pt): full-bleed album art on the album page, dividers
|
|
241
|
+
- Hairline (2pt): collection grid art tiles
|
|
242
|
+
- Small (4pt): buttons, art tiles, name-your-price field
|
|
243
|
+
- Card (6pt): the buy/support card, search bar
|
|
244
|
+
- Comfortable (12pt): bottom sheets, modals
|
|
245
|
+
- Pill (500pt): rarely used — small filter chips only
|
|
246
|
+
- Circle (50%): the inline play button, avatars
|
|
247
|
+
|
|
248
|
+
## 6. Depth & Elevation
|
|
249
|
+
|
|
250
|
+
Bandcamp is flat and editorial. It does not use drop shadows as a style — zones are defined by hairline borders and surface-color steps. The only elevation is the system bottom sheet.
|
|
251
|
+
|
|
252
|
+
| Level | Treatment | Use |
|
|
253
|
+
|-------|-----------|-----|
|
|
254
|
+
| Flat (Level 0) | No shadow; `#FFFFFF` | Page content, tracklist, album art |
|
|
255
|
+
| Bordered (Level 1) | 1pt `#E2E2E2` border, no shadow | Buy card, search bar, grouped zones |
|
|
256
|
+
| Banded (Level 1) | 1pt top+bottom hairline | Inline player strip |
|
|
257
|
+
| Sheet (Level 2) | `rgba(0,0,0,0.12) 0 -2px 16px` | Bottom sheets (share, gift, payment) |
|
|
258
|
+
| Modal Overlay | `rgba(0,0,0,0.35)` | Dim behind modals & sheets |
|
|
259
|
+
|
|
260
|
+
**Shadow Philosophy**: Bandcamp uses borders and surface steps, not shadows, to organize the page — appropriate for an editorial, paper-like marketplace. The only place a shadow appears is the system bottom sheet (share/gift/checkout), where it signals "this is a temporary layer, tap outside to dismiss." Album art never gets a shadow — it sits flat on the page, sovereign.
|
|
261
|
+
|
|
262
|
+
### Motion
|
|
263
|
+
- **Page navigation**: native iOS push, 300ms horizontal slide; album art shared-element scales up from the feed tile when available
|
|
264
|
+
- **Buy button press**: scale 0.99 + background `#1DA0C3` → `#17819E` over 100ms; soft haptic on tap
|
|
265
|
+
- **Add to collection / wishlist**: a quick teal check or heart fill (150ms ease-out) + soft haptic; toast "Added to collection"
|
|
266
|
+
- **Player scrub / waveform**: 1:1 finger tracking on the waveform; played bars fill teal as time advances; no spring, just linear progress
|
|
267
|
+
- **Tracklist row tap**: row highlights `#EDEDED` for 120ms, then the player updates and the track name turns teal
|
|
268
|
+
- **Bottom sheet (checkout/share)**: slides up 300ms ease-out with the modal dim fading in
|
|
269
|
+
- **Tab switch**: instant content swap; active icon fills + tints teal with a 120ms ease
|
|
270
|
+
- **Pull to refresh (feed)**: standard iOS refresh; new collection cards fade in
|
|
271
|
+
- **Haptics**: soft impact on Buy tap, add-to-collection, and wishlist toggle
|
|
272
|
+
|
|
273
|
+
## 7. Do's and Don'ts
|
|
274
|
+
|
|
275
|
+
### Do
|
|
276
|
+
- Use paper-white (`#FFFFFF` / `#F4F4F4`) as the canvas — Bandcamp is light and editorial
|
|
277
|
+
- Make album art big, square (1:1), and full-bleed on the album page — the art is the brand
|
|
278
|
+
- Reserve Bandcamp Teal (`#1DA0C3`) for artist links, the buy price, the Buy button, and collection accents
|
|
279
|
+
- Lead every release with a clear buy/support card — price + "name your price" + teal Buy button
|
|
280
|
+
- Show the fan collection as a social feed ("{Fan} bought {Album}" + note) — it's a network, not history
|
|
281
|
+
- Use hairline gray dividers (`#E2E2E2`) and surface steps instead of shadows and cards
|
|
282
|
+
- Set the page like a record sleeve: title → artist (teal) → release info → tracklist
|
|
283
|
+
- Use small corner radii (4pt buttons, 2–4pt art) — restrained and paper-like
|
|
284
|
+
- Make the playing track teal + 700 weight in the tracklist
|
|
285
|
+
- Use tabular numerals for track numbers, durations, prices, and player times
|
|
286
|
+
- Invert to a true dark charcoal (`#101417`) for dark mode — shift teal to `#3DB5D6`
|
|
287
|
+
|
|
288
|
+
### Don't
|
|
289
|
+
- Don't go dark by default — Bandcamp's identity is the white editorial page
|
|
290
|
+
- Don't crop album art to a circle or decorate/tint it — covers are always square and untouched
|
|
291
|
+
- Don't tint generic UI chrome teal — teal means "artist link / price / support"
|
|
292
|
+
- Don't hide or de-emphasize the price — purchasing is the primary action, not a streaming play
|
|
293
|
+
- Don't use a streaming-style giant gradient hero — the album page is editorial and flat
|
|
294
|
+
- Don't use drop shadows to separate content — use hairline borders and surface steps
|
|
295
|
+
- Don't use pill-shaped buttons everywhere — Bandcamp's geometry is restrained (4pt)
|
|
296
|
+
- Don't use pure black text — `#1A1A1A` ink is correct
|
|
297
|
+
- Don't add a second brand accent or a gradient system — there is one teal (plus one deep variant)
|
|
298
|
+
- Don't bury the collection — it's the fan's identity and a primary tab
|
|
299
|
+
- Don't dim or overlay album art for "contrast" — content stays sovereign; only chrome dims in dark mode
|
|
300
|
+
|
|
301
|
+
## 8. Responsive Behavior
|
|
302
|
+
|
|
303
|
+
### Device Sizes
|
|
304
|
+
| Device | Width | Key Changes |
|
|
305
|
+
|--------|-------|-------------|
|
|
306
|
+
| iPhone SE (3rd gen) | 375pt | Collection 2-up; buy card and player at 16pt insets |
|
|
307
|
+
| iPhone 13/14/15 | 390pt | Standard layout, 20pt text insets, full-bleed art |
|
|
308
|
+
| iPhone 15/16 Pro | 393pt | Dynamic Island accommodated in the top nav |
|
|
309
|
+
| iPhone 15/16 Pro Max | 430pt | Collection 3-up; larger album art |
|
|
310
|
+
| iPad (portrait) | 768pt | Content max-width 720pt centered; collection 4-up |
|
|
311
|
+
| iPad (landscape) | 1024pt+ | Two-pane: collection grid left, album detail right; 5-up grid |
|
|
312
|
+
|
|
313
|
+
### Dynamic Type
|
|
314
|
+
- Screen/album titles, artist link, body, prices, track names: full scale
|
|
315
|
+
- Tab labels, track numbers, captions, price unit: FIXED (layout-sensitive)
|
|
316
|
+
- Album art and waveform are graphic, unaffected by type scale
|
|
317
|
+
|
|
318
|
+
### Orientation
|
|
319
|
+
- iPhone album page is portrait-friendly (editorial column); rotation supported
|
|
320
|
+
- iPad supports landscape split (collection grid + album detail)
|
|
321
|
+
- Album art maintains 1:1 aspect in all orientations
|
|
322
|
+
|
|
323
|
+
### Touch Targets
|
|
324
|
+
- Buy button: full-width, 13pt vertical padding (≥ 44pt tall)
|
|
325
|
+
- Inline play button: 36pt visual, 44pt hit
|
|
326
|
+
- Tracklist row: full-row tappable (~42pt)
|
|
327
|
+
- Tab bar items: 22pt glyph, 48pt hit
|
|
328
|
+
- Artist link / wishlist: 44pt hit area around the text
|
|
329
|
+
|
|
330
|
+
### Safe Area Handling
|
|
331
|
+
- Top: top nav respects safe area + Dynamic Island; album art may extend under the status bar with the nav floating
|
|
332
|
+
- Bottom: tab bar and any mini player respect the home indicator
|
|
333
|
+
- Bottom sheets (checkout/share) extend to the safe area with internal padding
|
|
334
|
+
- Sides: 20pt content inset for text; album art is full-bleed
|
|
335
|
+
|
|
336
|
+
## 9. Agent Prompt Guide
|
|
337
|
+
|
|
338
|
+
### Quick Color Reference
|
|
339
|
+
- Canvas (light): `#FFFFFF`
|
|
340
|
+
- Grouped surface: `#F4F4F4`
|
|
341
|
+
- Divider: `#E2E2E2`
|
|
342
|
+
- Text primary (ink): `#1A1A1A`
|
|
343
|
+
- Text secondary: `#767676`
|
|
344
|
+
- Bandcamp Teal: `#1DA0C3` (artist link, price, Buy button, active tab, playing track)
|
|
345
|
+
- Teal deep: `#629AA9`
|
|
346
|
+
- Teal pressed: `#17819E`
|
|
347
|
+
- Canvas (dark): `#101417`
|
|
348
|
+
- Dark surface: `#1A2024`
|
|
349
|
+
- Dark divider: `#2C353B`
|
|
350
|
+
- Dark teal: `#3DB5D6`
|
|
351
|
+
- Success: `#4CAF50`
|
|
352
|
+
- Error: `#E45858`
|
|
353
|
+
|
|
354
|
+
### Example Component Prompts
|
|
355
|
+
- "Build the Bandcamp album page in SwiftUI: full-bleed 1:1 album art at the very top (0pt corner radius, touches screen edges). Below at 20pt insets: album title in DM Sans 22pt w700 `#1A1A1A`, then 'by {Artist}' in DM Sans 18pt w600 `#1DA0C3`, then release meta 'Released June 4 · 10 tracks' in DM Sans 14pt `#767676`. Then the buy/support card."
|
|
356
|
+
- "Create the Bandcamp buy/support card: `#F4F4F4` background, 1pt `#E2E2E2` border, 6pt corner radius, 16pt padding. Top row: '$9' in DM Sans 22pt w700 `#1A1A1A` + 'USD' 13pt w600 `#767676`, with 'or more' right-aligned 13pt `#767676`. Below: 'Name your price · Pay what you want' 12pt `#767676`. Then a full-width 'Buy Digital Album' button — `#1DA0C3`, white DM Sans 15pt w700, 4pt radius, 13pt vertical padding, pressed `#17819E`. Below, centered: an 'Add to wishlist' teal text link."
|
|
357
|
+
- "Render the Bandcamp inline player: a banded strip with 1pt `#EAEAEA` top and bottom borders. Leading 36pt circular `#1A1A1A` play button (white ▶ glyph). Then track title DM Sans 13pt w600 `#1A1A1A` over '1:42 / 5:08' DM Sans 11pt `#767676` tabular. Trailing: a small teal waveform — `#1DA0C3` bars, played portion solid, unplayed at 35% opacity."
|
|
358
|
+
- "Build a Bandcamp tracklist: rows ~42pt, each = track number (DM Sans 12pt `#9A9A9A` tabular, 18pt column) + track name (DM Sans 14pt w500 `#1A1A1A`) + duration (DM Sans 12pt `#767676` tabular). 1pt `#F0F0F0` divider between rows. The currently-playing track's name is `#1DA0C3` weight 700. Pressed row background `#EDEDED`."
|
|
359
|
+
- "Create a Bandcamp collection card: square art (1:1, 4pt corner radius, no border/shadow) + title DM Sans 13pt w600 `#1A1A1A` (1 line) + artist DM Sans 12pt `#767676` (1 line). Group 2-up on phone with a 12pt gutter; in the feed add a '{Fan} bought this' line above."
|
|
360
|
+
- "Create the Bandcamp bottom tab bar: 50pt + safe area, `#FFFFFF`, 1pt top border `#EAEAEA`. Tabs: Feed, Discover, Collection, Profile — 22pt icons, labels DM Sans 10pt w600. Active: teal `#1DA0C3` filled icon + label; inactive: `#9A9A9A` stroked."
|
|
361
|
+
|
|
362
|
+
### Iteration Guide
|
|
363
|
+
1. Canvas is paper-white (`#FFFFFF` / `#F4F4F4`) — Bandcamp is light and editorial; dark is a true inversion, NOT the default
|
|
364
|
+
2. Album art is big, strictly square (1:1), full-bleed on the album page, never circular/decorated/tinted
|
|
365
|
+
3. Bandcamp Teal `#1DA0C3` is scarce — artist links, the buy price, the Buy button, active tab, playing track
|
|
366
|
+
4. Every release leads with a buy/support card: price + "name your price" + teal Buy button + wishlist link
|
|
367
|
+
5. The fan collection is a social feed ("{Fan} bought {Album}" + note), a primary tab, the fan's identity
|
|
368
|
+
6. Use hairline gray borders (`#E2E2E2`) and surface steps — NOT shadows or cards — to organize the page
|
|
369
|
+
7. Typography is editorial record-sleeve rhythm: title (700) → artist (600 teal) → meta (gray) → tracklist
|
|
370
|
+
8. Geometry is restrained: 4pt buttons, 2–4pt art tiles, 6pt the buy card — no pills, no big radii
|
|
371
|
+
9. The playing track is teal + 700 in the tracklist; numerals are tabular everywhere
|
|
372
|
+
10. Text is `#1A1A1A` ink, never pure black; in dark mode invert to `#101417` / `#EDF1F3` and shift teal to `#3DB5D6` — art stays full-color
|