diff --git a/src/frontend/src/app.css b/src/frontend/src/app.css new file mode 100644 index 0000000..cfb18a4 --- /dev/null +++ b/src/frontend/src/app.css @@ -0,0 +1,186 @@ +/* Quickawards Theme System - CSS Variables */ + +/* Light Mode (default) */ +:root, [data-theme="light"] { + /* Backgrounds */ + --bg-body: #f5f5f5; + --bg-card: #ffffff; + --bg-navbar: #2c3e50; + --bg-footer: #2c3e50; + --bg-input: #ffffff; + --bg-hover: rgba(255, 255, 255, 0.1); + --bg-secondary: #f8f9fa; + --bg-tertiary: #e9ecef; + + /* Text */ + --text-primary: #333333; + --text-secondary: #666666; + --text-muted: #999999; + --text-inverted: #ffffff; + --text-link: #4a90e2; + + /* Primary colors */ + --color-primary: #4a90e2; + --color-primary-hover: #357abd; + --color-primary-light: rgba(74, 144, 226, 0.1); + + /* Secondary colors */ + --color-secondary: #6c757d; + --color-secondary-hover: #5a6268; + + /* Semantic colors */ + --color-success: #065f46; + --color-success-bg: #d1fae5; + --color-success-light: #10b981; + + --color-warning: #ffc107; + --color-warning-hover: #e0a800; + --color-warning-bg: #fff3cd; + --color-warning-text: #856404; + + --color-error: #dc3545; + --color-error-hover: #c82333; + --color-error-bg: #fee2e2; + --color-error-text: #991b1b; + + --color-info: #1e40af; + --color-info-bg: #dbeafe; + --color-info-text: #1e40af; + + /* Badge/status colors */ + --badge-pending-bg: #fef3c7; + --badge-pending-text: #92400e; + --badge-running-bg: #dbeafe; + --badge-running-text: #1e40af; + --badge-completed-bg: #d1fae5; + --badge-completed-text: #065f46; + --badge-failed-bg: #fee2e2; + --badge-failed-text: #991b1b; + --badge-cancelled-bg: #f3e8ff; + --badge-cancelled-text: #6b21a8; + --badge-purple-bg: #8b5cf6; + --badge-purple-text: #ffffff; + + /* Borders */ + --border-color: #e0e0e0; + --border-color-light: #e9ecef; + --border-radius: 4px; + --border-radius-lg: 8px; + --border-radius-pill: 12px; + + /* Shadows */ + --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.1); + --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.12); + + /* Focus */ + --focus-ring: 0 0 0 2px rgba(74, 144, 226, 0.2); + + /* Logout button */ + --color-logout: #ff6b6b; + --color-logout-hover: #ff5252; + --color-logout-bg: rgba(255, 107, 107, 0.1); + + /* Admin link */ + --color-admin-bg: #ffc107; + --color-admin-hover: #e0a800; + --color-admin-text: #000000; + + /* Impersonation banner */ + --impersonation-bg: #fff3cd; + --impersonation-border: #ffc107; + --impersonation-text: #856404; + + /* Gradient colors */ + --gradient-primary: linear-gradient(90deg, #4a90e2 0%, #357abd 100%); + --gradient-purple: linear-gradient(90deg, #8b5cf6, #a78bfa); + --gradient-scheduled: linear-gradient(to right, #f8f7ff, white); +} + +/* Dark Mode */ +[data-theme="dark"] { + /* Backgrounds */ + --bg-body: #1a1a1a; + --bg-card: #2d2d2d; + --bg-navbar: #1f2937; + --bg-footer: #1f2937; + --bg-input: #2d2d2d; + --bg-hover: rgba(255, 255, 255, 0.1); + --bg-secondary: #252525; + --bg-tertiary: #333333; + + /* Text */ + --text-primary: #e0e0e0; + --text-secondary: #a0a0a0; + --text-muted: #707070; + --text-inverted: #ffffff; + --text-link: #5ba3f5; + + /* Primary colors */ + --color-primary: #5ba3f5; + --color-primary-hover: #4a8ae4; + --color-primary-light: rgba(91, 163, 245, 0.15); + + /* Secondary colors */ + --color-secondary: #6b7280; + --color-secondary-hover: #4b5563; + + /* Semantic colors */ + --color-success: #10b981; + --color-success-bg: #064e3b; + --color-success-light: #10b981; + + --color-warning: #fbbf24; + --color-warning-hover: #f59e0b; + --color-warning-bg: #451a03; + --color-warning-text: #fef3c7; + + --color-error: #f87171; + --color-error-hover: #ef4444; + --color-error-bg: #7f1d1d; + --color-error-text: #fecaca; + + --color-info: #3b82f6; + --color-info-bg: #1e3a8a; + --color-info-text: #93c5fd; + + /* Badge/status colors */ + --badge-pending-bg: #451a03; + --badge-pending-text: #fef3c7; + --badge-running-bg: #1e3a8a; + --badge-running-text: #93c5fd; + --badge-completed-bg: #064e3b; + --badge-completed-text: #6ee7b7; + --badge-failed-bg: #7f1d1d; + --badge-failed-text: #fecaca; + --badge-cancelled-bg: #3b0a4d; + --badge-cancelled-text: #d8b4fe; + --badge-purple-bg: #7c3aed; + --badge-purple-text: #ffffff; + + /* Borders */ + --border-color: #404040; + --border-color-light: #4a4a4a; + + /* Focus */ + --focus-ring: 0 0 0 2px rgba(91, 163, 245, 0.2); + + /* Logout button */ + --color-logout: #f87171; + --color-logout-hover: #ef4444; + --color-logout-bg: rgba(248, 113, 113, 0.15); + + /* Admin link */ + --color-admin-bg: #f59e0b; + --color-admin-hover: #d97706; + --color-admin-text: #000000; + + /* Impersonation banner */ + --impersonation-bg: #451a03; + --impersonation-border: #f59e0b; + --impersonation-text: #fef3c7; + + /* Gradient colors */ + --gradient-primary: linear-gradient(90deg, #5ba3f5 0%, #4a8ae4 100%); + --gradient-purple: linear-gradient(90deg, #7c3aed, #8b5cf6); + --gradient-scheduled: linear-gradient(to right, #2d1f3d, #2d2d2d); +} diff --git a/src/frontend/src/app.html b/src/frontend/src/app.html index f273cc5..06153b9 100644 --- a/src/frontend/src/app.html +++ b/src/frontend/src/app.html @@ -4,6 +4,14 @@ %sveltekit.head% +