Built a responsive pricing card in Figma using Auto Layout and Component Variants: a vertical Auto Layout frame with a feature list and CTA, the button turned into a component with Default / Hover / Disabled variants, then duplicated into a three-card row that swaps variants of the same shared component.
Build a pricing card using Figma's Auto Layout and Component Variants, not static boxes and copy-pasted duplicates.
Deliverable · captured from the machine
{
"document": {
"id": "0:0",
"name": "Document",
"type": "DOCUMENT",
"scrollBehavior": "SCROLLS",
"children": [
{
"id": "0:1",
"name": "Page 1",
"type": "CANVAS",
"scrollBehavior": "SCROLLS",
"children": [
{
"id": "2:58",
"name": "PricingRow",
"type": "FRAME",
"scrollBehavior": "SCROLLS",
"children": [
{
"id": "1:2",
"name": "PricingCard",
"type": "FRAME",
"scrollBehavior": "SCROLLS",
"children": [
{
"id": "1:3",
"name": "Basic",
"type": "TEXT",
"scrollBehavior": "SCROLLS",
"blendMode": "PASS_THROUGH",
"fills": [
{
"blendMode": "NORMAL",
"type": "SOLID",
"color": {
"r": 0.0,
"g": 0.0,
"b": 0.0,
"a": 1.0
}
}
],
"strokes": [],
"strokeWeight": 1.0,
"strokeAlign": "OUTSIDE",
"absoluteBoundingBox": {
"x": 24.0,
"y": 24.0,
"width": 31.0,
"height": 15.0
},
"absoluteRenderBounds": {
"x": 25.05681800842285,
"y": 27.0,
"width": 28.780183792114258,
"height": 9.15340805053711
},
"constraints": {
"vertical": "TOP",
"horizontal": "LEFT"
},
"layoutAlign": "INHERIT",
"layoutGrow": 0.0,
"layoutSizingHorizontal": "HUG",
"layoutSizingVertical": "HUG",
"characters": "Basic",
"characterStyleOverrides": [],
"styleOverrideTable": {},
"lineTypes": [
"NONE"
],
"lineIndentations": [
0
],
"style": {
"fontFamily": "Inter",
"fontPostScriptName": null,
"fontStyle": "Regular",
"fontWeight": 400,