compact member card
This commit is contained in:
@@ -473,52 +473,16 @@
|
|||||||
<span class="donut-label">Overall</span>
|
<span class="donut-label">Overall</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="member-stats">
|
<div class="member-stats compact">
|
||||||
<div class="stat-group-lbl">This week</div>
|
<div class="mstat" title="Points this week: {s.pointsEarned} · Cash: £{Number(s.moneyEarned || 0).toFixed(2)} · Pocket money: {pocketMoneyByMember.get(s.memberId) ?? 0}">
|
||||||
<div class="stat-row">
|
<span class="mstat-tag">Week</span>
|
||||||
<span class="stat-lbl">Points</span>
|
<span class="mstat-main"><b class="pts">{s.pointsEarned}</b> pts · <b class="cash">£{Number(s.moneyEarned || 0).toFixed(2)}</b> · {wkDone}/{wkTotal}</span>
|
||||||
<span class="stat-val pts">{s.pointsEarned}</span>
|
{#if (goals?.count ?? 0) > 0}<span class="mstat-goals" title={goals?.names.join(' · ')}>🎉{goals?.count}</span>{/if}
|
||||||
</div>
|
</div>
|
||||||
<div class="stat-row">
|
<div class="mstat dim" title="Points all time: {at?.points ?? s.pointsEarned} · Cash: £{Number(at?.cash ?? s.moneyEarned ?? 0).toFixed(2)} · Pocket money: {pocketMoneyAllTimeByMember.get(s.memberId) ?? 0}">
|
||||||
<span class="stat-lbl">Cash</span>
|
<span class="mstat-tag">All time</span>
|
||||||
<span class="stat-val cash">£{Number(s.moneyEarned || 0).toFixed(2)}</span>
|
<span class="mstat-main"><b>{at?.points ?? s.pointsEarned}</b> pts · <b>£{Number(at?.cash ?? s.moneyEarned ?? 0).toFixed(2)}</b> · {sc.done}/{sc.total}</span>
|
||||||
</div>
|
{#if (goalsAll?.count ?? 0) > 0}<span class="mstat-goals" title={goalsAll?.names.join(' · ')}>🎉{goalsAll?.count}</span>{/if}
|
||||||
<div class="stat-row">
|
|
||||||
<span class="stat-lbl">Done</span>
|
|
||||||
<span class="stat-val">{wkDone}/{wkTotal}</span>
|
|
||||||
</div>
|
|
||||||
<div class="stat-row">
|
|
||||||
<span class="stat-lbl">Goals 🎉</span>
|
|
||||||
<span class="stat-val goals" title={goals?.names.join(' · ')}
|
|
||||||
>{goals?.count ?? 0}</span
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
<div class="stat-row">
|
|
||||||
<span class="stat-lbl">Pocket Money</span>
|
|
||||||
<span class="stat-val pm">{pocketMoneyByMember.get(s.memberId) ?? 0}</span>
|
|
||||||
</div>
|
|
||||||
<div class="stat-group-lbl">All time</div>
|
|
||||||
<div class="stat-row">
|
|
||||||
<span class="stat-lbl">Points</span>
|
|
||||||
<span class="stat-val pts">{at?.points ?? s.pointsEarned}</span>
|
|
||||||
</div>
|
|
||||||
<div class="stat-row">
|
|
||||||
<span class="stat-lbl">Cash</span>
|
|
||||||
<span class="stat-val cash">£{Number(at?.cash ?? s.moneyEarned ?? 0).toFixed(2)}</span>
|
|
||||||
</div>
|
|
||||||
<div class="stat-row">
|
|
||||||
<span class="stat-lbl">Done</span>
|
|
||||||
<span class="stat-val">{sc.done}/{sc.total}</span>
|
|
||||||
</div>
|
|
||||||
<div class="stat-row">
|
|
||||||
<span class="stat-lbl">Goals 🎉</span>
|
|
||||||
<span class="stat-val goals" title={goalsAll?.names.join(' · ')}
|
|
||||||
>{goalsAll?.count ?? 0}</span
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
<div class="stat-row">
|
|
||||||
<span class="stat-lbl">Pocket Money</span>
|
|
||||||
<span class="stat-val pm">{pocketMoneyAllTimeByMember.get(s.memberId) ?? 0}</span>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -777,18 +741,18 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
gap: 0.85rem;
|
gap: 0.6rem;
|
||||||
margin: 3rem 0;
|
margin: 0.9rem 0 0.7rem;
|
||||||
}
|
}
|
||||||
.donut-wrap {
|
.donut-wrap {
|
||||||
position: relative;
|
position: relative;
|
||||||
width: 62px;
|
width: 54px;
|
||||||
height: 62px;
|
height: 54px;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
}
|
}
|
||||||
.donut-wrap canvas {
|
.donut-wrap canvas {
|
||||||
max-width: 62px;
|
max-width: 54px;
|
||||||
max-height: 62px;
|
max-height: 54px;
|
||||||
}
|
}
|
||||||
.donut-center {
|
.donut-center {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -819,6 +783,49 @@
|
|||||||
gap: 0.3rem;
|
gap: 0.3rem;
|
||||||
margin-bottom: 0.5rem;
|
margin-bottom: 0.5rem;
|
||||||
}
|
}
|
||||||
|
.member-stats.compact .mstat {
|
||||||
|
display: flex;
|
||||||
|
align-items: baseline;
|
||||||
|
gap: 0.4rem;
|
||||||
|
font-size: 0.76rem;
|
||||||
|
color: #374151;
|
||||||
|
background: rgba(255, 255, 255, 0.65);
|
||||||
|
border: 1px solid #e5e7eb;
|
||||||
|
border-radius: 8px;
|
||||||
|
padding: 0.28rem 0.5rem;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.member-stats.compact .mstat.dim {
|
||||||
|
opacity: 0.75;
|
||||||
|
}
|
||||||
|
.mstat-tag {
|
||||||
|
font-size: 0.6rem;
|
||||||
|
font-weight: 800;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.06em;
|
||||||
|
color: #9ca3af;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
.mstat-main {
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
.mstat-main b {
|
||||||
|
font-weight: 800;
|
||||||
|
}
|
||||||
|
.mstat-main b.pts {
|
||||||
|
color: #7c3aed;
|
||||||
|
}
|
||||||
|
.mstat-main b.cash {
|
||||||
|
color: #059669;
|
||||||
|
}
|
||||||
|
.mstat-goals {
|
||||||
|
margin-left: auto;
|
||||||
|
flex-shrink: 0;
|
||||||
|
font-weight: 700;
|
||||||
|
color: #059669;
|
||||||
|
}
|
||||||
.stat-row {
|
.stat-row {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
|||||||
Reference in New Issue
Block a user