前端设计系统与业务工作台规范
# anenreo 前端设计系统与业务工作台规范 ## 1. 目标 前端不是数据库表的可视化管理器,而是一个能够长期使用的“个人数字操作系统”。页面必须帮助用户理解: - 当前处于什么状态; - 最近发生了什么; - 哪些行动、周期和承诺需要处理; - 哪些关系需要维护; - 哪些记录、AI推断和数据来源需要确认; - 数据是否安全、可导出和可恢复。 本规范适用于: ```text apps/web Nuxt 4 + Vue 3 + Nuxt UI 4 apps/mobile uni-app + Vue 3 + Wot Design Uni + UnoCSS ``` ## 2. 视觉语言:Quiet Intelligence 2.0 关键词:安静、可信、克制、档案感、时间感、长期使用、私人空间。 明确避免: - 大面积紫色渐变; - 毛玻璃和透明悬浮层作为常规页面背景; - 所有内容都包在相同白色卡片中; - 用“AI光效”代替信息层级; - 重阴影、夸张圆角和无意义动画; - 只有英文模块代码,没有中文业务说明。 ### 2.1 核心颜色 | 语义 | 浅色 | 深色 | 用途 | |---|---|---|---| | 页面背景 | `#F3F2ED` | `#111411` | 整体工作空间 | | 内容表面 | `#FAF9F6` | `#181C19` | 主内容区 | | 次级表面 | `#ECEBE5` | `#202520` | 辅助说明、筛选和弱强调 | | 主文字 | `#202723` | `#E8E7E1` | 标题和正文 | | 次级文字 | `#68716C` | `#A5ADA7` | 元数据与说明 | | 主色 | `#3F5F54` | `#8FB0A3` | 主操作和当前状态 | | AI语义 | `#5D6477` | `#9BA2B8` | AI草稿、推断、工具审批 | | 遗产语义 | `#8A683C` | `#C49B63` | 数字遗产和时间胶囊 | | 危险 | `#994D4B` | `#D27A77` | 已批准的不可逆设置操作和高风险错误;Record Kernel v2 不提供记录 DELETE | 隐私、错误和状态不能只通过颜色表达;必须同时使用图标、中文文本或边框结构。 ## 3. 信息架构 ### 3.1 PC主导航 ```text 今日 采集 记忆 关系 行动 复盘 个人智能 资产与遗产 全部模块 ``` 24个模块继续保留稳定路由,但不直接铺满一级导航。高频任务优先,低频模块通过“全部模块”和全局搜索进入。 ### 3.2 移动底部导航 ```text 今日 采集 记忆 行动 我的 ``` 移动首页不复刻PC模块目录。“我的”承载AI设置、离线状态和24模块目录。 ## 4. 首页:个人状态驾驶舱 首页至少包含: 1. 当前状态; 2. 快速采集; 3. 今天的行动、周期和承诺; 4. 最近记忆; 5. 主动访谈问题; 6. 关系新鲜度提醒; 7. AI、备份和安全入口。 首页对 `SECRET` 和 `LEGACY_ONLY` 只显示安全状态,不展示正文摘要。 ## 5. 模块工作台 每个模块统一具有“概览、记录、流程”三种阅读任务,但概览必须按模块原型呈现: | 原型 | 典型模块 | 展示方式 | |---|---|---| | 人物档案 | identity、state | 当前状态、阶段和版本摘要 | | 排序账本 | constitution、resource、taxonomy | 排名、依据、冲突和分组 | | 收件箱 | capture、knowledge、integration | 来源、处理状态和失败任务 | | 时间流 | memory、timeline、review | 时间轴、热度和待复盘 | | 多媒体 | media | 媒体网格、转写和完整性 | | 关系 | relationship、commitment | 联系新鲜度、互动和开放循环 | | 行动 | action、routine | 目标、任务、到期和完成节奏 | | 健康 | health | 指标、趋势和实验 | | 决策 | decision | 方案对比、预测、结果和偏差 | | 访谈 | interview | 问题队列、回答和待确认提取 | | 证据 | personal-model | 推断、证据、反证和置信度 | | 助手 | ai-agent | 会话、工具审批和执行审计 | | 遗产 | legacy、digital-asset | 准备度、接收人、恢复和演练 | 模块顶部指标只基于当前已加载记录,必须明确统计范围。 ## 6. 记录、表单和详情 ### 6.1 记录卡片 展示: - 业务时间; - 标题与安全摘要; - 两个最重要的模块字段; - 生命周期状态; - 隐私等级; - 修订号。 卡片必须是真实链接或按钮,支持键盘、焦点和足够触控区域。 ### 6.2 表单 字段按业务分组,而不是一张从上到下的长表: ```text 基础信息 模块专用分组A 模块专用分组B 来源、时间和隐私 修改原因 ``` 用户原文、AI草稿、AI推断和用户确认内容的来源必须明确区分。 ### 6.3 详情 详情至少区分: - 用户可读内容; - 模块专用字段分组; - 来源、时间和隐私; - 修订和版本; - 相关功能; - 生命周期和危险操作。 Record Kernel v2 只提供可恢复归档,不提供记录 DELETE/永久销毁;若其他配置领域拥有独立不可逆操作,必须沿用同样的确认、响应和权威回读边界,不能把它推导到统一记录页面。 ## 7. 响应式布局 PC使用Grid、Flexbox和Container Query: ```text ≥1280px 导航 + 主工作区 + 上下文 900–1279px 导航 + 主工作区,上下文转抽屉 600–899px 折叠导航 + 两列内容 <600px 单列内容 ``` 模块组件根据所在容器而非只根据视口调整布局。移动端优先保证88rpx左右触控区域和单手操作。 ## 8. 状态与反馈 必须提供业务化状态: - 加载:骨架屏; - 空状态:解释为什么值得创建第一条记录; - 错误:说明发生什么、数据是否保存、如何重试; - 无权限:区分会话失效、重新验证、仅遗产可见; - 保存成功:说明影响范围; - 危险操作:分级确认; - AI执行:显示Provider、模型、输入边界和副作用。 ## 9. AI设置 Web和移动端均支持: - 本地Mock; - OpenAI兼容接口; - base URL; - 模型名; - API Key只提交给服务端加密保存; - 页面只显示是否存在和脱敏尾号; - 固定无隐私内容连接测试; - 不把Key写入浏览器或移动本地存储。 ## 10. 可访问性 - 提供跳到主内容链接; - 路由变化后聚焦页面标题; - 页面只有一个主H1; - 使用 `nav`、`main`、`aside`、`search` 等语义; - 所有可点击元素支持键盘与清晰 `:focus-visible`; - 表单错误与字段关联; - 加载和保存结果使用 `aria-live`; - 对话框管理焦点; - 支持 `prefers-reduced-motion`; - 深色模式单独验证对比度。 ## 11. 代码复用边界 共享组件负责一致性: ```text PageHeader AppSectionPanel AppStatePanel AppMetricTile PrivacyBadge RecordStatusBadge MobileMetricStrip MobileRecordCard MobileBottomNav ``` 模块专用视图负责业务理解: ```text TimelineBusinessView RelationshipBusinessView ActionBusinessView HealthBusinessView DecisionBusinessView InterviewBusinessView AiBusinessView LegacyBusinessView MobileBusinessSnapshot ``` 共享组件不能把所有模块重新压回通用CRUD;模块原型和字段分组必须来自统一展示目录。 ## 12. 分层偏好中心 偏好中心使用“基础设置 + 高级设置”两层,不复制后台框架中与个人系统无关的租户、报表和多标签样式。 基础设置: ```text 主题模式 主题预设 字体大小 信息密度 圆角 减少动态效果 ``` 高级设置: ```text Web导航模式 内容宽度 右侧上下文栏 粘性操作栏 首页Widget 技术代码显示 移动底部标签 触觉反馈 隐私模糊 单手模式 常用模块数量 ``` 偏好必须: - 经过版本化和归一化; - 默认只保存在本机; - 支持安全导出、导入和恢复默认; - 不包含 API Key、业务正文、会话令牌和恢复秘密; - Web 映射到 Nuxt UI 语义色和 CSS 变量; - 移动端同时更新 Wot ConfigProvider 与页面级 CSS 变量。 主题预设必须由共享设计令牌统一提供二十套跨端方案。每套方案包含主色、辅助色和强调色三个安全十六进制颜色槽,预览使用混合渐变;Web 使用原生颜色选择器,移动端使用可滚动色板弹层,禁止把颜色值作为普通文本让用户手填。PC 与移动端的主题代码、名称、颜色目录和自定义偏好字段必须保持一致。 ### PC 偏好抽屉的五行布局 PC 偏好抽屉按标题、当前主题摘要、基础/高级层级按钮、正文、页脚排列为五个独立网格行。前三行与页脚按内容高度排列,只有正文使用 `minmax(0, 1fr)` 并在自身滚动,不能把可收缩行分配给层级按钮,否则正文会覆盖按钮的点击区域。基础与高级内容共用同一正文行,重复切换及关闭后重开不改变已有偏好。 `apps/web/test/appearance-preferences-layout.spec.ts` 执行实际 Vue 模板事件、Pinia 层级状态和 CSS 行合同,防止摘要新增后遗漏网格行。该定向用例不包含浏览器布局计算;真实点击命中、滚动、焦点及深浅色截图继续由浏览器验收验证。 ## 13. 六类模板与八个专用工作台 六类基础模板用于共享布局和组件: ```text 档案类 网络关系类 行动流程类 评估分析类 智能推断类 高敏感治理类 ``` 以下核心模块必须拥有专用摘要和交互,不得退回单一通用CRUD: ```text memory relationship action routine decision interview personal-model legacy ``` 共享模板负责一致性,专用工作台负责业务理解。模块页面可以复用记录列表、状态面板和字段组件,但必须提供本模块独有的指标、业务分组、状态转换和下一步动作。 ## 14. 页面状态和空数据原则 - 404、403、409、网络失败和未知错误分别呈现,并提供恢复动作; - 页面加载结束后必须进入成功或错误状态,不允许永久显示加载; - 所有聚合数据为空时,首页只显示一个初始化向导; - 统计数据不足时解释如何建立统计,不显示无意义的四个0; - 技术枚举默认显示中文,可由“显示技术代码”偏好显示英文代码; - 粘性和固定操作栏必须为正文预留空间,并正确处理移动端安全区。 ## 15. 浏览器验收运行输入 Playwright、截图和页面验证脚本属于有权限的验收客户端,不得在源码中携带登录秘密或绑定某位开发者的浏览器缓存: - 需要登录的脚本必须由调用方显式提供 `ANENREO_DEMO_PASSWORD`;缺失或空白时在启动浏览器和访问网络前失败; - `ANENREO_CHROMIUM_PATH` 显式提供时优先使用并验证为普通文件,无效时失败关闭; - 未显式提供浏览器路径时,只允许检查当前操作系统常见的 Google Chrome 和 Microsoft Edge 安装文件; - `ANENREO_PC_URL`、`ANENREO_MOBILE_URL` 与 `ANENREO_API_URL` 必须在密码读取和网络访问前解析为字面量 `127.0.0.1`;默认端口分别为 `3000`、`5173`、`4000`,显式隔离端口必须位于 1024~65535 且三端互异,API 路径固定为 `/api/v1`;IPv6、HTTPS、localhost 名称、URL 凭据、查询、哈希、越界/重复端口和远端主机一律失败关闭; - 禁止从 `.env` 读取验收密码,禁止把固定密码、Cookie、Token 或用户专用 `ms-playwright` 路径写入脚本、报告和截图清单; - live AI 验收脚本遵守相同输入门禁,但只有获得单独授权时才可运行;普通浏览器验收不得隐式访问 Provider。 这些门禁只证明验收工具的输入安全和可迁移性,不代表页面流程、领域功能或外部 Provider 已完成验收。 ## 16. Web 字体与图标的离线构建边界 PC Web 的发布候选必须能够在不访问公共字体服务的环境中完成构建: - `apps/web/nuxt.config.ts` 必须通过 `ui.fonts=false` 关闭 Nuxt UI 默认带入的 `@nuxt/fonts`; - 不得显式注册 `@nuxt/fonts`,也不得配置 Google、Google Icons、Bunny、Fontshare、Adobe 等远程字体 Provider; - 主界面继续使用 `ui-sans-serif`、系统 UI 字体、苹方和微软雅黑等本机字体回退,不从 CSS 导入远程字体; - Nuxt UI 组件、颜色模式和 Icon 模块继续保留,图标使用仓库依赖中的 `@iconify-json/lucide` 本地集合; - 若未来引入品牌字体,字体文件必须随源码候选交付或来自已安装的本地 npm 字体包,并补充离线构建与许可证据; - `check-web-build-network-policy.mjs` 同时检查源码策略和实际 build 日志,发现远程字体端点、Provider 下载、重试或超时即失败。 该门禁只证明 Web 构建的字体网络隔离,不代表页面交互或任何领域功能完成验收。 ## 17. R08 空值与编辑上下文 - 数字输入的未取得、未填写、真实零和主动清空分别处理:缺失显示为空,真实零保留,用户清空提交 null;非法数字不覆盖已有值。 - 没有明确配置默认值的新建数字字段不自动写入零;已有记录编辑时不因异步表单配置到达而补入任何默认值。 - 通用编辑表单按模块与记录编号隔离组件状态,避免切换对象继续使用上一对象的草稿。 - 此项为客户端数据呈现及提交语义修复;跨端持久化、权限与冲突仍按 R08 台账单独验收。 ## 18. R08 主题与操作栏 - 审查命中的业务卡片、输入、警告、错误及选中态使用成对的主题令牌;主色按钮使用 on-primary,避免深色预设中浅主色配白字。 - Nuxt UI 输入、文本域和选择控件的外层按所在字段铺满,避免内部宽度为 100% 而外层仍收缩。 - 移动保存栏使用保留文档流占位的 sticky 布局并允许换行;最后一个隐私字段可以滚动至栏上方。 - 本批样式编译及 Web 类型检查通过,实际主题切换、软键盘、大字号和点击命中仍待统一验收。 ## 19. R08 读取、草稿与反馈 - 读取治理信息和修订正文不显示写入成功通知;草稿保存与正式正文提交明确区分。 - 草稿回读必须同时核对对象、输入和客户端版本;较晚输入不被较早读取覆盖,不被旧回执标为已保存。 - 提交正文先等待当前草稿确认;冲突或销毁后的保存明确拒绝,不能继续提交旧版本。保存中的草稿不能并发放弃。 - 读取参数错误引导回到列表重新选择;不可见对象保留返回列表入口,不泄露对象内容。 - 静态安全提示禁用跑马灯并允许换行,避免警告内容短暂移出可视区域。 ## 20. R08 标签与时间往返 - 承诺策略、访谈和集成导入的输入保持可见标签;填写后仍能识别含义,时长、尺寸和比例继续遵守各自字段单位。 - 记忆阅读按中国标准时间呈现,时间编辑明确按设备时区解释;禁止直接截取 UTC 字符串作为本地输入。 - 未改时间时保留原始时间点、秒、毫秒和偏移表达;主动清空才提交空值,修改后转换为 ISO 时间点。 - 本批完成 84 处标签与记忆双端时间适配,类型检查和时间转换定向用例通过;键盘、跨端和实际保存验收仍为 not_run。 ## 21. R08 录入与隐私摘要 - 正文录入优先;时间与来源可按需展开,隐私选择和提交前当前值始终可见。 - 采集时间说明何时收集,不替代事件发生时间;未知记忆时间仍保持未知。 - 本机标题建议必须由用户点击采纳,不自动改写标题或原文,不隐含云处理授权。 - 媒体入口展开后保留组件状态,不因表单布局切换丢失录音或待上传图片。 ## 本地日期时间的严格校验(2026-10-01 复核) 共享展示层的日期时间编辑复用客户端本地墙上时间合同。用户改动后只接受完整的本地年月日时分,以及可选的秒和一至三位毫秒;无效日历、日期滚动、夏令时跳空、日期-only 和带时区偏移的本地输入均在写入前抛出受控校验错误。本地年份和换算后的 UTC 年份均限制为 0001 至 9999,偏移跨出范围时同样拒绝。主动清空仍返回空值。 未修改的回显沿用服务端原始时间字符串,保留秒、毫秒以上精度以及夏令时重复小时的原始瞬时点;早期年份按四位补零。双端记忆和复盘的保存边界捕获错误并保留输入,不把非法输入改成另一天或静默清除原时间。 定向测试覆盖 UTC、上海、纽约、Lord Howe 的半小时跳空及 Apia 的整日跳空。该合同和组件状态验证不替代浏览器原生输入、真实数据库或设备验收。 ## 2026-10-02 逐图审计后界面修复约束 - 主色填充必须与 on-primary 配对;小字号警告正文使用可读正文色,警告边框和表面保留语义。未定义的 app 令牌替换为现有 anenreo 令牌。 - PageHeader 默认 h1;工作台嵌入面板显式 h2,仅 h1 承担路由焦点。通用新建不重复标题或 main,主内容地标由布局提供。 - 选择按钮使用具名普通按钮组及 aria-pressed;仅实现 Tab/Enter/Space 时不得声称完整 tablist。移动外观补键盘入口及重复按键防护,展开项使用 aria-expanded。 - 缺少必要编号时停止读取并提供真实列表恢复入口;加载、错误、真实空数据和筛选零结果分别展示。专用新建沿用现有写入合同,历史通用读取继续保留。 - 移动导出生成期间锁定选项,下载格式与敏感提示绑定本次请求快照,不随下一次编辑变化;不放宽 step-up、确认、授权或凭据生命周期。 - 长页补充截图在本轮已回读合成记录的独立只读上下文中验证可视区、主题与遮挡。Memory 八项、Capture 六项为独立补充分母,不抵扣静态或其他动态缺口;Capture 元数据折叠/展开仅验证新建录入器,确认预览才绑定已保存记录。 本批是客户端源码与验收工具修复。真实浏览器、明暗主题截图、键盘与读屏、API/数据库及原生设备验收以同提交的实际运行证据为准;尚未运行者为 not_run,不提升领域功能完成度。 ### 第二批:读取状态、待确认写入与移动选择 - 查询失败与写入失败分别呈现;空数据必须建立在成功读取之上,不能在加载时或请求失败时宣布没有记录。局部筛选无匹配提供清除入口,未知服务端搜索上下文使用中性文案。 - 编辑和详情的未确认写入冻结正文、原因、修订与幂等键,同时阻止重新载入和新写入;已取得回执仅回读。明确失败保留草稿并解锁,确认成功才结束待确认状态。不能将已有创建保护计为新增修复。 - 移动普通选择组使用 aria-pressed 和 Tab/Enter/Space;键盘与点击共用受控处理函数,重复按键不得重复触发。禁用写操作同时体现焦点与处理函数守卫,不能只改变视觉。 - 工作台在布局 main 内使用 section;仅顶层 h1 承担路由焦点。内嵌匿名预览从 h2 开始,单卡内预览不保留空的第二列。 以上是 99b9ff16 之后的客户端修复约束;第二批真实浏览器截图、键盘与读屏及 API/数据库验收为 not_run,不宣称全部界面或业务完成。 ### 首批图像复核后的颜色与输入补充 - Wot 通知栏显式提供 Warning、Info、Danger 的背景和文字六个有限令牌。纯颜色计算覆盖二十套预设的明暗模式及测试登记的自定义颜色、高对比组合,通知栏前景/背景比值至少 4.5:1;这不是屏幕渲染或任意外部颜色组合的验收。 - 危险提示使用语义危险表面和主题正文;禁用按钮也消费主题表面,保留原禁用守卫。中文字段名称、持续标签及可触摸高度不改变领域值、隐私或接口含义。 - 日期时间按设备本地格式编辑,未改时保留原服务端时间点和精度;可选清空映射 null,必填清空、无效日历与夏令时跳空在提交前拒绝。文本回退控件明确提示格式,不声称原生选择器。 本批源码修复后的新截图、实际操作、读屏和真实 API 验收仍为 not_run。首批既有截图的逐图复核不能代替第二批同提交复测。 ### 第三批 f207ad73 图像复核后的局部修正 - PC 外观的原生选择按钮同步 aria-pressed,保持原输入模型与事件,不凭视觉选中样式推断辅助技术已能读到状态。 - 本批只调整已在图像中确认的四个 success-soft 徽章前景:自建实体已发布、字典启用、Memory ACTIVE 有效状态、Capture LOW 风险。条件外状态、风险和原表面保持;不把四个触点修正扩大为所有徽章或主题验收。 - Routine 小字号说明保留警告软背景并配正文;Mobile Decision 禁用分页按钮使用局部主题配对,保持原禁用与分页逻辑。颜色计算及组件合同不是新截图、WCAG 全面认证或读屏验收。 - 移动装饰伪元素不应代替按钮成为命中层;Memory 仅令 ::after 装饰边框 pointer-events:none,原按钮本体和权限保持。几何 QA 继续拒绝祖先命中,不为消除失败放宽断言。 第三批修复后浏览器仍为 not_run;上一轮可见画面的改进不抵扣未截得有效对象、写入或动态状态。
R32 主题对比、主内容与表单名称修复(2026-09-14)
主色背景与文字分别使用 primary/on-primary、primary-strong/on-primary-strong;文字强调使用 primary-text/primary-strong-text,在页面、面板和选中背景上按实际相对亮度调整。十二套扩展主题的面板以中性色为基底,修正混色权重方向。跳转链接和知识页主按钮不再固定白字。知识、媒体、集成工作台由布局提供唯一 main,h1 接入现有路由焦点。映射转换、照片格式、媒体派生类型均有可见 label。自动颜色检查覆盖 20 主题、深浅模式、七组主色及六种背景;本次合成服务页面检查不替代领域 PostgreSQL 或原生设备验收。
R08 设置分层(编码阶段)
R08 SET-002:双端基础外观先显示模式、字号、高对比及减少动态,再显示四套常用主题与密度。完整主题、自由调色和圆角移至高级层。层级上方始终显示当前主题和恢复默认入口;仍使用原设备偏好与确认流程。本轮仅完成客户端调整;真实保存、权限、冲突、双端截图及可访问性由统一验收执行,尚未计为业务验收通过。
2026-09-30 主题与可访问性审计修复
FND-01 至 FND-08:紧凑侧栏保留中文可访问名称及悬停提示;H5 底部导航、记录卡片、色板补 Tab/Enter/Space 和当前/选中语义。辅助说明和 Wot 提示在二十主题、深浅模式、极端自定义主色以及常规表面上使用至少 4.5:1 的颜色配对。
文字强调和实心背景分工明确:短变量 primary/primary-strong 对应校正文字色,primary-fill/primary-strong-fill 与 on-primary 配对。Nuxt UI 精确主色、表面和正文由同一令牌写入;字号、共享留白和常规圆角消费用户比例,紧凑密度不降低触控区域下限;动态表单缺失的空间/字号/圆角别名已补齐。
移动跟随系统使用引用计数的单例事件源;H5 matchMedia 与 uni 主题/前台事件更新当前模式,最后一个消费者卸载后清理;用户固定浅色或深色时保持其选择。
自动证据:tests/ui-v1.2/uiux-foundation.behavior.test.mjs。已补实际 scoped 主色按钮的前景配对与全局/scoped/运行时未定义变量扫描;Nuxt 和 Wot 主按钮使用相同 fill/on-primary,框架字体级别同步缩放。纯颜色计算、事件生命周期与源码消费检查已执行;屏幕渲染、键盘焦点顺序、读屏及原生设备验收仍为 not_run,不把静态检查计为视觉验收。
2026-10-01 实际截图主题修复候选
移动页面必须在加载、失败和业务分支外提供同一个 MobileThemeProvider,不能把媒体查询背景或手加 theme 标记当作完整主题接线。普通元素、Wot 与原生标题栏取同源偏好;显式浅深色应覆盖相反系统模式。固定浅色组件改用现有语义表面、文字与边框;实心主操作使用 primary-fill/on-primary 配对,短 primary 令牌只用于文字和边界,不能把它当作填充色。
PC 数字资产、发布和个人模型的本轮调色同样消费既有语义令牌和 on-primary,搜索控件补齐明确名称。两端修复后的真实浏览器截图复测仍待最终提交 CI,不由模板、SSR 或静态合同提升业务完成度。
正式控件尺寸基线(2026-10-25)
Nuxt UI常规按钮和单行输入/选择触发器共用高度下限,舒适44px、桌面紧凑36px,触控或窄屏至少44px;多行内容仍增长。Wot按钮统一44px,输入采用24px内容及上下10px留白。富文本历史兼容已按版本化字符串合同接入正式代码;具体双端回读及未验收范围见本页第二轮说明。
正式控件验证边界(2026-10-25第二轮)
正式动态表单的编辑、预览、只读已接入共享富文本合同;H5页面固定操作层低于框架弹层,反馈入口在弹层动画结束后重新测量遮挡。PC390px日/月/年弹层和H5日期时间弹层已有真实截图。这里只记录本轮共享控件修复,不推定所有主题、组件、弹窗及领域页面全部验收。
证据:_work/handoff/uiux-production-20261025-phase2;逐项范围见production-70-ledger.json,测试、截图和独立回读分别留证。
2026-10-25 业务版本、技术编号与安全反馈
不可变回执与只读诊断需要的业务版本继续显示,并按专用中文版本标签验证;内部模型/事件ID按既有技术偏好条件渲染,默认渲染树不保留其裸值。正文日期与ISO机器锚点分开,未知异常始终经共享安全展示,技术开关不显示原始异常。
日期分钟控件、稳定值选择器和portal继续复用正式Nuxt/Wot/主题方案;打开/取消/同值确认保留语义,旧对象/会话卸载真实弹层。44px指输入外框与主要操作,不能从工具栏或滚轮行高替代判断。四组件本地化原门禁与零基线未改;实际像素、触屏、键盘/读屏分别验收。
2026-10-25 Portal样式须核对编译后选择器与真实像素
Memory实例证明仅把主题变量注入body portal不足以保证深色背景:Uni仍会给普通页面style追加scope。应核对安装工具链生成的最终CSS AST;只在本页唯一变量/类边界内将整条选择器global,再用真实computedStyle和截图确认,不能只把末端类global或改vendor掩盖作用域。
本轮H5/微信CSS AST先红后绿、纽约110唯一定义与第三轮两端构建通过;真实H5深色390宽背景、当前值、日期5列及54px工具栏已观察。该局部证据不等于所有主题、键盘/读屏或微信/App设备通过;44px输入触发器和35px滚轮行距分别说明。
2026-10-25 控件库存分类与框架后继
首片Reminder与LegacySelect使用真实Nuxt USelect,Reminder五入口使用UButton。空字符串只作placeholder不写回,历史未知稳定值显示不可选中文历史项;读取/写入/回执/session冻结显式传入portal,禁用关闭且拒绝非法或迟到事件。原key、原ID/body、专用GET及业务断言保留。相关243项含真实Nuxt/Reka SSR与公开端口,不代表真实展开像素或全模块验收。
源AST原131、后继129、当前128 SFC均为候选审查库存,不是确认缺陷数或必须重写数。按confirmed_requires_framework、needs_visual_or_semantic_verification、native_capability_or_hidden_bridge、already_conforming分类;最后一类需要真实测量。符合统一token、同区36/44、焦点/禁用/语义的HTML button可保留;不得把原1030按钮写成待重写缺陷。file/color系统能力及Nuxt/Reka隐藏序列化桥须保留,不能按DOM含原生tag判失败。
正式Mobile共享弹层从同一rootStyle消费23项有限Wot变量,经限定portal surface的整条:global规则逃离Uni自动scope;颜色popup还原实际需要的10项语义/字号/密度/圆角别名。保留嵌套ConfigProvider显式themeVars,不使用祖先全局hook。沿用原七项触控字段,取消/确认至少44px,原35px滚轮不冒称44px。
当前正式消费为23单选、15日期、1颜色popup,未消费的已安装组件不能据此宣称业务/视觉完成。九组原主题矩阵继续全对象toEqual,4822项通过;原Memory110纽约通过,12项真实已安装Wot/Uni/CSS及H5/微信CSS AST和scope负对照通过。r6 H5/MP构建0;真实像素、几何、触摸、读屏和设备由根另记,当前不预填通过。
Routine/Action、Constitution五选择与Memory保存守卫均晚于r6。r6构建通过和局部真实浏览器切片不覆盖后继源码或全主题/设备验收。
2026-10-25 颜色触控实测与键盘候选
r7真实H5完成按钮为44×44,深色背景rgb(24,28,25)、无横溢;同一轮真实Tab却落到背景“选择辅助色”,弹层无dialog语义。触控尺寸通过不等于键盘完成,旧失败证据原样保留。
新候选仅ColorPicker与专用mobile-color-dialog-focus helper两生产源:明确dialog/aria-modal、真实Uni refs;挂载后聚焦完成,Tab/ShiftTab循环当前焦点项,拦截背景键盘/指针/focusin,Escape/Done/原选色/自有遮罩关闭恢复原opener。关闭立即卸载自身dialog,scope退出释放守卫;不写背景inert/aria-hidden,不改共享Wot或引入通用modal管理。App/MP官方预处理setup在document getter抛错时0访问。
安装真实Uni/Wot与明确合成DOM端口的新9项、原25项共34/34,类型、注释/链接/导入/完整性按该快照通过;不是浏览器默认键盘或设备验收。两生产源冻结,新r8 H5/MP构建由根进行中,真实浏览器焦点、背景不可激活、Escape/恢复、字号/44px/主题待根;r7旧截图不能追认新候选PASS。
r7 API、Web正式、Web隔离、H5、MP五构建均exit0;已包含先前晚于r6的Routine/Action17源、Constitution三源五选择与Memory saveTime守卫。此前“r6不含”保留为历史;本次只关闭该构建缺口,不代替菜单/焦点/可访问性、全部主题/设备或真实服务写入验收。
r7不含之后的Color焦点候选和DEC008完整item schema后继。首片Reminder真实回执恢复的原1PATCH/失败GET2/重核4GET0PATCH证明保持;构建通过与已存在特定浏览器切片不能推全70项完成。
2026-10-25 r8颜色复开焦点仍待修复
随后根r8 H5/MP两构建exit0,真实H5首开完成44×44、Tab双向及Escape恢复通过;light/dark背景分别约rgb(250,249,246)/rgb(24,28,25),无横溢。打开态截图仅证明该可见状态,不能证明焦点成功。
稳定复开后已有role=dialog一份、expanded=true,焦点仍停“选择主色”opener,insideDialog=false,Tab才移入。color-dialog-reopen-focus-r8-failed.json已保留,因此r8仍为partial,首开路径修复不闭合重复打开。专员继续最小修复,新源码/构建/真实浏览器尚待,不写完整键盘PASS。
2026-10-25 颜色复开后继与移动控件库存
r8稳定复开时dialog已打开但焦点留opener的真实失败继续保留。安装Wot缓存transition二开会先在display:none祖先下挂载同一ref,旧post-ref focus被浏览器拒绝且不会重触发;合成DOM端口补hidden祖先规则后,第2/3次开同样先RED。
最终后继仅本consumer关闭时退役Wot key,并把逻辑pickerOpen与popupShown分开,用一个可取消nextTick使真实Wot先mount false再update true,保留原scroll-lock watch。同帧重开、立即关闭、卸载使旧callback失效;helper和全局portal源不变,无轮询、timer、observer或transitionend依赖。裸v-if/裸key的滚动锁回归已先失败留证后弃用。
最终dialog18加原25共43/43,实际安装Wot生命周期、滚动锁、三opener、减动效和卸载取消均分层留证;类型与各门禁在该快照0。ColorPicker冻结1017d2349018463514cfdc165ba0ea7fc649e826537c9615d763ac3de5fd508f,focus helper仍原hash。r9等B11冻结后统一H5/MP构建和真实浏览器,尚未跑;43项合成DOM不能追认r8旧失败图或完整键盘/设备PASS。
同一H5 r8实际390宽下“重新读取第一页”按钮高40.552px,role和tabindex均null,低于44px且缺键盘语义。mobile-control-gap-r8.json仅证明这一真实按钮,不把整页节点计数当确认缺陷。
本consumer的26按钮/34input/4picker作为候选库存正在独占修复,当前不登记PASS。正确平台能力、隐藏桥或合约原生控件可保留;需按真实标签、输入值/历史、回执/会话/分页边界验证,再统一冻结、构建及真实H5/MP检查。真实Provider/OAuth和设备继续单列。
2026-10-25 r9颜色三开与控件几何切片
r9 H5/MP两构建exit0,receipt同时绑定ColorPicker 1017d2349018463514cfdc165ba0ea7fc649e826537c9615d763ac3de5fd508f与Integration 4169f0ab437ac2f0da16a8e6f74f9b6dcfbd30bf0b5e6ba44943786397650aad。根真实390×844 H5连续第1/2/3次打开均自动聚焦完成,body overflow=hidden;第二次ShiftTab到最后色块、Tab回完成。
前两次Escape和第三次Done关闭后均dialog0、恢复主色opener并释放body锁。Done44×44,第三次深色背景rgb(24,28,25)、无横溢,paletteValueChanged=false。此前r8复开失败JSON/截图及中间锁回归原样保留;新r9证明冻结候选的这条三开焦点/锁恢复路径。
真实读屏、原生设备、全部主题/字号、其它模态与所有交互组合尚未验;MP仅构建0,不等于真机焦点/读屏。43项合成DOM回归、r9构建与这次真实浏览器切片分层登记,Color完整控件/领域验收不升级。
根r9真实H5详情当前11按钮均44px并有role=button/tabindex=0;新建状态16按钮(含当前可见3个picker触发)和4input均44px,可见native select0,均无横溢。连接器类型这一Wot popup实际dark背景24/light250、同一工具栏取消/完成均54px,当前几何符合该操作区;vendor工具栏role仍null,键盘/读屏另待。
取消后缓存popup在top=844屏外、body已解锁是根现场观察,不应仅因缓存DOM仍存在判遮罩未关;主browser JSON记录详情/新建几何和一个类型展开路径。其余3picker、照片路径、全部字号/主题/角色、vendor toolbar键盘/读屏及MP真机未验,不能写完整控件通过。浏览器业务写入0,不调用Provider/OAuth。
实际15373提供r9 H5 snapshot;正式API4000仍r8 PID29452,Web3000仍r7 PID45740。real05独立真实DEC生成/审核通过保持,24测试库尚未清理。API/Web启动、隔离真实模型、Mobile构建及H5切片各自保留范围,不外推全模块或Provider能力。
全70项及14批fullAcceptance继续false,完整目标active。此前“r9未构建/浏览器待根”章节保留为旧时点,本轮仅关闭明确r9构建与上述局部浏览器缺口;旧r8失败不反写,剩余读屏/设备/主题与完整业务矩阵继续逐项待验。
D20:原则引用的正式Wot控件候选
CON007使用本域Wot Action、RelationPicker及Text,不新增跨领域通用表单引擎。primary/plain同操作区按44px最小声明盒,短标题动作不收缩,正文自然换行;单行WdInput body最小44px、inner42px,标签总高不混同输入盒。
选择器保严格数值索引0、取消与旧portal退休,Enter/Space及disabled事件均由当前词法资格核验。输入保原raw字符串;兼容两原生输入退役并由一个真实WdInput桥承接,原生指令清单须按实际AST精确迁移,不能伪造标签或放宽编译边界。
以上是源码及受控验证,实际320/390、大字、明暗、展开及只读几何仍待新构建验收。D19缓存标题主题仅补正式Uni onShow同步;全局原生离开弹窗角色和尺寸及设备读屏不因本片而宣称完成。
D22:来源卡主次操作主题后继
R38实际深色下详情按钮黑字叠在透明背景,原Card scoped规则被实际Wot级联覆盖。此后继仅两条Card局部scoped样式:以本卡祖先和专用叶类限定优先级,主操作使用同源primary-fill/on-primary令牌,次操作使用surface/text/border令牌,实体边框1px。前景为黑或白由主题配对决定,不硬编码一律白字。
原script/template、两个消费者、来源与会话闭包、Enter/Space、权限、原稿及44px inline盒声明均逐字保持。旧原像NEW14中12项真实CSS受控反例失败、2项无外溢健康;候选NEW14及原17控件31项通过,严格类型及五静态门0。CSS级联受控验证不冒充浏览器像素;R39标准构建与真实320/390/明暗/大字/主次操作复验由根另封,本段仍为源码后继。