Figma 组件库从 0 到 1:用变体和属性快速搭建可复用按钮/输入框

你将得到什么

做完这套流程,你会拥有一组“可复制到任何项目里”的基础组件:按钮(不同尺寸/状态/图标/加载)、输入框(不同尺寸/状态/前后缀/帮助文案)。它们有统一的命名、统一的属性结构,交付给开发也更清晰。

第 0 步:准备页面与命名规则(强烈建议照做)

1)新建一个组件库文件:建议文件名为“Design System - Components”。

2)建立两页:① 00 - Covers(封面/说明)② 01 - Components(正式组件)。

3)定义命名规则(保持一致最重要):

  • 组件名称:Button、Input
  • 变体属性使用“属性=值”形式:Size=MD、Type=Primary、State=Default
  • 尽量避免中文命名,团队协作更稳定;值使用短英文:SM/MD/LG、Default/Hover/Pressed/Disabled/Loading

第 1 步:做一个“按钮基座”

先做一个最基础的按钮:只包含一个容器 + 文案(不做变体)。

  1. 画一个矩形 + 文案,选中后用 Auto layout(自动布局)。
  2. 自动布局建议:水平排列、左右 padding 16,上下 padding 10,间距 8。
  3. 圆角 8;阴影先不加(阴影交给状态/主题去控制)。
  4. 文字样式建议:14/20,Medium;颜色先用纯白(后面会用不同 Type 改颜色)。

关键点:把它做成 Component(组件),命名为 Button。

第 2 步:把按钮转换成 Variants(变体)

选中按钮组件,点击右侧 + Add variant(添加变体),让它成为一个 Variant set。

建立 3 个最常用的维度(不要一上来就做太多):

  • Type:Primary / Secondary / Ghost
  • Size:SM / MD / LG
  • State:Default / Hover / Pressed / Disabled

你可以先只做 1 个 Type(比如 Primary)+ 3 个 Size + 4 个 State,等结构跑通后再扩充。

第 3 步:把尺寸做成可控(SM/MD/LG)

复制出三份按钮,分别调整 padding 与文字大小(保持视觉一致即可):

  • SM:padding 12x8,字号 12/16
  • MD:padding 16x10,字号 14/20
  • LG:padding 20x12,字号 16/24

把它们的变体属性标好:Size=SM / Size=MD / Size=LG。

第 4 步:做状态(Default/Hover/Pressed/Disabled)

状态建议只改“颜色与透明度”,不改布局尺寸。这样在页面里切换状态不会抖动。

  • Default:主色填充(例如 #2563EB)
  • Hover:主色稍深(例如 #1D4ED8)
  • Pressed:再深一点(例如 #1E40AF)
  • Disabled:整体 40% 透明 + 鼠标禁用(视觉提示即可)

如果团队有 Token 体系,颜色建议引用样式(Styles/Variables),不要写死值。

第 5 步:加入“图标”与“加载”两种能力(用属性而不是加一堆变体)

这一步能显著减少变体爆炸。

  1. 在按钮内加入一个图标占位(例如 16x16),把它做成一个子组件 Icon。
  2. 给图标图层创建 Boolean property:Has icon(是否显示)。
  3. 再加一个 Loading 图标(旋转用动效交给开发),同样用 Loading 的布尔属性控制显示。
  4. 当 Loading=true 时,建议把文案透明度降低或替换为“加载中”。

技巧:图标与文字之间的间距用 Auto layout 的 gap 控制,图标隐藏后间距自动消失。

第 6 步:做输入框 Input(同样用 Variants + 属性)

输入框建议也做 3 个维度:

  • Size:SM / MD / LG
  • State:Default / Focus / Error / Disabled
  • Affix:None / Prefix / Suffix / Both

结构建议:容器(stroke)+ 左侧前缀区 + 文本区 + 右侧后缀区。

  1. 用 Auto layout 包住整个输入框,设置 padding。
  2. 前缀/后缀区用布尔属性显示隐藏(例如 Has prefix、Has suffix)。
  3. 文本区放一个 placeholder 文案,做成 Text property:Placeholder,让使用者能直接改文案。
  4. Error 状态:stroke 变红 + 底部加一行帮助文案(可用布尔属性控制显示)。

第 7 步:整理到组件库页面并写“使用说明”

把 Button 与 Input 放到 01 - Components 页里,建议每个组件旁边写 4 行说明:

  • 用途(什么时候用)
  • 属性列表(Type/Size/State 以及 Has icon 等)
  • 注意事项(比如 Disabled 不允许点击)
  • 对开发的提示(颜色 Token、圆角、间距)

常见坑(提前避雷)

  • 变体维度过多:先把最小可用集合做出来,再扩充;否则维护成本爆炸。
  • 命名不统一:同一维度的值要保持一致(不要 Size=Medium 又 Size=MD)。
  • 状态改变尺寸:Hover/Pressed 不要改 padding/文字大小,避免页面抖动。
  • 把“图标/加载”做成变体:优先用属性控制显示隐藏,变体数量会更可控。

你可以如何扩展(可选)

  • 给 Button 增加 Danger / 类型。
  • 给 Input 增加 With label(带标题)与 With hint(提示文案)。
  • 把颜色、圆角、间距统一抽成 Variables,支持一键换主题。

用户评论 (0)

登录后参与讨论

立即登录 注册账号

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

操作成功