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,447 @@
|
|
|
1
|
+
# Design System Inspiration of Claude (iOS)
|
|
2
|
+
|
|
3
|
+
## 1. Visual Theme & Atmosphere
|
|
4
|
+
|
|
5
|
+
Claude's iOS app feels like an AI assistant rendered on a piece of warm paper. Anthropic deliberately rejected the cold blue-grey aesthetic that defined ChatGPT's first wave of imitators and instead chose a sun-warmed cream canvas (`#F8F4ED`), inky near-black type, and a single signature accent — Claude Orange (`#D97757`) — that appears on the send button, the active state of the model picker, and the asterisk-star logomark. The result is a chat surface that reads as humanist before it reads as technological: the AI doesn't shout at you in neon; it sits next to you on the same paper, in the same handwriting.
|
|
6
|
+
|
|
7
|
+
The orange itself is famously specific — it's a desaturated, slightly clay-toned terracotta, not a vivid tech orange. It carries the brand without dominating the screen because almost everything else is type and surface. Anthropic's design language is restraint: there are no gradients, no glass blurs over the chat content, no glow halos on buttons. The signature visual is text quality — long, beautifully typeset messages flowing across the cream canvas with serif headings inside the assistant's responses, paired with the artifact tray that slides out from the right when Claude renders code, a document, or a visualization.
|
|
8
|
+
|
|
9
|
+
Typography is the central design system. Anthropic uses Tiempos (a serif by Klim Type Foundry) for assistant message body text — the choice of a serif inside an AI app is itself a statement, because every other chat app uses sans for the assistant's responses. Headings within assistant messages are in Tiempos Headline; body is Tiempos Text; user messages and UI chrome are in Styrene (Klim's geometric humanist sans) or Inter as substitute. The voice the type carries is editorial-essayist: Claude reads like an essayist, not a chatbot, and the typography is the manifest of that intent.
|
|
10
|
+
|
|
11
|
+
**Key Characteristics:**
|
|
12
|
+
- Cream paper canvas (`#F8F4ED`) — the Claude "paper" — and a slightly whiter `#FBF9F4` for input fields and elevated surfaces
|
|
13
|
+
- Claude Orange (`#D97757`) — desaturated terracotta — for the send button, active model chip, and the asterisk-star logomark
|
|
14
|
+
- Tiempos serif for assistant message body (the central typographic choice); Styrene/Inter sans for user messages and UI chrome
|
|
15
|
+
- Asterisk-star logomark — a 6-point asterisk-meets-star glyph in Claude Orange — appearing on the avatar of every Claude message
|
|
16
|
+
- Artifact tray that slides out from the right (on iPad) or expands as a full-screen card (on iPhone) when Claude generates code or a document
|
|
17
|
+
- Model picker chip at the top: "Claude Opus 4", "Claude Sonnet 4.5", etc., with a small orange dot when the active model is Opus
|
|
18
|
+
- File and image attachments via a paperclip-plus button beside the input
|
|
19
|
+
- Streaming response cursor — a small blinking orange caret that animates while Claude is generating
|
|
20
|
+
- Subtle, paper-warm shadows (`rgba(40, 30, 20, 0.06)`) — never blue-grey
|
|
21
|
+
- Bottom safe-area pinned input bar with auto-grow textarea, model chip, paperclip, and the orange send circle
|
|
22
|
+
|
|
23
|
+
## 2. Color Palette & Roles
|
|
24
|
+
|
|
25
|
+
### Primary
|
|
26
|
+
- **Claude Orange** (`#D97757`): The signature accent — Send button fill, asterisk-star logomark, active state of model picker, streaming cursor, link color in assistant messages.
|
|
27
|
+
- **Orange Pressed** (`#BE6242`): Pressed state on the Send button.
|
|
28
|
+
- **Orange Soft** (`#F2DDD0`): Background of the active model chip, the "thinking…" indicator soft fill.
|
|
29
|
+
|
|
30
|
+
### Canvas (the Claude Paper)
|
|
31
|
+
- **Cream Paper** (`#F8F4ED`): The primary canvas — every chat screen background by default. The most recognizable Claude surface treatment.
|
|
32
|
+
- **Paper White** (`#FBF9F4`): Slightly elevated surfaces — input field background, code block background.
|
|
33
|
+
- **Surface Warm 1** (`#F0EAE0`): Section dividers, settings backgrounds, soft callouts.
|
|
34
|
+
- **Surface Warm 2** (`#E8E0D2`): Pressed states, hover/touch chip fills.
|
|
35
|
+
- **Divider Sand** (`#DDD2BD`): 0.5pt hairline row dividers on settings.
|
|
36
|
+
|
|
37
|
+
### Text
|
|
38
|
+
- **Ink** (`#2D2520`): Primary text — assistant message body, user message body, screen titles. Warm near-black, not pure.
|
|
39
|
+
- **Graphite Warm** (`#5A4F44`): Secondary text — timestamps, "Claude" / "You" sender labels, metadata.
|
|
40
|
+
- **Stone Warm** (`#8A7E72`): Tertiary text — placeholder, helper, "Press enter to send" hint.
|
|
41
|
+
- **Bone Warm** (`#B5AB9E`): Disabled labels, very-secondary metadata.
|
|
42
|
+
|
|
43
|
+
### Code & Syntax (inside code blocks and artifacts)
|
|
44
|
+
- **Code Background** (`#1F1B16`): Dark warm canvas inside fenced code blocks — slightly orange-tinted, never blue-tinted
|
|
45
|
+
- **Code Text** (`#E8E0D2`): Default code text
|
|
46
|
+
- **Syntax Keyword** (`#D97757`): Keywords like `function`, `const`, `return` — Claude Orange
|
|
47
|
+
- **Syntax String** (`#7FB069`): Strings in code — sage green
|
|
48
|
+
- **Syntax Number** (`#E8B96F`): Numbers — warm gold
|
|
49
|
+
- **Syntax Comment** (`#8A7E72`): Comments — warm grey
|
|
50
|
+
- **Syntax Function** (`#9DA4F2`): Function names — soft periwinkle
|
|
51
|
+
|
|
52
|
+
### Semantic
|
|
53
|
+
- **Success Green** (`#6B9D5E`): "Copied" toast, "Saved" confirmations — sage, not lime
|
|
54
|
+
- **Warning Amber** (`#D49952`): "Approaching context limit" — warm amber
|
|
55
|
+
- **Error Red** (`#C16654`): Form errors, "Failed to send" — terracotta-toned red, not pure
|
|
56
|
+
- **Info Slate** (`#5A6273`): Rarely used — "Beta" badges, "What's new" callouts
|
|
57
|
+
|
|
58
|
+
### Dark Mode
|
|
59
|
+
Claude's dark mode launched alongside the iOS app. It is warm-dark, preserving the paper feel.
|
|
60
|
+
- **Dark Canvas** (`#1F1B16`): Primary dark background — warm near-black, slightly orange-undertoned.
|
|
61
|
+
- **Dark Surface 1** (`#2A2520`): Cards, sheets, input field fill.
|
|
62
|
+
- **Dark Surface 2** (`#3A332C`): Pressed states, chip fills, hover.
|
|
63
|
+
- **Dark Divider** (`#3A332C`): Hairlines.
|
|
64
|
+
- **Dark Text Primary** (`#E8E0D2`): Inverted Ink — warm cream type.
|
|
65
|
+
- **Dark Text Secondary** (`#B5AB9E`): Inverted Graphite Warm.
|
|
66
|
+
- **Claude Orange (dark)** (`#D97757`): Unchanged — the orange reads well on warm dark canvas.
|
|
67
|
+
- **Orange Soft (dark)** (`#4A352A`): Dark mode active-chip background.
|
|
68
|
+
|
|
69
|
+
## 3. Typography Rules
|
|
70
|
+
|
|
71
|
+
### Font Family
|
|
72
|
+
- **Primary (assistant body)**: `Tiempos Text` — proprietary serif by Klim Type Foundry, the central typographic choice of the Claude brand
|
|
73
|
+
- **Display (headings inside assistant messages)**: `Tiempos Headline` — the same family at heavier display weights
|
|
74
|
+
- **Secondary (UI chrome, user messages)**: `Styrene A` or `Styrene B` (Klim) — geometric humanist sans
|
|
75
|
+
- **Weights available**: Tiempos Regular (400), Medium (500), Semibold (600), Bold (700); Styrene Regular (400), Medium (500), Bold (700)
|
|
76
|
+
- **Fallback stack for serif**: `'Source Serif Pro', 'Georgia', 'Times New Roman', serif` — Source Serif is the closest Google Fonts substitute
|
|
77
|
+
- **Fallback stack for sans**: `-apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text', 'Inter', sans-serif`
|
|
78
|
+
- **Web/marketing Google Fonts substitute**: `Source Serif 4` for the serif and `Inter` for the sans — both ship on most platforms
|
|
79
|
+
|
|
80
|
+
### Hierarchy
|
|
81
|
+
|
|
82
|
+
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
|
83
|
+
|------|------|------|--------|-------------|----------------|-------|
|
|
84
|
+
| Display (Settings, About) | Tiempos Headline | 32pt | 600 | 1.2 | -0.4pt | "Settings", "About Claude" |
|
|
85
|
+
| Conversation Title | Styrene A | 18pt | 600 | 1.25 | -0.1pt | Auto-generated chat title at the top of conversation |
|
|
86
|
+
| H1 (Assistant) | Tiempos Headline | 24pt | 600 | 1.3 | -0.2pt | Top-level headings inside Claude's response |
|
|
87
|
+
| H2 (Assistant) | Tiempos Headline | 20pt | 600 | 1.3 | -0.1pt | Section headings inside response |
|
|
88
|
+
| H3 (Assistant) | Tiempos Headline | 17pt | 600 | 1.35 | 0pt | Subsection in response |
|
|
89
|
+
| Assistant Body | Tiempos Text | 16pt | 400 | 1.55 | 0pt | The most-rendered text in the app — Claude's prose |
|
|
90
|
+
| Assistant Body Italic | Tiempos Text Italic | 16pt | 400 | 1.55 | 0pt | Emphasis in Claude's responses |
|
|
91
|
+
| Assistant Body Bold | Tiempos Text | 16pt | 600 | 1.55 | 0pt | Emphasis in Claude's responses |
|
|
92
|
+
| User Message | Styrene A | 16pt | 400 | 1.5 | 0pt | What the user typed |
|
|
93
|
+
| User Message Background | n/a | n/a | n/a | n/a | n/a | The user message sits in a Surface Warm 1 pill, not a chat bubble |
|
|
94
|
+
| Inline Code | JetBrains Mono | 14pt | 500 | 1.4 | 0pt | `inline code` inside prose |
|
|
95
|
+
| Code Block | JetBrains Mono | 14pt | 400 | 1.5 | 0pt | Fenced code blocks |
|
|
96
|
+
| List Item | Tiempos Text | 16pt | 400 | 1.5 | 0pt | Bullet / numbered list items in Claude's response |
|
|
97
|
+
| Blockquote | Tiempos Text Italic | 16pt | 400 | 1.5 | 0pt | Block-quoted text in Claude's response |
|
|
98
|
+
| Input Placeholder | Styrene A | 16pt | 400 | 1.4 | 0pt | "Reply to Claude…" |
|
|
99
|
+
| Button (Send) | n/a (icon) | n/a | n/a | n/a | n/a | The Send button is icon-only |
|
|
100
|
+
| Button (Action) | Styrene A | 15pt | 600 | 1.0 | 0pt | "Continue", "Reset chat" |
|
|
101
|
+
| Model Chip | Styrene A | 13pt | 500 | 1.0 | 0pt | "Claude Opus 4" in the picker |
|
|
102
|
+
| Metadata | Styrene A | 12pt | 400 | 1.3 | 0pt | Timestamps, "Claude Opus 4 · 2:14 PM" |
|
|
103
|
+
| Caption | Styrene A | 11pt | 400 | 1.3 | 0pt | "Press ⏎ to send" |
|
|
104
|
+
|
|
105
|
+
### Principles
|
|
106
|
+
- **Serif body for Claude, sans for the user**: This single decision is the brand. When Claude replies in Tiempos and you reply in Styrene, the conversation has a typographic role-asymmetry that no other AI app reproduces.
|
|
107
|
+
- **Loose line-height on assistant body**: 1.55x at 16pt — Claude's responses are essays, not Slack messages. Generous leading is non-negotiable.
|
|
108
|
+
- **Warm ink, never pure black**: Body text sits at `#2D2520`, not `#000000` — alongside the cream canvas, this is what makes the chat feel like print.
|
|
109
|
+
- **Markdown rendering is the design**: Headings, lists, quotes, code blocks, tables, and bold/italic all render their distinct typographic identity inside Claude's responses. The chat surface is a long-form document, not a string of bubbles.
|
|
110
|
+
- **Dynamic Type respected on all reading text**: Assistant body, headings, user messages all scale; the model chip, timestamps, and the send icon are fixed (layout-sensitive).
|
|
111
|
+
- **Slight optical sizing**: Tiempos Headline is used at 17pt+ for headings; Tiempos Text at 16pt for body. Don't mix them at the same size.
|
|
112
|
+
|
|
113
|
+
## 4. Component Stylings
|
|
114
|
+
|
|
115
|
+
### Buttons
|
|
116
|
+
|
|
117
|
+
**Send Circle (the orange icon-only send)**
|
|
118
|
+
- Diameter: 40pt
|
|
119
|
+
- Background: `#D97757` (Claude Orange) when input has text; `#E8E0D2` (Surface Warm 2) when input is empty
|
|
120
|
+
- Icon: 16pt arrow-up glyph, color `#FBF9F4` (Paper White) when active, `#8A7E72` (Stone) when disabled
|
|
121
|
+
- Pressed: scale 0.94, background `#BE6242`
|
|
122
|
+
- Haptic: `.impactOccurred(.medium)` on send
|
|
123
|
+
- Sits trailing the input field, vertically centered
|
|
124
|
+
|
|
125
|
+
**Action Button (Continue / Reset / Regenerate)**
|
|
126
|
+
- Background: `#FBF9F4` (Paper White)
|
|
127
|
+
- Border: 1pt `#DDD2BD` (Divider Sand)
|
|
128
|
+
- Text: `#2D2520` (Ink), Styrene A 15pt weight 600
|
|
129
|
+
- Padding: 10pt vertical, 18pt horizontal
|
|
130
|
+
- Corner radius: 10pt
|
|
131
|
+
- Pressed: background `#F0EAE0`
|
|
132
|
+
- These appear at the end of an assistant message as suggested next actions
|
|
133
|
+
|
|
134
|
+
**Primary Pill (Continue conversation, sign-up CTAs)**
|
|
135
|
+
- Background: `#2D2520` (Ink — warm black)
|
|
136
|
+
- Text: `#FBF9F4` (Paper White)
|
|
137
|
+
- Padding: 14pt vertical, 28pt horizontal
|
|
138
|
+
- Corner radius: 24pt (capsule)
|
|
139
|
+
- Pressed: scale 0.97
|
|
140
|
+
|
|
141
|
+
**Copy Button (on code blocks and messages)**
|
|
142
|
+
- Floats top-right inside code blocks and on the right edge of long assistant messages on hover/tap
|
|
143
|
+
- 32pt × 32pt button, `rgba(255, 255, 255, 0.05)` background inside dark code blocks; `#F0EAE0` on cream
|
|
144
|
+
- Icon: `doc.on.doc` 14pt
|
|
145
|
+
- On press: icon morphs to `checkmark` for 1200ms with a small "Copied" toast slide-up
|
|
146
|
+
|
|
147
|
+
### Cards & Containers
|
|
148
|
+
|
|
149
|
+
**User Message Pill (the user-said-it container)**
|
|
150
|
+
- The user's message sits in a soft pill, NOT a chat bubble with a tail
|
|
151
|
+
- Background: `#F0EAE0` (Surface Warm 1)
|
|
152
|
+
- Padding: 12pt vertical, 16pt horizontal
|
|
153
|
+
- Corner radius: 18pt
|
|
154
|
+
- Max width: 80% of screen width
|
|
155
|
+
- Aligned right (or right-of-center on iPad)
|
|
156
|
+
- Text: Styrene A 16pt Regular `#2D2520`
|
|
157
|
+
- No metadata strip — the timestamp shows on tap
|
|
158
|
+
|
|
159
|
+
**Assistant Message Block (the conversation hero)**
|
|
160
|
+
- The assistant's message is a full-width flow of typography — NO pill, NO bubble, NO container background
|
|
161
|
+
- 16pt avatar (asterisk-star in Claude Orange) at the leading edge, 12pt before the text
|
|
162
|
+
- "Claude" sender label in Styrene A 13pt Medium `#5A4F44`, with the model name in 13pt Regular `#8A7E72` next to it
|
|
163
|
+
- The body content renders as a long-form document: Tiempos Text 16pt with full markdown — headings (Tiempos Headline 17-24pt), lists, code, quotes, all distinct typographic identities
|
|
164
|
+
- The full assistant message can run as tall as needed; the conversation scrolls naturally
|
|
165
|
+
- A faint 1pt `#F0EAE0` divider sits between turns, 32pt above and below
|
|
166
|
+
|
|
167
|
+
**Code Block (inside assistant messages)**
|
|
168
|
+
- Background: `#1F1B16` (Code Background — warm dark, never blue)
|
|
169
|
+
- Border: 0.5pt `#3A332C` in dark theme; 1pt `#DDD2BD` on cream
|
|
170
|
+
- Corner radius: 12pt
|
|
171
|
+
- Padding: 16pt all around
|
|
172
|
+
- Header strip (top of block): language name in JetBrains Mono 11pt `#8A7E72` left-aligned + Copy button right-aligned, 1pt `#3A332C` bottom divider
|
|
173
|
+
- Code text: JetBrains Mono 14pt Regular `#E8E0D2` on warm dark
|
|
174
|
+
- Syntax highlighting uses the warm palette (orange keywords, sage strings, gold numbers, periwinkle functions)
|
|
175
|
+
- Horizontal scroll for long lines, no wrap
|
|
176
|
+
|
|
177
|
+
**Inline Code**
|
|
178
|
+
- Background: `#F0EAE0` on cream; `#3A332C` on dark
|
|
179
|
+
- Padding: 1pt vertical, 4pt horizontal
|
|
180
|
+
- Corner radius: 4pt
|
|
181
|
+
- Font: JetBrains Mono 14pt Medium `#2D2520`
|
|
182
|
+
|
|
183
|
+
**Artifact Card (when Claude generates a document, code file, chart)**
|
|
184
|
+
- On iPhone: appears as a card inset in the message flow — 12pt corner radius, `#FBF9F4` Paper White background, 1pt `#DDD2BD` border, padding 16pt
|
|
185
|
+
- Tap to open: presents as a full-screen modal with the artifact rendered + a "Continue editing" button
|
|
186
|
+
- Top of card: artifact title in Tiempos Headline 17pt Medium + a small icon indicating type (document / code / chart)
|
|
187
|
+
- Body of card: a preview — first ~6 lines of code, or a thumbnail of the rendered document
|
|
188
|
+
- Footer: "Open" button on the right
|
|
189
|
+
- On iPad: opens as a side-pane that takes 40% of the screen width, leaving the chat at 60%; the divider between is draggable
|
|
190
|
+
|
|
191
|
+
**Conversation Card (in the sidebar / history list)**
|
|
192
|
+
- Each row: 64pt tall, full width
|
|
193
|
+
- 14pt vertical / 16pt horizontal padding
|
|
194
|
+
- First line: title in Styrene A 15pt Medium `#2D2520`, 1-line truncate
|
|
195
|
+
- Second line: timestamp in Styrene A 12pt Regular `#8A7E72`
|
|
196
|
+
- Selected state: `#F0EAE0` background, 1pt `#DDD2BD` left border (3pt wide indicator at the leading edge)
|
|
197
|
+
- Hover/press: subtle `#F0EAE0` fill
|
|
198
|
+
|
|
199
|
+
### Navigation
|
|
200
|
+
|
|
201
|
+
**Top Header Bar**
|
|
202
|
+
- Height: 52pt (slim header)
|
|
203
|
+
- Background: `#F8F4ED` (canvas), no blur — content scrolls naturally underneath
|
|
204
|
+
- Leading: sidebar toggle button (3-line hamburger glyph, `#2D2520`)
|
|
205
|
+
- Title: the conversation title in Styrene A 17pt Semibold `#2D2520`, centered or left-of-center
|
|
206
|
+
- Trailing: "..." overflow menu (model picker, settings, share)
|
|
207
|
+
|
|
208
|
+
**Model Picker Chip (at the top of every conversation)**
|
|
209
|
+
- Sits beneath the header, 8pt below
|
|
210
|
+
- A small pill: `#F0EAE0` (Surface Warm 1) background, 6pt vertical / 12pt horizontal padding, 16pt corner radius
|
|
211
|
+
- Content: 14pt asterisk-star glyph in `#D97757` Claude Orange + "Claude Opus 4" in Styrene A 13pt Medium `#2D2520` + downward chevron 10pt `#8A7E72`
|
|
212
|
+
- Tap opens a sheet with model options; the active model has a `#D97757` orange dot to its left
|
|
213
|
+
|
|
214
|
+
**Sidebar (Conversation History)**
|
|
215
|
+
- Slides in from the left on iPhone (full-screen modal); persistent on iPad (260pt width)
|
|
216
|
+
- Background: `#F0EAE0` (Surface Warm 1)
|
|
217
|
+
- Top: "+ New chat" button — full width, `#FBF9F4` Paper White background, 1pt `#DDD2BD` border, 12pt corner radius, 12pt vertical padding, leading 16pt plus icon + Styrene A 15pt Medium label
|
|
218
|
+
- Below: list of conversation rows grouped by date — "Today", "Yesterday", "Last 7 days", etc.
|
|
219
|
+
- Group headers: Styrene A 11pt Bold UPPERCASE `#8A7E72`, 0.4pt letter spacing
|
|
220
|
+
- Each row: see Conversation Card above
|
|
221
|
+
|
|
222
|
+
**No Bottom Tab Bar**
|
|
223
|
+
- Claude does not use a bottom tab bar — the app is a single-purpose chat. Navigation is via sidebar.
|
|
224
|
+
|
|
225
|
+
### Input Fields
|
|
226
|
+
|
|
227
|
+
**Chat Input (the most-used input — auto-growing textarea)**
|
|
228
|
+
- Width: full minus 32pt margins
|
|
229
|
+
- Background: `#FBF9F4` (Paper White)
|
|
230
|
+
- Border: 1pt `#DDD2BD` default; 1.5pt `#D97757` focused (orange ring)
|
|
231
|
+
- Corner radius: 20pt (capsule when single-line, softer when grown to multi-line)
|
|
232
|
+
- Min height: 52pt; auto-grow up to 200pt before becoming scrollable
|
|
233
|
+
- Padding: 14pt vertical, 18pt left, 56pt right (to make room for the send button)
|
|
234
|
+
- Placeholder: "Reply to Claude…" in Styrene A 16pt Regular `#8A7E72`
|
|
235
|
+
- Text: Styrene A 16pt Regular `#2D2520`
|
|
236
|
+
- Trailing: paperclip-plus button (28pt circle, transparent, `#5A4F44` icon) leading the send button
|
|
237
|
+
- Send circle: 40pt circle, Claude Orange when active, see Send Circle spec
|
|
238
|
+
- Below the input: a thin row of action chips ("Code interpreter", "Web search", "Use my docs") in Styrene A 11pt Medium pills, only visible when input is empty
|
|
239
|
+
|
|
240
|
+
**Settings Text Field**
|
|
241
|
+
- Background: `#FBF9F4`
|
|
242
|
+
- Border: 1pt `#DDD2BD` default, 1.5pt `#2D2520` focused
|
|
243
|
+
- Corner radius: 10pt
|
|
244
|
+
- Height: 48pt
|
|
245
|
+
- Padding: 12pt vertical, 14pt horizontal
|
|
246
|
+
- Label: above the field in Styrene A 13pt Medium `#5A4F44`
|
|
247
|
+
|
|
248
|
+
### Distinctive Components
|
|
249
|
+
|
|
250
|
+
**Asterisk-Star Logomark (Claude's avatar)**
|
|
251
|
+
- A 6-point asterisk-meets-star symbol — Anthropic's Claude logomark
|
|
252
|
+
- Rendered as a single shape: 6 narrow petals radiating from the center, slightly rounded tips, evoking a star/sparkle/asterisk hybrid
|
|
253
|
+
- Render: `#D97757` Claude Orange on cream; `#D97757` on dark (it pops on warm dark too)
|
|
254
|
+
- Sizes: 14pt in the model chip, 18pt on assistant message avatars, 28pt+ in onboarding hero, 56pt on splash
|
|
255
|
+
|
|
256
|
+
**Streaming Response Cursor**
|
|
257
|
+
- A small orange caret that appears at the trailing edge of Claude's response while the model is generating
|
|
258
|
+
- 8pt wide, 18pt tall, `#D97757`
|
|
259
|
+
- Animation: blinks at 600ms interval (300ms on / 300ms off); pauses while a new token arrives, then resumes
|
|
260
|
+
- Disappears when the response is complete; replaced by the action buttons (Continue, Regenerate, Copy)
|
|
261
|
+
|
|
262
|
+
**"Thinking…" Indicator (extended thinking models)**
|
|
263
|
+
- Appears when Opus or Sonnet with extended thinking is generating before the visible response
|
|
264
|
+
- A small pill: `#F2DDD0` (Orange Soft) background, 6pt vertical / 12pt horizontal padding, 12pt corner radius
|
|
265
|
+
- Content: 14pt asterisk-star pulsing + "Thinking…" in Styrene A 13pt Medium `#5A4F44`
|
|
266
|
+
- The asterisk pulses scale 1.0 → 1.15 → 1.0 every 1200ms while visible
|
|
267
|
+
- Optional: a subtle progress indicator on long thinking — "Thought for 14s"
|
|
268
|
+
|
|
269
|
+
**Model Picker Sheet**
|
|
270
|
+
- A bottom sheet, 24pt top corners, `#FBF9F4` Paper White background
|
|
271
|
+
- List of models — each row is 64pt tall with:
|
|
272
|
+
- 24pt asterisk-star icon at the leading edge (Claude Orange for active, `#B5AB9E` muted for unavailable)
|
|
273
|
+
- Model name in Styrene A 16pt Medium `#2D2520`
|
|
274
|
+
- Sub-line: "Most intelligent" / "Fast and capable" / "Quickest" in Styrene A 13pt Regular `#5A4F44`
|
|
275
|
+
- A `#D97757` orange dot at the trailing edge when this is the currently selected model
|
|
276
|
+
- 1pt `#F0EAE0` divider between rows
|
|
277
|
+
- Tap selects + dismisses the sheet with a `.selectionChanged()` haptic
|
|
278
|
+
|
|
279
|
+
**Onboarding Hero**
|
|
280
|
+
- Full-screen `#F8F4ED` cream canvas
|
|
281
|
+
- 80pt asterisk-star logomark centered, `#D97757`
|
|
282
|
+
- "Hi, I'm Claude" in Tiempos Headline 32pt Semibold `#2D2520` centered, 24pt below the logomark
|
|
283
|
+
- Subline: "An AI assistant by Anthropic." in Tiempos Text 16pt `#5A4F44` centered
|
|
284
|
+
- Primary CTA: "Start a conversation" — Ink Pill at the bottom
|
|
285
|
+
|
|
286
|
+
## 5. Layout Principles
|
|
287
|
+
|
|
288
|
+
### Spacing System
|
|
289
|
+
- Base unit: 4pt
|
|
290
|
+
- Scale: 4, 8, 12, 16, 20, 24, 32, 40, 48, 64, 80
|
|
291
|
+
- Standard horizontal margin: 20pt on iPhone, 32pt on iPad
|
|
292
|
+
- Vertical gap between conversation turns: 32pt (with the faint divider centered)
|
|
293
|
+
- Generous internal padding: 16pt inside code blocks and artifact cards
|
|
294
|
+
|
|
295
|
+
### Grid & Container
|
|
296
|
+
- Content width: full minus 20pt margins on iPhone
|
|
297
|
+
- On iPad: max content width 720pt centered with side margins, so the prose stays readable
|
|
298
|
+
- Sidebar: 260pt fixed width on iPad; full-screen modal on iPhone
|
|
299
|
+
- Artifact pane on iPad: 40% screen width by default, draggable to 30-60%
|
|
300
|
+
|
|
301
|
+
### Whitespace Philosophy
|
|
302
|
+
- **The chat is a long-form essay**: Claude's responses can be hundreds of lines — the spacing has to accommodate reading, not scanning
|
|
303
|
+
- **Generous between turns**: 32pt gap with a faint divider; user pills and assistant flows are visually distinct
|
|
304
|
+
- **Tight inside the assistant message**: standard 1.55x line-height inside Tiempos body; headings get +12pt above and +4pt below; lists get 8pt between items
|
|
305
|
+
- **Margin-driven, not divider-driven**: Claude rarely uses heavy dividers; whitespace and type-weight differentiate sections
|
|
306
|
+
|
|
307
|
+
### Border Radius Scale
|
|
308
|
+
- Square (0pt): rarely used — only on hairline rules
|
|
309
|
+
- Small (4pt): inline code, tags
|
|
310
|
+
- Medium (10pt): settings rows, action buttons, code-block badges
|
|
311
|
+
- Standard (12pt): code blocks, artifact cards, "+ New chat" button
|
|
312
|
+
- Soft (16pt): model chip
|
|
313
|
+
- Large (18pt): user message pills
|
|
314
|
+
- XL (20pt): chat input field
|
|
315
|
+
- Capsule (24pt): primary pills, CTAs
|
|
316
|
+
- Sheet (24pt top corners): bottom sheets, modals
|
|
317
|
+
- Circle (50%): send button, asterisk-star avatar
|
|
318
|
+
|
|
319
|
+
## 6. Depth & Elevation
|
|
320
|
+
|
|
321
|
+
| Level | Treatment | Use |
|
|
322
|
+
|-------|-----------|-----|
|
|
323
|
+
| Flat (Level 0) | No shadow | Canvas, assistant message blocks, dividers |
|
|
324
|
+
| Subtle (Level 1) | `rgba(40, 30, 20, 0.04) 0 1px 2px` | User message pills, action buttons on hover |
|
|
325
|
+
| Card (Level 2) | `rgba(40, 30, 20, 0.06) 0 2px 8px` | Artifact cards, code blocks (light theme) |
|
|
326
|
+
| Floating (Level 3) | `rgba(40, 30, 20, 0.10) 0 4px 16px` | Model picker chip on press, sidebar shadow |
|
|
327
|
+
| Overlay (Level 4) | `rgba(40, 30, 20, 0.14) 0 8px 24px` | Bottom sheets, model picker sheet |
|
|
328
|
+
| Sheet (Level 5) | `rgba(40, 30, 20, 0.18) 0 -12px 32px` | Full-screen modals (settings, artifact viewer) |
|
|
329
|
+
|
|
330
|
+
**Shadow Philosophy**: Claude's shadows use a warm base color (`rgba(40, 30, 20, x)`) so they harmonize with the cream canvas. The app is largely flat — the conversation surface is intentionally without elevation because the typography is the visual interest. Only the artifact cards, code blocks, and sheets get any shadow at all; everything else is differentiated by surface tone (`#F8F4ED` vs `#FBF9F4` vs `#F0EAE0`).
|
|
331
|
+
|
|
332
|
+
### Motion
|
|
333
|
+
- **Send tap**: 40pt circle scales 1.0 → 0.94 → 1.0 over 200ms, `.impactOccurred(.medium)` haptic, then the user message pill slides up from the input area in 300ms ease-out
|
|
334
|
+
- **Streaming text appearance**: tokens animate in with a 80ms fade-in per word — no typewriter character-by-character; word-by-word for readability
|
|
335
|
+
- **Streaming cursor blink**: 600ms interval (300ms on / 300ms off); pauses during token arrival
|
|
336
|
+
- **Artifact card expand**: shared-element 400ms spring — the inline card morphs into the full-screen modal (or side-pane on iPad)
|
|
337
|
+
- **Model picker open**: bottom sheet rises 300ms ease-out; the active model row is highlighted on entry
|
|
338
|
+
- **"Thinking…" pulse**: asterisk-star scales 1.0 → 1.15 → 1.0 every 1200ms; cubic-bezier ease
|
|
339
|
+
- **New chat reveal**: when "+ New chat" is tapped, the conversation list collapses left and the empty-state onboarding fades in over 250ms
|
|
340
|
+
- **Copy confirmation**: button icon morphs `doc.on.doc` → `checkmark` over 150ms; "Copied" toast slides up from the bottom over 200ms and dismisses after 1200ms
|
|
341
|
+
- **Sidebar slide (iPhone)**: 350ms ease with a 0 → 1 dim overlay on the chat content; swipe-to-dismiss responsive
|
|
342
|
+
|
|
343
|
+
## 7. Do's and Don'ts
|
|
344
|
+
|
|
345
|
+
### Do
|
|
346
|
+
- Use the cream paper canvas (`#F8F4ED`) on every chat screen — it's the most recognizable Claude surface
|
|
347
|
+
- Render Claude's responses in Tiempos serif and the user's messages in Styrene/Inter sans — the typographic role-asymmetry is the brand
|
|
348
|
+
- Reserve Claude Orange (`#D97757`) for the Send button, active model chip, asterisk-star logomark, streaming cursor, and links inside responses
|
|
349
|
+
- Render the asterisk-star logomark in Claude Orange — never in any other color
|
|
350
|
+
- Make assistant messages flat — no bubble container; just type flowing across the canvas with a 16pt logomark avatar leading
|
|
351
|
+
- Use the user message pill (Surface Warm 1) — a soft pill, NOT a bubble with a tail
|
|
352
|
+
- Render code blocks on warm dark `#1F1B16` — never on blue-tinted dark
|
|
353
|
+
- Use the warm syntax palette — orange keywords, sage strings, gold numbers, periwinkle functions
|
|
354
|
+
- Use 1.55x line-height on assistant body text — Claude is essayist, generous leading is non-negotiable
|
|
355
|
+
- Stream responses word-by-word, not character-by-character — readability over typewriter drama
|
|
356
|
+
- Show the orange streaming cursor at the trailing edge of Claude's text while generating
|
|
357
|
+
- Use Ink `#2D2520` for primary text — never `#000000`; the warmth is the brand
|
|
358
|
+
|
|
359
|
+
### Don't
|
|
360
|
+
- Don't use a chat bubble with a tail for either the user or the assistant — Claude's chat is flatter and more documentary
|
|
361
|
+
- Don't render Claude's responses in a sans-serif font — Tiempos is the brand's most important typographic decision
|
|
362
|
+
- Don't use Claude Orange for body text, headings, or section dividers — it's a verb, not a color
|
|
363
|
+
- Don't replace the asterisk-star logomark with a generic AI sparkle or a stylized "C" — the 6-point asterisk is the brand mark
|
|
364
|
+
- Don't put a heavy glass blur over the chat content — Anthropic's design is restrained, no glassmorphism on content
|
|
365
|
+
- Don't use pure black `#000000` for body text on cream — `#2D2520` warm ink is the correct value
|
|
366
|
+
- Don't render code blocks on blue-tinted dark surfaces — Claude's code surface is warm dark
|
|
367
|
+
- Don't animate streaming text character-by-character — word-by-word is the correct pace
|
|
368
|
+
- Don't add bottom tab bars — Claude is a single-purpose chat with sidebar navigation
|
|
369
|
+
- Don't blue-tint the dark mode — Claude's dark canvas (`#1F1B16`) is warm, slightly orange-undertoned
|
|
370
|
+
- Don't shrink the assistant body below 16pt — Claude is prose, not Slack
|
|
371
|
+
- Don't use cool greys anywhere — Claude's neutrals are all warm-tinted (cream, paper, sand, stone, ink)
|
|
372
|
+
|
|
373
|
+
## 8. Responsive Behavior
|
|
374
|
+
|
|
375
|
+
### Device Sizes
|
|
376
|
+
| Device | Width | Key Changes |
|
|
377
|
+
|--------|-------|-------------|
|
|
378
|
+
| iPhone SE (3rd gen) | 375pt | User pill max-width drops to 85%; code blocks shift to 14pt → 13pt body text for density |
|
|
379
|
+
| iPhone 13/14/15 | 390pt | Standard layout — 20pt margins, full-width chat |
|
|
380
|
+
| iPhone 15/16 Pro | 393pt | Dynamic Island respected; the 52pt header sits below status bar |
|
|
381
|
+
| iPhone 15/16 Pro Max | 430pt | Slightly larger code block padding (20pt vs 16pt); model chip gets extra breathing room |
|
|
382
|
+
| iPad | 768pt+ | Persistent 260pt sidebar; chat content max-width 720pt centered; artifact pane opens at 40% width on the right |
|
|
383
|
+
| iPad Pro 12.9 | 1024pt+ | Same 720pt max-width on chat — readability does not benefit from wider columns; artifact pane can grow to 50% |
|
|
384
|
+
|
|
385
|
+
### Dynamic Type
|
|
386
|
+
- Assistant body, all headings, user message text, list items, blockquotes: full scale
|
|
387
|
+
- Model chip, timestamps, "Press ⏎ to send" hint: fixed (layout-sensitive)
|
|
388
|
+
- Code block font: scales with reduced upper bound (max 18pt) to prevent overflow
|
|
389
|
+
|
|
390
|
+
### Orientation
|
|
391
|
+
- All chat surfaces: portrait + landscape supported
|
|
392
|
+
- On landscape iPhone: sidebar opens as a panel covering 60% of the width, not full-screen
|
|
393
|
+
- On iPad: persistent sidebar in both orientations; artifact pane re-flows
|
|
394
|
+
|
|
395
|
+
### Touch Targets
|
|
396
|
+
- Send circle: 40pt button on a 56pt hit area
|
|
397
|
+
- Model chip: 32pt tall, 44pt hit area
|
|
398
|
+
- Sidebar conversation rows: full-row 64pt tap target
|
|
399
|
+
- Copy button on code blocks: 32pt with a 44pt hit area
|
|
400
|
+
|
|
401
|
+
### Safe Area Handling
|
|
402
|
+
- Top: safe area honored — the 52pt header sits below status bar / Dynamic Island
|
|
403
|
+
- Bottom: input bar pins above home indicator with full safe area inset
|
|
404
|
+
- Sides: 20pt margins on iPhone; 32pt on iPad
|
|
405
|
+
|
|
406
|
+
## 9. Quick Reference Cheat Sheet
|
|
407
|
+
|
|
408
|
+
### Quick Color Reference
|
|
409
|
+
- Canvas (Cream Paper): `#F8F4ED`
|
|
410
|
+
- Paper White (input fill): `#FBF9F4`
|
|
411
|
+
- Surface Warm 1 (user pill): `#F0EAE0`
|
|
412
|
+
- Surface Warm 2 (chip fills): `#E8E0D2`
|
|
413
|
+
- Divider Sand: `#DDD2BD`
|
|
414
|
+
- Ink (primary text): `#2D2520`
|
|
415
|
+
- Graphite Warm (secondary text): `#5A4F44`
|
|
416
|
+
- Stone Warm (tertiary): `#8A7E72`
|
|
417
|
+
- Bone Warm (disabled): `#B5AB9E`
|
|
418
|
+
- Claude Orange (signature): `#D97757`
|
|
419
|
+
- Orange Pressed: `#BE6242`
|
|
420
|
+
- Orange Soft (active chip): `#F2DDD0`
|
|
421
|
+
- Code Background: `#1F1B16`
|
|
422
|
+
- Code keyword: `#D97757` (Claude Orange)
|
|
423
|
+
- Code string: `#7FB069` (sage)
|
|
424
|
+
- Code number: `#E8B96F` (gold)
|
|
425
|
+
- Code function: `#9DA4F2` (periwinkle)
|
|
426
|
+
- Dark canvas: `#1F1B16`
|
|
427
|
+
- Error: `#C16654`
|
|
428
|
+
- Success: `#6B9D5E`
|
|
429
|
+
|
|
430
|
+
### Example Component Prompts
|
|
431
|
+
- "Create a SwiftUI Claude assistant message block: a full-width flow with a 16pt asterisk-star logomark in `#D97757` Claude Orange at the leading edge, followed by a 'Claude · Claude Opus 4' sender label in Styrene 13pt Medium `#5A4F44`. Below the header strip, the body content renders as Tiempos Text 16pt Regular `#2D2520` with 1.55 line-height. Inside the body, full markdown rendering: H1 Tiempos Headline 24pt Semibold, H2 20pt, H3 17pt, all in `#2D2520`. Lists get 8pt gap between items. Inline code `code` uses JetBrains Mono 14pt Medium on `#F0EAE0` (Surface Warm 1) background with 4pt corner radius. A streaming orange cursor (8pt × 18pt `#D97757`) appears at the trailing edge while the model is generating, blinking 600ms on/off. No container background, no chat bubble — just type flowing across the cream canvas."
|
|
432
|
+
- "Build the Claude chat input bar: pinned above the keyboard, full-width minus 20pt margins. `#FBF9F4` Paper White background, 1pt `#DDD2BD` border default and 1.5pt `#D97757` border on focus. 20pt corner radius — capsule when single-line, softens slightly when grown. Min height 52pt, auto-grows to 200pt then becomes scrollable. Placeholder 'Reply to Claude…' in Styrene A 16pt Regular `#8A7E72`. Trailing the input: a 28pt paperclip-plus button leading a 40pt send circle. Send circle background `#D97757` Claude Orange when input has text, `#E8E0D2` Surface Warm 2 when empty; the 16pt arrow-up glyph inside is `#FBF9F4` when active, `#8A7E72` when disabled. Press the send circle: scale 0.94 → 1.0, `.impactOccurred(.medium)` haptic, then the user message pill slides up from the input area."
|
|
433
|
+
- "Design the Claude code block: 12pt corner radius, `#1F1B16` warm dark canvas background. A header strip at the top with 1pt `#3A332C` bottom divider — language name 'swift' in JetBrains Mono 11pt `#8A7E72` left-aligned, and a 32pt copy button right-aligned with `doc.on.doc` 14pt glyph in `#E8E0D2`. Body content: JetBrains Mono 14pt Regular `#E8E0D2` default text, with syntax highlighting in the Claude warm palette — keywords (`func`, `let`, `var`, `return`) in `#D97757` Claude Orange, strings in `#7FB069` sage, numbers in `#E8B96F` warm gold, function names in `#9DA4F2` soft periwinkle, comments in `#8A7E72`. 16pt padding all around. Horizontal scroll for long lines, no wrap. On copy: the icon morphs to `checkmark` over 150ms and a 'Copied' toast slides up from the bottom, dismissing after 1200ms."
|
|
434
|
+
- "Create the Claude model picker sheet: bottom sheet with 24pt top corner radius, `#FBF9F4` Paper White background. List of model rows — each 64pt tall, full width, with 20pt horizontal padding. Each row leads with a 24pt asterisk-star glyph in `#D97757` (Claude Orange) for active/available, or `#B5AB9E` (Bone Warm) for unavailable. Center column: model name in Styrene A 16pt Medium `#2D2520` ('Claude Opus 4.5'), sub-line in Styrene A 13pt Regular `#5A4F44` ('Most intelligent'). Trailing: a 12pt `#D97757` Claude Orange filled circle if this row is the currently selected model. 1pt `#F0EAE0` divider between rows. Tap selects and dismisses the sheet with a `.selectionChanged()` haptic. Background dim 0.4 opacity on the chat content beneath."
|
|
435
|
+
- "Build the Claude streaming response cursor: a small caret that appears at the trailing edge of Claude's response while the model is generating. Dimensions 8pt × 18pt, `#D97757` Claude Orange fill, 1pt corner radius. Animation: blinks at 600ms interval — 300ms visible, 300ms hidden. When a new token arrives the cursor pauses (stays visible) and only resumes blinking after a 200ms idle. Disappears when the response is complete and gets replaced by the action button row ('Continue', 'Regenerate', 'Copy'). The cursor sits inline with the text — descenders of Tiempos Text align with the bottom of the cursor."
|
|
436
|
+
|
|
437
|
+
### Iteration Guide
|
|
438
|
+
1. Canvas is `#F8F4ED` Cream Paper — the most recognizable Claude surface
|
|
439
|
+
2. Claude Orange `#D97757` is sacred — Send button, active model chip, asterisk-star avatar, streaming cursor, links only
|
|
440
|
+
3. Assistant body in Tiempos serif at 16pt with 1.55 line-height; user messages in Styrene/Inter sans — the typographic asymmetry is the brand
|
|
441
|
+
4. Ink `#2D2520` is warm near-black for primary text, never `#000000`
|
|
442
|
+
5. Code blocks live on warm dark `#1F1B16`, never blue — syntax uses orange/sage/gold/periwinkle
|
|
443
|
+
6. Asterisk-star logomark in `#D97757` — never any other color, never replaced with a sparkle or a "C"
|
|
444
|
+
7. No chat bubbles with tails — user pill (soft) + assistant flat flow
|
|
445
|
+
8. Streaming is word-by-word; cursor blinks 600ms; "Thinking…" pulses on extended-thinking models
|
|
446
|
+
9. Sidebar for conversation history (260pt iPad / full-screen iPhone); no bottom tab bar
|
|
447
|
+
10. Dark mode is warm `#1F1B16` canvas with `#E8E0D2` cream text; Claude Orange unchanged
|