Files
fitness-coach/miniprogram/pages/plan-detail/plan-detail.wxss
wm b94eb706ff feat: Kinetic Dark 设计语言 + Lucide 图标迁移 + 首页轻量个性化
- 建立 Lucide 子集 iconfont(49 字形),全站 emoji 替换为 fc-icon 组件
- 重塑 Design Token(冷中性近黑底 + Volt 荧光绿 #B6F24E),消除硬编码颜色
- 首页登录后个性化:我的计划 / 我的收藏 / 今日推荐(纯前端复用现有 API)
- 后端 DEFAULT_EMOJI→Lucide 名,PALETTE 对齐 Kinetic Dark 语义色板
- 修复 person-standing 缺失字形;14 个官方组合 seed emoji 全部映射到现有字形
2026-07-22 21:38:56 +08:00

51 lines
2.4 KiB
Plaintext

.page { min-height: 100vh; background: var(--bg-grad); padding-bottom: 160rpx; }
.header { padding: 32rpx; border-bottom: 1rpx solid var(--line); }
.header__emoji {
width: 120rpx; height: 120rpx; border-radius: 28rpx;
display: flex; align-items: center; justify-content: center; font-size: 64rpx;
}
.header__name { font-size: 44rpx; font-weight: 700; margin-top: 20rpx; }
.header__desc { font-size: 26rpx; color: var(--text-2); margin-top: 12rpx; line-height: 1.5; }
.header__meta { font-size: 24rpx; color: var(--text-2); margin-top: 16rpx; }
.list { display: flex; flex-direction: column; gap: 16rpx; }
.list__item { position: relative; }
.list__card { width: 100%; }
.list__remove {
position: absolute; right: 12rpx; top: 12rpx; z-index: 5;
background: var(--danger); color: var(--accent-on);
font-size: 22rpx; padding: 8rpx 18rpx; border-radius: 999rpx;
}
.empty { color: var(--text-3); font-size: 26rpx; text-align: center; padding: 120rpx 0; }
.empty-page { min-height: 100vh; background: var(--bg-grad); }
.empty-box { display: flex; flex-direction: column; align-items: center; padding: 100rpx 40rpx; }
.empty-box__emoji {
width: 150rpx; height: 150rpx; border-radius: 36rpx;
background: var(--surface-2); display: flex; align-items: center; justify-content: center;
font-size: 80rpx;
}
.empty-box__t { font-size: 28rpx; color: var(--text-2); margin-top: 32rpx; text-align: center; }
.empty-box__btn {
margin-top: 40rpx; padding: 22rpx 64rpx; border-radius: 999rpx;
background: linear-gradient(135deg, var(--gold) 0%, var(--gold-2) 100%);
color: var(--accent-on); font-weight: 700; font-size: 30rpx;
}
.actionbar {
position: fixed; left: 0; right: 0; bottom: 0;
display: flex; gap: 16rpx; padding: 20rpx 24rpx;
background: var(--bar-bg);
backdrop-filter: blur(12px);
border-top: 1rpx solid var(--line);
padding-bottom: calc(20rpx + env(safe-area-inset-bottom));
}
.btn {
flex: 1; display: flex; align-items: center; justify-content: center;
border-radius: 999rpx; padding: 24rpx 10rpx; font-size: 28rpx; font-weight: 700;
}
.btn--gold { background: linear-gradient(135deg, var(--gold) 0%, var(--gold-2) 100%); color: var(--accent-on); }
.btn--ghost { background: var(--surface-2); color: var(--text); border: 1rpx solid var(--line); flex: 0 0 auto; width: 180rpx; }
.btn--del { background: var(--danger-soft); color: var(--danger); border: 1rpx solid var(--danger-soft); flex: 0 0 auto; width: 180rpx; }