Skip to main content

Version 1, Update 140

Create and apply custom animation styles​

The Plugin API now supports creating, editing, and applying reusable custom Motion animation styles.

New type​

New methods and properties​

Updated Motion APIs​

  • animationStyles: Now returns Figma-provided and custom animation styles, discriminated by "FIGMA" or "CUSTOM".
  • applyAnimationStyle(): Now accepts a custom animation style ID with { type: "CUSTOM" }.

Vertical auto-layout wrapping​

layoutWrap can now be set to "WRAP" on vertical auto-layout frames (layoutMode === "VERTICAL"), in addition to horizontal auto-layout frames.

Version 1, Update 139

Author composed color variables​

A composed color preserves the relationship between a color and a separately authored opacity value or variable instead of using a flat RGBA value. Plugins can now read and create composed color variables using VariableComposedColor. The new COLOR_OPACITY variable scope limits float variables to only show in color opacity pickers.

See Authoring a composed color variable for a complete example.

Version 1, Update 138

Variable fonts​

The Plugin API now supports variable fonts. Reading FontName on a variable font includes variationSettings with every OpenType axis the family defines. Pass those values when setting a font to override specific axes; omitted axes keep the named instance's defaults.

You can omit style when loading or applying a font. loadFontAsync({ family }) loads every style of the family. Setting a font without style lets Figma pick the named instance that best matches variationSettings.

New types​

  • FontVariationSettings: Axis values keyed by 4-character OpenType tag, for example { wght: 550, slnt: -10 }.
  • FontNameInput: A font to apply where style is optional. Reads always return a fully populated FontName.

New methods​

Updated types​

  • FontName: Added optional variationSettings. Present when reading a variable font; omitted for static fonts.

Updated properties and methods​

Version 1, Update 137

New primary axis alignment values​

primaryAxisAlignItems now supports 'SPACE_EVENLY' and 'SPACE_AROUND' alignment. 'SPACE_EVENLY' distributes children with equal gaps before the first child, in between each pair of children, and after the last child. 'SPACE_AROUND' distributes children with equal gaps between each pair of children, and half that gap before the first and after the last child.

Updated types​

Version 1, Update 136

Typings correction for getCSSAsync​

Restored BaseNodeMixin.getCSSAsync to the public Plugin API type definitions. The method remained available at runtime; it had been unintentionally omitted from the generated typings.

Version 1, Update 135

Typings maintenance​

This release includes type definition maintenance with no changes to the public Plugin API or runtime behavior.

Version 1, Update 134

textWrapStyle​

textWrapStyle is a new paragraph-level property on TextNode that controls how text wraps within each paragraph. Pair it with getRangeTextWrapStyle and setRangeTextWrapStyle to get and set the value on character ranges, and read or write it via TextStyle to apply it across a saved text style.

New types​

  • TextWrapStyle: 'AUTO' (default), 'BALANCE' (equalized line lengths), or 'PRETTY' (fewer orphaned words).

New properties and methods​

Version 1, Update 132

Read the Motion timeline playhead position​

The new figma.motion.playheadPosition property returns the current playhead position of the active Motion timeline in seconds. It returns undefined when there is no active Motion timeline in the editor.

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.