Figma 自动布局实战:用组件+变体做一套可复用按钮与卡片

你会做出什么

这篇教程用一个“按钮 + 卡片”的小组件库,带你把自动布局(Auto Layout)从“会用”提升到“能复用”。完成后你会得到:

1)一组不同尺寸、不同状态的按钮;2)一套可扩展的卡片组件;3)清晰的命名与属性结构,方便团队协作。

准备工作(建议设置)

文件结构:新建一个 Page:Components,把按钮和卡片都放在这里;再新建一个 Page:Playground 用来试用组件。

栅格/间距:如果你做的是移动端,建议先定义 8pt 间距体系(8/16/24/32)。后面所有 padding 和间距尽量落在这个体系里,组件会更“规整”。

第一步:做一个“基础按钮”框架

1)画一个矩形(R),再放一段文本(T)作为按钮文字。

2)选中矩形+文字,Shift+A 创建自动布局。

3)在右侧 Auto Layout 面板设置:

• Direction:Horizontal

• Padding:左右 16,上下 10(可按你的体系调整)

• Item spacing:8(图标+文字时很常用)

• Alignment:居中

4)把按钮的宽度模式设为 Hug contents(包裹内容),高度也设为 Hug contents。

关键点:按钮应该由内容决定尺寸,而不是固定宽高。这样文字变长时按钮会自动变宽。

第二步:给按钮做“尺寸”变体(S/M/L)

1)把基础按钮做成组件(Ctrl+Alt+K / ⌥⌘K)。命名建议:Button

2)在组件上点 “+” 新建 Variant。把属性命名为:Size = S / M / L

3)分别调整三种尺寸的 padding 与字体大小(示例):

• S:左右 12,上下 8,字号 12

• M:左右 16,上下 10,字号 14

• L:左右 20,上下 12,字号 16

技巧:只改 Auto Layout 的 padding 和文本样式,其它(圆角、对齐)尽量保持一致,这样视觉更统一。

第三步:给按钮做“类型”和“状态”变体

建议拆成两类属性:

• Type:Primary / Secondary / Ghost

• State:Default / Hover / Pressed / Disabled

做法:

1)继续为 Button 组件添加属性:Type、State。

2)Primary:背景填充主色,文字白色。

3)Secondary:浅色背景或描边,文字主色。

4)Ghost:透明背景,仅文字(可加轻微 hover 底色)。

5)Disabled:降低不透明度(例如 40%)并确保对比度可读。

命名建议:Button / Type=Primary / Size=M / State=Default。不要在标题里加“系列001”这种前后缀,后期搜索会很痛苦。

第四步:用“组件属性”让按钮更灵活(可选但强烈推荐)

如果你希望按钮支持“可选图标”,推荐用组件属性(Component properties):

1)在按钮里放一个 Icon(可以是矢量图标)

2)把 Icon 设置为可见性开关(Boolean property):Icon = true/false

3)Icon 关闭时,Item spacing 仍然保持合理(常见做法是让 Icon 图层本身隐藏即可,Auto Layout 会自动收缩)。

第五步:做一个卡片组件(标题/描述/按钮)

1)画一个 Frame,Shift+A 创建垂直自动布局(Vertical)。

2)设置卡片容器:

• Padding:16

• Item spacing:12

• Fill:白色/浅灰

• Stroke:轻描边(可选)

• Corner radius:12

3)卡片内部放三块内容:

• 标题(Hug)

• 描述(Hug,允许多行)

• 操作区(Horizontal Auto Layout),右侧放你的 Button 组件实例

关键点:卡片外层的宽度建议设为 Fill container(填充父级)。这样你把卡片放进不同栅格或列表时,它会自动适配宽度。

第六步:做卡片的“可选区域”

常见需求是卡片可能没有描述、没有按钮、或者有图片。做法同按钮:

1)把描述层设成可见性开关(Has de ion)。

2)把底部操作区设成可见性开关(Has actions)。

3)如果有封面图:把图片 Frame 放在最上方,并做一个 Has cover 开关。

当某块内容隐藏时,Auto Layout 会自动收紧,不需要你手动调整间距。

第七步:把组件放进 Playground 检查“复用性”

在 Playground 页面做三件事:

1)把按钮文字改成更长的文案,看是否自动扩展且不挤压。

2)切换 Size/Type/State,看是否出现圆角不一致、文字对齐偏移等问题。

3)把卡片放进一个垂直列表(Auto Layout 列表),观察 Fill/Hug 设置是否合理。

常见坑与快速修复

• 按钮文字上下不居中:检查文本框的行高(Line height)是否合理,优先用 Auto Layout 居中对齐。

• 组件变体越来越乱:先确定属性维度(Size/Type/State),不要用“Variant2/Variant3”这种默认名。

• 卡片内容撑不开:外层宽度应为 Fill container,内部文字可保持 Hug 或 Fill(视布局而定)。

你可以在这套结构上继续扩展

下一步可以加:

• Button 的 Loading 状态(加一个旋转图标,文本可选隐藏)

• Card 的不同密度(Density:Comfortable/Compact)

• 颜色变量与文本样式(配合 Styles/Variables,真正形成小型 Design System)

只要你坚持:尺寸由内容决定、属性命名清晰、Fill/Hug 用对,组件复用会非常顺滑。

用户评论 (0)

登录后参与讨论

立即登录 注册账号

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

操作成功