As a designer, having a well-organized icon library can drastically improve your workflow. Recently, I needed to use Lucide Icons - a beautiful, open-source icon set - inside Affinity Designer 2, but there was no clean, categorized assets file available.
So, I decided to create one. In this blog post, I’ll walk you through how I did it, how you can use it, and even how to generate your own version using a simple Python script.
The Goal
- Import all Lucide icons into Affinity Designer
- Organize them by category, like “design,” “text,” “arrows,” etc.
- Make them available via the Assets Panel for quick access
- Provide a script to allow others to regenerate or customize their own
Tools I Used
- Lucide Icons GitHub Repo
- Affinity Designer 2
- Python (for the automation script)
- Git & GitHub
Step 1: Understanding Lucide’s Structure
Lucide includes:
- An
/icons
folder with.svg
and.json
files per icon - A
/categories
folder, where each.json
file lists icons by category
Each icon has a metadata file that includes which categories it belongs to. Some icons appear in multiple categories - a helpful feature we can use to improve UX.
Step 2: Writing a Script to Organize the Icons
To automate the categorization, I wrote a Python script that:
- Reads each icon’s
.json
file - Checks which categories it belongs to
- Copies the corresponding
.svg
file into multiple category folders if needed
This creates a clean categorized-icons/
folder with each category containing its relevant icons.
You can find this script in the scripts/
folder of the repo.
Step 3: Importing Icons into Affinity Designer
Affinity Designer does allow SVGs to be dragged directly into the Assets Panel - as long as they aren’t embedded documents or malformed.
So I:
-
Opened the Assets Panel
-
Created a new Asset Category (e.g., “Lucide Icons”)
-
Created subcategories for each icon group (e.g., “Text”, “Design”, “Arrows”, etc.)
-
Dragged the .svg icons directly into the correct subcategory in the Assets Panel
This saved hours of manual work and gave me a powerful, categorized asset system - instantly searchable and reusable.
Step 4: Publishing It on GitHub
To make this reusable (and easy for others to contribute to), I published everything in a public repo:
GitHub: sajansharmanz/affinity-lucide-icons
It includes:
lucide-icons.afassets
- the ready-to-use Affinity Designer asset filescripts/
folder - with everything you need to generate your own- A clear README to help you get started
How to Use It
- Download the
.afassets
file from the repo - Open Affinity Designer
- Go to
View > Studio > Assets
- Click the panel menu →
Import Assets
- Choose the downloaded file
You now have a categorized, searchable icon library at your fingertips.
🧪 Want to Build Your Own?
No problem. Just follow these steps:
# Clone the Lucide icons repo
git clone https://github.com/lucide-icons/lucide
cd lucide
# Drop the Python script from my repo into the root
# Then run it:
python categorize_lucide_icons.py
Why This Matters
In UI design, every second you spend searching for assets is time you could be iterating on ideas. Organizing icons in a way that reflects their meaning and use saves time and improves flow.
Creating this icon library was a blend of scripting, problem-solving, and design - and now it’s a tool anyone can use.
Final Thoughts
Affinity Designer is a fantastic tool, but its ecosystem is still growing. Hopefully, this project fills a small gap and makes your design process a little smoother.
Feel free to contribute, fork the repo, or use the script however you like.
Thanks for reading - and happy designing!