alle karten: autor mit personen-icon ganz unten, views+likes darüber — einheitliches layout
This commit is contained in:
@@ -1830,21 +1830,21 @@ def public_frontend():
|
|||||||
</article>
|
</article>
|
||||||
</a>"""
|
</a>"""
|
||||||
else:
|
else:
|
||||||
# Media card: existing structure
|
# Media card: author at bottom (same as text-only)
|
||||||
cards += f"""<article class="story-card">
|
cards += f"""<article class="story-card">
|
||||||
""" + media_first + time_block + """
|
""" + media_first + time_block + """
|
||||||
""" + (f'<div class="story-halle-badge"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2.5" stroke-linecap="round" style="vertical-align:middle;margin-right:2px;"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg> {r["halle"]}</div>' if r["halle"] else '') + """
|
""" + (f'<div class="story-halle-badge"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2.5" stroke-linecap="round" style="vertical-align:middle;margin-right:2px;"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg> {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 '') + """
|
""" + (f'<div class="story-ausverkauft-badge">🚫 AUSVERKAUFT: {r["spiel_titel"]}</div>' if r["category"] == "ausverkauft" and r["spiel_titel"] else '') + """
|
||||||
<div class="card-content">
|
<div class="card-content">
|
||||||
<div class="story-meta">
|
|
||||||
<span class="story-type">""" + type_emoji + """</span>
|
|
||||||
<span class="story-author">""" + name + """</span>
|
|
||||||
</div>
|
|
||||||
<p class="story-preview">""" + preview + """</p>
|
<p class="story-preview">""" + preview + """</p>
|
||||||
<div class="card-stats">
|
<div class="card-stats">
|
||||||
<span class="stat-views">👁 """ + str(r['views'] or 0) + """</span>
|
<span class="stat-views">👁 """ + str(r['views'] or 0) + """</span>
|
||||||
<button class="stat-like-btn" data-id=""" + str(r['id']) + """ data-likes=""" + str(r['likes'] or 0) + """><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#20228a" stroke-width="2" stroke-linecap="round" style="vertical-align:middle;margin-right:2px;"><path d="M7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3"/><path d="M7 11h11.5a2.5 2.5 0 0 1 2.5 2.5v.5a2.5 2.5 0 0 1-2.5 2.5h-2.5"/><path d="M16 16.5V19a3 3 0 0 1-6 1.5L7 11"/></svg> """ + str(r['likes'] or 0) + """</button>
|
<button class="stat-like-btn" data-id=""" + str(r['id']) + """ data-likes=""" + str(r['likes'] or 0) + """><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#20228a" stroke-width="2" stroke-linecap="round" style="vertical-align:middle;margin-right:2px;"><path d="M7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3"/><path d="M7 11h11.5a2.5 2.5 0 0 1 2.5 2.5v.5a2.5 2.5 0 0 1-2.5 2.5h-2.5"/><path d="M16 16.5V19a3 3 0 0 1-6 1.5L7 11"/></svg> """ + str(r['likes'] or 0) + """</button>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="story-meta">
|
||||||
|
<span class="story-type">""" + type_emoji + """</span>
|
||||||
|
<span class="story-author"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#20228a" stroke-width="2" stroke-linecap="round" style="vertical-align:middle;margin-right:3px;"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>""" + name + """</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</article>"""
|
</article>"""
|
||||||
|
|
||||||
@@ -1893,7 +1893,7 @@ def public_frontend():
|
|||||||
.story-halle-badge { position:absolute; top:0; right:0; background:#20228a; color:#fff; padding:0.25rem 0.65rem; border-radius:0 0 0 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-halle-badge { position:absolute; top:0; right:0; background:#20228a; color:#fff; padding:0.25rem 0.65rem; border-radius:0 0 0 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:0; left:0; background:#dc3545; color:#fff; padding:0.3rem 0.7rem; border-radius:0 0 5px 0; 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); }
|
.story-ausverkauft-badge { position:absolute; top:0; left:0; background:#dc3545; color:#fff; padding:0.3rem 0.7rem; border-radius:0 0 5px 0; 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.45rem 0.85rem 0.55rem; display:flex; flex-direction:column; gap:0.2rem; }
|
.card-content { padding:0.45rem 0.85rem 0.55rem; display:flex; flex-direction:column; gap:0.2rem; }
|
||||||
.story-meta { display:flex; align-items:center; gap:0.4rem; flex-wrap:wrap; }
|
.story-meta { display:flex; align-items:center; gap:0.4rem; flex-wrap:wrap; padding-top:0.3rem; margin-top:0.25rem; border-top:1px solid #f0ede6; }
|
||||||
.story-type { font-size:0.8rem; }
|
.story-type { font-size:0.8rem; }
|
||||||
.story-author { font-weight:600; color:#20228a; font-size:0.78rem; }
|
.story-author { font-weight:600; color:#20228a; font-size:0.78rem; }
|
||||||
.story-date { color:#999; font-size:0.7rem; margin-left:auto; }
|
.story-date { color:#999; font-size:0.7rem; margin-left:auto; }
|
||||||
@@ -1904,7 +1904,6 @@ def public_frontend():
|
|||||||
.story-preview { display:none; }
|
.story-preview { display:none; }
|
||||||
.text-only .story-preview { display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; text-overflow:ellipsis; font-size:0.8rem; line-height:1.4; color:#444; margin-bottom:0.35rem; }
|
.text-only .story-preview { display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; text-overflow:ellipsis; font-size:0.8rem; line-height:1.4; color:#444; margin-bottom:0.35rem; }
|
||||||
.text-only .card-content { position:relative; padding:0.55rem 0.85rem 0.5rem; }
|
.text-only .card-content { position:relative; padding:0.55rem 0.85rem 0.5rem; }
|
||||||
.text-only .story-meta { padding-top:0.3rem; margin-top:0.25rem; border-top:1px solid #f0ede6; }
|
|
||||||
|
|
||||||
/* Card stats (views + likes) */
|
/* Card stats (views + likes) */
|
||||||
.card-stats { display:flex; align-items:center; gap:0.6rem; padding-top:0.35rem; margin-top:0.3rem; border-top:1px solid #f0ede6; }
|
.card-stats { display:flex; align-items:center; gap:0.6rem; padding-top:0.35rem; margin-top:0.3rem; border-top:1px solid #f0ede6; }
|
||||||
|
|||||||
Reference in New Issue
Block a user