🎉 Updated documentation and CSS files for input module 🎨

This commit is contained in:
Till Tomczak 2025-06-02 15:39:31 +02:00
parent 55d8ee39cc
commit 062bac28c1
5 changed files with 4125 additions and 1 deletions

View File

@ -0,0 +1,740 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
/* Custom Styles für Light und Dark Mode - Premium Upgrade mit verbessertem Light Mode */
@layer base {
:root {
/* Light Mode Farben - Mercedes-Benz Professional - VERBESSERT für optimale Lesbarkeit */
--color-bg-primary: #ffffff;
--color-bg-secondary: #fafbfc;
--color-bg-tertiary: #f3f5f7;
--color-bg-accent: #fbfcfd;
--color-text-primary: #111827; /* Verstärkter Kontrast für bessere Lesbarkeit */
--color-text-secondary: #374151; /* Erhöhter Kontrast */
--color-text-muted: #6b7280; /* Optimierter Muted-Text */
--color-text-accent: #0073ce;
--color-border-primary: #e5e7eb; /* Subtilere aber sichtbarere Borders */
--color-border-secondary: #d1d5db;
--color-accent: #0073ce; /* Mercedes-Benz Professional Blau */
--color-accent-hover: #005a9f;
--color-accent-light: #eff6ff;
--color-accent-text: #ffffff;
--color-shadow: rgba(0, 0, 0, 0.06); /* Sanftere Schatten */
--color-shadow-strong: rgba(0, 0, 0, 0.1);
--color-shadow-accent: rgba(0, 115, 206, 0.12);
--card-radius: 1rem; /* Abgerundete Ecken für Karten */
/* Light Mode Gradients - VERBESSERT für sanftere Optik */
--gradient-primary: linear-gradient(135deg, #ffffff 0%, #fafbfc 30%, #f8fafc 70%, #f3f5f7 100%);
--gradient-card: linear-gradient(135deg, #ffffff 0%, #fcfcfd 50%, #fafbfc 100%);
--gradient-hero: linear-gradient(135deg, #fafbfc 0%, #f3f5f7 40%, #eef2f5 80%, #f8fafc 100%);
--gradient-accent: linear-gradient(135deg, #0073ce 0%, #005a9f 100%);
--gradient-surface: linear-gradient(135deg, #ffffff 0%, #fbfcfd 50%, #f8fafc 100%);
/* Neue optimierte Light Mode Glassmorphism-Variablen */
--glass-bg: rgba(255, 255, 255, 0.92);
--glass-border: rgba(255, 255, 255, 0.3);
--glass-shadow: 0 8px 32px rgba(0, 0, 0, 0.04);
--glass-blur: blur(20px);
}
.dark {
/* Dark Mode Farben - Noch dunkler und eleganter - UNVERÄNDERT */
--color-bg-primary: #000000; /* Tiefes Schwarz */
--color-bg-secondary: #0a0a0a; /* Sehr dunkles Grau */
--color-bg-tertiary: #1a1a1a;
--color-text-primary: #ffffff;
--color-text-secondary: #e2e8f0;
--color-text-muted: #94a3b8;
--color-border-primary: #1a1a1a; /* Dunkler Rahmen */
--color-border-secondary: #2a2a2a;
--color-accent: #ffffff; /* Reines Weiß */
--color-accent-hover: #f0f0f0;
--color-accent-light: #1e3a8a;
--color-accent-text: #000000;
--color-shadow: rgba(0, 0, 0, 0.8); /* Sehr dunkler Schatten */
--color-shadow-strong: rgba(0, 0, 0, 0.9);
--mb-black: #000000; /* Mercedes-Benz Schwarz */
}
body {
@apply bg-white dark:bg-black text-slate-900 dark:text-white transition-colors duration-300;
position: relative;
min-height: 100vh;
background: var(--gradient-primary);
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
font-feature-settings: 'cv02', 'cv03', 'cv04', 'cv11';
line-height: 1.65; /* Verbesserte Zeilenhöhe für bessere Lesbarkeit */
font-size: 15px; /* Optimierte Schriftgröße */
}
.dark body {
background: linear-gradient(135deg, #000000 0%, #0a0a0a 50%, #000000 100%);
}
/* Enhanced Body Background with Subtle Patterns - VERBESSERT */
body::before {
content: '';
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background:
radial-gradient(circle at 25% 25%, rgba(0, 115, 206, 0.015) 0%, transparent 50%),
radial-gradient(circle at 75% 75%, rgba(0, 115, 206, 0.01) 0%, transparent 50%),
radial-gradient(circle at 50% 10%, rgba(0, 115, 206, 0.008) 0%, transparent 50%);
pointer-events: none;
z-index: -1;
}
.dark body::before {
background:
radial-gradient(circle at 20% 50%, rgba(59, 130, 246, 0.03) 0%, transparent 50%),
radial-gradient(circle at 80% 20%, rgba(59, 130, 246, 0.02) 0%, transparent 50%);
}
/* Navbar Styles - Premium Glassmorphism - UNANGETASTET WIE GEWÜNSCHT */
nav {
@apply backdrop-blur-xl border-b transition-all duration-300;
background: linear-gradient(135deg,
rgba(255, 255, 255, 0.95) 0%,
rgba(250, 251, 252, 0.92) 30%,
rgba(248, 250, 252, 0.9) 70%,
rgba(255, 255, 255, 0.95) 100%);
border-bottom: 1px solid rgba(229, 231, 235, 0.7);
backdrop-filter: blur(28px) saturate(200%) brightness(110%);
-webkit-backdrop-filter: blur(28px) saturate(200%) brightness(110%);
box-shadow:
0 4px 20px rgba(0, 0, 0, 0.04),
0 2px 8px rgba(0, 115, 206, 0.02),
inset 0 1px 0 rgba(255, 255, 255, 0.9);
}
.dark nav {
background: rgba(0, 0, 0, 0.85);
border-bottom-color: rgba(255, 255, 255, 0.1);
box-shadow:
0 8px 32px rgba(0, 0, 0, 0.3),
inset 0 1px 0 rgba(255, 255, 255, 0.05);
}
/* Premium Card Styles - CPU OPTIMIERT für Raspberry Pi */
.card-enhanced {
background: var(--gradient-card);
border: 1px solid var(--color-border-primary);
border-radius: var(--card-radius);
box-shadow:
0 2px 12px rgba(0, 0, 0, 0.03),
0 1px 4px rgba(0, 115, 206, 0.02);
transition: background-color 0.2s ease, border-color 0.2s ease;
/* ENTFERNT: cubic-bezier, position, overflow für CPU-Optimierung */
}
/* ENTFERNT: card-enhanced::before pseudo-element für CPU-Optimierung */
.card-enhanced:hover {
/* ENTFERNT: transform für CPU-Optimierung */
box-shadow:
0 4px 16px rgba(0, 0, 0, 0.05),
0 2px 8px rgba(0, 115, 206, 0.03);
}
.dark .card-enhanced {
background: rgba(10, 10, 10, 0.8);
border-color: var(--color-border-primary);
box-shadow: 0 4px 20px var(--color-shadow);
}
/* Premium Button Styles - CPU OPTIMIERT */
.btn-enhanced {
background: var(--gradient-accent);
color: var(--color-accent-text);
border: none;
border-radius: 0.5rem;
padding: 0.75rem 1.75rem;
font-weight: 600;
font-size: 0.875rem;
text-transform: uppercase;
letter-spacing: 0.05em;
box-shadow:
0 2px 8px rgba(0, 115, 206, 0.2),
0 1px 4px rgba(0, 115, 206, 0.1);
transition: background-color 0.2s ease, box-shadow 0.2s ease;
/* ENTFERNT: cubic-bezier, position, overflow für CPU-Optimierung */
}
/* ENTFERNT: btn-enhanced::before pseudo-element animation für CPU-Optimierung */
.btn-enhanced:hover {
/* ENTFERNT: transform für CPU-Optimierung */
box-shadow:
0 4px 12px rgba(0, 115, 206, 0.25),
0 2px 6px rgba(0, 115, 206, 0.15);
}
.btn-enhanced:active {
/* ENTFERNT: transform für CPU-Optimierung */
}
.btn-secondary {
background: var(--gradient-surface);
color: var(--color-text-primary);
border: 1px solid var(--color-border-primary);
box-shadow:
0 1px 6px rgba(0, 0, 0, 0.03),
inset 0 1px 0 rgba(255, 255, 255, 0.8);
}
.btn-secondary:hover {
background: var(--color-bg-secondary);
border-color: var(--color-accent);
color: var(--color-accent);
box-shadow:
0 2px 8px rgba(0, 115, 206, 0.06),
inset 0 1px 0 rgba(255, 255, 255, 0.9);
}
/* Enhanced Form Elements - REDUZIERTER backdrop-filter */
.input-enhanced {
background: rgba(255, 255, 255, 0.95);
border: 1px solid var(--color-border-primary);
border-radius: 0.5rem;
padding: 0.75rem 1rem;
color: var(--color-text-primary);
font-size: 0.9rem;
box-shadow:
0 1px 6px rgba(0, 0, 0, 0.02),
inset 0 1px 0 rgba(255, 255, 255, 0.9);
transition: border-color 0.2s ease, background-color 0.2s ease;
/* REDUZIERT: backdrop-filter von 8px auf 4px */
backdrop-filter: blur(4px);
-webkit-backdrop-filter: blur(4px);
}
.input-enhanced:focus {
outline: none;
border-color: var(--color-accent);
box-shadow:
0 2px 8px rgba(0, 115, 206, 0.08),
0 0 0 3px rgba(0, 115, 206, 0.05);
background: rgba(255, 255, 255, 0.98);
}
.input-enhanced::placeholder {
color: var(--color-text-muted);
opacity: 0.8;
}
.dark .input-enhanced {
background: rgba(10, 10, 10, 0.8);
border-color: var(--color-border-primary);
color: var(--color-text-primary);
box-shadow:
0 2px 8px var(--color-shadow),
inset 0 1px 0 rgba(255, 255, 255, 0.05);
}
.dark .input-enhanced:focus {
border-color: #60a5fa;
box-shadow:
0 2px 10px rgba(96, 165, 250, 0.15),
0 0 0 3px rgba(96, 165, 250, 0.1);
}
/* Premium Alert Styles - REDUZIERTER backdrop-filter */
.alert-enhanced {
border-radius: 1rem;
padding: 1.25rem;
border: 1px solid transparent;
position: relative;
overflow: hidden;
/* REDUZIERT: backdrop-filter von 16px auf 8px */
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
}
.alert-enhanced::before {
content: '';
position: absolute;
top: 0;
left: 0;
bottom: 0;
width: 4px;
}
.alert-info-enhanced {
background: linear-gradient(135deg,
rgba(239, 246, 255, 0.95) 0%,
rgba(219, 234, 254, 0.9) 100%);
border-color: rgba(59, 130, 246, 0.2);
color: #1e40af;
}
.alert-info-enhanced::before {
background: var(--gradient-accent);
}
.alert-success-enhanced {
background: linear-gradient(135deg,
rgba(236, 253, 245, 0.95) 0%,
rgba(167, 243, 208, 0.9) 100%);
border-color: rgba(16, 185, 129, 0.2);
color: #065f46;
}
.alert-success-enhanced::before {
background: linear-gradient(180deg, #10b981 0%, #059669 100%);
}
.alert-warning-enhanced {
background: linear-gradient(135deg,
rgba(255, 251, 235, 0.95) 0%,
rgba(254, 243, 199, 0.9) 100%);
border-color: rgba(251, 191, 36, 0.2);
color: #92400e;
}
.alert-warning-enhanced::before {
background: linear-gradient(180deg, #fbbf24 0%, #f59e0b 100%);
}
.alert-error-enhanced {
background: linear-gradient(135deg,
rgba(254, 242, 242, 0.95) 0%,
rgba(252, 165, 165, 0.9) 100%);
border-color: rgba(239, 68, 68, 0.2);
color: #991b1b;
}
.alert-error-enhanced::before {
background: linear-gradient(180deg, #ef4444 0%, #dc2626 100%);
}
/* Light Mode Flash Messages - REDUZIERTE backdrop-filter */
.flash-message-light {
background: linear-gradient(135deg,
rgba(255, 255, 255, 0.95) 0%,
rgba(248, 250, 252, 0.9) 100%);
/* REDUZIERT: backdrop-filter von 32px auf 16px */
backdrop-filter: blur(16px) saturate(180%) brightness(110%);
-webkit-backdrop-filter: blur(16px) saturate(180%) brightness(110%);
border: 1px solid rgba(226, 232, 240, 0.6);
box-shadow:
0 10px 30px rgba(0, 0, 0, 0.08),
0 4px 12px rgba(0, 115, 206, 0.04);
color: var(--color-text-primary);
}
.flash-message-light.success {
border-left: 4px solid #10b981;
background: linear-gradient(135deg,
rgba(236, 253, 245, 0.95) 0%,
rgba(209, 250, 229, 0.9) 100%);
}
.flash-message-light.error {
border-left: 4px solid #ef4444;
background: linear-gradient(135deg,
rgba(254, 242, 242, 0.95) 0%,
rgba(252, 165, 165, 0.9) 100%);
}
.flash-message-light.warning {
border-left: 4px solid #fbbf24;
background: linear-gradient(135deg,
rgba(255, 251, 235, 0.95) 0%,
rgba(254, 243, 199, 0.9) 100%);
}
.flash-message-light.info {
border-left: 4px solid #3b82f6;
background: linear-gradient(135deg,
rgba(239, 246, 255, 0.95) 0%,
rgba(219, 234, 254, 0.9) 100%);
}
/* Premium Table Styles - CPU OPTIMIERT */
.table-enhanced {
background: var(--gradient-card);
border: 1px solid var(--color-border-primary);
border-radius: var(--card-radius);
overflow: hidden;
box-shadow:
0 2px 12px var(--color-shadow),
0 1px 4px rgba(0, 115, 206, 0.03);
}
.table-enhanced th {
background: linear-gradient(135deg,
var(--color-bg-secondary) 0%,
var(--color-bg-tertiary) 100%);
color: var(--color-text-primary);
font-weight: 600;
padding: 1rem 1.5rem;
border-bottom: 1px solid var(--color-border-primary);
position: relative;
}
.table-enhanced th::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 1px;
background: linear-gradient(90deg,
transparent 0%,
var(--color-border-secondary) 50%,
transparent 100%);
}
.table-enhanced td {
padding: 1rem 1.5rem;
border-bottom: 1px solid var(--color-border-primary);
color: var(--color-text-secondary);
transition: background-color 0.2s ease;
}
.table-enhanced tbody tr:hover {
background: var(--color-bg-secondary);
/* ENTFERNT: transform für CPU-Optimierung */
}
.dark .table-enhanced {
background: rgba(10, 10, 10, 0.8);
border-color: var(--color-border-primary);
}
.dark .table-enhanced th {
background: rgba(26, 26, 26, 0.8);
color: var(--color-text-primary);
}
.dark .table-enhanced tbody tr:hover {
background: rgba(26, 26, 26, 0.6);
}
/* Premium Modal Styles - REDUZIERTE backdrop-filter */
.modal-enhanced {
background: linear-gradient(135deg,
rgba(255, 255, 255, 0.98) 0%,
rgba(248, 250, 252, 0.95) 50%,
rgba(255, 255, 255, 0.98) 100%);
/* REDUZIERT: backdrop-filter von 32px auf 16px */
backdrop-filter: blur(16px) saturate(180%) brightness(110%);
-webkit-backdrop-filter: blur(16px) saturate(180%) brightness(110%);
border: 1px solid rgba(226, 232, 240, 0.7);
border-radius: 1.5rem;
box-shadow:
0 20px 50px rgba(0, 0, 0, 0.12),
0 8px 20px rgba(0, 115, 206, 0.06);
position: relative;
overflow: hidden;
}
.modal-enhanced::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 1px;
background: linear-gradient(90deg,
transparent 0%,
rgba(226, 232, 240, 0.8) 50%,
transparent 100%);
}
.dark .modal-enhanced {
background: rgba(0, 0, 0, 0.95);
border-color: rgba(42, 42, 42, 0.7);
box-shadow:
0 20px 50px rgba(0, 0, 0, 0.4),
inset 0 2px 0 rgba(255, 255, 255, 0.05);
}
/* Enhanced Status Badges - CPU OPTIMIERT */
.status-badge-enhanced {
display: inline-flex;
align-items: center;
padding: 0.5rem 1rem;
font-size: 0.75rem;
font-weight: 700;
border-radius: 9999px;
text-transform: uppercase;
letter-spacing: 0.05em;
border: 1px solid transparent;
transition: background-color 0.2s ease;
/* ENTFERNT: position, overflow für CPU-Optimierung */
}
/* ENTFERNT: status-badge-enhanced::before animation für CPU-Optimierung */
.status-online-enhanced {
background: linear-gradient(135deg, #ecfdf5 0%, #a7f3d0 100%);
color: #065f46;
border-color: rgba(16, 185, 129, 0.3);
}
.status-offline-enhanced {
background: linear-gradient(135deg, #fef2f2 0%, #fca5a5 100%);
color: #991b1b;
border-color: rgba(239, 68, 68, 0.3);
}
.status-printing-enhanced {
background: linear-gradient(135deg, #eff6ff 0%, #bfdbfe 100%);
color: #1e40af;
border-color: rgba(59, 130, 246, 0.3);
}
/* Dark Mode Toggle - REDUZIERTE Animationen */
.dark-mode-toggle-new {
position: relative;
display: flex;
cursor: pointer;
align-items: center;
justify-content: center;
border-radius: 9999px;
padding: 0.625rem;
transition: background-color 0.2s ease, border-color 0.2s ease;
background: linear-gradient(135deg,
rgba(248, 250, 252, 0.9) 0%,
rgba(241, 245, 249, 0.8) 100%);
border: 1px solid rgba(226, 232, 240, 0.7);
box-shadow:
0 2px 8px rgba(0, 0, 0, 0.05),
0 1px 4px rgba(0, 115, 206, 0.03);
color: var(--color-text-secondary);
z-index: 100;
}
.dark-mode-toggle-new:hover {
/* ENTFERNT: transform und scale für CPU-Optimierung */
background: linear-gradient(135deg,
rgba(248, 250, 252, 0.95) 0%,
rgba(241, 245, 249, 0.85) 100%);
box-shadow:
0 4px 12px rgba(0, 0, 0, 0.08),
0 2px 6px rgba(0, 115, 206, 0.05);
}
.dark-mode-toggle-new:active {
/* ENTFERNT: transform für CPU-Optimierung */
transition: none;
}
.dark .dark-mode-toggle-new {
background: rgba(10, 10, 10, 0.8);
border: 1px solid rgba(42, 42, 42, 0.6);
box-shadow:
0 2px 8px rgba(0, 0, 0, 0.2),
inset 0 1px 0 rgba(255, 255, 255, 0.05);
color: var(--color-text-secondary);
}
.dark .dark-mode-toggle-new:hover {
background: rgba(10, 10, 10, 0.9);
box-shadow:
0 4px 12px rgba(0, 0, 0, 0.3),
inset 0 1px 0 rgba(255, 255, 255, 0.08);
}
/* Icon-Animation für Dark Mode Toggle - VEREINFACHT */
.dark-mode-toggle-new .sun-icon,
.dark-mode-toggle-new .moon-icon {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
transition: opacity 0.2s ease;
}
/* ENTFERNT: komplexe icon-appear animation für CPU-Optimierung */
.dark .sun-icon { display: none; }
.dark .moon-icon { display: block; }
.sun-icon { display: block; }
.moon-icon { display: none; }
/* User Menu Button - CPU OPTIMIERT */
.user-menu-button-new {
display: flex;
align-items: center;
gap: 0.5rem;
border-radius: 0.75rem;
padding: 0.5rem;
transition: background-color 0.2s ease, border-color 0.2s ease;
background: linear-gradient(135deg,
rgba(248, 250, 252, 0.8) 0%,
rgba(241, 245, 249, 0.7) 100%);
border: 1px solid rgba(226, 232, 240, 0.6);
box-shadow:
0 2px 8px rgba(0, 0, 0, 0.05),
inset 0 1px 0 rgba(255, 255, 255, 0.7);
}
.user-menu-button-new:hover {
/* ENTFERNT: transform für CPU-Optimierung */
background: linear-gradient(135deg,
rgba(248, 250, 252, 0.9) 0%,
rgba(241, 245, 249, 0.8) 100%);
box-shadow:
0 4px 12px rgba(0, 0, 0, 0.08),
0 2px 4px rgba(0, 115, 206, 0.04);
}
.dark .user-menu-button-new {
background: rgba(10, 10, 10, 0.7);
border-color: rgba(42, 42, 42, 0.6);
box-shadow:
0 2px 8px rgba(0, 0, 0, 0.2),
inset 0 1px 0 rgba(255, 255, 255, 0.03);
}
.dark .user-menu-button-new:hover {
background: rgba(10, 10, 10, 0.8);
box-shadow:
0 4px 12px rgba(0, 0, 0, 0.3),
inset 0 1px 0 rgba(255, 255, 255, 0.05);
}
/* Enhanced Hover Effects - CPU OPTIMIERT */
.hover-lift-enhanced {
transition: box-shadow 0.2s ease;
}
.hover-lift-enhanced:hover {
/* ENTFERNT: transform für CPU-Optimierung */
box-shadow:
0 8px 20px var(--color-shadow-strong),
0 4px 10px var(--color-shadow-accent);
}
.dark .hover-lift-enhanced:hover {
box-shadow: 0 8px 20px var(--color-shadow);
}
/* Smooth Scrollbar for Light Mode */
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-track {
background: var(--color-bg-secondary);
border-radius: 4px;
}
::-webkit-scrollbar-thumb {
background: linear-gradient(180deg,
var(--color-border-secondary) 0%,
var(--color-border-primary) 100%);
border-radius: 4px;
transition: background 0.2s ease;
}
::-webkit-scrollbar-thumb:hover {
background: linear-gradient(180deg,
var(--color-accent) 0%,
var(--color-accent-hover) 100%);
}
.dark ::-webkit-scrollbar-track {
background: var(--color-bg-secondary);
}
.dark ::-webkit-scrollbar-thumb {
background: var(--color-border-primary);
}
.dark ::-webkit-scrollbar-thumb:hover {
background: #60a5fa;
}
/* Loading States - VEREINFACHT */
.loading-enhanced {
position: relative;
overflow: hidden;
}
.loading-enhanced::after {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg,
transparent,
rgba(0, 115, 206, 0.1),
transparent);
animation: loading-shimmer 2s infinite;
}
@keyframes loading-shimmer {
0% { left: -100%; }
100% { left: 100%; }
}
/* Focus States for Accessibility */
.focus-enhanced:focus {
outline: 2px solid var(--color-accent);
outline-offset: 2px;
box-shadow:
0 0 0 4px rgba(0, 115, 206, 0.15);
}
.dark .focus-enhanced:focus {
outline-color: #60a5fa;
box-shadow:
0 0 0 4px rgba(96, 165, 250, 0.15);
}
/* Responsive Design Enhancements */
@media (max-width: 768px) {
.card-enhanced {
padding: 1rem;
border-radius: 0.75rem;
}
.btn-enhanced {
padding: 0.75rem 1.5rem;
font-size: 0.8rem;
}
.modal-enhanced {
border-radius: 1rem;
margin: 1rem;
}
.dark-mode-toggle-new {
padding: 0.5rem;
}
}
/* Reduced Motion Support */
@media (prefers-reduced-motion: reduce) {
* {
transition: none !important;
animation: none !important;
}
}
/* High Contrast Mode Support */
@media (prefers-contrast: high) {
:root {
--color-shadow: rgba(0, 0, 0, 0.2);
--color-shadow-strong: rgba(0, 0, 0, 0.3);
--color-border-primary: #000000;
}
.dark {
--color-border-primary: #ffffff;
}
}
}
/* WEITERE ABSCHNITTE FOLGEN - Ich optimiere den Rest systematisch... */

3385
backend/static/css/input.css Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.