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,338 @@
|
|
|
1
|
+
# Design System Inspiration of Bluesky (iOS)
|
|
2
|
+
|
|
3
|
+
## 1. Visual Theme & Atmosphere
|
|
4
|
+
|
|
5
|
+
Bluesky's iOS app is a clean, friendly, sky-bright timeline that feels open and uncluttered. The default light surface is pure white (`#FFFFFF`) with near-black text (`#0B0F14`), and it offers two darker variants: a soft "Dim" mode on a desaturated slate (`#1E2936`) and a deep "Dark" mode (`#0B0F14`). The triple-theme choice is a deliberate accessibility-and-comfort gesture — Bluesky wants you to pick the brightness that suits your eyes, not impose one. Across all three, the timeline is a quiet column of skeet cards separated by hairline dividers, with content given room to breathe.
|
|
6
|
+
|
|
7
|
+
The accent system is anchored by Bluesky Blue (`#1185FE`) — a confident, slightly electric sky-blue used for links, the active tab, the compose FAB, primary buttons, and the butterfly logomark. Its pressed state deepens to `#0F6FD6`. The single most expressive interaction is the like: a heart that does a springy pop-scale (and a small color fill to the same blue family) when tapped — light, joyful, and instantly legible. The other signature is structural rather than chromatic: a row of pinned, switchable custom-feed tabs at the very top of Home ("Following", "Discover", and any algorithmic feeds you've pinned), making the feed itself a first-class, user-controlled object.
|
|
8
|
+
|
|
9
|
+
Typography is the system font (San Francisco) at comfortable reading sizes, mapped to an Inter fallback for cross-platform parity. Skeet bodies sit at 15pt with generous line height; display names are 15pt semibold; handles (`@user.bsky.social`) are 14pt in muted gray. The butterfly logo and the pinned-feed selector are the two identity anchors a user sees first. There are no heavy shadows, no skeuomorphism — just clean type, a single bright accent, and a layout that makes the user's choice of feed and theme the center of the experience.
|
|
10
|
+
|
|
11
|
+
**Key Characteristics:**
|
|
12
|
+
- Triple theme: Light `#FFFFFF` / Dim `#1E2936` / Dark `#0B0F14` — user picks comfort level
|
|
13
|
+
- Bluesky Blue (`#1185FE`) for links, active tab, compose FAB, primary actions, butterfly logo
|
|
14
|
+
- Like = heart pop-scale spring — the joyful signature gesture
|
|
15
|
+
- Pinned custom-feed selector tabs at the top of Home — the feed is user-controlled
|
|
16
|
+
- Skeet card action row: Reply · Repost · Like · Share, evenly spaced
|
|
17
|
+
- Reply-controls chip on the composer (who can reply)
|
|
18
|
+
- Butterfly logomark as the brand anchor
|
|
19
|
+
- System font at reading sizes (15pt body), Inter fallback
|
|
20
|
+
- Bottom tabs (Home / Search / Notifications / Chat / Profile) + compose FAB
|
|
21
|
+
|
|
22
|
+
## 2. Color Palette & Roles
|
|
23
|
+
|
|
24
|
+
### Primary
|
|
25
|
+
- **Bluesky Blue** (`#1185FE`): Links, active tab tint, compose FAB, primary button fill, butterfly logo, mentions/hashtags.
|
|
26
|
+
- **Blue Pressed** (`#0F6FD6`): Active/pressed state for blue CTAs and the FAB.
|
|
27
|
+
- **Like Red** (`#EC4899`): The heart's liked fill — a warm pink-red that pops against the blue UI.
|
|
28
|
+
|
|
29
|
+
### Light Mode (Default)
|
|
30
|
+
- **Canvas** (`#FFFFFF`): Primary background, timeline surface.
|
|
31
|
+
- **Surface 1** (`#F1F3F5`): Cards-as-rows, search field, grouped settings.
|
|
32
|
+
- **Surface 2** (`#E2E8F0`): Pressed rows, chip backgrounds, hover-equivalent.
|
|
33
|
+
- **Divider** (`#E2E8F0`): Hairline separators between skeets.
|
|
34
|
+
- **Text Primary** (`#0B0F14`): Skeet body, display names, headlines.
|
|
35
|
+
- **Text Secondary** (`#697787`): Handles, timestamps, metadata, counts.
|
|
36
|
+
- **Text Tertiary** (`#8B98A5`): Disabled labels, low-emphasis hints.
|
|
37
|
+
|
|
38
|
+
### Dim Mode
|
|
39
|
+
- **Dim Canvas** (`#1E2936`): Primary background — a soft desaturated slate.
|
|
40
|
+
- **Dim Surface 1** (`#27313E`): Cards-as-rows, elevated areas.
|
|
41
|
+
- **Dim Surface 2** (`#2E4052`): Pressed rows, chips.
|
|
42
|
+
- **Dim Divider** (`#2E4052`): Hairline separators.
|
|
43
|
+
- **Dim Text Primary** (`#F1F3F5`): Body, names.
|
|
44
|
+
- **Dim Text Secondary** (`#9CA6B5`): Handles, metadata.
|
|
45
|
+
|
|
46
|
+
### Dark Mode
|
|
47
|
+
- **Dark Canvas** (`#0B0F14`): Primary background — deep near-black slate.
|
|
48
|
+
- **Dark Surface 1** (`#161E27`): Cards-as-rows.
|
|
49
|
+
- **Dark Surface 2** (`#1E2936`): Pressed rows, sheets.
|
|
50
|
+
- **Dark Divider** (`#1E2936`): Hairline separators.
|
|
51
|
+
- **Dark Text Primary** (`#F1F3F5`): Body, names.
|
|
52
|
+
- **Dark Text Secondary** (`#8B98A5`): Handles, metadata.
|
|
53
|
+
|
|
54
|
+
### Semantic
|
|
55
|
+
- **Error Red** (`#EC4899`)/(`#E5484D`): Validation/destructive (`#E5484D`); like uses pink `#EC4899`.
|
|
56
|
+
- **Success Green** (`#2DBE85`): Posted/confirmed, follow-confirmed.
|
|
57
|
+
- **Warning Amber** (`#F5A623`): Content-label warnings, rate limits.
|
|
58
|
+
|
|
59
|
+
## 3. Typography Rules
|
|
60
|
+
|
|
61
|
+
### Font Family
|
|
62
|
+
- **Primary**: `SF Pro Text` / `SF Pro Display` (system) on iOS
|
|
63
|
+
- **Cross-platform parity**: `Inter` (web/Android reference)
|
|
64
|
+
- **Fallback Stack**: `-apple-system, BlinkMacSystemFont, 'Inter', 'SF Pro Text', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif`
|
|
65
|
+
- **Monospace**: `ui-monospace, 'SF Mono', Menlo, monospace`
|
|
66
|
+
|
|
67
|
+
### Hierarchy
|
|
68
|
+
|
|
69
|
+
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
|
70
|
+
|------|------|------|--------|-------------|----------------|-------|
|
|
71
|
+
| Screen Title (Large) | SF Pro Display | 28pt | 700 | 1.2 | -0.4pt | "Notifications", "Search" large nav title |
|
|
72
|
+
| Section Header | SF Pro Display | 21pt | 700 | 1.2 | -0.3pt | "Suggested for you", profile sections |
|
|
73
|
+
| Display Name | SF Pro Text | 15pt | 600 | 1.25 | -0.1pt | Poster's display name on a skeet |
|
|
74
|
+
| Skeet Body | SF Pro Text | 15pt | 400 | 1.4 | 0pt | The post text |
|
|
75
|
+
| Body (Settings) | SF Pro Text | 15pt | 400 | 1.4 | 0pt | Settings descriptions |
|
|
76
|
+
| Handle / Meta | SF Pro Text | 14pt | 400 | 1.3 | 0pt | `@user.bsky.social`, "2h", reply context |
|
|
77
|
+
| Feed Tab Label | SF Pro Text | 15pt | 600 | 1.2 | -0.1pt | "Following", "Discover" pinned-feed tabs |
|
|
78
|
+
| Action Count | SF Pro Text | 13pt | 500 | 1.2 | 0pt | Reply/repost/like numeric counts |
|
|
79
|
+
| Button (Primary) | SF Pro Text | 15pt | 600 | 1.0 | -0.1pt | "Post", "Follow" |
|
|
80
|
+
| Button (Secondary) | SF Pro Text | 14pt | 600 | 1.0 | 0pt | "Following", outline actions |
|
|
81
|
+
| Tab Label | SF Pro Text | 10pt | 600 | 1.0 | 0.1pt | Bottom tab bar labels |
|
|
82
|
+
| Reply Context | SF Pro Text | 13pt | 400 | 1.3 | 0pt | "Reply to @name" line above a skeet |
|
|
83
|
+
|
|
84
|
+
### Principles
|
|
85
|
+
- **Comfortable body at 15pt / 1.4**: readable without being heavy — Bluesky is conversational
|
|
86
|
+
- **Handle always visible**: `@user.bsky.social` is a 14pt structural element
|
|
87
|
+
- **Weight at 400 / 500 / 600 / 700**: regular body, medium counts, semibold names/feeds, bold titles
|
|
88
|
+
- **System font, Inter parity**: native iOS feel matching the web app's Inter rendering
|
|
89
|
+
- **Blue text only for links/mentions/hashtags** — body text never uses the accent
|
|
90
|
+
|
|
91
|
+
## 4. Component Stylings
|
|
92
|
+
|
|
93
|
+
### Buttons
|
|
94
|
+
|
|
95
|
+
**Primary Button ("Post" / "Follow")**
|
|
96
|
+
- Background: `#1185FE`
|
|
97
|
+
- Text: `#FFFFFF`
|
|
98
|
+
- Padding: 10pt vertical, 20pt horizontal
|
|
99
|
+
- Corner radius: 500pt (full pill — Bluesky favors pills for primary actions)
|
|
100
|
+
- Font: SF Pro Text 15pt weight 600
|
|
101
|
+
- Pressed: `#0F6FD6`, scale 0.97
|
|
102
|
+
- Disabled: `#1185FE` at 40% opacity
|
|
103
|
+
|
|
104
|
+
**Secondary / Following Button**
|
|
105
|
+
- Background: transparent
|
|
106
|
+
- Text: `#0B0F14` (light) / `#F1F3F5` (dark)
|
|
107
|
+
- Border: 1pt solid `#E2E8F0` (light) / `#2E4052` (dim/dark)
|
|
108
|
+
- Padding: 8pt vertical, 18pt horizontal
|
|
109
|
+
- Corner radius: 500pt
|
|
110
|
+
- Pressed: background `#F1F3F5`
|
|
111
|
+
|
|
112
|
+
**Compose FAB**
|
|
113
|
+
- Shape: Circle, 56pt diameter, bottom-right, 16pt from edges, floats above tab bar
|
|
114
|
+
- Background: `#1185FE`
|
|
115
|
+
- Icon: SF Symbol `square.and.pencil` 24pt in `#FFFFFF`
|
|
116
|
+
- Shadow: `rgba(17,133,254,0.35) 0 6px 20px`
|
|
117
|
+
- Pressed: scale 0.94, `#0F6FD6`, soft haptic
|
|
118
|
+
|
|
119
|
+
**Skeet Action Icons (Reply / Repost / Like / Share)**
|
|
120
|
+
- Size: 18pt glyph, 44pt hit area
|
|
121
|
+
- Default: `#697787` (light) / `#8B98A5` (dark)
|
|
122
|
+
- Repost active: `#2DBE85` (green)
|
|
123
|
+
- Like active: `#EC4899` (pink-red), with pop-scale spring + fill
|
|
124
|
+
- Spacing: evenly distributed across the card's content width
|
|
125
|
+
- Count: 13pt w500 trailing each icon when > 0
|
|
126
|
+
|
|
127
|
+
### Cards & Containers
|
|
128
|
+
|
|
129
|
+
**Skeet Card (THE core unit)**
|
|
130
|
+
- Background: matches canvas (flat, no shadow); separated by a 1pt divider
|
|
131
|
+
- Padding: 12pt vertical, 16pt horizontal
|
|
132
|
+
- Header: 42pt circular avatar → display name (15pt w600) + `@handle` (14pt `#697787`) + " · 2h" → trailing ⋯
|
|
133
|
+
- Reply context line above the header when applicable: "Reply to @name" 13pt `#697787`
|
|
134
|
+
- Body: 15pt w400, 1.4 line height; links/mentions/hashtags in `#1185FE`
|
|
135
|
+
- Embed: link card (rounded 12pt, thumbnail + title + domain) or media grid (12pt radius)
|
|
136
|
+
- Quote-skeet: a nested bordered card (1pt `#E2E8F0`, 12pt radius) inside the body
|
|
137
|
+
- Action row: Reply · Repost · Like · Share evenly spaced, counts trailing
|
|
138
|
+
|
|
139
|
+
**Pinned Custom-Feed Selector**
|
|
140
|
+
- A horizontally scrollable tab strip pinned at the very top of Home
|
|
141
|
+
- Tabs: "Following", "Discover", + any pinned algorithmic feeds
|
|
142
|
+
- Selected: `#1185FE` text with a 3pt rounded blue underline indicator
|
|
143
|
+
- Unselected: `#697787`
|
|
144
|
+
- Last tab is a "+" or feed-settings affordance to manage pinned feeds
|
|
145
|
+
- Switching slides the timeline with a 0.25s cross-fade
|
|
146
|
+
|
|
147
|
+
**Profile Header**
|
|
148
|
+
- Banner full-width, 130pt tall
|
|
149
|
+
- Avatar 80pt circular, overlapping the banner by 36pt, 4pt canvas-colored ring
|
|
150
|
+
- Display name 21pt w700, `@handle` 15pt `#697787`
|
|
151
|
+
- Bio with clickable mentions/hashtags in blue
|
|
152
|
+
- "Follow" pill primary + ⋯
|
|
153
|
+
- Followers / Following counts inline (15pt, count bold)
|
|
154
|
+
- Tab strip: Posts / Replies / Media / Likes / Feeds
|
|
155
|
+
|
|
156
|
+
**Notification Row**
|
|
157
|
+
- 42pt avatar(s) + actor name(s) + action ("liked your post", "reposted", "followed you")
|
|
158
|
+
- Type glyph tint: pink like heart, green repost, blue follow
|
|
159
|
+
- Tap opens the related skeet or profile
|
|
160
|
+
|
|
161
|
+
### Navigation
|
|
162
|
+
|
|
163
|
+
**Bottom Tab Bar**
|
|
164
|
+
- Height: 52pt + safe area
|
|
165
|
+
- Background: `rgba(255,255,255,0.94)` (light) / `rgba(11,15,20,0.94)` (dark) with `.regularMaterial` blur
|
|
166
|
+
- Tabs: Home, Search, Notifications, Chat, Profile
|
|
167
|
+
- Icon size: 26pt
|
|
168
|
+
- Active: `#1185FE`; Inactive: `#697787` (light) / `#8B98A5` (dark)
|
|
169
|
+
- Labels: SF Pro Text 10pt w600
|
|
170
|
+
- Notifications/Chat tabs show a blue unread dot/count badge
|
|
171
|
+
|
|
172
|
+
**Top Nav (Home)**
|
|
173
|
+
- Logo: butterfly mark centered or leading, `#1185FE`, 28pt
|
|
174
|
+
- Pinned-feed selector strip directly below
|
|
175
|
+
- Trailing settings/gear icon (22pt)
|
|
176
|
+
- Blur-on-scroll background
|
|
177
|
+
|
|
178
|
+
### Input Fields
|
|
179
|
+
|
|
180
|
+
**Search Field**
|
|
181
|
+
- Background: `#F1F3F5` (light) / `#1E2936` (dim) / `#161E27` (dark)
|
|
182
|
+
- Height: 40pt, corner radius 500pt (pill)
|
|
183
|
+
- Leading `magnifyingglass` 16pt `#697787`
|
|
184
|
+
- Placeholder: "Search", 15pt w400 `#697787`
|
|
185
|
+
- Focus: 1.5pt `#1185FE` ring
|
|
186
|
+
|
|
187
|
+
**Compose Editor**
|
|
188
|
+
- Full-screen sheet, plain text area at 18pt w400
|
|
189
|
+
- Character ring counter (300 default) that turns `#E5484D` past the limit
|
|
190
|
+
- Toolbar: media, GIF, alt-text, language, and a **reply-controls chip** above the keyboard
|
|
191
|
+
- Reply-controls chip: "Everybody can reply" → tap to restrict (Mentioned / Followed) — turns `#1185FE` when restricted
|
|
192
|
+
|
|
193
|
+
### Distinctive Components
|
|
194
|
+
|
|
195
|
+
**Switchable Custom Feeds**
|
|
196
|
+
- The pinned-feed selector is the signature: the timeline is not one algorithm — it's a user-curated set of feeds you tab between, treating "the feed" as a first-class, swappable object
|
|
197
|
+
|
|
198
|
+
**Like Pop**
|
|
199
|
+
- Tapping the heart fills it pink `#EC4899` and pop-scales 1.0 → 1.25 → 1.0 over ~300ms with a spring; un-liking scales back to outline
|
|
200
|
+
- Paired with a light impact haptic; the count rolls up by one
|
|
201
|
+
|
|
202
|
+
**Reply-Controls Chip**
|
|
203
|
+
- On the composer, an inline chip stating who can reply, echoing Bluesky's reply-gating model; blue when restricted — a visible consent control
|
|
204
|
+
|
|
205
|
+
**Butterfly Logomark**
|
|
206
|
+
- The brand anchor, rendered in `#1185FE`, used in the splash, the empty states, and the Home nav
|
|
207
|
+
|
|
208
|
+
## 5. Layout Principles
|
|
209
|
+
|
|
210
|
+
### Spacing System
|
|
211
|
+
- Base unit: 4pt
|
|
212
|
+
- Scale: 4, 8, 12, 16, 20, 24, 32, 40, 56
|
|
213
|
+
- Standard margin: 16pt horizontal on skeet cards
|
|
214
|
+
- Skeet vertical rhythm: 12pt top/bottom padding; cards separated by 1pt dividers
|
|
215
|
+
|
|
216
|
+
### Grid & Container
|
|
217
|
+
- Content width: full device width, 16pt internal padding
|
|
218
|
+
- Media grid: 1 image full-width 12pt radius; 2–4 in a 2-col 12pt-radius mosaic, 2pt gaps
|
|
219
|
+
- Link/quote embeds: full-width nested card, 12pt radius, 1pt border
|
|
220
|
+
|
|
221
|
+
### Whitespace Philosophy
|
|
222
|
+
- **Conversational, not dense**: 15pt body at 1.4 line height; cards have comfortable internal padding
|
|
223
|
+
- **Dividers, not boxes**: separation is a hairline — the timeline stays visually quiet
|
|
224
|
+
- **Feed selector is sticky**: the user's curated feeds are always one tap away at the top
|
|
225
|
+
|
|
226
|
+
### Border Radius Scale
|
|
227
|
+
- Square (0pt): Full-bleed banners only
|
|
228
|
+
- Soft (8pt): Small chips, inline tags
|
|
229
|
+
- Comfortable (12pt): Media attachments, link/quote embed cards
|
|
230
|
+
- Large (16pt): Bottom sheets, modals
|
|
231
|
+
- Full Pill (500pt): Primary/secondary buttons, search field, the feed-tab underline is rounded
|
|
232
|
+
- Circle (50%): Avatars, compose FAB, like/repost hit circles
|
|
233
|
+
|
|
234
|
+
## 6. Depth & Elevation
|
|
235
|
+
|
|
236
|
+
| Level | Treatment | Use |
|
|
237
|
+
|-------|-----------|-----|
|
|
238
|
+
| Flat (Level 0) | No shadow | Skeet cards, timeline, list rows |
|
|
239
|
+
| Card Hairline (Level 1) | 1pt divider per theme | Skeet-to-skeet separation |
|
|
240
|
+
| Embed Border (Level 1) | 1pt border, 12pt radius | Link cards, quote-skeets nested in body |
|
|
241
|
+
| FAB (Level 2) | `rgba(17,133,254,0.35) 0 6px 20px` | Floating compose button |
|
|
242
|
+
| Sheet (Level 3) | `rgba(0,0,0,0.15)` (light) / `rgba(0,0,0,0.5)` (dark) `0 -12px 40px` | Compose sheet, menus |
|
|
243
|
+
| Tab Bar Material | `.regularMaterial` over 94%-opaque canvas | Bottom tab bar over scrolling content |
|
|
244
|
+
|
|
245
|
+
**Shadow Philosophy**: Bluesky is flat by design — the timeline reads like a clean document. The only real elevation is the blue compose FAB (a brand-tinted shadow) and modal sheets. Cards and embeds use 1pt borders/dividers rather than drop shadows. In dark/dim modes, the sheet scrim deepens to 0.5; in light mode it stays barely-there at 0.15. The brightness comes from the canvas and the single blue accent, not from lighting.
|
|
246
|
+
|
|
247
|
+
### Motion
|
|
248
|
+
- **Like pop**: heart fills `#EC4899` and scales 1.0 → 1.25 → 1.0 over ~300ms spring, light haptic, count rolls
|
|
249
|
+
- **Repost**: icon turns `#2DBE85` with a quick 1.0 → 1.1 → 1.0 bounce, success haptic
|
|
250
|
+
- **Feed switch**: 0.25s cross-fade + small horizontal nudge between pinned feeds
|
|
251
|
+
- **Compose FAB**: scale 0.94 on press, soft haptic; sheet presents with a 0.35s spring
|
|
252
|
+
- **Theme switch**: instant token swap with a 0.2s color cross-fade across surfaces
|
|
253
|
+
- **Pull-to-refresh**: standard system spinner, no custom flourish
|
|
254
|
+
|
|
255
|
+
## 7. Do's and Don'ts
|
|
256
|
+
|
|
257
|
+
### Do
|
|
258
|
+
- Offer all three themes: Light `#FFFFFF`, Dim `#1E2936`, Dark `#0B0F14`
|
|
259
|
+
- Reserve Bluesky Blue (`#1185FE`) for links, mentions, hashtags, active tab, FAB, primary buttons, and the butterfly logo
|
|
260
|
+
- Make the like a pink (`#EC4899`) pop-scale spring — it's the joyful signature
|
|
261
|
+
- Keep the pinned custom-feed selector at the top of Home and easy to switch
|
|
262
|
+
- Always show the full `@user.bsky.social` handle
|
|
263
|
+
- Show the reply-controls chip on the composer so reply-gating is visible
|
|
264
|
+
- Keep cards flat; separate with hairline dividers and 1pt embed borders
|
|
265
|
+
- Use the butterfly mark as the brand anchor in `#1185FE`
|
|
266
|
+
|
|
267
|
+
### Don't
|
|
268
|
+
- Don't ship only one theme — the triple-theme choice is part of the product
|
|
269
|
+
- Don't add accent colors beyond blue (and the pink like / green repost) — keep it clean
|
|
270
|
+
- Don't truncate the handle's `.bsky.social` domain
|
|
271
|
+
- Don't bury custom feeds in settings — the feed selector is first-class
|
|
272
|
+
- Don't box every skeet with heavy borders/shadows — dividers keep it quiet
|
|
273
|
+
- Don't make the like a static toggle — the spring pop is the personality
|
|
274
|
+
- Don't shrink body text below 15pt — Bluesky is conversational and readable
|
|
275
|
+
- Don't use heavy elevation — the only shadow is the FAB and modal sheets
|
|
276
|
+
|
|
277
|
+
## 8. Responsive Behavior
|
|
278
|
+
|
|
279
|
+
### Device Sizes
|
|
280
|
+
| Device | Width | Key Changes |
|
|
281
|
+
|--------|-------|-------------|
|
|
282
|
+
| iPhone SE (3rd gen) | 375pt | Avatar 38pt; media grid still 2-col |
|
|
283
|
+
| iPhone 13/14/15 | 390pt | Standard 42pt avatar, 16pt padding |
|
|
284
|
+
| iPhone 15/16 Pro | 393pt | Dynamic Island clears the large title |
|
|
285
|
+
| iPhone 15/16 Pro Max | 430pt | Body measure widens; FAB stays 56pt |
|
|
286
|
+
| iPad | 768pt+ | Split view: feed + thread, max 640pt reading column, persistent left rail |
|
|
287
|
+
|
|
288
|
+
### Dynamic Type
|
|
289
|
+
- Skeet body, names, bios: full scale (conversational app — honor it)
|
|
290
|
+
- Action counts, timestamps: scale modestly
|
|
291
|
+
- Tab labels: fixed 10pt
|
|
292
|
+
- Feed-tab labels: scale modestly, fixed minimum 15pt
|
|
293
|
+
|
|
294
|
+
### Orientation
|
|
295
|
+
- Timeline / Profile: portrait and landscape (iPad split view)
|
|
296
|
+
- Media lightbox: rotates to landscape for wide media
|
|
297
|
+
- Compose: portrait-locked on iPhone
|
|
298
|
+
|
|
299
|
+
### Touch Targets
|
|
300
|
+
- Skeet action icons: 18pt glyph, 44pt hit circle
|
|
301
|
+
- Compose FAB: 56pt
|
|
302
|
+
- Tab icons: 26pt glyph, 44pt effective hit
|
|
303
|
+
- Feed-selector tabs: full label + 12pt padding tappable
|
|
304
|
+
|
|
305
|
+
### Safe Area Handling
|
|
306
|
+
- Top: butterfly nav and feed selector sit below safe area / Dynamic Island
|
|
307
|
+
- Bottom: FAB floats 16pt above the tab bar; both respect the home indicator
|
|
308
|
+
- Sides: 16pt content insets; banner edge-to-edge
|
|
309
|
+
|
|
310
|
+
## 9. Agent Prompt Guide
|
|
311
|
+
|
|
312
|
+
### Quick Color Reference
|
|
313
|
+
- Light canvas: `#FFFFFF` · Dim canvas: `#1E2936` · Dark canvas: `#0B0F14`
|
|
314
|
+
- Light surface 1: `#F1F3F5` · Dark surface 1: `#161E27`
|
|
315
|
+
- Divider: `#E2E8F0` (light) / `#2E4052` (dim) / `#1E2936` (dark)
|
|
316
|
+
- Text primary: `#0B0F14` (light) / `#F1F3F5` (dim+dark)
|
|
317
|
+
- Text secondary: `#697787` (light) / `#8B98A5` (dark)
|
|
318
|
+
- Bluesky Blue (action/link): `#1185FE`
|
|
319
|
+
- Blue pressed: `#0F6FD6`
|
|
320
|
+
- Like pink: `#EC4899`
|
|
321
|
+
- Repost green: `#2DBE85`
|
|
322
|
+
|
|
323
|
+
### Example Component Prompts
|
|
324
|
+
- "Create a SwiftUI Bluesky skeet card: 42pt circular avatar leading, display name 'Paul' in SF Pro 15pt weight 600 + handle '@pfrazee.com' in 14pt #697787 + ' · 2h', trailing ⋯. Body text 15pt weight 400 at 1.4 line height with links/mentions in #1185FE. Below: Reply · Repost · Like · Share evenly spaced, icons 18pt, 13pt weight-500 counts. Flat card matching canvas with a 1pt #E2E8F0 divider beneath."
|
|
325
|
+
- "Build the Bluesky like button: an 18pt heart, default #697787; on tap it fills #EC4899 and pop-scales 1.0 → 1.25 → 1.0 over ~300ms with a spring and a light impact haptic, and the trailing count rolls up by one. Tapping again returns to the outline state."
|
|
326
|
+
- "Design the Bluesky pinned custom-feed selector: a horizontally scrollable tab strip at the top of Home with 'Following', 'Discover', and pinned algorithmic feeds; selected tab uses #1185FE text with a 3pt rounded blue underline, unselected is #697787. Switching cross-fades the timeline over 0.25s."
|
|
327
|
+
- "Create the Bluesky compose FAB: a 56pt circular button, #1185FE, bottom-right 16pt from edges, SF Symbol 'square.and.pencil' 24pt #FFFFFF, shadow rgba(17,133,254,0.35) 0 6px 20px. Pressed: scale 0.94, #0F6FD6, soft haptic; opens the compose sheet with a 0.35s spring and a reply-controls chip in the toolbar."
|
|
328
|
+
- "Build a Bluesky quote-skeet embed: a nested card inside the body with a 1pt #E2E8F0 border and 12pt radius, containing a 24pt avatar + name + handle and a 2-line clamped quoted body, the whole embed tappable to open the quoted post."
|
|
329
|
+
|
|
330
|
+
### Iteration Guide
|
|
331
|
+
1. Ship three themes — Light `#FFFFFF`, Dim `#1E2936`, Dark `#0B0F14` — the choice is the product
|
|
332
|
+
2. Bluesky Blue `#1185FE` is links + navigation + primary actions + the butterfly; pink `#EC4899` like, green `#2DBE85` repost
|
|
333
|
+
3. The like is a springy pink pop-scale — make it the joyful moment
|
|
334
|
+
4. The pinned custom-feed selector lives at the top of Home — the feed is user-controlled
|
|
335
|
+
5. Always render the full `@user.bsky.social` handle
|
|
336
|
+
6. Cards are flat; separate with hairline dividers and 1pt embed borders — quiet timeline
|
|
337
|
+
7. Body text is 15pt at 1.4 line height — conversational and readable
|
|
338
|
+
8. The only elevation is the blue FAB and modal sheets — no heavy shadows
|