Common questions and troubleshooting guide.
A local tool that transforms Figma designs into production-ready code. It imports your Figma nodes via the API and generates React/Tailwind, HTML/CSS, or other formats.
Yes, completely free and open source (MIT license).
Partially. You need internet to:
- Import new nodes from Figma
- Refresh existing nodes
Once imported, you can work completely offline:
- Browse your library
- Generate code
- Create merges
- Export files
All plans work:
- ✅ Free
- ✅ Professional
- ✅ Organization
- ✅ Enterprise
The only requirement is a personal access token.
Not currently. This is a standalone web app that uses the Figma REST API. A plugin version may come in the future.
Cause: You don't have permission to view the Figma file.
Solutions:
- Make sure you're logged into the correct Figma account
- Ask the file owner to share it with you (View access is enough)
- Check if the file is in a team you have access to
Cause: Your Figma API token is expired or invalid.
Solutions:
- Go to Figma Settings
- Scroll to Personal Access Tokens
- Generate a new token
- Update
.env.localwith the new token - Restart the dev server
Cause: Large files or slow network.
Solutions:
- Import smaller sections instead of entire pages
- Check your internet connection
- The Figma API has rate limits; wait a few minutes if you've made many requests
Cause: Image export failed or file permissions.
Solutions:
- Try refreshing the node (re-import from Figma)
- Check if images are visible in Figma (not hidden layers)
- Some image fills may not export correctly; try flattening in Figma
Cause: Component instances reference external libraries.
Solutions:
- Import the main component first, then instances
- Detach instances in Figma if you don't need the component link
- Check if the component library is accessible
Common reasons:
- Auto-layout vs absolute: Use auto-layout in Figma for better flexbox output
- Constraints: Figma constraints don't translate 1:1 to CSS
- Missing fonts: Web fonts may render differently
- Rounding: Pixel values are rounded to common Tailwind values
Yes! Use the Rules Engine:
- Go to Rules page
- Create custom rules to map Figma properties to specific classes
- Rules take priority over default transformations
Tips for cleaner output:
- Use Figma's auto-layout (becomes flexbox)
- Use consistent spacing (4px, 8px, 16px grid)
- Use design tokens/styles in Figma
- Name your layers meaningfully
The generators try to use Tailwind utilities, but some values don't map to standard classes:
- Arbitrary colors (
bg-[#FF5733]) - Arbitrary spacing (
p-[13px]) - Complex gradients
To avoid this:
- Use Tailwind-compatible values in Figma
- Create custom rules to map to your design system
Currently supported:
- ✅ React + Tailwind
- ✅ React + Tailwind v4
- ✅ HTML + CSS
Coming soon:
- 🔜 Vue + Tailwind
- 🔜 Svelte
The architecture is extensible—contributions welcome!
Elements are matched by layer name across breakpoints. For best results:
- Use identical names for the same element across mobile/tablet/desktop
- Keep consistent hierarchy structure
- Avoid duplicate names at the same level
Unmatched elements become breakpoint-specific:
- Element only in mobile →
block md:hidden - Element only in desktop →
hidden lg:block
The merge viewer shows warnings for unmatched elements.
Yes! You can select:
- Mobile + Desktop (skip tablet)
- Mobile + Tablet (skip desktop)
- Any combination
Common issues:
- Different layer names: "Button" vs "Btn" won't match
- Different hierarchy: Elements nested differently won't match
- Duplicate names: Multiple "Text" layers cause ambiguity
Solution: Ensure consistent naming in your Figma file.
The merged code is read-only in the app. To customize:
- Export the code
- Edit in your code editor
- Or create rules to change the output
100% local. All data stays on your machine:
figma-data/— Imported nodesmerges-data/— Saved merges.env.local— Your API token
Nothing is sent to external servers (except Figma API calls).
Your token is stored in .env.local which is:
- Gitignored (not committed)
- Only used for Figma API calls
- Never sent anywhere else
Best practices:
- Don't share your
.env.localfile - Regenerate tokens periodically
- Use read-only tokens if possible
Yes! Since everything runs locally:
- Client designs stay on your machine
- No data leaves your network
- You control all exports
Check your Figma/client agreements for any specific restrictions.
Yes. The generated code has no license restrictions from this tool. You own your output.
Check Node version:
node --version # Should be 18+Reinstall dependencies:
rm -rf node_modules package-lock.json
npm installCheck for port conflicts:
# Use different port
PORT=3001 npm run devClear Next.js cache:
rm -rf .next
npm run buildCheck TypeScript errors:
npm run lintPossible causes:
- Browser blocking iframe content
- Missing CSS/fonts
- JavaScript errors
Solutions:
- Check browser console for errors
- Try a different browser
- Disable ad blockers temporarily
Clear caches:
- Hard refresh:
Cmd/Ctrl + Shift + R - Clear browser cache
- Restart dev server
Update snapshots if intentional:
npm run golden:captureReview changes:
npm run golden:verify