状态:本页是现有组件合同的消费指南,不另立规则或例外;所引基础采用值与候选行为的状态以各主档原文为准。本页不宣称设计资产、API、四端实现、视觉或运行验收已完成,第 13 节的组合走查是文档脚本,不是运行记录。 所属章节:基础组件与交互契约
本页面向正在编排页面、评审方案和填写交付说明的设计者、产品与工程人员。先回答“用户在做什么”,再选择组件;不是从喜欢的外形反推交互。阅读次序是:任务选型 → 组件解剖 → 视觉配方入口 → 状态与组合 → 唯一主合同。
常用入口:按钮 · 文本输入 · 搜索 · 选择 · 菜单与导航 · 浮层 · 反馈 · 容器 · 表格选择 · 有界编辑子集。
使用边界
这是现有合同的消费指南,不是第二套组件规范。本页示例中的编号、记录和文案是虚构任务示例;“推荐/避免”解释如何应用现行合同,不改变其权限、事件、取消、范围或焦点规则。发生疑义时回到所列标题和追踪 ID;新增能力通过原主档变更,不在本页另设例外。基础采用值与候选行为的状态沿原文,本页不宣称设计资产、API、四端实现、视觉或运行验收已完成。
1. 先问任务,再选组件
覆盖类型只描述本行所指的文档范围,不代表资产、实现或验收等级:
- contract:该有界任务已有主合同。
- subset:仅覆盖明确子集或条件能力。
- boundary:仅说明责任/选型边界,不能据此交付完整能力。
下表不是全组件覆盖矩阵,未列出的族与未列出的变体不因本页发布而宣称完成;同一族也不能由一行 contract 推及全部能力。
| 用户此刻需要什么 | 优先选型 | 不要用什么代替 | 文档覆盖类型与关键限制 | 去哪里读完整规则 |
|---|---|---|---|---|
| 执行一次动作 | 普通按钮;次要命令可进入菜单 | 用链接伪装提交;用切换状态代表提交成功 | contract:单次动作与请求表达;不提供业务授权、后台任务或服务幂等能力 | 操作组件:按钮与动作入口「CMP-01 / ACT-BUTTON 普通按钮」 |
| 打开另一个资源或位置 | 链接;有层级时配面包屑 | 用普通按钮抹去目标与返回语义 | contract:可辨目的地与返回;目标可访问性仍由产品/服务判定 | 导航组件:位置、切换与返回「CMP-20 / PRM-LINK 链接」 |
| 输入名称、编号或简短文字 | 单行输入 | 数字编号强行使用数值增减器 | contract:短文本/标识符与原稿;字段长度算法、规范化及规则须显式配置,不覆盖全部专用格式 | 输入组件:文本、结构化编辑与专用输入「CMP-06 / TXT-SINGLE 单行输入」 |
| 输入一段不需要格式的说明 | 多行文本 | 为几行备注默认上富文本编辑器 | contract:纯文本及已声明增长方式;不含富文本、附件或代码编辑能力 | 同篇「CMP-07 / TXT-MULTI 多行文本」 |
| 查询一批结果 | 搜索输入,必要时组合筛选 | 把搜索框与字段选值器混为一体 | subset:实例先声明显式/稳定后查询及建议模型;不提供检索服务、任意建议类型或历史同步 | 同篇「CMP-08 / QRY-SEARCH 查询输入」 |
| 在互斥选项中作一个决定 | 单选组;空间或候选量需要时用单项选择器 | 把两个独立开关当互斥选项 | subset:已定义普通/工具栏单选与声明的单项选择模型;不能推及任意候选布局或选择语法 | 选择组件:值、范围与层级「CHO-RADIO」「SEL-SINGLE」 |
| 选择多个值或多个记录 | 复选框、多项选择;记录范围另按批量合同 | 把多选当一组普通切换按钮 | subset:复选框组限明确且已解析的可操作范围;多选限已声明模型,不自动支持远端全量 | 同篇「CHO-CHECK」「SEL-MULTI」及查询、选择范围与批量执行 |
| 改变一个明确的开/关设置 | 开关;先说明即时还是表单草稿 | 把会执行复杂任务的按钮画成开关 | contract:明确布尔值及已声明保存模型;不提供远程原子写入或业务执行能力 | 选择组件:值、范围与层级「CMP-15 / CHO-SWITCH 开关」 |
| 查看同一对象的相关内容区域 | 标签页 | 把“启用/停用”字段值画成导航标签 | contract:同上下文相关面板及声明的激活模型;不等于任意页面路由 | 导航组件:位置、切换与返回「CMP-22 标签页」 |
| 暂停当前任务,处理一个有边界的决定 | 对话框 | 每次成功都弹确认;把整套长期工作塞进小浮层 | contract:有界模态任务与关闭/焦点;不保证业务取消、回滚或长任务服务 | 浮层组件:对话框、抽屉与提示「CMP-26 / LP-DIALOG 对话框」 |
| 保留主内容参照,查看或编辑相关细节 | 明确声明模态性的抽屉,或页面侧内容 | 仅凭靠右出现就推定非模态 | subset:须声明模态性与编辑所有者;响应式转换受 CMP-LAYER-RESP 条件约束 | 同篇「LP-DRAWER」及容器组件:分组、展开与工作区组织「B1-SIDE」 |
| 知道哪里错、能怎样恢复 | 字段错误、消息摘要、范围对应的横幅 | 用自动消失的 toast 承担唯一错误记录 | subset:字段/摘要/横幅/toast 的已定义范围;不提供持久任务中心或自动补偿 | 反馈组件:让状态和结果可理解「CMP-31」「FB-BANNER」「FB-TOAST」 |
| 组织内容、记录与属性 | 内容分区、卡片、列表、描述列表或表格 | 每个字段一张卡;所有内容都变成交互网格 | subset:已列内容组织模型;尺寸能力、交互网格及跨页选择不能由容器外形推定 | 容器组件:分组、展开与工作区组织、数据表与交互网格契约 |
一个页面可以组合多个组件,但先给每个动作写清对象与结果。例如“筛选记录”“选择导出记录”“导出已选记录”是三个不同意图,不因为同处工具栏就共用一个模糊的“确定”。任务是否独立仍按按钮篇第 1.1 节判断;卡片或分栏不自动多出一个主操作名额。
2. 统一外观,但不复制参数主档
2.1 先建立克制的默认画面
默认 primary 为 ink,neutral 为 gray;这不是“所有控件都涂黑”的要求。主操作和选择承担强调,普通结构保持中性,状态色仅在对应事实出现时使用。允许自定义 primary,但覆盖必须满足原合同的完整映射与重验条件;没有覆盖、覆盖被删除或覆盖校验失败时,按主档使用完整默认 ink 映射。校验不通过须拒绝整份覆盖并说明失败,不能静默修改用户色;有效覆盖不因页面风格偏好而被替换。
唯一依据:Token 契约、主题与状态「1.2 默认与自定义 primary 的契约」及「FND-C01:七角色允许表与固定职责」。ink/gray 是中心色板身份,不是组件应新增的公共颜色维度。
2.2 可以直接消费的现有视觉配方
下表是找配方的入口,不生成新 Token、组件颜色别名或另一份尺寸表。实际用到的前景、直接背景和主题必须落在原登记配对里;允许配对不等于所有控件状态已完成设计。
| 正在画的内容 | 现有配方如何读 | 唯一数值与限制来源 |
|---|---|---|
| 主按钮与普通按钮 | 从八变体中按任务强调选型,再读取 default/hover/pressed/disabled/loading;不要自己给“按下”补色阶 | 操作组件:按钮与动作入口「1.3 D03-B01:八变体初始状态消费配方」 |
| 普通页面、内容表面、工具栏 | 页面/下沉结构与内容表面分层;默认文字与次文字按原材质配方,不额外加玻璃、遮罩或阴影 | 基础组件与交互契约「5.1 D03-M01:六材质初始消费配方」 |
| 输入边界、选中项、文字与链接 | 必要边界查 C10-BORDER;普通文字查 C01-TEXT;选中文字查 C02-SELECTED-TEXT;链接查 C03-LINK;这些是允许组合,不是完整组件皮肤 | 色彩语义与可辨状态「D01-R1 采用的允许配对与静态算术证据」 |
| 错误、信息、警告或成功说明 | 普通表面上的状态文字查 C07-STATUS-TEXT;确需弱状态面时查相应 C08;强面仅在原职责允许时查 C09,不把整张表染成状态色 | 同篇上述配对表及「3. 状态色需要明确语义」 |
| 焦点与已选叠加 | 焦点独立于选择;用登记的轮廓、稳定间隔与外侧背景构造,不能直接贴任意强面 | 同篇「D01 组合限制,不能从数字通过扩大用途」,C11-FOCUS |
| 标签、输入文字、正文与标题 | 使用 label/prose/heading;单行输入默认 label-3x,多行输入默认 prose-3x;跨端取相应平台列,不把数值当同一单位 | 排版层级与文字可读性「2.2 FND-T01:九档适用范围与 D02 平台尺度」 |
| 控件、卡片、菜单、对话框的几何 | 按组件承载职责取圆角、必要边界、间距与最小高度;不要把紧凑理解为缩字或缩触控目标 | 布局、响应式与信息密度「D05-L01」「D05-L02」「D05-L03」 |
| 页面、表单和浮层可用宽度 | 先取现有初始框宽,再按真实内容与空间重排;不是为每个控件另发明一个断点 | 同篇「5.1 D05-L04:可直接绘制的画布与内容框宽」 |
推荐
编辑表单使用普通中性表面;“保存草稿”采用 primary;“取消”使用低强调;出错的字段保留其标签、输入与错误说明,不把整个页面改成危险面。
避免
把“保存”“预览”“导出”和每张卡片里的“编辑”都画成主按钮;为了“高级感”新增半透明颜色、品牌色边框、独立字号或全局透明度。
2.3 交付时指出使用的是哪一行
写“按钮按 D03-B01 的 primary 行;表面按 D03-M01 的 surface 行;文字按 FND-T01 对应平台行;几何按 D05 当前输入方式行”,比写“遵循设计系统”更容易复核。若某个状态没有现成完整配方,列明缺口和已知允许配对,回主档完善;不要在页面稿里悄悄创造一个新公共别名。
3. 按钮:让动作、对象和后果一眼可知
3.1 解剖与类型选择
基本结构是动作名称,可选辅助图标,以及与该动作关联的处理中或不可用说明。名称优先“动词+必要对象”,如“保存草稿”“移除附件 R-008”;图标不替代高风险后果。
| 场景 | 选择 | 使用提醒 |
|---|---|---|
| 保存当前表单 | 普通按钮 | 只有当前独立任务的主要行动用 primary |
| 紧凑列表中的预览/关闭 | 图标按钮 | 名称包含对象;陌生图标或高后果动作保留可见文字 |
| 保持“显示标记”的本地状态 | 切换按钮 | 稳定名称和持续按下值;不能把瞬时 pressed 当持续选择 |
| 一个高频默认命令,加少量同族替代命令 | 拆分按钮 | 默认动作与展开菜单是不同入口;展开不执行默认动作 |
| 多个次要上下文命令 | 菜单按钮 | “更多操作”须能确定是哪个对象;不隐藏核心任务的唯一入口 |
视觉变体先选层级:primary 是主要行动,outline 与 neutral 同级且同组择一,minimal 降低强调但不降低可达性。general/success/warning/failure 只在已有对应状态上下文使用,不是额外四档“更重要”。完整选择与限制回操作组件:按钮与动作入口「1.2 CMP-ACTION:八变体设计边界与任务判断」;视觉回 D03-B01。
3.2 先写正常、处理中、失败三句文案
- 正常:“保存草稿”。
- 处理中:“正在保存草稿”,仍能理解原动作;是否能取消取决于真实能力。
- 明确失败:“草稿未保存,请检查连接后重试”,仅在已确认失败且重试安全时成立。
- 写入超时:“保存结果待确认”,按真实核查能力给路径,不把超时直接写成未保存。
这些不是新的请求状态机;执行与恢复回 ACT-BUTTON,焦点与去重回同篇(操作组件:按钮与动作入口)第 2 节。已受理不等于业务完成,按钮变成 success 也不能代替完成回执。
推荐
删除 R-008 的独立确认中写明对象、影响与可恢复性,只有该危险行动承担本任务主操作。
避免
“批准”和“拒绝”分别使用两个突出状态按钮,或在弹窗里另放一个同级 primary“确定”。当前没有批准/拒绝双主例外。
4. 文本输入:先让人知道填什么,再提示怎么改
4.1 单行与多行的解剖
从上到下识别:持续标签 → 输入主体 → 必要格式/单位/限制 → 当前错误或检查反馈。前后缀、计数、清除入口按任务选配;不要把它们全放进每个字段。占位是示例或辅助,不是唯一标签。
- 单行适合名称、编号、短标识。编号“000127”具有字符身份,不应因为全是数字而加减或去掉前导零。
- 多行适合备注、原因和纯文本说明。自动增长、局部滚动、展开编辑是呈现选择,不是三份内容。
- 详情只展示值时,用合适的描述内容;确有编辑上下文才用只读字段。不可操作的灰框不是通用详情样式。
视觉先消费第 2 节的文字、稳定表面和必要边界入口。单行与多行文字分别按 FND-T01 的既有默认;密度只调允许空白,不把长备注缩成小字。
4.2 状态怎么选
| 看到的事实 | 应选择的表达 | 避免的表达 |
|---|---|---|
| 新建表单尚未填写 | 标签、格式和必要的必填说明 | 一打开就满屏报错 |
| 正在中文组字或输入中间串 | 保持原稿与编辑行为 | 每个字符都强制格式化、报最终非法 |
| 本地格式正确,远端检查未完成 | “正在检查”或“尚未验证” | 绿色图标声称编号已经可用 |
| 只失去编辑权限,仍可读 | 可理解的只读值和原因 | 把值擦掉或伪装成空值 |
| 当前值有错,用户仍在编辑 | 当前值、关联错误与焦点一起保留 | 用 hover 或灰色覆盖错误与焦点 |
推荐
标签“记录编号”,帮助“保留前导零”;冲突提示“编号 000127 已被使用,请换一个编号”,仅披露获准信息。
避免
占位“请输入编号”在输入后消失;“格式错误”不说明规则;远端检查失败却把用户编号判为非法。
完整规则
输入组件:文本、结构化编辑与专用输入「1. 字段共同契约与校验边界」「2.1–2.3 TXT-SINGLE」「3.1–3.3 TXT-MULTI」。字段级错误与整表摘要回反馈组件:让状态和结果可理解「CMP-31 字段校验与 DSP-MESSAGE-SUMMARY」,不要在输入组件另建一套提交校验流程。
5. 搜索:输入的词、建议和当前结果不是一回事
5.1 解剖与模式
结构是可理解的搜索范围、查询文本、搜索/清除入口,以及需要时的建议和结果摘要。例如“搜索当前工作区的记录”,比无范围的“搜索”更能避免误判。清除查询是否恢复默认集由实例说明,不自动清掉其它筛选条件。
先选择显式查询或输入稳定后查询,再决定是否提供建议。需要用户确认一组复杂条件时,结合筛选条;只从候选中给一个字段赋值时,用选择器而不是搜索结果页。没有建议的搜索不需要假装成组合框。
建议面可消费 menu 材质,但 menu 材质不授予命令菜单语义;实际 listbox/grid/tree/dialog 模式仍回搜索主档。结果区域刷新失败时保留其真实查询身份,别让旧列表顶着新查询标题。
5.2 一组好用的状态文案
- 尚未查询:“输入记录名称或编号”。
- 当前查询成功无匹配:“未找到匹配‘R-208’的记录”,可按真实能力提供调整条件。
- 当前查询读取失败:“暂时无法获取搜索结果”,保留词和条件;不是“没有记录”。
- 已加载部分且总数未知:“已加载 20 条,总数未知”;不是“共 20 条”。
推荐
输入 R 后浏览建议,按 Escape 只关闭建议;结果摘要在真正收到对应查询时更新。
避免
方向键高亮建议就保存字段或跳页面;较早查询返回后覆盖较新的列表;窄屏下偷偷把显式搜索改成每字查询。
完整规则
输入组件:文本、结构化编辑与专用输入「7.1 范围、结构与状态」「7.2 事件、键盘与异步」QRY-SEARCH;组合查询回查询、选择范围与批量执行「FT-COMMON」「FIL-BAR」。
6. 选择:让值、范围和保存方式显式成立
6.1 选对控件,而不是只换外形
| 选择任务 | 适合控件 | 不适用时换什么 |
|---|---|---|
| 少量互斥选项,需要直接比较后果 | 单选组 | 候选需要检索/消歧时看 SEL-SINGLE 或值帮助 |
| 多个独立包含项 | 复选框 | 真正即时开/关设置看开关;远程全量记录范围看批量合同 |
| 一个开/关设置,语义清楚 | 开关 | 互斥选项用单选;一次业务执行用按钮 |
| 从一组候选中选一个值 | 单项选择器;可检索时组合框 | 复杂列、筛选、多步核验用值帮助,不无限加长小弹层 |
| 从候选集中选择多个值 | 多项选择器 | 记录操作需跨页范围与结果对账时回批量模式 |
| 按层级发现并选择 | 树形选择器 | 没有真实层级不要只为缩进好看而用树 |
每个选择都有持续的组/字段名称、当前值、可操作候选、必要的消歧说明和错误位置。多选还要让用户发现、移除当前视野之外的已选值;“只显示前三个标签”不能把其余选择变成不可知。
6.2 视觉与状态的读法
选择采用 primary 的既有职责,并保留勾选、单选点或明确当前标记;焦点仍是 focused 的独立构造。可读文字与选中表面使用 C02,选中芯片使用 C05-SELECTED-CHIP,标记配对按 C06-MARK。选择存在不表示这一整组获得主操作强调。
“已选”只说明当前选择,不自动表示远端已保存。先登记本地视图、表单草稿还是即时远端设置;失败时按该模型解释结果。未知、加载中和真实部分选择不能共用 mixed;在列表中走到某项也不等于接受它。
推荐
“导出字段”中勾选名称、编号;组说明明确至少一项;点击“应用选择”只回写外层草稿,外层导出仍需自己的明确动作。
避免
打开单选组默认替用户选择第一项;候选加载失败时显示“无可选项”;搜索后删掉未出现在当前页的已选成员。
完整规则
选择组件:值、范围与层级 第 2–7 节 CHO-CHECK、CHO-RADIO、CHO-SWITCH、SEL-SINGLE、SEL-MULTI、CMP-SELECT-KEYS;共同值与取消回基础组件与交互契约「3.6 SEL-COMMON 选择值、范围与取消层次」。
6.3 何时升级为值帮助
候选需要同时看编号、名称、范围和额外属性,或需要分层浏览、筛选、多选后核验时,值帮助比塞满搜索下拉层更合适。解剖上有字段上下文、候选区域、临时选择摘要与明确应用/取消;它不是再造一套表单,也不替用户提交外层任务。
推荐
选择“负责项目”时打开值帮助,按项目编号消歧;取消仅丢本次帮助中的临时变化,保留打开前已有的表单草稿。
避免
值帮助内点击一行就远程保存整份记录;关闭候选层清空原字段;用父字段远端旧值覆盖打开前未保存内容。
主档
选择组件:值、范围与层级「11. SEL-HELP 值帮助任务」。
7. 菜单与导航:相似列表,不同承诺
7.1 命令菜单
菜单是一个明确上下文中的短命令集合:触发器、菜单名称、命令项、必要分组/分隔、不可用原因与子菜单提示。通常用于次要动作,不用于给表单字段选业务值,也不用于装任意输入表单。
menu 材质按 D03-M01;项内文字和必要边界按第 2 节配对入口。分组标题不是可执行项,危险项不因藏在“更多”里就免除确认;禁用项的原因不能只放在不可达提示中。
推荐
R-008 的“更多操作”内提供“复制链接”“移除记录”,移除进入已有风险确认。
避免
同一个“更多”按钮既执行默认命令又打开菜单;子菜单父项既打开子层又提交;把手机号输入框放进 menuitem。
主档
操作组件:按钮与动作入口「7. CMP-05 菜单按钮、命令菜单与子菜单」;工具栏迁移回导航组件:位置、切换与返回「8. CMP-25 工具栏与溢出」。
7.2 导航类型与位置标记
| 需要表达的关系 | 采用 | 解剖与提醒 |
|---|---|---|
| 一个可访问目的地 | 链接 | 目标名称、必要上下文;连续正文里保留非颜色识别线索 |
| 当前资源在层级中的位置 | 面包屑 | 可返回祖先与当前位置;不伪造没有的层级 |
| 同一上下文的相关内容区 | 标签页 | 标签组、当前项、对应面板;焦点与已激活面板分开 |
| 工作区主要目的地 | 侧边导航 | 分组、当前位置、展开关系;不能用展开态代替当前所在位置 |
| 分段读取结果 | 分页 | 当前读取位置、可用前后路径、真实计数能力;不是另一种记录选择器 |
| 同任务的一组工具 | 工具栏 | 命名动作与溢出入口;空间变化保留同一命令身份 |
当前位置和焦点是不同信息。工具栏使用 sunken 等结构职责不意味着其内所有控件禁用;当前导航也不意味着整个区域获得 primary 强面。
推荐
“记录 R-008”下用“概览/附件/活动”切换相关内容;工具栏窄屏迁入溢出时,同一“导出”仍作用于原范围。
避免
用 tabs 选择“批准/拒绝”字段值;当前页加载失败时偷偷激活邻页;改变标签宽度导致未保存内容被提交。
主档
导航组件:位置、切换与返回 第 3–8 节 PRM-LINK、CMP-21、CMP-22、CMP-23、PAG-DATA、CMP-25;离开拦截回导航、深链接与上下文保留,不在导航外观中另立规则。
8. 对话框、抽屉、弹出面板与提示
8.1 先决定任务承载,不先决定出现方向
| 容器 | 什么时候用 | 最小解剖 | 不要承载 |
|---|---|---|---|
| 对话框 | 当前需要完成/放弃一个有边界的决定或子任务 | 任务标题、对象/范围、正文、必要后果、明确动作与退出 | 长期多页面工作区;例行成功提示 |
| 抽屉 | 相关详情、辅助编辑,需要保留主内容参照 | 标题、对象、内容、退出;有编辑时说明保存边界 | 未声明模态的任意侧滑层 |
| 弹出面板 | 锚点附近的相关内容或小型任务 | 锚点关系、内容、必要名称/退出、当前值与动作 | 无边界的完整复杂流程 |
| 工具提示 | 短小、非交互的补充说明 | 关联触发器与补充文字 | 唯一风险说明、必填规则、可点表单或确认按钮 |
视觉消费 D03-M01 的 dialog/menu/tooltip,不从阴影、屏幕宽度或位置推断模态性。侧内容与抽屉是否属于独立任务,要看对象、提交与退出边界;全屏承载也不会自动改变这个决定。
8.2 关闭前先问“用户究竟放弃了什么”
关闭可能只是隐藏详情,也可能放弃当前子层草稿;已发出的远端写请求不会因为关闭动画而撤销。模态任务隔离背景,非模态往返保留明确上下文;两者不能靠断点静默互换。关闭原因影响焦点去向,外点到另一个有效目标与按 Escape 不是同一个场景。
推荐
“编辑 R-008 备注”打开抽屉,清楚说明是外层草稿;取消放弃本层未接受变化。空间不足转换承载时仍保留同一任务和草稿。
避免
抽屉一变窄就悄悄锁背景;保存已发出后关闭并提示“已取消保存”;按一次 Escape 同时关子菜单、弹窗和父表单。
完整规则
浮层组件:对话框、抽屉与提示「LP-G03 父子编辑会话与取消快照」「LP-G04 关闭请求、异步决策与写回执」「LP-G05 关闭原因决定焦点去向」「CMP-LAYER」「CMP-LAYER-RESP」。各类解剖回 LP-DIALOG、LP-DRAWER、LP-POPOVER 和 CMP-29,不重复维护层树。
9. 反馈:让消息留在需要它的位置
9.1 按影响范围与持续时间选型
| 当前事实 | 首选反馈位置 | 不适合的替代 |
|---|---|---|
| 一个字段需要修正 | 字段旁错误;整表提交时配消息摘要 | 只显示顶部“失败”让用户逐个找 |
| 整个当前区域受影响 | 区域横幅或范围对应消息 | 把范围不明的红点放到全局导航 |
| 已确认的低风险短结果 | toast 可补充;需留存的信息另有持久位置 | 让 toast 成为唯一任务结果或唯一撤销入口 |
| 当前动作仍处理中 | 局部忙碌/真实进度 | 整页不可用;猜测百分比 |
| 初次读取、结构已知 | 合适的骨架占位 | 有可读旧数据时全部擦除;失败后无限骨架 |
| 成功读取且确实为空 | 空状态,解释原因与可用下一步 | 把失败、无权限或尚未查询都叫“暂无数据” |
| 记录业务阶段 | 有名称的状态标识 | 把“待审核”默认为错误,或用颜色代替阶段名 |
解剖先写事实,再写影响与可行下一步;只有确有动作才放按钮。反馈内的动作仍属于相应任务,不让横幅、空状态、toast 各自抢一个主操作。
9.2 视觉与文案
一般说明先用中性结构;确有信息、警告、错误、成功含义才使用对应角色,文字与图形共同表达。状态文字和弱面按 C07/C08,必要结构按 D03-M01;不要为新业务状态增加第八个 UI 颜色角色。
推荐
“3 个字段需要修改”,摘要链接到对应字段;保存请求仅受理时写“已提交处理”,终态确认后才写完成。
避免
每输入一个字符都播报错误;所有通知都红色;关闭错误横幅顺便清除表单输入;成功 toast 抢走字段焦点。
主档
反馈组件:让状态和结果可理解「1. 反馈选择与事实边界」「FB-LIVE」「FB-BANNER」「CMP-31 / DSP-MESSAGE-SUMMARY」「FB-TOAST」「FB-BUSY」「FB-SKELETON」「FB-EMPTY」「DSP-LABEL」。消息的读取/关闭状态不代表业务问题已解决。
10. 容器:组织关系,不制造额外工作流
10.1 先选内容组织方式
- 普通内容分区适合连续的相关信息。标题与留白足以分组时,不需要再套卡片。
- 数据卡片适合可独立理解的对象摘要。标题、关键内容、状态与动作必须指向同一对象,不能只因“模块化”让每个字段单独成卡。
- 折叠面板适合低频补充内容。关键错误与当前任务所需信息不能折叠后不可发现;展开不等于保存。
- 记录列表适合逐项浏览对象,描述列表适合一个对象的名称/值属性。需要跨记录比较列关系时用表格。
- 侧内容与滚动容器提供主辅关系与局部浏览;是否模态、是否独立编辑任务另按对应合同。
- 可调分隔用于真正支持尺寸调整的工作区;可拖动外形不证明能力,且要有非拖动等价路径。
10.2 解剖与表面
容器通常有标题/名称、主要内容、必要状态、可选工具与补充区域。surface 用于内容表面,sunken 用于结构性侧栏/工具栏;边界承担识别时才按 D03-M01 和 C10 选必要边界,不用多层框线代替内容层级。标题语义由信息结构决定,不能只看字大就叫标题。
推荐
记录详情用“基本信息”“关联资料”两个清晰分区;折叠的关联资料若含错误,标题处有可理解摘要,用户能展开定位。
避免
卡片整个区域是按钮,内部又嵌“编辑”“删除”按钮;卡片变窄后隐藏金额单位;折叠触发一次自动保存。
主档
容器组件:分组、展开与工作区组织「1. 容器共同解剖」「CMP-36 / B1-CARD」「CMP-37 / CMP-38 / LP-PANEL」「CMP-39 / LP-RESIZE」「B1-SIDE」「CT-LIST」「CMP-40」「CMP-41」。卡片并不天然是独立任务。
11. 表格选择边界:勾选一行,不代表选中了整个查询
11.1 三个决定分开做
- 数据怎么阅读? 先判断普通数据表还是交互网格。需要单元格导航/编辑才评估完整网格模型,不因为有复选框就给整表强加网格键位。
- 行能做什么? 导航、展开、勾选和行内命令分别有入口与对象;点击行内按钮不能同时触发整行选择或导航。
- 选中范围是什么? 本页可操作集合、明确 ID 集合和服务支持的全部匹配范围不是同一件事。不能用一个全选勾替代范围定义。
解剖至少让用户读到结果身份/计数依据、行标识、选择入口、已选范围摘要与相关批量动作;具体布局回数据表主档。已选行按登记选择配对呈现,同时保留勾选、当前焦点、错误和必要行身份,不靠底色承担全部含义。
11.2 一页 20 条的例子
推荐
页面已加载 20 条,表头入口写明“选择本页可操作记录”。用户另在上一页选了 2 条时,已选摘要独立说明当前集合;翻页不擅自增删该集合。只有产品真实支持全部匹配范围,才提供另一个明确的扩展范围动作和后续核验。
避免
仅下载一页就写“已选择全部”;筛选从 A 改到 B 后,旧表头全选仍作用于 A;导出时静默把显式选择扩大成所有匹配记录;未知总数显示为零。
主档
数据表与交互网格契约「1.1 用途、非用途与选型」「1.5 选择、展开、编辑与事件所有权」「6. 行选择与行操作」;查询、选择范围与批量执行「三类选择范围必须可辨」「跨页、筛选变化和排除项」。父复选框的具体范围算法只在选择组件:值、范围与层级 CHO-CHECK 维护,本页不复制算法。
12. 专用编辑:明示有界子集,不用名字承诺完整能力
这两项均标记为 subset;编辑范围之外的主题改写、任意 HTML、资源上传等只在本页说明 boundary,不构成这些额外能力的合同。
12.1 HEX+alpha 颜色选择不是完整颜色工作台
适合产品已声明可编辑的用户内容颜色。最小结构包含字段名、六位 sRGB HEX、独立“不透明度,0–1”、预览及背景说明、错误;任务需要时另有命名色板。选择器自身仍用 YUDS 普通控件配方,用户颜色只进入获准内容预览,不改变组件焦点、错误、标签或主题。
当前范围仅为 #RRGGBB 与独立 alpha,不等于浏览器支持的全部 CSS 颜色语法;短 HEX、八位 HEX、颜色名、函数式颜色、P3、转换、吸管与自由色域面不在首期范围。“无颜色”和 alpha=0 也不是同一个值。
推荐
输入六位 HEX,单独编辑不透明度;输入尚不完整时保留原文,并把预览标为上次可解析结果。
避免
把不支持的写法一律说成“CSS 非法”;静默将 alpha 1.2 改成 1;把用户选色写回 primary;在富文本里加此控件就声称已支持文字颜色。
唯一主档
输入组件:文本、结构化编辑与专用输入「9.1 B3-COLOR-SCOPE 用途、非用途与首期输入模型」「9.2 B3-COLOR-STRUCT」「9.3 B3-COLOR-VALUE」。其精度、无损接受与取消条件保持原合同,不因本页示例放宽。
12.2 RICH-P1 不是任意 HTML 或全功能文档编辑器
先问是否真的需要格式。纯备注用多行文本;需要受限结构时才选 RICH-P1。其结构包括已声明的段落、语义标题、列表、引用和允许行内内容;具体层级和限额按宿主策略。工具栏只显示当前真正支持的格式命令,状态与选区对应。
当前不支持任意字体/字号/颜色、内联 CSS、表格、图片/附件/嵌入或任意 HTML 编辑。只读格式化呈现、结构化编辑和原始 HTML 源文查看是不同职责,不能切个 editable 开关就互换。颜色选择器与富文本同处输入篇,不产生自动集成许可。
视觉沿 D02 文字角色及宿主标题层级,不从粘贴源引入任意视觉值。转换会丢结构时先显示影响并让用户明确接受,不能先丢内容再 toast 告知。
推荐
项目说明需要段落、列表与强调,工具栏仅提供已支持命令;粘贴含表格的内容时明确说明不支持及可接受的转换内容,允许取消。
避免
标签写“完整 HTML 编辑器”;拖入文件后自动上传;把粘贴样式当新 Token;预览成功就宣称输出安全。
唯一主档
输入组件:文本、结构化编辑与专用输入「6.1 B3-RICH-SCOPE 三种职责与有界结构」「6.3 B3-RICH-PASTE」「6.5 B3-RICH-UNSUPPORTED」「6.6 B3-RICH-SECURITY」;共同编辑事务回 B3-EDIT。
13. 一个组合任务的走查顺序
以“找到 R-008,改备注并保存”为例,不要求先搭一套完整业务系统:
- 查找。 搜索有明确范围;结果摘要对应已应用查询。读取失败不冒充零结果。
- 进入。 记录名称链接打开详情,返回能理解原位置;行内更多菜单不触发同一次导航。
- 编辑。 备注用多行纯文本;只在真实需要格式时才升级 RICH-P1。标签、说明、错误稳定可见。
- 提交。 同一编辑任务只有一个突出“保存草稿”;取消不与保存争抢强调,不把失焦当保存。
- 恢复。 明确失败保留允许的草稿;未知结果说明原保存待确认,按真实能力核查。晚到响应不把用户从别处拉回。
- 缩窄。 工具和侧内容可换承载,不改变查询、对象、草稿和提交边界;大字时先增长与重排,不缩字。
这是文档走查脚本,不是运行记录。Web、iOS/iPadOS、Android、HarmonyOS 都需要验证同一任务语义,但采用各自输入、返回、焦点和文字机制,不能把 Web 键位、CSS 单位或 ARIA 属性当作四端实现。平台唯一规则入口为平台适配、国际化与输入能力;基础几何与文字仍回 D05/FND-T01。
14. 评审时只补缺项,不再造规范
交付说明至少能回答以下问题;这些问题是阅读与评审入口,不替代质量基线、门禁与验收证据的正式证据要求。
- 用户任务、当前对象与范围是什么?为什么选这个组件而不是相邻类型?
- 必需的标签、主体、说明、当前状态和动作是否齐全?不需要的可选区域是否去掉?
- 使用哪个现有变体、材质、文字档与几何行?默认 ink/gray 是否保持?若覆盖 primary,重验责任在哪里?
- 当前值、浏览候选、焦点、保存与业务状态能否区分?只读、禁用、失败和未知有没有混用?
- 打开、接受、提交、取消、返回分别影响哪一个会话?副本/溢出入口是否仍指向同一对象?
- 长文、大字、窄空间、触控、键盘与辅助技术是否有可执行验证方案?缺少运行证据是否如实写未执行?
- 需求是否超出 HEX+alpha、RICH-P1 或其它有界族?若超出,是否明确扩展需求,而不是冒称现有覆盖?
阅读到此仍无法确定行为时,把疑问连同任务与例子带回唯一主档;不要用“像某成熟系统”代替对象、状态和边界判断。成熟手册的价值在于读者能选对、用对、解释取舍,并知道哪些能力尚未被证明。