Skip to main content

Version 1, Update 104

New:

We’ve made updates to our Plugin and REST APIs so you can build more powerful plugins that increase efficiency and create more dynamic user experiences.

  • Annotations and measurements: Create and edit annotations and measurements from Dev Mode through the Plugin API. Generate bulk annotations, format annotations according to a style or template, add context or links from other tools to annotations, and more. Learn more about annotations and measurements.

  • Rich text formatting for component description: Build plugins that can read and edit the full rich-text version of the component description, giving users the same level of detail as Figma's UI. Learn more

  • Advanced prototyping interactions: Access all prototyping reactions through the Plugin and REST APIs to bring Figma prototypes to life in other interaction tools. Learn more

Version 1, Update 103

New:

The Plugin API now contains support for page dividers:

  • Create a page divider node appended to the document node's list of children using createPageDivider.
  • Change the name of an empty PageNode to a page divider name to turn the node into a page divider.
  • Read a page node's isPageDivider property to determine whether the node is a page divider.

Version 1.100.2

Bugfixes

  • The boundVariables property of the ColorStop interface was erroneously annotated as non-nullable. A nullable annotation (?) has been added.

Version 1.100.1

This change introduces plugin-api-standalone.d.ts, an experimental feature which allows for importing types explicitly.

Version 1, Update 100

Bug fixes

  • Mouse Enter and Mouse Leave prototype events will now be created using the current functionality instead of the legacy functionality. Legacy Mouse Enter/Leave events would trigger every time the mouse moves inside (or outside) of a frame; current Mouse Enter/Leave events only trigger once when they cross the outer boundary of the frame. No migration needed for creating these events, the new behavior will always apply. Reading legacy events will return deprecatedVersion: true if present.

New

  • Added the openInNewTab property to the URL action type.

Version 1, Update 99

This version contains a partial revert of update 1.98.

In 1.98, we removed the nullable ? modifier from the TypeScript type annotations for boundVariables. boundVariables is indeed non-nullable when reading objects from the Plugin API, but several of the affected types, such as Paint and Effect, are used for writing. In the write path, boundVariables is optional. Removing the nullable modifier caused typechecker errors in otherwise valid code. The nullable modifier has been added back in 1.99. Apologies to everyone who encountered difficulties, and apologies to anyone affected by the additional churn from this update!

Note that this version only affects TypeScript type definitions. No runtime behavior is affected. We intend to release a typings update in the future that makes boundVariables non-nullable in specific situations, but the second attempt will more carefully address the write path.

Version 1, Update 98

Note: The boundVariables bugfix in this version caused another typechecker bug. We strongly recommend skipping v1.98.

Updates

Bugfixes

  • The boundVariables property that appears on many node types has been updated so it is no longer nullable; the ? annnotation was removed. If no bound variables are defined on a node, boundVariables will evaluate to an empty object.