Skip to content

feat(quick-start): redesign character creation entry - #303

Open
huyanxius wants to merge 6 commits into
1024XEngineer:mainfrom
huyanxius:feat/274-quick-start-entry
Open

feat(quick-start): redesign character creation entry#303
huyanxius wants to merge 6 commits into
1024XEngineer:mainfrom
huyanxius:feat/274-quick-start-entry

Conversation

@huyanxius

@huyanxius huyanxius commented Aug 13, 2026

Copy link
Copy Markdown
Collaborator

重构 Quick Start 的角色创建入口:收紧为单行底部输入器,用风格提示替代角色样例卡,并增加只描述角色外形与身份的轮换灵感和逐字镜像动效。生成服务、路由、导出与异常处理均保持原样。

依赖 #302;该 PR 合并后,本 PR 的差异会自动收敛为 Quick Start 专属提交。

Why

原入口包含冗余说明、无意义像素装饰和过高输入框,视觉重心分散;角色示例与真实生成能力也容易产生误导。

Changes

  • 删除入口标题说明、装饰像素图与无效辅助文案。
  • 使用三张风格提示卡,选中后填入对应像素风格描述并消散隐藏。
  • 首句只显示一次,随后循环八条角色身份、外形、服装和配饰灵感。
  • 输入后切换为常驻“用文字塑造你的角色……”。
  • 将母版、输入和生成操作收进底部单行 composer。

Implementation

  • refactor(ui): extract shared kinetic copy #302 的公共整句字幕基础上叠加 KineticCopyCycle:支持消息替换、循环起点、可选前缀与逐字镜像进退场。
  • 保留 service.startstartWithUploadedTemplate、导航、错误处理、ExportButton 和运行态逻辑。

Verification

  • npm test --prefix frontend -- src/shared/ui/kinetic-copy.test.tsx src/pages/quick-start/index.test.tsx src/features/account-panel/index.test.tsx --configLoader runner:3 files / 47 tests passed
  • npm run typecheck --prefix frontend:passed
  • git diff --check:passed
  • 本轮界面已由用户确认,不重复执行视觉验收

Screenshots

Desktop

Quick Start entry

Scope

Related Issues

Refs #274
Refs #301

The account panel owned a reusable line transition inside the feature.

Move the existing renderer and styles into shared UI and keep account timing intact.

Other product surfaces can now consume the same line-level motion boundary.
The extracted transition needs direct coverage outside the account panel.

Assert both lines, phase classes, accessibility state, and timing indexes.

The shared animation contract can now change without silent markup drift.
The previous entry mixed decorative copy with a tall form and unclear role examples.

Introduce a bottom composer, style starters, rotating role ideas, and layered character motion.

Creation services, routes, export behavior, and error handling remain unchanged.
The new entry layout and motion states need focused regression coverage.

Cover timing, prompt replacement, card dissolution, composer layout, and submission paths.

The tests protect the UI behavior without expanding into generation internals.
@vercel

vercel Bot commented Aug 13, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
windup Ready Ready Preview Aug 14, 2026 4:43am

@codecov

codecov Bot commented Aug 13, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 87.95181% with 10 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
frontend/src/shared/ui/kinetic-copy-cycle.tsx 85.48% 0 Missing and 9 partials ⚠️
frontend/src/pages/quick-start/index.tsx 94.44% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@fennoai fennoai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Found one accessibility issue in the new rotating Quick Start heading. The focused test command could not run because frontend/node_modules is absent and the local vitest binary is not executable.

Comment thread frontend/src/pages/quick-start/index.tsx
The Quick Start pull request needs a concrete visual reference for reviewers.

Add the approved desktop entry state captured from the local feature branch.

Reviewers can inspect the layout without repeating the visual acceptance pass.
@huyanxius

Copy link
Copy Markdown
Collaborator Author

@fennoai -claude 定位 CI 未过的问题,并执行最小化修复,并重跑 CI

@fennoai

fennoai Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

CI 已修复并全绿

Frontend checks 的失败点是 Check formattingoxfmt --check)。该步骤在 lint / typecheck / test 之前退出,因此掩盖了后面两处真实失败——本地跑完整流程后才暴露出来。三处已一并修复。

失败原因与修复

1. oxfmt --check 未通过(CI 报错点)

3 个文件不符合格式化规则:pages/quick-start/index.tsxpages/quick-start/index.test.tsxshared/ui/kinetic-copy-cycle.tsx。仅对这 3 个文件跑了 oxfmt,改动全部是换行与缩进,无逻辑变化。

2. app-color-system 测试失败(被 #1 掩盖)

pages/quick-start/index.tsx:320 的 composer 聚焦阴影内联了色值 rgb(29_37_31/14%),违反“产品页只用语义色令牌”的约束:

expect(content, `${path} contains a private color value`).not.toMatch(
  /#[0-9a-f]{3,8}\b|rgba?\(|hsla?\(|oklch\(/i,
)

index.css 新增 --shadow-app-composer-focus 令牌,页面改为 focus-within:shadow-[var(--shadow-app-composer-focus)],视觉效果不变。

3. app.test.tsx 2 个测试失败(被 #1 掩盖)

本 PR 按设计删除了入口标题「开始一条可追踪的制作流程」,但 app/app.test.tsx 仍以该文案断言受保护路由是否挂载。已将 4 处断言更新为新入口标题「想做一个什么角色」,断言意图(登录边界与路由挂载)保持不变。

验证

本地按 CI 相同顺序全量执行:

步骤 结果
npm run format:check passed(147 files)
npm run lint passed
npm run typecheck passed
npm run test:coverage 48 files / 514 tests passed

CI 在 8c0d6c0 上的重跑结果:

Check 结论
Frontend checks success
lint-and-test success
codecov/patch success
Vercel Preview Comments success

说明

  • 提交 8c0d6c0 已推送到 huyanxius:feat/274-quick-start-entry,CI 由 push 自动重跑,未使用 workflow re-run。
  • 未改动生成服务、路由、导出或运行态逻辑;产物改动仅为格式化、一个新色彩令牌和测试断言文案。
  • PR 当前 mergeable_stateblocked(检查已全绿,属评审/分支保护要求),非 CI 失败。
  • 未做视觉验收——本轮无界面行为变更。

修复 Frontend CI 的三处失败:

- `oxfmt --check`:按格式化器规则重排 quick-start 页面、其测试与
  `kinetic-copy-cycle` 的换行,无逻辑改动。
- `app-color-system`:composer 聚焦阴影改用新增的
  `--shadow-app-composer-focus` 语义令牌,移除页面内联色值。
- `app.test.tsx`:入口标题断言跟随本 PR 的新文案「想做一个什么角色」。
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