How to Add Custom Icons to FlutterFlow: Pro Tip #1

Author:

Gokul Shivappa

Reading time: 15 minutes

Introduction

FlutterFlow comes with a solid icon library out of the box. But if you've ever scrolled through those default icons looking for something specific, you know the limitation—they're functional but generic.

When you're building an app that needs to feel unique and polished, custom icons make all the difference.

In this guide, I'll walk you through my exact workflow for adding custom icons to any FlutterFlow project. It takes about 10-15 minutes and uses three free tools.

Table of Contents

  1. Why Bother with Custom Icons?

  2. The Three Tools You'll Need

  3. Step 1: Get Your Icons

  4. Step 2: Create a Font File with IcoMoon

  5. Step 3: Import to FlutterFlow

  6. Quick Tips from Experience

  7. Wrapping Up

Watch the Full Process

This tutorial is based on a clip from my Custom Chat App live stream series. In the video, I demonstrate this entire workflow while building a chat app—but the process works for any FlutterFlow project.

Why Bother with Custom Icons?

FlutterFlow's native icon set works well for prototypes and internal tools. But production apps have different needs:

  • Brand consistency – Your icons should match your design system and color palette

  • Professional polish – Custom icons elevate the entire user experience

  • Unique functionality – You'll often need icons for features that don't exist in the default set

The difference is noticeable. Users may not consciously realize it, but custom icons signal that an app is thoughtfully designed.

The Three Tools You'll Need

You don't need expensive design software or paid icon packs. This entire workflow uses three free web tools:

  • svgrepo.com – A massive library of free, open-source SVG icons

  • vectormaker.co – Converts PNG images to SVG format when needed

  • icomoon.app – The key tool that packages your SVGs into a font file FlutterFlow can read

All three are browser-based, so no downloads or installations required.

Step 1: Get Your Icons

Option A: Download from SVG Repo

SVG Repo is my starting point for most icon needs. The selection is huge and the quality is consistently good.

  1. Head to svgrepo.com

  2. Use the search bar to find your icon (try terms like "search", "send", "microphone")

  3. Click on the icon you like

  4. Download the SVG file

Critical tip: Stick to single-color icons. Multi-color or gradient icons will cause import errors in FlutterFlow. When browsing, look for solid, monochrome designs.

image.png

Option B: Convert PNG to SVG

Got a PNG icon from a designer or found one you love? VectorMaker can convert it to the SVG format you need.

  1. Go to vectormaker.co

  2. Upload your PNG file

  3. The tool automatically detects colors in your image

  4. Choose single color mode (this is important for FlutterFlow compatibility)

  5. Download the converted SVG

Heads up: VectorMaker processes one icon at a time. If you're converting a dozen icons, set aside a few minutes. But the results are worth it.

WhatsApp Image 2025-12-05 at 8.35.19 PM.jpeg

Step 2: Create a Font File with IcoMoon

Here's where everything comes together. IcoMoon takes your individual SVG files and packages them into a single font file that FlutterFlow can import and use like any native icon.

  1. Go to icomoon.app and click IcoMoon App button

  2. Click Import Icons, select your SVG files

  3. Select all the icons you want to include

  4. Click Generate Font

  5. On the new screen, click Settings gear icon

  6. Name your icon set (e.g., "chat_icons") and check "Generate class for Flutter"— this is critical!

  7. Click Download

IcoMoon will give you a ZIP file containing your font file and the Dart class FlutterFlow needs to recognize it.

WhatsApp Image 2025-12-05 at 8.38.52 PM.jpeg

Step 3: Import to FlutterFlow

Now the easy part—getting your new icon font into FlutterFlow.

  1. Unzip the file you just downloaded from IcoMoon

  2. In FlutterFlow, go to Settings > Design System > Icons

  3. Click Add Icons

  4. Click Upload Icon File

  5. Browse to your extracted folder

  6. First, select the .ttf file from the "fonts" subfolder

  7. FlutterFlow will prompt you for a second file—now select the .dart file from the main folder

  8. Done! Your custom icons are now available throughout your project

You'll find them in the icon picker alongside FlutterFlow's default icons, but clearly labeled with your custom set name.

WhatsApp Image 2025-12-05 at 8.41.24 PM.jpeg

Quick Tips from Experience

After doing this dozens of times for client projects, here's what I've learned:

  • Mono-color is non-negotiable. Multi-color SVGs fail during import more often than not. If you love a multi-color icon, see if the designer offers a single-color version.

  • Not every SVG cooperates. Even simple, single-color icons sometimes break. If an icon won't import cleanly, don't waste time troubleshooting—just find a similar alternative on SVG Repo.

  • Check IcoMoon's library first. Before importing custom icons, browse IcoMoon's built-in collection. They have thousands of icons, and you might find exactly what you need already optimized for Flutter.

  • Use descriptive names. When you're managing 30+ custom icons, clear naming saves headaches. "mic_outline" beats "icon_23" every time.

Wrapping Up

Custom icons are one of those small details that create a big impression. They're the difference between an app that looks like it came from a template and one that feels professionally crafted.

The entire workflow—from finding icons to importing them into FlutterFlow—takes 10-15 minutes once you've done it a few times. And you only need to set it up once per project.

Bookmark these three tools:

As your app grows and you need additional icons, just repeat the process and upload a new font file. FlutterFlow handles multiple custom icon sets without any conflicts.

Did This Help?

Drop a quick rating — your feedback shapes our future content.

Sign Up To My Newsletter

Get notified when a new article is posted.

Sign Up To My Newsletter

Get notified when a new article is posted.

Sign Up To My Newsletter

Get notified when a new article is posted.