@zero-transfer/sdk 0.1.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +177 -0
- package/LICENSE +21 -0
- package/README.md +285 -0
- package/assets/zero-transfer-logo.svg +201 -0
- package/dist/index.cjs +11812 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.mts +4186 -0
- package/dist/index.d.ts +4186 -0
- package/dist/index.mjs +11650 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +94 -0
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 880 200" width="880" height="200" role="img" aria-label="Zero Transfer">
|
|
2
|
+
<defs>
|
|
3
|
+
<!--
|
|
4
|
+
The 3D ring illusion works by COMBINING two animations on each ring:
|
|
5
|
+
1. animateTransform rotate on the GROUP → the ring's plane tilts/gyrates in 2D
|
|
6
|
+
2. animate ry on the ELLIPSE → ry oscillates 22→56→22→5→22
|
|
7
|
+
This approximates the projection of a 3D ring rotating through one full turn:
|
|
8
|
+
56≈face-on (near), 22≈tilted, 5≈edge-on (far). The human visual system reads
|
|
9
|
+
the compound motion as genuine 3D rotation.
|
|
10
|
+
-->
|
|
11
|
+
|
|
12
|
+
<!-- Color-shifting accent – the stop-colors drift between cyan/indigo/violet -->
|
|
13
|
+
<linearGradient id="gAccent" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
14
|
+
<stop offset="0%" stop-color="#22d3ee">
|
|
15
|
+
<animate attributeName="stop-color"
|
|
16
|
+
values="#22d3ee;#818cf8;#22d3ee" dur="7s" repeatCount="indefinite"/>
|
|
17
|
+
</stop>
|
|
18
|
+
<stop offset="100%" stop-color="#c084fc">
|
|
19
|
+
<animate attributeName="stop-color"
|
|
20
|
+
values="#c084fc;#06b6d4;#c084fc" dur="7s" repeatCount="indefinite"/>
|
|
21
|
+
</stop>
|
|
22
|
+
</linearGradient>
|
|
23
|
+
|
|
24
|
+
<!-- Nucleus glow -->
|
|
25
|
+
<filter id="nucGlow" x="-100%" y="-100%" width="300%" height="300%">
|
|
26
|
+
<feGaussianBlur stdDeviation="4" result="b"/>
|
|
27
|
+
<feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge>
|
|
28
|
+
</filter>
|
|
29
|
+
|
|
30
|
+
<!-- Sweep bar glow -->
|
|
31
|
+
<filter id="sweepGlow" x="-50%" y="-300%" width="200%" height="700%">
|
|
32
|
+
<feGaussianBlur stdDeviation="2.5" result="b"/>
|
|
33
|
+
<feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge>
|
|
34
|
+
</filter>
|
|
35
|
+
|
|
36
|
+
<!-- Clips the sweep highlight so it never exits the track bounds -->
|
|
37
|
+
<clipPath id="barClip">
|
|
38
|
+
<rect x="0" y="145" width="600" height="12"/>
|
|
39
|
+
</clipPath>
|
|
40
|
+
</defs>
|
|
41
|
+
|
|
42
|
+
<!-- ╔══════════════════════════════════════════════╗ -->
|
|
43
|
+
<!-- ║ ATOM MARK (centred at 106,100) ║ -->
|
|
44
|
+
<!-- ╚══════════════════════════════════════════════╝ -->
|
|
45
|
+
<g transform="translate(106,100)">
|
|
46
|
+
|
|
47
|
+
<!-- Soft breathing halo — gives the mark a "live energy" feel -->
|
|
48
|
+
<circle r="70" fill="none" stroke="url(#gAccent)" stroke-width="1" opacity="0.06">
|
|
49
|
+
<animate attributeName="r" values="66;76;66" dur="5.5s" repeatCount="indefinite"/>
|
|
50
|
+
<animate attributeName="opacity" values="0.03;0.11;0.03" dur="5.5s" repeatCount="indefinite"/>
|
|
51
|
+
</circle>
|
|
52
|
+
|
|
53
|
+
<!-- Ambient particles around the mark (twinkle, no motion to keep it clean) -->
|
|
54
|
+
<circle cx="-67" cy="-20" r="1.8" fill="#22d3ee">
|
|
55
|
+
<animate attributeName="opacity" values="0.12;0.65;0.12" dur="2.4s" repeatCount="indefinite"/>
|
|
56
|
+
</circle>
|
|
57
|
+
<circle cx="69" cy="14" r="1.4" fill="#c084fc">
|
|
58
|
+
<animate attributeName="opacity" values="0.08;0.5;0.08" dur="3.2s" begin="0.9s" repeatCount="indefinite"/>
|
|
59
|
+
</circle>
|
|
60
|
+
<circle cx="-28" cy="67" r="1.6" fill="#818cf8">
|
|
61
|
+
<animate attributeName="opacity" values="0.1;0.55;0.1" dur="2.9s" begin="1.6s" repeatCount="indefinite"/>
|
|
62
|
+
</circle>
|
|
63
|
+
<circle cx="44" cy="-60" r="1.4" fill="#22d3ee">
|
|
64
|
+
<animate attributeName="opacity" values="0.1;0.45;0.1" dur="3.7s" begin="0.5s" repeatCount="indefinite"/>
|
|
65
|
+
</circle>
|
|
66
|
+
<circle cx="55" cy="-38" r="1.2" fill="#c084fc">
|
|
67
|
+
<animate attributeName="opacity" values="0.08;0.4;0.08" dur="2.1s" begin="1.2s" repeatCount="indefinite"/>
|
|
68
|
+
</circle>
|
|
69
|
+
|
|
70
|
+
<!-- ─── RING A (cyan, plane gyrates CW 18 s, ry starts phase 0) ─── -->
|
|
71
|
+
<g>
|
|
72
|
+
<animateTransform attributeName="transform" type="rotate"
|
|
73
|
+
from="0" to="360" dur="18s" repeatCount="indefinite"/>
|
|
74
|
+
<!-- ghost track -->
|
|
75
|
+
<ellipse rx="62" ry="22" fill="none" stroke="#22d3ee" stroke-width="0.75" opacity="0.1"/>
|
|
76
|
+
<!-- 3D-tipping ring -->
|
|
77
|
+
<ellipse rx="62" ry="22" fill="none" stroke="#22d3ee" stroke-linecap="round">
|
|
78
|
+
<animate attributeName="ry"
|
|
79
|
+
values="22;56;22;5;22" keyTimes="0;0.25;0.5;0.75;1"
|
|
80
|
+
dur="7s" repeatCount="indefinite"
|
|
81
|
+
calcMode="spline"
|
|
82
|
+
keySplines="0.42 0 0.58 1;0.42 0 0.58 1;0.42 0 0.58 1;0.42 0 0.58 1"/>
|
|
83
|
+
<animate attributeName="stroke-width"
|
|
84
|
+
values="1.5;3.2;1.5;0.7;1.5" keyTimes="0;0.25;0.5;0.75;1" dur="7s" repeatCount="indefinite"/>
|
|
85
|
+
<animate attributeName="stroke-opacity"
|
|
86
|
+
values="0.28;0.95;0.28;0.5;0.28" keyTimes="0;0.25;0.5;0.75;1" dur="7s" repeatCount="indefinite"/>
|
|
87
|
+
</ellipse>
|
|
88
|
+
<!-- comet dash -->
|
|
89
|
+
<ellipse rx="62" ry="22" fill="none" stroke="#22d3ee"
|
|
90
|
+
stroke-width="3" stroke-dasharray="68 232" stroke-linecap="round" opacity="0.85">
|
|
91
|
+
<animate attributeName="stroke-dashoffset" values="0;-300" dur="2.2s" repeatCount="indefinite"/>
|
|
92
|
+
</ellipse>
|
|
93
|
+
</g>
|
|
94
|
+
|
|
95
|
+
<!-- ─── RING B (indigo, plane gyrates CCW 24 s, ry phase +2.33 s) ─── -->
|
|
96
|
+
<g>
|
|
97
|
+
<animateTransform attributeName="transform" type="rotate"
|
|
98
|
+
from="60" to="-300" dur="24s" repeatCount="indefinite"/>
|
|
99
|
+
<ellipse rx="62" ry="22" fill="none" stroke="#818cf8" stroke-width="0.75" opacity="0.1"/>
|
|
100
|
+
<ellipse rx="62" ry="22" fill="none" stroke="#818cf8" stroke-linecap="round">
|
|
101
|
+
<animate attributeName="ry"
|
|
102
|
+
values="22;56;22;5;22" keyTimes="0;0.25;0.5;0.75;1"
|
|
103
|
+
dur="7s" begin="2.33s" repeatCount="indefinite"
|
|
104
|
+
calcMode="spline"
|
|
105
|
+
keySplines="0.42 0 0.58 1;0.42 0 0.58 1;0.42 0 0.58 1;0.42 0 0.58 1"/>
|
|
106
|
+
<animate attributeName="stroke-width"
|
|
107
|
+
values="1.5;3.2;1.5;0.7;1.5" keyTimes="0;0.25;0.5;0.75;1" dur="7s" begin="2.33s" repeatCount="indefinite"/>
|
|
108
|
+
<animate attributeName="stroke-opacity"
|
|
109
|
+
values="0.28;0.95;0.28;0.5;0.28" keyTimes="0;0.25;0.5;0.75;1" dur="7s" begin="2.33s" repeatCount="indefinite"/>
|
|
110
|
+
</ellipse>
|
|
111
|
+
<ellipse rx="62" ry="22" fill="none" stroke="#818cf8"
|
|
112
|
+
stroke-width="3" stroke-dasharray="68 232" stroke-linecap="round" opacity="0.85">
|
|
113
|
+
<animate attributeName="stroke-dashoffset" values="0;-300" dur="2.8s" repeatCount="indefinite"/>
|
|
114
|
+
</ellipse>
|
|
115
|
+
</g>
|
|
116
|
+
|
|
117
|
+
<!-- ─── RING C (violet, plane gyrates CW 21 s, ry phase +4.67 s) ─── -->
|
|
118
|
+
<g>
|
|
119
|
+
<animateTransform attributeName="transform" type="rotate"
|
|
120
|
+
from="120" to="480" dur="21s" repeatCount="indefinite"/>
|
|
121
|
+
<ellipse rx="62" ry="22" fill="none" stroke="#c084fc" stroke-width="0.75" opacity="0.1"/>
|
|
122
|
+
<ellipse rx="62" ry="22" fill="none" stroke="#c084fc" stroke-linecap="round">
|
|
123
|
+
<animate attributeName="ry"
|
|
124
|
+
values="22;56;22;5;22" keyTimes="0;0.25;0.5;0.75;1"
|
|
125
|
+
dur="7s" begin="4.67s" repeatCount="indefinite"
|
|
126
|
+
calcMode="spline"
|
|
127
|
+
keySplines="0.42 0 0.58 1;0.42 0 0.58 1;0.42 0 0.58 1;0.42 0 0.58 1"/>
|
|
128
|
+
<animate attributeName="stroke-width"
|
|
129
|
+
values="1.5;3.2;1.5;0.7;1.5" keyTimes="0;0.25;0.5;0.75;1" dur="7s" begin="4.67s" repeatCount="indefinite"/>
|
|
130
|
+
<animate attributeName="stroke-opacity"
|
|
131
|
+
values="0.28;0.95;0.28;0.5;0.28" keyTimes="0;0.25;0.5;0.75;1" dur="7s" begin="4.67s" repeatCount="indefinite"/>
|
|
132
|
+
</ellipse>
|
|
133
|
+
<ellipse rx="62" ry="22" fill="none" stroke="#c084fc"
|
|
134
|
+
stroke-width="3" stroke-dasharray="68 232" stroke-linecap="round" opacity="0.85">
|
|
135
|
+
<animate attributeName="stroke-dashoffset" values="0;-300" dur="3.4s" repeatCount="indefinite"/>
|
|
136
|
+
</ellipse>
|
|
137
|
+
</g>
|
|
138
|
+
|
|
139
|
+
<!-- Nucleus — sits on top of all rings, dark fill masks ring backs for z-depth -->
|
|
140
|
+
<circle r="14" fill="#08111e"/>
|
|
141
|
+
<circle r="14" fill="none" stroke="url(#gAccent)" stroke-width="2" filter="url(#nucGlow)">
|
|
142
|
+
<animate attributeName="r" values="13;15;13" dur="4s" repeatCount="indefinite"/>
|
|
143
|
+
<animate attributeName="stroke-opacity" values="0.5;1;0.5" dur="4s" repeatCount="indefinite"/>
|
|
144
|
+
</circle>
|
|
145
|
+
<!-- Z glyph — no fill, no stroke beyond the gradient line -->
|
|
146
|
+
<path d="M -7,-5 L 7,-5 L -7,5 L 7,5"
|
|
147
|
+
fill="none" stroke="url(#gAccent)"
|
|
148
|
+
stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round">
|
|
149
|
+
<animate attributeName="opacity" values="0.65;1;0.65" dur="4s" repeatCount="indefinite"/>
|
|
150
|
+
</path>
|
|
151
|
+
</g>
|
|
152
|
+
|
|
153
|
+
<!-- ╔══════════════════════════════════════════════╗ -->
|
|
154
|
+
<!-- ║ WORDMARK ║ -->
|
|
155
|
+
<!-- ╚══════════════════════════════════════════════╝ -->
|
|
156
|
+
<g transform="translate(220,0)"
|
|
157
|
+
font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Inter, system-ui, sans-serif">
|
|
158
|
+
|
|
159
|
+
<!-- "zero" — clean off-white, gentle breath (no stroke, no shadow) -->
|
|
160
|
+
<g>
|
|
161
|
+
<animate attributeName="opacity" values="0.82;1;0.82" dur="5.5s" repeatCount="indefinite"/>
|
|
162
|
+
<text x="0" y="108" font-size="62" font-weight="800"
|
|
163
|
+
fill="#f1f5f9" letter-spacing="-2">zero</text>
|
|
164
|
+
</g>
|
|
165
|
+
|
|
166
|
+
<!-- "transfer" — animated gradient, out-of-phase with "zero" -->
|
|
167
|
+
<g>
|
|
168
|
+
<animate attributeName="opacity" values="1;0.86;1" dur="5.5s" repeatCount="indefinite"/>
|
|
169
|
+
<text x="153" y="108" font-size="62" font-weight="800"
|
|
170
|
+
fill="url(#gAccent)" letter-spacing="-2">transfer</text>
|
|
171
|
+
</g>
|
|
172
|
+
|
|
173
|
+
<!-- Tagline -->
|
|
174
|
+
<g>
|
|
175
|
+
<animate attributeName="opacity" values="0.55;0.85;0.55" dur="8s" repeatCount="indefinite"/>
|
|
176
|
+
<text x="3" y="138" font-size="11.5" font-weight="600" letter-spacing="2.5">
|
|
177
|
+
<tspan fill="#94a3b8">UNIVERSAL TRANSFER SDK</tspan>
|
|
178
|
+
<tspan fill="#2d3f55"> · </tspan><tspan fill="#64748b">FTP</tspan>
|
|
179
|
+
<tspan fill="#2d3f55"> · </tspan><tspan fill="#64748b">FTPS</tspan>
|
|
180
|
+
<tspan fill="#2d3f55"> · </tspan><tspan fill="#64748b">SFTP</tspan>
|
|
181
|
+
<tspan fill="#2d3f55"> · </tspan><tspan fill="#64748b">S3</tspan>
|
|
182
|
+
<tspan fill="#2d3f55"> · </tspan><tspan fill="#64748b">HTTP</tspan>
|
|
183
|
+
</text>
|
|
184
|
+
</g>
|
|
185
|
+
|
|
186
|
+
<!-- Static track -->
|
|
187
|
+
<rect x="0" y="153" width="600" height="1.5" rx="1" fill="#1c2a3a"/>
|
|
188
|
+
|
|
189
|
+
<!-- Sweep highlight — clipped so it never exits the track -->
|
|
190
|
+
<g clip-path="url(#barClip)">
|
|
191
|
+
<rect x="-130" y="152.5" width="130" height="2" rx="1"
|
|
192
|
+
fill="url(#gAccent)" filter="url(#sweepGlow)">
|
|
193
|
+
<animate attributeName="x"
|
|
194
|
+
values="-130;600;-130" dur="5.5s" repeatCount="indefinite"/>
|
|
195
|
+
<animate attributeName="opacity"
|
|
196
|
+
values="0;0.85;1;0.85;0" keyTimes="0;0.07;0.5;0.93;1"
|
|
197
|
+
dur="5.5s" repeatCount="indefinite"/>
|
|
198
|
+
</rect>
|
|
199
|
+
</g>
|
|
200
|
+
</g>
|
|
201
|
+
</svg>
|