Files
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

67 lines
2.3 KiB
Plaintext

<view class="page">
<navbar title="{{mode === 'edit' ? '编辑计划' : '新建计划'}}" show-back intercept-back bind:back="onBackRequest" />
<view class="section">
<view class="preview" style="background: linear-gradient(135deg, {{color}}26, var(--surface));">
<view class="preview__emoji" style="background: {{color}}22; color: {{color}};"><fc-icon name="{{emoji}}" size="48" color="{{color}}" /></view>
<view class="preview__name" style="color: {{color}};">{{name || '计划名称'}}</view>
<view class="preview__desc">{{description || '计划描述(选填)'}}</view>
</view>
<view class="field">
<view class="field__label">计划名称</view>
<input
class="field__input"
value="{{name}}"
placeholder="例如:居家增肌 12 周"
placeholder-class="ph"
maxlength="20"
bindinput="onName" />
</view>
<view class="field">
<view class="field__label">计划描述</view>
<textarea
class="field__area"
value="{{description}}"
placeholder="简单描述你的训练目标(选填)"
placeholder-class="ph"
maxlength="120"
auto-height
bindinput="onDesc" />
</view>
<view class="field">
<view class="field__label">图标</view>
<scroll-view scroll-x class="emoji-row">
<view
wx:for="{{emojis}}"
wx:key="*this"
class="emoji {{emoji === item ? 'emoji--active' : ''}}"
style="{{emoji === item ? 'border-color:' + color + '; background:' + color + '22;' : ''}}"
data-emoji="{{item}}"
bindtap="onPickEmoji">
<fc-icon name="{{item}}" size="44" color="{{emoji === item ? color : 'var(--text)'}}" />
</view>
</scroll-view>
</view>
<view class="field">
<view class="field__label">主题色</view>
<view class="colors">
<view
wx:for="{{colors}}"
wx:key="*this"
class="swatch {{color === item ? 'swatch--active' : ''}}"
style="background: {{item}};"
data-color="{{item}}"
bindtap="onPickColor"></view>
</view>
</view>
</view>
<view class="savebar">
<view class="savebar__btn" bindtap="onSave">保存计划</view>
</view>
</view>