Figma 自动布局:做一个可复用的卡片组件并一键适配多尺寸

你将得到什么

我们用一个“信息卡片(Card)组件”贯穿全程:包含封面、标题、描述、标签、按钮。做完后它可以:

  • 改文案不跑版(长短标题都能撑住)
  • 一键切换小/中/大三种尺寸
  • 按钮可选(有按钮/无按钮)
  • 封面可选(有图/无图)

准备:先画“内容骨架”,别急着上样式

新建一个 Frame(例如 360x240),先只放结构:

  1. 封面图区域(矩形占位)
  2. 标题(Text)
  3. 描述(Text)
  4. 标签行(2~3 个 Tag)
  5. 按钮(Button)

提示:先用灰色占位,等自动布局稳定后再换字体、圆角、阴影。

第一步:把最外层变成 Auto Layout(垂直)

选中最外层 Frame,点击右侧 Auto layout → 选择 Vertical。

  • Padding:建议 16 / 16 / 16 / 16
  • Spacing between items:建议 12
  • Alignment:Left & Top
  • Resizing:宽度 Fill container(之后用于适配),高度 Hug contents

第二步:封面图做成“可裁切且自适应”的容器

封面区域建议用一个单独的 Frame 做容器,再放图片(或矩形)进去:

  1. 创建封面容器 Frame,开启 Clip content(裁切)。
  2. 容器宽度设为 Fill container,高度先固定(例如 160)。
  3. 把图片放进来,图片的约束设为 Fill(或用填充模式)。

这样后续卡片变宽时,封面会自动铺满;变窄时也不会露白。

第三步:文本区再包一层 Auto Layout(垂直)

标题+描述+标签行+按钮,不建议直接散放在外层。新建一个内容区 Frame,把它设为 Auto Layout(Vertical):

  • 内容区宽度:Fill container
  • 内容区高度:Hug contents
  • 内容区内部间距:8(标题与描述)/ 10(描述与标签)可用不同 spacing?做不到就用统一 spacing 再用空白对象微调

标题和描述的 Resizing:宽度 Fill container,高度 Hug contents。这样长文案会自动换行。

第四步:标签行用 Auto Layout(水平),解决“标签数量变化”

把多个 Tag 包到一个 Auto Layout(Horizontal)的容器里:

  • Spacing:8
  • Wrap:如果你使用的是支持 Wrap 的版本,可以打开;否则限制标签数量(比如最多 3 个)
  • 每个 Tag 组件:宽度 Hug contents,高度固定(如 24),左右 padding 10

第五步:按钮做成组件,并设置 Fill container 的宽度策略

按钮组件推荐结构:容器(Auto Layout Horizontal)+ 文本。常用设置:

  • 按钮左右 padding:14,上下 padding:10
  • 按钮宽度:在卡片里通常设为 Fill container(用于移动端),如果是桌面列表可改为 Hug contents
  • 文本:Hug contents

关键点:按钮“宽度策略”决定了卡片在不同布局下的适配方式。

第六步:用 Variants 组织 4 种状态(有图/无图 × 有按钮/无按钮)

把整个 Card 做成组件(Create component),然后创建 Variants:

  • property: Cover = On / Off
  • property: CTA = On / Off

实现方式:

  1. Cover=Off:隐藏封面容器(注意 Auto layout 会自动回收空间)。
  2. CTA=Off:隐藏按钮。

这样产品/运营同学改内容时,你只需要切变体,不需要复制粘贴四份。

第七步:再加一个 Size 属性(S/M/L),一键适配多尺寸

在同一个组件集里新增:

  • property: Size = S / M / L

不同尺寸建议只改“外层 padding、字体大小、封面高度、间距”,不要改结构。参考值:

  • S:padding 12,标题 14,描述 12,封面 120
  • M:padding 16,标题 16,描述 13,封面 160
  • L:padding 20,标题 18,描述 14,封面 200

自检清单:做完这 6 条就算合格

  • 把标题改成很长一段,卡片不溢出、不遮挡
  • 把描述清空,布局不会塌(可用最小高度或占位)
  • 切 Cover/CTA 变体,间距自然、不留大空洞
  • 把卡片拉宽/拉窄,内容区仍然 Fill container
  • 复制 10 个卡片放进列表,整体对齐一致
  • 用组件实例改文本,不需要进组件编辑页

常见坑与修复

  • 文字不换行:检查 Text 的 Resizing,宽度要 Fill container。
  • 隐藏封面后还有空白:确认封面容器在 Auto layout 里,且隐藏的是容器本身。
  • 按钮被压扁:按钮高度设为 Hug contents,并确保内部 padding 不被约束。
  • 组件越做越乱:先定结构,再定变量;变量只控制“可预期的差异”。

结尾:把它变成你自己的模板

最后一步,把卡片的颜色、圆角、阴影改成你的品牌样式,然后把组件命名规范化(例如 Card / Content、Card / Media)。下次做新页面时直接拖实例,再也不用从零搭结构。

用户评论 (0)

登录后参与讨论

立即登录 注册账号

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

操作成功