🎨 How to Add Icons to Tools
This is a simple guide for adding icons to your tools in the hub.
The Simple Way It Works
1. Choose an Icon Name (in app.py)
Open app.py and find your tool in the DEFAULT_TOOLS list. Change the 'icon' field to a simple name:
{
'id': 'stripe_integration',
'name': 'Stripe/QBO Integration',
'icon': 'credit-card', # ← Just use a simple name!
'category': 'Finance'
},
2. Add the Icon SVG (in icons.html)
Open templates/icons.html and add a new {% elif %} section with your icon's SVG code:
{% elif icon_name == 'credit-card' %}
<svg class="applet-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<rect width="20" height="14" x="2" y="5" rx="2"/>
<line x1="2" x2="22" y1="10" y2="10"/>
</svg>
That's it! The template automatically shows the right icon for each tool.
📚 Available Icons
Here are the icons already set up in icons.html:
| Icon Name | What It Looks Like | Good For |
|---|---|---|
credit-card |
Credit card | Payment/finance tools |
file-text |
Document | File processors |
compass |
Compass | Navigation/mapping |
shopping-bag |
Shopping bag | E-commerce |
camera |
Camera | Photo tools |
mic |
Microphone | Audio/recording |
bar-chart |
Bar chart | Analytics/reports |
folder |
Folder | File management |
building |
Building | Business/admin |
sparkles |
Sparkles | Special/featured |
🔍 Where to Find More Icons
Lucide Icons: https://lucide.dev/icons
- Browse the icons
- Click the icon you want
- Copy the SVG code
- Paste it into
icons.htmlwith a new name
🎯 Example: Adding a New Icon
Let's say you want to add a "Zap" icon for automation tools:
Step 1: Update app.py
{
'id': 'automation_tool',
'name': 'Automation Tool',
'icon': 'zap', # ← New icon name
'category': 'Productivity'
},
Step 2: Add to icons.html
Go to https://lucide.dev/icons/zap, copy the SVG, and add:
{% elif icon_name == 'zap' %}
<svg class="applet-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/>
</svg>
Done! ✅
The icon will automatically appear on your hub page.
🎨 Icon Colors
Icons automatically inherit colors from the position-based color system. You don't need to set colors manually!
- Position 0 (first tool) → Orange background
- Position 1 (second tool) → Purple background
- Position 2 (third tool) → Blue background
- And so on...
The icon itself is always dark gray for consistency.
❓ Need Help?
- Icon not showing? Check that the icon name in
app.pymatches exactly inicons.html - Wrong icon? Make sure you're editing the right tool in
app.py - Want to change colors? Edit
static/css/tokens.css(look for--color-0,--color-1, etc.)
📝 Quick Checklist
- Choose a simple icon name (e.g.,
credit-card,zap,file-text) - Update the
'icon'field inapp.pyfor your tool - Add the SVG code to
icons.htmlwith{% elif icon_name == 'your-name' %} - Make sure the SVG has
stroke="currentColor"(for color control) - Refresh the page and see your icon!
That's all there is to it! 🎉