@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,353 @@
|
|
|
1
|
+
/* ─────────────────────────────────────────────────────────────────────────
|
|
2
|
+
* design-systems/resend/tokens.css
|
|
3
|
+
*
|
|
4
|
+
* Structured token bindings for "Resend" — the developer-first email
|
|
5
|
+
* API whose marketing surface treats a pure-black canvas like a
|
|
6
|
+
* gallery wall and lights every container with a single, icy blue-
|
|
7
|
+
* tinted hairline.
|
|
8
|
+
*
|
|
9
|
+
* Brand identity in three sentences:
|
|
10
|
+
* 1. Void-black (#000000) canvas with near-white (#f0f0f0) ink —
|
|
11
|
+
* theatrical darkness; the page is the stage and content
|
|
12
|
+
* performs on it without competing chrome.
|
|
13
|
+
* 2. Frost borders (rgba(214, 235, 253, 0.19)) replace gray borders
|
|
14
|
+
* everywhere — every divider, button, card, and tab is a thin
|
|
15
|
+
* icy line on the void; depth is by border luminance, not by
|
|
16
|
+
* blur shadows that cannot cast against pure black.
|
|
17
|
+
* 3. ABC Favorit (geometric sans) for display headings with
|
|
18
|
+
* aggressive negative tracking, Inter for body and UI, Commit
|
|
19
|
+
* Mono for code — one accent at a time (here: Resend Orange
|
|
20
|
+
* #ff801f) so the chromatic moment lands hard against the gray.
|
|
21
|
+
*
|
|
22
|
+
* Brand-specific schema decisions (each one bends a schema convention
|
|
23
|
+
* to match Resend's voice rather than the cross-brand default):
|
|
24
|
+
*
|
|
25
|
+
* 1. `--bg` and `--surface` both bind to `#000000`. DESIGN.md §7 is
|
|
26
|
+
* explicit: "Don't lighten the background above #000000 — the
|
|
27
|
+
* pure black void is non-negotiable." Cards on Resend do not
|
|
28
|
+
* lift via fill; they read by their frost border alone. Setting
|
|
29
|
+
* `--surface` to the same void as `--bg` honors that rule and
|
|
30
|
+
* forces every card-like component to express elevation through
|
|
31
|
+
* `--border` / `--elev-ring`, not through tinted backgrounds.
|
|
32
|
+
* `--surface-warm` aliases to `--surface` because the brand has
|
|
33
|
+
* no warm tier — there is no second background color anywhere.
|
|
34
|
+
*
|
|
35
|
+
* 2. `--border` is `rgba(214, 235, 253, 0.19)` — the literal
|
|
36
|
+
* "frost border" alpha named in DESIGN.md §1 as "the signature"
|
|
37
|
+
* of the entire system. Binding the slot to the alpha (not a
|
|
38
|
+
* solid hex) lets `--elev-ring` (`0 0 0 1px var(--border)`)
|
|
39
|
+
* reproduce the icy line by default, and lets every component
|
|
40
|
+
* reach the same value via `border: 1px solid var(--border)`.
|
|
41
|
+
* `--border-soft` drops to `rgba(217, 237, 254, 0.145)` for
|
|
42
|
+
* inner row separators that should not compete with the
|
|
43
|
+
* container's outer frost edge.
|
|
44
|
+
*
|
|
45
|
+
* 3. `--fg` is `#f0f0f0`, not `#ffffff`. DESIGN.md §2 names this
|
|
46
|
+
* the "Near White" — a deliberately softened text tier that
|
|
47
|
+
* lets pure white (`#ffffff`) stay reserved for the maximum-
|
|
48
|
+
* emphasis moments DESIGN.md describes as "link highlights"
|
|
49
|
+
* and the white-pill CTA. The four-level foreground ramp
|
|
50
|
+
* (`#f0f0f0 → #a1a4a5 → #5c5c5c → #464a4d`) maps directly onto
|
|
51
|
+
* DESIGN.md §2's documented neutral scale (Near White, Silver,
|
|
52
|
+
* Mid Gray, Dark Gray) so `--fg-2` and `--meta` are
|
|
53
|
+
* independently bound rather than aliased.
|
|
54
|
+
*
|
|
55
|
+
* 4. `--accent` is Resend Orange (`#ff801f`, "Orange 10" in
|
|
56
|
+
* DESIGN.md §2). Resend's product surface uses a multi-color
|
|
57
|
+
* accent system (orange/green/blue/yellow/red), but the shared
|
|
58
|
+
* schema slot must pick one — and Orange 10 is the only entry
|
|
59
|
+
* DESIGN.md prefixes with "primary orange accent". The blue
|
|
60
|
+
* and green variants live as semantic / inline values in
|
|
61
|
+
* components.html; promoting any of them to a second accent
|
|
62
|
+
* slot would require a C-extension, which the brand contract
|
|
63
|
+
* defers until ≥2 brands need the same name. `--accent-on` is
|
|
64
|
+
* `#000000` because saturated orange against black reads best
|
|
65
|
+
* with black labels (DESIGN.md §4 confirms the white-pill
|
|
66
|
+
* pattern is for `#ffffff` solid backgrounds, not for the
|
|
67
|
+
* orange accent fill).
|
|
68
|
+
*
|
|
69
|
+
* 5. `--accent-hover` brightens toward white (10%) and
|
|
70
|
+
* `--accent-active` darkens toward black (12%) — the inverse
|
|
71
|
+
* of the schema's default mid-luminance pattern. On Resend's
|
|
72
|
+
* void canvas, a "pressed" state reads as a small recession
|
|
73
|
+
* into the dark, while a "lifted" hover reads as a luminance
|
|
74
|
+
* step up. This matches the Linear / dark-system convention
|
|
75
|
+
* and avoids the schema default's all-darken pattern that
|
|
76
|
+
* would make the orange disappear into the void on hover.
|
|
77
|
+
*
|
|
78
|
+
* 6. Semantic colors come straight from DESIGN.md §2's multi-
|
|
79
|
+
* color accent scale — `--success: #11ff99` (Green 4),
|
|
80
|
+
* `--warn: #ffc53d` (Yellow 9), `--danger: #ff2047` (Red 5).
|
|
81
|
+
* These are the saturated source values; components that want
|
|
82
|
+
* the documented "12–42% opacity" tints reach them via
|
|
83
|
+
* `color-mix(in oklab, var(--success), transparent 80%)` in
|
|
84
|
+
* situ, keeping the alpha-blend decision at the component
|
|
85
|
+
* layer rather than in the token slot.
|
|
86
|
+
*
|
|
87
|
+
* 7. Type scale is documented in DESIGN.md §3: 96px display,
|
|
88
|
+
* 56px section, 24px feature title, 20px sub-heading, 18px
|
|
89
|
+
* body-large, 16px body, 14px caption, 12px small. The schema
|
|
90
|
+
* has 8 slots; `--text-2xl` is bound to `36px` as the
|
|
91
|
+
* intermediate that bridges 24px (feature title) to 56px
|
|
92
|
+
* (section heading) — DESIGN.md does not enumerate this stop,
|
|
93
|
+
* but a 24 → 56 jump without a mid-tier would force every H2
|
|
94
|
+
* to either undershoot or overshoot. `--leading-tight: 1.0`
|
|
95
|
+
* matches the documented Display Hero rhythm; `--leading-body:
|
|
96
|
+
* 1.5` matches the documented Body / Body Large / Feature
|
|
97
|
+
* Title leading.
|
|
98
|
+
*
|
|
99
|
+
* 8. `--tracking-display` is `-0.05em`, derived from DESIGN.md
|
|
100
|
+
* §3 Section Heading (`-2.8px at 56px = -0.05em`). ABC Favorit
|
|
101
|
+
* compresses harder than Domaine Display (`-0.01em` at 96px),
|
|
102
|
+
* so binding the slot to the ABC Favorit characteristic value
|
|
103
|
+
* gives every display-tier element the brand's "engineered
|
|
104
|
+
* masthead" feel. The hero in components.html can opt back
|
|
105
|
+
* into the gentler Domaine tracking inline if needed.
|
|
106
|
+
*
|
|
107
|
+
* 9. `--font-display` lists ABC Favorit first, with Inter as the
|
|
108
|
+
* structural fallback. Inter is documented in DESIGN.md §3 as
|
|
109
|
+
* the body / UI font, but it shares the geometric voice well
|
|
110
|
+
* enough to carry display weight when ABC Favorit is not
|
|
111
|
+
* loaded — far better than falling through to a generic system
|
|
112
|
+
* sans. Domaine Display (the editorial serif hero font) is
|
|
113
|
+
* deliberately not in the stack: it is a paid Klim Type
|
|
114
|
+
* Foundry face whose absence would surface as a jarring serif
|
|
115
|
+
* drop. Heroes that want Domaine layer it in via
|
|
116
|
+
* `font-family: "Domaine Display", var(--font-display)` at the
|
|
117
|
+
* component level.
|
|
118
|
+
*
|
|
119
|
+
* 10. Section rhythm is generous: 120px desktop, 80px tablet, 48px
|
|
120
|
+
* phone. DESIGN.md §5 names "Cinematic black space" with "80–
|
|
121
|
+
* 120px+ vertical spacing between sections" as a defining
|
|
122
|
+
* property — "the black background IS the whitespace". 120px
|
|
123
|
+
* desktop sits at the top of that documented range.
|
|
124
|
+
*
|
|
125
|
+
* 11. `--radius-sm` is `4px` (DESIGN.md "Sharp": buttons-ghost,
|
|
126
|
+
* inputs); `--radius-md` is `8px` (tabs / content blocks);
|
|
127
|
+
* `--radius-lg` is `16px` (feature cards / images / main
|
|
128
|
+
* buttons); `--radius-pill` is `9999px` (primary CTAs / tags
|
|
129
|
+
* / badges). The 24px "Section" radius from DESIGN.md is
|
|
130
|
+
* component-specific (large panels) and reached inline rather
|
|
131
|
+
* than via the shared schema.
|
|
132
|
+
*
|
|
133
|
+
* 12. `--elev-raised` layers the documented `rgba(176, 199, 217,
|
|
134
|
+
* 0.145) 0 0 0 1px` ring shadow with the subtle drop from
|
|
135
|
+
* DESIGN.md §6 Level 2. On pure black, opaque blur shadows
|
|
136
|
+
* vanish — the ring carries the edge, and the soft drop adds
|
|
137
|
+
* just enough atmospheric tint to read as "lifted" against
|
|
138
|
+
* the void. Never strip the ring when overriding this token.
|
|
139
|
+
*
|
|
140
|
+
* 13. `--focus-ring` is a sharp 2px ring at `var(--accent)`, not
|
|
141
|
+
* the schema's 3px alpha glow. DESIGN.md §6 Level 3 documents
|
|
142
|
+
* a heavy 8px black focus ring that works in product context
|
|
143
|
+
* (against non-black surroundings); on this brand fixture the
|
|
144
|
+
* black canvas would swallow that ring, so we substitute the
|
|
145
|
+
* orange accent at 2px — sharp, engineered, legible against
|
|
146
|
+
* both the void and any card surface.
|
|
147
|
+
*
|
|
148
|
+
* 14. `--container-max` caps at `1200px` with generous 32px
|
|
149
|
+
* desktop gutters — Resend's marketing pages center contained
|
|
150
|
+
* content in vast dark space, treating the gutter as part of
|
|
151
|
+
* the gallery margin rather than as edge-bleed.
|
|
152
|
+
*
|
|
153
|
+
* Source contracts:
|
|
154
|
+
* - Standard token names: design-systems/_schema/tokens.schema.ts
|
|
155
|
+
* - A2 fallback parity: design-systems/_schema/defaults.css
|
|
156
|
+
* - Lint enforcement: apps/daemon/src/lint-artifact.ts
|
|
157
|
+
*
|
|
158
|
+
* Keep this file additive: never invent token names not also
|
|
159
|
+
* documented in DESIGN.md or the schema. ABC Favorit, Domaine
|
|
160
|
+
* Display, and Commit Mono are paid faces — the stacks list
|
|
161
|
+
* defensible OS fallbacks so artifacts render legibly even when
|
|
162
|
+
* the brand faces are not loaded.
|
|
163
|
+
* ─────────────────────────────────────────────────────────────────── */
|
|
164
|
+
|
|
165
|
+
:root {
|
|
166
|
+
/* ─── Surface (3 levels — schema slot) ─────────────────────────────
|
|
167
|
+
* The void is the canvas. DESIGN.md §7: "Don't lighten the
|
|
168
|
+
* background above #000000 — the pure black void is non-
|
|
169
|
+
* negotiable." `--surface` matches `--bg` because cards on Resend
|
|
170
|
+
* read by their frost border alone, not by a tinted fill.
|
|
171
|
+
* `--surface-warm` aliases to surface — the brand has no second
|
|
172
|
+
* background color anywhere. */
|
|
173
|
+
--bg: #000000;
|
|
174
|
+
--surface: #000000;
|
|
175
|
+
--surface-warm: var(--surface); /* alias — Resend has no warm tier */
|
|
176
|
+
|
|
177
|
+
/* ─── Foreground ramp (4 levels) ──────────────────────────────────
|
|
178
|
+
* Near White → Silver → Mid Gray → Dark Gray, the documented
|
|
179
|
+
* neutral scale from DESIGN.md §2. `#f0f0f0` instead of `#ffffff`
|
|
180
|
+
* matters — pure white is reserved for the white-pill CTA and link
|
|
181
|
+
* highlights; the softened near-white keeps body type calm against
|
|
182
|
+
* the void. All four tiers are independently bound (not aliased)
|
|
183
|
+
* because DESIGN.md names four distinct neutral roles: primary
|
|
184
|
+
* text, secondary / link-muted, hover / caption, tertiary /
|
|
185
|
+
* quaternary timestamp. */
|
|
186
|
+
--fg: #f0f0f0; /* Near White — primary text, button labels */
|
|
187
|
+
--fg-2: #a1a4a5; /* Silver — secondary text, muted links */
|
|
188
|
+
--muted: #5c5c5c; /* Mid Gray — captions, hover, subtle emphasis */
|
|
189
|
+
--meta: #464a4d; /* Dark Gray — tertiary text, timestamps */
|
|
190
|
+
|
|
191
|
+
/* ─── Border (2 levels) ──────────────────────────────────────────
|
|
192
|
+
* Frost-as-border is THE signature: `rgba(214, 235, 253, 0.19)`
|
|
193
|
+
* at 1px replaces every gray border in the system. Binding
|
|
194
|
+
* `--border` to the alpha (not a solid hex) lets `--elev-ring`
|
|
195
|
+
* reproduce the icy line by default, and lets
|
|
196
|
+
* `border: 1px solid var(--border)` paint the same value when a
|
|
197
|
+
* real CSS border is structurally required (e.g. the bottom edge
|
|
198
|
+
* of the sticky nav per DESIGN.md §4). `--border-soft` drops to
|
|
199
|
+
* `0.145` alpha for inner row separators that must not compete
|
|
200
|
+
* with the container's outer frost edge. */
|
|
201
|
+
--border: rgba(214, 235, 253, 0.19); /* signature frost border alpha */
|
|
202
|
+
--border-soft: rgba(217, 237, 254, 0.145); /* inner row separator — lighter frost */
|
|
203
|
+
|
|
204
|
+
/* ─── Accent ─────────────────────────────────────────────────────
|
|
205
|
+
* Resend Orange (Orange 10 from DESIGN.md §2). Hard cap of ≤2
|
|
206
|
+
* visible uses per screen — DESIGN.md §7 forbids cross-mixing
|
|
207
|
+
* accent colors within a single component. The multi-color
|
|
208
|
+
* scale (green/blue/yellow/red) lives at the semantic / inline
|
|
209
|
+
* layer; only the orange slot rides on `--accent`.
|
|
210
|
+
*
|
|
211
|
+
* `--accent-on` is BLACK, not white — saturated #ff801f against
|
|
212
|
+
* black reads cleanest with black labels (the white-pill CTA in
|
|
213
|
+
* DESIGN.md §4 uses #ffffff fill with #000000 text, not the
|
|
214
|
+
* orange accent). Hover brightens 10% toward white, active
|
|
215
|
+
* darkens 12% toward black — the inverse of the schema's all-
|
|
216
|
+
* darken default, matching the dark-theme convention where
|
|
217
|
+
* "pressed" reads as recession into the void. */
|
|
218
|
+
--accent: #ff801f; /* Resend Orange — primary chromatic accent */
|
|
219
|
+
--accent-on: #000000; /* black label on saturated orange fill */
|
|
220
|
+
--accent-hover: color-mix(in oklab, var(--accent), white 10%);
|
|
221
|
+
--accent-active: color-mix(in oklab, var(--accent), black 12%);
|
|
222
|
+
|
|
223
|
+
/* ─── Semantic ───────────────────────────────────────────────────
|
|
224
|
+
* Saturated source values from DESIGN.md §2's multi-color accent
|
|
225
|
+
* scale. Components reach the documented 12–42% opacity tints
|
|
226
|
+
* via `color-mix(in oklab, var(--success), transparent 80%)` in
|
|
227
|
+
* situ, keeping the alpha-blend decision at the component layer. */
|
|
228
|
+
--success: #11ff99; /* Green 4 — emerald success indicator */
|
|
229
|
+
--warn: #ffc53d; /* Yellow 9 — warm gold warning */
|
|
230
|
+
--danger: #ff2047; /* Red 5 — error / destructive */
|
|
231
|
+
|
|
232
|
+
/* ─── Typography ─────────────────────────────────────────────────
|
|
233
|
+
* Three-font editorial hierarchy from DESIGN.md §3. ABC Favorit
|
|
234
|
+
* carries display; Inter carries body and UI; Commit Mono
|
|
235
|
+
* carries code and technical labels. Domaine Display (the
|
|
236
|
+
* editorial serif hero face) is intentionally not in the
|
|
237
|
+
* `--font-display` stack — it is a paid Klim Type Foundry face
|
|
238
|
+
* whose absence would surface as a jarring serif drop. Heroes
|
|
239
|
+
* that want Domaine layer it in via `font-family: "Domaine
|
|
240
|
+
* Display", var(--font-display)` at the component level. */
|
|
241
|
+
--font-display: "ABC Favorit", "Inter", -apple-system, system-ui, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
|
|
242
|
+
--font-body: "Inter", -apple-system, system-ui, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
|
|
243
|
+
--font-mono: "Commit Mono", "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;
|
|
244
|
+
|
|
245
|
+
/* Type scale (px) — derived from DESIGN.md §3 hierarchy table.
|
|
246
|
+
* 12 / 14 / 16 / 18 / 20 / 24 / 56 / 96 are all documented; the
|
|
247
|
+
* 36px `--text-2xl` is the synthesized intermediate that bridges
|
|
248
|
+
* 24px feature-title to 56px section-heading. Without it, every
|
|
249
|
+
* H2 would have to undershoot at 24 or overshoot at 56 and the
|
|
250
|
+
* type rhythm would jump. */
|
|
251
|
+
--text-xs: 12px; /* Small — tags, meta, fine print */
|
|
252
|
+
--text-sm: 14px; /* Caption, button, nav link */
|
|
253
|
+
--text-base: 16px; /* Body — standard reading */
|
|
254
|
+
--text-lg: 20px; /* Sub-heading — ABC Favorit */
|
|
255
|
+
--text-xl: 24px; /* Feature Title — Inter weight 500 */
|
|
256
|
+
--text-2xl: 36px; /* Synthesized H2 — bridges 24 → 56 */
|
|
257
|
+
--text-3xl: 56px; /* Section Heading — ABC Favorit */
|
|
258
|
+
--text-4xl: 96px; /* Display Hero — Domaine / ABC Favorit */
|
|
259
|
+
|
|
260
|
+
/* Leading + tracking.
|
|
261
|
+
* --leading-body 1.5: DESIGN.md body / feature-title / body-large.
|
|
262
|
+
* --leading-tight 1.0: DESIGN.md Display Hero (96px).
|
|
263
|
+
* --tracking-display -0.05em: ABC Favorit Section Heading
|
|
264
|
+
* (-2.8px / 56px). Harder compression than Domaine's -0.01em;
|
|
265
|
+
* binding the slot to the ABC Favorit value gives display tiers
|
|
266
|
+
* the brand's "engineered masthead" feel. */
|
|
267
|
+
--leading-body: 1.5;
|
|
268
|
+
--leading-tight: 1.0;
|
|
269
|
+
--tracking-display: -0.05em;
|
|
270
|
+
|
|
271
|
+
/* ─── Spacing ────────────────────────────────────────────────────
|
|
272
|
+
* Standard 4px-grid base scale. DESIGN.md §5 also documents 5px,
|
|
273
|
+
* 6px, 7px, 10px, 30px, 40px micro-tiers — those are too fine to
|
|
274
|
+
* belong in the shared schema and are inlined per-component when
|
|
275
|
+
* needed (button padding `5px 12px`, etc.). The 4/8/12/16/20/
|
|
276
|
+
* 24/32/48 tier covers the structural rhythm. */
|
|
277
|
+
--space-1: 4px;
|
|
278
|
+
--space-2: 8px;
|
|
279
|
+
--space-3: 12px;
|
|
280
|
+
--space-4: 16px;
|
|
281
|
+
--space-5: 20px;
|
|
282
|
+
--space-6: 24px;
|
|
283
|
+
--space-8: 32px;
|
|
284
|
+
--space-12: 48px;
|
|
285
|
+
|
|
286
|
+
/* Section rhythm — DESIGN.md §5: "Cinematic black space" with
|
|
287
|
+
* 80–120px+ vertical padding between sections. 120px desktop sits
|
|
288
|
+
* at the top of the documented range, dropping to 80px tablet
|
|
289
|
+
* (still generous) and 48px phone (the documented mobile floor). */
|
|
290
|
+
--section-y-desktop: 120px;
|
|
291
|
+
--section-y-tablet: 80px;
|
|
292
|
+
--section-y-phone: 48px;
|
|
293
|
+
|
|
294
|
+
/* ─── Radius ─────────────────────────────────────────────────────
|
|
295
|
+
* DESIGN.md §5 radius scale: 4 / 6 / 8 / 10 / 12 / 16 / 24 / 9999.
|
|
296
|
+
* We bind the four schema tiers to: 4 (sharp — ghost button,
|
|
297
|
+
* inputs), 8 (standard — tabs, content), 16 (large — feature
|
|
298
|
+
* cards, images, main buttons), 9999 (pill — primary CTAs, tags,
|
|
299
|
+
* badges). The 24px "Section" radius is component-specific (large
|
|
300
|
+
* panels) and reached inline. */
|
|
301
|
+
--radius-sm: 4px; /* Sharp — ghost button, input */
|
|
302
|
+
--radius-md: 8px; /* Standard — tab, content block */
|
|
303
|
+
--radius-lg: 16px; /* Large — feature card, image, main button */
|
|
304
|
+
--radius-pill: 9999px; /* Pill — primary CTA, tag, badge */
|
|
305
|
+
|
|
306
|
+
/* ─── Elevation (3 levels) ───────────────────────────────────────
|
|
307
|
+
* Resend barely uses shadows — DESIGN.md §6: "On a pure black
|
|
308
|
+
* background, traditional shadows are invisible — you can't cast
|
|
309
|
+
* a shadow into the void. Instead, Resend creates depth through
|
|
310
|
+
* its signature frost borders."
|
|
311
|
+
*
|
|
312
|
+
* --elev-flat no shadow (page background, text blocks)
|
|
313
|
+
* --elev-ring the signature frost hairline (most surfaces)
|
|
314
|
+
* --elev-raised ring + subtle drop for true "lifted" feel
|
|
315
|
+
*
|
|
316
|
+
* `--elev-raised` layers the documented `rgba(176, 199, 217, 0.145)
|
|
317
|
+
* 0 0 0 1px` ring with the §6 Level 2 subtle drop. Never strip
|
|
318
|
+
* the ring when overriding — it is the edge mechanism that lets
|
|
319
|
+
* a card read against the void at all. */
|
|
320
|
+
--elev-flat: none;
|
|
321
|
+
--elev-ring: 0 0 0 1px var(--border);
|
|
322
|
+
--elev-raised:
|
|
323
|
+
0 0 0 1px rgba(176, 199, 217, 0.145),
|
|
324
|
+
0 1px 3px rgba(0, 0, 0, 0.4),
|
|
325
|
+
0 1px 2px -1px rgba(0, 0, 0, 0.4);
|
|
326
|
+
|
|
327
|
+
/* ─── Focus ring ─────────────────────────────────────────────────
|
|
328
|
+
* Sharp 2px ring at `var(--accent)`, NOT the schema's 3px alpha
|
|
329
|
+
* glow. DESIGN.md §6 documents an 8px black ring that works in
|
|
330
|
+
* product context (against non-black surroundings); on this
|
|
331
|
+
* brand fixture the black canvas would swallow that ring, so we
|
|
332
|
+
* substitute the orange accent at 2px — sharp, engineered,
|
|
333
|
+
* legible against both the void and any card surface. */
|
|
334
|
+
--focus-ring: 0 0 0 2px var(--accent);
|
|
335
|
+
|
|
336
|
+
/* ─── Motion ─────────────────────────────────────────────────────
|
|
337
|
+
* Two durations + one easing curve. Resend's micro-states are
|
|
338
|
+
* quick and unobtrusive — pill buttons crossfade to white glass,
|
|
339
|
+
* frost borders intensify on focus, no choreographed entrances. */
|
|
340
|
+
--motion-fast: 150ms;
|
|
341
|
+
--motion-base: 200ms;
|
|
342
|
+
--ease-standard: cubic-bezier(0.2, 0, 0, 1);
|
|
343
|
+
|
|
344
|
+
/* ─── Layout ─────────────────────────────────────────────────────
|
|
345
|
+
* 1200px max content width — DESIGN.md §5 "Centered content with
|
|
346
|
+
* generous max-width". Gutters stay wide on desktop (32px) so
|
|
347
|
+
* the gallery margin around the void canvas reads as intentional
|
|
348
|
+
* framing; mobile narrows to 16px to preserve readable measure. */
|
|
349
|
+
--container-max: 1200px;
|
|
350
|
+
--container-gutter-desktop: 32px;
|
|
351
|
+
--container-gutter-tablet: 24px;
|
|
352
|
+
--container-gutter-phone: 16px;
|
|
353
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Design System Inspired by Retro
|
|
2
|
+
|
|
3
|
+
> Category: Retro & Nostalgic
|
|
4
|
+
> Throwback design with vintage-inspired typography, high-contrast retro palettes, and nostalgic visual elements.
|
|
5
|
+
|
|
6
|
+
## 1. Visual Theme & Atmosphere
|
|
7
|
+
|
|
8
|
+
Throwback design with vintage-inspired typography, high-contrast retro palettes, and nostalgic visual elements.
|
|
9
|
+
|
|
10
|
+
- **Visual style:** high-contrast, retro
|
|
11
|
+
- **Color stance:** primary, neutral, success, warning, danger
|
|
12
|
+
- **Design intent:** Keep outputs recognizable to this style family while preserving usability and readability.
|
|
13
|
+
|
|
14
|
+
## 2. Color
|
|
15
|
+
|
|
16
|
+
- **Primary:** `#3B82F6` — Token from style foundations.
|
|
17
|
+
- **Secondary:** `#8B5CF6` — Token from style foundations.
|
|
18
|
+
- **Success:** `#16A34A` — Token from style foundations.
|
|
19
|
+
- **Warning:** `#D97706` — Token from style foundations.
|
|
20
|
+
- **Danger:** `#DC2626` — Token from style foundations.
|
|
21
|
+
- **Surface:** `#FFFFFF` — Token from style foundations.
|
|
22
|
+
- **Text:** `#111827` — Token from style foundations.
|
|
23
|
+
- **Neutral:** `#FFFFFF` — Derived from the surface token for official format compatibility.
|
|
24
|
+
|
|
25
|
+
- Favor Primary (#3B82F6) for CTA emphasis.
|
|
26
|
+
- Use Surface (#FFFFFF) for large backgrounds and cards.
|
|
27
|
+
- Keep body copy on Text (#111827) for legibility.
|
|
28
|
+
|
|
29
|
+
## 3. Typography
|
|
30
|
+
|
|
31
|
+
- **Scale:** desktop-first expressive scale
|
|
32
|
+
- **Families:** primary=Macondo, display=Macondo, mono=JetBrains Mono
|
|
33
|
+
- **Weights:** 100, 200, 300, 400, 500, 600, 700, 800, 900
|
|
34
|
+
- Headings should carry the style personality; body text should optimize scanability and contrast.
|
|
35
|
+
|
|
36
|
+
## 4. Spacing & Grid
|
|
37
|
+
|
|
38
|
+
- **Spacing scale:** 4/8/12/16/24/32
|
|
39
|
+
- Keep vertical rhythm consistent across sections and components.
|
|
40
|
+
- Align columns and modules to a predictable grid; avoid ad-hoc offsets.
|
|
41
|
+
|
|
42
|
+
## 5. Layout & Composition
|
|
43
|
+
|
|
44
|
+
- Prefer clear content blocks with consistent internal padding.
|
|
45
|
+
- Keep hierarchy obvious: headline → support text → primary action.
|
|
46
|
+
- Use whitespace to separate concerns before adding borders or shadows.
|
|
47
|
+
|
|
48
|
+
## 6. Components
|
|
49
|
+
|
|
50
|
+
- Buttons: primary action uses `#3B82F6`; secondary actions stay neutral.
|
|
51
|
+
- Inputs: strong focus-visible states, clear labels, and predictable error messaging.
|
|
52
|
+
- Cards/sections: use consistent radii, spacing, and elevation strategy across the page.
|
|
53
|
+
|
|
54
|
+
## 7. Motion & Interaction
|
|
55
|
+
|
|
56
|
+
- Use subtle transitions that emphasize Primary (#3B82F6) as the interaction signal.
|
|
57
|
+
- Default to short, purposeful transitions (150–250ms) with stable easing.
|
|
58
|
+
- Ensure hover, focus-visible, active, disabled, and loading states are explicit.
|
|
59
|
+
|
|
60
|
+
## 8. Voice & Brand
|
|
61
|
+
|
|
62
|
+
- Tone should reflect the visual style: concise, confident, and product-specific.
|
|
63
|
+
- Keep microcopy action-oriented and avoid generic filler language.
|
|
64
|
+
- Preserve the style identity in headlines while keeping UI labels literal and clear.
|
|
65
|
+
|
|
66
|
+
## 9. Anti-patterns
|
|
67
|
+
|
|
68
|
+
- Do not introduce off-palette colors when an existing token can solve the problem.
|
|
69
|
+
- Do not flatten hierarchy by using the same type size/weight for all text.
|
|
70
|
+
- Do not add decorative effects that reduce readability or accessibility.
|
|
71
|
+
- Do not mix unrelated visual metaphors in the same interface.
|
|
@@ -0,0 +1,136 @@
|
|
|
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>Retro - reference components</title>
|
|
7
|
+
<meta name="description" content="Reference fixture for design-systems/retro: retro interface with warm colors, chunky controls, and nostalgic product cards." />
|
|
8
|
+
<style>
|
|
9
|
+
:root {
|
|
10
|
+
--bg: #fff4cf;
|
|
11
|
+
--surface: #fffaf0;
|
|
12
|
+
--surface-warm: #ffdca8;
|
|
13
|
+
--fg: #2a1810;
|
|
14
|
+
--fg-2: #593625;
|
|
15
|
+
--muted: #8a6652;
|
|
16
|
+
--meta: #d24b1f;
|
|
17
|
+
--border: #d9aa7a;
|
|
18
|
+
--border-soft: #efd0ab;
|
|
19
|
+
--accent: #d24b1f;
|
|
20
|
+
--accent-on: #ffffff;
|
|
21
|
+
--accent-hover: color-mix(in oklab, var(--accent), black 8%);
|
|
22
|
+
--accent-active: color-mix(in oklab, var(--accent), black 14%);
|
|
23
|
+
--success: #3d8f4f;
|
|
24
|
+
--warn: #f2a93b;
|
|
25
|
+
--danger: #b83a2f;
|
|
26
|
+
--font-display: "Courier New", ui-monospace, monospace;
|
|
27
|
+
--font-body: Inter, system-ui, sans-serif;
|
|
28
|
+
--font-mono: "Courier New", ui-monospace, monospace;
|
|
29
|
+
--text-xs: 12px;
|
|
30
|
+
--text-sm: 14px;
|
|
31
|
+
--text-base: 16px;
|
|
32
|
+
--text-lg: 18px;
|
|
33
|
+
--text-xl: 24px;
|
|
34
|
+
--text-2xl: 36px;
|
|
35
|
+
--text-3xl: 54px;
|
|
36
|
+
--text-4xl: 76px;
|
|
37
|
+
--leading-body: 1.52;
|
|
38
|
+
--leading-tight: 1.06;
|
|
39
|
+
--tracking-display: 0;
|
|
40
|
+
--space-1: 4px;
|
|
41
|
+
--space-2: 8px;
|
|
42
|
+
--space-3: 12px;
|
|
43
|
+
--space-4: 16px;
|
|
44
|
+
--space-5: 20px;
|
|
45
|
+
--space-6: 24px;
|
|
46
|
+
--space-8: 32px;
|
|
47
|
+
--space-12: 48px;
|
|
48
|
+
--section-y-desktop: 96px;
|
|
49
|
+
--section-y-tablet: 68px;
|
|
50
|
+
--section-y-phone: 48px;
|
|
51
|
+
--radius-sm: 4px;
|
|
52
|
+
--radius-md: 8px;
|
|
53
|
+
--radius-lg: 12px;
|
|
54
|
+
--radius-pill: 9999px;
|
|
55
|
+
--elev-flat: none;
|
|
56
|
+
--elev-ring: 0 0 0 1px var(--border);
|
|
57
|
+
--elev-raised: 6px 6px 0 rgba(42, 24, 16, 0.26);
|
|
58
|
+
--focus-ring: 0 0 0 4px rgba(210, 75, 31, 0.28);
|
|
59
|
+
--motion-fast: 150ms;
|
|
60
|
+
--motion-base: 240ms;
|
|
61
|
+
--ease-standard: cubic-bezier(0.2, 0, 0, 1);
|
|
62
|
+
--container-max: 1180px;
|
|
63
|
+
--container-gutter-desktop: 36px;
|
|
64
|
+
--container-gutter-tablet: 24px;
|
|
65
|
+
--container-gutter-phone: 16px;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
*, *::before, *::after { box-sizing: border-box; }
|
|
69
|
+
html, body { margin: 0; padding: 0; }
|
|
70
|
+
body { min-height: 100vh; background: var(--bg); color: var(--fg); font-family: var(--font-body); font-size: var(--text-base); line-height: var(--leading-body); -webkit-font-smoothing: antialiased; }
|
|
71
|
+
.page { min-height: 100vh; background: linear-gradient(135deg, #fff4cf 0%, #ffdca8 58%, #fffaf0 100%); }
|
|
72
|
+
.container { max-width: var(--container-max); margin-inline: auto; padding-inline: var(--container-gutter-desktop); }
|
|
73
|
+
section { padding-block: var(--section-y-desktop); }
|
|
74
|
+
@media (max-width: 1023px) { .container { padding-inline: var(--container-gutter-tablet); } section { padding-block: var(--section-y-tablet); } }
|
|
75
|
+
@media (max-width: 639px) { .container { padding-inline: var(--container-gutter-phone); } section { padding-block: var(--section-y-phone); } }
|
|
76
|
+
h1, h2, h3, p { margin: 0; }
|
|
77
|
+
h1, h2, h3 { font-family: var(--font-display); line-height: var(--leading-tight); letter-spacing: var(--tracking-display); }
|
|
78
|
+
h1 { max-width: 840px; font-size: var(--text-4xl); font-weight: 760; }
|
|
79
|
+
h2 { font-size: var(--text-3xl); font-weight: 700; }
|
|
80
|
+
h3 { font-size: var(--text-xl); font-weight: 700; }
|
|
81
|
+
.eyebrow { color: var(--meta); font-family: var(--font-mono); font-size: var(--text-xs); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
|
|
82
|
+
.lead { max-width: 640px; color: var(--fg-2); font-size: var(--text-lg); }
|
|
83
|
+
.hero { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.9fr); gap: var(--space-8); align-items: center; }
|
|
84
|
+
.stack > * + * { margin-block-start: var(--space-4); }
|
|
85
|
+
.actions { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-block-start: var(--space-6); }
|
|
86
|
+
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 var(--space-5); border: 1px solid transparent; border-radius: var(--radius-md); font: 700 var(--text-sm) / 1 var(--font-body); color: inherit; text-decoration: none; cursor: pointer; transition: background-color var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard); }
|
|
87
|
+
.btn:focus-visible { outline: none; box-shadow: var(--focus-ring); }
|
|
88
|
+
.btn-primary { background: var(--accent); color: var(--accent-on); }
|
|
89
|
+
.btn-primary:hover { background: var(--accent-hover); transform: translateY(-1px); }
|
|
90
|
+
.btn-secondary { background: var(--surface); color: var(--fg); border-color: var(--border); box-shadow: var(--elev-ring); }
|
|
91
|
+
.btn-secondary:hover { border-color: var(--accent); color: var(--accent); }
|
|
92
|
+
.panel { background: color-mix(in oklab, var(--surface), transparent 4%); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--elev-raised); overflow: hidden; }
|
|
93
|
+
.panel-head { display: flex; justify-content: space-between; align-items: center; gap: var(--space-4); padding: var(--space-5); border-bottom: 1px solid var(--border-soft); }
|
|
94
|
+
.status { display: inline-flex; align-items: center; gap: var(--space-2); color: var(--meta); font: 700 var(--text-xs) / 1 var(--font-mono); text-transform: uppercase; letter-spacing: 0.08em; }
|
|
95
|
+
.status::before { width: 8px; height: 8px; border-radius: var(--radius-pill); background: var(--success); content: ""; }
|
|
96
|
+
.metric-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-bottom: 1px solid var(--border-soft); }
|
|
97
|
+
.metric { padding: var(--space-5); border-right: 1px solid var(--border-soft); }
|
|
98
|
+
.metric:last-child { border-right: 0; }
|
|
99
|
+
.metric strong { display: block; font-family: var(--font-display); font-size: var(--text-2xl); line-height: var(--leading-tight); }
|
|
100
|
+
.metric span { color: var(--muted); font-size: var(--text-sm); }
|
|
101
|
+
.card-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); padding: var(--space-5); }
|
|
102
|
+
.mini-card { min-height: 148px; padding: var(--space-5); border: 1px solid var(--border-soft); border-radius: var(--radius-md); background: var(--surface-warm); }
|
|
103
|
+
.mini-card p, .tile p { color: var(--muted); font-size: var(--text-sm); margin-block-start: var(--space-3); }
|
|
104
|
+
.swatches { display: flex; gap: var(--space-2); margin-block-start: var(--space-4); }
|
|
105
|
+
.swatch { width: 32px; height: 32px; border-radius: var(--radius-sm); border: 1px solid var(--border); }
|
|
106
|
+
.swatch.accent { background: var(--accent); } .swatch.surface { background: var(--surface); } .swatch.warm { background: var(--surface-warm); } .swatch.fg { background: var(--fg); }
|
|
107
|
+
.field { display: grid; gap: var(--space-2); margin-block-start: var(--space-5); }
|
|
108
|
+
label { color: var(--fg-2); font-size: var(--text-sm); font-weight: 700; }
|
|
109
|
+
input { width: 100%; min-height: 46px; padding: 0 var(--space-4); border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface); color: var(--fg); font: inherit; }
|
|
110
|
+
input:focus { outline: none; box-shadow: var(--focus-ring); border-color: var(--accent); }
|
|
111
|
+
.lower { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); }
|
|
112
|
+
.tile { padding: var(--space-5); border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); }
|
|
113
|
+
@media (max-width: 860px) { .hero, .lower { grid-template-columns: 1fr; } .metric-grid, .card-row { grid-template-columns: 1fr; } .metric { border-right: 0; border-bottom: 1px solid var(--border-soft); } .metric:last-child { border-bottom: 0; } }
|
|
114
|
+
</style>
|
|
115
|
+
</head>
|
|
116
|
+
<body>
|
|
117
|
+
<main class="page">
|
|
118
|
+
<section>
|
|
119
|
+
<div class="container hero">
|
|
120
|
+
<div class="stack">
|
|
121
|
+
<p class="eyebrow">Retro design system</p>
|
|
122
|
+
<h1>Retro computing dashboard</h1>
|
|
123
|
+
<p class="lead">Vintage color, chunky geometry, and nostalgic controls for playful products.</p>
|
|
124
|
+
<div class="actions" aria-label="Reference actions"><a class="btn btn-primary" href="#">Primary action</a><a class="btn btn-secondary" href="#">Secondary action</a></div>
|
|
125
|
+
</div>
|
|
126
|
+
<article class="panel" aria-label="Retro component preview">
|
|
127
|
+
<div class="panel-head"><div><p class="eyebrow">Live module</p><h3>Reference component</h3></div><span class="status">online</span></div>
|
|
128
|
+
<div class="metric-grid"><div class="metric"><strong>98%</strong><span>Signal quality</span></div><div class="metric"><strong>24</strong><span>Active flows</span></div><div class="metric"><strong>3.2s</strong><span>Response time</span></div></div>
|
|
129
|
+
<div class="card-row"><div class="mini-card"><h3>Palette</h3><p>retro interface with warm colors, chunky controls, and nostalgic product cards.</p><div class="swatches" aria-label="Token swatches"><span class="swatch accent"></span><span class="swatch surface"></span><span class="swatch warm"></span><span class="swatch fg"></span></div></div><div class="mini-card"><h3>Control</h3><p>Focus, hover, and status states share the same system signal.</p><div class="field"><label for="retro-input">Reference input</label><input id="retro-input" value="Retro system token" /></div></div></div>
|
|
130
|
+
</article>
|
|
131
|
+
</div>
|
|
132
|
+
</section>
|
|
133
|
+
<section><div class="container lower"><article class="tile"><p class="eyebrow">Typography</p><h2>Display rhythm</h2><p>Headlines use the display stack with the declared scale and leading.</p></article><article class="tile"><p class="eyebrow">Surface</p><h2>Layer system</h2><p>Cards, warm panels, borders, and raised states resolve through shared tokens.</p></article><article class="tile"><p class="eyebrow">Interaction</p><h2>Motion states</h2><p>Buttons, inputs, and panels use system-specific focus rings and easing.</p></article></div></section>
|
|
134
|
+
</main>
|
|
135
|
+
</body>
|
|
136
|
+
</html>
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/* design-systems/retro/tokens.css
|
|
2
|
+
* Structured token bindings for Retro.
|
|
3
|
+
* retro interface with warm colors, chunky controls, and nostalgic product cards.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
:root {
|
|
7
|
+
--bg: #fff4cf;
|
|
8
|
+
--surface: #fffaf0;
|
|
9
|
+
--surface-warm: #ffdca8;
|
|
10
|
+
--fg: #2a1810;
|
|
11
|
+
--fg-2: #593625;
|
|
12
|
+
--muted: #8a6652;
|
|
13
|
+
--meta: #d24b1f;
|
|
14
|
+
--border: #d9aa7a;
|
|
15
|
+
--border-soft: #efd0ab;
|
|
16
|
+
--accent: #d24b1f;
|
|
17
|
+
--accent-on: #ffffff;
|
|
18
|
+
--accent-hover: color-mix(in oklab, var(--accent), black 8%);
|
|
19
|
+
--accent-active: color-mix(in oklab, var(--accent), black 14%);
|
|
20
|
+
--success: #3d8f4f;
|
|
21
|
+
--warn: #f2a93b;
|
|
22
|
+
--danger: #b83a2f;
|
|
23
|
+
--font-display: "Courier New", ui-monospace, monospace;
|
|
24
|
+
--font-body: Inter, system-ui, sans-serif;
|
|
25
|
+
--font-mono: "Courier New", ui-monospace, monospace;
|
|
26
|
+
--text-xs: 12px;
|
|
27
|
+
--text-sm: 14px;
|
|
28
|
+
--text-base: 16px;
|
|
29
|
+
--text-lg: 18px;
|
|
30
|
+
--text-xl: 24px;
|
|
31
|
+
--text-2xl: 36px;
|
|
32
|
+
--text-3xl: 54px;
|
|
33
|
+
--text-4xl: 76px;
|
|
34
|
+
--leading-body: 1.52;
|
|
35
|
+
--leading-tight: 1.06;
|
|
36
|
+
--tracking-display: 0;
|
|
37
|
+
--space-1: 4px;
|
|
38
|
+
--space-2: 8px;
|
|
39
|
+
--space-3: 12px;
|
|
40
|
+
--space-4: 16px;
|
|
41
|
+
--space-5: 20px;
|
|
42
|
+
--space-6: 24px;
|
|
43
|
+
--space-8: 32px;
|
|
44
|
+
--space-12: 48px;
|
|
45
|
+
--section-y-desktop: 96px;
|
|
46
|
+
--section-y-tablet: 68px;
|
|
47
|
+
--section-y-phone: 48px;
|
|
48
|
+
--radius-sm: 4px;
|
|
49
|
+
--radius-md: 8px;
|
|
50
|
+
--radius-lg: 12px;
|
|
51
|
+
--radius-pill: 9999px;
|
|
52
|
+
--elev-flat: none;
|
|
53
|
+
--elev-ring: 0 0 0 1px var(--border);
|
|
54
|
+
--elev-raised: 6px 6px 0 rgba(42, 24, 16, 0.26);
|
|
55
|
+
--focus-ring: 0 0 0 4px rgba(210, 75, 31, 0.28);
|
|
56
|
+
--motion-fast: 150ms;
|
|
57
|
+
--motion-base: 240ms;
|
|
58
|
+
--ease-standard: cubic-bezier(0.2, 0, 0, 1);
|
|
59
|
+
--container-max: 1180px;
|
|
60
|
+
--container-gutter-desktop: 36px;
|
|
61
|
+
--container-gutter-tablet: 24px;
|
|
62
|
+
--container-gutter-phone: 16px;
|
|
63
|
+
}
|