@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,218 @@
|
|
|
1
|
+
/* ─────────────────────────────────────────────────────────────────────────
|
|
2
|
+
* design-systems/cursor/tokens.css
|
|
3
|
+
*
|
|
4
|
+
* Structured token bindings for the "Cursor" brand — the AI-first code
|
|
5
|
+
* editor's marketing voice translated into the shared schema. Like
|
|
6
|
+
* `default/tokens.css` and `kami/tokens.css`, agents are expected to
|
|
7
|
+
* paste the `:root { … }` block verbatim into the first `<style>` of
|
|
8
|
+
* every artifact, then reference values via `var(--name)`.
|
|
9
|
+
*
|
|
10
|
+
* Why this file exists:
|
|
11
|
+
* DESIGN.md describes Cursor in prose ("warm cream `#f2f1ed`, warm
|
|
12
|
+
* near-black `#26251e` text, oklab borders") — agents have to translate
|
|
13
|
+
* that prose into shared token names without inventing brand variants
|
|
14
|
+
* like `--cursor-cream`. This file pre-translates once.
|
|
15
|
+
*
|
|
16
|
+
* Brand identity in three sentences:
|
|
17
|
+
* 1. Warm-shifted everything — cream surfaces, near-black-with-yellow
|
|
18
|
+
* text, oklab-space borders. Pure white / pure black are reserved
|
|
19
|
+
* for code-editor panels and nowhere else.
|
|
20
|
+
* 2. Three typographic voices — CursorGothic at display sizes with
|
|
21
|
+
* aggressive negative letter-spacing (signature), jjannon serif for
|
|
22
|
+
* editorial body, berkeleyMono for code/kbd.
|
|
23
|
+
* 3. Hover semantic is text→crimson (`--danger`), not bg-darken.
|
|
24
|
+
* Component CSS reading `--accent-hover` still gets the schema's
|
|
25
|
+
* darken formula because some artifacts (CTA pills with accent bg)
|
|
26
|
+
* do need it; the brand-signature crimson hover is component-level
|
|
27
|
+
* not token-level.
|
|
28
|
+
*
|
|
29
|
+
* Schema decisions specific to Cursor:
|
|
30
|
+
* - --surface-warm binds to a real warmer tier (#ebeae5 — the
|
|
31
|
+
* "Surface 300" button-default), not aliased to surface. Cursor's
|
|
32
|
+
* surface scale 100→500 is a hallmark; the schema slot maps to the
|
|
33
|
+
* middle tier that buttons rest on.
|
|
34
|
+
* - --fg-2, --meta, --border-soft bind to oklab-fallback rgba values
|
|
35
|
+
* at distinct alpha levels (0.9 / 0.4 / 0.06) rather than aliasing,
|
|
36
|
+
* because Cursor genuinely has the richer ramp.
|
|
37
|
+
* - --tracking-display is set to -0.03em (the 72px hero value
|
|
38
|
+
* normalized to em). Smaller display sizes in components should
|
|
39
|
+
* scale tracking proportionally; the schema only carries one slot.
|
|
40
|
+
* - --elev-raised binds to Cursor's signature 28px/70px diffused
|
|
41
|
+
* shadow rather than the schema fallback. This is the depth move
|
|
42
|
+
* that makes Cursor feel like a print publication.
|
|
43
|
+
* - --focus-ring is depth-only (0 4px 12px), not the halo formula.
|
|
44
|
+
* Cursor never paints cool-blue rings.
|
|
45
|
+
* - --ease-standard: ease (per DESIGN.md §Interaction & Motion), not
|
|
46
|
+
* the schema's cubic-bezier. Brand authenticity over micro-control.
|
|
47
|
+
*
|
|
48
|
+
* Tokens NOT lifted (intentional):
|
|
49
|
+
* - The fine-grained sub-8px spacing scale (1.5px, 2px, 2.5px, 3px,
|
|
50
|
+
* 5px, 6px) used for icon/text micro-alignment is component-internal
|
|
51
|
+
* in this fixture. Promote to C-extension via BRAND_EXTENSIONS only
|
|
52
|
+
* if cross-component reuse demands it.
|
|
53
|
+
* - The named surface scale 100/200/300/400/500 is encoded via the
|
|
54
|
+
* three schema slots (--bg / --surface / --surface-warm). The
|
|
55
|
+
* extreme tiers (100 lightest, 500 deepest) live as inline
|
|
56
|
+
* declarations in components.html where needed.
|
|
57
|
+
* - The timeline state colors (Thinking peach, Grep sage, Read blue,
|
|
58
|
+
* Edit lavender) are decorative state markers, not brand surface
|
|
59
|
+
* tokens. They belong in component CSS for the AI timeline element,
|
|
60
|
+
* not in :root.
|
|
61
|
+
* ─────────────────────────────────────────────────────────────────── */
|
|
62
|
+
|
|
63
|
+
:root {
|
|
64
|
+
/* ─── Surface (3 levels) ──────────────────────────────────────────
|
|
65
|
+
* Cream canvas that defines the entire warm system. Default's
|
|
66
|
+
* `#fafafa → #ffffff` ladder gets replaced by `#f2f1ed → #e6e5e0`,
|
|
67
|
+
* with the warmer surface tier (#ebeae5) bound to --surface-warm
|
|
68
|
+
* for buttons that rest on the page background. */
|
|
69
|
+
--bg: #f2f1ed; /* Surface 200 — warm off-white */
|
|
70
|
+
--surface: #e6e5e0; /* Surface 400 — card / lifted */
|
|
71
|
+
--surface-warm: #ebeae5; /* Surface 300 — button default */
|
|
72
|
+
|
|
73
|
+
/* ─── Foreground ramp (4 levels) ────────────────────────────────
|
|
74
|
+
* Cursor genuinely has a 4-tier ramp: solid for headings/body,
|
|
75
|
+
* 90% for "light surface" button labels, 55% for secondary text,
|
|
76
|
+
* 40% for link underlines and metadata. All bind to the same
|
|
77
|
+
* oklab-fallback rgba (warm brown) at different alphas. */
|
|
78
|
+
--fg: #26251e; /* warm near-black */
|
|
79
|
+
--fg-2: rgba(38, 37, 30, 0.9); /* solid headings on light surfaces */
|
|
80
|
+
--muted: rgba(38, 37, 30, 0.55); /* secondary text */
|
|
81
|
+
--meta: rgba(38, 37, 30, 0.4); /* metadata, link decoration */
|
|
82
|
+
|
|
83
|
+
/* ─── Border (2 levels) ─────────────────────────────────────────
|
|
84
|
+
* DESIGN.md §Color Palette specifies oklab-space borders as the
|
|
85
|
+
* brand signature. The CSS-compatible fallback (rgba) is what
|
|
86
|
+
* actually ships per DESIGN.md §Agent Prompt Guide rule 3. */
|
|
87
|
+
--border: rgba(38, 37, 30, 0.1); /* primary border, 10% warm brown */
|
|
88
|
+
--border-soft: rgba(38, 37, 30, 0.06); /* row separators, ghost-button bg */
|
|
89
|
+
|
|
90
|
+
/* ─── Accent ──────────────────────────────────────────────────────
|
|
91
|
+
* Cursor Orange — primary CTAs, link color, ONE hero accent per
|
|
92
|
+
* screen. Hard cap of 2 visible uses per screen still applies via
|
|
93
|
+
* lint. Note: the signature hover semantic in DESIGN.md is text
|
|
94
|
+
* shifting to --danger (crimson) on buttons; the schema's
|
|
95
|
+
* --accent-hover is reserved for the bg-darken case (when accent
|
|
96
|
+
* IS the bg, e.g. accent-pill CTA). */
|
|
97
|
+
--accent: #f54e00;
|
|
98
|
+
--accent-on: #ffffff;
|
|
99
|
+
--accent-hover: color-mix(in oklab, var(--accent), black 8%);
|
|
100
|
+
--accent-active: color-mix(in oklab, var(--accent), black 14%);
|
|
101
|
+
|
|
102
|
+
/* ─── Semantic ────────────────────────────────────────────────────
|
|
103
|
+
* --danger is Cursor's signature interaction color (hover crimson
|
|
104
|
+
* on buttons), so it gets the brand-specific warm value rather
|
|
105
|
+
* than the schema fallback's pure red. --success is a muted
|
|
106
|
+
* teal-green (warm-shifted). --warn keeps the schema fallback;
|
|
107
|
+
* Cursor's marketing site has no native warn token. */
|
|
108
|
+
--success: #1f8a65; /* muted teal-green */
|
|
109
|
+
--warn: #eab308;
|
|
110
|
+
--danger: #cf2d56; /* warm crimson — hover signature */
|
|
111
|
+
|
|
112
|
+
/* ─── Typography ──────────────────────────────────────────────────
|
|
113
|
+
* Three voices, three roles:
|
|
114
|
+
* --font-display: CursorGothic for headings + UI labels
|
|
115
|
+
* --font-body: jjannon serif for editorial body (literary warmth)
|
|
116
|
+
* --font-mono: berkeleyMono for code, kbd, terminal text
|
|
117
|
+
* The three-voice system is the typographic signature; component
|
|
118
|
+
* CSS should never substitute fewer voices for "simplicity". */
|
|
119
|
+
--font-display: "CursorGothic", "CursorGothic Fallback", system-ui, "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
120
|
+
--font-body: "jjannon", "Iowan Old Style", "Palatino Linotype", "URW Palladio L", P052, ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
|
|
121
|
+
--font-mono: "berkeleyMono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
|
122
|
+
|
|
123
|
+
/* Type scale — distilled from DESIGN.md §Typography Hierarchy.
|
|
124
|
+
* Cursor has more than 8 sizes in production (caption 11, body
|
|
125
|
+
* sans 16, body serif sm 17.28, body serif 19.2, title small 22,
|
|
126
|
+
* sub-heading 26, section 36, hero 72); the schema's 8 slots
|
|
127
|
+
* cover the spine. 17.28px / 19.2px live inline in components.html
|
|
128
|
+
* where the body-serif distinction matters. */
|
|
129
|
+
--text-xs: 11px; /* caption, system micro */
|
|
130
|
+
--text-sm: 14px; /* button label, system caption */
|
|
131
|
+
--text-base: 16px; /* body sans, ui body */
|
|
132
|
+
--text-lg: 19.2px; /* body serif (1.20rem) */
|
|
133
|
+
--text-xl: 22px; /* title small */
|
|
134
|
+
--text-2xl: 26px; /* sub-heading */
|
|
135
|
+
--text-3xl: 36px; /* section heading */
|
|
136
|
+
--text-4xl: 72px; /* display hero */
|
|
137
|
+
|
|
138
|
+
/* Leading + tracking — DESIGN.md §Typography Hierarchy.
|
|
139
|
+
* --leading-tight=1.10 is Cursor's hero rhythm (matches the
|
|
140
|
+
* 72px display); brands with relaxed display rhythms set 1.20.
|
|
141
|
+
* --tracking-display=-0.03em is the 72px-normalized hero tracking
|
|
142
|
+
* (-2.16px / 72px). Smaller display sizes in components.html
|
|
143
|
+
* use proportional inline overrides. */
|
|
144
|
+
--leading-body: 1.5;
|
|
145
|
+
--leading-tight: 1.10;
|
|
146
|
+
--tracking-display: -0.03em;
|
|
147
|
+
|
|
148
|
+
/* ─── Spacing ─────────────────────────────────────────────────────
|
|
149
|
+
* 8px-rooted scale from DESIGN.md §Layout Principles (with the
|
|
150
|
+
* --space-1=4px tier kept for icon/dot rhythm). Cursor's
|
|
151
|
+
* sub-8px micro-scale (1.5/2/2.5/3/5/6) is component-internal —
|
|
152
|
+
* see the elev-ring / icon-rule decisions in components.html. */
|
|
153
|
+
--space-1: 4px;
|
|
154
|
+
--space-2: 8px;
|
|
155
|
+
--space-3: 12px;
|
|
156
|
+
--space-4: 16px;
|
|
157
|
+
--space-5: 20px;
|
|
158
|
+
--space-6: 24px;
|
|
159
|
+
--space-8: 32px;
|
|
160
|
+
--space-12: 48px;
|
|
161
|
+
|
|
162
|
+
/* Section rhythm — DESIGN.md §Responsive Behavior collapsing
|
|
163
|
+
* strategy: "Section spacing: 80px+ → 48px → 32px on mobile". */
|
|
164
|
+
--section-y-desktop: 80px;
|
|
165
|
+
--section-y-tablet: 48px;
|
|
166
|
+
--section-y-phone: 32px;
|
|
167
|
+
|
|
168
|
+
/* ─── Radius ──────────────────────────────────────────────────────
|
|
169
|
+
* DESIGN.md §Border Radius Scale: comfortable 8px (primary
|
|
170
|
+
* buttons/cards/menus), featured 10px (larger containers), full
|
|
171
|
+
* pill 9999px (tags/filters). Schema's --radius-md gets 10px
|
|
172
|
+
* rather than 12px to honor the cursor-specific featured tier;
|
|
173
|
+
* --radius-lg keeps 12px because no Cursor surface uses 16px+. */
|
|
174
|
+
--radius-sm: 8px;
|
|
175
|
+
--radius-md: 10px;
|
|
176
|
+
--radius-lg: 12px;
|
|
177
|
+
--radius-pill: 9999px;
|
|
178
|
+
|
|
179
|
+
/* ─── Elevation ───────────────────────────────────────────────────
|
|
180
|
+
* Cursor's depth signature (DESIGN.md §Depth & Elevation): no
|
|
181
|
+
* crisp drop shadows. Border ring + diffused atmospheric lift.
|
|
182
|
+
* --elev-flat: pages, text blocks
|
|
183
|
+
* --elev-ring: standard card edge (1px warm-brown ring)
|
|
184
|
+
* --elev-raised: signature heavy-blur shadow with oklab ring,
|
|
185
|
+
* used for elevated cards / popovers / modals. */
|
|
186
|
+
--elev-flat: none;
|
|
187
|
+
--elev-ring: 0 0 0 1px var(--border);
|
|
188
|
+
--elev-raised:
|
|
189
|
+
0 28px 70px rgba(0, 0, 0, 0.14),
|
|
190
|
+
0 14px 32px rgba(0, 0, 0, 0.1),
|
|
191
|
+
0 0 0 1px var(--border);
|
|
192
|
+
|
|
193
|
+
/* ─── Focus ───────────────────────────────────────────────────────
|
|
194
|
+
* DESIGN.md §Interaction & Motion: "Shadow-based focus:
|
|
195
|
+
* rgba(0,0,0,0.1) 0px 4px 12px for depth-based focus indication.
|
|
196
|
+
* Consistent warm tone in all focus states — no cold blue focus
|
|
197
|
+
* rings." Implemented as box-shadow so it layers without
|
|
198
|
+
* affecting layout. */
|
|
199
|
+
--focus-ring: 0 4px 12px rgba(0, 0, 0, 0.1);
|
|
200
|
+
|
|
201
|
+
/* ─── Motion ──────────────────────────────────────────────────────
|
|
202
|
+
* DESIGN.md §Interaction & Motion specifies 150ms color / 200ms
|
|
203
|
+
* shadow with `ease` easing. Cursor uses the keyword `ease`
|
|
204
|
+
* rather than a custom cubic-bezier; component authors should
|
|
205
|
+
* not rebind to a more aggressive curve. */
|
|
206
|
+
--motion-fast: 150ms;
|
|
207
|
+
--motion-base: 200ms;
|
|
208
|
+
--ease-standard: ease;
|
|
209
|
+
|
|
210
|
+
/* ─── Layout ──────────────────────────────────────────────────────
|
|
211
|
+
* DESIGN.md §Grid & Container: "Max content width: approximately
|
|
212
|
+
* 1200px". Gutters not explicitly specified; using cross-brand
|
|
213
|
+
* defaults that match default. */
|
|
214
|
+
--container-max: 1200px;
|
|
215
|
+
--container-gutter-desktop: 24px;
|
|
216
|
+
--container-gutter-tablet: 16px;
|
|
217
|
+
--container-gutter-phone: 12px;
|
|
218
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Design System Inspired by Dashboard
|
|
2
|
+
|
|
3
|
+
> Category: Professional & Corporate
|
|
4
|
+
> Dark-themed cloud-platform aesthetic with modular grids, glass-like panels, and strong data hierarchy for productivity dashboards.
|
|
5
|
+
|
|
6
|
+
## 1. Visual Theme & Atmosphere
|
|
7
|
+
|
|
8
|
+
Dark-themed cloud-platform aesthetic with modular grids, glass-like panels, and strong data hierarchy for productivity dashboards.
|
|
9
|
+
|
|
10
|
+
- **Visual style:** modern, clean, cloud-platform aesthetic (Heroku/Vercel/GitHub inspired), dark theme, subtle gradients, soft shadows, glass-like panels, rounded components
|
|
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:** `#0C5CAB` — Token from style foundations.
|
|
17
|
+
- **Secondary:** `#0A4A8A` — Token from style foundations.
|
|
18
|
+
- **Success:** `#10B981` — Token from style foundations.
|
|
19
|
+
- **Warning:** `#F59E0B` — Token from style foundations.
|
|
20
|
+
- **Danger:** `#EF4444` — Token from style foundations.
|
|
21
|
+
- **Surface:** `#09090B` — Token from style foundations.
|
|
22
|
+
- **Text:** `#FAFAFA` — Token from style foundations.
|
|
23
|
+
- **Neutral:** `#09090B` — Derived from the surface token for official format compatibility.
|
|
24
|
+
|
|
25
|
+
- Favor Primary (#0C5CAB) for CTA emphasis.
|
|
26
|
+
- Use Surface (#09090B) for large backgrounds and cards.
|
|
27
|
+
- Keep body copy on Text (#FAFAFA) for legibility.
|
|
28
|
+
|
|
29
|
+
## 3. Typography
|
|
30
|
+
|
|
31
|
+
- **Scale:** 12/14/16/20/24/32
|
|
32
|
+
- **Families:** primary=IBM Plex Sans, display=IBM Plex Sans, mono=IBM Plex Sans
|
|
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:** 8pt baseline grid
|
|
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 `#0C5CAB`; 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 (#0C5CAB) 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,154 @@
|
|
|
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>Dashboard - reference components</title>
|
|
7
|
+
<meta name="description" content="Reference fixture for design-systems/dashboard: analytics dashboard with compact cards, cool surfaces, and status-first information design." />
|
|
8
|
+
<style>
|
|
9
|
+
:root {
|
|
10
|
+
--bg: #f4f7fb;
|
|
11
|
+
--surface: #ffffff;
|
|
12
|
+
--surface-warm: #eef6ff;
|
|
13
|
+
--fg: #111827;
|
|
14
|
+
--fg-2: #334155;
|
|
15
|
+
--muted: #64748b;
|
|
16
|
+
--meta: #0ea5e9;
|
|
17
|
+
--border: #d8e2ee;
|
|
18
|
+
--border-soft: #edf3f8;
|
|
19
|
+
--accent: #0ea5e9;
|
|
20
|
+
--accent-on: #04131d;
|
|
21
|
+
--accent-hover: color-mix(in oklab, var(--accent), black 8%);
|
|
22
|
+
--accent-active: color-mix(in oklab, var(--accent), black 14%);
|
|
23
|
+
--success: #10b981;
|
|
24
|
+
--warn: #f59e0b;
|
|
25
|
+
--danger: #ef4444;
|
|
26
|
+
--font-display: Inter, system-ui, sans-serif;
|
|
27
|
+
--font-body: Inter, system-ui, sans-serif;
|
|
28
|
+
--font-mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;
|
|
29
|
+
--text-xs: 11px;
|
|
30
|
+
--text-sm: 13px;
|
|
31
|
+
--text-base: 15px;
|
|
32
|
+
--text-lg: 17px;
|
|
33
|
+
--text-xl: 22px;
|
|
34
|
+
--text-2xl: 30px;
|
|
35
|
+
--text-3xl: 42px;
|
|
36
|
+
--text-4xl: 56px;
|
|
37
|
+
--leading-body: 1.48;
|
|
38
|
+
--leading-tight: 1.1;
|
|
39
|
+
--tracking-display: -0.015em;
|
|
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: 84px;
|
|
49
|
+
--section-y-tablet: 60px;
|
|
50
|
+
--section-y-phone: 42px;
|
|
51
|
+
--radius-sm: 8px;
|
|
52
|
+
--radius-md: 12px;
|
|
53
|
+
--radius-lg: 18px;
|
|
54
|
+
--radius-pill: 9999px;
|
|
55
|
+
--elev-flat: none;
|
|
56
|
+
--elev-ring: 0 0 0 1px var(--border);
|
|
57
|
+
--elev-raised: 0 18px 46px rgba(15, 23, 42, 0.10);
|
|
58
|
+
--focus-ring: 0 0 0 4px rgba(14, 165, 233, 0.22);
|
|
59
|
+
--motion-fast: 120ms;
|
|
60
|
+
--motion-base: 200ms;
|
|
61
|
+
--ease-standard: cubic-bezier(0.2, 0, 0, 1);
|
|
62
|
+
--container-max: 1280px;
|
|
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 {
|
|
71
|
+
min-height: 100vh;
|
|
72
|
+
background: var(--bg);
|
|
73
|
+
color: var(--fg);
|
|
74
|
+
font-family: var(--font-body);
|
|
75
|
+
font-size: var(--text-base);
|
|
76
|
+
line-height: var(--leading-body);
|
|
77
|
+
-webkit-font-smoothing: antialiased;
|
|
78
|
+
}
|
|
79
|
+
.page { min-height: 100vh; background: linear-gradient(135deg, #f4f7fb 0%, #eef6ff 100%); }
|
|
80
|
+
.container { max-width: var(--container-max); margin-inline: auto; padding-inline: var(--container-gutter-desktop); }
|
|
81
|
+
section { padding-block: var(--section-y-desktop); }
|
|
82
|
+
@media (max-width: 1023px) { .container { padding-inline: var(--container-gutter-tablet); } section { padding-block: var(--section-y-tablet); } }
|
|
83
|
+
@media (max-width: 639px) { .container { padding-inline: var(--container-gutter-phone); } section { padding-block: var(--section-y-phone); } }
|
|
84
|
+
h1, h2, h3, p { margin: 0; }
|
|
85
|
+
h1, h2, h3 { font-family: var(--font-display); line-height: var(--leading-tight); letter-spacing: var(--tracking-display); }
|
|
86
|
+
h1 { max-width: 820px; font-size: var(--text-4xl); font-weight: 760; }
|
|
87
|
+
h2 { font-size: var(--text-3xl); font-weight: 700; }
|
|
88
|
+
h3 { font-size: var(--text-xl); font-weight: 700; }
|
|
89
|
+
.eyebrow { color: var(--meta); font-family: var(--font-mono); font-size: var(--text-xs); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
|
|
90
|
+
.lead { max-width: 640px; color: var(--fg-2); font-size: var(--text-lg); }
|
|
91
|
+
.hero { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.9fr); gap: var(--space-8); align-items: center; }
|
|
92
|
+
.stack > * + * { margin-block-start: var(--space-4); }
|
|
93
|
+
.actions { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-block-start: var(--space-6); }
|
|
94
|
+
.btn {
|
|
95
|
+
display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 var(--space-5);
|
|
96
|
+
border: 1px solid transparent; border-radius: var(--radius-md); font: 700 var(--text-sm) / 1 var(--font-body);
|
|
97
|
+
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);
|
|
98
|
+
}
|
|
99
|
+
.btn:focus-visible { outline: none; box-shadow: var(--focus-ring); }
|
|
100
|
+
.btn-primary { background: var(--accent); color: var(--accent-on); }
|
|
101
|
+
.btn-primary:hover { background: var(--accent-hover); transform: translateY(-1px); }
|
|
102
|
+
.btn-secondary { background: var(--surface); color: var(--fg); border-color: var(--border); box-shadow: var(--elev-ring); }
|
|
103
|
+
.btn-secondary:hover { border-color: var(--accent); color: var(--accent); }
|
|
104
|
+
.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; }
|
|
105
|
+
.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); }
|
|
106
|
+
.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; }
|
|
107
|
+
.status::before { width: 8px; height: 8px; border-radius: var(--radius-pill); background: var(--success); content: ""; }
|
|
108
|
+
.metric-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-bottom: 1px solid var(--border-soft); }
|
|
109
|
+
.metric { padding: var(--space-5); border-right: 1px solid var(--border-soft); }
|
|
110
|
+
.metric:last-child { border-right: 0; }
|
|
111
|
+
.metric strong { display: block; font-family: var(--font-display); font-size: var(--text-2xl); line-height: var(--leading-tight); }
|
|
112
|
+
.metric span { color: var(--muted); font-size: var(--text-sm); }
|
|
113
|
+
.card-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); padding: var(--space-5); }
|
|
114
|
+
.mini-card { min-height: 148px; padding: var(--space-5); border: 1px solid var(--border-soft); border-radius: var(--radius-md); background: var(--surface-warm); }
|
|
115
|
+
.mini-card p, .tile p { color: var(--muted); font-size: var(--text-sm); margin-block-start: var(--space-3); }
|
|
116
|
+
.swatches { display: flex; gap: var(--space-2); margin-block-start: var(--space-4); }
|
|
117
|
+
.swatch { width: 32px; height: 32px; border-radius: var(--radius-sm); border: 1px solid var(--border); }
|
|
118
|
+
.swatch.accent { background: var(--accent); } .swatch.surface { background: var(--surface); } .swatch.warm { background: var(--surface-warm); } .swatch.fg { background: var(--fg); }
|
|
119
|
+
.field { display: grid; gap: var(--space-2); margin-block-start: var(--space-5); }
|
|
120
|
+
label { color: var(--fg-2); font-size: var(--text-sm); font-weight: 700; }
|
|
121
|
+
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; }
|
|
122
|
+
input:focus { outline: none; box-shadow: var(--focus-ring); border-color: var(--accent); }
|
|
123
|
+
.lower { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); }
|
|
124
|
+
.tile { padding: var(--space-5); border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); }
|
|
125
|
+
@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; } }
|
|
126
|
+
</style>
|
|
127
|
+
</head>
|
|
128
|
+
<body>
|
|
129
|
+
<main class="page">
|
|
130
|
+
<section>
|
|
131
|
+
<div class="container hero">
|
|
132
|
+
<div class="stack">
|
|
133
|
+
<p class="eyebrow">Dashboard design system</p>
|
|
134
|
+
<h1>Operational metrics wall</h1>
|
|
135
|
+
<p class="lead">Dense analytics cards, status chips, and quick scanning for repeated use.</p>
|
|
136
|
+
<div class="actions" aria-label="Reference actions">
|
|
137
|
+
<a class="btn btn-primary" href="#">Primary action</a>
|
|
138
|
+
<a class="btn btn-secondary" href="#">Secondary action</a>
|
|
139
|
+
</div>
|
|
140
|
+
</div>
|
|
141
|
+
<article class="panel" aria-label="Dashboard component preview">
|
|
142
|
+
<div class="panel-head"><div><p class="eyebrow">Live module</p><h3>Reference component</h3></div><span class="status">online</span></div>
|
|
143
|
+
<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>
|
|
144
|
+
<div class="card-row">
|
|
145
|
+
<div class="mini-card"><h3>Palette</h3><p>analytics dashboard with compact cards, cool surfaces, and status-first information design.</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>
|
|
146
|
+
<div class="mini-card"><h3>Control</h3><p>Focus, hover, and status states share the same brand signal.</p><div class="field"><label for="dashboard-input">Reference input</label><input id="dashboard-input" value="Dashboard system token" /></div></div>
|
|
147
|
+
</div>
|
|
148
|
+
</article>
|
|
149
|
+
</div>
|
|
150
|
+
</section>
|
|
151
|
+
<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 brand-specific focus rings and easing.</p></article></div></section>
|
|
152
|
+
</main>
|
|
153
|
+
</body>
|
|
154
|
+
</html>
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/* design-systems/dashboard/tokens.css
|
|
2
|
+
* Structured token bindings for Dashboard.
|
|
3
|
+
* analytics dashboard with compact cards, cool surfaces, and status-first information design.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
:root {
|
|
7
|
+
--bg: #f4f7fb;
|
|
8
|
+
--surface: #ffffff;
|
|
9
|
+
--surface-warm: #eef6ff;
|
|
10
|
+
--fg: #111827;
|
|
11
|
+
--fg-2: #334155;
|
|
12
|
+
--muted: #64748b;
|
|
13
|
+
--meta: #0ea5e9;
|
|
14
|
+
--border: #d8e2ee;
|
|
15
|
+
--border-soft: #edf3f8;
|
|
16
|
+
--accent: #0ea5e9;
|
|
17
|
+
--accent-on: #04131d;
|
|
18
|
+
--accent-hover: color-mix(in oklab, var(--accent), black 8%);
|
|
19
|
+
--accent-active: color-mix(in oklab, var(--accent), black 14%);
|
|
20
|
+
--success: #10b981;
|
|
21
|
+
--warn: #f59e0b;
|
|
22
|
+
--danger: #ef4444;
|
|
23
|
+
--font-display: Inter, system-ui, sans-serif;
|
|
24
|
+
--font-body: Inter, system-ui, sans-serif;
|
|
25
|
+
--font-mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;
|
|
26
|
+
--text-xs: 11px;
|
|
27
|
+
--text-sm: 13px;
|
|
28
|
+
--text-base: 15px;
|
|
29
|
+
--text-lg: 17px;
|
|
30
|
+
--text-xl: 22px;
|
|
31
|
+
--text-2xl: 30px;
|
|
32
|
+
--text-3xl: 42px;
|
|
33
|
+
--text-4xl: 56px;
|
|
34
|
+
--leading-body: 1.48;
|
|
35
|
+
--leading-tight: 1.1;
|
|
36
|
+
--tracking-display: -0.015em;
|
|
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: 84px;
|
|
46
|
+
--section-y-tablet: 60px;
|
|
47
|
+
--section-y-phone: 42px;
|
|
48
|
+
--radius-sm: 8px;
|
|
49
|
+
--radius-md: 12px;
|
|
50
|
+
--radius-lg: 18px;
|
|
51
|
+
--radius-pill: 9999px;
|
|
52
|
+
--elev-flat: none;
|
|
53
|
+
--elev-ring: 0 0 0 1px var(--border);
|
|
54
|
+
--elev-raised: 0 18px 46px rgba(15, 23, 42, 0.10);
|
|
55
|
+
--focus-ring: 0 0 0 4px rgba(14, 165, 233, 0.22);
|
|
56
|
+
--motion-fast: 120ms;
|
|
57
|
+
--motion-base: 200ms;
|
|
58
|
+
--ease-standard: cubic-bezier(0.2, 0, 0, 1);
|
|
59
|
+
--container-max: 1280px;
|
|
60
|
+
--container-gutter-desktop: 36px;
|
|
61
|
+
--container-gutter-tablet: 24px;
|
|
62
|
+
--container-gutter-phone: 16px;
|
|
63
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Neutral Modern
|
|
2
|
+
|
|
3
|
+
> Category: Starter
|
|
4
|
+
> A clean, product-oriented default. Use when the brief doesn't call for a
|
|
5
|
+
> specific mood — good for B2B tools, dashboards, and utility pages.
|
|
6
|
+
|
|
7
|
+
## Visual Theme & Atmosphere
|
|
8
|
+
Calm, functional, quietly confident. No ornament. Content-first, chrome-second.
|
|
9
|
+
|
|
10
|
+
## Color Palette & Roles
|
|
11
|
+
- **Background:** `#FAFAFA`
|
|
12
|
+
- **Foreground:** `#111111`
|
|
13
|
+
- **Accent:** `#2F6FEB` (cobalt) — primary CTAs, links, one hero element per screen
|
|
14
|
+
- **Muted:** `#6B6B6B` — secondary text, captions
|
|
15
|
+
- **Border:** `#E5E5E5`
|
|
16
|
+
- **Surface:** `#FFFFFF` — cards, modals
|
|
17
|
+
- **Success:** `#17A34A`, **Warn:** `#EAB308`, **Danger:** `#DC2626`
|
|
18
|
+
Never pure black; never pure white for backgrounds.
|
|
19
|
+
|
|
20
|
+
## Typography Rules
|
|
21
|
+
- **Display / headings:** `'Inter', -apple-system, system-ui, sans-serif`, weight 600
|
|
22
|
+
- **Body:** `'Inter', -apple-system, system-ui, sans-serif`, weight 400
|
|
23
|
+
- **Mono:** `ui-monospace, 'JetBrains Mono', monospace`
|
|
24
|
+
- Scale (px): 12 · 14 · 16 · 20 · 24 · 32 · 48 · 64
|
|
25
|
+
- Line-height: 1.5 for body, 1.2 for headings
|
|
26
|
+
- Letter-spacing: -0.01em on display sizes ≥32px
|
|
27
|
+
|
|
28
|
+
## Component Stylings
|
|
29
|
+
- **Buttons:** 8px radius, 10px padding-block, 16px padding-inline. Primary = cobalt fill, white label. Secondary = 1px border, transparent fill.
|
|
30
|
+
- **Cards:** white, 1px border, 12px radius, 20px internal padding, no shadow by default.
|
|
31
|
+
- **Inputs:** 1px border, 8px radius, 10px vertical padding, cobalt border on focus.
|
|
32
|
+
- **Links:** cobalt, no underline, underline on hover.
|
|
33
|
+
|
|
34
|
+
## Layout Principles
|
|
35
|
+
- 12-column grid, 1200px max-width, 24px gutters.
|
|
36
|
+
- Hero: 40–60vh. Content top-biased, never centered vertically.
|
|
37
|
+
- Sections: 80px top+bottom spacing desktop, 48px tablet, 32px phone.
|
|
38
|
+
- Use whitespace as the main separator. Dividers only between unrelated top-level sections.
|
|
39
|
+
|
|
40
|
+
## Depth & Elevation
|
|
41
|
+
Two levels only:
|
|
42
|
+
- **Flat (0):** default.
|
|
43
|
+
- **Raised (1):** dropdowns, modals, floating buttons. 2px y-offset, 8px blur, foreground at 8% opacity.
|
|
44
|
+
No neumorphism, no glassmorphism.
|
|
45
|
+
|
|
46
|
+
## Do's and Don'ts
|
|
47
|
+
- ✅ Let whitespace do the work.
|
|
48
|
+
- ✅ One accent element per screen.
|
|
49
|
+
- ✅ Sentence-case headings by default; title case only for brand names.
|
|
50
|
+
- ❌ No gradients (except the accent → accent-at-80% on a hero, sparingly).
|
|
51
|
+
- ❌ No drop shadows on inputs.
|
|
52
|
+
- ❌ No more than three type sizes on one screen.
|
|
53
|
+
|
|
54
|
+
## Responsive Behavior
|
|
55
|
+
- **Desktop ≥ 1024px:** 12-col grid.
|
|
56
|
+
- **Tablet 640–1023px:** 8-col grid, 16px gutters.
|
|
57
|
+
- **Phone < 640px:** 4-col grid, 12px gutters; hero drops to 40vh.
|
|
58
|
+
|
|
59
|
+
## Agent Prompt Guide
|
|
60
|
+
- When in doubt, subtract. Fewer boxes, less chrome, more space.
|
|
61
|
+
- Use the accent color sparingly — at most one hero accent and one CTA accent per screen.
|
|
62
|
+
- Do not invent hex values outside this palette. If the request needs one, surface a warning comment in the artifact and use the closest existing token.
|