@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,741 @@
|
|
|
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>Supabase — reference components</title>
|
|
7
|
+
<meta
|
|
8
|
+
name="description"
|
|
9
|
+
content="Reference fixture for design-systems/supabase. Every visible
|
|
10
|
+
value comes from tokens.css. Supabase's signature moves: near-black
|
|
11
|
+
canvas, Postgres-emerald reserved as identity marker, Circular geometric
|
|
12
|
+
sans with weight restraint, Source Code Pro uppercase for the developer-
|
|
13
|
+
console voice, depth carried by a tight border hierarchy."
|
|
14
|
+
/>
|
|
15
|
+
|
|
16
|
+
<style>
|
|
17
|
+
/* :root paste — sourced verbatim from design-systems/supabase/tokens.css. */
|
|
18
|
+
:root {
|
|
19
|
+
--bg: #171717;
|
|
20
|
+
--surface: #1c1c1c;
|
|
21
|
+
--surface-warm: var(--surface);
|
|
22
|
+
|
|
23
|
+
--fg: #fafafa;
|
|
24
|
+
--fg-2: #b4b4b4;
|
|
25
|
+
--muted: #898989;
|
|
26
|
+
--meta: #4d4d4d;
|
|
27
|
+
|
|
28
|
+
--border: #2e2e2e;
|
|
29
|
+
--border-soft: #242424;
|
|
30
|
+
|
|
31
|
+
--accent: #3ecf8e;
|
|
32
|
+
--accent-on: #0f0f0f;
|
|
33
|
+
--accent-hover: #00c573;
|
|
34
|
+
--accent-active: color-mix(in oklab, var(--accent), black 14%);
|
|
35
|
+
|
|
36
|
+
--success: #16a34a;
|
|
37
|
+
--warn: #eab308;
|
|
38
|
+
--danger: #dc2626;
|
|
39
|
+
|
|
40
|
+
--font-display: "Circular", "custom-font", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
41
|
+
--font-body: "Circular", "custom-font", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
42
|
+
--font-mono: "Source Code Pro", "Office Code Pro", Menlo, Monaco, Consolas, monospace;
|
|
43
|
+
|
|
44
|
+
--text-xs: 12px;
|
|
45
|
+
--text-sm: 14px;
|
|
46
|
+
--text-base: 16px;
|
|
47
|
+
--text-lg: 18px;
|
|
48
|
+
--text-xl: 24px;
|
|
49
|
+
--text-2xl: 32px;
|
|
50
|
+
--text-3xl: 36px;
|
|
51
|
+
--text-4xl: 72px;
|
|
52
|
+
|
|
53
|
+
--leading-body: 1.5;
|
|
54
|
+
--leading-tight: 1.00;
|
|
55
|
+
--tracking-display: normal;
|
|
56
|
+
|
|
57
|
+
--space-1: 4px;
|
|
58
|
+
--space-2: 8px;
|
|
59
|
+
--space-3: 12px;
|
|
60
|
+
--space-4: 16px;
|
|
61
|
+
--space-5: 20px;
|
|
62
|
+
--space-6: 24px;
|
|
63
|
+
--space-8: 32px;
|
|
64
|
+
--space-12: 48px;
|
|
65
|
+
|
|
66
|
+
--section-y-desktop: 128px;
|
|
67
|
+
--section-y-tablet: 80px;
|
|
68
|
+
--section-y-phone: 48px;
|
|
69
|
+
|
|
70
|
+
--radius-sm: 6px;
|
|
71
|
+
--radius-md: 8px;
|
|
72
|
+
--radius-lg: 16px;
|
|
73
|
+
--radius-pill: 9999px;
|
|
74
|
+
|
|
75
|
+
--elev-flat: none;
|
|
76
|
+
--elev-ring: 0 0 0 1px var(--border);
|
|
77
|
+
--elev-raised: 0 0 0 1px var(--border), 0 4px 12px rgba(0, 0, 0, 0.4);
|
|
78
|
+
|
|
79
|
+
--focus-ring: 0 0 0 2px color-mix(in oklab, var(--accent), transparent 50%);
|
|
80
|
+
|
|
81
|
+
--motion-fast: 150ms;
|
|
82
|
+
--motion-base: 200ms;
|
|
83
|
+
--ease-standard: cubic-bezier(0.2, 0, 0, 1);
|
|
84
|
+
|
|
85
|
+
--container-max: 1200px;
|
|
86
|
+
--container-gutter-desktop: 24px;
|
|
87
|
+
--container-gutter-tablet: 16px;
|
|
88
|
+
--container-gutter-phone: 16px;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/* ─── Reset (minimal) ─────────────────────────────────────── */
|
|
92
|
+
*, *::before, *::after { box-sizing: border-box; }
|
|
93
|
+
html, body { margin: 0; padding: 0; }
|
|
94
|
+
body {
|
|
95
|
+
background: var(--bg);
|
|
96
|
+
color: var(--fg-2);
|
|
97
|
+
font-family: var(--font-body);
|
|
98
|
+
font-size: var(--text-base);
|
|
99
|
+
line-height: var(--leading-body);
|
|
100
|
+
font-weight: 400;
|
|
101
|
+
-webkit-font-smoothing: antialiased;
|
|
102
|
+
text-rendering: optimizeLegibility;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/* ─── Layout primitives ─────────────────────────────────── */
|
|
106
|
+
.container {
|
|
107
|
+
max-width: var(--container-max);
|
|
108
|
+
margin-inline: auto;
|
|
109
|
+
padding-inline: var(--container-gutter-desktop);
|
|
110
|
+
}
|
|
111
|
+
section {
|
|
112
|
+
padding-block: var(--section-y-desktop);
|
|
113
|
+
}
|
|
114
|
+
section + section {
|
|
115
|
+
/* DESIGN.md §6: depth comes from borders, not shadows. Section
|
|
116
|
+
dividers use the standard border tier — a hairline against
|
|
117
|
+
the dark canvas, the brand's "edges define" promise. */
|
|
118
|
+
border-top: 1px solid var(--border);
|
|
119
|
+
}
|
|
120
|
+
@media (max-width: 1023px) {
|
|
121
|
+
.container { padding-inline: var(--container-gutter-tablet); }
|
|
122
|
+
section { padding-block: var(--section-y-tablet); }
|
|
123
|
+
}
|
|
124
|
+
@media (max-width: 639px) {
|
|
125
|
+
.container { padding-inline: var(--container-gutter-phone); }
|
|
126
|
+
section { padding-block: var(--section-y-phone); }
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/* ─── Typography ────────────────────────────────────────────
|
|
130
|
+
* Weight restraint: 400 for prose, 500 for interactive elements.
|
|
131
|
+
* DESIGN.md §3 Principles: "There is no bold (700) in the
|
|
132
|
+
* detected system — hierarchy is created through size, not
|
|
133
|
+
* weight." Display sizes hold at leading 1.00 (the defining
|
|
134
|
+
* gesture) and tracking `normal`; smaller scales relax leading
|
|
135
|
+
* upward as the table in DESIGN.md §3 prescribes. */
|
|
136
|
+
h1, h2, h3, h4 {
|
|
137
|
+
font-family: var(--font-display);
|
|
138
|
+
font-weight: 400;
|
|
139
|
+
margin: 0;
|
|
140
|
+
color: var(--fg);
|
|
141
|
+
line-height: var(--leading-tight);
|
|
142
|
+
letter-spacing: var(--tracking-display);
|
|
143
|
+
}
|
|
144
|
+
h1 {
|
|
145
|
+
font-size: var(--text-4xl);
|
|
146
|
+
/* DESIGN.md §3 Display Hero: 72px / 1.00 leading / normal
|
|
147
|
+
tracking — the terminal-density typographic signature. */
|
|
148
|
+
}
|
|
149
|
+
h2 {
|
|
150
|
+
font-size: var(--text-3xl);
|
|
151
|
+
/* DESIGN.md §3 Section Heading: 36px / 1.25 leading.
|
|
152
|
+
Overrides the shared 1.00 set above. */
|
|
153
|
+
line-height: 1.25;
|
|
154
|
+
}
|
|
155
|
+
h3 {
|
|
156
|
+
font-size: var(--text-xl);
|
|
157
|
+
/* DESIGN.md §3 Card Title: 24px / 1.33 leading / -0.16px
|
|
158
|
+
tracking ≈ -0.0067em. The subtle negative tracking is the
|
|
159
|
+
card-title differentiation from body text. */
|
|
160
|
+
line-height: 1.33;
|
|
161
|
+
letter-spacing: -0.0067em;
|
|
162
|
+
}
|
|
163
|
+
h4 {
|
|
164
|
+
font-size: var(--text-lg);
|
|
165
|
+
line-height: 1.56;
|
|
166
|
+
}
|
|
167
|
+
p { margin: 0; }
|
|
168
|
+
|
|
169
|
+
.lede {
|
|
170
|
+
font-size: var(--text-base);
|
|
171
|
+
line-height: var(--leading-body);
|
|
172
|
+
color: var(--fg-2);
|
|
173
|
+
max-width: 56ch;
|
|
174
|
+
}
|
|
175
|
+
.body-muted { color: var(--muted); }
|
|
176
|
+
.body-meta { color: var(--meta); font-size: var(--text-sm); }
|
|
177
|
+
.body-sm { font-size: var(--text-sm); }
|
|
178
|
+
|
|
179
|
+
/* Eyebrow uses Source Code Pro uppercase — DESIGN.md §3:
|
|
180
|
+
"Source Code Pro in uppercase with 1.2px letter-spacing is
|
|
181
|
+
the 'developer console' voice — used sparingly for technical
|
|
182
|
+
labels that connect to the product experience." 1.2px at
|
|
183
|
+
12px ≈ 0.1em. */
|
|
184
|
+
.eyebrow {
|
|
185
|
+
font-family: var(--font-mono);
|
|
186
|
+
font-size: var(--text-xs);
|
|
187
|
+
font-weight: 400;
|
|
188
|
+
line-height: 1.33;
|
|
189
|
+
color: var(--muted);
|
|
190
|
+
text-transform: uppercase;
|
|
191
|
+
letter-spacing: 0.1em;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.stack-3 > * + * { margin-block-start: var(--space-3); }
|
|
195
|
+
.stack-4 > * + * { margin-block-start: var(--space-4); }
|
|
196
|
+
.stack-6 > * + * { margin-block-start: var(--space-6); }
|
|
197
|
+
|
|
198
|
+
/* ─── Buttons ───────────────────────────────────────────────
|
|
199
|
+
* DESIGN.md §4 + §7: primary CTAs are pills (9999px radius),
|
|
200
|
+
* ghost buttons take the 6px standard radius. The brand
|
|
201
|
+
* deliberately FORBIDS in-between radii on buttons. The
|
|
202
|
+
* primary pill is `#0f0f0f` background with `#fafafa` text and
|
|
203
|
+
* a white border — the brand's "pill on dark" pattern, NOT
|
|
204
|
+
* `background: var(--accent)`. Emerald stays reserved for the
|
|
205
|
+
* brand-pill variant below and for links + focus. */
|
|
206
|
+
.btn {
|
|
207
|
+
display: inline-flex;
|
|
208
|
+
align-items: center;
|
|
209
|
+
gap: var(--space-2);
|
|
210
|
+
padding: var(--space-2) var(--space-8);
|
|
211
|
+
border: 1px solid transparent;
|
|
212
|
+
border-radius: var(--radius-pill);
|
|
213
|
+
font-family: var(--font-display);
|
|
214
|
+
font-size: var(--text-sm);
|
|
215
|
+
font-weight: 500;
|
|
216
|
+
line-height: 1.14;
|
|
217
|
+
cursor: pointer;
|
|
218
|
+
text-decoration: none;
|
|
219
|
+
background: transparent;
|
|
220
|
+
color: inherit;
|
|
221
|
+
transition:
|
|
222
|
+
background-color var(--motion-fast) var(--ease-standard),
|
|
223
|
+
border-color var(--motion-fast) var(--ease-standard),
|
|
224
|
+
color var(--motion-fast) var(--ease-standard);
|
|
225
|
+
}
|
|
226
|
+
.btn:focus-visible {
|
|
227
|
+
outline: none;
|
|
228
|
+
box-shadow: var(--focus-ring);
|
|
229
|
+
}
|
|
230
|
+
.btn-primary {
|
|
231
|
+
background: #0f0f0f;
|
|
232
|
+
color: var(--fg);
|
|
233
|
+
border-color: var(--fg);
|
|
234
|
+
}
|
|
235
|
+
.btn-primary:hover {
|
|
236
|
+
background: color-mix(in oklab, #0f0f0f, var(--fg) 6%);
|
|
237
|
+
}
|
|
238
|
+
.btn-secondary {
|
|
239
|
+
background: #0f0f0f;
|
|
240
|
+
color: var(--fg);
|
|
241
|
+
border-color: var(--border);
|
|
242
|
+
opacity: 0.92;
|
|
243
|
+
}
|
|
244
|
+
.btn-secondary:hover {
|
|
245
|
+
border-color: color-mix(in oklab, var(--border), var(--fg) 16%);
|
|
246
|
+
opacity: 1;
|
|
247
|
+
}
|
|
248
|
+
/* Brand pill — the one place emerald appears as a button surface.
|
|
249
|
+
Reserved for the single highest-intent CTA per screen so the
|
|
250
|
+
≤2 accent-uses budget stays honest. */
|
|
251
|
+
.btn-brand {
|
|
252
|
+
background: var(--accent);
|
|
253
|
+
color: var(--accent-on);
|
|
254
|
+
border-color: var(--accent);
|
|
255
|
+
}
|
|
256
|
+
.btn-brand:hover {
|
|
257
|
+
background: var(--accent-hover);
|
|
258
|
+
border-color: var(--accent-hover);
|
|
259
|
+
}
|
|
260
|
+
.btn-brand:active { background: var(--accent-active); }
|
|
261
|
+
.btn-ghost {
|
|
262
|
+
background: transparent;
|
|
263
|
+
color: var(--fg);
|
|
264
|
+
border-radius: var(--radius-sm);
|
|
265
|
+
padding: var(--space-2) var(--space-3);
|
|
266
|
+
border-color: transparent;
|
|
267
|
+
}
|
|
268
|
+
.btn-ghost:hover {
|
|
269
|
+
background: var(--surface);
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
/* ─── Inputs ────────────────────────────────────────────────
|
|
273
|
+
* Border-defined edges (DESIGN.md §6 — no shadows on dark).
|
|
274
|
+
* On focus the border resolves to the brand accent at full
|
|
275
|
+
* saturation, layered with the green focus halo. */
|
|
276
|
+
.field {
|
|
277
|
+
display: flex;
|
|
278
|
+
flex-direction: column;
|
|
279
|
+
gap: var(--space-2);
|
|
280
|
+
}
|
|
281
|
+
.field label {
|
|
282
|
+
font-size: var(--text-sm);
|
|
283
|
+
font-weight: 500;
|
|
284
|
+
color: var(--fg);
|
|
285
|
+
}
|
|
286
|
+
.field input {
|
|
287
|
+
padding: var(--space-3) var(--space-4);
|
|
288
|
+
border: 1px solid var(--border);
|
|
289
|
+
border-radius: var(--radius-sm);
|
|
290
|
+
background: var(--bg);
|
|
291
|
+
color: var(--fg);
|
|
292
|
+
font-family: inherit;
|
|
293
|
+
font-size: var(--text-sm);
|
|
294
|
+
line-height: 1.43;
|
|
295
|
+
outline: none;
|
|
296
|
+
transition:
|
|
297
|
+
border-color var(--motion-fast) var(--ease-standard),
|
|
298
|
+
box-shadow var(--motion-fast) var(--ease-standard);
|
|
299
|
+
}
|
|
300
|
+
.field input::placeholder { color: var(--meta); }
|
|
301
|
+
.field input:hover { border-color: #393939; }
|
|
302
|
+
.field input:focus-visible {
|
|
303
|
+
border-color: var(--accent);
|
|
304
|
+
box-shadow: var(--focus-ring);
|
|
305
|
+
}
|
|
306
|
+
.field-help {
|
|
307
|
+
font-size: var(--text-xs);
|
|
308
|
+
color: var(--muted);
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
/* ─── Cards ─────────────────────────────────────────────────
|
|
312
|
+
* Border defines the edge (DESIGN.md §4): #2e2e2e at 8px or
|
|
313
|
+
* 16px radius depending on hierarchy. No shadows by default —
|
|
314
|
+
* the hover state introduces the green-accent border for the
|
|
315
|
+
* "brand-highlighted" elevation (DESIGN.md §6 Level 3). */
|
|
316
|
+
.card {
|
|
317
|
+
background: var(--surface);
|
|
318
|
+
border: 1px solid var(--border);
|
|
319
|
+
border-radius: var(--radius-lg);
|
|
320
|
+
padding: var(--space-6);
|
|
321
|
+
display: flex;
|
|
322
|
+
flex-direction: column;
|
|
323
|
+
gap: var(--space-4);
|
|
324
|
+
transition:
|
|
325
|
+
border-color var(--motion-base) var(--ease-standard),
|
|
326
|
+
background-color var(--motion-base) var(--ease-standard);
|
|
327
|
+
}
|
|
328
|
+
.card:hover {
|
|
329
|
+
border-color: color-mix(in oklab, var(--accent), transparent 70%);
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
/* ─── Badges ────────────────────────────────────────────────
|
|
333
|
+
* Pill badges with hairline borders — Supabase uses these for
|
|
334
|
+
* status markers and stage labels. The accent badge tints the
|
|
335
|
+
* brand emerald against the dark surface; the muted badge
|
|
336
|
+
* sits on the standard border tier. */
|
|
337
|
+
.badge {
|
|
338
|
+
display: inline-flex;
|
|
339
|
+
align-items: center;
|
|
340
|
+
gap: var(--space-1);
|
|
341
|
+
padding: var(--space-1) var(--space-3);
|
|
342
|
+
border-radius: var(--radius-pill);
|
|
343
|
+
font-family: var(--font-display);
|
|
344
|
+
font-size: var(--text-xs);
|
|
345
|
+
font-weight: 500;
|
|
346
|
+
line-height: 1.33;
|
|
347
|
+
border: 1px solid transparent;
|
|
348
|
+
}
|
|
349
|
+
.badge-accent {
|
|
350
|
+
color: var(--accent);
|
|
351
|
+
background: color-mix(in oklab, var(--accent), var(--bg) 88%);
|
|
352
|
+
border-color: color-mix(in oklab, var(--accent), transparent 70%);
|
|
353
|
+
}
|
|
354
|
+
.badge-muted {
|
|
355
|
+
color: var(--fg-2);
|
|
356
|
+
background: var(--surface);
|
|
357
|
+
border-color: var(--border);
|
|
358
|
+
}
|
|
359
|
+
.badge-success {
|
|
360
|
+
color: var(--success);
|
|
361
|
+
background: color-mix(in oklab, var(--success), var(--bg) 88%);
|
|
362
|
+
border-color: color-mix(in oklab, var(--success), transparent 75%);
|
|
363
|
+
}
|
|
364
|
+
.badge-dot {
|
|
365
|
+
width: 6px;
|
|
366
|
+
height: 6px;
|
|
367
|
+
border-radius: var(--radius-pill);
|
|
368
|
+
background: currentColor;
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
/* ─── Links ─────────────────────────────────────────────────
|
|
372
|
+
* DESIGN.md §4: "Green: #00c573 — Supabase-branded links." We
|
|
373
|
+
* bind link color to the interactive-green variant (which is
|
|
374
|
+
* `--accent-hover` in this brand's mapping — see tokens.css §4)
|
|
375
|
+
* because that's the documented interactive form of the accent. */
|
|
376
|
+
a {
|
|
377
|
+
color: var(--accent-hover);
|
|
378
|
+
text-decoration: none;
|
|
379
|
+
border-bottom: 1px solid color-mix(in oklab, var(--accent-hover), transparent 70%);
|
|
380
|
+
transition:
|
|
381
|
+
color var(--motion-fast) var(--ease-standard),
|
|
382
|
+
border-color var(--motion-fast) var(--ease-standard);
|
|
383
|
+
}
|
|
384
|
+
a:hover {
|
|
385
|
+
color: var(--accent);
|
|
386
|
+
border-bottom-color: var(--accent);
|
|
387
|
+
}
|
|
388
|
+
a:focus-visible {
|
|
389
|
+
outline: none;
|
|
390
|
+
border-radius: 2px;
|
|
391
|
+
box-shadow: var(--focus-ring);
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
/* ─── Kbd ───────────────────────────────────────────────────
|
|
395
|
+
* Source Code Pro, hairline border edge. Supabase uses kbd
|
|
396
|
+
* marks throughout docs with the same border-defined restraint. */
|
|
397
|
+
kbd {
|
|
398
|
+
font-family: var(--font-mono);
|
|
399
|
+
font-size: var(--text-xs);
|
|
400
|
+
padding: 2px var(--space-2);
|
|
401
|
+
border-radius: 4px;
|
|
402
|
+
background: var(--surface);
|
|
403
|
+
color: var(--fg);
|
|
404
|
+
border: 1px solid var(--border);
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
/* ─── Code chip (inline) ────────────────────────────────────
|
|
408
|
+
* Source Code Pro at body-adjacent size for inline product
|
|
409
|
+
* references — table names, env vars, function signatures. */
|
|
410
|
+
code.chip {
|
|
411
|
+
font-family: var(--font-mono);
|
|
412
|
+
font-size: 0.92em;
|
|
413
|
+
color: var(--accent);
|
|
414
|
+
background: color-mix(in oklab, var(--accent), var(--bg) 92%);
|
|
415
|
+
padding: 2px var(--space-2);
|
|
416
|
+
border-radius: 4px;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
/* ─── Section-specific layout ─────────────────────────────── */
|
|
420
|
+
.hero {
|
|
421
|
+
position: relative;
|
|
422
|
+
overflow: hidden;
|
|
423
|
+
}
|
|
424
|
+
/* Atmospheric green wash — the single chromatic moment behind
|
|
425
|
+
the hero headline. A radial of `var(--accent)` at low opacity
|
|
426
|
+
echoes Supabase's logo-as-canvas treatment without violating
|
|
427
|
+
the ≤2 accent uses budget (the wash is decorative atmosphere,
|
|
428
|
+
not a labeled accent surface). */
|
|
429
|
+
.hero::before {
|
|
430
|
+
content: "";
|
|
431
|
+
position: absolute;
|
|
432
|
+
inset: -20% -10% auto -10%;
|
|
433
|
+
height: 70%;
|
|
434
|
+
background:
|
|
435
|
+
radial-gradient(
|
|
436
|
+
55% 60% at 18% 30%,
|
|
437
|
+
color-mix(in oklab, var(--accent), var(--bg) 70%) 0%,
|
|
438
|
+
var(--bg) 60%
|
|
439
|
+
);
|
|
440
|
+
opacity: 0.55;
|
|
441
|
+
filter: blur(60px);
|
|
442
|
+
z-index: 0;
|
|
443
|
+
pointer-events: none;
|
|
444
|
+
}
|
|
445
|
+
.hero > * { position: relative; z-index: 1; }
|
|
446
|
+
.hero .eyebrow { margin-block-end: var(--space-5); }
|
|
447
|
+
.hero h1 { max-width: 16ch; }
|
|
448
|
+
.hero .lede {
|
|
449
|
+
max-width: 56ch;
|
|
450
|
+
margin-block-start: var(--space-6);
|
|
451
|
+
font-size: var(--text-lg);
|
|
452
|
+
line-height: 1.56;
|
|
453
|
+
}
|
|
454
|
+
.hero-actions {
|
|
455
|
+
display: flex;
|
|
456
|
+
gap: var(--space-3);
|
|
457
|
+
margin-block-start: var(--space-8);
|
|
458
|
+
align-items: center;
|
|
459
|
+
flex-wrap: wrap;
|
|
460
|
+
}
|
|
461
|
+
.hero-meta {
|
|
462
|
+
display: inline-flex;
|
|
463
|
+
align-items: center;
|
|
464
|
+
gap: var(--space-3);
|
|
465
|
+
margin-block-start: var(--space-6);
|
|
466
|
+
color: var(--muted);
|
|
467
|
+
font-size: var(--text-sm);
|
|
468
|
+
flex-wrap: wrap;
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
.features-grid {
|
|
472
|
+
display: grid;
|
|
473
|
+
grid-template-columns: repeat(3, 1fr);
|
|
474
|
+
gap: var(--space-5);
|
|
475
|
+
margin-block-start: var(--space-8);
|
|
476
|
+
}
|
|
477
|
+
@media (max-width: 1023px) {
|
|
478
|
+
.features-grid { grid-template-columns: 1fr 1fr; }
|
|
479
|
+
}
|
|
480
|
+
@media (max-width: 639px) {
|
|
481
|
+
.features-grid { grid-template-columns: 1fr; }
|
|
482
|
+
}
|
|
483
|
+
.feature-icon {
|
|
484
|
+
width: 36px;
|
|
485
|
+
height: 36px;
|
|
486
|
+
border-radius: var(--radius-md);
|
|
487
|
+
border: 1px solid var(--border);
|
|
488
|
+
background: var(--bg);
|
|
489
|
+
display: inline-flex;
|
|
490
|
+
align-items: center;
|
|
491
|
+
justify-content: center;
|
|
492
|
+
color: var(--accent);
|
|
493
|
+
}
|
|
494
|
+
.feature-icon svg { width: 18px; height: 18px; }
|
|
495
|
+
|
|
496
|
+
.form-row {
|
|
497
|
+
display: grid;
|
|
498
|
+
grid-template-columns: 1.2fr 1fr;
|
|
499
|
+
gap: var(--space-12);
|
|
500
|
+
align-items: start;
|
|
501
|
+
margin-block-start: var(--space-8);
|
|
502
|
+
}
|
|
503
|
+
@media (max-width: 1023px) {
|
|
504
|
+
.form-row { grid-template-columns: 1fr; gap: var(--space-8); }
|
|
505
|
+
}
|
|
506
|
+
.form {
|
|
507
|
+
display: flex;
|
|
508
|
+
flex-direction: column;
|
|
509
|
+
gap: var(--space-4);
|
|
510
|
+
max-width: 440px;
|
|
511
|
+
padding: var(--space-6);
|
|
512
|
+
background: var(--surface);
|
|
513
|
+
border: 1px solid var(--border);
|
|
514
|
+
border-radius: var(--radius-md);
|
|
515
|
+
box-shadow: var(--elev-raised);
|
|
516
|
+
}
|
|
517
|
+
.form-actions {
|
|
518
|
+
display: flex;
|
|
519
|
+
gap: var(--space-3);
|
|
520
|
+
margin-block-start: var(--space-2);
|
|
521
|
+
align-items: center;
|
|
522
|
+
flex-wrap: wrap;
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
.row-between {
|
|
526
|
+
display: flex;
|
|
527
|
+
align-items: center;
|
|
528
|
+
justify-content: space-between;
|
|
529
|
+
gap: var(--space-3);
|
|
530
|
+
}
|
|
531
|
+
.icon { width: 16px; height: 16px; flex-shrink: 0; }
|
|
532
|
+
</style>
|
|
533
|
+
</head>
|
|
534
|
+
<body>
|
|
535
|
+
<main class="container">
|
|
536
|
+
<!-- ════════════════════════════════════════════════════════════
|
|
537
|
+
HERO — exercises: radial green wash (the one chromatic
|
|
538
|
+
moment per screen), h1 at 72px Circular weight 400 with
|
|
539
|
+
leading 1.00 (the terminal-density signature), .lede in
|
|
540
|
+
--fg-2, .btn-brand (the emerald pill), .btn-secondary
|
|
541
|
+
(dark pill with hairline border), Source Code Pro eyebrow.
|
|
542
|
+
Hero copy reflects Supabase's "build in a weekend, scale
|
|
543
|
+
to millions" voice — confident, technical, terse.
|
|
544
|
+
═══════════════════════════════════════════════════════════════ -->
|
|
545
|
+
<section class="hero" data-od-id="hero">
|
|
546
|
+
<p class="eyebrow">// open source · postgres-native</p>
|
|
547
|
+
<h1>Build in a weekend. Scale to millions.</h1>
|
|
548
|
+
<p class="lede">
|
|
549
|
+
Every Supabase project ships with a Postgres database,
|
|
550
|
+
authentication, instant APIs, edge functions, realtime
|
|
551
|
+
subscriptions, and object storage. Start with a
|
|
552
|
+
<code class="chip">create table</code>, deploy with a
|
|
553
|
+
<code class="chip">git push</code>, and let the platform
|
|
554
|
+
carry the load when traffic finds you.
|
|
555
|
+
</p>
|
|
556
|
+
<div class="hero-actions">
|
|
557
|
+
<a href="./tokens.css" class="btn btn-brand" style="border-bottom: none">
|
|
558
|
+
Start your project
|
|
559
|
+
<svg
|
|
560
|
+
class="icon"
|
|
561
|
+
viewBox="0 0 24 24"
|
|
562
|
+
fill="none"
|
|
563
|
+
stroke="currentColor"
|
|
564
|
+
stroke-width="1.75"
|
|
565
|
+
stroke-linecap="round"
|
|
566
|
+
stroke-linejoin="round"
|
|
567
|
+
aria-hidden="true"
|
|
568
|
+
>
|
|
569
|
+
<path d="M5 12h14M13 6l6 6-6 6" />
|
|
570
|
+
</svg>
|
|
571
|
+
</a>
|
|
572
|
+
<a href="./DESIGN.md" class="btn btn-secondary" style="border-bottom: none">
|
|
573
|
+
Read the docs
|
|
574
|
+
</a>
|
|
575
|
+
</div>
|
|
576
|
+
<p class="hero-meta">
|
|
577
|
+
<span class="badge badge-muted">
|
|
578
|
+
<span class="badge-dot" aria-hidden="true" style="color: var(--success)"></span>
|
|
579
|
+
All systems normal
|
|
580
|
+
</span>
|
|
581
|
+
<span>Press <kbd>⌘</kbd> <kbd>K</kbd> to search the docs.</span>
|
|
582
|
+
</p>
|
|
583
|
+
</section>
|
|
584
|
+
|
|
585
|
+
<!-- ════════════════════════════════════════════════════════════
|
|
586
|
+
FEATURE CARDS — three cards exercising: .card (border-as-
|
|
587
|
+
depth, no shadow), h3 with -0.0067em tracking and 1.33
|
|
588
|
+
leading (DESIGN.md card-title row), .feature-icon (hairline
|
|
589
|
+
bordered square with emerald glyph), .badge-accent (the
|
|
590
|
+
tinted brand-status pill), link bottom-border underline.
|
|
591
|
+
Three cards per row at desktop, collapse to two then one.
|
|
592
|
+
═══════════════════════════════════════════════════════════════ -->
|
|
593
|
+
<section data-od-id="features">
|
|
594
|
+
<p class="eyebrow">// the stack</p>
|
|
595
|
+
<h2 style="max-width: 26ch; margin-block-start: var(--space-4)">
|
|
596
|
+
The open source backend that grew up.
|
|
597
|
+
</h2>
|
|
598
|
+
<p class="body-muted" style="margin-block-start: var(--space-4); max-width: 56ch">
|
|
599
|
+
One project, six services, all standing on Postgres. Bring
|
|
600
|
+
your own SQL — the rest of the platform speaks your schema.
|
|
601
|
+
</p>
|
|
602
|
+
|
|
603
|
+
<div class="features-grid">
|
|
604
|
+
<article class="card">
|
|
605
|
+
<div class="row-between">
|
|
606
|
+
<span class="feature-icon" aria-hidden="true">
|
|
607
|
+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round">
|
|
608
|
+
<ellipse cx="12" cy="6" rx="8" ry="3" />
|
|
609
|
+
<path d="M4 6v6c0 1.66 3.58 3 8 3s8-1.34 8-3V6" />
|
|
610
|
+
<path d="M4 12v6c0 1.66 3.58 3 8 3s8-1.34 8-3v-6" />
|
|
611
|
+
</svg>
|
|
612
|
+
</span>
|
|
613
|
+
<span class="badge badge-accent">Postgres 16</span>
|
|
614
|
+
</div>
|
|
615
|
+
<h3>A dedicated database, on day one.</h3>
|
|
616
|
+
<p class="body-muted body-sm">
|
|
617
|
+
Every project gets a fully-managed Postgres instance with
|
|
618
|
+
extensions, point-in-time recovery, and read replicas. The
|
|
619
|
+
<code class="chip">supabase</code> CLI streams migrations
|
|
620
|
+
from <code class="chip">/supabase/migrations</code> straight
|
|
621
|
+
to production.
|
|
622
|
+
</p>
|
|
623
|
+
<a href="./tokens.css" class="body-sm">Explore the database →</a>
|
|
624
|
+
</article>
|
|
625
|
+
|
|
626
|
+
<article class="card">
|
|
627
|
+
<div class="row-between">
|
|
628
|
+
<span class="feature-icon" aria-hidden="true">
|
|
629
|
+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round">
|
|
630
|
+
<rect x="3" y="11" width="18" height="10" rx="2" />
|
|
631
|
+
<path d="M7 11V7a5 5 0 0 1 10 0v4" />
|
|
632
|
+
</svg>
|
|
633
|
+
</span>
|
|
634
|
+
<span class="badge badge-accent">Row-level</span>
|
|
635
|
+
</div>
|
|
636
|
+
<h3>Auth that respects your schema.</h3>
|
|
637
|
+
<p class="body-muted body-sm">
|
|
638
|
+
Email, OAuth, magic links, and SAML — all writing to a
|
|
639
|
+
<code class="chip">auth.users</code> table you can join
|
|
640
|
+
against. Row-level security policies enforce access in
|
|
641
|
+
the database, not in middleware.
|
|
642
|
+
</p>
|
|
643
|
+
<a href="./DESIGN.md" class="body-sm">See the auth flow →</a>
|
|
644
|
+
</article>
|
|
645
|
+
|
|
646
|
+
<article class="card">
|
|
647
|
+
<div class="row-between">
|
|
648
|
+
<span class="feature-icon" aria-hidden="true">
|
|
649
|
+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round">
|
|
650
|
+
<path d="M12 2v20M2 12h20" />
|
|
651
|
+
<circle cx="12" cy="12" r="9" />
|
|
652
|
+
</svg>
|
|
653
|
+
</span>
|
|
654
|
+
<span class="badge badge-success">
|
|
655
|
+
<span class="badge-dot" aria-hidden="true"></span>
|
|
656
|
+
Realtime
|
|
657
|
+
</span>
|
|
658
|
+
</div>
|
|
659
|
+
<h3>Subscriptions over your data.</h3>
|
|
660
|
+
<p class="body-muted body-sm">
|
|
661
|
+
Listen to row inserts, updates, and deletes from the
|
|
662
|
+
browser — no extra service, no manual fan-out. Realtime
|
|
663
|
+
streams Postgres' write-ahead log to authorized clients
|
|
664
|
+
over a single WebSocket.
|
|
665
|
+
</p>
|
|
666
|
+
<a href="./tokens.css" class="body-sm">Inspect the channel →</a>
|
|
667
|
+
</article>
|
|
668
|
+
</div>
|
|
669
|
+
</section>
|
|
670
|
+
|
|
671
|
+
<!-- ════════════════════════════════════════════════════════════
|
|
672
|
+
FORM — exercises: .field with border-defined input edges,
|
|
673
|
+
focus-visible swap to the emerald border + green focus
|
|
674
|
+
halo, .btn-brand and .btn-secondary reuse. Form sits in
|
|
675
|
+
its own bordered card with the brand's minimal elev-raised
|
|
676
|
+
shadow so the inputs read as recessed beneath the card.
|
|
677
|
+
═══════════════════════════════════════════════════════════════ -->
|
|
678
|
+
<section data-od-id="form">
|
|
679
|
+
<p class="eyebrow">// get the launch kit</p>
|
|
680
|
+
<h2 style="margin-block-start: var(--space-4); max-width: 28ch">
|
|
681
|
+
Ship the schema. We'll handle the rest.
|
|
682
|
+
</h2>
|
|
683
|
+
|
|
684
|
+
<div class="form-row">
|
|
685
|
+
<div class="stack-4">
|
|
686
|
+
<p class="body-muted" style="max-width: 48ch">
|
|
687
|
+
Inputs, focus rings, and edges all derive from
|
|
688
|
+
<code class="chip">--border</code> and
|
|
689
|
+
<code class="chip">--accent</code>. The primary CTA reuses
|
|
690
|
+
<code class="chip">.btn-brand</code> unchanged — emerald
|
|
691
|
+
fill, near-black label, pill radius. No raw hex anywhere
|
|
692
|
+
in the component CSS.
|
|
693
|
+
</p>
|
|
694
|
+
<p class="body-muted body-sm">
|
|
695
|
+
Press <kbd>Enter</kbd> on the email field to submit. The
|
|
696
|
+
focus halo lands at the documented brand-highlight tint
|
|
697
|
+
(<code class="chip">rgba(62, 207, 142, 0.5)</code>) —
|
|
698
|
+
visible against the canvas without dominating the page.
|
|
699
|
+
</p>
|
|
700
|
+
<p class="body-meta">
|
|
701
|
+
Full reference at <a href="./tokens.css">tokens.css</a> ·
|
|
702
|
+
spec at <a href="./DESIGN.md">DESIGN.md</a>.
|
|
703
|
+
</p>
|
|
704
|
+
</div>
|
|
705
|
+
|
|
706
|
+
<form class="form" onsubmit="event.preventDefault();">
|
|
707
|
+
<div class="row-between">
|
|
708
|
+
<p class="eyebrow">// launch kit</p>
|
|
709
|
+
<span class="badge badge-success">
|
|
710
|
+
<span class="badge-dot" aria-hidden="true"></span>
|
|
711
|
+
Open
|
|
712
|
+
</span>
|
|
713
|
+
</div>
|
|
714
|
+
<div class="field">
|
|
715
|
+
<label for="email">Work email</label>
|
|
716
|
+
<input
|
|
717
|
+
id="email"
|
|
718
|
+
type="email"
|
|
719
|
+
placeholder="you@team.dev"
|
|
720
|
+
autocomplete="email"
|
|
721
|
+
required
|
|
722
|
+
/>
|
|
723
|
+
<p class="field-help">
|
|
724
|
+
We'll send the starter repo and a Postgres schema you
|
|
725
|
+
can <code class="chip">supabase db push</code> on day one.
|
|
726
|
+
</p>
|
|
727
|
+
</div>
|
|
728
|
+
<div class="form-actions">
|
|
729
|
+
<button type="submit" class="btn btn-brand">
|
|
730
|
+
Send the kit
|
|
731
|
+
</button>
|
|
732
|
+
<button type="button" class="btn btn-ghost">
|
|
733
|
+
Browse the docs
|
|
734
|
+
</button>
|
|
735
|
+
</div>
|
|
736
|
+
</form>
|
|
737
|
+
</div>
|
|
738
|
+
</section>
|
|
739
|
+
</main>
|
|
740
|
+
</body>
|
|
741
|
+
</html>
|