- 建立 Lucide 子集 iconfont(49 字形),全站 emoji 替换为 fc-icon 组件 - 重塑 Design Token(冷中性近黑底 + Volt 荧光绿 #B6F24E),消除硬编码颜色 - 首页登录后个性化:我的计划 / 我的收藏 / 今日推荐(纯前端复用现有 API) - 后端 DEFAULT_EMOJI→Lucide 名,PALETTE 对齐 Kinetic Dark 语义色板 - 修复 person-standing 缺失字形;14 个官方组合 seed emoji 全部映射到现有字形
51 lines
2.4 KiB
Plaintext
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; }
|