🎉 Improved CSS Optimization in Backend Documentation & Styles 🎨

This commit is contained in:
2025-06-02 07:02:29 +02:00
parent 0b04a8abd9
commit a08fe8fec4
4 changed files with 315 additions and 254 deletions

View File

@ -1,208 +1,182 @@
/* Vereinfachte Glassmorphism-Effekte für MYP Application */
/* Raspberry Pi optimierte Glassmorphism-Ersatz Effekte für MYP Application */
/* ===== BASIS GLASS EFFEKTE ===== */
/* ===== VEREINFACHTE BASIS EFFEKTE (ohne backdrop-filter) ===== */
.glass-base {
background: rgba(255, 255, 255, 0.85);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.3);
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
transition: all 0.2s ease;
background: rgba(255, 255, 255, 0.95);
border: 1px solid rgba(229, 231, 235, 0.6);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}
.glass-strong {
background: rgba(255, 255, 255, 0.9);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
border: 1px solid rgba(255, 255, 255, 0.4);
box-shadow: 0 12px 24px rgba(0, 0, 0, 0.12);
}
.glass-subtle {
background: rgba(255, 255, 255, 0.8);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
border: 1px solid rgba(255, 255, 255, 0.2);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
/* ===== DARK MODE GLASS ===== */
.dark .glass-base {
background: rgba(15, 23, 42, 0.8);
border: 1px solid rgba(255, 255, 255, 0.1);
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
}
.dark .glass-strong {
background: rgba(30, 41, 59, 0.85);
border: 1px solid rgba(255, 255, 255, 0.15);
box-shadow: 0 12px 24px rgba(0, 0, 0, 0.4);
}
.dark .glass-subtle {
background: rgba(15, 23, 42, 0.7);
border: 1px solid rgba(255, 255, 255, 0.08);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}
/* ===== GLASS KARTEN ===== */
.glass-card {
background: rgba(255, 255, 255, 0.9);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
border: 1px solid rgba(229, 231, 235, 0.5);
border-radius: 12px;
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08);
padding: 1.5rem;
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.glass-card:hover {
transform: translateY(-1px);
box-shadow: 0 12px 20px rgba(0, 0, 0, 0.12);
}
.dark .glass-card {
background: rgba(30, 41, 59, 0.85);
border: 1px solid rgba(100, 116, 139, 0.3);
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.25);
}
.dark .glass-card:hover {
box-shadow: 0 12px 20px rgba(0, 0, 0, 0.35);
}
/* ===== GLASS NAVIGATION ===== */
.glass-nav {
background: rgba(255, 255, 255, 0.9);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
border: 1px solid rgba(226, 232, 240, 0.4);
border-bottom: 1px solid rgba(203, 213, 225, 0.5);
background: rgba(255, 255, 255, 0.98);
border: 1px solid rgba(229, 231, 235, 0.8);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}
.dark .glass-nav {
background: rgba(15, 23, 42, 0.85);
border: 1px solid rgba(51, 65, 85, 0.5);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
.glass-subtle {
background: rgba(255, 255, 255, 0.92);
border: 1px solid rgba(229, 231, 235, 0.4);
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.03);
}
/* ===== GLASS BUTTONS ===== */
/* ===== DARK MODE VEREINFACHT ===== */
.dark .glass-base {
background: rgba(15, 23, 42, 0.95);
border: 1px solid rgba(51, 65, 85, 0.6);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
.dark .glass-strong {
background: rgba(30, 41, 59, 0.98);
border: 1px solid rgba(71, 85, 105, 0.8);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}
.dark .glass-subtle {
background: rgba(15, 23, 42, 0.9);
border: 1px solid rgba(51, 65, 85, 0.4);
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);
}
/* ===== EINFACHE KARTEN (ohne Hover-Transforms) ===== */
.glass-card {
background: rgba(255, 255, 255, 0.98);
border: 1px solid rgba(229, 231, 235, 0.6);
border-radius: 12px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
padding: 1.5rem;
}
.glass-card:hover {
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
.dark .glass-card {
background: rgba(30, 41, 59, 0.95);
border: 1px solid rgba(71, 85, 105, 0.6);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
.dark .glass-card:hover {
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}
/* ===== VEREINFACHTE NAVIGATION ===== */
.glass-nav {
background: rgba(255, 255, 255, 0.98);
border: 1px solid rgba(226, 232, 240, 0.6);
border-bottom: 1px solid rgba(203, 213, 225, 0.8);
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.03);
}
.dark .glass-nav {
background: rgba(15, 23, 42, 0.95);
border: 1px solid rgba(51, 65, 85, 0.6);
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);
}
/* ===== EINFACHE BUTTONS (ohne Transform) ===== */
.glass-btn {
background: rgba(255, 255, 255, 0.8);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
border: 1px solid rgba(226, 232, 240, 0.5);
background: rgba(255, 255, 255, 0.95);
border: 1px solid rgba(226, 232, 240, 0.6);
border-radius: 8px;
padding: 0.75rem 1.5rem;
color: #0f172a;
font-weight: 600;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
transition: transform 0.2s ease, background 0.2s ease;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.03);
}
.glass-btn:hover {
transform: translateY(-1px);
background: rgba(255, 255, 255, 0.9);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
background: rgba(255, 255, 255, 1);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
.glass-btn-primary {
background: rgba(0, 115, 206, 0.9);
background: rgba(0, 115, 206, 0.95);
color: white;
box-shadow: 0 2px 8px rgba(0, 115, 206, 0.2);
box-shadow: 0 1px 4px rgba(0, 115, 206, 0.2);
}
.glass-btn-primary:hover {
background: rgba(0, 115, 206, 0.95);
box-shadow: 0 4px 12px rgba(0, 115, 206, 0.3);
background: rgba(0, 115, 206, 1);
box-shadow: 0 2px 8px rgba(0, 115, 206, 0.3);
}
.dark .glass-btn {
background: rgba(30, 41, 59, 0.8);
background: rgba(30, 41, 59, 0.95);
color: #e2e8f0;
border: 1px solid rgba(100, 116, 139, 0.5);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
border: 1px solid rgba(100, 116, 139, 0.6);
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
}
.dark .glass-btn:hover {
background: rgba(30, 41, 59, 0.9);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
background: rgba(30, 41, 59, 1);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
/* ===== GLASS MODALS ===== */
/* ===== EINFACHE MODALS ===== */
.glass-modal {
background: rgba(255, 255, 255, 0.95);
backdrop-filter: blur(16px);
-webkit-backdrop-filter: blur(16px);
border: 1px solid rgba(226, 232, 240, 0.6);
background: rgba(255, 255, 255, 0.98);
border: 1px solid rgba(226, 232, 240, 0.8);
border-radius: 16px;
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.12);
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}
.dark .glass-modal {
background: rgba(15, 23, 42, 0.95);
border: 1px solid rgba(51, 65, 85, 0.6);
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
background: rgba(15, 23, 42, 0.98);
border: 1px solid rgba(51, 65, 85, 0.8);
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
}
/* ===== GLASS FORM ELEMENTE ===== */
/* ===== VEREINFACHTE FORM ELEMENTE ===== */
.glass-input {
background: rgba(255, 255, 255, 0.8);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
border: 1px solid rgba(226, 232, 240, 0.5);
background: rgba(255, 255, 255, 0.95);
border: 1px solid rgba(226, 232, 240, 0.6);
border-radius: 6px;
padding: 0.75rem 1rem;
color: #0f172a;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);
transition: border-color 0.2s ease, box-shadow 0.2s ease;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.02);
}
.glass-input:focus {
outline: none;
border-color: rgba(0, 115, 206, 0.5);
box-shadow: 0 2px 8px rgba(0, 115, 206, 0.1);
border-color: rgba(0, 115, 206, 0.6);
box-shadow: 0 0 0 2px rgba(0, 115, 206, 0.1);
}
.dark .glass-input {
background: rgba(30, 41, 59, 0.8);
border: 1px solid rgba(100, 116, 139, 0.5);
background: rgba(30, 41, 59, 0.95);
border: 1px solid rgba(100, 116, 139, 0.6);
color: #e2e8f0;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}
.dark .glass-input:focus {
border-color: rgba(59, 130, 246, 0.5);
box-shadow: 0 2px 8px rgba(59, 130, 246, 0.15);
border-color: rgba(59, 130, 246, 0.6);
box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1);
}
/* ===== GLASS DROPDOWN ===== */
/* ===== EINFACHE DROPDOWN ===== */
.glass-dropdown {
background: rgba(255, 255, 255, 0.9);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
border: 1px solid rgba(255, 255, 255, 0.3);
background: rgba(255, 255, 255, 0.98);
border: 1px solid rgba(226, 232, 240, 0.6);
border-radius: 8px;
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
.dark .glass-dropdown {
background: rgba(15, 23, 42, 0.9);
border: 1px solid rgba(255, 255, 255, 0.1);
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
background: rgba(15, 23, 42, 0.98);
border: 1px solid rgba(51, 65, 85, 0.6);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
}
/* ===== UTILITY CLASSES ===== */
.glass-overlay {
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
background: rgba(255, 255, 255, 0.8);
}
.dark .glass-overlay {
background: rgba(0, 0, 0, 0.2);
background: rgba(0, 0, 0, 0.8);
}
/* ===== RESPONSIVE ANPASSUNGEN ===== */
@ -215,41 +189,11 @@
.glass-modal {
border-radius: 12px;
}
.glass-base,
.glass-strong,
.glass-subtle {
backdrop-filter: blur(6px);
-webkit-backdrop-filter: blur(6px);
}
}
/* ===== REDUZIERTE BEWEGUNG ===== */
@media (prefers-reduced-motion: reduce) {
.glass-card,
.glass-btn,
.glass-input {
* {
transition: none !important;
}
}
/* ===== HOHER KONTRAST MODUS ===== */
@media (prefers-contrast: high) {
.glass-base,
.glass-strong,
.glass-card {
border-width: 2px;
backdrop-filter: blur(4px);
-webkit-backdrop-filter: blur(4px);
}
}
/* ===== PERFORMANCE OPTIMIERUNGEN ===== */
.glass-base,
.glass-strong,
.glass-subtle,
.glass-card,
.glass-btn,
.glass-modal {
will-change: transform;
}

View File

@ -1,9 +1,9 @@
/**
* MYP Platform - Optimierte einfache Animationen
* Reduzierte, performante Animationen für bessere User Experience
* MYP Platform - Raspberry Pi optimierte minimale Animationen
* Nur absolut notwendige, performance-freundliche Animationen
*/
/* ===== EINFACHE FADE-IN ANIMATION ===== */
/* ===== NUR OPACITY-FADE (GPU-freundlich) ===== */
@keyframes fade-in {
from {
opacity: 0;
@ -14,69 +14,21 @@
}
.animate-fade-in {
animation: fade-in 0.2s ease-out;
animation: fade-in 0.15s ease-out;
}
/* ===== EINFACHE SLIDE-UP ANIMATION ===== */
@keyframes slide-up {
from {
opacity: 0;
transform: translateY(15px);
}
to {
opacity: 1;
transform: translateY(0);
}
/* ===== REDUZIERTE PROGRESS BAR (ohne Transform) ===== */
.progress-fill {
transition: width 0.8s ease-out;
}
.animate-slide-up {
animation: slide-up 0.3s ease-out;
}
.animate-slide-up-delay {
animation: slide-up 0.3s ease-out;
animation-delay: 0.1s;
animation-fill-mode: both;
}
.animate-slide-up-delay-2 {
animation: slide-up 0.3s ease-out;
animation-delay: 0.2s;
animation-fill-mode: both;
}
/* ===== EINFACHER HOVER-EFFEKT ===== */
.animate-hover-lift {
transition: transform 0.2s ease;
}
.animate-hover-lift:hover {
transform: translateY(-2px);
}
/* ===== EINFACHE SUCCESS ANIMATION ===== */
@keyframes simple-success {
0% {
opacity: 0;
transform: scale(0.9);
}
100% {
opacity: 1;
transform: scale(1);
}
}
.animate-success {
animation: simple-success 0.3s ease-out;
}
/* ===== EINFACHER PULSE FÜR LOADING ===== */
/* ===== MINIMAL LOADING PULSE ===== */
@keyframes simple-pulse {
0%, 100% {
opacity: 1;
}
50% {
opacity: 0.6;
opacity: 0.7;
}
}
@ -84,39 +36,39 @@
animation: simple-pulse 2s infinite ease-in-out;
}
/* ===== EINFACHER PROGRESS BAR ===== */
.progress-fill {
transition: width 1s ease-out;
/* ===== BASIC SUCCESS FADE ===== */
@keyframes simple-success {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
/* ===== PERFORMANCE OPTIMIERUNGEN ===== */
.animate-fade-in,
.animate-slide-up,
.animate-slide-up-delay,
.animate-slide-up-delay-2 {
will-change: transform, opacity;
.animate-success {
animation: simple-success 0.2s ease-out;
}
.animate-hover-lift {
will-change: transform;
}
/* ===== UTILITY CLASSES ===== */
/* ===== MINIMALE UTILITY CLASSES ===== */
.animate-smooth {
transition: all 0.2s ease;
transition: opacity 0.1s ease;
}
.animate-smooth-fast {
transition: all 0.1s ease;
transition: opacity 0.05s ease;
}
/* ===== ALLE TRANSFORM-ANIMATIONEN ENTFERNT ===== */
/* Entfernt: slide-up (translateY) */
/* Entfernt: hover-lift (translateY) */
/* Entfernt: scale animations */
/* Entfernt: will-change properties */
/* ===== RESPONSIVE ANPASSUNGEN ===== */
@media (max-width: 768px) {
.animate-fade-in,
.animate-slide-up,
.animate-slide-up-delay,
.animate-slide-up-delay-2 {
animation-duration: 0.2s;
.animate-fade-in {
animation-duration: 0.1s;
}
}
@ -127,8 +79,4 @@
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
.animate-hover-lift:hover {
transform: none;
}
}

View File

@ -43,7 +43,7 @@
--dark-shadow-strong: rgba(0, 0, 0, 0.5);
}
/* Vereinfachte Hero-Header */
/* Raspberry Pi optimierte Hero-Header */
.professional-hero {
position: relative;
overflow: hidden;
@ -52,13 +52,11 @@
margin-bottom: 2rem;
background: var(--light-bg-secondary);
border: 1px solid var(--light-border);
box-shadow: 0 4px 12px var(--light-shadow);
transition: transform 0.2s ease, box-shadow 0.2s ease;
box-shadow: 0 2px 8px var(--light-shadow);
}
.professional-hero:hover {
transform: translateY(-1px);
box-shadow: 0 8px 20px var(--light-shadow-strong);
box-shadow: 0 4px 12px var(--light-shadow-strong);
}
.dark .professional-hero {