style: move kickoff time to card header, better date header spacing
- Kickoff time now in header row: "Gruppe A · 04:00 Uhr · in 61 Tagen" instead of centered between flags (avoids visual misalignment) - Date timeline headers: more top padding for balanced spacing between cards Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -77,17 +77,16 @@
|
|||||||
border: 1px solid rgba(75,183,248,0.15);
|
border: 1px solid rgba(75,183,248,0.15);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Kickoff row — above teams */
|
/* Kickoff badge in header row */
|
||||||
.kickoffRow {
|
.kickoffBadge {
|
||||||
text-align: center;
|
font-size: 12px;
|
||||||
margin-bottom: 8px;
|
font-weight: 700;
|
||||||
|
color: var(--text-secondary);
|
||||||
|
letter-spacing: 0.02em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.kickoffTime {
|
.topRowSpacer {
|
||||||
font-size: 12px;
|
flex: 1;
|
||||||
font-weight: 600;
|
|
||||||
color: var(--text-secondary);
|
|
||||||
letter-spacing: 0.03em;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* VS separator */
|
/* VS separator */
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ 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 (only Live/Finished) + Group + Countdown */}
|
{/* Top row: Group + Kickoff + Countdown */}
|
||||||
<div className={styles.topRow}>
|
<div className={styles.topRow}>
|
||||||
{(isLive || isFinished) && (
|
{(isLive || isFinished) && (
|
||||||
<span className={`${styles.status} ${isLive ? styles.statusLive : ''}`}>
|
<span className={`${styles.status} ${isLive ? styles.statusLive : ''}`}>
|
||||||
@@ -107,6 +107,10 @@ export default function MatchCard({ match, onTip }: Props) {
|
|||||||
{match.group.replace('GROUP_', 'Gruppe ')}
|
{match.group.replace('GROUP_', 'Gruppe ')}
|
||||||
</span>
|
</span>
|
||||||
)}
|
)}
|
||||||
|
{!isFinished && !isLive && (
|
||||||
|
<span className={styles.kickoffBadge}>{formatKickoff(match.utcDate)}</span>
|
||||||
|
)}
|
||||||
|
<span className={styles.topRowSpacer} />
|
||||||
{(state === 'open' || state === 'tipped') && match.tippable && (
|
{(state === 'open' || state === 'tipped') && match.tippable && (
|
||||||
match.minutesUntilKickoff < 60 ? (
|
match.minutesUntilKickoff < 60 ? (
|
||||||
<span className={`${styles.countdown} ${remainingMins < 5 ? styles.countdownUrgent : ''}`}>
|
<span className={`${styles.countdown} ${remainingMins < 5 ? styles.countdownUrgent : ''}`}>
|
||||||
@@ -118,13 +122,6 @@ export default function MatchCard({ match, onTip }: Props) {
|
|||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Kickoff time — above the teams row */}
|
|
||||||
{!isFinished && !isLive && (
|
|
||||||
<div className={styles.kickoffRow}>
|
|
||||||
<span className={styles.kickoffTime}>{formatKickoff(match.utcDate)}</span>
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
|
|
||||||
{/* Teams + Score */}
|
{/* Teams + Score */}
|
||||||
<div className={styles.matchRow}>
|
<div className={styles.matchRow}>
|
||||||
{/* Home */}
|
{/* Home */}
|
||||||
|
|||||||
@@ -89,7 +89,7 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 12px;
|
gap: 12px;
|
||||||
padding: 4px 0;
|
padding: 12px 0 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dateLine {
|
.dateLine {
|
||||||
|
|||||||
Reference in New Issue
Block a user