@aexol/spectral 0.7.0 → 0.7.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/dist/agent/index.js +76 -301
- package/dist/cli.js +11 -0
- package/dist/designer/data/systems/agentic/DESIGN.md +71 -0
- package/dist/designer/data/systems/agentic/components.html +154 -0
- package/dist/designer/data/systems/agentic/tokens.css +63 -0
- package/dist/designer/data/systems/airbnb/DESIGN.md +393 -0
- package/dist/designer/data/systems/airbnb/components.html +1373 -0
- package/dist/designer/data/systems/airbnb/tokens.css +261 -0
- package/dist/designer/data/systems/airtable/DESIGN.md +92 -0
- package/dist/designer/data/systems/airtable/components.html +489 -0
- package/dist/designer/data/systems/airtable/tokens.css +261 -0
- package/dist/designer/data/systems/ant/DESIGN.md +71 -0
- package/dist/designer/data/systems/ant/components.html +154 -0
- package/dist/designer/data/systems/ant/tokens.css +63 -0
- package/dist/designer/data/systems/apple/DESIGN.md +250 -0
- package/dist/designer/data/systems/apple/components.html +749 -0
- package/dist/designer/data/systems/apple/tokens.css +286 -0
- package/dist/designer/data/systems/application/DESIGN.md +71 -0
- package/dist/designer/data/systems/application/components.html +154 -0
- package/dist/designer/data/systems/application/tokens.css +63 -0
- package/dist/designer/data/systems/arc/DESIGN.md +152 -0
- package/dist/designer/data/systems/arc/components.html +432 -0
- package/dist/designer/data/systems/arc/tokens.css +137 -0
- package/dist/designer/data/systems/artistic/DESIGN.md +71 -0
- package/dist/designer/data/systems/artistic/components.html +136 -0
- package/dist/designer/data/systems/artistic/tokens.css +63 -0
- package/dist/designer/data/systems/atelier-zero/DESIGN.md +316 -0
- package/dist/designer/data/systems/atelier-zero/components.html +136 -0
- package/dist/designer/data/systems/atelier-zero/tokens.css +63 -0
- package/dist/designer/data/systems/bento/DESIGN.md +71 -0
- package/dist/designer/data/systems/bento/components.html +136 -0
- package/dist/designer/data/systems/bento/tokens.css +63 -0
- package/dist/designer/data/systems/binance/DESIGN.md +348 -0
- package/dist/designer/data/systems/binance/components.html +550 -0
- package/dist/designer/data/systems/binance/tokens.css +255 -0
- package/dist/designer/data/systems/bmw/DESIGN.md +183 -0
- package/dist/designer/data/systems/bmw/components.html +551 -0
- package/dist/designer/data/systems/bmw/tokens.css +179 -0
- package/dist/designer/data/systems/bmw-m/DESIGN.md +246 -0
- package/dist/designer/data/systems/bmw-m/components.html +342 -0
- package/dist/designer/data/systems/bmw-m/tokens.css +64 -0
- package/dist/designer/data/systems/bold/DESIGN.md +71 -0
- package/dist/designer/data/systems/bold/components.html +136 -0
- package/dist/designer/data/systems/bold/tokens.css +63 -0
- package/dist/designer/data/systems/brutalism/DESIGN.md +71 -0
- package/dist/designer/data/systems/brutalism/components.html +154 -0
- package/dist/designer/data/systems/brutalism/tokens.css +63 -0
- package/dist/designer/data/systems/bugatti/DESIGN.md +271 -0
- package/dist/designer/data/systems/bugatti/components.html +342 -0
- package/dist/designer/data/systems/bugatti/tokens.css +64 -0
- package/dist/designer/data/systems/cafe/DESIGN.md +71 -0
- package/dist/designer/data/systems/cafe/components.html +136 -0
- package/dist/designer/data/systems/cafe/tokens.css +63 -0
- package/dist/designer/data/systems/cal/DESIGN.md +262 -0
- package/dist/designer/data/systems/cal/components.html +376 -0
- package/dist/designer/data/systems/cal/tokens.css +265 -0
- package/dist/designer/data/systems/canva/DESIGN.md +157 -0
- package/dist/designer/data/systems/canva/components.html +461 -0
- package/dist/designer/data/systems/canva/tokens.css +147 -0
- package/dist/designer/data/systems/cisco/DESIGN.md +201 -0
- package/dist/designer/data/systems/cisco/components.html +342 -0
- package/dist/designer/data/systems/cisco/tokens.css +64 -0
- package/dist/designer/data/systems/claude/DESIGN.md +315 -0
- package/dist/designer/data/systems/claude/components.html +483 -0
- package/dist/designer/data/systems/claude/tokens.css +130 -0
- package/dist/designer/data/systems/clay/DESIGN.md +307 -0
- package/dist/designer/data/systems/clay/components.html +136 -0
- package/dist/designer/data/systems/clay/tokens.css +63 -0
- package/dist/designer/data/systems/claymorphism/DESIGN.md +71 -0
- package/dist/designer/data/systems/claymorphism/components.html +136 -0
- package/dist/designer/data/systems/claymorphism/tokens.css +63 -0
- package/dist/designer/data/systems/clean/DESIGN.md +71 -0
- package/dist/designer/data/systems/clean/components.html +136 -0
- package/dist/designer/data/systems/clean/tokens.css +63 -0
- package/dist/designer/data/systems/clickhouse/DESIGN.md +284 -0
- package/dist/designer/data/systems/clickhouse/components.html +506 -0
- package/dist/designer/data/systems/clickhouse/tokens.css +135 -0
- package/dist/designer/data/systems/cohere/DESIGN.md +269 -0
- package/dist/designer/data/systems/cohere/components.html +353 -0
- package/dist/designer/data/systems/cohere/tokens.css +126 -0
- package/dist/designer/data/systems/coinbase/DESIGN.md +132 -0
- package/dist/designer/data/systems/coinbase/components.html +501 -0
- package/dist/designer/data/systems/coinbase/tokens.css +257 -0
- package/dist/designer/data/systems/colorful/DESIGN.md +71 -0
- package/dist/designer/data/systems/colorful/components.html +136 -0
- package/dist/designer/data/systems/colorful/tokens.css +63 -0
- package/dist/designer/data/systems/composio/DESIGN.md +310 -0
- package/dist/designer/data/systems/composio/components.html +342 -0
- package/dist/designer/data/systems/composio/tokens.css +64 -0
- package/dist/designer/data/systems/contemporary/DESIGN.md +71 -0
- package/dist/designer/data/systems/contemporary/components.html +136 -0
- package/dist/designer/data/systems/contemporary/tokens.css +63 -0
- package/dist/designer/data/systems/corporate/DESIGN.md +71 -0
- package/dist/designer/data/systems/corporate/components.html +136 -0
- package/dist/designer/data/systems/corporate/tokens.css +63 -0
- package/dist/designer/data/systems/cosmic/DESIGN.md +71 -0
- package/dist/designer/data/systems/cosmic/components.html +136 -0
- package/dist/designer/data/systems/cosmic/tokens.css +63 -0
- package/dist/designer/data/systems/creative/DESIGN.md +71 -0
- package/dist/designer/data/systems/creative/components.html +136 -0
- package/dist/designer/data/systems/creative/tokens.css +63 -0
- package/dist/designer/data/systems/cursor/DESIGN.md +312 -0
- package/dist/designer/data/systems/cursor/components.html +654 -0
- package/dist/designer/data/systems/cursor/tokens.css +218 -0
- package/dist/designer/data/systems/dashboard/DESIGN.md +71 -0
- package/dist/designer/data/systems/dashboard/components.html +154 -0
- package/dist/designer/data/systems/dashboard/tokens.css +63 -0
- package/dist/designer/data/systems/default/DESIGN.md +62 -0
- package/dist/designer/data/systems/default/components.html +523 -0
- package/dist/designer/data/systems/default/tokens.css +200 -0
- package/dist/designer/data/systems/discord/DESIGN.md +162 -0
- package/dist/designer/data/systems/discord/components.html +359 -0
- package/dist/designer/data/systems/discord/tokens.css +125 -0
- package/dist/designer/data/systems/dithered/DESIGN.md +71 -0
- package/dist/designer/data/systems/dithered/components.html +136 -0
- package/dist/designer/data/systems/dithered/tokens.css +63 -0
- package/dist/designer/data/systems/doodle/DESIGN.md +71 -0
- package/dist/designer/data/systems/doodle/components.html +136 -0
- package/dist/designer/data/systems/doodle/tokens.css +63 -0
- package/dist/designer/data/systems/dramatic/DESIGN.md +71 -0
- package/dist/designer/data/systems/dramatic/components.html +136 -0
- package/dist/designer/data/systems/dramatic/tokens.css +63 -0
- package/dist/designer/data/systems/duolingo/DESIGN.md +154 -0
- package/dist/designer/data/systems/duolingo/components.html +532 -0
- package/dist/designer/data/systems/duolingo/tokens.css +130 -0
- package/dist/designer/data/systems/editorial/DESIGN.md +71 -0
- package/dist/designer/data/systems/editorial/components.html +154 -0
- package/dist/designer/data/systems/editorial/tokens.css +63 -0
- package/dist/designer/data/systems/elegant/DESIGN.md +71 -0
- package/dist/designer/data/systems/elegant/components.html +136 -0
- package/dist/designer/data/systems/elegant/tokens.css +63 -0
- package/dist/designer/data/systems/elevenlabs/DESIGN.md +268 -0
- package/dist/designer/data/systems/elevenlabs/components.html +342 -0
- package/dist/designer/data/systems/elevenlabs/tokens.css +127 -0
- package/dist/designer/data/systems/energetic/DESIGN.md +72 -0
- package/dist/designer/data/systems/energetic/components.html +136 -0
- package/dist/designer/data/systems/energetic/tokens.css +63 -0
- package/dist/designer/data/systems/enterprise/DESIGN.md +71 -0
- package/dist/designer/data/systems/enterprise/components.html +154 -0
- package/dist/designer/data/systems/enterprise/tokens.css +63 -0
- package/dist/designer/data/systems/expo/DESIGN.md +284 -0
- package/dist/designer/data/systems/expo/components.html +342 -0
- package/dist/designer/data/systems/expo/tokens.css +64 -0
- package/dist/designer/data/systems/expressive/DESIGN.md +71 -0
- package/dist/designer/data/systems/expressive/components.html +136 -0
- package/dist/designer/data/systems/expressive/tokens.css +63 -0
- package/dist/designer/data/systems/fantasy/DESIGN.md +71 -0
- package/dist/designer/data/systems/fantasy/components.html +136 -0
- package/dist/designer/data/systems/fantasy/tokens.css +63 -0
- package/dist/designer/data/systems/ferrari/DESIGN.md +317 -0
- package/dist/designer/data/systems/ferrari/components.html +342 -0
- package/dist/designer/data/systems/ferrari/tokens.css +64 -0
- package/dist/designer/data/systems/figma/DESIGN.md +223 -0
- package/dist/designer/data/systems/figma/components.html +344 -0
- package/dist/designer/data/systems/figma/tokens.css +126 -0
- package/dist/designer/data/systems/flat/DESIGN.md +71 -0
- package/dist/designer/data/systems/flat/components.html +136 -0
- package/dist/designer/data/systems/flat/tokens.css +63 -0
- package/dist/designer/data/systems/framer/DESIGN.md +249 -0
- package/dist/designer/data/systems/framer/components.html +438 -0
- package/dist/designer/data/systems/framer/tokens.css +238 -0
- package/dist/designer/data/systems/friendly/DESIGN.md +71 -0
- package/dist/designer/data/systems/friendly/components.html +136 -0
- package/dist/designer/data/systems/friendly/tokens.css +63 -0
- package/dist/designer/data/systems/futuristic/DESIGN.md +71 -0
- package/dist/designer/data/systems/futuristic/components.html +136 -0
- package/dist/designer/data/systems/futuristic/tokens.css +63 -0
- package/dist/designer/data/systems/github/DESIGN.md +155 -0
- package/dist/designer/data/systems/github/components.html +383 -0
- package/dist/designer/data/systems/github/tokens.css +125 -0
- package/dist/designer/data/systems/glassmorphism/DESIGN.md +71 -0
- package/dist/designer/data/systems/glassmorphism/components.html +154 -0
- package/dist/designer/data/systems/glassmorphism/tokens.css +63 -0
- package/dist/designer/data/systems/gradient/DESIGN.md +71 -0
- package/dist/designer/data/systems/gradient/components.html +154 -0
- package/dist/designer/data/systems/gradient/tokens.css +63 -0
- package/dist/designer/data/systems/hashicorp/DESIGN.md +281 -0
- package/dist/designer/data/systems/hashicorp/components.html +502 -0
- package/dist/designer/data/systems/hashicorp/tokens.css +272 -0
- package/dist/designer/data/systems/hud/DESIGN.md +173 -0
- package/dist/designer/data/systems/hud/components.html +136 -0
- package/dist/designer/data/systems/hud/tokens.css +63 -0
- package/dist/designer/data/systems/huggingface/DESIGN.md +149 -0
- package/dist/designer/data/systems/huggingface/components.html +346 -0
- package/dist/designer/data/systems/huggingface/tokens.css +125 -0
- package/dist/designer/data/systems/ibm/DESIGN.md +335 -0
- package/dist/designer/data/systems/ibm/components.html +342 -0
- package/dist/designer/data/systems/ibm/tokens.css +64 -0
- package/dist/designer/data/systems/intercom/DESIGN.md +149 -0
- package/dist/designer/data/systems/intercom/components.html +557 -0
- package/dist/designer/data/systems/intercom/tokens.css +150 -0
- package/dist/designer/data/systems/kami/DESIGN.md +410 -0
- package/dist/designer/data/systems/kami/components.html +601 -0
- package/dist/designer/data/systems/kami/tokens.css +272 -0
- package/dist/designer/data/systems/kraken/DESIGN.md +128 -0
- package/dist/designer/data/systems/kraken/components.html +342 -0
- package/dist/designer/data/systems/kraken/tokens.css +64 -0
- package/dist/designer/data/systems/lamborghini/DESIGN.md +291 -0
- package/dist/designer/data/systems/lamborghini/components.html +342 -0
- package/dist/designer/data/systems/lamborghini/tokens.css +64 -0
- package/dist/designer/data/systems/levels/DESIGN.md +71 -0
- package/dist/designer/data/systems/levels/components.html +154 -0
- package/dist/designer/data/systems/levels/tokens.css +63 -0
- package/dist/designer/data/systems/linear-app/DESIGN.md +370 -0
- package/dist/designer/data/systems/linear-app/components.html +370 -0
- package/dist/designer/data/systems/linear-app/tokens.css +130 -0
- package/dist/designer/data/systems/lingo/DESIGN.md +71 -0
- package/dist/designer/data/systems/lingo/components.html +154 -0
- package/dist/designer/data/systems/lingo/tokens.css +63 -0
- package/dist/designer/data/systems/loom/DESIGN.md +201 -0
- package/dist/designer/data/systems/loom/components.html +446 -0
- package/dist/designer/data/systems/loom/tokens.css +138 -0
- package/dist/designer/data/systems/lovable/DESIGN.md +301 -0
- package/dist/designer/data/systems/lovable/components.html +441 -0
- package/dist/designer/data/systems/lovable/tokens.css +258 -0
- package/dist/designer/data/systems/luxury/DESIGN.md +71 -0
- package/dist/designer/data/systems/luxury/components.html +154 -0
- package/dist/designer/data/systems/luxury/tokens.css +63 -0
- package/dist/designer/data/systems/mastercard/DESIGN.md +368 -0
- package/dist/designer/data/systems/mastercard/components.html +342 -0
- package/dist/designer/data/systems/mastercard/tokens.css +64 -0
- package/dist/designer/data/systems/material/DESIGN.md +71 -0
- package/dist/designer/data/systems/material/components.html +154 -0
- package/dist/designer/data/systems/material/tokens.css +63 -0
- package/dist/designer/data/systems/meta/DESIGN.md +369 -0
- package/dist/designer/data/systems/meta/components.html +398 -0
- package/dist/designer/data/systems/meta/tokens.css +263 -0
- package/dist/designer/data/systems/minimal/DESIGN.md +71 -0
- package/dist/designer/data/systems/minimal/components.html +154 -0
- package/dist/designer/data/systems/minimal/tokens.css +63 -0
- package/dist/designer/data/systems/minimax/DESIGN.md +260 -0
- package/dist/designer/data/systems/minimax/components.html +590 -0
- package/dist/designer/data/systems/minimax/tokens.css +148 -0
- package/dist/designer/data/systems/mintlify/DESIGN.md +329 -0
- package/dist/designer/data/systems/mintlify/components.html +737 -0
- package/dist/designer/data/systems/mintlify/tokens.css +256 -0
- package/dist/designer/data/systems/miro/DESIGN.md +111 -0
- package/dist/designer/data/systems/miro/components.html +342 -0
- package/dist/designer/data/systems/miro/tokens.css +64 -0
- package/dist/designer/data/systems/mission-control/DESIGN.md +474 -0
- package/dist/designer/data/systems/mission-control/components.html +136 -0
- package/dist/designer/data/systems/mission-control/tokens.css +63 -0
- package/dist/designer/data/systems/mistral-ai/DESIGN.md +264 -0
- package/dist/designer/data/systems/mistral-ai/components.html +338 -0
- package/dist/designer/data/systems/mistral-ai/tokens.css +125 -0
- package/dist/designer/data/systems/modern/DESIGN.md +71 -0
- package/dist/designer/data/systems/modern/components.html +154 -0
- package/dist/designer/data/systems/modern/tokens.css +63 -0
- package/dist/designer/data/systems/mongodb/DESIGN.md +269 -0
- package/dist/designer/data/systems/mongodb/components.html +462 -0
- package/dist/designer/data/systems/mongodb/tokens.css +176 -0
- package/dist/designer/data/systems/mono/DESIGN.md +71 -0
- package/dist/designer/data/systems/mono/components.html +136 -0
- package/dist/designer/data/systems/mono/tokens.css +63 -0
- package/dist/designer/data/systems/neobrutalism/DESIGN.md +71 -0
- package/dist/designer/data/systems/neobrutalism/components.html +136 -0
- package/dist/designer/data/systems/neobrutalism/tokens.css +63 -0
- package/dist/designer/data/systems/neon/DESIGN.md +71 -0
- package/dist/designer/data/systems/neon/components.html +136 -0
- package/dist/designer/data/systems/neon/tokens.css +63 -0
- package/dist/designer/data/systems/neumorphism/DESIGN.md +71 -0
- package/dist/designer/data/systems/neumorphism/components.html +136 -0
- package/dist/designer/data/systems/neumorphism/tokens.css +63 -0
- package/dist/designer/data/systems/nike/DESIGN.md +366 -0
- package/dist/designer/data/systems/nike/components.html +512 -0
- package/dist/designer/data/systems/nike/tokens.css +304 -0
- package/dist/designer/data/systems/notion/DESIGN.md +312 -0
- package/dist/designer/data/systems/notion/components.html +413 -0
- package/dist/designer/data/systems/notion/tokens.css +130 -0
- package/dist/designer/data/systems/nvidia/DESIGN.md +296 -0
- package/dist/designer/data/systems/nvidia/components.html +414 -0
- package/dist/designer/data/systems/nvidia/tokens.css +133 -0
- package/dist/designer/data/systems/ollama/DESIGN.md +270 -0
- package/dist/designer/data/systems/ollama/components.html +700 -0
- package/dist/designer/data/systems/ollama/tokens.css +242 -0
- package/dist/designer/data/systems/openai/DESIGN.md +140 -0
- package/dist/designer/data/systems/openai/components.html +382 -0
- package/dist/designer/data/systems/openai/tokens.css +133 -0
- package/dist/designer/data/systems/opencode-ai/DESIGN.md +284 -0
- package/dist/designer/data/systems/opencode-ai/components.html +389 -0
- package/dist/designer/data/systems/opencode-ai/tokens.css +126 -0
- package/dist/designer/data/systems/pacman/DESIGN.md +71 -0
- package/dist/designer/data/systems/pacman/components.html +342 -0
- package/dist/designer/data/systems/pacman/tokens.css +64 -0
- package/dist/designer/data/systems/paper/DESIGN.md +71 -0
- package/dist/designer/data/systems/paper/components.html +136 -0
- package/dist/designer/data/systems/paper/tokens.css +63 -0
- package/dist/designer/data/systems/perplexity/DESIGN.md +286 -0
- package/dist/designer/data/systems/perplexity/components.html +455 -0
- package/dist/designer/data/systems/perplexity/tokens.css +151 -0
- package/dist/designer/data/systems/perspective/DESIGN.md +71 -0
- package/dist/designer/data/systems/perspective/components.html +136 -0
- package/dist/designer/data/systems/perspective/tokens.css +63 -0
- package/dist/designer/data/systems/pinterest/DESIGN.md +233 -0
- package/dist/designer/data/systems/pinterest/components.html +865 -0
- package/dist/designer/data/systems/pinterest/tokens.css +262 -0
- package/dist/designer/data/systems/playstation/DESIGN.md +367 -0
- package/dist/designer/data/systems/playstation/components.html +414 -0
- package/dist/designer/data/systems/playstation/tokens.css +150 -0
- package/dist/designer/data/systems/posthog/DESIGN.md +259 -0
- package/dist/designer/data/systems/posthog/components.html +827 -0
- package/dist/designer/data/systems/posthog/tokens.css +272 -0
- package/dist/designer/data/systems/premium/DESIGN.md +71 -0
- package/dist/designer/data/systems/premium/components.html +154 -0
- package/dist/designer/data/systems/premium/tokens.css +63 -0
- package/dist/designer/data/systems/professional/DESIGN.md +71 -0
- package/dist/designer/data/systems/professional/components.html +136 -0
- package/dist/designer/data/systems/professional/tokens.css +63 -0
- package/dist/designer/data/systems/publication/DESIGN.md +71 -0
- package/dist/designer/data/systems/publication/components.html +154 -0
- package/dist/designer/data/systems/publication/tokens.css +63 -0
- package/dist/designer/data/systems/raycast/DESIGN.md +271 -0
- package/dist/designer/data/systems/raycast/components.html +507 -0
- package/dist/designer/data/systems/raycast/tokens.css +143 -0
- package/dist/designer/data/systems/refined/DESIGN.md +71 -0
- package/dist/designer/data/systems/refined/components.html +136 -0
- package/dist/designer/data/systems/refined/tokens.css +63 -0
- package/dist/designer/data/systems/renault/DESIGN.md +314 -0
- package/dist/designer/data/systems/renault/components.html +154 -0
- package/dist/designer/data/systems/renault/tokens.css +63 -0
- package/dist/designer/data/systems/replicate/DESIGN.md +264 -0
- package/dist/designer/data/systems/replicate/components.html +340 -0
- package/dist/designer/data/systems/replicate/tokens.css +125 -0
- package/dist/designer/data/systems/resend/DESIGN.md +306 -0
- package/dist/designer/data/systems/resend/components.html +839 -0
- package/dist/designer/data/systems/resend/tokens.css +353 -0
- package/dist/designer/data/systems/retro/DESIGN.md +71 -0
- package/dist/designer/data/systems/retro/components.html +136 -0
- package/dist/designer/data/systems/retro/tokens.css +63 -0
- package/dist/designer/data/systems/revolut/DESIGN.md +188 -0
- package/dist/designer/data/systems/revolut/components.html +342 -0
- package/dist/designer/data/systems/revolut/tokens.css +64 -0
- package/dist/designer/data/systems/runwayml/DESIGN.md +247 -0
- package/dist/designer/data/systems/runwayml/components.html +638 -0
- package/dist/designer/data/systems/runwayml/tokens.css +204 -0
- package/dist/designer/data/systems/sanity/DESIGN.md +360 -0
- package/dist/designer/data/systems/sanity/components.html +342 -0
- package/dist/designer/data/systems/sanity/tokens.css +64 -0
- package/dist/designer/data/systems/sentry/DESIGN.md +265 -0
- package/dist/designer/data/systems/sentry/components.html +387 -0
- package/dist/designer/data/systems/sentry/tokens.css +219 -0
- package/dist/designer/data/systems/shadcn/DESIGN.md +71 -0
- package/dist/designer/data/systems/shadcn/components.html +732 -0
- package/dist/designer/data/systems/shadcn/tokens.css +255 -0
- package/dist/designer/data/systems/shopify/DESIGN.md +353 -0
- package/dist/designer/data/systems/shopify/components.html +342 -0
- package/dist/designer/data/systems/shopify/tokens.css +141 -0
- package/dist/designer/data/systems/simple/DESIGN.md +71 -0
- package/dist/designer/data/systems/simple/components.html +136 -0
- package/dist/designer/data/systems/simple/tokens.css +63 -0
- package/dist/designer/data/systems/skeumorphism/DESIGN.md +71 -0
- package/dist/designer/data/systems/skeumorphism/components.html +136 -0
- package/dist/designer/data/systems/skeumorphism/tokens.css +63 -0
- package/dist/designer/data/systems/slack/DESIGN.md +363 -0
- package/dist/designer/data/systems/slack/components.html +387 -0
- package/dist/designer/data/systems/slack/tokens.css +127 -0
- package/dist/designer/data/systems/sleek/DESIGN.md +71 -0
- package/dist/designer/data/systems/sleek/components.html +136 -0
- package/dist/designer/data/systems/sleek/tokens.css +63 -0
- package/dist/designer/data/systems/spacex/DESIGN.md +197 -0
- package/dist/designer/data/systems/spacex/components.html +496 -0
- package/dist/designer/data/systems/spacex/tokens.css +154 -0
- package/dist/designer/data/systems/spacious/DESIGN.md +71 -0
- package/dist/designer/data/systems/spacious/components.html +136 -0
- package/dist/designer/data/systems/spacious/tokens.css +63 -0
- package/dist/designer/data/systems/spotify/DESIGN.md +249 -0
- package/dist/designer/data/systems/spotify/components.html +365 -0
- package/dist/designer/data/systems/spotify/tokens.css +127 -0
- package/dist/designer/data/systems/starbucks/DESIGN.md +583 -0
- package/dist/designer/data/systems/starbucks/components.html +493 -0
- package/dist/designer/data/systems/starbucks/tokens.css +182 -0
- package/dist/designer/data/systems/storytelling/DESIGN.md +71 -0
- package/dist/designer/data/systems/storytelling/components.html +136 -0
- package/dist/designer/data/systems/storytelling/tokens.css +63 -0
- package/dist/designer/data/systems/stripe/DESIGN.md +325 -0
- package/dist/designer/data/systems/stripe/components.html +1018 -0
- package/dist/designer/data/systems/stripe/tokens.css +295 -0
- package/dist/designer/data/systems/supabase/DESIGN.md +258 -0
- package/dist/designer/data/systems/supabase/components.html +741 -0
- package/dist/designer/data/systems/supabase/tokens.css +294 -0
- package/dist/designer/data/systems/superhuman/DESIGN.md +255 -0
- package/dist/designer/data/systems/superhuman/components.html +537 -0
- package/dist/designer/data/systems/superhuman/tokens.css +160 -0
- package/dist/designer/data/systems/tesla/DESIGN.md +289 -0
- package/dist/designer/data/systems/tesla/components.html +724 -0
- package/dist/designer/data/systems/tesla/tokens.css +285 -0
- package/dist/designer/data/systems/tetris/DESIGN.md +71 -0
- package/dist/designer/data/systems/tetris/components.html +342 -0
- package/dist/designer/data/systems/tetris/tokens.css +64 -0
- package/dist/designer/data/systems/theverge/DESIGN.md +342 -0
- package/dist/designer/data/systems/theverge/components.html +342 -0
- package/dist/designer/data/systems/theverge/tokens.css +64 -0
- package/dist/designer/data/systems/together-ai/DESIGN.md +266 -0
- package/dist/designer/data/systems/together-ai/components.html +422 -0
- package/dist/designer/data/systems/together-ai/tokens.css +127 -0
- package/dist/designer/data/systems/totality-festival/DESIGN.md +206 -0
- package/dist/designer/data/systems/totality-festival/components.html +136 -0
- package/dist/designer/data/systems/totality-festival/tokens.css +63 -0
- package/dist/designer/data/systems/trading-terminal/DESIGN.md +178 -0
- package/dist/designer/data/systems/trading-terminal/components.html +154 -0
- package/dist/designer/data/systems/trading-terminal/tokens.css +63 -0
- package/dist/designer/data/systems/uber/DESIGN.md +298 -0
- package/dist/designer/data/systems/uber/components.html +347 -0
- package/dist/designer/data/systems/uber/tokens.css +131 -0
- package/dist/designer/data/systems/urdu/DESIGN.md +1002 -0
- package/dist/designer/data/systems/urdu/components.html +136 -0
- package/dist/designer/data/systems/urdu/tokens.css +63 -0
- package/dist/designer/data/systems/vercel/DESIGN.md +313 -0
- package/dist/designer/data/systems/vercel/components.html +839 -0
- package/dist/designer/data/systems/vercel/tokens.css +270 -0
- package/dist/designer/data/systems/vibrant/DESIGN.md +71 -0
- package/dist/designer/data/systems/vibrant/components.html +136 -0
- package/dist/designer/data/systems/vibrant/tokens.css +63 -0
- package/dist/designer/data/systems/vintage/DESIGN.md +71 -0
- package/dist/designer/data/systems/vintage/components.html +136 -0
- package/dist/designer/data/systems/vintage/tokens.css +63 -0
- package/dist/designer/data/systems/vodafone/DESIGN.md +426 -0
- package/dist/designer/data/systems/vodafone/components.html +342 -0
- package/dist/designer/data/systems/vodafone/tokens.css +64 -0
- package/dist/designer/data/systems/voltagent/DESIGN.md +326 -0
- package/dist/designer/data/systems/voltagent/components.html +154 -0
- package/dist/designer/data/systems/voltagent/tokens.css +63 -0
- package/dist/designer/data/systems/warm-editorial/DESIGN.md +65 -0
- package/dist/designer/data/systems/warm-editorial/components.html +136 -0
- package/dist/designer/data/systems/warm-editorial/tokens.css +63 -0
- package/dist/designer/data/systems/warp/DESIGN.md +256 -0
- package/dist/designer/data/systems/warp/components.html +411 -0
- package/dist/designer/data/systems/warp/tokens.css +156 -0
- package/dist/designer/data/systems/webex/DESIGN.md +207 -0
- package/dist/designer/data/systems/webex/components.html +342 -0
- package/dist/designer/data/systems/webex/tokens.css +64 -0
- package/dist/designer/data/systems/webflow/DESIGN.md +95 -0
- package/dist/designer/data/systems/webflow/components.html +413 -0
- package/dist/designer/data/systems/webflow/tokens.css +191 -0
- package/dist/designer/data/systems/wechat/DESIGN.md +302 -0
- package/dist/designer/data/systems/wechat/components.html +507 -0
- package/dist/designer/data/systems/wechat/tokens.css +176 -0
- package/dist/designer/data/systems/wired/DESIGN.md +281 -0
- package/dist/designer/data/systems/wired/components.html +342 -0
- package/dist/designer/data/systems/wired/tokens.css +64 -0
- package/dist/designer/data/systems/wise/DESIGN.md +176 -0
- package/dist/designer/data/systems/wise/components.html +365 -0
- package/dist/designer/data/systems/wise/tokens.css +141 -0
- package/dist/designer/data/systems/x-ai/DESIGN.md +260 -0
- package/dist/designer/data/systems/x-ai/components.html +460 -0
- package/dist/designer/data/systems/x-ai/tokens.css +268 -0
- package/dist/designer/data/systems/xiaohongshu/DESIGN.md +402 -0
- package/dist/designer/data/systems/xiaohongshu/components.html +865 -0
- package/dist/designer/data/systems/xiaohongshu/tokens.css +193 -0
- package/dist/designer/data/systems/zapier/DESIGN.md +331 -0
- package/dist/designer/data/systems/zapier/components.html +342 -0
- package/dist/designer/data/systems/zapier/tokens.css +64 -0
- package/dist/designer/guidelines.js +176 -0
- package/dist/designer/index.js +236 -0
- package/dist/designer/skills.js +1675 -0
- package/dist/designer/systems.js +216 -0
- package/dist/server/pi-bridge.js +155 -5
- package/dist/server/session-stream.js +45 -1
- package/package.json +1 -1
|
@@ -0,0 +1,398 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<title>Meta — reference components</title>
|
|
7
|
+
<meta
|
|
8
|
+
name="description"
|
|
9
|
+
content="Reference fixture for design-systems/meta. Photography-first retail polish:
|
|
10
|
+
white canvas, Optimistic VF type, Meta Blue (#0064E0) pill CTAs, gallery whitespace."
|
|
11
|
+
/>
|
|
12
|
+
|
|
13
|
+
<style>
|
|
14
|
+
:root {
|
|
15
|
+
--bg: #ffffff;
|
|
16
|
+
--surface: #f7f8fa;
|
|
17
|
+
--surface-warm: #f2f0e6;
|
|
18
|
+
|
|
19
|
+
--fg: #1c2b33;
|
|
20
|
+
--fg-2: #5d6c7b;
|
|
21
|
+
--muted: #65676b;
|
|
22
|
+
--meta: #8595a4;
|
|
23
|
+
|
|
24
|
+
--border: #ced0d4;
|
|
25
|
+
--border-soft: #dee3e9;
|
|
26
|
+
|
|
27
|
+
--accent: #0064e0;
|
|
28
|
+
--accent-on: #ffffff;
|
|
29
|
+
--accent-hover: #0143b5;
|
|
30
|
+
--accent-active: #004bb9;
|
|
31
|
+
|
|
32
|
+
--success: #31a24c;
|
|
33
|
+
--warn: #f7b928;
|
|
34
|
+
--danger: #e41e3f;
|
|
35
|
+
|
|
36
|
+
--font-display: "Optimistic VF", "Optimistic", Inter, Montserrat, Helvetica, Arial, "Noto Sans", sans-serif;
|
|
37
|
+
--font-body: "Optimistic VF", "Optimistic", Inter, Montserrat, Helvetica, Arial, "Noto Sans", sans-serif;
|
|
38
|
+
--font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
|
|
39
|
+
|
|
40
|
+
--text-xs: 12px;
|
|
41
|
+
--text-sm: 14px;
|
|
42
|
+
--text-base: 16px;
|
|
43
|
+
--text-lg: 18px;
|
|
44
|
+
--text-xl: 28px;
|
|
45
|
+
--text-2xl: 36px;
|
|
46
|
+
--text-3xl: 48px;
|
|
47
|
+
--text-4xl: 64px;
|
|
48
|
+
|
|
49
|
+
--leading-body: 1.5;
|
|
50
|
+
--leading-tight: 1.16;
|
|
51
|
+
--tracking-display: -0.01em;
|
|
52
|
+
|
|
53
|
+
--space-1: 4px;
|
|
54
|
+
--space-2: 8px;
|
|
55
|
+
--space-3: 12px;
|
|
56
|
+
--space-4: 16px;
|
|
57
|
+
--space-5: 20px;
|
|
58
|
+
--space-6: 24px;
|
|
59
|
+
--space-8: 32px;
|
|
60
|
+
--space-12: 48px;
|
|
61
|
+
|
|
62
|
+
--section-y-desktop: 80px;
|
|
63
|
+
--section-y-tablet: 64px;
|
|
64
|
+
--section-y-phone: 48px;
|
|
65
|
+
|
|
66
|
+
--radius-sm: 8px;
|
|
67
|
+
--radius-md: 20px;
|
|
68
|
+
--radius-lg: 24px;
|
|
69
|
+
--radius-pill: 100px;
|
|
70
|
+
|
|
71
|
+
--elev-flat: none;
|
|
72
|
+
--elev-ring: 0 0 0 1px var(--border);
|
|
73
|
+
--elev-raised:
|
|
74
|
+
0 12px 28px 0 rgba(0, 0, 0, 0.2),
|
|
75
|
+
0 2px 4px 0 rgba(0, 0, 0, 0.1);
|
|
76
|
+
|
|
77
|
+
--focus-ring: 0 0 0 3px color-mix(in oklab, var(--accent), transparent 70%);
|
|
78
|
+
|
|
79
|
+
--motion-fast: 150ms;
|
|
80
|
+
--motion-base: 200ms;
|
|
81
|
+
--ease-standard: cubic-bezier(0.2, 0, 0, 1);
|
|
82
|
+
|
|
83
|
+
--container-max: 1440px;
|
|
84
|
+
--container-gutter-desktop: 40px;
|
|
85
|
+
--container-gutter-tablet: 24px;
|
|
86
|
+
--container-gutter-phone: 16px;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/* ─── Reset ─────────────────────────────────────────────── */
|
|
90
|
+
*, *::before, *::after { box-sizing: border-box; }
|
|
91
|
+
html, body { margin: 0; padding: 0; }
|
|
92
|
+
body {
|
|
93
|
+
background: var(--bg);
|
|
94
|
+
color: var(--fg);
|
|
95
|
+
font-family: var(--font-body);
|
|
96
|
+
font-size: var(--text-base);
|
|
97
|
+
line-height: var(--leading-body);
|
|
98
|
+
-webkit-font-smoothing: antialiased;
|
|
99
|
+
font-feature-settings: "ss01", "ss02";
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/* ─── Layout ─────────────────────────────────────────────── */
|
|
103
|
+
.container { max-width: var(--container-max); margin-inline: auto; padding-inline: var(--container-gutter-desktop); }
|
|
104
|
+
section { padding-block: var(--section-y-desktop); }
|
|
105
|
+
@media (max-width: 1023px) {
|
|
106
|
+
.container { padding-inline: var(--container-gutter-tablet); }
|
|
107
|
+
section { padding-block: var(--section-y-tablet); }
|
|
108
|
+
}
|
|
109
|
+
@media (max-width: 639px) {
|
|
110
|
+
.container { padding-inline: var(--container-gutter-phone); }
|
|
111
|
+
section { padding-block: var(--section-y-phone); }
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/* Alternating light cadence — DESIGN.md §1 walkthrough rhythm */
|
|
115
|
+
.surface-soft { background: var(--surface); }
|
|
116
|
+
|
|
117
|
+
/* ─── Typography — Optimistic VF, weight carries hierarchy ── */
|
|
118
|
+
h1, h2, h3 {
|
|
119
|
+
font-family: var(--font-display);
|
|
120
|
+
line-height: var(--leading-tight);
|
|
121
|
+
margin: 0;
|
|
122
|
+
color: var(--fg);
|
|
123
|
+
}
|
|
124
|
+
h1 { font-size: var(--text-4xl); font-weight: 500; letter-spacing: var(--tracking-display); }
|
|
125
|
+
h2 { font-size: var(--text-3xl); font-weight: 500; letter-spacing: var(--tracking-display); }
|
|
126
|
+
h3 { font-size: var(--text-lg); font-weight: 700; }
|
|
127
|
+
p { margin: 0; }
|
|
128
|
+
.lead { font-size: var(--text-lg); color: var(--fg-2); line-height: 1.44; font-weight: 300; }
|
|
129
|
+
.body-muted { color: var(--fg-2); }
|
|
130
|
+
.body-meta { color: var(--muted); }
|
|
131
|
+
.body-sm { font-size: var(--text-sm); }
|
|
132
|
+
.eyebrow {
|
|
133
|
+
font-size: var(--text-xs);
|
|
134
|
+
color: var(--muted);
|
|
135
|
+
text-transform: uppercase;
|
|
136
|
+
letter-spacing: 0.12em;
|
|
137
|
+
font-weight: 500;
|
|
138
|
+
}
|
|
139
|
+
.stack-3 > * + * { margin-block-start: var(--space-3); }
|
|
140
|
+
.stack-4 > * + * { margin-block-start: var(--space-4); }
|
|
141
|
+
.stack-6 > * + * { margin-block-start: var(--space-6); }
|
|
142
|
+
.stack-8 > * + * { margin-block-start: var(--space-8); }
|
|
143
|
+
|
|
144
|
+
@media (max-width: 1023px) {
|
|
145
|
+
h1 { font-size: var(--text-3xl); }
|
|
146
|
+
}
|
|
147
|
+
@media (max-width: 639px) {
|
|
148
|
+
h1 { font-size: var(--text-2xl); }
|
|
149
|
+
h2 { font-size: var(--text-xl); }
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/* ─── Buttons — Meta Blue pill ───────────────────────────── */
|
|
153
|
+
.btn {
|
|
154
|
+
display: inline-flex;
|
|
155
|
+
align-items: center;
|
|
156
|
+
gap: var(--space-2);
|
|
157
|
+
padding: 10px 22px;
|
|
158
|
+
border-radius: var(--radius-pill);
|
|
159
|
+
font-family: var(--font-body);
|
|
160
|
+
font-size: var(--text-sm);
|
|
161
|
+
font-weight: 500;
|
|
162
|
+
line-height: 1.43;
|
|
163
|
+
letter-spacing: -0.14px;
|
|
164
|
+
cursor: pointer;
|
|
165
|
+
border: none;
|
|
166
|
+
text-decoration: none;
|
|
167
|
+
transition:
|
|
168
|
+
background-color var(--motion-base) var(--ease-standard),
|
|
169
|
+
color var(--motion-base) var(--ease-standard),
|
|
170
|
+
transform var(--motion-fast) var(--ease-standard);
|
|
171
|
+
}
|
|
172
|
+
.btn:focus-visible { outline: none; box-shadow: var(--focus-ring); }
|
|
173
|
+
/* Primary: Meta Blue pill — the only chromatic action */
|
|
174
|
+
.btn-primary {
|
|
175
|
+
background: var(--accent);
|
|
176
|
+
color: var(--accent-on);
|
|
177
|
+
}
|
|
178
|
+
.btn-primary:hover { background: var(--accent-hover); transform: scale(1.02); }
|
|
179
|
+
.btn-primary:active { background: var(--accent-active); transform: scale(0.98); }
|
|
180
|
+
/* Secondary: outlined pill, Dark Charcoal at 50% opacity per DESIGN.md §4 */
|
|
181
|
+
.btn-secondary {
|
|
182
|
+
background: transparent;
|
|
183
|
+
color: color-mix(in oklab, var(--fg), transparent 50%);
|
|
184
|
+
box-shadow: inset 0 0 0 2px rgba(10, 19, 23, 0.12);
|
|
185
|
+
}
|
|
186
|
+
.btn-secondary:hover {
|
|
187
|
+
background: color-mix(in oklab, var(--fg-2), transparent 30%);
|
|
188
|
+
color: var(--bg);
|
|
189
|
+
box-shadow: inset 0 0 0 2px transparent;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/* ─── Inputs — Dolly form pattern ────────────────────────── */
|
|
193
|
+
.field { display: flex; flex-direction: column; gap: var(--space-2); }
|
|
194
|
+
.field label { font-size: var(--text-sm); font-weight: 500; color: var(--fg); }
|
|
195
|
+
.field input {
|
|
196
|
+
padding: 12px 14px;
|
|
197
|
+
border-radius: var(--radius-sm);
|
|
198
|
+
border: 1px solid var(--border);
|
|
199
|
+
background: var(--bg);
|
|
200
|
+
color: var(--fg);
|
|
201
|
+
font-family: var(--font-body);
|
|
202
|
+
font-size: var(--text-base);
|
|
203
|
+
outline: none;
|
|
204
|
+
transition:
|
|
205
|
+
border-color var(--motion-base) var(--ease-standard),
|
|
206
|
+
box-shadow var(--motion-base) var(--ease-standard);
|
|
207
|
+
}
|
|
208
|
+
.field input:focus-visible {
|
|
209
|
+
border-color: var(--accent);
|
|
210
|
+
box-shadow: var(--focus-ring);
|
|
211
|
+
}
|
|
212
|
+
.field input::placeholder { color: var(--muted); }
|
|
213
|
+
.field-help { font-size: var(--text-xs); color: var(--muted); }
|
|
214
|
+
|
|
215
|
+
/* ─── Cards — 20px radius, dual-shadow elevation on hover ─ */
|
|
216
|
+
.card {
|
|
217
|
+
background: var(--bg);
|
|
218
|
+
border-radius: var(--radius-md);
|
|
219
|
+
padding: var(--space-8);
|
|
220
|
+
display: flex;
|
|
221
|
+
flex-direction: column;
|
|
222
|
+
gap: var(--space-4);
|
|
223
|
+
box-shadow: var(--elev-ring);
|
|
224
|
+
transition:
|
|
225
|
+
transform var(--motion-base) var(--ease-standard),
|
|
226
|
+
box-shadow var(--motion-base) var(--ease-standard);
|
|
227
|
+
}
|
|
228
|
+
.card:hover {
|
|
229
|
+
transform: translateY(-2px);
|
|
230
|
+
box-shadow: var(--elev-raised);
|
|
231
|
+
}
|
|
232
|
+
.card-feature {
|
|
233
|
+
background: var(--surface-warm);
|
|
234
|
+
border-radius: var(--radius-lg);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/* ─── Badges ─────────────────────────────────────────────── */
|
|
238
|
+
.badge {
|
|
239
|
+
display: inline-flex; align-items: center; gap: var(--space-2);
|
|
240
|
+
padding: 4px 10px;
|
|
241
|
+
border-radius: var(--radius-pill);
|
|
242
|
+
font-size: var(--text-xs); font-weight: 700; line-height: 1.43;
|
|
243
|
+
}
|
|
244
|
+
.badge-success { color: var(--success); background: color-mix(in oklab, var(--success), transparent 88%); }
|
|
245
|
+
.badge-muted { color: var(--muted); background: var(--surface); }
|
|
246
|
+
.badge-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
|
|
247
|
+
|
|
248
|
+
/* ─── Links ──────────────────────────────────────────────── */
|
|
249
|
+
a { color: var(--accent); text-decoration: none; transition: color var(--motion-fast) var(--ease-standard); }
|
|
250
|
+
a:hover { color: var(--accent-hover); text-decoration: underline; text-underline-offset: 3px; }
|
|
251
|
+
kbd {
|
|
252
|
+
font-family: var(--font-mono); font-size: var(--text-xs);
|
|
253
|
+
padding: 2px 6px; border-radius: var(--radius-sm);
|
|
254
|
+
border: 1px solid var(--border-soft); background: var(--surface); color: var(--muted);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/* ─── Layout helpers ─────────────────────────────────────── */
|
|
258
|
+
.hero-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: var(--space-12); align-items: end; }
|
|
259
|
+
@media (max-width: 1023px) { .hero-grid { grid-template-columns: 1fr; gap: var(--space-8); } }
|
|
260
|
+
.hero-actions { display: flex; gap: var(--space-3); margin-block-start: var(--space-8); flex-wrap: wrap; }
|
|
261
|
+
.hero-meta {
|
|
262
|
+
display: flex; flex-direction: column; gap: var(--space-4);
|
|
263
|
+
padding: var(--space-6);
|
|
264
|
+
border-radius: var(--radius-md);
|
|
265
|
+
background: var(--surface);
|
|
266
|
+
box-shadow: var(--elev-ring);
|
|
267
|
+
}
|
|
268
|
+
.features-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-6); }
|
|
269
|
+
@media (max-width: 1023px) { .features-grid { grid-template-columns: 1fr 1fr; gap: var(--space-4); } }
|
|
270
|
+
@media (max-width: 639px) { .features-grid { grid-template-columns: 1fr; } }
|
|
271
|
+
.form-row { display: grid; grid-template-columns: 1.4fr 1fr; gap: var(--space-12); align-items: start; }
|
|
272
|
+
@media (max-width: 1023px) { .form-row { grid-template-columns: 1fr; gap: var(--space-8); } }
|
|
273
|
+
.form { display: flex; flex-direction: column; gap: var(--space-5); max-width: 440px; }
|
|
274
|
+
.form-actions { display: flex; gap: var(--space-3); margin-block-start: var(--space-2); }
|
|
275
|
+
.icon { width: 16px; height: 16px; flex-shrink: 0; }
|
|
276
|
+
.row-between { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); }
|
|
277
|
+
|
|
278
|
+
/* Brand mark — gradient logotype dot (Meta's blue → purple → magenta) */
|
|
279
|
+
.brand-mark {
|
|
280
|
+
display: inline-flex; align-items: center; gap: var(--space-2);
|
|
281
|
+
font-size: var(--text-sm); font-weight: 700; color: var(--fg);
|
|
282
|
+
}
|
|
283
|
+
.brand-mark::before {
|
|
284
|
+
content: "";
|
|
285
|
+
width: 14px; height: 14px;
|
|
286
|
+
border-radius: 50%;
|
|
287
|
+
background: linear-gradient(135deg, #0064e0 0%, #6441d2 50%, #d6311f 100%);
|
|
288
|
+
}
|
|
289
|
+
</style>
|
|
290
|
+
</head>
|
|
291
|
+
<body>
|
|
292
|
+
<main class="container">
|
|
293
|
+
<section data-od-id="hero">
|
|
294
|
+
<div class="hero-grid">
|
|
295
|
+
<div class="stack-6">
|
|
296
|
+
<span class="brand-mark">From Meta</span>
|
|
297
|
+
<h1 style="max-width: 16ch">Build what brings us closer.</h1>
|
|
298
|
+
<p class="lead" style="max-width: 56ch">
|
|
299
|
+
From mixed reality to open-source AI, we ship the platforms and tools that
|
|
300
|
+
billions of people use to create, connect, and discover what's next.
|
|
301
|
+
</p>
|
|
302
|
+
<div class="hero-actions">
|
|
303
|
+
<a href="./tokens.css" class="btn btn-primary">
|
|
304
|
+
Explore products
|
|
305
|
+
<svg class="icon" viewBox="0 0 24 24" fill="none"
|
|
306
|
+
stroke="currentColor" stroke-width="2"
|
|
307
|
+
stroke-linecap="round" stroke-linejoin="round"
|
|
308
|
+
aria-hidden="true"><path d="M5 12h14M13 6l6 6-6 6"/></svg>
|
|
309
|
+
</a>
|
|
310
|
+
<a href="./DESIGN.md" class="btn btn-secondary">Inside Meta</a>
|
|
311
|
+
</div>
|
|
312
|
+
</div>
|
|
313
|
+
<aside class="hero-meta" aria-label="Newsroom">
|
|
314
|
+
<div class="row-between">
|
|
315
|
+
<span class="eyebrow">Newsroom</span>
|
|
316
|
+
<span class="badge badge-success">
|
|
317
|
+
<span class="badge-dot" aria-hidden="true"></span>
|
|
318
|
+
Live
|
|
319
|
+
</span>
|
|
320
|
+
</div>
|
|
321
|
+
<p class="body-sm body-muted" style="line-height: 1.5">
|
|
322
|
+
Llama 4 ships with native multimodal reasoning. Quest 4 introduces full-color
|
|
323
|
+
passthrough across the entire device family.
|
|
324
|
+
</p>
|
|
325
|
+
<p class="body-sm body-meta">
|
|
326
|
+
Updated <time datetime="2026-05-15">2026-05-15</time> · Press
|
|
327
|
+
<kbd>⌘</kbd> <kbd>K</kbd> to search the press library.
|
|
328
|
+
</p>
|
|
329
|
+
</aside>
|
|
330
|
+
</div>
|
|
331
|
+
</section>
|
|
332
|
+
|
|
333
|
+
<section class="surface-soft" data-od-id="features">
|
|
334
|
+
<div class="stack-3">
|
|
335
|
+
<p class="eyebrow">What we build</p>
|
|
336
|
+
<h2 style="max-width: 22ch">Three product families, one long-running thesis.</h2>
|
|
337
|
+
<p class="lead" style="max-width: 60ch">
|
|
338
|
+
Every Meta surface — phone, headset, glasses, model, API — is built so the next
|
|
339
|
+
billion creators can move at the speed of imagination.
|
|
340
|
+
</p>
|
|
341
|
+
</div>
|
|
342
|
+
<div class="features-grid stack-8" style="margin-block-start: var(--space-12)">
|
|
343
|
+
<article class="card">
|
|
344
|
+
<span class="eyebrow">Meta AI</span>
|
|
345
|
+
<h3>An assistant that meets you where you are.</h3>
|
|
346
|
+
<p class="body-muted body-sm">
|
|
347
|
+
Llama-powered, multimodal, available in every Meta app — and open-weight
|
|
348
|
+
for anyone who wants to build on top.
|
|
349
|
+
</p>
|
|
350
|
+
<a href="./tokens.css" class="body-sm">Try Meta AI →</a>
|
|
351
|
+
</article>
|
|
352
|
+
<article class="card card-feature">
|
|
353
|
+
<span class="eyebrow">Reality Labs</span>
|
|
354
|
+
<h3>Mixed reality, finally for everyone.</h3>
|
|
355
|
+
<p class="body-muted body-sm">
|
|
356
|
+
Quest headsets and Ray-Ban Meta glasses share one platform — pass-through
|
|
357
|
+
video, spatial audio, and on-device AI built in.
|
|
358
|
+
</p>
|
|
359
|
+
<a href="./DESIGN.md" class="body-sm">Inside Reality Labs →</a>
|
|
360
|
+
</article>
|
|
361
|
+
<article class="card">
|
|
362
|
+
<span class="eyebrow">Open source</span>
|
|
363
|
+
<h3>The infrastructure of the open web.</h3>
|
|
364
|
+
<p class="body-muted body-sm">
|
|
365
|
+
PyTorch, Llama, React, GraphQL — Meta open-sources the technology that
|
|
366
|
+
billions of products depend on, every day.
|
|
367
|
+
</p>
|
|
368
|
+
<a href="./tokens.css" class="body-sm">Browse the catalog →</a>
|
|
369
|
+
</article>
|
|
370
|
+
</div>
|
|
371
|
+
</section>
|
|
372
|
+
|
|
373
|
+
<section data-od-id="form">
|
|
374
|
+
<div class="form-row">
|
|
375
|
+
<div class="stack-4">
|
|
376
|
+
<p class="eyebrow">Stay close to what's next</p>
|
|
377
|
+
<h2 style="max-width: 18ch">Get the Meta brief.</h2>
|
|
378
|
+
<p class="body-muted" style="max-width: 48ch">
|
|
379
|
+
Quarterly updates on our research, product launches, and open-source releases —
|
|
380
|
+
written by the people who built them. No marketing copy, no tracking pixels.
|
|
381
|
+
</p>
|
|
382
|
+
</div>
|
|
383
|
+
<form class="form" onsubmit="event.preventDefault();">
|
|
384
|
+
<div class="field">
|
|
385
|
+
<label for="email">Work email</label>
|
|
386
|
+
<input id="email" type="email" placeholder="you@company.com" autocomplete="email" required />
|
|
387
|
+
<p class="field-help">One short email per quarter. Unsubscribe in one click.</p>
|
|
388
|
+
</div>
|
|
389
|
+
<div class="form-actions">
|
|
390
|
+
<button type="submit" class="btn btn-primary">Subscribe</button>
|
|
391
|
+
<button type="button" class="btn btn-secondary">Read past issues</button>
|
|
392
|
+
</div>
|
|
393
|
+
</form>
|
|
394
|
+
</div>
|
|
395
|
+
</section>
|
|
396
|
+
</main>
|
|
397
|
+
</body>
|
|
398
|
+
</html>
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
/* ─────────────────────────────────────────────────────────────────────────
|
|
2
|
+
* design-systems/meta/tokens.css
|
|
3
|
+
*
|
|
4
|
+
* Structured token bindings for "Design System Inspired by Meta (Store)".
|
|
5
|
+
* Photography-first retail: pure white canvas, Optimistic VF typography,
|
|
6
|
+
* Meta Blue (#0064E0) reserved for action, generous gallery whitespace,
|
|
7
|
+
* pill-shaped CTAs, dual-shadow elevation.
|
|
8
|
+
*
|
|
9
|
+
* Brand-specific schema decisions (each one bends a schema convention to
|
|
10
|
+
* match Meta's voice rather than the cross-brand default):
|
|
11
|
+
*
|
|
12
|
+
* 1. `--bg` is pure white (#FFFFFF), `--surface` is Warm Gray
|
|
13
|
+
* (#F7F8FA — Dolly's --flat-card-bg), and `--surface-warm` is
|
|
14
|
+
* independently bound to Linen (#F2F0E6) — the "warm off-white for
|
|
15
|
+
* lifestyle-adjacent sections" called out in DESIGN.md §2. Three
|
|
16
|
+
* genuinely different surface tiers ladder up: white for browsing,
|
|
17
|
+
* warm gray for card differentiation, linen for the lifestyle /
|
|
18
|
+
* Ray-Ban-adjacent moments. Aliasing `--surface-warm` to surface
|
|
19
|
+
* would collapse a meaningful brand tier.
|
|
20
|
+
*
|
|
21
|
+
* 2. The foreground ramp binds four distinct tiers — Dark Charcoal
|
|
22
|
+
* (#1C2B33) → Slate Gray (#5D6C7B) → Secondary Text (#65676B) →
|
|
23
|
+
* CTA Disabled Text (#8595A4). DESIGN.md §2 names each one as a
|
|
24
|
+
* shipped Dolly/FDS token with its own role (heading vs body vs
|
|
25
|
+
* caption vs muted/disabled), so `--fg-2` and `--meta` are bound
|
|
26
|
+
* independently rather than aliased to `--fg` / `--muted`.
|
|
27
|
+
*
|
|
28
|
+
* 3. `--accent` is Meta Blue (#0064E0), NOT Facebook Blue (#1877F2).
|
|
29
|
+
* DESIGN.md §7 ("Don'ts") explicitly forbids Facebook Blue as a
|
|
30
|
+
* primary CTA color — the corporate Meta Store layer overlays a
|
|
31
|
+
* slightly deeper, more saturated blue on the FDS gray ramp.
|
|
32
|
+
* `--accent-hover` and `--accent-active` are bound to the exact
|
|
33
|
+
* Meta Blue Hover (#0143B5) and Pressed (#004BB9) hexes from
|
|
34
|
+
* DESIGN.md §2 rather than computed via `color-mix()`, because
|
|
35
|
+
* the Dolly hover/pressed pair is hand-tuned to land on different
|
|
36
|
+
* hue points than a flat luminance darken.
|
|
37
|
+
*
|
|
38
|
+
* 4. Semantic colors bind to the Dolly-store palette: Success Green
|
|
39
|
+
* (#31A24C), Warning Amber (#F7B928), Error Red (#E41E3F) — the
|
|
40
|
+
* "badge" tier from DESIGN.md §2. Darker store-confirmation
|
|
41
|
+
* variants (#007D1E, #C80A28) live in components, not the schema,
|
|
42
|
+
* because they are state overrides on top of the shared semantic
|
|
43
|
+
* slot rather than the slot itself.
|
|
44
|
+
*
|
|
45
|
+
* 5. `--font-display` and `--font-body` share the Optimistic VF
|
|
46
|
+
* stack with the documented fallbacks (Montserrat, Helvetica,
|
|
47
|
+
* Arial, Noto Sans). Inter is added as a humanist sans bridge for
|
|
48
|
+
* hosts that have neither Optimistic nor Montserrat installed —
|
|
49
|
+
* it matches Optimistic's geometric warmth more closely than the
|
|
50
|
+
* Helvetica/Arial fallbacks alone. The variable font keeps weight
|
|
51
|
+
* 300/400/500/700 all available; component CSS picks the weight,
|
|
52
|
+
* not the face.
|
|
53
|
+
*
|
|
54
|
+
* 6. The type scale tracks DESIGN.md §3 verbatim: 12 / 14 / 16 / 18
|
|
55
|
+
* / 28 / 36 / 48 / 64. The 18px tier (`--text-lg`) is Meta's
|
|
56
|
+
* primary body size — Body and Heading 3 BOTH live there per
|
|
57
|
+
* DESIGN.md §3 — while `--text-base` (16px) is Body Compact
|
|
58
|
+
* reserved for navigation and dense UI. Display tracking stays
|
|
59
|
+
* neutral (`-0.01em`) because DESIGN.md §3 specifies negative
|
|
60
|
+
* letter-spacing only at small sizes (`-0.14px` to `-0.16px` on
|
|
61
|
+
* 14–16px UI text), not on display headlines.
|
|
62
|
+
*
|
|
63
|
+
* 7. Section rhythm is gallery-generous: 80 / 64 / 48 px desktop /
|
|
64
|
+
* tablet / phone, mirroring the responsive padding ladder
|
|
65
|
+
* DESIGN.md §8 prescribes ("Section padding: 80 → 64 → 48 → 32").
|
|
66
|
+
* The 32px floor folds into component-level overrides on the
|
|
67
|
+
* smallest viewports rather than into the shared schema.
|
|
68
|
+
*
|
|
69
|
+
* 8. Radius scale: 8 / 20 / 24 / 100. DESIGN.md §5 explicitly
|
|
70
|
+
* enumerates these four tiers — 8px inputs, 20px standard cards
|
|
71
|
+
* (--card-corner-radius), 24px feature cards & ghost buttons,
|
|
72
|
+
* 100px pill — and `--radius-pill` is bound to literal `100px`
|
|
73
|
+
* (not the schema's 9999px sentinel) because the brand's pill
|
|
74
|
+
* radius IS 100px and that value flows into actual padding /
|
|
75
|
+
* stroke calculations on Meta-Blue CTAs.
|
|
76
|
+
*
|
|
77
|
+
* 9. `--elev-raised` reproduces DESIGN.md §6 Level 2 dual-shadow
|
|
78
|
+
* pattern verbatim: a small sharp shadow (0 2px 4px rgba(0,0,0,
|
|
79
|
+
* 0.1)) for direct-light contact + a large diffused shadow
|
|
80
|
+
* (0 12px 28px rgba(0,0,0,0.2)) for ambient-light depth.
|
|
81
|
+
* Reordering or dropping a layer breaks Meta's "physically
|
|
82
|
+
* plausible depth" feel — the brand specifically uses two
|
|
83
|
+
* shadows together, not one blurred soft shadow.
|
|
84
|
+
*
|
|
85
|
+
* 10. Container caps at 1440px per DESIGN.md §5 ("Max container
|
|
86
|
+
* width: ~1440px"), wider than Vercel's 1200 because the store
|
|
87
|
+
* surfaces full-bleed cinematic product photography that needs
|
|
88
|
+
* the room. Gutters step 40 / 24 / 16 to preserve generous
|
|
89
|
+
* breathing room around hero imagery on every breakpoint.
|
|
90
|
+
*
|
|
91
|
+
* Source contracts:
|
|
92
|
+
* - Standard token names: design-systems/_schema/tokens.schema.ts
|
|
93
|
+
* - A2 fallback parity: design-systems/_schema/defaults.css
|
|
94
|
+
* - Lint enforcement: apps/daemon/src/lint-artifact.ts
|
|
95
|
+
*
|
|
96
|
+
* Optimistic VF is not embedded; the stack falls back through
|
|
97
|
+
* Montserrat → Helvetica → Arial → Noto Sans so artifacts render
|
|
98
|
+
* acceptably on hosts that haven't loaded the commissioned face.
|
|
99
|
+
* ─────────────────────────────────────────────────────────────────── */
|
|
100
|
+
|
|
101
|
+
:root {
|
|
102
|
+
/* ─── Surface (3 levels — schema slot) ─────────────────────────────
|
|
103
|
+
* Binary plus a warm tier: pure white for browsing/information,
|
|
104
|
+
* Warm Gray for flat card differentiation, Linen as the lifestyle-
|
|
105
|
+
* adjacent warm off-white. DESIGN.md §1 calls out the binary
|
|
106
|
+
* white/dark cadence; Linen lives between for Ray-Ban-flavored
|
|
107
|
+
* sections where pure white feels too cold. Dark immersive
|
|
108
|
+
* surfaces (#1C1E21 / #181A1B / #000000) are component-level
|
|
109
|
+
* overrides, not surface tokens — they're product-context, not
|
|
110
|
+
* canvas. */
|
|
111
|
+
--bg: #ffffff; /* White — primary canvas, nav, default cards */
|
|
112
|
+
--surface: #f7f8fa; /* Warm Gray — flat card, subtle differentiation */
|
|
113
|
+
--surface-warm: #f2f0e6; /* Linen — lifestyle-adjacent warm off-white */
|
|
114
|
+
|
|
115
|
+
/* ─── Foreground ramp (4 levels) ──────────────────────────────────
|
|
116
|
+
* Dark Charcoal heading → Slate Gray body → Secondary Text caption
|
|
117
|
+
* → CTA Disabled muted blue-gray. DESIGN.md §2 names each tier as
|
|
118
|
+
* a shipped Dolly/FDS token with its own role, so the four-level
|
|
119
|
+
* ramp resolves to four distinct values rather than aliasing. */
|
|
120
|
+
--fg: #1c2b33; /* Dark Charcoal — Dolly primary text, headings */
|
|
121
|
+
--fg-2: #5d6c7b; /* Slate Gray — Meta Store secondary text, body */
|
|
122
|
+
--muted: #65676b; /* Secondary Text — captions, labels, timestamps */
|
|
123
|
+
--meta: #8595a4; /* CTA Disabled — placeholder, muted blue-gray */
|
|
124
|
+
|
|
125
|
+
/* ─── Border (2 levels) ──────────────────────────────────────────
|
|
126
|
+
* Standard divider for input/card edges, lighter inner divider for
|
|
127
|
+
* Dolly section separators that should not visually compete. */
|
|
128
|
+
--border: #ced0d4; /* Divider — content separators, input borders */
|
|
129
|
+
--border-soft: #dee3e9; /* Divider Gray — lighter Dolly inner separator */
|
|
130
|
+
|
|
131
|
+
/* ─── Accent ─────────────────────────────────────────────────────
|
|
132
|
+
* Meta Blue is the single action color. DESIGN.md §7 forbids
|
|
133
|
+
* Facebook Blue (#1877F2) for primary CTAs — Meta Blue (#0064E0)
|
|
134
|
+
* is the deeper, more saturated corporate-store variant. Hover
|
|
135
|
+
* and active states are hand-tuned hexes from DESIGN.md §2, not
|
|
136
|
+
* `color-mix()` derivations, because Dolly's interactive states
|
|
137
|
+
* shift hue, not just luminance. */
|
|
138
|
+
--accent: #0064e0; /* Meta Blue — primary CTA, links, focus */
|
|
139
|
+
--accent-on: #ffffff; /* white label on Meta Blue */
|
|
140
|
+
--accent-hover: #0143b5; /* Meta Blue Hover — hand-tuned, not a darken */
|
|
141
|
+
--accent-active: #004bb9; /* Meta Blue Pressed — deepest interactive state */
|
|
142
|
+
|
|
143
|
+
/* ─── Semantic ───────────────────────────────────────────────────
|
|
144
|
+
* Dolly badge tier — bright enough to read on white surfaces.
|
|
145
|
+
* Darker store-confirmation variants (#007D1E success, #C80A28
|
|
146
|
+
* error) are component-level state overrides, not slot bindings. */
|
|
147
|
+
--success: #31a24c; /* Success Green — badge, positive indicators */
|
|
148
|
+
--warn: #f7b928; /* Warning Amber — attention, caution badges */
|
|
149
|
+
--danger: #e41e3f; /* Error Red — critical badges, notifications */
|
|
150
|
+
|
|
151
|
+
/* ─── Typography ─────────────────────────────────────────────────
|
|
152
|
+
* Optimistic VF is Meta's commissioned variable face; the documented
|
|
153
|
+
* fallbacks (Montserrat → Helvetica → Arial → Noto Sans) ensure
|
|
154
|
+
* artifacts read consistently on hosts without the licensed font.
|
|
155
|
+
* Inter bridges between Optimistic and Helvetica when neither the
|
|
156
|
+
* commissioned face nor Montserrat is loaded — it's the closest
|
|
157
|
+
* humanist geometric sans available system-wide. Display and body
|
|
158
|
+
* share one stack; weight (300/400/500/700) and size carry hierarchy. */
|
|
159
|
+
--font-display: "Optimistic VF", "Optimistic", Inter, Montserrat, Helvetica, Arial, "Noto Sans", sans-serif;
|
|
160
|
+
--font-body: "Optimistic VF", "Optimistic", Inter, Montserrat, Helvetica, Arial, "Noto Sans", sans-serif;
|
|
161
|
+
--font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Monaco, Consolas, monospace;
|
|
162
|
+
|
|
163
|
+
/* Type scale — DESIGN.md §3 verbatim. The 18px tier (text-lg) is
|
|
164
|
+
* Meta's primary body size (Body AND Heading 3 both live at 18/?);
|
|
165
|
+
* 16px (text-base) is Body Compact for navigation and dense UI.
|
|
166
|
+
* Display 1 lands at 64px on desktop; Display 2 at 48px; Heading 1
|
|
167
|
+
* at 36px; Heading 2 at 28px. */
|
|
168
|
+
--text-xs: 12px; /* Small — footer, legal, timestamps */
|
|
169
|
+
--text-sm: 14px; /* Caption — labels, button text, metadata */
|
|
170
|
+
--text-base: 16px; /* Body Compact — navigation, dense UI */
|
|
171
|
+
--text-lg: 18px; /* Body / Heading 3 — primary reading size */
|
|
172
|
+
--text-xl: 28px; /* Heading 2 — light-weight subheading */
|
|
173
|
+
--text-2xl: 36px; /* Heading 1 — major section heading */
|
|
174
|
+
--text-3xl: 48px; /* Display 2 — section heroes, product titles */
|
|
175
|
+
--text-4xl: 64px; /* Display 1 — hero headlines on desktop */
|
|
176
|
+
|
|
177
|
+
/* Body leading 1.5 (16px Body Compact ratio); tight leading 1.16
|
|
178
|
+
* (Display 1 ratio) for hero headlines. Display tracking stays
|
|
179
|
+
* neutral (-0.01em) — DESIGN.md §3 reserves negative tracking for
|
|
180
|
+
* small UI (-0.14px on Caption / Button), not for headlines. */
|
|
181
|
+
--leading-body: 1.5;
|
|
182
|
+
--leading-tight: 1.16;
|
|
183
|
+
--tracking-display: -0.01em;
|
|
184
|
+
|
|
185
|
+
/* ─── Spacing ────────────────────────────────────────────────────
|
|
186
|
+
* 8px-base scale per DESIGN.md §5 ("Base unit: 8px"). The 1px /
|
|
187
|
+
* 10px / 14px / 18px sub-tiers from DESIGN.md (hairlines, card
|
|
188
|
+
* horizontal padding, caption rhythm, body vertical rhythm) are
|
|
189
|
+
* inlined per-component because they are too fine to belong in
|
|
190
|
+
* the shared schema. */
|
|
191
|
+
--space-1: 4px;
|
|
192
|
+
--space-2: 8px;
|
|
193
|
+
--space-3: 12px;
|
|
194
|
+
--space-4: 16px;
|
|
195
|
+
--space-5: 20px;
|
|
196
|
+
--space-6: 24px;
|
|
197
|
+
--space-8: 32px;
|
|
198
|
+
--space-12: 48px;
|
|
199
|
+
|
|
200
|
+
/* Section rhythm — DESIGN.md §8: "Section padding: 80 → 64 → 48
|
|
201
|
+
* → 32 as viewport narrows". We bind the documented desktop /
|
|
202
|
+
* tablet / phone tiers; the 32px ultra-narrow floor falls into
|
|
203
|
+
* component-level @media overrides, not the schema. */
|
|
204
|
+
--section-y-desktop: 80px;
|
|
205
|
+
--section-y-tablet: 64px;
|
|
206
|
+
--section-y-phone: 48px;
|
|
207
|
+
|
|
208
|
+
/* ─── Radius ─────────────────────────────────────────────────────
|
|
209
|
+
* DESIGN.md §5 enumerates 8 / 20 / 24 / 100 px. Pill is literal
|
|
210
|
+
* 100px (not 9999px sentinel) because Meta's pill radius IS 100px
|
|
211
|
+
* — DESIGN.md §4 buttons specify "Border radius: fully rounded
|
|
212
|
+
* pill (100px)". For most components 100px and 9999px render
|
|
213
|
+
* identically, but 100px flows correctly into outline / focus
|
|
214
|
+
* geometry calculations in product. */
|
|
215
|
+
--radius-sm: 8px; /* Inputs, small UI, glimmer placeholders */
|
|
216
|
+
--radius-md: 20px; /* --card-corner-radius — standard cards */
|
|
217
|
+
--radius-lg: 24px; /* Feature cards, ghost buttons */
|
|
218
|
+
--radius-pill: 100px; /* Pill buttons, tags, badges (DESIGN.md §5) */
|
|
219
|
+
|
|
220
|
+
/* ─── Elevation ──────────────────────────────────────────────────
|
|
221
|
+
* Three sanctioned levels. `--elev-raised` is DESIGN.md §6 Level 2
|
|
222
|
+
* dual-shadow pattern reproduced verbatim: small sharp shadow for
|
|
223
|
+
* direct-light contact + large diffused shadow for ambient-light
|
|
224
|
+
* depth. Together they create "physically plausible depth without
|
|
225
|
+
* heavy visual weight" — never collapse to a single soft blur.
|
|
226
|
+
* Most surface differentiation in Meta comes from background
|
|
227
|
+
* color shifts (white → soft gray → dark), not shadow; cards in
|
|
228
|
+
* dark sections SHOULD use --elev-flat per DESIGN.md §7 ("Don'ts"). */
|
|
229
|
+
--elev-flat: none;
|
|
230
|
+
--elev-ring: 0 0 0 1px var(--border);
|
|
231
|
+
--elev-raised:
|
|
232
|
+
0 12px 28px 0 rgba(0, 0, 0, 0.2),
|
|
233
|
+
0 2px 4px 0 rgba(0, 0, 0, 0.1);
|
|
234
|
+
|
|
235
|
+
/* ─── Focus ring ─────────────────────────────────────────────────
|
|
236
|
+
* DESIGN.md §4 inputs: "Focus: border color shifts to accent blue,
|
|
237
|
+
* 3px outer ring". DESIGN.md §4 buttons: "Focus: 3px ring in accent
|
|
238
|
+
* color". The schema-default 3px alpha glow at the accent matches
|
|
239
|
+
* Meta's documented behavior; the inner-element border-color shift
|
|
240
|
+
* is component-level. */
|
|
241
|
+
--focus-ring: 0 0 0 3px color-mix(in oklab, var(--accent), transparent 70%);
|
|
242
|
+
|
|
243
|
+
/* ─── Motion ─────────────────────────────────────────────────────
|
|
244
|
+
* DESIGN.md §4 buttons: "Transition: background 200ms ease,
|
|
245
|
+
* transform 150ms ease". Two durations, one easing curve. The
|
|
246
|
+
* scale(1.1) hover and scale(0.9) press transforms from DESIGN.md
|
|
247
|
+
* are component-level animation, not schema. */
|
|
248
|
+
--motion-fast: 150ms;
|
|
249
|
+
--motion-base: 200ms;
|
|
250
|
+
--ease-standard: cubic-bezier(0.2, 0, 0, 1);
|
|
251
|
+
|
|
252
|
+
/* ─── Layout ─────────────────────────────────────────────────────
|
|
253
|
+
* DESIGN.md §5: "Max container width: ~1440px, centered with auto
|
|
254
|
+
* margins". Wider than Vercel/Mistral because Meta surfaces full-
|
|
255
|
+
* bleed cinematic product photography that needs the room. Gutters
|
|
256
|
+
* step 40 / 24 / 16 — DESIGN.md §5 names "Page horizontal padding:
|
|
257
|
+
* 24-40px depending on breakpoint" and §8 collapses to 16px on
|
|
258
|
+
* mobile to preserve gallery-style breathing room. */
|
|
259
|
+
--container-max: 1440px;
|
|
260
|
+
--container-gutter-desktop: 40px;
|
|
261
|
+
--container-gutter-tablet: 24px;
|
|
262
|
+
--container-gutter-phone: 16px;
|
|
263
|
+
}
|