Skip to content

v0.2.0 - 美术与动画全面优化

Choose a tag to compare

@YJLZSL YJLZSL released this 20 Jul 16:21

灵犀学院 v0.2.0 — 美术与动画全面优化

本次版本聚焦视觉品质动画流畅度两大方向,对主题系统、吉祥物、页面视觉层次、动画曲线进行系统性升级,让"灵动丝滑"成为灵犀学院的核心体验。

🎨 四大优化方向

1. 主题系统加固

  • 新增 LingxiGradients.dark 实例:6 个语义渐变(mascotHero / streakFire / achievementGold / primarySurface / celebration / success)全部提供深色调适配,暗色模式视觉协调
  • 校准 LingxiColors.dark 对比度streakFireachievementGold 调亮以满足 WCAG AA ≥ 4.5:1 标准
  • 重构 LingxiElevations:新增 subtle / elevated / highlighted 3 档语义阴影,统一应用到 LingxiCard,移除 AnimatedPhysicalModel 改用 BoxDecoration.boxShadow

2. 吉祥物视觉升级

  • _MascotPainter 精细化绘制:身体改用径向渐变(mascotPrimary → 深紫),角部高光反射,眼睛瞳孔高光点
  • 6 种情绪状态差异化
    • idle:眨眼 + 瞳孔高光
    • happy:弧形眼 + 跳跃
    • thinking:问号浮动呼吸
    • sad:泪滴沿脸颊滑落动画
    • celebrate:10 粒子 × 4 段拖尾辐射
    • curious:放大镜光泽弧线
  • _AuraGlow 光环优化:使用 LingxiGradients.mascotHero 渐变,4 秒呼吸脉动(scale 0.95→1.05),RepaintBoundary 隔离避免重绘整个 MascotWidget

3. 页面视觉层次

  • 首页:hero 区 24/18/14 字号梯度,吉祥物响应式尺寸(桌面 200px / 移动 160px),快捷入口 48×48 圆角方形 + 语义色背景
  • 学习路径:CourseLevel 颜色扩展(L0-L4 各一色),4px 级别色条,渐变进度条,连接线 dashOffset 流光动画
  • 对话页:消息气泡差异化圆角(user 右下 4px / assistant 左下 4px),三段式波浪打字指示器,苏格拉底开关 AnimatedSwitcher 图标过渡
  • 课时页:进度条容器间距 12→16,测验反馈用 LingxiGradients.successmisconceptionRed 渐变,选项按钮 scale 0.98 按压反馈

4. 动画流畅度

  • SpringMotion 6 档对齐 Material Motion 3:micro ≤ 100ms / fast ≤ 150ms / default ≤ 200ms / gentle ≤ 250ms / slow ≤ 300ms / bouncy ≤ 350ms
  • bouncyCurve 修复 t=0 跳变 bug:原分段函数返回 0.5,改用阻尼振荡解析公式,超调 8.94%
  • ChatController 动态节流:首 token 立即刷新 / 后续 50ms 节流 / 结束强制刷新,确保流式响应即时可见且无丢失
  • staggered 入场动画LearningPathPage 课程卡片 50ms 延迟交错入场
  • PageView 切换过渡LessonPage 知识点切换添加 TweenAnimationBuilder 淡入 + scale 0.98→1.0
  • reduceMotion 降级:所有动画在 MediaQuery.disableAnimations 为 true 时正确降级为即时切换

🔧 修复与清理

  • 修复 page_transitions.dart L67 语法错误];);(原代码会导致编译失败)
  • 16 处 AnimationController 审计:vsync 与 dispose 全部合规
  • 文档全部中文化:架构设计.md / 前端重设计指南.md / 吉祥物设计.md / 代码百科.md
  • ProviderType 重构为 enhanced enum:持有 defaultBaseUrldefaultModel 属性
  • 移除未使用依赖:lottie / flutter_svg / flutter_highlight / intl / sqlcipher_flutter_libs / riverpod_annotation 等
  • mascot_painter.dart 合并到 mascot_widget.dart_MascotPainter 作为私有内部类
  • 删除冗余 .gitkeep 与冗余文档(HANDOVER.md / ci-badge-urls.md / lingxi-academy-ui-redesign-plan.md)

📚 文档同步

  • AGENTS.md 新增"主题系统约定"子章节
  • docs/代码百科.md 更新主题模块与吉祥物模块描述
  • README.md 简化与美化,修复 GitHub 链接
  • kAppVersionpubspec.yaml 版本号升级至 0.2.0

⚠️ 已知限制

  • 本机 Flutter SDK 不可用,无法运行 flutter analyze / flutter test / flutter build 验证,建议在完整 Flutter 环境中执行最终回归测试
  • 本 Release 不附带构建产物(无 APK / Windows / macOS 二进制),仅源代码 Release
  • 吉祥物 Rive 动画资源仍未完成,_MascotPainter 作为 fallback 实现

📦 升级指南

git pull origin main
git checkout v0.2.0
flutter pub get
flutter pub run build_runner build --delete-conflicting-outputs
flutter run

🙏 致谢

感谢 Material Motion 3 提供的动画规范参考,感谢所有为开源社区做出贡献的开发者们。


Full Changelog: eb63a74...v0.2.0