Logo.tsx 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import React from 'react';
  2. interface LogoProps {
  3. className?: string;
  4. size?: number;
  5. withText?: boolean;
  6. textClassName?: string;
  7. }
  8. export const Logo: React.FC<LogoProps> = ({ className = '', size = 32, withText = false, textClassName = '' }) => {
  9. return (
  10. <div className={`flex items-center gap-3 ${className}`}>
  11. <div className="relative flex items-center justify-center" style={{ width: size, height: size }}>
  12. {/* Glow effect */}
  13. <div className="absolute inset-0 bg-blue-500/30 blur-xl rounded-full" />
  14. <svg
  15. width={size}
  16. height={size}
  17. viewBox="0 0 40 40"
  18. fill="none"
  19. xmlns="http://www.w3.org/2000/svg"
  20. className="relative z-10"
  21. >
  22. <rect width="40" height="40" rx="12" fill="url(#logo-gradient)" />
  23. <path
  24. d="M20 10C20 10 24 18 28 20C24 22 20 30 20 30C20 30 16 22 12 20C16 18 20 10 20 10Z"
  25. fill="white"
  26. className="drop-shadow-sm"
  27. />
  28. <defs>
  29. <linearGradient id="logo-gradient" x1="0" y1="0" x2="40" y2="40" gradientUnits="userSpaceOnUse">
  30. <stop offset="0%" stopColor="#2563EB" /> {/* Blue 600 */}
  31. <stop offset="50%" stopColor="#4F46E5" /> {/* Indigo 600 */}
  32. <stop offset="100%" stopColor="#7C3AED" /> {/* Violet 600 */}
  33. </linearGradient>
  34. </defs>
  35. </svg>
  36. </div>
  37. {withText && (
  38. <span className={`font-bold text-xl tracking-tight bg-gradient-to-r from-blue-400 to-indigo-300 bg-clip-text text-transparent ${textClassName}`}>
  39. AuraK
  40. </span>
  41. )}
  42. </div>
  43. );
  44. };