Files
mindflux/src/main/resources/static/css/game-guide.css
T
AliceDarkest 983e57cd8d AP4 Spielanleitungen & Hints: gemeinsames Guide-Modul + MindMatch Paar-Blitz
- game-guide.js/.css (neu): gemeinsames "So funktioniert's"-Overlay mit ?-Button
  in der Header-Tools-Leiste, Auto-Open beim Erstbesuch (localStorage
  mf-guide-seen:<slug>), Escape/Backdrop schliesst, Fokus-Trap; deutsches Inline-
  Registry fuer 7 Spiele (Networker bleibt bewusst bei seinem Inline-Guide). API
  window.MindfluxGuide = {open, close, registerHintProvider} fuer einheitliche
  Tipp-Buttons. Injektion via theme.js nur auf Game-Routen (wie FluxTimer), keine
  Template-Edits.
- mindmatch.js: Hint "Paar-Blitz" (3 Ladungen) deckt ~1s ein ungematchtes Paar
  auf und kostet +1 Zug -> Score/Sterne degradieren ueber die bestehende
  Serverformel (null Backend-Aenderung); Reset in newGame, Verstecken in
  finish/cancelGame; .mm-card.hinted-Glow.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WFxcjtc9HNP4VECT6Ur1tE
2026-07-21 00:32:11 +02:00

168 lines
4.3 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* Mindflux – Gemeinsames Guide-Modul „So funktioniert's".
Styles für den „?"-Trigger, den Tipp-Button, das Overlay und den MindMatch-Hint-Glow.
Theme-bewusst: dunkel als Standard, helle Überschreibungen für data-theme="light". */
/* ---------- Buttons in der Header-Tools-Leiste ---------- */
.mf-guide-trigger,
.mf-guide-hint {
font: inherit;
color: inherit;
cursor: pointer;
border: 1px solid rgba(255, 255, 255, 0.28);
background: rgba(255, 255, 255, 0.06);
border-radius: 999px;
transition: background-color .2s ease, border-color .2s ease, transform .12s ease;
}
.mf-guide-trigger {
display: inline-flex;
align-items: center;
justify-content: center;
width: 2.1rem;
height: 2.1rem;
font-size: 1.05rem;
font-weight: 700;
line-height: 1;
}
.mf-guide-hint {
padding: .34rem .8rem;
font-size: .85rem;
font-weight: 600;
white-space: nowrap;
}
.mf-guide-trigger:hover,
.mf-guide-hint:hover:not(:disabled) {
background: rgba(255, 255, 255, 0.16);
border-color: rgba(255, 255, 255, 0.5);
transform: translateY(-1px);
}
.mf-guide-trigger:focus-visible,
.mf-guide-hint:focus-visible {
outline: 2px solid currentColor;
outline-offset: 2px;
}
.mf-guide-hint:disabled {
opacity: .45;
cursor: not-allowed;
}
/* ---------- Overlay ---------- */
.mf-guide-backdrop {
position: fixed;
inset: 0;
z-index: 99999;
display: flex;
align-items: center;
justify-content: center;
padding: 1.25rem;
background: rgba(5, 8, 16, 0.72);
backdrop-filter: blur(4px);
}
.mf-guide-backdrop[hidden] { display: none; }
.mf-guide-panel {
width: min(34rem, 100%);
max-height: min(82vh, 640px);
overflow-y: auto;
box-sizing: border-box;
padding: 1.4rem 1.5rem 1.6rem;
border-radius: 18px;
border: 1px solid rgba(255, 255, 255, 0.14);
background: #141a26;
color: #eef2f8;
box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5);
animation: mf-guide-in .22s ease;
}
@keyframes mf-guide-in {
from { opacity: 0; transform: translateY(12px) scale(.98); }
to { opacity: 1; transform: translateY(0) scale(1); }
}
.mf-guide-head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 1rem;
margin-bottom: .4rem;
}
.mf-guide-kicker {
font-size: .72rem;
letter-spacing: .16em;
text-transform: uppercase;
opacity: .7;
}
.mf-guide-close {
flex: none;
width: 2rem;
height: 2rem;
border: none;
border-radius: 50%;
cursor: pointer;
font-size: 1.3rem;
line-height: 1;
color: inherit;
background: rgba(255, 255, 255, 0.08);
}
.mf-guide-close:hover { background: rgba(255, 255, 255, 0.18); }
.mf-guide-title {
margin: 0 0 .9rem;
font-size: 1.3rem;
line-height: 1.25;
}
.mf-guide-steps {
margin: 0 0 1rem;
padding-left: 1.2rem;
display: grid;
gap: .5rem;
}
.mf-guide-steps li { line-height: 1.45; }
.mf-guide-tip {
margin: 0;
padding: .75rem .9rem;
border-radius: 12px;
line-height: 1.45;
background: rgba(120, 170, 255, 0.14);
border: 1px solid rgba(120, 170, 255, 0.3);
}
body.mf-guide-open { overflow: hidden; }
/* ---------- Helles Theme ---------- */
:root[data-theme="light"] .mf-guide-trigger,
:root[data-theme="light"] .mf-guide-hint {
border-color: rgba(20, 30, 50, 0.28);
background: rgba(20, 30, 50, 0.05);
}
:root[data-theme="light"] .mf-guide-trigger:hover,
:root[data-theme="light"] .mf-guide-hint:hover:not(:disabled) {
background: rgba(20, 30, 50, 0.12);
border-color: rgba(20, 30, 50, 0.45);
}
:root[data-theme="light"] .mf-guide-backdrop { background: rgba(15, 23, 42, 0.5); }
:root[data-theme="light"] .mf-guide-panel {
background: #ffffff;
color: #16202e;
border-color: rgba(20, 30, 50, 0.12);
}
:root[data-theme="light"] .mf-guide-close { background: rgba(20, 30, 50, 0.08); }
:root[data-theme="light"] .mf-guide-close:hover { background: rgba(20, 30, 50, 0.16); }
:root[data-theme="light"] .mf-guide-tip {
background: rgba(60, 110, 220, 0.12);
border-color: rgba(60, 110, 220, 0.28);
}
/* ---------- MindMatch – kurz aufgedecktes Tipp-Paar ---------- */
.mm-card.hinted {
position: relative;
z-index: 2;
box-shadow: 0 0 0 2px #ffd54a, 0 0 22px 5px rgba(255, 213, 74, 0.6);
border-radius: 14px;
animation: mf-hint-pulse 1s ease;
}
@keyframes mf-hint-pulse {
0%, 100% { filter: none; }
50% { filter: brightness(1.12); }
}
@media (prefers-reduced-motion: reduce) {
.mf-guide-panel { animation: none; }
.mm-card.hinted { animation: none; }
}