From 3f23f223cebad81e0315977796da2dd8d157ece8 Mon Sep 17 00:00:00 2001 From: AliceDarkest Date: Tue, 14 Jul 2026 17:02:30 +0200 Subject: [PATCH] Restore Neural light theme and update contrast colors --- CHANGELOG.md | 3 ++ mindfluxfuture.md | 1 + .../resources/static/css/accessibility.css | 4 +-- .../resources/static/css/platform-neural.css | 35 +++++++++++++++++++ src/main/resources/static/js/theme.js | 2 +- .../resources/templates/achievements.html | 2 +- .../templates/admin/bughunter-hunt.html | 2 +- .../resources/templates/admin/bughunter.html | 2 +- .../templates/admin/codeescape-room.html | 2 +- .../templates/admin/codeescape-scenario.html | 2 +- .../resources/templates/admin/codeescape.html | 2 +- .../resources/templates/admin/dashboard.html | 2 +- .../templates/admin/devlab-game.html | 2 +- .../resources/templates/admin/devlab.html | 2 +- .../resources/templates/admin/mindmatch.html | 2 +- .../templates/admin/syntaxsaga-mission.html | 2 +- .../resources/templates/admin/syntaxsaga.html | 2 +- .../templates/admin/techtacular-category.html | 2 +- .../templates/admin/techtacular.html | 2 +- .../resources/templates/admin/users/form.html | 2 +- .../resources/templates/admin/users/list.html | 2 +- src/main/resources/templates/bughunter.html | 2 +- src/main/resources/templates/codeescape.html | 2 +- src/main/resources/templates/dashboard.html | 2 +- src/main/resources/templates/devlab-game.html | 2 +- src/main/resources/templates/devlab.html | 2 +- src/main/resources/templates/dummy.html | 2 +- src/main/resources/templates/error.html | 2 +- src/main/resources/templates/finalflux.html | 2 +- src/main/resources/templates/impressum.html | 2 +- src/main/resources/templates/index.html | 2 +- src/main/resources/templates/knowledge.html | 2 +- .../templates/legal/datenschutz.html | 2 +- .../templates/legal/nutzungsbedingungen.html | 2 +- .../templates/legal/richtlinien.html | 2 +- src/main/resources/templates/mindmatch.html | 2 +- src/main/resources/templates/networker.html | 2 +- src/main/resources/templates/profile.html | 2 +- src/main/resources/templates/progress.html | 2 +- .../resources/templates/serviceclash.html | 2 +- src/main/resources/templates/settings.html | 2 +- src/main/resources/templates/soziales.html | 2 +- src/main/resources/templates/syntaxsaga.html | 2 +- src/main/resources/templates/techtacular.html | 2 +- 44 files changed, 81 insertions(+), 42 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b166be6..d72d87b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ Versionierung [semantisch](https://semver.org/lang/de/). ## [Unreleased] – 2026-07-14 · SysnaptiK Neural Rebrand ### Marke & Plattform +- **Neural Lightmode & Kontrast:** Die helle Plattformvariante ist wieder ein + vollständiges Mint-/Blau-Neural-Theme, inklusive Sidebar, Karten und Login. + Hochkontrast nutzt jetzt dieselbe Mint-/Cyan-Sprache statt der alten Amber-Palette. - **NeuralNet aufgeräumt:** Der leere Gesprächshinweis verschwindet beim Öffnen wirklich, die letzte Verbindung wird pro Konto gespeichert und beim nächsten Besuch direkt wieder geöffnet. Die Sprechblase bleibt neutral und invertiert diff --git a/mindfluxfuture.md b/mindfluxfuture.md index ded6018..e7a7352 100644 --- a/mindfluxfuture.md +++ b/mindfluxfuture.md @@ -494,6 +494,7 @@ Der Verdacht „Profilbutton fehlt / Einstellungen nicht im Profil / irgendwas i > Der Chatbereich hält Kopf, Verlauf und Eingabe als zusammenhängende Spalte. > Die Dashboard-Sprechblase zeigt im 30-Sekunden-Takt echte ungelesene Nachrichten. > Die zuletzt geöffnete bestätigte Verbindung wird pro Konto lokal wiederhergestellt. +> Der Plattform-Lightmode und der Hochkontrastmodus nutzen die Neural-Palette. > Blockieren, Melden/Moderation, Duelle und Lernlobby bleiben die nächsten Ausbauschritte. > Ersetzt den `/soziales`-Platzhalter („Straßen? Wo wir hingehen, brauchen wir keine Straßen!"). Ziel: User können sich befreunden, intern miteinander schreiben, gemeinsam lernen und Achievements vergleichen – **vollständig selbst gehostet, ohne einen einzigen externen Dienst**, und DSGVO-konform von Grund auf. diff --git a/src/main/resources/static/css/accessibility.css b/src/main/resources/static/css/accessibility.css index 9ade6b3..7872d3f 100644 --- a/src/main/resources/static/css/accessibility.css +++ b/src/main/resources/static/css/accessibility.css @@ -3,10 +3,10 @@ html[data-mf-readable="true"] body,html[data-mf-readable="true"] button,html[dat /* Die Tokens liegen je nach Spiel auf body bzw. der jeweiligen Spielwurzel. Deshalb müssen die Overrides auf der ganzen Oberfläche gelten – ein Override nur auf html wurde von den lokalen Themes bislang wieder überschrieben. */ -html[data-mf-contrast="true"] body,html[data-mf-contrast="true"] body *{--bg:#000!important;--panel:#050505!important;--panel-2:#080808!important;--surface:#0b0b0b!important;--surface-2:#151515!important;--text:#fff!important;--heading:#fff!important;--muted:#f1f1f1!important;--border:#fff!important;--line:#fff!important;--border-accent:#ffd21a!important;--accent:#ffd21a!important;--accent-2:#fff!important;--secondary:#65d9ff!important;--secondary-2:#fff!important;--success:#65d9ff!important;--danger:#ff9d3d!important;--esc-accent:#ffd21a!important;--bh-accent:#ffd21a!important;--sc-accent:#65d9ff!important;--nw-accent:#65d9ff!important;--mm-accent:#ffd21a!important;--mm-secondary:#65d9ff!important;--tt-accent:#ffd21a!important;--tt-secondary:#65d9ff!important;--dl-accent:#ffd21a!important;--dl-secondary:#65d9ff!important;--ss-accent:#ffd21a!important;--ss-secondary:#65d9ff!important;--ff-accent:#ffd21a!important;--ff-secondary:#65d9ff!important;--glow-s:transparent!important;--glow-w:transparent!important;--esc-glow:transparent!important;--bh-glow:transparent!important;--sc-glow:transparent!important;--nw-glow:transparent!important;--mm-glow:transparent!important;--tt-glow:transparent!important;--dl-glow:transparent!important;--ss-glow:transparent!important;--ff-glow:transparent!important} +html[data-mf-contrast="true"] body,html[data-mf-contrast="true"] body *{--bg:#000!important;--panel:#050505!important;--panel-2:#080808!important;--surface:#0b0b0b!important;--surface-2:#151515!important;--text:#fff!important;--heading:#fff!important;--muted:#f1f1f1!important;--border:#fff!important;--line:#fff!important;--border-accent:#6fffb5!important;--accent:#6fffb5!important;--accent-2:#fff!important;--secondary:#83dbff!important;--secondary-2:#fff!important;--success:#83dbff!important;--danger:#ff9caf!important;--esc-accent:#6fffb5!important;--bh-accent:#6fffb5!important;--sc-accent:#83dbff!important;--nw-accent:#83dbff!important;--mm-accent:#6fffb5!important;--mm-secondary:#83dbff!important;--tt-accent:#6fffb5!important;--tt-secondary:#83dbff!important;--dl-accent:#6fffb5!important;--dl-secondary:#83dbff!important;--ss-accent:#6fffb5!important;--ss-secondary:#83dbff!important;--ff-accent:#6fffb5!important;--ff-secondary:#83dbff!important;--glow-s:transparent!important;--glow-w:transparent!important;--esc-glow:transparent!important;--bh-glow:transparent!important;--sc-glow:transparent!important;--nw-glow:transparent!important;--mm-glow:transparent!important;--tt-glow:transparent!important;--dl-glow:transparent!important;--ss-glow:transparent!important;--ff-glow:transparent!important} html[data-mf-contrast="true"] body{background:#000!important;color:#fff!important;color-scheme:dark} html[data-mf-contrast="true"] body *,html[data-mf-contrast="true"] body *::before,html[data-mf-contrast="true"] body *::after{text-shadow:none!important;box-shadow:none!important} -html[data-mf-contrast="true"] body :focus-visible{outline:3px solid #ffd21a!important;outline-offset:3px} +html[data-mf-contrast="true"] body :focus-visible{outline:3px solid #6fffb5!important;outline-offset:3px} /* Okabe-Ito-nahe Palette: die Karten und die Spieltokens ändern sich sichtbar, ohne sich für Rot-/Grün-Sehschwächen nur über Farbe unterscheiden zu müssen. */ html[data-mf-color="safe"] body,html[data-mf-color="safe"] body *{--success:#0072b2!important;--danger:#e69f00!important;--secondary:#cc79a7!important;--secondary-2:#56b4e9!important;--esc-accent:#e69f00!important;--bh-accent:#d55e00!important;--sc-accent:#56b4e9!important;--nw-accent:#0072b2!important;--mm-accent:#cc79a7!important;--mm-secondary:#56b4e9!important;--tt-accent:#f0e442!important;--tt-secondary:#0072b2!important;--dl-accent:#009e73!important;--dl-secondary:#56b4e9!important;--ss-accent:#0072b2!important;--ss-secondary:#e69f00!important;--ff-accent:#d55e00!important;--ff-secondary:#cc79a7!important} diff --git a/src/main/resources/static/css/platform-neural.css b/src/main/resources/static/css/platform-neural.css index bc3b8e3..39b6e08 100644 --- a/src/main/resources/static/css/platform-neural.css +++ b/src/main/resources/static/css/platform-neural.css @@ -59,4 +59,39 @@ html.sn-platform body.finalflux-shell, html.sn-platform body.finalflux-page { --glow-s:rgba(240,144,67,.40); --glow-w:rgba(240,144,67,.14); } html.sn-platform body .finalflux-shell, html.sn-platform body.finalflux-shell, html.sn-platform body.finalflux-page { background:transparent; } +/* Helle Plattformvariante: dieselbe Neural-Sprache, nur auf lichtem Grund. + Spielrouten erhalten diese Regeln nicht und behalten ihre eigenen Welten. */ +html[data-theme="light"].sn-platform body { + --accent:#167a52; --accent-2:#79cfa6; --accent-ink:#fff; + --secondary:#176f9e; --secondary-2:#68b8df; + --bg:#edf7f2; --bg-glow:radial-gradient(900px 560px at 58% -12%,rgba(35,143,96,.15),transparent 61%); + --panel:#f8fcfa; --panel-2:#eff8f3; --surface:#fff; --surface-2:#e8f4ee; + --border:#bed8cb; --line:#d2e6dc; --border-accent:rgba(22,122,82,.48); + --text:#18382c; --muted:#587166; --heading:#10291f; + --glow-s:rgba(22,122,82,.30); --glow-w:rgba(22,122,82,.13); + --fluxtimer-primary:#176f9e; --fluxtimer-secondary:#167a52; + --fluxtimer-display:#e4f3ed; --fluxtimer-segment:#126b48; + background: + radial-gradient(circle at 12% 86%,rgba(39,150,103,.13),transparent 27%), + radial-gradient(circle at 82% 8%,rgba(44,137,178,.12),transparent 29%), + linear-gradient(135deg,#f7fcf9,#e8f5ef 54%,#edf8f4); +} +html[data-theme="light"].sn-platform body::before { opacity:.3; background: + radial-gradient(circle at 8% 12%,#167a52 0 1px,transparent 2px), + radial-gradient(circle at 27% 24%,#167a52 0 2px,transparent 3px), + radial-gradient(circle at 61% 14%,#176f9e 0 1px,transparent 2px), + radial-gradient(circle at 88% 31%,#167a52 0 2px,transparent 3px), + linear-gradient(24deg,transparent 0 17%,rgba(22,122,82,.15) 17.1% 17.2%,transparent 17.3% 100%), + linear-gradient(145deg,transparent 0 52%,rgba(23,111,158,.12) 52.1% 52.2%,transparent 52.3% 100%); } +html[data-theme="light"].sn-platform body .mf-sidebar { background:linear-gradient(180deg,#f5fbf7,#ecf6f0); border-color:#bfd8cc; } +html[data-theme="light"].sn-platform body .mf-logo .mark,html[data-theme="light"].sn-platform body .auth-head .mark,html[data-theme="light"].sn-platform body .overlay-panel .o-emblem { background:#167a52; filter:drop-shadow(0 0 8px rgba(22,122,82,.32)); } +html[data-theme="light"].sn-platform body .mf-logo .txt b { color:#163c2d; } +html[data-theme="light"].sn-platform body .mf-logo .txt span { color:#167a52; } +html[data-theme="light"].sn-platform body .mf-nav a.active { background:linear-gradient(100deg,rgba(22,122,82,.19),rgba(22,122,82,.08)); color:#123626; box-shadow:inset 0 0 0 1px rgba(22,122,82,.34),0 0 13px rgba(22,122,82,.12); } +html[data-theme="light"].sn-platform body .mf-panel,html[data-theme="light"].sn-platform body .mf-card,html[data-theme="light"].sn-platform body .mf-profile { background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(241,250,245,.96)); border-color:#c4dbd0; box-shadow:0 13px 28px rgba(28,75,54,.10); } +html[data-theme="light"].sn-platform body .mf-footer { background:rgba(244,251,247,.82); border-color:#c5ddd1; } +html[data-theme="light"].sn-platform body .auth-container { background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(239,249,243,.98)); border-color:rgba(22,122,82,.38); } +html[data-theme="light"].sn-platform body .overlay { background:radial-gradient(520px 320px at 62% 18%,rgba(22,122,82,.15),transparent 62%),linear-gradient(150deg,#e8f6ef,#f7fcf9); } +html[data-theme="light"].sn-platform body .auth-head b { color:#167a52; } @media (max-width:820px) { html.sn-platform body .mf-sidebar { background:#061114; } } +@media (max-width:820px) { html[data-theme="light"].sn-platform body .mf-sidebar { background:#f5fbf7; } } diff --git a/src/main/resources/static/js/theme.js b/src/main/resources/static/js/theme.js index a530a70..2ca9adf 100644 --- a/src/main/resources/static/js/theme.js +++ b/src/main/resources/static/js/theme.js @@ -35,7 +35,7 @@ if (!document.querySelector('link[data-accessibility]')) { var accessibilityCss = document.createElement('link'); accessibilityCss.rel = 'stylesheet'; - accessibilityCss.href = '/css/accessibility.css?v=4'; + accessibilityCss.href = '/css/accessibility.css?v=5'; accessibilityCss.setAttribute('data-accessibility', ''); document.head.appendChild(accessibilityCss); var accessibilityPlacementCss = document.createElement('link'); diff --git a/src/main/resources/templates/achievements.html b/src/main/resources/templates/achievements.html index 316b13e..21e1595 100644 --- a/src/main/resources/templates/achievements.html +++ b/src/main/resources/templates/achievements.html @@ -5,7 +5,7 @@ SysnaptiK Neural – Trophäen - + diff --git a/src/main/resources/templates/legal/datenschutz.html b/src/main/resources/templates/legal/datenschutz.html index 9a7b2b0..7c187d6 100644 --- a/src/main/resources/templates/legal/datenschutz.html +++ b/src/main/resources/templates/legal/datenschutz.html @@ -6,7 +6,7 @@ SysnaptiK Neural – Datenschutzerklärung - +