Build a responsive pricing card as a reusable component
DesignmacOS10m591 stepsFigma
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.
Current operation
Task
Build a responsive pricing card as a reusable component
Build a pricing card using Figma's Auto Layout and Component Variants — not static boxes
and copy-pasted duplicates.
Create a frame named PricingCard, 320×400, using Auto Layout (vertical), with specific padding (e.g. 24px all sides) and item spacing (e.g. 16px).
Inside it, add: a plan-name text, a price text, a 3-item feature list (each item its own Auto Layout row with a checkmark icon + label), and a CTA button.
Turn the button into a Component with three Variants: Default, Hover, and Disabled — each with a distinct fill/text color, all part of one component set.
Set each PricingCard's resizing so it flexes inside the row: horizontal resizing = Fill container, vertical = Hug contents. (In an all–Auto Layout design there is no separate "Constraints" panel — the Fill / Hug / Fixed dropdowns next to W/H are the equivalent.)
Duplicate the card twice into a horizontal Auto Layout row named PricingRow (Basic / Pro / Enterprise) — each card should swap in a *different variant* of the *same* button component, not an independently-styled copy.
Name every layer sensibly — no "Rectangle 14" or "Frame 82" left in the tree.
How it's graded
These criteria define the outcome each recording is checked against.
✓PricingCard frame exists with Auto Layout (vertical) and specific padding/item spacing
✓Card contains a plan name, price, a 3-item feature list, and a CTA button
✓CTA button is a Component with 3 Variants: Default, Hover, Disabled
✓PricingCard resizes sensibly inside PricingRow (horizontal resizing = Fill container, vertical = Hug) -- in an all-Auto-Layout design this is the resizing dropdowns, not a Constraints panel
✓PricingRow contains 3 card instances, each referencing the same shared button component -- not independently-styled duplicates
✓No default-named layers remain (no Rectangle NN / Frame NN style names)