Spaces:
Build error
Build error
| @import "tailwindcss"; | |
| @import "tw-animate-css"; | |
| @custom-variant dark (&:is(.dark *)); | |
| @theme inline { | |
| --radius-sm: calc(var(--radius) - 4px); | |
| --radius-md: calc(var(--radius) - 2px); | |
| --radius-lg: var(--radius); | |
| --radius-xl: calc(var(--radius) + 4px); | |
| --color-background: var(--background); | |
| --color-foreground: var(--foreground); | |
| --color-card: var(--card); | |
| --color-card-foreground: var(--card-foreground); | |
| --color-popover: var(--popover); | |
| --color-popover-foreground: var(--popover-foreground); | |
| --color-primary: var(--primary); | |
| --color-primary-foreground: var(--primary-foreground); | |
| --color-secondary: var(--secondary); | |
| --color-secondary-foreground: var(--secondary-foreground); | |
| --color-muted: var(--muted); | |
| --color-muted-foreground: var(--muted-foreground); | |
| --color-accent: var(--accent); | |
| --color-accent-foreground: var(--accent-foreground); | |
| --color-destructive: var(--destructive); | |
| --color-destructive-foreground: var(--destructive-foreground); | |
| --color-border: var(--border); | |
| --color-input: var(--input); | |
| --color-ring: var(--ring); | |
| --color-chart-1: var(--chart-1); | |
| --color-chart-2: var(--chart-2); | |
| --color-chart-3: var(--chart-3); | |
| --color-chart-4: var(--chart-4); | |
| --color-chart-5: var(--chart-5); | |
| --color-sidebar: var(--sidebar); | |
| --color-sidebar-foreground: var(--sidebar-foreground); | |
| --color-sidebar-primary: var(--sidebar-primary); | |
| --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); | |
| --color-sidebar-accent: var(--sidebar-accent); | |
| --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); | |
| --color-sidebar-border: var(--sidebar-border); | |
| --color-sidebar-ring: var(--sidebar-ring); | |
| } | |
| :root { | |
| --primary: var(--color-blue-700); | |
| --primary-foreground: var(--color-blue-50); | |
| --sidebar-primary: var(--color-blue-600); | |
| --sidebar-primary-foreground: var(--color-blue-50); | |
| --chart-1: var(--color-blue-300); | |
| --chart-2: var(--color-blue-500); | |
| --chart-3: var(--color-blue-600); | |
| --chart-4: var(--color-blue-700); | |
| --chart-5: var(--color-blue-800); | |
| --radius: 0.65rem; | |
| --background: oklch(1 0 0); | |
| --foreground: oklch(0.235 0.015 65); | |
| --card: oklch(1 0 0); | |
| --card-foreground: oklch(0.235 0.015 65); | |
| --popover: oklch(1 0 0); | |
| --popover-foreground: oklch(0.235 0.015 65); | |
| --secondary: oklch(0.98 0.001 286.375); | |
| --secondary-foreground: oklch(0.4 0.015 65); | |
| --muted: oklch(0.967 0.001 286.375); | |
| --muted-foreground: oklch(0.552 0.016 285.938); | |
| --accent: oklch(0.967 0.001 286.375); | |
| --accent-foreground: oklch(0.141 0.005 285.823); | |
| --destructive: oklch(0.577 0.245 27.325); | |
| --destructive-foreground: oklch(0.985 0 0); | |
| --border: oklch(0.92 0.004 286.32); | |
| --input: oklch(0.92 0.004 286.32); | |
| --ring: oklch(0.623 0.214 259.815); | |
| --sidebar: oklch(0.985 0 0); | |
| --sidebar-foreground: oklch(0.235 0.015 65); | |
| --sidebar-accent: oklch(0.967 0.001 286.375); | |
| --sidebar-accent-foreground: oklch(0.141 0.005 285.823); | |
| --sidebar-border: oklch(0.92 0.004 286.32); | |
| --sidebar-ring: oklch(0.623 0.214 259.815); | |
| } | |
| .dark { | |
| --primary: oklch(0.623 0.214 259.815); | |
| --primary-foreground: oklch(0.141 0.005 285.823); | |
| --sidebar-primary: oklch(0.623 0.214 259.815); | |
| --sidebar-primary-foreground: oklch(0.141 0.005 285.823); | |
| --background: oklch(0.07 0.002 0); | |
| --foreground: oklch(0.95 0.002 0); | |
| --card: oklch(0.15 0.003 0); | |
| --card-foreground: oklch(0.95 0.002 0); | |
| --popover: oklch(0.15 0.003 0); | |
| --popover-foreground: oklch(0.95 0.002 0); | |
| --secondary: oklch(0.55 0.15 264); | |
| --secondary-foreground: oklch(0.95 0.002 0); | |
| --muted: oklch(0.35 0.05 0); | |
| --muted-foreground: oklch(0.75 0.01 0); | |
| --accent: oklch(0.65 0.18 280); | |
| --accent-foreground: oklch(0.95 0.002 0); | |
| --destructive: oklch(0.704 0.191 22.216); | |
| --destructive-foreground: oklch(0.985 0 0); | |
| --border: oklch(1 0 0 / 8%); | |
| --input: oklch(1 0 0 / 12%); | |
| --ring: oklch(0.623 0.214 259.815); | |
| --chart-1: oklch(0.623 0.214 259.815); | |
| --chart-2: oklch(0.55 0.15 264); | |
| --chart-3: oklch(0.65 0.18 280); | |
| --chart-4: oklch(0.623 0.214 259.815); | |
| --chart-5: oklch(0.55 0.15 264); | |
| --sidebar: oklch(0.15 0.003 0); | |
| --sidebar-foreground: oklch(0.95 0.002 0); | |
| --sidebar-accent: oklch(0.65 0.18 280); | |
| --sidebar-accent-foreground: oklch(0.95 0.002 0); | |
| --sidebar-border: oklch(1 0 0 / 8%); | |
| --sidebar-ring: oklch(0.623 0.214 259.815); | |
| } | |
| @layer base { | |
| * { | |
| @apply border-border outline-ring/50; | |
| } | |
| body { | |
| @apply bg-background text-foreground; | |
| } | |
| button:not(:disabled), | |
| [role="button"]:not([aria-disabled="true"]), | |
| [type="button"]:not(:disabled), | |
| [type="submit"]:not(:disabled), | |
| [type="reset"]:not(:disabled), | |
| a[href], | |
| select:not(:disabled), | |
| input[type="checkbox"]:not(:disabled), | |
| input[type="radio"]:not(:disabled) { | |
| @apply cursor-pointer; | |
| } | |
| } | |
| @layer components { | |
| /** | |
| * Custom container utility that centers content and adds responsive padding. | |
| * | |
| * This overrides Tailwind's default container behavior to: | |
| * - Auto-center content (mx-auto) | |
| * - Add responsive horizontal padding | |
| * - Set max-width for large screens | |
| * | |
| * Usage: <div className="container">...</div> | |
| * | |
| * For custom widths, use max-w-* utilities directly: | |
| * <div className="max-w-6xl mx-auto px-4">...</div> | |
| */ | |
| .container { | |
| width: 100%; | |
| margin-left: auto; | |
| margin-right: auto; | |
| padding-left: 1rem; /* 16px - mobile padding */ | |
| padding-right: 1rem; | |
| } | |
| .flex { | |
| min-height: 0; | |
| min-width: 0; | |
| } | |
| @media (min-width: 640px) { | |
| .container { | |
| padding-left: 1.5rem; /* 24px - tablet padding */ | |
| padding-right: 1.5rem; | |
| } | |
| } | |
| @media (min-width: 1024px) { | |
| .container { | |
| padding-left: 2rem; /* 32px - desktop padding */ | |
| padding-right: 2rem; | |
| max-width: 1280px; /* Standard content width */ | |
| } | |
| } | |
| } | |
| /* ============================================================================ | |
| Glassmorphism Components - 21dev Design | |
| ============================================================================ */ | |
| @layer components { | |
| .glass-panel { | |
| @apply bg-white/5 backdrop-blur-2xl border border-white/10 rounded-2xl; | |
| } | |
| .glass-panel-lg { | |
| @apply bg-white/5 backdrop-blur-3xl border border-white/10 rounded-3xl; | |
| } | |
| .glow-primary { | |
| @apply shadow-lg shadow-primary/20; | |
| } | |
| .glow-accent { | |
| @apply shadow-lg shadow-accent/20; | |
| } | |
| .gradient-text { | |
| @apply bg-gradient-to-r from-primary via-accent to-secondary bg-clip-text text-transparent; | |
| } | |
| .transition-smooth { | |
| @apply transition-all duration-300 ease-in-out; | |
| } | |
| .focus-ring { | |
| @apply focus:outline-none focus:ring-2 focus:ring-primary/50 focus:ring-offset-2 focus:ring-offset-background; | |
| } | |
| .btn-primary { | |
| @apply px-4 py-2 rounded-lg bg-primary text-primary-foreground font-medium transition-smooth hover:shadow-lg hover:shadow-primary/30 active:scale-95; | |
| } | |
| .btn-secondary { | |
| @apply px-4 py-2 rounded-lg bg-secondary text-secondary-foreground font-medium transition-smooth hover:shadow-lg hover:shadow-secondary/30 active:scale-95; | |
| } | |
| .btn-ghost { | |
| @apply px-4 py-2 rounded-lg bg-transparent text-foreground font-medium transition-smooth hover:bg-white/5 active:scale-95; | |
| } | |
| .input-glass { | |
| @apply glass-panel px-4 py-3 text-foreground placeholder-muted-foreground focus-ring; | |
| } | |
| .code-block { | |
| @apply glass-panel p-4 overflow-x-auto; | |
| } | |
| .markdown { | |
| @apply space-y-4; | |
| } | |
| .markdown strong { | |
| @apply font-bold text-primary; | |
| } | |
| .markdown a { | |
| @apply text-primary hover:underline; | |
| } | |
| .markdown table { | |
| @apply w-full border-collapse glass-panel p-4; | |
| } | |
| .markdown th { | |
| @apply bg-primary/10 px-4 py-2 text-left font-semibold text-primary; | |
| } | |
| .markdown td { | |
| @apply border-t border-border px-4 py-2 text-foreground/90; | |
| } | |
| .markdown blockquote { | |
| @apply border-l-4 border-primary pl-4 py-2 text-muted-foreground italic; | |
| } | |
| .markdown pre { | |
| @apply code-block; | |
| } | |
| } | |
| /* ============================================================================ | |
| Animations | |
| ============================================================================ */ | |
| @layer utilities { | |
| @keyframes fade-in { | |
| from { | |
| opacity: 0; | |
| } | |
| to { | |
| opacity: 1; | |
| } | |
| } | |
| @keyframes slide-up { | |
| from { | |
| transform: translateY(10px); | |
| opacity: 0; | |
| } | |
| to { | |
| transform: translateY(0); | |
| opacity: 1; | |
| } | |
| } | |
| @keyframes pulse-glow { | |
| 0%, 100% { | |
| opacity: 1; | |
| } | |
| 50% { | |
| opacity: 0.7; | |
| } | |
| } | |
| .animate-fade-in { | |
| animation: fade-in 0.3s ease-in-out; | |
| } | |
| .animate-slide-up { | |
| animation: slide-up 0.3s ease-in-out; | |
| } | |
| .animate-pulse-glow { | |
| animation: pulse-glow 2s ease-in-out infinite; | |
| } | |
| } | |
| /* Scrollbar styling */ | |
| html::-webkit-scrollbar { | |
| width: 8px; | |
| } | |
| html::-webkit-scrollbar-track { | |
| background: transparent; | |
| } | |
| html::-webkit-scrollbar-thumb { | |
| background-color: oklch(0.623 0.214 259.815 / 0.3); | |
| border-radius: 4px; | |
| border: 2px solid transparent; | |
| background-clip: content-box; | |
| } | |
| html::-webkit-scrollbar-thumb:hover { | |
| background-color: oklch(0.623 0.214 259.815 / 0.5); | |
| } | |