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.tsx、web/app/globals.css、docs/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)