diff --git a/.memory/worklog.json b/.memory/worklog.json index d91369b..222387b 100644 --- a/.memory/worklog.json +++ b/.memory/worklog.json @@ -1,18 +1,5 @@ { "entries": [ - { - "files_changed": 4, - "hash": "3026319", - "message": "auto-save 2026-05-14 01:00 (+2, ~2)", - "ts": "2026-05-14T01:00:24+08:00", - "type": "commit" - }, - { - "files_changed": 2, - "message": "Claude 会话活跃 · 最近命令:claude · 2 项未提交变更 · 最近提交:auto-save 2026-05-14 01:00 (+2, ~2)", - "ts": "2026-05-13T17:03:10Z", - "type": "session-heartbeat" - }, { "files_changed": 7, "hash": "3684917", @@ -3251,6 +3238,19 @@ "message": "auto-save 2026-05-15 16:16 (~1)", "hash": "e262285", "files_changed": 1 + }, + { + "ts": "2026-05-15T16:22:15+08:00", + "type": "commit", + "message": "auto-save 2026-05-15 16:22 (~1)", + "hash": "36eb205", + "files_changed": 1 + }, + { + "ts": "2026-05-15T08:24:47Z", + "type": "session-heartbeat", + "message": "Codex 会话活跃 · 最近命令:codex · 1 项未提交变更 · 最近提交:auto-save 2026-05-15 16:22 (~1)", + "files_changed": 1 } ] } diff --git a/docs/source-analysis.html b/docs/source-analysis.html index cb87a0a..b8a8287 100644 --- a/docs/source-analysis.html +++ b/docs/source-analysis.html @@ -942,6 +942,17 @@ SubjectAsset {

变更记录

这个记录不是 git log 的替代品。它记录“产品理解发生了什么变化、影响了哪些源码、你以后描述需求时该怎么说”。后续每次改功能都要补一条。

+
+
+

2026-05-15 · 登录页角色取消默认上下浮动

+ UI +
+
+

问题:角色舞台默认挂了 login-stage-breathe 无限循环,导致四个角色在登录页一直上下移动。

+

改动:移除默认呼吸动画,角色平时固定贴底;错误态只保留短暂横向抖动,成功态保留一次性反馈动画。

+

影响:web/app/globals.cssdocs/source-analysis.html

+
+

2026-05-15 · 登录页角色组件重构

diff --git a/web/app/globals.css b/web/app/globals.css index 6b58f52..9c30a60 100644 --- a/web/app/globals.css +++ b/web/app/globals.css @@ -204,7 +204,6 @@ height: 400px; transform: translateX(-50%) scale(0.74); transform-origin: bottom center; - animation: login-stage-breathe 7s ease-in-out infinite; } .login-figure { position: absolute; @@ -412,7 +411,7 @@ transform: translate(-8px, -6px); } .login-character-stage[data-mood="error"] .login-characters-container { - animation: login-stage-breathe 7s ease-in-out infinite, login-shake 0.28s ease-in-out 2; + animation: login-shake 0.28s ease-in-out 2; } .login-character-stage[data-mood="error"] .login-eye { height: 10px; @@ -442,10 +441,6 @@ .login-character-stage[data-mood="success"] .login-yellow-mouth path { d: path("M0 6 Q20 18, 40 18 Q60 18, 80 6"); } -@keyframes login-stage-breathe { - 0%, 100% { translate: 0 0; } - 50% { translate: 0 -8px; } -} @keyframes login-shake { 0%, 100% { translate: 0 0; } 33% { translate: -5px 0; } @@ -465,7 +460,6 @@ } } @media (prefers-reduced-motion: reduce) { - .login-characters-container, .login-character-stage[data-mood="error"] .login-characters-container, .login-character-stage[data-mood="success"] .login-characters-container { animation: none;