Skip to content

fix(hero): 消除首屏 slogan 二次跳动与加载闪烁,加纸色遮罩护可读性 - #29

Merged
realRoc merged 1 commit into
mainfrom
feat/hirerpg-slogan-polish
May 31, 2026
Merged

fix(hero): 消除首屏 slogan 二次跳动与加载闪烁,加纸色遮罩护可读性#29
realRoc merged 1 commit into
mainfrom
feat/hirerpg-slogan-polish

Conversation

@realRoc

@realRoc realRoc commented May 31, 2026

Copy link
Copy Markdown
Owner

Summary

修复首页 hero 首屏的两个体验问题,并保留原有 WebGL 星尘动效。

首屏 slogan 二次跳动 + 加载闪烁i18n.applyTo() 原本对每个 [data-i18n] 元素无条件 el.innerHTML = entry[lang]。即使当前语言与静态 HTML 一致,也会重建 .hl-1/.hl-2,重新触发 heroRise 入场动画(slogan 第二跳),并引起整页 reflow(加载闪一下)。新增 normMarkup 归一化比较(折叠空白 + 统一 <br/><br> 自闭合序列化差异),内容已一致则跳过重写;真正切换语言时内容不同,照常更新。

动效影响文字可读性 — hero 文字与持续运动的 #stage canvas 之间没有遮罩,星尘透过文字背后导致看久了发虚。新增 .hero-content::before 柔和纸色径向遮罩(z-index:-1,夹在 canvas 与文字之间),提升对比度,边缘仍透出星尘,动效完整保留。

Test Coverage

静态站无单测框架,以仓库 CI(site-ci)的静态检查为准。本地按 CI 步骤验证全部通过:docs bundle 自洽校验、静态服务冒烟(含 EN 镜像 en_US locale / 翻译 og:title / og.en.png 断言)、git diff --check 空白检查、PostHog token 扫描。

浏览器实测(gstack browse):

  • zh index.html + en index.html:首屏 [data-i18n] 元素重写次数从 128/128 全部重写 降到 0 次写入(加载零冗余 reflow)。
  • 真实切换语言路径(静态 zh + data-lang=en)仍正常 swap 到英文。
  • hero 标题计算样式 color: rgb(24,24,24)opacity:1,遮罩在纯纸底色上不可见、无方块伪影。

Pre-Landing Review

No issues found. Pass 1(SQL/数据安全、LLM 输出信任边界)均 N/A;innerHTML 为既有行为,本次仅新增跳过守卫以减少写入,normMarkup 仅用于比较(最坏退回原行为)。diff 31 行 < 50,specialists skipped。

Design Review

Design Review (lite): clean。本次改动正好消除「文字背后有动态图像」这一可读性硬伤,星尘动效与层次保留。

Test plan

  • CI 静态检查本地全通过(bundle 校验 / 冒烟 / 空白 / token)
  • 浏览器验证 zh+en 首屏零冗余 innerHTML 写入、切语言仍正常
  • hero 文字可读性提升、遮罩无伪影

🤖 Generated with Claude Code

i18n.applyTo() 原本对每个 [data-i18n] 元素无条件重写 innerHTML,即使
当前语言与静态内容一致也会重建 .hl-1/.hl-2,重新触发 heroRise 入场动画
(slogan 第二次跳)并引起整页 reflow(加载时闪一下)。新增 normMarkup
归一化比较:内容已一致则跳过重写,真正切换语言时仍照常更新。zh/en 首屏
实测从 128 个元素全部重写降到 0 次写入。

hero 文字与持续运动的 #stage canvas 之间无遮罩,星尘透过文字背后影响
可读性。新增 .hero-content::before 柔和纸色径向遮罩(z-index:-1,夹在
canvas 与文字之间),提升对比度,边缘仍透出星尘,动效完整保留。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@realRoc

realRoc commented May 31, 2026

Copy link
Copy Markdown
Owner Author

🤖 由 Codex 自动生成

建议

暂无额外建议。

结论:✅ 可以合并

@realRoc
realRoc merged commit d74b838 into main May 31, 2026
1 check passed
@realRoc
realRoc deleted the feat/hirerpg-slogan-polish branch May 31, 2026 14:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant