Figma 自动布局实战:用 3 个技巧做出可伸缩按钮与卡片组件

你将完成什么

这篇教程带你在 Figma 里从零做出两个可复用组件:一个“自适应按钮”,一个“可伸缩信息卡片”。做完后你会掌握 Auto Layout 的核心:padding/间距、对齐、Hug/Fill、约束,以及用 Variants 管理不同状态。

准备:新建基础样式

1)新建一个 Frame(快捷键 F),尺寸任意,比如 800x600,用作练习画布。

2)准备两种文字样式:14/20(正文)和 16/24(标题)。如果你没有样式库,也可以先直接设置字体大小与行高,后续再创建 Text Styles。

3)准备两种颜色:主色(按钮背景)和灰色(卡片边框/说明文字)。

组件一:自适应按钮(文字变长也不破)

步骤 A:做按钮外观

1)画一个矩形作为按钮底(R),比如 120x40,圆角 10。

2)放入一个文本层,输入“立即下载”。把文本放在矩形上方居中。

步骤 B:把它变成 Auto Layout

3)选中矩形 + 文本,按 Shift + A(Add Auto Layout)。你会看到它变成一个带自动布局的 Frame。

4)在右侧 Auto Layout 面板设置:方向 Horizontal;Spacing 8;Padding 左右 16、上下 10;对齐 Center。

步骤 C:设置 Hug / Fill

5)选中文本层,把宽度设为 Hug contents;选中按钮容器,把宽度设为 Hug contents。这样文本变长,按钮会自动变宽。

6)测试:把按钮文字改为“立即下载高清资源包”,看按钮是否仍保持左右 padding,不会挤压文字。

技巧:让按钮高度稳定

7)如果你希望按钮高度固定(例如 40),可以把容器高度设置为 Fixed 40,同时在 Auto Layout 内把对齐保持 Center,文字依旧垂直居中。

组件二:可伸缩卡片(容器拉伸,内容跟着排)

卡片包含:标题、说明文字、一个右侧按钮。我们希望卡片拉宽时,文本区域能占满剩余空间,按钮靠右。

步骤 A:建立卡片结构

1)新建一个 Frame,设置为 Auto Layout(Shift + A),方向 Vertical。

2)设置卡片 Padding:16;Spacing:12;对齐 Left;背景白色;描边 1px 灰色;圆角 12。

3)放入一个标题文本(例如“模板已更新”)和说明文本(例如“新增 6 个可编辑模块,支持一键替换配色与字体。”)。

步骤 B:加入底部操作区

4)在卡片里再放一个子 Frame(作为底部行),把它设置为 Auto Layout,方向 Horizontal,对齐 Center,Spacing 12。

5)在这个底部行里放入:左侧一个“标签/提示”文本(可选),右侧放入前面做好的按钮组件。

步骤 C:关键设置(让按钮始终靠右)

6)把底部行的宽度设为 Fill container。

7)选中左侧文本,把宽度设为 Fill container;按钮保持 Hug contents。这样剩余空间都给左侧文本,按钮自然被推到最右侧。

8)如果说明文本需要换行,设置为 Fill container,并观察卡片高度会自动增长。

变体:用一个组件管理 3 种按钮状态

我们把按钮做成 Variants:Default / Hover / Disabled。

1)选中按钮组件,右键 Create component,再 Duplicate 两次得到 3 个实例。

2)全选这 3 个组件,点击 Combine as variants。

3)在右侧为属性命名:State=Default/Hover/Disabled。

4)调整样式:Hover 可以略深的背景色;Disabled 降低不透明度并禁用阴影。

5)为 Hover 添加交互(Prototype):On hover → Change to Hover;Mouse leave → Change to Default。Disabled 不加交互即可。

检查清单:出现问题就对照这 6 条

1)按钮文字变长却把高度撑开:检查容器是否 Fixed 高度,或 padding 是否过大。

2)按钮没有跟着文字变宽:容器宽度是否 Hug contents?文本是否 Hug contents?

3)卡片拉宽时按钮不靠右:底部行是否 Fill container?左侧文本是否 Fill container?

4)文字不换行:文本宽度是否 Fill container?是否被设为 Fixed?

5)间距不一致:Spacing 与 Padding 是否混用?优先用 Auto Layout 的 Spacing 控制。

6)组件难以维护:把颜色/文本样式抽成 Styles;把状态集中到 Variants 里。

你可以立刻怎么用

把这两个组件放进你的组件库:按钮用于所有 CTA;卡片用于弹窗、通知、设置页模块。以后遇到文字长度变化、不同语言、响应式布局,基本都能靠 Hug/Fill + Auto Layout 稳住。

用户评论 (0)

登录后参与讨论

立即登录 注册账号

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

操作成功