梧桐设计语言v0.4.1

图标系统Iconography


一个源,四端一致

105 个图标,来源两处:lucide(ISC 许可,1.18.0)与梧桐自绘(应用中心、开发中心、说明书、知识、导入、claw、发送、微信)。统一为 24 网格、1.5 描边、圆头圆角、无填充、跟随文字色。三个平台各有原生图标库,但我们不用:SF Symbols、Material Symbols 与 lucide 的骨架、比例、圆角都不一样,混在一起一眼看出。自己的一套,四端逐一同源。

代码在仓库 design-system/icons/manifest.json 是清单(语义名 → 来源 → 中文 → SF Symbol 对应,后者只用于 Watch 复杂度视图这类只能用 SF 的地方),node build-icons.mjs 一次生成四端产物:

产物 用法
Web svg/<name>.svg 内联 SVG,stroke="currentColor" 跟随文字色
iOS ios/WutongIcons.xcassets template 渲染,WTIcon("status-warn"),随 foregroundStyle 着色
Android android/drawable/wt_<name>.xml VectorDrawable,Icon(painterResource(R.drawable.wt_status_warn), null)
小程序 miniprogram/icons.js + wt-icon 组件 <wt-icon name="status-warn" color="…" size="32" />

资源页(Icons 分组)里是全部 105 个 SVG,可直接下载。

命名:按语义,不按形状

delete 不叫 trashstatus-warn 不叫 triangle-alert。将来换了图形,调用处一个都不用改;不同端的开发看到同一个名字取到同一个图。

分组与清单

图标
品牌(自绘) apps · build · manual · knowledge · import · claw · wechat · send
通用操作 plus · minus · close · check · search · filter · sort · columns · more · edit · delete · copy · download · upload · refresh · undo · external · link · share · print · attach · eye · eye-off · lock · settings · logout · expand · collapse · sidebar
方向 chevron-down / up / left / right · chevrons-up-down · arrow-left / right · trend-up · trend-down
状态 status-ok · status-warn · status-bad · status-info · status-pending · info · alert · help · loading · offline · online · flag
内容与对象 workorder · todo · list · table · kanban · chart · calendar · clock · history · file · spreadsheet · folder · image · camera · mic · qr · tag · package · database · workflow · archive
人与组织 user · users · company · location · phone · mail · bell · shield
设备与现场 device · wrench · hardhat · wind · zap · gauge · server
AI ai · bot · brain · chat · insight · book · rocket · branch
主题 sun · moon · palette

规则

  • 尺寸四档icon-xs 14(芯片内)、icon-sm 16(表格、菜单、输入框)、icon-md 20(按钮、导航,默认)、icon-lg 24(空状态、移动端 tab)。不用 18、22。
  • 颜色跟文字:与旁边文字同色;单独出现用 muted-foreground;状态图标用状态色。不给图标单独配色,不做双色、不做填充态。
  • 状态图标五个一一对应状态 pill,不混用:正常永远是圆勾,超期永远是三角,故障永远是叉圆,进行中是播放圆,待处理是虚线圆。
  • loading 转圈只用于 3 秒内;更长用呼吸点;超过 40 秒用 ProgressPanel。
  • 图标不单独承担意义:按钮里图标 + 文字;纯图标按钮必须有 aria-label / accessibilityLabel 且只用于「更多」「关闭」这类通识图标。
  • 不用 emoji,不用图标字体,不混入别的图标库。
  • 缺图标:先在 lucide 找,加进 manifest.json 重跑;lucide 没有的按 24 网格 1.5 描边自绘放进 wt/。自绘时先画 24×24 的 2px 安全边距,主形不出 20×20。

品牌标志

梧桐的应用图标(琥珀底、藏青「梧」字树形标)在 Logos 分组。它是营销与图标层面的品牌,与产品 UI 的中性色板是两套,不要把琥珀和藏青当 UI 色用。