# Figma

Smart Importer can import Figma data. This page explains how to to import Figma data with Smart Importer and how to work with the results.

<p class="callout warning">Please note that you cannot import Figma data for which you do not have editing privileges.</p>

---

### Preparations for Importing Figma Data  


#### Software Environment  


The following software is needed in order to perform Figma data imports with Smart Importer:

 [Node.js](https://nodejs.org/en) (Supported versions: Only 18.x.x and 19.x.x)

#### Preparing the URL/Access Token  


In order to perform Figma data imports with Smart Importer, a URL and Access Token that corresponds with the Figma Data needs to be acquired in advance.

The URL and Access Token can be acquired using the Figma desktop application as below.

<p class="callout info">Please ensure you have access to the Figma REST API (https://api.figma.com). In case of connectivity issue, please contact your IT as it might be blocked by a firewall.  
</p>

##### Acquiring the URL

At the topmost bar in the Figma desktop application, right-click the relevant project tab and from the context menu select<span style="color: rgb(224, 62, 45);"> <span style="color: rgb(0, 0, 0);">\[Copy Link\]</span></span>.

<div drawio-diagram="8004"><img src="https://doc316en.candera.eu/uploads/images/drawio/2025-02/drawing-7-1740621465.png" alt=""/></div>

##### Acquiring the Access Token

1. In the Figma desktop app, select \[ Figma Icon &gt; Help and Account &gt; Account Settings \] to open the dialog.  
    <div drawio-diagram="8005"><img src="https://doc316en.candera.eu/uploads/images/drawio/2025-02/drawing-7-1740621587.png" alt=""/></div>
2. In the Security tab of the dialog, click \[ Generate new token \] under Personal access tokens.  
    <div drawio-diagram="8006"><img src="https://doc316en.candera.eu/uploads/images/drawio/2025-02/drawing-7-1740621955.png" alt=""/></div>
3. In the "Generate new token" dialog, set the Token name, Expiration, and Scopes, and then click \[ Generate token \].  
    <div drawio-diagram="8907"><img src="https://doc316en.candera.eu/uploads/images/drawio/2026-01/drawing-7-1768380041.png" alt=""/></div>
4. The created access token will be displayed under Personal access tokens on the Security tab of the dialog.  
    <div drawio-diagram="8008"><img src="https://doc316en.candera.eu/uploads/images/drawio/2025-02/drawing-7-1740622348.png" alt=""/></div>

<p class="callout info">The instructions on how to obtain the URL and access token are for Figma Desktop App version 125.10.8.</p>

---

### How to Import Figma Data

1\. From the Scene Composer toolbar select \[Import\] &gt; \[Smart Importer\] &gt; \[From Cloud Resource...\], and a new dialog panel titled \[Import from cloud resource\] will be displayed.

<div drawio-diagram="7111"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-10/drawing-7-1729497030.png" alt=""/></div>

2\. Enter the URL and Access Token in the respective fields and click \[OK\]. Please refer to「<span style="color: rgb(0, 0, 0);">Preparing the URL/Access Token」</span> for acquiring the URL and Access Token.

<div drawio-diagram="7110"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-10/drawing-7-1729496909.png" alt=""/></div>

3\. The Smart Importer dialog panel will open. Operating Smart Importer here is no different to when importing other filetypes. For details, please see <span style="color: rgb(0, 0, 0);">「3. Scene Composer &gt; Import of Resources &gt; Smart Importer &gt; How to Use the Smart Importer」</span>. After making the necessary setting adjustments and clicking \[OK\], the data will be imported into the folder designated <span style="color: rgb(0, 0, 0);">in \[Import to folder: \].</span>

<div drawio-diagram="7112"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-10/drawing-7-1729497265.png" alt=""/></div>

<p class="callout info">If the URL or Access Token entered in the "Import from cloud resource" dialog is incorrect (or inappropriate), the import will be interrupted, and the following error dialog will appear.</p>

<div drawio-diagram="8826"><img src="https://doc316en.candera.eu/uploads/images/drawio/2025-12/drawing-7-1764920266.png" alt=""/></div>

<p class="callout info">API access limits vary depending on your subscription plan. Therefore, if that limit is exceeded, the import will be interrupted and the following error dialog will be displayed. Please check Figma’s official website for details on each plan.</p>

<div drawio-diagram="8827"><img src="https://doc316en.candera.eu/uploads/images/drawio/2025-12/drawing-7-1764920285.png" alt=""/></div>

---

### Importing Figma Data - Advanced  


#### Importing as a scene

The topmost item of each page included in the Figma data will be imported into Smart Importer as a scene. For this, use the following naming convention: <span style="color: rgb(0, 0, 0);">&lt;Page name&gt;\_&lt;Parent item name&gt;</span>

<div drawio-diagram="7113"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-10/drawing-7-1729498578.png" alt=""/></div>

#### Relationship between Figma items and Scene Composer Nodes   


When importing Figma items with Smart Importer, each item will be imported as a specific type of node, as seen in the table below.

<table border="1" id="bkmrk-scene-composer%E3%81%AE%E3%83%8E%E3%83%BC%E3%83%89%E3%82%BF%E3%82%A4" style="border-collapse: collapse; width: 100%; height: 327.766px; border-width: 1px;"><colgroup><col style="width: 23.3622%;"></col><col style="width: 25.8344%;"></col><col style="width: 17.1817%;"></col><col style="width: 16.6891%;"></col><col style="width: 16.809%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td colspan="2" rowspan="2" style="height: 59.5938px; border-width: 1px;">  
</td><td class="align-center" colspan="3" style="height: 29.7969px; border-width: 1px;">Scene Composer node type  
</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px; border-width: 1px;">Group</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">Bitmap</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">Text</td></tr><tr style="height: 29.7969px;"><td rowspan="14" style="height: 268.172px; border-width: 1px;">Figma item type  
</td><td style="height: 29.7969px; border-width: 1px;">Component</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">✓</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">  
</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">  
</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px; border-width: 1px;">ComponentSet</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">✓</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">  
</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">  
</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px; border-width: 1px;">Ellipse</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">  
</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">✓</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">  
</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px; border-width: 1px;">Frame</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">✓</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">  
</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">  
</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px; border-width: 1px;">Group</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">✓</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">  
</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">  
</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px; border-width: 1px;">Instance</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">✓</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">  
</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">  
</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px; border-width: 1px;">Line</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">  
</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">✓</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">  
</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px; border-width: 1px;">Polygon</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">  
</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">✓</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">  
</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px; border-width: 1px;">Rectangle</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">  
</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">✓</td><td class="align-center" style="height: 29.7969px; border-width: 1px;">  
</td></tr><tr><td style="border-width: 1px;">Section</td><td class="align-center" style="border-width: 1px;">✓</td><td class="align-center" style="border-width: 1px;">  
</td><td class="align-center" style="border-width: 1px;">  
</td></tr><tr><td style="border-width: 1px;">Slice</td><td class="align-center" style="border-width: 1px;">  
</td><td class="align-center" style="border-width: 1px;">✓</td><td class="align-center" style="border-width: 1px;">  
</td></tr><tr><td style="border-width: 1px;">Star</td><td class="align-center" style="border-width: 1px;">  
</td><td class="align-center" style="border-width: 1px;">✓</td><td class="align-center" style="border-width: 1px;">  
</td></tr><tr><td style="border-width: 1px;">Text</td><td class="align-center" style="border-width: 1px;">  
</td><td class="align-center" style="border-width: 1px;">  
</td><td class="align-center" style="border-width: 1px;">✓</td></tr><tr><td style="border-width: 1px;">Vector</td><td class="align-center" style="border-width: 1px;">  
</td><td class="align-center" style="border-width: 1px;">✓</td><td class="align-center" style="border-width: 1px;">  
</td></tr></tbody></table>

<p class="callout info">Bitmaps and texts can only be imported when their render data is made available. For example, should a Figma item be set to "hidden", it cannot be imported.   
</p>

#### Importing as Controls or Bitmaps

It is possible with Smart Importer to import as a control or bitmap any Figma items that can hold the following child items:

- Component
- ComponentSet
- Frame
- Group
- Instance
- Section

##### Importing as a control

An item can be imported as a control when it is named <span style="color: rgb(0, 0, 0);">\[SC\_&lt;control name&gt;\]</span>. Furthermore, property values can also be set when using the names of control properties for the names of child items.

<div drawio-diagram="7115"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-10/drawing-7-1729499805.png" alt=""/></div>

<p class="callout info">This functionality is only supported with *Touchable* and *Common* controls.  
</p>

##### Importing as bitmaps

Smart Importer can import group items with child items as bitmaps when the the group item name is prefixed with <span style="color: rgb(0, 0, 0);">\[SC\_Bmp\].</span>

<div drawio-diagram="7116"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-10/drawing-7-1729501904.png" alt=""/></div>

---

#### Import as state machine  


Flows (transitions) in Figma are imported as state machines.

- After import, the flow name will be prefixed with <span style="color: rgb(0, 0, 0);">\[StateMachine&lt;flow name&gt;\]</span>.
- After import, names of states will be the same as the Figma items that were imported as scenes.

<div drawio-diagram="7120"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-10/drawing-7-1729502771.png" alt=""/></div>

<div drawio-diagram="7119"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-10/drawing-7-1729502742.png" alt=""/></div>

- Transitions will begin from the state that is set to be the Flow Starting Point.

<div drawio-diagram="7126"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-10/drawing-7-1729575408.png" alt=""/></div>

<div drawio-diagram="7122"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-10/drawing-7-1729502982.png" alt=""/></div>

- Multiple Flows can be imported as multiple state machines.

<div drawio-diagram="7125"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-10/drawing-7-1729503521.png" alt=""/></div>

<div drawio-diagram="7124"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-10/drawing-7-1729503495.png" alt=""/></div>

<p class="callout info">Should a transition in one Flow be included in a separate Flow (ie. when a transition is duplicated), the separate Flow will not be imported.   
</p>

<p class="callout info">Although in Figma the type of interaction that triggers a transition can be selected (click, drag, mouse hover, etc.), Scene Composer will upon import set these transition triggers in the following way: Event = "Clicked", Condition = "Check Click".  
</p>

---

#### Importing a Layout

##### Auto layout

If a Figma Frame has an "Auto layout" set, it will be imported as a "Stack Layout" in Scene Composer, and each setting value of the Auto layout will be inherited as a Stack Layout property.

<div drawio-diagram="8009"><img src="https://doc316en.candera.eu/uploads/images/drawio/2025-02/drawing-7-1740634409.png" alt=""/></div>

Figma Auto layout settings are inherited as properties of the Stack Layout of Scene Composer:

<div drawio-diagram="7128"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-10/drawing-7-1729578499.png" alt=""/></div>

<table border="1" id="bkmrk-figma%E3%81%AE%E3%82%AA%E3%83%BC%E3%83%88%E3%83%AC%E3%82%A4%E3%82%A2%E3%82%A6%E3%83%88%E3%81%AE%E8%A8%AD%E5%AE%9A%E5%80%A4-s" style="border-collapse: collapse; width: 97.037%; height: 648.266px;"><colgroup><col style="width: 4.45869%;"></col><col style="width: 22.0387%;"></col><col style="width: 73.5046%;"></col></colgroup><tbody><tr style="height: 57.7812px;"><td style="height: 57.7812px; background-color: rgb(230, 126, 35);">  
</td><td class="align-center" style="height: 57.7812px; background-color: rgb(230, 126, 35);"><span style="color: rgb(255, 255, 255);">**Auto layout**</span>

<span style="color: rgb(255, 255, 255);">**（Figma）**</span>

</td><td class="align-center" style="height: 57.7812px; background-color: rgb(230, 126, 35);"><span style="color: rgb(255, 255, 255);">**Stack Layout propertise**</span>

<span style="color: rgb(255, 255, 255);">**（Scene Coposer）**</span>

</td></tr><tr style="height: 57.7812px;"><td rowspan="2" style="height: 214.422px; background-color: rgb(230, 126, 35);"><span style="color: rgb(255, 255, 255);">**1**</span>  
<span style="color: rgb(255, 255, 255);">  
</span><span style="color: rgb(255, 255, 255);">  
</span><span style="color: rgb(255, 255, 255);">  
</span></td><td style="height: 57.7812px;">Direction

</td><td style="height: 57.7812px;">Stack Layout

\[ Layouter &gt; Arrangement \]

</td></tr><tr style="height: 156.641px;"><td colspan="2" style="height: 156.641px;"><table border="1" style="width: 100.137%; height: 119.188px;"><colgroup><col style="width: 22.5412%;"></col><col style="width: 77.4588%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td class="align-center" style="background-color: rgb(230, 126, 35); height: 29.7969px;"><span style="color: rgb(255, 255, 255);">Direction</span></td><td class="align-center" style="background-color: rgb(230, 126, 35); height: 29.7969px;"><span style="color: rgb(255, 255, 255);">Arrangement</span></td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Vertical layout</td><td style="height: 29.7969px;">Vertical</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Horizontal layout</td><td rowspan="2" style="height: 59.5938px;">Horizontal  
</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Wrap</td></tr></tbody></table>

</td></tr><tr style="height: 46.0156px;"><td rowspan="2" style="background-color: rgb(230, 126, 35); height: 202.719px;"><span style="color: rgb(255, 255, 255);">**2**</span>  
<span style="color: rgb(255, 255, 255);">  
</span></td><td style="height: 46.0156px;">Gap</td><td style="height: 46.0156px;">The node that is placed second or later in the Stack Layout  
 \[Layout &gt; Margin &gt; Left or Top \]

</td></tr><tr style="height: 156.703px;"><td colspan="2" style="height: 156.703px;"><table border="1" style="border-collapse: collapse; width: 100.137%;"><colgroup><col style="width: 22.4044%;"></col><col style="width: 77.5956%;"></col></colgroup><tbody><tr><td class="align-center" style="height: 29.8785px; background-color: rgb(230, 126, 35);"><span style="color: rgb(255, 255, 255);">Direction</span></td><td class="align-center" style="height: 29.8785px; background-color: rgb(230, 126, 35);"><span style="color: rgb(255, 255, 255);">Margin</span></td></tr><tr><td>Vertical layout</td><td>Top</td></tr><tr><td>Horizontal layout</td><td rowspan="2">Left  
</td></tr><tr><td>Wrap</td></tr></tbody></table>

</td></tr><tr style="height: 57.7812px;"><td style="background-color: rgb(230, 126, 35); height: 57.7812px;"><span style="color: rgb(255, 255, 255);">**3**</span></td><td style="height: 57.7812px;">Alignment</td><td style="height: 57.7812px;">Nodes included in a Stack Layout

\[ Layout &gt; VerticalAlignment and HorizontalAlignment \]

</td></tr><tr style="height: 57.7812px;"><td style="height: 57.7812px; background-color: rgb(230, 126, 35);"><span style="color: rgb(255, 255, 255);">**4**</span></td><td style="height: 57.7812px;">Padding (Horizontal)</td><td style="height: 57.7812px;">The node to be placed at the leftmost position of the Stack Layout  
\[ Layout &gt; Margin &gt; Left \]

</td></tr><tr style="height: 57.7812px;"><td style="height: 57.7812px; background-color: rgb(230, 126, 35);"><span style="color: rgb(255, 255, 255);">**5**</span></td><td style="height: 57.7812px;">Padding (Vertical)</td><td style="height: 57.7812px;">The node to be placed at the most top of the Stack Layout  
\[ Layout &gt; Margin &gt; Top \]

</td></tr></tbody></table>

Below is an example of Auto layout (horizontal) from Figma imported into Scene Composer.

<div drawio-diagram="7189"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-10/drawing-7-1730094273.png" alt=""/></div>

##### Text Layout

When Figma text layer is imported in Scene Composer, a Group node with LayoutType "Overlay" is created, and a text node is created under it.

<div drawio-diagram="7574"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-11/drawing-5-1732891835.png" alt=""/></div>

Also, the Typography Alignment of the text layer from Figma is inherited as a layout property of the text node in Scene Composer.

<div drawio-diagram="7575"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-11/drawing-5-1732891908.png" alt=""/></div>

---