Spaces:
Configuration error
Configuration error
| @import "tailwindcss"; | |
| @import "tw-animate-css"; | |
| @custom-variant dark (&:is(.dark *)); | |
| /* ============================================ | |
| DESIGN TOKENS - OpenPrompt Design System | |
| Premium Palette: Indigo (#6366f1) + Rose (#f43f5e) + Teal (#14b8a6) | |
| Crafted for visual comfort and modern aesthetics | |
| ============================================ */ | |
| :root { | |
| /* Light Mode - Warm Cream Base */ | |
| --background: 60 9% 98%; | |
| --foreground: 224 71% 4%; | |
| --card: 60 6% 97%; | |
| --card-foreground: 224 71% 4%; | |
| --popover: 0 0% 100%; | |
| --popover-foreground: 224 71% 4%; | |
| /* Indigo Primary - Rich & Vibrant */ | |
| --primary: 239 84% 67%; | |
| --primary-foreground: 0 0% 100%; | |
| --secondary: 220 14% 96%; | |
| --secondary-foreground: 220 9% 12%; | |
| /* Rose Accent - Warm & Inviting */ | |
| --accent: 347 77% 50%; | |
| --accent-foreground: 0 0% 100%; | |
| --muted: 220 14% 96%; | |
| --muted-foreground: 220 9% 46%; | |
| --destructive: 0 72% 51%; | |
| --destructive-foreground: 0 0% 98%; | |
| --border: 220 13% 91%; | |
| --input: 220 13% 91%; | |
| --ring: 239 84% 67%; | |
| --radius: 0.625rem; | |
| /* Success - Teal / Warning - Amber */ | |
| --success: 168 76% 42%; | |
| --warning: 43 96% 56%; | |
| /* Chart Colors - Harmonious Palette */ | |
| --chart-1: 239 84% 67%; | |
| --chart-2: 347 77% 50%; | |
| --chart-3: 168 76% 42%; | |
| --chart-4: 271 81% 56%; | |
| --chart-5: 31 97% 72%; | |
| --sidebar: 60 6% 97%; | |
| --sidebar-foreground: 220 9% 12%; | |
| --sidebar-primary: 239 84% 67%; | |
| --sidebar-primary-foreground: 0 0% 100%; | |
| --sidebar-accent: 220 14% 96%; | |
| --sidebar-accent-foreground: 220 9% 12%; | |
| --sidebar-border: 220 13% 91%; | |
| --sidebar-ring: 239 84% 67%; | |
| } | |
| .dark { | |
| /* Dark Mode - Deep Slate with Subtle Blue */ | |
| --background: 222 47% 6%; | |
| --foreground: 210 40% 98%; | |
| --card: 222 47% 9%; | |
| --card-foreground: 210 40% 98%; | |
| --popover: 222 47% 9%; | |
| --popover-foreground: 210 40% 98%; | |
| /* Indigo Primary - Glowing */ | |
| --primary: 239 84% 67%; | |
| --primary-foreground: 0 0% 100%; | |
| --secondary: 217 33% 17%; | |
| --secondary-foreground: 210 40% 98%; | |
| /* Rose Accent - Soft Glow */ | |
| --accent: 347 77% 50%; | |
| --accent-foreground: 0 0% 100%; | |
| --muted: 217 33% 17%; | |
| --muted-foreground: 215 20% 65%; | |
| --destructive: 0 62% 30%; | |
| --destructive-foreground: 0 0% 98%; | |
| --border: 217 33% 17%; | |
| --input: 217 33% 17%; | |
| --ring: 239 84% 67%; | |
| /* Chart Colors - Vibrant for Dark Mode */ | |
| --chart-1: 239 84% 67%; | |
| --chart-2: 347 77% 50%; | |
| --chart-3: 168 76% 42%; | |
| --chart-4: 271 81% 56%; | |
| --chart-5: 31 97% 72%; | |
| --sidebar: 222 47% 9%; | |
| --sidebar-foreground: 210 40% 98%; | |
| --sidebar-primary: 239 84% 67%; | |
| --sidebar-primary-foreground: 0 0% 100%; | |
| --sidebar-accent: 217 33% 17%; | |
| --sidebar-accent-foreground: 210 40% 98%; | |
| --sidebar-border: 217 33% 17%; | |
| --sidebar-ring: 239 84% 67%; | |
| } | |
| /* ============================================ | |
| THEME UTILITIES | |
| ============================================ */ | |
| @theme inline { | |
| --color-background: hsl(var(--background)); | |
| --color-foreground: hsl(var(--foreground)); | |
| --color-card: hsl(var(--card)); | |
| --color-card-foreground: hsl(var(--card-foreground)); | |
| --color-primary: hsl(var(--primary)); | |
| --color-primary-foreground: hsl(var(--primary-foreground)); | |
| --color-secondary: hsl(var(--secondary)); | |
| --color-secondary-foreground: hsl(var(--secondary-foreground)); | |
| --color-accent: hsl(var(--accent)); | |
| --color-accent-foreground: hsl(var(--accent-foreground)); | |
| --color-muted: hsl(var(--muted)); | |
| --color-muted-foreground: hsl(var(--muted-foreground)); | |
| --color-destructive: hsl(var(--destructive)); | |
| --color-border: hsl(var(--border)); | |
| --color-ring: hsl(var(--ring)); | |
| --color-input: hsl(var(--input)); | |
| /* Fonts */ | |
| --font-sans: var(--font-inter), 'Inter', system-ui, sans-serif; | |
| --font-serif: var(--font-playfair), 'Playfair Display', serif; | |
| --font-mono: var(--font-jetbrains), 'JetBrains Mono', monospace; | |
| /* Radius */ | |
| --radius-sm: calc(var(--radius) - 4px); | |
| --radius-md: var(--radius); | |
| --radius-lg: calc(var(--radius) + 4px); | |
| --radius-xl: calc(var(--radius) + 8px); | |
| --color-sidebar-ring: hsl(var(--sidebar-ring)); | |
| --color-sidebar-border: hsl(var(--sidebar-border)); | |
| --color-sidebar-accent-foreground: hsl(var(--sidebar-accent-foreground)); | |
| --color-sidebar-accent: hsl(var(--sidebar-accent)); | |
| --color-sidebar-primary-foreground: hsl(var(--sidebar-primary-foreground)); | |
| --color-sidebar-primary: hsl(var(--sidebar-primary)); | |
| --color-sidebar-foreground: hsl(var(--sidebar-foreground)); | |
| --color-sidebar: hsl(var(--sidebar)); | |
| --color-chart-5: hsl(var(--chart-5)); | |
| --color-chart-4: hsl(var(--chart-4)); | |
| --color-chart-3: hsl(var(--chart-3)); | |
| --color-chart-2: hsl(var(--chart-2)); | |
| --color-chart-1: hsl(var(--chart-1)); | |
| --color-popover-foreground: hsl(var(--popover-foreground)); | |
| --color-popover: hsl(var(--popover)); | |
| } | |
| /* ============================================ | |
| BASE STYLES | |
| ============================================ */ | |
| * { | |
| border-color: hsl(var(--border)); | |
| } | |
| body { | |
| background: hsl(var(--background)); | |
| color: hsl(var(--foreground)); | |
| font-family: var(--font-sans); | |
| font-feature-settings: "rlig" 1, "calt" 1; | |
| -webkit-font-smoothing: antialiased; | |
| -moz-osx-font-smoothing: grayscale; | |
| } | |
| /* ============================================ | |
| TYPOGRAPHY | |
| ============================================ */ | |
| .font-serif { | |
| font-family: var(--font-serif); | |
| } | |
| .font-mono { | |
| font-family: var(--font-mono); | |
| } | |
| /* Modern Solid Color - Clean & Professional */ | |
| .text-gradient { | |
| color: hsl(var(--primary)); | |
| } | |
| .text-gradient-subtle { | |
| color: hsl(var(--muted-foreground)); | |
| } | |
| /* ============================================ | |
| GLASSMORPHISM EFFECTS | |
| ============================================ */ | |
| .glass { | |
| background: hsl(var(--card) / 0.8); | |
| backdrop-filter: blur(12px); | |
| -webkit-backdrop-filter: blur(12px); | |
| border: 1px solid hsl(var(--border) / 0.5); | |
| } | |
| .glass-strong { | |
| background: hsl(var(--card) / 0.95); | |
| backdrop-filter: blur(20px); | |
| -webkit-backdrop-filter: blur(20px); | |
| border: 1px solid hsl(var(--border)); | |
| } | |
| /* ============================================ | |
| GRADIENT BACKGROUNDS | |
| ============================================ */ | |
| .bg-gradient-primary { | |
| background: linear-gradient(135deg, hsl(var(--primary)) 0%, hsl(239 84% 55%) 100%); | |
| } | |
| .bg-gradient-accent { | |
| background: linear-gradient(135deg, hsl(var(--accent)) 0%, hsl(347 77% 40%) 100%); | |
| } | |
| .bg-gradient-hero { | |
| background: | |
| radial-gradient(ellipse 80% 50% at 50% -20%, hsl(var(--primary) / 0.15) 0%, transparent 50%), | |
| radial-gradient(ellipse 60% 40% at 80% 0%, hsl(var(--accent) / 0.1) 0%, transparent 50%), | |
| hsl(var(--background)); | |
| } | |
| /* ============================================ | |
| ANIMATIONS | |
| ============================================ */ | |
| @keyframes fade-in { | |
| from { | |
| opacity: 0; | |
| } | |
| to { | |
| opacity: 1; | |
| } | |
| } | |
| @keyframes slide-up { | |
| from { | |
| opacity: 0; | |
| transform: translateY(10px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| @keyframes pulse-glow { | |
| 0%, | |
| 100% { | |
| box-shadow: 0 0 20px hsl(var(--primary) / 0.3); | |
| } | |
| 50% { | |
| box-shadow: 0 0 40px hsl(var(--primary) / 0.5); | |
| } | |
| } | |
| @keyframes shimmer { | |
| 0% { | |
| background-position: -200% 0; | |
| } | |
| 100% { | |
| background-position: 200% 0; | |
| } | |
| } | |
| .animate-fade-in { | |
| animation: fade-in 0.3s ease-out; | |
| } | |
| .animate-slide-up { | |
| animation: slide-up 0.4s ease-out; | |
| } | |
| .animate-pulse-glow { | |
| animation: pulse-glow 2s ease-in-out infinite; | |
| } | |
| .animate-shimmer { | |
| background: linear-gradient(90deg, | |
| hsl(var(--muted)) 0%, | |
| hsl(var(--muted-foreground) / 0.1) 50%, | |
| hsl(var(--muted)) 100%); | |
| background-size: 200% 100%; | |
| animation: shimmer 1.5s infinite; | |
| } | |
| /* ============================================ | |
| SCROLLBAR STYLING | |
| ============================================ */ | |
| ::-webkit-scrollbar { | |
| width: 8px; | |
| height: 8px; | |
| } | |
| ::-webkit-scrollbar-track { | |
| background: hsl(var(--muted)); | |
| border-radius: 4px; | |
| } | |
| ::-webkit-scrollbar-thumb { | |
| background: hsl(var(--muted-foreground) / 0.3); | |
| border-radius: 4px; | |
| } | |
| ::-webkit-scrollbar-thumb:hover { | |
| background: hsl(var(--muted-foreground) / 0.5); | |
| } | |
| /* ============================================ | |
| FOCUS STATES | |
| ============================================ */ | |
| .focus-ring { | |
| outline: none; | |
| } | |
| .focus-ring:focus-visible { | |
| outline: 2px solid hsl(var(--ring)); | |
| outline-offset: 2px; | |
| } | |
| /* ============================================ | |
| UTILITY CLASSES | |
| ============================================ */ | |
| .bg-grid { | |
| background-image: | |
| linear-gradient(hsl(var(--border) / 0.3) 1px, transparent 1px), | |
| linear-gradient(90deg, hsl(var(--border) / 0.3) 1px, transparent 1px); | |
| background-size: 40px 40px; | |
| } | |
| .bg-dots { | |
| background-image: radial-gradient(hsl(var(--muted-foreground) / 0.15) 1px, | |
| transparent 1px); | |
| background-size: 20px 20px; | |
| } | |
| /* Prompt variable highlighting */ | |
| .prompt-variable { | |
| color: hsl(var(--primary)); | |
| background: hsl(var(--primary) / 0.1); | |
| padding: 0.125rem 0.375rem; | |
| border-radius: 0.25rem; | |
| font-family: var(--font-mono); | |
| font-size: 0.875em; | |
| } | |
| /* Button glow effect */ | |
| .btn-glow { | |
| box-shadow: 0 0 20px hsl(var(--primary) / 0.4); | |
| transition: box-shadow 0.3s ease; | |
| } | |
| .btn-glow:hover { | |
| box-shadow: 0 0 30px hsl(var(--primary) / 0.6); | |
| } | |
| @layer base { | |
| * { | |
| @apply border-border outline-ring/50; | |
| } | |
| body { | |
| @apply bg-background text-foreground; | |
| } | |
| } | |
| /* Ticker Animations */ | |
| @keyframes infinite-scroll { | |
| from { | |
| transform: translateX(0); | |
| } | |
| to { | |
| transform: translateX(-50%); | |
| } | |
| } | |
| .animate-infinite-scroll { | |
| animation: infinite-scroll 40s linear infinite; | |
| } | |
| .hover\:pause:hover { | |
| animation-play-state: paused; | |
| } | |
| .text-shadow-sm { | |
| text-shadow: 0 0 10px currentColor; | |
| } | |
| /* ============================================ | |
| STACK AUTH CUSTOM STYLES | |
| Override default Stack Auth styling | |
| ============================================ */ | |
| /* Stack Auth container */ | |
| [data-stack-theme] { | |
| font-family: 'Inter', system-ui, sans-serif ; | |
| } | |
| /* Stack Auth cards */ | |
| [data-stack-theme] [class*="card"], | |
| [data-stack-theme] [class*="Card"] { | |
| border-radius: 1rem ; | |
| border: 1px solid hsl(var(--border)) ; | |
| box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1) ; | |
| } | |
| /* Stack Auth buttons */ | |
| [data-stack-theme] button[class*="primary"], | |
| [data-stack-theme] [class*="Button"][class*="primary"] { | |
| background: linear-gradient(135deg, hsl(var(--primary)) 0%, hsl(271 81% 56%) 100%) ; | |
| border-radius: 0.75rem ; | |
| font-weight: 600 ; | |
| transition: all 0.2s ease ; | |
| } | |
| [data-stack-theme] button[class*="primary"]:hover { | |
| transform: translateY(-1px) ; | |
| box-shadow: 0 4px 12px hsl(var(--primary) / 0.4) ; | |
| } | |
| /* Stack Auth inputs */ | |
| [data-stack-theme] input { | |
| border-radius: 0.625rem ; | |
| border: 1px solid hsl(var(--border)) ; | |
| transition: all 0.2s ease ; | |
| } | |
| [data-stack-theme] input:focus { | |
| border-color: hsl(var(--primary)) ; | |
| box-shadow: 0 0 0 3px hsl(var(--primary) / 0.1) ; | |
| } | |
| /* Stack Auth links */ | |
| [data-stack-theme] a { | |
| color: hsl(var(--primary)) ; | |
| transition: color 0.2s ease ; | |
| } | |
| [data-stack-theme] a:hover { | |
| color: hsl(271 81% 56%) ; | |
| } | |
| /* Stack Auth loading spinner override */ | |
| [data-stack-theme] [class*="loading"], | |
| [data-stack-theme] [class*="spinner"] { | |
| color: hsl(var(--primary)) ; | |
| } |