Biblioteca profesional de iconos SVG para React con tipado TypeScript completo
Desarrollado por Opendex Corporation
- 🎨 +10,000 iconos organizados en categorías temáticas
- 📦 Tipado TypeScript completo con IntelliSense
- ⚡ Build optimizado (ESM + CJS) para máxima compatibilidad
- 🎯 Tamaños flexibles (números, strings, unidades CSS)
- 🌈 Colores personalizables con soporte para CSS variables
- 🔧 Props nativos de SVG (className, aria-label, etc.)
- 📱 Responsive y accesible por defecto
- 🚀 Tree-shaking automático para bundles optimizados
npm install @opendex-origon/iconsyarn add @opendex-origon/iconspnpm add @opendex-origon/iconsimport { User, Check, X, Settings } from '@opendex-origon/icons';
function App() {
return (
<div>
{/* Tamaño con número (píxeles) */}
<User size={24} />
{/* Tamaño con string (unidades CSS) */}
<Check size='1.5rem' color='green' />
{/* Color personalizado */}
<X size={32} color='red' />
{/* Con className para estilos */}
<Settings size={20} className='icon-spin' />
</div>
);
}import {
Check,
X,
Plus,
Minus,
Search,
Filter,
Sort,
Menu,
} from '@opendex-origon/icons';import {
ArrowUp,
ArrowDown,
ArrowLeft,
ArrowRight,
ChevronUp,
ChevronDown,
ChevronLeft,
ChevronRight,
} from '@opendex-origon/icons';import {
Dollar,
Euro,
Bitcoin,
Chart,
Wallet,
CreditCard,
Bank,
Calculator,
} from '@opendex-origon/icons';import {
Phone,
Laptop,
Tablet,
Desktop,
Camera,
Headphones,
Keyboard,
Mouse,
} from '@opendex-origon/icons';import {
Email,
Message,
Phone,
Video,
Share,
Link,
Download,
Upload,
} from '@opendex-origon/icons';| Prop | Tipo | Default | Descripción |
|---|---|---|---|
size |
number | string |
24 |
Tamaño del icono (px, rem, em, etc.) |
color |
string |
currentColor |
Color del trazo |
strokeWidth |
number |
2 |
Grosor del trazo |
fill |
string |
none |
Color de relleno |
className |
string |
- | Clases CSS adicionales |
style |
CSSProperties |
- | Estilos inline |
onClick |
function |
- | Evento click |
...svgProps |
- | - | Todos los props nativos de SVG |
import { Check, X, Loading } from '@opendex-origon/icons';
function StatusIcon({ status }) {
switch (status) {
case 'success':
return <Check size={20} color='green' />;
case 'error':
return <X size={20} color='red' />;
case 'loading':
return <Loading size={20} className='animate-spin' />;
default:
return null;
}
}import { Menu, Close } from '@opendex-origon/icons';
function MobileMenu({ isOpen, onToggle }) {
return (
<button onClick={onToggle}>
{isOpen ? <Close size='1.5rem' /> : <Menu size='1.5rem' />}
</button>
);
}import { Sun, Moon } from '@opendex-origon/icons';
function ThemeToggle({ theme, onToggle }) {
return (
<button onClick={onToggle}>
{theme === 'dark' ? (
<Sun size={24} color='yellow' />
) : (
<Moon size={24} color='blue' />
)}
</button>
);
}import { Heart, Star } from '@opendex-origon/icons';
function AnimatedIcons() {
return (
<div>
<Heart size={24} className='hover:scale-110 transition-transform' />
<Star size={24} className='animate-pulse' />
</div>
);
}// Importa todos los iconos de una categoría
import * as Arrows from '@opendex-origon/icons/Arrows';
import * as Business from '@opendex-origon/icons/Business';
// Uso
<Arrows.ArrowUp size={24} />
<Business.Dollar size={24} />// Solo importa lo que necesitas (tree-shaking)
import { ArrowUp, Dollar } from '@opendex-origon/icons';/* Estilos globales para iconos */
.opendex-icon {
transition: all 0.2s ease;
}
.opendex-icon:hover {
transform: scale(1.1);
}
/* Iconos con colores temáticos */
.icon-primary {
color: var(--primary-color);
}
.icon-secondary {
color: var(--secondary-color);
}
/* Animaciones personalizadas */
.icon-spin {
animation: spin 1s linear infinite;
}
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}git clone https://github.com/opendex-origon/opendex-icons.git
cd opendex-icons
npm installnpm run dev # Desarrollo con watch
npm run build # Build de producción
npm run generate # Generar iconos desde SVG
npm run test # Ejecutar tests
npm run lint # Linting
npm run type-check # Verificar tipos TypeScript- Coloca tus archivos SVG en
assets/svg/[categoria]/ - Ejecuta
npm run generate - Los iconos se generarán automáticamente en
src/icons/
- Total de iconos: +10,000
- Categorías: 25+
- Estilos: 5 (Light, Regular, Filled, Duotone, Duotone Line)
- Tamaño del bundle: ~5MB (comprimido)
- Compatibilidad: React 16.8+, TypeScript 4.0+
- Versión actual: 2.9.2
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
Este proyecto está licenciado bajo la Opendex Icons License v1.0 - ver el archivo LICENSE para más detalles.
✅ Uso PERMITIDO:
- Aplicaciones que se integren con servicios de Opendex
- Proyectos que utilicen APIs de Opendex Corporation
- Aplicaciones que conecten con productos de Opendex
- Demostraciones y ejemplos de integración con Opendex
- Proyectos internos de Opendex Corporation
❌ Uso RESTRINGIDO:
- Aplicaciones comerciales NO relacionadas con Opendex
- Productos o servicios que compitan con Opendex
- Redistribución como biblioteca independiente
- Uso en proyectos que no se integren con Opendex
Esta biblioteca es pública pero con licencia restrictiva. Solo puedes usarla si tu proyecto se integra con el ecosistema de Opendex.
Para usos fuera del alcance permitido, contacta a licensing@opendex.com.
- 📧 Email: support@opendex.com
- 💬 Discord: Opendex Community
- 📖 Documentación: docs.opendex.com/icons
- 🐛 Issues: GitHub Issues
- Iconos diseñados por el equipo de Opendex Corporation
- Inspirado en las mejores prácticas de bibliotecas de iconos
- Construido con TypeScript y React
Hecho con ❤️ por Opendex Corporation