Figma 自动布局 + 变量:做一套可复用的响应式卡片组件教程(从零到可交付)

你将做出什么

目标:在 Figma 里做一张“带图片 + 标题 + 描述 + 标签 + 按钮”的卡片组件,并且做到:

  • 尺寸可拉伸(响应式)
  • 间距/圆角/颜色统一由变量控制
  • 通过组件属性快速切换样式(有无图片/按钮样式/标签数量)
  • 能输出给开发的结构与标注清晰

准备:新建变量集合(Variables)

建议先建 3 组变量:间距、圆角、颜色。这样你后续改规范,只改变量,不改组件。

  1. 间距(Spacing):8 / 12 / 16 / 24(单位按团队习惯)
  2. 圆角(Radius):8 / 12 / 16
  3. 颜色(Color)
    • bg/surface:#FFFFFF
    • bg/secondary:#F6F7F9
    • text/primary:#111827
    • text/secondary:#6B7280
    • brand/primary:#2563EB
    • border/default:#E5E7EB

小技巧:命名用“类别/用途”,比如 spacing/16、color/text/secondary,更好搜。

第一步:搭出卡片骨架(Auto Layout)

  1. 新建一个 Frame,命名 Card
  2. 给 Card 开启 Auto Layout(方向:Vertical)。
  3. Padding:上下左右都绑定 spacing/16;Item spacing 绑定 spacing/12。
  4. 背景色绑定 color/bg/surface;描边 1px 绑定 color/border/default;圆角绑定 radius/12。
  5. 宽度先设 320,高度设 Hug contents。

第二步:放入图片区(可选)

  1. 在 Card 顶部放一个 Frame,命名 Media,开启 Auto Layout(Vertical 或关闭都行)。
  2. 给 Media 一个固定高度(例如 160),宽度 Fill container。
  3. 圆角与 Card 一致(12),并开启 Clip content。

为什么要单独一层 Media?因为你后面做“无图版本”时,只需要隐藏/移除这一层,而不是拆整个结构。

第三步:文字与标签区(内容区)

  1. 在 Media 下方新建 Frame:Content,开启 Auto Layout(Vertical)。
  2. Content 的 item spacing 绑定 spacing/8。
  3. 放入标题 Text:字号 16-18,颜色绑定 color/text/primary,设置为 Hug。
  4. 放入描述 Text:字号 12-14,颜色绑定 color/text/secondary,最多 2-3 行(你可以用文本样式统一)。
  5. 新建 Tags 容器:Auto Layout(Horizontal),Wrap 开启,gap 绑定 spacing/8。

标签(Tag)建议做成一个小组件:左右 padding 8,上下 padding 4,圆角 999,背景 color/bg/secondary,文字 text/secondary。

第四步:按钮区(CTA)

  1. 在 Card 底部放一个 Frame:Actions,Auto Layout(Horizontal),对齐右侧。
  2. 放一个 Button 组件(建议你已有按钮库;没有就先做一个)。
  3. 按钮 padding、圆角、颜色尽量也绑定变量。

第五步:让它真正“响应式”

很多人做了 Auto Layout 但还是不响应,关键在这些设置:

  • Card:宽度设为 Fixed(在组件实例里可改),高度 Hug。
  • Media:宽度 Fill container,高度固定。
  • Content:宽度 Fill container;内部文字默认 Hug,但要允许换行。
  • Tags:Wrap 开启;否则标签会把卡片撑爆。
  • Actions:对齐 End;必要时允许按钮 Hug。

第六步:做成组件 + 组件属性(Component Properties)

  1. 选中 Card,创建组件(Create component)。
  2. 为 Media 创建一个布尔属性:Show media(true/false),绑定 Media 图层显隐。
  3. 为按钮创建 Variant:Primary / Secondary(或者用组件属性切换样式)。
  4. 为 Tag 做一个“数量”策略:常见做法是预留 3-5 个 Tag,占位符为空时隐藏。

命名建议:属性用动词 + 名词,例如 Show media、Button type,对团队更友好。

交付检查清单(照着对一遍再交付)

  • 所有间距/圆角/颜色都尽量绑定变量(而不是手填数值)。
  • 卡片宽度拉伸时,文字不溢出,标签会自动换行。
  • 无图版本/不同按钮样式切换正常,布局不跳崩。
  • 层级命名清晰:Card / Media / Content / Tags / Actions。
  • 把组件放入库页面,并给出 2-3 个示例(默认、无图、长标题)。

常见坑(最容易踩的 3 个)

  1. 只给外层 Auto Layout:内层容器不 Fill container,会导致拉伸时内容区宽度不跟随。
  2. Tags 不开 Wrap:标签会一字排到底,撑破卡片。
  3. 变量命名混乱:后期维护会非常痛苦,建议统一“类别/用途/尺寸”。

用户评论 (0)

登录后参与讨论

立即登录 注册账号

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

操作成功