File size: 2,525 Bytes
adbce17
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import { motion } from "motion/react";

export default function AnimatedLogo({ className = "w-8 h-8" }: { className?: string }) {
  return (
    <motion.svg
      className={className}
      viewBox="0 0 100 100"
      fill="none"
      xmlns="http://www.w3.org/2000/svg"
      initial={{ opacity: 0, y: 10 }}
      animate={{ opacity: 1, y: 0 }}
       transition={{ duration: 0.8, ease: [0.32, 0.72, 0, 1] }}
    >
      <defs>
        <linearGradient id="crypto-grad-1" x1="0%" y1="0%" x2="100%" y2="100%">
          <stop offset="0%" stopColor="var(--nt-deep-teal-600)" /> {/* Verdigris 600 */}
          <stop offset="100%" stopColor="var(--nt-terracotta-600)" /> {/* Kiln Ember 600 */}
        </linearGradient>
        <linearGradient id="crypto-grad-2" x1="100%" y1="0%" x2="0%" y2="100%">
          <stop offset="0%" stopColor="var(--nt-deep-teal-700)" /> {/* Verdigris 700 */}
          <stop offset="100%" stopColor="var(--nt-terracotta-700)" /> {/* Kiln Ember 700 */}
        </linearGradient>
        <filter id="neon-glow" x="-20%" y="-20%" width="140%" height="140%">
          <feGaussianBlur stdDeviation="4" result="blur" />
          <feComposite in="SourceGraphic" in2="blur" operator="over" />
        </filter>
      </defs>

      {/* Background glowing element */}
      <motion.polygon
        points="50,5 90,27.5 90,72.5 50,95 10,72.5 10,27.5"
        fill="url(#crypto-grad-1)"
        fillOpacity="0.1"
        stroke="url(#crypto-grad-2)"
        strokeWidth="2"
        filter="url(#neon-glow)"
        initial={{ scale: 0.8, opacity: 0, rotate: -30 }}
        animate={{ scale: 1, opacity: 1, rotate: 0 }}
         transition={{ duration: 1.2, ease: [0.32, 0.72, 0, 1] }}
      />

      {/* Abstract Sharp 'S' inside */}
      <motion.path
        d="M 65 35 L 35 35 L 35 50 L 65 50 L 65 65 L 35 65"
        stroke="url(#crypto-grad-2)"
        strokeWidth="10"
        strokeLinecap="square"
        strokeLinejoin="miter"
        initial={{ pathLength: 0 }}
        animate={{ pathLength: 1 }}
         transition={{ duration: 1.5, ease: [0.32, 0.72, 0, 1], delay: 0.4 }}
      />

      {/* Accent bridging line */}
      <motion.line
        x1="20"
        y1="50"
        x2="80"
        y2="50"
        stroke="url(#crypto-grad-1)"
        strokeWidth="4"
        filter="url(#neon-glow)"
        initial={{ scaleX: 0, opacity: 0 }}
        animate={{ scaleX: 1, opacity: 1 }}
         transition={{ duration: 1, ease: [0.32, 0.72, 0, 1], delay: 1 }}
      />
    </motion.svg>
  );
}