Figma 自动布局 + 变体:做一套响应式按钮组件(可直接套用)

你将得到什么

做完这套按钮组件后,你会拥有一个可复用的 Button 组件:

1)尺寸:S/M/L;2)状态:默认/悬停/按下/禁用;3)结构:纯文字、左图标、右图标;4)宽度:内容自适应并保持内边距一致。

开始前的准备(3 分钟)

建议文件结构:新建一个页面命名为 Components,把所有按钮组件集中放这里,后续团队协作更清晰。

先定 4 个基础样式(可以按你的品牌色替换):主色(Primary)、文字色(On Primary)、圆角(Radius=8)、间距(Padding X/Y)。

步骤 1:搭一个“基础按钮”框架

1)画一个 Frame(快捷键 F),填充主色,圆角 8。

2)把它设为 Auto layout:方向水平(Horizontal),间距 8。

3)设置内边距(Padding):左右 16,上下 10(这是中号 M 的推荐值)。

4)在 Auto layout 里放一个 Text(按钮文字),字体 14/Medium,颜色 On Primary。

步骤 2:做三种尺寸(S/M/L)

核心思路:尺寸差异只体现在 字号内边距

建议参数:

S:字号 12,Padding X=12,Padding Y=8;

M:字号 14,Padding X=16,Padding Y=10;

L:字号 16,Padding X=20,Padding Y=12。

操作:

1)把基础按钮做成组件(Cmd/Ctrl + Alt + K)。

2)复制 2 份,分别改成 S、L 的字号和 Padding。

3)把三个组件命名统一:Button/Primary,并准备合并为变体。

步骤 3:合并为变体(Variants)

1)选中 S/M/L 三个组件,点击右侧面板的 Combine as variants

2)把属性命名为:Size,值分别为 S、M、L。

3)检查:在实例上切换 Size 时,按钮宽度应自适应文字,Padding 不变形。

步骤 4:加入状态(默认/悬停/按下/禁用)

1)以 M 为例,复制出 4 个状态:Default / Hover / Pressed / Disabled。

2)颜色建议:

Hover:主色略微加深 6%-10%;Pressed:再加深 12%-18%;Disabled:背景改为灰(如 #E5E7EB),文字改为浅灰(如 #9CA3AF)。

3)把属性命名为:State,值:Default、Hover、Pressed、Disabled。

4)如果你要做原型交互:在 Prototype 里设置 Hover/Pressed 的切换即可。

步骤 5:加入图标(无/左/右)

1)在 Auto layout 里加一个 Icon(可以先用 16x16 的占位方块)。

2)做三种结构:None / Left / Right。做法是复制变体并调整 Icon 位置。

3)把属性命名为:Icon,值:None、Left、Right。

提示:Icon 的间距建议固定为 8;Icon 和文字垂直居中(Auto layout 默认即可)。

常见坑(你可以直接对照排查)

1)按钮宽度不自适应:检查外层 Frame 是否开启 Auto layout,且宽度不是 Fixed。

2)切换尺寸后 Padding 乱了:确保 Padding 只在外层 Auto layout 上设置,不要在内部文字上加额外约束。

3)图标把文字挤压:检查文字的 Resizing 为 Hug contents,必要时把文字设置为 Fill container。

4)禁用态仍可点击:原型里要给 Disabled 状态去掉交互,或单独做不可交互的连接。

快速验收清单(发布前 30 秒)

1)Size=S/M/L 切换正常;2)State=Default/Hover/Pressed/Disabled 都存在;3)Icon=None/Left/Right 都存在;

4)文字长短变化时,按钮仍保持左右 Padding;5)命名统一,团队搜索“Button”能快速定位。

你可以继续扩展

下一步建议加:Secondary(描边按钮)、Tertiary(文字按钮)、Danger(警告按钮)以及 Loading(带进度/旋转图标)。用同样的 Size/State/Icon 属性扩展,会很顺手。

用户评论 (0)

登录后参与讨论

立即登录 注册账号

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

操作成功