@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,295 @@
|
|
|
1
|
+
/* ─────────────────────────────────────────────────────────────────────────
|
|
2
|
+
* design-systems/stripe/tokens.css
|
|
3
|
+
*
|
|
4
|
+
* Structured token bindings for "Inspired by Stripe" — fintech
|
|
5
|
+
* infrastructure dressed in deep navy, signature violet, and the
|
|
6
|
+
* blue-tinted multi-layer shadow that makes elevation feel branded.
|
|
7
|
+
*
|
|
8
|
+
* This file pre-compiles the values described in `DESIGN.md` into
|
|
9
|
+
* the schema shared with every OD design system. Agents generating a
|
|
10
|
+
* Stripe-flavored artifact should paste the `:root { … }` block
|
|
11
|
+
* verbatim into the first `<style>` of the artifact, then reference
|
|
12
|
+
* every value through `var(--name)` — never re-author the hex
|
|
13
|
+
* inline. The fixture in `components.html` is the round-trip proof
|
|
14
|
+
* that the token block alone is sufficient to render a recognisably
|
|
15
|
+
* Stripe page.
|
|
16
|
+
*
|
|
17
|
+
* Why this file exists:
|
|
18
|
+
* DESIGN.md gives humans context ("Stripe Purple #533afd — primary
|
|
19
|
+
* CTAs"), but agents have to translate prose names like
|
|
20
|
+
* "Stripe Purple" into the standard token names the lint enforces
|
|
21
|
+
* (`--accent`). This file pre-translates the brand once, so agents
|
|
22
|
+
* copy structure rather than invent it.
|
|
23
|
+
*
|
|
24
|
+
* Schema notes (Stripe binds the shared schema in seven brand-
|
|
25
|
+
* specific ways — see `#Stripe N` tags inline for each decision):
|
|
26
|
+
* #Stripe 1 — 3-tier surface stops short of a darker third tier;
|
|
27
|
+
* `--surface-warm` binds to the cool-pale #f6f9fc that
|
|
28
|
+
* Stripe uses behind nested panels (pricing rows, code
|
|
29
|
+
* previews) rather than to a warm parchment.
|
|
30
|
+
* #Stripe 2 — 3-tier foreground (navy heading / dark-slate label /
|
|
31
|
+
* slate body). No fourth metadata tier — `--meta`
|
|
32
|
+
* aliases `var(--muted)`.
|
|
33
|
+
* #Stripe 3 — One border tier. `--border-soft` aliases `--border`
|
|
34
|
+
* because DESIGN.md never describes a separate
|
|
35
|
+
* row-separator weight.
|
|
36
|
+
* #Stripe 4 — `--accent-hover` and `--accent-active` bind to the
|
|
37
|
+
* hand-picked Purple Hover (#4434d4) and Purple Deep
|
|
38
|
+
* (#2e2b8c) values from DESIGN.md, not the schema's
|
|
39
|
+
* black-mix formula. Stripe's saturation needs the
|
|
40
|
+
* exact shifts.
|
|
41
|
+
* #Stripe 5 — Type scale ceiling is 56px (`--text-4xl`), not 64px.
|
|
42
|
+
* DESIGN.md §3 puts the display hero at 56px / weight
|
|
43
|
+
* 300 with -1.4px tracking — Stripe's "whisper
|
|
44
|
+
* authority". Adding 64px would push past the brand's
|
|
45
|
+
* self-imposed ceiling.
|
|
46
|
+
* #Stripe 6 — `--elev-raised` carries Stripe's trademark
|
|
47
|
+
* multi-layer blue-tinted shadow
|
|
48
|
+
* (`rgba(50,50,93,0.25) … , rgba(0,0,0,0.1) …`). This
|
|
49
|
+
* is the single most brand-distinctive token in the
|
|
50
|
+
* file; rebinding it to a neutral drop shadow erases
|
|
51
|
+
* Stripe's atmosphere even when every color is right.
|
|
52
|
+
* #Stripe 7 — `--focus-ring` is a layered purple halo — a thin
|
|
53
|
+
* solid edge plus a translucent outer glow. Stripe's
|
|
54
|
+
* focus state is more visible than the schema default
|
|
55
|
+
* because keyboard navigation in payment flows is a
|
|
56
|
+
* first-class concern.
|
|
57
|
+
*
|
|
58
|
+
* Brand-specific extensions (Layer C):
|
|
59
|
+
* None. The dark brand section (`#1c1e54`) and ruby/magenta
|
|
60
|
+
* gradient accents from DESIGN.md are *decorative* — they exist
|
|
61
|
+
* only as one-off inline expressions in components.html, derived
|
|
62
|
+
* from `--accent` via `color-mix(...)`. They are not promoted to
|
|
63
|
+
* tokens because no cross-component rule needs to reference them
|
|
64
|
+
* by name; promoting them would force every other brand to declare
|
|
65
|
+
* matching slots.
|
|
66
|
+
* ─────────────────────────────────────────────────────────────────── */
|
|
67
|
+
|
|
68
|
+
:root {
|
|
69
|
+
/* ─── Surface (3 levels — #Stripe 1) ──────────────────────────────
|
|
70
|
+
* Stripe sits on pure white. The "warm" tier is a cool-pale
|
|
71
|
+
* blue-tinted #f6f9fc (DESIGN.md's neutral-pill border colour) —
|
|
72
|
+
* it reads as a separate elevation under nested panels (pricing
|
|
73
|
+
* rows, code previews, sticky nav blur) without introducing a
|
|
74
|
+
* warm cast that would clash with the navy / violet palette.
|
|
75
|
+
* Brands without a tertiary surface tier should alias
|
|
76
|
+
* `--surface-warm` to `var(--surface)`; Stripe binds a real value
|
|
77
|
+
* because its dense data panels need that quiet separation. */
|
|
78
|
+
--bg: #ffffff;
|
|
79
|
+
--surface: #ffffff;
|
|
80
|
+
--surface-warm: #f6f9fc; /* cool-pale blue — nested panels, sticky nav */
|
|
81
|
+
|
|
82
|
+
/* ─── Foreground ramp (3 tiers — #Stripe 2) ─────────────────────
|
|
83
|
+
* Deep Navy (`#061b31`) carries every heading — never pure
|
|
84
|
+
* black, never gray. DESIGN.md is explicit: "warmth matters".
|
|
85
|
+
* Dark Slate (`#273951`) is the form-label tier. Slate (`#64748d`)
|
|
86
|
+
* is the body / caption / placeholder colour.
|
|
87
|
+
*
|
|
88
|
+
* Stripe doesn't differentiate a fourth metadata tier, so
|
|
89
|
+
* `--meta` aliases `var(--muted)`. Brands like kami that need
|
|
90
|
+
* dates / timestamps / footnote text at a fourth shade may bind
|
|
91
|
+
* an independent value. */
|
|
92
|
+
--fg: #061b31; /* deep navy — headings, nav text, strong labels */
|
|
93
|
+
--fg-2: #273951; /* dark slate — form labels, sub-headings */
|
|
94
|
+
--muted: #64748d; /* slate — body, placeholders, captions */
|
|
95
|
+
--meta: var(--muted); /* alias — Stripe has no separate metadata tier */
|
|
96
|
+
|
|
97
|
+
/* ─── Border (1 tier — #Stripe 3) ───────────────────────────────
|
|
98
|
+
* One border weight for everything: card edges, dividers,
|
|
99
|
+
* containers. DESIGN.md's purple/magenta/dashed border variants
|
|
100
|
+
* are *decorative* (drop-zones, themed badges), not row
|
|
101
|
+
* separators — they live inline in components.html and do not
|
|
102
|
+
* earn a slot in the schema. `--border-soft` aliases. */
|
|
103
|
+
--border: #e5edf5;
|
|
104
|
+
--border-soft: var(--border); /* alias — Stripe has one border weight */
|
|
105
|
+
|
|
106
|
+
/* ─── Accent ──────────────────────────────────────────────────────
|
|
107
|
+
* Stripe Purple — primary CTAs, link text, interactive
|
|
108
|
+
* highlights, the focus ring. A saturated blue-violet that
|
|
109
|
+
* anchors the entire system. Hard cap of ≤2 visible uses per
|
|
110
|
+
* screen (lint `accent-overuse` P1 enforces). */
|
|
111
|
+
--accent: #533afd;
|
|
112
|
+
--accent-on: #ffffff; /* button label on purple — DESIGN.md §4 */
|
|
113
|
+
|
|
114
|
+
/* ─── Accent states (#Stripe 4) ─────────────────────────────────
|
|
115
|
+
* Hand-picked values from DESIGN.md §2, NOT a black-mix formula.
|
|
116
|
+
* Stripe Purple is saturated enough that the schema's
|
|
117
|
+
* `color-mix(in oklab, var(--accent), black 8%)` produces a
|
|
118
|
+
* muddy violet rather than the deliberate Purple Hover that
|
|
119
|
+
* Stripe.com ships. Use the brand's own values.
|
|
120
|
+
*
|
|
121
|
+
* Schema rule: every brand provides `--accent-hover` and
|
|
122
|
+
* `--accent-active`. The binding strategy (formula / identity /
|
|
123
|
+
* hand-picked) is brand-decided. */
|
|
124
|
+
--accent-hover: #4434d4; /* Purple Hover — DESIGN.md §2 */
|
|
125
|
+
--accent-active: #2e2b8c; /* Purple Deep — DESIGN.md §2 */
|
|
126
|
+
|
|
127
|
+
/* ─── Semantic ───────────────────────────────────────────────────
|
|
128
|
+
* Status colours pulled from DESIGN.md §2. Stripe's success is a
|
|
129
|
+
* deliberately vivid green (`#15be53`) because payment-success
|
|
130
|
+
* confirmations are the system's happy path — that pixel deserves
|
|
131
|
+
* the saturation. Warn is the muted lemon Stripe uses for
|
|
132
|
+
* highlight pills; danger is the ruby accent because rejected
|
|
133
|
+
* cards and disputed charges are the only "danger" surface
|
|
134
|
+
* Stripe.com renders, and they ship ruby — not the schema's
|
|
135
|
+
* neutral red — for the alert. */
|
|
136
|
+
--success: #15be53; /* DESIGN.md success green */
|
|
137
|
+
--warn: #9b6829; /* lemon — warning / highlight accent */
|
|
138
|
+
--danger: #ea2261; /* ruby — used for alerts, dispute states */
|
|
139
|
+
|
|
140
|
+
/* ─── Typography — fonts ─────────────────────────────────────────
|
|
141
|
+
* `sohne-var` is the defining element of Stripe's identity
|
|
142
|
+
* (DESIGN.md §1). It is a custom face and will not load for
|
|
143
|
+
* most readers; the fallback chain is the closest SF / system
|
|
144
|
+
* sans we can reach without licensing. Components must always
|
|
145
|
+
* set `font-feature-settings: "ss01"` on top of these stacks —
|
|
146
|
+
* the stylistic set is non-negotiable when sohne-var IS loaded.
|
|
147
|
+
*
|
|
148
|
+
* `--font-mono` is `SourceCodePro` per DESIGN.md §3 — the
|
|
149
|
+
* brand's monospace companion, used for code blocks at 12px /
|
|
150
|
+
* 500 with 2.00 line-height. */
|
|
151
|
+
--font-display:
|
|
152
|
+
"sohne-var", "Söhne", "Sohne",
|
|
153
|
+
"SF Pro Display", -apple-system, BlinkMacSystemFont,
|
|
154
|
+
system-ui, "Helvetica Neue", Arial, sans-serif;
|
|
155
|
+
--font-body:
|
|
156
|
+
"sohne-var", "Söhne", "Sohne",
|
|
157
|
+
"SF Pro Display", -apple-system, BlinkMacSystemFont,
|
|
158
|
+
system-ui, "Helvetica Neue", Arial, sans-serif;
|
|
159
|
+
--font-mono:
|
|
160
|
+
"SourceCodePro", "Source Code Pro",
|
|
161
|
+
ui-monospace, "SF Mono", "JetBrains Mono",
|
|
162
|
+
Menlo, Monaco, Consolas, monospace;
|
|
163
|
+
|
|
164
|
+
/* ─── Typography — type scale (#Stripe 5) ───────────────────────
|
|
165
|
+
* Direct mapping of DESIGN.md §3 hierarchy: 12 / 14 / 16 / 18 /
|
|
166
|
+
* 22 / 32 / 48 / 56. Stripe's display ceiling is 56px (weight
|
|
167
|
+
* 300, -1.4px tracking) — adding a 64px tier would push past
|
|
168
|
+
* the brand's self-imposed limit on hero loudness. The smaller
|
|
169
|
+
* 8px / 10px / 11px / 13px sizes from DESIGN.md's table are
|
|
170
|
+
* intentional micro sizes (chart axes, financial fine print) and
|
|
171
|
+
* are inlined where used rather than promoted to the shared
|
|
172
|
+
* scale. */
|
|
173
|
+
--text-xs: 12px; /* caption small, dense labels */
|
|
174
|
+
--text-sm: 14px; /* button small, navigation links */
|
|
175
|
+
--text-base: 16px; /* body baseline */
|
|
176
|
+
--text-lg: 18px; /* body large, feature lede */
|
|
177
|
+
--text-xl: 22px; /* sub-heading, card title */
|
|
178
|
+
--text-2xl: 32px; /* section heading */
|
|
179
|
+
--text-3xl: 48px; /* display large */
|
|
180
|
+
--text-4xl: 56px; /* display hero — ceiling */
|
|
181
|
+
|
|
182
|
+
/* ─── Typography — leading & tracking ───────────────────────────
|
|
183
|
+
* Reading rhythm is 1.40 — denser than the schema-default 1.5
|
|
184
|
+
* because Stripe's body type (sohne-var at weight 300) reads
|
|
185
|
+
* lighter than Inter / system sans, and slightly tighter
|
|
186
|
+
* leading prevents the page from feeling airy.
|
|
187
|
+
*
|
|
188
|
+
* `--leading-tight` is the headline rhythm — 1.10 matches
|
|
189
|
+
* DESIGN.md's section-heading line-height. The 1.03 / 1.15
|
|
190
|
+
* variations for individual display sizes are tuned in
|
|
191
|
+
* components.html overrides; this token is the default.
|
|
192
|
+
*
|
|
193
|
+
* `--tracking-display` is brand-defining: Stripe compresses
|
|
194
|
+
* display sizes with negative letter-spacing (-1.4px at 56px →
|
|
195
|
+
* -0.025em). The token uses -0.02em so the rule reads
|
|
196
|
+
* consistently across the display range (48px → -0.96px,
|
|
197
|
+
* 32px → -0.64px, all close to -0.02em). Components targeting
|
|
198
|
+
* the 56px hero may override locally for the exact -1.4px. */
|
|
199
|
+
--leading-body: 1.40;
|
|
200
|
+
--leading-tight: 1.10;
|
|
201
|
+
--tracking-display: -0.02em;
|
|
202
|
+
|
|
203
|
+
/* ─── Spacing ────────────────────────────────────────────────────
|
|
204
|
+
* 4px base unit. DESIGN.md §5 calls out a denser scale at the
|
|
205
|
+
* small end (every 2px from 4 → 12) for precision data displays;
|
|
206
|
+
* those fine-grained values are inlined inside specific
|
|
207
|
+
* financial-data components rather than promoted to tokens —
|
|
208
|
+
* the schema's 4/8/12/16/20/24/32/48 ladder covers the
|
|
209
|
+
* UI-chrome rhythm Stripe actually uses on hero / nav / card
|
|
210
|
+
* surfaces. */
|
|
211
|
+
--space-1: 4px;
|
|
212
|
+
--space-2: 8px;
|
|
213
|
+
--space-3: 12px;
|
|
214
|
+
--space-4: 16px;
|
|
215
|
+
--space-5: 20px;
|
|
216
|
+
--space-6: 24px;
|
|
217
|
+
--space-8: 32px;
|
|
218
|
+
--space-12: 48px;
|
|
219
|
+
|
|
220
|
+
/* ─── Section rhythm ─────────────────────────────────────────────
|
|
221
|
+
* Generous vertical breathing room desktop-side (96px) so the
|
|
222
|
+
* 56px hero has air above and below; tightens to 64px on
|
|
223
|
+
* tablet, 40px on phone per DESIGN.md §8 ("64px → 40px on
|
|
224
|
+
* mobile"). */
|
|
225
|
+
--section-y-desktop: 96px;
|
|
226
|
+
--section-y-tablet: 64px;
|
|
227
|
+
--section-y-phone: 40px;
|
|
228
|
+
|
|
229
|
+
/* ─── Radius ─────────────────────────────────────────────────────
|
|
230
|
+
* Conservative rounding, 4 → 6 → 8 (DESIGN.md §5). Buttons,
|
|
231
|
+
* inputs, and badges share the 4px small tier; nav containers
|
|
232
|
+
* and dropdown shells take 6px; featured cards and hero
|
|
233
|
+
* elements take 8px. No pill shapes on cards or buttons —
|
|
234
|
+
* DESIGN.md §7 Don't list. `--radius-pill` is kept as a schema
|
|
235
|
+
* slot (avatars only) but is never used on interactive
|
|
236
|
+
* surfaces. */
|
|
237
|
+
--radius-sm: 4px; /* buttons, inputs, badges, cards */
|
|
238
|
+
--radius-md: 6px; /* nav container, comfortable cards */
|
|
239
|
+
--radius-lg: 8px; /* featured cards, hero elements */
|
|
240
|
+
--radius-pill: 9999px; /* avatars only — never on buttons / cards */
|
|
241
|
+
|
|
242
|
+
/* ─── Elevation (3 levels — #Stripe 6) ──────────────────────────
|
|
243
|
+
* The single most brand-distinctive token in this file.
|
|
244
|
+
*
|
|
245
|
+
* Stripe's shadow philosophy is "chromatic depth": the primary
|
|
246
|
+
* shadow colour is a deep blue-gray (`rgba(50,50,93,0.25)`) that
|
|
247
|
+
* echoes the navy palette, paired with a pure-black secondary
|
|
248
|
+
* layer at a different offset for parallax. Negative spread
|
|
249
|
+
* values (-30px, -18px) keep the shadow vertical so cards don't
|
|
250
|
+
* fringe sideways.
|
|
251
|
+
*
|
|
252
|
+
* Rebinding `--elev-raised` to a neutral drop shadow strips
|
|
253
|
+
* Stripe's atmosphere even when every other colour is correct —
|
|
254
|
+
* the shadow IS part of the brand voice, not chrome around it.
|
|
255
|
+
* Brands forbidding chromatic shadows (kami) override; Stripe
|
|
256
|
+
* defines. */
|
|
257
|
+
--elev-flat: none;
|
|
258
|
+
--elev-ring: 0 0 0 1px var(--border);
|
|
259
|
+
--elev-raised:
|
|
260
|
+
rgba(50, 50, 93, 0.25) 0px 30px 45px -30px,
|
|
261
|
+
rgba(0, 0, 0, 0.10) 0px 18px 36px -18px;
|
|
262
|
+
|
|
263
|
+
/* ─── Focus ring (#Stripe 7) ────────────────────────────────────
|
|
264
|
+
* Layered purple halo — a 2px solid edge in `--accent` plus an
|
|
265
|
+
* outer translucent glow. DESIGN.md §6 specifies the solid 2px
|
|
266
|
+
* ring; we add the soft outer halo so keyboard focus is
|
|
267
|
+
* unambiguously visible against pale surfaces (payment flows
|
|
268
|
+
* are keyboard-heavy, the brand spec mandates clarity).
|
|
269
|
+
*
|
|
270
|
+
* Implemented as box-shadow stack so it layers outside the
|
|
271
|
+
* element without affecting layout. */
|
|
272
|
+
--focus-ring:
|
|
273
|
+
0 0 0 2px var(--accent),
|
|
274
|
+
0 0 0 5px color-mix(in oklab, var(--accent), transparent 75%);
|
|
275
|
+
|
|
276
|
+
/* ─── Motion ─────────────────────────────────────────────────────
|
|
277
|
+
* Two durations + one easing curve, per the anti-ai-slop
|
|
278
|
+
* "short, purposeful transitions (150–250ms) with stable
|
|
279
|
+
* easing" contract. Stripe's hover transitions colour and shadow
|
|
280
|
+
* but never transform — buttons do not nudge or scale on hover;
|
|
281
|
+
* cards lift via shadow intensity only. */
|
|
282
|
+
--motion-fast: 150ms;
|
|
283
|
+
--motion-base: 200ms;
|
|
284
|
+
--ease-standard: cubic-bezier(0.2, 0, 0, 1);
|
|
285
|
+
|
|
286
|
+
/* ─── Layout ─────────────────────────────────────────────────────
|
|
287
|
+
* 1080px container ceiling per DESIGN.md §5. Per-breakpoint
|
|
288
|
+
* gutter compresses 32 → 24 → 16 — generous on desktop because
|
|
289
|
+
* the white canvas wants air; tight on phone because every
|
|
290
|
+
* pixel is content. */
|
|
291
|
+
--container-max: 1080px;
|
|
292
|
+
--container-gutter-desktop: 32px;
|
|
293
|
+
--container-gutter-tablet: 24px;
|
|
294
|
+
--container-gutter-phone: 16px;
|
|
295
|
+
}
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
# Design System Inspired by Supabase
|
|
2
|
+
|
|
3
|
+
> Category: Backend & Data
|
|
4
|
+
> Open-source Firebase alternative. Dark emerald theme, code-first.
|
|
5
|
+
|
|
6
|
+
## 1. Visual Theme & Atmosphere
|
|
7
|
+
|
|
8
|
+
Supabase's website is a dark-mode-native developer platform that channels the aesthetic of a premium code editor — deep black backgrounds (`#0f0f0f`, `#171717`) with emerald green accents (`#3ecf8e`, `#00c573`) that reference the brand's open-source, PostgreSQL-green identity. The design system feels like it was born in a terminal window and evolved into a sophisticated marketing surface without losing its developer soul.
|
|
9
|
+
|
|
10
|
+
The typography is built on "Circular" — a geometric sans-serif with rounded terminals that softens the technical edge. At 72px with a 1.00 line-height, the hero text is compressed to its absolute minimum vertical space, creating dense, impactful statements that waste nothing. The monospace companion (Source Code Pro) appears sparingly for uppercase technical labels with 1.2px letter-spacing, creating the "developer console" markers that connect the marketing site to the product experience.
|
|
11
|
+
|
|
12
|
+
What makes Supabase distinctive is its sophisticated HSL-based color token system. Rather than flat hex values, Supabase uses HSL with alpha channels for nearly every color (`--colors-crimson4`, `--colors-purple5`, `--colors-slateA12`), enabling a nuanced layering system where colors interact through transparency. This creates depth through translucency — borders at `rgba(46, 46, 46)`, surfaces at `rgba(41, 41, 41, 0.84)`, and accents at partial opacity all blend with the dark background to create a rich, dimensional palette from minimal color ingredients.
|
|
13
|
+
|
|
14
|
+
The green accent (`#3ecf8e`) appears selectively — in the Supabase logo, in link colors (`#00c573`), and in border highlights (`rgba(62, 207, 142, 0.3)`) — always as a signal of "this is Supabase" rather than as a decorative element. Pill-shaped buttons (9999px radius) for primary CTAs contrast with standard 6px radius for secondary elements, creating a clear visual hierarchy of importance.
|
|
15
|
+
|
|
16
|
+
**Key Characteristics:**
|
|
17
|
+
- Dark-mode-native: near-black backgrounds (`#0f0f0f`, `#171717`) — never pure black
|
|
18
|
+
- Emerald green brand accent (`#3ecf8e`, `#00c573`) used sparingly as identity marker
|
|
19
|
+
- Circular font — geometric sans-serif with rounded terminals
|
|
20
|
+
- Source Code Pro for uppercase technical labels (1.2px letter-spacing)
|
|
21
|
+
- HSL-based color token system with alpha channels for translucent layering
|
|
22
|
+
- Pill buttons (9999px) for primary CTAs, 6px radius for secondary
|
|
23
|
+
- Neutral gray scale from `#171717` through `#898989` to `#fafafa`
|
|
24
|
+
- Border system using dark grays (`#2e2e2e`, `#363636`, `#393939`)
|
|
25
|
+
- Minimal shadows — depth through border contrast and transparency
|
|
26
|
+
- Radix color primitives (crimson, purple, violet, indigo, yellow, tomato, orange, slate)
|
|
27
|
+
|
|
28
|
+
## 2. Color Palette & Roles
|
|
29
|
+
|
|
30
|
+
### Brand
|
|
31
|
+
- **Supabase Green** (`#3ecf8e`): Primary brand color, logo, accent borders
|
|
32
|
+
- **Green Link** (`#00c573`): Interactive green for links and actions
|
|
33
|
+
- **Green Border** (`rgba(62, 207, 142, 0.3)`): Subtle green border accent
|
|
34
|
+
|
|
35
|
+
### Neutral Scale (Dark Mode)
|
|
36
|
+
- **Near Black** (`#0f0f0f`): Primary button background, deepest surface
|
|
37
|
+
- **Dark** (`#171717`): Page background, primary canvas
|
|
38
|
+
- **Dark Border** (`#242424`): Horizontal rule, section dividers
|
|
39
|
+
- **Border Dark** (`#2e2e2e`): Card borders, tab borders
|
|
40
|
+
- **Mid Border** (`#363636`): Button borders, dividers
|
|
41
|
+
- **Border Light** (`#393939`): Secondary borders
|
|
42
|
+
- **Charcoal** (`#434343`): Tertiary borders, dark accents
|
|
43
|
+
- **Dark Gray** (`#4d4d4d`): Heavy secondary text
|
|
44
|
+
- **Mid Gray** (`#898989`): Muted text, link color
|
|
45
|
+
- **Light Gray** (`#b4b4b4`): Secondary link text
|
|
46
|
+
- **Near White** (`#efefef`): Light border, subtle surface
|
|
47
|
+
- **Off White** (`#fafafa`): Primary text, button text
|
|
48
|
+
|
|
49
|
+
### Radix Color Tokens (HSL-based)
|
|
50
|
+
- **Slate Scale**: `--colors-slate5` through `--colors-slateA12` — neutral progression
|
|
51
|
+
- **Purple**: `--colors-purple4`, `--colors-purple5`, `--colors-purpleA7` — accent spectrum
|
|
52
|
+
- **Violet**: `--colors-violet10` (`hsl(251, 63.2%, 63.2%)`) — vibrant accent
|
|
53
|
+
- **Crimson**: `--colors-crimson4`, `--colors-crimsonA9` — warm accent / alert
|
|
54
|
+
- **Indigo**: `--colors-indigoA2` — subtle blue wash
|
|
55
|
+
- **Yellow**: `--colors-yellowA7` — attention/warning
|
|
56
|
+
- **Tomato**: `--colors-tomatoA4` — error accent
|
|
57
|
+
- **Orange**: `--colors-orange6` — warm accent
|
|
58
|
+
|
|
59
|
+
### Surface & Overlay
|
|
60
|
+
- **Glass Dark** (`rgba(41, 41, 41, 0.84)`): Translucent dark overlay
|
|
61
|
+
- **Slate Alpha** (`hsla(210, 87.8%, 16.1%, 0.031)`): Ultra-subtle blue wash
|
|
62
|
+
- **Fixed Scale Alpha** (`hsla(200, 90.3%, 93.4%, 0.109)`): Light frost overlay
|
|
63
|
+
|
|
64
|
+
### Shadows
|
|
65
|
+
- Supabase uses **almost no shadows** in its dark theme. Depth is created through border contrast and surface color differences rather than box-shadows. Focus states use `rgba(0, 0, 0, 0.1) 0px 4px 12px` — minimal, functional.
|
|
66
|
+
|
|
67
|
+
## 3. Typography Rules
|
|
68
|
+
|
|
69
|
+
### Font Families
|
|
70
|
+
- **Primary**: `Circular`, with fallbacks: `custom-font, Helvetica Neue, Helvetica, Arial`
|
|
71
|
+
- **Monospace**: `Source Code Pro`, with fallbacks: `Office Code Pro, Menlo`
|
|
72
|
+
|
|
73
|
+
### Hierarchy
|
|
74
|
+
|
|
75
|
+
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|
|
76
|
+
|------|------|------|--------|-------------|----------------|-------|
|
|
77
|
+
| Display Hero | Circular | 72px (4.50rem) | 400 | 1.00 (tight) | normal | Maximum density, zero waste |
|
|
78
|
+
| Section Heading | Circular | 36px (2.25rem) | 400 | 1.25 (tight) | normal | Feature section titles |
|
|
79
|
+
| Card Title | Circular | 24px (1.50rem) | 400 | 1.33 | -0.16px | Slight negative tracking |
|
|
80
|
+
| Sub-heading | Circular | 18px (1.13rem) | 400 | 1.56 | normal | Secondary headings |
|
|
81
|
+
| Body | Circular | 16px (1.00rem) | 400 | 1.50 | normal | Standard body text |
|
|
82
|
+
| Nav Link | Circular | 14px (0.88rem) | 500 | 1.00–1.43 | normal | Navigation items |
|
|
83
|
+
| Button | Circular | 14px (0.88rem) | 500 | 1.14 (tight) | normal | Button labels |
|
|
84
|
+
| Caption | Circular | 14px (0.88rem) | 400–500 | 1.43 | normal | Metadata, tags |
|
|
85
|
+
| Small | Circular | 12px (0.75rem) | 400 | 1.33 | normal | Fine print, footer links |
|
|
86
|
+
| Code Label | Source Code Pro | 12px (0.75rem) | 400 | 1.33 | 1.2px | `text-transform: uppercase` |
|
|
87
|
+
|
|
88
|
+
### Principles
|
|
89
|
+
- **Weight restraint**: Nearly all text uses weight 400 (regular/book). Weight 500 appears only for navigation links and button labels. There is no bold (700) in the detected system — hierarchy is created through size, not weight.
|
|
90
|
+
- **1.00 hero line-height**: The hero text is compressed to absolute zero leading. This is the defining typographic gesture — text that feels like a terminal command: dense, efficient, no wasted vertical space.
|
|
91
|
+
- **Negative tracking on cards**: Card titles use -0.16px letter-spacing, a subtle tightening that differentiates them from body text without being obvious.
|
|
92
|
+
- **Monospace as ritual**: Source Code Pro in uppercase with 1.2px letter-spacing is the "developer console" voice — used sparingly for technical labels that connect to the product experience.
|
|
93
|
+
- **Geometric personality**: Circular's rounded terminals create warmth in what could otherwise be a cold, technical interface. The font is the humanizing element.
|
|
94
|
+
|
|
95
|
+
## 4. Component Stylings
|
|
96
|
+
|
|
97
|
+
### Buttons
|
|
98
|
+
|
|
99
|
+
**Primary Pill (Dark)**
|
|
100
|
+
- Background: `#0f0f0f`
|
|
101
|
+
- Text: `#fafafa`
|
|
102
|
+
- Padding: 8px 32px
|
|
103
|
+
- Radius: 9999px (full pill)
|
|
104
|
+
- Border: `1px solid #fafafa` (white border on dark)
|
|
105
|
+
- Focus shadow: `rgba(0, 0, 0, 0.1) 0px 4px 12px`
|
|
106
|
+
- Use: Primary CTA ("Start your project")
|
|
107
|
+
|
|
108
|
+
**Secondary Pill (Dark, Muted)**
|
|
109
|
+
- Background: `#0f0f0f`
|
|
110
|
+
- Text: `#fafafa`
|
|
111
|
+
- Padding: 8px 32px
|
|
112
|
+
- Radius: 9999px
|
|
113
|
+
- Border: `1px solid #2e2e2e` (dark border)
|
|
114
|
+
- Opacity: 0.8
|
|
115
|
+
- Use: Secondary CTA alongside primary
|
|
116
|
+
|
|
117
|
+
**Ghost Button**
|
|
118
|
+
- Background: transparent
|
|
119
|
+
- Text: `#fafafa`
|
|
120
|
+
- Padding: 8px
|
|
121
|
+
- Radius: 6px
|
|
122
|
+
- Border: `1px solid transparent`
|
|
123
|
+
- Use: Tertiary actions, icon buttons
|
|
124
|
+
|
|
125
|
+
### Cards & Containers
|
|
126
|
+
- Background: dark surfaces (`#171717` or slightly lighter)
|
|
127
|
+
- Border: `1px solid #2e2e2e` or `#363636`
|
|
128
|
+
- Radius: 8px–16px
|
|
129
|
+
- No visible shadows — borders define edges
|
|
130
|
+
- Internal padding: 16px–24px
|
|
131
|
+
|
|
132
|
+
### Tabs
|
|
133
|
+
- Border: `1px solid #2e2e2e`
|
|
134
|
+
- Radius: 9999px (pill tabs)
|
|
135
|
+
- Active: green accent or lighter surface
|
|
136
|
+
- Inactive: dark, muted
|
|
137
|
+
|
|
138
|
+
### Links
|
|
139
|
+
- **Green**: `#00c573` — Supabase-branded links
|
|
140
|
+
- **Primary Light**: `#fafafa` — standard links on dark
|
|
141
|
+
- **Secondary**: `#b4b4b4` — muted links
|
|
142
|
+
- **Muted**: `#898989` — tertiary links, footer
|
|
143
|
+
|
|
144
|
+
### Navigation
|
|
145
|
+
- Dark background matching page (`#171717`)
|
|
146
|
+
- Supabase logo with green icon
|
|
147
|
+
- Circular 14px weight 500 for nav links
|
|
148
|
+
- Clean horizontal layout with product dropdown
|
|
149
|
+
- Green "Start your project" CTA pill button
|
|
150
|
+
- Sticky header behavior
|
|
151
|
+
|
|
152
|
+
## 5. Layout Principles
|
|
153
|
+
|
|
154
|
+
### Spacing System
|
|
155
|
+
- Base unit: 8px
|
|
156
|
+
- Scale: 1px, 4px, 6px, 8px, 12px, 16px, 20px, 24px, 32px, 40px, 48px, 90px, 96px, 128px
|
|
157
|
+
- Notable large jumps: 48px → 90px → 96px → 128px for major section spacing
|
|
158
|
+
|
|
159
|
+
### Grid & Container
|
|
160
|
+
- Centered content with generous max-width
|
|
161
|
+
- Full-width dark sections with constrained inner content
|
|
162
|
+
- Feature grids: icon-based grids with consistent card sizes
|
|
163
|
+
- Logo grids for "Trusted by" sections
|
|
164
|
+
- Footer: multi-column on dark background
|
|
165
|
+
|
|
166
|
+
### Breakpoints
|
|
167
|
+
| Name | Width | Key Changes |
|
|
168
|
+
|------|-------|-------------|
|
|
169
|
+
| Mobile | <600px | Single column, stacked layout |
|
|
170
|
+
| Desktop | >600px | Multi-column grids, expanded layout |
|
|
171
|
+
|
|
172
|
+
*Note: Supabase uses a notably minimal breakpoint system — primarily a single 600px breakpoint, suggesting a mobile-first approach with progressive enhancement.*
|
|
173
|
+
|
|
174
|
+
### Whitespace Philosophy
|
|
175
|
+
- **Dramatic section spacing**: 90px–128px between major sections creates a cinematic pacing — each section is its own scene in the dark void.
|
|
176
|
+
- **Dense content blocks**: Within sections, spacing is tight (16px–24px), creating concentrated information clusters.
|
|
177
|
+
- **Border-defined space**: Instead of whitespace + shadows for separation, Supabase uses thin borders on dark backgrounds — separation through line, not gap.
|
|
178
|
+
|
|
179
|
+
### Border Radius Scale
|
|
180
|
+
- Standard (6px): Ghost buttons, small elements
|
|
181
|
+
- Comfortable (8px): Cards, containers
|
|
182
|
+
- Medium (11px–12px): Mid-size panels
|
|
183
|
+
- Large (16px): Feature cards, major containers
|
|
184
|
+
- Pill (9999px): Primary buttons, tab indicators
|
|
185
|
+
|
|
186
|
+
## 6. Depth & Elevation
|
|
187
|
+
|
|
188
|
+
| Level | Treatment | Use |
|
|
189
|
+
|-------|-----------|-----|
|
|
190
|
+
| Flat (Level 0) | No shadow, border `#2e2e2e` | Default state, most surfaces |
|
|
191
|
+
| Subtle Border (Level 1) | Border `#363636` or `#393939` | Interactive elements, hover |
|
|
192
|
+
| Focus (Level 2) | `rgba(0, 0, 0, 0.1) 0px 4px 12px` | Focus states only |
|
|
193
|
+
| Green Accent (Level 3) | Border `rgba(62, 207, 142, 0.3)` | Brand-highlighted elements |
|
|
194
|
+
|
|
195
|
+
**Shadow Philosophy**: Supabase deliberately avoids shadows. In a dark-mode-native design, shadows are nearly invisible and serve no purpose. Instead, depth is communicated through a sophisticated border hierarchy — from `#242424` (barely visible) through `#2e2e2e` (standard) to `#393939` (prominent). The green accent border (`rgba(62, 207, 142, 0.3)`) at 30% opacity is the "elevated" state — the brand color itself becomes the depth signal.
|
|
196
|
+
|
|
197
|
+
## 7. Do's and Don'ts
|
|
198
|
+
|
|
199
|
+
### Do
|
|
200
|
+
- Use near-black backgrounds (`#0f0f0f`, `#171717`) — depth comes from the gray border hierarchy
|
|
201
|
+
- Apply Supabase green (`#3ecf8e`, `#00c573`) sparingly — it's an identity marker, not a decoration
|
|
202
|
+
- Use Circular at weight 400 for nearly everything — 500 only for buttons and nav
|
|
203
|
+
- Set hero text to 1.00 line-height — the zero-leading is the typographic signature
|
|
204
|
+
- Create depth through border color differences (`#242424` → `#2e2e2e` → `#363636`)
|
|
205
|
+
- Use pill shape (9999px) exclusively for primary CTAs and tabs
|
|
206
|
+
- Employ HSL-based colors with alpha for translucent layering effects
|
|
207
|
+
- Use Source Code Pro uppercase labels for developer-context markers
|
|
208
|
+
|
|
209
|
+
### Don't
|
|
210
|
+
- Don't add box-shadows — they're invisible on dark backgrounds and break the border-defined depth system
|
|
211
|
+
- Don't use bold (700) text weight — the system uses 400 and 500 only
|
|
212
|
+
- Don't apply green to backgrounds or large surfaces — it's for borders, links, and small accents
|
|
213
|
+
- Don't use warm colors (crimson, orange) as primary design elements — they exist as semantic tokens for states
|
|
214
|
+
- Don't increase hero line-height above 1.00 — the density is intentional
|
|
215
|
+
- Don't use large border radius (16px+) on buttons — pills (9999px) or standard (6px), nothing in between
|
|
216
|
+
- Don't lighten the background above `#171717` for primary surfaces — the darkness is structural
|
|
217
|
+
- Don't forget the translucent borders — `rgba` border colors are the layering mechanism
|
|
218
|
+
|
|
219
|
+
## 8. Responsive Behavior
|
|
220
|
+
|
|
221
|
+
### Breakpoints
|
|
222
|
+
| Name | Width | Key Changes |
|
|
223
|
+
|------|-------|-------------|
|
|
224
|
+
| Mobile | <600px | Single column, stacked features, condensed nav |
|
|
225
|
+
| Desktop | >600px | Multi-column grids, full nav, expanded sections |
|
|
226
|
+
|
|
227
|
+
### Collapsing Strategy
|
|
228
|
+
- Hero: 72px → scales down proportionally
|
|
229
|
+
- Feature grids: multi-column → single column stacked
|
|
230
|
+
- Logo row: horizontal → wrapped grid
|
|
231
|
+
- Navigation: full → hamburger
|
|
232
|
+
- Section spacing: 90–128px → 48–64px
|
|
233
|
+
- Buttons: inline → full-width stacked
|
|
234
|
+
|
|
235
|
+
## 9. Agent Prompt Guide
|
|
236
|
+
|
|
237
|
+
### Quick Color Reference
|
|
238
|
+
- Background: `#0f0f0f` (button), `#171717` (page)
|
|
239
|
+
- Text: `#fafafa` (primary), `#b4b4b4` (secondary), `#898989` (muted)
|
|
240
|
+
- Brand green: `#3ecf8e` (brand), `#00c573` (links)
|
|
241
|
+
- Borders: `#242424` (subtle), `#2e2e2e` (standard), `#363636` (prominent)
|
|
242
|
+
- Green border: `rgba(62, 207, 142, 0.3)` (accent)
|
|
243
|
+
|
|
244
|
+
### Example Component Prompts
|
|
245
|
+
- "Create a hero section on #171717 background. Headline at 72px Circular weight 400, line-height 1.00, #fafafa text. Sub-text at 16px Circular weight 400, line-height 1.50, #b4b4b4. Pill CTA button (#0f0f0f bg, #fafafa text, 9999px radius, 8px 32px padding, 1px solid #fafafa border)."
|
|
246
|
+
- "Design a feature card: #171717 background, 1px solid #2e2e2e border, 16px radius. Title at 24px Circular weight 400, letter-spacing -0.16px. Body at 14px weight 400, #898989 text."
|
|
247
|
+
- "Build navigation bar: #171717 background. Circular 14px weight 500 for links, #fafafa text. Supabase logo with green icon left-aligned. Green pill CTA 'Start your project' right-aligned."
|
|
248
|
+
- "Create a technical label: Source Code Pro 12px, uppercase, letter-spacing 1.2px, #898989 text."
|
|
249
|
+
- "Design a framework logo grid: 6-column layout on dark, grayscale logos at 60% opacity, 1px solid #2e2e2e border between sections."
|
|
250
|
+
|
|
251
|
+
### Iteration Guide
|
|
252
|
+
1. Start with #171717 background — everything is dark-mode-native
|
|
253
|
+
2. Green is the brand identity marker — use it for links, logo, and accent borders only
|
|
254
|
+
3. Depth comes from borders (#242424 → #2e2e2e → #363636), not shadows
|
|
255
|
+
4. Weight 400 is the default for everything — 500 only for interactive elements
|
|
256
|
+
5. Hero line-height of 1.00 is the signature typographic move
|
|
257
|
+
6. Pill (9999px) for primary actions, 6px for secondary, 8-16px for cards
|
|
258
|
+
7. HSL with alpha channels creates the sophisticated translucent layering
|