diff --git a/README.md b/README.md index c3b958f..10e6cf9 100644 --- a/README.md +++ b/README.md @@ -296,6 +296,7 @@ localStorage.setItem('auth', JSON.stringify({ - Fehlersuche in asynchronen Promise-Ketten - Code-Style-Verbesserungen (ES6+ Best Practices) - Regex-Optimierungen für Text-Vergleich +- Generierung visueller Assets: Logo, Icon sowie Challenge-Grafiken für Gewonnen/Verloren/Unentschieden wurden mit ChatGPT erstellt und anschließend im Projekt eingebunden **Kritische Bewertung:** - ✅ **Effektiv für**: Schnelle Fehlerbehebung, Best-Practice-Vorschläge diff --git a/assets/css/custom.css b/assets/css/custom.css index b95400b..b1ba5e6 100644 --- a/assets/css/custom.css +++ b/assets/css/custom.css @@ -109,6 +109,13 @@ p { .btn:hover { background-color: #2b4a7c; } +.btn:disabled, +.btn.disabled { + background-color: #adb5bd; + color: #495057; + cursor: not-allowed; + opacity: 1; +} .btn-danger { background-color: #a84848; color: #fff; @@ -370,6 +377,51 @@ p { background: #fff4f4; } +.challenge-message-group { + border-left-color: #6f7fb7; +} + +.challenge-thread { + display: grid; + gap: 8px; + margin-top: 12px; + border-top: 1px solid #e5e7eb; + padding-top: 10px; +} + +.challenge-thread.d-none { + display: none; +} + +.challenge-thread-toggle { + border: none; + background: transparent; + color: #4a6fa5; + display: inline-flex; + font-size: 0.9rem; + font-weight: 600; + margin-top: 10px; + padding: 0; +} + +.challenge-thread-toggle:hover { + color: #2b4a7c; + text-decoration: underline; +} + +.challenge-thread-item { + border-radius: 6px; + background: #f8fafc; + padding: 8px 10px; +} + +.challenge-thread-item span { + display: block; + color: #64748b; + font-size: 0.82rem; + margin-bottom: 4px; +} + .message-meta { display: flex; justify-content: space-between; @@ -389,6 +441,12 @@ p { margin: 0; } +.challenge-status-button:disabled { + background-color: #e5e7eb; + border: 1px solid #cbd5e1; + color: #64748b; +} + .challenge-result-graphic, .play-challenge-result { margin-top: 12px; @@ -405,6 +463,38 @@ p { color: #ffffff; } +.challenge-outcome { + align-items: center; + background: #f8fafc; + display: flex; + gap: 12px; + padding: 14px; +} + +.challenge-outcome img { + border-radius: 8px; + height: 72px; + object-fit: cover; + width: 72px; +} + +.challenge-outcome strong { + color: #1b1b2f; + font-size: 1.5rem; +} + +.challenge-outcome-win { + background: #e8f7ee; +} + +.challenge-outcome-loss { + background: #fdecec; +} + +.challenge-outcome-draw { + background: #eef3fb; +} + .challenge-result-win, .play-challenge-result-winner .play-challenge-result-title { background: #198754; diff --git a/docs/Bewertungsraster_Frontend.xlsx b/docs/Bewertungsraster_Frontend.xlsx new file mode 100644 index 0000000..6ef6b13 Binary files /dev/null and b/docs/Bewertungsraster_Frontend.xlsx differ diff --git a/image/sieg.png b/image/sieg.png new file mode 100644 index 0000000..6c54aae Binary files /dev/null and b/image/sieg.png differ diff --git a/image/unentschieden.png b/image/unentschieden.png new file mode 100644 index 0000000..6418403 Binary files /dev/null and b/image/unentschieden.png differ diff --git a/image/verloren.png b/image/verloren.png new file mode 100644 index 0000000..4f2b7f1 Binary files /dev/null and b/image/verloren.png differ diff --git a/index.html b/index.html index 886c75d..5dd4a8e 100644 --- a/index.html +++ b/index.html @@ -7,7 +7,7 @@ - +