Figma 组件变体:用 Auto Layout 做一套可切换状态的按钮(可复用模板)

你将做出什么

目标是做出一套“可直接拿去项目里用”的按钮组件:尺寸随文案自适应、可切换大小与风格、并且包含默认 / 悬停 / 按下 / 禁用等状态。

准备工作(3 分钟)

1)新建一个 Frame(例如 1440×900),在左侧创建一个 Page 命名为「Components」。

2)准备 4 个颜色样式:Primary / Primary Hover / Primary Pressed / Disabled(可用你项目的主色替换)。

3)准备一个文本样式:Button/14(或 16),行高建议 20–24。

步骤 1:做一个“基础按钮”并开启 Auto Layout

1)画一个圆角矩形(例如 120×40,圆角 8)。

2)在矩形上方放一个文字层,输入「按钮」并居中对齐。

3)框选矩形 + 文字,按 Shift + A 开启 Auto Layout。

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

· Padding:左右 16,上下 10(先用这个值,后面会做成可变)

· Spacing:8(为以后加图标留空间)

· Alignment:居中

5)把按钮的宽高设置为 Hug contents(内容自适应),这一步决定了按钮会随文案自动撑开。

步骤 2:给按钮加“可替换的文案”与约束

1)选中文本层,命名为「Label」。

2)在组件化之前先验证:把 Label 改成更长的文案(如「立即下载并开始使用」),按钮是否能自动变宽。

3)如果按钮没有自动撑开,检查是否仍是 Fixed width/height;确保按钮容器为 Hug contents。

步骤 3:把基础按钮变成组件(Component)

1)选中按钮容器,按 Ctrl/Cmd + Alt + K 创建组件。

2)命名建议:

· 组件:Button

· 文本层:Label

清晰命名会让后面变体和属性更好用。

步骤 4:创建 Variants(状态与风格)

1)选中 Button 组件,在右侧点击 + Variant(或 Duplicate 并 Combine as variants)。

2)先做一个属性:State,包含 4 个值:

· Default / Hover / Pressed / Disabled

3)分别设置每个状态的填充色与透明度(Disabled 可降低不透明度并改为灰)。

4)再做一个属性:Type,包含:

· Primary / Secondary(Secondary 可用描边 + 透明背景)

这样你会得到一个二维变体矩阵:Type × State。

步骤 5:增加 Size(小/中/大)并让尺寸仍然自适应

1)新增属性:Size:S / M / L。

2)对不同 Size 调整:

· Padding(例如 S=12/8,M=16/10,L=20/12)

· 字号(可保持不变或 L 增大)

3)关键点:无论怎么改 Padding,容器依旧保持 Hug contents,确保按钮总能随文案自适应。

步骤 6:加交互原型(可选但强烈推荐)

1)切到 Prototype 面板。

2)在 Default 变体上设置:

· While hovering → Change to Hover

· While pressing → Change to Pressed

3)在 Disabled 上不设置交互,保持静态。

这样在演示或交付时,按钮会有真实的反馈。

步骤 7:组件库整理与交付建议

1)把 Button 组件放到「Components」页面,并用分隔线/标题标注规范。

2)给组件设置描述(De ion),写清楚 Type/State/Size 的用途。

3)如果团队有 Design Token,建议把颜色/圆角/阴影都做成 Styles,减少重复劳动。

常见问题排查

Q1:文案变长后按钮不自动变宽? 检查按钮容器是否为 Hug contents;文本是否被固定宽度限制。

Q2:Secondary 描边按钮文字不居中? 检查 Auto Layout Alignment 是否居中,Padding 是否一致。

Q3:Variants 太多难维护? 优先保留真正会用到的组合;把很少用的状态(如 Focus)后续再加。

你可以直接复用的命名方案

Button / Type=Primary, State=Default, Size=M

Button / Type=Secondary, State=Hover, Size=S

后续在组件面板里搜索会非常顺手。

用户评论 (0)

登录后参与讨论

立即登录 注册账号

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

操作成功