Spaces:
Running
Running
AdsurKasur
Refactor layout and styles for a modernized QR Code Generator UI; enhance animations, update header and footer design, and improve file upload handling in JavaScript.
54bb0b3 | /* ======================================== | |
| BASE STYLES - Modern Clean Design System | |
| ======================================== */ | |
| :root { | |
| /* Modern Color Palette */ | |
| --color-primary: #6366f1; | |
| --color-primary-light: #818cf8; | |
| --color-primary-dark: #4f46e5; | |
| --color-accent: #8b5cf6; | |
| --color-success: #22c55e; | |
| --color-success-light: #4ade80; | |
| --color-error: #ef4444; | |
| --color-warning: #f59e0b; | |
| /* Neutral Palette */ | |
| --color-white: #ffffff; | |
| --color-black: #0f0f0f; | |
| --color-gray-50: #fafafa; | |
| --color-gray-100: #f4f4f5; | |
| --color-gray-200: #e4e4e7; | |
| --color-gray-300: #d4d4d8; | |
| --color-gray-400: #a1a1aa; | |
| --color-gray-500: #71717a; | |
| --color-gray-600: #52525b; | |
| --color-gray-700: #3f3f46; | |
| --color-gray-800: #27272a; | |
| --color-gray-900: #18181b; | |
| /* Spacing Scale */ | |
| --space-1: 4px; | |
| --space-2: 8px; | |
| --space-3: 12px; | |
| --space-4: 16px; | |
| --space-5: 20px; | |
| --space-6: 24px; | |
| --space-8: 32px; | |
| --space-10: 40px; | |
| --space-12: 48px; | |
| --space-16: 64px; | |
| /* Border Radius */ | |
| --radius-sm: 8px; | |
| --radius-md: 12px; | |
| --radius-lg: 16px; | |
| --radius-xl: 24px; | |
| --radius-full: 9999px; | |
| /* Shadows - Softer, more modern */ | |
| --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.05); | |
| --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.04); | |
| --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.06); | |
| --shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.08); | |
| --shadow-xl: 0 16px 48px rgba(0, 0, 0, 0.12); | |
| --shadow-glow: 0 0 40px rgba(99, 102, 241, 0.15); | |
| /* Typography */ | |
| --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif; | |
| --font-mono: 'SF Mono', 'Fira Code', 'Consolas', monospace; | |
| /* Transitions */ | |
| --ease-out: cubic-bezier(0.16, 1, 0.3, 1); | |
| --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1); | |
| --duration-fast: 150ms; | |
| --duration-normal: 250ms; | |
| --duration-slow: 400ms; | |
| } | |
| /* Reset */ | |
| *, *::before, *::after { | |
| margin: 0; | |
| padding: 0; | |
| box-sizing: border-box; | |
| } | |
| html { | |
| -webkit-font-smoothing: antialiased; | |
| -moz-osx-font-smoothing: grayscale; | |
| text-rendering: optimizeLegibility; | |
| } | |
| body { | |
| font-family: var(--font-sans); | |
| background: linear-gradient(135deg, #667eea 0%, #764ba2 50%, #6366f1 100%); | |
| background-attachment: fixed; | |
| min-height: 100vh; | |
| padding: var(--space-6); | |
| color: var(--color-gray-700); | |
| line-height: 1.6; | |
| } | |
| /* Selection */ | |
| ::selection { | |
| background: var(--color-primary); | |
| color: var(--color-white); | |
| } | |
| /* Focus States */ | |
| :focus-visible { | |
| outline: 2px solid var(--color-primary); | |
| outline-offset: 2px; | |
| } | |
| /* Scrollbar */ | |
| ::-webkit-scrollbar { | |
| width: 8px; | |
| height: 8px; | |
| } | |
| ::-webkit-scrollbar-track { | |
| background: var(--color-gray-100); | |
| } | |
| ::-webkit-scrollbar-thumb { | |
| background: var(--color-gray-300); | |
| border-radius: var(--radius-full); | |
| } | |
| ::-webkit-scrollbar-thumb:hover { | |
| background: var(--color-gray-400); | |
| } |