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,375 @@
|
|
|
1
|
+
# Design System Inspiration of Webull (iOS)
|
|
2
|
+
|
|
3
|
+
## 1. Visual Theme & Atmosphere
|
|
4
|
+
|
|
5
|
+
Webull's iOS app is a **dark-native trading terminal in your pocket**. Where Fidelity or Schwab present a calm brokerage lobby, Webull presents a Bloomberg-terminal aesthetic for retail traders: a near-black canvas, dense candlestick charts, a live order-book ladder, an options chain, and a split green/red Buy/Sell action pair. The app is built for people who stare at charts — the entire visual system optimizes for chart legibility and information density, not for warmth or simplicity. There is no meaningful "light mode"; like every serious trading product, dark is the only mode that matters.
|
|
6
|
+
|
|
7
|
+
The signature surface is the **quote/chart screen paired with the watchlist**. The Quotes tab is the home of the product: a watchlist of symbols, each a row with ticker, name, a tiny sparkline, last price, and a saturated percent-change chip. Tap any symbol and you land on the full quote screen — symbol header with last price in a huge tabular numeral, a full-width interactive **candlestick chart** with a timeframe strip (1m/5m/1D/5D/1M/1Y) and indicators, the **order-book ladder** (bid/ask with depth bars), key stats, options chain, and a docked **Buy / Sell** button pair. This chart-screen + watchlist pairing, and the candlestick chart itself, is the most recognizable and most-used part of Webull.
|
|
8
|
+
|
|
9
|
+
The color system is **loud where it counts**. Webull's brand is a **blue→cyan gradient** (`#1B9EFB → #20D5C4`) — used for the logo, the primary Trade action, selected timeframe chips, the paper-trading badge, links, and focus. Unlike a calm brokerage where green/red is sparing, Webull's performance color is **pervasive and saturated**: up is `#00C076`, down is `#FA5252`, and it floods the screen — every candle, sparkline, % chip, order-ladder row, and the Buy (green) / Sell (red) button pair. The near-black canvas (`#0B0E11`) exists precisely to make these saturated greens, reds, and the blue→cyan gradient pop with maximum contrast. Surfaces lift only barely; chart grid lines are nearly invisible so the data dominates.
|
|
10
|
+
|
|
11
|
+
Typography is a **clean grotesque with strong tabular DIN-style numerics**. Webull's numbers — prices, the ladder, option strikes, % changes — must align to the decimal point in dense tables, so every figure uses **tabular lining figures**. The brand UI face on iOS falls back to SF Pro; the closest free substitute is **Inter** with `tnum` enabled. Headings are 700–800; body is 400; numbers lean 700–800 and tabular always. The overall feel is precise, technical, fast — a tool, not a brochure.
|
|
12
|
+
|
|
13
|
+
**Key Characteristics:**
|
|
14
|
+
- Dark-native only — near-black canvas `#0B0E11`; no meaningful light mode (it's a trading terminal)
|
|
15
|
+
- Webull blue→cyan brand gradient `#1B9EFB → #20D5C4` — logo, Trade action, selected timeframes, paper badge
|
|
16
|
+
- Pervasive saturated performance color — up `#00C076`, down `#FA5252` — candles, sparklines, chips, ladder, buttons
|
|
17
|
+
- Candlestick chart as the centerpiece — full-width, timeframe strip, indicators, dashed prev-close line
|
|
18
|
+
- Quote screen + watchlist pairing is the product spine — Quotes → Symbol → Chart → Trade
|
|
19
|
+
- Order-book ladder — bid/ask rows with depth bars and a mid/spread divider
|
|
20
|
+
- Split Buy (green) / Sell (red) action pair — docked on the quote screen
|
|
21
|
+
- Options chain — Call | Strike | Put three-column table, green calls / red puts
|
|
22
|
+
- Tabular / monospaced numerals everywhere — ladder, chain, prices align to the decimal
|
|
23
|
+
- Bottom tab bar: Markets / Quotes / Trade / Portfolio / Menu — five-tab terminal nav
|
|
24
|
+
- Paper-trading badge (cyan) — Webull's signature "practice with fake money" mode
|
|
25
|
+
|
|
26
|
+
## 2. Color Palette & Roles
|
|
27
|
+
|
|
28
|
+
### Primary (Interactive / Brand)
|
|
29
|
+
- **Webull Blue** (`#1B9EFB`): Primary brand blue — start of the gradient, primary Trade button, links, selected timeframe, focus rings. On-color text is near-black `#04121C`.
|
|
30
|
+
- **Webull Cyan** (`#20D5C4`): End of the gradient — paper-trading badge, accent highlights, gradient terminus.
|
|
31
|
+
- **Brand Gradient** (`#1B9EFB → #20D5C4`, 135°): Logo, primary Trade CTA, hero accents, selected/active brand surfaces.
|
|
32
|
+
- **Webull Blue Pressed** (`#1684D6`): Pressed state of the primary blue button.
|
|
33
|
+
|
|
34
|
+
### Canvas & Surfaces (Dark — the only mode)
|
|
35
|
+
- **Dark Canvas** (`#0B0E11`): Primary canvas — near-black, maximizes chart/candle contrast.
|
|
36
|
+
- **Dark Surface 1** (`#14181D`): Cards, panels, grouped sections.
|
|
37
|
+
- **Dark Surface 2** (`#1C2127`): Raised rows, chips, pressed surfaces, inputs.
|
|
38
|
+
- **Divider** (`#232931`): Hairline dividers between rows and sections.
|
|
39
|
+
- **Grid Line** (`#1A1F26`): Chart grid lines — almost invisible, never competes with candles.
|
|
40
|
+
|
|
41
|
+
### Optional Light Mode (rarely used; provided for completeness)
|
|
42
|
+
- **Light Canvas** (`#FFFFFF`), **Light Surface** (`#F4F6F8`), **Light Divider** (`#E4E8EC`), **Light Text** (`#101418`). Webull ships a light theme but the product is designed and overwhelmingly used in dark; treat dark as canonical.
|
|
43
|
+
|
|
44
|
+
### Text
|
|
45
|
+
- **Text Primary** (`#EAEEF2`): Primary text on dark.
|
|
46
|
+
- **Text Secondary** (`#8B95A1`): Metadata, names, labels.
|
|
47
|
+
- **Text Tertiary** (`#5A636E`): Disabled, axis labels, lowest emphasis.
|
|
48
|
+
- **On-Brand Text** (`#04121C`): Text on the blue/cyan gradient or solid blue.
|
|
49
|
+
- **On-Up Text** (`#03150D`) / **On-Down Text** (`#1B0606`): Text on the green Buy / red Sell buttons.
|
|
50
|
+
|
|
51
|
+
### Semantic — Market (loud and pervasive, the core of the system)
|
|
52
|
+
| Role | Color | Use |
|
|
53
|
+
|------|-------|-----|
|
|
54
|
+
| Up / Bid / Call | `#00C076` | Up candles, positive %, gain chips, bid ladder rows, Buy button, calls |
|
|
55
|
+
| Down / Ask / Put | `#FA5252` | Down candles, negative %, loss chips, ask ladder rows, Sell button, puts |
|
|
56
|
+
| Flat / Unchanged | `#8B95A1` | 0.00% — uses secondary text color |
|
|
57
|
+
| Up Fill (depth/area) | `#00C07624` | Bid depth bars, area-chart fill (≈14% green) |
|
|
58
|
+
| Down Fill (depth/area) | `#FA525224` | Ask depth bars, down area fill (≈14% red) |
|
|
59
|
+
| Prev-close line | `#1B9EFB` (dashed) | Dashed reference line at previous close on the chart |
|
|
60
|
+
|
|
61
|
+
> Region note: in many Asia markets Webull inverts up=red / down=green. The tokens stay the same; only the up/down→color mapping flips by a user/region setting. Default here is US (up=green).
|
|
62
|
+
|
|
63
|
+
### Semantic — System
|
|
64
|
+
- **Alert Amber** (`#F7A600`): Price-alert triggers, halted/extended-hours banners, caution.
|
|
65
|
+
- **Error Red** (`#FA5252`): Form validation, order-rejected (same as Down — context disambiguates).
|
|
66
|
+
- **Success** (`#00C076`): Order-filled confirmation (same as Up — intentional).
|
|
67
|
+
- **Info / Link** (`#1B9EFB`): Informational links, disclosures.
|
|
68
|
+
- **Paper Badge** (`#20D5C4` on `#04121C`): The signature paper-trading indicator.
|
|
69
|
+
|
|
70
|
+
## 3. Typography Rules
|
|
71
|
+
|
|
72
|
+
### Font Family
|
|
73
|
+
- **Brand UI**: a clean grotesque with DIN-style numerics (Webull uses a custom UI sans + a DIN-like numeric face for prices).
|
|
74
|
+
- **iOS Fallback**: `-apple-system, 'SF Pro Text', 'SF Pro Display'` — system face on device.
|
|
75
|
+
- **Recommended free substitute**: `Inter` (by Rasmus Andersson, SIL OFL) with tabular figures; for an even more terminal feel, prices may use a condensed DIN-like face such as `Oswald`/`Barlow Semi Condensed` — but Inter `tnum` is the simplest faithful default.
|
|
76
|
+
- **Numeric treatment**: Tabular / monospaced lining figures **everywhere** (last price, %, ladder, option chain, stats). In Inter use `font-feature-settings: "tnum" 1;`; on SF use `.monospacedDigit()`. The ladder and option chain MUST align to the decimal.
|
|
77
|
+
- **Fallback Stack**: `-apple-system, BlinkMacSystemFont, 'Inter', 'SF Pro Text', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif`
|
|
78
|
+
|
|
79
|
+
### Hierarchy
|
|
80
|
+
|
|
81
|
+
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
|
82
|
+
|------|------|------|--------|-------------|----------------|-------|
|
|
83
|
+
| Last Price | Inter | 32pt | 800 | 1.1 | -0.6pt | Quote-screen last price — tabular, colored up/down |
|
|
84
|
+
| Screen Title | Inter | 24pt | 800 | 1.2 | -0.3pt | "Quotes", "Markets" |
|
|
85
|
+
| Section Header | Inter | 20pt | 700 | 1.25 | -0.2pt | "Order book", "Options" |
|
|
86
|
+
| Symbol Header | Inter | 17pt | 700 | 1.3 | -0.1pt | "TSLA · NASDAQ" |
|
|
87
|
+
| Body | Inter | 15pt | 400 | 1.5 | 0pt | Descriptions, disclosures |
|
|
88
|
+
| Row Symbol | Inter | 14pt | 600 | 1.3 | 0pt | Watchlist ticker |
|
|
89
|
+
| Row Value | Inter | 15pt | 700 | 1.3 | 0pt | Watchlist last price — tabular |
|
|
90
|
+
| Meta | Inter | 13pt | 400 | 1.4 | 0pt | "Vol 84.2M · Mkt Cap 791B" |
|
|
91
|
+
| Numeric Mono | Inter (tnum) | 12pt | 700 | 1.3 | 0pt | % change line, ladder sizes — tabular |
|
|
92
|
+
| Ladder / Chain | Inter (tnum) | 13pt | 700 | 1.3 | 0pt | Bid/ask prices, option strikes — tabular |
|
|
93
|
+
| Label | Inter | 11pt | 600 | 1.0 | 0.4pt | "BID/ASK", "LEVEL 2", column heads (uppercase) |
|
|
94
|
+
| Button | Inter | 15pt | 800 | 1.0 | 0.3pt | Buy / Sell / Trade buttons |
|
|
95
|
+
| Tab Label | Inter | 10pt | 600 | 1.0 | 0.1pt | Bottom tab labels |
|
|
96
|
+
| Timeframe | Inter | 11pt | 700 | 1.0 | 0.2pt | 1m/5m/1D/5D/1M/1Y chips |
|
|
97
|
+
|
|
98
|
+
### Principles
|
|
99
|
+
- **Everything numeric is tabular**: the order ladder, option chain, and price columns must align to the decimal — this is the defining typographic requirement of a trading terminal.
|
|
100
|
+
- **Last price is colored, not just bold**: the big quote-screen price takes the up/down color, not a neutral text color — instant directional read.
|
|
101
|
+
- **Weight signals data importance**: prices and the ladder are 700–800; names/labels 400–600.
|
|
102
|
+
- **Dense but legible**: line heights are tight (1.1–1.3) to fit more data; never so tight numbers collide.
|
|
103
|
+
- **Dynamic Type with limits**: last price, titles, body scale modestly; the ladder, option chain, timeframe chips, and tab labels stay FIXED — these are tabular, layout-critical grids.
|
|
104
|
+
|
|
105
|
+
## 4. Component Stylings
|
|
106
|
+
|
|
107
|
+
### Buttons
|
|
108
|
+
|
|
109
|
+
**Buy Button (green) / Sell Button (red)** — the signature action pair
|
|
110
|
+
- Shape: Rounded rectangle, 6pt corner radius
|
|
111
|
+
- Buy: background `#00C076`, text `#03150D` (near-black-green), Inter 15pt weight 800
|
|
112
|
+
- Sell: background `#FA5252`, text `#1B0606`, Inter 15pt weight 800
|
|
113
|
+
- Layout: a docked horizontal pair on the quote screen, equal width, 10pt gap
|
|
114
|
+
- Padding: 14pt vertical; full available width split 50/50
|
|
115
|
+
- Pressed: darken 8% + scale 0.98
|
|
116
|
+
|
|
117
|
+
**Primary Button (Trade / Confirm order)**
|
|
118
|
+
- Background: `#1B9EFB` (or the blue→cyan gradient for hero CTAs)
|
|
119
|
+
- Text: `#04121C`, Inter 15pt weight 800
|
|
120
|
+
- Corner radius: 6pt; padding 13pt × 26pt
|
|
121
|
+
- Pressed: `#1684D6` + scale 0.98
|
|
122
|
+
|
|
123
|
+
**Outline Button (Add to list / Secondary)**
|
|
124
|
+
- Background: transparent
|
|
125
|
+
- Border: 1pt `#1B9EFB`
|
|
126
|
+
- Text: `#1B9EFB`, Inter 14pt weight 700
|
|
127
|
+
- Corner radius: 6pt
|
|
128
|
+
- Pressed: 10% blue tint fill
|
|
129
|
+
|
|
130
|
+
**Ghost Button (Indicators / Settings)**
|
|
131
|
+
- Background: `#1C2127`
|
|
132
|
+
- Border: 1pt `#232931`
|
|
133
|
+
- Text: primary text, Inter 13pt weight 600
|
|
134
|
+
- Corner radius: 6pt
|
|
135
|
+
|
|
136
|
+
### Core Atoms
|
|
137
|
+
|
|
138
|
+
**Watchlist Row**
|
|
139
|
+
- Height: 56pt
|
|
140
|
+
- Left: ticker (14pt w600) over name (11pt w400 secondary, truncates)
|
|
141
|
+
- Center: 56×28pt sparkline — stroke `#00C076` if up on day, `#FA5252` if down
|
|
142
|
+
- Right (right-aligned): last price (15pt w700 tabular) over a % chip
|
|
143
|
+
- % chip: solid pill, 4pt radius, `#00C076` bg + `#03150D` text (up) / `#FA5252` bg + `#1B0606` text (down), 11pt w800 tabular
|
|
144
|
+
- Divider: 0.5pt hairline below
|
|
145
|
+
|
|
146
|
+
**Quote Header**
|
|
147
|
+
- Symbol (20pt w800) + exchange/name (12pt secondary); optional cyan `PAPER` badge top-right
|
|
148
|
+
- Last price: 32pt w800 tabular, colored up/down
|
|
149
|
+
- Delta line: `+7.32 (+3.04%) ▲` — 14pt w700 tabular, up/down colored
|
|
150
|
+
|
|
151
|
+
**Candlestick Chart** (the centerpiece)
|
|
152
|
+
- Full-width, ~158pt tall on the quote screen (expands to full-screen landscape)
|
|
153
|
+
- Up candle: body + wick `#00C076`; down candle: `#FA5252`
|
|
154
|
+
- Grid lines: `#1A1F26` (nearly invisible) horizontal rules only
|
|
155
|
+
- Previous-close: 1pt dashed `#1B9EFB` reference line
|
|
156
|
+
- Crosshair on touch: vertical+horizontal `#8B95A1` lines + OHLC tooltip
|
|
157
|
+
- Timeframe strip below: 1m/5m/1D/5D/1M/1Y chips — 11pt w700; active = `#1B9EFB` text on `#1B9EFB`@16% fill, 4pt radius
|
|
158
|
+
|
|
159
|
+
**Order-Book Ladder (Level 2)**
|
|
160
|
+
- Rows: price (left, 64pt, w700 tabular — bid `#00C076` / ask `#FA5252`) + size (secondary, tabular)
|
|
161
|
+
- Depth bar: behind each row, right-anchored, width ∝ size, `#00C07624` (bid) / `#FA525224` (ask)
|
|
162
|
+
- Mid/spread divider: centered last price + spread, 13pt w800, bordered top & bottom 0.5pt
|
|
163
|
+
- Asks stacked above the mid; bids below (book convention)
|
|
164
|
+
|
|
165
|
+
**Options Chain**
|
|
166
|
+
- Three columns: Call (left, `#00C076` w700) | Strike (center, primary w800) | Put (right, `#FA5252` w700)
|
|
167
|
+
- Uppercase 11pt column header, 0.5pt divider; rows 0.5pt-separated, tabular
|
|
168
|
+
- ATM strike row subtly highlighted (`#1C2127` bg)
|
|
169
|
+
|
|
170
|
+
### Navigation
|
|
171
|
+
|
|
172
|
+
**Bottom Tab Bar**
|
|
173
|
+
- Height: 56pt + safe area
|
|
174
|
+
- Background: canvas with `saturate(180%) blur(20px)` translucency, 0.5pt top divider
|
|
175
|
+
- Tabs (5): Markets, Quotes, Trade, Portfolio, Menu
|
|
176
|
+
- Icon size: 22pt
|
|
177
|
+
- Active: `#1B9EFB`, filled glyph
|
|
178
|
+
- Inactive: tertiary text, stroked glyph
|
|
179
|
+
- Labels: Inter 10pt w600, always shown
|
|
180
|
+
|
|
181
|
+
**Top Nav (Quote screen)**
|
|
182
|
+
- Height: 44pt + safe area
|
|
183
|
+
- Leading: back chevron + symbol (compact); Trailing: search, add-to-watchlist star, ⋯ overflow (alerts, share, settings)
|
|
184
|
+
- The candlestick chart begins immediately below — no large hero block (data-first)
|
|
185
|
+
|
|
186
|
+
**Segmented / Tabs (Chart / Options / News / Financials on a symbol)**
|
|
187
|
+
- Underline style: active segment label primary with a 2pt `#1B9EFB` underline; inactive secondary
|
|
188
|
+
- Height: 40pt
|
|
189
|
+
|
|
190
|
+
### Input Fields
|
|
191
|
+
|
|
192
|
+
**Search Bar (Find symbol)**
|
|
193
|
+
- Height: 38pt
|
|
194
|
+
- Background: `#1C2127`, 6pt corner radius
|
|
195
|
+
- Leading magnifier 16pt secondary; placeholder "Search symbol / company" 13pt secondary
|
|
196
|
+
- Focus: 1pt `#1B9EFB` border
|
|
197
|
+
|
|
198
|
+
**Order Entry Field (Quantity / Limit price)**
|
|
199
|
+
- Background: `#1C2127`, 6pt radius, 1pt `#232931` border
|
|
200
|
+
- Value right-aligned 16pt w800 tabular; ± stepper buttons on either side (44pt hit)
|
|
201
|
+
- Focus: border `#1B9EFB`; error: border `#FA5252`, helper text red 12pt
|
|
202
|
+
|
|
203
|
+
### Distinctive Components
|
|
204
|
+
|
|
205
|
+
**Order Ticket (Buy/Sell flow)**
|
|
206
|
+
- Opens from the docked Buy/Sell pair: Action (Buy/Sell, inherits the green/red color), Order type (Market/Limit/Stop/Stop-Limit), Quantity stepper, Limit price, Time-in-force, estimated cost; a colored confirm button (green for buy, red for sell) and a quick-confirm review
|
|
207
|
+
- Order-type selector: segmented chips, active = `#1B9EFB`@16% fill
|
|
208
|
+
|
|
209
|
+
**Paper-Trading Badge**
|
|
210
|
+
- The signature "practice money" indicator: cyan `#20D5C4` pill, `#04121C` text, 10pt w800, 4pt radius, "PAPER" — appears on the quote header and portfolio when in paper mode
|
|
211
|
+
|
|
212
|
+
**Depth/Heatmap Bar**
|
|
213
|
+
- Behind ladder rows; some screens show a market-depth area chart (cumulative bid/ask) using the up/down fills
|
|
214
|
+
|
|
215
|
+
**Mini Sparkline**
|
|
216
|
+
- 56×28pt inline trend in watchlist rows; 2pt stroke, up/down colored, no fill
|
|
217
|
+
|
|
218
|
+
**Indicator Chips Row**
|
|
219
|
+
- On the chart: MA / EMA / BOLL / MACD / RSI toggle chips — ghost when off, `#1B9EFB`@16% when on
|
|
220
|
+
|
|
221
|
+
## 5. Layout Principles
|
|
222
|
+
|
|
223
|
+
### Spacing System
|
|
224
|
+
- Base unit: 4pt
|
|
225
|
+
- Scale: 4, 6, 8, 10, 12, 16, 20, 24, 32, 40
|
|
226
|
+
- Watchlist row height: 56pt; ladder row ~26pt (dense)
|
|
227
|
+
- Section header top margin: 12pt
|
|
228
|
+
- Screen content inset: 18pt horizontal (chart is full-bleed; ladder 18pt)
|
|
229
|
+
|
|
230
|
+
### Grid & Container
|
|
231
|
+
- iPhone: 18pt horizontal insets; the candlestick chart is full-bleed edge-to-edge
|
|
232
|
+
- iPad: multi-pane terminal — watchlist rail + chart + ladder/options simultaneously
|
|
233
|
+
- Tables (ladder, option chain) are fixed-column grids; numbers right/decimal-aligned
|
|
234
|
+
- Landscape: the chart goes full-screen with crosshair scrubbing (a core trader gesture)
|
|
235
|
+
|
|
236
|
+
### Whitespace Philosophy
|
|
237
|
+
- **Density is the feature**: traders want more data per screen — rows are compact, chrome is minimal, the chart is huge
|
|
238
|
+
- **The chart dominates**: it gets the most pixels; everything else is efficient supporting data
|
|
239
|
+
- **Color does the wayfinding**: green/red and the blue gradient carry meaning so layout can stay tight and unlabeled
|
|
240
|
+
|
|
241
|
+
### Border Radius Scale
|
|
242
|
+
- Square (0pt): Chart area, table cells, full-bleed regions
|
|
243
|
+
- Tiny (2pt): Depth bars, micro tags
|
|
244
|
+
- Subtle (4pt): % chips, timeframe chips, paper badge, indicator chips
|
|
245
|
+
- Standard (6pt): Buttons, search bar, inputs, order-type chips
|
|
246
|
+
- Comfortable (10pt): Cards, panels, bottom sheets
|
|
247
|
+
- Large (16pt): Modal containers, full sheets
|
|
248
|
+
- Pill (500pt): Rare — some filter toggles
|
|
249
|
+
- Circle (50%): Avatars, circular icon buttons
|
|
250
|
+
|
|
251
|
+
## 6. Depth & Elevation
|
|
252
|
+
|
|
253
|
+
Webull is flat and dark — depth is functional only.
|
|
254
|
+
|
|
255
|
+
| Level | Treatment | Use |
|
|
256
|
+
|-------|-----------|-----|
|
|
257
|
+
| Flat (Level 0) | No shadow | Chart, ladder, watchlist rows, panels |
|
|
258
|
+
| Panel (Level 1) | 1pt `#232931` border, optional `#14181D` fill | Cards, grouped sections |
|
|
259
|
+
| Floating (Level 2) | `rgba(0,0,0,0.5) 0 8px 24px` + 1pt `#232931` border | Crosshair tooltip, dropdowns, order-type popover |
|
|
260
|
+
| Sheet (Level 3) | `rgba(0,0,0,0.6) 0 -8px 32px` + 1pt top border | Order ticket sheet, indicator picker |
|
|
261
|
+
| Modal Scrim | `rgba(0,0,0,0.65)` | Dim behind sheets/dialogs |
|
|
262
|
+
|
|
263
|
+
**Shadow Philosophy**: on a near-black canvas shadows barely register, so elevation is communicated almost entirely by a 1pt `#232931` border and a slight surface lift, not by drop shadow. Floating elements (crosshair tooltip, order-type popover, ticket sheet) get a heavy dark shadow plus the border so they read above the dense data. The chart never has a shadow — it is the ground plane.
|
|
264
|
+
|
|
265
|
+
### Motion
|
|
266
|
+
- **Live price tick**: the last price flashes its up/down color brightly for ~250ms then settles to the steady up/down color; the ladder cell that changed flashes its row tint; digits do NOT roll
|
|
267
|
+
- **Chart timeframe switch**: candles re-layout with a 250ms ease-out; axis re-scales
|
|
268
|
+
- **Chart crosshair scrub**: 1:1 finger tracking, no easing; OHLC tooltip follows instantly
|
|
269
|
+
- **Ladder updates**: rows update in place; size changes briefly flash the depth bar opacity
|
|
270
|
+
- **Buy/Sell → ticket**: ticket sheet slides up 280ms ease-out; the sheet's confirm button inherits green/red
|
|
271
|
+
- **Tab switch**: instant content swap; selected icon fills and tints with a 120ms cross-fade
|
|
272
|
+
- **Landscape chart**: rotate-to-fullscreen transitions in 300ms; crosshair becomes primary interaction
|
|
273
|
+
- **Pull-to-refresh** (watchlist/markets): blue→cyan gradient spinner; light haptic on trigger
|
|
274
|
+
- **Haptics**: light impact on timeframe change & tab change; selection tick while scrubbing key levels; medium impact on order submit; success notification on fill
|
|
275
|
+
|
|
276
|
+
## 7. Do's and Don'ts
|
|
277
|
+
|
|
278
|
+
### Do
|
|
279
|
+
- Treat dark as the only canonical mode — near-black `#0B0E11` to maximize candle/contrast
|
|
280
|
+
- Use the blue→cyan gradient (`#1B9EFB → #20D5C4`) for brand, the Trade action, selected timeframes, and the paper badge
|
|
281
|
+
- Make performance color loud and pervasive — up `#00C076`, down `#FA5252` on candles, sparklines, chips, ladder, buttons
|
|
282
|
+
- Make the candlestick chart the visual centerpiece — full-width, timeframe strip, dashed prev-close line
|
|
283
|
+
- Use a split Buy (green) / Sell (red) docked pair on the quote screen
|
|
284
|
+
- Set every numeric value tabular so the ladder and option chain align to the decimal
|
|
285
|
+
- Color the big last price up/down (not neutral) for an instant directional read
|
|
286
|
+
- Keep chart grid lines nearly invisible (`#1A1F26`) so candles dominate
|
|
287
|
+
- Use a cyan `PAPER` badge to mark paper-trading mode
|
|
288
|
+
- Communicate elevation with a 1pt `#232931` border + surface lift, not drop shadow
|
|
289
|
+
|
|
290
|
+
### Don't
|
|
291
|
+
- Don't design a primary light mode — a trading terminal is dark-native
|
|
292
|
+
- Don't make performance color timid — Webull's identity is saturated green/red everywhere
|
|
293
|
+
- Don't use the blue→cyan gradient for gain/loss — it's brand/action only; green/red is market color
|
|
294
|
+
- Don't use proportional figures for the ladder, chain, or prices — tabular is mandatory
|
|
295
|
+
- Don't render the last price in neutral text — it must carry the up/down color
|
|
296
|
+
- Don't put bright grid lines on the chart — they must recede behind candles
|
|
297
|
+
- Don't add marketing illustrations or photographic heroes — it's a terminal, data-first
|
|
298
|
+
- Don't roll/odometer the price digits on tick — only a brief color flash
|
|
299
|
+
- Don't separate Buy and Sell into distant CTAs — they are a docked, equal, color-coded pair
|
|
300
|
+
- Don't hardcode up=green globally — respect the region setting that may invert up/down color in Asia markets
|
|
301
|
+
|
|
302
|
+
## 8. Responsive Behavior
|
|
303
|
+
|
|
304
|
+
### Device Sizes
|
|
305
|
+
| Device | Width | Key Changes |
|
|
306
|
+
|--------|-------|-------------|
|
|
307
|
+
| iPhone SE (3rd gen) | 375pt | Chart ~140pt; ladder shows 3 levels each side; tighter 14pt insets |
|
|
308
|
+
| iPhone 15/16 | 393pt | Standard layout; chart ~158pt; 5 ladder levels |
|
|
309
|
+
| iPhone 15/16 Pro | 393pt | Dynamic Island accommodated in top nav |
|
|
310
|
+
| iPhone 15/16 Pro Max | 430pt | Taller chart ~190pt; more ladder depth visible |
|
|
311
|
+
| iPhone (landscape) | — | Full-screen candlestick chart with crosshair — the core power gesture |
|
|
312
|
+
| iPad (portrait) | 768pt | Two-pane: watchlist rail + quote/chart |
|
|
313
|
+
| iPad (landscape) | 1024pt+ | Terminal layout: watchlist + chart + ladder + options simultaneously |
|
|
314
|
+
|
|
315
|
+
### Dynamic Type
|
|
316
|
+
- Last price, screen title, section header, body: modest scale
|
|
317
|
+
- Ladder, option chain, timeframe chips, tab labels, column headers: FIXED (tabular grids, layout-critical)
|
|
318
|
+
- Tabular figures remain tabular at every size
|
|
319
|
+
|
|
320
|
+
### Orientation
|
|
321
|
+
- iPhone: portrait for browse/trade; landscape = full-screen chart with crosshair + drawing tools
|
|
322
|
+
- iPad: split/terminal multi-pane; rotation preserves the selected symbol and chart timeframe
|
|
323
|
+
|
|
324
|
+
### Touch Targets
|
|
325
|
+
- Watchlist row: 56pt tall, full-row tap
|
|
326
|
+
- Tab bar icon: 22pt glyph, 56pt hit
|
|
327
|
+
- Timeframe chip: 28pt tall, 44pt hit
|
|
328
|
+
- Buy/Sell buttons: 48pt tall each
|
|
329
|
+
- Quantity stepper ±: 44pt hit
|
|
330
|
+
- Chart crosshair: full-chart drag region
|
|
331
|
+
|
|
332
|
+
### Safe Area Handling
|
|
333
|
+
- Top: top nav respects safe area and Dynamic Island; chart starts right below
|
|
334
|
+
- Bottom: docked Buy/Sell pair and tab bar respect home indicator; both add safe-area padding
|
|
335
|
+
- Keyboard: order-entry fields lift above the keyboard; the keypad sheet covers lower content
|
|
336
|
+
- Sides: 18pt content inset; chart is full-bleed
|
|
337
|
+
|
|
338
|
+
## 9. Agent Prompt Guide
|
|
339
|
+
|
|
340
|
+
### Quick Color Reference
|
|
341
|
+
- Canvas (dark, canonical): `#0B0E11`
|
|
342
|
+
- Surface 1: `#14181D` · Surface 2: `#1C2127`
|
|
343
|
+
- Divider: `#232931` · Chart grid: `#1A1F26`
|
|
344
|
+
- Webull Blue: `#1B9EFB` · Webull Cyan: `#20D5C4` · Gradient: `#1B9EFB → #20D5C4`
|
|
345
|
+
- On-brand text: `#04121C`
|
|
346
|
+
- Text primary: `#EAEEF2` · secondary: `#8B95A1` · tertiary: `#5A636E`
|
|
347
|
+
- Up / bid / call: `#00C076` (on-text `#03150D`)
|
|
348
|
+
- Down / ask / put: `#FA5252` (on-text `#1B0606`)
|
|
349
|
+
- Up fill: `#00C07624` · Down fill: `#FA525224`
|
|
350
|
+
- Alert amber: `#F7A600` · Prev-close line: `#1B9EFB` dashed
|
|
351
|
+
|
|
352
|
+
### Example Component Prompts
|
|
353
|
+
- "Build the Webull quote header in SwiftUI on canvas `#0B0E11`: symbol 'TSLA' (20pt w800 `#F5F8FA`) over 'Tesla, Inc. · NASDAQ' (12pt `#8B95A1`), a cyan `PAPER` badge top-right (`#20D5C4` bg, `#04121C` text, 10pt w800, 4pt radius). Last price `248.50` in Inter 32pt w800 `.monospacedDigit()` colored `#00C076` (up). Delta line `+7.32 (+3.04%) ▲` 14pt w700 tabular `#00C076`."
|
|
354
|
+
|
|
355
|
+
- "Render a Webull candlestick chart: full-width ~158pt tall. Up candles body+wick `#00C076`, down `#FA5252`. Horizontal grid lines `#1A1F26` only. A 1pt dashed `#1B9EFB` previous-close line. Below: timeframe chip strip 1m/5m/1D/5D/1M/1Y in Inter 11pt w700; active chip is `#1B9EFB` text on `#1B9EFB` at 16% opacity, 4pt radius. On touch, show a `#8B95A1` crosshair + OHLC tooltip tracking 1:1."
|
|
356
|
+
|
|
357
|
+
- "Create the Webull order-book ladder: ask rows above, bid rows below a centered mid divider. Each row: price left (64pt, 13pt w700 tabular — `#FA5252` for asks, `#00C076` for bids) + size right (12pt `#8B95A1` tabular). Behind each row a right-anchored depth bar, width ∝ size, `#FA525224` for asks / `#00C07624` for bids. Mid divider: '248.50 · Spread 0.08' 13pt w800 `#EAEEF2`, 0.5pt `#232931` top+bottom borders."
|
|
358
|
+
|
|
359
|
+
- "Build the Webull docked Buy/Sell pair: a horizontal row, equal width, 10pt gap, 18pt side insets. Buy = `#00C076` bg, text `#03150D` Inter 15pt w800, 6pt radius, 48pt tall. Sell = `#FA5252` bg, text `#1B0606`. Pressed: darken 8% + scale 0.98; medium haptic; tapping opens the order-ticket sheet whose confirm button inherits the same green/red."
|
|
360
|
+
|
|
361
|
+
- "Render a Webull watchlist row: 56pt tall on `#0B0E11`. Left = ticker 14pt w600 `#EAEEF2` over name 11pt `#8B95A1` (truncate). Center = 56×28pt sparkline, 2pt stroke `#00C076` if up else `#FA5252`. Right = last price 15pt w700 tabular over a solid % chip (4pt radius, `#00C076` bg `#03150D` text if up / `#FA5252` bg `#1B0606` text if down, 11pt w800 tabular). 0.5pt `#232931` divider below."
|
|
362
|
+
|
|
363
|
+
- "Render a Webull options chain: 3-column grid Call | Strike | Put. Uppercase 11pt w600 `#5A636E` header with a 0.5pt `#232931` underline. Rows 13pt tabular, 0.5pt-separated: Call left `#00C076` w700, Strike center `#EAEEF2` w800, Put right `#FA5252` w700. Highlight the ATM strike row with `#1C2127`."
|
|
364
|
+
|
|
365
|
+
### Iteration Guide
|
|
366
|
+
1. Dark is the only canonical mode — near-black `#0B0E11`; do not build a primary light theme
|
|
367
|
+
2. Brand is the blue→cyan gradient `#1B9EFB → #20D5C4` — Trade action, selected timeframes, paper badge; never for gain/loss
|
|
368
|
+
3. Performance color is loud and everywhere — up `#00C076`, down `#FA5252` on candles, sparklines, chips, ladder, buttons
|
|
369
|
+
4. The candlestick chart is the centerpiece — full-bleed, timeframe strip, dashed `#1B9EFB` prev-close, near-invisible `#1A1F26` grid
|
|
370
|
+
5. The last price is colored up/down (not neutral) and tabular — instant directional read
|
|
371
|
+
6. Every numeric is tabular — the ladder and option chain align to the decimal, non-negotiable
|
|
372
|
+
7. Buy (green) / Sell (red) is one docked equal-width pair on the quote screen
|
|
373
|
+
8. The order ladder uses right-anchored depth bars at ~14% opacity behind tabular rows
|
|
374
|
+
9. Elevation is a 1pt `#232931` border + surface lift on near-black — not drop shadow
|
|
375
|
+
10. Motion is a brief color flash on tick (no rolling digits), 250ms timeframe re-layout, 1:1 crosshair scrub
|