@hex-core/themes 0.1.1 → 0.2.1
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/README.md +5 -1
- package/dist/chunk-2LU3ENLP.js +68 -0
- package/dist/chunk-2LU3ENLP.js.map +1 -0
- package/dist/chunk-2OH25A4J.js +68 -0
- package/dist/chunk-2OH25A4J.js.map +1 -0
- package/dist/chunk-2SI7O4FQ.js +68 -0
- package/dist/chunk-2SI7O4FQ.js.map +1 -0
- package/dist/chunk-4LQ3BH7F.js +68 -0
- package/dist/chunk-4LQ3BH7F.js.map +1 -0
- package/dist/chunk-4QXKFLEQ.js +68 -0
- package/dist/chunk-4QXKFLEQ.js.map +1 -0
- package/dist/chunk-5BH5ZMDH.js +68 -0
- package/dist/chunk-5BH5ZMDH.js.map +1 -0
- package/dist/chunk-5O65TVZP.js +68 -0
- package/dist/chunk-5O65TVZP.js.map +1 -0
- package/dist/chunk-5TDK4XMA.js +68 -0
- package/dist/chunk-5TDK4XMA.js.map +1 -0
- package/dist/chunk-72IPJZ6V.js +68 -0
- package/dist/chunk-72IPJZ6V.js.map +1 -0
- package/dist/chunk-73N7YFTY.js +68 -0
- package/dist/chunk-73N7YFTY.js.map +1 -0
- package/dist/chunk-7MPAMAFC.js +68 -0
- package/dist/chunk-7MPAMAFC.js.map +1 -0
- package/dist/chunk-7OAKNGRU.js +68 -0
- package/dist/chunk-7OAKNGRU.js.map +1 -0
- package/dist/chunk-7YP2HHHV.js +68 -0
- package/dist/chunk-7YP2HHHV.js.map +1 -0
- package/dist/chunk-7YPET3HT.js +68 -0
- package/dist/chunk-7YPET3HT.js.map +1 -0
- package/dist/chunk-7ZAFN5WE.js +68 -0
- package/dist/chunk-7ZAFN5WE.js.map +1 -0
- package/dist/chunk-ATBX7KXM.js +68 -0
- package/dist/chunk-ATBX7KXM.js.map +1 -0
- package/dist/chunk-BCLCH6JZ.js +68 -0
- package/dist/chunk-BCLCH6JZ.js.map +1 -0
- package/dist/chunk-BH7IPZBT.js +68 -0
- package/dist/chunk-BH7IPZBT.js.map +1 -0
- package/dist/chunk-BK432RWC.js +68 -0
- package/dist/chunk-BK432RWC.js.map +1 -0
- package/dist/chunk-BMLLM5GC.js +68 -0
- package/dist/chunk-BMLLM5GC.js.map +1 -0
- package/dist/chunk-CEQN6EQY.js +68 -0
- package/dist/chunk-CEQN6EQY.js.map +1 -0
- package/dist/chunk-CFLNGBY5.js +68 -0
- package/dist/chunk-CFLNGBY5.js.map +1 -0
- package/dist/chunk-CTI3W357.js +68 -0
- package/dist/chunk-CTI3W357.js.map +1 -0
- package/dist/chunk-CUO2HNBR.js +68 -0
- package/dist/chunk-CUO2HNBR.js.map +1 -0
- package/dist/chunk-D5JFUYFN.js +68 -0
- package/dist/chunk-D5JFUYFN.js.map +1 -0
- package/dist/chunk-DE2NWOEB.js +68 -0
- package/dist/chunk-DE2NWOEB.js.map +1 -0
- package/dist/chunk-DLLP5KXF.js +68 -0
- package/dist/chunk-DLLP5KXF.js.map +1 -0
- package/dist/chunk-E26YKJRK.js +68 -0
- package/dist/chunk-E26YKJRK.js.map +1 -0
- package/dist/chunk-EV4APPVD.js +528 -0
- package/dist/chunk-EV4APPVD.js.map +1 -0
- package/dist/chunk-EZFP45CP.js +68 -0
- package/dist/chunk-EZFP45CP.js.map +1 -0
- package/dist/chunk-FE2IENES.js +68 -0
- package/dist/chunk-FE2IENES.js.map +1 -0
- package/dist/chunk-FK5WSFAA.js +68 -0
- package/dist/chunk-FK5WSFAA.js.map +1 -0
- package/dist/chunk-G2V6XAJ7.js +68 -0
- package/dist/chunk-G2V6XAJ7.js.map +1 -0
- package/dist/chunk-GAOOBTSH.js +68 -0
- package/dist/chunk-GAOOBTSH.js.map +1 -0
- package/dist/chunk-GAQ6LS55.js +68 -0
- package/dist/chunk-GAQ6LS55.js.map +1 -0
- package/dist/chunk-GSTGBWQZ.js +68 -0
- package/dist/chunk-GSTGBWQZ.js.map +1 -0
- package/dist/chunk-I267MA2D.js +68 -0
- package/dist/chunk-I267MA2D.js.map +1 -0
- package/dist/chunk-I4Z7DY3Z.js +68 -0
- package/dist/chunk-I4Z7DY3Z.js.map +1 -0
- package/dist/chunk-I6H6W42Y.js +68 -0
- package/dist/chunk-I6H6W42Y.js.map +1 -0
- package/dist/chunk-IJBNLZQH.js +68 -0
- package/dist/chunk-IJBNLZQH.js.map +1 -0
- package/dist/chunk-IRDDULX7.js +68 -0
- package/dist/chunk-IRDDULX7.js.map +1 -0
- package/dist/chunk-IXKXYUXQ.js +68 -0
- package/dist/chunk-IXKXYUXQ.js.map +1 -0
- package/dist/chunk-JZEZHM5N.js +68 -0
- package/dist/chunk-JZEZHM5N.js.map +1 -0
- package/dist/chunk-KCI73LIZ.js +68 -0
- package/dist/chunk-KCI73LIZ.js.map +1 -0
- package/dist/chunk-KDS62BXD.js +68 -0
- package/dist/chunk-KDS62BXD.js.map +1 -0
- package/dist/chunk-KLNZW4GO.js +68 -0
- package/dist/chunk-KLNZW4GO.js.map +1 -0
- package/dist/chunk-KXBE5FQ7.js +68 -0
- package/dist/chunk-KXBE5FQ7.js.map +1 -0
- package/dist/chunk-KZDIZ2FL.js +68 -0
- package/dist/chunk-KZDIZ2FL.js.map +1 -0
- package/dist/chunk-LDZC2QYF.js +68 -0
- package/dist/chunk-LDZC2QYF.js.map +1 -0
- package/dist/chunk-LNKOIFH4.js +68 -0
- package/dist/chunk-LNKOIFH4.js.map +1 -0
- package/dist/chunk-MVMZS3PQ.js +68 -0
- package/dist/chunk-MVMZS3PQ.js.map +1 -0
- package/dist/chunk-NIED6GXO.js +68 -0
- package/dist/chunk-NIED6GXO.js.map +1 -0
- package/dist/chunk-NKTZOR54.js +68 -0
- package/dist/chunk-NKTZOR54.js.map +1 -0
- package/dist/chunk-OCQYO6PW.js +68 -0
- package/dist/chunk-OCQYO6PW.js.map +1 -0
- package/dist/chunk-PJAJD5VJ.js +68 -0
- package/dist/chunk-PJAJD5VJ.js.map +1 -0
- package/dist/chunk-PN567MCL.js +68 -0
- package/dist/chunk-PN567MCL.js.map +1 -0
- package/dist/chunk-QEBXRSTH.js +68 -0
- package/dist/chunk-QEBXRSTH.js.map +1 -0
- package/dist/chunk-QTKMLEEM.js +68 -0
- package/dist/chunk-QTKMLEEM.js.map +1 -0
- package/dist/chunk-RN4ZII2I.js +68 -0
- package/dist/chunk-RN4ZII2I.js.map +1 -0
- package/dist/chunk-RTCJ5B7S.js +68 -0
- package/dist/chunk-RTCJ5B7S.js.map +1 -0
- package/dist/chunk-SG2ACM7O.js +68 -0
- package/dist/chunk-SG2ACM7O.js.map +1 -0
- package/dist/chunk-SORTCBSJ.js +68 -0
- package/dist/chunk-SORTCBSJ.js.map +1 -0
- package/dist/chunk-TXY7LBYM.js +68 -0
- package/dist/chunk-TXY7LBYM.js.map +1 -0
- package/dist/chunk-UIS6TMM5.js +68 -0
- package/dist/chunk-UIS6TMM5.js.map +1 -0
- package/dist/chunk-VOXUB4AT.js +68 -0
- package/dist/chunk-VOXUB4AT.js.map +1 -0
- package/dist/chunk-VUSSQAEI.js +68 -0
- package/dist/chunk-VUSSQAEI.js.map +1 -0
- package/dist/chunk-WAU2FYDY.js +68 -0
- package/dist/chunk-WAU2FYDY.js.map +1 -0
- package/dist/chunk-YRGKMQP4.js +68 -0
- package/dist/chunk-YRGKMQP4.js.map +1 -0
- package/dist/chunk-Z3XCYZN4.js +68 -0
- package/dist/chunk-Z3XCYZN4.js.map +1 -0
- package/dist/chunk-Z6XLNVF3.js +68 -0
- package/dist/chunk-Z6XLNVF3.js.map +1 -0
- package/dist/chunk-ZQJDUTSK.js +68 -0
- package/dist/chunk-ZQJDUTSK.js.map +1 -0
- package/dist/chunk-ZTYINGDT.js +68 -0
- package/dist/chunk-ZTYINGDT.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 +17 -5
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
// src/presets/_briefs/posthog.ts
|
|
2
|
+
var posthogBrief = `# Design System Inspired by PostHog
|
|
3
|
+
|
|
4
|
+
## 1. Visual Theme & Atmosphere
|
|
5
|
+
|
|
6
|
+
PostHog's website feels like a startup's internal wiki that escaped into the wild \u2014 warm, irreverent, and deliberately anti-corporate. The background isn't the expected crisp white or dark void of developer tools; it's a warm, sage-tinted cream (\`#fdfdf8\`) that gives every surface a handmade, paper-like quality. Colors lean into earthy olive greens and muted sage rather than the conventional blues and purples of the SaaS world. It's as if someone designed a developer analytics platform inside a cozy garden shed.
|
|
7
|
+
|
|
8
|
+
The personality is the star: hand-drawn hedgehog illustrations, quirky action figures, and playful imagery replace the stock photography and abstract gradients typical of B2B SaaS. IBM Plex Sans Variable serves as the typographic foundation \u2014 a font with genuine technical credibility (created by IBM, widely used in developer contexts) deployed here with bold weights (700, 800) on headings and generous line-heights on body text. The typography says "we're serious engineers" while everything around it says "but we don't take ourselves too seriously."
|
|
9
|
+
|
|
10
|
+
The interaction design carries the same spirit: hover states flash PostHog Orange (\`#F54E00\`) text \u2014 a hidden brand color that doesn't appear at rest but surprises on interaction. Dark near-black buttons (\`#1e1f23\`) use opacity reduction on hover rather than color shifts, and active states scale slightly. The border system uses sage-tinted grays (\`#bfc1b7\`) that harmonize with the olive text palette. Built on Tailwind CSS with Radix UI and shadcn/ui primitives, the technical foundation is modern and component-driven, but the visual output is stubbornly unique.
|
|
11
|
+
|
|
12
|
+
**Key Characteristics:**
|
|
13
|
+
- Warm sage/olive color palette instead of conventional blues \u2014 earthy and approachable
|
|
14
|
+
- IBM Plex Sans Variable font at bold weights (700/800) for headings with generous 1.50+ line-heights
|
|
15
|
+
- Hidden brand orange (\`#F54E00\`) that only appears on hover interactions \u2014 a delightful surprise
|
|
16
|
+
- Hand-drawn hedgehog illustrations and playful imagery \u2014 deliberately anti-corporate
|
|
17
|
+
- Sage-tinted borders (\`#bfc1b7\`) and backgrounds (\`#eeefe9\`) creating a unified warm-green system
|
|
18
|
+
- Dark near-black CTAs (\`#1e1f23\`) with opacity-based hover states
|
|
19
|
+
- Content-heavy editorial layout \u2014 the site reads like a magazine, not a typical landing page
|
|
20
|
+
- Tailwind CSS + Radix UI + shadcn/ui component architecture
|
|
21
|
+
|
|
22
|
+
## 2. Color Palette & Roles
|
|
23
|
+
|
|
24
|
+
### Primary
|
|
25
|
+
- **Olive Ink** (\`#4d4f46\`): Primary text color \u2014 a distinctive olive-gray that gives all text a warm, earthy tone
|
|
26
|
+
- **Deep Olive** (\`#23251d\`): Link text and high-emphasis headings \u2014 near-black with green undertone
|
|
27
|
+
- **PostHog Orange** (\`#F54E00\`): Hidden brand accent \u2014 appears only on hover states, a vibrant orange that surprises
|
|
28
|
+
|
|
29
|
+
### Secondary & Accent
|
|
30
|
+
- **Amber Gold** (\`#F7A501\`): Secondary hover accent on dark buttons \u2014 warm gold that pairs with the orange
|
|
31
|
+
- **Gold Border** (\`#b17816\`): Special button borders \u2014 an amber-gold for featured CTAs
|
|
32
|
+
- **Focus Blue** (\`#3b82f6\`): Focus ring color (Tailwind default) \u2014 the only blue in the system, reserved for accessibility
|
|
33
|
+
|
|
34
|
+
### Surface & Background
|
|
35
|
+
- **Warm Parchment** (\`#fdfdf8\`): Primary page background \u2014 warm near-white with yellow-green undertone
|
|
36
|
+
- **Sage Cream** (\`#eeefe9\`): Input backgrounds, secondary surfaces \u2014 light sage tint
|
|
37
|
+
- **Light Sage** (\`#e5e7e0\`): Button backgrounds, tertiary surfaces \u2014 muted sage-green
|
|
38
|
+
- **Warm Tan** (\`#d4c9b8\`): Featured button backgrounds \u2014 warm tan/khaki for emphasis
|
|
39
|
+
- **Hover White** (\`#f4f4f4\`): Universal hover background state
|
|
40
|
+
|
|
41
|
+
### Neutrals & Text
|
|
42
|
+
- **Olive Ink** (\`#4d4f46\`): Primary body and UI text
|
|
43
|
+
- **Muted Olive** (\`#65675e\`): Secondary text, button labels on light backgrounds
|
|
44
|
+
- **Sage Placeholder** (\`#9ea096\`): Placeholder text, disabled states \u2014 warm sage-green
|
|
45
|
+
- **Sage Border** (\`#bfc1b7\`): Primary border color \u2014 olive-tinted gray for all borders
|
|
46
|
+
- **Light Border** (\`#b6b7af\`): Secondary border, toolbar borders \u2014 slightly darker sage
|
|
47
|
+
|
|
48
|
+
### Semantic & Accent
|
|
49
|
+
- **PostHog Orange** (\`#F54E00\`): Hover text accent \u2014 signals interactivity and brand personality
|
|
50
|
+
- **Amber Gold** (\`#F7A501\`): Dark button hover accent \u2014 warmth signal
|
|
51
|
+
- **Focus Blue** (\`#3b82f6\` at 50% opacity): Keyboard focus rings \u2014 accessibility-only color
|
|
52
|
+
- **Dark Text** (\`#111827\`): High-contrast link text \u2014 near-black for important links
|
|
53
|
+
|
|
54
|
+
### Gradient System
|
|
55
|
+
- No gradients on the marketing site \u2014 PostHog's visual language is deliberately flat and warm
|
|
56
|
+
- Depth is achieved through layered surfaces and border containment, not color transitions
|
|
57
|
+
|
|
58
|
+
## 3. Typography Rules
|
|
59
|
+
|
|
60
|
+
### Font Family
|
|
61
|
+
- **Display & Body**: \`IBM Plex Sans Variable\` \u2014 variable font (100\u2013700+ weight range). Fallbacks: \`IBM Plex Sans, -apple-system, system-ui, Avenir Next, Avenir, Segoe UI, Helvetica Neue, Helvetica, Ubuntu, Roboto, Noto, Arial\`
|
|
62
|
+
- **Monospace**: \`ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New\` \u2014 system monospace stack
|
|
63
|
+
- **Code Display**: \`Source Code Pro\` \u2014 with fallbacks: \`Menlo, Consolas, Monaco\`
|
|
64
|
+
|
|
65
|
+
### Hierarchy
|
|
66
|
+
|
|
67
|
+
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
|
68
|
+
|------|------|------|--------|-------------|----------------|-------|
|
|
69
|
+
| Display Hero | IBM Plex Sans Variable | 30px | 800 | 1.20 | -0.75px | Extra-bold, tight, maximum impact |
|
|
70
|
+
| Section Heading | IBM Plex Sans Variable | 36px | 700 | 1.50 | 0px | Large but generous line-height |
|
|
71
|
+
| Feature Heading | IBM Plex Sans Variable | 24px | 700 | 1.33 | 0px | Feature section titles |
|
|
72
|
+
| Card Heading | IBM Plex Sans Variable | 21.4px | 700 | 1.40 | -0.54px | Slightly unusual size (scaled) |
|
|
73
|
+
| Sub-heading | IBM Plex Sans Variable | 20px | 700 | 1.40 | -0.5px | Content sub-sections |
|
|
74
|
+
| Sub-heading Uppercase | IBM Plex Sans Variable | 20px | 700 | 1.40 | 0px | Uppercase transform for labels |
|
|
75
|
+
| Body Emphasis | IBM Plex Sans Variable | 19.3px | 600 | 1.56 | -0.48px | Semi-bold callout text |
|
|
76
|
+
| Label Uppercase | IBM Plex Sans Variable | 18px | 700 | 1.50 | 0px | Uppercase category labels |
|
|
77
|
+
| Body Semi | IBM Plex Sans Variable | 18px | 600 | 1.56 | 0px | Semi-bold body text |
|
|
78
|
+
| Body | IBM Plex Sans Variable | 16px | 400 | 1.50 | 0px | Standard reading text |
|
|
79
|
+
| Body Medium | IBM Plex Sans Variable | 16px | 500 | 1.50 | 0px | Medium-weight body |
|
|
80
|
+
| Body Relaxed | IBM Plex Sans Variable | 15px | 400 | 1.71 | 0px | Relaxed line-height for long reads |
|
|
81
|
+
| Nav / UI | IBM Plex Sans Variable | 15px | 600 | 1.50 | 0px | Navigation and UI labels |
|
|
82
|
+
| Caption | IBM Plex Sans Variable | 14px | 400\u2013700 | 1.43 | 0px | Small text, various weights |
|
|
83
|
+
| Small Label | IBM Plex Sans Variable | 13px | 500\u2013700 | 1.00\u20131.50 | 0px | Tags, badges, micro labels |
|
|
84
|
+
| Micro | IBM Plex Sans Variable | 12px | 400\u2013700 | 1.33 | 0px | Smallest text, some uppercase |
|
|
85
|
+
| Code | Source Code Pro | 14px | 500 | 1.43 | 0px | Code snippets and terminal |
|
|
86
|
+
|
|
87
|
+
### Principles
|
|
88
|
+
- **Bold heading dominance**: Headings use 700\u2013800 weight \u2014 PostHog's typography is confident and assertive, not whispery
|
|
89
|
+
- **Generous body line-heights**: Body text at 1.50\u20131.71 line-height creates extremely comfortable reading \u2014 the site is content-heavy and optimized for long sessions
|
|
90
|
+
- **Fractional sizes**: Several sizes (21.4px, 19.3px, 13.7px) suggest a fluid/scaled type system rather than fixed stops \u2014 likely computed from Tailwind's rem scale at non-standard base
|
|
91
|
+
- **Uppercase as category signal**: Bold uppercase labels (18px\u201320px weight 700) are used for product category headings \u2014 a magazine-editorial convention
|
|
92
|
+
- **Selective negative tracking**: Letter-spacing tightens on display text (-0.75px at 30px) but relaxes to 0px on body \u2014 headlines compress, body breathes
|
|
93
|
+
|
|
94
|
+
## 4. Component Stylings
|
|
95
|
+
|
|
96
|
+
### Buttons
|
|
97
|
+
- **Dark Primary**: \`#1e1f23\` background, white text, 6px radius, \`10px 12px\` padding. Hover: opacity 0.7 with Amber Gold text. Active: opacity 0.8 with slight scale transform. The main CTA \u2014 dark and confident
|
|
98
|
+
- **Sage Light**: \`#e5e7e0\` background, Olive Ink (\`#4d4f46\`) text, 4px radius, \`4px\` padding. Hover: \`#f4f4f4\` bg with PostHog Orange text. Compact utility button
|
|
99
|
+
- **Warm Tan Featured**: \`#d4c9b8\` background, black text, no visible radius. Hover: same orange text flash. Featured/premium actions
|
|
100
|
+
- **Input-style**: \`#eeefe9\` background, Sage Placeholder (\`#9ea096\`) text, 4px radius, 1px \`#b6b7af\` border. Looks like a search/filter control
|
|
101
|
+
- **Near-white Ghost**: \`#fdfdf8\` background, Olive Ink text, 4px radius, transparent 1px border. Minimal presence
|
|
102
|
+
- **Hover pattern**: All buttons flash PostHog Orange (\`#F54E00\`) or Amber Gold (\`#F7A501\`) text on hover \u2014 the brand's signature interaction surprise
|
|
103
|
+
|
|
104
|
+
### Cards & Containers
|
|
105
|
+
- **Bordered Card**: Warm Parchment (\`#fdfdf8\`) or white background, 1px \`#bfc1b7\` border, 4px\u20136px radius \u2014 clean and minimal
|
|
106
|
+
- **Sage Surface Card**: \`#eeefe9\` background for secondary content containers
|
|
107
|
+
- **Shadow Card**: \`0px 25px 50px -12px rgba(0, 0, 0, 0.25)\` \u2014 a single deep shadow for elevated content (modals, dropdowns)
|
|
108
|
+
- **Hover**: Orange text flash on interactive cards \u2014 consistent with button behavior
|
|
109
|
+
|
|
110
|
+
### Inputs & Forms
|
|
111
|
+
- **Default**: \`#eeefe9\` background, \`#9ea096\` placeholder text, 1px \`#b6b7af\` border, 4px radius, \`2px 0px 2px 8px\` padding
|
|
112
|
+
- **Focus**: \`#3b82f6\` ring at 50% opacity (Tailwind blue focus ring)
|
|
113
|
+
- **Text color**: \`#374151\` for input values \u2014 darker than primary text for readability
|
|
114
|
+
- **Border variations**: Multiple border patterns \u2014 some inputs use compound borders (top, left, bottom-only)
|
|
115
|
+
|
|
116
|
+
### Navigation
|
|
117
|
+
- **Top nav**: Warm background, IBM Plex Sans at 15px weight 600
|
|
118
|
+
- **Dropdown menus**: Rich mega-menu structure with product categories
|
|
119
|
+
- **Link color**: Deep Olive (\`#23251d\`) for nav links, underline on hover
|
|
120
|
+
- **CTA**: Dark Primary button (#1e1f23) in the nav \u2014 "Get started - free"
|
|
121
|
+
- **Mobile**: Collapses to hamburger with simplified menu
|
|
122
|
+
|
|
123
|
+
### Image Treatment
|
|
124
|
+
- **Hand-drawn illustrations**: Hedgehog mascot and quirky illustrations \u2014 the signature visual element
|
|
125
|
+
- **Product screenshots**: UI screenshots embedded in device frames or clean containers
|
|
126
|
+
- **Action figures**: Playful product photography of hedgehog figurines \u2014 anti-corporate
|
|
127
|
+
- **Trust logos**: Enterprise logos (Airbus, GOV.UK) displayed in a muted trust bar
|
|
128
|
+
- **Aspect ratios**: Mixed \u2014 illustrations are irregular, screenshots are 16:9 or widescreen
|
|
129
|
+
|
|
130
|
+
### AI Chat Widget
|
|
131
|
+
- Floating PostHog AI assistant with speech bubble \u2014 an interactive product demo embedded in the marketing site
|
|
132
|
+
|
|
133
|
+
## 5. Layout Principles
|
|
134
|
+
|
|
135
|
+
### Spacing System
|
|
136
|
+
- **Base unit**: 8px
|
|
137
|
+
- **Scale**: 2px, 4px, 6px, 8px, 10px, 12px, 16px, 18px, 24px, 32px, 34px
|
|
138
|
+
- **Section padding**: 32px\u201348px vertical between sections (compact for a content-heavy site)
|
|
139
|
+
- **Card padding**: 4px\u201312px internal (notably compact)
|
|
140
|
+
- **Component gaps**: 4px\u20138px between related elements
|
|
141
|
+
|
|
142
|
+
### Grid & Container
|
|
143
|
+
- **Max width**: 1536px (largest breakpoint), with content containers likely 1200px\u20131280px
|
|
144
|
+
- **Column patterns**: Varied \u2014 single column for text content, 2-3 column grids for feature cards, asymmetric layouts for product demos
|
|
145
|
+
- **Breakpoints**: 13 defined \u2014 1px, 425px, 482px, 640px, 768px, 767px, 800px, 900px, 1024px, 1076px, 1160px, 1280px, 1536px
|
|
146
|
+
|
|
147
|
+
### Whitespace Philosophy
|
|
148
|
+
- **Content-dense by design**: PostHog's site is information-rich \u2014 whitespace is measured, not lavish
|
|
149
|
+
- **Editorial pacing**: Content sections flow like a magazine with varied layouts keeping the eye moving
|
|
150
|
+
- **Illustrations as breathing room**: Hand-drawn hedgehog art breaks up dense content sections naturally
|
|
151
|
+
|
|
152
|
+
### Border Radius Scale
|
|
153
|
+
- **2px**: Small inline elements, tags (\`span\`)
|
|
154
|
+
- **4px**: Primary UI components \u2014 buttons, inputs, dropdowns, menu items (\`button\`, \`div\`, \`combobox\`)
|
|
155
|
+
- **6px**: Secondary containers \u2014 larger buttons, list items, card variants (\`button\`, \`div\`, \`li\`)
|
|
156
|
+
- **9999px**: Pill shape \u2014 badges, status indicators, rounded tags (\`span\`, \`div\`)
|
|
157
|
+
|
|
158
|
+
## 6. Depth & Elevation
|
|
159
|
+
|
|
160
|
+
| Level | Treatment | Use |
|
|
161
|
+
|-------|-----------|-----|
|
|
162
|
+
| Level 0 (Flat) | No shadow, warm parchment background | Page canvas, most surfaces |
|
|
163
|
+
| Level 1 (Border) | \`1px solid #bfc1b7\` (Sage Border) | Card containment, input borders, section dividers |
|
|
164
|
+
| Level 2 (Compound Border) | Multiple 1px borders on different sides | Input groupings, toolbar elements |
|
|
165
|
+
| Level 3 (Deep Shadow) | \`0px 25px 50px -12px rgba(0, 0, 0, 0.25)\` | Modals, floating elements, mega-menu dropdowns |
|
|
166
|
+
|
|
167
|
+
### Shadow Philosophy
|
|
168
|
+
PostHog's elevation system is remarkably minimal \u2014 only one shadow definition exists in the entire system. Depth is communicated through:
|
|
169
|
+
- **Border containment**: Sage-tinted borders (\`#bfc1b7\`) at 1px create gentle warm separation
|
|
170
|
+
- **Surface color shifts**: Moving from \`#fdfdf8\` to \`#eeefe9\` to \`#e5e7e0\` creates layered depth without shadows
|
|
171
|
+
- **The single shadow**: The one defined shadow (\`0 25px 50px -12px\`) is reserved for floating elements \u2014 modals, dropdowns, popovers. It's a deep, dramatic shadow that creates clear separation when needed
|
|
172
|
+
|
|
173
|
+
### Decorative Depth
|
|
174
|
+
- **Illustration layering**: Hand-drawn hedgehog art creates visual depth naturally
|
|
175
|
+
- **No gradients or glow**: The flat, warm surface system relies entirely on border and surface-color differentiation
|
|
176
|
+
- **No glassmorphism**: Fully opaque surfaces throughout
|
|
177
|
+
|
|
178
|
+
## 7. Do's and Don'ts
|
|
179
|
+
|
|
180
|
+
### Do
|
|
181
|
+
- Use the olive/sage color family (#4d4f46, #23251d, #bfc1b7) for text and borders \u2014 the warm green undertone is essential to the brand
|
|
182
|
+
- Flash PostHog Orange (#F54E00) on hover states \u2014 it's the hidden brand signature
|
|
183
|
+
- Use IBM Plex Sans at bold weights (700/800) for headings \u2014 the font carries technical credibility
|
|
184
|
+
- Keep body text at generous line-heights (1.50\u20131.71) \u2014 the content-heavy site demands readability
|
|
185
|
+
- Maintain the warm parchment background (#fdfdf8) \u2014 not pure white, never cold
|
|
186
|
+
- Use 4px border-radius for most UI elements \u2014 keep corners subtle and functional
|
|
187
|
+
- Include playful, hand-drawn illustration elements \u2014 the personality is the differentiator
|
|
188
|
+
- Apply opacity-based hover states (0.7 opacity) on dark buttons rather than color shifts
|
|
189
|
+
|
|
190
|
+
### Don't
|
|
191
|
+
- Use blue, purple, or typical tech-SaaS colors \u2014 PostHog's palette is deliberately olive/sage
|
|
192
|
+
- Add heavy shadows \u2014 the system uses one shadow for floating elements only; everything else uses borders
|
|
193
|
+
- Make the design look "polished" or "premium" in a conventional sense \u2014 PostHog's charm is its irreverent, scrappy energy
|
|
194
|
+
- Use tight line-heights on body text \u2014 the generous 1.50+ spacing is essential for the content-heavy layout
|
|
195
|
+
- Apply large border-radius (12px+) on cards \u2014 PostHog uses 4px\u20136px, keeping things tight and functional
|
|
196
|
+
- Remove the orange hover flash \u2014 it's a core interaction pattern, not decoration
|
|
197
|
+
- Replace illustrations with stock photography \u2014 the hand-drawn hedgehog art is the brand
|
|
198
|
+
- Use pure white (#ffffff) as page background \u2014 the warm sage-cream (#fdfdf8) tint is foundational
|
|
199
|
+
|
|
200
|
+
## 8. Responsive Behavior
|
|
201
|
+
|
|
202
|
+
### Breakpoints
|
|
203
|
+
| Name | Width | Key Changes |
|
|
204
|
+
|------|-------|-------------|
|
|
205
|
+
| Mobile Small | <425px | Single column, compact padding, stacked cards |
|
|
206
|
+
| Mobile | 425px\u2013640px | Slight layout adjustments, larger touch targets |
|
|
207
|
+
| Tablet | 640px\u2013768px | 2-column grids begin, nav partially visible |
|
|
208
|
+
| Tablet Large | 768px\u20131024px | Multi-column layouts, expanded navigation |
|
|
209
|
+
| Desktop | 1024px\u20131280px | Full layout, 3-column feature grids, expanded mega-menu |
|
|
210
|
+
| Large Desktop | 1280px\u20131536px | Max-width container, generous margins |
|
|
211
|
+
| Extra Large | >1536px | Centered container at max-width |
|
|
212
|
+
|
|
213
|
+
### Touch Targets
|
|
214
|
+
- Buttons: 4px\u20136px radius with \`4px\u201312px\` padding \u2014 compact but usable
|
|
215
|
+
- Nav links: 15px text at weight 600 with adequate padding
|
|
216
|
+
- Mobile: Hamburger menu with simplified navigation
|
|
217
|
+
- Inputs: Generous vertical padding for thumb-friendly forms
|
|
218
|
+
|
|
219
|
+
### Collapsing Strategy
|
|
220
|
+
- **Navigation**: Full mega-menu with dropdowns \u2192 hamburger menu on mobile
|
|
221
|
+
- **Feature grids**: 3-column \u2192 2-column \u2192 single column stacked
|
|
222
|
+
- **Typography**: Display sizes reduce across breakpoints (30px \u2192 smaller)
|
|
223
|
+
- **Illustrations**: Scale within containers, some may hide on mobile for space
|
|
224
|
+
- **Section spacing**: Reduces proportionally while maintaining readability
|
|
225
|
+
|
|
226
|
+
### Image Behavior
|
|
227
|
+
- Illustrations scale responsively within containers
|
|
228
|
+
- Product screenshots maintain aspect ratios
|
|
229
|
+
- Trust logos reflow into multi-row grids on mobile
|
|
230
|
+
- AI chat widget may reposition or simplify on small screens
|
|
231
|
+
|
|
232
|
+
## 9. Agent Prompt Guide
|
|
233
|
+
|
|
234
|
+
### Quick Color Reference
|
|
235
|
+
- Primary Text: Olive Ink (\`#4d4f46\`)
|
|
236
|
+
- Dark Text: Deep Olive (\`#23251d\`)
|
|
237
|
+
- Hover Accent: PostHog Orange (\`#F54E00\`)
|
|
238
|
+
- Dark CTA: Near-Black (\`#1e1f23\`)
|
|
239
|
+
- Button Surface: Light Sage (\`#e5e7e0\`)
|
|
240
|
+
- Page Background: Warm Parchment (\`#fdfdf8\`)
|
|
241
|
+
- Border: Sage Border (\`#bfc1b7\`)
|
|
242
|
+
- Placeholder: Sage Placeholder (\`#9ea096\`)
|
|
243
|
+
|
|
244
|
+
### Example Component Prompts
|
|
245
|
+
- "Create a hero section on warm parchment background (#fdfdf8) with 30px IBM Plex Sans heading at weight 800, line-height 1.20, letter-spacing -0.75px, olive ink text (#4d4f46), and a dark CTA button (#1e1f23, 6px radius, white text, opacity 0.7 on hover)"
|
|
246
|
+
- "Design a feature card with #fdfdf8 background, 1px #bfc1b7 border, 4px radius, IBM Plex Sans heading at 20px weight 700, and 16px body text at weight 400 with 1.50 line-height in olive ink (#4d4f46)"
|
|
247
|
+
- "Build a navigation bar with warm background, IBM Plex Sans links at 15px weight 600 in deep olive (#23251d), underline on hover, and a dark CTA button (#1e1f23) at the right"
|
|
248
|
+
- "Create a button group: primary dark (#1e1f23, white text, 6px radius), secondary sage (#e5e7e0, #4d4f46 text, 4px radius), and ghost/text button \u2014 all flash #F54E00 orange text on hover"
|
|
249
|
+
- "Design an input field with #eeefe9 background, 1px #b6b7af border, 4px radius, #9ea096 placeholder text, focus ring in #3b82f6 at 50% opacity"
|
|
250
|
+
|
|
251
|
+
### Iteration Guide
|
|
252
|
+
When refining existing screens generated with this design system:
|
|
253
|
+
1. Verify the background is warm parchment (#fdfdf8) not pure white \u2014 the sage-cream warmth is essential
|
|
254
|
+
2. Check that all text uses the olive family (#4d4f46, #23251d) not pure black or neutral gray
|
|
255
|
+
3. Ensure hover states flash PostHog Orange (#F54E00) \u2014 if hovering feels bland, you're missing this
|
|
256
|
+
4. Confirm borders use sage-tinted gray (#bfc1b7) not neutral gray \u2014 warmth runs through every element
|
|
257
|
+
5. The overall tone should feel like a fun, scrappy startup wiki \u2014 never corporate-polished or sterile
|
|
258
|
+
`;
|
|
259
|
+
export {
|
|
260
|
+
posthogBrief
|
|
261
|
+
};
|
|
262
|
+
//# sourceMappingURL=posthog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/presets/_briefs/posthog.ts"],"sourcesContent":["// AUTO-GENERATED — do not hand-edit. Source: https://github.com/voltagent/awesome-design-md\nexport const posthogBrief = `# Design System Inspired by PostHog\n\n## 1. Visual Theme & Atmosphere\n\nPostHog's website feels like a startup's internal wiki that escaped into the wild — warm, irreverent, and deliberately anti-corporate. The background isn't the expected crisp white or dark void of developer tools; it's a warm, sage-tinted cream (\\`#fdfdf8\\`) that gives every surface a handmade, paper-like quality. Colors lean into earthy olive greens and muted sage rather than the conventional blues and purples of the SaaS world. It's as if someone designed a developer analytics platform inside a cozy garden shed.\n\nThe personality is the star: hand-drawn hedgehog illustrations, quirky action figures, and playful imagery replace the stock photography and abstract gradients typical of B2B SaaS. IBM Plex Sans Variable serves as the typographic foundation — a font with genuine technical credibility (created by IBM, widely used in developer contexts) deployed here with bold weights (700, 800) on headings and generous line-heights on body text. The typography says \"we're serious engineers\" while everything around it says \"but we don't take ourselves too seriously.\"\n\nThe interaction design carries the same spirit: hover states flash PostHog Orange (\\`#F54E00\\`) text — a hidden brand color that doesn't appear at rest but surprises on interaction. Dark near-black buttons (\\`#1e1f23\\`) use opacity reduction on hover rather than color shifts, and active states scale slightly. The border system uses sage-tinted grays (\\`#bfc1b7\\`) that harmonize with the olive text palette. Built on Tailwind CSS with Radix UI and shadcn/ui primitives, the technical foundation is modern and component-driven, but the visual output is stubbornly unique.\n\n**Key Characteristics:**\n- Warm sage/olive color palette instead of conventional blues — earthy and approachable\n- IBM Plex Sans Variable font at bold weights (700/800) for headings with generous 1.50+ line-heights\n- Hidden brand orange (\\`#F54E00\\`) that only appears on hover interactions — a delightful surprise\n- Hand-drawn hedgehog illustrations and playful imagery — deliberately anti-corporate\n- Sage-tinted borders (\\`#bfc1b7\\`) and backgrounds (\\`#eeefe9\\`) creating a unified warm-green system\n- Dark near-black CTAs (\\`#1e1f23\\`) with opacity-based hover states\n- Content-heavy editorial layout — the site reads like a magazine, not a typical landing page\n- Tailwind CSS + Radix UI + shadcn/ui component architecture\n\n## 2. Color Palette & Roles\n\n### Primary\n- **Olive Ink** (\\`#4d4f46\\`): Primary text color — a distinctive olive-gray that gives all text a warm, earthy tone\n- **Deep Olive** (\\`#23251d\\`): Link text and high-emphasis headings — near-black with green undertone\n- **PostHog Orange** (\\`#F54E00\\`): Hidden brand accent — appears only on hover states, a vibrant orange that surprises\n\n### Secondary & Accent\n- **Amber Gold** (\\`#F7A501\\`): Secondary hover accent on dark buttons — warm gold that pairs with the orange\n- **Gold Border** (\\`#b17816\\`): Special button borders — an amber-gold for featured CTAs\n- **Focus Blue** (\\`#3b82f6\\`): Focus ring color (Tailwind default) — the only blue in the system, reserved for accessibility\n\n### Surface & Background\n- **Warm Parchment** (\\`#fdfdf8\\`): Primary page background — warm near-white with yellow-green undertone\n- **Sage Cream** (\\`#eeefe9\\`): Input backgrounds, secondary surfaces — light sage tint\n- **Light Sage** (\\`#e5e7e0\\`): Button backgrounds, tertiary surfaces — muted sage-green\n- **Warm Tan** (\\`#d4c9b8\\`): Featured button backgrounds — warm tan/khaki for emphasis\n- **Hover White** (\\`#f4f4f4\\`): Universal hover background state\n\n### Neutrals & Text\n- **Olive Ink** (\\`#4d4f46\\`): Primary body and UI text\n- **Muted Olive** (\\`#65675e\\`): Secondary text, button labels on light backgrounds\n- **Sage Placeholder** (\\`#9ea096\\`): Placeholder text, disabled states — warm sage-green\n- **Sage Border** (\\`#bfc1b7\\`): Primary border color — olive-tinted gray for all borders\n- **Light Border** (\\`#b6b7af\\`): Secondary border, toolbar borders — slightly darker sage\n\n### Semantic & Accent\n- **PostHog Orange** (\\`#F54E00\\`): Hover text accent — signals interactivity and brand personality\n- **Amber Gold** (\\`#F7A501\\`): Dark button hover accent — warmth signal\n- **Focus Blue** (\\`#3b82f6\\` at 50% opacity): Keyboard focus rings — accessibility-only color\n- **Dark Text** (\\`#111827\\`): High-contrast link text — near-black for important links\n\n### Gradient System\n- No gradients on the marketing site — PostHog's visual language is deliberately flat and warm\n- Depth is achieved through layered surfaces and border containment, not color transitions\n\n## 3. Typography Rules\n\n### Font Family\n- **Display & Body**: \\`IBM Plex Sans Variable\\` — variable font (100–700+ weight range). Fallbacks: \\`IBM Plex Sans, -apple-system, system-ui, Avenir Next, Avenir, Segoe UI, Helvetica Neue, Helvetica, Ubuntu, Roboto, Noto, Arial\\`\n- **Monospace**: \\`ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New\\` — system monospace stack\n- **Code Display**: \\`Source Code Pro\\` — with fallbacks: \\`Menlo, Consolas, Monaco\\`\n\n### Hierarchy\n\n| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |\n|------|------|------|--------|-------------|----------------|-------|\n| Display Hero | IBM Plex Sans Variable | 30px | 800 | 1.20 | -0.75px | Extra-bold, tight, maximum impact |\n| Section Heading | IBM Plex Sans Variable | 36px | 700 | 1.50 | 0px | Large but generous line-height |\n| Feature Heading | IBM Plex Sans Variable | 24px | 700 | 1.33 | 0px | Feature section titles |\n| Card Heading | IBM Plex Sans Variable | 21.4px | 700 | 1.40 | -0.54px | Slightly unusual size (scaled) |\n| Sub-heading | IBM Plex Sans Variable | 20px | 700 | 1.40 | -0.5px | Content sub-sections |\n| Sub-heading Uppercase | IBM Plex Sans Variable | 20px | 700 | 1.40 | 0px | Uppercase transform for labels |\n| Body Emphasis | IBM Plex Sans Variable | 19.3px | 600 | 1.56 | -0.48px | Semi-bold callout text |\n| Label Uppercase | IBM Plex Sans Variable | 18px | 700 | 1.50 | 0px | Uppercase category labels |\n| Body Semi | IBM Plex Sans Variable | 18px | 600 | 1.56 | 0px | Semi-bold body text |\n| Body | IBM Plex Sans Variable | 16px | 400 | 1.50 | 0px | Standard reading text |\n| Body Medium | IBM Plex Sans Variable | 16px | 500 | 1.50 | 0px | Medium-weight body |\n| Body Relaxed | IBM Plex Sans Variable | 15px | 400 | 1.71 | 0px | Relaxed line-height for long reads |\n| Nav / UI | IBM Plex Sans Variable | 15px | 600 | 1.50 | 0px | Navigation and UI labels |\n| Caption | IBM Plex Sans Variable | 14px | 400–700 | 1.43 | 0px | Small text, various weights |\n| Small Label | IBM Plex Sans Variable | 13px | 500–700 | 1.00–1.50 | 0px | Tags, badges, micro labels |\n| Micro | IBM Plex Sans Variable | 12px | 400–700 | 1.33 | 0px | Smallest text, some uppercase |\n| Code | Source Code Pro | 14px | 500 | 1.43 | 0px | Code snippets and terminal |\n\n### Principles\n- **Bold heading dominance**: Headings use 700–800 weight — PostHog's typography is confident and assertive, not whispery\n- **Generous body line-heights**: Body text at 1.50–1.71 line-height creates extremely comfortable reading — the site is content-heavy and optimized for long sessions\n- **Fractional sizes**: Several sizes (21.4px, 19.3px, 13.7px) suggest a fluid/scaled type system rather than fixed stops — likely computed from Tailwind's rem scale at non-standard base\n- **Uppercase as category signal**: Bold uppercase labels (18px–20px weight 700) are used for product category headings — a magazine-editorial convention\n- **Selective negative tracking**: Letter-spacing tightens on display text (-0.75px at 30px) but relaxes to 0px on body — headlines compress, body breathes\n\n## 4. Component Stylings\n\n### Buttons\n- **Dark Primary**: \\`#1e1f23\\` background, white text, 6px radius, \\`10px 12px\\` padding. Hover: opacity 0.7 with Amber Gold text. Active: opacity 0.8 with slight scale transform. The main CTA — dark and confident\n- **Sage Light**: \\`#e5e7e0\\` background, Olive Ink (\\`#4d4f46\\`) text, 4px radius, \\`4px\\` padding. Hover: \\`#f4f4f4\\` bg with PostHog Orange text. Compact utility button\n- **Warm Tan Featured**: \\`#d4c9b8\\` background, black text, no visible radius. Hover: same orange text flash. Featured/premium actions\n- **Input-style**: \\`#eeefe9\\` background, Sage Placeholder (\\`#9ea096\\`) text, 4px radius, 1px \\`#b6b7af\\` border. Looks like a search/filter control\n- **Near-white Ghost**: \\`#fdfdf8\\` background, Olive Ink text, 4px radius, transparent 1px border. Minimal presence\n- **Hover pattern**: All buttons flash PostHog Orange (\\`#F54E00\\`) or Amber Gold (\\`#F7A501\\`) text on hover — the brand's signature interaction surprise\n\n### Cards & Containers\n- **Bordered Card**: Warm Parchment (\\`#fdfdf8\\`) or white background, 1px \\`#bfc1b7\\` border, 4px–6px radius — clean and minimal\n- **Sage Surface Card**: \\`#eeefe9\\` background for secondary content containers\n- **Shadow Card**: \\`0px 25px 50px -12px rgba(0, 0, 0, 0.25)\\` — a single deep shadow for elevated content (modals, dropdowns)\n- **Hover**: Orange text flash on interactive cards — consistent with button behavior\n\n### Inputs & Forms\n- **Default**: \\`#eeefe9\\` background, \\`#9ea096\\` placeholder text, 1px \\`#b6b7af\\` border, 4px radius, \\`2px 0px 2px 8px\\` padding\n- **Focus**: \\`#3b82f6\\` ring at 50% opacity (Tailwind blue focus ring)\n- **Text color**: \\`#374151\\` for input values — darker than primary text for readability\n- **Border variations**: Multiple border patterns — some inputs use compound borders (top, left, bottom-only)\n\n### Navigation\n- **Top nav**: Warm background, IBM Plex Sans at 15px weight 600\n- **Dropdown menus**: Rich mega-menu structure with product categories\n- **Link color**: Deep Olive (\\`#23251d\\`) for nav links, underline on hover\n- **CTA**: Dark Primary button (#1e1f23) in the nav — \"Get started - free\"\n- **Mobile**: Collapses to hamburger with simplified menu\n\n### Image Treatment\n- **Hand-drawn illustrations**: Hedgehog mascot and quirky illustrations — the signature visual element\n- **Product screenshots**: UI screenshots embedded in device frames or clean containers\n- **Action figures**: Playful product photography of hedgehog figurines — anti-corporate\n- **Trust logos**: Enterprise logos (Airbus, GOV.UK) displayed in a muted trust bar\n- **Aspect ratios**: Mixed — illustrations are irregular, screenshots are 16:9 or widescreen\n\n### AI Chat Widget\n- Floating PostHog AI assistant with speech bubble — an interactive product demo embedded in the marketing site\n\n## 5. Layout Principles\n\n### Spacing System\n- **Base unit**: 8px\n- **Scale**: 2px, 4px, 6px, 8px, 10px, 12px, 16px, 18px, 24px, 32px, 34px\n- **Section padding**: 32px–48px vertical between sections (compact for a content-heavy site)\n- **Card padding**: 4px–12px internal (notably compact)\n- **Component gaps**: 4px–8px between related elements\n\n### Grid & Container\n- **Max width**: 1536px (largest breakpoint), with content containers likely 1200px–1280px\n- **Column patterns**: Varied — single column for text content, 2-3 column grids for feature cards, asymmetric layouts for product demos\n- **Breakpoints**: 13 defined — 1px, 425px, 482px, 640px, 768px, 767px, 800px, 900px, 1024px, 1076px, 1160px, 1280px, 1536px\n\n### Whitespace Philosophy\n- **Content-dense by design**: PostHog's site is information-rich — whitespace is measured, not lavish\n- **Editorial pacing**: Content sections flow like a magazine with varied layouts keeping the eye moving\n- **Illustrations as breathing room**: Hand-drawn hedgehog art breaks up dense content sections naturally\n\n### Border Radius Scale\n- **2px**: Small inline elements, tags (\\`span\\`)\n- **4px**: Primary UI components — buttons, inputs, dropdowns, menu items (\\`button\\`, \\`div\\`, \\`combobox\\`)\n- **6px**: Secondary containers — larger buttons, list items, card variants (\\`button\\`, \\`div\\`, \\`li\\`)\n- **9999px**: Pill shape — badges, status indicators, rounded tags (\\`span\\`, \\`div\\`)\n\n## 6. Depth & Elevation\n\n| Level | Treatment | Use |\n|-------|-----------|-----|\n| Level 0 (Flat) | No shadow, warm parchment background | Page canvas, most surfaces |\n| Level 1 (Border) | \\`1px solid #bfc1b7\\` (Sage Border) | Card containment, input borders, section dividers |\n| Level 2 (Compound Border) | Multiple 1px borders on different sides | Input groupings, toolbar elements |\n| Level 3 (Deep Shadow) | \\`0px 25px 50px -12px rgba(0, 0, 0, 0.25)\\` | Modals, floating elements, mega-menu dropdowns |\n\n### Shadow Philosophy\nPostHog's elevation system is remarkably minimal — only one shadow definition exists in the entire system. Depth is communicated through:\n- **Border containment**: Sage-tinted borders (\\`#bfc1b7\\`) at 1px create gentle warm separation\n- **Surface color shifts**: Moving from \\`#fdfdf8\\` to \\`#eeefe9\\` to \\`#e5e7e0\\` creates layered depth without shadows\n- **The single shadow**: The one defined shadow (\\`0 25px 50px -12px\\`) is reserved for floating elements — modals, dropdowns, popovers. It's a deep, dramatic shadow that creates clear separation when needed\n\n### Decorative Depth\n- **Illustration layering**: Hand-drawn hedgehog art creates visual depth naturally\n- **No gradients or glow**: The flat, warm surface system relies entirely on border and surface-color differentiation\n- **No glassmorphism**: Fully opaque surfaces throughout\n\n## 7. Do's and Don'ts\n\n### Do\n- Use the olive/sage color family (#4d4f46, #23251d, #bfc1b7) for text and borders — the warm green undertone is essential to the brand\n- Flash PostHog Orange (#F54E00) on hover states — it's the hidden brand signature\n- Use IBM Plex Sans at bold weights (700/800) for headings — the font carries technical credibility\n- Keep body text at generous line-heights (1.50–1.71) — the content-heavy site demands readability\n- Maintain the warm parchment background (#fdfdf8) — not pure white, never cold\n- Use 4px border-radius for most UI elements — keep corners subtle and functional\n- Include playful, hand-drawn illustration elements — the personality is the differentiator\n- Apply opacity-based hover states (0.7 opacity) on dark buttons rather than color shifts\n\n### Don't\n- Use blue, purple, or typical tech-SaaS colors — PostHog's palette is deliberately olive/sage\n- Add heavy shadows — the system uses one shadow for floating elements only; everything else uses borders\n- Make the design look \"polished\" or \"premium\" in a conventional sense — PostHog's charm is its irreverent, scrappy energy\n- Use tight line-heights on body text — the generous 1.50+ spacing is essential for the content-heavy layout\n- Apply large border-radius (12px+) on cards — PostHog uses 4px–6px, keeping things tight and functional\n- Remove the orange hover flash — it's a core interaction pattern, not decoration\n- Replace illustrations with stock photography — the hand-drawn hedgehog art is the brand\n- Use pure white (#ffffff) as page background — the warm sage-cream (#fdfdf8) tint is foundational\n\n## 8. Responsive Behavior\n\n### Breakpoints\n| Name | Width | Key Changes |\n|------|-------|-------------|\n| Mobile Small | <425px | Single column, compact padding, stacked cards |\n| Mobile | 425px–640px | Slight layout adjustments, larger touch targets |\n| Tablet | 640px–768px | 2-column grids begin, nav partially visible |\n| Tablet Large | 768px–1024px | Multi-column layouts, expanded navigation |\n| Desktop | 1024px–1280px | Full layout, 3-column feature grids, expanded mega-menu |\n| Large Desktop | 1280px–1536px | Max-width container, generous margins |\n| Extra Large | >1536px | Centered container at max-width |\n\n### Touch Targets\n- Buttons: 4px–6px radius with \\`4px–12px\\` padding — compact but usable\n- Nav links: 15px text at weight 600 with adequate padding\n- Mobile: Hamburger menu with simplified navigation\n- Inputs: Generous vertical padding for thumb-friendly forms\n\n### Collapsing Strategy\n- **Navigation**: Full mega-menu with dropdowns → hamburger menu on mobile\n- **Feature grids**: 3-column → 2-column → single column stacked\n- **Typography**: Display sizes reduce across breakpoints (30px → smaller)\n- **Illustrations**: Scale within containers, some may hide on mobile for space\n- **Section spacing**: Reduces proportionally while maintaining readability\n\n### Image Behavior\n- Illustrations scale responsively within containers\n- Product screenshots maintain aspect ratios\n- Trust logos reflow into multi-row grids on mobile\n- AI chat widget may reposition or simplify on small screens\n\n## 9. Agent Prompt Guide\n\n### Quick Color Reference\n- Primary Text: Olive Ink (\\`#4d4f46\\`)\n- Dark Text: Deep Olive (\\`#23251d\\`)\n- Hover Accent: PostHog Orange (\\`#F54E00\\`)\n- Dark CTA: Near-Black (\\`#1e1f23\\`)\n- Button Surface: Light Sage (\\`#e5e7e0\\`)\n- Page Background: Warm Parchment (\\`#fdfdf8\\`)\n- Border: Sage Border (\\`#bfc1b7\\`)\n- Placeholder: Sage Placeholder (\\`#9ea096\\`)\n\n### Example Component Prompts\n- \"Create a hero section on warm parchment background (#fdfdf8) with 30px IBM Plex Sans heading at weight 800, line-height 1.20, letter-spacing -0.75px, olive ink text (#4d4f46), and a dark CTA button (#1e1f23, 6px radius, white text, opacity 0.7 on hover)\"\n- \"Design a feature card with #fdfdf8 background, 1px #bfc1b7 border, 4px radius, IBM Plex Sans heading at 20px weight 700, and 16px body text at weight 400 with 1.50 line-height in olive ink (#4d4f46)\"\n- \"Build a navigation bar with warm background, IBM Plex Sans links at 15px weight 600 in deep olive (#23251d), underline on hover, and a dark CTA button (#1e1f23) at the right\"\n- \"Create a button group: primary dark (#1e1f23, white text, 6px radius), secondary sage (#e5e7e0, #4d4f46 text, 4px radius), and ghost/text button — all flash #F54E00 orange text on hover\"\n- \"Design an input field with #eeefe9 background, 1px #b6b7af border, 4px radius, #9ea096 placeholder text, focus ring in #3b82f6 at 50% opacity\"\n\n### Iteration Guide\nWhen refining existing screens generated with this design system:\n1. Verify the background is warm parchment (#fdfdf8) not pure white — the sage-cream warmth is essential\n2. Check that all text uses the olive family (#4d4f46, #23251d) not pure black or neutral gray\n3. Ensure hover states flash PostHog Orange (#F54E00) — if hovering feels bland, you're missing this\n4. Confirm borders use sage-tinted gray (#bfc1b7) not neutral gray — warmth runs through every element\n5. The overall tone should feel like a fun, scrappy startup wiki — never corporate-polished or sterile\n`;\n"],"mappings":";AACO,IAAM,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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 raycastBrief = "# Design System Inspired by Raycast\n\n## 1. Visual Theme & Atmosphere\n\nRaycast's marketing site feels like the dark interior of a precision instrument \u2014 a Swiss watch case carved from obsidian. The background isn't just dark, it's an almost-black blue-tint (`#07080a`) that creates a sense of being inside a macOS native application rather than a website. Every surface, every border, every shadow is calibrated to evoke the feeling of a high-performance desktop utility: fast, minimal, trustworthy.\n\nThe signature move is the layered shadow system borrowed from macOS window chrome: multi-layer box-shadows with inset highlights that simulate physical depth, as if cards and buttons are actual pressed or raised glass elements on a dark desk. Combined with Raycast Red (`#FF6363`) \u2014 deployed almost exclusively in the hero's iconic diagonal stripe pattern \u2014 the palette creates a brand that reads as \"powerful tool with personality.\" The red doesn't dominate; it punctuates.\n\nInter is used everywhere \u2014 headings, body, buttons, captions \u2014 with extensive OpenType features (`calt`, `kern`, `liga`, `ss03`) creating a consistent, readable typographic voice. The positive letter-spacing (0.2px\u20130.4px on body text) is unusual for a dark UI and gives the text an airy, breathable quality that counterbalances the dense, dark surfaces. GeistMono appears for code elements, reinforcing the developer-tool identity.\n\n**Key Characteristics:**\n- Near-black blue-tinted background (`#07080a`) \u2014 not pure black, subtly blue-shifted\n- macOS-native shadow system with multi-layer inset highlights simulating physical depth\n- Raycast Red (`#FF6363`) as a punctuation color \u2014 hero stripes, not pervasive\n- Inter with positive letter-spacing (0.2px) for an airy, readable dark-mode experience\n- Radix UI component primitives powering the interaction layer\n- Subtle rgba white borders (0.06\u20130.1 opacity) for containment on dark surfaces\n- Keyboard shortcut styling with gradient key caps and heavy shadows\n\n## 2. Color Palette & Roles\n\n### Primary\n- **Near-Black Blue** (`#07080a`): Primary page background \u2014 the foundational void with a subtle blue-cold undertone\n- **Pure White** (`#ffffff`): Primary heading text, high-emphasis elements\n- **Raycast Red** (`#FF6363` / `hsl(0, 100%, 69%)`): Brand accent \u2014 hero stripes, danger states, critical highlights\n\n### Secondary & Accent\n- **Raycast Blue** (`hsl(202, 100%, 67%)` / ~`#55b3ff`): Interactive accent \u2014 links, focus states, selected items\n- **Raycast Green** (`hsl(151, 59%, 59%)` / ~`#5fc992`): Success states, positive indicators\n- **Raycast Yellow** (`hsl(43, 100%, 60%)` / ~`#ffbc33`): Warning accents, highlights\n- **Blue Transparent** (`hsla(202, 100%, 67%, 0.15)`): Blue tint overlay for interactive surfaces\n- **Red Transparent** (`hsla(0, 100%, 69%, 0.15)`): Red tint overlay for danger/error surfaces\n\n### Surface & Background\n- **Deep Background** (`#07080a`): Page canvas, the darkest surface\n- **Surface 100** (`#101111`): Elevated surface, card backgrounds\n- **Key Start** (`#121212`): Keyboard key gradient start\n- **Key End** (`#0d0d0d`): Keyboard key gradient end\n- **Card Surface** (`#1b1c1e`): Badge backgrounds, tag fills, elevated containers\n- **Button Foreground** (`#18191a`): Dark surface for button text on light backgrounds\n\n### Neutrals & Text\n- **Near White** (`#f9f9f9` / `hsl(240, 11%, 96%)`): Primary body text, high-emphasis content\n- **Light Gray** (`#cecece` / `#cdcdce`): Secondary body text, descriptions\n- **Silver** (`#c0c0c0`): Tertiary text, subdued labels\n- **Medium Gray** (`#9c9c9d`): Link default color, secondary navigation\n- **Dim Gray** (`#6a6b6c`): Disabled text, low-emphasis labels\n- **Dark Gray** (`#434345`): Muted borders, inactive navigation links\n- **Border** (`hsl(195, 5%, 15%)` / ~`#252829`): Standard border color for cards and dividers\n- **Dark Border** (`#2f3031`): Separator lines, table borders\n\n### Semantic & Accent\n- **Error Red** (`hsl(0, 100%, 69%)`): Error states, destructive actions\n- **Success Green** (`hsl(151, 59%, 59%)`): Success confirmations, positive states\n- **Warning Yellow** (`hsl(43, 100%, 60%)`): Warnings, attention-needed states\n- **Info Blue** (`hsl(202, 100%, 67%)`): Informational highlights, links\n\n### Gradient System\n- **Keyboard Key Gradient**: Linear gradient from `#121212` (top) to `#0d0d0d` (bottom) \u2014 simulates physical key depth\n- **Warm Glow**: `rgba(215, 201, 175, 0.05)` radial spread \u2014 subtle warm ambient glow behind featured elements\n\n## 3. Typography Rules\n\n### Font Family\n- **Primary**: `Inter` \u2014 humanist sans-serif, used everywhere. Fallbacks: `Inter Fallback`, system sans-serif\n- **System**: `SF Pro Text` \u2014 Apple system font for select macOS-native UI elements. Fallbacks: `SF Pro Icons`, `Inter`, `Inter Fallback`\n- **Monospace**: `GeistMono` \u2014 Vercel's monospace font for code elements. Fallbacks: `ui-monospace`, `SFMono-Regular`, `Roboto Mono`, `Menlo`, `Monaco`\n- **OpenType features**: `calt`, `kern`, `liga`, `ss03` enabled globally; `ss02`, `ss08` on display text; `liga` disabled (`\"liga\" 0`) on hero headings\n\n### Hierarchy\n\n| Role | Size | Weight | Line Height | Letter Spacing | Notes |\n|------|------|--------|-------------|----------------|-------|\n| Display Hero | 64px | 600 | 1.10 | 0px | OpenType: liga 0, ss02, ss08 |\n| Section Display | 56px | 400 | 1.17 | 0.2px | OpenType: calt, kern, liga, ss03 |\n| Section Heading | 24px | 500 | normal | 0.2px | OpenType: calt, kern, liga, ss03 |\n| Card Heading | 22px | 400 | 1.15 | 0px | OpenType: calt, kern, liga, ss03 |\n| Sub-heading | 20px | 500 | 1.60 | 0.2px | Relaxed line-height for readability |\n| Body Large | 18px | 400 | 1.15 | 0.2px | OpenType: calt, kern, liga, ss03 |\n| Body | 16px | 500 | 1.60 | 0.2px | Primary body text, relaxed rhythm |\n| Body Tight | 16px | 400 | 1.15 | 0.1px | UI labels, compact contexts |\n| Button | 16px | 600 | 1.15 | 0.3px | Semibold, slightly wider tracking |\n| Nav Link | 16px | 500 | 1.40 | 0.3px | Links in navigation |\n| Caption | 14px | 500 | 1.14 | 0.2px | Small labels, metadata |\n| Caption Bold | 14px | 600 | 1.40 | 0px | Emphasized captions |\n| Small | 12px | 600 | 1.33 | 0px | Badges, tags, micro-labels |\n| Small Link | 12px | 400 | 1.50 | 0.4px | Footer links, fine print |\n| Code | 14px (GeistMono) | 500 | 1.60 | 0.3px | Code blocks, technical content |\n| Code Small | 12px (GeistMono) | 400 | 1.60 | 0.2px | Inline code, terminal output |\n\n### Principles\n- **Positive tracking on dark**: Unlike most dark UIs that use tight or neutral letter-spacing, Raycast applies +0.2px to +0.4px \u2014 creating an airy, readable feel that compensates for the dark background\n- **Weight 500 as baseline**: Most body text uses medium weight (500), not regular (400) \u2014 subtle extra heft improves legibility on dark surfaces\n- **Display restraint**: Hero text at 64px/600 is confident but not oversized \u2014 Raycast avoids typographic spectacle in favor of functional elegance\n- **OpenType everywhere**: `ss03` (stylistic set 3) is enabled globally across Inter, giving the typeface a slightly more geometric, tool-like quality\n\n## 4. Component Stylings\n\n### Buttons\n- **Primary Pill**: Transparent background, white text, pill shape (86px radius), multi-layer inset shadow (`rgba(255, 255, 255, 0.1) 0px 1px 0px 0px inset`). Hover: opacity 0.6\n- **Secondary Button**: Transparent background, white text, 6px radius, `1px solid rgba(255, 255, 255, 0.1)` border, subtle drop shadow (`rgba(0, 0, 0, 0.03) 0px 7px 3px`). Hover: opacity 0.6\n- **Ghost Button**: No background or border, gray text (`#6a6b6c`), 86px radius, same inset shadow. Hover: opacity 0.6, text brightens to white\n- **CTA (Download)**: Semi-transparent white background (`hsla(0, 0%, 100%, 0.815)`), dark text (`#18191a`), pill shape. Hover: full white background (`hsl(0, 0%, 100%)`)\n- **Transition**: All buttons use opacity transition for hover rather than background-color change \u2014 a signature Raycast interaction pattern\n\n### Cards & Containers\n- **Standard Card**: `#101111` surface, `1px solid rgba(255, 255, 255, 0.06)` border, 12px\u201316px border-radius\n- **Elevated Card**: Ring shadow `rgb(27, 28, 30) 0px 0px 0px 1px` outer + `rgb(7, 8, 10) 0px 0px 0px 1px inset` inner \u2014 creates a double-ring containment\n- **Feature Card**: 16px\u201320px border-radius, subtle warm glow (`rgba(215, 201, 175, 0.05) 0px 0px 20px 5px`) behind hero elements\n- **Hover**: Cards brighten slightly via border opacity increase or subtle shadow enhancement\n\n### Inputs & Forms\n- Dark input fields with `#07080a` background, `1px solid rgba(255, 255, 255, 0.08)` border, 8px border-radius\n- Focus state: Border brightens, blue glow (`hsla(202, 100%, 67%, 0.15)`) ring appears\n- Text: `#f9f9f9` input color, `#6a6b6c` placeholder\n- Labels: `#9c9c9d` at 14px weight 500\n\n### Navigation\n- **Top nav**: Dark background blending with page, white text links at 16px weight 500\n- **Nav links**: Gray text (`#9c9c9d`) \u2192 white on hover, underline decoration on hover\n- **CTA button**: Semi-transparent white pill at nav end\n- **Mobile**: Collapses to hamburger, maintains dark theme\n- **Sticky**: Nav fixed at top with subtle border separator\n\n### Image Treatment\n- **Product screenshots**: macOS window chrome style \u2014 rounded corners (12px), deep shadows simulating floating windows\n- **Full-bleed sections**: Dark screenshots blend seamlessly into the dark background\n- **Hero illustration**: Diagonal stripe pattern in Raycast Red \u2014 abstract, geometric, brand-defining\n- **App UI embeds**: Showing actual Raycast command palette and extensions \u2014 product as content\n\n### Keyboard Shortcut Keys\n- **Key cap styling**: Gradient background (`#121212` \u2192 `#0d0d0d`), heavy multi-layer shadow (`rgba(0, 0, 0, 0.4) 0px 1.5px 0.5px 2.5px` + inset shadows), creating realistic physical key appearance\n- Border-radius: 4px\u20136px for individual keys\n\n### Badges & Tags\n- **Neutral badge**: `#1b1c1e` background, white text, 6px radius, 14px font at weight 500, `0px 6px` padding\n- Compact, pill-like treatment for categorization\n\n## 5. Layout Principles\n\n### Spacing System\n- **Base unit**: 8px\n- **Scale**: 1px, 2px, 3px, 4px, 8px, 10px, 12px, 16px, 20px, 24px, 32px, 40px\n- **Section padding**: 80px\u2013120px vertical between major sections\n- **Card padding**: 16px\u201332px internal spacing\n- **Component gaps**: 8px\u201316px between related elements\n\n### Grid & Container\n- **Max width**: ~1200px container (breakpoint at 1204px), centered\n- **Column patterns**: Single-column hero, 2\u20133 column feature grids, full-width showcase sections\n- **App showcase**: Product UI presented in centered window frames\n\n### Whitespace Philosophy\n- **Dramatic negative space**: Sections float in vast dark void, creating cinematic pacing between features\n- **Dense product, sparse marketing**: The product UI screenshots are information-dense, but the surrounding marketing copy uses minimal text with generous spacing\n- **Vertical rhythm**: Consistent 24px\u201332px gaps between elements within sections\n\n### Border Radius Scale\n- **2px\u20133px**: Micro-elements, code spans, tiny indicators\n- **4px\u20135px**: Keyboard keys, small interactive elements\n- **6px**: Buttons, badges, tags \u2014 the workhorse radius\n- **8px**: Input fields, inline components\n- **9px\u201311px**: Images, medium containers\n- **12px**: Standard cards, product screenshots\n- **16px**: Large cards, feature sections\n- **20px**: Hero cards, prominent containers\n- **86px+**: Pill buttons, nav CTAs \u2014 full pill shape\n\n## 6. Depth & Elevation\n\n| Level | Treatment | Use |\n|-------|-----------|-----|\n| Level 0 (Void) | No shadow, `#07080a` surface | Page background |\n| Level 1 (Subtle) | `rgba(0, 0, 0, 0.28) 0px 1.189px 2.377px` | Minimal lift, inline elements |\n| Level 2 (Ring) | `rgb(27, 28, 30) 0px 0px 0px 1px` outer + `rgb(7, 8, 10) 0px 0px 0px 1px inset` inner | Card containment, double-ring technique |\n| Level 3 (Button) | `rgba(255, 255, 255, 0.05) 0px 1px 0px 0px inset` + `rgba(255, 255, 255, 0.25) 0px 0px 0px 1px` + `rgba(0, 0, 0, 0.2) 0px -1px 0px 0px inset` | macOS-native button press \u2014 white highlight top, dark inset bottom |\n| Level 4 (Key) | 5-layer shadow stack with inset press effects | Keyboard shortcut key caps \u2014 physical 3D appearance |\n| Level 5 (Floating) | `rgba(0, 0, 0, 0.5) 0px 0px 0px 2px` + `rgba(255, 255, 255, 0.19) 0px 0px 14px` + insets | Command palette, floating panels \u2014 heavy depth with glow |\n\n### Shadow Philosophy\nRaycast's shadow system is the most macOS-native on the web. Multi-layer shadows combine:\n- **Outer rings** for containment (replacing traditional borders)\n- **Inset top highlights** (`rgba(255, 255, 255, 0.05\u20130.25)`) simulating light source from above\n- **Inset bottom darks** (`rgba(0, 0, 0, 0.2)`) simulating shadow underneath\n- The effect is physical: elements feel like glass or brushed metal, not flat rectangles\n\n### Decorative Depth\n- **Warm glow**: `rgba(215, 201, 175, 0.05) 0px 0px 20px 5px` behind featured elements \u2014 a subtle warm aura on the cold dark canvas\n- **Blue info glow**: `rgba(0, 153, 255, 0.15)` for interactive state emphasis\n- **Red danger glow**: `rgba(255, 99, 99, 0.15)` for error/destructive state emphasis\n\n## 7. Do's and Don'ts\n\n### Do\n- Use `#07080a` (not pure black) as the background \u2014 the blue-cold tint is essential to the Raycast feel\n- Apply positive letter-spacing (+0.2px) on body text \u2014 this is deliberately different from most dark UIs\n- Use multi-layer shadows with inset highlights for interactive elements \u2014 the macOS-native depth is signature\n- Keep Raycast Red (`#FF6363`) as punctuation, not pervasive \u2014 reserve it for hero moments and error states\n- Use `rgba(255, 255, 255, 0.06)` borders for card containment \u2014 barely visible, structurally essential\n- Apply weight 500 as the body text baseline \u2014 medium weight improves dark-mode legibility\n- Use pill shapes (86px+ radius) for primary CTAs, rectangular shapes (6px\u20138px) for secondary actions\n- Enable OpenType features `calt`, `kern`, `liga`, `ss03` on all Inter text\n- Use opacity transitions (hover: opacity 0.6) for button interactions, not color changes\n\n### Don't\n- Use pure black (`#000000`) as the background \u2014 the blue tint differentiates Raycast from generic dark themes\n- Apply negative letter-spacing on body text \u2014 Raycast deliberately uses positive spacing for readability\n- Use Raycast Blue as the primary accent for everything \u2014 blue is for interactive/info, red is the brand color\n- Create single-layer flat shadows \u2014 the multi-layer inset system is core to the macOS-native aesthetic\n- Use regular weight (400) for body text when 500 is available \u2014 the extra weight prevents dark-mode text from feeling thin\n- Mix warm and cool borders \u2014 stick to the cool gray (`hsl(195, 5%, 15%)`) border palette\n- Apply heavy drop shadows without inset companions \u2014 shadows always come in pairs (outer + inset)\n- Use decorative elements, gradients, or colorful backgrounds \u2014 the dark void is the stage, content is the performer\n\n## 8. Responsive Behavior\n\n### Breakpoints\n| Name | Width | Key Changes |\n|------|-------|-------------|\n| Mobile | <600px | Single column, stacked cards, hamburger nav, hero text reduces to ~40px |\n| Small Tablet | 600px\u2013768px | 2-column grid begins, nav partially visible |\n| Tablet | 768px\u20131024px | 2\u20133 column features, nav expanding, screenshots scale |\n| Desktop | 1024px\u20131200px | Full layout, all nav links visible, 64px hero display |\n| Large Desktop | >1200px | Max-width container centered, generous side margins |\n\n### Touch Targets\n- Pill buttons: 86px radius with 20px padding \u2014 well above 44px minimum\n- Secondary buttons: 8px padding minimum, but border provides visual target expansion\n- Nav links: 16px text with surrounding padding for accessible touch targets\n\n### Collapsing Strategy\n- **Navigation**: Full horizontal nav \u2192 hamburger at mobile with slide-out menu\n- **Hero**: 64px display \u2192 48px \u2192 36px across breakpoints\n- **Feature grids**: 3-column \u2192 2-column \u2192 single-column stack\n- **Product screenshots**: Scale within containers, maintaining macOS window chrome proportions\n- **Keyboard shortcut displays**: Simplify or hide on mobile where keyboard shortcuts are irrelevant\n\n### Image Behavior\n- Product screenshots scale responsively within fixed-ratio containers\n- Hero diagonal stripe pattern scales proportionally\n- macOS window chrome rounded corners maintained at all sizes\n- No lazy-loading artifacts \u2014 images are critical to the product narrative\n\n## 9. Agent Prompt Guide\n\n### Quick Color Reference\n- Primary Background: Near-Black Blue (`#07080a`)\n- Primary Text: Near White (`#f9f9f9`)\n- Brand Accent: Raycast Red (`#FF6363`)\n- Interactive Blue: Raycast Blue (`hsl(202, 100%, 67%)` / ~`#55b3ff`)\n- Secondary Text: Medium Gray (`#9c9c9d`)\n- Card Surface: Surface 100 (`#101111`)\n- Border: Dark Border (`hsl(195, 5%, 15%)` / ~`#252829`)\n\n### Example Component Prompts\n- \"Create a hero section on #07080a background with 64px Inter heading (weight 600, line-height 1.1), near-white text (#f9f9f9), and a semi-transparent white pill CTA button (hsla(0,0%,100%,0.815), 86px radius, dark text #18191a)\"\n- \"Design a feature card with #101111 background, 1px solid rgba(255,255,255,0.06) border, 16px border-radius, double-ring shadow (rgb(27,28,30) 0px 0px 0px 1px outer), 22px Inter heading, and #9c9c9d body text\"\n- \"Build a navigation bar on dark background (#07080a), Inter links at 16px weight 500 in #9c9c9d, hover to white, and a translucent white pill button at the right end\"\n- \"Create a keyboard shortcut display with key caps using gradient background (#121212\u2192#0d0d0d), 5-layer shadow for physical depth, 4px radius, Inter 12px weight 600 text\"\n- \"Design an alert card with #101111 surface, Raycast Red (#FF6363) left border accent, translucent red glow (hsla(0,100%,69%,0.15)), white heading, and #cecece description text\"\n\n### Iteration Guide\nWhen refining existing screens generated with this design system:\n1. Check the background is `#07080a` not pure black \u2014 the blue tint is critical\n2. Verify letter-spacing is positive (+0.2px) on body text \u2014 negative spacing breaks the Raycast aesthetic\n3. Ensure shadows have both outer and inset layers \u2014 single-layer shadows look flat and wrong\n4. Confirm Inter has OpenType features `calt`, `kern`, `liga`, `ss03` enabled\n5. Test that hover states use opacity transitions (0.6) not color swaps \u2014 this is a core interaction pattern\n";
|
|
2
|
+
|
|
3
|
+
export { raycastBrief };
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
// src/presets/_briefs/raycast.ts
|
|
2
|
+
var raycastBrief = `# Design System Inspired by Raycast
|
|
3
|
+
|
|
4
|
+
## 1. Visual Theme & Atmosphere
|
|
5
|
+
|
|
6
|
+
Raycast's marketing site feels like the dark interior of a precision instrument \u2014 a Swiss watch case carved from obsidian. The background isn't just dark, it's an almost-black blue-tint (\`#07080a\`) that creates a sense of being inside a macOS native application rather than a website. Every surface, every border, every shadow is calibrated to evoke the feeling of a high-performance desktop utility: fast, minimal, trustworthy.
|
|
7
|
+
|
|
8
|
+
The signature move is the layered shadow system borrowed from macOS window chrome: multi-layer box-shadows with inset highlights that simulate physical depth, as if cards and buttons are actual pressed or raised glass elements on a dark desk. Combined with Raycast Red (\`#FF6363\`) \u2014 deployed almost exclusively in the hero's iconic diagonal stripe pattern \u2014 the palette creates a brand that reads as "powerful tool with personality." The red doesn't dominate; it punctuates.
|
|
9
|
+
|
|
10
|
+
Inter is used everywhere \u2014 headings, body, buttons, captions \u2014 with extensive OpenType features (\`calt\`, \`kern\`, \`liga\`, \`ss03\`) creating a consistent, readable typographic voice. The positive letter-spacing (0.2px\u20130.4px on body text) is unusual for a dark UI and gives the text an airy, breathable quality that counterbalances the dense, dark surfaces. GeistMono appears for code elements, reinforcing the developer-tool identity.
|
|
11
|
+
|
|
12
|
+
**Key Characteristics:**
|
|
13
|
+
- Near-black blue-tinted background (\`#07080a\`) \u2014 not pure black, subtly blue-shifted
|
|
14
|
+
- macOS-native shadow system with multi-layer inset highlights simulating physical depth
|
|
15
|
+
- Raycast Red (\`#FF6363\`) as a punctuation color \u2014 hero stripes, not pervasive
|
|
16
|
+
- Inter with positive letter-spacing (0.2px) for an airy, readable dark-mode experience
|
|
17
|
+
- Radix UI component primitives powering the interaction layer
|
|
18
|
+
- Subtle rgba white borders (0.06\u20130.1 opacity) for containment on dark surfaces
|
|
19
|
+
- Keyboard shortcut styling with gradient key caps and heavy shadows
|
|
20
|
+
|
|
21
|
+
## 2. Color Palette & Roles
|
|
22
|
+
|
|
23
|
+
### Primary
|
|
24
|
+
- **Near-Black Blue** (\`#07080a\`): Primary page background \u2014 the foundational void with a subtle blue-cold undertone
|
|
25
|
+
- **Pure White** (\`#ffffff\`): Primary heading text, high-emphasis elements
|
|
26
|
+
- **Raycast Red** (\`#FF6363\` / \`hsl(0, 100%, 69%)\`): Brand accent \u2014 hero stripes, danger states, critical highlights
|
|
27
|
+
|
|
28
|
+
### Secondary & Accent
|
|
29
|
+
- **Raycast Blue** (\`hsl(202, 100%, 67%)\` / ~\`#55b3ff\`): Interactive accent \u2014 links, focus states, selected items
|
|
30
|
+
- **Raycast Green** (\`hsl(151, 59%, 59%)\` / ~\`#5fc992\`): Success states, positive indicators
|
|
31
|
+
- **Raycast Yellow** (\`hsl(43, 100%, 60%)\` / ~\`#ffbc33\`): Warning accents, highlights
|
|
32
|
+
- **Blue Transparent** (\`hsla(202, 100%, 67%, 0.15)\`): Blue tint overlay for interactive surfaces
|
|
33
|
+
- **Red Transparent** (\`hsla(0, 100%, 69%, 0.15)\`): Red tint overlay for danger/error surfaces
|
|
34
|
+
|
|
35
|
+
### Surface & Background
|
|
36
|
+
- **Deep Background** (\`#07080a\`): Page canvas, the darkest surface
|
|
37
|
+
- **Surface 100** (\`#101111\`): Elevated surface, card backgrounds
|
|
38
|
+
- **Key Start** (\`#121212\`): Keyboard key gradient start
|
|
39
|
+
- **Key End** (\`#0d0d0d\`): Keyboard key gradient end
|
|
40
|
+
- **Card Surface** (\`#1b1c1e\`): Badge backgrounds, tag fills, elevated containers
|
|
41
|
+
- **Button Foreground** (\`#18191a\`): Dark surface for button text on light backgrounds
|
|
42
|
+
|
|
43
|
+
### Neutrals & Text
|
|
44
|
+
- **Near White** (\`#f9f9f9\` / \`hsl(240, 11%, 96%)\`): Primary body text, high-emphasis content
|
|
45
|
+
- **Light Gray** (\`#cecece\` / \`#cdcdce\`): Secondary body text, descriptions
|
|
46
|
+
- **Silver** (\`#c0c0c0\`): Tertiary text, subdued labels
|
|
47
|
+
- **Medium Gray** (\`#9c9c9d\`): Link default color, secondary navigation
|
|
48
|
+
- **Dim Gray** (\`#6a6b6c\`): Disabled text, low-emphasis labels
|
|
49
|
+
- **Dark Gray** (\`#434345\`): Muted borders, inactive navigation links
|
|
50
|
+
- **Border** (\`hsl(195, 5%, 15%)\` / ~\`#252829\`): Standard border color for cards and dividers
|
|
51
|
+
- **Dark Border** (\`#2f3031\`): Separator lines, table borders
|
|
52
|
+
|
|
53
|
+
### Semantic & Accent
|
|
54
|
+
- **Error Red** (\`hsl(0, 100%, 69%)\`): Error states, destructive actions
|
|
55
|
+
- **Success Green** (\`hsl(151, 59%, 59%)\`): Success confirmations, positive states
|
|
56
|
+
- **Warning Yellow** (\`hsl(43, 100%, 60%)\`): Warnings, attention-needed states
|
|
57
|
+
- **Info Blue** (\`hsl(202, 100%, 67%)\`): Informational highlights, links
|
|
58
|
+
|
|
59
|
+
### Gradient System
|
|
60
|
+
- **Keyboard Key Gradient**: Linear gradient from \`#121212\` (top) to \`#0d0d0d\` (bottom) \u2014 simulates physical key depth
|
|
61
|
+
- **Warm Glow**: \`rgba(215, 201, 175, 0.05)\` radial spread \u2014 subtle warm ambient glow behind featured elements
|
|
62
|
+
|
|
63
|
+
## 3. Typography Rules
|
|
64
|
+
|
|
65
|
+
### Font Family
|
|
66
|
+
- **Primary**: \`Inter\` \u2014 humanist sans-serif, used everywhere. Fallbacks: \`Inter Fallback\`, system sans-serif
|
|
67
|
+
- **System**: \`SF Pro Text\` \u2014 Apple system font for select macOS-native UI elements. Fallbacks: \`SF Pro Icons\`, \`Inter\`, \`Inter Fallback\`
|
|
68
|
+
- **Monospace**: \`GeistMono\` \u2014 Vercel's monospace font for code elements. Fallbacks: \`ui-monospace\`, \`SFMono-Regular\`, \`Roboto Mono\`, \`Menlo\`, \`Monaco\`
|
|
69
|
+
- **OpenType features**: \`calt\`, \`kern\`, \`liga\`, \`ss03\` enabled globally; \`ss02\`, \`ss08\` on display text; \`liga\` disabled (\`"liga" 0\`) on hero headings
|
|
70
|
+
|
|
71
|
+
### Hierarchy
|
|
72
|
+
|
|
73
|
+
| Role | Size | Weight | Line Height | Letter Spacing | Notes |
|
|
74
|
+
|------|------|--------|-------------|----------------|-------|
|
|
75
|
+
| Display Hero | 64px | 600 | 1.10 | 0px | OpenType: liga 0, ss02, ss08 |
|
|
76
|
+
| Section Display | 56px | 400 | 1.17 | 0.2px | OpenType: calt, kern, liga, ss03 |
|
|
77
|
+
| Section Heading | 24px | 500 | normal | 0.2px | OpenType: calt, kern, liga, ss03 |
|
|
78
|
+
| Card Heading | 22px | 400 | 1.15 | 0px | OpenType: calt, kern, liga, ss03 |
|
|
79
|
+
| Sub-heading | 20px | 500 | 1.60 | 0.2px | Relaxed line-height for readability |
|
|
80
|
+
| Body Large | 18px | 400 | 1.15 | 0.2px | OpenType: calt, kern, liga, ss03 |
|
|
81
|
+
| Body | 16px | 500 | 1.60 | 0.2px | Primary body text, relaxed rhythm |
|
|
82
|
+
| Body Tight | 16px | 400 | 1.15 | 0.1px | UI labels, compact contexts |
|
|
83
|
+
| Button | 16px | 600 | 1.15 | 0.3px | Semibold, slightly wider tracking |
|
|
84
|
+
| Nav Link | 16px | 500 | 1.40 | 0.3px | Links in navigation |
|
|
85
|
+
| Caption | 14px | 500 | 1.14 | 0.2px | Small labels, metadata |
|
|
86
|
+
| Caption Bold | 14px | 600 | 1.40 | 0px | Emphasized captions |
|
|
87
|
+
| Small | 12px | 600 | 1.33 | 0px | Badges, tags, micro-labels |
|
|
88
|
+
| Small Link | 12px | 400 | 1.50 | 0.4px | Footer links, fine print |
|
|
89
|
+
| Code | 14px (GeistMono) | 500 | 1.60 | 0.3px | Code blocks, technical content |
|
|
90
|
+
| Code Small | 12px (GeistMono) | 400 | 1.60 | 0.2px | Inline code, terminal output |
|
|
91
|
+
|
|
92
|
+
### Principles
|
|
93
|
+
- **Positive tracking on dark**: Unlike most dark UIs that use tight or neutral letter-spacing, Raycast applies +0.2px to +0.4px \u2014 creating an airy, readable feel that compensates for the dark background
|
|
94
|
+
- **Weight 500 as baseline**: Most body text uses medium weight (500), not regular (400) \u2014 subtle extra heft improves legibility on dark surfaces
|
|
95
|
+
- **Display restraint**: Hero text at 64px/600 is confident but not oversized \u2014 Raycast avoids typographic spectacle in favor of functional elegance
|
|
96
|
+
- **OpenType everywhere**: \`ss03\` (stylistic set 3) is enabled globally across Inter, giving the typeface a slightly more geometric, tool-like quality
|
|
97
|
+
|
|
98
|
+
## 4. Component Stylings
|
|
99
|
+
|
|
100
|
+
### Buttons
|
|
101
|
+
- **Primary Pill**: Transparent background, white text, pill shape (86px radius), multi-layer inset shadow (\`rgba(255, 255, 255, 0.1) 0px 1px 0px 0px inset\`). Hover: opacity 0.6
|
|
102
|
+
- **Secondary Button**: Transparent background, white text, 6px radius, \`1px solid rgba(255, 255, 255, 0.1)\` border, subtle drop shadow (\`rgba(0, 0, 0, 0.03) 0px 7px 3px\`). Hover: opacity 0.6
|
|
103
|
+
- **Ghost Button**: No background or border, gray text (\`#6a6b6c\`), 86px radius, same inset shadow. Hover: opacity 0.6, text brightens to white
|
|
104
|
+
- **CTA (Download)**: Semi-transparent white background (\`hsla(0, 0%, 100%, 0.815)\`), dark text (\`#18191a\`), pill shape. Hover: full white background (\`hsl(0, 0%, 100%)\`)
|
|
105
|
+
- **Transition**: All buttons use opacity transition for hover rather than background-color change \u2014 a signature Raycast interaction pattern
|
|
106
|
+
|
|
107
|
+
### Cards & Containers
|
|
108
|
+
- **Standard Card**: \`#101111\` surface, \`1px solid rgba(255, 255, 255, 0.06)\` border, 12px\u201316px border-radius
|
|
109
|
+
- **Elevated Card**: Ring shadow \`rgb(27, 28, 30) 0px 0px 0px 1px\` outer + \`rgb(7, 8, 10) 0px 0px 0px 1px inset\` inner \u2014 creates a double-ring containment
|
|
110
|
+
- **Feature Card**: 16px\u201320px border-radius, subtle warm glow (\`rgba(215, 201, 175, 0.05) 0px 0px 20px 5px\`) behind hero elements
|
|
111
|
+
- **Hover**: Cards brighten slightly via border opacity increase or subtle shadow enhancement
|
|
112
|
+
|
|
113
|
+
### Inputs & Forms
|
|
114
|
+
- Dark input fields with \`#07080a\` background, \`1px solid rgba(255, 255, 255, 0.08)\` border, 8px border-radius
|
|
115
|
+
- Focus state: Border brightens, blue glow (\`hsla(202, 100%, 67%, 0.15)\`) ring appears
|
|
116
|
+
- Text: \`#f9f9f9\` input color, \`#6a6b6c\` placeholder
|
|
117
|
+
- Labels: \`#9c9c9d\` at 14px weight 500
|
|
118
|
+
|
|
119
|
+
### Navigation
|
|
120
|
+
- **Top nav**: Dark background blending with page, white text links at 16px weight 500
|
|
121
|
+
- **Nav links**: Gray text (\`#9c9c9d\`) \u2192 white on hover, underline decoration on hover
|
|
122
|
+
- **CTA button**: Semi-transparent white pill at nav end
|
|
123
|
+
- **Mobile**: Collapses to hamburger, maintains dark theme
|
|
124
|
+
- **Sticky**: Nav fixed at top with subtle border separator
|
|
125
|
+
|
|
126
|
+
### Image Treatment
|
|
127
|
+
- **Product screenshots**: macOS window chrome style \u2014 rounded corners (12px), deep shadows simulating floating windows
|
|
128
|
+
- **Full-bleed sections**: Dark screenshots blend seamlessly into the dark background
|
|
129
|
+
- **Hero illustration**: Diagonal stripe pattern in Raycast Red \u2014 abstract, geometric, brand-defining
|
|
130
|
+
- **App UI embeds**: Showing actual Raycast command palette and extensions \u2014 product as content
|
|
131
|
+
|
|
132
|
+
### Keyboard Shortcut Keys
|
|
133
|
+
- **Key cap styling**: Gradient background (\`#121212\` \u2192 \`#0d0d0d\`), heavy multi-layer shadow (\`rgba(0, 0, 0, 0.4) 0px 1.5px 0.5px 2.5px\` + inset shadows), creating realistic physical key appearance
|
|
134
|
+
- Border-radius: 4px\u20136px for individual keys
|
|
135
|
+
|
|
136
|
+
### Badges & Tags
|
|
137
|
+
- **Neutral badge**: \`#1b1c1e\` background, white text, 6px radius, 14px font at weight 500, \`0px 6px\` padding
|
|
138
|
+
- Compact, pill-like treatment for categorization
|
|
139
|
+
|
|
140
|
+
## 5. Layout Principles
|
|
141
|
+
|
|
142
|
+
### Spacing System
|
|
143
|
+
- **Base unit**: 8px
|
|
144
|
+
- **Scale**: 1px, 2px, 3px, 4px, 8px, 10px, 12px, 16px, 20px, 24px, 32px, 40px
|
|
145
|
+
- **Section padding**: 80px\u2013120px vertical between major sections
|
|
146
|
+
- **Card padding**: 16px\u201332px internal spacing
|
|
147
|
+
- **Component gaps**: 8px\u201316px between related elements
|
|
148
|
+
|
|
149
|
+
### Grid & Container
|
|
150
|
+
- **Max width**: ~1200px container (breakpoint at 1204px), centered
|
|
151
|
+
- **Column patterns**: Single-column hero, 2\u20133 column feature grids, full-width showcase sections
|
|
152
|
+
- **App showcase**: Product UI presented in centered window frames
|
|
153
|
+
|
|
154
|
+
### Whitespace Philosophy
|
|
155
|
+
- **Dramatic negative space**: Sections float in vast dark void, creating cinematic pacing between features
|
|
156
|
+
- **Dense product, sparse marketing**: The product UI screenshots are information-dense, but the surrounding marketing copy uses minimal text with generous spacing
|
|
157
|
+
- **Vertical rhythm**: Consistent 24px\u201332px gaps between elements within sections
|
|
158
|
+
|
|
159
|
+
### Border Radius Scale
|
|
160
|
+
- **2px\u20133px**: Micro-elements, code spans, tiny indicators
|
|
161
|
+
- **4px\u20135px**: Keyboard keys, small interactive elements
|
|
162
|
+
- **6px**: Buttons, badges, tags \u2014 the workhorse radius
|
|
163
|
+
- **8px**: Input fields, inline components
|
|
164
|
+
- **9px\u201311px**: Images, medium containers
|
|
165
|
+
- **12px**: Standard cards, product screenshots
|
|
166
|
+
- **16px**: Large cards, feature sections
|
|
167
|
+
- **20px**: Hero cards, prominent containers
|
|
168
|
+
- **86px+**: Pill buttons, nav CTAs \u2014 full pill shape
|
|
169
|
+
|
|
170
|
+
## 6. Depth & Elevation
|
|
171
|
+
|
|
172
|
+
| Level | Treatment | Use |
|
|
173
|
+
|-------|-----------|-----|
|
|
174
|
+
| Level 0 (Void) | No shadow, \`#07080a\` surface | Page background |
|
|
175
|
+
| Level 1 (Subtle) | \`rgba(0, 0, 0, 0.28) 0px 1.189px 2.377px\` | Minimal lift, inline elements |
|
|
176
|
+
| Level 2 (Ring) | \`rgb(27, 28, 30) 0px 0px 0px 1px\` outer + \`rgb(7, 8, 10) 0px 0px 0px 1px inset\` inner | Card containment, double-ring technique |
|
|
177
|
+
| Level 3 (Button) | \`rgba(255, 255, 255, 0.05) 0px 1px 0px 0px inset\` + \`rgba(255, 255, 255, 0.25) 0px 0px 0px 1px\` + \`rgba(0, 0, 0, 0.2) 0px -1px 0px 0px inset\` | macOS-native button press \u2014 white highlight top, dark inset bottom |
|
|
178
|
+
| Level 4 (Key) | 5-layer shadow stack with inset press effects | Keyboard shortcut key caps \u2014 physical 3D appearance |
|
|
179
|
+
| Level 5 (Floating) | \`rgba(0, 0, 0, 0.5) 0px 0px 0px 2px\` + \`rgba(255, 255, 255, 0.19) 0px 0px 14px\` + insets | Command palette, floating panels \u2014 heavy depth with glow |
|
|
180
|
+
|
|
181
|
+
### Shadow Philosophy
|
|
182
|
+
Raycast's shadow system is the most macOS-native on the web. Multi-layer shadows combine:
|
|
183
|
+
- **Outer rings** for containment (replacing traditional borders)
|
|
184
|
+
- **Inset top highlights** (\`rgba(255, 255, 255, 0.05\u20130.25)\`) simulating light source from above
|
|
185
|
+
- **Inset bottom darks** (\`rgba(0, 0, 0, 0.2)\`) simulating shadow underneath
|
|
186
|
+
- The effect is physical: elements feel like glass or brushed metal, not flat rectangles
|
|
187
|
+
|
|
188
|
+
### Decorative Depth
|
|
189
|
+
- **Warm glow**: \`rgba(215, 201, 175, 0.05) 0px 0px 20px 5px\` behind featured elements \u2014 a subtle warm aura on the cold dark canvas
|
|
190
|
+
- **Blue info glow**: \`rgba(0, 153, 255, 0.15)\` for interactive state emphasis
|
|
191
|
+
- **Red danger glow**: \`rgba(255, 99, 99, 0.15)\` for error/destructive state emphasis
|
|
192
|
+
|
|
193
|
+
## 7. Do's and Don'ts
|
|
194
|
+
|
|
195
|
+
### Do
|
|
196
|
+
- Use \`#07080a\` (not pure black) as the background \u2014 the blue-cold tint is essential to the Raycast feel
|
|
197
|
+
- Apply positive letter-spacing (+0.2px) on body text \u2014 this is deliberately different from most dark UIs
|
|
198
|
+
- Use multi-layer shadows with inset highlights for interactive elements \u2014 the macOS-native depth is signature
|
|
199
|
+
- Keep Raycast Red (\`#FF6363\`) as punctuation, not pervasive \u2014 reserve it for hero moments and error states
|
|
200
|
+
- Use \`rgba(255, 255, 255, 0.06)\` borders for card containment \u2014 barely visible, structurally essential
|
|
201
|
+
- Apply weight 500 as the body text baseline \u2014 medium weight improves dark-mode legibility
|
|
202
|
+
- Use pill shapes (86px+ radius) for primary CTAs, rectangular shapes (6px\u20138px) for secondary actions
|
|
203
|
+
- Enable OpenType features \`calt\`, \`kern\`, \`liga\`, \`ss03\` on all Inter text
|
|
204
|
+
- Use opacity transitions (hover: opacity 0.6) for button interactions, not color changes
|
|
205
|
+
|
|
206
|
+
### Don't
|
|
207
|
+
- Use pure black (\`#000000\`) as the background \u2014 the blue tint differentiates Raycast from generic dark themes
|
|
208
|
+
- Apply negative letter-spacing on body text \u2014 Raycast deliberately uses positive spacing for readability
|
|
209
|
+
- Use Raycast Blue as the primary accent for everything \u2014 blue is for interactive/info, red is the brand color
|
|
210
|
+
- Create single-layer flat shadows \u2014 the multi-layer inset system is core to the macOS-native aesthetic
|
|
211
|
+
- Use regular weight (400) for body text when 500 is available \u2014 the extra weight prevents dark-mode text from feeling thin
|
|
212
|
+
- Mix warm and cool borders \u2014 stick to the cool gray (\`hsl(195, 5%, 15%)\`) border palette
|
|
213
|
+
- Apply heavy drop shadows without inset companions \u2014 shadows always come in pairs (outer + inset)
|
|
214
|
+
- Use decorative elements, gradients, or colorful backgrounds \u2014 the dark void is the stage, content is the performer
|
|
215
|
+
|
|
216
|
+
## 8. Responsive Behavior
|
|
217
|
+
|
|
218
|
+
### Breakpoints
|
|
219
|
+
| Name | Width | Key Changes |
|
|
220
|
+
|------|-------|-------------|
|
|
221
|
+
| Mobile | <600px | Single column, stacked cards, hamburger nav, hero text reduces to ~40px |
|
|
222
|
+
| Small Tablet | 600px\u2013768px | 2-column grid begins, nav partially visible |
|
|
223
|
+
| Tablet | 768px\u20131024px | 2\u20133 column features, nav expanding, screenshots scale |
|
|
224
|
+
| Desktop | 1024px\u20131200px | Full layout, all nav links visible, 64px hero display |
|
|
225
|
+
| Large Desktop | >1200px | Max-width container centered, generous side margins |
|
|
226
|
+
|
|
227
|
+
### Touch Targets
|
|
228
|
+
- Pill buttons: 86px radius with 20px padding \u2014 well above 44px minimum
|
|
229
|
+
- Secondary buttons: 8px padding minimum, but border provides visual target expansion
|
|
230
|
+
- Nav links: 16px text with surrounding padding for accessible touch targets
|
|
231
|
+
|
|
232
|
+
### Collapsing Strategy
|
|
233
|
+
- **Navigation**: Full horizontal nav \u2192 hamburger at mobile with slide-out menu
|
|
234
|
+
- **Hero**: 64px display \u2192 48px \u2192 36px across breakpoints
|
|
235
|
+
- **Feature grids**: 3-column \u2192 2-column \u2192 single-column stack
|
|
236
|
+
- **Product screenshots**: Scale within containers, maintaining macOS window chrome proportions
|
|
237
|
+
- **Keyboard shortcut displays**: Simplify or hide on mobile where keyboard shortcuts are irrelevant
|
|
238
|
+
|
|
239
|
+
### Image Behavior
|
|
240
|
+
- Product screenshots scale responsively within fixed-ratio containers
|
|
241
|
+
- Hero diagonal stripe pattern scales proportionally
|
|
242
|
+
- macOS window chrome rounded corners maintained at all sizes
|
|
243
|
+
- No lazy-loading artifacts \u2014 images are critical to the product narrative
|
|
244
|
+
|
|
245
|
+
## 9. Agent Prompt Guide
|
|
246
|
+
|
|
247
|
+
### Quick Color Reference
|
|
248
|
+
- Primary Background: Near-Black Blue (\`#07080a\`)
|
|
249
|
+
- Primary Text: Near White (\`#f9f9f9\`)
|
|
250
|
+
- Brand Accent: Raycast Red (\`#FF6363\`)
|
|
251
|
+
- Interactive Blue: Raycast Blue (\`hsl(202, 100%, 67%)\` / ~\`#55b3ff\`)
|
|
252
|
+
- Secondary Text: Medium Gray (\`#9c9c9d\`)
|
|
253
|
+
- Card Surface: Surface 100 (\`#101111\`)
|
|
254
|
+
- Border: Dark Border (\`hsl(195, 5%, 15%)\` / ~\`#252829\`)
|
|
255
|
+
|
|
256
|
+
### Example Component Prompts
|
|
257
|
+
- "Create a hero section on #07080a background with 64px Inter heading (weight 600, line-height 1.1), near-white text (#f9f9f9), and a semi-transparent white pill CTA button (hsla(0,0%,100%,0.815), 86px radius, dark text #18191a)"
|
|
258
|
+
- "Design a feature card with #101111 background, 1px solid rgba(255,255,255,0.06) border, 16px border-radius, double-ring shadow (rgb(27,28,30) 0px 0px 0px 1px outer), 22px Inter heading, and #9c9c9d body text"
|
|
259
|
+
- "Build a navigation bar on dark background (#07080a), Inter links at 16px weight 500 in #9c9c9d, hover to white, and a translucent white pill button at the right end"
|
|
260
|
+
- "Create a keyboard shortcut display with key caps using gradient background (#121212\u2192#0d0d0d), 5-layer shadow for physical depth, 4px radius, Inter 12px weight 600 text"
|
|
261
|
+
- "Design an alert card with #101111 surface, Raycast Red (#FF6363) left border accent, translucent red glow (hsla(0,100%,69%,0.15)), white heading, and #cecece description text"
|
|
262
|
+
|
|
263
|
+
### Iteration Guide
|
|
264
|
+
When refining existing screens generated with this design system:
|
|
265
|
+
1. Check the background is \`#07080a\` not pure black \u2014 the blue tint is critical
|
|
266
|
+
2. Verify letter-spacing is positive (+0.2px) on body text \u2014 negative spacing breaks the Raycast aesthetic
|
|
267
|
+
3. Ensure shadows have both outer and inset layers \u2014 single-layer shadows look flat and wrong
|
|
268
|
+
4. Confirm Inter has OpenType features \`calt\`, \`kern\`, \`liga\`, \`ss03\` enabled
|
|
269
|
+
5. Test that hover states use opacity transitions (0.6) not color swaps \u2014 this is a core interaction pattern
|
|
270
|
+
`;
|
|
271
|
+
export {
|
|
272
|
+
raycastBrief
|
|
273
|
+
};
|
|
274
|
+
//# sourceMappingURL=raycast.js.map
|