TL;DR: Today, only Variant properties can be set directly by prototype interactions. For Boolean, Text, and Instance Swap, the only path is to bind the property to a global variable and use Set variable from outside. This means component behavior cannot be encapsulated inside the component itself — which has become a structural blocker now that Figma is positioning its files as the source of truth for AI-generated code and apps.
The proposal
Extend the `Change to` action (or add a new Set property action) so that any component property — Boolean, Text, Instance Swap — can be set directly by a prototype interaction defined inside the component itself. Same mental model as Variant, applied to all property types. The interaction would travel with the component, and each instance would maintain its own independent state.
The strategic misalignment
There is a growing gap between Figma's product direction and what its component model can actually express.
On the output side, Config 2025 doubled down on a clear vision: Figma files as the source of truth for code generation (Figma Make, Figma Sites, Dev Mode MCP). The promise is that designs become functional apps — that the structured data inside a Figma file is rich enough for AI agents and code generators to produce reliable output.
On the input side, the component model still cannot encapsulate behavior. A property like `isExpanded` is declared on a component, but the interaction that flips it has to live on the instance, through a global variable. Property and behavior are decoupled by design.
For an AI agent reading the file (whether through MCP, Make, or any other path), the consequence is the same:
- It sees a static component with a property
- It sees a
set variableinteraction somewhere else in the file - It has to infer that those two things together form an accordion / toggle / selectable card
That inference is exactly the kind of ambiguity that produces unreliable AI output. The pipeline isn't broken — the agents and the MCP are doing what they can with what's exposed to them. The issue is upstream: the underlying model doesn't carry the semantic link between property and behavior, so no downstream tool can compensate for the missing source data. The strategy is bottlenecked by the foundations.
A paradigm gap, not just a missing feature
Most modern UI ecosystems have treated encapsulated component state as a baseline for years — Angular's two-way binding, React's controlled components with internal state, Vue's reactive props. The expectation that a component owns and manages its own state is so universal in code-land that it barely needs articulating. Figma's component model is the outlier, and that gap shows up the moment the file is consumed by anything that expects a real component contract — including Figma's own AI tools.
Practical pain points (the original ask, still valid)
- Variant explosion: I have to duplicate variants just to toggle one icon on click, even though a Boolean property already models that exact thing
- Variables don't scale: tying a property to a global variable means *all* instances on the page change together. Per-instance variables defeat the point of reusable components.
- Behavior doesn't travel with the component: copy a component to another file and the variable wiring is lost. Variants don't have this problem because their interactions live inside the component.
- Maintenance cost: an interaction set up across 1000 instances has to be edited 1000 times if the behavior changes
Long-standing community demand
This has been asked since 2022. All previous threads are closed:
- https://forum.figma.com/t/prototype-change-boolean-property-in-interactions/89754 (Oct 2024)
- https://forum.figma.com/ask-the-community-7/change-component-boolean-property-value-on-a-prototype-30970 (Jan 2024)
- https://forum.figma.com/t/add-ability-to-toggle-boolean-property-in-prototyping/43704 (May 2023)
- https://forum.figma.com/t/ability-to-trigger-component-properties-with-a-prototype-interaction-prototype-interactive-components/31850 (Oct 2022)
- https://forum.figma.com/t/ability-to-change-boolean-properties-while-hovering-prototype-interactive-components/24470 (June 2022)
- https://forum.figma.com/t/prototype-change-to-boolean-feature-interactive-prototype/23450 (June 2022)
Would love to hear from the team whether this is on the radar, especially in the context of the Config 2025 vision.
