Skip to content

Commit 147e0ea

Browse files
committed
feat: add custom icons for classic software (Winamp, eMule, Nero, PowerISO, UltraISO, DirectX)
- Add WinampIcon with lightning bolt and equalizer bars - Add EMuleIcon with P2P network visualization - Add NeroIcon with burning disc and flames - Add PowerISOIcon with ISO disc and lightning bolt - Add UltraISOIcon with premium ISO disc design - Add DirectXIcon with 3D isometric cube and X overlay
1 parent 8b032d6 commit 147e0ea

File tree

1 file changed

+212
-0
lines changed

1 file changed

+212
-0
lines changed

src/components/Common/CustomIcons.jsx

Lines changed: 212 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,211 @@ export const RevoUninstallerIcon = ({ size = 24, ...props }) => (
223223
</svg>
224224
);
225225

226+
// Winamp - Classic media player with lightning bolt design
227+
export const WinampIcon = ({ size = 24, ...props }) => (
228+
<svg
229+
width={size}
230+
height={size}
231+
viewBox="0 0 24 24"
232+
xmlns="http://www.w3.org/2000/svg"
233+
style={{ flexShrink: 0 }}
234+
{...props}
235+
>
236+
<defs>
237+
<linearGradient id="winamp-grad" x1="0%" y1="0%" x2="100%" y2="100%">
238+
<stop offset="0%" stopColor="#FF6600"/>
239+
<stop offset="100%" stopColor="#CC5200"/>
240+
</linearGradient>
241+
</defs>
242+
{/* Lightning bolt in Winamp style */}
243+
<path d="M14 2L6 13h5v7l8-11h-5z" fill="url(#winamp-grad)"/>
244+
{/* Equalizer bars */}
245+
<rect x="3" y="18" width="1.5" height="4" fill="#00CC00"/>
246+
<rect x="5" y="16" width="1.5" height="6" fill="#00CC00"/>
247+
<rect x="7" y="19" width="1.5" height="3" fill="#00CC00"/>
248+
</svg>
249+
);
250+
251+
// eMule - P2P file sharing with mule/network theme
252+
export const EMuleIcon = ({ size = 24, ...props }) => (
253+
<svg
254+
width={size}
255+
height={size}
256+
viewBox="0 0 24 24"
257+
xmlns="http://www.w3.org/2000/svg"
258+
style={{ flexShrink: 0 }}
259+
{...props}
260+
>
261+
<defs>
262+
<linearGradient id="emule-grad" x1="0%" y1="0%" x2="0%" y2="100%">
263+
<stop offset="0%" stopColor="#0057B7"/>
264+
<stop offset="100%" stopColor="#003D82"/>
265+
</linearGradient>
266+
</defs>
267+
{/* Network nodes representing P2P */}
268+
<circle cx="12" cy="12" r="3" fill="url(#emule-grad)"/>
269+
<circle cx="5" cy="6" r="2" fill="#0057B7"/>
270+
<circle cx="19" cy="6" r="2" fill="#0057B7"/>
271+
<circle cx="5" cy="18" r="2" fill="#0057B7"/>
272+
<circle cx="19" cy="18" r="2" fill="#0057B7"/>
273+
{/* Network connections */}
274+
<line x1="12" y1="12" x2="5" y2="6" stroke="#0057B7" strokeWidth="1.5"/>
275+
<line x1="12" y1="12" x2="19" y2="6" stroke="#0057B7" strokeWidth="1.5"/>
276+
<line x1="12" y1="12" x2="5" y2="18" stroke="#0057B7" strokeWidth="1.5"/>
277+
<line x1="12" y1="12" x2="19" y2="18" stroke="#0057B7" strokeWidth="1.5"/>
278+
</svg>
279+
);
280+
281+
// Nero - Burning disc with flames (Nero Burning ROM)
282+
export const NeroIcon = ({ size = 24, ...props }) => (
283+
<svg
284+
width={size}
285+
height={size}
286+
viewBox="0 0 24 24"
287+
xmlns="http://www.w3.org/2000/svg"
288+
style={{ flexShrink: 0 }}
289+
{...props}
290+
>
291+
<defs>
292+
<linearGradient id="nero-grad" x1="0%" y1="0%" x2="0%" y2="100%">
293+
<stop offset="0%" stopColor="#FF4444"/>
294+
<stop offset="100%" stopColor="#CC0000"/>
295+
</linearGradient>
296+
<radialGradient id="nero-disc">
297+
<stop offset="0%" stopColor="#666"/>
298+
<stop offset="100%" stopColor="#333"/>
299+
</radialGradient>
300+
</defs>
301+
{/* CD/DVD disc */}
302+
<circle cx="12" cy="14" r="7" fill="url(#nero-disc)"/>
303+
<circle cx="12" cy="14" r="2" fill="#111"/>
304+
{/* Flames */}
305+
<path d="M10 7c0-2 1-4 2-5 1 1 2 3 2 5 0 1-.5 2-1 2.5-.5-.5-1-1.5-1-2.5z" fill="url(#nero-grad)"/>
306+
<path d="M7 9c-.5-1.5 0-3 .5-4 1 .5 1.5 2 2 3.5 0 .8-.5 1.3-1 1.5-.5-.3-.8-1-.5-1.5z" fill="#FF6600"/>
307+
<path d="M15 9c.5-1.5 0-3-.5-4-1 .5-1.5 2-2 3.5 0 .8.5 1.3 1 1.5.5-.3.8-1 .5-1.5z" fill="#FF6600"/>
308+
</svg>
309+
);
310+
311+
// PowerISO - Power/lightning with ISO disc
312+
export const PowerISOIcon = ({ size = 24, ...props }) => (
313+
<svg
314+
width={size}
315+
height={size}
316+
viewBox="0 0 24 24"
317+
xmlns="http://www.w3.org/2000/svg"
318+
style={{ flexShrink: 0 }}
319+
{...props}
320+
>
321+
<defs>
322+
<linearGradient id="poweriso-grad" x1="0%" y1="0%" x2="100%" y2="100%">
323+
<stop offset="0%" stopColor="#0096FF"/>
324+
<stop offset="100%" stopColor="#0078D7"/>
325+
</linearGradient>
326+
</defs>
327+
{/* ISO disc */}
328+
<circle cx="12" cy="12" r="8" fill="url(#poweriso-grad)" opacity="0.3"/>
329+
<circle cx="12" cy="12" r="6" stroke="#0078D7" strokeWidth="2" fill="none"/>
330+
<circle cx="12" cy="12" r="2" fill="#0078D7"/>
331+
{/* Lightning bolt for "Power" */}
332+
<path d="M13 4l-3 6h2.5l-2 6 5-7h-2.5z" fill="#FFD700" stroke="#FFA500" strokeWidth="0.5"/>
333+
</svg>
334+
);
335+
336+
// UltraISO - Premium/ultra ISO disc
337+
export const UltraISOIcon = ({ size = 24, ...props }) => (
338+
<svg
339+
width={size}
340+
height={size}
341+
viewBox="0 0 24 24"
342+
xmlns="http://www.w3.org/2000/svg"
343+
style={{ flexShrink: 0 }}
344+
{...props}
345+
>
346+
<defs>
347+
<linearGradient id="ultraiso-grad" x1="0%" y1="0%" x2="100%" y2="100%">
348+
<stop offset="0%" stopColor="#FFB900"/>
349+
<stop offset="100%" stopColor="#FF8C00"/>
350+
</linearGradient>
351+
</defs>
352+
{/* Disc with premium look */}
353+
<circle cx="12" cy="12" r="9" fill="url(#ultraiso-grad)" opacity="0.2"/>
354+
<circle cx="12" cy="12" r="7" stroke="#FFB900" strokeWidth="2" fill="none"/>
355+
<circle cx="12" cy="12" r="5" stroke="#FF8C00" strokeWidth="1.5" fill="none" opacity="0.6"/>
356+
<circle cx="12" cy="12" r="2.5" fill="#FFB900"/>
357+
{/* Star for "Ultra" premium quality */}
358+
<path d="M12 2l1 3h3l-2.5 2 1 3-2.5-2-2.5 2 1-3-2.5-2h3z" fill="#FFB900" opacity="0.8"/>
359+
</svg>
360+
);
361+
362+
// DirectX - Microsoft DirectX 3D cube logo
363+
export const DirectXIcon = ({ size = 24, ...props }) => (
364+
<svg
365+
width={size}
366+
height={size}
367+
viewBox="0 0 24 24"
368+
xmlns="http://www.w3.org/2000/svg"
369+
style={{ flexShrink: 0 }}
370+
{...props}
371+
>
372+
<defs>
373+
<linearGradient id="dx-top" x1="0%" y1="0%" x2="100%" y2="0%">
374+
<stop offset="0%" stopColor="#52B043"/>
375+
<stop offset="100%" stopColor="#8DC63F"/>
376+
</linearGradient>
377+
<linearGradient id="dx-left" x1="0%" y1="0%" x2="0%" y2="100%">
378+
<stop offset="0%" stopColor="#107C10"/>
379+
<stop offset="100%" stopColor="#0B5A08"/>
380+
</linearGradient>
381+
<linearGradient id="dx-right" x1="0%" y1="0%" x2="0%" y2="100%">
382+
<stop offset="0%" stopColor="#3A8428"/>
383+
<stop offset="100%" stopColor="#2B6E1F"/>
384+
</linearGradient>
385+
</defs>
386+
{/* 3D Isometric cube representing DirectX */}
387+
{/* Top face */}
388+
<path d="M12 4L20 8.5L12 13L4 8.5Z" fill="url(#dx-top)"/>
389+
{/* Left face */}
390+
<path d="M4 8.5L4 15.5L12 20V13Z" fill="url(#dx-left)"/>
391+
{/* Right face */}
392+
<path d="M20 8.5L20 15.5L12 20V13Z" fill="url(#dx-right)"/>
393+
{/* Edges for depth */}
394+
<path d="M12 4L20 8.5L12 13L4 8.5Z" stroke="#0B5A08" strokeWidth="0.5" fill="none"/>
395+
{/* X overlay for DirectX branding */}
396+
<path d="M9 11l6 6M15 11l-6 6" stroke="#FFFFFF" strokeWidth="2" strokeLinecap="round" opacity="0.9"/>
397+
</svg>
398+
);
399+
400+
// Visual C++ Redistributables - C++ with Microsoft colors
401+
export const VCRedistIcon = ({ size = 24, ...props }) => (
402+
<svg
403+
width={size}
404+
height={size}
405+
viewBox="0 0 24 24"
406+
xmlns="http://www.w3.org/2000/svg"
407+
style={{ flexShrink: 0 }}
408+
{...props}
409+
>
410+
<defs>
411+
<linearGradient id="vcredist-grad" x1="0%" y1="0%" x2="100%" y2="100%">
412+
<stop offset="0%" stopColor="#68217A"/>
413+
<stop offset="100%" stopColor="#9B4F96"/>
414+
</linearGradient>
415+
</defs>
416+
{/* Background square */}
417+
<rect x="2" y="2" width="20" height="20" rx="2" fill="url(#vcredist-grad)"/>
418+
{/* C++ text */}
419+
<text x="6" y="17" fontFamily="Arial, sans-serif" fontSize="12" fontWeight="bold" fill="#fff">C++</text>
420+
{/* Plus symbols */}
421+
<text x="4" y="9" fontFamily="monospace" fontSize="8" fontWeight="bold" fill="#00D4FF">++</text>
422+
<text x="15" y="9" fontFamily="monospace" fontSize="8" fontWeight="bold" fill="#00D4FF">++</text>
423+
{/* Microsoft accent */}
424+
<rect x="3" y="18" width="2" height="2" fill="#F25022"/>
425+
<rect x="5.5" y="18" width="2" height="2" fill="#7FBA00"/>
426+
<rect x="8" y="18" width="2" height="2" fill="#00A4EF"/>
427+
<rect x="10.5" y="18" width="2" height="2" fill="#FFB900"/>
428+
</svg>
429+
);
430+
226431
export default {
227432
ChromeIcon,
228433
GoogleDriveIcon,
@@ -232,4 +437,11 @@ export default {
232437
BleachBitIcon,
233438
DriverBoosterIcon,
234439
RevoUninstallerIcon,
440+
WinampIcon,
441+
EMuleIcon,
442+
NeroIcon,
443+
PowerISOIcon,
444+
UltraISOIcon,
445+
DirectXIcon,
446+
VCRedistIcon,
235447
};

0 commit comments

Comments
 (0)