feat(ui): polished dashboard profile cards, remove manage button
This commit is contained in:
@@ -92,14 +92,18 @@ code { background: var(--bg); padding: .15rem .4rem; border-radius: 4px; font-si
|
||||
.stat { white-space: nowrap; }
|
||||
|
||||
/* Dashboard cards */
|
||||
.dashboard-card { padding: 1.25rem; }
|
||||
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; margin-top: .75rem; }
|
||||
.stat-item { display: flex; flex-direction: column; align-items: center; gap: .1rem; }
|
||||
.stat-num { font-size: 1.3rem; font-weight: 700; color: var(--text); }
|
||||
.stat-label { font-size: .75rem; color: var(--text-muted); }
|
||||
.stat-sent { color: var(--sent); }
|
||||
.stat-delivered { color: var(--delivered); }
|
||||
.stat-received { color: var(--received); }
|
||||
.dashboard-card { padding: 1.5rem; transition: transform .15s, box-shadow .15s; }
|
||||
.dashboard-card:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,.08); }
|
||||
.dc-header { display: flex; align-items: center; gap: .6rem; margin-bottom: 1rem; }
|
||||
.dc-icon { font-size: 1.6rem; }
|
||||
.dc-header h3 { font-size: 1.1rem; margin: 0; }
|
||||
.dc-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: .25rem; text-align: center; padding-top: .75rem; border-top: 1px solid var(--border); }
|
||||
.dc-stat { display: flex; flex-direction: column; gap: .15rem; }
|
||||
.dc-num { font-size: 1.4rem; font-weight: 700; color: var(--text); }
|
||||
.dc-label { font-size: .7rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: .04em; }
|
||||
.dc-sent { color: var(--sent); }
|
||||
.dc-delivered { color: var(--delivered); }
|
||||
.dc-received { color: var(--received); }
|
||||
|
||||
/* Postcard grid */
|
||||
.postcard-card { display: flex; gap: 1rem; background: var(--card-bg); border: 1px solid var(--border); border-radius: 8px; padding: .75rem; transition: box-shadow .15s; }
|
||||
|
||||
@@ -4,31 +4,30 @@
|
||||
<h1>👋 欢迎,{{ user.username }}</h1>
|
||||
|
||||
<section class="section">
|
||||
<div class="section-header">
|
||||
<h2>我的 Profiles</h2>
|
||||
<a href="/profiles" class="btn btn-sm">管理 Profiles</a>
|
||||
</div>
|
||||
{% if profiles %}
|
||||
<div class="card-grid">
|
||||
{% for p in profiles %}
|
||||
<a href="/profiles/{{ p.id }}/postcards" class="card dashboard-card">
|
||||
<div class="dc-header">
|
||||
<span class="dc-icon">📮</span>
|
||||
<h3>{{ p.nickname }}</h3>
|
||||
<div class="stats-grid">
|
||||
<div class="stat-item">
|
||||
<span class="stat-num">{{ stats[p.id].total }}</span>
|
||||
<span class="stat-label">总计</span>
|
||||
</div>
|
||||
<div class="stat-item">
|
||||
<span class="stat-num stat-sent">{{ stats[p.id].sent }}</span>
|
||||
<span class="stat-label">寄出</span>
|
||||
<div class="dc-stats">
|
||||
<div class="dc-stat">
|
||||
<span class="dc-num">{{ stats[p.id].total }}</span>
|
||||
<span class="dc-label">总计</span>
|
||||
</div>
|
||||
<div class="stat-item">
|
||||
<span class="stat-num stat-delivered">{{ stats[p.id].delivered }}</span>
|
||||
<span class="stat-label">送达</span>
|
||||
<div class="dc-stat">
|
||||
<span class="dc-num dc-sent">{{ stats[p.id].sent }}</span>
|
||||
<span class="dc-label">寄出</span>
|
||||
</div>
|
||||
<div class="stat-item">
|
||||
<span class="stat-num stat-received">{{ stats[p.id].received }}</span>
|
||||
<span class="stat-label">收到</span>
|
||||
<div class="dc-stat">
|
||||
<span class="dc-num dc-delivered">{{ stats[p.id].delivered }}</span>
|
||||
<span class="dc-label">送达</span>
|
||||
</div>
|
||||
<div class="dc-stat">
|
||||
<span class="dc-num dc-received">{{ stats[p.id].received }}</span>
|
||||
<span class="dc-label">收到</span>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
Reference in New Issue
Block a user