🔧 Major System Refactoring & UI Enhancements
- Dark-Mode JavaScript Optimierungen für bessere Performance - Base Template erweitert mit Enhanced UI Components - Dashboard Template modernisiert mit neuen Card-Layouts - Hardware Integration massiv konsolidiert (1771 Zeilen reduziert) - Drucker Steuerung Blueprint hinzugefügt - Legacy Hardware Integration Files bereinigt - System-Architektur vereinfacht und performanter Major Changes: - -2001 Zeilen Code durch Konsolidierung - +451 Zeilen neue optimierte Implementierung - Vollständige Template-System Überarbeitung 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -24,42 +24,58 @@
|
||||
<!-- Unified Dark/Light Mode System -->
|
||||
<link href="{{ url_for('static', filename='css/dark-light-unified.css') }}" rel="stylesheet">
|
||||
|
||||
<!-- Modern Styles with Glassmorphism -->
|
||||
<!-- Enhanced Theme-Aware Styles -->
|
||||
<style>
|
||||
/* Root Variables */
|
||||
:root {
|
||||
--glass-bg: rgba(255, 255, 255, 0.7);
|
||||
--glass-border: rgba(255, 255, 255, 0.2);
|
||||
--shadow-color: rgba(0, 0, 0, 0.1);
|
||||
--text-primary: #1e293b;
|
||||
--text-secondary: #64748b;
|
||||
/* Base Layout & Performance */
|
||||
.navbar-sticky {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 50;
|
||||
}
|
||||
|
||||
.dark {
|
||||
--glass-bg: rgba(30, 41, 59, 0.7);
|
||||
--glass-border: rgba(255, 255, 255, 0.1);
|
||||
--shadow-color: rgba(0, 0, 0, 0.3);
|
||||
--text-primary: #f1f5f9;
|
||||
--text-secondary: #94a3b8;
|
||||
.main-offset {
|
||||
padding-top: 3.5rem;
|
||||
}
|
||||
|
||||
/* Glassmorphism Base */
|
||||
/* Glassmorphism Base (uses unified CSS variables) */
|
||||
.glass {
|
||||
background: var(--glass-bg);
|
||||
backdrop-filter: blur(12px);
|
||||
-webkit-backdrop-filter: blur(12px);
|
||||
backdrop-filter: var(--glass-blur);
|
||||
-webkit-backdrop-filter: var(--glass-blur);
|
||||
border: 1px solid var(--glass-border);
|
||||
box-shadow: 0 8px 32px var(--shadow-color);
|
||||
border-radius: 20px;
|
||||
box-shadow: var(--glass-shadow);
|
||||
border-radius: 16px;
|
||||
padding: 0.75rem 1.5rem;
|
||||
margin: 0.5rem;
|
||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
}
|
||||
|
||||
/* Raspberry Pi Performance Optimization */
|
||||
/* Mobile menu animations */
|
||||
.mobile-menu {
|
||||
transform: translateX(-100%);
|
||||
transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
}
|
||||
|
||||
.mobile-menu.active {
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
/* Enhanced Active nav styling */
|
||||
.nav-active {
|
||||
background: var(--active-bg);
|
||||
color: var(--text-accent);
|
||||
font-weight: 600;
|
||||
border-radius: 8px;
|
||||
box-shadow: var(--shadow-sm);
|
||||
}
|
||||
|
||||
/* Performance optimizations */
|
||||
@media (max-width: 768px), (prefers-reduced-motion: reduce) {
|
||||
.glass {
|
||||
backdrop-filter: none;
|
||||
-webkit-backdrop-filter: none;
|
||||
backdrop-filter: none !important;
|
||||
-webkit-backdrop-filter: none !important;
|
||||
background: var(--bg-card);
|
||||
}
|
||||
|
||||
@ -69,77 +85,12 @@
|
||||
}
|
||||
}
|
||||
|
||||
/* Sticky Navigation */
|
||||
.navbar-sticky {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 50;
|
||||
/* Theme transition optimization */
|
||||
.disable-transitions * {
|
||||
transition: none !important;
|
||||
}
|
||||
|
||||
/* Main content offset for sticky navbar */
|
||||
.main-offset {
|
||||
padding-top: 3rem;
|
||||
}
|
||||
|
||||
/* Smooth transitions */
|
||||
* {
|
||||
transition-property: background-color, border-color, color, fill, stroke;
|
||||
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
||||
transition-duration: 150ms;
|
||||
}
|
||||
|
||||
/* Custom scrollbar */
|
||||
::-webkit-scrollbar {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.dark ::-webkit-scrollbar-thumb {
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
}
|
||||
|
||||
/* Mobile menu animations */
|
||||
.mobile-menu {
|
||||
transform: translateX(-100%);
|
||||
transition: transform 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
.mobile-menu.active {
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
/* Active nav item */
|
||||
.nav-active {
|
||||
background: rgba(59, 130, 246, 0.1);
|
||||
border-left: 3px solid #3b82f6;
|
||||
}
|
||||
|
||||
.dark .nav-active {
|
||||
background: rgba(59, 130, 246, 0.2);
|
||||
}
|
||||
|
||||
/* Hover effects */
|
||||
.hover-lift {
|
||||
transition: transform 0.2s ease, box-shadow 0.2s ease;
|
||||
}
|
||||
|
||||
.hover-lift:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 12px 40px var(--shadow-color);
|
||||
}
|
||||
|
||||
/* Loading animation */
|
||||
/* Loading states */
|
||||
@keyframes pulse {
|
||||
0%, 100% { opacity: 1; }
|
||||
50% { opacity: 0.5; }
|
||||
@ -148,6 +99,49 @@
|
||||
.animate-pulse {
|
||||
animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
||||
}
|
||||
|
||||
/* Flash message enhancements */
|
||||
.flash-message {
|
||||
background: var(--bg-card);
|
||||
border: 1px solid var(--border-primary);
|
||||
color: var(--text-primary);
|
||||
box-shadow: var(--shadow-lg);
|
||||
backdrop-filter: blur(12px);
|
||||
-webkit-backdrop-filter: blur(12px);
|
||||
}
|
||||
|
||||
/* Notification improvements */
|
||||
.notification-badge {
|
||||
background: var(--text-error);
|
||||
color: white;
|
||||
border: 2px solid var(--bg-primary);
|
||||
}
|
||||
|
||||
/* Logo adaptive styling */
|
||||
.logo-adaptive {
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.dark .logo-adaptive {
|
||||
filter: brightness(1.1) contrast(1.05);
|
||||
}
|
||||
|
||||
/* Enhanced focus states */
|
||||
.focus-ring:focus {
|
||||
outline: none;
|
||||
box-shadow: var(--focus-ring);
|
||||
}
|
||||
|
||||
/* Button group styling */
|
||||
.btn-group {
|
||||
display: flex;
|
||||
gap: 0.5rem;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.btn-group .btn {
|
||||
margin: 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- CSRF-Token-Fix (Kritisch - muss vor anderen Scripts geladen werden) -->
|
||||
|
Reference in New Issue
Block a user