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,356 @@
|
|
|
1
|
+
# Design System Inspiration of Oura (iOS)
|
|
2
|
+
|
|
3
|
+
## 1. Visual Theme & Atmosphere
|
|
4
|
+
|
|
5
|
+
Oura's iOS app is a dark instrument panel for the body. The canvas is a deep, slightly cool charcoal (`#0B0B0F`) — near-black, but with the faintest blue cast so it reads as "night" rather than "off". Against it, the interface is organized around one recurring visual object: the **score ring**, a large circular gauge from 0 to 100 that fills clockwise. Three of these rings — Readiness (teal), Sleep (indigo), Activity (amber) — are the heartbeat of the product. Everything else (contributor lists, trend graphs, insight cards) exists to explain the rings. The app feels less like a feed and more like a cockpit: data-dense, calm, and precise.
|
|
6
|
+
|
|
7
|
+
The accent system is a tri-color domain language, not a single brand color. Each of the three health domains owns a hue and uses it consistently everywhere it appears: **Readiness teal** (`#4FD1C5`), **Sleep indigo** (`#7C6FF0`), **Activity amber** (`#F5A623`). A ring is teal; the contributors that feed it are teal; its trend line is teal. This color-as-meaning system lets the user parse a dense screen at a glance — color is information, never decoration. Outside the three domains everything is monochrome: white text, cool grey for secondary, and surface steps in charcoal. There is no fourth accent.
|
|
8
|
+
|
|
9
|
+
Typography is Inter (Oura's product face is a clean geometric sans in the same family), used with restraint at 400 / 600 / 700. The hero of every screen is a number — the score — set very large (the ring center shows a 48pt+ figure). Around it, labels are small and quiet: 13pt uppercase domain labels, 15pt contributor names, 13pt deltas. The type never competes with the rings; it annotates them. The single most expressive typographic moment is the score reveal: when a screen loads, the ring sweeps from 0 to its value while the central number counts up in sync, so the figure and the arc arrive together.
|
|
10
|
+
|
|
11
|
+
**Key Characteristics:**
|
|
12
|
+
- Deep cool-charcoal canvas (`#0B0B0F`) — night, with a faint blue cast, not pure black
|
|
13
|
+
- The score ring (0–100) as the central recurring object — fills clockwise
|
|
14
|
+
- Tri-domain color language — Readiness teal, Sleep indigo, Activity amber
|
|
15
|
+
- Color is information — a domain's hue follows it across ring, contributors, and trends
|
|
16
|
+
- Contributor bar list — horizontal mini-bars breaking a score into its inputs
|
|
17
|
+
- Ring-battery indicator — the physical ring's charge level, shown as a small arc
|
|
18
|
+
- Trend graphs — sparkline/area charts in the domain hue over 7/30/90 days
|
|
19
|
+
- Insight cards — a sentence of interpretation ("Your HRV is trending up")
|
|
20
|
+
- Bottom tabs (Today / Vitals / My Health / Explore) — quiet, glass-backed
|
|
21
|
+
- Inter typeface, 400/600/700; the score figure is the largest type on screen
|
|
22
|
+
|
|
23
|
+
## 2. Color Palette & Roles
|
|
24
|
+
|
|
25
|
+
### Domain Accents (Color = Meaning)
|
|
26
|
+
- **Readiness Teal** (`#4FD1C5`): The Readiness ring, its contributors, its trend line, the "Readiness" tab/section.
|
|
27
|
+
- **Readiness Teal Deep** (`#37B3A8`): Pressed/active state for teal controls; the unfilled-track tint never uses this.
|
|
28
|
+
- **Sleep Indigo** (`#7C6FF0`): The Sleep ring, sleep-stage bars, sleep contributors, the sleep trend line.
|
|
29
|
+
- **Sleep Indigo Deep** (`#6354D6`): Pressed state for indigo controls.
|
|
30
|
+
- **Activity Amber** (`#F5A623`): The Activity ring, move goal, step bars, activity contributors and trends.
|
|
31
|
+
- **Activity Amber Deep** (`#D98A12`): Pressed state for amber controls.
|
|
32
|
+
|
|
33
|
+
### Canvas & Surfaces
|
|
34
|
+
- **Canvas** (`#0B0B0F`): The primary dark canvas — cool near-black.
|
|
35
|
+
- **Surface 1** (`#16161C`): Card backgrounds, contributor list containers.
|
|
36
|
+
- **Surface 2** (`#1E1E26`): Raised cards, sheets, the expanded detail panels.
|
|
37
|
+
- **Surface 3** (`#27272F`): Pressed/hover state on dark surfaces, ring unfilled track.
|
|
38
|
+
- **Divider** (`#2A2A33`): Hairline separators between rows and sections.
|
|
39
|
+
|
|
40
|
+
### Text
|
|
41
|
+
- **Text Primary** (`#FFFFFF`): The score figure, card titles, primary metrics.
|
|
42
|
+
- **Text Secondary** (`#9A9AA5`): Contributor names, units, descriptions, axis labels.
|
|
43
|
+
- **Text Tertiary** (`#6A6A73`): Very low-emphasis metadata, disabled labels, gridline values.
|
|
44
|
+
|
|
45
|
+
### Semantic
|
|
46
|
+
- **Positive Delta** (`#4FD1C5`): An improving trend arrow / "+4 vs last week" (uses Readiness teal as the generic "good").
|
|
47
|
+
- **Negative Delta** (`#E0746B`): A declining trend — soft desaturated coral, never harsh red.
|
|
48
|
+
- **Neutral Delta** (`#9A9AA5`): Flat / no meaningful change.
|
|
49
|
+
- **Optimal Band** (`#4FD1C5` @ 16%): The shaded "optimal range" zone behind a trend graph.
|
|
50
|
+
- **Ring Battery** (`#9A9AA5`): The ring-charge arc (monochrome — it is hardware status, not a health domain).
|
|
51
|
+
- **Warning Amber** (`#F5A623`): "Battery low", "Sync needed" (reuses Activity amber, contextually).
|
|
52
|
+
|
|
53
|
+
### Light Mode
|
|
54
|
+
Oura's iOS app is dark-first by design — the dark instrument panel is the brand and is used at night and on waking. There is no fully shipped light variant. (A daytime reference would invert to Canvas `#F4F4F6`, Text `#0B0B0F`, with the same three domain accents, but it is not part of the product.)
|
|
55
|
+
|
|
56
|
+
## 3. Typography Rules
|
|
57
|
+
|
|
58
|
+
### Font Family
|
|
59
|
+
- **Primary**: `Inter` — Oura's product face is a clean geometric sans in this family
|
|
60
|
+
- **Fallback Stack**: `-apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif`
|
|
61
|
+
- **Tabular figures enabled**: `font-variant-numeric: tabular-nums` — scores and deltas must align in columns
|
|
62
|
+
|
|
63
|
+
### Hierarchy
|
|
64
|
+
|
|
65
|
+
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
|
66
|
+
|------|------|------|--------|-------------|----------------|-------|
|
|
67
|
+
| Ring Score (Hero) | Inter | 52pt | 700 | 1.0 | -1.0pt | The big number at the center of a score ring |
|
|
68
|
+
| Screen Title | Inter | 26pt | 700 | 1.2 | -0.4pt | "Today", "Sleep", large nav title |
|
|
69
|
+
| Section Header | Inter | 20pt | 700 | 1.25 | -0.2pt | "Contributors", "Trends" |
|
|
70
|
+
| Secondary Score | Inter | 34pt | 700 | 1.0 | -0.6pt | Smaller domain ring on the Today summary |
|
|
71
|
+
| Card Title | Inter | 17pt | 600 | 1.3 | -0.1pt | Insight card heading, metric card title |
|
|
72
|
+
| Metric Value | Inter | 22pt | 600 | 1.1 | -0.2pt | "62 ms" HRV, "7h 24m" sleep duration |
|
|
73
|
+
| Contributor Name | Inter | 15pt | 600 | 1.3 | 0pt | "Resting Heart Rate", "Sleep Balance" |
|
|
74
|
+
| Body | Inter | 15pt | 400 | 1.5 | 0pt | Insight sentences, explanatory copy |
|
|
75
|
+
| Subtitle / Unit | Inter | 13pt | 400 | 1.3 | 0pt | "ms", "vs last week", axis captions |
|
|
76
|
+
| Delta | Inter | 13pt | 600 | 1.2 | 0pt | "+4", "−2 bpm" trend deltas |
|
|
77
|
+
| Domain Label (UPPER) | Inter | 13pt | 700 | 1.2 | 0.8pt | "READINESS", "SLEEP", "ACTIVITY" |
|
|
78
|
+
| Button | Inter | 16pt | 600 | 1.0 | 0pt | "View details", "Add tag" |
|
|
79
|
+
| Tab Label | Inter | 11pt | 600 | 1.0 | 0.2pt | Bottom tab labels |
|
|
80
|
+
| Caption / Gridline | Inter | 11pt | 400 | 1.2 | 0pt | Chart axis values, timestamps |
|
|
81
|
+
|
|
82
|
+
### Principles
|
|
83
|
+
- **The number is the headline**: every screen leads with a large score or metric figure; titles are secondary to it.
|
|
84
|
+
- **Tabular figures always**: scores, deltas, and metric values use `tabular-nums` so columns and the counting-up animation never reflow.
|
|
85
|
+
- **Weight band 400 / 600 / 700**: regular for body, semibold for metrics/contributors, bold for scores/labels. No light, no black.
|
|
86
|
+
- **Domain labels are uppercase and tracked**: "READINESS" / "SLEEP" / "ACTIVITY" at 0.8pt tracking — they are categorical, not prose.
|
|
87
|
+
- **Color encodes domain, not emphasis**: never color body text for stress; the teal/indigo/amber are reserved for domain identity and rings.
|
|
88
|
+
|
|
89
|
+
## 4. Component Stylings
|
|
90
|
+
|
|
91
|
+
### Score Ring *(signature)*
|
|
92
|
+
- A circular gauge, diameter 200-240pt (hero) or 64-88pt (summary tile)
|
|
93
|
+
- Track: `#27272F`, stroke width 12pt (hero) / 6pt (tile), full circle
|
|
94
|
+
- Progress arc: the domain hue (teal/indigo/amber), same stroke, **rounded cap**, sweeps clockwise from the 12-o'clock position
|
|
95
|
+
- Center: the score figure (52pt w700 white, hero) above a domain label (13pt w700 uppercase, the domain hue)
|
|
96
|
+
- A small tick or gap at the top marks 0/100
|
|
97
|
+
- Reveal: arc animates 0 → value over ~900ms ease-out while the central number counts up in sync
|
|
98
|
+
- Optionally a thin secondary "yesterday" ghost arc at 30% opacity behind the live arc
|
|
99
|
+
|
|
100
|
+
### Contributor Bar List *(signature)*
|
|
101
|
+
- A vertical list inside a Surface 1 card; each row breaks the score into one input
|
|
102
|
+
- Row layout: contributor name (15pt w600 white, left) → a horizontal mini-bar → value/state (13pt w600 right)
|
|
103
|
+
- Mini-bar: track `#27272F` height 6pt radius 3pt; fill the domain hue, width = contributor's normalized score
|
|
104
|
+
- Row height: 44pt, 1pt `#2A2A33` divider between rows
|
|
105
|
+
- Tapping a row expands an inline explanation (Surface 2, body 15pt `#9A9AA5`)
|
|
106
|
+
|
|
107
|
+
### Buttons
|
|
108
|
+
|
|
109
|
+
**Primary Button**
|
|
110
|
+
- Shape: Pill, height 48pt
|
|
111
|
+
- Background: the contextual domain hue (or white on neutral screens)
|
|
112
|
+
- Text: `#0B0B0F` on a hued/white fill (dark text for contrast), Inter 16pt w600
|
|
113
|
+
- Padding: 14pt vertical, 28pt horizontal, corner radius 24pt
|
|
114
|
+
- Pressed: hue → its Deep variant, scale 0.97, soft haptic
|
|
115
|
+
|
|
116
|
+
**Glass Secondary Button**
|
|
117
|
+
- Background: `#1E1E26`, 1pt border `#2A2A33`
|
|
118
|
+
- Text: `#FFFFFF`, Inter 16pt w600
|
|
119
|
+
- Padding: 14pt vertical, 24pt horizontal, corner radius 24pt
|
|
120
|
+
- Pressed: background `#27272F`
|
|
121
|
+
|
|
122
|
+
**Icon Actions (Add tag, Share, Info)**
|
|
123
|
+
- Size: 20pt glyph, 44pt hit area
|
|
124
|
+
- Default: `#9A9AA5`; Pressed: `#FFFFFF`
|
|
125
|
+
- Domain-info icon picks up the domain hue when inside that domain's screen
|
|
126
|
+
|
|
127
|
+
**Segmented Range Control (7D / 30D / 90D)**
|
|
128
|
+
- Container: `#16161C`, 1pt `#2A2A33`, corner radius 20pt, height 36pt
|
|
129
|
+
- Active segment: background `#27272F`, text `#FFFFFF` w600
|
|
130
|
+
- Inactive: text `#9A9AA5`
|
|
131
|
+
- Selection slides 200ms ease
|
|
132
|
+
|
|
133
|
+
### Cards & Containers
|
|
134
|
+
|
|
135
|
+
**Insight Card**
|
|
136
|
+
- Background: `#16161C`, corner radius 16pt, padding 18pt
|
|
137
|
+
- Leading: a 24pt domain-hued glyph (e.g., HRV waveform)
|
|
138
|
+
- Title: Inter 17pt w600 white; Body: Inter 15pt w400 `#9A9AA5`
|
|
139
|
+
- Optional trailing chevron if it deep-links to a detail screen
|
|
140
|
+
- Pressed: background `#1E1E26`
|
|
141
|
+
|
|
142
|
+
**Metric Card (grid tile)**
|
|
143
|
+
- Background: `#16161C`, corner radius 16pt, padding 16pt
|
|
144
|
+
- Top: 13pt w700 uppercase label (`#9A9AA5`)
|
|
145
|
+
- Center: metric value 22pt w600 white + unit 13pt w400 `#9A9AA5`
|
|
146
|
+
- Bottom: a small sparkline in the domain hue + delta (13pt w600)
|
|
147
|
+
- 2-column grid, 12pt gap
|
|
148
|
+
|
|
149
|
+
**Trend Graph Card**
|
|
150
|
+
- Background: `#16161C`, corner radius 16pt, padding 18pt
|
|
151
|
+
- Area/line chart in the domain hue; fill is the hue at 16% opacity
|
|
152
|
+
- "Optimal band" shaded zone behind the line (`#4FD1C5` @ 16% for readiness-style)
|
|
153
|
+
- Axis labels 11pt `#6A6A73`; gridlines `#2A2A33` 0.5pt
|
|
154
|
+
- Range control (7D/30D/90D) docked at the bottom
|
|
155
|
+
|
|
156
|
+
**Today Summary (top of Today tab)**
|
|
157
|
+
- The three domain rings shown together: one large hero ring (today's primary focus) or a row of three medium rings
|
|
158
|
+
- Each ring tappable → pushes that domain's detail screen
|
|
159
|
+
- Below: a one-line insight in 15pt `#9A9AA5`
|
|
160
|
+
|
|
161
|
+
### Navigation
|
|
162
|
+
|
|
163
|
+
**Bottom Tab Bar**
|
|
164
|
+
- Height: 56pt + safe area
|
|
165
|
+
- Background: `rgba(11,11,15,0.82)` with `.regularMaterial` blur
|
|
166
|
+
- Tabs: Today, Vitals, My Health, Explore
|
|
167
|
+
- Icon size: 24pt
|
|
168
|
+
- Active color: `#FFFFFF` (the tab indicator is neutral white — domain color lives in content, not chrome)
|
|
169
|
+
- Inactive: `#6A6A73`
|
|
170
|
+
- Labels: Inter 11pt w600, always shown
|
|
171
|
+
- A hairline `#2A2A33` top border
|
|
172
|
+
|
|
173
|
+
**Top Bar**
|
|
174
|
+
- Height: 44pt + safe area, background `#0B0B0F`
|
|
175
|
+
- Left: date selector ("Today" / "Wed, May 14") with a small chevron
|
|
176
|
+
- Right: ring-battery indicator (a tiny arc + %) then a profile/settings glyph 22pt
|
|
177
|
+
- A 0.5pt `#2A2A33` divider appears on scroll
|
|
178
|
+
|
|
179
|
+
**Domain Detail Screen**
|
|
180
|
+
- Hero score ring at top, domain label in the domain hue
|
|
181
|
+
- Scrolls into: contributor bar list → trend graph → insight cards
|
|
182
|
+
- The accent throughout the screen is that domain's single hue
|
|
183
|
+
|
|
184
|
+
### Input Fields
|
|
185
|
+
|
|
186
|
+
**Search / Filter (Explore)**
|
|
187
|
+
- Background: `#16161C`, height 44pt, corner radius 22pt
|
|
188
|
+
- Leading `magnifyingglass` 16pt `#9A9AA5`
|
|
189
|
+
- Placeholder: "Search programs & sessions", 15pt `#6A6A73`
|
|
190
|
+
- Focus: border `#2A2A33` → `#3A3A45`, no color shift
|
|
191
|
+
|
|
192
|
+
**Tag Chip (Day tagging)**
|
|
193
|
+
- Background: `#1E1E26` / domain hue when selected
|
|
194
|
+
- Text: `#FFFFFF`
|
|
195
|
+
- Padding: 8pt vertical, 16pt horizontal, corner radius 18pt
|
|
196
|
+
- Examples: "Caffeine", "Alcohol", "Late meal", "Sick"
|
|
197
|
+
|
|
198
|
+
### Distinctive Components
|
|
199
|
+
|
|
200
|
+
**Ring-Battery Indicator**
|
|
201
|
+
- A small (20pt) circular arc showing the physical Oura ring's charge
|
|
202
|
+
- Track `#27272F`, fill `#9A9AA5` (monochrome — hardware status, not a health domain)
|
|
203
|
+
- Turns Activity amber (`#F5A623`) below 20%
|
|
204
|
+
- Sits in the top bar with a "%"
|
|
205
|
+
|
|
206
|
+
**Sleep Stage Hypnogram**
|
|
207
|
+
- A horizontal banded chart of the night: Awake / REM / Light / Deep
|
|
208
|
+
- Each band a tint of Sleep indigo (`#7C6FF0`) at varying lightness
|
|
209
|
+
- Time axis 11pt `#6A6A73` below
|
|
210
|
+
|
|
211
|
+
**Tri-Ring Summary**
|
|
212
|
+
- The three rings (teal/indigo/amber) drawn concentrically or side-by-side on the Today tab
|
|
213
|
+
- A single glanceable object that encodes all three domains at once
|
|
214
|
+
|
|
215
|
+
**Score Reveal Animation**
|
|
216
|
+
- On screen load each ring sweeps 0 → value (~900ms ease-out) while its center figure counts up in lockstep — the arc and the number land together
|
|
217
|
+
|
|
218
|
+
## 5. Layout Principles
|
|
219
|
+
|
|
220
|
+
### Spacing System
|
|
221
|
+
- Base unit: 4pt
|
|
222
|
+
- Scale: 4, 8, 12, 16, 20, 24, 32, 40, 56
|
|
223
|
+
- Standard horizontal margin: 16pt
|
|
224
|
+
- Section spacing: 24pt between major blocks (ring → contributors → trends)
|
|
225
|
+
|
|
226
|
+
### Grid & Container
|
|
227
|
+
- Single column, full device width with 16pt horizontal margins
|
|
228
|
+
- Metric tiles: 2-column grid, 12pt gap
|
|
229
|
+
- The hero ring is centered with generous vertical air above and below
|
|
230
|
+
- Contributor list and trend cards are full content width
|
|
231
|
+
|
|
232
|
+
### Whitespace Philosophy
|
|
233
|
+
- **The ring needs room**: the hero score ring is given large vertical breathing space — it is the focal point and must not feel crowded.
|
|
234
|
+
- **Dense where it explains**: contributor lists and metric grids are tighter (44pt rows) because they are reference data the user scans.
|
|
235
|
+
- **One domain per screen**: a detail screen commits to a single hue, which keeps a data-dense layout calm.
|
|
236
|
+
|
|
237
|
+
### Border Radius Scale
|
|
238
|
+
- Soft (6pt): mini-bar fills, small chart elements
|
|
239
|
+
- Standard (16pt): insight cards, metric tiles, trend cards
|
|
240
|
+
- Comfortable (20pt): sheets, segmented controls
|
|
241
|
+
- Pill (24pt): primary/secondary buttons, search field
|
|
242
|
+
- Chip (18pt): tag chips
|
|
243
|
+
- Circle (50%): score rings, avatars, ring-battery arc
|
|
244
|
+
|
|
245
|
+
## 6. Depth & Elevation
|
|
246
|
+
|
|
247
|
+
| Level | Treatment | Use |
|
|
248
|
+
|-------|-----------|-----|
|
|
249
|
+
| Flat (Level 0) | No shadow | Canvas, the hero ring sits directly on canvas |
|
|
250
|
+
| Card (Level 1) | No shadow; `#16161C` fill | Insight cards, metric tiles, contributor lists |
|
|
251
|
+
| Raised (Level 2) | `#1E1E26` fill + `rgba(0,0,0,0.3) 0 8px 24px` | Expanded detail panels, the focused metric card |
|
|
252
|
+
| Sheet (Level 3) | `#1E1E26` + `rgba(0,0,0,0.5) 0 -16px 48px` | Tagging sheet, range pickers |
|
|
253
|
+
| Tab Bar Material | `rgba(11,11,15,0.82)` + `.regularMaterial` | Floats above scrolling content |
|
|
254
|
+
| Scrim | `rgba(0,0,0,0.6)` | Behind sheets |
|
|
255
|
+
|
|
256
|
+
**Shadow Philosophy**: On the cool near-black canvas, Oura communicates elevation mostly through surface value (`#0B0B0F` → `#16161C` → `#1E1E26`) rather than shadow. Cards are flat fills; only sheets and the actively-expanded panel get a soft, diffuse shadow (24-48pt blur, low opacity) to lift them. The score ring itself never casts a shadow — it is a flat, precise instrument, not a 3D object.
|
|
257
|
+
|
|
258
|
+
### Motion
|
|
259
|
+
- **Score reveal**: ring arc 0 → value over ~900ms ease-out; central number counts up in sync (same duration/easing)
|
|
260
|
+
- **Contributor bars**: each mini-bar grows from 0 to its width, staggered ~40ms per row, 500ms ease-out
|
|
261
|
+
- **Range switch (7D/30D/90D)**: the trend graph morphs between datasets over 350ms ease-in-out; segmented indicator slides 200ms
|
|
262
|
+
- **Card tap**: scale 0.98 → 1.0 over 200ms ease-out, soft haptic
|
|
263
|
+
- **Tab change**: cross-fade 250ms (no slide)
|
|
264
|
+
- **Pull-to-refresh (sync)**: a circular progress mimicking a ring filling, then a soft success haptic
|
|
265
|
+
- **Insight appear**: fade + 8pt rise over 300ms when scrolled into view
|
|
266
|
+
|
|
267
|
+
## 7. Do's and Don'ts
|
|
268
|
+
|
|
269
|
+
### Do
|
|
270
|
+
- Use the cool near-black canvas (`#0B0B0F`) — night with a faint blue cast
|
|
271
|
+
- Make the score ring the focal point of every domain screen — large, centered, with air
|
|
272
|
+
- Use the tri-domain color language consistently — teal=Readiness, indigo=Sleep, amber=Activity
|
|
273
|
+
- Treat color as information — a domain's hue follows it across ring, contributors, trends
|
|
274
|
+
- Lead each screen with the number — the score figure is the largest type on screen
|
|
275
|
+
- Use tabular figures for all scores, metrics, and deltas so columns never reflow
|
|
276
|
+
- Animate the score reveal — arc sweep and number count-up land together (~900ms)
|
|
277
|
+
- Keep the tab bar indicator neutral white — domain color lives in content, not chrome
|
|
278
|
+
- Use the soft desaturated coral (`#E0746B`) for negative deltas — never harsh red
|
|
279
|
+
|
|
280
|
+
### Don't
|
|
281
|
+
- Don't use pure black `#000000` — Oura's charcoal has a faint cool cast
|
|
282
|
+
- Don't introduce a fourth accent — only teal, indigo, amber carry domain meaning
|
|
283
|
+
- Don't color body text for emphasis — the three hues are reserved for domains/rings
|
|
284
|
+
- Don't square the ring's progress cap — it is rounded; the ring is a refined instrument
|
|
285
|
+
- Don't drop-shadow the score ring — it is a flat, precise gauge, not a 3D dial
|
|
286
|
+
- Don't reflow scores with proportional figures — always tabular-nums
|
|
287
|
+
- Don't put domain color on the tab bar — chrome stays neutral
|
|
288
|
+
- Don't animate the ring linearly — the reveal eases out so it decelerates into the value
|
|
289
|
+
- Don't crowd the hero ring — it needs vertical breathing room to read
|
|
290
|
+
|
|
291
|
+
## 8. Responsive Behavior
|
|
292
|
+
|
|
293
|
+
### Device Sizes
|
|
294
|
+
| Device | Width | Key Changes |
|
|
295
|
+
|--------|-------|-------------|
|
|
296
|
+
| iPhone SE (3rd gen) | 375pt | Hero ring 200pt; metric grid stays 2-col |
|
|
297
|
+
| iPhone 13/14/15 | 390pt | Hero ring 220pt; standard layout |
|
|
298
|
+
| iPhone 15/16 Pro | 393pt | Dynamic Island clears the 44pt top bar |
|
|
299
|
+
| iPhone 15/16 Pro Max | 430pt | Hero ring 240pt; trend graphs taller |
|
|
300
|
+
| iPad | 768pt+ | Tri-ring summary side-by-side; 3-column metric grid; detail in a split layout |
|
|
301
|
+
|
|
302
|
+
### Dynamic Type
|
|
303
|
+
- Screen titles, contributor names, body, insights: full scale
|
|
304
|
+
- The ring score figure: scales modestly but capped (it must fit inside the ring) — typically max 60pt
|
|
305
|
+
- Domain labels, deltas, axis captions: fixed (layout-sensitive at 11-13pt)
|
|
306
|
+
- Tab labels: fixed 11pt
|
|
307
|
+
|
|
308
|
+
### Orientation
|
|
309
|
+
- Today / Vitals / My Health / Explore: **portrait-locked** (the ring + scroll layout is vertical)
|
|
310
|
+
- Detail screens: **portrait-locked**
|
|
311
|
+
- iPad: **rotates** — landscape uses a two-pane layout (ring + contributors beside trends)
|
|
312
|
+
|
|
313
|
+
### Touch Targets
|
|
314
|
+
- Score ring: the whole ring is a 44pt+ tap target → pushes detail
|
|
315
|
+
- Contributor rows: full 44pt height tappable to expand
|
|
316
|
+
- Tab icons: 24pt glyph, 44pt effective hit
|
|
317
|
+
- Range segments: full segment height (36pt)
|
|
318
|
+
|
|
319
|
+
### Safe Area Handling
|
|
320
|
+
- Top: 44pt bar respects the notch / Dynamic Island
|
|
321
|
+
- Bottom: tab bar floats above the home indicator
|
|
322
|
+
- Sides: 16pt content insets
|
|
323
|
+
- The hero ring centers within the safe content area, never under the bars
|
|
324
|
+
|
|
325
|
+
## 9. Agent Prompt Guide
|
|
326
|
+
|
|
327
|
+
### Quick Color Reference
|
|
328
|
+
- Canvas: `#0B0B0F`
|
|
329
|
+
- Surface 1 (cards): `#16161C`
|
|
330
|
+
- Surface 2 (raised/sheets): `#1E1E26`
|
|
331
|
+
- Ring track / pressed: `#27272F`
|
|
332
|
+
- Divider: `#2A2A33`
|
|
333
|
+
- Text primary: `#FFFFFF`
|
|
334
|
+
- Text secondary: `#9A9AA5`
|
|
335
|
+
- Readiness teal: `#4FD1C5`
|
|
336
|
+
- Sleep indigo: `#7C6FF0`
|
|
337
|
+
- Activity amber: `#F5A623`
|
|
338
|
+
- Negative delta (soft coral): `#E0746B`
|
|
339
|
+
|
|
340
|
+
### Example Component Prompts
|
|
341
|
+
- "Create a SwiftUI Oura score ring: 220pt diameter, track stroke #27272F 12pt full circle, progress arc in Readiness teal #4FD1C5 12pt with a rounded cap sweeping clockwise from 12 o'clock. Center: a 52pt weight 700 #FFFFFF tabular figure above a 13pt weight 700 uppercase 'READINESS' label in #4FD1C5. On appear, animate the arc 0 → 82 over 900ms ease-out while the number counts up in sync."
|
|
342
|
+
- "Build the contributor bar list: a #16161C card, corner radius 16pt. Each row 44pt tall: contributor name in Inter 15pt weight 600 #FFFFFF on the left, a horizontal mini-bar (track #27272F, 6pt tall, 3pt radius; fill Sleep indigo #7C6FF0 at the contributor's normalized width) in the center, and a state value in Inter 13pt weight 600 #FFFFFF on the right. 1pt #2A2A33 divider between rows; tapping a row expands a #1E1E26 explanation in 15pt #9A9AA5."
|
|
343
|
+
- "Design a metric tile: #16161C, 16pt radius, 16pt padding. Top: 'HRV' in Inter 13pt weight 700 uppercase #9A9AA5. Center: '62' 22pt weight 600 #FFFFFF with ' ms' 13pt #9A9AA5. Bottom: a small Readiness-teal sparkline plus '+4' delta in 13pt weight 600 #4FD1C5. 2-column grid, 12pt gap."
|
|
344
|
+
- "Build the trend graph card: #16161C, 16pt radius. An area chart in Sleep indigo #7C6FF0 with the fill at 16% opacity, an 'optimal band' shaded zone behind the line, axis labels 11pt #6A6A73, gridlines #2A2A33 0.5pt. A 7D/30D/90D segmented control docked at the bottom: container #16161C 1pt #2A2A33 20pt radius, active segment #27272F with #FFFFFF weight 600 text, selection slides 200ms."
|
|
345
|
+
- "Create the Oura bottom tab bar: 56pt + safe area, background rgba(11,11,15,0.82) with .regularMaterial blur, 1pt #2A2A33 top border. Tabs Today / Vitals / My Health / Explore, 24pt icons, active tint #FFFFFF (neutral — domain color is never on chrome), inactive #6A6A73, labels Inter 11pt weight 600."
|
|
346
|
+
|
|
347
|
+
### Iteration Guide
|
|
348
|
+
1. Canvas is cool near-black `#0B0B0F` — not pure black; it has a faint blue cast
|
|
349
|
+
2. The score ring is the recurring hero — large, centered, rounded cap, sweeps clockwise
|
|
350
|
+
3. Tri-domain color is a language: teal=Readiness, indigo=Sleep, amber=Activity — used everywhere that domain appears
|
|
351
|
+
4. Color encodes domain, never emphasis — body text stays white/grey
|
|
352
|
+
5. Lead with the number — the score figure is the largest type; use tabular figures everywhere
|
|
353
|
+
6. Animate the reveal — the arc sweep and the counting number land together (~900ms ease-out)
|
|
354
|
+
7. Elevation is surface value (`#0B0B0F` → `#16161C` → `#1E1E26`), not shadow; the ring is flat
|
|
355
|
+
8. The tab bar stays neutral white — domain color lives only in content
|
|
356
|
+
9. Oura is dark-first — do not surface a light theme
|