This repository is your one-stop shop for generating React illustration components directly from your Figma designs. It automates the process of exporting SVGs, converting them into customizable React components, and bundling them for easy use in your pr
npm install vega-illustrationsThis repository is your one-stop shop for generating React illustration components directly from your Figma designs. It automates the process of exporting SVGs, converting them into customizable React components, and bundling them for easy use in your projects.
* Figma Integration: Seamlessly connects to your Figma design files to extract illustrations.
* React Component Generation: Transforms SVGs into reusable React components using SVGR.
* TypeScript Support: Generates TypeScript type definitions for a better development experience.
* SVG Optimization: Optimizes SVGs with SVGO to reduce file size and improve performance.
* Color Customization: Converts all illustration colors to currentColor for dynamic styling.
* Node.js and Yarn: Ensure you have Node.js and Yarn installed on your system.
* Figma Personal Access Token: Obtain a personal access token from your Figma account settings.
* Figma File ID: Locate the unique ID of your Figma file containing the illustrations.
1. Clone the repository:
``bash`
git clone
2. Install dependencies:
`bash`
yarn install
3. Set up environment variables:
* Create a .env file in the project's root directory.
* Add your Figma credentials:
* https://www.figma.com/developers/api
``
FILE_ID=
FIGMA_TOKEN=
1. Export illustrations and Components:
`bash`
yarn export
This command will:
* Fetch SVGs from the "Illustration" page in your Figma file.
* Optimize the SVGs using SVGO.
* Convert SVGs into React components (.tsx files) and place them in the src/output directory.
* Run the post-export script to clean up the generated index.ts file, removing duplicates and file extensions from import statements. (only works at one pointed file at a time)
2. Bundle Components (Optional):
* If you want to bundle all React components into a single file:
`bash`
npm run build
This will create a dist/index.js file containing all your bundled illustration components.
3. Use in Your Project:
* Install the vega-illustrations package in your main project:
`bash`
yarn add vega-illustrations or
npm install vega-illustrations
* Import and use your illustration components:
`jsx
import { IllustrationName } from 'vega-illustrations';
// In your component:
`
Important Notes:
* Ensure the @svgr/plugin-jsx plugin is installed (yarn add -D @svgr/plugin-jsx) for React component generation.figma.config.js
* Customize the if your Figma setup or desired output structure is different.
* Consider adding automated tests and documentation to improve maintainability.
With scripts that replace its illustrations hex values with theme colors.
We have a script that maps all hex values to twc color variables. For example, #007B63 turns into fill="hsl(var(--twc-illustration-foreground-brand))".
--twc-illustration-foreground-brand is set as different colors for dark/light mode in the packages/vega-core/src/themeConfig/themes.ts` file: