diff --git a/.memory/worklog.json b/.memory/worklog.json index 778f2c0..650b20e 100644 --- a/.memory/worklog.json +++ b/.memory/worklog.json @@ -1,18 +1,5 @@ { "entries": [ - { - "files_changed": 1, - "hash": "5c9c80e", - "message": "auto-save 2026-05-14 00:31 (~1)", - "ts": "2026-05-14T00:31:52+08:00", - "type": "commit" - }, - { - "files_changed": 1, - "message": "Claude 会话活跃 · 最近命令:claude · 1 项未提交变更 · 最近提交:auto-save 2026-05-14 00:31 (~1)", - "ts": "2026-05-13T16:33:09Z", - "type": "session-heartbeat" - }, { "files_changed": 3, "hash": "302b0ed", @@ -3251,6 +3238,19 @@ "message": "auto-save 2026-05-15 15:48 (~1)", "hash": "beeed42", "files_changed": 1 + }, + { + "ts": "2026-05-15T15:54:34+08:00", + "type": "commit", + "message": "auto-save 2026-05-15 15:54 (~4)", + "hash": "eabec39", + "files_changed": 4 + }, + { + "ts": "2026-05-15T07:54:47Z", + "type": "session-heartbeat", + "message": "Codex 会话活跃 · 最近命令:codex · 1 项未提交变更 · 最近提交:auto-save 2026-05-15 15:54 (~4)", + "files_changed": 1 } ] } diff --git a/docs/source-analysis.html b/docs/source-analysis.html index e06becb..c398e52 100644 --- a/docs/source-analysis.html +++ b/docs/source-analysis.html @@ -941,6 +941,16 @@ SubjectAsset {

变更记录

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

+
+
+

2026-05-15 · 登录页角色眼神幅度增强

+ UI +
+
+

改动:放大登录页动画角色的鼠标跟随瞳孔位移,并加大显示密码时眼睛整体看向目标的偏移;同时略微放大白眼球,避免瞳孔大幅移动时显得被裁切。

+

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

+
+

2026-05-15 · 登录页动画角色改回风格库原版几何结构

diff --git a/web/app/globals.css b/web/app/globals.css index b35b201..5fbb6ea 100644 --- a/web/app/globals.css +++ b/web/app/globals.css @@ -286,16 +286,16 @@ } .login-eye { position: relative; - width: 18px; - height: 18px; + width: 22px; + height: 22px; border-radius: 999px; background: white; overflow: hidden; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); } .login-eye--small { - width: 16px; - height: 16px; + width: 20px; + height: 20px; } .login-eye::after, .login-pupil::after { @@ -303,15 +303,15 @@ position: absolute; left: 50%; top: 50%; - width: 7px; - height: 7px; + width: 8px; + height: 8px; border-radius: 50%; background: #2d2d2d; transform: translate(var(--eye-x), var(--eye-y)); transition: transform 0.08s linear, opacity 0.2s ease; } .login-eye::after { - margin: -3.5px 0 0 -3.5px; + margin: -4px 0 0 -4px; } .login-pupil { position: relative; @@ -392,24 +392,24 @@ transform: skewX(0deg) translateY(-10px); } .login-page[data-mood="peek"] .login-eyes--purple { - left: 50px; - top: 20px; + left: 40px; + top: 14px; } .login-page[data-mood="peek"] .login-eyes--black { + left: 2px; + top: 20px; +} +.login-page[data-mood="peek"] .login-eyes--orange { + left: 68px; + top: 48px; +} +.login-page[data-mood="peek"] .login-eyes--yellow { left: 10px; top: 28px; } -.login-page[data-mood="peek"] .login-eyes--orange { - left: 80px; - top: 55px; -} -.login-page[data-mood="peek"] .login-eyes--yellow { - left: 20px; - top: 35px; -} .login-page[data-mood="peek"] .login-eye::after, .login-page[data-mood="peek"] .login-pupil::after { - transform: translate(-5px, -4px); + transform: translate(-8px, -6px); } .login-page[data-mood="error"] .login-characters-container { animation: login-stage-breathe 7s ease-in-out infinite, login-shake 0.28s ease-in-out 2; diff --git a/web/app/login/page.tsx b/web/app/login/page.tsx index 412580a..0ae0ff4 100644 --- a/web/app/login/page.tsx +++ b/web/app/login/page.tsx @@ -33,7 +33,7 @@ export default function LoginPage() { const centerY = window.innerHeight / 2 const nextX = Math.max(-1, Math.min(1, (event.clientX - centerX) / centerX)) const nextY = Math.max(-1, Math.min(1, (event.clientY - centerY) / centerY)) - setEyeOffset({ x: nextX * 5, y: nextY * 3 }) + setEyeOffset({ x: nextX * 8, y: nextY * 5.5 }) } window.addEventListener("pointermove", onPointerMove) return () => window.removeEventListener("pointermove", onPointerMove)