This is a CLI and TypeScript library to fetch icons from Figma using their REST API.
- Automate icon workflow from Figma to production.
- Sync repository with a single Figma file.
- Use component sets in Figma, making it easier for designers to configure options.
- Create a new Figma file and notate the file ID.
- Create a new icons. Make sure to flatten the paths to a single layer.
- Create a component set.
- Add properties to the component, e.g. variant = filled | outlined and size = 16 | 24
- Generate a personal access token.
Note
Make sure that the token has access to your icon file
Note
Requires a recent version of Node.js.
Run the following command to download icons from Figma:
FIGMA_PAT=<access token> npx figma-icon-getter --file <file key> --out <output directory>
Explanation:
FIGMA_PAT=<access token>
: Replace<access token>
with the Figma personal access token generated in the Design Setup section above.--file <file key>
: Replace<file key>
with the file key appearing in the URL of the Figma file. For example, given a URL ofhttps://www.figma.com/design/mfiglkk3bXQwetaRsftZQz/Icon-Playground?node-id=0-1&t=RDa9Ma6rkxW492eB-0
, the file key ismfiglkk3bXQwetaRsftZQz
.--out <output directory>
: Replace<output directory>
with the path to the directory where you want to download the icon SVG files.
Tip
If you need to convert the downloaded icon SVG files to React icon components, we recommend SVGR.
npm install figma-icon-getter
You can use the getFigmaIcons
function to conveniently download icon SVGs:
import { getFigmaIcons } from "figma-icon-getter";
const icons = await getFigmaIcons({
figmaAccessToken: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
fileKey: "mfiglkk3bXQwetaRsftZQz",
});
console.log(icons);
/* example output
[
{
"name": "Acorn",
"properties": {
"variant": "outlined",
"size": "16"
},
"svg": "<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">...</svg>\n"
}
]
*/
figmaAccessToken
: The Figma personal access token generated in the Design Setup section abovefileKey
: The file key appearing in the URL of the Figma file. For example, given a URL ofhttps://www.figma.com/design/mfiglkk3bXQwetaRsftZQz/Icon-Playground?node-id=0-1&t=RDa9Ma6rkxW492eB-0
, the file key ismfiglkk3bXQwetaRsftZQz
.
Promise<
{
name: string;
properties: Record<string, string>;
svg: string;
}[]
>;
name
: The name of the icon, derived from the component set that the icon component belongs toproperties
: A record containing the component properties defined in Figmasvg
: The icon SVG data
This project is licensed under the MIT License. See the LICENSE file for details.
Contributions are welcome! Please submit a pull request or open an issue to discuss any changes.