📝 Text-Only-Cards zeigen Text + Video-Images kürzer (3:4, 180px) + kompaktere Cards

This commit is contained in:
Hermes Agent
2026-06-17 15:01:36 +02:00
parent 5aeb2e3e90
commit 5ecc5a8bc7
+6 -4
View File
@@ -1648,7 +1648,7 @@ def public_frontend():
if mime.startswith("image/"):
img_tag = (
'<a href="/beitrag/' + str(r["id"]) + '" class="media-preview-link">'
'<div class="media-crop" style="width:100%;height:260px;overflow:hidden;border-radius:8px;">'
'<div class="media-crop" style="width:100%;height:180px;overflow:hidden;border-radius:8px;">'
'<img src="' + src + '" alt="Beitragsbild" loading="lazy" style="width:100%;height:100%;object-fit:cover;">'
'</div></a>'
)
@@ -1666,7 +1666,7 @@ def public_frontend():
thumb_src = ""
vid_tag = (
'<a href="/beitrag/' + str(r["id"]) + '" class="video-thumb-link">'
'<div class="video-thumb" style="position:relative;background:#000;aspect-ratio:9/16;display:flex;align-items:center;justify-content:center;overflow:hidden;">'
'<div class="video-thumb" style="position:relative;background:#000;aspect-ratio:3/4;display:flex;align-items:center;justify-content:center;overflow:hidden;">'
+ (f'<img src="{thumb_src}" alt="Video-Vorschau" style="width:100%;height:100%;object-fit:cover;opacity:0.7;">' if thumb_src else '<div style="color:#555;font-size:3rem;">🎬</div>')
+ '<div class="play-btn" style="position:absolute;width:60px;height:60px;background:rgba(255,255,255,0.9);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(0,0,0,0.4);">'
+ '<svg width="24" height="28" viewBox="0 0 24 28"><path d="M0 0v28l24-14z" fill="#20228a"/></svg>'
@@ -1713,7 +1713,7 @@ def public_frontend():
except:
pass
cards += """<article class="story-card">
cards += """<article class="story-card{" text-only" if not media_first else ""}">
""" + media_first + """
""" + (f'<div class="story-halle-badge">📍 {r["halle"]}</div>' if r["halle"] else '') + """
""" + (f'<div class="story-ausverkauft-badge">🚫 AUSVERKAUFT: {r["spiel_titel"]}</div>' if r["category"] == "ausverkauft" and r["spiel_titel"] else '') + """
@@ -1760,7 +1760,7 @@ def public_frontend():
.story-card { position:relative; }
.story-halle-badge { position:absolute; top:10px; right:10px; background:#20228a; color:#fff; padding:0.25rem 0.65rem; border-radius:5px; font-size:0.78rem; font-weight:700; letter-spacing:0.03em; z-index:5; box-shadow:0 2px 6px rgba(0,0,0,0.3); }
.story-ausverkauft-badge { position:absolute; top:10px; left:10px; background:#dc3545; color:#fff; padding:0.3rem 0.7rem; border-radius:5px; font-size:0.78rem; font-weight:700; letter-spacing:0.02em; z-index:5; box-shadow:0 2px 6px rgba(0,0,0,0.3); }
.card-content { padding:0.8rem 1.2rem 1rem; display:flex; flex-direction:column; gap:0.3rem; }
.card-content { padding:0.6rem 1rem 0.8rem; display:flex; flex-direction:column; gap:0.25rem; }
.story-meta { display:flex; align-items:center; gap:0.5rem; flex-wrap:wrap; }
.story-type { font-size:0.85rem; }
.story-author { font-weight:600; color:#20228a; font-size:0.82rem; }
@@ -1768,6 +1768,8 @@ def public_frontend():
.story-time { font-size:0.75rem; color:#666; font-weight:500; }
.story-time-rel { color:#20228a; font-weight:700; }
.story-preview { display:none; }
.text-only .story-preview { display:block; font-size:0.85rem; line-height:1.45; color:#444; }
.text-only .card-content { padding-top:0.6rem; }
/* Frontend filter bar */
.frontend-filter { max-width:1100px; margin:1rem auto 0; padding:0 1.5rem; display:flex; gap:0.4rem; flex-wrap:wrap; align-items:center; }