依据:刘总 2026-09-18 令「两项全做」——样板页标杆先行 + 全量 token 迁移纪律 + 3 类动效全铺
配套:VI 落地四件docs/delivery/evidence/vi/VI落地四件-v1.md、动效规范miniprogram-v2/docs/动效规范-v1.0.md
var(--color-*)(全局 app.wxss 已定义)或 vi-tokens.wxss 补全令牌。rgba(),但色值必须取规范色(#F5F1E8/#2B2620/#6B6259 等),不得用非规范色。hotel-booking 的 --red: var(--color-primary) 中 --color-primary 全局未定义,已修正为 var(--color-gold)。新增别名前先 grep 确认全局存在。motion.wxss 已定义的类(全局已 @import),不得自造 .press/.bh 之外的按压类(规范按压统一 mo-press;主按钮吸附 motion-magnetic)。grep 本文件裸色值归零。| 旧局部别名 / 裸值 | 应改为 | 说明 |
|---|---|---|
--red / var(--color-primary) | var(--color-gold) | 主色=金;--color-primary 全局不存在(已修 bug) |
--accent(新增) | var(--color-accent) | 藏红重音(vi-tokens 新增,占比≤10%) |
--gold | var(--color-gold) #C9A96E | |
--paper | var(--color-bg) #F5F1E8 | |
--ink | var(--color-text-primary) #2B2620 | |
--muted | var(--color-text-secondary) #6B6259 | |
--white | var(--color-surface) #FFFFFF | 原 #FFFDF8 非规范 |
--line | var(--color-border) #E8E2D6 | 原 rgba(43,38,32,.24) |
--soft | var(--color-fill) #F5F0E6 | |
--green | var(--color-success) #4A7C59 | |
--warn | var(--color-warning) #C9862B | |
--danger | var(--color-danger) #B3261E | |
--info | var(--color-info) #5B7A99 | |
--lake #4A7C8F | var(--color-info) #5B7A99 | 🔴 原非规范色 |
裸 #FFFDF8 | #FFFFFF / var(--color-surface) | 🔴 非规范 |
裸 #565656 | var(--color-text-disabled) #C4BBAF | 🔴 非规范(按压态) |
裸 rgba(107,107,107,.06) | rgba(107,98,89,.06) | 🔴 非规范灰(藏文水印) |
裸 rgba(255,253,248,.55) | rgba(255,255,255,.55) | 🔴 非规范白(卡片底) |
按文件名字母序切 5 批,每席领一批(≤20 文件/批):
| 批 | 文件范围(首字母) | 预估文件数 | 建议席位 |
|---|---|---|---|
| B1 | a–c(address/agreement/category-*) | ~20 | 小冈 |
| B2 | c–h(certificates…/hotel-booking 除外) | ~20 | 一号 |
| B3 | h–o(home/local-scene…/orders) | ~20 | 阿仁 |
| B4 | o–s(order-* / package-* / profile / scene-*) | ~18 | 波波 |
| B5 | s–w(settings/share-* / verify / wish-*) | ~16 | 小齐(验收) |
迁移顺序:先改文件顶部page{...}局部 token 块为全局引用(见样板hotel-booking.wxss第 2–16 行改法),再消除散落裸 hex,最后 `grep -nE '#[0-9a-fA-F]{3,6}|rgba\(' 本文件确认归零(功能性 rgba 须色值合规)。
| 类 | WXML 接法 | 触发 | TS |
|---|---|---|---|
motion-magnetic | <button class="submit motion-magnetic" hover-class="is-pressed"> | 小程序 hover-class 按下自动加 is-pressed | 无需 JS |
mo-sheet | <view class="confirm-sheet mo-sheet {{open?'is-open':''}}"> + 遮罩 .confirm-mask.is-open | setData({open:true/false}) | openConfirm/closeConfirm |
motion-skeleton | <view wx:else class="motion-skeleton motion-skeleton-card"> | 数据未到时 wx:if 切骨架 | skeletonDelay(this,600)(>600ms 才闪) |
mo-fade(轻量淡入) | 已被 mo-toast(含 is-show/is-leaving/is-yielding 状态机)覆盖,浮层统一用 mo-toast | setData({toastShow:true}) | notify() |
降级:低端机utils/motion.ts的reducedMotion()自动给page加.mo-reduced,所有动效退化为立即可见(不白屏)。
hotel-booking.wxss:局部 token 块改引用全局 --color-*;消除 #565656/rgba(107,107,107,.06)/rgba(255,253,248,.55);新增 .confirm-mask/.confirm-sheet(mo-sheet)样式。hotel-booking.wxml:submit 加 motion-magnetic+hover-class="is-pressed"+bindtap="openConfirm";房型列表 wx:if="{{!__moSkeleton}}" 真 / wx:else 骨架;新增 mo-sheet 确认抽屉。hotel-booking.ts:skeletonDelay 驱动骨架;openConfirm/closeConfirm 切换抽屉。grep 样板页裸 hex 归零;motion-magnetic/mo-sheet/motion-skeleton 命中;.mo-reduced 降级可用。