rtc_prd/.cursor/rules/user-preferences.mdc
seaislee1209 f9666d4aa3 feat: UI规范化 + 故事吸入动画 + 音乐页面优化
- 全局字体统一(Outfit/DM Sans), 头部/按钮/Toast规范化
- 故事详情页: Genie Suck吸入动画(标题+卡片一起缩小模糊消失)
- 书架页: bookPop弹出+粒子效果(三段式动画完整链路)
- 音乐页面: 心情卡片emoji换Material图标+彩色圆块横排布局
- 音乐页面: 进度条胶囊宽度对齐, 播放按钮位置修复, 间距均匀化
- 音乐播放: 接入just_audio, 支持播放暂停进度拖拽自动切歌
- 新增: iOS风格毛玻璃Toast, 渐变背景组件, 通知页面
- 阶段总结文档更新

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 19:34:53 +08:00

82 lines
3.4 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
description: User preferences for communication and workflow
globs:
alwaysApply: true
---
# 用户偏好(必须遵守)
## 语言
- 永远使用中文回复,无论用户用什么语言输入(用户使用语音输入时系统可能自动翻译为英文)
## 沟通方式
- 用户不懂代码,不需要看代码修改过程
- 不要打开代码文件让用户审阅
- 直接完成修改,只展示最终结果
- 用产品语言描述变更("改好了,刷新看效果"),而非技术语言
- 用户擅长产品思维和创造力,用这个层面和他沟通
## 进度存档机制(防丢上下文,必须遵守)
- **新对话开始时**:第一件事先读 `阶段总结/session_progress.md`,了解之前做到哪了
- **每完成一个阶段性任务后**:主动更新 `阶段总结/session_progress.md`,记录:
- 这次做了什么
- 做到哪一步了
- 下一步要干什么
- 遇到了什么问题
- **对话即将结束前**(比如用户说"先到这""下次继续"等):必须更新存档
- **格式要求**:保持简洁,用产品语言,不要贴大段代码
## Flutter 开发流程(必须遵守)
### 端口管理
- 启动 `flutter run -d chrome` 前,**必须**先杀掉旧进程并确认端口已释放
- 流程Stop-Process → 等3秒 → 确认端口空闲 → 再启动新进程
- 用完浏览器预览后,**必须**在做其他事之前先关闭 Flutter 进程释放端口
- 永远不要直接换端口来绕过占用,要先清理旧的
### 标准编译流程
```
# 1. 停旧进程
Stop-Process -Id $OLD_PID -Force -ErrorAction SilentlyContinue
Start-Sleep -Seconds 3
# 2. 确认端口空闲
netstat -ano | Select-String ":$PORT"
# 3. 用 web-server 模式启动不会自动弹Chrome窗口
flutter run -d web-server --web-port=$PORT --no-pub
# 4. 手动在 Cursor 内置浏览器打开地址
# browser_navigate → http://localhost:$PORT
```
### 浏览器管理(极其重要)
- **禁止**用 `flutter run -d chrome`,它会自动弹出系统 Chrome 窗口
- **必须**用 `flutter run -d web-server`,只启动服务不弹浏览器
- 用 Cursor 内置浏览器 (browser_navigate) 手动打开地址预览
- 关闭时:先把内置浏览器导航到 about:blank再停 Flutter 进程
- 如果不小心弹了系统 Chrome也要记得关掉
### 编译优化
- 如果只改了 Dart 代码(没加新依赖/asset用 `--no-pub` 跳过 pub get
- 如果添加了新 asset 文件,需要完整重新编译(不能 --no-pub
- Web-server 模式首次编译约 60-90s后续热重启约 20s
- Android 模拟器编译约 300s非必要不用最后验收时再用
### 网络与镜像源(必须遵守)
- 下载任何东西前,**优先使用国内镜像源**
- Flutter/Dart 包:设置环境变量后再执行
```
$env:PUB_HOSTED_URL = "https://pub.flutter-io.cn"
$env:FLUTTER_STORAGE_BASE_URL = "https://storage.flutter-io.cn"
```
- npm 包:使用淘宝镜像 `--registry=https://registry.npmmirror.com`
- pip 包:使用清华源 `-i https://pypi.tuna.tsinghua.edu.cn/simple`
- Gradle/Maven使用阿里云镜像已在 android/build.gradle.kts 配置)
- 如果镜像也失败,再尝试直连
### 资源/图片
- 新图片放入 assets/ 后必须重新完整编译才能生效
- HTML 原版图片在 assets/www/ 目录,如有问题先对照 HTML 代码里的引用路径
- 优先使用透明背景 PNG避免白色方块