@@ -12,52 +12,142 @@ const { size = 96 } = Astro.props;
1212 height ={ size }
1313 viewBox =" 0 0 512 512"
1414 aria-hidden =" true"
15+ class =" furystack-logo"
1516>
1617 <title >FuryStack</title >
1718 <defs >
18- <linearGradient id =" fs-light" x1 =" 0" y1 =" 0" x2 =" 1" y2 =" 1" >
19- <stop offset =" 0%" stop-color =" #dce6f2" ></stop >
20- <stop offset =" 100%" stop-color =" #aabdd1" ></stop >
19+ <linearGradient id =" fs-silver" x1 =" 0" y1 =" 0" x2 =" 1" y2 =" 1" >
20+ <stop offset =" 0%" stop-color =" #ffffff" ></stop >
21+ <stop offset =" 40%" stop-color =" #f1f5f9" ></stop >
22+ <stop offset =" 100%" stop-color =" #cbd5e1" ></stop >
2123 </linearGradient >
22- <linearGradient id =" fs-mid" x1 =" 0" y1 =" 0" x2 =" 1" y2 =" 1" >
23- <stop offset =" 0%" stop-color =" #c4d4e4" ></stop >
24- <stop offset =" 100%" stop-color =" #8ba3bc" ></stop >
24+
25+ <linearGradient id =" fs-blue" x1 =" 0" y1 =" 0" x2 =" 1" y2 =" 1" >
26+ <stop offset =" 0%" stop-color =" #60a5fa" ></stop >
27+ <stop offset =" 100%" stop-color =" #2563eb" ></stop >
2528 </linearGradient >
29+
2630 <linearGradient id =" fs-dark" x1 =" 0" y1 =" 0" x2 =" 1" y2 =" 1" >
27- <stop offset =" 0%" stop-color =" #abc0d6 " ></stop >
28- <stop offset =" 100%" stop-color =" #7694b0 " ></stop >
31+ <stop offset =" 0%" stop-color =" #475569 " ></stop >
32+ <stop offset =" 100%" stop-color =" #1e293b " ></stop >
2933 </linearGradient >
30- <filter id =" fs-shadow" x =" -20%" y =" -20%" width =" 140%" height =" 140%" >
31- <feDropShadow dx =" 0" dy =" 4" stdDeviation =" 6" flood-color =" #000" flood-opacity =" 0.15"
32- ></feDropShadow >
34+
35+ <filter id =" fs-glow" x =" -50%" y =" -50%" width =" 200%" height =" 200%" >
36+ <feGaussianBlur in =" SourceAlpha" stdDeviation =" 12" result =" blur" ></feGaussianBlur >
37+ <feFlood flood-color =" #3b82f6" flood-opacity =" 0.25" result =" color" ></feFlood >
38+ <feComposite in =" color" in2 =" blur" operator =" in" result =" shadow" ></feComposite >
39+ <feComposite in =" SourceGraphic" in2 =" shadow" operator =" over" ></feComposite >
3340 </filter >
3441 </defs >
35- <g
36- stroke =" #f0f6fc"
37- stroke-width =" 3"
38- stroke-linejoin =" round"
39- stroke-linecap =" round"
40- filter =" url(#fs-shadow)"
41- >
42+
43+ <g filter =" url(#fs-glow)" stroke =" none" >
4244 <!-- Left Pillar -->
43- <path d =" M12 48 L90 126 V448 H12 Z" fill =" url(#fs-light)" ></path >
45+ <path d =" M20 60 L100 140 V442 A6 6 0 0 1 94 448 H26 A6 6 0 0 1 20 442 Z" fill =" url(#fs-silver)"
46+ ></path >
4447
45- <!-- Middle -Left Block -->
46- <path d =" M114 150 L192 228 V330 L114 252 Z" fill =" url(#fs-mid )" ></path >
48+ <!-- Bottom -Left Triangle (Aligned to Pillar) -->
49+ <path d =" M120 448 H204 A6 6 0 0 0 210 442 V358 L120 448 Z" fill =" url(#fs-silver )" ></path >
4750
48- <!-- Bottom-Left Triangle -->
49- <path d =" M114 370 L192 448 H114 Z" fill =" url(#fs-light)" ></path >
51+ <!-- Center Inverted Triangle (Symmetrical Gap) -->
52+ <path
53+ d =" M180 120 H332 A4 4 0 0 1 335 127 L262 195 A8 8 0 0 1 250 195 L177 127 A4 4 0 0 1 180 120 Z"
54+ fill =" url(#fs-silver)" ></path >
5055
51- <!-- Center Inverted Triangle -->
52- <path d =" M192 126 H318 L255 189 Z" fill =" url(#fs-light )" ></path >
56+ <!-- Middle-Left Bridge (Centered between pillar and stack) -->
57+ <path d =" M120 170 L210 260 L120 350 Z" fill =" url(#fs-blue )" ></path >
5358
54- <!-- Right Stack 1 (Short) -->
55- <path d =" M216 330 L294 252 V448 H216 Z" fill =" url(#fs-mid)" ></path >
59+ <!-- Right Stack 1 -->
60+ <path
61+ d =" M230 330 L310 250 V442 A6 6 0 0 1 304 448 H236 A6 6 0 0 1 230 442 Z"
62+ fill =" url(#fs-blue)" ></path >
5663
57- <!-- Right Stack 2 (Medium) -->
58- <path d =" M318 228 L396 150 V448 H318 Z" fill =" url(#fs-mid)" ></path >
64+ <!-- Right Stack 2 -->
65+ <path
66+ d =" M330 230 L410 150 V442 A6 6 0 0 1 404 448 H336 A6 6 0 0 1 330 442 Z"
67+ fill =" url(#fs-blue)" ></path >
5968
60- <!-- Right Stack 3 (Tall) -->
61- <path d =" M420 126 L498 48 V448 H420 Z" fill =" url(#fs-dark)" ></path >
69+ <!-- Right Stack 3 (Dark Anchor) -->
70+ <path
71+ d =" M430 130 L510 50 V442 A6 6 0 0 1 504 448 H436 A6 6 0 0 1 430 442 Z"
72+ fill =" url(#fs-dark)" ></path >
6273 </g >
6374</svg >
75+
76+ <style >
77+ /* Base transitions for hover effects if needed later */
78+ .furystack-logo {
79+ overflow: visible; /* Allow glow to spill out */
80+ }
81+
82+ /* Animations */
83+ @media (prefers-reduced-motion: no-preference) {
84+ .fs-shape {
85+ transform-box: fill-box;
86+ transform-origin: bottom center;
87+ opacity: 0;
88+ animation-duration: 0.8s;
89+ animation-timing-function: cubic-bezier(0.2, 0.8, 0.2, 1);
90+ animation-fill-mode: forwards;
91+ }
92+
93+ .fs-slide-right {
94+ animation-name: fs-slide-right;
95+ transform-origin: center center;
96+ }
97+
98+ .fs-fade-down {
99+ animation-name: fs-fade-down;
100+ transform-origin: top center;
101+ }
102+
103+ .fs-grow-up {
104+ animation-name: fs-grow-up;
105+ }
106+
107+ .fs-delay-1 {
108+ animation-delay: 0.1s;
109+ }
110+ .fs-delay-2 {
111+ animation-delay: 0.2s;
112+ }
113+ .fs-delay-3 {
114+ animation-delay: 0.3s;
115+ }
116+ .fs-delay-4 {
117+ animation-delay: 0.4s;
118+ }
119+
120+ @keyframes fs-slide-right {
121+ from {
122+ opacity: 0;
123+ transform: translateX(-20px);
124+ }
125+ to {
126+ opacity: 1;
127+ transform: translateX(0);
128+ }
129+ }
130+
131+ @keyframes fs-fade-down {
132+ from {
133+ opacity: 0;
134+ transform: translateY(-20px);
135+ }
136+ to {
137+ opacity: 1;
138+ transform: translateY(0);
139+ }
140+ }
141+
142+ @keyframes fs-grow-up {
143+ from {
144+ opacity: 0;
145+ transform: scaleY(0.4);
146+ }
147+ to {
148+ opacity: 1;
149+ transform: scaleY(1);
150+ }
151+ }
152+ }
153+ </style >
0 commit comments