@hex-core/themes 0.1.1 → 0.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/dist/chunk-2LXEWDOF.js +68 -0
- package/dist/chunk-2LXEWDOF.js.map +1 -0
- package/dist/chunk-2SIVAJHV.js +68 -0
- package/dist/chunk-2SIVAJHV.js.map +1 -0
- package/dist/chunk-2UVSQNAF.js +68 -0
- package/dist/chunk-2UVSQNAF.js.map +1 -0
- package/dist/chunk-2XBAWSN6.js +68 -0
- package/dist/chunk-2XBAWSN6.js.map +1 -0
- package/dist/chunk-3FR2JLIS.js +68 -0
- package/dist/chunk-3FR2JLIS.js.map +1 -0
- package/dist/chunk-4AQSFP5U.js +68 -0
- package/dist/chunk-4AQSFP5U.js.map +1 -0
- package/dist/chunk-4CRJPM5Q.js +68 -0
- package/dist/chunk-4CRJPM5Q.js.map +1 -0
- package/dist/chunk-4EAEPKGB.js +68 -0
- package/dist/chunk-4EAEPKGB.js.map +1 -0
- package/dist/chunk-4JPNRIHQ.js +68 -0
- package/dist/chunk-4JPNRIHQ.js.map +1 -0
- package/dist/chunk-4WCDNNON.js +68 -0
- package/dist/chunk-4WCDNNON.js.map +1 -0
- package/dist/chunk-4XQKUS33.js +68 -0
- package/dist/chunk-4XQKUS33.js.map +1 -0
- package/dist/chunk-5FW5RHIU.js +68 -0
- package/dist/chunk-5FW5RHIU.js.map +1 -0
- package/dist/chunk-64G56KOZ.js +68 -0
- package/dist/chunk-64G56KOZ.js.map +1 -0
- package/dist/chunk-6UDYRVS2.js +68 -0
- package/dist/chunk-6UDYRVS2.js.map +1 -0
- package/dist/chunk-75HM5DPO.js +68 -0
- package/dist/chunk-75HM5DPO.js.map +1 -0
- package/dist/chunk-7VETPCK7.js +68 -0
- package/dist/chunk-7VETPCK7.js.map +1 -0
- package/dist/chunk-BMH72AOR.js +68 -0
- package/dist/chunk-BMH72AOR.js.map +1 -0
- package/dist/chunk-BTDSHLZE.js +68 -0
- package/dist/chunk-BTDSHLZE.js.map +1 -0
- package/dist/chunk-BTKVLLPL.js +68 -0
- package/dist/chunk-BTKVLLPL.js.map +1 -0
- package/dist/chunk-CZDOW4UT.js +68 -0
- package/dist/chunk-CZDOW4UT.js.map +1 -0
- package/dist/chunk-DHT4VCQG.js +68 -0
- package/dist/chunk-DHT4VCQG.js.map +1 -0
- package/dist/chunk-DM6DAYEM.js +68 -0
- package/dist/chunk-DM6DAYEM.js.map +1 -0
- package/dist/chunk-DN2M4ZI5.js +68 -0
- package/dist/chunk-DN2M4ZI5.js.map +1 -0
- package/dist/chunk-DOUW4N6H.js +68 -0
- package/dist/chunk-DOUW4N6H.js.map +1 -0
- package/dist/chunk-DTZPLDZ5.js +68 -0
- package/dist/chunk-DTZPLDZ5.js.map +1 -0
- package/dist/chunk-E6MRSOPD.js +68 -0
- package/dist/chunk-E6MRSOPD.js.map +1 -0
- package/dist/chunk-FABPV7PL.js +68 -0
- package/dist/chunk-FABPV7PL.js.map +1 -0
- package/dist/chunk-FM67TP64.js +68 -0
- package/dist/chunk-FM67TP64.js.map +1 -0
- package/dist/chunk-GFABZZVH.js +68 -0
- package/dist/chunk-GFABZZVH.js.map +1 -0
- package/dist/chunk-HTLRH4MJ.js +68 -0
- package/dist/chunk-HTLRH4MJ.js.map +1 -0
- package/dist/chunk-IDBHZ2PV.js +68 -0
- package/dist/chunk-IDBHZ2PV.js.map +1 -0
- package/dist/chunk-J54YKOPC.js +68 -0
- package/dist/chunk-J54YKOPC.js.map +1 -0
- package/dist/chunk-JN5K3V7M.js +68 -0
- package/dist/chunk-JN5K3V7M.js.map +1 -0
- package/dist/chunk-JU4TDT2G.js +528 -0
- package/dist/chunk-JU4TDT2G.js.map +1 -0
- package/dist/chunk-JWBGRQJI.js +68 -0
- package/dist/chunk-JWBGRQJI.js.map +1 -0
- package/dist/chunk-KFVFORR5.js +68 -0
- package/dist/chunk-KFVFORR5.js.map +1 -0
- package/dist/chunk-LILQL4KG.js +68 -0
- package/dist/chunk-LILQL4KG.js.map +1 -0
- package/dist/chunk-M7JXKTNY.js +68 -0
- package/dist/chunk-M7JXKTNY.js.map +1 -0
- package/dist/chunk-NM567GJA.js +68 -0
- package/dist/chunk-NM567GJA.js.map +1 -0
- package/dist/chunk-NMWHITVJ.js +68 -0
- package/dist/chunk-NMWHITVJ.js.map +1 -0
- package/dist/chunk-NSWZ6DXW.js +68 -0
- package/dist/chunk-NSWZ6DXW.js.map +1 -0
- package/dist/chunk-NXSLVEML.js +68 -0
- package/dist/chunk-NXSLVEML.js.map +1 -0
- package/dist/chunk-NZX4NVB7.js +68 -0
- package/dist/chunk-NZX4NVB7.js.map +1 -0
- package/dist/chunk-OAB7GNRG.js +68 -0
- package/dist/chunk-OAB7GNRG.js.map +1 -0
- package/dist/chunk-P4I6HJZA.js +68 -0
- package/dist/chunk-P4I6HJZA.js.map +1 -0
- package/dist/chunk-PC3NQBOZ.js +68 -0
- package/dist/chunk-PC3NQBOZ.js.map +1 -0
- package/dist/chunk-PE3RNDVR.js +68 -0
- package/dist/chunk-PE3RNDVR.js.map +1 -0
- package/dist/chunk-Q2Q3577E.js +68 -0
- package/dist/chunk-Q2Q3577E.js.map +1 -0
- package/dist/chunk-QEMINSRG.js +68 -0
- package/dist/chunk-QEMINSRG.js.map +1 -0
- package/dist/chunk-RGBZ3ZXX.js +68 -0
- package/dist/chunk-RGBZ3ZXX.js.map +1 -0
- package/dist/chunk-RWSUTY67.js +68 -0
- package/dist/chunk-RWSUTY67.js.map +1 -0
- package/dist/chunk-SB3JKBJD.js +68 -0
- package/dist/chunk-SB3JKBJD.js.map +1 -0
- package/dist/chunk-TAHSZ55U.js +68 -0
- package/dist/chunk-TAHSZ55U.js.map +1 -0
- package/dist/chunk-TCR3NGBV.js +68 -0
- package/dist/chunk-TCR3NGBV.js.map +1 -0
- package/dist/chunk-TKPBFOEN.js +68 -0
- package/dist/chunk-TKPBFOEN.js.map +1 -0
- package/dist/chunk-TN6KDVAG.js +68 -0
- package/dist/chunk-TN6KDVAG.js.map +1 -0
- package/dist/chunk-UIMBGFLW.js +68 -0
- package/dist/chunk-UIMBGFLW.js.map +1 -0
- package/dist/chunk-UL4F5NTU.js +68 -0
- package/dist/chunk-UL4F5NTU.js.map +1 -0
- package/dist/chunk-UWDKL3IR.js +68 -0
- package/dist/chunk-UWDKL3IR.js.map +1 -0
- package/dist/chunk-VNYLNLIH.js +68 -0
- package/dist/chunk-VNYLNLIH.js.map +1 -0
- package/dist/chunk-W2VEHVDK.js +68 -0
- package/dist/chunk-W2VEHVDK.js.map +1 -0
- package/dist/chunk-WMYSBUH5.js +68 -0
- package/dist/chunk-WMYSBUH5.js.map +1 -0
- package/dist/chunk-WNTQIMRE.js +68 -0
- package/dist/chunk-WNTQIMRE.js.map +1 -0
- package/dist/chunk-WY72KJJW.js +68 -0
- package/dist/chunk-WY72KJJW.js.map +1 -0
- package/dist/chunk-WYTM3WHD.js +68 -0
- package/dist/chunk-WYTM3WHD.js.map +1 -0
- package/dist/chunk-XGQWOJRB.js +68 -0
- package/dist/chunk-XGQWOJRB.js.map +1 -0
- package/dist/chunk-YZKPRCKP.js +68 -0
- package/dist/chunk-YZKPRCKP.js.map +1 -0
- package/dist/chunk-ZEPFA7ZT.js +68 -0
- package/dist/chunk-ZEPFA7ZT.js.map +1 -0
- package/dist/chunk-ZIMELPXX.js +68 -0
- package/dist/chunk-ZIMELPXX.js.map +1 -0
- package/dist/chunk-ZMAIAAT6.js +68 -0
- package/dist/chunk-ZMAIAAT6.js.map +1 -0
- package/dist/chunk-ZOCDSEOF.js +68 -0
- package/dist/chunk-ZOCDSEOF.js.map +1 -0
- package/dist/chunk-ZSUTMUVB.js +68 -0
- package/dist/chunk-ZSUTMUVB.js.map +1 -0
- package/dist/index.d.ts +185 -23
- package/dist/index.js +359 -3
- package/dist/index.js.map +1 -1
- package/dist/presets/_briefs/airbnb.d.ts +3 -0
- package/dist/presets/_briefs/airbnb.js +551 -0
- package/dist/presets/_briefs/airbnb.js.map +1 -0
- package/dist/presets/_briefs/airtable.d.ts +3 -0
- package/dist/presets/_briefs/airtable.js +560 -0
- package/dist/presets/_briefs/airtable.js.map +1 -0
- package/dist/presets/_briefs/apple.d.ts +3 -0
- package/dist/presets/_briefs/apple.js +568 -0
- package/dist/presets/_briefs/apple.js.map +1 -0
- package/dist/presets/_briefs/binance.d.ts +3 -0
- package/dist/presets/_briefs/binance.js +640 -0
- package/dist/presets/_briefs/binance.js.map +1 -0
- package/dist/presets/_briefs/bmw-m.d.ts +3 -0
- package/dist/presets/_briefs/bmw-m.js +509 -0
- package/dist/presets/_briefs/bmw-m.js.map +1 -0
- package/dist/presets/_briefs/bmw.d.ts +3 -0
- package/dist/presets/_briefs/bmw.js +550 -0
- package/dist/presets/_briefs/bmw.js.map +1 -0
- package/dist/presets/_briefs/bugatti.d.ts +3 -0
- package/dist/presets/_briefs/bugatti.js +460 -0
- package/dist/presets/_briefs/bugatti.js.map +1 -0
- package/dist/presets/_briefs/cal.d.ts +3 -0
- package/dist/presets/_briefs/cal.js +548 -0
- package/dist/presets/_briefs/cal.js.map +1 -0
- package/dist/presets/_briefs/claude.d.ts +3 -0
- package/dist/presets/_briefs/claude.js +595 -0
- package/dist/presets/_briefs/claude.js.map +1 -0
- package/dist/presets/_briefs/clay.d.ts +3 -0
- package/dist/presets/_briefs/clay.js +547 -0
- package/dist/presets/_briefs/clay.js.map +1 -0
- package/dist/presets/_briefs/clickhouse.d.ts +3 -0
- package/dist/presets/_briefs/clickhouse.js +550 -0
- package/dist/presets/_briefs/clickhouse.js.map +1 -0
- package/dist/presets/_briefs/cohere.d.ts +3 -0
- package/dist/presets/_briefs/cohere.js +457 -0
- package/dist/presets/_briefs/cohere.js.map +1 -0
- package/dist/presets/_briefs/coinbase.d.ts +3 -0
- package/dist/presets/_briefs/coinbase.js +576 -0
- package/dist/presets/_briefs/coinbase.js.map +1 -0
- package/dist/presets/_briefs/composio.d.ts +3 -0
- package/dist/presets/_briefs/composio.js +512 -0
- package/dist/presets/_briefs/composio.js.map +1 -0
- package/dist/presets/_briefs/cursor.d.ts +3 -0
- package/dist/presets/_briefs/cursor.js +543 -0
- package/dist/presets/_briefs/cursor.js.map +1 -0
- package/dist/presets/_briefs/elevenlabs.d.ts +3 -0
- package/dist/presets/_briefs/elevenlabs.js +510 -0
- package/dist/presets/_briefs/elevenlabs.js.map +1 -0
- package/dist/presets/_briefs/expo.d.ts +3 -0
- package/dist/presets/_briefs/expo.js +532 -0
- package/dist/presets/_briefs/expo.js.map +1 -0
- package/dist/presets/_briefs/ferrari.d.ts +3 -0
- package/dist/presets/_briefs/ferrari.js +537 -0
- package/dist/presets/_briefs/ferrari.js.map +1 -0
- package/dist/presets/_briefs/figma.d.ts +3 -0
- package/dist/presets/_briefs/figma.js +226 -0
- package/dist/presets/_briefs/figma.js.map +1 -0
- package/dist/presets/_briefs/framer.d.ts +3 -0
- package/dist/presets/_briefs/framer.js +252 -0
- package/dist/presets/_briefs/framer.js.map +1 -0
- package/dist/presets/_briefs/hashicorp.d.ts +3 -0
- package/dist/presets/_briefs/hashicorp.js +284 -0
- package/dist/presets/_briefs/hashicorp.js.map +1 -0
- package/dist/presets/_briefs/ibm.d.ts +3 -0
- package/dist/presets/_briefs/ibm.js +338 -0
- package/dist/presets/_briefs/ibm.js.map +1 -0
- package/dist/presets/_briefs/intercom.d.ts +3 -0
- package/dist/presets/_briefs/intercom.js +152 -0
- package/dist/presets/_briefs/intercom.js.map +1 -0
- package/dist/presets/_briefs/kraken.d.ts +3 -0
- package/dist/presets/_briefs/kraken.js +131 -0
- package/dist/presets/_briefs/kraken.js.map +1 -0
- package/dist/presets/_briefs/lamborghini.d.ts +3 -0
- package/dist/presets/_briefs/lamborghini.js +294 -0
- package/dist/presets/_briefs/lamborghini.js.map +1 -0
- package/dist/presets/_briefs/linear.d.ts +3 -0
- package/dist/presets/_briefs/linear.js +373 -0
- package/dist/presets/_briefs/linear.js.map +1 -0
- package/dist/presets/_briefs/lovable.d.ts +3 -0
- package/dist/presets/_briefs/lovable.js +304 -0
- package/dist/presets/_briefs/lovable.js.map +1 -0
- package/dist/presets/_briefs/mastercard.d.ts +3 -0
- package/dist/presets/_briefs/mastercard.js +371 -0
- package/dist/presets/_briefs/mastercard.js.map +1 -0
- package/dist/presets/_briefs/meta.d.ts +3 -0
- package/dist/presets/_briefs/meta.js +372 -0
- package/dist/presets/_briefs/meta.js.map +1 -0
- package/dist/presets/_briefs/minimax.d.ts +3 -0
- package/dist/presets/_briefs/minimax.js +263 -0
- package/dist/presets/_briefs/minimax.js.map +1 -0
- package/dist/presets/_briefs/mintlify.d.ts +3 -0
- package/dist/presets/_briefs/mintlify.js +332 -0
- package/dist/presets/_briefs/mintlify.js.map +1 -0
- package/dist/presets/_briefs/miro.d.ts +3 -0
- package/dist/presets/_briefs/miro.js +114 -0
- package/dist/presets/_briefs/miro.js.map +1 -0
- package/dist/presets/_briefs/mistral.d.ts +3 -0
- package/dist/presets/_briefs/mistral.js +267 -0
- package/dist/presets/_briefs/mistral.js.map +1 -0
- package/dist/presets/_briefs/mongodb.d.ts +3 -0
- package/dist/presets/_briefs/mongodb.js +272 -0
- package/dist/presets/_briefs/mongodb.js.map +1 -0
- package/dist/presets/_briefs/nike.d.ts +3 -0
- package/dist/presets/_briefs/nike.js +369 -0
- package/dist/presets/_briefs/nike.js.map +1 -0
- package/dist/presets/_briefs/notion.d.ts +3 -0
- package/dist/presets/_briefs/notion.js +315 -0
- package/dist/presets/_briefs/notion.js.map +1 -0
- package/dist/presets/_briefs/nvidia.d.ts +3 -0
- package/dist/presets/_briefs/nvidia.js +299 -0
- package/dist/presets/_briefs/nvidia.js.map +1 -0
- package/dist/presets/_briefs/ollama.d.ts +3 -0
- package/dist/presets/_briefs/ollama.js +273 -0
- package/dist/presets/_briefs/ollama.js.map +1 -0
- package/dist/presets/_briefs/opencode.d.ts +3 -0
- package/dist/presets/_briefs/opencode.js +287 -0
- package/dist/presets/_briefs/opencode.js.map +1 -0
- package/dist/presets/_briefs/pinterest.d.ts +3 -0
- package/dist/presets/_briefs/pinterest.js +236 -0
- package/dist/presets/_briefs/pinterest.js.map +1 -0
- package/dist/presets/_briefs/playstation.d.ts +3 -0
- package/dist/presets/_briefs/playstation.js +370 -0
- package/dist/presets/_briefs/playstation.js.map +1 -0
- package/dist/presets/_briefs/posthog.d.ts +3 -0
- package/dist/presets/_briefs/posthog.js +262 -0
- package/dist/presets/_briefs/posthog.js.map +1 -0
- package/dist/presets/_briefs/raycast.d.ts +3 -0
- package/dist/presets/_briefs/raycast.js +274 -0
- package/dist/presets/_briefs/raycast.js.map +1 -0
- package/dist/presets/_briefs/renault.d.ts +3 -0
- package/dist/presets/_briefs/renault.js +317 -0
- package/dist/presets/_briefs/renault.js.map +1 -0
- package/dist/presets/_briefs/replicate.d.ts +3 -0
- package/dist/presets/_briefs/replicate.js +267 -0
- package/dist/presets/_briefs/replicate.js.map +1 -0
- package/dist/presets/_briefs/resend.d.ts +3 -0
- package/dist/presets/_briefs/resend.js +309 -0
- package/dist/presets/_briefs/resend.js.map +1 -0
- package/dist/presets/_briefs/revolut.d.ts +3 -0
- package/dist/presets/_briefs/revolut.js +191 -0
- package/dist/presets/_briefs/revolut.js.map +1 -0
- package/dist/presets/_briefs/runwayml.d.ts +3 -0
- package/dist/presets/_briefs/runwayml.js +250 -0
- package/dist/presets/_briefs/runwayml.js.map +1 -0
- package/dist/presets/_briefs/sanity.d.ts +3 -0
- package/dist/presets/_briefs/sanity.js +363 -0
- package/dist/presets/_briefs/sanity.js.map +1 -0
- package/dist/presets/_briefs/sentry.d.ts +3 -0
- package/dist/presets/_briefs/sentry.js +268 -0
- package/dist/presets/_briefs/sentry.js.map +1 -0
- package/dist/presets/_briefs/shopify.d.ts +3 -0
- package/dist/presets/_briefs/shopify.js +356 -0
- package/dist/presets/_briefs/shopify.js.map +1 -0
- package/dist/presets/_briefs/slack.d.ts +3 -0
- package/dist/presets/_briefs/slack.js +221 -0
- package/dist/presets/_briefs/slack.js.map +1 -0
- package/dist/presets/_briefs/spacex.d.ts +3 -0
- package/dist/presets/_briefs/spacex.js +200 -0
- package/dist/presets/_briefs/spacex.js.map +1 -0
- package/dist/presets/_briefs/spotify.d.ts +3 -0
- package/dist/presets/_briefs/spotify.js +252 -0
- package/dist/presets/_briefs/spotify.js.map +1 -0
- package/dist/presets/_briefs/starbucks.d.ts +3 -0
- package/dist/presets/_briefs/starbucks.js +586 -0
- package/dist/presets/_briefs/starbucks.js.map +1 -0
- package/dist/presets/_briefs/stripe.d.ts +3 -0
- package/dist/presets/_briefs/stripe.js +328 -0
- package/dist/presets/_briefs/stripe.js.map +1 -0
- package/dist/presets/_briefs/supabase.d.ts +3 -0
- package/dist/presets/_briefs/supabase.js +261 -0
- package/dist/presets/_briefs/supabase.js.map +1 -0
- package/dist/presets/_briefs/superhuman.d.ts +3 -0
- package/dist/presets/_briefs/superhuman.js +258 -0
- package/dist/presets/_briefs/superhuman.js.map +1 -0
- package/dist/presets/_briefs/tesla.d.ts +3 -0
- package/dist/presets/_briefs/tesla.js +292 -0
- package/dist/presets/_briefs/tesla.js.map +1 -0
- package/dist/presets/_briefs/theverge.d.ts +3 -0
- package/dist/presets/_briefs/theverge.js +345 -0
- package/dist/presets/_briefs/theverge.js.map +1 -0
- package/dist/presets/_briefs/together.d.ts +3 -0
- package/dist/presets/_briefs/together.js +269 -0
- package/dist/presets/_briefs/together.js.map +1 -0
- package/dist/presets/_briefs/uber.d.ts +3 -0
- package/dist/presets/_briefs/uber.js +301 -0
- package/dist/presets/_briefs/uber.js.map +1 -0
- package/dist/presets/_briefs/vercel.d.ts +3 -0
- package/dist/presets/_briefs/vercel.js +316 -0
- package/dist/presets/_briefs/vercel.js.map +1 -0
- package/dist/presets/_briefs/vodafone.d.ts +3 -0
- package/dist/presets/_briefs/vodafone.js +429 -0
- package/dist/presets/_briefs/vodafone.js.map +1 -0
- package/dist/presets/_briefs/voltagent.d.ts +3 -0
- package/dist/presets/_briefs/voltagent.js +329 -0
- package/dist/presets/_briefs/voltagent.js.map +1 -0
- package/dist/presets/_briefs/warp.d.ts +3 -0
- package/dist/presets/_briefs/warp.js +259 -0
- package/dist/presets/_briefs/warp.js.map +1 -0
- package/dist/presets/_briefs/webflow.d.ts +3 -0
- package/dist/presets/_briefs/webflow.js +98 -0
- package/dist/presets/_briefs/webflow.js.map +1 -0
- package/dist/presets/_briefs/wired.d.ts +3 -0
- package/dist/presets/_briefs/wired.js +284 -0
- package/dist/presets/_briefs/wired.js.map +1 -0
- package/dist/presets/_briefs/wise.d.ts +3 -0
- package/dist/presets/_briefs/wise.js +179 -0
- package/dist/presets/_briefs/wise.js.map +1 -0
- package/dist/presets/_briefs/x.d.ts +3 -0
- package/dist/presets/_briefs/x.js +263 -0
- package/dist/presets/_briefs/x.js.map +1 -0
- package/dist/presets/_briefs/zapier.d.ts +3 -0
- package/dist/presets/_briefs/zapier.js +334 -0
- package/dist/presets/_briefs/zapier.js.map +1 -0
- package/dist/presets/airbnb.d.ts +5 -0
- package/dist/presets/airbnb.js +7 -0
- package/dist/presets/airbnb.js.map +1 -0
- package/dist/presets/airtable.d.ts +5 -0
- package/dist/presets/airtable.js +7 -0
- package/dist/presets/airtable.js.map +1 -0
- package/dist/presets/apple.d.ts +5 -0
- package/dist/presets/apple.js +7 -0
- package/dist/presets/apple.js.map +1 -0
- package/dist/presets/binance.d.ts +5 -0
- package/dist/presets/binance.js +7 -0
- package/dist/presets/binance.js.map +1 -0
- package/dist/presets/bmw-m.d.ts +5 -0
- package/dist/presets/bmw-m.js +7 -0
- package/dist/presets/bmw-m.js.map +1 -0
- package/dist/presets/bmw.d.ts +5 -0
- package/dist/presets/bmw.js +7 -0
- package/dist/presets/bmw.js.map +1 -0
- package/dist/presets/bugatti.d.ts +5 -0
- package/dist/presets/bugatti.js +7 -0
- package/dist/presets/bugatti.js.map +1 -0
- package/dist/presets/cal.d.ts +5 -0
- package/dist/presets/cal.js +7 -0
- package/dist/presets/cal.js.map +1 -0
- package/dist/presets/claude.d.ts +5 -0
- package/dist/presets/claude.js +7 -0
- package/dist/presets/claude.js.map +1 -0
- package/dist/presets/clay.d.ts +5 -0
- package/dist/presets/clay.js +7 -0
- package/dist/presets/clay.js.map +1 -0
- package/dist/presets/clickhouse.d.ts +5 -0
- package/dist/presets/clickhouse.js +7 -0
- package/dist/presets/clickhouse.js.map +1 -0
- package/dist/presets/cohere.d.ts +5 -0
- package/dist/presets/cohere.js +7 -0
- package/dist/presets/cohere.js.map +1 -0
- package/dist/presets/coinbase.d.ts +5 -0
- package/dist/presets/coinbase.js +7 -0
- package/dist/presets/coinbase.js.map +1 -0
- package/dist/presets/composio.d.ts +5 -0
- package/dist/presets/composio.js +7 -0
- package/dist/presets/composio.js.map +1 -0
- package/dist/presets/cursor.d.ts +5 -0
- package/dist/presets/cursor.js +7 -0
- package/dist/presets/cursor.js.map +1 -0
- package/dist/presets/elevenlabs.d.ts +5 -0
- package/dist/presets/elevenlabs.js +7 -0
- package/dist/presets/elevenlabs.js.map +1 -0
- package/dist/presets/expo.d.ts +5 -0
- package/dist/presets/expo.js +7 -0
- package/dist/presets/expo.js.map +1 -0
- package/dist/presets/ferrari.d.ts +5 -0
- package/dist/presets/ferrari.js +7 -0
- package/dist/presets/ferrari.js.map +1 -0
- package/dist/presets/figma.d.ts +5 -0
- package/dist/presets/figma.js +7 -0
- package/dist/presets/figma.js.map +1 -0
- package/dist/presets/framer.d.ts +5 -0
- package/dist/presets/framer.js +7 -0
- package/dist/presets/framer.js.map +1 -0
- package/dist/presets/hashicorp.d.ts +5 -0
- package/dist/presets/hashicorp.js +7 -0
- package/dist/presets/hashicorp.js.map +1 -0
- package/dist/presets/ibm.d.ts +5 -0
- package/dist/presets/ibm.js +7 -0
- package/dist/presets/ibm.js.map +1 -0
- package/dist/presets/index.d.ts +94 -0
- package/dist/presets/index.js +297 -0
- package/dist/presets/index.js.map +1 -0
- package/dist/presets/intercom.d.ts +5 -0
- package/dist/presets/intercom.js +7 -0
- package/dist/presets/intercom.js.map +1 -0
- package/dist/presets/kraken.d.ts +5 -0
- package/dist/presets/kraken.js +7 -0
- package/dist/presets/kraken.js.map +1 -0
- package/dist/presets/lamborghini.d.ts +5 -0
- package/dist/presets/lamborghini.js +7 -0
- package/dist/presets/lamborghini.js.map +1 -0
- package/dist/presets/linear.d.ts +5 -0
- package/dist/presets/linear.js +7 -0
- package/dist/presets/linear.js.map +1 -0
- package/dist/presets/lovable.d.ts +5 -0
- package/dist/presets/lovable.js +7 -0
- package/dist/presets/lovable.js.map +1 -0
- package/dist/presets/mastercard.d.ts +5 -0
- package/dist/presets/mastercard.js +7 -0
- package/dist/presets/mastercard.js.map +1 -0
- package/dist/presets/meta.d.ts +5 -0
- package/dist/presets/meta.js +7 -0
- package/dist/presets/meta.js.map +1 -0
- package/dist/presets/minimax.d.ts +5 -0
- package/dist/presets/minimax.js +7 -0
- package/dist/presets/minimax.js.map +1 -0
- package/dist/presets/mintlify.d.ts +5 -0
- package/dist/presets/mintlify.js +7 -0
- package/dist/presets/mintlify.js.map +1 -0
- package/dist/presets/miro.d.ts +5 -0
- package/dist/presets/miro.js +7 -0
- package/dist/presets/miro.js.map +1 -0
- package/dist/presets/mistral.d.ts +5 -0
- package/dist/presets/mistral.js +7 -0
- package/dist/presets/mistral.js.map +1 -0
- package/dist/presets/mongodb.d.ts +5 -0
- package/dist/presets/mongodb.js +7 -0
- package/dist/presets/mongodb.js.map +1 -0
- package/dist/presets/nike.d.ts +5 -0
- package/dist/presets/nike.js +7 -0
- package/dist/presets/nike.js.map +1 -0
- package/dist/presets/notion.d.ts +5 -0
- package/dist/presets/notion.js +7 -0
- package/dist/presets/notion.js.map +1 -0
- package/dist/presets/nvidia.d.ts +5 -0
- package/dist/presets/nvidia.js +7 -0
- package/dist/presets/nvidia.js.map +1 -0
- package/dist/presets/ollama.d.ts +5 -0
- package/dist/presets/ollama.js +7 -0
- package/dist/presets/ollama.js.map +1 -0
- package/dist/presets/opencode.d.ts +5 -0
- package/dist/presets/opencode.js +7 -0
- package/dist/presets/opencode.js.map +1 -0
- package/dist/presets/pinterest.d.ts +5 -0
- package/dist/presets/pinterest.js +7 -0
- package/dist/presets/pinterest.js.map +1 -0
- package/dist/presets/playstation.d.ts +5 -0
- package/dist/presets/playstation.js +7 -0
- package/dist/presets/playstation.js.map +1 -0
- package/dist/presets/posthog.d.ts +5 -0
- package/dist/presets/posthog.js +7 -0
- package/dist/presets/posthog.js.map +1 -0
- package/dist/presets/raycast.d.ts +5 -0
- package/dist/presets/raycast.js +7 -0
- package/dist/presets/raycast.js.map +1 -0
- package/dist/presets/renault.d.ts +5 -0
- package/dist/presets/renault.js +7 -0
- package/dist/presets/renault.js.map +1 -0
- package/dist/presets/replicate.d.ts +5 -0
- package/dist/presets/replicate.js +7 -0
- package/dist/presets/replicate.js.map +1 -0
- package/dist/presets/resend.d.ts +5 -0
- package/dist/presets/resend.js +7 -0
- package/dist/presets/resend.js.map +1 -0
- package/dist/presets/revolut.d.ts +5 -0
- package/dist/presets/revolut.js +7 -0
- package/dist/presets/revolut.js.map +1 -0
- package/dist/presets/runwayml.d.ts +5 -0
- package/dist/presets/runwayml.js +7 -0
- package/dist/presets/runwayml.js.map +1 -0
- package/dist/presets/sanity.d.ts +5 -0
- package/dist/presets/sanity.js +7 -0
- package/dist/presets/sanity.js.map +1 -0
- package/dist/presets/sentry.d.ts +5 -0
- package/dist/presets/sentry.js +7 -0
- package/dist/presets/sentry.js.map +1 -0
- package/dist/presets/shopify.d.ts +5 -0
- package/dist/presets/shopify.js +7 -0
- package/dist/presets/shopify.js.map +1 -0
- package/dist/presets/slack.d.ts +5 -0
- package/dist/presets/slack.js +7 -0
- package/dist/presets/slack.js.map +1 -0
- package/dist/presets/spacex.d.ts +5 -0
- package/dist/presets/spacex.js +7 -0
- package/dist/presets/spacex.js.map +1 -0
- package/dist/presets/spotify.d.ts +5 -0
- package/dist/presets/spotify.js +7 -0
- package/dist/presets/spotify.js.map +1 -0
- package/dist/presets/starbucks.d.ts +5 -0
- package/dist/presets/starbucks.js +7 -0
- package/dist/presets/starbucks.js.map +1 -0
- package/dist/presets/stripe.d.ts +5 -0
- package/dist/presets/stripe.js +7 -0
- package/dist/presets/stripe.js.map +1 -0
- package/dist/presets/supabase.d.ts +5 -0
- package/dist/presets/supabase.js +7 -0
- package/dist/presets/supabase.js.map +1 -0
- package/dist/presets/superhuman.d.ts +5 -0
- package/dist/presets/superhuman.js +7 -0
- package/dist/presets/superhuman.js.map +1 -0
- package/dist/presets/tesla.d.ts +5 -0
- package/dist/presets/tesla.js +7 -0
- package/dist/presets/tesla.js.map +1 -0
- package/dist/presets/theverge.d.ts +5 -0
- package/dist/presets/theverge.js +7 -0
- package/dist/presets/theverge.js.map +1 -0
- package/dist/presets/together.d.ts +5 -0
- package/dist/presets/together.js +7 -0
- package/dist/presets/together.js.map +1 -0
- package/dist/presets/uber.d.ts +5 -0
- package/dist/presets/uber.js +7 -0
- package/dist/presets/uber.js.map +1 -0
- package/dist/presets/vercel.d.ts +5 -0
- package/dist/presets/vercel.js +7 -0
- package/dist/presets/vercel.js.map +1 -0
- package/dist/presets/vodafone.d.ts +5 -0
- package/dist/presets/vodafone.js +7 -0
- package/dist/presets/vodafone.js.map +1 -0
- package/dist/presets/voltagent.d.ts +5 -0
- package/dist/presets/voltagent.js +7 -0
- package/dist/presets/voltagent.js.map +1 -0
- package/dist/presets/warp.d.ts +5 -0
- package/dist/presets/warp.js +7 -0
- package/dist/presets/warp.js.map +1 -0
- package/dist/presets/webflow.d.ts +5 -0
- package/dist/presets/webflow.js +7 -0
- package/dist/presets/webflow.js.map +1 -0
- package/dist/presets/wired.d.ts +5 -0
- package/dist/presets/wired.js +7 -0
- package/dist/presets/wired.js.map +1 -0
- package/dist/presets/wise.d.ts +5 -0
- package/dist/presets/wise.js +7 -0
- package/dist/presets/wise.js.map +1 -0
- package/dist/presets/x.d.ts +5 -0
- package/dist/presets/x.js +7 -0
- package/dist/presets/x.js.map +1 -0
- package/dist/presets/zapier.d.ts +5 -0
- package/dist/presets/zapier.js +7 -0
- package/dist/presets/zapier.js.map +1 -0
- package/package.json +15 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/presets/_briefs/elevenlabs.ts"],"sourcesContent":["// AUTO-GENERATED — do not hand-edit. Source: https://github.com/voltagent/awesome-design-md\nexport const elevenlabsBrief = `---\nversion: alpha\nname: ElevenLabs\ndescription: A voice-AI brand whose marketing surfaces read like a quietly editorial print magazine. The base canvas is off-white (\\`#f5f5f5\\`) holding warm near-black ink (\\`#292524\\`); the brand voltage is photographic, not chromatic — soft pastel atmospheric gradient orbs (mint → peach → lavender → sky) drift through the page as the only \"color\" moments. Display runs Waldenburg Light at weight 300 — the editorial signature. Inter carries body, navigation, captions. CTAs are subtle: a near-black ink pill is the primary, a transparent outline is the secondary. The brand trusts atmospheric photography and modest type weights to do all of the brand work; there is no neon accent, no saturated CTA color, no developer-tools dark canvas.\n\ncolors:\n primary: \"#292524\"\n primary-active: \"#0c0a09\"\n ink: \"#0c0a09\"\n body: \"#4e4e4e\"\n body-strong: \"#292524\"\n muted: \"#777169\"\n muted-soft: \"#a8a29e\"\n hairline: \"#e7e5e4\"\n hairline-soft: \"#f0efed\"\n hairline-strong: \"#d6d3d1\"\n canvas: \"#f5f5f5\"\n canvas-soft: \"#fafafa\"\n canvas-deep: \"#0c0a09\"\n surface-card: \"#ffffff\"\n surface-strong: \"#f0efed\"\n surface-dark: \"#0c0a09\"\n surface-dark-elevated: \"#1c1917\"\n on-primary: \"#ffffff\"\n on-dark: \"#ffffff\"\n on-dark-soft: \"#a8a29e\"\n gradient-mint: \"#a7e5d3\"\n gradient-peach: \"#f4c5a8\"\n gradient-lavender: \"#c8b8e0\"\n gradient-sky: \"#a8c8e8\"\n gradient-rose: \"#e8b8c4\"\n semantic-error: \"#dc2626\"\n semantic-success: \"#16a34a\"\n\ntypography:\n display-mega:\n fontFamily: \"'Waldenburg', 'Times New Roman', serif\"\n fontSize: 64px\n fontWeight: 300\n lineHeight: 1.05\n letterSpacing: -1.92px\n display-xl:\n fontFamily: \"'Waldenburg', serif\"\n fontSize: 48px\n fontWeight: 300\n lineHeight: 1.08\n letterSpacing: -0.96px\n display-lg:\n fontFamily: \"'Waldenburg', serif\"\n fontSize: 36px\n fontWeight: 300\n lineHeight: 1.17\n letterSpacing: -0.36px\n display-md:\n fontFamily: \"'Waldenburg', serif\"\n fontSize: 32px\n fontWeight: 300\n lineHeight: 1.13\n letterSpacing: -0.32px\n display-sm:\n fontFamily: \"'Waldenburg', serif\"\n fontSize: 24px\n fontWeight: 300\n lineHeight: 1.2\n letterSpacing: 0\n title-md:\n fontFamily: \"'Inter', sans-serif\"\n fontSize: 20px\n fontWeight: 500\n lineHeight: 1.35\n letterSpacing: 0\n title-sm:\n fontFamily: \"'Inter', sans-serif\"\n fontSize: 18px\n fontWeight: 500\n lineHeight: 1.44\n letterSpacing: 0.18px\n body-md:\n fontFamily: \"'Inter', sans-serif\"\n fontSize: 16px\n fontWeight: 400\n lineHeight: 1.5\n letterSpacing: 0.16px\n body-strong:\n fontFamily: \"'Inter', sans-serif\"\n fontSize: 16px\n fontWeight: 500\n lineHeight: 1.5\n letterSpacing: 0.16px\n body-sm:\n fontFamily: \"'Inter', sans-serif\"\n fontSize: 15px\n fontWeight: 400\n lineHeight: 1.47\n letterSpacing: 0.15px\n caption:\n fontFamily: \"'Inter', sans-serif\"\n fontSize: 14px\n fontWeight: 400\n lineHeight: 1.5\n letterSpacing: 0\n caption-uppercase:\n fontFamily: \"'Inter', sans-serif\"\n fontSize: 12px\n fontWeight: 600\n lineHeight: 1.4\n letterSpacing: 0.96px\n textTransform: uppercase\n button:\n fontFamily: \"'Inter', sans-serif\"\n fontSize: 15px\n fontWeight: 500\n lineHeight: 1.0\n letterSpacing: 0\n nav-link:\n fontFamily: \"'Inter', sans-serif\"\n fontSize: 15px\n fontWeight: 500\n lineHeight: 1.4\n letterSpacing: 0\n\nrounded:\n none: 0px\n xs: 4px\n sm: 6px\n md: 8px\n lg: 12px\n xl: 16px\n xxl: 24px\n pill: 9999px\n full: 9999px\n\nspacing:\n xxs: 4px\n xs: 8px\n sm: 12px\n base: 16px\n md: 20px\n lg: 24px\n xl: 32px\n xxl: 48px\n section: 96px\n\ncomponents:\n top-nav:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.nav-link}\"\n height: 64px\n button-primary:\n backgroundColor: \"{colors.primary}\"\n textColor: \"{colors.on-primary}\"\n typography: \"{typography.button}\"\n rounded: \"{rounded.pill}\"\n padding: 10px 20px\n height: 40px\n button-primary-active:\n backgroundColor: \"{colors.primary-active}\"\n textColor: \"{colors.on-primary}\"\n rounded: \"{rounded.pill}\"\n button-outline:\n backgroundColor: transparent\n textColor: \"{colors.ink}\"\n typography: \"{typography.button}\"\n rounded: \"{rounded.pill}\"\n padding: 9px 19px\n height: 40px\n button-tertiary-text:\n backgroundColor: transparent\n textColor: \"{colors.ink}\"\n typography: \"{typography.button}\"\n hero-band:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.display-mega}\"\n padding: 96px\n gradient-orb-card:\n backgroundColor: \"{colors.canvas-soft}\"\n textColor: \"{colors.ink}\"\n rounded: \"{rounded.xxl}\"\n padding: 32px\n feature-card:\n backgroundColor: \"{colors.surface-card}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.title-md}\"\n rounded: \"{rounded.xl}\"\n padding: 24px\n product-card-stack:\n backgroundColor: \"{colors.surface-card}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.body-md}\"\n rounded: \"{rounded.xl}\"\n padding: 0\n voice-row:\n backgroundColor: transparent\n textColor: \"{colors.ink}\"\n typography: \"{typography.body-md}\"\n padding: 12px 0\n voice-icon-circular:\n backgroundColor: \"{colors.surface-strong}\"\n rounded: \"{rounded.full}\"\n size: 32px\n pricing-tier-card:\n backgroundColor: \"{colors.surface-card}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.body-md}\"\n rounded: \"{rounded.xl}\"\n padding: 32px\n pricing-tier-featured:\n backgroundColor: \"{colors.surface-dark}\"\n textColor: \"{colors.on-dark}\"\n typography: \"{typography.body-md}\"\n rounded: \"{rounded.xl}\"\n padding: 32px\n text-input:\n backgroundColor: \"{colors.surface-card}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.body-md}\"\n rounded: \"{rounded.md}\"\n padding: 12px 16px\n height: 44px\n badge-pill:\n backgroundColor: \"{colors.surface-strong}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.caption-uppercase}\"\n rounded: \"{rounded.pill}\"\n padding: 4px 10px\n cta-band:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.display-lg}\"\n padding: 96px\n testimonial-card:\n backgroundColor: \"{colors.surface-card}\"\n textColor: \"{colors.body}\"\n typography: \"{typography.body-md}\"\n rounded: \"{rounded.xl}\"\n padding: 32px\n audio-waveform-card:\n backgroundColor: \"{colors.surface-card}\"\n textColor: \"{colors.ink}\"\n rounded: \"{rounded.xl}\"\n padding: 24px\n footer:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.body}\"\n typography: \"{typography.body-sm}\"\n padding: 64px 48px\n footer-link:\n backgroundColor: transparent\n textColor: \"{colors.body}\"\n typography: \"{typography.body-sm}\"\n---\n\n## Overview\n\nElevenLabs reads like a quietly editorial print magazine that happens to be a voice-AI product. The base canvas is off-white \\`{colors.canvas}\\` (#f5f5f5) holding warm near-black ink \\`{colors.ink}\\` (#0c0a09). The brand voltage is **photographic, not chromatic**: soft pastel atmospheric gradient orbs (mint, peach, lavender, sky, rose) drift through the page as the only \"color\" moments. There is no neon accent, no saturated CTA color, no dark-canvas dev-tools atmosphere.\n\nType pairs **Waldenburg Light** (custom serif at weight 300) for display with **Inter** for body, navigation, captions. The display weight at 300 is the editorial signature — never bold, never heavy.\n\nCTAs are subtle: a near-black ink pill (\\`{component.button-primary}\\`) is the primary, a transparent outline (\\`{component.button-outline}\\`) is the secondary. The brand trusts atmospheric photography and modest type weights to carry brand work.\n\n**Key Characteristics:**\n- Off-white canvas, warm near-black ink. No saturated CTA color.\n- Single primary action: ink pill at \\`{rounded.pill}\\`. Atmospheric gradients carry visual brand voltage.\n- Display runs Waldenburg Light at weight 300 — editorial magazine voice.\n- Body runs Inter at 400 with subtle letter-spacing (+0.15-0.18px).\n- Pastel gradient orbs (5 tokens: mint, peach, lavender, sky, rose) used as atmospheric brand decoration only.\n- Soft pill geometry (\\`{rounded.pill}\\` for CTAs, \\`{rounded.xl}\\` for cards).\n- 96px section rhythm.\n\n## Colors\n\n### Brand & Accent\n- **Ink Primary** (\\`{colors.primary}\\` — #292524): The primary action color — warm near-black pill. Used scarcely.\n- **Ink Primary Active** (\\`{colors.primary-active}\\` — #0c0a09): Press state.\n\n### Surface\n- **Canvas** (\\`{colors.canvas}\\` — #f5f5f5): Off-white page floor.\n- **Canvas Soft** (\\`{colors.canvas-soft}\\` — #fafafa): Lighter band for subtle alternating sections.\n- **Canvas Deep** (\\`{colors.canvas-deep}\\` — #0c0a09): Same as ink — used for the rare dark-mode hero (Agents page).\n- **Surface Card** (\\`{colors.surface-card}\\` — #ffffff): Pure white card.\n- **Surface Strong** (\\`{colors.surface-strong}\\` — #f0efed): Badges, voice-icon plates.\n- **Surface Dark** (\\`{colors.surface-dark}\\` — #0c0a09): Dark hero/CTA band canvas.\n- **Surface Dark Elevated** (\\`{colors.surface-dark-elevated}\\` — #1c1917): Cards on dark canvas.\n\n### Hairlines\n- **Hairline** (\\`{colors.hairline}\\` — #e7e5e4): Default 1px divider.\n- **Hairline Soft** (\\`{colors.hairline-soft}\\` — #f0efed): Lighter divider.\n- **Hairline Strong** (\\`{colors.hairline-strong}\\` — #d6d3d1): Stronger panel outline.\n\n### Text\n- **Ink** (\\`{colors.ink}\\` — #0c0a09): Display, primary text.\n- **Body** (\\`{colors.body}\\` — #4e4e4e): Default running-text.\n- **Body Strong** (\\`{colors.body-strong}\\` — #292524): Same as primary — emphasis.\n- **Muted** (\\`{colors.muted}\\` — #777169): Sub-titles.\n- **Muted Soft** (\\`{colors.muted-soft}\\` — #a8a29e): Disabled text.\n- **On Primary** (\\`{colors.on-primary}\\` — #ffffff): White text on ink pill.\n- **On Dark** (\\`{colors.on-dark}\\` — #ffffff): White text on dark hero.\n- **On Dark Soft** (\\`{colors.on-dark-soft}\\` — #a8a29e): Muted off-white on dark.\n\n### Atmospheric Gradient Stops (signature)\n- **Gradient Mint** (\\`{colors.gradient-mint}\\` — #a7e5d3): Mint green orb.\n- **Gradient Peach** (\\`{colors.gradient-peach}\\` — #f4c5a8): Peach orb.\n- **Gradient Lavender** (\\`{colors.gradient-lavender}\\` — #c8b8e0): Lavender orb.\n- **Gradient Sky** (\\`{colors.gradient-sky}\\` — #a8c8e8): Sky-blue orb.\n- **Gradient Rose** (\\`{colors.gradient-rose}\\` — #e8b8c4): Rose orb.\n\nThese appear ONLY as soft radial-gradient atmospheric orbs inside \\`{component.gradient-orb-card}\\` and as background atmospheric blooms behind hero copy. Never as button fills, never as text colors.\n\n### Semantic\n- **Success** (\\`{colors.semantic-success}\\` — #16a34a): Confirmation.\n- **Error** (\\`{colors.semantic-error}\\` — #dc2626): Validation errors.\n\n## Typography\n\n### Font Family\n**Waldenburg Light** is the licensed display serif at weight 300. **Inter** carries body, navigation, captions, and buttons. Fallback: \\`'Times New Roman', serif\\` for Waldenburg, \\`sans-serif\\` for Inter.\n\n### Hierarchy\n\n| Token | Size | Weight | Line Height | Letter Spacing | Use |\n|---|---|---|---|---|---|\n| \\`{typography.display-mega}\\` | 64px | 300 | 1.05 | -1.92px | Homepage hero h1 |\n| \\`{typography.display-xl}\\` | 48px | 300 | 1.08 | -0.96px | Subsidiary heroes |\n| \\`{typography.display-lg}\\` | 36px | 300 | 1.17 | -0.36px | Section heads |\n| \\`{typography.display-md}\\` | 32px | 300 | 1.13 | -0.32px | Sub-section heads |\n| \\`{typography.display-sm}\\` | 24px | 300 | 1.2 | 0 | Card group titles |\n| \\`{typography.title-md}\\` | 20px | 500 | 1.35 | 0 | Component titles — Inter |\n| \\`{typography.title-sm}\\` | 18px | 500 | 1.44 | 0.18px | List labels |\n| \\`{typography.body-md}\\` | 16px | 400 | 1.5 | 0.16px | Default body — Inter |\n| \\`{typography.body-strong}\\` | 16px | 500 | 1.5 | 0.16px | Emphasized body |\n| \\`{typography.body-sm}\\` | 15px | 400 | 1.47 | 0.15px | Footer body |\n| \\`{typography.caption}\\` | 14px | 400 | 1.5 | 0 | Photo captions |\n| \\`{typography.caption-uppercase}\\` | 12px | 600 | 1.4 | 0.96px | Section labels, badges |\n| \\`{typography.button}\\` | 15px | 500 | 1.0 | 0 | CTA pill |\n| \\`{typography.nav-link}\\` | 15px | 500 | 1.4 | 0 | Top-nav menu |\n\n### Principles\n- **Display weight stays at 300.** Waldenburg Light is the editorial signature. Never bold display copy.\n- **Subtle letter-spacing on body.** Inter at +0.15-0.18px tracking — slightly looser than default Inter for a more editorial feel.\n- **Negative letter-spacing on display.** Waldenburg pulls -0.32px to -1.92px tighter on display sizes.\n\n### Note on Font Substitutes\nWaldenburg is licensed. Open-source substitute: **EB Garamond** at weight 300 (slightly more humanist) or **GT Sectra** (closer to Waldenburg's modernity). Use Inter directly for body — it's the same family ElevenLabs uses.\n\n## Layout\n\n### Spacing System\n- **Base unit:** 4px.\n- **Tokens:** \\`{spacing.xxs}\\` 4px · \\`{spacing.xs}\\` 8px · \\`{spacing.sm}\\` 12px · \\`{spacing.base}\\` 16px · \\`{spacing.md}\\` 20px · \\`{spacing.lg}\\` 24px · \\`{spacing.xl}\\` 32px · \\`{spacing.xxl}\\` 48px · \\`{spacing.section}\\` 96px.\n- **Section padding:** 96px.\n\n### Grid & Container\n- Max content width: ~1200px.\n- Editorial body: 12-column grid.\n- Feature card grids: 2-up at desktop for hero splits, 3-up for benefit grids.\n- Footer: 5-column at desktop.\n\n### Whitespace Philosophy\nGenerous editorial pacing — print-magazine feel. 96px between bands; cards inside bands sit close (16-24px gap). The atmospheric gradient orbs occupy generous breathing space without competing with copy.\n\n## Elevation & Depth\n\nThe system uses **hairline + soft drop**. Cards float above the off-white canvas via 1px hairlines and a single subtle shadow tier. Atmospheric depth comes from gradient orbs.\n\n| Level | Treatment | Use |\n|---|---|---|\n| Flat (canvas) | \\`{colors.canvas}\\` (#f5f5f5) | Body bands, footer |\n| Card | \\`{colors.surface-card}\\` (#ffffff) | Content cards |\n| Hairline border | 1px \\`{colors.hairline}\\` | Card outlines |\n| Soft drop | \\`0 4px 16px rgba(0, 0, 0, 0.04)\\` | Hovered cards (single shadow tier) |\n| Gradient orb | Radial gradient with one of \\`{colors.gradient-*}\\` | Atmospheric depth — never a card surface |\n\n### Decorative Depth\n- **Pastel gradient orbs** are the brand's strongest atmospheric pattern. Soft radial blooms in mint, peach, lavender, sky, or rose drift through hero bands and feature sections without containing any content — they are pure atmosphere.\n\n## Shapes\n\n### Border Radius Scale\n\n| Token | Value | Use |\n|---|---|---|\n| \\`{rounded.none}\\` | 0px | Reserved |\n| \\`{rounded.xs}\\` | 4px | Inline tags |\n| \\`{rounded.sm}\\` | 6px | Compact rows |\n| \\`{rounded.md}\\` | 8px | Form inputs |\n| \\`{rounded.lg}\\` | 12px | Compact cards |\n| \\`{rounded.xl}\\` | 16px | Feature cards, pricing tiers |\n| \\`{rounded.xxl}\\` | 24px | Gradient orb cards (extra-soft) |\n| \\`{rounded.pill}\\` | 9999px | All CTA buttons, badges |\n| \\`{rounded.full}\\` | 9999px | Voice icon circles, avatars |\n\n## Components\n\n### Top Navigation\n\n**\\`top-nav\\`** — Background \\`{colors.canvas}\\`, text \\`{colors.ink}\\`, height 64px. Layout: ElevenLabs wordmark left, primary horizontal menu (Creative / Agents / Video / Pricing / Enterprise / Docs), Sign In + \"Try free\" primary CTA right.\n\n### Buttons\n\n**\\`button-primary\\`** — Near-black ink pill. Background \\`{colors.primary}\\`, text \\`{colors.on-primary}\\`, type \\`{typography.button}\\` (15px / 500), padding 10px × 20px, height 40px, rounded \\`{rounded.pill}\\`.\n\n**\\`button-primary-active\\`** — Press state. Background \\`{colors.primary-active}\\`.\n\n**\\`button-outline\\`** — Transparent pill with 1px ink border. Background transparent, text \\`{colors.ink}\\`, 1px \\`{colors.hairline-strong}\\` border.\n\n**\\`button-tertiary-text\\`** — Inline ink text link.\n\n### Hero & Atmospheric\n\n**\\`hero-band\\`** — Background \\`{colors.canvas}\\`, full-width display headline in \\`{typography.display-mega}\\` (64px / 300 / -1.92px), subhead in \\`{typography.body-md}\\`, two CTAs, and an atmospheric gradient orb behind the centered headline.\n\n**\\`gradient-orb-card\\`** — A large card with a soft radial-gradient orb behind centered display copy. Background \\`{colors.canvas-soft}\\`, rounded \\`{rounded.xxl}\\` (24px), padding 32px. Each variant uses one of the five gradient tokens (\\`gradient-mint\\`, \\`gradient-peach\\`, \\`gradient-lavender\\`, \\`gradient-sky\\`, \\`gradient-rose\\`).\n\n**\\`audio-waveform-card\\`** — A waveform visualization card. Background \\`{colors.surface-card}\\`, rounded \\`{rounded.xl}\\`, padding 24px. Holds a play button + waveform glyph + voice metadata.\n\n### Cards\n\n**\\`feature-card\\`** — 2-up or 3-up grids. Background \\`{colors.surface-card}\\`, text \\`{colors.ink}\\`, rounded \\`{rounded.xl}\\`, padding 24px, 1px hairline border.\n\n**\\`product-card-stack\\`** — Stacked product preview cards. Background \\`{colors.surface-card}\\`, rounded \\`{rounded.xl}\\`, no padding (children fill the card edge-to-edge).\n\n**\\`testimonial-card\\`** — Quote card. Background \\`{colors.surface-card}\\`, text \\`{colors.body}\\`, rounded \\`{rounded.xl}\\`, padding 32px.\n\n### Voice Library\n\n**\\`voice-row\\`** — Horizontal row in voice list. Background transparent, 1px hairline divider. Layout: 32px circular voice icon (\\`{component.voice-icon-circular}\\`) left, voice name + accent stack, optional preview button right.\n\n**\\`voice-icon-circular\\`** — Background \\`{colors.surface-strong}\\`, rounded \\`{rounded.full}\\`, 32px diameter. Holds initials or voice glyph.\n\n### Pricing\n\n**\\`pricing-tier-card\\`** — Background \\`{colors.surface-card}\\`, rounded \\`{rounded.xl}\\`, padding 32px, 1px hairline border.\n\n**\\`pricing-tier-featured\\`** — Featured tier inverts. Background \\`{colors.surface-dark}\\`, text \\`{colors.on-dark}\\`. Same shape, dark inversion.\n\n### Forms & Tags\n\n**\\`text-input\\`** — Background \\`{colors.surface-card}\\`, text \\`{colors.ink}\\`, rounded \\`{rounded.md}\\` (8px), padding 12px × 16px, height 44px, 1px \\`{colors.hairline-strong}\\` border. On focus, border thickens to 2px ink.\n\n**\\`badge-pill\\`** — Background \\`{colors.surface-strong}\\`, text \\`{colors.ink}\\`, type \\`{typography.caption-uppercase}\\`, rounded \\`{rounded.pill}\\`, padding 4px × 10px.\n\n### CTA / Footer\n\n**\\`cta-band\\`** — Pre-footer. Background \\`{colors.canvas}\\`, centered display headline in \\`{typography.display-lg}\\`, single ink pill CTA. 96px padding.\n\n**\\`footer\\`** — Closing footer. Background \\`{colors.canvas}\\`, text \\`{colors.body}\\`. 5-column link list. 64×48px padding.\n\n**\\`footer-link\\`** — Background transparent, text \\`{colors.body}\\`, type \\`{typography.body-sm}\\`.\n\n## Do's and Don'ts\n\n### Do\n- Reserve \\`{colors.primary}\\` (ink pill) for primary CTAs.\n- Use Waldenburg Light at weight 300 for every display headline. Never bold.\n- Use Inter at +0.15-0.18px tracking for body — the editorial dialect.\n- Use atmospheric gradient orbs (mint/peach/lavender/sky/rose) as decoration only.\n- Use the pill shape for every CTA and badge.\n\n### Don't\n- Don't introduce a saturated brand action color. Ink pill is the only CTA color.\n- Don't bold display copy. Display sits at weight 300 — bolding shifts the brand voice from editorial to consumer-marketing.\n- Don't use gradient orbs as button fills, text colors, or component backgrounds. They are pure atmosphere.\n- Don't use sharp \\`{rounded.none}\\` (0px) on CTAs. Pill geometry is the brand button.\n- Don't drop body Inter to weight 300 to match Waldenburg — body stays at 400/500 for legibility.\n- Don't extract a CTA color from a third-party widget (cookie consent, OneTrust). The brand's CTA color is what appears on actual product CTAs.\n\n## Responsive Behavior\n\n### Breakpoints\n\n| Name | Width | Key Changes |\n|---|---|---|\n| Mobile | < 640px | Hero h1 64→32px; feature cards 1-up; nav hamburger; gradient orbs shrink. |\n| Tablet | 640–1024px | Hero h1 48px; feature cards 2-up. |\n| Desktop | 1024–1280px | Full hero h1 64px; feature cards 3-up. |\n| Wide | > 1280px | Content caps at 1200px. |\n\n### Touch Targets\n- Primary pill at 40px height — at WCAG AA, padded for AAA.\n- Voice icon circles 32px — padded row creates effective 48px tap zone.\n\n### Collapsing Strategy\n- Top nav switches to hamburger below 768px.\n- Feature grid: 3-up → 2-up → 1-up.\n- Gradient orbs reduce diameter at every breakpoint but never disappear.\n\n## Iteration Guide\n\n1. Focus on a single component at a time.\n2. CTAs default to \\`{rounded.pill}\\`. Cards use \\`{rounded.xl}\\` (16px).\n3. Variants live as separate entries.\n4. Use \\`{token.refs}\\` everywhere — never inline hex.\n5. Hover state never documented.\n6. Waldenburg 300 for display, Inter 400/500 for body.\n7. Gradient orbs scoped to atmospheric decoration.\n\n## Known Gaps\n\n- Waldenburg is a licensed typeface; EB Garamond / GT Sectra are documented substitutes.\n- Animation timings (orb drift, waveform pulse, hero entrance) out of scope.\n- In-product surfaces (voice library editor, agent playground) only partially captured via marketing mockups.\n- Form validation states beyond focus not visible on captured surfaces.\n`;\n"],"mappings":";AACO,IAAM,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;","names":[]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const expoBrief = "---\nversion: alpha\nname: Expo\ndescription: A React Native developer-platform whose marketing site reads like a quietly-confident infrastructure brand. The base canvas is pure white with a soft sky-blue gradient atmospheric wash behind the hero; near-black ink (`#171717`) carries body and display alike. The single brand voltage is **pure black** (`#000000`) for primary CTAs \u2014 minimal and editorial-feeling, paired with a small blue text-link accent (`#0d74ce`) reserved for inline body links. Type pairs Inter at modest weights (display 600, body 400) with JetBrains Mono on every code surface. The brand's strongest visual signature is the **device-mockup hero** \u2014 a centered MacBook + iPhone composite showing real Expo dev surfaces \u2014 over the gradient sky wash.\n\ncolors:\n primary: \"#000000\"\n primary-active: \"#1a1a1a\"\n text-link: \"#0d74ce\"\n text-link-secondary: \"#476cff\"\n ink: \"#171717\"\n body: \"#60646c\"\n body-strong: \"#171717\"\n muted: \"#999999\"\n muted-soft: \"#cccccc\"\n hairline: \"#f0f0f3\"\n hairline-soft: \"#f5f5f7\"\n hairline-strong: \"#dcdee0\"\n canvas: \"#ffffff\"\n canvas-soft: \"#fafafa\"\n surface-card: \"#ffffff\"\n surface-strong: \"#f0f0f3\"\n surface-dark: \"#171717\"\n surface-dark-elevated: \"#1a1a1a\"\n on-primary: \"#ffffff\"\n on-dark: \"#ffffff\"\n on-dark-soft: \"#b0b4ba\"\n gradient-sky-light: \"#cfe7ff\"\n gradient-sky-mid: \"#a8c8e8\"\n accent-warning: \"#ab6400\"\n accent-preview: \"#8145b5\"\n accent-link-bright: \"#47c2ff\"\n semantic-error: \"#eb8e90\"\n semantic-success: \"#16a34a\"\n\ntypography:\n display-mega:\n fontFamily: \"'Inter', -apple-system, system-ui, sans-serif\"\n fontSize: 64px\n fontWeight: 600\n lineHeight: 1.05\n letterSpacing: -1.92px\n display-xl:\n fontFamily: \"'Inter', sans-serif\"\n fontSize: 48px\n fontWeight: 600\n lineHeight: 1.1\n letterSpacing: -1.44px\n display-lg:\n fontFamily: \"'Inter', sans-serif\"\n fontSize: 36px\n fontWeight: 600\n lineHeight: 1.15\n letterSpacing: -1.08px\n display-md:\n fontFamily: \"'Inter', sans-serif\"\n fontSize: 28px\n fontWeight: 600\n lineHeight: 1.2\n letterSpacing: -0.84px\n display-sm:\n fontFamily: \"'Inter', sans-serif\"\n fontSize: 22px\n fontWeight: 600\n lineHeight: 1.25\n letterSpacing: -0.5px\n title-md:\n fontFamily: \"'Inter', sans-serif\"\n fontSize: 18px\n fontWeight: 600\n lineHeight: 1.4\n letterSpacing: 0\n title-sm:\n fontFamily: \"'Inter', sans-serif\"\n fontSize: 16px\n fontWeight: 600\n lineHeight: 1.4\n letterSpacing: 0\n body-md:\n fontFamily: \"'Inter', sans-serif\"\n fontSize: 16px\n fontWeight: 400\n lineHeight: 1.5\n letterSpacing: 0\n body-sm:\n fontFamily: \"'Inter', sans-serif\"\n fontSize: 14px\n fontWeight: 400\n lineHeight: 1.5\n letterSpacing: 0\n caption:\n fontFamily: \"'Inter', sans-serif\"\n fontSize: 13px\n fontWeight: 400\n lineHeight: 1.4\n letterSpacing: 0\n caption-uppercase:\n fontFamily: \"'Inter', sans-serif\"\n fontSize: 11px\n fontWeight: 600\n lineHeight: 1.4\n letterSpacing: 0.88px\n textTransform: uppercase\n code:\n fontFamily: \"'JetBrains Mono', 'Fira Code', monospace\"\n fontSize: 13px\n fontWeight: 400\n lineHeight: 1.5\n letterSpacing: 0\n button:\n fontFamily: \"'Inter', sans-serif\"\n fontSize: 14px\n fontWeight: 500\n lineHeight: 1.0\n letterSpacing: 0\n nav-link:\n fontFamily: \"'Inter', sans-serif\"\n fontSize: 14px\n fontWeight: 500\n lineHeight: 1.4\n letterSpacing: 0\n\nrounded:\n none: 0px\n xs: 4px\n sm: 6px\n md: 8px\n lg: 12px\n xl: 16px\n xxl: 24px\n pill: 9999px\n full: 9999px\n\nspacing:\n xxs: 4px\n xs: 8px\n sm: 12px\n base: 16px\n md: 20px\n lg: 24px\n xl: 32px\n xxl: 48px\n section: 96px\n\ncomponents:\n top-nav:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.nav-link}\"\n height: 64px\n button-primary:\n backgroundColor: \"{colors.primary}\"\n textColor: \"{colors.on-primary}\"\n typography: \"{typography.button}\"\n rounded: \"{rounded.md}\"\n padding: 10px 18px\n height: 40px\n button-primary-active:\n backgroundColor: \"{colors.primary-active}\"\n textColor: \"{colors.on-primary}\"\n rounded: \"{rounded.md}\"\n button-secondary:\n backgroundColor: \"{colors.surface-card}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.button}\"\n rounded: \"{rounded.md}\"\n padding: 9px 17px\n height: 40px\n button-tertiary-text:\n backgroundColor: transparent\n textColor: \"{colors.text-link}\"\n typography: \"{typography.button}\"\n hero-band:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.display-mega}\"\n padding: 96px\n device-mockup-card:\n backgroundColor: \"{colors.surface-card}\"\n textColor: \"{colors.ink}\"\n rounded: \"{rounded.xl}\"\n padding: 0\n feature-card:\n backgroundColor: \"{colors.surface-card}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.title-md}\"\n rounded: \"{rounded.lg}\"\n padding: 24px\n feature-card-dark:\n backgroundColor: \"{colors.surface-dark}\"\n textColor: \"{colors.on-dark}\"\n typography: \"{typography.title-md}\"\n rounded: \"{rounded.lg}\"\n padding: 24px\n workflow-step-card:\n backgroundColor: \"{colors.surface-card}\"\n textColor: \"{colors.body}\"\n typography: \"{typography.body-md}\"\n rounded: \"{rounded.lg}\"\n padding: 20px\n workflow-step-icon:\n backgroundColor: \"{colors.surface-strong}\"\n rounded: \"{rounded.md}\"\n size: 32px\n code-block:\n backgroundColor: \"{colors.surface-dark}\"\n textColor: \"{colors.on-dark}\"\n typography: \"{typography.code}\"\n rounded: \"{rounded.lg}\"\n padding: 20px\n ide-mockup-card:\n backgroundColor: \"{colors.surface-dark}\"\n textColor: \"{colors.on-dark}\"\n rounded: \"{rounded.lg}\"\n padding: 0\n pricing-tier-card:\n backgroundColor: \"{colors.surface-card}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.body-md}\"\n rounded: \"{rounded.lg}\"\n padding: 32px\n pricing-tier-featured:\n backgroundColor: \"{colors.surface-dark}\"\n textColor: \"{colors.on-dark}\"\n typography: \"{typography.body-md}\"\n rounded: \"{rounded.lg}\"\n padding: 32px\n text-input:\n backgroundColor: \"{colors.surface-card}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.body-md}\"\n rounded: \"{rounded.md}\"\n padding: 12px 16px\n height: 44px\n badge-pill:\n backgroundColor: \"{colors.surface-strong}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.caption-uppercase}\"\n rounded: \"{rounded.pill}\"\n padding: 4px 10px\n ecosystem-tile:\n backgroundColor: \"{colors.surface-card}\"\n rounded: \"{rounded.md}\"\n size: 64px\n cta-band:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.display-lg}\"\n padding: 96px\n testimonial-card:\n backgroundColor: \"{colors.surface-card}\"\n textColor: \"{colors.body}\"\n typography: \"{typography.body-md}\"\n rounded: \"{rounded.lg}\"\n padding: 24px\n footer-light:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.body}\"\n typography: \"{typography.body-sm}\"\n padding: 64px 48px\n footer-link:\n backgroundColor: transparent\n textColor: \"{colors.body}\"\n typography: \"{typography.body-sm}\"\n---\n\n## Overview\n\nExpo's marketing site reads like a quietly-confident React-Native developer platform. The base canvas is **pure white** (`{colors.canvas}` \u2014 #ffffff) with a soft **sky-blue gradient atmospheric wash** behind the hero band. Near-black ink `{colors.ink}` (#171717) carries body and display alike. The single brand voltage is **pure black** (`{colors.primary}` \u2014 #000000) for primary CTAs \u2014 minimal and editorial-feeling. A small blue text-link accent (`{colors.text-link}` \u2014 #0d74ce) is reserved for inline body links, never as a CTA.\n\nType runs **Inter** as the single sans family at modest weights (display 600, body 400). JetBrains Mono carries every code surface. No custom typeface \u2014 the brand trusts Inter's editorial neutrality.\n\nThe brand's strongest visual signature is the **device-mockup hero** \u2014 a centered MacBook + iPhone composite showing real Expo dev surfaces (Expo Studio, EAS Build dashboard, the Expo Go simulator) \u2014 over a sky-blue gradient atmospheric wash. The composite is the page's chrome instead of an illustration.\n\n**Key Characteristics:**\n- Pure white canvas with sky-blue gradient atmospheric backdrop in hero only.\n- Single primary CTA: pure black pill at `{rounded.md}` (8px) \u2014 compact developer-tool dialect.\n- Text-link blue (`{colors.text-link}`) for inline links only \u2014 never on a CTA.\n- Inter as the single sans family \u2014 no custom display typeface.\n- JetBrains Mono on every code surface.\n- Device-mockup hero with real Expo product surfaces is the brand chrome.\n- Hairline + soft drop depth; no atmospheric brand decoration outside the hero.\n- 96px section rhythm.\n\n## Colors\n\n### Brand & Accent\n- **Black** (`{colors.primary}` \u2014 #000000): Primary CTA fill. Used scarcely.\n- **Black Active** (`{colors.primary-active}` \u2014 #1a1a1a): Press state.\n- **Text Link Blue** (`{colors.text-link}` \u2014 #0d74ce): Inline body links inside long-form copy. Scoped narrowly \u2014 never on CTAs.\n- **Legal Link Blue** (`{colors.text-link-secondary}` \u2014 #476cff): Inline links inside legal copy footer.\n- **Bright Cyan** (`{colors.accent-link-bright}` \u2014 #47c2ff): Used very sparingly inside docs widget links.\n\n### Surface\n- **Canvas** (`{colors.canvas}` \u2014 #ffffff): Pure white page floor.\n- **Canvas Soft** (`{colors.canvas-soft}` \u2014 #fafafa): Subtle alternating band.\n- **Surface Card** (`{colors.surface-card}` \u2014 #ffffff): Pure white card.\n- **Surface Strong** (`{colors.surface-strong}` \u2014 #f0f0f3): Badges, ecosystem tiles, secondary buttons.\n- **Surface Dark** (`{colors.surface-dark}` \u2014 #171717): Dark feature cards, code blocks, IDE mockups, featured pricing.\n- **Surface Dark Elevated** (`{colors.surface-dark-elevated}` \u2014 #1a1a1a): One step lighter inside dark cards.\n\n### Atmospheric Backdrop\n- **Sky Light** (`{colors.gradient-sky-light}` \u2014 #cfe7ff) + **Sky Mid** (`{colors.gradient-sky-mid}` \u2014 #a8c8e8): The soft sky-blue gradient wash behind the homepage hero only. Not a brand action color.\n\n### Hairlines\n- **Hairline** (`{colors.hairline}` \u2014 #f0f0f3): Default 1px divider.\n- **Hairline Soft** (`{colors.hairline-soft}` \u2014 #f5f5f7): Lighter divider.\n- **Hairline Strong** (`{colors.hairline-strong}` \u2014 #dcdee0): Stronger panel outline.\n\n### Text\n- **Ink** (`{colors.ink}` \u2014 #171717): Display, body emphasis.\n- **Body** (`{colors.body}` \u2014 #60646c): Default running-text \u2014 slightly cool gray.\n- **Body Strong** (`{colors.body-strong}` \u2014 #171717): Same as ink.\n- **Muted** (`{colors.muted}` \u2014 #999999): Sub-titles.\n- **Muted Soft** (`{colors.muted-soft}` \u2014 #cccccc): Disabled text.\n- **On Primary** (`{colors.on-primary}` \u2014 #ffffff): White text on black CTA.\n- **On Dark** (`{colors.on-dark}` \u2014 #ffffff): White text on dark cards.\n- **On Dark Soft** (`{colors.on-dark-soft}` \u2014 #b0b4ba): Muted off-white on dark.\n\n### Semantic\n- **Warning** (`{colors.accent-warning}` \u2014 #ab6400): Warning text inside docs callouts.\n- **Preview** (`{colors.accent-preview}` \u2014 #8145b5): \"Preview\" tag color.\n- **Success** (`{colors.semantic-success}` \u2014 #16a34a): Confirmation.\n- **Error** (`{colors.semantic-error}` \u2014 #eb8e90): Validation errors.\n\n## Typography\n\n### Font Family\n**Inter** is the single sans family across every text role. **JetBrains Mono** carries every code surface. Fallback: `-apple-system, system-ui, sans-serif`.\n\n### Hierarchy\n\n| Token | Size | Weight | Line Height | Letter Spacing | Use |\n|---|---|---|---|---|---|\n| `{typography.display-mega}` | 64px | 600 | 1.05 | -1.92px | Homepage hero h1 |\n| `{typography.display-xl}` | 48px | 600 | 1.1 | -1.44px | Subsidiary heroes |\n| `{typography.display-lg}` | 36px | 600 | 1.15 | -1.08px | Section heads |\n| `{typography.display-md}` | 28px | 600 | 1.2 | -0.84px | Sub-section heads |\n| `{typography.display-sm}` | 22px | 600 | 1.25 | -0.5px | Card group titles |\n| `{typography.title-md}` | 18px | 600 | 1.4 | 0 | Component titles |\n| `{typography.title-sm}` | 16px | 600 | 1.4 | 0 | List labels |\n| `{typography.body-md}` | 16px | 400 | 1.5 | 0 | Default body |\n| `{typography.body-sm}` | 14px | 400 | 1.5 | 0 | Footer body |\n| `{typography.caption}` | 13px | 400 | 1.4 | 0 | Photo captions |\n| `{typography.caption-uppercase}` | 11px | 600 | 1.4 | 0.88px | Section labels, badges |\n| `{typography.code}` | 13px | 400 | 1.5 | 0 | Code blocks \u2014 JetBrains Mono |\n| `{typography.button}` | 14px | 500 | 1.0 | 0 | CTA labels |\n| `{typography.nav-link}` | 14px | 500 | 1.4 | 0 | Top-nav menu |\n\n### Principles\n- **Display weight stays at 600** \u2014 confident but not bombastic. Inter at 600 reads cleaner than 700.\n- **Negative letter-spacing on display** \u2014 -0.5px to -1.92px tracking.\n- **JetBrains Mono on every code surface.**\n\n### Note on Font Substitutes\nInter and JetBrains Mono are both freely available \u2014 the system uses them directly.\n\n## Layout\n\n### Spacing System\n- **Base unit:** 4px.\n- **Tokens:** `{spacing.xxs}` 4px \u00B7 `{spacing.xs}` 8px \u00B7 `{spacing.sm}` 12px \u00B7 `{spacing.base}` 16px \u00B7 `{spacing.md}` 20px \u00B7 `{spacing.lg}` 24px \u00B7 `{spacing.xl}` 32px \u00B7 `{spacing.xxl}` 48px \u00B7 `{spacing.section}` 96px.\n- **Section padding:** 96px.\n\n### Grid & Container\n- Max content width: ~1200px.\n- Editorial body: 12-column grid.\n- Feature card grids: 2-up at desktop for hero splits, 3-up for benefit grids.\n- Ecosystem tile grid: 8-up at desktop.\n- Footer: 5-column at desktop.\n\n### Whitespace Philosophy\nGenerous editorial pacing. The white canvas does not compete with the hero's gradient sky wash; cards inside dense workflow sections sit close (16-24px gap).\n\n## Elevation & Depth\n\n| Level | Treatment | Use |\n|---|---|---|\n| Flat (canvas) | `{colors.canvas}` (#ffffff) | Body bands, footer |\n| Card | `{colors.surface-card}` (#ffffff) | Content cards |\n| Hairline border | 1px `{colors.hairline}` | Card outlines |\n| Soft drop | `0 4px 12px rgba(0, 0, 0, 0.04)` | Hovered cards (single shadow tier) |\n| Atmospheric gradient | Sky-blue radial wash | Hero backdrop only |\n| Dark inversion | `{colors.surface-dark}` (#171717) | Dark feature cards, code blocks, featured pricing |\n\n### Decorative Depth\n- **Sky-blue gradient backdrop** in the hero only \u2014 atmospheric depth without claiming to be a brand color.\n- **Device mockup composite** as page chrome \u2014 MacBook + iPhone showing real Expo dev surfaces.\n\n## Shapes\n\n### Border Radius Scale\n\n| Token | Value | Use |\n|---|---|---|\n| `{rounded.none}` | 0px | Reserved |\n| `{rounded.xs}` | 4px | Inline tags |\n| `{rounded.sm}` | 6px | Compact rows |\n| `{rounded.md}` | 8px | CTA buttons, form inputs, ecosystem tiles |\n| `{rounded.lg}` | 12px | Feature cards, code blocks, pricing tiers |\n| `{rounded.xl}` | 16px | Device mockup cards |\n| `{rounded.xxl}` | 24px | Larger atmospheric cards (rare) |\n| `{rounded.pill}` | 9999px | Badges only |\n| `{rounded.full}` | 9999px | Avatar plates (rare) |\n\nCompact developer-ergonomic radii \u2014 8px CTAs, 12px cards. Pill geometry is reserved for badges, never CTAs.\n\n## Components\n\n### Top Navigation\n\n**`top-nav`** \u2014 Background `{colors.canvas}`, text `{colors.ink}`, height 64px. Layout: Expo wordmark left, primary horizontal menu (Tools / Workflows / EAS / Pricing / Docs / Showcase), Sign In + Get started CTA right.\n\n### Buttons\n\n**`button-primary`** \u2014 Pure black pill. Background `{colors.primary}`, text `{colors.on-primary}`, type `{typography.button}` (14px / 500), padding 10px \u00D7 18px, height 40px, rounded `{rounded.md}` (8px).\n\n**`button-primary-active`** \u2014 Press state. Background `{colors.primary-active}`.\n\n**`button-secondary`** \u2014 White card with 1px hairline-strong border. Background `{colors.surface-card}`, text `{colors.ink}`, 1px `{colors.hairline-strong}` border.\n\n**`button-tertiary-text`** \u2014 Inline blue text link. Background transparent, text `{colors.text-link}`.\n\n### Hero & Device Mockup\n\n**`hero-band`** \u2014 Background `{colors.canvas}` with a soft sky-blue gradient wash behind the centered headline. Display headline in `{typography.display-mega}` (64px / 600 / -1.92px), subhead in `{typography.body-md}`, single primary CTA, then below \u2014 the device mockup composite.\n\n**`device-mockup-card`** \u2014 A layered MacBook + iPhone composite showing real Expo dev surfaces. Background `{colors.surface-card}`, rounded `{rounded.xl}`. The MacBook holds the EAS dashboard or Expo Studio screenshot; the iPhone overlay shows the running app in Expo Go. This is the page chrome.\n\n### Cards\n\n**`feature-card`** \u2014 Background `{colors.surface-card}`, text `{colors.ink}`, type `{typography.title-md}`, rounded `{rounded.lg}`, padding 24px, 1px `{colors.hairline-strong}` border.\n\n**`feature-card-dark`** \u2014 Dark variant. Background `{colors.surface-dark}`, text `{colors.on-dark}`. Same shape, dark inversion.\n\n**`workflow-step-card`** \u2014 Step in the \"Get your app on every device\" workflow row. Background `{colors.surface-card}`, text `{colors.body}`, rounded `{rounded.lg}`, padding 20px. Layout: 32px square `{component.workflow-step-icon}` + step number + label + body.\n\n**`workflow-step-icon`** \u2014 Square plate. Background `{colors.surface-strong}`, rounded `{rounded.md}`, 32px size.\n\n**`testimonial-card`** \u2014 Quote card. Background `{colors.surface-card}`, text `{colors.body}`, rounded `{rounded.lg}`, padding 24px.\n\n### Code & IDE\n\n**`code-block`** \u2014 Inline code block. Background `{colors.surface-dark}`, text `{colors.on-dark}` in `{typography.code}` (JetBrains Mono 13px), rounded `{rounded.lg}`, padding 20px. White text on dark.\n\n**`ide-mockup-card`** \u2014 Stylized IDE mockup. Background `{colors.surface-dark}`, rounded `{rounded.lg}`. Multi-pane editor + terminal preview.\n\n### Pricing\n\n**`pricing-tier-card`** \u2014 Standard pricing tier. Background `{colors.surface-card}`, rounded `{rounded.lg}`, padding 32px, 1px `{colors.hairline-strong}` border.\n\n**`pricing-tier-featured`** \u2014 Featured tier. Background `{colors.surface-dark}`, text `{colors.on-dark}`. Same shape, dark inversion.\n\n### Ecosystem\n\n**`ecosystem-tile`** \u2014 Square logo plate for ecosystem partner logos (TypeScript, React, Sentry, etc.). Background `{colors.surface-card}`, rounded `{rounded.md}`, 64px size, 1px `{colors.hairline}` border.\n\n### Forms & Tags\n\n**`text-input`** \u2014 Background `{colors.surface-card}`, text `{colors.ink}`, rounded `{rounded.md}` (8px), padding 12px \u00D7 16px, height 44px, 1px `{colors.hairline-strong}` border. Focus thickens border to 2px ink.\n\n**`badge-pill`** \u2014 Small uppercase pill. Background `{colors.surface-strong}`, text `{colors.ink}`, type `{typography.caption-uppercase}`, rounded `{rounded.pill}`, padding 4px \u00D7 10px.\n\n### CTA / Footer\n\n**`cta-band`** \u2014 Pre-footer band. Background `{colors.canvas}`, centered display headline in `{typography.display-lg}`, single black pill CTA. 96px padding.\n\n**`footer-light`** \u2014 Closing white footer. Background `{colors.canvas}`, text `{colors.body}`. 5-column link list. 64\u00D748px padding.\n\n**`footer-link`** \u2014 Background transparent, text `{colors.body}`, type `{typography.body-sm}`.\n\n## Do's and Don'ts\n\n### Do\n- Reserve `{colors.primary}` (black) for primary CTAs.\n- Use `{colors.text-link}` (blue) for inline body links only \u2014 never on CTAs or buttons.\n- Set every CTA at `{rounded.md}` (8px) \u2014 developer dialect.\n- Use Inter at weight 600 for display, 400 for body.\n- Render every code surface in JetBrains Mono.\n- Pair the hero with the device-mockup composite \u2014 it's the page chrome.\n\n### Don't\n- Don't introduce a saturated brand action color. Black is the only CTA fill.\n- Don't use blue (`{colors.text-link}`) on a CTA. Inline links only.\n- Don't drop display below weight 600 or above 700.\n- Don't use full pills on CTAs \u2014 pills are for badges only.\n- Don't replicate the sky-blue gradient backdrop outside the hero.\n- Don't extract a CTA color from a third-party widget (cookie consent, OneTrust). The brand's CTA is what appears on actual page CTAs.\n\n## Responsive Behavior\n\n### Breakpoints\n\n| Name | Width | Key Changes |\n|---|---|---|\n| Mobile | < 640px | Hero h1 64\u219232px; device mockup \u2192 single iPhone screen; feature grid 1-up; nav hamburger. |\n| Tablet | 640\u20131024px | Hero h1 48px; device mockup compresses; feature grid 2-up. |\n| Desktop | 1024\u20131280px | Full hero h1 64px; full MacBook + iPhone composite; feature grid 3-up. |\n| Wide | > 1280px | Content caps at 1200px. |\n\n### Touch Targets\n- Primary CTA at 40px height \u2014 at WCAG AA, padded for AAA.\n- Search input 44px \u2014 at AAA.\n\n### Collapsing Strategy\n- Top nav switches to hamburger below 768px.\n- Device mockup MacBook + iPhone collapses to a single iPhone preview on mobile.\n- Feature grid: 3-up \u2192 2-up \u2192 1-up.\n- Ecosystem tile grid: 8-up \u2192 4-up \u2192 3-up \u2192 2-up.\n\n## Iteration Guide\n\n1. Focus on a single component at a time.\n2. CTAs default to `{rounded.md}` (8px). Cards use `{rounded.lg}` (12px).\n3. Variants live as separate entries.\n4. Use `{token.refs}` everywhere \u2014 never inline hex.\n5. Hover state never documented.\n6. Inter 600 for display, Inter 400 for body. JetBrains Mono on code.\n7. Black stays the only CTA color; text-link blue stays inline-only.\n\n## Known Gaps\n\n- Inter and JetBrains Mono are freely available \u2014 no licensing concerns.\n- Animation timings (device mockup parallax, hero entrance) out of scope.\n- In-app surfaces (EAS dashboard interactive, Expo Go simulator) only partially captured via marketing mockups.\n- Form validation states beyond focus not visible on captured surfaces.\n";
|
|
2
|
+
|
|
3
|
+
export { expoBrief };
|
|
@@ -0,0 +1,532 @@
|
|
|
1
|
+
// src/presets/_briefs/expo.ts
|
|
2
|
+
var expoBrief = `---
|
|
3
|
+
version: alpha
|
|
4
|
+
name: Expo
|
|
5
|
+
description: A React Native developer-platform whose marketing site reads like a quietly-confident infrastructure brand. The base canvas is pure white with a soft sky-blue gradient atmospheric wash behind the hero; near-black ink (\`#171717\`) carries body and display alike. The single brand voltage is **pure black** (\`#000000\`) for primary CTAs \u2014 minimal and editorial-feeling, paired with a small blue text-link accent (\`#0d74ce\`) reserved for inline body links. Type pairs Inter at modest weights (display 600, body 400) with JetBrains Mono on every code surface. The brand's strongest visual signature is the **device-mockup hero** \u2014 a centered MacBook + iPhone composite showing real Expo dev surfaces \u2014 over the gradient sky wash.
|
|
6
|
+
|
|
7
|
+
colors:
|
|
8
|
+
primary: "#000000"
|
|
9
|
+
primary-active: "#1a1a1a"
|
|
10
|
+
text-link: "#0d74ce"
|
|
11
|
+
text-link-secondary: "#476cff"
|
|
12
|
+
ink: "#171717"
|
|
13
|
+
body: "#60646c"
|
|
14
|
+
body-strong: "#171717"
|
|
15
|
+
muted: "#999999"
|
|
16
|
+
muted-soft: "#cccccc"
|
|
17
|
+
hairline: "#f0f0f3"
|
|
18
|
+
hairline-soft: "#f5f5f7"
|
|
19
|
+
hairline-strong: "#dcdee0"
|
|
20
|
+
canvas: "#ffffff"
|
|
21
|
+
canvas-soft: "#fafafa"
|
|
22
|
+
surface-card: "#ffffff"
|
|
23
|
+
surface-strong: "#f0f0f3"
|
|
24
|
+
surface-dark: "#171717"
|
|
25
|
+
surface-dark-elevated: "#1a1a1a"
|
|
26
|
+
on-primary: "#ffffff"
|
|
27
|
+
on-dark: "#ffffff"
|
|
28
|
+
on-dark-soft: "#b0b4ba"
|
|
29
|
+
gradient-sky-light: "#cfe7ff"
|
|
30
|
+
gradient-sky-mid: "#a8c8e8"
|
|
31
|
+
accent-warning: "#ab6400"
|
|
32
|
+
accent-preview: "#8145b5"
|
|
33
|
+
accent-link-bright: "#47c2ff"
|
|
34
|
+
semantic-error: "#eb8e90"
|
|
35
|
+
semantic-success: "#16a34a"
|
|
36
|
+
|
|
37
|
+
typography:
|
|
38
|
+
display-mega:
|
|
39
|
+
fontFamily: "'Inter', -apple-system, system-ui, sans-serif"
|
|
40
|
+
fontSize: 64px
|
|
41
|
+
fontWeight: 600
|
|
42
|
+
lineHeight: 1.05
|
|
43
|
+
letterSpacing: -1.92px
|
|
44
|
+
display-xl:
|
|
45
|
+
fontFamily: "'Inter', sans-serif"
|
|
46
|
+
fontSize: 48px
|
|
47
|
+
fontWeight: 600
|
|
48
|
+
lineHeight: 1.1
|
|
49
|
+
letterSpacing: -1.44px
|
|
50
|
+
display-lg:
|
|
51
|
+
fontFamily: "'Inter', sans-serif"
|
|
52
|
+
fontSize: 36px
|
|
53
|
+
fontWeight: 600
|
|
54
|
+
lineHeight: 1.15
|
|
55
|
+
letterSpacing: -1.08px
|
|
56
|
+
display-md:
|
|
57
|
+
fontFamily: "'Inter', sans-serif"
|
|
58
|
+
fontSize: 28px
|
|
59
|
+
fontWeight: 600
|
|
60
|
+
lineHeight: 1.2
|
|
61
|
+
letterSpacing: -0.84px
|
|
62
|
+
display-sm:
|
|
63
|
+
fontFamily: "'Inter', sans-serif"
|
|
64
|
+
fontSize: 22px
|
|
65
|
+
fontWeight: 600
|
|
66
|
+
lineHeight: 1.25
|
|
67
|
+
letterSpacing: -0.5px
|
|
68
|
+
title-md:
|
|
69
|
+
fontFamily: "'Inter', sans-serif"
|
|
70
|
+
fontSize: 18px
|
|
71
|
+
fontWeight: 600
|
|
72
|
+
lineHeight: 1.4
|
|
73
|
+
letterSpacing: 0
|
|
74
|
+
title-sm:
|
|
75
|
+
fontFamily: "'Inter', sans-serif"
|
|
76
|
+
fontSize: 16px
|
|
77
|
+
fontWeight: 600
|
|
78
|
+
lineHeight: 1.4
|
|
79
|
+
letterSpacing: 0
|
|
80
|
+
body-md:
|
|
81
|
+
fontFamily: "'Inter', sans-serif"
|
|
82
|
+
fontSize: 16px
|
|
83
|
+
fontWeight: 400
|
|
84
|
+
lineHeight: 1.5
|
|
85
|
+
letterSpacing: 0
|
|
86
|
+
body-sm:
|
|
87
|
+
fontFamily: "'Inter', sans-serif"
|
|
88
|
+
fontSize: 14px
|
|
89
|
+
fontWeight: 400
|
|
90
|
+
lineHeight: 1.5
|
|
91
|
+
letterSpacing: 0
|
|
92
|
+
caption:
|
|
93
|
+
fontFamily: "'Inter', sans-serif"
|
|
94
|
+
fontSize: 13px
|
|
95
|
+
fontWeight: 400
|
|
96
|
+
lineHeight: 1.4
|
|
97
|
+
letterSpacing: 0
|
|
98
|
+
caption-uppercase:
|
|
99
|
+
fontFamily: "'Inter', sans-serif"
|
|
100
|
+
fontSize: 11px
|
|
101
|
+
fontWeight: 600
|
|
102
|
+
lineHeight: 1.4
|
|
103
|
+
letterSpacing: 0.88px
|
|
104
|
+
textTransform: uppercase
|
|
105
|
+
code:
|
|
106
|
+
fontFamily: "'JetBrains Mono', 'Fira Code', monospace"
|
|
107
|
+
fontSize: 13px
|
|
108
|
+
fontWeight: 400
|
|
109
|
+
lineHeight: 1.5
|
|
110
|
+
letterSpacing: 0
|
|
111
|
+
button:
|
|
112
|
+
fontFamily: "'Inter', sans-serif"
|
|
113
|
+
fontSize: 14px
|
|
114
|
+
fontWeight: 500
|
|
115
|
+
lineHeight: 1.0
|
|
116
|
+
letterSpacing: 0
|
|
117
|
+
nav-link:
|
|
118
|
+
fontFamily: "'Inter', sans-serif"
|
|
119
|
+
fontSize: 14px
|
|
120
|
+
fontWeight: 500
|
|
121
|
+
lineHeight: 1.4
|
|
122
|
+
letterSpacing: 0
|
|
123
|
+
|
|
124
|
+
rounded:
|
|
125
|
+
none: 0px
|
|
126
|
+
xs: 4px
|
|
127
|
+
sm: 6px
|
|
128
|
+
md: 8px
|
|
129
|
+
lg: 12px
|
|
130
|
+
xl: 16px
|
|
131
|
+
xxl: 24px
|
|
132
|
+
pill: 9999px
|
|
133
|
+
full: 9999px
|
|
134
|
+
|
|
135
|
+
spacing:
|
|
136
|
+
xxs: 4px
|
|
137
|
+
xs: 8px
|
|
138
|
+
sm: 12px
|
|
139
|
+
base: 16px
|
|
140
|
+
md: 20px
|
|
141
|
+
lg: 24px
|
|
142
|
+
xl: 32px
|
|
143
|
+
xxl: 48px
|
|
144
|
+
section: 96px
|
|
145
|
+
|
|
146
|
+
components:
|
|
147
|
+
top-nav:
|
|
148
|
+
backgroundColor: "{colors.canvas}"
|
|
149
|
+
textColor: "{colors.ink}"
|
|
150
|
+
typography: "{typography.nav-link}"
|
|
151
|
+
height: 64px
|
|
152
|
+
button-primary:
|
|
153
|
+
backgroundColor: "{colors.primary}"
|
|
154
|
+
textColor: "{colors.on-primary}"
|
|
155
|
+
typography: "{typography.button}"
|
|
156
|
+
rounded: "{rounded.md}"
|
|
157
|
+
padding: 10px 18px
|
|
158
|
+
height: 40px
|
|
159
|
+
button-primary-active:
|
|
160
|
+
backgroundColor: "{colors.primary-active}"
|
|
161
|
+
textColor: "{colors.on-primary}"
|
|
162
|
+
rounded: "{rounded.md}"
|
|
163
|
+
button-secondary:
|
|
164
|
+
backgroundColor: "{colors.surface-card}"
|
|
165
|
+
textColor: "{colors.ink}"
|
|
166
|
+
typography: "{typography.button}"
|
|
167
|
+
rounded: "{rounded.md}"
|
|
168
|
+
padding: 9px 17px
|
|
169
|
+
height: 40px
|
|
170
|
+
button-tertiary-text:
|
|
171
|
+
backgroundColor: transparent
|
|
172
|
+
textColor: "{colors.text-link}"
|
|
173
|
+
typography: "{typography.button}"
|
|
174
|
+
hero-band:
|
|
175
|
+
backgroundColor: "{colors.canvas}"
|
|
176
|
+
textColor: "{colors.ink}"
|
|
177
|
+
typography: "{typography.display-mega}"
|
|
178
|
+
padding: 96px
|
|
179
|
+
device-mockup-card:
|
|
180
|
+
backgroundColor: "{colors.surface-card}"
|
|
181
|
+
textColor: "{colors.ink}"
|
|
182
|
+
rounded: "{rounded.xl}"
|
|
183
|
+
padding: 0
|
|
184
|
+
feature-card:
|
|
185
|
+
backgroundColor: "{colors.surface-card}"
|
|
186
|
+
textColor: "{colors.ink}"
|
|
187
|
+
typography: "{typography.title-md}"
|
|
188
|
+
rounded: "{rounded.lg}"
|
|
189
|
+
padding: 24px
|
|
190
|
+
feature-card-dark:
|
|
191
|
+
backgroundColor: "{colors.surface-dark}"
|
|
192
|
+
textColor: "{colors.on-dark}"
|
|
193
|
+
typography: "{typography.title-md}"
|
|
194
|
+
rounded: "{rounded.lg}"
|
|
195
|
+
padding: 24px
|
|
196
|
+
workflow-step-card:
|
|
197
|
+
backgroundColor: "{colors.surface-card}"
|
|
198
|
+
textColor: "{colors.body}"
|
|
199
|
+
typography: "{typography.body-md}"
|
|
200
|
+
rounded: "{rounded.lg}"
|
|
201
|
+
padding: 20px
|
|
202
|
+
workflow-step-icon:
|
|
203
|
+
backgroundColor: "{colors.surface-strong}"
|
|
204
|
+
rounded: "{rounded.md}"
|
|
205
|
+
size: 32px
|
|
206
|
+
code-block:
|
|
207
|
+
backgroundColor: "{colors.surface-dark}"
|
|
208
|
+
textColor: "{colors.on-dark}"
|
|
209
|
+
typography: "{typography.code}"
|
|
210
|
+
rounded: "{rounded.lg}"
|
|
211
|
+
padding: 20px
|
|
212
|
+
ide-mockup-card:
|
|
213
|
+
backgroundColor: "{colors.surface-dark}"
|
|
214
|
+
textColor: "{colors.on-dark}"
|
|
215
|
+
rounded: "{rounded.lg}"
|
|
216
|
+
padding: 0
|
|
217
|
+
pricing-tier-card:
|
|
218
|
+
backgroundColor: "{colors.surface-card}"
|
|
219
|
+
textColor: "{colors.ink}"
|
|
220
|
+
typography: "{typography.body-md}"
|
|
221
|
+
rounded: "{rounded.lg}"
|
|
222
|
+
padding: 32px
|
|
223
|
+
pricing-tier-featured:
|
|
224
|
+
backgroundColor: "{colors.surface-dark}"
|
|
225
|
+
textColor: "{colors.on-dark}"
|
|
226
|
+
typography: "{typography.body-md}"
|
|
227
|
+
rounded: "{rounded.lg}"
|
|
228
|
+
padding: 32px
|
|
229
|
+
text-input:
|
|
230
|
+
backgroundColor: "{colors.surface-card}"
|
|
231
|
+
textColor: "{colors.ink}"
|
|
232
|
+
typography: "{typography.body-md}"
|
|
233
|
+
rounded: "{rounded.md}"
|
|
234
|
+
padding: 12px 16px
|
|
235
|
+
height: 44px
|
|
236
|
+
badge-pill:
|
|
237
|
+
backgroundColor: "{colors.surface-strong}"
|
|
238
|
+
textColor: "{colors.ink}"
|
|
239
|
+
typography: "{typography.caption-uppercase}"
|
|
240
|
+
rounded: "{rounded.pill}"
|
|
241
|
+
padding: 4px 10px
|
|
242
|
+
ecosystem-tile:
|
|
243
|
+
backgroundColor: "{colors.surface-card}"
|
|
244
|
+
rounded: "{rounded.md}"
|
|
245
|
+
size: 64px
|
|
246
|
+
cta-band:
|
|
247
|
+
backgroundColor: "{colors.canvas}"
|
|
248
|
+
textColor: "{colors.ink}"
|
|
249
|
+
typography: "{typography.display-lg}"
|
|
250
|
+
padding: 96px
|
|
251
|
+
testimonial-card:
|
|
252
|
+
backgroundColor: "{colors.surface-card}"
|
|
253
|
+
textColor: "{colors.body}"
|
|
254
|
+
typography: "{typography.body-md}"
|
|
255
|
+
rounded: "{rounded.lg}"
|
|
256
|
+
padding: 24px
|
|
257
|
+
footer-light:
|
|
258
|
+
backgroundColor: "{colors.canvas}"
|
|
259
|
+
textColor: "{colors.body}"
|
|
260
|
+
typography: "{typography.body-sm}"
|
|
261
|
+
padding: 64px 48px
|
|
262
|
+
footer-link:
|
|
263
|
+
backgroundColor: transparent
|
|
264
|
+
textColor: "{colors.body}"
|
|
265
|
+
typography: "{typography.body-sm}"
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## Overview
|
|
269
|
+
|
|
270
|
+
Expo's marketing site reads like a quietly-confident React-Native developer platform. The base canvas is **pure white** (\`{colors.canvas}\` \u2014 #ffffff) with a soft **sky-blue gradient atmospheric wash** behind the hero band. Near-black ink \`{colors.ink}\` (#171717) carries body and display alike. The single brand voltage is **pure black** (\`{colors.primary}\` \u2014 #000000) for primary CTAs \u2014 minimal and editorial-feeling. A small blue text-link accent (\`{colors.text-link}\` \u2014 #0d74ce) is reserved for inline body links, never as a CTA.
|
|
271
|
+
|
|
272
|
+
Type runs **Inter** as the single sans family at modest weights (display 600, body 400). JetBrains Mono carries every code surface. No custom typeface \u2014 the brand trusts Inter's editorial neutrality.
|
|
273
|
+
|
|
274
|
+
The brand's strongest visual signature is the **device-mockup hero** \u2014 a centered MacBook + iPhone composite showing real Expo dev surfaces (Expo Studio, EAS Build dashboard, the Expo Go simulator) \u2014 over a sky-blue gradient atmospheric wash. The composite is the page's chrome instead of an illustration.
|
|
275
|
+
|
|
276
|
+
**Key Characteristics:**
|
|
277
|
+
- Pure white canvas with sky-blue gradient atmospheric backdrop in hero only.
|
|
278
|
+
- Single primary CTA: pure black pill at \`{rounded.md}\` (8px) \u2014 compact developer-tool dialect.
|
|
279
|
+
- Text-link blue (\`{colors.text-link}\`) for inline links only \u2014 never on a CTA.
|
|
280
|
+
- Inter as the single sans family \u2014 no custom display typeface.
|
|
281
|
+
- JetBrains Mono on every code surface.
|
|
282
|
+
- Device-mockup hero with real Expo product surfaces is the brand chrome.
|
|
283
|
+
- Hairline + soft drop depth; no atmospheric brand decoration outside the hero.
|
|
284
|
+
- 96px section rhythm.
|
|
285
|
+
|
|
286
|
+
## Colors
|
|
287
|
+
|
|
288
|
+
### Brand & Accent
|
|
289
|
+
- **Black** (\`{colors.primary}\` \u2014 #000000): Primary CTA fill. Used scarcely.
|
|
290
|
+
- **Black Active** (\`{colors.primary-active}\` \u2014 #1a1a1a): Press state.
|
|
291
|
+
- **Text Link Blue** (\`{colors.text-link}\` \u2014 #0d74ce): Inline body links inside long-form copy. Scoped narrowly \u2014 never on CTAs.
|
|
292
|
+
- **Legal Link Blue** (\`{colors.text-link-secondary}\` \u2014 #476cff): Inline links inside legal copy footer.
|
|
293
|
+
- **Bright Cyan** (\`{colors.accent-link-bright}\` \u2014 #47c2ff): Used very sparingly inside docs widget links.
|
|
294
|
+
|
|
295
|
+
### Surface
|
|
296
|
+
- **Canvas** (\`{colors.canvas}\` \u2014 #ffffff): Pure white page floor.
|
|
297
|
+
- **Canvas Soft** (\`{colors.canvas-soft}\` \u2014 #fafafa): Subtle alternating band.
|
|
298
|
+
- **Surface Card** (\`{colors.surface-card}\` \u2014 #ffffff): Pure white card.
|
|
299
|
+
- **Surface Strong** (\`{colors.surface-strong}\` \u2014 #f0f0f3): Badges, ecosystem tiles, secondary buttons.
|
|
300
|
+
- **Surface Dark** (\`{colors.surface-dark}\` \u2014 #171717): Dark feature cards, code blocks, IDE mockups, featured pricing.
|
|
301
|
+
- **Surface Dark Elevated** (\`{colors.surface-dark-elevated}\` \u2014 #1a1a1a): One step lighter inside dark cards.
|
|
302
|
+
|
|
303
|
+
### Atmospheric Backdrop
|
|
304
|
+
- **Sky Light** (\`{colors.gradient-sky-light}\` \u2014 #cfe7ff) + **Sky Mid** (\`{colors.gradient-sky-mid}\` \u2014 #a8c8e8): The soft sky-blue gradient wash behind the homepage hero only. Not a brand action color.
|
|
305
|
+
|
|
306
|
+
### Hairlines
|
|
307
|
+
- **Hairline** (\`{colors.hairline}\` \u2014 #f0f0f3): Default 1px divider.
|
|
308
|
+
- **Hairline Soft** (\`{colors.hairline-soft}\` \u2014 #f5f5f7): Lighter divider.
|
|
309
|
+
- **Hairline Strong** (\`{colors.hairline-strong}\` \u2014 #dcdee0): Stronger panel outline.
|
|
310
|
+
|
|
311
|
+
### Text
|
|
312
|
+
- **Ink** (\`{colors.ink}\` \u2014 #171717): Display, body emphasis.
|
|
313
|
+
- **Body** (\`{colors.body}\` \u2014 #60646c): Default running-text \u2014 slightly cool gray.
|
|
314
|
+
- **Body Strong** (\`{colors.body-strong}\` \u2014 #171717): Same as ink.
|
|
315
|
+
- **Muted** (\`{colors.muted}\` \u2014 #999999): Sub-titles.
|
|
316
|
+
- **Muted Soft** (\`{colors.muted-soft}\` \u2014 #cccccc): Disabled text.
|
|
317
|
+
- **On Primary** (\`{colors.on-primary}\` \u2014 #ffffff): White text on black CTA.
|
|
318
|
+
- **On Dark** (\`{colors.on-dark}\` \u2014 #ffffff): White text on dark cards.
|
|
319
|
+
- **On Dark Soft** (\`{colors.on-dark-soft}\` \u2014 #b0b4ba): Muted off-white on dark.
|
|
320
|
+
|
|
321
|
+
### Semantic
|
|
322
|
+
- **Warning** (\`{colors.accent-warning}\` \u2014 #ab6400): Warning text inside docs callouts.
|
|
323
|
+
- **Preview** (\`{colors.accent-preview}\` \u2014 #8145b5): "Preview" tag color.
|
|
324
|
+
- **Success** (\`{colors.semantic-success}\` \u2014 #16a34a): Confirmation.
|
|
325
|
+
- **Error** (\`{colors.semantic-error}\` \u2014 #eb8e90): Validation errors.
|
|
326
|
+
|
|
327
|
+
## Typography
|
|
328
|
+
|
|
329
|
+
### Font Family
|
|
330
|
+
**Inter** is the single sans family across every text role. **JetBrains Mono** carries every code surface. Fallback: \`-apple-system, system-ui, sans-serif\`.
|
|
331
|
+
|
|
332
|
+
### Hierarchy
|
|
333
|
+
|
|
334
|
+
| Token | Size | Weight | Line Height | Letter Spacing | Use |
|
|
335
|
+
|---|---|---|---|---|---|
|
|
336
|
+
| \`{typography.display-mega}\` | 64px | 600 | 1.05 | -1.92px | Homepage hero h1 |
|
|
337
|
+
| \`{typography.display-xl}\` | 48px | 600 | 1.1 | -1.44px | Subsidiary heroes |
|
|
338
|
+
| \`{typography.display-lg}\` | 36px | 600 | 1.15 | -1.08px | Section heads |
|
|
339
|
+
| \`{typography.display-md}\` | 28px | 600 | 1.2 | -0.84px | Sub-section heads |
|
|
340
|
+
| \`{typography.display-sm}\` | 22px | 600 | 1.25 | -0.5px | Card group titles |
|
|
341
|
+
| \`{typography.title-md}\` | 18px | 600 | 1.4 | 0 | Component titles |
|
|
342
|
+
| \`{typography.title-sm}\` | 16px | 600 | 1.4 | 0 | List labels |
|
|
343
|
+
| \`{typography.body-md}\` | 16px | 400 | 1.5 | 0 | Default body |
|
|
344
|
+
| \`{typography.body-sm}\` | 14px | 400 | 1.5 | 0 | Footer body |
|
|
345
|
+
| \`{typography.caption}\` | 13px | 400 | 1.4 | 0 | Photo captions |
|
|
346
|
+
| \`{typography.caption-uppercase}\` | 11px | 600 | 1.4 | 0.88px | Section labels, badges |
|
|
347
|
+
| \`{typography.code}\` | 13px | 400 | 1.5 | 0 | Code blocks \u2014 JetBrains Mono |
|
|
348
|
+
| \`{typography.button}\` | 14px | 500 | 1.0 | 0 | CTA labels |
|
|
349
|
+
| \`{typography.nav-link}\` | 14px | 500 | 1.4 | 0 | Top-nav menu |
|
|
350
|
+
|
|
351
|
+
### Principles
|
|
352
|
+
- **Display weight stays at 600** \u2014 confident but not bombastic. Inter at 600 reads cleaner than 700.
|
|
353
|
+
- **Negative letter-spacing on display** \u2014 -0.5px to -1.92px tracking.
|
|
354
|
+
- **JetBrains Mono on every code surface.**
|
|
355
|
+
|
|
356
|
+
### Note on Font Substitutes
|
|
357
|
+
Inter and JetBrains Mono are both freely available \u2014 the system uses them directly.
|
|
358
|
+
|
|
359
|
+
## Layout
|
|
360
|
+
|
|
361
|
+
### Spacing System
|
|
362
|
+
- **Base unit:** 4px.
|
|
363
|
+
- **Tokens:** \`{spacing.xxs}\` 4px \xB7 \`{spacing.xs}\` 8px \xB7 \`{spacing.sm}\` 12px \xB7 \`{spacing.base}\` 16px \xB7 \`{spacing.md}\` 20px \xB7 \`{spacing.lg}\` 24px \xB7 \`{spacing.xl}\` 32px \xB7 \`{spacing.xxl}\` 48px \xB7 \`{spacing.section}\` 96px.
|
|
364
|
+
- **Section padding:** 96px.
|
|
365
|
+
|
|
366
|
+
### Grid & Container
|
|
367
|
+
- Max content width: ~1200px.
|
|
368
|
+
- Editorial body: 12-column grid.
|
|
369
|
+
- Feature card grids: 2-up at desktop for hero splits, 3-up for benefit grids.
|
|
370
|
+
- Ecosystem tile grid: 8-up at desktop.
|
|
371
|
+
- Footer: 5-column at desktop.
|
|
372
|
+
|
|
373
|
+
### Whitespace Philosophy
|
|
374
|
+
Generous editorial pacing. The white canvas does not compete with the hero's gradient sky wash; cards inside dense workflow sections sit close (16-24px gap).
|
|
375
|
+
|
|
376
|
+
## Elevation & Depth
|
|
377
|
+
|
|
378
|
+
| Level | Treatment | Use |
|
|
379
|
+
|---|---|---|
|
|
380
|
+
| Flat (canvas) | \`{colors.canvas}\` (#ffffff) | Body bands, footer |
|
|
381
|
+
| Card | \`{colors.surface-card}\` (#ffffff) | Content cards |
|
|
382
|
+
| Hairline border | 1px \`{colors.hairline}\` | Card outlines |
|
|
383
|
+
| Soft drop | \`0 4px 12px rgba(0, 0, 0, 0.04)\` | Hovered cards (single shadow tier) |
|
|
384
|
+
| Atmospheric gradient | Sky-blue radial wash | Hero backdrop only |
|
|
385
|
+
| Dark inversion | \`{colors.surface-dark}\` (#171717) | Dark feature cards, code blocks, featured pricing |
|
|
386
|
+
|
|
387
|
+
### Decorative Depth
|
|
388
|
+
- **Sky-blue gradient backdrop** in the hero only \u2014 atmospheric depth without claiming to be a brand color.
|
|
389
|
+
- **Device mockup composite** as page chrome \u2014 MacBook + iPhone showing real Expo dev surfaces.
|
|
390
|
+
|
|
391
|
+
## Shapes
|
|
392
|
+
|
|
393
|
+
### Border Radius Scale
|
|
394
|
+
|
|
395
|
+
| Token | Value | Use |
|
|
396
|
+
|---|---|---|
|
|
397
|
+
| \`{rounded.none}\` | 0px | Reserved |
|
|
398
|
+
| \`{rounded.xs}\` | 4px | Inline tags |
|
|
399
|
+
| \`{rounded.sm}\` | 6px | Compact rows |
|
|
400
|
+
| \`{rounded.md}\` | 8px | CTA buttons, form inputs, ecosystem tiles |
|
|
401
|
+
| \`{rounded.lg}\` | 12px | Feature cards, code blocks, pricing tiers |
|
|
402
|
+
| \`{rounded.xl}\` | 16px | Device mockup cards |
|
|
403
|
+
| \`{rounded.xxl}\` | 24px | Larger atmospheric cards (rare) |
|
|
404
|
+
| \`{rounded.pill}\` | 9999px | Badges only |
|
|
405
|
+
| \`{rounded.full}\` | 9999px | Avatar plates (rare) |
|
|
406
|
+
|
|
407
|
+
Compact developer-ergonomic radii \u2014 8px CTAs, 12px cards. Pill geometry is reserved for badges, never CTAs.
|
|
408
|
+
|
|
409
|
+
## Components
|
|
410
|
+
|
|
411
|
+
### Top Navigation
|
|
412
|
+
|
|
413
|
+
**\`top-nav\`** \u2014 Background \`{colors.canvas}\`, text \`{colors.ink}\`, height 64px. Layout: Expo wordmark left, primary horizontal menu (Tools / Workflows / EAS / Pricing / Docs / Showcase), Sign In + Get started CTA right.
|
|
414
|
+
|
|
415
|
+
### Buttons
|
|
416
|
+
|
|
417
|
+
**\`button-primary\`** \u2014 Pure black pill. Background \`{colors.primary}\`, text \`{colors.on-primary}\`, type \`{typography.button}\` (14px / 500), padding 10px \xD7 18px, height 40px, rounded \`{rounded.md}\` (8px).
|
|
418
|
+
|
|
419
|
+
**\`button-primary-active\`** \u2014 Press state. Background \`{colors.primary-active}\`.
|
|
420
|
+
|
|
421
|
+
**\`button-secondary\`** \u2014 White card with 1px hairline-strong border. Background \`{colors.surface-card}\`, text \`{colors.ink}\`, 1px \`{colors.hairline-strong}\` border.
|
|
422
|
+
|
|
423
|
+
**\`button-tertiary-text\`** \u2014 Inline blue text link. Background transparent, text \`{colors.text-link}\`.
|
|
424
|
+
|
|
425
|
+
### Hero & Device Mockup
|
|
426
|
+
|
|
427
|
+
**\`hero-band\`** \u2014 Background \`{colors.canvas}\` with a soft sky-blue gradient wash behind the centered headline. Display headline in \`{typography.display-mega}\` (64px / 600 / -1.92px), subhead in \`{typography.body-md}\`, single primary CTA, then below \u2014 the device mockup composite.
|
|
428
|
+
|
|
429
|
+
**\`device-mockup-card\`** \u2014 A layered MacBook + iPhone composite showing real Expo dev surfaces. Background \`{colors.surface-card}\`, rounded \`{rounded.xl}\`. The MacBook holds the EAS dashboard or Expo Studio screenshot; the iPhone overlay shows the running app in Expo Go. This is the page chrome.
|
|
430
|
+
|
|
431
|
+
### Cards
|
|
432
|
+
|
|
433
|
+
**\`feature-card\`** \u2014 Background \`{colors.surface-card}\`, text \`{colors.ink}\`, type \`{typography.title-md}\`, rounded \`{rounded.lg}\`, padding 24px, 1px \`{colors.hairline-strong}\` border.
|
|
434
|
+
|
|
435
|
+
**\`feature-card-dark\`** \u2014 Dark variant. Background \`{colors.surface-dark}\`, text \`{colors.on-dark}\`. Same shape, dark inversion.
|
|
436
|
+
|
|
437
|
+
**\`workflow-step-card\`** \u2014 Step in the "Get your app on every device" workflow row. Background \`{colors.surface-card}\`, text \`{colors.body}\`, rounded \`{rounded.lg}\`, padding 20px. Layout: 32px square \`{component.workflow-step-icon}\` + step number + label + body.
|
|
438
|
+
|
|
439
|
+
**\`workflow-step-icon\`** \u2014 Square plate. Background \`{colors.surface-strong}\`, rounded \`{rounded.md}\`, 32px size.
|
|
440
|
+
|
|
441
|
+
**\`testimonial-card\`** \u2014 Quote card. Background \`{colors.surface-card}\`, text \`{colors.body}\`, rounded \`{rounded.lg}\`, padding 24px.
|
|
442
|
+
|
|
443
|
+
### Code & IDE
|
|
444
|
+
|
|
445
|
+
**\`code-block\`** \u2014 Inline code block. Background \`{colors.surface-dark}\`, text \`{colors.on-dark}\` in \`{typography.code}\` (JetBrains Mono 13px), rounded \`{rounded.lg}\`, padding 20px. White text on dark.
|
|
446
|
+
|
|
447
|
+
**\`ide-mockup-card\`** \u2014 Stylized IDE mockup. Background \`{colors.surface-dark}\`, rounded \`{rounded.lg}\`. Multi-pane editor + terminal preview.
|
|
448
|
+
|
|
449
|
+
### Pricing
|
|
450
|
+
|
|
451
|
+
**\`pricing-tier-card\`** \u2014 Standard pricing tier. Background \`{colors.surface-card}\`, rounded \`{rounded.lg}\`, padding 32px, 1px \`{colors.hairline-strong}\` border.
|
|
452
|
+
|
|
453
|
+
**\`pricing-tier-featured\`** \u2014 Featured tier. Background \`{colors.surface-dark}\`, text \`{colors.on-dark}\`. Same shape, dark inversion.
|
|
454
|
+
|
|
455
|
+
### Ecosystem
|
|
456
|
+
|
|
457
|
+
**\`ecosystem-tile\`** \u2014 Square logo plate for ecosystem partner logos (TypeScript, React, Sentry, etc.). Background \`{colors.surface-card}\`, rounded \`{rounded.md}\`, 64px size, 1px \`{colors.hairline}\` border.
|
|
458
|
+
|
|
459
|
+
### Forms & Tags
|
|
460
|
+
|
|
461
|
+
**\`text-input\`** \u2014 Background \`{colors.surface-card}\`, text \`{colors.ink}\`, rounded \`{rounded.md}\` (8px), padding 12px \xD7 16px, height 44px, 1px \`{colors.hairline-strong}\` border. Focus thickens border to 2px ink.
|
|
462
|
+
|
|
463
|
+
**\`badge-pill\`** \u2014 Small uppercase pill. Background \`{colors.surface-strong}\`, text \`{colors.ink}\`, type \`{typography.caption-uppercase}\`, rounded \`{rounded.pill}\`, padding 4px \xD7 10px.
|
|
464
|
+
|
|
465
|
+
### CTA / Footer
|
|
466
|
+
|
|
467
|
+
**\`cta-band\`** \u2014 Pre-footer band. Background \`{colors.canvas}\`, centered display headline in \`{typography.display-lg}\`, single black pill CTA. 96px padding.
|
|
468
|
+
|
|
469
|
+
**\`footer-light\`** \u2014 Closing white footer. Background \`{colors.canvas}\`, text \`{colors.body}\`. 5-column link list. 64\xD748px padding.
|
|
470
|
+
|
|
471
|
+
**\`footer-link\`** \u2014 Background transparent, text \`{colors.body}\`, type \`{typography.body-sm}\`.
|
|
472
|
+
|
|
473
|
+
## Do's and Don'ts
|
|
474
|
+
|
|
475
|
+
### Do
|
|
476
|
+
- Reserve \`{colors.primary}\` (black) for primary CTAs.
|
|
477
|
+
- Use \`{colors.text-link}\` (blue) for inline body links only \u2014 never on CTAs or buttons.
|
|
478
|
+
- Set every CTA at \`{rounded.md}\` (8px) \u2014 developer dialect.
|
|
479
|
+
- Use Inter at weight 600 for display, 400 for body.
|
|
480
|
+
- Render every code surface in JetBrains Mono.
|
|
481
|
+
- Pair the hero with the device-mockup composite \u2014 it's the page chrome.
|
|
482
|
+
|
|
483
|
+
### Don't
|
|
484
|
+
- Don't introduce a saturated brand action color. Black is the only CTA fill.
|
|
485
|
+
- Don't use blue (\`{colors.text-link}\`) on a CTA. Inline links only.
|
|
486
|
+
- Don't drop display below weight 600 or above 700.
|
|
487
|
+
- Don't use full pills on CTAs \u2014 pills are for badges only.
|
|
488
|
+
- Don't replicate the sky-blue gradient backdrop outside the hero.
|
|
489
|
+
- Don't extract a CTA color from a third-party widget (cookie consent, OneTrust). The brand's CTA is what appears on actual page CTAs.
|
|
490
|
+
|
|
491
|
+
## Responsive Behavior
|
|
492
|
+
|
|
493
|
+
### Breakpoints
|
|
494
|
+
|
|
495
|
+
| Name | Width | Key Changes |
|
|
496
|
+
|---|---|---|
|
|
497
|
+
| Mobile | < 640px | Hero h1 64\u219232px; device mockup \u2192 single iPhone screen; feature grid 1-up; nav hamburger. |
|
|
498
|
+
| Tablet | 640\u20131024px | Hero h1 48px; device mockup compresses; feature grid 2-up. |
|
|
499
|
+
| Desktop | 1024\u20131280px | Full hero h1 64px; full MacBook + iPhone composite; feature grid 3-up. |
|
|
500
|
+
| Wide | > 1280px | Content caps at 1200px. |
|
|
501
|
+
|
|
502
|
+
### Touch Targets
|
|
503
|
+
- Primary CTA at 40px height \u2014 at WCAG AA, padded for AAA.
|
|
504
|
+
- Search input 44px \u2014 at AAA.
|
|
505
|
+
|
|
506
|
+
### Collapsing Strategy
|
|
507
|
+
- Top nav switches to hamburger below 768px.
|
|
508
|
+
- Device mockup MacBook + iPhone collapses to a single iPhone preview on mobile.
|
|
509
|
+
- Feature grid: 3-up \u2192 2-up \u2192 1-up.
|
|
510
|
+
- Ecosystem tile grid: 8-up \u2192 4-up \u2192 3-up \u2192 2-up.
|
|
511
|
+
|
|
512
|
+
## Iteration Guide
|
|
513
|
+
|
|
514
|
+
1. Focus on a single component at a time.
|
|
515
|
+
2. CTAs default to \`{rounded.md}\` (8px). Cards use \`{rounded.lg}\` (12px).
|
|
516
|
+
3. Variants live as separate entries.
|
|
517
|
+
4. Use \`{token.refs}\` everywhere \u2014 never inline hex.
|
|
518
|
+
5. Hover state never documented.
|
|
519
|
+
6. Inter 600 for display, Inter 400 for body. JetBrains Mono on code.
|
|
520
|
+
7. Black stays the only CTA color; text-link blue stays inline-only.
|
|
521
|
+
|
|
522
|
+
## Known Gaps
|
|
523
|
+
|
|
524
|
+
- Inter and JetBrains Mono are freely available \u2014 no licensing concerns.
|
|
525
|
+
- Animation timings (device mockup parallax, hero entrance) out of scope.
|
|
526
|
+
- In-app surfaces (EAS dashboard interactive, Expo Go simulator) only partially captured via marketing mockups.
|
|
527
|
+
- Form validation states beyond focus not visible on captured surfaces.
|
|
528
|
+
`;
|
|
529
|
+
export {
|
|
530
|
+
expoBrief
|
|
531
|
+
};
|
|
532
|
+
//# sourceMappingURL=expo.js.map
|