icon2icon
v1.0.2
Published
Zero-config proxy for lucide-react to use Remix Icon (and others) transparently.
Downloads
46
Maintainers
Readme
⚡️ Icon2Icon
Zero-config transparent proxy for lucide-react.
Swap Lucide icons for Remix Icon (and more) in your Next.js or Vite projects without changing a single line of your existing component code.
✨ Features
- 🛠 Transparent Injection: Keep your
import { Search } from 'lucide-react'—we'll handle the swap. - 🎯 Smart Mapping: Intelligent matching between Lucide and Remix Icon names (Pulse ↔ Activity, Zap ↔ Flash, etc.).
- 📦 Zero Font Config: Automatic CSS injection via CDN—no manual
@importor<link>needed. - ⚡️ Native Performance: Render icons as lightweight
<i>tags with perfect alignment. - 🎨 Next.js & Vite: Dedicated plugins for the most popular modern frameworks.
- 🟦 TypeScript Ready: Full autocompletion and type safety for over 4,500 icons.
🚀 Installation
npm install icon2icon🛠 Configuration
Next.js
Add the proxy to your next.config.mjs:
import IconProxy from 'icon2icon/next';
const nextConfig = {
// Your existing config
};
export default IconProxy(nextConfig);Vite
Add the plugin to your vite.config.js:
import { defineConfig } from 'vite';
import IconProxy from 'icon2icon/vite';
export default defineConfig({
plugins: [
IconProxy()
]
});📖 Usage
Just use lucide-react as you normally would:
import { Activity, Zap, Trash } from 'lucide-react';
function MyComponent() {
return (
<div>
<Activity size={32} color="blue" />
<Zap className="text-yellow-500" />
<Trash />
</div>
);
}Behind the scenes, lucide-proxy redirects these imports to use Remix Icon equivalents:
Activity→ri-pulse-lineZap→ri-battery-charge-lineTrash→ri-delete-bin-line
🎨 Supported Icon Sets
Currently supporting Remix Icon by default. More presets coming soon!
📄 License
MIT © 2026
