Define component variants and states systematically for Figma. Use when asked to plan component variants, define states for a component, set up a Figma variant matrix, or work out what properties a component needs before building it. Produces a complete variant matrix with all properties, values, and combinations needed.
Start a fresh conversation. Replace the highlighted placeholders.
Use figma-variant-matrix to define a complete, buildable Figma variant matrix for [component name] used for [component purpose] on [platform], including valid combinations, responsive behavior, semantic layers, token mapping, and Figma naming guidance.
Required inputs
[component name]
[component purpose]
[platform]
User-approved starter prompt based on a pinned source version; check current skill requirements before running. Task evidence ↗
SKILL.md
name: figma-variant-matrixdescription: "Define component variants and states systematically for Figma. Use when asked to plan component variants, define states for a component, set up a Figma variant matrix, or work out what properties a component needs before building it. Produces a complete variant matrix with all properties, values, and combinations needed."
Figma Variant Matrix Skill
Defines all variants, properties, and states a component needs before building it in Figma — preventing missing variants discovered after the component is already used across 40 screens.
Required Inputs
Component name (Button, Card, Input, Badge, Navigation item, etc.)
Component purpose (what does it do, where is it used?)
Platform (iOS / Android / Web / Multi-platform)
Design system context (standalone / part of existing system)
Output Structure
1. Component Overview
Name, category (Interactive/Display/Layout/Form/Navigation/Feedback), used in contexts.
2. Variant Properties
Property
Values
Notes
Type
Primary, Secondary, Tertiary, Destructive
Size
Large, Medium, Small
State
Default, Hover, Active, Disabled, Loading
Icon
None, Leading, Trailing, Only
Total combinations: [N]. Flag if over 50 — consider splitting into multiple components.
3. State Definitions
For each state, list only what changes from Default:
Default: [Full visual spec]
Hover (web): [Delta from default]
Active/Pressed: [Delta]
Disabled: [Delta — use layer-level properties, not opacity on whole component]
Loading: [What replaces label, interactive during loading?]