SpoolIcon.tsx 820 B

123456789101112131415161718192021222324252627
  1. interface SpoolIconProps {
  2. color: string;
  3. isEmpty: boolean;
  4. size?: number;
  5. }
  6. export function SpoolIcon({ color, isEmpty, size = 32 }: SpoolIconProps) {
  7. if (isEmpty) {
  8. return (
  9. <div
  10. className="rounded-full border-2 border-dashed border-zinc-500 flex items-center justify-center"
  11. style={{ width: size, height: size }}
  12. >
  13. <div className="w-2 h-2 rounded-full bg-zinc-600" />
  14. </div>
  15. );
  16. }
  17. return (
  18. <svg width={size} height={size} viewBox="0 0 32 32">
  19. {/* Outer ring with white stroke for visibility */}
  20. <circle cx="16" cy="16" r="14" fill={color} stroke="white" strokeWidth="1.5" strokeOpacity="0.7" />
  21. {/* Inner shadow/depth */}
  22. <circle cx="16" cy="16" r="11" fill={color} style={{ filter: 'brightness(0.85)' }} />
  23. </svg>
  24. );
  25. }