Figma组件设计思路

Homepage recommendation
杭州/产品设计师/101天前/6668浏览
Figma组件设计思路Homepage recommendation
一、背景
在设计系统的建设中,
组件化
是提升效率与保持一致性的核心手段。过去很多设计师习惯用
Sketch
来进行组件搭建,但随着团队协作规模的扩大、交付场景的复杂化,Sketch 在多端适配、跨文件协作、动态主题管理等方面逐渐显露出不足,对比这两年在聚光灯下的另一款设计软件Figma
,其在组件化设计上的优势更加明显
  • 组件具备更强的
    嵌套与变体
    能力,能高效应对复杂交互和状态切换。
  • 借助
    变量和模式
    ,设计稿可以模拟主题切换。
因此,使用 Figma 搭建组件,不仅仅是提升了设计的复用率,还大大提升了组件编辑效率,降低后续的管理维护成本。接下来本文将围绕
Figma 搭建组件的思路
展开,从能力介绍、结构划分、设计库DPL逐步拆解如何高效构建一个可复用、易维护的设计系统。
二、Figma的特有能力「变量系统」
变量系统
组件参数化可以理解为是一组变量数据,本质上就是把「设计属性」参数化,抽离成独立的可复用数据源,然后在不同的UI元素中引用。
Figma组件设计思路
Collect
目前Figma内的变量类型包括:颜色/数值/字符串/布尔变量,借助这些变量的映射,通过规划多层级的Token进行层层调用,可以在组件的搭建、后续修改维护成本大大降低。
我们对比下Sketch和Figma在颜色调用上的区别:
Sketch
:通过
图层样式或颜色变量进行封装,
定义后可以在填充/描边/文本颜色等属性里直接调用,但它本质是一个「色值案例」的概念没有多层级关系,如果想要做多层级的映射关系「某个变量依赖另一个变量」是完全无法做到的。
Figma
:直接使用色值封装,本质上是数据,支持「变量引用变量」,可以绑定到任何调用颜色的属性上,同时支持多层级传递。
以下图为例,常规组件封装以单一色值对应组件的颜色,一对一的关系,或者再进一步,封装颜色为实例,组件调用封装颜色,但因为不支持多层级,当toast的组件icon颜色需要变更时,就需要新增一个颜色,或者对应关系进行修改,这种处理单一组件影响不大,但当有多种状态时(不同尺寸、状态、类型)的工作量是激增的,而在变量映射中,无论是修改单/多个,仅需要把调用的关系节点进行单次修改就可以进行批量替换。
Figma组件设计思路
Collect
Figma组件设计思路
Collect
三、组件库核心要素之一「色彩」
最早在美间的业务组件搭建中,对于色彩的理论调研我们总结了一些结论,其中一个关键的概念:
可感知访问性。
目前市面中组件库搭建使用的两大主流色彩模型HSL、HSB, 最大的缺点就是存在感官亮度不一致的问题,即同等饱和度、亮度的条件下,不同色相的感官亮度存在差异。
引用:
在 HSL 色彩空间中,调整色相 H 展示从HSL(0deg, 100%, 50%)到HSL(360deg, 100%, 50%)的渐变条,即是设计师选择色相时的「彩虹条」
Figma组件设计思路
Collect
由于人眼的视觉感知存在非均匀性,不同波长的色彩对三种视锥细胞的刺激强度并不相同,因此我们会觉得彩虹带上的某些颜色更明亮,而另一些则相对暗淡,去掉饱和度后可以更直观地看出在黄绿色区间更亮,而在蓝色区间较暗。
Figma组件设计思路
Collect
Figma组件设计思路
Collect
由于各个色相的感知亮度不均匀,可能发生非预期的变化,与同一个背景上的紫色文字相比,同样 HSL 亮度的黄色文字很难看清。
Figma组件设计思路
Collect
引用:在 HSL 色彩模型中,颜色的明度越接近 0% 或 100% ,饱和度的效果就会越弱 —— 在 50% 的亮度时,同样的饱和度看起来比在 90% 时更加鲜艳。
Figma组件设计思路
Collect
同样在 HSB 色彩模型中等亮度分量在感知上不均匀,难以评估色彩可访问性。当 HSB 色相偏移时,感知亮度也会发生非预期的变化(亥姆霍兹-科尔劳施效应、阿布尼效应)。
如果基于有问题的模型去制定的色彩体系,这会导致组件使用不完善的色彩对比,内容对比度在某些情况下会不易浏览阅读,即不符合WCAG对比度模型(在对比度检验规则上同样未考虑感知亮度的因素)或者更先进的APCA模型,而解决上述的问题就需要使用可感知访问性的色彩模型,即OKLCH色彩空间模型「国际上为了解决感官亮度不一致的问题,CIE(国际照明委员会)在 1976 年定义了新的色彩规则,有了CIELAB色彩模型,后续又衍生了CIEHSL、CIEHSB等等,不过CIE系列模型在色彩感知上还有一些问题,后续又不断优化算法,有了OK系列的色彩模型,感兴趣可以自行查阅相关资料了解色彩空间的衍变历史」。
四、组件搭建思路「嵌套」
了解了Figma的核心能力,以及组件的色彩规则制定后,就要规划组件结构的关系,这其中的关键是对组件嵌套关系进行梳理。通过对页面的结构化拆解,会发现不同类型的容器存在共性,即大多都是由标题区、内容区、页尾/按钮区等组成,而不同区域的元素又是各种组件组成。
通过有序组合这些小组件,构建出更高层级的复合组件,高级的复合组件又组成了页面,这样的方式不仅有助于简化组件库的结构,也提升了整个系统的灵活性与复用性
小组件的独立性让维护更具可控性,大幅降低后期迭代与修改的成本,同时
每层组件都可被上一级调用,且其变体随层级抬升统一继承与展示。可以让设计具备清晰结构、可复用、易扩展、一致性强,并且与开发思维保持对齐,最终提升设计系统的可维护性与协作效率。
原子组件
1. 最小UI单元,无法再拆分(如按钮、单选框、输入框等),依赖设计tokens(颜色、字号、间距、图标等)构建,以保证风格统一且可复用。
2. 在Figma中为基础组件并作为上层组件构建的素材。
子组件
1. 可嵌套由多个原子组件构成的组合单元,形成的布局模块,例如弹窗的按钮区域、标题区、内容区等;表单字段组合(标题 + 输入框 + 错误提示)等。
2. 在Figma中使用组件嵌套嵌入原子组件,并可被上层组件调用。
父组件
1. 独立可用的组件块,用子组件与原子组件构成具体功能组件。例如如弹窗组件、图片预览组件等完整模块,能单独使用或配置参数(尺寸、状态、变体)。
业务组件
1. 使用父组件、子组件、原子组件组合形成完整业务界面或组合部件。例如完整的集成表单、页面片段、模块化页面。
五、案例解析
以弹窗组件为例,在Sketch中需要把不同状态,类型都要穷举出来进行封装,当某些元素需要修改时,调用该元素的组件就需要逐一排查,无论封装还是后续维护的成本都很高
Figma组件设计思路
Collect
而在Figma中,仅仅需要几个变体类型,就可以完成全部内容形式的组合调用,我们可以通过图示演示实现过程
Figma组件设计思路
Collect
以弹窗为例,按钮变体合集作为原子组件被上级区域组件调用,不同的区域组件又被嵌套组成了弹窗组件,整个弹窗组件就可以通过变体选项控制调用目标组件形态,不计算按钮组件的多种变化,仅通过标题区变体2个,按钮区变体6个,就可以组成2*6=12种组合,如果再设置其他例如尺寸、状态、类型等维度的参数控制,可以演变出上百种组合,在Figma中仅需要按照结构化组件维度封装关键子组件,搭配组件嵌套和变体配置就可以实现。
Figma组件设计思路
Collect
如弹窗标题区、内容区、按钮区分别对应3、4、5种样式,在Sketch需要封装的个数就是3*4*5=60个,在Figma仅需3+4+5=12个,其工作量成倍减少,而使用结构化的封装好处还包括后续优化,也只需更新最小节点的组件即可,调用其组件的上层组件会自动覆盖更新。
Figma组件设计思路
Collect
以上就是使用Figma进行组件搭建的思路拆解,可以总结为“组合式的模块化设计”,通过引用关系实现组件的积木化搭建,让设计系统更具复用性、扩展性和一致性。其次无论是从效率、协作,还是与开发的衔接来看,
Figma在组件搭建上的优势都是十分巨大的。
它不仅提供了更强大的嵌套与变体能力,还通过变量与模式让设计稿具备了“动态系统”的特性,大大节约设计在重复性工作中投入的时间,去投入到更有价值的工作中去。
参考引用出处:
作者:嘉铭
61
Report
|
134
Share
相关推荐
2024酷+大会视觉解析
Homepage recommendation
内容含视频
设计不設計
设计不設計
设计不設計
设计不設計
作品收藏夹
评论
in to comment
Add emoji
喜欢TA的作品吗?喜欢就快来夸夸TA吧!
推荐素材
You may like
花茶包装全案设计
Homepage recommendation
华为项目——Ai智慧网图
Homepage recommendation
相关收藏夹
设计不設計
设计不設計
设计不設計
设计不設計
作品收藏夹
文章
文章
文章
文章
作品收藏夹
知识
知识
知识
知识
作品收藏夹
设计分析文章
设计分析文章
设计分析文章
设计分析文章
作品收藏夹
好文
好文
好文
好文
作品收藏夹
理论
理论
理论
理论
作品收藏夹
大家都在看
Log in