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,351 @@
|
|
|
1
|
+
# Design System Inspiration of TIDAL (iOS)
|
|
2
|
+
|
|
3
|
+
## 1. Visual Theme & Atmosphere
|
|
4
|
+
|
|
5
|
+
TIDAL's iOS app is the most austere player in music streaming, and that austerity is the brand. The canvas is pure black (`#000000`) — not the softened "not-quite-black" of competitors, but true OLED black that makes album art appear to float in a void. Surfaces step up only barely (`#0A0A0A`, `#1A1A1A`), so the interface reads as a single dark sheet with content punched into it. The visual philosophy is editorial and gallery-like: square album tiles, generous negative space, monochrome chrome, and a refusal to decorate. TIDAL positions itself as the audiophile's service, and the UI behaves like high-end audio hardware — matte black, minimal indicators, nothing superfluous.
|
|
6
|
+
|
|
7
|
+
The accent system is two-tone and deliberate. White (`#FFFFFF`) is the primary actionable color — the play button, primary CTAs, active states. The single chromatic accent is **HiFi cyan** (`#00FFFF`), reserved almost exclusively for quality-tier signaling: the "Master", "HiFi", and "Max" badges that indicate lossless and hi-res audio. When you see cyan in TIDAL, it means *fidelity* — it is the visual language of the product's core differentiator. A pressed cyan (`#00CCCC`) handles tap-down on the rare cyan controls. There is no third color. Secondary text sits in a cool gray (`#9A9A9A`).
|
|
8
|
+
|
|
9
|
+
Typography is a geometric sans — TIDAL's brand favors a clean, slightly mechanical grotesque (Space Grotesk is the closest free analog; the system font is the production fallback). Weights stay at 400 / 600 / 700. The type is confident and tightly tracked at display sizes, neutral at body. There are no playful flourishes. The most expressive typographic moment is the now-playing full-bleed screen, where the track title sits large (24-28pt) over a darkened crop of the album art with a quality badge pinned beside it.
|
|
10
|
+
|
|
11
|
+
**Key Characteristics:**
|
|
12
|
+
- Pure black canvas (`#000000`) — true OLED black, not softened
|
|
13
|
+
- White as the primary action color; **HiFi cyan** (`#00FFFF`) reserved for quality-tier badges
|
|
14
|
+
- Quality badges (Master / HiFi / Max) as the signature element — fidelity made visible
|
|
15
|
+
- Square album tiles in a gallery-like, high-negative-space grid
|
|
16
|
+
- Full-bleed now-playing screen with a darkened album-art backdrop
|
|
17
|
+
- Geometric sans typography (Space Grotesk analog), weights 400/600/700
|
|
18
|
+
- Mix rows and editorial shelves — "My Mix", "Suggested New Tracks"
|
|
19
|
+
- Dark-only — there is no light mode; the void is the brand
|
|
20
|
+
|
|
21
|
+
## 2. Color Palette & Roles
|
|
22
|
+
|
|
23
|
+
### Primary
|
|
24
|
+
- **TIDAL White** (`#FFFFFF`): Primary action color — play button, primary CTAs, active tab, active toggles, primary text.
|
|
25
|
+
- **HiFi Cyan** (`#00FFFF`): The single accent — Master / HiFi / Max quality badges, lossless emphasis, the rare highlighted control.
|
|
26
|
+
- **Cyan Pressed** (`#00CCCC`): Tap-down state for cyan controls.
|
|
27
|
+
|
|
28
|
+
### Canvas & Surfaces
|
|
29
|
+
- **Canvas Black** (`#000000`): Primary canvas — true OLED black, the entire app background.
|
|
30
|
+
- **Surface 1** (`#0A0A0A`): Cards, list rows, search field — barely lifted off black.
|
|
31
|
+
- **Surface 2** (`#1A1A1A`): Sheets, modals, pressed rows, elevated panels.
|
|
32
|
+
- **Divider** (`#262626`): Hairline dividers between list rows and sections.
|
|
33
|
+
|
|
34
|
+
### Text
|
|
35
|
+
- **Text Primary** (`#FFFFFF`): Track titles, screen headlines, primary UI text.
|
|
36
|
+
- **Text Secondary** (`#9A9A9A`): Artist names, durations, metadata, section subtitles.
|
|
37
|
+
- **Text Tertiary** (`#5C5C5C`): Disabled state, very low-emphasis labels.
|
|
38
|
+
|
|
39
|
+
### Semantic
|
|
40
|
+
- **Quality Cyan** (`#00FFFF`): Master / HiFi / Max badge text and outline.
|
|
41
|
+
- **Favorite White** (`#FFFFFF`): Heart filled when a track is favorited (white, not cyan — cyan is fidelity-only).
|
|
42
|
+
- **Now-Playing Backdrop**: A darkened, blurred crop of the current album art layered under `rgba(0,0,0,0.6)` so foreground text stays legible.
|
|
43
|
+
- **Error Red** (`#FF453A`): Playback errors, connection-lost states.
|
|
44
|
+
|
|
45
|
+
### Light Mode
|
|
46
|
+
TIDAL's iOS app is dark-only by design. There is no light variant — the pure-black void is the brand's identity and the optimal surface for album-art presentation and OLED power efficiency.
|
|
47
|
+
|
|
48
|
+
## 3. Typography Rules
|
|
49
|
+
|
|
50
|
+
### Font Family
|
|
51
|
+
- **Primary**: TIDAL's brand geometric sans (a clean mechanical grotesque)
|
|
52
|
+
- **Web / System Fallback**: `Space Grotesk` — the closest free geometric grotesque
|
|
53
|
+
- **Production Fallback**: `-apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif`
|
|
54
|
+
- **Numerics**: Tabular figures for durations and track numbers so scrubber digits don't shift
|
|
55
|
+
|
|
56
|
+
### Hierarchy
|
|
57
|
+
|
|
58
|
+
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
|
59
|
+
|------|------|------|--------|-------------|----------------|-------|
|
|
60
|
+
| Screen Title (Large) | Space Grotesk | 28pt | 700 | 1.15 | -0.4pt | "My Collection", "Search" large title |
|
|
61
|
+
| Now Playing Track | Space Grotesk | 24pt | 700 | 1.2 | -0.3pt | Current track on full-bleed player |
|
|
62
|
+
| Section Header | Space Grotesk | 22pt | 700 | 1.2 | -0.3pt | "My Mix", "Suggested New Tracks" |
|
|
63
|
+
| Album / Artist Title | Space Grotesk | 20pt | 700 | 1.2 | -0.2pt | Album detail / artist hero name |
|
|
64
|
+
| Track Title | Space Grotesk | 16pt | 600 | 1.3 | 0pt | Track row primary line |
|
|
65
|
+
| Card Title | Space Grotesk | 15pt | 600 | 1.3 | 0pt | Album / mix tile title |
|
|
66
|
+
| Artist / Subtitle | Space Grotesk | 14pt | 400 | 1.3 | 0pt | Artist name on rows |
|
|
67
|
+
| Body | Space Grotesk | 15pt | 400 | 1.45 | 0pt | Album notes, bios |
|
|
68
|
+
| Meta / Count | Space Grotesk | 12pt | 400 | 1.3 | 0pt | "14 tracks · 58 min" |
|
|
69
|
+
| Quality Badge | Space Grotesk | 10pt | 700 | 1.0 | 1.0pt | "MASTER" / "HIFI" / "MAX", all-caps cyan |
|
|
70
|
+
| Label (UPPER) | Space Grotesk | 11pt | 700 | 1.2 | 0.8pt | "EXCLUSIVE", section eyebrow |
|
|
71
|
+
| Button (Primary) | Space Grotesk | 15pt | 700 | 1.0 | 0.3pt | White "Play" / "Follow" pill |
|
|
72
|
+
| Button (Secondary) | Space Grotesk | 14pt | 600 | 1.0 | 0pt | Outline "Following" |
|
|
73
|
+
| Tab Label | Space Grotesk | 10pt | 600 | 1.0 | 0.3pt | Bottom tab bar labels |
|
|
74
|
+
| Timestamp | Space Grotesk | 11pt | 600 | 1.0 | 0pt | Scrubber 1:23 / -2:09, tabular |
|
|
75
|
+
|
|
76
|
+
### Principles
|
|
77
|
+
- **Weights concentrated at 400 / 600 / 700**: Regular, semibold, bold — no thin, no black
|
|
78
|
+
- **Tight tracking on display type** (-0.2 to -0.4pt on titles); body sits at 0pt
|
|
79
|
+
- **Quality badges are uppercase with +1.0pt tracking** — the mechanical, technical voice
|
|
80
|
+
- **Tabular numerals on durations and track numbers**
|
|
81
|
+
- **Dynamic Type respected on titles, artists, body**; quality badges, timestamps, tab labels stay fixed
|
|
82
|
+
|
|
83
|
+
## 4. Component Stylings
|
|
84
|
+
|
|
85
|
+
### Buttons
|
|
86
|
+
|
|
87
|
+
**Primary Play Button (Now Playing)**
|
|
88
|
+
- Shape: Circle, diameter 64pt (56pt on compact headers)
|
|
89
|
+
- Background: `#FFFFFF`
|
|
90
|
+
- Icon: SF Symbol `play.fill` / `pause.fill` in `#000000`, 26pt
|
|
91
|
+
- Pressed: scale 0.93, background `#E5E5E5`, with `.impactOccurred(.medium)` haptic
|
|
92
|
+
- Shadow: none (TIDAL is flat — the white circle on black is contrast enough)
|
|
93
|
+
|
|
94
|
+
**Primary Pill (Play / Follow)**
|
|
95
|
+
- Background: `#FFFFFF`
|
|
96
|
+
- Text: `#000000`
|
|
97
|
+
- Padding: 11pt vertical, 32pt horizontal
|
|
98
|
+
- Corner radius: 500pt (full pill)
|
|
99
|
+
- Font: Space Grotesk 15pt weight 700, +0.3pt tracking
|
|
100
|
+
- Pressed: `#E5E5E5`, scale 0.97
|
|
101
|
+
|
|
102
|
+
**Outline Pill ("Following" / "In My Collection")**
|
|
103
|
+
- Background: transparent
|
|
104
|
+
- Text: `#FFFFFF`
|
|
105
|
+
- Border: 1pt solid `#9A9A9A`
|
|
106
|
+
- Padding: 11pt vertical, 24pt horizontal
|
|
107
|
+
- Corner radius: 500pt
|
|
108
|
+
- Font: Space Grotesk 14pt weight 600
|
|
109
|
+
- Pressed: border `#FFFFFF`
|
|
110
|
+
|
|
111
|
+
**Icon Actions (Favorite, Shuffle, Repeat, Add, Share, More)**
|
|
112
|
+
- Size: 22pt glyph, 44pt hit area
|
|
113
|
+
- Default: `#9A9A9A`
|
|
114
|
+
- Active: `#FFFFFF` (favorited, shuffle on, repeat on) — never cyan; cyan is fidelity-only
|
|
115
|
+
- Spacing: 28pt between icons in the now-playing action row
|
|
116
|
+
|
|
117
|
+
**Text Button ("See all", "More")**
|
|
118
|
+
- Font: Space Grotesk 14pt weight 700
|
|
119
|
+
- Color: `#9A9A9A`
|
|
120
|
+
- No underline, 44pt hit area
|
|
121
|
+
|
|
122
|
+
### Cards & Containers
|
|
123
|
+
|
|
124
|
+
**Album / Mix Tile (Horizontal shelf)**
|
|
125
|
+
- Width: 150pt
|
|
126
|
+
- Aspect: 1:1 square art, **0pt corner radius** (TIDAL keeps art square — no softening)
|
|
127
|
+
- Gap between tiles: 16pt
|
|
128
|
+
- Structure: art → quality badge overlay (top-left of art if Master/Max) → title (15pt 600, 2-line clamp) → subtitle (12pt 400 `#9A9A9A`)
|
|
129
|
+
- Tap: scale 0.97 with light haptic
|
|
130
|
+
|
|
131
|
+
**Track Row**
|
|
132
|
+
- Height: 60pt
|
|
133
|
+
- Layout: 44pt × 44pt square album thumbnail (0pt radius) → stacked title (16pt 600) + artist (14pt 400 `#9A9A9A`) → trailing quality badge (if hi-res) + duration (11pt 600 `#9A9A9A`, tabular) + 20pt ellipsis
|
|
134
|
+
- Background: canvas `#000000`; pressed: `#1A1A1A`
|
|
135
|
+
- Currently-playing row: title turns `#FFFFFF` bold, a small white equalizer animates left of the thumbnail
|
|
136
|
+
|
|
137
|
+
**Now Playing (Full Screen)**
|
|
138
|
+
- Full-bleed darkened crop of the album art as the backdrop, `rgba(0,0,0,0.6)` scrim
|
|
139
|
+
- Centered square album art ~320pt × 320pt, 0pt corner radius, no shadow (flat — the void provides separation)
|
|
140
|
+
- Below art: track title (24pt 700) + a cyan quality badge inline + artist (14pt 400 `#9A9A9A`)
|
|
141
|
+
- Scrubber: 2pt track `#5C5C5C`, `#FFFFFF` fill, 14pt circular white thumb
|
|
142
|
+
- Transport row: shuffle · previous · 64pt white Play · next · repeat
|
|
143
|
+
- Action bar: favorite · add to collection · credits · share · more
|
|
144
|
+
|
|
145
|
+
**Quality Detail Sheet**
|
|
146
|
+
- Bottom sheet, 14pt top corner radius, surface `#1A1A1A`
|
|
147
|
+
- Lists the streamed format ("FLAC 24-bit / 96 kHz") with a large cyan quality badge at the top
|
|
148
|
+
- Cyan is used here for the badge and the active "Max" selection only
|
|
149
|
+
|
|
150
|
+
### Navigation
|
|
151
|
+
|
|
152
|
+
**Bottom Tab Bar**
|
|
153
|
+
- Height: 52pt + safe area
|
|
154
|
+
- Background: `rgba(0,0,0,0.96)` with `.regularMaterial` blur (reads near-opaque on black)
|
|
155
|
+
- Tabs: Home, Videos, Search, My Collection
|
|
156
|
+
- Icon size: 24pt
|
|
157
|
+
- Active color: `#FFFFFF`; inactive: `#9A9A9A`
|
|
158
|
+
- Labels: Space Grotesk 10pt weight 600, shown always
|
|
159
|
+
- Active icon: filled SF Symbol variant; inactive: outlined
|
|
160
|
+
|
|
161
|
+
**Now Playing Mini Bar**
|
|
162
|
+
- Sits directly above the tab bar, full width, 52pt tall
|
|
163
|
+
- Background: `#1A1A1A`
|
|
164
|
+
- Left: 40pt square art (0pt radius); center: title 14pt 600 + artist 11pt 400 `#9A9A9A`; a small cyan quality badge trails the title if hi-res
|
|
165
|
+
- Right: `play.fill` / `pause.fill` 20pt
|
|
166
|
+
- A 1pt `#FFFFFF` progress hairline pinned to the very top edge of the mini bar
|
|
167
|
+
- Tap: expands to full-bleed Now Playing with a shared-element transition
|
|
168
|
+
|
|
169
|
+
**Top Nav (Profile / Home Entry)**
|
|
170
|
+
- Height: 44pt + safe area
|
|
171
|
+
- Avatar (28pt circular) top-left, screen title centered (22pt 700), settings/cast top-right
|
|
172
|
+
- Filter chips row below on My Collection (32pt height pills)
|
|
173
|
+
|
|
174
|
+
### Input Fields
|
|
175
|
+
|
|
176
|
+
**Search Bar**
|
|
177
|
+
- Background: `#1A1A1A`
|
|
178
|
+
- Height: 40pt
|
|
179
|
+
- Corner radius: 500pt (full pill)
|
|
180
|
+
- Leading SF Symbol `magnifyingglass`, 18pt, `#9A9A9A`
|
|
181
|
+
- Placeholder: "Artists, tracks, playlists…", 16pt 400 `#9A9A9A`
|
|
182
|
+
- Focus: no border change, cursor white
|
|
183
|
+
- Text in field: `#FFFFFF`
|
|
184
|
+
|
|
185
|
+
**Filter Chip**
|
|
186
|
+
- Background: `#1A1A1A` default / `#FFFFFF` selected
|
|
187
|
+
- Text: `#FFFFFF` default / `#000000` selected
|
|
188
|
+
- Padding: 8pt vertical, 18pt horizontal
|
|
189
|
+
- Corner radius: 500pt (full pill)
|
|
190
|
+
- Font: Space Grotesk 14pt weight 600
|
|
191
|
+
- Examples: "All", "Albums", "Tracks", "Playlists", "Videos"
|
|
192
|
+
|
|
193
|
+
### Distinctive Components
|
|
194
|
+
|
|
195
|
+
**Quality-Tier Badge**
|
|
196
|
+
- A small pill or bracket-framed label: `MASTER`, `HIFI`, `MAX`, `DOLBY ATMOS`
|
|
197
|
+
- Text: `#00FFFF` (cyan), 10pt 700, +1.0pt tracking, uppercase
|
|
198
|
+
- Style: 1pt cyan hairline border, transparent fill, ~4pt corner radius, 4pt vertical / 8pt horizontal padding
|
|
199
|
+
- Appears: on track rows (trailing), on album tiles (overlaid top-left of art), inline beside the now-playing title, and in the quality detail sheet
|
|
200
|
+
- This is TIDAL's signature visual — fidelity is the product, so the badge is everywhere fidelity exists
|
|
201
|
+
|
|
202
|
+
**Full-Bleed Now Playing Backdrop**
|
|
203
|
+
- The current album art is cropped to fill, heavily darkened (`rgba(0,0,0,0.6)`) and slightly blurred behind the foreground
|
|
204
|
+
- The crisp square album art sits centered on top — a "picture within the picture"
|
|
205
|
+
- No color extraction (unlike competitors) — TIDAL keeps the backdrop monochrome-dark for editorial restraint
|
|
206
|
+
|
|
207
|
+
**My Mix Row (Editorial Shelf)**
|
|
208
|
+
- Section eyebrow (11pt 700 upper `#9A9A9A`) + title (22pt 700 white)
|
|
209
|
+
- Horizontal scroll of square tiles; Mix tiles often carry a subtle generated-gradient cover with the mix name overlaid
|
|
210
|
+
- Ends with a peek-edge tile to signal scroll
|
|
211
|
+
|
|
212
|
+
**Equalizer (Currently Playing)**
|
|
213
|
+
- 3-bar animated equalizer to the left of the playing track's thumbnail
|
|
214
|
+
- Bar width 3pt, gap 2pt, color `#FFFFFF` (white, not cyan)
|
|
215
|
+
- Freezes when paused
|
|
216
|
+
|
|
217
|
+
## 5. Layout Principles
|
|
218
|
+
|
|
219
|
+
### Spacing System
|
|
220
|
+
- Base unit: 4pt
|
|
221
|
+
- Scale: 4, 8, 12, 16, 20, 24, 28, 32, 40, 56, 64
|
|
222
|
+
- Standard margin: 16pt horizontal, 24pt between shelves
|
|
223
|
+
- Track row internal padding: 8pt vertical, 16pt horizontal
|
|
224
|
+
|
|
225
|
+
### Grid & Container
|
|
226
|
+
- Content width: full device width with 16pt horizontal margins
|
|
227
|
+
- Horizontal shelves: 16pt left inset, last tile peeks at the right edge
|
|
228
|
+
- Collection grid: 2-column square grid, 16pt gap (more air than competitors)
|
|
229
|
+
|
|
230
|
+
### Whitespace Philosophy
|
|
231
|
+
- **Gallery-like negative space**: TIDAL deliberately gives content room — fewer items per screen than rivals, more black around each
|
|
232
|
+
- **Square integrity**: album art is never rounded — the square is part of the editorial, hardware-like aesthetic
|
|
233
|
+
- **The void separates**: with no shadows, the pure-black canvas itself is the separation between elements
|
|
234
|
+
|
|
235
|
+
### Border Radius Scale
|
|
236
|
+
- Square (0pt): ALL album art, tiles, thumbnails — TIDAL's signature
|
|
237
|
+
- Badge (4pt): quality badges
|
|
238
|
+
- Comfortable (14pt): bottom sheets, modals
|
|
239
|
+
- Full Pill (500pt): primary CTAs, filter chips, search bar
|
|
240
|
+
- Circle (50%): play button, avatars, tab icons
|
|
241
|
+
|
|
242
|
+
## 6. Depth & Elevation
|
|
243
|
+
|
|
244
|
+
| Level | Treatment | Use |
|
|
245
|
+
|-------|-----------|-----|
|
|
246
|
+
| Flat (Level 0) | No shadow | Everything — list rows, tiles, canvas, even Now Playing art |
|
|
247
|
+
| Surface Step (Level 1) | `#0A0A0A` (no shadow) | Cards/rows separated by a tonal step, not elevation |
|
|
248
|
+
| Sheet (Level 2) | `#1A1A1A` + `rgba(0,0,0,0.8) 0 -8px 32px` | Bottom sheets, quality detail sheet (the only real shadow) |
|
|
249
|
+
| Scrim | `rgba(0,0,0,0.6)` over blurred art | Now Playing backdrop legibility |
|
|
250
|
+
| Tab Bar Material | `.regularMaterial` over 96%-opaque black | Bottom tab bar over scrolling content |
|
|
251
|
+
|
|
252
|
+
**Shadow Philosophy**: TIDAL is radically flat. On a pure-black canvas, shadows are invisible anyway, so the design abandons them entirely and communicates hierarchy through tonal steps (`#000000` → `#0A0A0A` → `#1A1A1A`). The single exception is the bottom-sheet shadow, which uses an 80%-opacity dark blur to lift the sheet off the void. No element — not even the centered Now Playing album art — casts a shadow. The flatness *is* the premium, hardware-inspired aesthetic.
|
|
253
|
+
|
|
254
|
+
### Motion
|
|
255
|
+
- **Crossfade transitions**: screen and now-playing transitions use a minimal opacity crossfade (no slide, no bounce) — editorial restraint
|
|
256
|
+
- **Play button tap**: scale 0.93 → 1.0 spring (damping 0.75), `.impactOccurred(.medium)` haptic
|
|
257
|
+
- **Scrubber drag**: 1pt → 3pt track-height grow while scrubbing, light haptic tick
|
|
258
|
+
- **Equalizer bars**: continuous white vertical scale animation tied to playback
|
|
259
|
+
- **Mini-bar → Full player**: shared-element 0.3s crossfade, album art is the anchor (fades, does not spring)
|
|
260
|
+
- **Favorite tap**: heart fill + subtle scale 1.0 → 1.12 → 1.0 over 260ms
|
|
261
|
+
|
|
262
|
+
## 7. Do's and Don'ts
|
|
263
|
+
|
|
264
|
+
### Do
|
|
265
|
+
- Use pure black `#000000` as the canvas — true OLED black, the brand identity
|
|
266
|
+
- Reserve HiFi cyan (`#00FFFF`) exclusively for quality-tier badges and lossless emphasis
|
|
267
|
+
- Make quality badges (Master / HiFi / Max) visible everywhere fidelity exists — it is the signature
|
|
268
|
+
- Keep album art perfectly square — 0pt corner radius, always
|
|
269
|
+
- Use white for all actions and active states — play, favorite, active tab
|
|
270
|
+
- Communicate elevation with tonal steps (`#0A0A0A`, `#1A1A1A`), not shadows
|
|
271
|
+
- Use a geometric sans (Space Grotesk fallback) at weights 400/600/700
|
|
272
|
+
- Use crossfade transitions — minimal, editorial, no spring or slide
|
|
273
|
+
- Give content gallery-like negative space — fewer items, more void
|
|
274
|
+
|
|
275
|
+
### Don't
|
|
276
|
+
- Don't soften the canvas to `#121212` — TIDAL is pure `#000000`
|
|
277
|
+
- Don't use cyan for play buttons, favorites, or active tabs — cyan means *fidelity only*
|
|
278
|
+
- Don't round album art — the square is the editorial signature
|
|
279
|
+
- Don't add drop shadows — the flat void is the premium aesthetic (sheets excepted)
|
|
280
|
+
- Don't extract color from album art for backdrops — keep the now-playing backdrop monochrome-dark
|
|
281
|
+
- Don't add a second accent color — white + cyan is the entire system
|
|
282
|
+
- Don't use thin or black font weights
|
|
283
|
+
- Don't animate with bounce or slide — crossfade only
|
|
284
|
+
- Don't crowd the grid — TIDAL's negative space is intentional
|
|
285
|
+
|
|
286
|
+
## 8. Responsive Behavior
|
|
287
|
+
|
|
288
|
+
### Device Sizes
|
|
289
|
+
| Device | Width | Key Changes |
|
|
290
|
+
|--------|-------|-------------|
|
|
291
|
+
| iPhone SE (3rd gen) | 375pt | 130pt shelf tiles; Now Playing art 280pt |
|
|
292
|
+
| iPhone 13/14/15 | 390pt | Standard 150pt tiles; art 320pt |
|
|
293
|
+
| iPhone 15/16 Pro | 393pt | Dynamic Island accommodated in top nav |
|
|
294
|
+
| iPhone 15/16 Pro Max | 430pt | 170pt tiles; Now Playing art 360pt |
|
|
295
|
+
| iPad | 768pt+ | 3-column grid; Now Playing art 480pt, controls centered |
|
|
296
|
+
|
|
297
|
+
### Dynamic Type
|
|
298
|
+
- Track titles, artist names, body, section headers: full scale
|
|
299
|
+
- Quality badges: fixed 10pt (never scales — the badge geometry is exact)
|
|
300
|
+
- Scrubber timestamps: fixed 11pt
|
|
301
|
+
- Play button: icon size fixed (26pt)
|
|
302
|
+
- Tab labels: fixed 10pt
|
|
303
|
+
|
|
304
|
+
### Orientation
|
|
305
|
+
- Home / Videos / Search / My Collection: **portrait-locked**
|
|
306
|
+
- Now Playing: **portrait-locked**
|
|
307
|
+
- Video content: **rotates to landscape** (TIDAL hosts music videos and live sets)
|
|
308
|
+
|
|
309
|
+
### Touch Targets
|
|
310
|
+
- Play button: 64pt — unmissable
|
|
311
|
+
- Track rows: 60pt height, full-row tappable
|
|
312
|
+
- Quality badge: visual 10pt, but tappable 44pt area (opens quality detail sheet)
|
|
313
|
+
- Action icons: 22pt glyph, 44pt hit area
|
|
314
|
+
- Tab icons: 24pt glyph, 44pt effective hit
|
|
315
|
+
|
|
316
|
+
### Safe Area Handling
|
|
317
|
+
- Top: safe area honored on nav (Dynamic Island clears the title)
|
|
318
|
+
- Bottom: mini-bar floats above tab bar; both respect the home indicator
|
|
319
|
+
- Sides: 16pt content insets
|
|
320
|
+
|
|
321
|
+
## 9. Agent Prompt Guide
|
|
322
|
+
|
|
323
|
+
### Quick Color Reference
|
|
324
|
+
- Canvas: `#000000` (pure black — not `#121212`)
|
|
325
|
+
- Surface 1 (cards): `#0A0A0A`
|
|
326
|
+
- Surface 2 (sheets): `#1A1A1A`
|
|
327
|
+
- Divider: `#262626`
|
|
328
|
+
- Text primary: `#FFFFFF`
|
|
329
|
+
- Text secondary: `#9A9A9A`
|
|
330
|
+
- Text tertiary: `#5C5C5C`
|
|
331
|
+
- TIDAL White (action): `#FFFFFF`
|
|
332
|
+
- HiFi Cyan (quality only): `#00FFFF`
|
|
333
|
+
- Cyan pressed: `#00CCCC`
|
|
334
|
+
- Error red: `#FF453A`
|
|
335
|
+
|
|
336
|
+
### Example Component Prompts
|
|
337
|
+
- "Create a SwiftUI TIDAL track row: 60pt height, 44×44pt square album art (0pt corner radius — never rounded) leading, stacked title 'Black Skinhead' in Space Grotesk 16pt weight 600 #FFFFFF + artist 'Kanye West' in 14pt weight 400 #9A9A9A. Trailing: a cyan 'MASTER' quality badge (10pt 700, 1pt #00FFFF border, transparent fill, +1pt tracking), then duration '3:08' in 11pt weight 600 #9A9A9A tabular, then a 20pt ellipsis. Pressed background #1A1A1A."
|
|
338
|
+
- "Build the TIDAL Now Playing play button: 64pt circular button, #FFFFFF background, SF Symbol 'play.fill' 26pt in #000000, NO shadow (TIDAL is flat). Pressed: scale 0.93 with medium haptic, background #E5E5E5."
|
|
339
|
+
- "Design the TIDAL full-bleed Now Playing screen: backdrop is the album art cropped to fill, blurred and darkened under rgba(0,0,0,0.6). A crisp 320×320pt square album art (0pt radius, no shadow) centered on top. Below: track title 24pt weight 700 #FFFFFF with an inline cyan 'MAX' quality badge, artist 14pt weight 400 #9A9A9A. Scrubber: 2pt #5C5C5C track, #FFFFFF fill, 14pt white thumb. Canvas pure #000000."
|
|
340
|
+
- "Create a TIDAL quality-tier badge: text 'HIFI' in Space Grotesk 10pt weight 700, color #00FFFF, +1pt letter-spacing, uppercase. 1pt solid #00FFFF border, transparent fill, 4pt corner radius, 4pt vertical / 8pt horizontal padding. Used wherever lossless audio exists."
|
|
341
|
+
- "Build the TIDAL Now Playing mini bar: above the tab bar, 52pt tall, background #1A1A1A, a 1pt #FFFFFF progress hairline pinned to the top edge. 40×40pt square art (0pt radius) left, title 14pt weight 600 + a small cyan 'MASTER' badge trailing it, artist 11pt weight 400 #9A9A9A, trailing play/pause 20pt. Tap expands to full-bleed Now Playing with a crossfade."
|
|
342
|
+
|
|
343
|
+
### Iteration Guide
|
|
344
|
+
1. Canvas is pure `#000000` — true OLED black, NOT softened to `#121212`
|
|
345
|
+
2. White is the action color; HiFi cyan (`#00FFFF`) is reserved exclusively for quality-tier badges
|
|
346
|
+
3. Quality badges (Master / HiFi / Max) are the signature — render them everywhere fidelity exists
|
|
347
|
+
4. Album art is always square — 0pt corner radius, no exceptions
|
|
348
|
+
5. The app is radically flat — no shadows; communicate elevation with tonal steps `#0A0A0A` / `#1A1A1A`
|
|
349
|
+
6. Typography: geometric sans (Space Grotesk fallback), weights 400/600/700, tabular numerals
|
|
350
|
+
7. Transitions are crossfades — minimal, editorial, never bounce or slide
|
|
351
|
+
8. Dark-only — there is no light mode; give content gallery-like negative space
|