Skip to main content

Version 1, Update 131

Video export​

exportAsync can now export a top-level frame with animated content as video. Pass one of the new export settings types to receive a Uint8Array of the encoded file. Video export is only available when running in Figma.

New types​

  • ExportSettingsMP4: Export an animated top-level frame as an MP4. Supports fps, a quality preset, and a size constraint.
  • ExportSettingsGIF: Export an animated top-level frame as a GIF. Supports fps, loopCount, and a size constraint.
  • ExportSettingsWEBM: Export an animated top-level frame as a WebM. Supports fps, a quality preset, and a size constraint.

Updated methods​

  • exportAsync(): Added an overload accepting ExportSettingsMP4 | ExportSettingsGIF | ExportSettingsWEBM.

Version 1, Update 130

Motion support in the Plugin API​

You can now use the Plugin API to read and update Motion animation data, including animation styles, timelines, animations, and manual keyframe tracks.

New methods​

New properties​

  • animationStyles: Read the Motion animation styles currently applied to a node.
  • animations: Read all Motion animation keyframes on a node, including keyframes created by animation styles and manual keyframe tracks.
  • manualKeyframeTracks: Read the manual Motion keyframe tracks bound to a node.
  • timelines: Read the Motion timelines that contain a node.

Shaders in the Plugin API​

You can now use the Plugin API to discover, import, and apply shaders.

New methods​

  • figma.listAvailableShaders(): List every shader available to the current file — shaders already in the file, shaders from subscribed libraries, and the user's owned shaders.
  • figma.importShaderById(): Materialize a shader into the current file so it can be applied.

New types​

Updates for 2026-06-10

Slots GA​

Slots were supported within the Plugin API throughout the public beta. With our GA launch of slots, we've introduced new capabilities alongside stability improvements in both Figma Design and the Plugin API.

New node type​

  • SlotNode: Represents a slot within a component or instance. A slot is a child frame of a component that has freeform content editing.

New types​

  • SlotSettings: Slot-specific configuration for 'SLOT'-typed component properties. Fields include stretchChildOnInsert, displayEmptyByDefault, minChildren, maxChildren, and allowPreferredValuesOnly.

New methods​

New read properties​

  • slotNode.limitViolations: Given slotSettings are configured on the slot definition, returns any limits that the current slot instance is in violation of. Possible kinds are 'BELOW_MIN', 'ABOVE_MAX', and 'HAS_NON_PREFERRED'. Returns an empty array when within limits.

Updated types​

Updated methods​

Version 1, Update 127

New features:

  • Grid layouts now support automatic row creation, automatic item positioning, and track reordering:
    • gridAutoTracks: controls whether empty rows are removed automatically. Perfect for pairing with gridItemsPositioning below.
    • gridItemsPositioning: controls whether children automatically flow into the next available cell in row-major order, similar to CSS grid-auto-flow: row.
    • reorderRows and reorderColumns: move one or more rows or columns to a new position in the grid, returning the full set of track movements.
  • The NoiseEffect and TextureEffect types now expose noiseSizeVector, allowing the noise size to be set independently along the x and y axes. The existing scalar noiseSize continues to work and now mirrors noiseSizeVector.x.
  • The SectionNode now expose strokes and cornerRadius, allowing plugins to modify those values on Sections.

Version 1, Update 124

Dev Mode: focused node in Plugin API​

Plugins running in Figma Dev Mode can now read the node currently focused in the Dev Mode focus view. The existing figma.currentPage.focusedNode property (already used in Figma Slides and Figma Buzz for the focused slide or asset) now returns that node in Dev Mode as well. See Working in Dev Mode for more on building plugins for Dev Mode.

Version 1, Update 123

Expanded support for Figma Draw features​

You can now use the Plugin API to view and manipulate Figma Draw features, including:

  • Creating and editing text on a path nodes
  • Viewing and adding transforms in transform groups
  • Viewing and adding stretch brush, scatter brush, and dynamic strokes
  • Modifying stroke width profiles to create custom variable width strokes or using preset stroke width profiles

We've also updated the documentation around setting pattern fills and strokes.

New types​

New methods​

New properties​

Version 1, Update 121

Extended variable collections (Enterprise only)​

Extended variable collections enable theming for variables. When you extend a collection, the extension inherits all modes and variables from its parent collection. You can then override variable values in the extended collection to create theme-specific variations while maintaining a single source of truth.

New type​

New methods​

New properties​

  • extendedVariableCollection.variableOverrides: A map of all overridden variable values in the extended collection
  • mode.parentModeId: For modes in extended collections, references the corresponding mode in the parent collection

Updated behavior​

For examples and more details, see Working with Variables.

Version 1, Update 120

New layout options for grid​

  • Frames with layoutMode 'GRID' now support 'HUG' for layoutSizingHorizontal and layoutSizingVertical.
  • Frames with layoutMode 'GRID' also support 'HUG' as a GridTrackSize type in the row and column sizes
  • Frames with layoutMode 'GRID' now support values other than 1 for 'FLEX' sized tracks in gridRowsSizes and gridColumnsSizes. This corresponds to the fr unit in CSS Grid
  • Note: in Figma Design, when creating a new grid, the container and all rows and columns are automatically set to HUG, but in the Plugin API, new grids are FIXED and their tracks are FLEX.
  • Breaking change: previously, calling the GridTrackSize setters with a value would set the track to 'FIXED' if it was previously set as 'FLEX'. Now, the type will only be automatically set to 'FIXED' if the track was previously set to 'HUG'

Instance method deprecation​

  • The resetOverrides method on InstanceNode is deprecated in favor of removeOverrides. This is a change in method name only.