CONCEPT Cited by 1 source
Parameter system¶
A parameter system defines values that can be set once and applied across many consumers. Change the value in one place → all consumers update. The consumers are usually properties on objects in a document; the parameter is a named typed value the properties read from instead of storing directly.
Figma's 2026 unification retrospective (Source: sources/2026-04-21-figma-parameter-architecture-unification) names the shape explicitly and identifies two axes that distinguish instances:
Two axes¶
1. Source-of-truth location (scope)¶
-
Scoped parametrization — parameters defined on a specific object (e.g. a component) and restricted to consumers inside that object. Figma's component properties (2022) sit here: each property lives on a component or instance layer and can bind only to layer properties inside that component set. The scope acts as a customization contract — downstream users of the component can customize only what the author exposed.
-
Global parametrization — parameters defined at a library or document level and available to any consumer with access to the library. Figma's variables (2023) sit here: a color variable in a design system library binds to any layer in any file that has access to the library.
These are not different data models — they're different residence rules for the same underlying primitive.
2. Parameter value-type space¶
The set of types a parameter can take (boolean, string,
number, color, …). In Figma's pre-unification world,
component-property types and variable types were parallel
definitions — ComponentPropType.BOOLEAN vs
VariableType.BOOLEAN as distinct types. This is the accidental-
complexity trap: adding a new type requires implementing it twice,
and cross-system bindings are impossible because the types don't
match.
A unified typespace — a single source of truth for boolean,
number, color, … that every parameter system references — is
the pre-condition for (a) cross-system bindings (bind a component
property to a variable) and (b) low marginal cost for adding a
third parameter system later.
Four runtime stages¶
Every parameter system, regardless of axis choices, runs a four-stage pipeline per change:
- Parameter usage tracking — maintain a reverse index
parameter → {bound layer properties}at property granularity. - Invalidation — on any of {parameter value changed, binding changed, mode switched}, gather the affected properties.
- Resolution — recompute each affected property's value, which may involve a multi-hop walk (concepts/transitive-parameter-resolution) including across parameter-system boundaries.
- Updates — re-render layers with the new resolved values.
Before Figma's unification, each system implemented all four stages separately; after, all systems share one pipeline and any new system inherits it.
Compared to sibling primitives¶
- Styles (Figma, 2018) are parametrized bundles of values (e.g. a text style = font-family + size + weight applied together). Styles pre-dated variables and lacked granular parametrization — you couldn't parametrize the font size independently. The parameter-system abstraction subsumes them: variables give granular control, styles give bundled application.
- Reactive frameworks (React state, MobX observables, Svelte stores) have the same set-once-apply-across shape at the application-framework level. Parameter systems are the document-model analogue — the reactive graph is part of the persisted document schema, not just the UI layer.
Seen in¶
- sources/2026-04-21-figma-parameter-architecture-unification — introduces the term, identifies component properties + variables as two instances, prospective Figma Sites CMS as a third, and the data-model + runtime unification that lets one substrate host all three.
Related¶
- concepts/parameter-binding — the layer-property ↔ parameter edge model and the "at most one parameter per bound property" invariant.
- concepts/transitive-parameter-resolution — multi-hop resolution across aliases and parameter-system boundaries.
- patterns/unified-typespace-consolidation — the design pattern of collapsing parallel type definitions into one.
- concepts/object-tree-document-model — the substrate model on top of which parameter systems bind.
- systems/figma-parameter-runtime — the production realization of the four-stage pipeline.