Version 1, Update 47
New:
- New
themeColorsoption infigma.showUI()to allow plugin UIs to support light and dark themes
New:
themeColors option in figma.showUI() to allow plugin UIs to support light and dark themesNew:
setWidgetSyncedState on widget nodesfindWidgetNodesByWidgetId to find all widget nodes by a specified node.widgetIdNew:
CIRCLE_FILLED option to the ConnectorStrokeCap type.New:
.stuckNodes and .stuckTo properties to read the nodes that are stuck on the reference node as well as the node current stuck to.
.stuckNodes is available on all SceneNode.stuckTo is only available on “stickable” nodes (eg. StampNode, WidgetNode, HighlightNode)HighlightNode and WashiTapeNode.New:
VectorRegions inside a VectorNetwork now have new fills and fillStyleId properties to let you get and set unique fills for each region in a vector network.New:
node.getStyledTextSegments for text nodes to make it much faster and easier to get text properties which may have mixed values, along with which characters these values apply to. Compared to retrieving text properties character-by-character, this new function can be 10x to 500x faster.figma.on are now officially supported (was previously a proposed API). This new API allows you to register a callback for drop events, which will trigger when objects outside Figma (such as elements from other browser windows, or files from the local filesystem) are dropped onto the canvas.prototypeBackgrounds property to PageNode for configuring the background color of the prototype.figma.getFileThumbnailNode() and figma.setFileThumbnailNodeAsync(node) to get and set the thumbnail node for the current file.figma.base64Encode and figma.base64Decode to convert between base64-encoded strings and Uint8ArraysNew:
figma.skipInvisibleInstanceChildren to make all node properties and methods skip over invisible nodes (and their descendants) inside instances. This can make operations like document traversal much faster.node.findAllWithCriteria for much faster document traversal when searching by node types. The return value is narrowly typed to match the provided types, which makes it much easier to use node-type-specific properties. For example, node.findAllWithCriteria({ types: ['TEXT'] }) will return TextNode[] instead of the more generic SceneNode[] from findAll.node.getPluginDataKeys() Allows enumeration of plugin-data stored on a nodenode.getSharedPluginDataKeys(namespace) Allows enumeration of shared plugin-data stored on a node in a given namespaceclientStorage API
deleteAsync allows deleting stored datakeysAsync allows enumerating all stored datanode.getRelaunchData allows reading what relaunch data was stored using node.setRelaunchDataNew:
WidgetNode.cloneWidget to support overriding synced maps.WidgetNode.widgetId to provide a way to tell if a widget node belongs to your widget.figma.pluginId and figma.widgetId for Plugins and Widgets respectively to get the value of the manifest.json "id" field at runtime. This is useful when paired with various WidgetNode apis as well as working with non-null origin iframes.figma.showUI to allow iframes to be positioned within the canvas at a specified x/y coordinate. If the position specified is outside of the user's viewport, the iframe will be moved so that it remains in the user's viewport.createLinkPreviewAsync which allows Plugin authors to create a link preview from the provided URL.EmbedNode and LinkUnfurlNode which represent link previewsfigma.on as a proposed API. Drop events will trigger when objects outside Figma (such as elements from other browser windows, or files from the local filesystem) are dropped onto the canvas.NOTE: These APIs is only available in FigJam
New:
getPluginData, setPluginData and other pluginData related methods on WidgetNodeexportSettings and exportAsync on WidgetNodeCodeBlockNode type. Create a code block with figma.createCodeBlockNew:
absoluteRenderBounds property for nodes to calculate the actual bounds of a node accounting for drop shadows, thick strokes, and anything else that may fall outside the node's regular bounding box defined in x, y, width, and height.fillGeometry and strokeGeometry properties for nodes with shapes (VectorNode, PolygonNode, etc...) to expose paths for object fills and strokes.Bug Fixes: