diff --git a/docs/【技术方案】游戏共创与作品Fork-2026-10-03.md b/docs/【技术方案】游戏共创与作品Fork-2026-10-03.md index aa0fc8725..71d24c2d7 100644 --- a/docs/【技术方案】游戏共创与作品Fork-2026-10-03.md +++ b/docs/【技术方案】游戏共创与作品Fork-2026-10-03.md @@ -465,8 +465,13 @@ A 路线里那个必须提前知道的互斥点已经按既有做法绕开:`cr - **角标成组、永不叠印**:代际 / 主干 / 当前作品 / 父代-子代 / ▶游玩数 统一放进 `.game-lineage-node__badges`(flex + gap + 可换行)。此前它们各自 `position: absolute`(代际左上、主干右上、「当前作品」在流内),在窄容器里会**互相叠印成乱码字形**(大纲行的「第 1 代」与「主干」);现在组内一律静态定位,重叠在结构上不可能发生。**2026-10-07 起两种形态都把该组放在封面下方**(画布卡片的信息区第一行),不再作为封面浮层。 - **缩略图统一 16:9**:大纲行的封面与画布同一比例(16:9,4.5rem 宽),不再被角标撑成窄竖条;行用 `min-height: 3.5rem` 做统一基线,标题最多 2 行 clamp → 同层行等宽、跨行等高,连线端点一致。 - **信息密度**:代际 + 主干 + 当前作品 + 父代/子代 由「三行」收敛成**一行角标组**,标题 2 行 clamp、作者一行 → 每行比改版前少一行。 - - **画布卡片版式与层高自适应(2026-10-07 追加,来自真机截图复盘)**: - - **层高按该层最高卡片**:布局新增输入 `cardHeights`(每个节点的卡片高度,由**纯函数** `estimateLineageCardHeight` 估算:基础高 + (标题行数−1)×行高,标题行数按字符宽度估、上限 2 行)。竖版 `第 N 层的 y = 上一层 y + 上一层最高卡片高度 + rowGap`,层内所有卡片取该层最大高度(同层等高,`min-height` 撑开),因此「同层里有一张 2 行标题的高卡」也不会被下一层压住;横版(窄屏图谱)槽位高取全局最大卡片高。**不测量 DOM**(纯函数可单测、离线复算,不会先渲染再重排抖动)。常量由真机校准:桌面 1 行 376px / 2 行 399px → 取 380 / +24;窄屏紧凑卡 1 行 350 / 2 行 373 → 取 352 / +24(估算 ≥ 实测,只多不少)。 + - **图谱卡 = 广场作品卡的同一个组件(2026-10-07 用户口径:「不是要长得像,而是就应该是广场卡」)**:画布节点卡与图下方「父代 / 子代」清单卡**都直接渲染** `@genarrative/shared/components` 的 `GameCard`(不是仿制样式、也不是 CSS 覆盖)。为此对共享卡做了**纯加法**扩展:`game` 参数放宽为结构化子集(按「字段是否在对象上」决定是否渲染该行,广场用法行为不变)、新增可选 `badges` 角标槽与 `className`。 + - **卡面不再有动作按钮**:「打开作品 / 开始共创」已从卡面移除(用户口径:看封面决定不了共创,必须点进去看)——**整卡就是入口**(`GameCard` 本身是 `