Mobile-Layout-Fixes: Header-Wrapping + Overlay-Click-Through verhindern
- .site-header: flex-wrap:wrap, kleinere padding/gap, mobile optimiert - .site-logo-sub: white-space:nowrap entfernt → bricht bei schmalen Screens um - Overlay-Backdrop z-index auf 10000 (über Bubbles mit 9999) - Overlays z-index auf 10001 (über Backdrop) - Bubbles werden via .hidden-Klasse versteckt wenn Overlay offen - chat-bubble/submit-bubble: opacity/pointer-events Transition
This commit is contained in:
@@ -2895,12 +2895,12 @@ def public_frontend():
|
||||
body { font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; background:#E8E4DC; color:#1a1a2e; min-height:100vh; }
|
||||
|
||||
/* Header — dark bar like SPIEL Essen */
|
||||
.site-header { background:#20228a; padding:1rem 2rem; display:flex; align-items:center; gap:1rem; position:sticky; top:0; z-index:100; box-shadow:0 2px 12px rgba(0,0,0,0.15); }
|
||||
.site-logo { display:flex; align-items:center; gap:0.6rem; text-decoration:none; color:#fff; }
|
||||
.site-logo .logo-icon { width:40px; height:40px; background:#20228a; border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:1.3rem; }
|
||||
.site-logo .logo-text { font-weight:800; font-size:1.15rem; letter-spacing:-0.01em; color:#fff; }
|
||||
.site-header { background:#20228a; padding:0.75rem 1.2rem; display:flex; align-items:center; flex-wrap:wrap; gap:0.5rem; position:sticky; top:0; z-index:100; box-shadow:0 2px 12px rgba(0,0,0,0.15); }
|
||||
.site-logo { display:flex; align-items:center; gap:0.5rem; text-decoration:none; color:#fff; min-width:0; flex-shrink:1; }
|
||||
.site-logo .logo-icon { width:36px; height:36px; background:#20228a; border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:1.3rem; flex-shrink:0; }
|
||||
.site-logo .logo-text { font-weight:800; font-size:1.05rem; letter-spacing:-0.01em; color:#fff; white-space:nowrap; }
|
||||
.site-logo .logo-sub { font-weight:400; color:#888; font-size:0.75rem; }
|
||||
.site-logo-sub { font-size:0.7rem; font-weight:500; color:rgba(255,255,255,0.7); letter-spacing:0.03em; margin-left:0.5rem; white-space:nowrap; }
|
||||
.site-logo-sub { font-size:0.68rem; font-weight:500; color:rgba(255,255,255,0.7); letter-spacing:0.03em; margin-left:0.3rem; white-space:normal; word-break:break-word; }
|
||||
.site-header .header-right { margin-left:auto; }
|
||||
.site-header .header-right a { color:#aaa; text-decoration:none; font-size:0.8rem; transition:color 0.2s; }
|
||||
.site-header .header-right a:hover { color:#fff; }
|
||||
@@ -3022,7 +3022,10 @@ def public_frontend():
|
||||
@media(max-width:500px) {
|
||||
.main-grid { column-count:1; padding:0 0.8rem; }
|
||||
.story-card { margin-bottom:1rem; }
|
||||
.site-header { padding:0.8rem 1rem; }
|
||||
.site-header { padding:0.6rem 0.8rem; gap:0.4rem; }
|
||||
.site-logo-sub { font-size:0.62rem; }
|
||||
.header-right { display:flex; align-items:center; gap:0.3rem; }
|
||||
.header-right a { font-size:0.7rem !important; }
|
||||
.submit-bubble { bottom:1rem; right:5rem; }
|
||||
.chat-overlay { bottom:5rem; right:0.5rem; width:calc(100vw - 1rem); max-height:60vh; }
|
||||
.chat-bubble { bottom:1rem; right:1rem; }
|
||||
@@ -3031,19 +3034,20 @@ def public_frontend():
|
||||
.chat-bubble { position:fixed; bottom:1.5rem; right:1.5rem; z-index:9999;
|
||||
width:56px; height:56px; border-radius:50%; background:#20228a;
|
||||
color:#fff; border:none; cursor:pointer; font-size:1.6rem;
|
||||
box-shadow:0 6px 24px rgba(0,0,0,0.25); transition:transform 0.2s,box-shadow 0.2s;
|
||||
box-shadow:0 6px 24px rgba(0,0,0,0.25); transition:transform 0.2s,box-shadow 0.2s,opacity 0.2s;
|
||||
display:flex; align-items:center; justify-content:center; }
|
||||
.chat-bubble.hidden { opacity:0; pointer-events:none; }
|
||||
.chat-bubble:hover { transform:scale(1.08); box-shadow:0 8px 32px rgba(0,0,0,0.35); }
|
||||
.chat-bubble:active { transform:scale(0.95); }
|
||||
.chat-bubble .bubble-dot { position:absolute; top:6px; right:6px; width:12px; height:12px;
|
||||
background:#28a745; border-radius:50%; border:2px solid #fff; }
|
||||
|
||||
.chat-overlay { position:fixed; bottom:5.5rem; right:1.5rem; z-index:9998;
|
||||
.chat-overlay { position:fixed; bottom:5.5rem; right:1.5rem; z-index:10001;
|
||||
width:380px; max-width:calc(100vw - 2rem); max-height:520px;
|
||||
background:#fff; border-radius:18px; box-shadow:0 12px 48px rgba(0,0,0,0.22);
|
||||
display:none; flex-direction:column; overflow:hidden; }
|
||||
.chat-overlay.open { display:flex; }
|
||||
.chat-backdrop { position:fixed; inset:0; z-index:9997; background:rgba(0,0,0,0.25); backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); display:none; }
|
||||
.chat-backdrop { position:fixed; inset:0; z-index:10000; background:rgba(0,0,0,0.25); backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); display:none; }
|
||||
.chat-backdrop.open { display:block; }
|
||||
.chat-header { background:#20228a; color:#fff; padding:0.9rem 1.2rem;
|
||||
font-weight:700; font-size:0.9rem; display:flex; align-items:center; justify-content:space-between; }
|
||||
@@ -3075,12 +3079,13 @@ def public_frontend():
|
||||
.submit-bubble { position:fixed; bottom:1.5rem; right:5.5rem; z-index:9999;
|
||||
width:56px; height:56px; border-radius:50%; background:#20228a;
|
||||
color:#fff; border:none; cursor:pointer; font-size:1.8rem; font-weight:300; line-height:1;
|
||||
box-shadow:0 6px 24px rgba(0,0,0,0.25); transition:transform 0.2s,box-shadow 0.2s;
|
||||
box-shadow:0 6px 24px rgba(0,0,0,0.25); transition:transform 0.2s,box-shadow 0.2s,opacity 0.2s;
|
||||
display:flex; align-items:center; justify-content:center; }
|
||||
.submit-bubble.hidden { opacity:0; pointer-events:none; }
|
||||
.submit-bubble:hover { transform:scale(1.08); box-shadow:0 8px 32px rgba(0,0,0,0.35); }
|
||||
.submit-bubble:active { transform:scale(0.95); }
|
||||
|
||||
.submit-overlay { position:fixed; bottom:5.5rem; right:1.5rem; z-index:9998;
|
||||
.submit-overlay { position:fixed; bottom:5.5rem; right:1.5rem; z-index:10001;
|
||||
width:400px; max-width:calc(100vw - 2rem); max-height:85vh;
|
||||
background:#fff; border-radius:18px; box-shadow:0 12px 48px rgba(0,0,0,0.22);
|
||||
display:none; flex-direction:column; overflow:hidden; }
|
||||
@@ -3257,6 +3262,7 @@ def public_frontend():
|
||||
const sClose = document.getElementById('submitClose');
|
||||
const sSend = document.getElementById('submitSend');
|
||||
const sStatus = document.getElementById('submitStatus');
|
||||
const chatBubble = document.getElementById('chatBubble');
|
||||
let sOpen = false;
|
||||
|
||||
const sBackdrop = document.getElementById('chatBackdrop');
|
||||
@@ -3265,6 +3271,9 @@ def public_frontend():
|
||||
sOpen = !sOpen;
|
||||
sOverlay.classList.toggle('open', sOpen);
|
||||
if (sBackdrop) sBackdrop.classList.toggle('open', sOpen);
|
||||
// Bubbles verstecken wenn Overlay offen
|
||||
if (sBubble) sBubble.classList.toggle('hidden', sOpen);
|
||||
if (chatBubble) chatBubble.classList.toggle('hidden', sOpen);
|
||||
const chatO = document.getElementById('chatOverlay');
|
||||
if (chatO) chatO.classList.remove('open');
|
||||
});
|
||||
@@ -3272,6 +3281,8 @@ def public_frontend():
|
||||
sOpen = false;
|
||||
sOverlay.classList.remove('open');
|
||||
if (sBackdrop) sBackdrop.classList.remove('open');
|
||||
if (sBubble) sBubble.classList.remove('hidden');
|
||||
if (chatBubble) chatBubble.classList.remove('hidden');
|
||||
});
|
||||
|
||||
sSend.addEventListener('click', async () => {
|
||||
@@ -3441,11 +3452,15 @@ def public_frontend():
|
||||
let open = false;
|
||||
|
||||
const backdrop = document.getElementById('chatBackdrop');
|
||||
const sBubble = document.getElementById('submitBubble');
|
||||
|
||||
function toggle() {
|
||||
open = !open;
|
||||
overlay.classList.toggle('open', open);
|
||||
if (backdrop) backdrop.classList.toggle('open', open);
|
||||
// Bubbles verstecken wenn Overlay offen, damit man nicht versehentlich darunter klickt
|
||||
if (bubble) bubble.classList.toggle('hidden', open);
|
||||
if (sBubble) sBubble.classList.toggle('hidden', open);
|
||||
if (open) setTimeout(() => input.focus(), 100);
|
||||
}
|
||||
|
||||
@@ -3454,6 +3469,8 @@ def public_frontend():
|
||||
open = false;
|
||||
overlay.classList.remove('open');
|
||||
if (backdrop) backdrop.classList.remove('open');
|
||||
if (bubble) bubble.classList.remove('hidden');
|
||||
if (sBubble) sBubble.classList.remove('hidden');
|
||||
});
|
||||
|
||||
// Click backdrop to close either overlay
|
||||
@@ -3462,6 +3479,8 @@ def public_frontend():
|
||||
open = false;
|
||||
overlay.classList.remove('open');
|
||||
backdrop.classList.remove('open');
|
||||
if (bubble) bubble.classList.remove('hidden');
|
||||
if (sBubble) sBubble.classList.remove('hidden');
|
||||
// Also close submit overlay if open
|
||||
const sO = document.getElementById('submitOverlay');
|
||||
if (sO) { sO.classList.remove('open'); }
|
||||
|
||||
Reference in New Issue
Block a user