Figma 一键做出可复用的按钮组件:Auto Layout + Variants 实战

你将做出什么

目标是做出一套可复用的「按钮组件」:支持尺寸(S/M/L)、层级(Primary/Secondary/Ghost)、状态(Default/Hover/Pressed/Disabled)、以及可选图标(无/左图标/右图标)。整套按钮用 一个组件集(Variants) 管理,后续在项目里可以一键切换,不用复制粘贴改样式。

准备:新建按钮基础样式(Auto Layout)

  1. 新建一个 Frame(快捷键 F),命名为 Button/
  2. 对 Frame 开启 Auto layout(Shift + A)。方向选水平(Horizontal)。
  3. Padding 建议:左右 16,上下 10;Item spacing 8。
  4. 对齐:垂直居中(Center);横向居中(Center)。
  5. 给 Frame 设置圆角 8(或与你的设计系统一致)。
  6. 在 Frame 内放一个 Text,内容写 “Button”,命名为 Label

提示:把按钮做成 Auto Layout 的好处是,当你切换文案、字体或是否带图标时,按钮宽度会自动适配,不会出现手动拉伸的维护成本。

建立三档尺寸(S/M/L)

复制 Button/ 三次,分别命名为 Size/S、Size/M、Size/L(先做普通 Frame 也行,后面会统一变成组件变体)。

  1. Size/S:左右 12,上下 8;字体 12 或 13。
  2. Size/M:左右 16,上下 10;字体 14。
  3. Size/L:左右 20,上下 12;字体 16。

建议把这些数值写成你团队的规则:同一套按钮,只要改尺寸属性,就能保证整体节奏一致。

建立三种层级(Primary/Secondary/Ghost)

以 Size/M 为例先做三种视觉层级(后面会扩展到所有尺寸)。

  1. Primary:填充色用品牌主色;文字白色;可加轻微阴影(可选)。
  2. Secondary:浅色填充或白底 + 边框;文字用主色或深色;边框 1px。
  3. Ghost:无填充;文字用主色;hover 时出现淡底或描边。

技巧:如果你有 Color Styles(例如 Primary/500、Gray/900),优先用 Style 绑定颜色,后续换品牌色会省掉大量手工替换。

建立四种状态(Default/Hover/Pressed/Disabled)

每个层级都建议至少有 4 个状态。你可以先只做 Primary 的 4 个状态,确认节奏后再复制到 Secondary/Ghost。

  1. Default:正常颜色。
  2. Hover:背景略变深(或加 4%~8% 的覆盖),文字不变。
  3. Pressed:再深一点,或减少阴影/增加内阴影,让“按下去”的感觉更明显。
  4. Disabled:降低不透明度(例如 40%~60%),并把鼠标语义留给开发(你只管视觉即可)。

加入可选图标(无/左/右)

在按钮 Auto Layout 里,图标最稳的做法是用一个固定命名的占位层,例如 Icon

  1. 准备一个 16x16 或 20x20 的图标(随尺寸而定),放在 Label 左侧,命名为 Icon。
  2. 设置 Icon 的约束为固定大小;不要让它自动拉伸。
  3. 需要右图标时,把 Icon 移到 Label 右侧即可。
  4. 没有图标时,可以用 Variants 切换到“none”,直接隐藏 Icon 图层(而不是删除)。

关键点:通过隐藏/显示 Icon,而不是新增不同结构的按钮,能减少变体数量爆炸。

把它们变成一个组件集(Variants)

  1. 选中你要作为变体的按钮(建议先做 Size=M + Primary 四状态 + 图标 3 种)。
  2. 点击右侧面板的 Create component(Ctrl+Alt+K),再点 Combine as variants
  3. 在 Variants 属性里命名:size(S/M/L)、type(primary/secondary/ghost)、state(default/hover/pressed/disabled)、icon(none/left/right)。
  4. 统一命名规则:全小写、短词、避免中文;这样开发也更容易对齐。

如果你已经有交互原型需求,还可以在组件集里给不同 state 做交互连接(Prototype),例如 Hover 触发到 hover 变体、Mouse down 触发到 pressed 变体。

快速检查清单(避免常见坑)

  1. 所有变体结构一致:层级顺序、命名一致(Icon/Label),否则切换时会乱跳。
  2. Auto Layout 的 padding 在同一 size 下必须一致,否则会出现宽度变化不受控。
  3. 禁用态不要只降透明度:同时确保对比度仍可读(至少能看清文字)。
  4. 文字样式用 Text Styles,颜色用 Color Styles,后期维护成本会显著下降。

如何把按钮放进你的设计系统

最后一步:把这个组件集移动到你的 UI Kit 页面(或单独的 Library 文件),并在 Assets 面板里确认它的命名层级清晰(例如:Buttons / Button)。如果你们团队使用 Figma Library,把文件发布为 Library 后,项目文件就能直接引用这套按钮组件。

用户评论 (0)

登录后参与讨论

立即登录 注册账号

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

操作成功