system1-cover-cn.png

这是 Scanat 设计系统系列的第一篇。 Part 1 记录最初的 0→1 搭建与后续文件架构调整; Part 2 记录三年维护过程中暴露出的治理问题,同时把Token工程化。

Snapshot

角色 Design System Lead · UI 架构 · DesignOps · 跨职能协作
项目类型 设计系统 0→1 搭建与后续扩展
平台 Mobile App · iPad App · Web
使用者 内部设计、产品与开发团队
团队 设计系统由我独立负责;在交付和落地过程中持续与 PM、开发协作
时间跨度 2023年9月入职前两周完成第一版基础系统;后续随着产品扩展继续调整文件架构
我的贡献 1. 审核并重建设计基础,包括颜色、字体、间距、圆角与阴影;
  1. 建立两层 Color Token 架构和 6 类组件模块;
  2. 补齐组件状态与完整 UI Flow;
  3. 随着跨端和白标项目增加,将文件重新拆分为三级架构。 | | 当前状态 | 第一版系统已投入使用,并在之后三年持续维护与演进(见 Part 2) |

TL;DR

我加入 Scanat 时,现有 Figma 文件可以支持日常设计,但缺少统一样式、组件和文件组织。入职前两周,我先搭建第一版基础设计系统:统一颜色、字体、间距等基础规则,建立两层 Color Token,整理 6 类组件,并补齐常用交互与页面状态。

之后随着 Mobile、Web 和白标项目增加,原来的单文件结构再次变重,我又把设计资源拆成基础资产、平台 Design System 和实际 UI 项目三层。

这一篇主要记录设计系统如何从 0 到 1 建立,以及产品扩展后为什么需要重新调整文件结构。

system1-1.png

1. Problem

当时的 Figma 文件有什么问题

我入职时接手的设计文件已经可以支持日常功能设计,但没有形成统一的设计系统。主要问题集中在四个方面:

system1-2.png

约束

这次重建不能暂停正在进行的产品工作,因此我没有先做一套完整规范再统一切换,而是优先整理最影响设计和交付的基础问题,让新系统尽快进入实际使用,再逐步迁移旧页面。


2. Approach

整个 0→1 搭建分为四个阶段。

阶段一:盘点与整理现有界面

先盘点已有页面和 UI 元素,找出重复样式、近似组件和缺失状态,再把散落元素组件化,并合并重复或非常接近的颜色、文字与组件样式。

阶段二:建立全局样式与 Token

在整理现状后,我先建立颜色、字体、圆角、阴影和间距等基础规则,再让组件统一引用这些规则。整理颜色时,我没有让组件直接绑定具体色值,而是使用两层 Token:Primitive 保存基础颜色,Semantic 表达品牌、文字和状态等界面角色,组件统一引用 Semantic。

这样后续品牌色或主题变化时,可以调整语义层映射,而不需要逐个修改组件。

system1-3.png

system1-4.png

阶段三:整理并扩展组件

旧文件中的 UI 元素更多跟着页面存在,同一个控件可能在多个功能里各有一份。我改成按组件职责组织,业务页面只引用组件,不再维护自己的局部版本。所有 UI 元素按功能分成 6 类:

模块 主要内容
Basic Button、Icon 等基础元素
Forms Input、Select 等表单组件
Data Display Table、Card 等信息展示组件
Navigation Tab、Breadcrumb 等导航组件
Feedback Modal、Toast 等反馈组件
Panels Scanat 3D 测量与编辑相关的自定义工具面板

这一步不只是把旧元素“打包成组件”。同时使用 Figma Variants 和 Properties 把尺寸、样式和交互状态补齐。

例如原来只有 1 种样式、2 个尺寸的按钮,后续扩展为 4 种样式、5 个尺寸,并定义 Default、Active、Disabled、Error等状态。开发在交付时可以直接看到完整状态,不需要再根据单张设计稿猜测。

system1-1.png

阶段四:重新整理页面与 Flow

基础样式和组件稳定后,再回到实际 UI 文件,把页面按功能重新分类,并补齐原有设计稿中缺失的状态,包括:

这些状态之前经常在开发过程中临时确认,因此这一轮把它们一起补回到完整 Flow 中。

阶段五:从单一文件调整为三级文件架构

第一版设计系统解决了基础统一性问题,但随着 Mobile、Web 和白标项目增加,单文件结构再次变重。因此我把不同职责拆成三层:

层级 内容
Tier 1 · Foundational Assets 跨平台共用的 Icon、Illustration 等基础资产
Tier 2 · Platform Design Systems App UI Kit 与 Web UI Kit,仅保留平台组件和样式
Tier 3 · UI Project Files 正式产品页面和白标客户项目,引用上两层资源

system1-5.png

把业务页面从组件库中拆出去后,平台组件可以独立维护,白标项目也可以建立自己的 UI Project File,同时继续引用统一资源。


3. Outcome

这套系统之后持续使用和维护了三年,后续出现的命名、文档和治理问题放在 Scanat - Design System 治理与 Design-to-Code 工程化


4. Reflection

  1. 0→1 阶段先解决可用性。 当时比完整规范文档更重要的是先统一基础样式、组件和实际页面,让新系统尽快进入真实项目,再逐步补齐。
  2. 结构需要随着产品扩展调整。 两层 Token 和三级文件架构分别解决了颜色复用、跨平台和项目文件增长的问题,但结构本身不能替代长期治理。
  3. 搭建设计系统和维护设计系统是两类问题。 Part 1 解决“怎么搭起来”,三年使用后出现的命名、文档和组件治理问题则成为 Part 2 的起点。