骨架屏呼吸动画用独立亮度层
```text
稍亮遮罩: 透明 → 微亮 → 透明 ← 唯一在动的 固定底色: 始终不透明、不变化 页面背景: 不会透出来
## 为什么不直接动整个骨架
- **直接改整个骨架的透明度**:会露出后面的页面背景,出现「两层页面」的感觉,观感不稳定。
- **`filter: brightness()`**:深浅主题下难以精确控制亮度,容易过曝或看不出变化。
- **独立亮度层**:亮度变化被约束在一个不透明的底上,深浅主题各自调一层颜色即可。
## 可迁移的判断
**动画要只动「会变的那一层」,固定不动的部分保持不透明。** 形状与质感由复用真实卡片结构保证一致,动画层只负责节奏感——两件事分开,改一个不会破坏另一个。
## 相关
- 浮层要收敛到一个共享primitive —— 同族:视觉层复用同一套结构
- [折叠动画要有收起态过渡](/wiki/agent-session/as-concept-%E6%8A%98%E5%8F%A0%E5%8A%A8%E7%94%BB%E8%A6%81%E6%9C%89%E6%94%B6%E8%B5%B7%E6%80%81%E8%BF%87%E6%B8%A1) —— 另一条「动画状态要显式设计」的经验
- 新建对话的hero要淡入入场而非加载态