Skip to content

Stats-flutter v1.3.0 - UI/UX overhaul

Choose a tag to compare

@Maicarons Maicarons released this 15 Oct 12:32
· 30 commits to main since this release

Stats-flutter v1.3.0 · UI/UX overhaul / 界面与体验升级

冲「专业、克制的统计分析工作台」重做了一遍表现层与交互层。统计内核 packages/statkit 未改动,计算口径与 v1.2 完全一致;这是一个可以放心替换旧版本的界面升级。

亮点 / Highlights

  • 🎨 设计地基:新增 design_tokens.dart(间距 / 圆角 / 字号 / 动效 / 语义色),重写 app_theme.dart,明暗两套主题同等优先级。
  • 🔤 字体本地打包:内置 Inter(400/500/600/700,拉丁与数字),中文回退系统字体;移除 google_fonts,离线启动不再掉字体、不再有首屏 FOUT。数值统一启用等宽数字(tabular figures)。
  • 🧩 通用组件库:AppCard SectionHeader StatTile/StatChip EmptyState LoadingSkeleton AnalysisTile ParamVarPicker SignificanceBadge ChartCard + AdaptiveNavScaffold。
  • 🔍 分析中心:32 项分析 / 8 个分类可折叠分组,支持搜索、最近使用、收藏(本地持久化)。
  • 📊 报告与图表:自绘表格(等宽数字、数值右对齐、表头吸顶、斑马纹、横向滚动);p 值按阈值着色 + 星级 + 文字标注(色盲友好);分区可一键复制;HTML / Markdown 导出带新配色、深色模式与打印样式。
  • 📱 响应式:断点 600 / 840 / 1200,正文最大宽度 960 居中;手机底部导航 ↔ 宽屏侧栏(状态保持);375 / 768 / 1024 / 1440 四档无横向滚动。
  • ✨ 动效:FadeForwards 页面转场、骨架屏加载,全局响应系统「减少动态效果」设置。
  • 🌏 双语:ARB 各 576 条文案;学习课程与题库内容双语;版本号从 AppInfo 读取,与 pubspec.yaml 一致。
  • ♿ 可访问性:明暗两套正文对比度达 AA、交互元素满足 44×44 触摸目标、图标按钮带 tooltip 与语义标签、状态不只靠颜色区分。

顺带修掉的缺陷 / Bug fixes

  • 组件主题(按钮 / 标签 / Tab / 导航栏)此前使用裸 TextStyle,真机上会退回系统字体而不是 Inter。
  • 未选中的 chip 标签几乎不可见(覆盖了默认颜色,对比度仅 1.05)。
  • 收藏分析项时,新插入的收藏区块会把已展开的分类折叠回去(列表元素缺少稳定 key)。
  • 答题页底部按钮在 375px 宽度下溢出 15px。

质量 / Quality

  • flutter analyze:无告警
  • flutter test:72 项全部通过(widget / 单元 / 无障碍 / 响应式回归)
  • 视觉基线:8 张 golden(学习页明·暗·宽屏、测试页明·暗、课程详情明·暗、自适应导航),基线由 Windows 生成,CI 上以 --exclude-tags golden 排除,本地用 flutter test --tags golden 验证

构建环境 / Requirements

  • Flutter 3.41.9 stable(Dart SDK ^3.11.5)
  • statkit 0.4.0(本地 path 依赖,未变更)

产物 / Artifacts

CI 会为本次发布构建并附加:Android APK、Windows x64(zip)、Linux x64(tar.gz)、macOS(zip)。


完整变更清单 / Full changelog:git log app-v1.2.0..app-v1.3.0