Figma 排版提速:用 Auto Layout 做自适应卡片组件(从零到可复用)

你将做出什么

目标:在 Figma 里做一个「卡片组件」:标题、说明、标签、按钮都可替换;卡片宽度可拉伸;内容多少不同也能自动撑开;并且能在列表里一键重复使用。

本文按“先搭骨架 → 再做可替换 → 最后做可复用”的顺序走,照着做 20-30 分钟就能完成。

准备:新建框架与栅格(可选但强烈建议)

1)新建一个 Frame(快捷键 F),比如 1200×800,用于放组件和预览。

2)给 Frame 加 Layout grid(右侧面板 Layout grid)做参考:12 列、左右 margin 80、gutter 20(你也可以用 8pt 体系自己定)。

3)在页面左上角放一行文字备注:本文件使用 8pt 间距体系(8/16/24/32)。后续间距保持统一更显“专业”。

步骤 1:搭“外层容器”并开启 Auto Layout

1)画一个矩形作为卡片背景(R),圆角 12,填充白色,描边 1px #E9E9E9,阴影可选(0, 6, 20, 10%)。

2)选中矩形,按 Shift+A 开启 Auto Layout。你会发现它变成了一个带 padding 的容器。

3)右侧 Auto layout 设置建议:

  • Direction:Vertical(纵向)
  • Padding:16 / 16 / 16 / 16
  • Item spacing:12
  • Alignment:Left(左对齐)

4)把卡片宽度设为 Fill container(填充容器)或固定宽度(比如 360)都行:如果你后面要做响应式列表,建议用 Fill container。

步骤 2:做“标题区”——可伸缩 + 不挤压

1)在卡片容器里放一个水平 Auto Layout(Shift+A),命名为 Header。

2)Header 设置:

  • Direction:Horizontal
  • Item spacing:8
  • Alignment:Center(垂直居中)

3)在 Header 里放两样东西:

  • 左侧:标题文本(如“入门教程:自适应卡片组件”),字号 16/行高 24,字重 600
  • 右侧:一个小标签(Tag),比如“NEW”

4)关键点(避免挤压):

  • 标题文本:设置为 Fill container(占满剩余空间)
  • Tag:设置为 Hug contents(包裹内容)

这样当卡片变窄时,标题会先换行或截断(取决于你是否开启文本自动换行),而 Tag 不会被压扁。

步骤 3:做“正文区”——可增减内容,不改布局

1)在卡片容器里新增一个垂直 Auto Layout,命名为 Body,Item spacing 8。

2)在 Body 里放:

  • 说明文本:字号 13/行高 20,颜色 #444;文本宽度 Fill container
  • 要点列表(可选):用 2-3 行短句模拟列表,每行前面加“•”或用单独的小圆点

3)如果你希望说明文本在内容很少时也不要“塌”,不要用固定高度;让它 Hug contents。Auto Layout 会自动撑开。

步骤 4:做“按钮区”——左对齐/两端对齐随你切换

1)新增一个水平 Auto Layout,命名为 Actions。

2)放两个按钮(文字 + 背景矩形):例如“查看详情”“复制链接”。

3)按钮做法建议:

  • 按钮容器:水平 Auto Layout,Padding 10/12,圆角 10
  • 主按钮填充:#111,文字白色;次按钮:描边 #DDD,文字 #111

4)Actions 对齐玩法:

  • 如果你要按钮靠左:Actions 设置为 Left,并保持 spacing 8
  • 如果你要左右分布:把 Actions 的 “Space between(两端对齐)” 打开(不同版本 UI 名字略有差异)

步骤 5:让整个卡片“自适应宽度”

1)检查卡片最外层容器(Card):宽度设置为 Fill container(推荐)或固定。

2)检查内部横向容器(Header / Actions):宽度也设为 Fill container。

3)检查文本:标题/说明文本设为 Fill container,避免出现“内容被挤到很窄”的问题。

4)如果你发现某个元素撑破:大概率是它被设成了 Fixed width;改成 Hug contents 或 Fill container 即可。

步骤 6:组件化(Component + Variants)

1)选中整个卡片容器,按 Ctrl+Alt+K(或右键 Create component)创建组件,命名:Card / Tutorial。

2)做两个常见变体(Variants):

  • 状态:Default / Hover(Hover 仅把描边加深或阴影增强)
  • 密度:Comfortable / Compact(把 padding 从 16 改 12,spacing 从 12 改 8)

3)把“Tag”做成可选:你可以在变体里隐藏它,形成「有标签/无标签」两种版本。

步骤 7:在列表中验证(真实场景测试)

1)新建一个垂直 Auto Layout 容器作为列表(List),间距 16,宽度 Fill container。

2)把 Card 组件拖 3-5 个进列表。

3)对每张卡片替换不同长度标题、不同长度说明,检查是否满足:

  • 卡片高度随内容变化
  • 按钮区不乱跳
  • 标签不被压扁
  • 整体对齐一致

常见问题排查(做不对通常是这几条)

  • 元素被压扁:把它从 Fixed 改为 Hug contents,或给文本 Fill container
  • 卡片不能拉伸:最外层/横向容器的宽度要 Fill container
  • 间距总不一致:统一用 8pt 体系(8/16/24/32),别“随手输数字”
  • 按钮高度不齐:按钮内部 padding 要统一,文字行高要一致

你可以直接复用的命名建议

  • Card / Tutorial
  • Header / Body / Actions
  • Variant:state=default|hover,density=comfortable|compact,tag=on|off

做到这里,你就拥有了一张可以复制到任何项目里用的“自适应卡片组件”。后续只要替换内容、加图标/封面图,版式就会自动跟上。

用户评论 (0)

登录后参与讨论

立即登录 注册账号

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

操作成功