auto-save 2026-05-15 23:10 (~4)
This commit is contained in:
@@ -1,18 +1,5 @@
|
||||
{
|
||||
"entries": [
|
||||
{
|
||||
"files_changed": 3,
|
||||
"message": "Codex 会话活跃 · 最近命令:codex · 3 项未提交变更 · 最近提交:auto-save 2026-05-14 05:16 (~3)",
|
||||
"ts": "2026-05-13T21:18:50Z",
|
||||
"type": "session-heartbeat"
|
||||
},
|
||||
{
|
||||
"files_changed": 3,
|
||||
"hash": "4d02dcb",
|
||||
"message": "auto-save 2026-05-14 05:21 (~3)",
|
||||
"ts": "2026-05-14T05:21:54+08:00",
|
||||
"type": "commit"
|
||||
},
|
||||
{
|
||||
"files_changed": 1,
|
||||
"message": "Claude 会话活跃 · 最近命令:claude · 1 项未提交变更 · 最近提交:auto-save 2026-05-14 05:21 (~3)",
|
||||
@@ -3264,6 +3251,19 @@
|
||||
"type": "session-heartbeat",
|
||||
"message": "Codex 会话活跃 · 最近命令:codex · 1 项未提交变更 · 最近提交:auto-save 2026-05-15 22:59 (~1)",
|
||||
"files_changed": 1
|
||||
},
|
||||
{
|
||||
"ts": "2026-05-15T23:05:20+08:00",
|
||||
"type": "commit",
|
||||
"message": "auto-save 2026-05-15 23:05 (+1, ~4)",
|
||||
"hash": "79c6c82",
|
||||
"files_changed": 5
|
||||
},
|
||||
{
|
||||
"ts": "2026-05-15T15:11:54Z",
|
||||
"type": "session-heartbeat",
|
||||
"message": "Codex 会话活跃 · 最近命令:codex · 1 项未提交变更 · 最近提交:auto-save 2026-05-15 23:05 (+1, ~4)",
|
||||
"files_changed": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -592,7 +592,7 @@
|
||||
<tbody>
|
||||
<tr><td><code>web/next.config.mjs</code></td><td>Next.js 构建配置:静态导出、图片不走优化、禁用开发环境左下角 Next Dev Indicator,避免本地登录页截图出现额外字母标识。</td></tr>
|
||||
<tr><td><code>web/app/page.tsx</code></td><td>产品工作台主状态:jobs、activeJobId、按 job 隔离的 selectedFrames/详情面板状态、clipboard、ReactFlow 节点和边;负责打开/找回画布工作面板。</td></tr>
|
||||
<tr><td><code>web/app/login/page.tsx</code></td><td>生产登录页:访问账号/访问密钥表单、保持会话、错误/成功状态;当前只在原版 Digital Oasis 动态背景上叠加一个组合登录框,桌面端左侧是动态角色、右侧是无任何界面文字的图标化登录表单,并在面板左上角展示官网 SKG 字标。</td></tr>
|
||||
<tr><td><code>web/app/login/page.tsx</code></td><td>生产登录页:访问账号/访问密钥表单、保持登录、错误/成功状态;当前只在原版 Digital Oasis 动态背景上叠加一个组合登录框,桌面端左侧是动态角色,右侧是图标化登录表单;面板左上角展示官网 SKG 字标和 <code>Marketing Studio</code> 系统标识。</td></tr>
|
||||
<tr><td><code>web/app/login/layout.tsx</code></td><td>登录路由专属 layout:覆盖全站默认网页标题和描述为空,避免 <code>/login</code> 继承工作台 metadata 后在页面源码里继续出现登录界面文字以外的文案。</td></tr>
|
||||
<tr><td><code>web/components/login/oasis-canvas.tsx</code></td><td>登录页全屏动态视觉层:用 iframe 直接承载下载包 <code>web/public/oasis-source/index.html</code> 的原 WebGPU / Three.js 草场源码;父级登录页只覆盖自己的文案和表单,并在捕获阶段把全局鼠标坐标同时用原生事件和 <code>postMessage</code> 转发给 iframe,避免登录面板或输入框遮挡时草地失去鼠标响应。</td></tr>
|
||||
<tr><td><code>web/public/oasis-source/index.html</code></td><td>从下载包 <code>remix-3d-website-the-digital-o</code> 复制来的原始视觉源码。嵌入登录页时会隐藏 demo 站自己的导航、文字和设置面板,保留原多段滚动背景变化、WebGPU 草场、景深、风动和鼠标交互源码;末端阶段保留,只禁用原 footer 出现时把 canvas 上移的逻辑,避免底部露黑边。</td></tr>
|
||||
@@ -947,6 +947,18 @@ SubjectAsset {
|
||||
<h2>变更记录</h2>
|
||||
<p>这个记录不是 git log 的替代品。它记录“产品理解发生了什么变化、影响了哪些源码、你以后描述需求时该怎么说”。后续每次改功能都要补一条。</p>
|
||||
<div class="changelog">
|
||||
<article class="change">
|
||||
<header>
|
||||
<h3>2026-05-15 · 登录页补系统标识和保持登录</h3>
|
||||
<span class="tag rose">UI</span>
|
||||
<span class="tag violet">Login</span>
|
||||
</header>
|
||||
<div class="body">
|
||||
<p><strong>问题:</strong>只放 SKG 字标还缺少具体系统识别;保持会话复选框没有文字说明;表单上方单独的小锁图标占位多余。</p>
|
||||
<p><strong>改动:</strong><code>web/app/login/page.tsx</code> 在 SKG 字标旁加入 <code>Marketing Studio</code> 系统标识,复选框旁恢复“保持登录”,并删除表单上方独立锁图标;<code>web/app/globals.css</code> 增加品牌标识组合布局与移动端尺寸。</p>
|
||||
<p><strong>影响:</strong><code>web/app/login/page.tsx</code>、<code>web/app/globals.css</code>、<code>docs/source-analysis.html</code>。</p>
|
||||
</div>
|
||||
</article>
|
||||
<article class="change">
|
||||
<header>
|
||||
<h3>2026-05-15 · 登录页加入 SKG 字标并增强角色立体感</h3>
|
||||
|
||||
@@ -400,16 +400,32 @@
|
||||
backdrop-filter: none;
|
||||
overflow: visible;
|
||||
}
|
||||
.login-skg-mark {
|
||||
.login-brand-cluster {
|
||||
position: absolute;
|
||||
left: 24px;
|
||||
top: 22px;
|
||||
z-index: 5;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
pointer-events: none;
|
||||
}
|
||||
.login-skg-mark {
|
||||
width: 126px;
|
||||
height: auto;
|
||||
opacity: 0.86;
|
||||
filter: invert(1) brightness(1.25) drop-shadow(0 10px 20px rgba(0, 0, 0, 0.45));
|
||||
pointer-events: none;
|
||||
}
|
||||
.login-system-mark {
|
||||
border-left: 1px solid rgba(255, 255, 255, 0.18);
|
||||
padding-left: 12px;
|
||||
color: rgba(255, 255, 255, 0.66);
|
||||
font-size: 11px;
|
||||
font-weight: 500;
|
||||
letter-spacing: 0.18em;
|
||||
line-height: 1;
|
||||
text-transform: uppercase;
|
||||
text-shadow: 0 10px 22px rgba(0, 0, 0, 0.38);
|
||||
}
|
||||
.login-page--source .login-auth-icon {
|
||||
margin-bottom: 0;
|
||||
@@ -1212,11 +1228,21 @@
|
||||
justify-self: center;
|
||||
padding: 16px 18px 20px;
|
||||
}
|
||||
.login-skg-mark {
|
||||
.login-brand-cluster {
|
||||
left: 18px;
|
||||
top: 16px;
|
||||
gap: 9px;
|
||||
}
|
||||
.login-skg-mark {
|
||||
width: 98px;
|
||||
}
|
||||
.login-system-mark {
|
||||
max-width: 92px;
|
||||
padding-left: 9px;
|
||||
font-size: 9px;
|
||||
letter-spacing: 0.14em;
|
||||
white-space: normal;
|
||||
}
|
||||
.login-source-character-strip {
|
||||
height: 172px;
|
||||
margin-bottom: 12px;
|
||||
|
||||
@@ -82,17 +82,14 @@ export default function LoginPage() {
|
||||
<div className="login-oasis-shade" />
|
||||
<div className="login-source-overlay">
|
||||
<section className="login-auth-panel login-source-auth-panel login-source-combo-panel rounded-[8px]">
|
||||
<img className="login-skg-mark" src="/skg-logo-black.svg" alt="" aria-hidden="true" />
|
||||
<div className="login-brand-cluster" aria-hidden="true">
|
||||
<img className="login-skg-mark" src="/skg-logo-black.svg" alt="" />
|
||||
<span className="login-system-mark">Marketing Studio</span>
|
||||
</div>
|
||||
<div className="login-source-character-strip" aria-hidden="true">
|
||||
<AnimatedLoginCharacters mood={mood} eyeOffset={eyeOffset} />
|
||||
</div>
|
||||
<form className="login-source-form-pane w-full" onSubmit={onSubmit}>
|
||||
<div className="mb-4">
|
||||
<div className="login-auth-icon inline-flex h-9 w-9 items-center justify-center rounded-[8px] text-white">
|
||||
<LockKeyhole className="h-5 w-5" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="space-y-3">
|
||||
<label className="block">
|
||||
<span className="flex h-11 items-center gap-3 rounded-[8px] border border-white/10 bg-black/25 px-3 text-white transition focus-within:border-[#d6b36a] focus-within:bg-black/35 focus-within:ring-2 focus-within:ring-[#d6b36a]/25">
|
||||
@@ -149,6 +146,7 @@ export default function LoginPage() {
|
||||
disabled={disabled}
|
||||
onChange={(event) => setRemember(event.target.checked)}
|
||||
/>
|
||||
<span>保持登录</span>
|
||||
</label>
|
||||
|
||||
<div className="mt-4 min-h-9">
|
||||
|
||||
Reference in New Issue
Block a user