@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,270 @@
|
|
|
1
|
+
/* ─────────────────────────────────────────────────────────────────────────
|
|
2
|
+
* design-systems/vercel/tokens.css
|
|
3
|
+
*
|
|
4
|
+
* Structured token bindings for "Vercel" — the engineering-as-design
|
|
5
|
+
* thesis of frontend deployment: a near-white canvas, near-black text,
|
|
6
|
+
* one saturated blue accent, and a shadow-as-border philosophy that
|
|
7
|
+
* replaces the box-model edge with a layered box-shadow stack.
|
|
8
|
+
*
|
|
9
|
+
* This file pre-compiles the values described in `DESIGN.md` into the
|
|
10
|
+
* shared schema. Agents generating an artifact for Vercel should paste
|
|
11
|
+
* the `:root` block verbatim into the first `<style>` of the artifact,
|
|
12
|
+
* then reference everything via `var(--*)`.
|
|
13
|
+
*
|
|
14
|
+
* Brand-specific schema decisions (each one bends a schema convention
|
|
15
|
+
* to match Vercel's voice rather than the cross-brand default):
|
|
16
|
+
*
|
|
17
|
+
* 1. `--accent` is the Vercel/Console blue (#0070f3), not Vercel Black.
|
|
18
|
+
* Black is already `--fg`; the brand expresses primary CTAs by
|
|
19
|
+
* using `--fg` as the button background, not `--accent`. The
|
|
20
|
+
* `--accent` slot is reserved for the chromatic moments — links,
|
|
21
|
+
* focus rings, badge tints — exactly where Vercel's blue appears
|
|
22
|
+
* in product. Treating black as both `--fg` and `--accent` would
|
|
23
|
+
* collapse two distinct intents into one name and break the
|
|
24
|
+
* lint's "≤2 accent uses per screen" semantic.
|
|
25
|
+
*
|
|
26
|
+
* 2. `--fg` is `#171717` (Vercel Black), not `#000000`. The micro-
|
|
27
|
+
* warmth at the top of the gray ramp is part of the brand — pure
|
|
28
|
+
* black against pure white reads as harsh, and the rest of the
|
|
29
|
+
* neutral scale (gray-600 / 500 / 400 / 100 / 50) is calibrated
|
|
30
|
+
* against `#171717` not `#000000`. Bind the full four-level
|
|
31
|
+
* foreground ramp (#171717 → #4d4d4d → #666666 → #808080) so
|
|
32
|
+
* cross-brand components targeting `--fg-2` and `--meta` resolve
|
|
33
|
+
* to Vercel's actual gray-600 / gray-400 instead of collapsing.
|
|
34
|
+
*
|
|
35
|
+
* 3. `--border` is `rgba(0, 0, 0, 0.08)` — the literal Vercel
|
|
36
|
+
* shadow-as-border alpha, NOT a solid hex. DESIGN.md §1 names
|
|
37
|
+
* this single value as "the signature" that "replaces traditional
|
|
38
|
+
* borders throughout". Binding `--border` to the alpha lets
|
|
39
|
+
* `--elev-ring` (`0 0 0 1px var(--border)`) reproduce the Vercel
|
|
40
|
+
* hairline by default, and lets components reach the same value
|
|
41
|
+
* via `border: 1px solid var(--border)` when a real border is
|
|
42
|
+
* structurally necessary (e.g. image cards). `--border-soft`
|
|
43
|
+
* drops to `0.04` for inner-row separators that must not compete.
|
|
44
|
+
*
|
|
45
|
+
* 4. `--elev-raised` is the full multi-layer Vercel card stack
|
|
46
|
+
* (`0 0 0 1px rgba(0,0,0,0.08), 0 2px 2px rgba(0,0,0,0.04),
|
|
47
|
+
* 0 8px 8px -8px rgba(0,0,0,0.04), 0 0 0 1px #fafafa`), not the
|
|
48
|
+
* schema's single soft blur. The inner `#fafafa` ring at the
|
|
49
|
+
* bottom of the stack is the "subtle inner glow" DESIGN.md §6
|
|
50
|
+
* calls out — without it, Vercel cards lose the built-not-
|
|
51
|
+
* floating quality. The fourth layer's `#fafafa` is the only
|
|
52
|
+
* raw hex inside the `:root` block, justified because the value
|
|
53
|
+
* is structural to the shadow layer, not a recolorable surface.
|
|
54
|
+
*
|
|
55
|
+
* 5. `--focus-ring` is a solid 2px ring at `var(--accent)`, not the
|
|
56
|
+
* schema's 3px alpha glow. Vercel's `--ds-focus-color` focus
|
|
57
|
+
* outline is `2px solid hsla(212, 100%, 48%, 1)` everywhere;
|
|
58
|
+
* reproducing it as a sharp 2px box-shadow keeps keyboard focus
|
|
59
|
+
* legible against the white canvas without the soft halo that
|
|
60
|
+
* would dilute the engineered feel.
|
|
61
|
+
*
|
|
62
|
+
* 6. The type scale tops out at 48px (`--text-4xl`), not 64px+.
|
|
63
|
+
* DESIGN.md §3 caps display at 48px Geist W600 with
|
|
64
|
+
* `letter-spacing: -2.4px` (which expresses as `-0.05em` in
|
|
65
|
+
* `--tracking-display`). Vercel reads HUGE because the tracking
|
|
66
|
+
* compresses, not because the px count climbs. `--leading-tight`
|
|
67
|
+
* drops to `1.1` to match — display lines run shorter than the
|
|
68
|
+
* schema default's 1.2.
|
|
69
|
+
*
|
|
70
|
+
* 7. Section rhythm is generous: `96px` desktop, `64px` tablet,
|
|
71
|
+
* `48px` phone (`--section-y-*`). DESIGN.md §5 describes the
|
|
72
|
+
* "gallery emptiness" of 80–120px+ vertical padding between
|
|
73
|
+
* sections — the whitespace is the design. Container caps at
|
|
74
|
+
* `1200px` (Vercel's documented max content width).
|
|
75
|
+
*
|
|
76
|
+
* Source contracts:
|
|
77
|
+
* - Standard token names: design-systems/_schema/tokens.schema.ts
|
|
78
|
+
* - A2 fallback parity: design-systems/_schema/defaults.css
|
|
79
|
+
* - Lint enforcement: apps/daemon/src/lint-artifact.ts
|
|
80
|
+
*
|
|
81
|
+
* Keep this file additive: never invent token names not also
|
|
82
|
+
* documented in DESIGN.md or the schema. The Geist family does not
|
|
83
|
+
* need a CDN reference here — the font stack lists OS fallbacks so
|
|
84
|
+
* that artifacts render acceptably even when Geist is not loaded,
|
|
85
|
+
* and any host that wants the real Geist face links it externally.
|
|
86
|
+
* ─────────────────────────────────────────────────────────────────── */
|
|
87
|
+
|
|
88
|
+
:root {
|
|
89
|
+
/* ─── Surface (3 levels — schema slot) ─────────────────────────────
|
|
90
|
+
* Vercel's canvas is famously achromatic: pure white page, pure
|
|
91
|
+
* white cards, no warm tier. `--surface-warm` aliases to surface
|
|
92
|
+
* because the brand explicitly forbids background-color variation
|
|
93
|
+
* between sections — depth comes from shadow layering, not from
|
|
94
|
+
* tinting one surface warmer than another. (DESIGN.md §5: "White
|
|
95
|
+
* sections alternate with white sections — there's no color
|
|
96
|
+
* variation between sections.") */
|
|
97
|
+
--bg: #ffffff;
|
|
98
|
+
--surface: #ffffff;
|
|
99
|
+
--surface-warm: var(--surface); /* alias — Vercel has no warm tier */
|
|
100
|
+
|
|
101
|
+
/* ─── Foreground ramp (4 levels) ──────────────────────────────────
|
|
102
|
+
* Gray 900 → 600 → 500 → 400, the documented neutral scale from
|
|
103
|
+
* DESIGN.md §2. `#171717` instead of `#000000` matters — the
|
|
104
|
+
* yellow-undertone warmth is what keeps the page from reading as
|
|
105
|
+
* harsh. `--fg-2` and `--meta` are independently bound (not aliased)
|
|
106
|
+
* because Vercel genuinely uses four distinct text tiers: heading
|
|
107
|
+
* black, body description gray, tertiary caption gray, and
|
|
108
|
+
* placeholder/disabled gray. */
|
|
109
|
+
--fg: #171717; /* Gray 900 — headings, primary text */
|
|
110
|
+
--fg-2: #4d4d4d; /* Gray 600 — body description */
|
|
111
|
+
--muted: #666666; /* Gray 500 — captions, tertiary text */
|
|
112
|
+
--meta: #808080; /* Gray 400 — placeholder, disabled */
|
|
113
|
+
|
|
114
|
+
/* ─── Border (2 levels) ──────────────────────────────────────────
|
|
115
|
+
* Shadow-as-border is THE signature: `rgba(0, 0, 0, 0.08)` at 1px
|
|
116
|
+
* spread replaces traditional borders throughout. Binding `--border`
|
|
117
|
+
* to the alpha (not a solid hex) lets `--elev-ring` reproduce the
|
|
118
|
+
* Vercel hairline by default, and lets `border: 1px solid var(--border)`
|
|
119
|
+
* paint the same value when a real border is structurally required
|
|
120
|
+
* (e.g. image-card top edge per DESIGN.md §4). `--border-soft`
|
|
121
|
+
* drops to 0.04 alpha for inner row separators that should not
|
|
122
|
+
* visually compete with the card edge. */
|
|
123
|
+
--border: rgba(0, 0, 0, 0.08); /* signature shadow-as-border alpha */
|
|
124
|
+
--border-soft: rgba(0, 0, 0, 0.04); /* inner row separator */
|
|
125
|
+
|
|
126
|
+
/* ─── Accent ─────────────────────────────────────────────────────
|
|
127
|
+
* The single chromatic move: Vercel/Console Blue. Used in links,
|
|
128
|
+
* focus rings, pill-badge tints, and console syntax highlighting.
|
|
129
|
+
* Hard cap of ≤2 visible uses per screen — DESIGN.md §7 forbids
|
|
130
|
+
* decorative use ("Color is functional, never decorative — workflow
|
|
131
|
+
* colors (Red/Pink/Blue) mark pipeline stages only").
|
|
132
|
+
*
|
|
133
|
+
* Primary CTAs in Vercel are BLACK, not blue. components.html
|
|
134
|
+
* encodes that pattern via `background: var(--fg)` on the primary
|
|
135
|
+
* button, so `--accent` stays reserved for the chromatic moments
|
|
136
|
+
* where blue actually appears. */
|
|
137
|
+
--accent: #0070f3; /* Vercel Blue / Console Blue */
|
|
138
|
+
--accent-on: #ffffff; /* white label on saturated blue */
|
|
139
|
+
--accent-hover: color-mix(in oklab, var(--accent), black 8%);
|
|
140
|
+
--accent-active: color-mix(in oklab, var(--accent), black 14%);
|
|
141
|
+
|
|
142
|
+
/* ─── Semantic ───────────────────────────────────────────────────
|
|
143
|
+
* Vercel's marketing surface rarely renders state. We inherit the
|
|
144
|
+
* schema defaults (no warm-shift) because the brand has no defined
|
|
145
|
+
* success/warn/danger palette of its own; the workflow accents
|
|
146
|
+
* (Ship Red, Preview Pink, Develop Blue from DESIGN.md §2) are
|
|
147
|
+
* pipeline labels, not status colors, and intentionally do NOT
|
|
148
|
+
* bind here. */
|
|
149
|
+
--success: #16a34a;
|
|
150
|
+
--warn: #eab308;
|
|
151
|
+
--danger: #dc2626;
|
|
152
|
+
|
|
153
|
+
/* ─── Typography ─────────────────────────────────────────────────
|
|
154
|
+
* Geist Sans is Vercel's open-source typeface — `--font-display`
|
|
155
|
+
* and `--font-body` share the stack; size, weight, and tracking
|
|
156
|
+
* carry hierarchy, not face. The Arial/system fallbacks come from
|
|
157
|
+
* DESIGN.md §3 and ensure artifacts render legibly even when Geist
|
|
158
|
+
* is not loaded. Geist Mono for code and technical labels
|
|
159
|
+
* preserves the "developer console voice" that connects the
|
|
160
|
+
* marketing site to the product. */
|
|
161
|
+
--font-display: "Geist", "Geist Sans", -apple-system, "Segoe UI", Arial, sans-serif;
|
|
162
|
+
--font-body: "Geist", "Geist Sans", -apple-system, "Segoe UI", Arial, sans-serif;
|
|
163
|
+
--font-mono: "Geist Mono", ui-monospace, "SF Mono", "Roboto Mono", Menlo, Monaco, "Liberation Mono", "DejaVu Sans Mono", "Courier New", monospace;
|
|
164
|
+
|
|
165
|
+
/* Type scale (px) — derived from DESIGN.md §3 hierarchy table.
|
|
166
|
+
* The scale tops out at 48px (display hero); Vercel reads BIG
|
|
167
|
+
* because of -0.05em compression on display, not because of a
|
|
168
|
+
* larger px ceiling. */
|
|
169
|
+
--text-xs: 12px; /* caption, metadata, tags */
|
|
170
|
+
--text-sm: 14px; /* button, link, small UI */
|
|
171
|
+
--text-base: 16px; /* body small, navigation */
|
|
172
|
+
--text-lg: 20px; /* body large, introductions */
|
|
173
|
+
--text-xl: 24px; /* card title */
|
|
174
|
+
--text-2xl: 32px; /* sub-heading, large card */
|
|
175
|
+
--text-3xl: 40px; /* section heading */
|
|
176
|
+
--text-4xl: 48px; /* display hero */
|
|
177
|
+
|
|
178
|
+
/* `--leading-tight` is 1.1 (DESIGN.md says 1.00–1.17 at display),
|
|
179
|
+
* `--leading-body` is 1.5 (the documented 16px / 24px ratio).
|
|
180
|
+
* `--tracking-display` is `-0.05em`, the em-relative form of
|
|
181
|
+
* Vercel's `-2.4px at 48px` — letter-spacing in em scales
|
|
182
|
+
* proportionally with size, matching DESIGN.md §3's principle
|
|
183
|
+
* that "tracking scales with font size". */
|
|
184
|
+
--leading-body: 1.5;
|
|
185
|
+
--leading-tight: 1.1;
|
|
186
|
+
--tracking-display: -0.05em;
|
|
187
|
+
|
|
188
|
+
/* ─── Spacing ────────────────────────────────────────────────────
|
|
189
|
+
* 4px-grid base scale. Vercel's documented spacing (DESIGN.md §5)
|
|
190
|
+
* uses 1–6px sub-tier increments for micro-padding (button
|
|
191
|
+
* `0px 6px`, etc.); those are inlined per-component because they
|
|
192
|
+
* are too fine to belong in the shared schema. The 4/8/12/16/20/
|
|
193
|
+
* 24/32/48 tier covers the structural rhythm. */
|
|
194
|
+
--space-1: 4px;
|
|
195
|
+
--space-2: 8px;
|
|
196
|
+
--space-3: 12px;
|
|
197
|
+
--space-4: 16px;
|
|
198
|
+
--space-5: 20px;
|
|
199
|
+
--space-6: 24px;
|
|
200
|
+
--space-8: 32px;
|
|
201
|
+
--space-12: 48px;
|
|
202
|
+
|
|
203
|
+
/* Section rhythm — DESIGN.md §5: 80–120px+ vertical padding between
|
|
204
|
+
* sections desktop, collapsing to 48px on mobile. We sit in the
|
|
205
|
+
* middle at 96px desktop, drop to 64px on tablet (still generous),
|
|
206
|
+
* and 48px on phone (the documented mobile floor). */
|
|
207
|
+
--section-y-desktop: 96px;
|
|
208
|
+
--section-y-tablet: 64px;
|
|
209
|
+
--section-y-phone: 48px;
|
|
210
|
+
|
|
211
|
+
/* ─── Radius ─────────────────────────────────────────────────────
|
|
212
|
+
* DESIGN.md §5 radius scale: 2/4/6/8/12/64/100/9999. We bind the
|
|
213
|
+
* four schema tiers to: 6 (button/input/functional), 8 (card),
|
|
214
|
+
* 12 (image/featured card), 9999 (badge/pill). The 64px and
|
|
215
|
+
* 100px "navigation pill" radii from DESIGN.md are component-
|
|
216
|
+
* specific and not part of the shared schema. */
|
|
217
|
+
--radius-sm: 6px; /* buttons, inputs, functional */
|
|
218
|
+
--radius-md: 8px; /* cards, modals */
|
|
219
|
+
--radius-lg: 12px; /* image cards, featured */
|
|
220
|
+
--radius-pill: 9999px; /* badges, status pills */
|
|
221
|
+
|
|
222
|
+
/* ─── Elevation (3 levels) ───────────────────────────────────────
|
|
223
|
+
* Vercel's depth system is shadow-LED, not blur-led. Three levels:
|
|
224
|
+
*
|
|
225
|
+
* --elev-flat no shadow (page background, text blocks)
|
|
226
|
+
* --elev-ring the signature 1px shadow-as-border (most surfaces)
|
|
227
|
+
* --elev-raised the multi-layer Vercel card stack (featured cards)
|
|
228
|
+
*
|
|
229
|
+
* `--elev-raised` is reproduced VERBATIM from DESIGN.md §6 Level 3,
|
|
230
|
+
* including the inner `#fafafa` 1px ring that DESIGN.md calls out
|
|
231
|
+
* as "the glow that makes the system work" — never drop the last
|
|
232
|
+
* layer when overriding this token. The four layers compose:
|
|
233
|
+
* ring (1px shadow-as-border, sits on top)
|
|
234
|
+
* close (2px 2px soft elevation, just below the surface)
|
|
235
|
+
* far (8px blur -8px spread, ambient depth at distance)
|
|
236
|
+
* inner (1px #fafafa ring, the subtle highlight) */
|
|
237
|
+
--elev-flat: none;
|
|
238
|
+
--elev-ring: 0 0 0 1px var(--border);
|
|
239
|
+
--elev-raised:
|
|
240
|
+
0 0 0 1px rgba(0, 0, 0, 0.08),
|
|
241
|
+
0 2px 2px rgba(0, 0, 0, 0.04),
|
|
242
|
+
0 8px 8px -8px rgba(0, 0, 0, 0.04),
|
|
243
|
+
0 0 0 1px #fafafa;
|
|
244
|
+
|
|
245
|
+
/* ─── Focus ring ─────────────────────────────────────────────────
|
|
246
|
+
* Vercel's `--ds-focus-color` is `hsla(212, 100%, 48%, 1)`; the
|
|
247
|
+
* outline is `2px solid` on every interactive element. We
|
|
248
|
+
* reproduce that as a sharp 2px box-shadow at `var(--accent)`,
|
|
249
|
+
* NOT the schema's 3px alpha glow — Vercel's focus is engineered,
|
|
250
|
+
* not atmospheric. */
|
|
251
|
+
--focus-ring: 0 0 0 2px var(--accent);
|
|
252
|
+
|
|
253
|
+
/* ─── Motion ─────────────────────────────────────────────────────
|
|
254
|
+
* Two durations + one easing curve, per anti-ai-slop's "short,
|
|
255
|
+
* purposeful transitions (150–250ms) with stable easing". Vercel
|
|
256
|
+
* transitions are quick and unobtrusive — never a long-form
|
|
257
|
+
* choreographed entrance. */
|
|
258
|
+
--motion-fast: 150ms;
|
|
259
|
+
--motion-base: 200ms;
|
|
260
|
+
--ease-standard: cubic-bezier(0.2, 0, 0, 1);
|
|
261
|
+
|
|
262
|
+
/* ─── Layout ─────────────────────────────────────────────────────
|
|
263
|
+
* 1200px max content width per DESIGN.md §5. Gutters narrow on
|
|
264
|
+
* mobile to preserve the line-length-as-craft feel — Vercel does
|
|
265
|
+
* NOT edge-bleed body copy on phones, only screenshots. */
|
|
266
|
+
--container-max: 1200px;
|
|
267
|
+
--container-gutter-desktop: 24px;
|
|
268
|
+
--container-gutter-tablet: 16px;
|
|
269
|
+
--container-gutter-phone: 12px;
|
|
270
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Design System Inspired by Vibrant
|
|
2
|
+
|
|
3
|
+
> Category: Bold & Expressive
|
|
4
|
+
> Lively, colorful design with bold playful typography, warm accents, and dynamic visual energy.
|
|
5
|
+
|
|
6
|
+
## 1. Visual Theme & Atmosphere
|
|
7
|
+
|
|
8
|
+
Lively, colorful design with bold playful typography, warm accents, and dynamic visual energy.
|
|
9
|
+
|
|
10
|
+
- **Visual style:** modern, clean, bold, playful
|
|
11
|
+
- **Color stance:** primary, secondary, neutral, success
|
|
12
|
+
- **Design intent:** Keep outputs recognizable to this style family while preserving usability and readability.
|
|
13
|
+
|
|
14
|
+
## 2. Color
|
|
15
|
+
|
|
16
|
+
- **Primary:** `#7C61D4` — Token from style foundations.
|
|
17
|
+
- **Secondary:** `#EAAE87` — 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:** `#2F281D` — Token from style foundations.
|
|
23
|
+
- **Neutral:** `#FFFFFF` — Derived from the surface token for official format compatibility.
|
|
24
|
+
|
|
25
|
+
- Favor Primary (#7C61D4) for CTA emphasis.
|
|
26
|
+
- Use Surface (#FFFFFF) for large backgrounds and cards.
|
|
27
|
+
- Keep body copy on Text (#2F281D) for legibility.
|
|
28
|
+
|
|
29
|
+
## 3. Typography
|
|
30
|
+
|
|
31
|
+
- **Scale:** 14/16/18/24/32/40
|
|
32
|
+
- **Families:** primary=Noto Sans, display=Fascinate, mono=Fira Code
|
|
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:** 2/4/8/12/16/24/32/48
|
|
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 `#7C61D4`; 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 (#7C61D4) 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>Vibrant - reference components</title>
|
|
7
|
+
<meta name="description" content="Reference fixture for design-systems/vibrant: vibrant visual system with saturated accents, warm surfaces, and optimistic product energy." />
|
|
8
|
+
<style>
|
|
9
|
+
:root {
|
|
10
|
+
--bg: #fff8d7;
|
|
11
|
+
--surface: #ffffff;
|
|
12
|
+
--surface-warm: #ffef9f;
|
|
13
|
+
--fg: #1d1836;
|
|
14
|
+
--fg-2: #4c426c;
|
|
15
|
+
--muted: #796f91;
|
|
16
|
+
--meta: #ff6b00;
|
|
17
|
+
--border: #eadfba;
|
|
18
|
+
--border-soft: #f5eccd;
|
|
19
|
+
--accent: #ff6b00;
|
|
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: #2e9d57;
|
|
24
|
+
--warn: #ffb020;
|
|
25
|
+
--danger: #e5484d;
|
|
26
|
+
--font-display: Inter, system-ui, sans-serif;
|
|
27
|
+
--font-body: Inter, system-ui, sans-serif;
|
|
28
|
+
--font-mono: "SF Mono", ui-monospace, Menlo, 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.025em;
|
|
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: 10px;
|
|
52
|
+
--radius-md: 16px;
|
|
53
|
+
--radius-lg: 24px;
|
|
54
|
+
--radius-pill: 9999px;
|
|
55
|
+
--elev-flat: none;
|
|
56
|
+
--elev-ring: 0 0 0 1px var(--border);
|
|
57
|
+
--elev-raised: 0 18px 44px rgba(29, 24, 54, 0.14);
|
|
58
|
+
--focus-ring: 0 0 0 4px rgba(255, 107, 0, 0.26);
|
|
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, #fff8d7 0%, #ffef9f 52%, #ffffff 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">Vibrant design system</p>
|
|
122
|
+
<h1>Vibrant brand launch</h1>
|
|
123
|
+
<p class="lead">Saturated sections, expressive controls, and colorful high-energy component states.</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="Vibrant 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>vibrant visual system with saturated accents, warm surfaces, and optimistic product energy.</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="vibrant-input">Reference input</label><input id="vibrant-input" value="Vibrant 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/vibrant/tokens.css
|
|
2
|
+
* Structured token bindings for Vibrant.
|
|
3
|
+
* vibrant visual system with saturated accents, warm surfaces, and optimistic product energy.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
:root {
|
|
7
|
+
--bg: #fff8d7;
|
|
8
|
+
--surface: #ffffff;
|
|
9
|
+
--surface-warm: #ffef9f;
|
|
10
|
+
--fg: #1d1836;
|
|
11
|
+
--fg-2: #4c426c;
|
|
12
|
+
--muted: #796f91;
|
|
13
|
+
--meta: #ff6b00;
|
|
14
|
+
--border: #eadfba;
|
|
15
|
+
--border-soft: #f5eccd;
|
|
16
|
+
--accent: #ff6b00;
|
|
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: #2e9d57;
|
|
21
|
+
--warn: #ffb020;
|
|
22
|
+
--danger: #e5484d;
|
|
23
|
+
--font-display: Inter, system-ui, sans-serif;
|
|
24
|
+
--font-body: Inter, system-ui, sans-serif;
|
|
25
|
+
--font-mono: "SF Mono", ui-monospace, Menlo, 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.025em;
|
|
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: 10px;
|
|
49
|
+
--radius-md: 16px;
|
|
50
|
+
--radius-lg: 24px;
|
|
51
|
+
--radius-pill: 9999px;
|
|
52
|
+
--elev-flat: none;
|
|
53
|
+
--elev-ring: 0 0 0 1px var(--border);
|
|
54
|
+
--elev-raised: 0 18px 44px rgba(29, 24, 54, 0.14);
|
|
55
|
+
--focus-ring: 0 0 0 4px rgba(255, 107, 0, 0.26);
|
|
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
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Design System Inspired by Vintage
|
|
2
|
+
|
|
3
|
+
> Category: Retro & Nostalgic
|
|
4
|
+
> 1950s-1990s nostalgia with skeuomorphic touches, grainy textures, retro color palettes, and pixel-style typography.
|
|
5
|
+
|
|
6
|
+
## 1. Visual Theme & Atmosphere
|
|
7
|
+
|
|
8
|
+
1950s-1990s nostalgia with skeuomorphic touches, grainy textures, retro color palettes, and pixel-style typography.
|
|
9
|
+
|
|
10
|
+
- **Visual style:** clean, vintage, 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:** `#008080` — Token from style foundations.
|
|
17
|
+
- **Secondary:** `#C0C0C0` — 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:** `#C0C0C0` — Token from style foundations.
|
|
22
|
+
- **Text:** `#000000` — Token from style foundations.
|
|
23
|
+
- **Neutral:** `#C0C0C0` — Derived from the surface token for official format compatibility.
|
|
24
|
+
|
|
25
|
+
- Favor Primary (#008080) for CTA emphasis.
|
|
26
|
+
- Use Surface (#C0C0C0) for large backgrounds and cards.
|
|
27
|
+
- Keep body copy on Text (#000000) for legibility.
|
|
28
|
+
|
|
29
|
+
## 3. Typography
|
|
30
|
+
|
|
31
|
+
- **Scale:** 12/14/16/20/24/32
|
|
32
|
+
- **Families:** primary=Silkscreen, display=Silkscreen, mono=JetBrains Mono
|
|
33
|
+
- **Weights:** 400, 700
|
|
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 `#008080`; 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 (#008080) 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.
|