figma-icon-getter

0.0.2 • Public • Published

Figma Icon Getter

This is a CLI and TypeScript library to fetch icons from Figma using their REST API.

Benefits

  • 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.

Design Setup

  1. Create a new Figma file and notate the file ID.

icons-01

  1. Create a new icons. Make sure to flatten the paths to a single layer.

icons-02

  1. Create a component set.

icons-03

  1. Add properties to the component, e.g. variant = filled | outlined and size = 16 | 24

icons-04

  1. Generate a personal access token.

[!NOTE] Make sure that the token has access to your icon file

icons-05

CLI usage

[!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 of https://www.figma.com/design/mfiglkk3bXQwetaRsftZQz/Icon-Playground?node-id=0-1&t=RDa9Ma6rkxW492eB-0, the file key is mfiglkk3bXQwetaRsftZQz.
  • --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.

API

Installation

npm install figma-icon-getter

Usage

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"
  }
]
*/

Parameters

  • figmaAccessToken: The Figma personal access token generated in the Design Setup section above
  • fileKey: The file key appearing in the URL of the Figma file. For example, given a URL of https://www.figma.com/design/mfiglkk3bXQwetaRsftZQz/Icon-Playground?node-id=0-1&t=RDa9Ma6rkxW492eB-0, the file key is mfiglkk3bXQwetaRsftZQz.

Return value

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 to
  • properties: A record containing the component properties defined in Figma
  • svg: The icon SVG data

License

This project is licensed under the MIT License. See the LICENSE file for details.

Contributing

Contributions are welcome! Please submit a pull request or open an issue to discuss any changes.

Package Sidebar

Install

npm i figma-icon-getter

Weekly Downloads

2

Version

0.0.2

License

MIT

Unpacked Size

12.4 kB

Total Files

7

Last publish

Collaborators

  • nsaunders
  • jcusick93