style: LIVE badge right-aligned, bigger live score, remove redundant tip

- LIVE: pulsing red badge with dot, right-aligned in header (replaces countdown position)
- Live score: 28px instead of 22px for better visibility
- Removed duplicate tip display under live score (tip only shown in footer)
- BEENDET status stays left in header

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Ronny
2026-04-12 09:00:55 +02:00
parent e9143d6ebe
commit 0f70a1913c
2 changed files with 33 additions and 30 deletions
+21 -14
View File
@@ -39,6 +39,22 @@
.statusLive { .statusLive {
color: var(--error); color: var(--error);
}
/* LIVE badge — right-aligned in header */
.liveBadge {
display: flex;
align-items: center;
gap: 5px;
font-size: 11px;
font-weight: 800;
color: var(--error);
text-transform: uppercase;
letter-spacing: 0.08em;
background: rgba(248, 113, 113, 0.12);
padding: 3px 10px;
border-radius: 20px;
border: 1px solid rgba(248, 113, 113, 0.25);
animation: pulse 1.5s ease-in-out infinite; animation: pulse 1.5s ease-in-out infinite;
} }
@@ -182,6 +198,11 @@
letter-spacing: 4px; letter-spacing: 4px;
} }
.scoreLive {
font-size: 28px;
color: var(--text-primary);
}
.kickoffCenter { .kickoffCenter {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@@ -447,20 +468,6 @@
animation: pulse 1.5s ease-in-out infinite; animation: pulse 1.5s ease-in-out infinite;
} }
/* Score + live tip stacked */
.scoreStack {
display: flex;
flex-direction: column;
align-items: center;
gap: 2px;
}
.liveTipCompare {
font-size: 11px;
color: var(--text-muted);
font-weight: 600;
letter-spacing: 0.03em;
}
/* Points badge */ /* Points badge */
.pointsBadge { .pointsBadge {
+12 -16
View File
@@ -84,13 +84,10 @@ export default function MatchCard({ match, onTip }: Props) {
return ( return (
<div className={`card ${styles.card} ${styles[`card_${state}`]} ${isLive ? styles.live : ''} ${glowClass}`}> <div className={`card ${styles.card} ${styles[`card_${state}`]} ${isLive ? styles.live : ''} ${glowClass}`}>
{/* Top row: Status/Group + Countdown right-aligned */} {/* Top row: Group left + Status/Countdown right */}
<div className={styles.topRow}> <div className={styles.topRow}>
{(isLive || isFinished) && ( {isFinished && (
<span className={`${styles.status} ${isLive ? styles.statusLive : ''}`}> <span className={styles.status}>{STATUS_LABELS[match.status] ?? match.status}</span>
{isLive && <span className={styles.liveDot} />}
{STATUS_LABELS[match.status] ?? match.status}
</span>
)} )}
{match.group && ( {match.group && (
<span className={styles.group}> <span className={styles.group}>
@@ -98,6 +95,12 @@ export default function MatchCard({ match, onTip }: Props) {
</span> </span>
)} )}
<span style={{ flex: 1 }} /> <span style={{ flex: 1 }} />
{isLive && (
<span className={styles.liveBadge}>
<span className={styles.liveDot} />
LIVE
</span>
)}
{(state === 'open' || state === 'tipped') && match.tippable && ( {(state === 'open' || state === 'tipped') && match.tippable && (
<span className={`${styles.countdownBadge} ${remainingMins < 60 ? styles.countdownUrgent : ''}`}> <span className={`${styles.countdownBadge} ${remainingMins < 60 ? styles.countdownUrgent : ''}`}>
{match.minutesUntilKickoff < 60 {match.minutesUntilKickoff < 60
@@ -131,16 +134,9 @@ export default function MatchCard({ match, onTip }: Props) {
{/* Center: Score or VS separator */} {/* Center: Score or VS separator */}
<div className={styles.scoreBox}> <div className={styles.scoreBox}>
{isFinished || isLive ? ( {isFinished || isLive ? (
<div className={styles.scoreStack}> <span className={`${styles.score} ${isLive ? styles.scoreLive : ''}`}>
<span className={styles.score}> {match.score.home ?? ''}&nbsp;:&nbsp;{match.score.away ?? ''}
{match.score.home ?? ''}&nbsp;:&nbsp;{match.score.away ?? ''} </span>
</span>
{isLive && hasTip && (
<span className={styles.liveTipCompare}>
Tipp: {match.userTip!.home}:{match.userTip!.away}
</span>
)}
</div>
) : ( ) : (
<span className={styles.vsSeparator}></span> <span className={styles.vsSeparator}></span>
)} )}