Skip to content

Known limitations

Product2026-07-27

Everything that does not work, or does not work the way you would expect. Each entry says what to do instead.


Data loss risks

Read these three before you do anything irreversible.

There is no undo

The undo and redo buttons in the header are not wired up. Token operations cannot be reversed.

Do instead: export a JSON backup before any bulk operation.

Three operations replace, not merge

OperationEffect
JSON editor → save jsonReplaces the entire token document
Sync → pullReplaces local tokens with the remote
Deleting a token setDeletes every token in it

Only the import dialog merges.

Deleting a token breaks its references silently

Nothing checks whether other tokens reference the one you are deleting. They become broken references, discoverable only by spotting the red text on their tiles.

Do instead: search for the token name before deleting it.


Not reachable in the UI

Built, but with no way to open them:

FeatureConsequence
Variables panelNo tokens → Figma Variables workflow at all
Sync panelPull and push buttons, provider removal, and “Reset plugin” are all unreachable. Adding a provider works from Settings
Undo / redo buttonsNon-functional
Footer Themes icon buttonNon-functional. Use the Themes tab or the theme selector
Footer sync scope optionsCurrent page, Document, Variables & styles, Resolved values are disabled. Only Current selection works
Settings → docs and feedback iconsDisabled

Sync

LimitationDetail
GitLab and HTTP endpoints are blockedTheir domains are not in the plugin’s network allowlist, so Figma refuses the requests. GitHub works
No merge, no conflict detectionPush overwrites the remote; pull replaces local. Concurrent editing loses work
Set metadata is not restored on pullFolder structure is reconstructed from paths, but explicitly created empty sets are lost
Access tokens stored unencryptedPlain JSON in Figma client storage
No provider editing or removalThe Settings list is add-only
No push-format switchDirectory push always uses the flat format

Do instead: one person pushes per document; push to a working branch; pull at the start of a session, push at the end.


Applying to Figma

LimitationDetail
Silent no-opsA target that does not exist on the layer type — corner radius on a line, padding without auto layout — is skipped with no error. A success message is not proof every layer changed
Fills and strokes are replacedApplying a colour to a layer with stacked paints leaves one paint
Shadows are replacedAll existing drop and inner shadows are removed. Other effects (blur, noise, texture) survive
Only two gradient stopsStops 0 and 1 are addressable; a three-stop gradient cannot be fully token-driven
Effect targets need an existing effectRecolouring or offsetting a shadow fails if the layer has none
Sync to selection with nothing selected hits the whole pageIntentional, but wide
Relaunch buttons cap at 50 layersLarger selections get them on the first 50

Token types

TypeLimitation
GradientSelectable in the dropdown but entirely unimplemented — no input field, displays [Invalid], cannot be applied
Font familyAn array (fallback stack) cannot be applied — it is joined into one invalid font name. Use a single string, or a typography token
Font weightThe value is used verbatim as a Figma style name, so 600 and semi-bold both fail to resolve. Use a typography token
BorderThe width slot ignores rem → px conversion. 0.5rem sets a stroke weight of 0.5. Use px
Stroke styleObject form (dashArray) is import-only. double, groove, ridge, inset, outset fall back to solid. Dash array entries ignore rem
Duration, Cubic Bézier, TransitionCannot be applied — Figma has no matching layer property. Export works
Text, file, otherImport-only, unvalidated, not usable as reference targets, not recognised by downstream DTCG tooling

Figma Variables

Beyond the panel being unreachable: the type mapping covers only color, dimension, and number, and both converters read string values while DAES stores DTCG objects. Composite types have no Figma variable equivalent.

See Figma Variables.


Platform constraints

These are Figma limits, not plugin bugs:

Figma Design files onlyNot FigJam, not Slides
Plugin window400×300 to 1200×900
Canvas coloursRGB — wide-gamut tokens are gamut-mapped for display
rem baseFixed at 16, not configurable
Document storageChunked at 90,000 characters per key; Figma’s plugin-data quota applies

Reporting something not on this list

Include: the token type, its exact $value (from the JSON editor), the layer type you applied to, the target you chose, and the message you got.