460 lines
65 KiB
Markdown
460 lines
65 KiB
Markdown
# MCN 短视频整合营销工作台 · DESIGN.md(V4 · 八条口径落进②段两份与原型)
|
||
|
||
> 项目 slug:`mcn-shortvideo-agent` | ③段(界面交互)第 3a 子步产出
|
||
> 本版是**第 6 步(把用户 2026-10-09~10-10 的八条口径落进②段两份与原型)**的绑定规范。⛔ 不是给 V3 打补丁,是按②段 V4 重出一版。
|
||
> 落点:`执行会话/目标-把八条已定口径落进②段两份与原型-fa6e07/ui/DESIGN.md`(目标目录内;⛔ 未写域外 `docs/pm/`)。
|
||
> 判据源:`product-planning/references/stage-delivery/SKILL.md`(含 §供给 / Gate-1)+ `references/execution-runbook.md` §2 + `references/layouts-tooling.md` §5.5。
|
||
> V4 的口径原文:`执行会话/目标-征询GPT对当前七页结构与操作路径的建议-b49e02/用户口径裁决-5条回应.md`(2026-10-09)+ `执行会话/目标-分析social-auto-upload项目,用于投放页与发布对象的判断-0ec0a07/用户口径追加-账号是两个概念.md`(2026-10-10)。
|
||
> 上一版原型只读对照:`执行会话/目标-导航改七项一层并重排功能归属(P8 并入复盘)-fc471a/ui/`(V3 原型与 `DESIGN.md`)。本版沿用其令牌与组件,⛔ 不覆盖 V3 文件。
|
||
|
||
---
|
||
|
||
## 〇、开工声明(声明制,四字段)
|
||
|
||
| 字段 | 内容 |
|
||
|---|---|
|
||
| 当前段与子步 | ③段 / 3a 视觉规范(D0 锚需求 → D1 定调 → Gate-1)→ 3b 原型 |
|
||
| 主干与挡位 | 供给=`oil-ui-pro`(**基础层**)+ 叠加层(本段自带样式库 `design-system-tiaoyue` 定调与令牌 + 本段自有判据)。挡位 **标准** |
|
||
| 依据文件 | `stage-delivery/SKILL.md` §供给 + §3a/§3b;`execution-runbook.md` §2;`layouts-tooling.md` §0/§1/§5.5;②段 `2a-产品功能-新版.md`/`2b-界面布局-新版.md` |
|
||
| 产出落点 | `ui/DESIGN.md`(本份)、`ui/mcn-workbench.html`(3b)、`ui/_tools/`、`ui/_gate_shots/` |
|
||
|
||
### 供给核对(runbook §2.0 · 步 −1,每轮必做)
|
||
|
||
| 步 | 动作 | 结果 |
|
||
|---|---|---|
|
||
| −1 | 确认 §供给 三处在位 | ✅ `references/layouts-tooling.md`、`references/execution-runbook.md` 都在位;定调与令牌档在位 1 套 `assets/design-systems/design-system-tiaoyue/` |
|
||
| −1b | 套名与上一版记录比对 | ✅ 上一版 `DESIGN.md` 选定 `design-system-tiaoyue`,本版**沿用同一套**(用户 2026-10-07 令「每次设计只选一套」)⇒ 不触发变更清单 |
|
||
| −1c | 可选档是否动用 | ⛔ **未动用** `assets/open-design/`(随后续口径可选)。它独有的四项(反 AI 味 / 无障碍 / 表单校验 / 动效纪律)**本次无逐项数值供给来源** —— 见 §五 缺口 1,⛔ 没有凭感觉编一套顶上 |
|
||
|
||
### V4 本轮改了什么(六条 · 骨架与令牌一格未动)
|
||
|
||
1. **P2 选题库**:分组控件加一层**类型**维度(选题/对标线索/评论洞察/数据异动/灵感),与**进度**(待做/在写/已用)正交;选题行多一列「类型」。⛔ 不新增「待整理」状态。
|
||
2. **P2 去掉「灵感速记」板块**(骨架 5 → 4 块):随手记本来就是全局可达的框架层入口(顶栏 `G-06`),写进来的东西落选题库。🔴 顺带订正 V3 遗留的一处文档打架(见 §五 缺口 8)。
|
||
3. **P3 资产库**:页面职责由「存拆解结果」改成「**统一管理**」;入库不限页(P2 拆解结果可就地入库)。骨架仍 4 块。
|
||
4. **P4 版本管理**:展开单位由「账号 × 平台」改成「**平台账号**」(一个平台账号一版)。
|
||
5. **P5 目标选择改成两级**:先选内容账号,再勾它下面的平台账号(渠道);数据摘要区由「目标账号数/目标平台数」改成「**目标渠道数/覆盖平台数**」;各版本块写死「**一个平台账号一版**(一版一路)」。
|
||
6. **P6**:画像六维收成**画像五维**(去掉「平台」这一维),**新增「平台账号」板块**(骨架 4 → 5 块):平台账号=发布渠道,每条带「平台 + 登录态 + 授权状态」,是内容账号下的子项(1 → N)。🔴 页面数、导航、流转 20 条**都不动**;业务板块总数仍是 **39**(P2 −1、P6 +1)。
|
||
|
||
### 页型判定(硬前置,SKILL.md §3b)
|
||
|
||
**全部 7 页都是工具型页面。** 依据:用户是天天来干活的 MCN 团队,每页都有人在里面完成一件事(决定先处理哪件 / 挑一条选题 / 存一条拆解 / 推一个环节 / 确认一次发布 / 改一份画像 / 写一条归因并核一条记录);没有一页是让人「看一眼就下决心」。
|
||
⇒ 本份零 `.eyebrow`、零 `.lead`、零 `.hero`,且 `body.is-marketing` 之外的类名一个不设。与②段 `2b` §二「本产品是工具型页面,不是营销页」一致。
|
||
|
||
---
|
||
|
||
## 一、设计契约(十二个字段)
|
||
|
||
### 1.1 项目级字段
|
||
|
||
**① 主用户**:MCN 机构的内容负责人(矩阵级决策)、编导与文案(选题与创作)、剪辑与投放(版本与发布)。依据①段 `1c-用户画像.md`(零访谈画像 —— 局限已登记在旧版 §四缺口 4,本版沿用)。
|
||
|
||
**② 主操作**:**逐页唯一**,照②段 `2b` §五 各页「主操作」原样落,本段未改一个(逐页见 1.2)。
|
||
|
||
**③ 必要内容(核对面)**:②段信息分档表逐页核对,见 1.2。只做**落位核对**(主屏常驻=零点击可见,可点入=一次点击可达),⛔ 不以它为由增删档位。
|
||
|
||
**④ 重复项的信息量**:四个主列表(账号矩阵 / 对标内容 / 资产条目 / 发布记录)是**满宽表格**,每行除「主标识 + 动作」外都带次级信息,逐页列在 1.2。
|
||
|
||
**⑤ 结构骨架(翻译面)**:
|
||
|
||
- **骨架档:主区 + 侧区**。理由:一级导航覆盖 7 个目的地、宽屏 ≥1024;选定套的外壳本身就是「侧栏 + 主区」的应用型外壳,两者同构。
|
||
- **导航层级:一层七项**(2026-10-09 按用户口径与 `2b` V3 §三 重做)。V2 做的是「3 个业务组 + 1 个跨组入口」,本版**把层级整个压平**:
|
||
- 七项按用户给的先后:**首页(P1)/选题(P2)/创作(P4)/投放(P5)/复盘(P7)/账号(P6)/资产(P3,排最后)**。
|
||
- ⛔ **零组标、⛔ 零跨组分隔线、⛔ 零第二层**。V2 的三个组标(找选题/走创作流水线/看矩阵复盘)与跨组线连同对应 CSS 一起删掉。
|
||
- 项名**逐字取用户口径**(首页/选题/创作/投放/复盘/账号/资产);页面自己的名字不变(矩阵总览/选题雷达/资产库/创作台/发布中心/账号画像/复盘台)。最要紧的一处:**导航叫「投放」,页面仍叫「发布中心」** —— 这一页只管内容发布与排期,⛔ 没有扩功能。
|
||
- 「资产排最后」是硬约束(用户明说);其余六项照用户给的先后。
|
||
- ⚠️ V2 遗留的「组名与短名怎么对应」这项待确认随之作废(组没了);**新冒出一个问号**:七项是否要另配一套两字短名 —— 现已按用户口径直接用全名,⛔ 本段没替用户起短名。
|
||
- **侧栏形态:药丸浮栏,宽 `64px`**(2026-10-10 用户令「左侧导航改回去」;V5 由 `128px` 改回设计供给的**基准形态**,相对 V4 是一处**显式改动**):
|
||
- 依据:`design-system-tiaoyue/SKILL.md` 行 95 逐字「左侧栏(`app-sidebar`,宽 `w-16`)」⇒ `w-16` = `64px`;第八轮实测值(栏 `64`/内衬 `3`/圆角 `100`/项 `56×78`/字 `12px-500-行高 16`)。
|
||
- V3 那条「按最长项名 2 字 + 徽章 + 余量」的推理不假,但它把栏做成了**横排**;用户令要的是**基准形态** ⇒ `128px` 与「图标在左、名字在右」一起推翻。
|
||
- `64px` 栏里放不下横排 ⇒ 导航项改成**竖排**:图标在上(`24px`)、名字在下(**两字常驻**,说明走悬停提示)。项 `56×78`、内衬 `3px`、圆角 `100px`(药丸)。
|
||
- 保住选定套的**圆角浮栏**性格(淡底、`1px` 淡描边、四周留白、随内容高、在列内垂直居中);⛔ 没有引入第二套配色或第二套圆角 —— 令牌全部来自 `design-system-tiaoyue`。
|
||
- 品牌名在 `64px` 里放不下(顶栏已写全称)⇒ **侧栏只留标记并居中**,`.sidebar .brand-name` 隐藏。
|
||
- ⚠️ **几何不在样式库内**(§供给 明写「自带样式库实测只到调色板级」)⇒ 栏宽是③段的判断,不是从包里抄的;取值按上条的基准实测值。改**一处** `--nav-w` 即可推翻(见 §七 修订记录 V5)。
|
||
- **每页收口形态(七页统一)**:`页面公共框架(Page Shell)` → `业务板块若干(从上到下)`。⛔ 本版继续**不要**上一版那层「功能入口卡」(`.sect-nav` / `.data-cards` / `.data-card`):`2b` §一第 2 条与 §九第 2 条明令撤掉,它的文字本来就是流转表的副本。跨页入口只留在两处:**侧栏**(七页一次点击可达)与**业务板块内的行级动作**(流转表就落在那里)。
|
||
- **密度目标:密集(8–32)**。理由:7 页都是一屏要放多行记录的工具型页面,`2b` P1 要求矩阵与今日待办**同时**常驻,宽松档放不下。同一页面只取这一档。
|
||
- 块间距 ≥ 块内间距的 2 倍:块间 `32px`、块内 `8/12/16px` ⇒ 比值 2.0–4.0 ✅。
|
||
|
||
**⑥ 交互清单**:见 §二 表 2.4(逐元素四列)。**它是唯一的交互真相源** —— 3b 实测、自检、变异对照都引这一张,⛔ 不另建一份。
|
||
|
||
**⑦ 状态覆盖六项**:见 1.3,逐页逐项有结论。
|
||
|
||
**⑧ 组件来源**:优先沿用选定套既有组件族,其次自创。⛔ 未参考 `teamOnly: true` 的族。清单见 §二 表 2.5。
|
||
|
||
**⑨ 响应式行为**:
|
||
|
||
| 断点 | 布局怎么变 |
|
||
|---|---|
|
||
| `>1024` | 侧栏 `64px` 药丸浮栏常驻(⛔ 宽度不随断点变)+ 主区 `minmax(0,1fr)` |
|
||
| `1001–1024` | 侧栏仍 `64px`;两栏分栏与满宽表格都不变;顶栏间距收到 `8px`;顶栏不折行 |
|
||
| `901–1000` | 同上,另:统计条最小宽 `132 → 96px`(4 格不折行) |
|
||
| `821–900` | 上述继续;另:两栏分栏 `.grid-main-side` → 单列(右栏被挤到 300px 以下就会折行) |
|
||
| `641–820` | 上述继续;另:统计条、表格列宽由 `auto` 收窄,主区内衬 `32 → 16px` |
|
||
| `≤640` | 侧栏**变成页头下方一条可横向滚动的标签条**(⛔ 不隐藏);导航项在这一档**还原成横排小标签**(图标+名字一行,⛔ 不竖排)、项高 `36px`;主区单列 |
|
||
|
||
**滚动容器**:整页不滚、**只有主区 `.view` 滚**。高度链三件套必须齐:`.app{height:100vh;grid-template-rows:minmax(0,1fr)}` + `.main{min-height:0;overflow:hidden}` + `.view{flex:1 1 auto;min-height:0;overflow:auto}`。少写一处 ⇒ 整页「滚不动」而不是「不滚」(上一版踩过并留档)。**判滚动四个容器都要核**:`window`/`html`/`body`/`.view`。
|
||
|
||
**⑩ 明确拒绝的模式**(≥3 条,每条可判定):
|
||
|
||
1、⛔ 不出现「眉标/大标题/灰色副标题」三段式标题区(判据:DOM 里 `.eyebrow` / `.lead` / `.hero` 三个类名出现次数为 0)。
|
||
2、⛔ 不用围合边框假装分组(判据:非控件元素里 `border` + `border-radius` 同时出现在同一「分组」用途上 ≥3 次即判不过;结构性容器靠底色差 + 多层阴影分层)。
|
||
3、⛔ 不给列表行套框、不给状态上整行底色(判据:行间只用 `border-top`;状态只出现在 `tag` 内)。
|
||
4、⛔ 不做**逐区块**入场编排(判据:`@keyframes` 至多 1 处;过渡只用 `transition`,⛔ 不用 `linear` / `ease`)。
|
||
5、⛔ 不可点的东西不长成可点样子(判据:页面里所有 `button` / `[role=button]` / `.btn*` 集合与 §二 表 2.4 的元素列做双向差集,差集为空)。
|
||
6、⛔ **不用内联样式表达「选中态」或覆盖「字号」**(判据:七页里 `[style*=border-color]`、`[style*=color]`、`[style*=font-size]` 的出现次数**都为 0**)。选中态全站**只有一套画法**:`.is-on` / `.is-active`(整块浅紫底 + `--accent-text` + 字重 600);字号只许走 `--fs-*` 七档。
|
||
7、⛔ **页面公共框架不许进板块计数、不许参与功能归属、不许占对象冻结计数**(判据:`.block` 数逐页等于 `FROZEN`;`.page-shell` 自身不带 `.block` / 不带 `.block-head h2`)。
|
||
8、⛔ **辅助入口区不许把流转表再写一遍**(判据:每页 `.shell-aux` 里的 `[data-page]` 元素 ≤1 个)。
|
||
|
||
**⑪ 验收标准(可观察可判定)**:
|
||
|
||
- 七页各自可达(`#/p/p1` … `#/p/p7` 直接打开都渲染出该页内容,不是空壳)。
|
||
- 表 2.4 每一行的「触发 → 反馈」都真发生过,无死按钮。
|
||
- 六态在每一页都能被看到(正常 / 加载 / 空 / 错误 / 禁用 / 无权限)。
|
||
- 宽视口 `1440×900` 与窄视口各留截图,横向溢出为 0。
|
||
- 页面上每个可点元素都能在表 2.4 里查到;表里没有的可点元素为 0。
|
||
|
||
**⑫ 明确拒绝的「编造」**:界面上不出现「示例 / 示意图 / 未接入 / 待核实」这类制作说明;也不把机器结论说成人已认可(如把「疑似原因」写成「已确认原因」)。
|
||
|
||
### 1.2 逐页字段(页面职责 / 主操作 / 必要内容落位 / 重复项信息量)
|
||
|
||
| 页 | 页面职责 | 主操作(唯一) | 必要内容的落位核对 | 重复项的次级信息 |
|
||
|---|---|---|---|---|
|
||
| P1 矩阵总览 | 让内容负责人在 1 分钟内决定**今天先处理哪一件** | 挑一件待办并进到那一件事 | 账号矩阵、今日待处理=零点击可见;异常值、本月最好、全局检索=一次点击可达 | 账号行=账号名 + 今日该发/已发/效果 + 异动标 |
|
||
| P2 选题雷达 | 让编导在 3 分钟内**找到一条能做的选题** | 把一条选题推进下一步 | 对标监控概览、对标内容、选题库=零点击可见;评论区洞察=一次点击可达;随手记=全局可达(框架层,⛔ 不占板块) | 对标行=标题 + 账号 + 倍数 + 时间;选题行=选题 + 类型 + 来源 + 状态 |
|
||
| P3 资产库 | 让编导在 2 分钟内**把资产条目管到位、或引用一条去创作**(⛔ 入库不限页,本页是统一管理的地方) | 管好一条 / 引用一条 | 分区切换、资产条目=零点击可见;单条详情、引用入口=一次点击可达 | 条目行=条目摘要 + 出处 + 草稿/已入库 + 采集时间 |
|
||
| P4 创作台 | 让编导在一条内容上**把当前环节推到下一环节** | 推进到下一环节 | 创作流程、当前环节工作区、AI 产出与采纳、当前内容上下文=零点击可见;资产引用、版本管理、录制卡片与画板=一次点击可达 | 版本行=vN + 语义名 + 时间 + 当前标记 |
|
||
| P5 发布中心 | 让投放**确认发出这一批版本** | 确认发布 | 检查结果、各版本与逐版编辑、确认发布=零点击可见;目标选择、发布记录=一次点击可达 | 版本行=内容账号·平台账号 + 字数 + 检查结论(一版一路) |
|
||
| P6 账号画像 | 让内容负责人**改好并保存一个内容账号的画像**,并管好它下面的平台账号(渠道) | 保存这一份画像 | 画像五维、账号列表=零点击可见;平台账号、记忆条目、关联内容=一次点击可达 | 账号行=账号名 + 平台账号数 + 内容数;平台账号行=平台 + 登录态 + 授权状态;记忆行=日期 + 来源 + 一句话 |
|
||
| P7 复盘台 | 让内容负责人**确认归因并写回这个账号**,顺带**核销一条发布记录** | 确认归因并回写 / 核销一条记录 | 表现数据、归因结论、确认与改判、待复盘项、回写目标提示、发布记录、对账核对区=零点击可见;历史复盘、单条溯源、商单与收支=一次点击可达 | 待复盘行=内容 + 发布账号 + 发布日 + 数据到没到;记录行=内容 + 确认人 + 时间 + 版本 + 状态 |
|
||
|
||
### 1.3 状态覆盖六项(逐页给结论)
|
||
|
||
判据源:`SKILL.md` 铁律 2 的六态清单。⚠️ 逐项**数值判据**出自供给可选档 `craft/state-coverage.md`,本轮未动用可选档 ⇒ **该项本次无供给来源**,故只给「有没有、长什么样」的结论,不编阈值。
|
||
|
||
| 页 | loading | empty | error | success | disabled | 无权限 |
|
||
|---|---|---|---|---|---|---|
|
||
| P1 | ✅ 矩阵数据加载中(骨架行) | ✅ 还没接入账号(给「去账号画像建第一个账号」) | ✅ 数据源不可用(显时间戳 + 重试) | ✅ 默认态 | ✅ 无可处理项时待办区禁用并说明 | ✅ 非管理员看利润字段时的遮罩说明 |
|
||
| P2 | ✅ 拉取对标中 | ✅ 监控名单为空(给「录一个对标号」) | ✅ 拉取失败(退路=手工录入) | ✅ 默认态 | ✅ 未选账号时「转入创作」禁用 | ✅ —(不适用:本页对所有角色开放) |
|
||
| P3 | ✅ 条目加载中 | ✅ 该分区还没有条目(给「去拆解一条」) | ✅ 读取失败(重试) | ✅ 默认态 | ✅ 无出处条目「入库」禁用(门禁) | ✅ —(不适用) |
|
||
| P4 | ✅ 环节生成中 | ✅ 该环节还没产出(给「开始这一步」) | ✅ 本步失败(保留已产出 + 重试该步) | ✅ 默认态 | ✅ 文案与封面缺一,「进检查态」禁用(封面缺只提示;F6 守卫) | ✅ —(不适用) |
|
||
| P5 | ✅ 检查中 | ✅ 还没有可发布的版本(回 P4) | ✅ 检查自身失败 ⇒ **按不过处理**(fail-closed) | ✅ 无硬拦、可发 | ✅ 有硬拦项时「确认发布」禁用 | ✅ 未授权账号的版本标「无发布权限」并禁用该版 |
|
||
| P6 | ✅ 画像加载中 | ✅ 还没有画像(给「建画像」) | ✅ 保存失败(保留编辑内容) | ✅ 保存成功提示 | ✅ 只读角色时字段禁用 | ✅ 非本人负责账号:可看不可改 |
|
||
| P7 | ✅ 读数据中 | ✅ 还没有可复盘的内容 | ✅ 数据读不到 ⇒ 转手工录入表现 | ✅ 回写成功提示 | ✅ **未确认归因(`confirmed` 未置)时「回写」禁用**(F10 前置开关) | ✅ —(不适用) |
|
||
| P7 后半(原 P8) | ✅ 记录加载中 | ✅ 还没有发布记录 | ✅ 读取失败(重试) | ✅ 核销成功 | ✅ 未选中记录时「核销」禁用 | ✅ 利润列对非管理员隐藏(列级遮罩) |
|
||
|
||
> 口径:`disabled` 与 `无权限` 是两件事 —— 前者是「当前条件不满足」(自己能解开),后者是「角色不允许」(自己解不开)。界面文案分开写,⛔ 不拿「不可用」一句话糊过去。
|
||
> 🔴 V4 追加:P6 的「平台账号」块**逐行**给「登录态 + 授权状态」(状态标),未登录/未授权时行内动作改成「去登录」。它落在六态的 `disabled` 里(条件未满足、自己能解开),⛔ 不新造第七种态。
|
||
|
||
---
|
||
|
||
## 二、令牌表
|
||
|
||
### 2.1 三层结构(`primitive → semantic → component`)
|
||
|
||
组件层只引语义层,语义层只引 primitive;⛔ 无孤立 token。
|
||
|
||
### 2.2 色值(来源=选定套 `design-system-tiaoyue` 亮色基线 · 9 页 clipper 实测)
|
||
|
||
| 语义 token | 值 | 用途 |
|
||
|---|---|---|
|
||
| `--paper` | `#faf9f5` | 页面底(暖白纸感) |
|
||
| `--surface` | `#ffffff` | 面板 / 卡片底 |
|
||
| `--surface-soft` | `#f7f6f1` | 次级面(表头、只读块、侧栏组标底) |
|
||
| `--ink` | `#1a1a18` | 主文字 |
|
||
| `--ink-mute` | `#57564f` | 次级文字 |
|
||
| `--ink-faint` | `#8a887f` | 三级文字 / 占位 / 组标(⛔ 只用于非正文) |
|
||
| `--line` | `#e7e5dc` | 分隔线(行间 `border-top`) |
|
||
| `--line-soft` | `#efeee7` | 更弱的分隔(块内) |
|
||
| `--accent` | `#9E4CFF` | 主强调色(品牌紫) |
|
||
| `--accent-text` | `#963dff` | accent 当**文字**时用这一档 |
|
||
| `--on-accent` | `#FFFFFF` | 主色上的文字 |
|
||
| `--ok` | `#3d7a4f` | 成功态 |
|
||
| `--err` | `#b4453a` | 错误态 |
|
||
| `--warn` | `#8a5a00` | 提醒 / 异常值 / 软劝。**本项目追加**:选定套亮色基线没有 warn 档,而②段 P5 要求「硬的拦住、软的只提醒」要有两种可见区分 ⇒ 新增一档并登记实测对比度 |
|
||
|
||
**强调色允许位置**:① 主按钮填充底;② 侧栏当前项与分段控件选中项的**整块浅底**;③ 链接文字(用 `--accent-text`);④ 焦点环。⛔ 不允许出现在页面大背景、卡片底、图标填充(除主按钮内图标)、任何渐变。全屏面积 ≤5%。
|
||
|
||
**禁止**:⛔ 无紫→粉渐变;⛔ 无装饰性发光;⛔ 状态色只用红/绿/黄三系,不做装饰。
|
||
|
||
### 2.3 几何 · 字体 · 间距 · 字阶 · 高度层级 · 脚手架
|
||
|
||
| 项 | 值 | 来源 / 说明 |
|
||
|---|---|---|
|
||
| 字体 | `"PingFang SC", -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", "Noto Sans SC", sans-serif` | 选定套实测:源站 `@font-face` 为 0 条,走系统字体栈 |
|
||
| 标题字体(展示体) | `"Songti SC", "Noto Serif SC", "Source Han Serif SC", "SimSun", Georgia, serif`(正文仍走黑体栈);字重 ≤600 | 沿用上一版方案 A:宋体标题 + 黑体正文=两族对照,符合「字族 ≤2–3」。⛔ 未用 Inter / Roboto / `system-ui` 关键字 |
|
||
| 等宽数字 | `font-variant-numeric: tabular-nums` | 所有数字列,防刷新抖动 |
|
||
| 圆角 | 大容器 `24px`/面板 `16px`/行与小件 `14px`/输入框 `9px`/按钮 `26px`(药丸) | 全部取自选定套 |
|
||
| 间距 · 主刻度 | `4 / 8 / 16 / 24 / 32 / 64` | 供布局。块间用 32,块内 8/12/16 |
|
||
| 间距 · 微网格 | `2 / 4 / 6 / 8 / 12` | **仅供**按钮内衬、徽章内衬、图标间隙 |
|
||
| 块间距 / 块内间距 | 32 / 8–16 ⇒ 比值 2.0–4.0 | 判据要求 ≥2 ✅ |
|
||
| 字阶定值表(七档) | `--fs-12` 12 / `--fs-14` 14 / `--fs-16` 16 / `--fs-18` 18 / `--fs-20` 20 / `--fs-24` 24 / `--fs-30` 30 | 相邻差 2/2/2/2/4/6 全部 ≥2 ✅;每档只一个定值 |
|
||
| 高度层级(每层多层叠层) | L1(行/内嵌):`0 1px 1px rgba(26,26,24,.03), 0 2px 6px -2px rgba(26,26,24,.06)`<br>L2(面板):`0 1px 2px rgba(26,26,24,.04), 0 8px 20px -12px rgba(26,26,24,.14), 0 18px 40px -18px rgba(26,26,24,.10)`<br>L3(浮层):`0 2px 4px rgba(26,26,24,.05), 0 14px 32px -12px rgba(26,26,24,.18), 0 32px 64px -24px rgba(26,26,24,.16)` | 每层 ≥2 层叠层 ✅ |
|
||
| 布局脚手架 | 侧栏 `64px` 药丸浮栏(随内容高、列内垂直居中)+ 主区 `minmax(0,1fr)`;主数据块走满宽表格(`.ds-table.tbl-dense`);两栏分栏 `.grid-main-side` 宽比 `1.35fr : .9fr` | 骨架档=主区+侧区,已落到具体列宽 |
|
||
| 容器与对齐锚点 | 主区左右内衬 `32px`;表格与块标题左锚点同一条线;数字列右对齐且右锚点对齐块右内衬 | 判据要求「对齐锚点」写明 |
|
||
| 浮层 | 居中面板,宽 `min(560px, calc(100vw - 32px))`,内衬 `24px`;**只有一个可见关闭出口**(右上 ×);遮罩与 `Esc` 也可关,但不计为可见出口 | 满足 Gate-3「可见关闭出口唯一」 |
|
||
|
||
### 2.4 交互清单(唯一交互真相源 · 四列)
|
||
|
||
**通用规则**(适用于下面所有浮层):每个浮层**只有一个可见关闭出口**(右上 ×,ID `X-close`);遮罩点击(`X-mask`)与 `Esc` 也能关,但**不视为可见出口**;关闭后焦点回到触发它的那个按钮,Tab 只在层内循环。下表不逐浮层重复这三条。
|
||
|
||
| ID | 元素 | 触发 | 反馈 | 何时不可点 |
|
||
|---|---|---|---|---|
|
||
| G-05 | 侧栏七个功能项(一层七项,一项一页;⛔ 无组标、⛔ 无第二层) | 点击 | 切到该页(hash 变、主区重绘);当前项转整块浅紫底 + `--accent-text` + 600 | 从不可点 |
|
||
| G-06 | 顶栏「随手记」 | 点击 | 打开随手记浮层,焦点进输入框 | 从不可点 |
|
||
| G-08 | 两处「假设」徽章(P1 页头 / P7「商单与收支」块头) | 点击 | 打开假设浮层(逐条给复核人 / 时机 / 落点) | 从不可点 |
|
||
| X-close | 各浮层右上 × | 点击 | 关闭浮层;焦点回触发它的按钮 | 从不可点 |
|
||
| X-mask | 浮层遮罩(层外空白区) | 点击 | 关闭浮层;焦点回触发它的按钮 | 没有浮层时不渲染 |
|
||
| SP-01…SP-07 | 各页**页面标题行右侧**的 icon 按钮(页面级动作:刷新本页数据;⛔ 不另起一行) | 点击 | 提示「已刷新本页数据」;不改数据 | 从不可点 |
|
||
| STATE-NORMAL | 状态面板 ·「回到正常内容」 | 点击 | 该页回 `ok` 态,主操作恢复 | 仅在非 `ok` 态出现 |
|
||
| STATE-RETRY | 出错态 ·「重试一次」 | 点击 | 提示已重试(示意);不改数据 | 仅在 `error` 态出现 |
|
||
| STATE-GO | 空态 ·「去〈某页〉」 | 点击 | 跳到该页;面板关 | 仅在 `empty` 态且该页定义了去处时出现 |
|
||
| R-01 | 随手记浮层 · 输入框 | 输入 | 内容非空时「保存」由禁用转可用 | 从不可点(可输入) |
|
||
| R-02 | 随手记浮层 · 保存 | 点击 | 写入选题库「待做」;提示 1.5s 后消失;浮层关闭 | 输入为空时 `:disabled` |
|
||
| R-03 | 随手记浮层 · 取消 | 点击 | 关闭,不写入;焦点回触发按钮 | 从不可点 |
|
||
| A-01 | 假设浮层 · 两处假设条目 | 展示 | 只读,逐条给复核人 / 时机 / 落点 | 不适用(只读,非控件) |
|
||
| P1-01 | 今日待处理项(每条) | 点击 | 跳到该待办所属的页(选题类→P2、在写→P4、待审→P5、待复盘→P7、待核销→P7 的记录区) | 从不可点 |
|
||
| P1-02 | 账号矩阵行名 | 点击 | 跳到 P6 并选中该账号(传 `accountId`) | 从不可点 |
|
||
| P1-03 | 账号矩阵行 ·「看复盘」 | 点击 | 跳到 P7 并选中该账号的待复盘内容(传 `accountId`) | 该账号没有可复盘内容时禁用 |
|
||
| P1-04 | 异常值提示条目 | 点击 | 跳到 P2 并带 `filter=异常值` 定位(传 `benchmarkId`) | 无异常值时整块显示空态 |
|
||
| P1-05 | 本月最好的一条 | 点击 | 跳到 P7 的该条复盘 | 无数据时禁用 |
|
||
| P1-06 | 全局检索 · 输入框 | 输入 | 结果列表按关键字过滤;无结果显示空态行 | 从不可点(可输入) |
|
||
| P1-07 | 全局检索 · 结果项 | 点击 | 跳到该结果所属的页;关键字清空 | 无结果时不渲染可点项 |
|
||
| P2-01 | 监控概览 ·「低粉爆款」数 | 点击 | 筛选对标内容列表(只看爆款) | 数为 0 时禁用 |
|
||
| P2-02 | 监控概览 ·「异常值」数 | 点击 | 筛选对标内容列表(只看异常) | 数为 0 时禁用 |
|
||
| P2-03 | 对标内容行 ·「发起拆解」 | 点击 | 跳到 P3 并带 `benchmarkContentId`(预填原文与出处) | 从不可点 |
|
||
| P2-04 | 评论区洞察 · 展开/收起 | 点击 | 展开子区并开始抓取(显示抓取中) | 从不可点 |
|
||
| P2-05 | 评论区洞察 ·「抓取评论」 | 点击 | 进入抓取中 → 出候选选题列表 | 抓取中时禁用 |
|
||
| P2-06 | 候选选题 ·「采纳」 | 点击 | 该条进选题库「待做」;候选行标为已采纳 | 该条已采纳时禁用 |
|
||
| P2-07 | 候选选题 ·「忽略」 | 点击 | 候选行标为已忽略(可恢复) | 该条已忽略时禁用 |
|
||
| P2-08 | 选题库 · 进度 tab(待做/在写/已用) | 点击 | 列表切换成该进度组 | 从不可点 |
|
||
| P2-09 | 选题行 ·「转入创作」 | 点击 | 建/切当前 `Content` 并跳到 P4;选题转「在写」(流转 8) | 未选账号时禁用(行内说明) |
|
||
| P2-10 | 选题行 ·「拆解」 | 点击 | 跳到 P3 并把该选题当素材 | 从不可点 |
|
||
| P2-12 | 选题库 · 类型 tab(全部/选题/对标线索/评论洞察/数据异动/灵感) | 点击 | 列表按该类型过滤(与进度维度正交,两个维度的筛选同时生效) | 从不可点 |
|
||
| P2-AUX | 辅助入口区 ·「开始创作」 | 点击 | 跳到 P4(不带条目,落在当前内容上) | 从不可点 |
|
||
| P3-01 | 分区切换 tab(角度/结构/开场白/标题) | 点击 | 条目列表换成该分区 | 从不可点 |
|
||
| P3-02 | 条目行 | 点击 | 右区显示单条详情(原文 / 出处 / 草稿标记) | 从不可点 |
|
||
| P3-03 | 单条详情 ·「入库」 | 点击 | 无出处条目被门禁挡并说明原因;有出处的转「已入库」 | **无出处或原文缺失时禁用**(门禁) |
|
||
| P3-04 | 引用入口 ·「引用到创作台」 | 点击 | 跳到 P4 并把该条目加进资产引用区(流转 9) | 从不可点 |
|
||
| P4-01 | 创作流程 · 七个环节(逐项) | 点击 | 切到该环节;只许回退到已完成的环节 | 未到达的后续环节禁用 |
|
||
| P4-02 | 当前环节工作区 · 内容输入框 | 输入 | 「开始这一步」由禁用转可用 | 从不可点(可输入) |
|
||
| P4-03 | 当前环节工作区 ·「开始这一步」 | 点击 | 生成中 → 产出写进「AI 产出与采纳」(⛔ 不进正文) | 输入为空时禁用 |
|
||
| P4-04 | 资产引用 ·「从资产库拿一条」 | 点击 | 展开选择器;选中后收进引用区并显示来源 | 资产库为空时禁用并说明 |
|
||
| P4-05 | 资产引用 ·「移除引用」 | 点击 | 从引用区移除该条 | 引用区为空时不渲染 |
|
||
| P4-06 | 「推进到下一环节」 | 点击 | 当前环节 +1;流程与工作区跟着变 | 文案与封面缺一、进检查态时禁用(封面缺只提示;F6 守卫) |
|
||
| P4-07 | AI 产出与采纳 ·「采纳」 | 点击 | 机器产出并入本环节正文 | 无未裁决产出时禁用 |
|
||
| P4-08 | AI 产出与采纳 ·「驳回」 | 点击 | 正文不变;产出标为已驳回 | 无未裁决产出时禁用 |
|
||
| P4-09 | AI 产出与采纳 ·「改后再用」 | 点击 | 保留人的版本;产出标为改后再用 | 无未裁决产出时禁用 |
|
||
| P4-10 | AI 产出与采纳 ·「中断生成」 | 点击 | 停掉本步生成 | 仅在生成中出现 |
|
||
| P4-11 | 版本管理 ·「按平台账号展开」 | 点击 | 母版展开出多版本(每个版本绑一个**平台账号**,一个平台账号一版,F7) | 未到成稿态时禁用 |
|
||
| P4-12 | 版本管理 · 版本行「切为当前版」 | 点击 | 该版标为当前版;当前内容上下文的版本号跟着变(F8) | 该版已是当前版时禁用 |
|
||
| P4-13 | 录制卡片与画板 ·「生成卡片」 | 点击 | 成稿态生成一张卡片(F14) | 未到成稿态时禁用 |
|
||
| P4-14 | 录制卡片与画板 ·「同步到画板」 | 点击 | 卡片落到画板,可打开 | 还没有卡片时禁用 |
|
||
| P4-AUX | 辅助入口区 ·「查账号口径」 | 点击 | 跳到 P6 并选中当前账号(流转 11) | 从不可点 |
|
||
| PICK-ASSET | 资产选择器 · 单条 | 点击 | 收进引用区并显示来源;浮层关 | 已引用过的不渲染可点项 |
|
||
| P5-01 | 目标选择 · 展开/收起 | 点击 | 展开**两级**目标选择(内容账号 → 它下面的平台账号) | 从不可点 |
|
||
| P5-02 | 目标选择 · 内容账号项 | 点击 | 勾选/取消该内容账号;**连它下面的平台账号(渠道)一起增删**,版本列表跟着变 | 从不可点 |
|
||
| P5-03 | 目标选择 · 平台账号项(渠道) | 点击 | 勾选/取消一个平台账号;版本列表跟着增删一版(一版一路) | 从不可点 |
|
||
| P5-04 | 各版本 · 版本 tab(逐版) | 点击 | 右区换成该版内容 | 从不可点 |
|
||
| P5-05 | 版本内容编辑框 | 输入 | 「保存本版」由禁用转可用;标为「已改」 | 从不可点(可输入) |
|
||
| P5-06 | 版本内容 ·「保存本版」 | 点击 | 该版内容更新;检查结果跟着重算(回到未检) | 无改动时禁用 |
|
||
| P5-07 | 检查结果 ·「复检」 | 点击 | 检查中 → 出结论(硬拦 / 软劝 / 通过) | 检查中时禁用 |
|
||
| P5-08 | 「确认发布」 | 点击 | 打开二次确认浮层 | **有硬拦项时禁用**;无版本时禁用 |
|
||
| P5-09 | 二次确认 ·「确认发出」 | 点击 | 写发布记录(复盘页的记录区出现一条);提示成功(流转 14) | 从不可点 |
|
||
| P5-10 | 二次确认 ·「取消」 | 点击 | 关闭浮层,不发;焦点回触发按钮 | 从不可点 |
|
||
| P5-11 | 发布记录 · 记录行 | 点击 | 跳到 P7 并定位该记录 | 从不可点 |
|
||
| P6-01 | 账号列表项 | 点击 | 切换右区画像 | 从不可点 |
|
||
| P6-02 | 画像**五维**字段(定位/风格/受众/偏好与红线 + 长期记忆,共 5 个输入) | 输入 | 「保存画像」由禁用转可用 | 非本人负责账号时禁用(改由角色判定) |
|
||
| P6-03 | 「保存画像」 | 点击 | 保存成功提示;未保存时离开给提示 | 无改动时禁用 |
|
||
| P6-04 | 记忆条目 · 展开/收起 | 点击 | 展开记忆列表(只追加,不可编辑) | 从不可点 |
|
||
| P6-05 | 关联内容行 | 点击 | 跳到 P4 的该条内容 | 无关联内容时整块空态 |
|
||
| P6-06 | 平台账号行 ·「去登录/重新授权」 | 点击 | 该行登录态与授权状态一起转「已登录 · 已授权」 | 从不可点 |
|
||
| P6-07 | 平台账号 ·「加一个平台账号」 | 点击 | 该内容账号下多一个平台账号,初始「未登录 · 未授权」 | 从不可点 |
|
||
| P7-01 | 待复盘项 | 点击 | 右区换成该条的表现数据 | 从不可点 |
|
||
| P7-02 | 表现数据 ·「手工录入」 | 点击 | 数据读不到时的降级入口,展开输入 | 数据已读到时不渲染 |
|
||
| P7-03 | 归因结论 · 文本 | 输入 | 「采纳这条归因」由禁用转可用 | 从不可点(可输入) |
|
||
| P7-04 | 确认与改判 ·「采纳这条归因」 | 点击 | `confirmed` 置真 ⇒ 「确认归因并回写」转可用(**前置开关**) | 归因为空时禁用 |
|
||
| P7-05 | 确认与改判 ·「驳回」 | 点击 | 标为已驳回;回写按钮保持禁用 | 归因为空时禁用 |
|
||
| P7-06 | 确认与改判 ·「改后再用」 | 点击 | 标为改后再用;回写按钮保持禁用 | 归因为空时禁用 |
|
||
| P7-07 | 回写目标提示 ·「确认归因并回写」 | 点击 | 回写到当前账号画像:记忆 +1;显示回写目标(流转 17) | **未采纳归因(`confirmed` 为假)或未选账号时禁用** |
|
||
| P7-08 | 历史复盘 · 展开/收起 | 点击 | 展开历史复盘结论 | 从不可点 |
|
||
| P7-09 | 发布记录行 | 点击 | 右区换成该条的对账详情 | 从不可点 |
|
||
| P7-10 | 单条溯源 · 展开/收起 | 点击 | 展开溯源:从记录回到内容与版本 | 从不可点 |
|
||
| P7-11 | 对账核对区 ·「核销」 | 点击 | 二次确认 → 该条标「已核销」 | 未选记录时禁用;记录未「已发布」时禁用 |
|
||
| P7-12 | 商单与收支 · 展开/收起 | 点击 | 展开收支条目(F12 标 `P2/Deferred`) | 从不可点 |
|
||
| CHECKOUT-OK | 核销二次确认 ·「确认核销」 | 点击 | 该条标「已核销」;提示成功;浮层关 | 从不可点 |
|
||
| CHECKOUT-CANCEL | 核销二次确认 ·「取消」 | 点击 | 关闭浮层,不核销;焦点回触发按钮 | 从不可点 |
|
||
|
||
⚠️ **「可见关闭出口」与「决策型关闭」是两件事**:每个浮层的中性关闭出口只有一颗 ×(`X-close`),恰好 1 个;「取消」这类带决策语义的按钮也能关层,但它不是「找出口」用的,**单独登记**(`R-03` / `P5-10` / `CHECKOUT-CANCEL`)。⛔ 不把两类混成一个数。
|
||
|
||
**表外可点元素必须为 0** —— 自检里有一条逐集合做双向差集的检查(`#/selftest` 自动跑)。
|
||
|
||
⚠️ **`A-01` 不是控件**:它是假设浮层里的只读展示行,列出来是为了「假设有两处、逐条给复核人/时机/落点」这件事在清单里看得见 ⇒ **不进实现清单**(原型里的 `IMPL` 表),自检也不拿它去点。
|
||
|
||
⚠️ **V1 撤销的 7 个 ID 与 V2 再撤 5 个**:V1 撤 `G-01…G-04`(一级组)/`G-07`(账号切换器)/`G-09`(演示开关)/`G-11`(收起侧栏)。V2 因「功能入口」那一层整体撤销,再撤 `card()` 相关的 `data-page` 用法;因「全局检索」从浮层改为 P1 的业务板块,撤掉检索浮层与其 `S-01`/`S-02`(改由 `P1-06`/`P1-07` 承担)。⛔ 撤销一个 ID 时必须同时把它的 DOM 删掉,否则判据「页面上每个 `data-act` 都在清单里」会报红。
|
||
|
||
⚠️ **V4 撤 1 个、新增 3 个**:V4 因「灵感速记」不再是 P2 的业务板块(随手记本就有全局入口 `G-06`,那个页内按钮是重复),撤 `P2-11`;新增 `P2-12`(选题库的**类型**维度 tab —— 选题库现在两个正交维度:进度 `P2-08` + 类型 `P2-12`)与 `P6-06`/`P6-07`(平台账号的登录授权与新增,对应 P6 新板块)。⛔ 三个新 ID 的 DOM 必须同时在页面上,否则判据「清单里每个 ID 都在页面上出现过」会报红。清单共 **90 个 ID**(V3 是 88)。
|
||
|
||
### 2.5 组件规格(来源:选定套既有组件族)
|
||
|
||
| 组件 | 规格(具体值) | 来源 |
|
||
|---|---|---|
|
||
| 按钮 · 主档 | 高 `40px`,内衬 `12/20`,字号 `16px`,字重 `600`,圆角 `26px`,底 `--accent`,字 `--on-accent` | 选定套 `--btn-*`;字号 16 + 600 是**必须的**(`#FFFFFF` 压 `#9e4cff` 只有 4.26:1,须走大字线 3:1) |
|
||
| 按钮 · 次档 | 高 `40px`,内衬 `12/20`,字号 `14px`,字重 `500`,圆角 `26px`,底 `--surface`,描边 1px `--line`,字 `--ink` | 同族 |
|
||
| 按钮 · 弱档(文字) | 高 `32px`,内衬 `6/12`,字号 `14px`,圆角 `26px`,无底无描边,字 `--accent-text` | 同族 |
|
||
| 卡片 · 密卡 | 内衬 `16px`,圆角 `16px`,底 `--surface`,L1 阴影 | 同族 |
|
||
| 卡片 · 宽松卡 | 内衬 `24px`,圆角 `24px`,底 `--surface`,L2 阴影 | 同族 |
|
||
| 输入框 | 高 `36px`,内衬 `12/10`,圆角 `9px`,字号 `14px`,底 `--surface`,描边 1px `--line` | 同族 |
|
||
| 徽章 / 状态标 | 高 `22px`,内衬 `2/8`,字号 `12px`,圆角 `999px`,无描边,底为对应状态色 8% 叠加 | 同族 |
|
||
| 侧栏(`.sidebar`) | **药丸浮栏**:宽 `64px`、内衬 `3px`、圆角 `100px`、底色 `color-mix(in srgb, var(--ink) 5%, transparent)`、描边 `1px color-mix(in srgb, var(--ink) 12%, transparent)`;高度随内容、`align-self:center` 在 `64px` 列里垂直居中;品牌只留标记并居中(`.sidebar .brand-name` 隐藏) | 形态与宽度取自选定套 `.app-sidebar`(`w-16` ⇒ `64px`)+ 第八轮实测值(栏 64/内衬 3/圆角 100);V5 由 `128px` 改回基准形态(理由见 §1.1 ⑤) |
|
||
| 侧栏导航项(`.nav-item`) | **竖排**:宽 `56px`(=栏内容宽)、高 `78px`、内衬 `8/0`、圆角 `999px`、**图标在上 `24px`、名字在下 `12px/500/行高 16`**、图标与名字间距 `6px`;名字**两字常驻**(说明走悬停提示 `title` 与读屏 `aria-label`);计数徽章悬在项右上角;项间 `gap 2px`;hover 只换底色(`--tfast`),⛔ 不移位、⛔ 不加阴影 | 形态照选定套 `nav-item`(药丸、只换色);V5 因栏收到 `64px` 由横排改**竖排**(实测值:项 56×78、字 12px-500-行高 16) |
|
||
| 侧栏当前项(`.nav-item.is-active`) | 整块浅紫底 `color-mix(in srgb, var(--accent) 10%, var(--paper))` + 字色 `--accent-text` + 字重 `600`(⛔ 不用单侧色条、⛔ 不用描边变黑) | 与 §1.1 ⑩ 第 6 条「选中态只有一套画法」一致 |
|
||
| 页面公共框架(`.page-shell` / `.page-shell-title` / `.page-shell-stats` / `.page-shell-aux`) | 标题区:`h1` + 一行说明;**本页页面级动作 = 标题行右侧的 icon 按钮**(`.btn-icon` + `.shell-refresh`,靠 `margin-left:auto` 右对齐;例:刷新本页数据;⛔ 不另起一行);统计区用 `.stat-item`(白底 + 1px `--line` + 圆角 `16px` + 内衬 `12/16`,值 `20px/600` + `tabular-nums`,标签 `12px` `--ink-mute`);辅助入口区最多一个入口。⛔ 这一层**不带 `.block` / 不带 `.block-head h2`** | 落 `2b` §四:它不算板块数、不参与功能归属、不占冻结计数。V5 撤掉原「操作区」那一行 —— 页面级动作改挂标题行右侧 |
|
||
| 满宽表格(`.ds-table.tbl-dense`) | 容器 `.panel` + `.table-wrap`(`overflow-x:auto`);表头 `12px/600` `--ink-mute` + 下边框 1px `--line`;行内衬 `4/8`、行间 `border-top` 发丝线、单元格 `vertical-align:middle` + `nowrap` | 密度契约(一屏 ≥6 行)逼出来的紧凑档 |
|
||
| 栏内表(`.ds-table.tbl-side`) | 两栏**栏内**的列表:内衬同上,但 ⛔ **不套 `nowrap`** | 同上,只在窄栏里用 |
|
||
| 行级微按钮(`.btn-micro`) | 高 `22px`、内衬 `0/8`、字号 `12px`、圆角 `999px`、无底、字色 `--accent-text`、`:disabled` 时透明度 `.45`。⛔ 表格行里不许用 32px 的 `.btn-sm` | 同上 |
|
||
| 分段控件(`.seg` / `.seg-item`) | 容器 `gap 4px` + 可换行;项高 `32px`、内衬 `0/12`、圆角 `999px`、描边 1px `--line`、白底;选中项 `.is-on` =整块浅紫底 + `--accent-text` + 600 + 描边转 `--accent` | 选中态统一 |
|
||
| 表单字段(`.field`) | 字段块间距由 `.field + .field{ margin-top:16px }` 出 | 统一 |
|
||
| 表格当前行(`.cell-name.is-on`) | 当前行的行名转 `--accent-text`(选中态在表格里的落法,⛔ 不写内联 `color`) | 统一 |
|
||
| 两栏分栏(`.grid-main-side`) | 宽比 `1.35fr : .9fr`;左=上下文/列表,右=产出/动作/详情;主数据块仍满宽。`≤900px` 落单列 | 沿用 |
|
||
| 图标(唯一出口 `navSvg(page,size)`) | `viewBox 24` / `fill:none` / `stroke:currentColor` / `stroke-width:2` / 圆头圆角;尺寸只有两个用法:侧栏 `24px`、`≤640px` 的 `16px`;颜色只有一处 `--accent-text`(当前项走 `currentColor`) | 沿用 |
|
||
|
||
> 同屏主档按钮 ≤1(多步流程每步 ≤1):P1 无主档、P2/P3/P4/P5/P6/P7 各 1 个 ✅(P7 前后两半各有一个推进动作,但同屏只出当前上下文那一个)
|
||
> 实底底色 ≥2 种:主档 `--accent`、次档 `--surface`、状态标(ok/err/warn 三色 8% 叠加)✅
|
||
|
||
---
|
||
|
||
## 三、两处假设的显式标注(⛔ 不当已确认需求用)
|
||
|
||
②段 `2b` §七 标了两处骨架受限(第 1 条 P1 形态 / 第 2 条 P7 第 10 板块「商单与收支」)。本轮**尚无用户结论** ⇒ 按②段给的默认读法做,并在本份与原型里显式标注:
|
||
|
||
| # | 受影响处 | 假设内容 | 本轮默认读法 | 复核人 | 复核时机 | 结论落点 |
|
||
|---|---|---|---|---|---|---|
|
||
| 假设 1 | **P1 的形态** | 矩阵级视图是否真需要(1a 待复核第 5 条 + A1) | **按「需要矩阵级视图」做**:P1 = 矩阵总览,5 个板块全在。若复核为「不需要」,P1 降为「单账号今日」,只留第 1、4 板块,矩阵列表下移到账号切换 | 主会话转用户 | ②段收口时一次性过 | `2b` §七 + §五 P1;本轮落 `ui/DESIGN.md` 本节 + 原型 P1 页头的「假设」徽章 |
|
||
| 假设 2 | **P7 后半段第 4 板块「商单与收支」**(原 P8 的第 4 板块) | 商单对账进不进第一版、收支口径是否内容级(1a 待复核第 6 条 + A3) | **按「进第一版但属 P2、可整块缺」做**:第 4 板块**渲染出来但标「可点入 + 假设」**,展开后给一句「本块依赖未复核项」。它前面那 3 块(发布记录/单条溯源/对账核对区)不受影响 | 主会话转用户 | 同上 | `2b` §七 + §五 P7;本轮落 `ui/DESIGN.md` 本节 + 原型 P7 后半段第 4 板块标题行的「假设」徽章 |
|
||
|
||
**原型的兑现方式**:两处各在自己的**板块标题同行右侧**挂一个「假设」徽章,**徽章本身可点**(`G-08`)—— 点开后逐条给出复核人 / 时机 / 落点。⛔ 假设既没有被当已确认需求写死,也没有被编出答案。
|
||
|
||
---
|
||
|
||
## 四、Gate-1 方向门自检(硬闸,结果写在本份末尾)
|
||
|
||
逐条结论在 §八(十七行,含本轮现取的实测依据);逐视口表在 §6.1。
|
||
|
||
---
|
||
|
||
## 五、缺口与证据边界(⛔ 不假装支持)
|
||
|
||
1. **反 AI 味 / 无障碍 / 表单校验 / 动效纪律的逐项数值判据本次无供给来源** —— 这四项出自 §供给·工艺数值判据的**可选档**(`assets/open-design/craft/` 13 份),本轮未动用可选档 ⇒ ⛔ 不凭感觉编一套顶上。本段实际应用的是**默认档**判据:`execution-runbook.md` §3.3/§3.4 + `layouts-tooling.md` §5.5。
|
||
2. **暗色主题本轮不做** —— 选定套的暗色与亮色是两套独立基线,规则是「要暗色就整套切」。⇒ 本轮只做亮色基线,⛔ 不与暗色混搭。
|
||
3. **`--warn` 是本项目追加的第 14 个语义色** —— 选定套亮色基线只有 ok/err,无 warn;而②段 P5 要求软硬两种区分。追加值的对比度实测记在 §六。
|
||
4. **`1c-用户画像.md` 是零访谈画像** —— 界面里凡涉及「角色能看什么」的判据都基于它,**不得对外说成基于用户调研**。
|
||
5. **3c GPT 参考版本轮不做** —— 派活单明令「⛔ 不许再向外发送本项目内容」(第②棒曾把产品现状发到站外,属红线动作)⇒ 本轮**全部输入只看本地文件**,⛔ 不上传、不外发、不用站外模型服务。⇒ `3c` 的「让外部模型独立出一版」这一步本轮**按红线停做**,并在收尾明示「未取得参考版 ≠ 已通过」。这是**红线优先于流程**的处置,不是漏做。
|
||
6. **窄视口实测下限与红档** —— 本轮取证走 CDP 声明式视口(`Emulation.setDeviceMetricsOverride`),实测到 `390×844`;逐视口表(§6.1)现含 `390×844` 一档,⛔ 不写「已测 375」这种没测过的。🔴 **V5 整表 16 档全量重跑**:不达标由 **3 档降到 2 档** —— 只剩 `500×844`(P1 5 行)与 `390×844`(P1 2 行);`560×900` 的 P1 由 5 行升到 **6 行**、该档转绿(`逐视口:不达标 2 / 共 16`)。P1 首行顶逐档下移 `43~52px`(`669…822` → `626…779`),行数逐档上升(宽屏 7 → **8~9 行**,`390×844` 由 0 → 2 行;P2 由 12 → **14** 行、`390×844` 由 5 → **6** 行,也过线)。⇒ 两处改动各自兑现:① **页面级动作不再独立占一行**(省掉「按钮 32px + 下边距 12px」)⇒ 首行顶直接下移 ~44px;② **侧栏 `128 → 64px`** ⇒ 主区宽 64px、满宽表格列更宽 ⇒ P2 行数上升。⚠️ 这与 V2/V3「侧栏宽度对首行顶没有影响」**不矛盾** —— 那两次只动栏宽(`184→128px`),这次同时动了「撤掉操作区整行」+ 栏宽两件事,首行顶的变化主要来自前者,⛔ 别把这条读反。是否动窄屏断点,仍待用户裁定。
|
||
7. **规格核对只走本地已测值** —— §六 的实测值全部由 `#/selftest` 与 `_tools/` 现算,⛔ 不目测。上一版留档的两处遗留(`500×844` 一屏 −1 行、满宽表格与一屏 ≥6 行不可兼得)本轮**重测后如实登记**,⛔ 不靠改判据过关。
|
||
8. **②段那处内部不一致已订正(V3 登记 → V4 关闭)** —— V3 登记过:`2b` §五 P2 的板块清单把「灵感速记」列为第 5 块,而同页信息分档表把它标成「全局可达(框架层,不占板块)」,两处打架。🔴 V4 按用户口径(选题库容纳「对选题有帮助的任何信息」、随手记仍落选题库)**把两处统一**:灵感速记**不再是板块**,P2 由 5 块收成 4 块;现在板块清单与信息分档表一致。骨架总数仍 39(P2 −1、P6 +1)。
|
||
9. **定时发布本轮挂起(⛔ 不进界面)** —— 用户口径逐字(2026-10-10 07:56):「后续具体做投放功能的时候在说」。⇒ 本段**不写**定时发布:⛔ P5 不加「定时设置」块、⛔ 不加状态、⛔ 不改流转。登记在②段 `2a` §九 第 7 项与 `2b` §十 第 7 项,真做投放功能时再议。
|
||
|
||
---
|
||
|
||
## 六、数值取证登记(自检 + 工具实测回填,⛔ 非目测)
|
||
|
||
> 本表由 3b 阶段现算回填,数据源:`#/selftest`(DOM 取值 + 真实像素)+ `_tools/` 八个脚本。⛔ 一个数都不许拍脑袋。
|
||
> **Gate-1 方向门的逐条结论 + 实测依据在 §八**(全文结尾,⛔ 不在这里再抄一遍)。
|
||
> 此处只放一条 `DESIGN.md` 独有的登记:**逐视口表**(自检全文、27 条变异、四条反向变异、八条改动明细见 `ui/3b-实测记录.md`;两处冲突以 `3b-实测记录.md` 为准)。
|
||
|
||
### 6.1 逐视口表(16 档;契约:一屏可见行数 ≥6 / 900px 高,`layouts-tooling.md` §1,⛔ 不分档)
|
||
|
||
`P1 顶` = P1「账号矩阵」首行距视口顶的像素。全部走 CDP 声明式视口(只连 9223 已有实例)。
|
||
|
||
| 视口 | 自检 | P1 首行顶 | 行距 | P1 行数 | P2 行数 | 顶栏 | 侧栏 | 判定 |
|
||
|---|---|---|---|---|---|---|---|---|
|
||
| 1440×900 | 80/0 | 626px | 31px | 8 | 14 | 49px | 64×606 | ✅ |
|
||
| 1280×900 | 80/0 | 626px | 31px | 8 | 14 | 49px | 64×606 | ✅ |
|
||
| 1024×900 | 80/0 | 626px | 31px | 8 | 14 | 49px | 64×606 | ✅ |
|
||
| 1000×900 | 80/0 | 626px | 31px | 8 | 14 | 49px | 64×606 | ✅ |
|
||
| 960×900 | 80/0 | 626px | 31px | 8 | 14 | 49px | 64×606 | ✅ |
|
||
| 920×900 | 80/0 | 626px | 31px | 8 | 14 | 49px | 64×606 | ✅ |
|
||
| 901×900 | 80/0 | 626px | 31px | 8 | 14 | 49px | 64×606 | ✅ |
|
||
| 900×900 | 80/0 | 618px | 31px | 9 | 14 | 49px | 64×606 | ✅ |
|
||
| 840×900 | 80/0 | 618px | 31px | 9 | 14 | 49px | 64×606 | ✅ |
|
||
| 820×900 | 80/0 | 618px | 31px | 9 | 14 | 49px | 64×606 | ✅ |
|
||
| 768×900 | 80/0 | 618px | 31px | 9 | 14 | 49px | 64×606 | ✅ |
|
||
| 700×900 | 80/0 | 618px | 31px | 9 | 14 | 49px | 64×606 | ✅ |
|
||
| 640×900 | 80/0 | 671px | 31px | 7 | 12 | 49px | 640×53 横滚标签条 | ✅ |
|
||
| 560×900 | 80/0 | 686px | 31px | 6 | 12 | 49px | 560×53 横滚标签条 | ✅ |
|
||
| **500×844** | 79/**1** | 686px | 31px | **5** ❌ | 10 | 49px | 500×53 横滚标签条 | ❌ |
|
||
| **390×844** | 79/**1** | 779px | 31px | **2** ❌ | 6 | 49px | 390×53 横滚标签条 | ❌ |
|
||
|
||
**绿 14 档 / 红 2 档**(`run_viewports.py`:`逐视口:不达标 2 / 共 16`)。行距在所有档恒为 `31px`、行高齐(差 ≤2px)⇒ 红只出在 **P1 首行顶太高**(626 → 779px)。
|
||
|
||
> 🔴 **V5 重跑(整表 16 档全量重算,⛔ 不是沿用 V4 的数)**:`run_viewports.py` 输出 `逐视口:不达标 2 / 共 16`。两处改动各自兑现:① **页面级动作不再独立占一行** ⇒ 首行顶逐档下移 `43~52px`(`669…822` → `626…779`),宽屏行数 7 → 8~9;② **侧栏 `128 → 64px`** ⇒ 主区宽 64px,满宽表格列变宽,P2 行数由 12 升到 14、`560×900` 的 P1 由 5 行升到 6 行 ⇒ 该档转绿。
|
||
>
|
||
> ⚠️ **与 V2/V3「侧栏宽度不影响首行顶」不矛盾**:那两次只动栏宽(`184→128px`),这次同时动了「撤掉操作区整行」+ 栏宽两件事;首行顶的变化主要来自前者,⛔ 不要把这条读成「栏宽这回就有影响了」。
|
||
>
|
||
> ⚠️ **`390×844` 能测 ≠ 达标**:它是契约要求留档的第二个视口,帧已出(PNG 尺寸当场比对通过),P1 装下 2 行、P2 6 行(P2 已过线)。
|
||
>
|
||
> 🔴 本轮**未动**窄屏断点,⛔ 也没有为了让数好看改判据;剩余两档(`500×844` / `390×844`)仍如实登记,是否动窄屏断点待用户裁定。
|
||
|
||
---
|
||
|
||
## 七、修订记录
|
||
|
||
| 轮次 | 改了什么 | 为什么 |
|
||
|---|---|---|
|
||
| V2 初版(2026-10-09) | ①**导航**由「一层八项平铺」改回「3 个业务组 + 1 个跨组入口」,侧栏由 `64px` 药丸浮栏加宽到 `184px` 带组标圆角浮栏;②**新增页面公共框架(Page Shell)**一层(标题区/数据摘要区/页面操作区/辅助入口区),并写明三条硬规则(不计板块数、不参与功能归属、不占冻结计数);③**撤销「功能入口」那一层**(`.sect-nav` / `.data-cards` / `.data-card` 与 `card()` 全部删除);④**骨架按新版 39 块重排**:P4 由 5 → 6、P7 由 5 → 6、P2 第 3 块注明可点入子区;⑤**对象冻结**:每个业务板块带 `data-obj`;⑥P7「确认与改判」落为回写的**前置开关**(`confirmed` 为假时回写禁用);⑦P4 版本管理承担 F7/F8、录制卡片与画板承担 F14;⑧撤销检索浮层(全局检索改为 P1 业务板块) | 按新版 `2a`/`2b` 重做第 4 步。逐条依据:`2b` §三/§四/§一第 2 条+§九第 2 条/§九第 8–15 条/§五(39 块);`2a` §一第 2 条、§三 F7/F8/F14、F10 |
|
||
| V2 复核棒(2026-10-09) | ①新增 `3b-实测记录.md`(自检 77 项全文、变异 20/20、三条骨架反向变异、16 档逐视口、四条改动明细);②本份补 §6.1 逐视口表 + §八 Gate-1 加「实测依据」列;③`_tools/` 补齐到 8 个脚本(新增 `tab_close.py`,`cap.py`/`grab_selftest.py` 改单标签复用);④`_gate_shots/` 补到 17 张视口帧 | 第 4 步只差「闸门取证 + 台账上报」。⛔ **未重做界面**:原型仅动 4 处(自检重入死循环守卫 / 「功能入口层残留」判据改八页逐页查 / `hashchange` 守卫回退 + 注释 / `check_skeleton.py` 判据由「互为前缀」收紧为「剥注解后严格相等」),几何与骨架一格未动 |
|
||
| **V3 本轮(2026-10-09,用户令)** | ①**P8 记录与对账整页并入 P7 复盘台**:`pageP8` 删除、四个板块接进 `pageP7`、动作 ID 由 `P8-01…04` 改 `P7-09…12`、`FROZEN` 的 p7 由 6 块改 10 块、`PAGES` 由八页收成七页;②**导航压成一层七项**(首页/选题/创作/投放/复盘/账号/资产,资产排最后):删 `NAV_GROUPS`/`NAV_CROSS` 与 `.nav-group`/`.nav-group-label`/`.nav-cross` 及其 `≤640` 规则,改 `NAV` 数组 + `renderNav()`;③**侧栏由 `184px` 收窄到 `128px`**,侧栏品牌名隐藏(顶栏已写全称),`.nav-item` 内衬 `0/12 → 0/8`;④**功能 ↔ 板块一一对应**做成机检:`FN_HOME`(功能→归属页)+ `FN_MAP`(页→板块→功能)+ 自检 5b-3 双向查;⑤自检新增 **3a-0 页集合正好七页**、3a/3b 重写为「一层七项、零组标、项名与顺序照用户口径」;⑥`renderSelftest()` 的兜底分支改成**吐可读输出**(原来崩了就不带 `#selftest-out`,取证工具全瞎) | 按用户口径改导航层级与 P8 归属,并同步 `2a`/`2b` V3。逐条依据:`2b` §〇/§三/§五 P7/§六 第 6·14·18 条/§九;`2a` §二/§三 F12·F13/§四/§十。⚠️ 侧栏收窄是③段的判断(几何不在样式库内):`184px` 的唯一理由是容下组名,组名撤掉后该理由消失 ⇒ **可推翻,改一处 `--nav-w` 即回退** |
|
||
| **V4 本轮(2026-10-10,八条口径)** | ①**P2 选题库加「类型」维度**:第二个 `.seg`(全部/选题/对标线索/评论洞察/数据异动/灵感)+ 选题行加「类型」列,与「进度」正交(新 ID `P2-12`;`TOPICS` 逐条补 `type`);②**P2 删掉「灵感速记」板块**(骨架 5 → 4 块),随手记只留全局入口(撤 `P2-11`);③**P3 职责改「统一管理」**,页面副标题与分档对齐,入库不限页;④**P4 版本管理**展开单位由「账号 × 平台」改「**平台账号**」(按钮文案、说明、`P4-11` 实现与提示同步);⑤**P5 目标选择改两级**:数据由 `targets:{accounts,platforms}` 改 `{accounts,channels}`,新增 `PLATS`(平台账号=渠道,带登录态/授权状态),摘要区「目标渠道数/覆盖平台数」,各版本块写死「一个平台账号一版(一版一路)」,`P5-02`/`P5-03` 改为「内容账号连带渠道一起增删」;⑥**P6** 画像六维 → **画像五维**(删「平台」这一维与 `PROFILES` 的 `平台` 字段),**新增「平台账号」板块**(骨架 4 → 5 块,新 ID `P6-06`/`P6-07`),账号行次级信息改成「平台账号数」;⑦`FROZEN`/`OBJ_MAP`/`FN_MAP` 三表同步(总数仍 **39**);⑧本份 §1.2/§2.4/§五/§6.1/§八/§九 全量同步 | 按用户 2026-10-09~10-10 的八条口径改②段两份并重做原型。逐条依据:`2b` §〇/§一/§五 P2·P3·P4·P5·P6·P7/§九;`2a` §一 第 2·4 条/§二 对象字典/§三 F2·F4·F7·F9·F13/§九。⛔ 页面数、导航一层七项、流转 20 条、令牌与几何**一格未动**;⛔ 定时发布按用户口径挂起,本轮不落 |
|
||
| **V5 本轮(2026-10-10,用户令两处)** | ①**侧栏改回设计供给的基准形态**:`--nav-w` 由 `128px` 改 `64px`,内衬 `8 → 3px`、圆角 `24 → 100px`;`.nav-item` 由「图标在左、名字在右」改**竖排**(图标在上 `24px`、名字在下 `12px/500/行高 16`、项 `56×78`、名字两字常驻,说明走悬停提示),计数徽章改悬右上角;`≤640` 的横滚标签条跟着改回横排小标签。②**刷新按钮改 icon 并挪到页面标题行右侧**:撤 `.page-shell-ops` 那一行与 `SP_LABEL` 七条文案,改 `.btn-icon` + `.shell-refresh`(`margin-left:auto` 右对齐,语义走 `title`/`aria-label`「刷新本页数据」);P4 同步。③自检新增 **3b-2 侧栏基准形态**、**3b-3 页面级刷新=标题行 icon** 两条判据;变异新增 **M25/M26/M27**(**27 / 27** 全过、基线回绿)。④`2b` §四 撤销「页面操作区」并同步七页框架行;本份 §1.1⑤/⑨/§2.3/§2.4/§2.5/§五 6/§6.1/§八/§九 全量同步 | 按用户 2026-10-10 两条口令:① `design-system-tiaoyue/SKILL.md` 行 95「左侧栏(`app-sidebar`,宽 `w-16`)」⇒ `w-16` = `64px` + 第八轮实测值;②「刷新按钮用 icon 按钮就行,一般和小标题一行、右对齐」。⛔ 导航项名与顺序、页数、每页板块、流转契约、其余任何交互**一格未动** |
|
||
|
||
---
|
||
|
||
## 八、Gate-1 方向门自检(硬闸)
|
||
|
||
> 结论列=本轮(V5)的判定;**实测依据**列=本轮现取的证据(自检项名 / 脚本名 / 变异编号 / 实测像素),⛔ 不是目测。全量证据见 `ui/3b-实测记录.md`。
|
||
> V3 比 V2 多两行(第 13、14 行):V3 的两条主判据(页集合与导航层级、功能 ↔ 板块一一对应)各自单列,⛔ 不并进邻行糊过去。
|
||
> V4 比 V3 多一行(第 15 行):那一轮的主判据是「八条口径落进骨架」。
|
||
> V5 比 V4 多一行(第 16 行):本轮的主判据是「侧栏回基准形态 + 刷新改 icon 挂标题行」,单列一行;⛔ 不借用第 2/13 那几行的旧结论糊过去。
|
||
|
||
| # | 检查项 | 结论 | 依据 | 实测依据(2026-10-09 复核棒现取) |
|
||
|---|---|---|---|---|
|
||
| 1 | 设计契约十二字段 | ✅ 过 | §一 | 十二字段全填,无空、无「待定」;重复项逐页列了次级信息 |
|
||
| 1b | 页型判定 | ✅ 过 | §一 | 自检「工具型纪律:零 `.eyebrow` / 零 `.lead` / 零 `.hero`」PASS;「`@keyframes` 共 0 处」PASS |
|
||
| 2 | 结构骨架(翻译面) | ✅ 过 | §1.1 ⑤ | 骨架档=主区+侧区(给了理由);②段分档表每条信息都有落位(§1.2 逐页核对) |
|
||
| 2b | 骨架未漂 | ✅ 过 | §1.2 | `_tools/check_skeleton.py` 正向 PASS:七页 **39 块**与 `2b-界面布局-新版.md` §五 逐页逐位一致;自检「骨架冻结:七页 39 个板块…逐位一致」PASS;反向变异 **M4**(塞板块)/**M19**(改页标题)/**M22**(页面表多一页)各报红 |
|
||
| 3 | 状态覆盖 | ✅ 过 | §1.3 | 六态逐页有结论;自检「六态 × 七页 = 42 个组合全部渲染出内容」PASS;`disabled` 与 `无权限` 分开写 |
|
||
| 4 | 令牌表 | ✅ 过 | §2.2/§2.3 | 自检实测对比度:`--warn` 对 surface = 5.93:1、`--accent-text` = 4.76:1、`--ink-faint` = 3.55:1(三条均过契约) |
|
||
| 4b | 字阶定值表 | ✅ 过 | §2.3 | 七档各一个 px(12/14/16/18/20/24/30),相邻差 ≥2;自检实测**在用** 5 档:12/14/18/20/24 |
|
||
| 4c | 高度层级 | ✅ 过 | §2.3 | L1/L2/L3 每层 ≥2 层叠层;自检「无单层死黑重阴影」PASS |
|
||
| 4d | 布局脚手架 | ✅ 过 | §2.3 | 侧栏 `64px` + 主区 `minmax(0,1fr)`;自检实测 1440×900:侧栏 **64×606px**、顶栏 49px、主区 clientH 851 / scrollH 1392 |
|
||
| 5 | 组件规格 | ✅ 过 | §2.5 | 按钮三档+卡片两档+输入框+徽章均为具体值;自检「首屏同屏主档按钮 ≤1 个」PASS |
|
||
| 6 | 反 slop | ✅ 过 | §2.2 | 无紫→粉渐变;标题走展示体;强调色填充实测最高 0.52%(契约 ≤5%,在创作台) |
|
||
| 7 | 拒绝清单 | ✅ 过 | §1.1 ⑩ | 共 **8** 条,每条带可判定判据(≥3 ✅);其中第 6/7/8 条由自检「组件口径」「Page Shell」「辅助入口区」三条判据 + 变异 M15 看住 |
|
||
| 8 | token 引用完整性 | ✅ 过 | §2.1 | 三层结构;组件层只引语义层、语义层只引 primitive;无孤立 token |
|
||
| 9 | 分档兑现 | ✅ 过 | §1.2 | 常驻=零点击可见、可点入=一次点击可达;档位未被本段改动(P7 前后两半合页后逐条重核) |
|
||
| 10 | 供给核对 | ✅ 过 | §〇 | 选定套 `design-system-tiaoyue`,与上一版一致(沿用同一套) |
|
||
| 11 | 对象冻结(本项目追加) | ✅ 过 | §1.1 ⑩ 7 | 自检「七页 39 个业务板块各带一个核心业务对象,取值全在 11 对象字典内」PASS;变异 **M17** 报红 |
|
||
| 12 | Page Shell 不占板块(本项目追加) | ✅ 过 | §1.1 ⑩ 7 | 自检「七页各恰好 1 个,且都不带 `.block` / 不带 `.block-head h2`」PASS;逐页 `.block` 数 = `FROZEN` |
|
||
| 13 | 页集合与导航层级(本项目追加,V3 新立) | ✅ 过 | §1.1 ⑤ | 自检「页集合正好七页,且与骨架表逐项相同(⛔ 页集合里没有 P8)」PASS +「导航一层七项…零组标 / 零跨组线」PASS +「导航七项与用户口径逐字一致、顺序相同…(资产排最后)」PASS;变异 **M21**(塞回组标)/**M22**(P8 复活)/**M16**(项名漂移)各报红 |
|
||
| 14 | 功能 ↔ 板块一一对应(本项目追加,V3 新立) | ✅ 过 | §1.1 ⑤ | 自检 5b-3「功能 ↔ 板块一一对应:14 条功能各自落到归属页的板块上,39 个板块每个至少挂一条功能(无悬空、无孤立)」PASS;变异 **M23**(归属漂移)/**M24**(悬空功能)各报红 |
|
||
| 16 | 侧栏回基准形态 + 刷新改 icon(本项目追加,V5 新立) | ✅ 过 | §1.1 ⑤ / §2.5 / `2b` §四 | ① 自检「侧栏基准形态:64px 药丸浮栏、导航项 56×78、图标在上(24px)名字在下(两字常驻);≤640 回横滚标签条」PASS;② 自检「页面级刷新:七页各 1 个 icon 按钮挂在页面标题行右侧(无文字、带 title/aria-label),⛔ 不再独立占一行」PASS;③ 变异 **M25**(栏宽回退)/**M26**(导航项横排回退)/**M27**(刷新又独立成行)各报红;④ 变异对照 **27 / 27** 全过、基线回绿;⑤ 逐视口 16 档整表重跑:不达标由 3 档降到 **2 档**(`560×900` 转绿),P1 行数逐档上升 |
|
||
| 15 | 八条口径落进骨架(本项目追加,V4 新立) | ✅ 过 | §〇 / §1.2 / §2.4 | ① 骨架冻结「七页 **39** 个板块…逐位一致」PASS(P2 由 5 收 4、P6 由 4 增 5,一减一加);`_tools/check_skeleton.py` 正向 PASS;② 自检「页集合正好七页」「导航一层七项」「功能 ↔ 板块一一对应」三条全 PASS ⇒ 口径改的是**页内构成**,页集合/导航/流转一格未动;③ 交互清单 90 个 ID「无悬空、无未登记、0 死控件」PASS(撤 1 新增 3 已同步);④ 变异对照 **24 / 24** 全过、基线回绿;⑤ 逐视口 16 档整表重跑,不达标仍 3 档(与 V3 逐格同值 —— 未动被量的块) |
|
||
|
||
⇒ **Gate-1 二十一行全过。** 唯一未达线的是**密度契约**(窄屏两档:`500×844` / `390×844`,均为 P1 一屏不足 6 行),它属 3b 实测的登记项、⛔ 不属 Gate-1 门 —— 见 §6.1 与 `3b-实测记录.md` §八。
|
||
|
||
---
|
||
|
||
*本份是原型的绑定规范:原型只许引本份登记的 token。*
|
||
|
||
## 九、说人话自评(本轮改动的文字部分;判据源 `humanizer-zh`,五维各 10 分)
|
||
|
||
| 维度 | 分 | 说明 |
|
||
|---|---|---|
|
||
| 直接性 | 10 | §1.1 ⑤ 一上来就说清「64px 从哪来」——先引 `SKILL.md` 行 95 的 `w-16`,再给实测值;§五 缺口 6 把「红档从 3 降到 2」放在句首 |
|
||
| 节奏 | 8 | 规范体裁、表格为主,改动段已补叙述,⚠️ 弱项未变 |
|
||
| 信任度 | 10 | 逐视口整表重跑后如实写出「还剩 2 档不达标」,并把「为什么这次栏宽似乎起作用了、与 V2/V3 不矛盾」当场解释掉;两档红照旧留着不粉饰 |
|
||
| 真实性 | 9 | Gate-1 第 16 行挂的是本轮现取证据(判据名 / 变异 27-27 / 16 档重跑);正文数(64×606、626→779px、绿 14 红 2)都可由本份与 `3b-实测记录.md` 当场复核 |
|
||
| 精炼度 | 8 | 新增只落在 §1.1⑤/§2.5 两处 + §七 一行 + §八 一行;但 §五 缺口 6 与 §6.1 说明确实又长了一点 |
|
||
| **总分** | **45 / 50** | 门槛 ≥45 ⇒ 压线过;扣分点仍全在「节奏 / 精炼度」两行(规范体裁,叙述段天然少) |
|
||
|
||
> 全量实测与两处改动的现象/根因/证据见 `ui/3b-实测记录.md`(该份自评 47/50)。
|