Figma 组件变体 + 自动布局:做一套可复用按钮/卡片组件库(新手可照做)

目标:在 Figma 里做一套按钮 + 卡片的基础组件库,让它具备:自适应宽高(Auto Layout)、可切换状态/尺寸(Variants)、可被团队稳定复用(属性命名清晰)。你照着做完,就能把“每次都重新画一套按钮”的浪费彻底停掉。

一、准备:先定规则,再动手画

建议先写在组件页顶部(后面团队接手也看得懂):

1)尺寸体系:按钮分 S / M / L;卡片分 紧凑 / 标准

2)状态体系:按钮分 Default / Hover / Pressed / Disabled;卡片分 Default / Selected

3)命名约定:组件名用 ButtonCard;属性用英文小写:typesizestate

二、做按钮底座:Auto Layout 让按钮“自己长大”

步骤:

1)新建一个 Frame,命名为 Button/ ,放一个文字层(例如“按钮”)。

2)选中 Frame,按 Shift + A 开启 Auto Layout;方向选水平。

3)设置 Padding:左右 16、上下 10(先以 M 尺寸为例)。Spacing between items 设为 8(后续加图标用)。

4)把文字层的约束设为 Hug contents(默认通常就是),按钮 Frame 也设为 Hug contents。此时文字变长,按钮会自动变宽。

5)添加圆角、填充色、描边(可选)。为了后续统一换色,建议使用 Color Styles(例如 Primary/500、Neutral/0)。

三、把按钮做成组件:从 1 个变 8 个(尺寸 × 状态)

1)选中 Button/ ,创建组件(Create component)。

2)复制 3 份做尺寸:S/M/L。做法:

- S:左右 12、上下 8,字体 12 或 13;

- M:左右 16、上下 10,字体 14;

- L:左右 20、上下 12,字体 16。

3)再为每个尺寸复制状态:Default/Hover/Pressed/Disabled。状态差异建议只体现在:填充色、透明度、阴影(如有)。

4)全选这些按钮组件,点击 Combine as variants

5)设置属性(很关键):

- size:S、M、L

- state:Default、Hover、Pressed、Disabled

- type(可选):Primary、Secondary、Tertiary

提示:Figma 会自动用“Property=Value”的形式命名变体。把它改成你团队能看懂的规范,未来换人也不崩。

四、加可选图标:用布尔属性控制“有/无”

你通常会遇到:有的按钮带左侧图标,有的不带。推荐这样做:

1)在按钮 Auto Layout 里放一个 Icon(可以是 16x16 的矢量或组件)。

2)把 Icon 的可见性做成变体的一部分会很麻烦;更好的做法是:

- 做一个属性 icon:On/Off;

- On:Icon 显示;Off:Icon 隐藏(仍然保留占位会影响间距,所以要让它不占空间)。

3)实现方式:Icon 单独放在一个 Auto Layout 的子 Frame 里;Off 状态下把该子 Frame 的宽度设为 0 且隐藏,或者直接在 Off 变体里删除该图标层(保持结构一致更稳)。

五、做卡片组件:用 Auto Layout 做“内容模块化”

卡片一般包含:封面/图标、标题、描述、按钮/标签。做法:

1)新建 Frame 命名 Card/ ,开启 Auto Layout(垂直)。

2)Padding 设 16;item spacing 设 12;宽度可先固定 320,高度 Hug。

3)内部用“区块”思维:Header(标题/副标题)、Body(描述)、Footer(按钮)。每个区块自身也是 Auto Layout。

4)把标题设为 Fill container(让它占满宽度),描述设为 Fill container,按钮组件放在 Footer 里。

六、卡片的变体:Selected / Default 两种就够用

1)把 Card/ 创建组件并复制一份。

2)Default:普通描边/阴影;Selected:描边高亮(Primary/500)或背景轻微变色。

3)Combine as variants,属性设为 state:Default/Selected。

七、交付给团队:让别人一眼就会用

1)把组件放到单独页面(如 Components),并按类别排版:Buttons、Cards、Inputs(后续扩展)。

2)每个组件旁边放 1 段说明:用在哪、别怎么用、常见坑。

3)检查命名:组件名不要带“v1/v2/最终版”;属性名统一英文;值保持短而清晰。

4)最后做一次“真实场景”验证:在一个 Demo 页面里用组件拼 3 个界面(列表、详情、弹窗)。如果拼的时候你自己都不顺手,说明属性还不够好。

八、常见问题(照做就能避坑)

Q1:为什么我切换变体后尺寸乱了?

A:通常是某个变体里 Auto Layout 结构不一致(层级不同/少了某层)。尽量保持每个变体的层级结构一致,只改样式。

Q2:按钮文字变长时被裁切怎么办?

A:确保文字是 Hug contents,按钮 Frame 也是 Hug contents;不要给按钮固定宽度,除非是特殊场景(例如全宽按钮)。

Q3:我应该先做样式库还是先做组件?

A:至少先做颜色/字号/间距的基础 Styles(哪怕不全),否则后面改版会很痛;组件可以边做边补 Styles。

到这里你已经拥有一套可复用的按钮/卡片组件库雏形。下一步建议补齐:输入框、标签 Tag、空状态 Empty、Toast/Modal 等,把整个产品的“高频拼装件”一次性稳定下来。

用户评论 (0)

登录后参与讨论

立即登录 注册账号

暂无评论,快来抢沙发吧~

操作成功