@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 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/presets/_briefs/bugatti.ts"],"sourcesContent":["// AUTO-GENERATED — do not hand-edit. Source: https://github.com/voltagent/awesome-design-md\nexport const bugattiBrief = `---\nversion: alpha\nname: Bugatti\ndescription: An austere luxury-automotive interface that uses near-pure black canvas, white uppercase letterspaced display, and full-bleed automotive photography as the only voltage. The system runs three custom Bugatti typefaces — Bugatti Display, Bugatti Text Regular, and Bugatti Monospace — and combines them at modest weights with wide tracking to feel European-engineered, hyper-minimal, and quietly expensive. There is no accent color, no decorative element, no chrome — only photography, typography, and the brand wordmark.\n\ncolors:\n primary: \"#ffffff\"\n ink: \"#ffffff\"\n body: \"#cccccc\"\n body-strong: \"#e6e6e6\"\n muted: \"#999999\"\n muted-soft: \"#666666\"\n hairline: \"#262626\"\n hairline-strong: \"#3a3a3a\"\n canvas: \"#000000\"\n surface-soft: \"#0d0d0d\"\n surface-card: \"#141414\"\n surface-elevated: \"#1f1f1f\"\n on-primary: \"#000000\"\n on-dark: \"#ffffff\"\n on-photo: \"#ffffff\"\n link: \"#c3d9f3\"\n warning: \"#d4a017\"\n success: \"#5fa657\"\n\ntypography:\n display-xl:\n fontFamily: \"Bugatti Display, sans-serif\"\n fontSize: 64px\n fontWeight: 400\n lineHeight: 1.1\n letterSpacing: 4px\n display-lg:\n fontFamily: \"Bugatti Display, sans-serif\"\n fontSize: 48px\n fontWeight: 400\n lineHeight: 1.15\n letterSpacing: 3px\n display-md:\n fontFamily: \"Bugatti Display, sans-serif\"\n fontSize: 32px\n fontWeight: 400\n lineHeight: 1.2\n letterSpacing: 2px\n display-sm:\n fontFamily: \"Bugatti Display, sans-serif\"\n fontSize: 24px\n fontWeight: 400\n lineHeight: 1.3\n letterSpacing: 1.5px\n wordmark:\n fontFamily: \"Bugatti Display, serif\"\n fontSize: 14px\n fontWeight: 400\n lineHeight: 1\n letterSpacing: 6px\n title-md:\n fontFamily: \"Bugatti Display, sans-serif\"\n fontSize: 20px\n fontWeight: 400\n lineHeight: 1.3\n letterSpacing: 1px\n title-sm:\n fontFamily: \"Bugatti Display, sans-serif\"\n fontSize: 16px\n fontWeight: 400\n lineHeight: 1.3\n letterSpacing: 1.5px\n caption-uppercase:\n fontFamily: \"Bugatti Monospace, ui-monospace, monospace\"\n fontSize: 11px\n fontWeight: 400\n lineHeight: 1.4\n letterSpacing: 2px\n body-md:\n fontFamily: \"Bugatti Text Regular, serif\"\n fontSize: 16px\n fontWeight: 400\n lineHeight: 1.5\n letterSpacing: 0\n body-sm:\n fontFamily: \"Bugatti Text Regular, serif\"\n fontSize: 14px\n fontWeight: 400\n lineHeight: 1.5\n letterSpacing: 0\n button:\n fontFamily: \"Bugatti Monospace, ui-monospace, monospace\"\n fontSize: 14px\n fontWeight: 400\n lineHeight: 1\n letterSpacing: 2.5px\n nav-link:\n fontFamily: \"Bugatti Monospace, ui-monospace, monospace\"\n fontSize: 12px\n fontWeight: 400\n lineHeight: 1.4\n letterSpacing: 2px\n\nrounded:\n none: 0px\n pill: 9999px\n full: 9999px\n\nspacing:\n xxs: 4px\n xs: 8px\n sm: 12px\n md: 16px\n lg: 24px\n xl: 40px\n xxl: 64px\n section: 120px\n\ncomponents:\n button-primary:\n backgroundColor: transparent\n textColor: \"{colors.on-dark}\"\n typography: \"{typography.button}\"\n rounded: \"{rounded.pill}\"\n padding: 14px 32px\n height: 44px\n button-icon:\n backgroundColor: transparent\n textColor: \"{colors.on-dark}\"\n rounded: \"{rounded.full}\"\n size: 40px\n text-link:\n backgroundColor: transparent\n textColor: \"{colors.link}\"\n typography: \"{typography.button}\"\n top-nav:\n backgroundColor: transparent\n textColor: \"{colors.on-dark}\"\n typography: \"{typography.nav-link}\"\n height: 56px\n wordmark-display:\n backgroundColor: transparent\n textColor: \"{colors.on-dark}\"\n typography: \"{typography.wordmark}\"\n hero-photo-band:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.on-dark}\"\n typography: \"{typography.display-xl}\"\n padding: 96px\n caption-overlay:\n backgroundColor: transparent\n textColor: \"{colors.on-dark}\"\n typography: \"{typography.caption-uppercase}\"\n career-callout-card:\n backgroundColor: \"{colors.surface-card}\"\n textColor: \"{colors.on-dark}\"\n typography: \"{typography.body-sm}\"\n rounded: \"{rounded.none}\"\n padding: 16px\n width: 320px\n model-photo-card:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.on-dark}\"\n typography: \"{typography.display-md}\"\n rounded: \"{rounded.none}\"\n newsroom-article-card:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.on-dark}\"\n typography: \"{typography.title-md}\"\n rounded: \"{rounded.none}\"\n padding: 24px\n career-listing-row:\n backgroundColor: transparent\n textColor: \"{colors.on-dark}\"\n typography: \"{typography.title-md}\"\n padding: 24px 0\n text-input:\n backgroundColor: transparent\n textColor: \"{colors.on-dark}\"\n typography: \"{typography.body-md}\"\n rounded: \"{rounded.none}\"\n padding: 12px 0\n height: 44px\n spec-cell:\n backgroundColor: transparent\n textColor: \"{colors.on-dark}\"\n typography: \"{typography.title-md}\"\n padding: 24px 0\n date-pill:\n backgroundColor: transparent\n textColor: \"{colors.muted}\"\n typography: \"{typography.caption-uppercase}\"\n category-tag:\n backgroundColor: transparent\n textColor: \"{colors.muted}\"\n typography: \"{typography.caption-uppercase}\"\n cta-band-photo:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.on-dark}\"\n typography: \"{typography.display-md}\"\n padding: 80px\n footer:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.muted}\"\n typography: \"{typography.body-sm}\"\n padding: 64px\n---\n\n## Overview\n\nBugatti's marketing surface is the most austere interface in luxury automotive: a near-pure black canvas (\\`{colors.canvas}\\` — #000000) holding white uppercase **letterspaced** display type and full-bleed automotive photography. The system has no accent color, no surface card decoration, no shadows, no gradients, no chrome — only **photography, typography, and the brand wordmark**. Every other luxury auto site in this category (BMW M, Aston Martin, Lamborghini) uses some form of accent color or signature element; Bugatti uses nothing. The empty space, the photograph, and the precisely-tracked Bugatti Display headline ARE the brand.\n\nThe system runs **three custom Bugatti typefaces**: **Bugatti Display** (display headlines, the \"BUGATTI\" wordmark, all caps with wide tracking), **Bugatti Text Regular** (body paragraphs, a serif text face), and **Bugatti Monospace** (button labels, navigation, captions, dates — anywhere precision and machined feel matters). The split is deliberate and unbreakable: never use Bugatti Text in a button, never use Bugatti Monospace in a paragraph.\n\nDisplay sizes use weight 400 (regular) — never bold. Visual emphasis comes from **size and tracking**, not weight. Letter-spacing on the wordmark is 6px; on display headlines 2-4px; on uppercase labels 2-2.5px. Tight tracking is a brand violation. The wide spacing creates the \"engineered precision\" feel that no other luxury maker matches.\n\n**Key Characteristics:**\n- Pure black canvas (\\`{colors.canvas}\\` — #000000) with white type. The system does not have a light mode.\n- Three custom Bugatti typefaces: **Display** (uppercase headlines + wordmark), **Text Regular** (body serif), **Monospace** (buttons, captions, nav).\n- All display headlines are UPPERCASE with wide letter-spacing (2-4px). Body copy stays sentence-case at standard tracking.\n- No accent color. The only non-monochrome color anywhere on the site is \\`{colors.link}\\` (#c3d9f3) — a desaturated ice-blue used on inline anchor links, and even that appears rarely.\n- Buttons are pill-shaped (\\`{rounded.pill}\\`) with **transparent background** and a 1px white outline. Bugatti is the only luxury-auto brand whose primary CTA is fully transparent.\n- Photography is the only depth element. No drop shadows. No gradients. No card surfaces. Surface cards are \\`{colors.surface-card}\\` (#141414) at most — a barely-different-from-black tone.\n- Section rhythm is generous — \\`{spacing.section}\\` (120px) between major bands, longer than most marketing sites because Bugatti's pages are mostly photography with minimal text density.\n\n## Colors\n\n### Brand & Accent\n- **Primary** (\\`{colors.primary}\\` — #ffffff): The single brand color. White type and white CTA outlines on the black canvas.\n- **Link** (\\`{colors.link}\\` — #c3d9f3): The only non-monochrome color in the system — a desaturated ice-blue used on inline anchor links and rarely on focus states. Bugatti's brand discipline is so tight that this single token is essentially the entire chromatic vocabulary outside black-and-white.\n\n### Surface\n- **Canvas** (\\`{colors.canvas}\\` — #000000): The default page floor across every surface. Pure black.\n- **Surface Soft** (\\`{colors.surface-soft}\\` — #0d0d0d): A barely-different-from-black tone used for spec table rows and dense data sections.\n- **Surface Card** (\\`{colors.surface-card}\\` — #141414): Cards (career callout, newsroom article container, occasional content cards). Even card surfaces stay nearly-black — no contrast jump.\n- **Surface Elevated** (\\`{colors.surface-elevated}\\` — #1f1f1f): One step further from black, used for nested cards on rare dense pages.\n- **Hairline** (\\`{colors.hairline}\\` — #262626): The 1px divider tone. Visible but quiet. Used on table rows, between body sections, around card outlines.\n- **Hairline Strong** (\\`{colors.hairline-strong}\\` — #3a3a3a): A heavier divider used on the underside of input fields (input fields have no border — only an underline hairline).\n\n### Text\n- **Ink / On Dark** (\\`{colors.on-dark}\\` — #ffffff): All headline and primary text on dark canvas.\n- **Body** (\\`{colors.body}\\` — #cccccc): Default running-text color (slightly cooler than pure white). Used in body paragraphs.\n- **Body Strong** (\\`{colors.body-strong}\\` — #e6e6e6): Emphasized body / lead paragraph.\n- **Muted** (\\`{colors.muted}\\` — #999999): Footer links, dates, captions, secondary metadata. Dembrandt's frequency analysis confirms this as palette-2 (count 6, medium confidence).\n- **Muted Soft** (\\`{colors.muted-soft}\\` — #666666): A second-tier muted for very-secondary text (legal disclaimer, copyright line).\n\n### Semantic\n- **Warning** (\\`{colors.warning}\\` — #d4a017): Reserved for technical-warning callouts (specifications, recall notices). Almost never appears on marketing surfaces.\n- **Success** (\\`{colors.success}\\` — #5fa657): Order confirmation states (rare on marketing pages).\n\n## Typography\n\n### Font Family\nThe system runs **three custom Bugatti typefaces** as a rigid trinity:\n1. **Bugatti Display** — All display headlines (h1, h2, h3), the \"BUGATTI\" wordmark, model name plates. Uppercase, wide-tracked. The default for any visual emphasis.\n2. **Bugatti Text Regular** — A serif text face used exclusively for running body copy, lead paragraphs, model descriptions. Standard sentence-case, no letter-spacing.\n3. **Bugatti Monospace** — Button labels, navigation, captions, dates, monospace-precision contexts. Always uppercase with 2-2.5px tracking.\n\nThe split is functional and absolute. Bugatti Display in a button breaks the \"machined precision\" voice; Bugatti Monospace in a paragraph breaks the \"engineered elegance\" voice; Bugatti Text in a button is unthinkable.\n\nThe fallback stack walks \\`-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif\\` for Bugatti Display, \\`Garamond, \"Times New Roman\", serif\\` for Bugatti Text Regular, and \\`ui-monospace, \"SF Mono\", \"Cascadia Mono\", monospace\\` for Bugatti Monospace.\n\n### Hierarchy\n\n| Token | Size | Weight | Line Height | Letter Spacing | Use |\n|---|---|---|---|---|---|\n| \\`{typography.display-xl}\\` | 64px | 400 | 1.1 | 4px | Hero h1 (\"THE BUGATTI F.K.P. HOMMAGE\", \"TOURBILLON\") — Bugatti Display, uppercase, wide-tracked |\n| \\`{typography.display-lg}\\` | 48px | 400 | 1.15 | 3px | Section heads — Bugatti Display, uppercase |\n| \\`{typography.display-md}\\` | 32px | 400 | 1.2 | 2px | Sub-section heads, model names — Bugatti Display |\n| \\`{typography.display-sm}\\` | 24px | 400 | 1.3 | 1.5px | Card titles — Bugatti Display |\n| \\`{typography.wordmark}\\` | 14px | 400 | 1.0 | 6px | The \"BUGATTI\" brand wordmark in the top nav — Bugatti Display, the widest tracking in the system |\n| \\`{typography.title-md}\\` | 20px | 400 | 1.3 | 1px | Career listing titles, intro paragraphs — Bugatti Display |\n| \\`{typography.title-sm}\\` | 16px | 400 | 1.3 | 1.5px | Mid-tier headlines, callout cards |\n| \\`{typography.caption-uppercase}\\` | 11px | 400 | 1.4 | 2px | Photo captions, metadata, \"EXPLORE OUR OPPORTUNITIES\" — Bugatti Monospace, uppercase |\n| \\`{typography.body-md}\\` | 16px | 400 | 1.5 | 0 | Default body — Bugatti Text Regular (a serif face), sentence case, no tracking |\n| \\`{typography.body-sm}\\` | 14px | 400 | 1.5 | 0 | Footer body, fine-print legal — Bugatti Text Regular |\n| \\`{typography.button}\\` | 14px | 400 | 1.0 | 2.5px | All button labels — Bugatti Monospace, uppercase, 2.5px tracking |\n| \\`{typography.nav-link}\\` | 12px | 400 | 1.4 | 2px | Top-nav menu items (\"MENU\", \"STORE\") — Bugatti Monospace |\n\n### Principles\nThe system NEVER uses bold weight. Every Bugatti typeface is set at weight 400 (regular). Visual emphasis comes from:\n1. **Size** — 64px hero vs 16px body is a 4× hierarchy\n2. **Letter-spacing** — 6px wordmark vs 0px body\n3. **Case** — Uppercase display vs sentence-case body\n4. **Family contrast** — Display vs Text Regular vs Monospace\n\nGoing to weight 700 anywhere would break the \"modest engineering\" feel and make Bugatti read like a generic luxury template.\n\nThe serif Bugatti Text Regular sets the brand apart from the all-sans luxury crowd (BMW, Aston Martin, Lamborghini all use sans-serif body type). Bugatti's serif body voice signals literary, considered, slow-reading prose — which is the brand's editorial philosophy.\n\n### Note on Font Substitutes\nIf Bugatti Display, Bugatti Text Regular, and Bugatti Monospace are unavailable, the closest open-source substitutes are:\n- **Bugatti Display** → **Saira Condensed** (variable, weight 400) at +0.05em letter-spacing\n- **Bugatti Text Regular** → **Cormorant Garamond** (regular) or **EB Garamond**\n- **Bugatti Monospace** → **JetBrains Mono** or **IBM Plex Mono** (regular weight)\n\nThe substitution preserves the three-family split, which is more important than exact typeface match.\n\n## Layout\n\n### Spacing System\n- **Base unit:** 4px.\n- **Tokens:** \\`{spacing.xxs}\\` 4px · \\`{spacing.xs}\\` 8px · \\`{spacing.sm}\\` 12px · \\`{spacing.md}\\` 16px · \\`{spacing.lg}\\` 24px · \\`{spacing.xl}\\` 40px · \\`{spacing.xxl}\\` 64px · \\`{spacing.section}\\` 120px.\n- **Section padding:** \\`{spacing.section}\\` (120px) — longer than most marketing sites because Bugatti's bands are mostly photography with minimal text. The empty space frames the cars.\n- **Card internal padding:** \\`{spacing.lg}\\` (24px) for newsroom and content cards; \\`{spacing.md}\\` (16px) for the career callout card; \\`{spacing.xxl}\\` (64px) inside hero photo bands.\n- **Gutters:** \\`{spacing.xl}\\` (40px) between cards in 2-up grids — wider than typical because Bugatti's grids are sparse.\n\n### Grid & Container\n- **Max content width:** ~1280px centered. Hero photo bands bleed full-width with no max.\n- **Editorial body:** Single 12-column grid; photo bands are full-bleed.\n- **Newsroom layout:** 2-up article grid at desktop, 1-up at tablet+mobile.\n- **Career listings:** Single column with 80px row spacing.\n\n### Whitespace Philosophy\nBugatti uses whitespace more aggressively than any luxury-auto competitor. The homepage hero is mostly photography + huge whitespace + a single sentence + a single button. The empty black space below the photograph is intentional — it lets the car breathe. Compressing the whitespace to \"fit more content\" breaks the brand's fundamental contract: that less is more.\n\n## Elevation & Depth\n\n| Level | Treatment | Use |\n|---|---|---|\n| Flat | No shadow, no border | Body, top nav, footer, photo bands |\n| Soft hairline | 1px \\`{colors.hairline}\\` border | Section dividers, table rows |\n| Card surface | \\`{colors.surface-card}\\` background — no shadow | Career callout, newsroom article container |\n| Photographic depth | Full-bleed photography with edge-to-edge crop | Hero bands, model showcases — depth via subject + lens, not chrome |\n\nThe system uses no shadows, no glassmorphism, no gradients. Depth comes entirely from photography (lighting, lens, subject framing) and from the contrast between black canvas and minimally-elevated \\`{colors.surface-card}\\`.\n\n### Decorative Depth\n- None. Bugatti is the only luxury-auto brand without a single decorative element. There is no stripe, no badge, no heritage emblem on the marketing site outside the wordmark itself.\n\n## Shapes\n\n### Border Radius Scale\n\n| Token | Value | Use |\n|---|---|---|\n| \\`{rounded.none}\\` | 0px | All cards, photo containers, inputs, spec cells — the dominant radius |\n| \\`{rounded.pill}\\` | 9999px | All buttons (the only rounded element in the system) |\n| \\`{rounded.full}\\` | 9999px / 50% | Circular icon buttons, avatar surfaces |\n\nThe radius hierarchy is binary: rectangular for everything except buttons, which are pills. No 4px, no 8px, no 12px in between — those would feel \"designed\" rather than \"engineered.\"\n\n### Photography Geometry\nHero photography fills full-width with no rounding. Photo cards inside grids retain \\`{rounded.none}\\` (0px) corners, edge-to-edge images. Model detail shots use 16:9 or wider cinema-aspect ratios. Newsroom thumbnails use 16:9 with 0px corners. There are no avatars or rounded photo crops anywhere on the marketing site.\n\n## Components\n\n### Top Navigation\n\n**\\`top-nav\\`** — A 56px-tall transparent nav bar overlaid on the hero photo at the top of every page. No fill, no border. Carries \"MENU\" at left, the centered **wordmark-display** (\"BUGATTI\" in 14px Bugatti Display with 6px tracking), and \"STORE\" at right with a small bag icon. All labels in \\`{typography.nav-link}\\` (Bugatti Monospace, 12px, 2px tracking, uppercase).\n\n**\\`wordmark-display\\`** — The \"BUGATTI\" wordmark itself. Bugatti Display at 14px, weight 400, 6px letter-spacing. The widest tracking in the system. Centered in the nav bar at every breakpoint.\n\n### Buttons\n\n**\\`button-primary\\`** — The signature primary CTA. Background **transparent**, text \\`{colors.on-dark}\\` (white), 1px white outline, rounded \\`{rounded.pill}\\` (9999px), padding 14px × 32px, height 44px. Type \\`{typography.button}\\` — Bugatti Monospace, uppercase, 14px, 2.5px tracking. The transparent fill is unique to Bugatti — every other luxury-auto brand uses a filled or outlined-with-text-shift button. Bugatti's transparent pill IS the button.\n\n**\\`button-icon\\`** — Circular icon buttons (carousel arrows, share, language switcher). 40 × 40px, transparent background, white outline 1px, rounded \\`{rounded.full}\\`. Same outline-only treatment as the primary button.\n\n**\\`text-link\\`** — Inline body links in \\`{colors.link}\\` (#c3d9f3, the only non-monochrome color in the system). Underlined by default. Type inherits \\`{typography.body-md}\\` (Bugatti Text Regular, serif).\n\n### Cards & Containers\n\n**\\`hero-photo-band\\`** — Full-width black band with full-bleed automotive photography. The h1 in \\`{typography.display-xl}\\` sits center-aligned over the photo near the top, often paired with a small Bugatti Monospace caption (\\`{typography.caption-uppercase}\\`) below the headline and a single \\`{component.button-primary}\\` further down. Vertical padding 96px-200px depending on photo height.\n\n**\\`career-callout-card\\`** — A small right-aligned card that floats over the hero photo on the homepage with a recruiting prompt (\"Are you ready for a new adventure?\"). Background \\`{colors.surface-card}\\`, rounded \\`{rounded.none}\\` (0px), padding \\`{spacing.md}\\` (16px), width 320px. Carries a small thumbnail at top, body line, and a \\`{typography.caption-uppercase}\\` link (\"EXPLORE OUR OPPORTUNITIES\").\n\n**\\`model-photo-card\\`** — Used in model showcases (Tourbillon page, model lineup grid). Background \\`{colors.canvas}\\` (no card surface — just photo on black), rounded \\`{rounded.none}\\`. Top: 16:9 or 21:9 hero shot of the model. Below: model name in \\`{typography.display-md}\\` (32px Bugatti Display, 2px tracking), short specs line in \\`{typography.caption-uppercase}\\` (11px Bugatti Monospace), a \\`{component.text-link}\\` (\"DISCOVER\").\n\n**\\`newsroom-article-card\\`** — Used on the newsroom page (newsroom.bugatti.com). Background \\`{colors.canvas}\\` with hairline border, rounded \\`{rounded.none}\\`, padding \\`{spacing.lg}\\` (24px). Carries a 16:9 thumbnail, a \\`{component.date-pill}\\` (\"12. NOVEMBER 2025\"), a \\`{typography.title-md}\\` headline, and a body excerpt in \\`{typography.body-md}\\` (Bugatti Text Regular serif).\n\n**\\`career-listing-row\\`** — Each row of the careers page job listing. Transparent background, padding 24px vertical, hairline divider between rows. Job title in \\`{typography.title-md}\\` (Bugatti Display 20px) at left; location + department in \\`{typography.caption-uppercase}\\` at right; chevron arrow (→) at far right.\n\n**\\`spec-cell\\`** — Vehicle technical-spec display on model-detail pages (Tourbillon engine specs). Transparent background with hairline dividers between cells (not between cells inside a card). Each spec shows a value in \\`{typography.title-md}\\` at top and a label in \\`{typography.caption-uppercase}\\` below. Padding 24px vertical.\n\n### Inputs & Forms\n\n**\\`text-input\\`** — Standard text input on dark canvas. Background **transparent**, text \\`{colors.on-dark}\\`, 1px hairline-strong bottom border only (no top, left, right border), padding 12px × 0px, height 44px. Type \\`{typography.body-md}\\` (Bugatti Text Regular). Placeholder in \\`{colors.muted}\\`. Focus thickens the bottom border to white.\n\n### Tags & Captions\n\n**\\`caption-overlay\\`** — Photo-overlay caption (e.g., \"HONORING THE OEYRON AND ITS VISIONARY CREATOR\"). Centered or left-aligned over photography in \\`{typography.caption-uppercase}\\` (Bugatti Monospace, 11px, 2px tracking, white).\n\n**\\`category-tag\\`** + **\\`date-pill\\`** — Both render as transparent inline labels in \\`{typography.caption-uppercase}\\`, color \\`{colors.muted}\\`. No background fill, no border. The \"tag\" is the type itself.\n\n### CTA / Footer\n\n**\\`cta-band-photo\\`** — A pre-footer \"Discover Bugatti\" band with full-bleed photography of a Bugatti car at speed and a centered headline in \\`{typography.display-md}\\` + a \\`{component.button-primary}\\` below. Vertical padding 80px. Inherits the editorial gravity of the hero through full-bleed photography.\n\n**\\`footer\\`** — Black footer that closes every page. Background \\`{colors.canvas}\\`, text \\`{colors.muted}\\`. 4-column link list at desktop covering Bugatti / Models / Heritage / Connect. Vertical padding 64px. Bottom row carries the copyright line in \\`{typography.body-sm}\\` (Bugatti Text Regular). The wordmark sits center-aligned at the very bottom. The footer never inverts.\n\n## Do's and Don'ts\n\n### Do\n- Anchor every page with full-bleed automotive photography. The cars are the brand voltage; chrome backs off entirely.\n- Keep all display headlines in UPPERCASE Bugatti Display with 2-4px letter-spacing. The wordmark gets 6px.\n- Use Bugatti Display for headlines, Bugatti Text Regular (serif!) for body, Bugatti Monospace for buttons + captions + nav. The trinity is unbreakable.\n- Keep \\`{component.button-primary}\\` transparent with a 1px white outline. The transparent pill IS the brand button.\n- Use weight 400 everywhere. Bold breaks the brand voice — the system has no bold weight role.\n- Use \\`{spacing.section}\\` (120px) between major editorial bands. The whitespace is part of the brand.\n- Reserve \\`{colors.link}\\` (#c3d9f3) for inline anchor links only. It's the system's only non-monochrome color.\n\n### Don't\n- Don't introduce any accent color outside \\`{colors.link}\\`. Bugatti's brand discipline is total monochrome + photography. Adding a brand-blue or brand-red breaks the contract.\n- Don't bold any type. The system has no bold weight — every typeface stays at 400.\n- Don't fill primary buttons. Transparent + outline only. A solid white button reads as off-brand.\n- Don't compress whitespace between sections. The 120px rhythm is part of the editorial pacing.\n- Don't use rounded corners outside buttons. Cards, photos, inputs all stay at 0px. Rounded cards read as consumer-tech, not luxury-engineered.\n- Don't tighten letter-spacing on display headlines. 2-4px tracking on Bugatti Display is non-negotiable.\n- Don't use Bugatti Display in a button (use Bugatti Monospace) or Bugatti Monospace in a paragraph (use Bugatti Text Regular). The trinity split is the brand voice.\n\n## Responsive Behavior\n\n### Breakpoints\n\n| Name | Width | Key Changes |\n|---|---|---|\n| Mobile | < 768px | Hamburger nav; hero h1 64→32px; career callout card hides; photo bands stay full-bleed; footer 4 cols → 1 |\n| Tablet | 768–1024px | Top nav stays minimal (MENU + wordmark + STORE); 2-up newsroom grid; career rows full-width |\n| Desktop | 1024–1440px | Full minimal top-nav; 2-up newsroom grid; spec tables 4-up |\n| Wide | > 1440px | Same as desktop with more breathing room; max content 1280px |\n\n### Touch Targets\n- \\`{component.button-primary}\\` renders at minimum 44 × 44px (matches WCAG AAA).\n- \\`{component.button-icon}\\` is exactly 40 × 40px.\n- \\`{component.text-input}\\` height is 44px.\n- Career listing rows have 24px vertical padding; effective tap area meets 44px+ with surrounding spacing.\n\n### Collapsing Strategy\n- Top nav stays minimal at all breakpoints (MENU label + wordmark + STORE label). On mobile the labels hide behind a hamburger but the wordmark stays centered.\n- Hero photography stays full-bleed at every breakpoint. Photo crops adjust — wider crops at desktop, vertical crops on mobile.\n- The career callout card on the homepage hides at < 768px (it's a desktop-only floating element).\n- 2-up newsroom grid collapses to 1-up at < 768px.\n- Spec cells reflow from 4-up to 2-up to 1-up; values stay at the same display size regardless of column count.\n\n### Image Behavior\n- Hero photography crops responsively — wider crops at desktop, vertical crops on mobile. Bugatti cars are always shown in motion or at-angle (never flat profiles).\n- Newsroom thumbnails retain 16:9 ratio and 0px corners.\n\n## Iteration Guide\n\n1. Focus on ONE component at a time. Reference its YAML key (\\`{component.hero-photo-band}\\`, \\`{component.career-callout-card}\\`).\n2. New components default to \\`{rounded.none}\\` (0px). Only \\`{component.button-primary}\\` and \\`{component.button-icon}\\` use pill / full radius.\n3. Variants live as separate entries in \\`components:\\`.\n4. Use \\`{token.refs}\\` everywhere — never inline hex.\n5. Never document hover. Default and Active/Pressed states only.\n6. Display headlines stay UPPERCASE Bugatti Display 400 with 2-4px tracking. Body stays sentence-case Bugatti Text Regular (serif). Button labels stay Bugatti Monospace 2.5px tracking. The trinity does not blur.\n7. When in doubt about emphasis: bigger photography before bigger type.\n\n## Known Gaps\n\n- The dembrandt frequency analyzer captured only 3 colors at root level (\\`#000000\\`, \\`#999999\\`, \\`#c3d9f3\\`). The white text (#ffffff) and dark surface tones (\\`#0d0d0d\\`, \\`#141414\\`, \\`#1f1f1f\\`) were inferred from screenshot — Bugatti's pages are so monochrome that the frequency-based analyzer didn't surface body text or surface tones as distinct palette entries.\n- The three Bugatti typefaces (Display, Text Regular, Monospace) are licensed to Bugatti and not available as web fonts publicly. Substitutes are documented in the typography section.\n- Animation and transition timings (photo carousel transitions, hover-reveal of menu, configurator animations) are not in scope.\n- Form validation states beyond the underline-only \\`{component.text-input}\\` are not extracted — error / success states are inferred from general standards, not from the analyzed surfaces.\n- The configurator surface (vehicle build pages with custom paint / interior pickers) was not in the analyzed URL set; its swatch grid, customization controls, and price-summary card are not documented here.\n- The German-language newsroom (newsroom.bugatti.com/de) shares the system with the English Bugatti.com surfaces — no design-system-level differences observed, only language localization.\n- The actual Tourbillon page rendered as a sparse minimal page in the captured screenshot, suggesting either lazy-loaded content or an interactive configurator-style UI that doesn't render fully in static screenshots; engine-spec layout is documented from general luxury-auto patterns informed by the captured spec cell tokens.\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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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 calBrief = "---\nversion: alpha\nname: Cal.com\ndescription: A clean, calendar-software-first interface anchored on white canvas with black primary CTAs and custom Cal Sans display typography. The system reads as friendly modern SaaS \u2014 generous whitespace, soft-rounded cards (~12px), product UI fragments shown directly inside cards, and a dark navy footer that visually closes long-scroll pages. Brand voltage comes from the Cal Sans display headline (a custom geometric face) and from product UI artifacts shown in-card rather than from accent colors.\n\ncolors:\n primary: \"#111111\"\n primary-active: \"#242424\"\n primary-disabled: \"#e5e7eb\"\n ink: \"#111111\"\n body: \"#374151\"\n muted: \"#6b7280\"\n muted-soft: \"#898989\"\n hairline: \"#e5e7eb\"\n hairline-soft: \"#f3f4f6\"\n canvas: \"#ffffff\"\n surface-soft: \"#f8f9fa\"\n surface-card: \"#f5f5f5\"\n surface-strong: \"#e5e7eb\"\n surface-dark: \"#101010\"\n surface-dark-elevated: \"#1a1a1a\"\n on-primary: \"#ffffff\"\n on-dark: \"#ffffff\"\n on-dark-soft: \"#a1a1aa\"\n brand-accent: \"#3b82f6\"\n success: \"#10b981\"\n warning: \"#f59e0b\"\n error: \"#ef4444\"\n badge-orange: \"#fb923c\"\n badge-pink: \"#ec4899\"\n badge-violet: \"#8b5cf6\"\n badge-emerald: \"#34d399\"\n\ntypography:\n display-xl:\n fontFamily: \"Cal Sans, Inter, sans-serif\"\n fontSize: 64px\n fontWeight: 600\n lineHeight: 1.05\n letterSpacing: -2px\n display-lg:\n fontFamily: \"Cal Sans, Inter, sans-serif\"\n fontSize: 48px\n fontWeight: 600\n lineHeight: 1.1\n letterSpacing: -1.5px\n display-md:\n fontFamily: \"Cal Sans, Inter, sans-serif\"\n fontSize: 36px\n fontWeight: 600\n lineHeight: 1.15\n letterSpacing: -1px\n display-sm:\n fontFamily: \"Cal Sans, Inter, sans-serif\"\n fontSize: 28px\n fontWeight: 600\n lineHeight: 1.2\n letterSpacing: -0.5px\n title-lg:\n fontFamily: \"Inter, sans-serif\"\n fontSize: 22px\n fontWeight: 600\n lineHeight: 1.3\n letterSpacing: -0.3px\n title-md:\n fontFamily: \"Inter, sans-serif\"\n fontSize: 18px\n fontWeight: 600\n lineHeight: 1.4\n letterSpacing: 0\n title-sm:\n fontFamily: \"Inter, sans-serif\"\n fontSize: 16px\n fontWeight: 600\n lineHeight: 1.4\n letterSpacing: 0\n body-md:\n fontFamily: \"Inter, sans-serif\"\n fontSize: 16px\n fontWeight: 400\n lineHeight: 1.5\n letterSpacing: 0\n body-sm:\n fontFamily: \"Inter, sans-serif\"\n fontSize: 14px\n fontWeight: 400\n lineHeight: 1.5\n letterSpacing: 0\n caption:\n fontFamily: \"Inter, sans-serif\"\n fontSize: 13px\n fontWeight: 500\n lineHeight: 1.4\n letterSpacing: 0\n code:\n fontFamily: \"JetBrains Mono, ui-monospace, monospace\"\n fontSize: 14px\n fontWeight: 400\n lineHeight: 1.5\n letterSpacing: 0\n button:\n fontFamily: \"Inter, sans-serif\"\n fontSize: 14px\n fontWeight: 600\n lineHeight: 1\n letterSpacing: 0\n nav-link:\n fontFamily: \"Inter, sans-serif\"\n fontSize: 14px\n fontWeight: 500\n lineHeight: 1.4\n letterSpacing: 0\n\nrounded:\n xs: 4px\n sm: 6px\n md: 8px\n lg: 12px\n xl: 16px\n pill: 9999px\n full: 9999px\n\nspacing:\n xxs: 4px\n xs: 8px\n sm: 12px\n md: 16px\n lg: 24px\n xl: 32px\n xxl: 48px\n section: 96px\n\ncomponents:\n button-primary:\n backgroundColor: \"{colors.primary}\"\n textColor: \"{colors.on-primary}\"\n typography: \"{typography.button}\"\n rounded: \"{rounded.md}\"\n padding: 12px 20px\n height: 40px\n button-primary-active:\n backgroundColor: \"{colors.primary-active}\"\n textColor: \"{colors.on-primary}\"\n rounded: \"{rounded.md}\"\n button-primary-disabled:\n backgroundColor: \"{colors.primary-disabled}\"\n textColor: \"{colors.muted}\"\n rounded: \"{rounded.md}\"\n button-secondary:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.button}\"\n rounded: \"{rounded.md}\"\n padding: 12px 20px\n height: 40px\n button-icon-circular:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.ink}\"\n rounded: \"{rounded.full}\"\n size: 36px\n button-text-link:\n backgroundColor: transparent\n textColor: \"{colors.ink}\"\n typography: \"{typography.button}\"\n text-link:\n backgroundColor: transparent\n textColor: \"{colors.ink}\"\n typography: \"{typography.body-md}\"\n top-nav:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.nav-link}\"\n height: 64px\n nav-pill-group:\n backgroundColor: \"{colors.surface-soft}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.nav-link}\"\n rounded: \"{rounded.pill}\"\n padding: 6px\n hero-band:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.display-xl}\"\n padding: 96px\n hero-app-mockup-card:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.ink}\"\n rounded: \"{rounded.xl}\"\n feature-card:\n backgroundColor: \"{colors.surface-card}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.title-md}\"\n rounded: \"{rounded.lg}\"\n padding: 32px\n feature-icon-card:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.title-sm}\"\n rounded: \"{rounded.lg}\"\n padding: 24px\n product-mockup-card:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.ink}\"\n rounded: \"{rounded.lg}\"\n padding: 24px\n testimonial-card:\n backgroundColor: \"{colors.surface-card}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.body-md}\"\n rounded: \"{rounded.lg}\"\n padding: 24px\n pricing-tier-card:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.title-lg}\"\n rounded: \"{rounded.lg}\"\n padding: 32px\n pricing-tier-card-featured:\n backgroundColor: \"{colors.surface-dark}\"\n textColor: \"{colors.on-dark}\"\n typography: \"{typography.title-lg}\"\n rounded: \"{rounded.lg}\"\n padding: 32px\n text-input:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.body-md}\"\n rounded: \"{rounded.md}\"\n padding: 10px 14px\n height: 40px\n text-input-focused:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.ink}\"\n rounded: \"{rounded.md}\"\n category-tab:\n backgroundColor: transparent\n textColor: \"{colors.muted}\"\n typography: \"{typography.nav-link}\"\n padding: 8px 14px\n rounded: \"{rounded.md}\"\n category-tab-active:\n backgroundColor: \"{colors.canvas}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.nav-link}\"\n rounded: \"{rounded.md}\"\n avatar-circle:\n backgroundColor: \"{colors.surface-card}\"\n textColor: \"{colors.ink}\"\n rounded: \"{rounded.full}\"\n size: 36px\n badge-pill:\n backgroundColor: \"{colors.surface-card}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.caption}\"\n rounded: \"{rounded.pill}\"\n padding: 4px 12px\n rating-stars:\n backgroundColor: transparent\n textColor: \"{colors.badge-orange}\"\n typography: \"{typography.caption}\"\n cta-band-light:\n backgroundColor: \"{colors.surface-card}\"\n textColor: \"{colors.ink}\"\n typography: \"{typography.display-sm}\"\n rounded: \"{rounded.lg}\"\n padding: 48px\n footer:\n backgroundColor: \"{colors.surface-dark}\"\n textColor: \"{colors.on-dark-soft}\"\n typography: \"{typography.body-sm}\"\n padding: 64px\n---\n\n## Overview\n\nCal.com's marketing surface is a clean, friendly modern-SaaS interface \u2014 white canvas (`{colors.canvas}` \u2014 #ffffff) with black primary CTAs (`{colors.primary}` \u2014 #111111), custom **Cal Sans** display typography, and `{colors.surface-card}` (#f5f5f5) light-gray cards holding product UI fragments. The system reads as confidently engineered without trying to impress \u2014 every band has clear hierarchy, generous whitespace, and a single primary action.\n\nType voice splits cleanly into two roles: **Cal Sans** (the brand's custom geometric display face \u2014 used for h1, h2, h3, and hero headlines) and **Inter** (used for everything else \u2014 body, buttons, nav, captions). Cal Sans uses weight 600 with negative letter-spacing (-0.5px to -2px depending on size) \u2014 it feels modern, slightly condensed, distinctly Cal.com.\n\nComponent voltage comes from **product UI fragments shown directly inside cards** \u2014 calendar widgets, scheduling forms, automation diagrams, integration tiles. Cal.com doesn't paint marketing illustrations of the product; it shows the actual product chrome at small scale embedded in the marketing flow.\n\nThe footer flips to `{colors.surface-dark}` (#101010) \u2014 a deep near-black that visually closes every long-scroll page. The footer is the only dark surface in the system; everything above stays white-with-light-gray-cards.\n\n**Key Characteristics:**\n- White canvas with black primary CTA (`{colors.primary}` \u2014 #111111). Buttons are `{rounded.md}` (8px) with confident weight-600 labels. Standard friendly-SaaS button.\n- Custom `Cal Sans` display typeface for headlines (substituted with Inter weight 600 here). Negative letter-spacing on display sizes \u2014 geometric, precise, slightly condensed.\n- Light-gray card surfaces (`{colors.surface-card}` \u2014 #f5f5f5) for feature cards, testimonials, and pricing tiers (non-featured). The featured pricing tier flips to `{colors.surface-dark}` (the only dark card on light pages).\n- Product UI fragments embedded directly in cards \u2014 Cal.com shows real schedule pickers, calendar widgets, integration grids inside its marketing cards. Brand voltage from real product chrome at small scale.\n- Nav-pill-group (`{component.nav-pill-group}`) \u2014 a small pill-radius wrapper around grouped nav segments (e.g., the sub-nav switcher between product views). The pill wrapper is one of the system's signature interactive components.\n- Avatars are circular (`{rounded.full}`), 36px diameter, used in testimonial rows and team-listing surfaces.\n- Footer is dark navy (`{colors.surface-dark}` \u2014 #101010) with light text (`{colors.on-dark-soft}` \u2014 #a1a1aa). The dark footer closes every page even though the body above is white.\n- Spacing rhythm is `{spacing.section}` (96px) between major bands \u2014 tight enough to feel modern-SaaS but generous enough to breathe.\n- Border radius is hierarchical: `{rounded.md}` (8px) for buttons + inputs, `{rounded.lg}` (12px) for content cards, `{rounded.xl}` (16px) for the hero app-mockup container, `{rounded.pill}` for nav-pill-group + badges, `{rounded.full}` for avatars + icon buttons.\n\n## Colors\n\n### Brand & Accent\n- **Primary** (`{colors.primary}` \u2014 #111111): The dominant action color. All primary CTAs, h1/h2 display type. Press state shifts to `{colors.primary-active}` (#242424).\n- **Brand Accent** (`{colors.brand-accent}` \u2014 #3b82f6): Used sparely on inline links and on a small badge / \"Customer story\" highlight. Cal.com is a near-monochrome brand \u2014 the blue appears rarely.\n- **Badge Pastels** \u2014 A small pastel set for category badges and avatar fills: `{colors.badge-orange}` (#fb923c), `{colors.badge-pink}` (#ec4899), `{colors.badge-violet}` (#8b5cf6), `{colors.badge-emerald}` (#34d399). These appear on tag pills and small accent moments inside product UI fragments \u2014 never on hero CTAs.\n\n### Surface\n- **Canvas** (`{colors.canvas}` \u2014 #ffffff): The default page floor.\n- **Surface Soft** (`{colors.surface-soft}` \u2014 #f8f9fa): Nav-pill-group background, very-soft section dividers.\n- **Surface Card** (`{colors.surface-card}` \u2014 #f5f5f5): Feature cards, testimonial cards, badge pills, default avatar fills.\n- **Surface Strong** (`{colors.surface-strong}` \u2014 #e5e7eb): Hairline border alternative; disabled button background.\n- **Surface Dark** (`{colors.surface-dark}` \u2014 #101010): The footer background \u2014 the only dark surface on every page. Also used for the featured pricing tier card.\n- **Surface Dark Elevated** (`{colors.surface-dark-elevated}` \u2014 #1a1a1a): Used for nested cards inside the dark footer or featured pricing card.\n- **Hairline** (`{colors.hairline}` \u2014 #e5e7eb): The 1px border tone on light surfaces. Used on input borders, table dividers, content card outlines (sometimes).\n- **Hairline Soft** (`{colors.hairline-soft}` \u2014 #f3f4f6): A barely-visible divider used between sections that share the white canvas.\n\n### Text\n- **Ink** (`{colors.ink}` \u2014 #111111): All headlines and primary text.\n- **Body** (`{colors.body}` \u2014 #374151): Default running-text color.\n- **Muted** (`{colors.muted}` \u2014 #6b7280): Secondary text \u2014 sub-headings, breadcrumbs, footer body.\n- **Muted Soft** (`{colors.muted-soft}` \u2014 #898989): Tertiary text \u2014 captions, fine-print, copyright lines.\n- **On Primary / On Dark** (`{colors.on-primary}` / `{colors.on-dark}` \u2014 #ffffff): Text on primary buttons and dark footer.\n- **On Dark Soft** (`{colors.on-dark-soft}` \u2014 #a1a1aa): Footer body text \u2014 slightly muted white for the link rows.\n\n### Semantic\n- **Success** (`{colors.success}` \u2014 #10b981): Confirmation states, success badges in product UI.\n- **Warning** (`{colors.warning}` \u2014 #f59e0b): Warning callouts.\n- **Error** (`{colors.error}` \u2014 #ef4444): Validation errors.\n\n## Typography\n\n### Font Family\nThe system runs **Cal Sans** for display + brand wordmark and **Inter** for everything else. Cal Sans is Cal.com's custom geometric display typeface \u2014 slightly condensed, weight 600, negative letter-spacing. Inter handles body, buttons, navigation, captions, and tabular code blocks. The fallback stack walks `-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif` for both families.\n\nThe split is functional:\n- Cal Sans (display, 600 weight, -0.5 to -2px tracking) \u2014 h1, h2, h3\n- Inter (body + UI, 400-600 weight, 0 letter-spacing) \u2014 paragraphs, labels, buttons, nav\n\n### Hierarchy\n\n| Token | Size | Weight | Line Height | Letter Spacing | Use |\n|---|---|---|---|---|---|\n| `{typography.display-xl}` | 64px | 600 | 1.05 | -2px | Homepage h1 (\"The better way to schedule your meetings\") \u2014 Cal Sans |\n| `{typography.display-lg}` | 48px | 600 | 1.1 | -1.5px | Section heads (\"Your all-purpose scheduling app\") \u2014 Cal Sans |\n| `{typography.display-md}` | 36px | 600 | 1.15 | -1px | Sub-section heads, card titles \u2014 Cal Sans |\n| `{typography.display-sm}` | 28px | 600 | 1.2 | -0.5px | CTA-band heads, pricing tier prices \u2014 Cal Sans |\n| `{typography.title-lg}` | 22px | 600 | 1.3 | -0.3px | Pricing plan names \u2014 Inter |\n| `{typography.title-md}` | 18px | 600 | 1.4 | 0 | Feature card titles, intro paragraphs |\n| `{typography.title-sm}` | 16px | 600 | 1.4 | 0 | Small card titles, list labels |\n| `{typography.body-md}` | 16px | 400 | 1.5 | 0 | Default running-text |\n| `{typography.body-sm}` | 14px | 400 | 1.5 | 0 | Footer body, fine-print |\n| `{typography.caption}` | 13px | 500 | 1.4 | 0 | Badge labels, captions |\n| `{typography.code}` | 14px | 400 | 1.5 | 0 | Code snippets, API examples \u2014 JetBrains Mono |\n| `{typography.button}` | 14px | 600 | 1.0 | 0 | Standard button labels |\n| `{typography.nav-link}` | 14px | 500 | 1.4 | 0 | Top-nav menu items |\n\n### Principles\nCal Sans is the brand voice \u2014 every display headline uses it. Inter handles the supporting type. The boundary is strict: never put body copy in Cal Sans, never put a display headline in Inter. Cal Sans without negative letter-spacing reads as off-brand \u2014 the -0.5 to -2px tracking is part of the voice.\n\nDisplay weight stays at 600 across all sizes \u2014 never 700, never 500. The middle weight is what makes Cal Sans feel modern and confident without becoming bombastic.\n\n### Note on Font Substitutes\nIf Cal Sans is unavailable, **Inter** at weight 600 with -0.04em letter-spacing is a usable approximation. The geometric character of Cal Sans differs from Inter's humanist forms, but the substitution preserves the weight + tracking signature. **Manrope** at weight 700 is another close alternative.\n\n## Layout\n\n### Spacing System\n- **Base unit:** 4px.\n- **Tokens:** `{spacing.xxs}` 4px \u00B7 `{spacing.xs}` 8px \u00B7 `{spacing.sm}` 12px \u00B7 `{spacing.md}` 16px \u00B7 `{spacing.lg}` 24px \u00B7 `{spacing.xl}` 32px \u00B7 `{spacing.xxl}` 48px \u00B7 `{spacing.section}` 96px.\n- **Section padding:** `{spacing.section}` (96px) \u2014 the universal vertical rhythm between editorial bands.\n- **Card internal padding:** `{spacing.xl}` (32px) for feature cards and pricing tier cards; `{spacing.lg}` (24px) for testimonial and product-mockup cards.\n- **Gutters:** `{spacing.lg}` (24px) between cards in 3-up grids; `{spacing.md}` (16px) inside footer columns.\n\n### Grid & Container\n- **Max content width:** ~1200px centered on marketing pages.\n- **Editorial body:** Single 12-column grid; hero band often uses 7/5 split (h1 left, app mockup card right).\n- **Feature card grids:** 3-up at desktop, 2-up at tablet, 1-up at mobile.\n- **Pricing grid:** 4-up at desktop, 2-up at tablet, 1-up at mobile.\n- **Footer:** 4-column link list at desktop, wrapping to 2-up at tablet, 1-up at mobile.\n\n### Whitespace Philosophy\nCal.com uses generous but not excessive whitespace \u2014 section padding sits at 96px (modern-SaaS standard), and card internal padding stays at 32px. The rhythm is calibrated for fast scanning: every band has a single h1 + h2 + supporting cards, never densely packed lists. The result reads as confident-not-shouting.\n\n## Elevation & Depth\n\n| Level | Treatment | Use |\n|---|---|---|\n| Flat | No shadow, no border | Body sections, top nav, hero bands |\n| Soft hairline | 1px `{colors.hairline}` border | Inputs, table dividers, occasionally on cards |\n| Card surface | `{colors.surface-card}` background \u2014 no shadow | Feature cards, testimonials |\n| Subtle drop shadow | Faint shadow at low alpha | Pricing tier cards, hover-elevated states (the system uses `0 1px 2px rgba(0,0,0,0.05)` and `0 4px 12px rgba(0,0,0,0.08)`) |\n| Featured tier | `{colors.surface-dark}` background, no shadow needed | The featured pricing tier inverts to dark surface \u2014 color contrast does the elevation work |\n\nThe elevation philosophy is **soft and modern** \u2014 small drop shadows on elevated cards, color-block contrast for emphasis. No heavy shadows, no neumorphism, no glassmorphism.\n\n### Decorative Depth\n- Calendar widgets and product UI fragments embedded inside marketing cards carry their own internal shadows from the product UI itself \u2014 these are not system tokens, they're product chrome shown as content.\n- Avatar circles in testimonial sections sometimes carry pastel fill colors (`{colors.badge-orange}`, `{colors.badge-pink}`, etc.) \u2014 adds a small chromatic flourish without breaking the monochrome brand voice.\n\n## Shapes\n\n### Border Radius Scale\n\n| Token | Value | Use |\n|---|---|---|\n| `{rounded.xs}` | 4px | Almost no use \u2014 reserved for badge accents |\n| `{rounded.sm}` | 6px | Small inline buttons, dropdown items |\n| `{rounded.md}` | 8px | Standard CTA buttons, text inputs, category tabs |\n| `{rounded.lg}` | 12px | Content cards (feature cards, testimonial cards, pricing tier cards) |\n| `{rounded.xl}` | 16px | Hero app-mockup card (a slightly larger radius for the marquee component) |\n| `{rounded.pill}` | 9999px | Nav-pill-group, badge pills |\n| `{rounded.full}` | 9999px / 50% | Avatars, icon buttons |\n\n### Photography Geometry\nAvatar photos use `{rounded.full}` (perfect circles) at 36px or 40px. Product UI fragments inside marketing cards retain their native chrome (which often has its own internal radii \u2014 e.g., calendar grid cells, button rows). Hero illustration zones use 16:9 or 4:3 ratios with `{rounded.xl}` corners.\n\n## Components\n\n### Top Navigation\n\n**`top-nav`** \u2014 White nav bar pinned to the top of every page. 64px tall, `{colors.canvas}` background. Carries the Cal.com wordmark + logo at left (the lowercase \"Cal.com\" with the brand circle), primary horizontal menu (Product, Solutions, Resources, Pricing, Enterprise) center, right-side cluster with \"Sign in\" text-link, \"Sign up free\" `{component.button-primary}`, and a sometimes-visible language selector. Menu items in `{typography.nav-link}` (Inter 14px / 500).\n\n**`nav-pill-group`** \u2014 A small pill-radius wrapper around 2-3 sub-nav segments (e.g., the product-mode switcher between \"Personal\" / \"Teams\" / \"Enterprise\"). Background `{colors.surface-soft}` with internal padding 6px, rounded `{rounded.pill}`. Active segment renders as a white-canvas pill with a subtle drop shadow inside the wrapper. The pill-in-pill treatment is one of Cal.com's signature interactive components.\n\n### Buttons\n\n**`button-primary`** \u2014 The signature primary CTA. Background `{colors.primary}` (#111111), text `{colors.on-primary}`, type `{typography.button}` (Inter 14px / 600), padding 12px \u00D7 20px, height 40px, rounded `{rounded.md}` (8px). Active state `button-primary-active` shifts to `{colors.primary-active}` (#242424).\n\n**`button-secondary`** \u2014 White button with hairline outline. Background `{colors.canvas}`, text `{colors.ink}`, 1px hairline border, same padding + height + radius as primary.\n\n**`button-icon-circular`** \u2014 36 \u00D7 36px circular icon button. Background `{colors.canvas}`, hairline border, ink-color icon. Used for share, \"view more\", carousel arrows.\n\n**`button-text-link`** \u2014 Inline text button, no background. Used for \"Sign in\" in the top nav and inline CTA links inside cards.\n\n**`text-link`** \u2014 Inline body links in `{colors.ink}` (the brand keeps inline links monochrome). Underlined on hover (not documented per the no-hover policy, but mentioned for context).\n\n### Cards & Containers\n\n**`hero-band`** \u2014 White-canvas hero with a 7-5 grid: h1 + sub-headline + button row on the left, `{component.hero-app-mockup-card}` on the right. Vertical padding `{spacing.section}` (96px).\n\n**`hero-app-mockup-card`** \u2014 A larger product-UI mockup card showing the actual Cal.com booking widget with calendar grid, time slots, and a primary \"Confirm\" button inside. Background `{colors.canvas}`, 1px hairline border, rounded `{rounded.xl}` (16px), subtle drop shadow. Used as the hero's right-side artifact.\n\n**`feature-card`** \u2014 Used in 3-up feature grids (\"With us, appointment scheduling is easy\"). Background `{colors.surface-card}` (#f5f5f5), rounded `{rounded.lg}` (12px), internal padding `{spacing.xl}` (32px). Carries a small icon at top, an `{typography.title-md}` headline, and a body description in `{typography.body-md}`.\n\n**`feature-icon-card`** \u2014 A simpler card variant used in 4-up feature grids on lower-density bands. Background `{colors.canvas}` with hairline border, rounded `{rounded.lg}`, padding `{spacing.lg}` (24px). Carries a small icon, `{typography.title-sm}` title, short description.\n\n**`product-mockup-card`** \u2014 A card showing actual Cal.com product UI fragments (workflow editor, calendar grid, integration grid, automation flow). Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.lg}` (24px). The product UI inside has its own internal chrome \u2014 these cards display the product, they don't decorate around it.\n\n**`testimonial-card`** \u2014 Used in customer-quote grids. Background `{colors.surface-card}`, rounded `{rounded.lg}`, padding `{spacing.lg}` (24px). Top row carries a `{component.avatar-circle}` + name + role; below sits the testimonial quote in `{typography.body-md}`.\n\n**`pricing-tier-card`** \u2014 Standard tier card. Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xl}` (32px). Carries the plan name in `{typography.title-lg}`, price in `{typography.display-sm}`, feature checklist in `{typography.body-md}`, and a `{component.button-primary}` at the bottom.\n\n**`pricing-tier-card-featured`** \u2014 The featured tier (typically \"Teams\"). Background flips to `{colors.surface-dark}` (#101010), text inverts to `{colors.on-dark}`. The dark surface IS the featured-tier signal \u2014 no accent border, no badge, no scale shift.\n\n### Inputs & Forms\n\n**`text-input`** \u2014 Standard text input. Background `{colors.canvas}`, text `{colors.ink}`, type `{typography.body-md}`, rounded `{rounded.md}` (8px), padding 10px \u00D7 14px, height 40px. 1px hairline border in `{colors.hairline}`.\n\n**`text-input-focused`** \u2014 Focus state. Border thickens or shifts to `{colors.ink}` for emphasis.\n\n### Tags / Badges\n\n**`badge-pill`** \u2014 Small pill label used for category tags (\"Product\", \"Article\", \"New\") and pastel-fill avatar substitutes. Background `{colors.surface-card}` or one of the badge pastels (`{colors.badge-orange}`, `{colors.badge-pink}`, etc.), text `{colors.ink}`, type `{typography.caption}` (13px / 500), rounded `{rounded.pill}`, padding 4px \u00D7 12px.\n\n**`avatar-circle`** \u2014 36px diameter, rounded `{rounded.full}`. Either holds a photo or a pastel fill with initials in `{typography.caption}`.\n\n**`rating-stars`** \u2014 Inline star rating in `{colors.badge-orange}` (#fb923c). Used near testimonial avatars to display a 5-star satisfaction score.\n\n### Tab / Filter\n\n**`category-tab`** + **`category-tab-active`** \u2014 Used inside the nav-pill-group. Inactive: transparent background, `{colors.muted}` text. Active: `{colors.canvas}` background, `{colors.ink}` text, subtle drop shadow inside the pill-group wrapper. Padding 8px \u00D7 14px, rounded `{rounded.md}`.\n\n### CTA / Footer\n\n**`cta-band-light`** \u2014 A pre-footer \"Smarter, simpler scheduling\" CTA card. Background `{colors.surface-card}`, rounded `{rounded.lg}`, padding `{spacing.xxl}` (48px). Carries an h2 in `{typography.display-sm}`, a sub-line, and a `{component.button-primary}` centered.\n\n**`footer`** \u2014 Dark navy footer that closes every page. Background `{colors.surface-dark}` (#101010), text `{colors.on-dark-soft}`. 4-column link list at desktop covering Product / Solutions / Company / Resources. Vertical padding 64px. The Cal.com wordmark sits at the top-left in `{colors.on-dark}`. The footer is the only dark surface on every page \u2014 the deliberate inversion visually closes the page.\n\n## Do's and Don'ts\n\n### Do\n- Reserve `{colors.primary}` (#111111) for primary CTAs and h1/h2 type. Cal.com's button is near-black, not blue.\n- Use Cal Sans for every display headline. Pair with Inter body. Never blur the boundary.\n- Apply negative letter-spacing on display sizes (-0.5 to -2px). Cal Sans without it reads as off-brand.\n- Use `{component.feature-card}` (light gray) and `{component.product-mockup-card}` (white with chrome) deliberately \u2014 the gray cards signal \"abstract feature claim\", white cards signal \"look at the actual product\".\n- Embed real product UI fragments inside marketing cards. Don't paint marketing illustrations of the product when you can show the product itself.\n- Keep avatar circles at 36px, perfect circles, sometimes with pastel fills. Avatars are the only place where badge pastels appear.\n- Use `{component.nav-pill-group}` for grouped sub-nav segments. The pill-in-pill treatment is signature.\n- End every page with the dark footer. The light-to-dark transition is part of the editorial rhythm.\n\n### Don't\n- Don't use accent colors (`{colors.brand-accent}`, badge pastels) on primary CTAs. The system is monochrome at the action layer.\n- Don't bold display weight beyond 600. Cal Sans at 700 reads as bombastic.\n- Don't use rounded radius beyond `{rounded.xl}` (16px) on cards. Larger radii read as consumer-app, not professional booking software.\n- Don't put dark surface cards anywhere except the footer and the featured pricing tier. The dark surface is a deliberate, scarce signal.\n- Don't repeat the same surface mode in two consecutive bands. Cal.com's pacing alternates white \u2192 light-gray \u2192 white \u2192 product-mockup-card \u2192 white \u2192 dark-footer.\n- Don't add hover state styling beyond what the system already encodes \u2014 primary darkens on press; nothing else changes.\n\n## Responsive Behavior\n\n### Breakpoints\n\n| Name | Width | Key Changes |\n|---|---|---|\n| Mobile | < 768px | Hamburger nav; hero h1 64\u219232px; hero-app-mockup-card stacks below content; feature grids 1-up; pricing 1-up; footer 4 cols \u2192 1 |\n| Tablet | 768\u20131024px | Top nav stays horizontal but tightens; nav-pill-group wraps; feature cards 2-up; pricing 2-up |\n| Desktop | 1024\u20131440px | Full top-nav with all menu items; 3-up feature cards; 4-up pricing tiers |\n| Wide | > 1440px | Same as desktop with more outer breathing room; max content width caps at 1200px |\n\n### Touch Targets\n- `{component.button-primary}` at minimum 40 \u00D7 40px.\n- `{component.button-icon-circular}` at exactly 36 \u00D7 36 \u2014 slightly under WCAG's 44 \u00D7 44 but the centered icon and full-circle silhouette compensate.\n- `{component.text-input}` height is 40px.\n- `{component.category-tab}` rendered inside nav-pill-group has 8 \u00D7 14 padding; effective tap area meets 44px+ with the surrounding pill.\n\n### Collapsing Strategy\n- Top nav collapses to hamburger at < 768px; menu opens as a full-screen sheet.\n- Hero band's 7-5 grid collapses to single-column on mobile \u2014 h1 + sub-head + buttons first, then the app-mockup card below.\n- Feature grids reduce columns rather than scaling cards down.\n- Pricing tier cards collapse 4 \u2192 2 \u2192 1; featured-tier dark surface stays visually distinct at every breakpoint.\n- Nav-pill-group wraps to multi-row on tablet if the segments don't fit horizontally.\n- Avatar + testimonial card layouts stay grid-aligned at every breakpoint.\n\n### Image Behavior\n- Product UI fragments inside cards retain native aspect ratios; the cards themselves resize.\n- Avatar photos crop to circles at every breakpoint.\n- Hero app-mockup card scales proportionally on mobile \u2014 the calendar grid stays legible.\n\n## Iteration Guide\n\n1. Focus on ONE component at a time. Reference its YAML key directly (`{component.feature-card}`, `{component.pricing-tier-card-featured}`).\n2. Variants of an existing component (`-active`, `-disabled`, `-focused`) live as separate entries in `components:`.\n3. Use `{token.refs}` everywhere \u2014 never inline hex.\n4. Never document hover. Default and Active/Pressed states only.\n5. Display headlines stay Cal Sans 600 with negative letter-spacing. Body stays Inter 400. The trinity does not blur.\n6. The dark footer is the only dark surface on most pages. Don't add other dark cards casually.\n7. When in doubt about emphasis: bigger Cal Sans before bolder Cal Sans.\n\n## Known Gaps\n\n- The dembrandt frequency analyzer captured `Buttons: 0 variants` \u2014 Cal.com renders most CTAs as styled `<a>` link elements rather than `<button>` tags, which dembrandt's button selector doesn't capture. Button styles are documented from screenshot ground-truth + standard Cal Sans / Inter baselines.\n- Cal Sans is licensed to Cal.com and not available as a public web font; substitutes are documented in the typography section.\n- The badge pastel set (orange / pink / violet / emerald) is documented from observed avatar fill colors; exact hex values may shift seasonally.\n- Animation and transition timings (calendar slot picker, schedule confirmation, integration grid hover-reveal) are not in scope.\n- Form validation states beyond `{component.text-input-focused}` are not extracted \u2014 error / success states would need a sign-up or booking flow to confirm.\n- The actual booking widget surface (cal.com/{username}) is the product, not a marketing surface; its spec is out of scope.\n- Avatar photos in testimonial sections sometimes carry pastel circular fills with initials instead of photographs; both treatments coexist on the same page.\n";
|
|
2
|
+
|
|
3
|
+
export { calBrief };
|