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,392 @@
|
|
|
1
|
+
# Design System Inspiration of Grammarly (iOS)
|
|
2
|
+
|
|
3
|
+
## 1. Visual Theme & Atmosphere
|
|
4
|
+
|
|
5
|
+
Grammarly's iOS app is a *calm writing surface wrapped around an opinionated assistant*. The canvas is pure white (`#FFFFFF`) in light mode and a warm charcoal (`#121212`) in dark — never stark, because the product's job is to make your own prose feel comfortable to read while a quiet green assistant works in the margins. Open the editor and you see a near-frameless document: a serene title in Inter 22-26pt bold, body copy at 16pt with generous 1.65 line-height, and — the signature moment — words and phrases marked with **colored underlines**. Each underline is a category: a red squiggle for Correctness, a blue highlight for Clarity, a green dotted line for Engagement, a purple line for Delivery. Tapping any marked span slides up a **suggestion card** from the bottom: a small colored category dot, a strikethrough-old → green-new word swap, a one-sentence plain-language explanation, and a single green "Accept" pill with a circular dismiss. This card is the heartbeat of the entire app.
|
|
6
|
+
|
|
7
|
+
The other two signature affordances are the **document score ring** — a thin circular gauge in the top-right showing an overall 0–100 number that fills Grammarly Green as the writing improves — and the **assistant bar** pinned to the bottom: a small green Grammarly orb (the rotated-G logomark), a running suggestion count ("14 suggestions · 3 Correctness · 6 Clarity · 5 Engagement"), and a "Review" CTA that walks the user card-by-card. Everything in the app routes through these three: the colored underline (where), the suggestion card (what), the assistant bar (how many left).
|
|
8
|
+
|
|
9
|
+
The color system is monobrand and disciplined. There is exactly **one** brand accent — Grammarly Green (`#15C39A`, deepening to `#11A683`) — and it carries every primary action, the score ring, and the orb. There is no secondary brand color. Functional color lives entirely in the four **suggestion categories**: Correctness Red (`#E5484D`), Clarity Blue (`#3B82F6`), Engagement Green (`#16A34A`), Delivery Purple (`#8B5CF6`). These four hues never act as CTAs — they only color underlines, category dots, and inline highlights. Premium upsell uses a warm gold (`#E0A82E`). The restraint is the point: the assistant is helpful, not loud.
|
|
10
|
+
|
|
11
|
+
Typography is a clean grotesque. Grammarly's product uses a humanist sans (Apercu in marketing, SF Pro / system on iOS); **Inter** is the closest free face and is used here. Hierarchy is editorial: screen title 32pt/800, document heading 22-26pt/700, card title 18pt/700, editor body 16pt/400 (the calm reading size), suggestion title 15pt/600, explanation 14pt/400, category tag 12pt/700 uppercase. Weight concentrates at 400/600/700/800 — regular for prose, semibold for suggestion titles, bold for headings, extrabold for screen titles. The type system is built to recede so the user's own words read cleanly.
|
|
12
|
+
|
|
13
|
+
**Key Characteristics:**
|
|
14
|
+
- Calm writing canvas — pure white (`#FFFFFF`) light / warm charcoal (`#121212`) dark, near-frameless editor
|
|
15
|
+
- Single brand accent — Grammarly Green (`#15C39A` / `#11A683`); no secondary brand color
|
|
16
|
+
- Color-coded suggestion underlines — red Correctness, blue Clarity, green Engagement, purple Delivery
|
|
17
|
+
- Suggestion card — bottom card with category dot, strikethrough → green swap, explanation, green Accept pill
|
|
18
|
+
- Document score ring — thin circular 0–100 gauge, top-right, fills Grammarly Green as writing improves
|
|
19
|
+
- Assistant bar — pinned bottom strip: green orb + running suggestion count + Review CTA
|
|
20
|
+
- Tone detector — emoji + tone pills ("Confident", "Formal") summarizing how the writing reads
|
|
21
|
+
- Pill-shaped buttons everywhere — fully rounded (999pt) primary, secondary, premium
|
|
22
|
+
- Inter / SF Pro type — editorial hierarchy, body at 16pt for calm reading
|
|
23
|
+
- Premium gold (`#E0A82E`) for upsell — the only non-green, non-functional accent
|
|
24
|
+
- Minimal chrome — back chevron, doc title, score ring up top; assistant bar at bottom; nothing else
|
|
25
|
+
|
|
26
|
+
## 2. Color Palette & Roles
|
|
27
|
+
|
|
28
|
+
### Primary (Interactive)
|
|
29
|
+
- **Grammarly Green** (`#15C39A`): The single brand accent — Accept buttons, score ring, assistant orb, active states, links.
|
|
30
|
+
- **Green Deep** (`#11A683`): Deeper green for emphasis, gradient end, large fills.
|
|
31
|
+
- **Green Pressed** (`#0E8A6D`): Pressed state of any green button.
|
|
32
|
+
- **Green Tint** (`#15C39A1F`): 12% green wash behind selected suggestions and the accepted-state flash.
|
|
33
|
+
|
|
34
|
+
### Suggestion Categories (Functional — underlines & dots only, NEVER CTAs)
|
|
35
|
+
- **Correctness Red** (`#E5484D`): Grammar, spelling, punctuation — red squiggle underline + red dot.
|
|
36
|
+
- **Clarity Blue** (`#3B82F6`): Wordiness, hard-to-read sentences — blue highlight + blue dot.
|
|
37
|
+
- **Engagement Green** (`#16A34A`): Bland, repetitive language — green dotted underline + green dot.
|
|
38
|
+
- **Delivery Purple** (`#8B5CF6`): Tone, formality, confidence — purple underline + purple dot.
|
|
39
|
+
|
|
40
|
+
### Premium / Upsell
|
|
41
|
+
- **Premium Gold** (`#E0A82E`): "Try Premium", premium-only suggestion lock, upgrade banners.
|
|
42
|
+
- **Premium Gold Pressed** (`#C8941F`): Pressed state.
|
|
43
|
+
|
|
44
|
+
### Canvas & Surfaces (Light Mode)
|
|
45
|
+
- **Canvas White** (`#FFFFFF`): Primary editor canvas.
|
|
46
|
+
- **Surface 1** (`#F7F8F8`): Suggestion cards, settings rows, elevated panels.
|
|
47
|
+
- **Surface 2** (`#EEF0F0`): Pressed rows, tone pills, secondary chips.
|
|
48
|
+
- **Divider** (`#E4E6E6`): Hairline separators.
|
|
49
|
+
|
|
50
|
+
### Canvas & Surfaces (Dark Mode)
|
|
51
|
+
- **Dark Canvas** (`#121212`): Primary dark editor — warm charcoal, NOT pure black.
|
|
52
|
+
- **Dark Surface 1** (`#1C1C1E`): Suggestion cards, settings rows.
|
|
53
|
+
- **Dark Surface 2** (`#262629`): Pressed rows, tone pills.
|
|
54
|
+
- **Dark Divider** (`#2C2C2E`): Hairline separators.
|
|
55
|
+
|
|
56
|
+
### Text
|
|
57
|
+
- **Text Primary Light** (`#1A1A1A`): Editor body, headings — near-black, slightly warm.
|
|
58
|
+
- **Text Secondary Light** (`#6B6B70`): Explanations, metadata, tone labels.
|
|
59
|
+
- **Text Tertiary Light** (`#9A9A9F`): Placeholders, disabled.
|
|
60
|
+
- **Text Primary Dark** (`#E4E4E4`): Editor body on dark.
|
|
61
|
+
- **Text Secondary Dark** (`#9A9A9F`): Secondary text on dark (shared with light tertiary).
|
|
62
|
+
- **Text Tertiary Dark** (`#6A6A6E`): Disabled on dark.
|
|
63
|
+
|
|
64
|
+
### Underline / Highlight Roles
|
|
65
|
+
|
|
66
|
+
| Role | Light Mode | Dark Mode | Treatment |
|
|
67
|
+
|------|-----------|-----------|-----------|
|
|
68
|
+
| Correctness | `#E5484D` | `#F05A5F` | 2pt solid squiggle underline |
|
|
69
|
+
| Clarity | `#3B82F6` | `#5A95F8` | 18% fill highlight + 2pt underline |
|
|
70
|
+
| Engagement | `#16A34A` | `#22B85A` | 2pt dotted underline |
|
|
71
|
+
| Delivery | `#8B5CF6` | `#A07CF8` | 2pt solid underline |
|
|
72
|
+
| Accepted flash | `#15C39A1F` | `#15C39A24` | 12% green wash, 600ms fade |
|
|
73
|
+
|
|
74
|
+
### Semantic
|
|
75
|
+
- **Error Red** (`#E5484D`): Sync failure toast, destructive confirm (shares Correctness hue).
|
|
76
|
+
- **Success Green** (`#15C39A`): "All clear" state, save-success toast (uses brand green).
|
|
77
|
+
- **Warning Gold** (`#E0A82E`): Premium-locked notice, plagiarism flag.
|
|
78
|
+
- **Info Blue** (`#3B82F6`): Informational tip banners (shares Clarity hue).
|
|
79
|
+
|
|
80
|
+
## 3. Typography Rules
|
|
81
|
+
|
|
82
|
+
### Font Family
|
|
83
|
+
- **Product**: `Apercu` (Colophon Foundry — Grammarly's brand grotesque) in marketing; `SF Pro Text` / `SF Pro Display` on iOS via the system stack.
|
|
84
|
+
- **Closest Free Face**: `Inter` (by Rasmus Andersson, 2020, SIL OFL) — humanist grotesque with near-identical proportions, excellent UI hinting.
|
|
85
|
+
- **Mono (rare)**: `SF Mono` for in-app code samples and the plagiarism source viewer.
|
|
86
|
+
- **Fallback Stack**: `-apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif`
|
|
87
|
+
|
|
88
|
+
### Hierarchy
|
|
89
|
+
|
|
90
|
+
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
|
91
|
+
|------|------|------|--------|-------------|----------------|-------|
|
|
92
|
+
| Screen Title | Inter | 32pt | 800 | 1.15 | -0.6pt | "Assistant", "Insights" top-level |
|
|
93
|
+
| Document Heading | Inter | 26pt | 700 | 1.2 | -0.4pt | Title inside the editor (H1) |
|
|
94
|
+
| Document Subhead | Inter | 22pt | 700 | 1.25 | -0.3pt | H2 inside editor / section title |
|
|
95
|
+
| Card Title | Inter | 18pt | 700 | 1.3 | -0.1pt | Suggestion category headline |
|
|
96
|
+
| Editor Body | Inter | 16pt | 400 | 1.65 | 0pt | The prose being edited — calm reading size |
|
|
97
|
+
| Suggestion Title | Inter | 15pt | 600 | 1.35 | 0pt | "Consider a more concise phrase" |
|
|
98
|
+
| Suggestion Swap | Inter | 16pt | 600 | 1.4 | 0pt | Old (strikethrough) → New (green) word |
|
|
99
|
+
| Explanation | Inter | 14pt | 400 | 1.5 | 0pt | Plain-language rule rationale |
|
|
100
|
+
| Card Meta / Action | Inter | 13pt | 600 | 1.0 | 0.1pt | "Accept", "Dismiss", count labels |
|
|
101
|
+
| Category Tag | Inter | 12pt | 700 | 1.0 | 0.4pt | "CORRECTNESS" uppercase |
|
|
102
|
+
| Tone Pill | Inter | 12pt | 600 | 1.0 | 0.2pt | "Confident", "Formal" |
|
|
103
|
+
| Score Number | Inter | 17pt | 700 | 1.0 | 0pt | Number inside the score ring |
|
|
104
|
+
| Tab / Bar Label | Inter | 11pt | 600 | 1.0 | 0.1pt | Assistant-bar subtitle |
|
|
105
|
+
| Button | Inter | 16pt | 700 | 1.0 | 0pt | Primary pill label |
|
|
106
|
+
|
|
107
|
+
### Principles
|
|
108
|
+
- **Editorial first**: Sizes follow document logic (title → heading → body), so the editor reads like a clean word processor, not a dashboard.
|
|
109
|
+
- **Calm body**: Editor body is 16pt/400 with a roomy 1.65 line-height — the prose must feel pleasant to read, not cramped.
|
|
110
|
+
- **Weight discipline**: 400 (prose), 600 (suggestion titles/actions), 700 (headings/categories), 800 (screen titles). No thin, no black, no light.
|
|
111
|
+
- **Categories are uppercase 12pt/700**: the four category tags are the only consistently uppercased text — a fixed, scannable label.
|
|
112
|
+
- **Dynamic Type first-class**: Document heading, body, suggestion title, explanation all scale; category tags, tone pills, score number, bar labels stay fixed.
|
|
113
|
+
|
|
114
|
+
## 4. Component Stylings
|
|
115
|
+
|
|
116
|
+
### Buttons
|
|
117
|
+
|
|
118
|
+
**Primary Button (Accept / Continue / Save)**
|
|
119
|
+
- Shape: Fully rounded pill, 999pt corner radius
|
|
120
|
+
- Background: `#15C39A` (Grammarly Green) / same on dark
|
|
121
|
+
- Text: `#06281F` (deep green-black for contrast on green) — Inter 16pt weight 700
|
|
122
|
+
- Padding: 14pt vertical, 28pt horizontal (Accept inside card stretches full width, 10pt vertical)
|
|
123
|
+
- Pressed: background `#0E8A6D` + scale 0.98
|
|
124
|
+
- Disabled: background `#15C39A` at 40% opacity
|
|
125
|
+
|
|
126
|
+
**Secondary / Ghost Button (Dismiss / Skip)**
|
|
127
|
+
- Background: transparent
|
|
128
|
+
- Text: `#15C39A` light / `#15C39A` dark
|
|
129
|
+
- Border: 1.5pt `#15C39A`
|
|
130
|
+
- Corner radius: 999pt (pill)
|
|
131
|
+
- Padding: 12pt vertical, 22pt horizontal
|
|
132
|
+
- Font: Inter 15pt weight 600
|
|
133
|
+
- Pressed: background `#15C39A14` (8% green)
|
|
134
|
+
|
|
135
|
+
**Premium Button (Try Premium / Upgrade)**
|
|
136
|
+
- Background: `#E0A82E` (Premium Gold)
|
|
137
|
+
- Text: `#2A1E04` Inter 14pt weight 700
|
|
138
|
+
- Corner radius: 999pt
|
|
139
|
+
- Padding: 11pt vertical, 20pt horizontal
|
|
140
|
+
- Pressed: background `#C8941F` + scale 0.98
|
|
141
|
+
|
|
142
|
+
**Dismiss Icon Button (× on suggestion card)**
|
|
143
|
+
- Size: 44pt × 40pt pill, 1pt `#E4E6E6` / `#2C2C2E` border
|
|
144
|
+
- Glyph: 16pt × in `#6B6B70` / `#9A9A9F`
|
|
145
|
+
- Pressed: background `#EEF0F0` / `#262629`
|
|
146
|
+
|
|
147
|
+
**Text Button (See all suggestions / Learn more)**
|
|
148
|
+
- Font: Inter 14pt weight 600
|
|
149
|
+
- Color: `#15C39A`
|
|
150
|
+
- No underline; 12pt vertical hit padding
|
|
151
|
+
- Pressed: 60% opacity
|
|
152
|
+
|
|
153
|
+
### Suggestion Card (the core atom)
|
|
154
|
+
|
|
155
|
+
The single most important component. Slides up from the bottom when a marked span is tapped.
|
|
156
|
+
|
|
157
|
+
- Container: `#F7F8F8` light / `#1C1C1E` dark, 16pt corner radius, 1pt `#E4E6E6` / `#2C2C2E` border, shadow `0 8px 24px rgba(0,0,0,0.12)` light / `rgba(0,0,0,0.5)` dark
|
|
158
|
+
- Padding: 16pt all
|
|
159
|
+
- **Header row**: 10pt category dot (category color) + category tag (Inter 12pt 700 uppercase, `#6B6B70`)
|
|
160
|
+
- **Swap line**: old word in category color with line-through, "→" in `#9A9A9F`, new word in `#15C39A` weight 600 (Inter 16pt)
|
|
161
|
+
- **Explanation**: Inter 14pt 400 `#6B6B70`, 1.5 line-height, max 2 lines
|
|
162
|
+
- **Actions row**: full-width green "Accept" pill (Inter 14pt 700, `#06281F` on `#15C39A`) + 44pt dismiss icon button at 10pt gap
|
|
163
|
+
- Premium-locked variant: Accept replaced by gold "Unlock with Premium" + lock glyph
|
|
164
|
+
|
|
165
|
+
### Document Score Ring
|
|
166
|
+
|
|
167
|
+
- Diameter: 38pt (top bar) / 60pt (insights screen)
|
|
168
|
+
- Track: 3pt `#E4E6E6` / `#2C2C2E`
|
|
169
|
+
- Progress arc: 3pt `#15C39A`, sweeps from 12 o'clock clockwise, length = score/100
|
|
170
|
+
- Center: score number Inter 13-17pt 700, color = `#15C39A` (≥90), `#E0A82E` (60–89), `#E5484D` (<60)
|
|
171
|
+
- Animation: arc fills 0 → target over 600ms ease-out when document opens or a suggestion is accepted
|
|
172
|
+
|
|
173
|
+
### Colored Underlines (inline marking)
|
|
174
|
+
|
|
175
|
+
- **Correctness**: 2pt solid wavy underline `#E5484D` under the flagged span
|
|
176
|
+
- **Clarity**: 18% `#3B82F6` background fill + 2pt solid `#3B82F6` underline, 2pt corner radius
|
|
177
|
+
- **Engagement**: 2pt dotted underline `#16A34A`
|
|
178
|
+
- **Delivery**: 2pt solid underline `#8B5CF6`
|
|
179
|
+
- Tapping a span: span scrolls to vertical center, suggestion card animates up, span gets a faint category-tint background while card is open
|
|
180
|
+
|
|
181
|
+
### Tone Detector
|
|
182
|
+
|
|
183
|
+
- A horizontal row above/below the editor: leading emoji (😊 / 🙂 / 😐 / 😟 reflecting detected sentiment) 18pt, "Tone sounds" label Inter 13pt `#6B6B70`, then 1–3 tone pills
|
|
184
|
+
- Tone pill: `#EEF0F0` / `#262629` background, 1pt divider border, Inter 12pt 600 `#1A1A1A` / `#E4E4E4`, 999pt radius, 5pt × 12pt padding
|
|
185
|
+
|
|
186
|
+
### Assistant Bar (pinned bottom)
|
|
187
|
+
|
|
188
|
+
- Height: 64pt + safe area, background `rgba(255,255,255,0.96)` / `rgba(18,18,18,0.96)` with saturate-blur, 0.5pt top border
|
|
189
|
+
- Leading: 36pt green orb (circle `#15C39A`) containing the white rotated-G logomark 20pt
|
|
190
|
+
- Center: count title Inter 15pt 700 ("14 suggestions"), subtitle Inter 11pt 600 `#6B6B70` ("3 Correctness · 6 Clarity · 5 Engagement")
|
|
191
|
+
- Trailing: "Review" CTA — small green pill, Inter 13pt 700 `#06281F`
|
|
192
|
+
- When zero suggestions: orb stays green, title becomes "All clear" with a check, no Review CTA
|
|
193
|
+
|
|
194
|
+
### Navigation
|
|
195
|
+
|
|
196
|
+
**Top Bar (Editor)**
|
|
197
|
+
- Height: 44pt + safe area
|
|
198
|
+
- Leading: back chevron `chevron.left` 22pt `#1A1A1A` / `#E4E4E4`
|
|
199
|
+
- Center: document title Inter 15pt 600, truncating
|
|
200
|
+
- Trailing: 38pt score ring
|
|
201
|
+
|
|
202
|
+
**Bottom Tab Bar (App shell — Documents / Assistant / Account)**
|
|
203
|
+
- Height: 56pt + safe area, `#FFFFFF` / `#121212`, 0.5pt top border
|
|
204
|
+
- 3 tabs: Documents (`doc.text`), Assistant (the green orb, center, slightly enlarged), Account (`person.circle`)
|
|
205
|
+
- Active color: `#15C39A`; inactive `#9A9A9F`
|
|
206
|
+
- Labels: Inter 11pt 600, always shown; no tint pill — icon + label color change only
|
|
207
|
+
|
|
208
|
+
### Input Fields
|
|
209
|
+
|
|
210
|
+
**New Document / Title Field**
|
|
211
|
+
- Height: 48pt, background `#F7F8F8` / `#1C1C1E`, no border, 12pt corner radius
|
|
212
|
+
- Placeholder: "Untitled document" Inter 16pt `#9A9A9F`
|
|
213
|
+
- Focus: 1.5pt `#15C39A` border
|
|
214
|
+
|
|
215
|
+
**Search (Documents list)**
|
|
216
|
+
- Height: 40pt, `#EEF0F0` / `#262629`, 999pt radius
|
|
217
|
+
- Leading `magnifyingglass` 16pt `#9A9A9F`, placeholder "Search documents" Inter 14pt `#9A9A9F`
|
|
218
|
+
|
|
219
|
+
### Distinctive Components
|
|
220
|
+
|
|
221
|
+
**Suggestion Card** — see core atom above; the defining component.
|
|
222
|
+
|
|
223
|
+
**Document Score Ring** — thin animated 0–100 gauge; the at-a-glance health metric.
|
|
224
|
+
|
|
225
|
+
**Colored Category Underlines** — the inline marking language; four hues, four treatments.
|
|
226
|
+
|
|
227
|
+
**Tone Detector Row** — emoji + tone pills; Grammarly's signature "how does this sound" read.
|
|
228
|
+
|
|
229
|
+
**Assistant Orb** — the rotated-G logomark in a green circle; appears in the bar, as the center tab, and as the floating keyboard-extension button.
|
|
230
|
+
|
|
231
|
+
**Weekly Insights Card** — a stat card on the Account tab: large score ring + "You were more productive than 88% of Grammarly users", productivity / mastery / vocabulary mini-rings.
|
|
232
|
+
|
|
233
|
+
**Custom Keyboard Strip** — in the Grammarly Keyboard extension: a thin strip above the keys showing the green orb + the next suggestion inline with a tap-to-accept chip.
|
|
234
|
+
|
|
235
|
+
## 5. Layout Principles
|
|
236
|
+
|
|
237
|
+
### Spacing System
|
|
238
|
+
- Base unit: 4pt
|
|
239
|
+
- Scale: 4, 8, 12, 16, 20, 24, 32, 40, 48, 64
|
|
240
|
+
- Editor horizontal inset: 20pt
|
|
241
|
+
- Card internal padding: 16pt
|
|
242
|
+
- Block / paragraph gap in editor: 16pt
|
|
243
|
+
- Suggestion card → assistant bar gap: 0 (card sits directly above bar)
|
|
244
|
+
|
|
245
|
+
### Grid & Container
|
|
246
|
+
- iPhone: editor at 20pt horizontal insets, full-width suggestion card minus 16pt insets
|
|
247
|
+
- iPad: editor max-width 680pt centered, 24pt insets; suggestion card can dock to a right rail (360pt) instead of sliding from bottom
|
|
248
|
+
- Documents list: single-column cards, 16pt insets, 12pt gap
|
|
249
|
+
|
|
250
|
+
### Whitespace Philosophy
|
|
251
|
+
- **The prose breathes**: 16pt body line-height becomes 1.65 — reading comfort outranks density
|
|
252
|
+
- **One thing at a time**: only one suggestion card is visible at once; the assistant walks you through serially
|
|
253
|
+
- **Chrome recedes**: top bar and assistant bar are the only persistent UI; everything else is the user's document
|
|
254
|
+
- **Cards float, prose is flat**: suggestion cards get a soft shadow; the editor surface itself has no borders or cards
|
|
255
|
+
|
|
256
|
+
### Border Radius Scale
|
|
257
|
+
- Square (0pt): underlines, full-bleed dividers
|
|
258
|
+
- Subtle (4pt): inline Clarity highlight, small chips
|
|
259
|
+
- Standard (8pt): list rows, banners
|
|
260
|
+
- Comfortable (12pt): input fields, settings cards
|
|
261
|
+
- Card (16pt): suggestion card, insights card
|
|
262
|
+
- Large (20pt): bottom sheets, modals
|
|
263
|
+
- Pill (999pt): all buttons, tone pills, score-count chip
|
|
264
|
+
- Circle (50%): assistant orb, score ring, avatars
|
|
265
|
+
|
|
266
|
+
## 6. Depth & Elevation
|
|
267
|
+
|
|
268
|
+
Grammarly is mostly flat — the editor has zero elevation so the prose reads like paper. Shadow is reserved for *the assistant speaking*.
|
|
269
|
+
|
|
270
|
+
| Level | Treatment | Use |
|
|
271
|
+
|-------|-----------|-----|
|
|
272
|
+
| Flat (Level 0) | No shadow | Editor surface, document text, list rows |
|
|
273
|
+
| Card (Level 1) | `rgba(0,0,0,0.12) 0 8px 24px` light / `rgba(0,0,0,0.5) 0 8px 24px` dark | Suggestion card, insights card |
|
|
274
|
+
| Bar (Level 2) | `rgba(0,0,0,0.10) 0 -2px 12px` + saturate-blur | Assistant bar, top bar on scroll |
|
|
275
|
+
| Sheet (Level 3) | `rgba(0,0,0,0.16) 0 -8px 32px` | Bottom sheets (share, settings, premium paywall) |
|
|
276
|
+
| Modal Scrim | `rgba(0,0,0,0.4)` | Dim behind paywall and confirm modals |
|
|
277
|
+
|
|
278
|
+
**Shadow Philosophy**: The suggestion card's shadow says "this is the assistant talking — it floats above your document and you can act on it or dismiss it." The editor itself never lifts. On dark mode, shadows are deepened to `0.5` opacity and floating surfaces add a 1pt `#2C2C2E` border as a secondary elevation cue, since shadow is hard to read on charcoal.
|
|
279
|
+
|
|
280
|
+
### Motion
|
|
281
|
+
- **Suggestion card present**: slides up from bottom edge + fades in over 280ms ease-out (spring response 0.4, damping 0.85); the tapped span scrolls to vertical center in parallel
|
|
282
|
+
- **Accept**: card fades + slides down 220ms ease-in; the flagged span animates old→new text with a 200ms crossfade; a 12% green wash flashes over the corrected span and fades over 600ms; soft success haptic
|
|
283
|
+
- **Dismiss**: card slides down 200ms ease-in; underline removed instantly
|
|
284
|
+
- **Score ring fill**: arc sweeps 0 → target over 600ms ease-out on document open; on accept, arc animates from old → new value over 400ms with a soft tick haptic at completion
|
|
285
|
+
- **Tone pills**: fade + 4pt rise in 200ms when tone is recomputed (debounced 800ms after typing stops)
|
|
286
|
+
- **Assistant bar count**: number rolls (odometer) over 250ms when suggestion count changes
|
|
287
|
+
- **Tab switch**: cross-dissolve 200ms; the center assistant orb has a gentle 1.0→1.06→1.0 pulse when new suggestions arrive
|
|
288
|
+
- **Haptic feedback**: soft success on Accept, light tick on score-ring completion, light impact on card present
|
|
289
|
+
|
|
290
|
+
## 7. Do's and Don'ts
|
|
291
|
+
|
|
292
|
+
### Do
|
|
293
|
+
- Use pure white (`#FFFFFF`) light / warm charcoal (`#121212`) dark as the editor canvas — NOT off-white, NOT pure black
|
|
294
|
+
- Use Grammarly Green (`#15C39A` → `#11A683`) as the ONE brand accent — CTAs, score ring, orb
|
|
295
|
+
- Color suggestion underlines by category — red Correctness, blue Clarity, green Engagement, purple Delivery
|
|
296
|
+
- Slide the suggestion card up from the bottom with a soft shadow — it is the assistant speaking
|
|
297
|
+
- Show one suggestion card at a time and walk the user serially via the assistant bar
|
|
298
|
+
- Keep editor body at 16pt/400 with 1.65 line-height — reading comfort first
|
|
299
|
+
- Make all buttons fully rounded pills (999pt)
|
|
300
|
+
- Animate the score ring arc filling on open and on accept (600ms / 400ms ease-out)
|
|
301
|
+
- Use the tone detector (emoji + tone pills) to summarize how the writing reads
|
|
302
|
+
- Flash a faint green wash over a span after Accept, then fade it (600ms)
|
|
303
|
+
- Use Premium Gold (`#E0A82E`) only for upsell — never as a functional or primary color
|
|
304
|
+
|
|
305
|
+
### Don't
|
|
306
|
+
- Don't use the four category colors (red/blue/green/purple) as buttons or CTAs — they only mark text
|
|
307
|
+
- Don't introduce a secondary brand color — Grammarly is monobrand green
|
|
308
|
+
- Don't put a card or border around the editor prose — the document is flat, only suggestion cards float
|
|
309
|
+
- Don't show multiple suggestion cards stacked — one at a time, serially
|
|
310
|
+
- Don't use pure black (`#000000`) for body text — warm near-black `#1A1A1A` light / `#E4E4E4` dark
|
|
311
|
+
- Don't cram the editor with a tight line-height — 1.65 is the calm reading rhythm
|
|
312
|
+
- Don't use rectangular (sharp-corner) buttons — every button is a pill
|
|
313
|
+
- Don't make the score ring jump instantly — it sweeps over 600ms
|
|
314
|
+
- Don't tint the active tab with a pill background — Notion-style color-only change (icon + label go green)
|
|
315
|
+
- Don't animate aggressively — motion is 200–600ms ease-out, calm and reassuring
|
|
316
|
+
- Don't surface the full card on a plain tap of unmarked text — cards appear only when a marked span is tapped or via the Review walkthrough
|
|
317
|
+
|
|
318
|
+
## 8. Responsive Behavior
|
|
319
|
+
|
|
320
|
+
### Device Sizes
|
|
321
|
+
| Device | Width | Key Changes |
|
|
322
|
+
|--------|-------|-------------|
|
|
323
|
+
| iPhone SE (3rd gen) | 375pt | Editor 16pt insets; suggestion card full-width; tone row wraps to 2 pills max |
|
|
324
|
+
| iPhone 13/14/15 | 390pt | Standard layout, 20pt editor insets |
|
|
325
|
+
| iPhone 15/16 Pro | 393pt | Dynamic Island accommodated in top bar |
|
|
326
|
+
| iPhone 15/16 Pro Max | 430pt | Larger editor measure; tone row shows up to 3 pills |
|
|
327
|
+
| iPad (portrait) | 768pt | Editor max 680pt centered; suggestion card docks to bottom OR right rail (user setting) |
|
|
328
|
+
| iPad (landscape) | 1024pt+ | 2-pane: documents list (320pt) + editor; suggestion card as 360pt right rail |
|
|
329
|
+
|
|
330
|
+
### Dynamic Type
|
|
331
|
+
- Document heading, editor body, suggestion title, explanation: full scale
|
|
332
|
+
- Category tags, tone pills, score number, assistant-bar labels, tab labels: FIXED (layout-sensitive)
|
|
333
|
+
- Code samples: scale to XL but stay SF Mono
|
|
334
|
+
|
|
335
|
+
### Orientation
|
|
336
|
+
- All screens rotate; iPad landscape promotes the documents list into a persistent sidebar
|
|
337
|
+
- Suggestion card relocates from bottom sheet (portrait) to right rail (landscape / iPad) so it never covers the prose being corrected
|
|
338
|
+
|
|
339
|
+
### Touch Targets
|
|
340
|
+
- Accept pill: full card width, 40pt tall
|
|
341
|
+
- Dismiss icon button: 44pt × 40pt
|
|
342
|
+
- Score ring (tap to open insights): 38pt glyph, 44pt hit
|
|
343
|
+
- Tab bar icons: 24pt glyph, 56pt hit
|
|
344
|
+
- Marked span tap: span height + 8pt vertical hit padding
|
|
345
|
+
|
|
346
|
+
### Safe Area Handling
|
|
347
|
+
- Top: top bar respects safe area and Dynamic Island
|
|
348
|
+
- Bottom: assistant bar + home indicator respected; suggestion card sits directly above the assistant bar, both above the home indicator
|
|
349
|
+
- Keyboard: editor scrolls above the keyboard; the suggestion card and assistant bar lift to sit above the keyboard when it is open
|
|
350
|
+
- Sides: 20pt editor inset (16pt on SE)
|
|
351
|
+
|
|
352
|
+
## 9. Agent Prompt Guide
|
|
353
|
+
|
|
354
|
+
### Quick Color Reference
|
|
355
|
+
- Canvas (light): `#FFFFFF`
|
|
356
|
+
- Canvas (dark): `#121212`
|
|
357
|
+
- Surface 1: `#F7F8F8` light / `#1C1C1E` dark
|
|
358
|
+
- Divider: `#E4E6E6` light / `#2C2C2E` dark
|
|
359
|
+
- Text primary: `#1A1A1A` light / `#E4E4E4` dark
|
|
360
|
+
- Text secondary: `#6B6B70` light / `#9A9A9F` dark
|
|
361
|
+
- Brand green (single accent): `#15C39A` → deep `#11A683` → pressed `#0E8A6D`
|
|
362
|
+
- Correctness underline: `#E5484D`
|
|
363
|
+
- Clarity underline/highlight: `#3B82F6`
|
|
364
|
+
- Engagement underline: `#16A34A`
|
|
365
|
+
- Delivery underline: `#8B5CF6`
|
|
366
|
+
- Premium gold: `#E0A82E`
|
|
367
|
+
- Accept-flash wash: `#15C39A1F`
|
|
368
|
+
|
|
369
|
+
### Example Component Prompts
|
|
370
|
+
- "Build the Grammarly suggestion card in SwiftUI: a bottom-anchored card, `#F7F8F8` light / `#1C1C1E` dark, 16pt corner radius, 1pt divider border, shadow `rgba(0,0,0,0.12) 0 8px 24px`. Header row: 10pt category dot (Correctness `#E5484D`) + 'CORRECTNESS' in Inter 12pt w700 uppercase `#6B6B70`. Swap line: old word `#E5484D` with strikethrough, '→' `#9A9A9F`, new word `#15C39A` w600, Inter 16pt. Explanation: Inter 14pt w400 `#6B6B70`, max 2 lines. Actions: full-width green Accept pill (Inter 14pt w700, `#06281F` on `#15C39A`, 999pt radius) + 44×40 dismiss icon button. Card slides up + fades over 280ms spring, soft haptic."
|
|
371
|
+
|
|
372
|
+
- "Create the Grammarly document score ring: 38pt circle, 3pt track `#E4E6E6`, 3pt progress arc `#15C39A` sweeping clockwise from 12 o'clock, arc length = score/100. Center number Inter 13pt w700, color `#15C39A` if ≥90 else `#E0A82E` if ≥60 else `#E5484D`. On appear, animate arc 0 → score over 600ms ease-out; on accept, animate old → new value over 400ms with a light tick haptic."
|
|
373
|
+
|
|
374
|
+
- "Render Grammarly colored underlines on a text run: Correctness = 2pt solid wavy `#E5484D` underline; Clarity = 18% `#3B82F6` background fill + 2pt solid `#3B82F6` underline, 2pt corner radius; Engagement = 2pt dotted `#16A34A`; Delivery = 2pt solid `#8B5CF6`. On tap, scroll the span to vertical center, give it a faint category-tint background, and present the suggestion card from the bottom."
|
|
375
|
+
|
|
376
|
+
- "Build the Grammarly assistant bar: 64pt + safe area, `rgba(18,18,18,0.96)` dark with saturate blur, 0.5pt top border. Leading 36pt green circle `#15C39A` with white rotated-G logomark 20pt. Center: 'X suggestions' Inter 15pt w700 + subtitle '3 Correctness · 6 Clarity · 5 Engagement' Inter 11pt w600 `#9A9A9F`. Trailing small green 'Review' pill Inter 13pt w700 `#06281F`. When count is 0: title 'All clear' + check, no Review CTA. Count rolls odometer-style over 250ms on change."
|
|
377
|
+
|
|
378
|
+
- "Create the Grammarly tone detector row: leading emoji 18pt (😊/🙂/😐/😟 by sentiment), 'Tone sounds' Inter 13pt `#6B6B70`, then 1–3 tone pills. Tone pill: `#262629` bg, 1pt `#2C2C2E` border, Inter 12pt w600 `#E4E4E4`, 999pt radius, 5×12 padding. Recompute debounced 800ms after typing stops; pills fade + 4pt rise over 200ms."
|
|
379
|
+
|
|
380
|
+
- "Build the Grammarly accept interaction: on tap Accept, fade+slide the card down 220ms ease-in, crossfade the flagged span's old→new text over 200ms, flash a 12% `#15C39A` wash over the corrected span fading over 600ms, decrement the assistant-bar count with an odometer roll, advance the score ring to its new value over 400ms, fire a soft success haptic."
|
|
381
|
+
|
|
382
|
+
### Iteration Guide
|
|
383
|
+
1. Canvas is pure white light / warm charcoal `#121212` dark — NOT pure black, NOT off-white
|
|
384
|
+
2. There is exactly ONE brand accent: Grammarly Green `#15C39A` (deep `#11A683`) — every CTA, the ring, the orb
|
|
385
|
+
3. The four category colors (red/blue/green/purple) mark text ONLY — never buttons, never CTAs
|
|
386
|
+
4. The suggestion card slides up from the bottom with a soft shadow — it is the assistant speaking
|
|
387
|
+
5. Show ONE suggestion card at a time; the assistant bar walks the user through serially
|
|
388
|
+
6. Editor body is 16pt/400 with 1.65 line-height — reading comfort beats density
|
|
389
|
+
7. Every button is a fully rounded pill (999pt)
|
|
390
|
+
8. The score ring is a thin animated 0–100 arc that fills green on open and on accept
|
|
391
|
+
9. Premium Gold `#E0A82E` is upsell-only — never functional, never primary
|
|
392
|
+
10. Motion is calm: 200–600ms ease-out, soft haptics, an odometer count, a green accept-flash that fades
|