Skip to main content

Figma and FigJam plugins

The Plugin API allows you to access the contents of both FigJam and Figma design files. In the Plugin API, Figma design files and FigJam files are treated as separate editorTypes.

While a number of functions, nodes, and properties are shared between the two editor types, the kind of actions you’d perform — and the plugins required — are quite different. Our Compare Figma and FigJam article explores the context and use cases for each file type.

Cropped Figma file and cropped FigJam file next to each other

Every plugin must have at least one editorType set in the manifest. You can create plugins for both editors or a specific editor type. You can even build conditional plugins that perform different actions in each editor. Setting plugin editor type →

Unsupported functions

Some functions are only supported on specific editorTypes. These nodes and functions won’t be available via the Plugin API as soon as the plugin is run in that editorType.

We recommend familiarizing yourself with these functions. Even if you intend on building a conditional plugin that supports actions in both Figma and FigJam files.

FigJam only plugins

If you set the editorType to FigJam files only, you won’t be able to access the following functions or methods:

Pages

FigJam files don’t support the ability to create multiple pages. You can still access the currentPage in a FigJam file, but you won’t be able to create additional pages. This includes the createPage() function.

Components

FigJam files have their own purpose-built stickers, which you can access in FigJam files along with any components from your enabled libraries. You can also paste entire designs from Figma design files into FigJam files. You’ll be able to access any local styles or instances in that file.

It’s not possible to create new components in FigJam file, or combine existing components as variants. You won’t be able to use the following functions:

  • createComponent()
  • combineAsVariants()

Styles

When accessing FigJam files via the Plugin API, you can only access styles applied to existing nodes. You won’t be able to create or manage local styles using the following functions:

  • createPaintStyle()
  • createTextStyle()
  • createEffectStyle()
  • createGridStyle()
  • moveLocalPaintStyleAfter()
  • moveLocalTextStyleAfter()
  • moveLocalEffectStyleAfter()
  • moveLocalGridStyleAfter()
  • moveLocalPaintFolderAfter()
  • moveLocalTextFolderAfter()
  • moveLocalGridFolderAfter()

Figma only plugins

FigJam specific nodes

FigJam files have a few specific types of node which are unique to that file type. This is the StickyNode, ShapeWithTextNode, ConnectorNode, MediaNode, and TableNode node types.

It’s not possible to create these nodes in a Figma file, but you can read and modify any existing nodes of these types, even in Figma files.

If you set the editorType to Figma files only, you won’t be able to access the following functions relating to those nodes:

  • figma.createSticky()
  • figma.createShapeWithText()
  • figma.createConnector()
  • figma.createCodeBlock()
  • figma.createGif()
  • figma.createTable(numRows, numColumns)

FigJam Timer

FigJam files support a Timer, which allows file participants to set a time limit for their activities and watch it count down. The timer is visible to everyone with at least view access to the FigJam file.

The timer is specific to FigJam files. You won’t be able to access the figma.timer function when the editorType is set to Figma only. This includes any events and properties related to that function.

Nodes

Some nodes and functions are only supported in one editorType. In the table below, you can explore each node type and what actions are supported in each editorType.

  • Create: You can use the Plugin API to create new nodes of this type.
  • Modify: You can get information about existing nodes of this type and can modify any of the existing properties and values.
  • Read only: You can get information about any existing nodes of this type, but you can’t make any changes to the node.
  • Not supported: You can’t access this node via the Plugin API.
NodeFigmaFigJam
DocumentNodeModifyRead only
BooleanOperationNodeCreate, ModifyModify
ComponentNodeCreate, ModifyCreate (instances)
ComponentSetNodeCreate, ModifyRead only
EllipseNodeCreate, ModifyCreate, Modify
FrameNodeCreate, ModifyCreate, Modify
GroupNodeCreate, ModifyCreate, Modify
InstanceNodeCreate, ModifyModify
LineNodeCreate, ModifyCreate, Modify
PageNodeCreate, ModifyRead only
PolygonNodeCreate, ModifyCreate, Modify
RectangleNodeCreate, ModifyCreate, Modify
SliceNodeCreate, ModifyCreate, Modify
StarNodeCreate, ModifyCreate, Modify
TextNodeCreate, ModifyCreate, Modify
VectorNodeCreate, ModifyCreate, Modify
ConnectorNodeModifyCreate, Modify
ShapeWithTextNodeModifyCreate, Modify
StampNodeModifyModify
StickyNodeModifyCreate, Modify
CodeBlockNodeNot supportedCreate, Modify
WidgetNodeNot supportedModify
EmbedNodeNot supportedModify
LinkUnfurlNodeNot supportedModify
MediaNodeNot supportedModify
SectionNodeNot supportedCreate, Modify
🆕 TableNodeNot supportedCreate, Modify