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,368 @@
|
|
|
1
|
+
# Design System Inspiration of Linear (iOS)
|
|
2
|
+
|
|
3
|
+
## 1. Visual Theme & Atmosphere
|
|
4
|
+
|
|
5
|
+
Linear's iOS app is a near-black command surface built for speed. The canvas sits at `#08090A` — darker than Spotify's `#121212`, almost an OLED true-black — so the interface disappears and the issue list becomes the entire experience. There is no decorative chrome, no gradient hero, no photography. Every pixel is in service of one thing: moving through work fast. Surfaces lift only slightly (`#141516`, `#1C1D1F`) to separate a sheet or a hovered row, and a single hairline divider (`#23252A`) does the work that boxes and cards do in other apps. The feeling is closer to a terminal than a consumer app — deliberate, dense, and quiet.
|
|
6
|
+
|
|
7
|
+
The accent system is a single color used with discipline: Linear Purple `#5E6AD2`. It marks the primary action, the focused command-menu row, the active selection, and the in-progress cycle bar — nothing else. Status is communicated through a precise iconographic language (backlog circle, started half-circle, done check) and small priority bar glyphs, not through a rainbow of fills. The restraint is the brand: when something turns purple, it is *the* thing you should act on. Text is the loudest element on screen — `#F7F8F8` near-white for titles, `#8A8F98` cool gray for the metadata that surrounds every issue.
|
|
8
|
+
|
|
9
|
+
Typography is Inter, used at 400 / 500 / 600 with a compact 11–28pt range. There are no display headlines because the product has no marketing surface — the issue *title* is the headline. The most expressive typographic moment is the command menu (Cmd+K), where a single input line and a tight list of monospace-feeling rows let you navigate the entire app without lifting your hands. Line height is tight, letter-spacing is slightly negative on titles, and density is the governing principle: more issues visible means less scrolling means faster work.
|
|
10
|
+
|
|
11
|
+
**Key Characteristics:**
|
|
12
|
+
- Ultra-dark canvas (`#08090A`) — near-OLED black, darker than typical "dark mode"
|
|
13
|
+
- Single accent — Linear Purple (`#5E6AD2`) for primary action, focus, and selection only
|
|
14
|
+
- Dense issue-list rows: status icon → identifier → title → priority bars → assignee, ~44pt tall
|
|
15
|
+
- Command menu (Cmd+K) — a centered sheet that drives every action in the app
|
|
16
|
+
- Iconographic status system (backlog / started / done) instead of colored fills
|
|
17
|
+
- Inter at 400/500/600, 11–28pt — no display type, the issue title is the headline
|
|
18
|
+
- Sidebar / list navigation — there is no bottom tab bar; navigation is a slide-over sidebar
|
|
19
|
+
- Instant motion — transitions are near-zero with a subtle spring; speed is the aesthetic
|
|
20
|
+
|
|
21
|
+
## 2. Color Palette & Roles
|
|
22
|
+
|
|
23
|
+
### Primary
|
|
24
|
+
- **Linear Purple** (`#5E6AD2`): Primary CTA, focused command-menu row, active list selection, in-progress cycle bar, active toggle.
|
|
25
|
+
- **Purple Pressed** (`#4F58B8`): Active/pressed state for purple CTAs and the focused row on key-down.
|
|
26
|
+
- **Purple Tint** (`rgba(94,106,210,0.14)`): Selection background on list rows, subtle focus wash behind the active item.
|
|
27
|
+
|
|
28
|
+
### Canvas & Surface (Dark — primary)
|
|
29
|
+
- **Canvas** (`#08090A`): Primary near-black canvas — the default app background.
|
|
30
|
+
- **Surface 1** (`#141516`): Elevated rows, the command-menu sheet body, popovers.
|
|
31
|
+
- **Surface 2** (`#1C1D1F`): Higher elevation — modals, context menus, the active/hover row.
|
|
32
|
+
- **Surface 3** (`#232428`): Pressed state on dark surfaces, input field fill.
|
|
33
|
+
- **Divider** (`#23252A`): Hairline dividers between issue rows and section groups.
|
|
34
|
+
- **Text Primary** (`#F7F8F8`): Issue titles, screen headlines, primary UI text.
|
|
35
|
+
- **Text Secondary** (`#8A8F98`): Issue identifiers, metadata, timestamps, section labels.
|
|
36
|
+
- **Text Tertiary** (`#5C5F6A`): Disabled state, placeholder text, very-low-emphasis labels.
|
|
37
|
+
|
|
38
|
+
### Status System
|
|
39
|
+
- **Backlog** (`#8A8F98`): Dashed/empty circle — issue is in the backlog.
|
|
40
|
+
- **Todo / Unstarted** (`#8A8F98`): Solid thin circle, no fill.
|
|
41
|
+
- **In Progress** (`#F2C94C`): Half-filled circle — actively being worked.
|
|
42
|
+
- **In Review** (`#5E6AD2`): Purple ring partial — under review.
|
|
43
|
+
- **Done** (`#5E6AD2`): Filled circle with check.
|
|
44
|
+
- **Canceled** (`#5C5F6A`): Filled gray circle with cross.
|
|
45
|
+
|
|
46
|
+
### Priority
|
|
47
|
+
- **Urgent** (`#F2C94C` / red dot `#EB5757`): Filled urgent glyph.
|
|
48
|
+
- **High / Medium / Low** (`#8A8F98`): Three / two / one ascending bars; filled = set, dimmed = unset.
|
|
49
|
+
|
|
50
|
+
### Semantic
|
|
51
|
+
- **Success Green** (`#4CB782`): Completed cycle, success toast.
|
|
52
|
+
- **Warning Amber** (`#F2C94C`): Overdue, attention states.
|
|
53
|
+
- **Error Red** (`#EB5757`): Destructive actions, failed sync.
|
|
54
|
+
- **Label Pills**: User-defined per workspace; rendered as a 6pt dot + name, color is data not chrome.
|
|
55
|
+
|
|
56
|
+
### Light Mode (Limited Use)
|
|
57
|
+
Linear is dark-first; a light variant exists for users who opt in.
|
|
58
|
+
- **Light Canvas** (`#FFFFFF`)
|
|
59
|
+
- **Light Surface** (`#F4F5F8`)
|
|
60
|
+
- **Light Text** (`#08090A`)
|
|
61
|
+
- **Light Secondary** (`#6B6F76`)
|
|
62
|
+
|
|
63
|
+
## 3. Typography Rules
|
|
64
|
+
|
|
65
|
+
### Font Family
|
|
66
|
+
- **Primary**: `Inter` (by Rasmus Andersson) — variable, used at 400 / 500 / 600
|
|
67
|
+
- **Monospace**: `Berkeley Mono` / `SF Mono` fallback — issue identifiers, code blocks, command-menu shortcuts
|
|
68
|
+
- **Fallback Stack**: `-apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif`
|
|
69
|
+
- **Feature Settings**: `cv11`, `ss03`, tabular numbers on counts and identifiers (`font-variant-numeric: tabular-nums`)
|
|
70
|
+
|
|
71
|
+
### Hierarchy
|
|
72
|
+
|
|
73
|
+
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
|
74
|
+
|------|------|------|--------|-------------|----------------|-------|
|
|
75
|
+
| Screen Title (Large) | Inter | 28pt | 600 | 1.2 | -0.4pt | "Inbox", "My Issues" nav large title |
|
|
76
|
+
| View Title | Inter | 22pt | 600 | 1.25 | -0.3pt | "Cycle 14", project / team header |
|
|
77
|
+
| Section Header | Inter | 17pt | 600 | 1.3 | -0.2pt | "In Progress" group header in a list |
|
|
78
|
+
| Issue Title | Inter | 15pt | 500 | 1.35 | -0.1pt | The issue row primary text |
|
|
79
|
+
| Body | Inter | 15pt | 400 | 1.5 | 0pt | Issue description, comments |
|
|
80
|
+
| Identifier | SF Mono | 13pt | 500 | 1.3 | 0pt | "ENG-1423" issue id, tabular |
|
|
81
|
+
| Metadata | Inter | 13pt | 400 | 1.35 | 0pt | Assignee name, "2d", "updated 3h ago" |
|
|
82
|
+
| Label Pill | Inter | 12pt | 500 | 1.0 | 0pt | "bug", "feature" pill text |
|
|
83
|
+
| Command Row | Inter | 14pt | 500 | 1.3 | -0.1pt | A row in the Cmd+K menu |
|
|
84
|
+
| Command Shortcut | SF Mono | 12pt | 500 | 1.0 | 0pt | "⌘K", "G then I" trailing hint |
|
|
85
|
+
| Meta / Count | Inter | 12pt | 400 | 1.3 | 0pt | Sub-issue counts, "12 issues" |
|
|
86
|
+
| Button (Primary) | Inter | 14pt | 600 | 1.0 | -0.1pt | "Create issue", "Save" |
|
|
87
|
+
| Button (Secondary) | Inter | 14pt | 500 | 1.0 | 0pt | Ghost / outline buttons |
|
|
88
|
+
| Tiny Label (UPPER) | Inter | 11pt | 600 | 1.2 | 0.4pt | "TODO", group caps labels |
|
|
89
|
+
| Sidebar Item | Inter | 14pt | 500 | 1.3 | -0.1pt | "Inbox", "My Issues" sidebar rows |
|
|
90
|
+
|
|
91
|
+
### Principles
|
|
92
|
+
- **Weights concentrated at 400 / 500 / 600**: Regular for body, medium for titles and rows, semibold for headers and primary buttons — no light, no bold/black
|
|
93
|
+
- **Tabular numerics everywhere counts appear**: Identifiers, issue counts, and dates use `tabular-nums` so columns never jitter
|
|
94
|
+
- **Mono for identity, sans for content**: Issue IDs and keyboard shortcuts are monospace; everything human-readable is Inter
|
|
95
|
+
- **Negative tracking on titles only**: -0.4pt at 28pt easing to 0pt at body; metadata sits at 0pt
|
|
96
|
+
- **Density over drama**: Line heights are tight (1.2–1.35 on UI text) to maximize visible issues per screen
|
|
97
|
+
|
|
98
|
+
## 4. Component Stylings
|
|
99
|
+
|
|
100
|
+
### Buttons
|
|
101
|
+
|
|
102
|
+
**Primary Button ("Create issue", "Save")**
|
|
103
|
+
- Background: `#5E6AD2`
|
|
104
|
+
- Text: `#FFFFFF`, Inter 14pt weight 600
|
|
105
|
+
- Padding: 8pt vertical, 14pt horizontal
|
|
106
|
+
- Corner radius: 8pt
|
|
107
|
+
- Height: 32pt
|
|
108
|
+
- Pressed: background `#4F58B8`, scale 0.98, soft haptic
|
|
109
|
+
- Disabled: background `#1C1D1F`, text `#5C5F6A`
|
|
110
|
+
|
|
111
|
+
**Secondary / Ghost Button**
|
|
112
|
+
- Background: transparent
|
|
113
|
+
- Text: `#F7F8F8`, Inter 14pt weight 500
|
|
114
|
+
- Border: 1pt solid `#23252A`
|
|
115
|
+
- Padding: 8pt vertical, 14pt horizontal
|
|
116
|
+
- Corner radius: 8pt
|
|
117
|
+
- Pressed: background `#1C1D1F`
|
|
118
|
+
|
|
119
|
+
**Icon Button (toolbar — filter, display, more)**
|
|
120
|
+
- Size: 18pt glyph, 32pt hit target
|
|
121
|
+
- Default: `#8A8F98`
|
|
122
|
+
- Hover/active: `#F7F8F8`, background `#1C1D1F`, 6pt radius
|
|
123
|
+
- Spacing: 4pt between adjacent toolbar icons
|
|
124
|
+
|
|
125
|
+
**Quick-Add Button (the "+" / new issue)**
|
|
126
|
+
- 28pt, `#8A8F98` glyph, transparent; on press background `#1C1D1F`, glyph `#F7F8F8`
|
|
127
|
+
- In the toolbar this is the entry point to the issue composer sheet
|
|
128
|
+
|
|
129
|
+
### Cards & Containers
|
|
130
|
+
|
|
131
|
+
**Issue Row (the signature element)**
|
|
132
|
+
- Height: 44pt (compact) / 52pt (comfortable)
|
|
133
|
+
- Layout: 16pt status icon → 13pt mono identifier → 15pt title (1-line, ellipsized) → flex spacer → priority bars → 20pt assignee avatar
|
|
134
|
+
- Background: transparent (canvas `#08090A`)
|
|
135
|
+
- Hover/active: background `#1C1D1F`
|
|
136
|
+
- Selected: background `rgba(94,106,210,0.14)`, 2pt `#5E6AD2` left accent inset
|
|
137
|
+
- Divider: 1pt `#23252A` between rows when grouped headers are present
|
|
138
|
+
- Pressed: background `#232428`, no scale (speed > flourish)
|
|
139
|
+
|
|
140
|
+
**Group Header (status / assignee swimlane)**
|
|
141
|
+
- Height: 36pt
|
|
142
|
+
- Status icon + label (17pt w600) + count chip (`#8A8F98`, 12pt) + collapse chevron
|
|
143
|
+
- Background: `#08090A`, sticky on scroll
|
|
144
|
+
- Tap chevron: collapse/expand the group with a 150ms height spring
|
|
145
|
+
|
|
146
|
+
**Command Menu Sheet (Cmd+K)**
|
|
147
|
+
- Width: 560pt (regular) / full-width minus 24pt (compact)
|
|
148
|
+
- Background: `#141516`, 1pt border `#23252A`, corner radius 12pt
|
|
149
|
+
- Shadow: `rgba(0,0,0,0.6) 0 24px 64px`
|
|
150
|
+
- Top: 44pt search input, no border, leading `magnifyingglass` 16pt `#8A8F98`
|
|
151
|
+
- Rows: 40pt each — leading icon → label (14pt w500) → trailing shortcut (mono 12pt `#8A8F98`)
|
|
152
|
+
- Focused row: background `rgba(94,106,210,0.14)`, label `#F7F8F8`
|
|
153
|
+
- Section captions: 11pt w600 UPPER `#8A8F98`, 8pt top padding
|
|
154
|
+
|
|
155
|
+
**Detail Panel (issue open)**
|
|
156
|
+
- Full-screen on iPhone, slide-in from right
|
|
157
|
+
- Title field 22pt w600, editable inline
|
|
158
|
+
- Property rows: status, assignee, priority, labels, cycle, project — each a 36pt tappable row with leading icon + value
|
|
159
|
+
- Description below in 15pt w400 body, markdown rendered
|
|
160
|
+
- Activity feed at bottom: avatar + name + action + timestamp
|
|
161
|
+
|
|
162
|
+
### Navigation
|
|
163
|
+
|
|
164
|
+
**Sidebar (no bottom tab bar)**
|
|
165
|
+
- Slide-over from the left, 280pt wide, background `#08090A`
|
|
166
|
+
- Sections: workspace switcher (top), then Inbox, My Issues, then Teams (each expandable to Issues / Cycles / Projects)
|
|
167
|
+
- Item height: 32pt, icon 16pt + label 14pt w500
|
|
168
|
+
- Active item: background `rgba(94,106,210,0.14)`, label `#F7F8F8`, 16pt icon `#5E6AD2`
|
|
169
|
+
- Inactive: label `#8A8F98`
|
|
170
|
+
- Opened via hamburger or edge-swipe; dims canvas behind with `rgba(0,0,0,0.5)`
|
|
171
|
+
|
|
172
|
+
**Top Bar (view context)**
|
|
173
|
+
- Height: 44pt + safe area
|
|
174
|
+
- Leading: sidebar toggle (18pt) ; Center: view title (17pt w600) ; Trailing: filter + display + new-issue icons (18pt)
|
|
175
|
+
- Below: optional filter chip row (28pt pills) when filters are active
|
|
176
|
+
- No blur — opaque `#08090A`; speed favors no compositing cost
|
|
177
|
+
|
|
178
|
+
**Tab Switcher (within a team)**
|
|
179
|
+
- Segmented inline text tabs: "Issues" / "Cycles" / "Projects"
|
|
180
|
+
- Active: `#F7F8F8` with a 2pt `#5E6AD2` underline; inactive `#8A8F98`
|
|
181
|
+
- 14pt w500, 16pt horizontal gap
|
|
182
|
+
|
|
183
|
+
### Input Fields
|
|
184
|
+
|
|
185
|
+
**Command / Search Input**
|
|
186
|
+
- Background: transparent (it sits inside the `#141516` sheet)
|
|
187
|
+
- Height: 44pt
|
|
188
|
+
- Leading SF Symbol `magnifyingglass`, 16pt `#8A8F98`
|
|
189
|
+
- Placeholder: "Type a command or search…", 14pt w400 `#5C5F6A`
|
|
190
|
+
- Text: `#F7F8F8`; no border, blinking caret `#5E6AD2`
|
|
191
|
+
|
|
192
|
+
**Inline Text Field (issue title in composer)**
|
|
193
|
+
- Background: `#141516`
|
|
194
|
+
- Height: auto, min 40pt
|
|
195
|
+
- Corner radius: 8pt, 1pt border `#23252A`
|
|
196
|
+
- Focus: border `#5E6AD2`, no glow
|
|
197
|
+
- Placeholder: "Issue title", 15pt w400 `#5C5F6A`
|
|
198
|
+
|
|
199
|
+
**Status / Assignee Dropdown**
|
|
200
|
+
- Trigger: a 28pt pill showing current value (icon + text 13pt)
|
|
201
|
+
- Menu: `#1C1D1F`, 1pt border `#23252A`, 8pt radius, rows 32pt
|
|
202
|
+
- Selected row: leading check `#5E6AD2`; hover row background `#232428`
|
|
203
|
+
|
|
204
|
+
### Distinctive Components
|
|
205
|
+
|
|
206
|
+
**Command Menu (Cmd+K)**
|
|
207
|
+
- The single most important surface — invoked by ⌘K (hardware keyboard) or a toolbar entry
|
|
208
|
+
- Centered sheet, fades + scales in from 0.96 in 120ms
|
|
209
|
+
- Fuzzy-filters every action: create issue, assign, change status, navigate to team, switch workspace
|
|
210
|
+
- Each row shows its keyboard shortcut on the trailing edge in mono
|
|
211
|
+
- Arrow keys move the purple focus wash; Enter executes; Esc dismisses instantly
|
|
212
|
+
|
|
213
|
+
**Cycle Progress Bar**
|
|
214
|
+
- A horizontal track at the top of a cycle view, height 6pt, radius 3pt
|
|
215
|
+
- Track `#1C1D1F`; fill `#5E6AD2` proportional to completed scope
|
|
216
|
+
- Scope-change markers as 1pt ticks; completed segment is solid, in-progress segment is 60% opacity
|
|
217
|
+
- Caption below: "14 of 23 completed · 4 days left" in 12pt `#8A8F98`
|
|
218
|
+
|
|
219
|
+
**Status Icon Set**
|
|
220
|
+
- 16pt vector glyphs drawn, not emoji: dashed circle (backlog), thin ring (todo), half-pie (in progress), purple ring (in review), check-fill (done), cross-fill (canceled)
|
|
221
|
+
- Tapping opens the status dropdown inline; the icon animates between states with a 150ms morph
|
|
222
|
+
|
|
223
|
+
**Priority Bars**
|
|
224
|
+
- A 14pt-wide glyph of three ascending bars
|
|
225
|
+
- Urgent renders as a filled amber/red square with `!`; High = 3 filled, Medium = 2, Low = 1, None = 3 dimmed
|
|
226
|
+
- Always right-aligned in the issue row before the assignee
|
|
227
|
+
|
|
228
|
+
**Label Pills**
|
|
229
|
+
- 6pt colored dot + label text (12pt w500) in a `#1C1D1F` rounded container, radius 6pt
|
|
230
|
+
- Multiple labels stack horizontally with 4pt gaps; overflow collapses to "+2"
|
|
231
|
+
- The dot color is workspace data — never use it for UI chrome elsewhere
|
|
232
|
+
|
|
233
|
+
## 5. Layout Principles
|
|
234
|
+
|
|
235
|
+
### Spacing System
|
|
236
|
+
- Base unit: 4pt
|
|
237
|
+
- Scale: 4, 6, 8, 12, 16, 20, 24, 32, 40, 56
|
|
238
|
+
- Standard margin: 16pt horizontal on lists; 8pt internal row padding
|
|
239
|
+
- Issue rows touch (0pt between) — separation is via hover state and group headers, not gaps
|
|
240
|
+
|
|
241
|
+
### Grid & Container
|
|
242
|
+
- Content width: full device width, 16pt horizontal insets
|
|
243
|
+
- Issue list: single column, full-bleed rows
|
|
244
|
+
- Command menu: centered, max 560pt, never full-bleed on regular width
|
|
245
|
+
- Detail panel: full-screen on iPhone; 2-pane (list + detail) only on iPad landscape
|
|
246
|
+
|
|
247
|
+
### Whitespace Philosophy
|
|
248
|
+
- **Density is the product**: 44pt rows pack the maximum number of issues into a viewport — Linear is a triage tool
|
|
249
|
+
- **Whitespace is reserved for the detail view**: When you open an issue, the description gets generous 1.5 line-height and 16pt margins — reading mode, not list mode
|
|
250
|
+
- **No decorative empty space**: There are no hero areas, no oversized headers, no breathing room for its own sake
|
|
251
|
+
|
|
252
|
+
### Border Radius Scale
|
|
253
|
+
- Sharp (0pt): Dividers, full-bleed rows
|
|
254
|
+
- Subtle (6pt): Label pills, icon-button hover background, dropdown menus
|
|
255
|
+
- Standard (8pt): Buttons, input fields, status pills
|
|
256
|
+
- Comfortable (12pt): Command menu sheet, modals
|
|
257
|
+
- Circle (50%): Assignee avatars, workspace icon
|
|
258
|
+
|
|
259
|
+
## 6. Depth & Elevation
|
|
260
|
+
|
|
261
|
+
| Level | Treatment | Use |
|
|
262
|
+
|-------|-----------|-----|
|
|
263
|
+
| Flat (Level 0) | No shadow | Issue rows, list canvas, group headers |
|
|
264
|
+
| Hover (Level 1) | Background shift to `#1C1D1F`, no shadow | Row hover/active — depth via color, not shadow |
|
|
265
|
+
| Popover (Level 2) | `rgba(0,0,0,0.4) 0 8px 24px` + 1pt `#23252A` border | Status/assignee dropdowns, label picker |
|
|
266
|
+
| Command Sheet (Level 3) | `rgba(0,0,0,0.6) 0 24px 64px` + 1pt border | Cmd+K menu, composer modal |
|
|
267
|
+
| Scrim | `rgba(0,0,0,0.5)` | Behind the sidebar slide-over and modals |
|
|
268
|
+
|
|
269
|
+
**Shadow Philosophy**: Linear avoids shadows almost entirely — elevation is communicated by a one-step background lift (`#08090A` → `#1C1D1F`) and a precise 1pt border, not by blur. The only true shadows are on floating surfaces (command menu, dropdowns) where a large, very dark, soft shadow separates them from the near-black canvas. The aesthetic is flat, sharp, and fast — shadows cost compositing time and Linear optimizes for instant.
|
|
270
|
+
|
|
271
|
+
### Motion
|
|
272
|
+
- **Command menu open**: opacity 0→1 + scale 0.96→1.0 over 120ms ease-out — fast enough to feel instant
|
|
273
|
+
- **Row selection**: background color cross-fade 90ms, no movement
|
|
274
|
+
- **Group collapse/expand**: height spring 150ms (response 0.3, damping 0.85)
|
|
275
|
+
- **Status change**: 150ms glyph morph between status icons
|
|
276
|
+
- **Sidebar slide-over**: translateX spring 220ms (response 0.35, damping 0.9) with scrim fade
|
|
277
|
+
- **Detail panel push**: slide-in-from-right 240ms ease-out; no parallax — speed over spectacle
|
|
278
|
+
- **Haptic**: `.impactOccurred(.light)` on primary action commit, status change, and command execute
|
|
279
|
+
|
|
280
|
+
## 7. Do's and Don'ts
|
|
281
|
+
|
|
282
|
+
### Do
|
|
283
|
+
- Use `#08090A` as the canvas — near-OLED black, darker than `#121212`
|
|
284
|
+
- Reserve Linear Purple (`#5E6AD2`) for primary action, focus, and selection — it is the verb
|
|
285
|
+
- Keep issue rows at ~44pt — density is the value proposition
|
|
286
|
+
- Use the iconographic status system (drawn glyphs) instead of colored fills or text badges
|
|
287
|
+
- Make the command menu (Cmd+K) reachable from anywhere and lightning fast
|
|
288
|
+
- Use Inter at 400/500/600 with tabular numerics on counts and identifiers
|
|
289
|
+
- Communicate elevation with a one-step background lift + 1pt border, not big shadows
|
|
290
|
+
- Render keyboard shortcuts in monospace on the trailing edge of command rows
|
|
291
|
+
- Animate fast (90–240ms) — every transition should feel near-instant
|
|
292
|
+
|
|
293
|
+
### Don't
|
|
294
|
+
- Don't use `#121212` — Linear is darker; the near-OLED black is part of the identity
|
|
295
|
+
- Don't introduce a second accent color — purple alone carries action and focus
|
|
296
|
+
- Don't add a bottom tab bar — navigation is the slide-over sidebar
|
|
297
|
+
- Don't pad issue rows for "breathing room" — that destroys the density that makes Linear fast
|
|
298
|
+
- Don't use heavy weights — Inter stops at 600 here; no bold titles
|
|
299
|
+
- Don't use colored status badges with text — the drawn icon system *is* the language
|
|
300
|
+
- Don't add large drop shadows on rows or cards — flat + 1pt border is the look
|
|
301
|
+
- Don't animate slowly — anything over ~250ms feels broken in Linear
|
|
302
|
+
- Don't use the label dot color anywhere except labels — it is data, not chrome
|
|
303
|
+
|
|
304
|
+
## 8. Responsive Behavior
|
|
305
|
+
|
|
306
|
+
### Device Sizes
|
|
307
|
+
| Device | Width | Key Changes |
|
|
308
|
+
|--------|-------|-------------|
|
|
309
|
+
| iPhone SE (3rd gen) | 375pt | Compact 44pt rows, identifier may truncate before title |
|
|
310
|
+
| iPhone 13/14/15 | 390pt | Standard 44pt rows, full identifier + title |
|
|
311
|
+
| iPhone 15/16 Pro | 393pt | Dynamic Island clears the 44pt top bar |
|
|
312
|
+
| iPhone 15/16 Pro Max | 430pt | Comfortable 52pt rows option, wider assignee column |
|
|
313
|
+
| iPad | 768pt+ | 2-pane: persistent sidebar + list + detail; command menu stays 560pt centered |
|
|
314
|
+
|
|
315
|
+
### Dynamic Type
|
|
316
|
+
- Issue titles, body, metadata: scale with Dynamic Type
|
|
317
|
+
- Issue identifiers: tabular mono, scales but never wraps (truncates with ellipsis)
|
|
318
|
+
- Status / priority glyphs: fixed 16pt / 14pt (layout-critical)
|
|
319
|
+
- Command shortcuts: fixed mono 12pt (never scales)
|
|
320
|
+
|
|
321
|
+
### Orientation
|
|
322
|
+
- Issue list / detail: **portrait and landscape**
|
|
323
|
+
- iPad: landscape unlocks the 2-pane master-detail layout
|
|
324
|
+
- Command menu: always centered, re-centers on rotation
|
|
325
|
+
|
|
326
|
+
### Touch Targets
|
|
327
|
+
- Issue row: full 44pt height tappable
|
|
328
|
+
- Status / priority glyphs: 16pt visual, 32pt hit area
|
|
329
|
+
- Toolbar icons: 18pt visual, 32pt hit area
|
|
330
|
+
- Command rows: full 40pt height
|
|
331
|
+
|
|
332
|
+
### Safe Area Handling
|
|
333
|
+
- Top: top bar respects safe area / Dynamic Island
|
|
334
|
+
- Bottom: composer sheet and list respect the home indicator
|
|
335
|
+
- Sides: 16pt content insets; sidebar slide-over starts at the screen edge
|
|
336
|
+
|
|
337
|
+
## 9. Agent Prompt Guide
|
|
338
|
+
|
|
339
|
+
### Quick Color Reference
|
|
340
|
+
- Canvas: `#08090A`
|
|
341
|
+
- Surface 1 (sheet/rows): `#141516`
|
|
342
|
+
- Surface 2 (modal/hover): `#1C1D1F`
|
|
343
|
+
- Surface 3 (pressed/input): `#232428`
|
|
344
|
+
- Divider: `#23252A`
|
|
345
|
+
- Primary text: `#F7F8F8`
|
|
346
|
+
- Secondary text: `#8A8F98`
|
|
347
|
+
- Tertiary text: `#5C5F6A`
|
|
348
|
+
- Linear Purple (action/focus): `#5E6AD2`
|
|
349
|
+
- Purple pressed: `#4F58B8`
|
|
350
|
+
- In-progress amber: `#F2C94C`
|
|
351
|
+
- Error red: `#EB5757`
|
|
352
|
+
|
|
353
|
+
### Example Component Prompts
|
|
354
|
+
- "Create a SwiftUI Linear issue row: 44pt height on canvas #08090A. Leading 16pt status glyph (a half-filled circle for In Progress in #F2C94C), then 'ENG-1423' in SF Mono 13pt weight 500 #8A8F98, then title 'Fix flaky auth redirect' in Inter 15pt weight 500 #F7F8F8 (1-line ellipsized), a flexible spacer, a 14pt priority-bars glyph, and a 20pt circular assignee avatar. Hover/active background #1C1D1F; selected background rgba(94,106,210,0.14) with a 2pt #5E6AD2 left inset."
|
|
355
|
+
- "Build the Linear command menu: a 560pt-wide centered sheet, background #141516, 1pt #23252A border, 12pt corner radius, shadow rgba(0,0,0,0.6) 0 24px 64px. Top is a 44pt search input with a leading 16pt magnifyingglass #8A8F98 and placeholder 'Type a command or search…' in 14pt #5C5F6A. Below, 40pt rows: leading icon, label in Inter 14pt weight 500, trailing keyboard shortcut in SF Mono 12pt #8A8F98. The focused row has background rgba(94,106,210,0.14). Opens with opacity 0→1 + scale 0.96→1 over 120ms."
|
|
356
|
+
- "Design the Linear cycle progress bar: a 6pt-tall track, radius 3pt, background #1C1D1F, with a #5E6AD2 fill at 60% width. Below it, caption '14 of 23 completed · 4 days left' in Inter 12pt #8A8F98."
|
|
357
|
+
- "Create the Linear primary button: background #5E6AD2, text 'Create issue' in Inter 14pt weight 600 #FFFFFF, 8pt vertical / 14pt horizontal padding, 8pt corner radius, 32pt tall. Pressed: background #4F58B8, scale 0.98, light haptic."
|
|
358
|
+
- "Build a Linear status dropdown: a 28pt trigger pill showing a status glyph + 'In Progress' in 13pt. The menu is #1C1D1F with a 1pt #23252A border, 8pt radius, 32pt rows; the selected row has a leading #5E6AD2 check and hover rows go to #232428."
|
|
359
|
+
|
|
360
|
+
### Iteration Guide
|
|
361
|
+
1. Canvas is `#08090A` — near-OLED black, NOT `#121212`
|
|
362
|
+
2. Linear Purple is the only accent — primary action, focus, and selection; never a second color
|
|
363
|
+
3. Issue rows are dense (~44pt) — resist any urge to pad them
|
|
364
|
+
4. Status is a drawn icon language (backlog/started/done), not colored text badges
|
|
365
|
+
5. The command menu (Cmd+K) is the soul of the app — fast, fuzzy, keyboard-first
|
|
366
|
+
6. Typography is Inter 400/500/600 with tabular numerics on counts and IDs; mono for identifiers and shortcuts
|
|
367
|
+
7. Elevation = one-step background lift + 1pt border; real shadows only on floating sheets
|
|
368
|
+
8. Motion is near-instant (90–240ms) — speed is the aesthetic, never animate slowly
|