@hex-core/themes 0.1.0 → 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,252 @@
|
|
|
1
|
+
// src/presets/_briefs/framer.ts
|
|
2
|
+
var framerBrief = `# Design System Inspired by Framer
|
|
3
|
+
|
|
4
|
+
## 1. Visual Theme & Atmosphere
|
|
5
|
+
|
|
6
|
+
Framer's website is a cinematic, tool-obsessed dark canvas that radiates the confidence of a design tool built by designers who worship craft. The entire experience is drenched in pure black \u2014 not a warm charcoal or a cozy dark gray, but an absolute void (\`#000000\`) that makes every element, every screenshot, every typographic flourish feel like it's floating in deep space. This is a website that treats its own product UI as the hero art, embedding full-fidelity screenshots and interactive demos directly into the narrative flow.
|
|
7
|
+
|
|
8
|
+
The typography is the signature move: GT Walsheim with aggressively tight letter-spacing (as extreme as -5.5px on 110px display text) creates headlines that feel compressed, kinetic, almost spring-loaded \u2014 like words under pressure that might expand at any moment. The transition to Inter for body text is seamless, with extensive OpenType feature usage (\`cv01\`, \`cv05\`, \`cv09\`, \`cv11\`, \`ss03\`, \`ss07\`) that gives even small text a refined, custom feel. Framer Blue (\`#0099ff\`) is deployed sparingly but decisively \u2014 as link color, border accents, and subtle ring shadows \u2014 creating a cold, electric throughline against the warm-less black.
|
|
9
|
+
|
|
10
|
+
The overall effect is a nightclub for web designers: dark, precise, seductive, and unapologetically product-forward. Every section exists to showcase what the tool can do, with the website itself serving as proof of concept.
|
|
11
|
+
|
|
12
|
+
**Key Characteristics:**
|
|
13
|
+
- Pure black (\`#000000\`) void canvas \u2014 absolute dark, not warm or gray-tinted
|
|
14
|
+
- GT Walsheim display font with extreme negative letter-spacing (-5.5px at 110px)
|
|
15
|
+
- Framer Blue (\`#0099ff\`) as the sole accent color \u2014 cold, electric, precise
|
|
16
|
+
- Pill-shaped buttons (40px\u2013100px radius) \u2014 no sharp corners on interactive elements
|
|
17
|
+
- Product screenshots as hero art \u2014 the tool IS the marketing
|
|
18
|
+
- Frosted glass button variants using \`rgba(255, 255, 255, 0.1)\` on dark surfaces
|
|
19
|
+
- Extensive OpenType feature usage across Inter for refined micro-typography
|
|
20
|
+
|
|
21
|
+
## 2. Color Palette & Roles
|
|
22
|
+
|
|
23
|
+
### Primary
|
|
24
|
+
- **Pure Black** (\`#000000\`): Primary background, the void canvas that defines Framer's dark-first identity
|
|
25
|
+
- **Pure White** (\`#ffffff\`): Primary text color on dark surfaces, button text on accent backgrounds
|
|
26
|
+
- **Framer Blue** (\`#0099ff\`): Primary accent color \u2014 links, borders, ring shadows, interactive highlights
|
|
27
|
+
|
|
28
|
+
### Secondary & Accent
|
|
29
|
+
- **Muted Silver** (\`#a6a6a6\`): Secondary text, subdued labels, dimmed descriptions on dark surfaces
|
|
30
|
+
- **Near Black** (\`#090909\`): Elevated dark surface, shadow ring color for subtle depth separation
|
|
31
|
+
|
|
32
|
+
### Surface & Background
|
|
33
|
+
- **Void Black** (\`#000000\`): Page background, primary canvas
|
|
34
|
+
- **Frosted White** (\`rgba(255, 255, 255, 0.1)\`): Translucent button backgrounds, glass-effect surfaces on dark
|
|
35
|
+
- **Subtle White** (\`rgba(255, 255, 255, 0.5)\`): Slightly more opaque frosted elements for hover states
|
|
36
|
+
|
|
37
|
+
### Neutrals & Text
|
|
38
|
+
- **Pure White** (\`#ffffff\`): Heading text, high-emphasis body text
|
|
39
|
+
- **Muted Silver** (\`#a6a6a6\`): Body text, descriptions, secondary information
|
|
40
|
+
- **Ghost White** (\`rgba(255, 255, 255, 0.6)\`): Tertiary text, placeholders on dark surfaces
|
|
41
|
+
|
|
42
|
+
### Semantic & Accent
|
|
43
|
+
- **Framer Blue** (\`#0099ff\`): Links, interactive borders, focus rings
|
|
44
|
+
- **Blue Glow** (\`rgba(0, 153, 255, 0.15)\`): Focus ring shadow, subtle blue halo around interactive elements
|
|
45
|
+
- **Default Link Blue** (\`#0000ee\`): Standard browser link color (used sparingly in content areas)
|
|
46
|
+
|
|
47
|
+
### Gradient System
|
|
48
|
+
- No prominent gradient usage \u2014 Framer relies on pure flat black surfaces with occasional blue-tinted glows for depth
|
|
49
|
+
- Subtle radial glow effects behind product screenshots using Framer Blue at very low opacity
|
|
50
|
+
|
|
51
|
+
## 3. Typography Rules
|
|
52
|
+
|
|
53
|
+
### Font Family
|
|
54
|
+
- **Display**: \`GT Walsheim Framer Medium\` / \`GT Walsheim Medium\` \u2014 custom geometric sans-serif, weight 500. Fallbacks: \`GT Walsheim Framer Medium Placeholder\`, system sans-serif
|
|
55
|
+
- **Body/UI**: \`Inter Variable\` / \`Inter\` \u2014 variable sans-serif with extensive OpenType features. Fallbacks: \`Inter Placeholder\`, \`-apple-system\`, \`system-ui\`
|
|
56
|
+
- **Accent**: \`Mona Sans\` \u2014 GitHub's open-source font, used for select elements at ultra-light weight (100)
|
|
57
|
+
- **Monospace**: \`Azeret Mono\` \u2014 companion mono for code and technical labels
|
|
58
|
+
- **Rounded**: \`Open Runde\` \u2014 small rounded companion font for micro-labels
|
|
59
|
+
|
|
60
|
+
### Hierarchy
|
|
61
|
+
|
|
62
|
+
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
|
63
|
+
|------|------|------|--------|-------------|----------------|-------|
|
|
64
|
+
| Display Hero | GT Walsheim Framer Medium | 110px | 500 | 0.85 | -5.5px | Extreme negative tracking, compressed impact |
|
|
65
|
+
| Section Display | GT Walsheim Medium | 85px | 500 | 0.95 | -4.25px | OpenType: ss02, tnum |
|
|
66
|
+
| Section Heading | GT Walsheim Medium | 62px | 500 | 1.00 | -3.1px | OpenType: ss02 |
|
|
67
|
+
| Feature Heading | GT Walsheim Medium | 32px | 500 | 1.13 | -1px | Tightest of the smaller headings |
|
|
68
|
+
| Accent Display | Mona Sans | 61.5px | 100 | 1.00 | -3.1px | Ultra-light weight, ethereal |
|
|
69
|
+
| Card Title | Inter Variable | 24px | 400 | 1.30 | -0.01px | OpenType: cv01, cv05, cv09, cv11, ss03, ss07 |
|
|
70
|
+
| Feature Title | Inter | 22px | 700 | 1.20 | -0.8px | OpenType: cv05 |
|
|
71
|
+
| Sub-heading | Inter | 20px | 600 | 1.20 | -0.8px | OpenType: cv01, cv09 |
|
|
72
|
+
| Body Large | Inter Variable | 18px | 400 | 1.30 | -0.01px | OpenType: cv01, cv05, cv09, cv11, ss03, ss07 |
|
|
73
|
+
| Body | Inter Variable | 15px | 400 | 1.30 | -0.01px | OpenType: cv11 |
|
|
74
|
+
| Nav/UI | Inter Variable | 15px | 400 | 1.00 | -0.15px | OpenType: cv06, cv11, dlig, ss03 |
|
|
75
|
+
| Body Readable | Inter Framer Regular | 14px | 400 | 1.60 | normal | Long-form body text |
|
|
76
|
+
| Caption | Inter Variable | 14px | 400 | 1.40 | normal | OpenType: cv01, cv06, cv09, cv11, ss03, ss07 |
|
|
77
|
+
| Label | Inter | 13px | 500 | 1.60 | normal | OpenType: cv06, cv11, ss03 |
|
|
78
|
+
| Small Caption | Inter Variable | 12px | 400 | 1.40 | normal | OpenType: cv01, cv06, cv09, cv11, ss03, ss07 |
|
|
79
|
+
| Micro Code | Azeret Mono | 10.4px | 400 | 1.60 | normal | OpenType: cv06, cv11, ss03 |
|
|
80
|
+
| Badge | Open Runde | 9px | 600 | 1.11 | normal | OpenType: cv01, cv09 |
|
|
81
|
+
| Micro Uppercase | Inter Variable | 7px | 400 | 1.00 | 0.21px | uppercase transform |
|
|
82
|
+
|
|
83
|
+
### Principles
|
|
84
|
+
- **Compression as personality**: GT Walsheim's extreme negative letter-spacing (-5.5px at 110px) is the defining typographic gesture \u2014 headlines feel spring-loaded, urgent, almost breathless
|
|
85
|
+
- **OpenType maximalism**: Inter is deployed with 6+ OpenType features simultaneously (\`cv01\`, \`cv05\`, \`cv09\`, \`cv11\`, \`ss03\`, \`ss07\`), creating a subtly custom feel even at body sizes
|
|
86
|
+
- **Weight restraint on display**: All GT Walsheim usage is weight 500 (medium) \u2014 never bold, never regular. This creates a confident-but-not-aggressive display tone
|
|
87
|
+
- **Ultra-tight line heights**: Display text at 0.85 line-height means letters nearly overlap vertically \u2014 intentional density that rewards reading at arm's length
|
|
88
|
+
|
|
89
|
+
## 4. Component Stylings
|
|
90
|
+
|
|
91
|
+
### Buttons
|
|
92
|
+
- **Frosted Pill**: \`rgba(255, 255, 255, 0.1)\` background, black text (\`#000000\`), pill shape (40px radius). The glass-effect button that lives on dark surfaces \u2014 translucent, ambient, subtle
|
|
93
|
+
- **Solid White Pill**: \`rgb(255, 255, 255)\` background, black text (\`#000000\`), full pill shape (100px radius), padding \`10px 15px\`. The primary CTA \u2014 clean, high-contrast on dark, unmissable
|
|
94
|
+
- **Ghost**: No visible background, white text, relies on text styling alone. Hover reveals subtle frosted background
|
|
95
|
+
- **Transition**: Scale-based animations (matrix transform with 0.85 scale factor), opacity transitions for reveal effects
|
|
96
|
+
|
|
97
|
+
### Cards & Containers
|
|
98
|
+
- **Dark Surface Card**: Black or near-black (\`#090909\`) background, \`rgba(0, 153, 255, 0.15) 0px 0px 0px 1px\` blue ring shadow border, rounded corners (10px\u201315px radius)
|
|
99
|
+
- **Elevated Card**: Multi-layer shadow \u2014 \`rgba(255, 255, 255, 0.1) 0px 0.5px 0px 0.5px\` (subtle top highlight) + \`rgba(0, 0, 0, 0.25) 0px 10px 30px\` (deep ambient shadow)
|
|
100
|
+
- **Product Screenshots**: Full-width or padded within dark containers, 8px\u201312px border-radius for software UI previews
|
|
101
|
+
- **Hover**: Subtle glow increase on Framer Blue ring shadow, or brightness shift on frosted surfaces
|
|
102
|
+
|
|
103
|
+
### Inputs & Forms
|
|
104
|
+
- Minimal form presence on the marketing site
|
|
105
|
+
- Input fields follow dark theme: dark background, subtle border, white text
|
|
106
|
+
- Focus state: Framer Blue (\`#0099ff\`) ring border, \`1px solid #0099ff\`
|
|
107
|
+
- Placeholder text in \`rgba(255, 255, 255, 0.4)\`
|
|
108
|
+
|
|
109
|
+
### Navigation
|
|
110
|
+
- **Dark floating nav bar**: Black background with frosted glass effect, white text links
|
|
111
|
+
- **Nav links**: Inter at 15px, weight 400, white text with subtle hover opacity change
|
|
112
|
+
- **CTA button**: Pill-shaped, white or frosted, positioned at right end of nav
|
|
113
|
+
- **Mobile**: Collapses to hamburger menu, maintains dark theme
|
|
114
|
+
- **Sticky behavior**: Nav remains fixed at top on scroll
|
|
115
|
+
|
|
116
|
+
### Image Treatment
|
|
117
|
+
- **Product screenshots as hero art**: Full-width embedded UI screenshots with rounded corners (8px\u201312px)
|
|
118
|
+
- **Dark-on-dark composition**: Screenshots placed on black backgrounds with subtle shadow for depth separation
|
|
119
|
+
- **16:9 and custom aspect ratios**: Product demos fill their containers
|
|
120
|
+
- **No decorative imagery**: All images are functional \u2014 showing the tool, the output, or the workflow
|
|
121
|
+
|
|
122
|
+
### Trust & Social Proof
|
|
123
|
+
- Customer logos and testimonials in muted gray on dark surfaces
|
|
124
|
+
- Minimal ornamentation \u2014 the product screenshots serve as the trust signal
|
|
125
|
+
|
|
126
|
+
## 5. Layout Principles
|
|
127
|
+
|
|
128
|
+
### Spacing System
|
|
129
|
+
- **Base unit**: 8px
|
|
130
|
+
- **Scale**: 1px, 2px, 3px, 4px, 5px, 6px, 8px, 10px, 12px, 15px, 20px, 30px, 35px
|
|
131
|
+
- **Section padding**: Large vertical spacing (80px\u2013120px between sections)
|
|
132
|
+
- **Card padding**: 15px\u201330px internal padding
|
|
133
|
+
- **Component gaps**: 8px\u201320px between related elements
|
|
134
|
+
|
|
135
|
+
### Grid & Container
|
|
136
|
+
- **Max width**: ~1200px container, centered
|
|
137
|
+
- **Column patterns**: Full-width hero, 2-column feature sections, single-column product showcases
|
|
138
|
+
- **Asymmetric layouts**: Feature sections often pair text (40%) with screenshot (60%)
|
|
139
|
+
|
|
140
|
+
### Whitespace Philosophy
|
|
141
|
+
- **Breathe through darkness**: Generous vertical spacing between sections \u2014 the black background means whitespace manifests as void, creating dramatic pauses between content blocks
|
|
142
|
+
- **Dense within, spacious between**: Individual components are tightly composed (tight line-heights, compressed text) but float in generous surrounding space
|
|
143
|
+
- **Product-first density**: Screenshot areas are allowed to be dense and information-rich, contrasting with the sparse marketing text
|
|
144
|
+
|
|
145
|
+
### Border Radius Scale
|
|
146
|
+
- **1px**: Micro-elements, nearly squared precision edges
|
|
147
|
+
- **5px\u20137px**: Small UI elements, image thumbnails \u2014 subtly softened
|
|
148
|
+
- **8px**: Standard component radius \u2014 code blocks, buttons, interactive elements
|
|
149
|
+
- **10px\u201312px**: Cards, product screenshots \u2014 comfortably rounded
|
|
150
|
+
- **15px\u201320px**: Large containers, feature cards \u2014 generously rounded
|
|
151
|
+
- **30px\u201340px**: Navigation pills, pagination \u2014 noticeably rounded
|
|
152
|
+
- **100px**: Full pill shape \u2014 primary CTAs, tag elements
|
|
153
|
+
|
|
154
|
+
## 6. Depth & Elevation
|
|
155
|
+
|
|
156
|
+
| Level | Treatment | Use |
|
|
157
|
+
|-------|-----------|-----|
|
|
158
|
+
| Level 0 (Flat) | No shadow, pure black surface | Page background, empty areas |
|
|
159
|
+
| Level 1 (Ring) | \`rgba(0, 153, 255, 0.15) 0px 0px 0px 1px\` | Card borders, interactive element outlines \u2014 Framer Blue glow ring |
|
|
160
|
+
| Level 2 (Contained) | \`rgb(9, 9, 9) 0px 0px 0px 2px\` | Near-black ring for subtle containment on dark surfaces |
|
|
161
|
+
| Level 3 (Floating) | \`rgba(255, 255, 255, 0.1) 0px 0.5px 0px 0.5px, rgba(0, 0, 0, 0.25) 0px 10px 30px\` | Elevated cards, floating elements \u2014 subtle white top-edge highlight + deep ambient shadow |
|
|
162
|
+
|
|
163
|
+
### Shadow Philosophy
|
|
164
|
+
Framer's elevation system is inverted from traditional light-theme designs. Instead of darker shadows on light backgrounds, Framer uses:
|
|
165
|
+
- **Blue-tinted ring shadows** at very low opacity (0.15) for containment \u2014 a signature move that subtly brands every bordered element
|
|
166
|
+
- **White edge highlights** (0.5px) on the top edge of elevated elements \u2014 simulating light hitting the top surface
|
|
167
|
+
- **Deep ambient shadows** for true floating elements \u2014 \`rgba(0, 0, 0, 0.25)\` at large spread (30px)
|
|
168
|
+
|
|
169
|
+
### Decorative Depth
|
|
170
|
+
- **Blue glow auras**: Subtle Framer Blue (\`#0099ff\`) radial gradients behind key interactive areas
|
|
171
|
+
- **No background blur/glassmorphism**: Despite the frosted button effect, there's no heavy glass blur usage \u2014 the translucency is achieved through simple rgba opacity
|
|
172
|
+
|
|
173
|
+
## 7. Do's and Don'ts
|
|
174
|
+
|
|
175
|
+
### Do
|
|
176
|
+
- Use pure black (\`#000000\`) as the primary background \u2014 not dark gray, not charcoal
|
|
177
|
+
- Apply extreme negative letter-spacing on GT Walsheim display text (-3px to -5.5px)
|
|
178
|
+
- Keep all buttons pill-shaped (40px+ radius) \u2014 never use squared or slightly-rounded buttons
|
|
179
|
+
- Use Framer Blue (\`#0099ff\`) exclusively for interactive accents \u2014 links, borders, focus states
|
|
180
|
+
- Deploy \`rgba(255, 255, 255, 0.1)\` for frosted glass surfaces on dark backgrounds
|
|
181
|
+
- Maintain GT Walsheim at weight 500 only \u2014 the medium weight IS the brand
|
|
182
|
+
- Use extensive OpenType features on Inter text (cv01, cv05, cv09, cv11, ss03, ss07)
|
|
183
|
+
- Let product screenshots be the visual centerpiece \u2014 the tool markets itself
|
|
184
|
+
- Apply blue ring shadows (\`rgba(0, 153, 255, 0.15) 0px 0px 0px 1px\`) for card containment
|
|
185
|
+
|
|
186
|
+
### Don't
|
|
187
|
+
- Use warm dark backgrounds (no \`#1a1a1a\`, \`#2d2d2d\`, or brownish blacks)
|
|
188
|
+
- Apply bold (700+) weight to GT Walsheim display text \u2014 medium 500 only
|
|
189
|
+
- Introduce additional accent colors beyond Framer Blue \u2014 this is a one-accent-color system
|
|
190
|
+
- Use large border-radius on non-interactive elements (cards use 10px\u201315px, only buttons get 40px+)
|
|
191
|
+
- Add decorative imagery, illustrations, or icons \u2014 the product IS the illustration
|
|
192
|
+
- Use positive letter-spacing on headlines \u2014 everything is compressed, negative tracking
|
|
193
|
+
- Create heavy drop shadows \u2014 depth is communicated through subtle rings and minimal ambients
|
|
194
|
+
- Place light/white backgrounds behind content sections \u2014 the void is sacred
|
|
195
|
+
- Use serif or display-weight fonts \u2014 the system is geometric sans-serif only
|
|
196
|
+
|
|
197
|
+
## 8. Responsive Behavior
|
|
198
|
+
|
|
199
|
+
### Breakpoints
|
|
200
|
+
| Name | Width | Key Changes |
|
|
201
|
+
|------|-------|-------------|
|
|
202
|
+
| Mobile | <809px | Single column, stacked feature sections, reduced hero text (62px\u219240px), hamburger nav |
|
|
203
|
+
| Tablet | 809px\u20131199px | 2-column features begin, nav links partially visible, screenshots scale down |
|
|
204
|
+
| Desktop | >1199px | Full layout, expanded nav with all links + CTA, 110px display hero, side-by-side features |
|
|
205
|
+
|
|
206
|
+
### Touch Targets
|
|
207
|
+
- Pill buttons: minimum 40px height with 10px vertical padding \u2014 exceeds 44px WCAG minimum
|
|
208
|
+
- Nav links: 15px text with generous padding for touch accessibility
|
|
209
|
+
- Mobile CTA buttons: Full-width pills on mobile for easy thumb reach
|
|
210
|
+
|
|
211
|
+
### Collapsing Strategy
|
|
212
|
+
- **Navigation**: Full horizontal nav \u2192 hamburger menu at mobile breakpoint
|
|
213
|
+
- **Hero text**: 110px display \u2192 85px \u2192 62px \u2192 ~40px across breakpoints, maintaining extreme negative tracking proportionally
|
|
214
|
+
- **Feature sections**: Side-by-side (text + screenshot) \u2192 stacked vertically on mobile
|
|
215
|
+
- **Product screenshots**: Scale responsively within containers, maintaining aspect ratios
|
|
216
|
+
- **Section spacing**: Reduces proportionally \u2014 120px desktop \u2192 60px mobile
|
|
217
|
+
|
|
218
|
+
### Image Behavior
|
|
219
|
+
- Product screenshots are responsive, scaling within their container boundaries
|
|
220
|
+
- No art direction changes \u2014 same crops across breakpoints
|
|
221
|
+
- Dark background ensures screenshots maintain visual impact at any size
|
|
222
|
+
- Screenshots lazy-load as user scrolls into view
|
|
223
|
+
|
|
224
|
+
## 9. Agent Prompt Guide
|
|
225
|
+
|
|
226
|
+
### Quick Color Reference
|
|
227
|
+
- Primary Background: Void Black (\`#000000\`)
|
|
228
|
+
- Primary Text: Pure White (\`#ffffff\`)
|
|
229
|
+
- Accent/CTA: Framer Blue (\`#0099ff\`)
|
|
230
|
+
- Secondary Text: Muted Silver (\`#a6a6a6\`)
|
|
231
|
+
- Frosted Surface: Translucent White (\`rgba(255, 255, 255, 0.1)\`)
|
|
232
|
+
- Elevation Ring: Blue Glow (\`rgba(0, 153, 255, 0.15)\`)
|
|
233
|
+
|
|
234
|
+
### Example Component Prompts
|
|
235
|
+
- "Create a hero section on pure black background with 110px GT Walsheim heading in white, letter-spacing -5.5px, line-height 0.85, and a pill-shaped white CTA button (100px radius) with black text"
|
|
236
|
+
- "Design a feature card on black background with a 1px Framer Blue ring shadow border (rgba(0,153,255,0.15)), 12px border-radius, white heading in Inter at 22px weight 700, and muted silver (a6a6a6) body text"
|
|
237
|
+
- "Build a navigation bar with black background, white Inter text links at 15px, and a frosted pill button (rgba(255,255,255,0.1) background, 40px radius) as the CTA"
|
|
238
|
+
- "Create a product showcase section with a full-width screenshot embedded on black, 10px border-radius, subtle multi-layer shadow (white 0.5px top highlight + rgba(0,0,0,0.25) 30px ambient)"
|
|
239
|
+
- "Design a pricing card using pure black surface, Framer Blue (#0099ff) accent for the selected plan border, white text hierarchy (24px Inter bold heading, 14px regular body), and a solid white pill CTA button"
|
|
240
|
+
|
|
241
|
+
### Iteration Guide
|
|
242
|
+
When refining existing screens generated with this design system:
|
|
243
|
+
1. Focus on ONE component at a time \u2014 the dark canvas makes each element precious
|
|
244
|
+
2. Always verify letter-spacing on GT Walsheim headings \u2014 the extreme negative tracking is non-negotiable
|
|
245
|
+
3. Check that Framer Blue appears ONLY on interactive elements \u2014 never as decorative background or text color for non-links
|
|
246
|
+
4. Ensure all buttons are pill-shaped \u2014 any squared corner immediately breaks the Framer aesthetic
|
|
247
|
+
5. Test frosted glass surfaces by checking they have exactly \`rgba(255, 255, 255, 0.1)\` \u2014 too opaque looks like a bug, too transparent disappears
|
|
248
|
+
`;
|
|
249
|
+
export {
|
|
250
|
+
framerBrief
|
|
251
|
+
};
|
|
252
|
+
//# sourceMappingURL=framer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/presets/_briefs/framer.ts"],"sourcesContent":["// AUTO-GENERATED — do not hand-edit. Source: https://github.com/voltagent/awesome-design-md\nexport const framerBrief = `# Design System Inspired by Framer\n\n## 1. Visual Theme & Atmosphere\n\nFramer's website is a cinematic, tool-obsessed dark canvas that radiates the confidence of a design tool built by designers who worship craft. The entire experience is drenched in pure black — not a warm charcoal or a cozy dark gray, but an absolute void (\\`#000000\\`) that makes every element, every screenshot, every typographic flourish feel like it's floating in deep space. This is a website that treats its own product UI as the hero art, embedding full-fidelity screenshots and interactive demos directly into the narrative flow.\n\nThe typography is the signature move: GT Walsheim with aggressively tight letter-spacing (as extreme as -5.5px on 110px display text) creates headlines that feel compressed, kinetic, almost spring-loaded — like words under pressure that might expand at any moment. The transition to Inter for body text is seamless, with extensive OpenType feature usage (\\`cv01\\`, \\`cv05\\`, \\`cv09\\`, \\`cv11\\`, \\`ss03\\`, \\`ss07\\`) that gives even small text a refined, custom feel. Framer Blue (\\`#0099ff\\`) is deployed sparingly but decisively — as link color, border accents, and subtle ring shadows — creating a cold, electric throughline against the warm-less black.\n\nThe overall effect is a nightclub for web designers: dark, precise, seductive, and unapologetically product-forward. Every section exists to showcase what the tool can do, with the website itself serving as proof of concept.\n\n**Key Characteristics:**\n- Pure black (\\`#000000\\`) void canvas — absolute dark, not warm or gray-tinted\n- GT Walsheim display font with extreme negative letter-spacing (-5.5px at 110px)\n- Framer Blue (\\`#0099ff\\`) as the sole accent color — cold, electric, precise\n- Pill-shaped buttons (40px–100px radius) — no sharp corners on interactive elements\n- Product screenshots as hero art — the tool IS the marketing\n- Frosted glass button variants using \\`rgba(255, 255, 255, 0.1)\\` on dark surfaces\n- Extensive OpenType feature usage across Inter for refined micro-typography\n\n## 2. Color Palette & Roles\n\n### Primary\n- **Pure Black** (\\`#000000\\`): Primary background, the void canvas that defines Framer's dark-first identity\n- **Pure White** (\\`#ffffff\\`): Primary text color on dark surfaces, button text on accent backgrounds\n- **Framer Blue** (\\`#0099ff\\`): Primary accent color — links, borders, ring shadows, interactive highlights\n\n### Secondary & Accent\n- **Muted Silver** (\\`#a6a6a6\\`): Secondary text, subdued labels, dimmed descriptions on dark surfaces\n- **Near Black** (\\`#090909\\`): Elevated dark surface, shadow ring color for subtle depth separation\n\n### Surface & Background\n- **Void Black** (\\`#000000\\`): Page background, primary canvas\n- **Frosted White** (\\`rgba(255, 255, 255, 0.1)\\`): Translucent button backgrounds, glass-effect surfaces on dark\n- **Subtle White** (\\`rgba(255, 255, 255, 0.5)\\`): Slightly more opaque frosted elements for hover states\n\n### Neutrals & Text\n- **Pure White** (\\`#ffffff\\`): Heading text, high-emphasis body text\n- **Muted Silver** (\\`#a6a6a6\\`): Body text, descriptions, secondary information\n- **Ghost White** (\\`rgba(255, 255, 255, 0.6)\\`): Tertiary text, placeholders on dark surfaces\n\n### Semantic & Accent\n- **Framer Blue** (\\`#0099ff\\`): Links, interactive borders, focus rings\n- **Blue Glow** (\\`rgba(0, 153, 255, 0.15)\\`): Focus ring shadow, subtle blue halo around interactive elements\n- **Default Link Blue** (\\`#0000ee\\`): Standard browser link color (used sparingly in content areas)\n\n### Gradient System\n- No prominent gradient usage — Framer relies on pure flat black surfaces with occasional blue-tinted glows for depth\n- Subtle radial glow effects behind product screenshots using Framer Blue at very low opacity\n\n## 3. Typography Rules\n\n### Font Family\n- **Display**: \\`GT Walsheim Framer Medium\\` / \\`GT Walsheim Medium\\` — custom geometric sans-serif, weight 500. Fallbacks: \\`GT Walsheim Framer Medium Placeholder\\`, system sans-serif\n- **Body/UI**: \\`Inter Variable\\` / \\`Inter\\` — variable sans-serif with extensive OpenType features. Fallbacks: \\`Inter Placeholder\\`, \\`-apple-system\\`, \\`system-ui\\`\n- **Accent**: \\`Mona Sans\\` — GitHub's open-source font, used for select elements at ultra-light weight (100)\n- **Monospace**: \\`Azeret Mono\\` — companion mono for code and technical labels\n- **Rounded**: \\`Open Runde\\` — small rounded companion font for micro-labels\n\n### Hierarchy\n\n| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |\n|------|------|------|--------|-------------|----------------|-------|\n| Display Hero | GT Walsheim Framer Medium | 110px | 500 | 0.85 | -5.5px | Extreme negative tracking, compressed impact |\n| Section Display | GT Walsheim Medium | 85px | 500 | 0.95 | -4.25px | OpenType: ss02, tnum |\n| Section Heading | GT Walsheim Medium | 62px | 500 | 1.00 | -3.1px | OpenType: ss02 |\n| Feature Heading | GT Walsheim Medium | 32px | 500 | 1.13 | -1px | Tightest of the smaller headings |\n| Accent Display | Mona Sans | 61.5px | 100 | 1.00 | -3.1px | Ultra-light weight, ethereal |\n| Card Title | Inter Variable | 24px | 400 | 1.30 | -0.01px | OpenType: cv01, cv05, cv09, cv11, ss03, ss07 |\n| Feature Title | Inter | 22px | 700 | 1.20 | -0.8px | OpenType: cv05 |\n| Sub-heading | Inter | 20px | 600 | 1.20 | -0.8px | OpenType: cv01, cv09 |\n| Body Large | Inter Variable | 18px | 400 | 1.30 | -0.01px | OpenType: cv01, cv05, cv09, cv11, ss03, ss07 |\n| Body | Inter Variable | 15px | 400 | 1.30 | -0.01px | OpenType: cv11 |\n| Nav/UI | Inter Variable | 15px | 400 | 1.00 | -0.15px | OpenType: cv06, cv11, dlig, ss03 |\n| Body Readable | Inter Framer Regular | 14px | 400 | 1.60 | normal | Long-form body text |\n| Caption | Inter Variable | 14px | 400 | 1.40 | normal | OpenType: cv01, cv06, cv09, cv11, ss03, ss07 |\n| Label | Inter | 13px | 500 | 1.60 | normal | OpenType: cv06, cv11, ss03 |\n| Small Caption | Inter Variable | 12px | 400 | 1.40 | normal | OpenType: cv01, cv06, cv09, cv11, ss03, ss07 |\n| Micro Code | Azeret Mono | 10.4px | 400 | 1.60 | normal | OpenType: cv06, cv11, ss03 |\n| Badge | Open Runde | 9px | 600 | 1.11 | normal | OpenType: cv01, cv09 |\n| Micro Uppercase | Inter Variable | 7px | 400 | 1.00 | 0.21px | uppercase transform |\n\n### Principles\n- **Compression as personality**: GT Walsheim's extreme negative letter-spacing (-5.5px at 110px) is the defining typographic gesture — headlines feel spring-loaded, urgent, almost breathless\n- **OpenType maximalism**: Inter is deployed with 6+ OpenType features simultaneously (\\`cv01\\`, \\`cv05\\`, \\`cv09\\`, \\`cv11\\`, \\`ss03\\`, \\`ss07\\`), creating a subtly custom feel even at body sizes\n- **Weight restraint on display**: All GT Walsheim usage is weight 500 (medium) — never bold, never regular. This creates a confident-but-not-aggressive display tone\n- **Ultra-tight line heights**: Display text at 0.85 line-height means letters nearly overlap vertically — intentional density that rewards reading at arm's length\n\n## 4. Component Stylings\n\n### Buttons\n- **Frosted Pill**: \\`rgba(255, 255, 255, 0.1)\\` background, black text (\\`#000000\\`), pill shape (40px radius). The glass-effect button that lives on dark surfaces — translucent, ambient, subtle\n- **Solid White Pill**: \\`rgb(255, 255, 255)\\` background, black text (\\`#000000\\`), full pill shape (100px radius), padding \\`10px 15px\\`. The primary CTA — clean, high-contrast on dark, unmissable\n- **Ghost**: No visible background, white text, relies on text styling alone. Hover reveals subtle frosted background\n- **Transition**: Scale-based animations (matrix transform with 0.85 scale factor), opacity transitions for reveal effects\n\n### Cards & Containers\n- **Dark Surface Card**: Black or near-black (\\`#090909\\`) background, \\`rgba(0, 153, 255, 0.15) 0px 0px 0px 1px\\` blue ring shadow border, rounded corners (10px–15px radius)\n- **Elevated Card**: Multi-layer shadow — \\`rgba(255, 255, 255, 0.1) 0px 0.5px 0px 0.5px\\` (subtle top highlight) + \\`rgba(0, 0, 0, 0.25) 0px 10px 30px\\` (deep ambient shadow)\n- **Product Screenshots**: Full-width or padded within dark containers, 8px–12px border-radius for software UI previews\n- **Hover**: Subtle glow increase on Framer Blue ring shadow, or brightness shift on frosted surfaces\n\n### Inputs & Forms\n- Minimal form presence on the marketing site\n- Input fields follow dark theme: dark background, subtle border, white text\n- Focus state: Framer Blue (\\`#0099ff\\`) ring border, \\`1px solid #0099ff\\`\n- Placeholder text in \\`rgba(255, 255, 255, 0.4)\\`\n\n### Navigation\n- **Dark floating nav bar**: Black background with frosted glass effect, white text links\n- **Nav links**: Inter at 15px, weight 400, white text with subtle hover opacity change\n- **CTA button**: Pill-shaped, white or frosted, positioned at right end of nav\n- **Mobile**: Collapses to hamburger menu, maintains dark theme\n- **Sticky behavior**: Nav remains fixed at top on scroll\n\n### Image Treatment\n- **Product screenshots as hero art**: Full-width embedded UI screenshots with rounded corners (8px–12px)\n- **Dark-on-dark composition**: Screenshots placed on black backgrounds with subtle shadow for depth separation\n- **16:9 and custom aspect ratios**: Product demos fill their containers\n- **No decorative imagery**: All images are functional — showing the tool, the output, or the workflow\n\n### Trust & Social Proof\n- Customer logos and testimonials in muted gray on dark surfaces\n- Minimal ornamentation — the product screenshots serve as the trust signal\n\n## 5. Layout Principles\n\n### Spacing System\n- **Base unit**: 8px\n- **Scale**: 1px, 2px, 3px, 4px, 5px, 6px, 8px, 10px, 12px, 15px, 20px, 30px, 35px\n- **Section padding**: Large vertical spacing (80px–120px between sections)\n- **Card padding**: 15px–30px internal padding\n- **Component gaps**: 8px–20px between related elements\n\n### Grid & Container\n- **Max width**: ~1200px container, centered\n- **Column patterns**: Full-width hero, 2-column feature sections, single-column product showcases\n- **Asymmetric layouts**: Feature sections often pair text (40%) with screenshot (60%)\n\n### Whitespace Philosophy\n- **Breathe through darkness**: Generous vertical spacing between sections — the black background means whitespace manifests as void, creating dramatic pauses between content blocks\n- **Dense within, spacious between**: Individual components are tightly composed (tight line-heights, compressed text) but float in generous surrounding space\n- **Product-first density**: Screenshot areas are allowed to be dense and information-rich, contrasting with the sparse marketing text\n\n### Border Radius Scale\n- **1px**: Micro-elements, nearly squared precision edges\n- **5px–7px**: Small UI elements, image thumbnails — subtly softened\n- **8px**: Standard component radius — code blocks, buttons, interactive elements\n- **10px–12px**: Cards, product screenshots — comfortably rounded\n- **15px–20px**: Large containers, feature cards — generously rounded\n- **30px–40px**: Navigation pills, pagination — noticeably rounded\n- **100px**: Full pill shape — primary CTAs, tag elements\n\n## 6. Depth & Elevation\n\n| Level | Treatment | Use |\n|-------|-----------|-----|\n| Level 0 (Flat) | No shadow, pure black surface | Page background, empty areas |\n| Level 1 (Ring) | \\`rgba(0, 153, 255, 0.15) 0px 0px 0px 1px\\` | Card borders, interactive element outlines — Framer Blue glow ring |\n| Level 2 (Contained) | \\`rgb(9, 9, 9) 0px 0px 0px 2px\\` | Near-black ring for subtle containment on dark surfaces |\n| Level 3 (Floating) | \\`rgba(255, 255, 255, 0.1) 0px 0.5px 0px 0.5px, rgba(0, 0, 0, 0.25) 0px 10px 30px\\` | Elevated cards, floating elements — subtle white top-edge highlight + deep ambient shadow |\n\n### Shadow Philosophy\nFramer's elevation system is inverted from traditional light-theme designs. Instead of darker shadows on light backgrounds, Framer uses:\n- **Blue-tinted ring shadows** at very low opacity (0.15) for containment — a signature move that subtly brands every bordered element\n- **White edge highlights** (0.5px) on the top edge of elevated elements — simulating light hitting the top surface\n- **Deep ambient shadows** for true floating elements — \\`rgba(0, 0, 0, 0.25)\\` at large spread (30px)\n\n### Decorative Depth\n- **Blue glow auras**: Subtle Framer Blue (\\`#0099ff\\`) radial gradients behind key interactive areas\n- **No background blur/glassmorphism**: Despite the frosted button effect, there's no heavy glass blur usage — the translucency is achieved through simple rgba opacity\n\n## 7. Do's and Don'ts\n\n### Do\n- Use pure black (\\`#000000\\`) as the primary background — not dark gray, not charcoal\n- Apply extreme negative letter-spacing on GT Walsheim display text (-3px to -5.5px)\n- Keep all buttons pill-shaped (40px+ radius) — never use squared or slightly-rounded buttons\n- Use Framer Blue (\\`#0099ff\\`) exclusively for interactive accents — links, borders, focus states\n- Deploy \\`rgba(255, 255, 255, 0.1)\\` for frosted glass surfaces on dark backgrounds\n- Maintain GT Walsheim at weight 500 only — the medium weight IS the brand\n- Use extensive OpenType features on Inter text (cv01, cv05, cv09, cv11, ss03, ss07)\n- Let product screenshots be the visual centerpiece — the tool markets itself\n- Apply blue ring shadows (\\`rgba(0, 153, 255, 0.15) 0px 0px 0px 1px\\`) for card containment\n\n### Don't\n- Use warm dark backgrounds (no \\`#1a1a1a\\`, \\`#2d2d2d\\`, or brownish blacks)\n- Apply bold (700+) weight to GT Walsheim display text — medium 500 only\n- Introduce additional accent colors beyond Framer Blue — this is a one-accent-color system\n- Use large border-radius on non-interactive elements (cards use 10px–15px, only buttons get 40px+)\n- Add decorative imagery, illustrations, or icons — the product IS the illustration\n- Use positive letter-spacing on headlines — everything is compressed, negative tracking\n- Create heavy drop shadows — depth is communicated through subtle rings and minimal ambients\n- Place light/white backgrounds behind content sections — the void is sacred\n- Use serif or display-weight fonts — the system is geometric sans-serif only\n\n## 8. Responsive Behavior\n\n### Breakpoints\n| Name | Width | Key Changes |\n|------|-------|-------------|\n| Mobile | <809px | Single column, stacked feature sections, reduced hero text (62px→40px), hamburger nav |\n| Tablet | 809px–1199px | 2-column features begin, nav links partially visible, screenshots scale down |\n| Desktop | >1199px | Full layout, expanded nav with all links + CTA, 110px display hero, side-by-side features |\n\n### Touch Targets\n- Pill buttons: minimum 40px height with 10px vertical padding — exceeds 44px WCAG minimum\n- Nav links: 15px text with generous padding for touch accessibility\n- Mobile CTA buttons: Full-width pills on mobile for easy thumb reach\n\n### Collapsing Strategy\n- **Navigation**: Full horizontal nav → hamburger menu at mobile breakpoint\n- **Hero text**: 110px display → 85px → 62px → ~40px across breakpoints, maintaining extreme negative tracking proportionally\n- **Feature sections**: Side-by-side (text + screenshot) → stacked vertically on mobile\n- **Product screenshots**: Scale responsively within containers, maintaining aspect ratios\n- **Section spacing**: Reduces proportionally — 120px desktop → 60px mobile\n\n### Image Behavior\n- Product screenshots are responsive, scaling within their container boundaries\n- No art direction changes — same crops across breakpoints\n- Dark background ensures screenshots maintain visual impact at any size\n- Screenshots lazy-load as user scrolls into view\n\n## 9. Agent Prompt Guide\n\n### Quick Color Reference\n- Primary Background: Void Black (\\`#000000\\`)\n- Primary Text: Pure White (\\`#ffffff\\`)\n- Accent/CTA: Framer Blue (\\`#0099ff\\`)\n- Secondary Text: Muted Silver (\\`#a6a6a6\\`)\n- Frosted Surface: Translucent White (\\`rgba(255, 255, 255, 0.1)\\`)\n- Elevation Ring: Blue Glow (\\`rgba(0, 153, 255, 0.15)\\`)\n\n### Example Component Prompts\n- \"Create a hero section on pure black background with 110px GT Walsheim heading in white, letter-spacing -5.5px, line-height 0.85, and a pill-shaped white CTA button (100px radius) with black text\"\n- \"Design a feature card on black background with a 1px Framer Blue ring shadow border (rgba(0,153,255,0.15)), 12px border-radius, white heading in Inter at 22px weight 700, and muted silver (a6a6a6) body text\"\n- \"Build a navigation bar with black background, white Inter text links at 15px, and a frosted pill button (rgba(255,255,255,0.1) background, 40px radius) as the CTA\"\n- \"Create a product showcase section with a full-width screenshot embedded on black, 10px border-radius, subtle multi-layer shadow (white 0.5px top highlight + rgba(0,0,0,0.25) 30px ambient)\"\n- \"Design a pricing card using pure black surface, Framer Blue (#0099ff) accent for the selected plan border, white text hierarchy (24px Inter bold heading, 14px regular body), and a solid white pill CTA button\"\n\n### Iteration Guide\nWhen refining existing screens generated with this design system:\n1. Focus on ONE component at a time — the dark canvas makes each element precious\n2. Always verify letter-spacing on GT Walsheim headings — the extreme negative tracking is non-negotiable\n3. Check that Framer Blue appears ONLY on interactive elements — never as decorative background or text color for non-links\n4. Ensure all buttons are pill-shaped — any squared corner immediately breaks the Framer aesthetic\n5. Test frosted glass surfaces by checking they have exactly \\`rgba(255, 255, 255, 0.1)\\` — too opaque looks like a bug, too transparent disappears\n`;\n"],"mappings":";AACO,IAAM,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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 hashicorpBrief = "# Design System Inspired by HashiCorp\n\n## 1. Visual Theme & Atmosphere\n\nHashiCorp's website is enterprise infrastructure made tangible \u2014 a design system that must communicate the complexity of cloud infrastructure management while remaining approachable. The visual language splits between two modes: a clean white light-mode for informational sections and a dramatic dark-mode (`#15181e`, `#0d0e12`) for hero areas and product showcases, creating a day/night duality that mirrors the \"build in light, deploy in dark\" developer workflow.\n\nThe typography is anchored by a custom brand font (HashiCorp Sans, loaded as `__hashicorpSans_96f0ca`) that carries substantial weight \u2014 literally. Headings use 600\u2013700 weights with tight line-heights (1.17\u20131.19), creating dense, authoritative text blocks that communicate enterprise confidence. The hero headline at 82px weight 600 with OpenType `\"kern\"` enabled is not decorative \u2014 it's infrastructure-grade typography.\n\nWhat distinguishes HashiCorp is its multi-product color system. Each product in the portfolio has its own brand color \u2014 Terraform purple (`#7b42bc`), Vault yellow (`#ffcf25`), Waypoint teal (`#14c6cb`), Vagrant blue (`#1868f2`) \u2014 and these colors appear throughout as accent tokens via a CSS custom property system (`--mds-color-*`). This creates a design system within a design system: the parent brand is black-and-white with blue accents, while each child product injects its own chromatic identity.\n\nThe component system uses the `mds` (Markdown Design System) prefix, indicating a systematic, token-driven approach where colors, spacing, and states are all managed through CSS variables. Shadows are remarkably subtle \u2014 dual-layer micro-shadows using `rgba(97, 104, 117, 0.05)` that are nearly invisible but provide just enough depth to separate interactive surfaces from the background.\n\n**Key Characteristics:**\n- Dual-mode: clean white sections + dramatic dark (`#15181e`) hero/product areas\n- Custom HashiCorp Sans font with 600\u2013700 weights and `\"kern\"` feature\n- Multi-product color system via `--mds-color-*` CSS custom properties\n- Product brand colors: Terraform purple, Vault yellow, Waypoint teal, Vagrant blue\n- Uppercase letter-spaced captions (13px, weight 600, 1.3px letter-spacing)\n- Micro-shadows: dual-layer at 0.05 opacity \u2014 depth through whisper, not shout\n- Token-driven `mds` component system with semantic variable names\n- Tight border radius: 2px\u20138px, nothing pill-shaped or circular\n- System-ui fallback stack for secondary text\n\n## 2. Color Palette & Roles\n\n### Brand Primary\n- **Black** (`#000000`): Primary brand color, text on light surfaces, `--mds-color-hcp-brand`\n- **Dark Charcoal** (`#15181e`): Dark mode backgrounds, hero sections\n- **Near Black** (`#0d0e12`): Deepest dark mode surface, form inputs on dark\n\n### Neutral Scale\n- **Light Gray** (`#f1f2f3`): Light backgrounds, subtle surfaces\n- **Mid Gray** (`#d5d7db`): Borders, button text on dark\n- **Cool Gray** (`#b2b6bd`): Border accents (at 0.1\u20130.4 opacity)\n- **Dark Gray** (`#656a76`): Helper text, secondary labels, `--mds-form-helper-text-color`\n- **Charcoal** (`#3b3d45`): Secondary text on light, button borders\n- **Near White** (`#efeff1`): Primary text on dark surfaces\n\n### Product Brand Colors\n- **Terraform Purple** (`#7b42bc`): `--mds-color-terraform-button-background`\n- **Vault Yellow** (`#ffcf25`): `--mds-color-vault-button-background`\n- **Waypoint Teal** (`#14c6cb`): `--mds-color-waypoint-button-background-focus`\n- **Waypoint Teal Hover** (`#12b6bb`): `--mds-color-waypoint-button-background-hover`\n- **Vagrant Blue** (`#1868f2`): `--mds-color-vagrant-brand`\n- **Purple Accent** (`#911ced`): `--mds-color-palette-purple-300`\n- **Visited Purple** (`#a737ff`): `--mds-color-foreground-action-visited`\n\n### Semantic Colors\n- **Action Blue** (`#1060ff`): Primary action links on dark\n- **Link Blue** (`#2264d6`): Primary links on light\n- **Bright Blue** (`#2b89ff`): Active links, hover accent\n- **Amber** (`#bb5a00`): `--mds-color-palette-amber-200`, warning states\n- **Amber Light** (`#fbeabf`): `--mds-color-palette-amber-100`, warning backgrounds\n- **Vault Faint Yellow** (`#fff9cf`): `--mds-color-vault-radar-gradient-faint-stop`\n- **Orange** (`#a9722e`): `--mds-color-unified-core-orange-6`\n- **Red** (`#731e25`): `--mds-color-unified-core-red-7`, error states\n- **Navy** (`#101a59`): `--mds-color-unified-core-blue-7`\n\n### Shadows\n- **Micro Shadow** (`rgba(97, 104, 117, 0.05) 0px 1px 1px, rgba(97, 104, 117, 0.05) 0px 2px 2px`): Default card/button elevation\n- **Focus Outline**: `3px solid var(--mds-color-focus-action-external)` \u2014 systematic focus ring\n\n## 3. Typography Rules\n\n### Font Families\n- **Primary Brand**: `__hashicorpSans_96f0ca` (HashiCorp Sans), with fallback: `__hashicorpSans_Fallback_96f0ca`\n- **System UI**: `system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial`\n\n### Hierarchy\n\n| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |\n|------|------|------|--------|-------------|----------------|-------|\n| Display Hero | HashiCorp Sans | 82px (5.13rem) | 600 | 1.17 (tight) | normal | `\"kern\"` enabled |\n| Section Heading | HashiCorp Sans | 52px (3.25rem) | 600 | 1.19 (tight) | normal | `\"kern\"` enabled |\n| Feature Heading | HashiCorp Sans | 42px (2.63rem) | 700 | 1.19 (tight) | -0.42px | Negative tracking |\n| Sub-heading | HashiCorp Sans | 34px (2.13rem) | 600\u2013700 | 1.18 (tight) | normal | Feature blocks |\n| Card Title | HashiCorp Sans | 26px (1.63rem) | 700 | 1.19 (tight) | normal | Card and panel headings |\n| Small Title | HashiCorp Sans | 19px (1.19rem) | 700 | 1.21 (tight) | normal | Compact headings |\n| Body Emphasis | HashiCorp Sans | 17px (1.06rem) | 600\u2013700 | 1.18\u20131.35 | normal | Bold body text |\n| Body Large | system-ui | 20px (1.25rem) | 400\u2013600 | 1.50 | normal | Hero descriptions |\n| Body | system-ui | 16px (1.00rem) | 400\u2013500 | 1.63\u20131.69 (relaxed) | normal | Standard body text |\n| Nav Link | system-ui | 15px (0.94rem) | 500 | 1.60 (relaxed) | normal | Navigation items |\n| Small Body | system-ui | 14px (0.88rem) | 400\u2013500 | 1.29\u20131.71 | normal | Secondary content |\n| Caption | system-ui | 13px (0.81rem) | 400\u2013500 | 1.23\u20131.69 | normal | Metadata, footer links |\n| Uppercase Label | HashiCorp Sans | 13px (0.81rem) | 600 | 1.69 (relaxed) | 1.3px | `text-transform: uppercase` |\n\n### Principles\n- **Brand/System split**: HashiCorp Sans for headings and brand-critical text; system-ui for body, navigation, and functional text. The brand font carries the weight, system-ui carries the words.\n- **Kern always on**: All HashiCorp Sans text enables OpenType `\"kern\"` \u2014 letterfitting is non-negotiable.\n- **Tight headings**: Every heading uses 1.17\u20131.21 line-height, creating dense, stacked text blocks that feel infrastructural \u2014 solid, load-bearing.\n- **Relaxed body**: Body text uses 1.50\u20131.69 line-height (notably generous), creating comfortable reading rhythm beneath the dense headings.\n- **Uppercase labels as wayfinding**: 13px uppercase with 1.3px letter-spacing serves as the systematic category/section marker \u2014 always HashiCorp Sans weight 600.\n\n## 4. Component Stylings\n\n### Buttons\n\n**Primary Dark**\n- Background: `#15181e`\n- Text: `#d5d7db`\n- Padding: 9px 9px 9px 15px (asymmetric, more left padding)\n- Radius: 5px\n- Border: `1px solid rgba(178, 182, 189, 0.4)`\n- Shadow: `rgba(97, 104, 117, 0.05) 0px 1px 1px, rgba(97, 104, 117, 0.05) 0px 2px 2px`\n- Focus: `3px solid var(--mds-color-focus-action-external)`\n- Hover: uses `--mds-color-surface-interactive` token\n\n**Secondary White**\n- Background: `#ffffff`\n- Text: `#3b3d45`\n- Padding: 8px 12px\n- Radius: 4px\n- Hover: `--mds-color-surface-interactive` + low-shadow elevation\n- Focus: `3px solid transparent` outline\n- Clean, minimal appearance\n\n**Product-Colored Buttons**\n- Terraform: background `#7b42bc`\n- Vault: background `#ffcf25` (dark text)\n- Waypoint: background `#14c6cb`, hover `#12b6bb`\n- Each product button follows the same structural pattern but uses its brand color\n\n### Badges / Pills\n- Background: `#42225b` (deep purple)\n- Text: `#efeff1`\n- Padding: 3px 7px\n- Radius: 5px\n- Border: `1px solid rgb(180, 87, 255)`\n- Font: 16px\n\n### Inputs\n\n**Text Input (Dark Mode)**\n- Background: `#0d0e12`\n- Text: `#efeff1`\n- Border: `1px solid rgb(97, 104, 117)`\n- Padding: 11px\n- Radius: 5px\n- Focus: `3px solid var(--mds-color-focus-action-external)` outline\n\n**Checkbox**\n- Background: `#0d0e12`\n- Border: `1px solid rgb(97, 104, 117)`\n- Radius: 3px\n\n### Links\n- **Action Blue on Light**: `#2264d6`, hover \u2192 blue-600 variable, underline on hover\n- **Action Blue on Dark**: `#1060ff` or `#2b89ff`, underline on hover\n- **White on Dark**: `#ffffff`, transparent underline \u2192 visible underline on hover\n- **Neutral on Light**: `#3b3d45`, transparent underline \u2192 visible underline on hover\n- **Light on Dark**: `#efeff1`, similar hover pattern\n- All links use `var(--wpl-blue-600)` as hover color\n\n### Cards & Containers\n- Light mode: white background, micro-shadow elevation\n- Dark mode: `#15181e` or darker surfaces\n- Radius: 8px for cards and containers\n- Product showcase cards with gradient borders or accent lighting\n\n### Navigation\n- Clean horizontal nav with mega-menu dropdowns\n- HashiCorp logo left-aligned\n- system-ui 15px weight 500 for links\n- Product categories organized by lifecycle management group\n- \"Get started\" and \"Contact us\" CTAs in header\n- Dark mode variant for hero sections\n\n## 5. Layout Principles\n\n### Spacing System\n- Base unit: 8px\n- Scale: 2px, 3px, 4px, 6px, 7px, 8px, 9px, 11px, 12px, 16px, 20px, 24px, 32px, 40px, 48px\n\n### Grid & Container\n- Max content width: ~1150px (xl breakpoint)\n- Full-width dark hero sections with contained content\n- Card grids: 2\u20133 column layouts\n- Generous horizontal padding at desktop scale\n\n### Breakpoints\n| Name | Width | Key Changes |\n|------|-------|-------------|\n| Mobile Small | <375px | Tight single column |\n| Mobile | 375\u2013480px | Standard mobile |\n| Small Tablet | 480\u2013600px | Minor adjustments |\n| Tablet | 600\u2013768px | 2-column grids begin |\n| Small Desktop | 768\u2013992px | Full nav visible |\n| Desktop | 992\u20131120px | Standard layout |\n| Large Desktop | 1120\u20131440px | Max-width content |\n| Ultra-wide | >1440px | Centered, generous margins |\n\n### Whitespace Philosophy\n- **Enterprise breathing room**: Generous vertical spacing between sections (48px\u201380px+) communicates stability and seriousness.\n- **Dense headings, spacious body**: Tight line-height headings sit above relaxed body text, creating visual \"weight at the top\" of each section.\n- **Dark as canvas**: Dark hero sections use extra vertical padding to let 3D illustrations and gradients breathe.\n\n### Border Radius Scale\n- Minimal (2px): Links, small inline elements\n- Subtle (3px): Checkboxes, small inputs\n- Standard (4px): Secondary buttons\n- Comfortable (5px): Primary buttons, badges, inputs\n- Card (8px): Cards, containers, images\n\n## 6. Depth & Elevation\n\n| Level | Treatment | Use |\n|-------|-----------|-----|\n| Flat (Level 0) | No shadow | Default surfaces, text blocks |\n| Whisper (Level 1) | `rgba(97, 104, 117, 0.05) 0px 1px 1px, rgba(97, 104, 117, 0.05) 0px 2px 2px` | Cards, buttons, interactive surfaces |\n| Focus (Level 2) | `3px solid var(--mds-color-focus-action-external)` outline | Focus rings \u2014 color-matched to context |\n\n**Shadow Philosophy**: HashiCorp uses arguably the subtlest shadow system in modern web design. The dual-layer shadows at 5% opacity are nearly invisible \u2014 they exist not to create visual depth but to signal interactivity. If you can see the shadow, it's too strong. This restraint communicates the enterprise value of stability \u2014 nothing floats, nothing is uncertain.\n\n## 7. Do's and Don'ts\n\n### Do\n- Use HashiCorp Sans for headings and brand text, system-ui for body and UI text\n- Enable `\"kern\"` on all HashiCorp Sans text\n- Use product brand colors ONLY for their respective products (Terraform = purple, Vault = yellow, etc.)\n- Apply uppercase labels at 13px weight 600 with 1.3px letter-spacing for section markers\n- Keep shadows at the \"whisper\" level (0.05 opacity dual-layer)\n- Use the `--mds-color-*` token system for consistent color application\n- Maintain the tight-heading / relaxed-body rhythm (1.17\u20131.21 vs 1.50\u20131.69 line-heights)\n- Use `3px solid` focus outlines for accessibility\n\n### Don't\n- Don't use product brand colors outside their product context (no Terraform purple on Vault content)\n- Don't increase shadow opacity above 0.1 \u2014 the whisper level is intentional\n- Don't use pill-shaped buttons (>8px radius) \u2014 the sharp, minimal radius is structural\n- Don't skip the `\"kern\"` feature on headings \u2014 the font requires it\n- Don't use HashiCorp Sans for small body text \u2014 it's designed for 17px+ heading use\n- Don't mix product colors in the same component \u2014 each product has one color\n- Don't use pure black (`#000000`) for dark backgrounds \u2014 use `#15181e` or `#0d0e12`\n- Don't forget the asymmetric button padding \u2014 9px 9px 9px 15px is intentional\n\n## 8. Responsive Behavior\n\n### Breakpoints\n| Name | Width | Key Changes |\n|------|-------|-------------|\n| Mobile | <768px | Single column, hamburger nav, stacked CTAs |\n| Tablet | 768\u2013992px | 2-column grids, nav begins expanding |\n| Desktop | 992\u20131150px | Full layout, mega-menu nav |\n| Large | >1150px | Max-width centered, generous margins |\n\n### Collapsing Strategy\n- Hero: 82px \u2192 52px \u2192 42px heading sizes\n- Navigation: mega-menu \u2192 hamburger\n- Product cards: 3-column \u2192 2-column \u2192 stacked\n- Dark sections maintain full-width but compress padding\n- Buttons: inline \u2192 full-width stacked on mobile\n\n## 9. Agent Prompt Guide\n\n### Quick Color Reference\n- Light bg: `#ffffff`, `#f1f2f3`\n- Dark bg: `#15181e`, `#0d0e12`\n- Text light: `#000000`, `#3b3d45`\n- Text dark: `#efeff1`, `#d5d7db`\n- Links: `#2264d6` (light), `#1060ff` (dark), `#2b89ff` (active)\n- Helper text: `#656a76`\n- Borders: `rgba(178, 182, 189, 0.4)`, `rgb(97, 104, 117)`\n- Focus: `3px solid` product-appropriate color\n\n### Example Component Prompts\n- \"Create a hero on dark background (#15181e). Headline at 82px HashiCorp Sans weight 600, line-height 1.17, kern enabled, white text. Sub-text at 20px system-ui weight 400, line-height 1.50, #d5d7db text. Two buttons: primary dark (#15181e, 5px radius, 9px 15px padding) and secondary white (#ffffff, 4px radius, 8px 12px padding).\"\n- \"Design a product card: white background, 8px radius, dual-layer shadow at rgba(97,104,117,0.05). Title at 26px HashiCorp Sans weight 700, body at 16px system-ui weight 400 line-height 1.63.\"\n- \"Build an uppercase section label: 13px HashiCorp Sans weight 600, line-height 1.69, letter-spacing 1.3px, text-transform uppercase, #656a76 color.\"\n- \"Create a product-specific CTA button: Terraform \u2192 #7b42bc background, Vault \u2192 #ffcf25 with dark text, Waypoint \u2192 #14c6cb. All: 5px radius, 500 weight text, 16px system-ui.\"\n- \"Design a dark form: #0d0e12 input background, #efeff1 text, 1px solid rgb(97,104,117) border, 5px radius, 11px padding. Focus: 3px solid accent-color outline.\"\n\n### Iteration Guide\n1. Always start with the mode decision: light (white) for informational, dark (#15181e) for hero/product\n2. HashiCorp Sans for headings only (17px+), system-ui for everything else\n3. Shadows are at whisper level (0.05 opacity) \u2014 if visible, reduce\n4. Product colors are sacred \u2014 each product owns exactly one color\n5. Focus rings are always 3px solid, color-matched to product context\n6. Uppercase labels are the systematic wayfinding pattern \u2014 13px, 600, 1.3px tracking\n";
|
|
2
|
+
|
|
3
|
+
export { hashicorpBrief };
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
// src/presets/_briefs/hashicorp.ts
|
|
2
|
+
var hashicorpBrief = `# Design System Inspired by HashiCorp
|
|
3
|
+
|
|
4
|
+
## 1. Visual Theme & Atmosphere
|
|
5
|
+
|
|
6
|
+
HashiCorp's website is enterprise infrastructure made tangible \u2014 a design system that must communicate the complexity of cloud infrastructure management while remaining approachable. The visual language splits between two modes: a clean white light-mode for informational sections and a dramatic dark-mode (\`#15181e\`, \`#0d0e12\`) for hero areas and product showcases, creating a day/night duality that mirrors the "build in light, deploy in dark" developer workflow.
|
|
7
|
+
|
|
8
|
+
The typography is anchored by a custom brand font (HashiCorp Sans, loaded as \`__hashicorpSans_96f0ca\`) that carries substantial weight \u2014 literally. Headings use 600\u2013700 weights with tight line-heights (1.17\u20131.19), creating dense, authoritative text blocks that communicate enterprise confidence. The hero headline at 82px weight 600 with OpenType \`"kern"\` enabled is not decorative \u2014 it's infrastructure-grade typography.
|
|
9
|
+
|
|
10
|
+
What distinguishes HashiCorp is its multi-product color system. Each product in the portfolio has its own brand color \u2014 Terraform purple (\`#7b42bc\`), Vault yellow (\`#ffcf25\`), Waypoint teal (\`#14c6cb\`), Vagrant blue (\`#1868f2\`) \u2014 and these colors appear throughout as accent tokens via a CSS custom property system (\`--mds-color-*\`). This creates a design system within a design system: the parent brand is black-and-white with blue accents, while each child product injects its own chromatic identity.
|
|
11
|
+
|
|
12
|
+
The component system uses the \`mds\` (Markdown Design System) prefix, indicating a systematic, token-driven approach where colors, spacing, and states are all managed through CSS variables. Shadows are remarkably subtle \u2014 dual-layer micro-shadows using \`rgba(97, 104, 117, 0.05)\` that are nearly invisible but provide just enough depth to separate interactive surfaces from the background.
|
|
13
|
+
|
|
14
|
+
**Key Characteristics:**
|
|
15
|
+
- Dual-mode: clean white sections + dramatic dark (\`#15181e\`) hero/product areas
|
|
16
|
+
- Custom HashiCorp Sans font with 600\u2013700 weights and \`"kern"\` feature
|
|
17
|
+
- Multi-product color system via \`--mds-color-*\` CSS custom properties
|
|
18
|
+
- Product brand colors: Terraform purple, Vault yellow, Waypoint teal, Vagrant blue
|
|
19
|
+
- Uppercase letter-spaced captions (13px, weight 600, 1.3px letter-spacing)
|
|
20
|
+
- Micro-shadows: dual-layer at 0.05 opacity \u2014 depth through whisper, not shout
|
|
21
|
+
- Token-driven \`mds\` component system with semantic variable names
|
|
22
|
+
- Tight border radius: 2px\u20138px, nothing pill-shaped or circular
|
|
23
|
+
- System-ui fallback stack for secondary text
|
|
24
|
+
|
|
25
|
+
## 2. Color Palette & Roles
|
|
26
|
+
|
|
27
|
+
### Brand Primary
|
|
28
|
+
- **Black** (\`#000000\`): Primary brand color, text on light surfaces, \`--mds-color-hcp-brand\`
|
|
29
|
+
- **Dark Charcoal** (\`#15181e\`): Dark mode backgrounds, hero sections
|
|
30
|
+
- **Near Black** (\`#0d0e12\`): Deepest dark mode surface, form inputs on dark
|
|
31
|
+
|
|
32
|
+
### Neutral Scale
|
|
33
|
+
- **Light Gray** (\`#f1f2f3\`): Light backgrounds, subtle surfaces
|
|
34
|
+
- **Mid Gray** (\`#d5d7db\`): Borders, button text on dark
|
|
35
|
+
- **Cool Gray** (\`#b2b6bd\`): Border accents (at 0.1\u20130.4 opacity)
|
|
36
|
+
- **Dark Gray** (\`#656a76\`): Helper text, secondary labels, \`--mds-form-helper-text-color\`
|
|
37
|
+
- **Charcoal** (\`#3b3d45\`): Secondary text on light, button borders
|
|
38
|
+
- **Near White** (\`#efeff1\`): Primary text on dark surfaces
|
|
39
|
+
|
|
40
|
+
### Product Brand Colors
|
|
41
|
+
- **Terraform Purple** (\`#7b42bc\`): \`--mds-color-terraform-button-background\`
|
|
42
|
+
- **Vault Yellow** (\`#ffcf25\`): \`--mds-color-vault-button-background\`
|
|
43
|
+
- **Waypoint Teal** (\`#14c6cb\`): \`--mds-color-waypoint-button-background-focus\`
|
|
44
|
+
- **Waypoint Teal Hover** (\`#12b6bb\`): \`--mds-color-waypoint-button-background-hover\`
|
|
45
|
+
- **Vagrant Blue** (\`#1868f2\`): \`--mds-color-vagrant-brand\`
|
|
46
|
+
- **Purple Accent** (\`#911ced\`): \`--mds-color-palette-purple-300\`
|
|
47
|
+
- **Visited Purple** (\`#a737ff\`): \`--mds-color-foreground-action-visited\`
|
|
48
|
+
|
|
49
|
+
### Semantic Colors
|
|
50
|
+
- **Action Blue** (\`#1060ff\`): Primary action links on dark
|
|
51
|
+
- **Link Blue** (\`#2264d6\`): Primary links on light
|
|
52
|
+
- **Bright Blue** (\`#2b89ff\`): Active links, hover accent
|
|
53
|
+
- **Amber** (\`#bb5a00\`): \`--mds-color-palette-amber-200\`, warning states
|
|
54
|
+
- **Amber Light** (\`#fbeabf\`): \`--mds-color-palette-amber-100\`, warning backgrounds
|
|
55
|
+
- **Vault Faint Yellow** (\`#fff9cf\`): \`--mds-color-vault-radar-gradient-faint-stop\`
|
|
56
|
+
- **Orange** (\`#a9722e\`): \`--mds-color-unified-core-orange-6\`
|
|
57
|
+
- **Red** (\`#731e25\`): \`--mds-color-unified-core-red-7\`, error states
|
|
58
|
+
- **Navy** (\`#101a59\`): \`--mds-color-unified-core-blue-7\`
|
|
59
|
+
|
|
60
|
+
### Shadows
|
|
61
|
+
- **Micro Shadow** (\`rgba(97, 104, 117, 0.05) 0px 1px 1px, rgba(97, 104, 117, 0.05) 0px 2px 2px\`): Default card/button elevation
|
|
62
|
+
- **Focus Outline**: \`3px solid var(--mds-color-focus-action-external)\` \u2014 systematic focus ring
|
|
63
|
+
|
|
64
|
+
## 3. Typography Rules
|
|
65
|
+
|
|
66
|
+
### Font Families
|
|
67
|
+
- **Primary Brand**: \`__hashicorpSans_96f0ca\` (HashiCorp Sans), with fallback: \`__hashicorpSans_Fallback_96f0ca\`
|
|
68
|
+
- **System UI**: \`system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial\`
|
|
69
|
+
|
|
70
|
+
### Hierarchy
|
|
71
|
+
|
|
72
|
+
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
|
73
|
+
|------|------|------|--------|-------------|----------------|-------|
|
|
74
|
+
| Display Hero | HashiCorp Sans | 82px (5.13rem) | 600 | 1.17 (tight) | normal | \`"kern"\` enabled |
|
|
75
|
+
| Section Heading | HashiCorp Sans | 52px (3.25rem) | 600 | 1.19 (tight) | normal | \`"kern"\` enabled |
|
|
76
|
+
| Feature Heading | HashiCorp Sans | 42px (2.63rem) | 700 | 1.19 (tight) | -0.42px | Negative tracking |
|
|
77
|
+
| Sub-heading | HashiCorp Sans | 34px (2.13rem) | 600\u2013700 | 1.18 (tight) | normal | Feature blocks |
|
|
78
|
+
| Card Title | HashiCorp Sans | 26px (1.63rem) | 700 | 1.19 (tight) | normal | Card and panel headings |
|
|
79
|
+
| Small Title | HashiCorp Sans | 19px (1.19rem) | 700 | 1.21 (tight) | normal | Compact headings |
|
|
80
|
+
| Body Emphasis | HashiCorp Sans | 17px (1.06rem) | 600\u2013700 | 1.18\u20131.35 | normal | Bold body text |
|
|
81
|
+
| Body Large | system-ui | 20px (1.25rem) | 400\u2013600 | 1.50 | normal | Hero descriptions |
|
|
82
|
+
| Body | system-ui | 16px (1.00rem) | 400\u2013500 | 1.63\u20131.69 (relaxed) | normal | Standard body text |
|
|
83
|
+
| Nav Link | system-ui | 15px (0.94rem) | 500 | 1.60 (relaxed) | normal | Navigation items |
|
|
84
|
+
| Small Body | system-ui | 14px (0.88rem) | 400\u2013500 | 1.29\u20131.71 | normal | Secondary content |
|
|
85
|
+
| Caption | system-ui | 13px (0.81rem) | 400\u2013500 | 1.23\u20131.69 | normal | Metadata, footer links |
|
|
86
|
+
| Uppercase Label | HashiCorp Sans | 13px (0.81rem) | 600 | 1.69 (relaxed) | 1.3px | \`text-transform: uppercase\` |
|
|
87
|
+
|
|
88
|
+
### Principles
|
|
89
|
+
- **Brand/System split**: HashiCorp Sans for headings and brand-critical text; system-ui for body, navigation, and functional text. The brand font carries the weight, system-ui carries the words.
|
|
90
|
+
- **Kern always on**: All HashiCorp Sans text enables OpenType \`"kern"\` \u2014 letterfitting is non-negotiable.
|
|
91
|
+
- **Tight headings**: Every heading uses 1.17\u20131.21 line-height, creating dense, stacked text blocks that feel infrastructural \u2014 solid, load-bearing.
|
|
92
|
+
- **Relaxed body**: Body text uses 1.50\u20131.69 line-height (notably generous), creating comfortable reading rhythm beneath the dense headings.
|
|
93
|
+
- **Uppercase labels as wayfinding**: 13px uppercase with 1.3px letter-spacing serves as the systematic category/section marker \u2014 always HashiCorp Sans weight 600.
|
|
94
|
+
|
|
95
|
+
## 4. Component Stylings
|
|
96
|
+
|
|
97
|
+
### Buttons
|
|
98
|
+
|
|
99
|
+
**Primary Dark**
|
|
100
|
+
- Background: \`#15181e\`
|
|
101
|
+
- Text: \`#d5d7db\`
|
|
102
|
+
- Padding: 9px 9px 9px 15px (asymmetric, more left padding)
|
|
103
|
+
- Radius: 5px
|
|
104
|
+
- Border: \`1px solid rgba(178, 182, 189, 0.4)\`
|
|
105
|
+
- Shadow: \`rgba(97, 104, 117, 0.05) 0px 1px 1px, rgba(97, 104, 117, 0.05) 0px 2px 2px\`
|
|
106
|
+
- Focus: \`3px solid var(--mds-color-focus-action-external)\`
|
|
107
|
+
- Hover: uses \`--mds-color-surface-interactive\` token
|
|
108
|
+
|
|
109
|
+
**Secondary White**
|
|
110
|
+
- Background: \`#ffffff\`
|
|
111
|
+
- Text: \`#3b3d45\`
|
|
112
|
+
- Padding: 8px 12px
|
|
113
|
+
- Radius: 4px
|
|
114
|
+
- Hover: \`--mds-color-surface-interactive\` + low-shadow elevation
|
|
115
|
+
- Focus: \`3px solid transparent\` outline
|
|
116
|
+
- Clean, minimal appearance
|
|
117
|
+
|
|
118
|
+
**Product-Colored Buttons**
|
|
119
|
+
- Terraform: background \`#7b42bc\`
|
|
120
|
+
- Vault: background \`#ffcf25\` (dark text)
|
|
121
|
+
- Waypoint: background \`#14c6cb\`, hover \`#12b6bb\`
|
|
122
|
+
- Each product button follows the same structural pattern but uses its brand color
|
|
123
|
+
|
|
124
|
+
### Badges / Pills
|
|
125
|
+
- Background: \`#42225b\` (deep purple)
|
|
126
|
+
- Text: \`#efeff1\`
|
|
127
|
+
- Padding: 3px 7px
|
|
128
|
+
- Radius: 5px
|
|
129
|
+
- Border: \`1px solid rgb(180, 87, 255)\`
|
|
130
|
+
- Font: 16px
|
|
131
|
+
|
|
132
|
+
### Inputs
|
|
133
|
+
|
|
134
|
+
**Text Input (Dark Mode)**
|
|
135
|
+
- Background: \`#0d0e12\`
|
|
136
|
+
- Text: \`#efeff1\`
|
|
137
|
+
- Border: \`1px solid rgb(97, 104, 117)\`
|
|
138
|
+
- Padding: 11px
|
|
139
|
+
- Radius: 5px
|
|
140
|
+
- Focus: \`3px solid var(--mds-color-focus-action-external)\` outline
|
|
141
|
+
|
|
142
|
+
**Checkbox**
|
|
143
|
+
- Background: \`#0d0e12\`
|
|
144
|
+
- Border: \`1px solid rgb(97, 104, 117)\`
|
|
145
|
+
- Radius: 3px
|
|
146
|
+
|
|
147
|
+
### Links
|
|
148
|
+
- **Action Blue on Light**: \`#2264d6\`, hover \u2192 blue-600 variable, underline on hover
|
|
149
|
+
- **Action Blue on Dark**: \`#1060ff\` or \`#2b89ff\`, underline on hover
|
|
150
|
+
- **White on Dark**: \`#ffffff\`, transparent underline \u2192 visible underline on hover
|
|
151
|
+
- **Neutral on Light**: \`#3b3d45\`, transparent underline \u2192 visible underline on hover
|
|
152
|
+
- **Light on Dark**: \`#efeff1\`, similar hover pattern
|
|
153
|
+
- All links use \`var(--wpl-blue-600)\` as hover color
|
|
154
|
+
|
|
155
|
+
### Cards & Containers
|
|
156
|
+
- Light mode: white background, micro-shadow elevation
|
|
157
|
+
- Dark mode: \`#15181e\` or darker surfaces
|
|
158
|
+
- Radius: 8px for cards and containers
|
|
159
|
+
- Product showcase cards with gradient borders or accent lighting
|
|
160
|
+
|
|
161
|
+
### Navigation
|
|
162
|
+
- Clean horizontal nav with mega-menu dropdowns
|
|
163
|
+
- HashiCorp logo left-aligned
|
|
164
|
+
- system-ui 15px weight 500 for links
|
|
165
|
+
- Product categories organized by lifecycle management group
|
|
166
|
+
- "Get started" and "Contact us" CTAs in header
|
|
167
|
+
- Dark mode variant for hero sections
|
|
168
|
+
|
|
169
|
+
## 5. Layout Principles
|
|
170
|
+
|
|
171
|
+
### Spacing System
|
|
172
|
+
- Base unit: 8px
|
|
173
|
+
- Scale: 2px, 3px, 4px, 6px, 7px, 8px, 9px, 11px, 12px, 16px, 20px, 24px, 32px, 40px, 48px
|
|
174
|
+
|
|
175
|
+
### Grid & Container
|
|
176
|
+
- Max content width: ~1150px (xl breakpoint)
|
|
177
|
+
- Full-width dark hero sections with contained content
|
|
178
|
+
- Card grids: 2\u20133 column layouts
|
|
179
|
+
- Generous horizontal padding at desktop scale
|
|
180
|
+
|
|
181
|
+
### Breakpoints
|
|
182
|
+
| Name | Width | Key Changes |
|
|
183
|
+
|------|-------|-------------|
|
|
184
|
+
| Mobile Small | <375px | Tight single column |
|
|
185
|
+
| Mobile | 375\u2013480px | Standard mobile |
|
|
186
|
+
| Small Tablet | 480\u2013600px | Minor adjustments |
|
|
187
|
+
| Tablet | 600\u2013768px | 2-column grids begin |
|
|
188
|
+
| Small Desktop | 768\u2013992px | Full nav visible |
|
|
189
|
+
| Desktop | 992\u20131120px | Standard layout |
|
|
190
|
+
| Large Desktop | 1120\u20131440px | Max-width content |
|
|
191
|
+
| Ultra-wide | >1440px | Centered, generous margins |
|
|
192
|
+
|
|
193
|
+
### Whitespace Philosophy
|
|
194
|
+
- **Enterprise breathing room**: Generous vertical spacing between sections (48px\u201380px+) communicates stability and seriousness.
|
|
195
|
+
- **Dense headings, spacious body**: Tight line-height headings sit above relaxed body text, creating visual "weight at the top" of each section.
|
|
196
|
+
- **Dark as canvas**: Dark hero sections use extra vertical padding to let 3D illustrations and gradients breathe.
|
|
197
|
+
|
|
198
|
+
### Border Radius Scale
|
|
199
|
+
- Minimal (2px): Links, small inline elements
|
|
200
|
+
- Subtle (3px): Checkboxes, small inputs
|
|
201
|
+
- Standard (4px): Secondary buttons
|
|
202
|
+
- Comfortable (5px): Primary buttons, badges, inputs
|
|
203
|
+
- Card (8px): Cards, containers, images
|
|
204
|
+
|
|
205
|
+
## 6. Depth & Elevation
|
|
206
|
+
|
|
207
|
+
| Level | Treatment | Use |
|
|
208
|
+
|-------|-----------|-----|
|
|
209
|
+
| Flat (Level 0) | No shadow | Default surfaces, text blocks |
|
|
210
|
+
| Whisper (Level 1) | \`rgba(97, 104, 117, 0.05) 0px 1px 1px, rgba(97, 104, 117, 0.05) 0px 2px 2px\` | Cards, buttons, interactive surfaces |
|
|
211
|
+
| Focus (Level 2) | \`3px solid var(--mds-color-focus-action-external)\` outline | Focus rings \u2014 color-matched to context |
|
|
212
|
+
|
|
213
|
+
**Shadow Philosophy**: HashiCorp uses arguably the subtlest shadow system in modern web design. The dual-layer shadows at 5% opacity are nearly invisible \u2014 they exist not to create visual depth but to signal interactivity. If you can see the shadow, it's too strong. This restraint communicates the enterprise value of stability \u2014 nothing floats, nothing is uncertain.
|
|
214
|
+
|
|
215
|
+
## 7. Do's and Don'ts
|
|
216
|
+
|
|
217
|
+
### Do
|
|
218
|
+
- Use HashiCorp Sans for headings and brand text, system-ui for body and UI text
|
|
219
|
+
- Enable \`"kern"\` on all HashiCorp Sans text
|
|
220
|
+
- Use product brand colors ONLY for their respective products (Terraform = purple, Vault = yellow, etc.)
|
|
221
|
+
- Apply uppercase labels at 13px weight 600 with 1.3px letter-spacing for section markers
|
|
222
|
+
- Keep shadows at the "whisper" level (0.05 opacity dual-layer)
|
|
223
|
+
- Use the \`--mds-color-*\` token system for consistent color application
|
|
224
|
+
- Maintain the tight-heading / relaxed-body rhythm (1.17\u20131.21 vs 1.50\u20131.69 line-heights)
|
|
225
|
+
- Use \`3px solid\` focus outlines for accessibility
|
|
226
|
+
|
|
227
|
+
### Don't
|
|
228
|
+
- Don't use product brand colors outside their product context (no Terraform purple on Vault content)
|
|
229
|
+
- Don't increase shadow opacity above 0.1 \u2014 the whisper level is intentional
|
|
230
|
+
- Don't use pill-shaped buttons (>8px radius) \u2014 the sharp, minimal radius is structural
|
|
231
|
+
- Don't skip the \`"kern"\` feature on headings \u2014 the font requires it
|
|
232
|
+
- Don't use HashiCorp Sans for small body text \u2014 it's designed for 17px+ heading use
|
|
233
|
+
- Don't mix product colors in the same component \u2014 each product has one color
|
|
234
|
+
- Don't use pure black (\`#000000\`) for dark backgrounds \u2014 use \`#15181e\` or \`#0d0e12\`
|
|
235
|
+
- Don't forget the asymmetric button padding \u2014 9px 9px 9px 15px is intentional
|
|
236
|
+
|
|
237
|
+
## 8. Responsive Behavior
|
|
238
|
+
|
|
239
|
+
### Breakpoints
|
|
240
|
+
| Name | Width | Key Changes |
|
|
241
|
+
|------|-------|-------------|
|
|
242
|
+
| Mobile | <768px | Single column, hamburger nav, stacked CTAs |
|
|
243
|
+
| Tablet | 768\u2013992px | 2-column grids, nav begins expanding |
|
|
244
|
+
| Desktop | 992\u20131150px | Full layout, mega-menu nav |
|
|
245
|
+
| Large | >1150px | Max-width centered, generous margins |
|
|
246
|
+
|
|
247
|
+
### Collapsing Strategy
|
|
248
|
+
- Hero: 82px \u2192 52px \u2192 42px heading sizes
|
|
249
|
+
- Navigation: mega-menu \u2192 hamburger
|
|
250
|
+
- Product cards: 3-column \u2192 2-column \u2192 stacked
|
|
251
|
+
- Dark sections maintain full-width but compress padding
|
|
252
|
+
- Buttons: inline \u2192 full-width stacked on mobile
|
|
253
|
+
|
|
254
|
+
## 9. Agent Prompt Guide
|
|
255
|
+
|
|
256
|
+
### Quick Color Reference
|
|
257
|
+
- Light bg: \`#ffffff\`, \`#f1f2f3\`
|
|
258
|
+
- Dark bg: \`#15181e\`, \`#0d0e12\`
|
|
259
|
+
- Text light: \`#000000\`, \`#3b3d45\`
|
|
260
|
+
- Text dark: \`#efeff1\`, \`#d5d7db\`
|
|
261
|
+
- Links: \`#2264d6\` (light), \`#1060ff\` (dark), \`#2b89ff\` (active)
|
|
262
|
+
- Helper text: \`#656a76\`
|
|
263
|
+
- Borders: \`rgba(178, 182, 189, 0.4)\`, \`rgb(97, 104, 117)\`
|
|
264
|
+
- Focus: \`3px solid\` product-appropriate color
|
|
265
|
+
|
|
266
|
+
### Example Component Prompts
|
|
267
|
+
- "Create a hero on dark background (#15181e). Headline at 82px HashiCorp Sans weight 600, line-height 1.17, kern enabled, white text. Sub-text at 20px system-ui weight 400, line-height 1.50, #d5d7db text. Two buttons: primary dark (#15181e, 5px radius, 9px 15px padding) and secondary white (#ffffff, 4px radius, 8px 12px padding)."
|
|
268
|
+
- "Design a product card: white background, 8px radius, dual-layer shadow at rgba(97,104,117,0.05). Title at 26px HashiCorp Sans weight 700, body at 16px system-ui weight 400 line-height 1.63."
|
|
269
|
+
- "Build an uppercase section label: 13px HashiCorp Sans weight 600, line-height 1.69, letter-spacing 1.3px, text-transform uppercase, #656a76 color."
|
|
270
|
+
- "Create a product-specific CTA button: Terraform \u2192 #7b42bc background, Vault \u2192 #ffcf25 with dark text, Waypoint \u2192 #14c6cb. All: 5px radius, 500 weight text, 16px system-ui."
|
|
271
|
+
- "Design a dark form: #0d0e12 input background, #efeff1 text, 1px solid rgb(97,104,117) border, 5px radius, 11px padding. Focus: 3px solid accent-color outline."
|
|
272
|
+
|
|
273
|
+
### Iteration Guide
|
|
274
|
+
1. Always start with the mode decision: light (white) for informational, dark (#15181e) for hero/product
|
|
275
|
+
2. HashiCorp Sans for headings only (17px+), system-ui for everything else
|
|
276
|
+
3. Shadows are at whisper level (0.05 opacity) \u2014 if visible, reduce
|
|
277
|
+
4. Product colors are sacred \u2014 each product owns exactly one color
|
|
278
|
+
5. Focus rings are always 3px solid, color-matched to product context
|
|
279
|
+
6. Uppercase labels are the systematic wayfinding pattern \u2014 13px, 600, 1.3px tracking
|
|
280
|
+
`;
|
|
281
|
+
export {
|
|
282
|
+
hashicorpBrief
|
|
283
|
+
};
|
|
284
|
+
//# sourceMappingURL=hashicorp.js.map
|