做工业项目这些年,我见过太多设备界面里的图标乱象:同一台设备上,报警图标一会儿是黄色三角、一会儿是红色圆圈,状态指示一会儿用“运行”两个汉字、一会儿用绿色圆点,不同厂商的触摸屏程序混在一起,操作工根本分不清哪些按键能按、哪些只是状态显示。更麻烦的是,明明相关标准里都有现成的图形符号,现场却还是各画各的,最后导致误操作概率上升、培训成本居高不下、设备维护时老员工还得靠猜。今天想聊的就是这套东西——一套可复用的工业图标库设计指南,核心解决三件事:语义统一、视觉统一、交付统一。适合正在给自己产品搭界面规范的设计师,也适合接了非标设备项目、想避免反复返工的人。读完之后,你手里会多一份可以直接抄作业的图标分类方法、命名规则、绘制参数和交付路径。
顺带说一句,最近看到的那些硬件设计指南,比如无线模组的rtl8723du-cg硬件设计指南,本质上跟图标库是一回事,都是把散落在个人经验里的“隐性知识”变成文档化的“显性标准”,只是载体不同。咱们做界面的,图标库就是我们的硬件设计指南。
1. 工业图标为什么必须标准化
1.1 工业场景里,图标不是“好看”的问题
消费级App的图标追求品牌感和视觉冲击力,颜色可以花哨、造型可以夸张,用户点错了最多关掉重来。但工业设备操作界面不一样,一个图标对应一个阀门、一台电机、一条产线,按错一步可能直接导致停机、撞机,甚至安全事故。所以工业图标的第一个属性不是“美观”,而是“语义准确”——必须让操作工在0.5秒内看懂这是什么、该不该碰。
我接手过一条改造产线,触摸屏上有两排状态指示灯,老厂用的是红色圆形表示“故障”,新供应商做的程序里用的是红色方块表示“故障”,两者在物理距离不到30厘米的同一块屏上共存。结果操作工把“方块”当成了“设备编号框”,故障报警响了半分钟没人去确认,最后是因为方块图标旁边有闪烁的文字提示才被发现。这就是典型的图标语义混乱。
标准化图标库能从根本上解决这类问题。它会把“故障”“报警”“急停”“运行”“待机”“手动/自动”这些高频工业语义固定成唯一图形,无论是哪家供应商、哪个项目、哪一代产品,看到同一个图形就是同一个意思。这样做的好处不只是界面清爽,更重要的是让操作工形成稳定的肌肉记忆——图形和动作之间的反射弧一旦建立,就不容易受界面布局变化的影响。
1.2 图标标准化解决的不只是视觉问题
很多人以为标准化就是“画一组风格统一的图标,放在一起看着整齐”。实际落地的价值远不止于此。第一,降低多供应商设备混用时的认知成本。工厂里常有三四家设备商的触屏界面并存,图标统一后,操作工不用每换一台设备就重新学一套图形语言。第二,压缩新员工培训时间。图标语义本身就能替代部分文字说明,新员工看到“双手图标”就知道要双手操作,看到“蓝色信息圆圈”就知道是提示信息,不用背操作手册。第三,提高维保效率。维修工程师拿到设备图纸和HMI界面时,如果图标系统跟图纸符号能对应上,读图速度会快很多。
我自己测算过一个数据,一个10台设备的车间,如果图标完全统一,操作工平均查找一个状态所需的时间能从4秒降到1.5秒左右,一天按300次操作计算,省下来的时间看起来不多,但误操作率能下降一个明显的量级,这个才是关键。所以工业图标库不是设计团队的“门面工程”,而是实打实影响交付质量和运行安全的工程资料。
1.3 类比一份硬件设计指南是怎么运转的
最近有人问我,为什么硬件圈儿特别吃“xx硬件设计指南”这一套,软件和UI圈反而很少见有标准范本。你看那份rtl8723du-cg硬件设计指南,它规定晶振怎么摆、天线净空区留多大、电源滤波电容放几个、走线阻抗控制到多少欧姆,每一个细节都有明确参数和依据,硬件工程师照着画就行,不必每次从头摸索踩坑。图标库本质上就是这个角色——它是“界面设计领域的硬件设计指南”。
一旦这份“指南”沉淀下来,新入职的设计师照着网格、线宽、命名规范去画,交付的图标跟老员工画的质量基本一致;甲方想要定制图标,你也能在统一体系内快速响应,而不是每次从零开始。这背后的核心逻辑就是:把好设计从“依赖个人手感”变成“依赖系统规则”。个人手感会随状态波动,系统规则不会。
2. 搭建工业图标库的核心设计原则
2.1 先建分类体系,再动笔画图标
我见过太多团队上来就画,画了十几个觉得风格统一就宣称“图标库建好了”,结果用到第50个的时候全乱套了。正确做法是:先穷举场景,再归类,最后才动笔。
工业设备界面常用的图标按功能可以分成六大类:
- 状态类:运行、停止、故障、报警、待机、急停、启动中、已完成
- 操作类:启动、停止、复位、确认、取消、急停按下、手动/自动切换
- 设备/部件类:电机、泵、阀门、气缸、传送带、加热器、冷却器、传感器
- 安全警示类:高压危险、高温烫伤、机械夹手、佩戴防护镜、禁止入内
- 参数指标类:温度、压力、流量、速度、液位、电流、电压、转速
- 导航/信息类:返回、首页、菜单、设置、帮助、语言切换、管理员登录
分类的意义在于给每一类图标定“语义边界”。比如“故障”和“报警”在工业现场经常被混用,但如果库里明确规定:“故障”表示设备已停止运行、必须人工介入,“报警”表示参数超限但设备仍在运行、需要关注但不强制停线,那后续所有界面就都能按这个语义去使用,不会因为理解偏差导致误判。
分类之后还要做一件事:统计每个类别的图标数量,估算工作量。通常一个中等复杂度的设备界面系统,状态类20个左右,操作类15个左右,设备类15~20个,安全类10个,参数类15个左右,导航类8个,加起来80~100个图标就足够覆盖90%的工业HMI场景了。超过这个量级说明语义颗粒度太细,建议合并。
2.2 统一网格、尺寸与视觉重心的底层逻辑
图标库最容易被忽略但又最影响整体质感的就是网格系统。工业HMI跟手机App不一样,目标屏幕尺寸跨度很大,从7寸触摸屏到21寸操作台显示器都有,而且很多是低分辨率的工控屏,DPI跟手机屏完全不是一个量级。所以图标库必须从设计源头就考虑多尺寸缩放。
我的建议是基础画板用160×160px,有效绘图区控制在128px以内,四周各留16px安全边距。为什么是160不是100或者64?因为工业屏常用分辨率是1024×768、1280×1024、1920×1080,160px在缩放2倍、3倍时都能整除,导出的PNG不会出现半像素模糊。有效区128px意味着图标的视觉主体不会顶着画板边缘,给不同形状的图标留出“呼吸空间”。
网格内部还要细分关键辅助线:基准线宽用2px,最小间距4px,所有锚点对齐到4px的整数倍(特殊曲线除外),圆角统一用4px,线性小构件圆角用2px。这样定下来之后,不管是谁在画,图标放一起就像出自同一个人之手。
关于视觉重心,有个容易踩的坑:很多人把图标居中对齐画板就算完事,但几何中心和光学中心不是一回事。一个实心圆形和一个细长三角形放在同一个画布里,圆的视觉重量会偏重,三角形会偏轻,如果都用几何居中,放在一起看会参差不齐。处理方法是正方形、圆形、横线这类“重”图形稍微缩小占位,线性、尖角、竖向笔画多的“轻”图形稍微放大占位,然后在128px范围内用“光学平衡”微调,最终目标不是每个图标都填满一样大的面积,而是它们放在一排时视觉重量接近。
2.3 风格、颜色与细节的“统一语言”
工业图标库的风格不宜过多,我的经验是维护两套风格就够了:线性图标用于操作类和导航类,填充图标用于状态类和警示类。线性图标适合表达“可操作的动作”,比如启动、停止、复位,视觉上更轻、干扰小;填充图标适合表达“正在发生的状态”,比如运行中、故障、报警,视觉上更重、更容易被注意到。这个区分对应的是工业界面里的“操作层级”和“状态层级”,不是随意定的。
颜色语义更要严格控制。工业HMI的背景多是深灰或黑色,图标的颜色语义必须有严格规定:
- 绿色:仅表示正常运行/已到位/安全状态,不能用于提示或装饰
- 黄色:仅表示预警/报警/注意/参数接近上限,不能表达成功或失败
- 红色:仅表示故障/停机/急停/危险,是最强警示色,使用面积要克制
- 蓝色:信息提示/辅助说明/超链接,不参与状态判断
- 灰色:禁用/未激活/背景辅助元素
这个规则一旦定下来,就是“法律”。我见过一个项目里设计师觉得黄色好看,把某个正常运行状态的图标描边用了黄色,结果甲方验收时直接判定不合格,因为现场操作工看到黄色第一反应是“这里有异常”,这就是颜色语义被破坏的后果。
细节层面还有一些容易被忽视的规则:线性图标的端点统一用平头(butt cap),不用圆头,因为平头更适合工业的硬朗感,在低分辨率屏上也更清晰;拐角统一用斜接(miter join),限制尖角长度不超过8px;断线式图标(比如“破碗场景”里的缺口)断口的方向和长度要有规律,不能随意断。
3. 实操:从零搭建一套可复用图标库
3.1 命名规范与文件组织,决定了库能不能长大
图标库做到30个以上时,命名就会成为最大的痛点。没有命名规范,图标文件会变成“icon_final_v3_终版(改).ai”“故障-001.png”这种灾难现场。我的命名公式是:
类别前缀-设备/对象-语义-风格-尺寸
举例:
ic_status_motor_running_fill_24.pngic_opr_valve_open_line_24.svgic_warn_high_temp_fill_48.svgic_nav_back_line_24.svg
其中前缀用固定的缩写表:ic(icon)、bg(背景图形)、logo(品牌标)。类别用status(状态)、opr(操作)、equip(设备)、warn(安全)、param(参数)、nav(导航)。设备/对象用英文词,语义用动词或状态形容词,风格用line(线性)或fill(填充),尺寸就是用到的最大设计尺寸。
文件目录按“源文件-交付物-规范-存档”四级组织:
icon-library/ ├── source/ # 源文件,按类别分子目录,保留可编辑层 │ ├── status/ │ ├── opr/ │ ├── equip/ │ ├── warn/ │ ├── param/ │ └── nav/ ├── export/ # 按尺寸和格式导出,SVG/PNG分开放 │ ├── svg/ │ └── png-24/48/64/128/ ├── docs/ # 设计规范、命名规范、更新日志 └── archive/ # 已废弃或旧版本的图标,只留不可变副本这个结构坚持一年以上,你会感谢当初的自己。特别是archive目录,很多人觉得废弃文件直接删掉不就行了?等到你要做新版界面兼容老设备时,就明白保留旧版是多么重要了。
3.2 绘制图标的六个关键步骤(以矢量软件为例)
无论你用Figma、Illustrator还是Sketch,核心逻辑都一样。下面是我通常在100×100px设计画板上的操作流程,但你可以按上面说的160px来套:
第一步,建网格画板并设置辅助层。画板设160×160px,打开“显示网格”,设置网格线间距4px,再画一个128×128px的参考矩形作为绘图边界,这个矩形锁定成“参考层”,不允许放任何实际图形。辅助层设好后,所有图标都在同一套“坐标系”里生长。
第二步,统一线宽和基础样式。先设置好描边粗细2px、端点样式平头、拐角样式斜接,再用样式模板画图。不要画完再统一改样式,那是改不完的。设定样式这一步最花时间,但也是保证批量产出质量的关键。
第三步,先画语义主轴,再加细节。比如“电机运行”图标,先画一个圆或方形作为电机的轮廓,再加“运行”的语义符(比如小箭头或绿色小圆点),最后才调整装饰细节。顺序不能乱,一旦先抠细节,最后常常发现主干位置不对,整个图标白画。
第四步,锚点对齐网格。画完后把所有锚点关掉“自动对齐”再逐个检查,确保关键节点在4px整倍数上。曲线锚点允许偏离,但水平/垂直方向的关键节点必须对齐。这一步是工业图标“利落感”的来源,很多人图标看起来发虚、发糊,多半是锚点歪了。
第五步,检查光学平衡。把画好的图标复制成两排,一排全是同类图标,一排混合所有类别,缩小到48px和24px各看一眼,找出视觉上偏大偏小的,逐一手动调整占位比例,而不是改网格。视觉平衡只能靠眼睛判断,参数能辅助但不能替代。
第六步,转曲前确认与导出。先复制一份源文件存档,再把交付版转为形状(描边转填充),确认描边连接处没有断裂,导出SVG时选用“精简代码”选项,导出PNG时用2倍图导出再缩放,避免直接在小尺寸上导出导致锯齿。
3.3 导出、验收与版本管理,库能不能用就看这个
SVG导出后有一步很多人会偷懒:直接用软件默认导出。我不建议这么干,默认导出的SVG经常带着大量无用属性(比如id乱码、transform嵌套、未知标签),丢给前端工程师,人家第一反应是想骂人。正确做法是导出后用代码编辑器打开检查一遍,删掉<metadata>、空分组、无用的fill默认值,保留下干净路径数据。
PNG导出建议按4个尺寸:24px(小图标,按钮/表格内)、48px(中等,功能模块)、64px(大图标,首页入口)、128px(超大,展示页/屏保)。每个尺寸都要单独检查一遍清晰度,特别是在低分辨率工控屏上,48px以下的图标要额外做一次“去细节”检查——如果某个小尺寸下细节糊成一团,就专门画一个简化版,而不是让主图硬撑。
验收环节我习惯用一张检查表逐项打分:
- 语义准确性:图标语义与命名是否一致,是否与行业通用认知冲突
- 可识别性:在24px尺寸下,图标能否在1.5秒内被正确解读
- 视觉一致性:线宽、圆角、留白是否统一,视觉重量是否接近
- 可用性:与背景对比度是否足够,触控目标是否大于等于44×44px(物理尺寸)
版本管理是“可复用”的核心。我建议用语义化版本号:主版本号.次版本号.修订号。新增一个图标类别算次版本变更,微调线宽或颜色算修订,推倒重来算主版本。每次变更必须有更新日志,写清楚加了什么、删了什么、为什么改,这比代码仓库里的commit message还要重要,因为图标改动直接影响现场安全和操作习惯,变更原因必须留痕。
4. 常见问题与排查技巧实录
4.1 图标放在一起,视觉重量总是参差不齐
这是我最常被问到的问题。你明明用了同一套网格、同样粗细的线,单独看每个图标都还行,放一起就是有的“胖”有的“瘦”、有的“重”有的“轻”。原因通常出在两个地方:一是笔画密度差异过大,比如“满格信号”和“灯泡”放一起,前者线条密集,后者线条稀疏,视觉重量自然不一样;二是前后景比例差异,有些图标图形占满了整个绘图区,有些只占了一半。
我的排查方法很简单:把图标缩小到24px,然后眯起眼睛看,哪个先蹦出来、哪个找不着了,就是重量失衡的。解决办法不是改网格,而是分层级处理:细节多的图标适当缩小占位,给负空间留余地;细节少的图标适当放大主体,让它在群组里不“隐身”。记住,目标是“放在一排时视觉接近”,不是“每个都填满”。
4.2 命名不规范,三个月后自己都找不到文件
我接手过一套第三方做的图标库,文件夹里躺着一堆“最终版2”“新新最终版”“别用这个”这种命名,打开文件里面图层名全是“图层1”“路径1012”,这种库基本等于没有。要避免这个坑,只能靠第一天的纪律。
建议建一个“别名对照表”,因为不同人习惯叫“故障”或“报警”、“运行”或“启动”,得在表里定死:故障=Fault、报警=Alarm、运行=Running、启动=Start,全团队用一套词,写在自己代码和文档里也只能用这套词。同时所有源文件里的图层名要跟文件名一致,比如文件名是ic_status_motor_running_fill_160,图层主组名也要叫这个,方便全局搜索。别小看这个,有一次客户要改一个泵的图标,我全局搜索“pump”2秒就定位到了,省下的时间够喝杯咖啡的。
4.3 小尺寸下一片糊,细节全丢失
24px是个分水岭,工业屏和手机屏还不一样,工控屏分辨率低、像素颗粒大,细节多的图标在24px下直接就成了一个墨团。这个问题必须在设计阶段就规避。
我的经验是给图标库建两个版本:标准版提供所有细节,用于48px以上的场景;简化版在标准版基础上砍掉所有非核心细节,比如把“温度计”里的三条水银刻度线简化成一条,把“阀体”外圈的多余线框去掉。简化版只保留“能区分这个图标是什么”的最小图形信息。这样虽然工作量大了一倍,但交付给甲方时他们会觉得你很专业,而实际使用中确实能避免大量“这图标看不清”的售后问题。
另外一个容易被忽略的点是负空间。小尺寸下,笔画之间如果间距小于2px,缩小时就会粘连成一团黑色。绘制时就要保证任何两条平行线的间距不低于4px,考虑低分辨率屏的缩放时尤其重要。
4.4 常见问题速查表
| 症状 | 可能原因 | 解法 |
|---|---|---|
| 同一排图标大小不一 | 没有统一的光学平衡检查 | 缩小到24px眯眼检查,按视觉重量手动微调占位 |
| 图标导出的PNG边缘发虚 | 锚点未对齐网格,或导出时直接小尺寸导出 | 锚点对齐4px网格,用2倍图导出再缩放 |
| 不同设计师画的图标风格不一致 | 缺少样式模板或成员没遵守 | 用统一网格和样式模板起步,评审时用检查表打分 |
| 小尺寸下糊成一团 | 细节过多/负空间不足 | 为24px绘制48px×48px专用简化版 |
| 文件命名混乱、找不到图标 | 命名规范没建立或没执行 | 用统一命名公式,建别名表,目录按规范分层 |
| 新加入图标与旧图标风格冲突 | 没有定期做全库检查 | 每新增10个图标就做一次全量一致性审查 |
做工业图标库这些年,我最大的体会是:这件事靠的不是灵感,而是纪律。灵感能让你画出几个惊艳的图标,纪律能让这100个图标在三年后还能被顺畅地调用、修改和交付。如果你现在正打算建一套图标库,别急着动笔,先把命名规范、网格参数、分类体系这三件事写成文档,哪怕只有半页纸,也请所有相关的人签字认同。后面你会省下大量解释和返工的时间。