@farzadbagheri/fb-components 0.1.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/LICENSE +21 -0
- package/README.md +131 -0
- package/dist/ai.cjs +16 -0
- package/dist/ai.cjs.map +1 -0
- package/dist/ai.css +176 -0
- package/dist/ai.css.map +1 -0
- package/dist/ai.d.cts +33 -0
- package/dist/ai.d.ts +33 -0
- package/dist/ai.js +3 -0
- package/dist/ai.js.map +1 -0
- package/dist/backgrounds.cjs +32 -0
- package/dist/backgrounds.cjs.map +1 -0
- package/dist/backgrounds.css +253 -0
- package/dist/backgrounds.css.map +1 -0
- package/dist/backgrounds.d.cts +71 -0
- package/dist/backgrounds.d.ts +71 -0
- package/dist/backgrounds.js +3 -0
- package/dist/backgrounds.js.map +1 -0
- package/dist/buttons.cjs +20 -0
- package/dist/buttons.cjs.map +1 -0
- package/dist/buttons.css +116 -0
- package/dist/buttons.css.map +1 -0
- package/dist/buttons.d.cts +40 -0
- package/dist/buttons.d.ts +40 -0
- package/dist/buttons.js +3 -0
- package/dist/buttons.js.map +1 -0
- package/dist/chunk-4FWJRWS5.cjs +125 -0
- package/dist/chunk-4FWJRWS5.cjs.map +1 -0
- package/dist/chunk-BSEOOGOV.cjs +217 -0
- package/dist/chunk-BSEOOGOV.cjs.map +1 -0
- package/dist/chunk-C3ASXASL.cjs +205 -0
- package/dist/chunk-C3ASXASL.cjs.map +1 -0
- package/dist/chunk-CTD2GDO6.cjs +121 -0
- package/dist/chunk-CTD2GDO6.cjs.map +1 -0
- package/dist/chunk-EIE6FLCL.js +202 -0
- package/dist/chunk-EIE6FLCL.js.map +1 -0
- package/dist/chunk-H2AV67DY.cjs +260 -0
- package/dist/chunk-H2AV67DY.cjs.map +1 -0
- package/dist/chunk-H6Y3EJPA.cjs +83 -0
- package/dist/chunk-H6Y3EJPA.cjs.map +1 -0
- package/dist/chunk-JHOJY54P.js +123 -0
- package/dist/chunk-JHOJY54P.js.map +1 -0
- package/dist/chunk-JWV3IITG.js +80 -0
- package/dist/chunk-JWV3IITG.js.map +1 -0
- package/dist/chunk-K5QRX5CZ.js +194 -0
- package/dist/chunk-K5QRX5CZ.js.map +1 -0
- package/dist/chunk-MKCSRMHF.cjs +198 -0
- package/dist/chunk-MKCSRMHF.cjs.map +1 -0
- package/dist/chunk-R2F3FTBL.js +119 -0
- package/dist/chunk-R2F3FTBL.js.map +1 -0
- package/dist/chunk-ROKPXWY2.cjs +198 -0
- package/dist/chunk-ROKPXWY2.cjs.map +1 -0
- package/dist/chunk-RUSFF3MZ.js +214 -0
- package/dist/chunk-RUSFF3MZ.js.map +1 -0
- package/dist/chunk-T7CC3CLH.js +195 -0
- package/dist/chunk-T7CC3CLH.js.map +1 -0
- package/dist/chunk-UWQ5QNE3.cjs +311 -0
- package/dist/chunk-UWQ5QNE3.cjs.map +1 -0
- package/dist/chunk-WDUETPNG.js +256 -0
- package/dist/chunk-WDUETPNG.js.map +1 -0
- package/dist/chunk-YQSTEIU5.js +304 -0
- package/dist/chunk-YQSTEIU5.js.map +1 -0
- package/dist/data.cjs +20 -0
- package/dist/data.cjs.map +1 -0
- package/dist/data.css +151 -0
- package/dist/data.css.map +1 -0
- package/dist/data.d.cts +47 -0
- package/dist/data.d.ts +47 -0
- package/dist/data.js +3 -0
- package/dist/data.js.map +1 -0
- package/dist/heroes.cjs +12 -0
- package/dist/heroes.cjs.map +1 -0
- package/dist/heroes.css +190 -0
- package/dist/heroes.css.map +1 -0
- package/dist/heroes.d.cts +19 -0
- package/dist/heroes.d.ts +19 -0
- package/dist/heroes.js +3 -0
- package/dist/heroes.js.map +1 -0
- package/dist/index.cjs +104 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.css +1269 -0
- package/dist/index.css.map +1 -0
- package/dist/index.d.cts +10 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/landing.cjs +12 -0
- package/dist/landing.cjs.map +1 -0
- package/dist/landing.css +137 -0
- package/dist/landing.css.map +1 -0
- package/dist/landing.d.cts +14 -0
- package/dist/landing.d.ts +14 -0
- package/dist/landing.js +3 -0
- package/dist/landing.js.map +1 -0
- package/dist/motion.cjs +16 -0
- package/dist/motion.cjs.map +1 -0
- package/dist/motion.css +79 -0
- package/dist/motion.css.map +1 -0
- package/dist/motion.d.cts +26 -0
- package/dist/motion.d.ts +26 -0
- package/dist/motion.js +3 -0
- package/dist/motion.js.map +1 -0
- package/dist/text.cjs +16 -0
- package/dist/text.cjs.map +1 -0
- package/dist/text.css +72 -0
- package/dist/text.css.map +1 -0
- package/dist/text.d.cts +28 -0
- package/dist/text.d.ts +28 -0
- package/dist/text.js +3 -0
- package/dist/text.js.map +1 -0
- package/dist/ui.cjs +16 -0
- package/dist/ui.cjs.map +1 -0
- package/dist/ui.css +95 -0
- package/dist/ui.css.map +1 -0
- package/dist/ui.d.cts +28 -0
- package/dist/ui.d.ts +28 -0
- package/dist/ui.js +3 -0
- package/dist/ui.js.map +1 -0
- package/package.json +134 -0
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
/* src/backgrounds/PredictiveArc.css */
|
|
2
|
+
.fb-predictive-arc {
|
|
3
|
+
position: relative;
|
|
4
|
+
width: 100%;
|
|
5
|
+
height: 100%;
|
|
6
|
+
overflow: hidden;
|
|
7
|
+
background: var( --predictive-arc-background, #0d0d11 );
|
|
8
|
+
}
|
|
9
|
+
.fb-predictive-arc__line {
|
|
10
|
+
position: absolute;
|
|
11
|
+
left: 50%;
|
|
12
|
+
top: 60%;
|
|
13
|
+
border-radius: 50%;
|
|
14
|
+
border-left: 0;
|
|
15
|
+
border-right: 0;
|
|
16
|
+
border-bottom: 0;
|
|
17
|
+
transform: translate(-50%, -50%);
|
|
18
|
+
border-top: var( --predictive-arc-thickness, 3px ) solid var( --predictive-arc-color, #9b7cff );
|
|
19
|
+
box-shadow: 0 0 var( --predictive-arc-glow, 16px ) var( --predictive-arc-color, #9b7cff );
|
|
20
|
+
}
|
|
21
|
+
.fb-predictive-arc__line--outer {
|
|
22
|
+
width: var( --predictive-arc-size, 70% );
|
|
23
|
+
height: 45%;
|
|
24
|
+
}
|
|
25
|
+
.fb-predictive-arc__line--inner {
|
|
26
|
+
width: 50%;
|
|
27
|
+
height: 32%;
|
|
28
|
+
opacity: 0.4;
|
|
29
|
+
}
|
|
30
|
+
.fb-predictive-arc__point {
|
|
31
|
+
position: absolute;
|
|
32
|
+
top: 60%;
|
|
33
|
+
width: 7px;
|
|
34
|
+
height: 7px;
|
|
35
|
+
border-radius: 50%;
|
|
36
|
+
background: var( --predictive-arc-color, #9b7cff );
|
|
37
|
+
box-shadow: 0 0 16px var( --predictive-arc-color, #9b7cff );
|
|
38
|
+
}
|
|
39
|
+
.fb-predictive-arc__point--left {
|
|
40
|
+
left: 20%;
|
|
41
|
+
}
|
|
42
|
+
.fb-predictive-arc__point--right {
|
|
43
|
+
right: 20%;
|
|
44
|
+
}
|
|
45
|
+
.fb-predictive-arc--animated .fb-predictive-arc__line--outer {
|
|
46
|
+
animation: fbPredictiveArcPulse 2.8s ease-in-out infinite alternate;
|
|
47
|
+
}
|
|
48
|
+
@keyframes fbPredictiveArcPulse {
|
|
49
|
+
from {
|
|
50
|
+
opacity: 0.55;
|
|
51
|
+
transform: translate(-50%, -50%) scale(0.98);
|
|
52
|
+
}
|
|
53
|
+
to {
|
|
54
|
+
opacity: 1;
|
|
55
|
+
transform: translate(-50%, -50%) scale(1.02);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
@media (prefers-reduced-motion: reduce) {
|
|
59
|
+
.fb-predictive-arc * {
|
|
60
|
+
animation: none !important;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/* src/backgrounds/SignalParticles.css */
|
|
65
|
+
.fb-signal-particles {
|
|
66
|
+
position: relative;
|
|
67
|
+
width: 100%;
|
|
68
|
+
height: 100%;
|
|
69
|
+
overflow: hidden;
|
|
70
|
+
}
|
|
71
|
+
.fb-signal-particles__particle {
|
|
72
|
+
position: absolute;
|
|
73
|
+
border-radius: 50%;
|
|
74
|
+
}
|
|
75
|
+
.fb-signal-particles__particle--animated {
|
|
76
|
+
animation: fbSignalParticle 3s ease-in-out infinite alternate;
|
|
77
|
+
}
|
|
78
|
+
@keyframes fbSignalParticle {
|
|
79
|
+
from {
|
|
80
|
+
opacity: 0.2;
|
|
81
|
+
transform: scale(0.7);
|
|
82
|
+
}
|
|
83
|
+
to {
|
|
84
|
+
opacity: 1;
|
|
85
|
+
transform: scale(1.2);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
@media (prefers-reduced-motion: reduce) {
|
|
89
|
+
.fb-signal-particles__particle {
|
|
90
|
+
animation: none !important;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/* src/backgrounds/DotMatrix.css */
|
|
95
|
+
.fb-dot-matrix {
|
|
96
|
+
width: 100%;
|
|
97
|
+
height: 100%;
|
|
98
|
+
}
|
|
99
|
+
.fb-dot-matrix--fade {
|
|
100
|
+
mask-image:
|
|
101
|
+
radial-gradient(
|
|
102
|
+
circle,
|
|
103
|
+
#000 30%,
|
|
104
|
+
transparent 80%);
|
|
105
|
+
-webkit-mask-image:
|
|
106
|
+
radial-gradient(
|
|
107
|
+
circle,
|
|
108
|
+
#000 30%,
|
|
109
|
+
transparent 80%);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/* src/backgrounds/GradientMesh.css */
|
|
113
|
+
.fb-gradient-mesh {
|
|
114
|
+
position: relative;
|
|
115
|
+
width: 100%;
|
|
116
|
+
height: 100%;
|
|
117
|
+
overflow: hidden;
|
|
118
|
+
}
|
|
119
|
+
.fb-gradient-mesh__layer {
|
|
120
|
+
position: absolute;
|
|
121
|
+
inset: -25%;
|
|
122
|
+
}
|
|
123
|
+
.fb-gradient-mesh__layer--animated {
|
|
124
|
+
animation: fbGradientMeshMove 8s ease-in-out infinite alternate;
|
|
125
|
+
}
|
|
126
|
+
@keyframes fbGradientMeshMove {
|
|
127
|
+
from {
|
|
128
|
+
transform: translate3d(-3%, -2%, 0) scale(1);
|
|
129
|
+
}
|
|
130
|
+
to {
|
|
131
|
+
transform: translate3d(6%, 5%, 0) scale(1.12);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
@media (prefers-reduced-motion: reduce) {
|
|
135
|
+
.fb-gradient-mesh__layer {
|
|
136
|
+
animation: none !important;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/* src/backgrounds/AuroraGrid.css */
|
|
141
|
+
.fb-aurora-grid {
|
|
142
|
+
position: relative;
|
|
143
|
+
width: 100%;
|
|
144
|
+
height: 100%;
|
|
145
|
+
overflow: hidden;
|
|
146
|
+
}
|
|
147
|
+
.fb-aurora-grid__grid {
|
|
148
|
+
position: absolute;
|
|
149
|
+
inset: -35%;
|
|
150
|
+
transform: perspective(600px) rotateX(58deg) scale(1.35);
|
|
151
|
+
transform-origin: center bottom;
|
|
152
|
+
}
|
|
153
|
+
.fb-aurora-grid__grid--animated {
|
|
154
|
+
animation: fbAuroraGridMove 8s linear infinite;
|
|
155
|
+
}
|
|
156
|
+
.fb-aurora-grid__glow {
|
|
157
|
+
position: absolute;
|
|
158
|
+
left: 50%;
|
|
159
|
+
bottom: -18%;
|
|
160
|
+
width: 58%;
|
|
161
|
+
aspect-ratio: 1;
|
|
162
|
+
border-radius: 50%;
|
|
163
|
+
opacity: 0.4;
|
|
164
|
+
transform: translateX(-50%);
|
|
165
|
+
}
|
|
166
|
+
.fb-aurora-grid__glow--animated {
|
|
167
|
+
animation: fbAuroraGlow 6s ease-in-out infinite alternate;
|
|
168
|
+
}
|
|
169
|
+
@keyframes fbAuroraGridMove {
|
|
170
|
+
from {
|
|
171
|
+
background-position: 0 0;
|
|
172
|
+
}
|
|
173
|
+
to {
|
|
174
|
+
background-position: 0 80px;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
@keyframes fbAuroraGlow {
|
|
178
|
+
from {
|
|
179
|
+
transform: translateX(-50%) scale(0.9);
|
|
180
|
+
opacity: 0.28;
|
|
181
|
+
}
|
|
182
|
+
to {
|
|
183
|
+
transform: translateX(-50%) scale(1.15);
|
|
184
|
+
opacity: 0.5;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
@media (prefers-reduced-motion: reduce) {
|
|
188
|
+
.fb-aurora-grid__grid,
|
|
189
|
+
.fb-aurora-grid__glow {
|
|
190
|
+
animation: none !important;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/* src/backgrounds/NoiseField.css */
|
|
195
|
+
.fb-noise-field {
|
|
196
|
+
position: relative;
|
|
197
|
+
width: 100%;
|
|
198
|
+
height: 100%;
|
|
199
|
+
overflow: hidden;
|
|
200
|
+
}
|
|
201
|
+
.fb-noise-field__blob {
|
|
202
|
+
position: absolute;
|
|
203
|
+
width: 58%;
|
|
204
|
+
aspect-ratio: 1;
|
|
205
|
+
border-radius: 48% 52% 62% 38%;
|
|
206
|
+
filter: blur(45px);
|
|
207
|
+
}
|
|
208
|
+
.fb-noise-field__blob--one {
|
|
209
|
+
left: 8%;
|
|
210
|
+
top: 8%;
|
|
211
|
+
}
|
|
212
|
+
.fb-noise-field__blob--two {
|
|
213
|
+
right: -5%;
|
|
214
|
+
bottom: -8%;
|
|
215
|
+
}
|
|
216
|
+
.fb-noise-field__blob--animated {
|
|
217
|
+
animation: fbNoiseFieldMorph 6s ease-in-out infinite alternate;
|
|
218
|
+
}
|
|
219
|
+
.fb-noise-field__texture {
|
|
220
|
+
position: absolute;
|
|
221
|
+
inset: 0;
|
|
222
|
+
background-image:
|
|
223
|
+
repeating-radial-gradient(
|
|
224
|
+
circle at 30% 40%,
|
|
225
|
+
rgba(255, 255, 255, 0.22) 0 1px,
|
|
226
|
+
transparent 1px 4px);
|
|
227
|
+
}
|
|
228
|
+
.fb-noise-field__texture--animated {
|
|
229
|
+
animation: fbNoiseFieldTexture 5s linear infinite;
|
|
230
|
+
}
|
|
231
|
+
@keyframes fbNoiseFieldMorph {
|
|
232
|
+
from {
|
|
233
|
+
transform: translate3d(-8%, -5%, 0) rotate(-8deg) scale(0.95);
|
|
234
|
+
}
|
|
235
|
+
to {
|
|
236
|
+
transform: translate3d(14%, 10%, 0) rotate(14deg) scale(1.12);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
@keyframes fbNoiseFieldTexture {
|
|
240
|
+
from {
|
|
241
|
+
transform: translate3d(0, 0, 0);
|
|
242
|
+
}
|
|
243
|
+
to {
|
|
244
|
+
transform: translate3d(16px, -12px, 0);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
@media (prefers-reduced-motion: reduce) {
|
|
248
|
+
.fb-noise-field__blob,
|
|
249
|
+
.fb-noise-field__texture {
|
|
250
|
+
animation: none !important;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
/*# sourceMappingURL=backgrounds.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/backgrounds/PredictiveArc.css","../src/backgrounds/SignalParticles.css","../src/backgrounds/DotMatrix.css","../src/backgrounds/GradientMesh.css","../src/backgrounds/AuroraGrid.css","../src/backgrounds/NoiseField.css"],"sourcesContent":[".fb-predictive-arc {\r\n position: relative;\r\n\r\n width: 100%;\r\n height: 100%;\r\n\r\n overflow: hidden;\r\n\r\n background:\r\n var(\r\n --predictive-arc-background,\r\n #0d0d11\r\n );\r\n}\r\n\r\n.fb-predictive-arc__line {\r\n position: absolute;\r\n\r\n left: 50%;\r\n top: 60%;\r\n\r\n border-radius: 50%;\r\n\r\n border-left: 0;\r\n border-right: 0;\r\n border-bottom: 0;\r\n\r\n transform:\r\n translate(\r\n -50%,\r\n -50%\r\n );\r\n\r\n border-top:\r\n var(\r\n --predictive-arc-thickness,\r\n 3px\r\n )\r\n solid\r\n var(\r\n --predictive-arc-color,\r\n #9b7cff\r\n );\r\n\r\n box-shadow:\r\n 0\r\n 0\r\n var(\r\n --predictive-arc-glow,\r\n 16px\r\n )\r\n var(\r\n --predictive-arc-color,\r\n #9b7cff\r\n );\r\n}\r\n\r\n.fb-predictive-arc__line--outer {\r\n width:\r\n var(\r\n --predictive-arc-size,\r\n 70%\r\n );\r\n\r\n height: 45%;\r\n}\r\n\r\n.fb-predictive-arc__line--inner {\r\n width: 50%;\r\n height: 32%;\r\n\r\n opacity: 0.4;\r\n}\r\n\r\n.fb-predictive-arc__point {\r\n position: absolute;\r\n\r\n top: 60%;\r\n\r\n width: 7px;\r\n height: 7px;\r\n\r\n border-radius: 50%;\r\n\r\n background:\r\n var(\r\n --predictive-arc-color,\r\n #9b7cff\r\n );\r\n\r\n box-shadow:\r\n 0\r\n 0\r\n 16px\r\n var(\r\n --predictive-arc-color,\r\n #9b7cff\r\n );\r\n}\r\n\r\n.fb-predictive-arc__point--left {\r\n left: 20%;\r\n}\r\n\r\n.fb-predictive-arc__point--right {\r\n right: 20%;\r\n}\r\n\r\n.fb-predictive-arc--animated\r\n.fb-predictive-arc__line--outer {\r\n animation:\r\n fbPredictiveArcPulse\r\n 2.8s\r\n ease-in-out\r\n infinite alternate;\r\n}\r\n\r\n@keyframes fbPredictiveArcPulse {\r\n from {\r\n opacity: 0.55;\r\n\r\n transform:\r\n translate(\r\n -50%,\r\n -50%\r\n )\r\n scale(0.98);\r\n }\r\n\r\n to {\r\n opacity: 1;\r\n\r\n transform:\r\n translate(\r\n -50%,\r\n -50%\r\n )\r\n scale(1.02);\r\n }\r\n}\r\n\r\n@media (\r\n prefers-reduced-motion:\r\n reduce\r\n) {\r\n .fb-predictive-arc * {\r\n animation:\r\n none !important;\r\n }\r\n}",".fb-signal-particles {\r\n position: relative;\r\n\r\n width: 100%;\r\n height: 100%;\r\n\r\n overflow: hidden;\r\n}\r\n\r\n.fb-signal-particles__particle {\r\n position: absolute;\r\n\r\n border-radius: 50%;\r\n}\r\n\r\n.fb-signal-particles__particle--animated {\r\n animation:\r\n fbSignalParticle\r\n 3s\r\n ease-in-out\r\n infinite alternate;\r\n}\r\n\r\n@keyframes fbSignalParticle {\r\n from {\r\n opacity: 0.2;\r\n\r\n transform:\r\n scale(0.7);\r\n }\r\n\r\n to {\r\n opacity: 1;\r\n\r\n transform:\r\n scale(1.2);\r\n }\r\n}\r\n\r\n@media (\r\n prefers-reduced-motion:\r\n reduce\r\n) {\r\n .fb-signal-particles__particle {\r\n animation:\r\n none !important;\r\n }\r\n}",".fb-dot-matrix {\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n.fb-dot-matrix--fade {\r\n mask-image:\r\n radial-gradient(\r\n circle,\r\n #000 30%,\r\n transparent 80%\r\n );\r\n\r\n -webkit-mask-image:\r\n radial-gradient(\r\n circle,\r\n #000 30%,\r\n transparent 80%\r\n );\r\n}",".fb-gradient-mesh {\r\n position: relative;\r\n\r\n width: 100%;\r\n height: 100%;\r\n\r\n overflow: hidden;\r\n}\r\n\r\n.fb-gradient-mesh__layer {\r\n position: absolute;\r\n\r\n inset: -25%;\r\n}\r\n\r\n.fb-gradient-mesh__layer--animated {\r\n animation:\r\n fbGradientMeshMove\r\n 8s\r\n ease-in-out\r\n infinite alternate;\r\n}\r\n\r\n@keyframes fbGradientMeshMove {\r\n from {\r\n transform:\r\n translate3d(\r\n -3%,\r\n -2%,\r\n 0\r\n )\r\n scale(1);\r\n }\r\n\r\n to {\r\n transform:\r\n translate3d(\r\n 6%,\r\n 5%,\r\n 0\r\n )\r\n scale(1.12);\r\n }\r\n}\r\n\r\n@media (\r\n prefers-reduced-motion:\r\n reduce\r\n) {\r\n .fb-gradient-mesh__layer {\r\n animation:\r\n none !important;\r\n }\r\n}",".fb-aurora-grid {\r\n position: relative;\r\n\r\n width: 100%;\r\n height: 100%;\r\n\r\n overflow: hidden;\r\n}\r\n\r\n.fb-aurora-grid__grid {\r\n position: absolute;\r\n\r\n inset: -35%;\r\n\r\n transform:\r\n perspective(600px)\r\n rotateX(58deg)\r\n scale(1.35);\r\n\r\n transform-origin:\r\n center bottom;\r\n}\r\n\r\n.fb-aurora-grid__grid--animated {\r\n animation:\r\n fbAuroraGridMove\r\n 8s\r\n linear\r\n infinite;\r\n}\r\n\r\n.fb-aurora-grid__glow {\r\n position: absolute;\r\n\r\n left: 50%;\r\n bottom: -18%;\r\n\r\n width: 58%;\r\n aspect-ratio: 1;\r\n\r\n border-radius: 50%;\r\n\r\n opacity: 0.4;\r\n\r\n transform:\r\n translateX(-50%);\r\n}\r\n\r\n.fb-aurora-grid__glow--animated {\r\n animation:\r\n fbAuroraGlow\r\n 6s\r\n ease-in-out\r\n infinite alternate;\r\n}\r\n\r\n@keyframes fbAuroraGridMove {\r\n from {\r\n background-position:\r\n 0\r\n 0;\r\n }\r\n\r\n to {\r\n background-position:\r\n 0\r\n 80px;\r\n }\r\n}\r\n\r\n@keyframes fbAuroraGlow {\r\n from {\r\n transform:\r\n translateX(-50%)\r\n scale(0.9);\r\n\r\n opacity:\r\n 0.28;\r\n }\r\n\r\n to {\r\n transform:\r\n translateX(-50%)\r\n scale(1.15);\r\n\r\n opacity:\r\n 0.5;\r\n }\r\n}\r\n\r\n@media (\r\n prefers-reduced-motion:\r\n reduce\r\n) {\r\n .fb-aurora-grid__grid,\r\n .fb-aurora-grid__glow {\r\n animation:\r\n none !important;\r\n }\r\n}",".fb-noise-field {\r\n position: relative;\r\n\r\n width: 100%;\r\n height: 100%;\r\n\r\n overflow: hidden;\r\n}\r\n\r\n.fb-noise-field__blob {\r\n position: absolute;\r\n\r\n width: 58%;\r\n aspect-ratio: 1;\r\n\r\n border-radius:\r\n 48%\r\n 52%\r\n 62%\r\n 38%;\r\n\r\n filter:\r\n blur(45px);\r\n}\r\n\r\n.fb-noise-field__blob--one {\r\n left: 8%;\r\n top: 8%;\r\n}\r\n\r\n.fb-noise-field__blob--two {\r\n right: -5%;\r\n bottom: -8%;\r\n}\r\n\r\n.fb-noise-field__blob--animated {\r\n animation:\r\n fbNoiseFieldMorph\r\n 6s\r\n ease-in-out\r\n infinite alternate;\r\n}\r\n\r\n.fb-noise-field__texture {\r\n position: absolute;\r\n\r\n inset: 0;\r\n\r\n background-image:\r\n repeating-radial-gradient(\r\n circle at 30% 40%,\r\n rgba(\r\n 255,\r\n 255,\r\n 255,\r\n 0.22\r\n )\r\n 0\r\n 1px,\r\n transparent\r\n 1px\r\n 4px\r\n );\r\n}\r\n\r\n.fb-noise-field__texture--animated {\r\n animation:\r\n fbNoiseFieldTexture\r\n 5s\r\n linear\r\n infinite;\r\n}\r\n\r\n@keyframes fbNoiseFieldMorph {\r\n from {\r\n transform:\r\n translate3d(\r\n -8%,\r\n -5%,\r\n 0\r\n )\r\n rotate(-8deg)\r\n scale(0.95);\r\n }\r\n\r\n to {\r\n transform:\r\n translate3d(\r\n 14%,\r\n 10%,\r\n 0\r\n )\r\n rotate(14deg)\r\n scale(1.12);\r\n }\r\n}\r\n\r\n@keyframes fbNoiseFieldTexture {\r\n from {\r\n transform:\r\n translate3d(\r\n 0,\r\n 0,\r\n 0\r\n );\r\n }\r\n\r\n to {\r\n transform:\r\n translate3d(\r\n 16px,\r\n -12px,\r\n 0\r\n );\r\n }\r\n}\r\n\r\n@media (\r\n prefers-reduced-motion:\r\n reduce\r\n) {\r\n .fb-noise-field__blob,\r\n .fb-noise-field__texture {\r\n animation:\r\n none !important;\r\n }\r\n}"],"mappings":";AAAA,CAAC;AACC,YAAU;AAEV,SAAO;AACP,UAAQ;AAER,YAAU;AAEV,cACE,KACE,2BAA2B,EAC3B;AAEN;AAEA,CAAC;AACC,YAAU;AAEV,QAAM;AACN,OAAK;AAEL,iBAAe;AAEf,eAAa;AACb,gBAAc;AACd,iBAAe;AAEf,aACE,UACE,IAAI,EACJ;AAGJ,cACE,KACE,0BAA0B,EAC1B,MAEF,MACA,KACE,sBAAsB,EACtB;AAGJ,cACE,EACA,EACA,KACE,qBAAqB,EACrB,OAEF,KACE,sBAAsB,EACtB;AAEN;AAEA,CAAC;AACC,SACE,KACE,qBAAqB,EACrB;AAGJ,UAAQ;AACV;AAEA,CAAC;AACC,SAAO;AACP,UAAQ;AAER,WAAS;AACX;AAEA,CAAC;AACC,YAAU;AAEV,OAAK;AAEL,SAAO;AACP,UAAQ;AAER,iBAAe;AAEf,cACE,KACE,sBAAsB,EACtB;AAGJ,cACE,EACA,EACA,KACA,KACE,sBAAsB,EACtB;AAEN;AAEA,CAAC;AACC,QAAM;AACR;AAEA,CAAC;AACC,SAAO;AACT;AAEA,CAAC,4BACD,CApDC;AAqDC,aACE,qBACA,KACA,YACA,SAAS;AACb;AAEA,WANI;AAOF;AACE,aAAS;AAET,eACE,UACE,IAAI,EACJ,MAEF,MAAM;AACV;AAEA;AACE,aAAS;AAET,eACE,UACE,IAAI,EACJ,MAEF,MAAM;AACV;AACF;AAEA,QAAO,wBAEL;AAEA,GAjJD,kBAiJoB;AACjB,eACE;AACJ;AACF;;;ACrJA,CAAC;AACC,YAAU;AAEV,SAAO;AACP,UAAQ;AAER,YAAU;AACZ;AAEA,CAAC;AACC,YAAU;AAEV,iBAAe;AACjB;AAEA,CAAC;AACC,aACE,iBACA,GACA,YACA,SAAS;AACb;AAEA,WANI;AAOF;AACE,aAAS;AAET,eACE,MAAM;AACV;AAEA;AACE,aAAS;AAET,eACE,MAAM;AACV;AACF;AAEA,QAAO,wBAEL;AAEA,GAlCD;AAmCG,eACE;AACJ;AACF;;;AC/CA,CAAC;AACC,SAAO;AACP,UAAQ;AACV;AAEA,CAAC;AACC;AAAA,IACE;AAAA,MACE,MAAM;AAAA,MACN,KAAK,GAAG;AAAA,MACR,YAAY;AAGhB;AAAA,IACE;AAAA,MACE,MAAM;AAAA,MACN,KAAK,GAAG;AAAA,MACR,YAAY;AAElB;;;ACnBA,CAAC;AACC,YAAU;AAEV,SAAO;AACP,UAAQ;AAER,YAAU;AACZ;AAEA,CAAC;AACC,YAAU;AAEV,SAAO;AACT;AAEA,CAAC;AACC,aACE,mBACA,GACA,YACA,SAAS;AACb;AAEA,WANI;AAOF;AACE,eACE,YACE,GAAG,EACH,GAAG,EACH,GAEF,MAAM;AACV;AAEA;AACE,eACE,YACE,EAAE,EACF,EAAE,EACF,GAEF,MAAM;AACV;AACF;AAEA,QAAO,wBAEL;AAEA,GAxCD;AAyCG,eACE;AACJ;AACF;;;ACrDA,CAAC;AACC,YAAU;AAEV,SAAO;AACP,UAAQ;AAER,YAAU;AACZ;AAEA,CAAC;AACC,YAAU;AAEV,SAAO;AAEP,aACE,YAAY,OACZ,QAAQ,OACR,MAAM;AAER,oBACE,OAAO;AACX;AAEA,CAAC;AACC,aACE,iBACA,GACA,OACA;AACJ;AAEA,CAAC;AACC,YAAU;AAEV,QAAM;AACN,UAAQ;AAER,SAAO;AACP,gBAAc;AAEd,iBAAe;AAEf,WAAS;AAET,aACE,WAAW;AACf;AAEA,CAAC;AACC,aACE,aACA,GACA,YACA,SAAS;AACb;AAEA,WA/BI;AAgCF;AACE,yBACE,EACA;AACJ;AAEA;AACE,yBACE,EACA;AACJ;AACF;AAEA,WApBI;AAqBF;AACE,eACE,WAAW,MACX,MAAM;AAER,aACE;AACJ;AAEA;AACE,eACE,WAAW,MACX,MAAM;AAER,aACE;AACJ;AACF;AAEA,QAAO,wBAEL;AAEA,GArFD;AAAA,EAsFC,CAhED;AAiEG,eACE;AACJ;AACF;;;ACnGA,CAAC;AACC,YAAU;AAEV,SAAO;AACP,UAAQ;AAER,YAAU;AACZ;AAEA,CAAC;AACC,YAAU;AAEV,SAAO;AACP,gBAAc;AAEd,iBACE,IACA,IACA,IACA;AAEF,UACE,KAAK;AACT;AAEA,CAAC;AACC,QAAM;AACN,OAAK;AACP;AAEA,CAAC;AACC,SAAO;AACP,UAAQ;AACV;AAEA,CAAC;AACC,aACE,kBACA,GACA,YACA,SAAS;AACb;AAEA,CAAC;AACC,YAAU;AAEV,SAAO;AAEP;AAAA,IACE;AAAA,MACE,OAAO,GAAG,IAAI,GAAG;AAAA,MACjB,KACE,GAAG,EACH,GAAG,EACH,GAAG,EACH,MAEF,EACA,GAAG;AAAA,MACH,YACA,IACA;AAEN;AAEA,CAAC;AACC,aACE,oBACA,GACA,OACA;AACJ;AAEA,WApCI;AAqCF;AACE,eACE,YACE,GAAG,EACH,GAAG,EACH,GAEF,OAAO,OACP,MAAM;AACV;AAEA;AACE,eACE,YACE,GAAG,EACH,GAAG,EACH,GAEF,OAAO,OACP,MAAM;AACV;AACF;AAEA,WA9BI;AA+BF;AACE,eACE,YACE,CAAC,EACD,CAAC,EACD;AAEN;AAEA;AACE,eACE,YACE,IAAI,EACJ,KAAK,EACL;AAEN;AACF;AAEA,QAAO,wBAEL;AAEA,GAhHD;AAAA,EAiHC,CA/ED;AAgFG,eACE;AACJ;AACF;","names":[]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
|
|
3
|
+
interface PredictiveArcProps {
|
|
4
|
+
color?: string;
|
|
5
|
+
background?: string;
|
|
6
|
+
size?: number;
|
|
7
|
+
thickness?: number;
|
|
8
|
+
glow?: number;
|
|
9
|
+
animated?: boolean;
|
|
10
|
+
className?: string;
|
|
11
|
+
}
|
|
12
|
+
declare function PredictiveArc({ color, background, size, thickness, glow, animated, className, }: PredictiveArcProps): react.JSX.Element;
|
|
13
|
+
|
|
14
|
+
interface SignalParticlesProps {
|
|
15
|
+
color?: string;
|
|
16
|
+
background?: string;
|
|
17
|
+
density?: number;
|
|
18
|
+
size?: number;
|
|
19
|
+
speed?: number;
|
|
20
|
+
animated?: boolean;
|
|
21
|
+
className?: string;
|
|
22
|
+
}
|
|
23
|
+
declare function SignalParticles({ color, background, density, size, speed, animated, className, }: SignalParticlesProps): react.JSX.Element;
|
|
24
|
+
|
|
25
|
+
interface DotMatrixProps {
|
|
26
|
+
color?: string;
|
|
27
|
+
background?: string;
|
|
28
|
+
dotSize?: number;
|
|
29
|
+
gap?: number;
|
|
30
|
+
opacity?: number;
|
|
31
|
+
fade?: boolean;
|
|
32
|
+
className?: string;
|
|
33
|
+
}
|
|
34
|
+
declare function DotMatrix({ color, background, dotSize, gap, opacity, fade, className, }: DotMatrixProps): react.JSX.Element;
|
|
35
|
+
|
|
36
|
+
interface GradientMeshProps {
|
|
37
|
+
primary?: string;
|
|
38
|
+
secondary?: string;
|
|
39
|
+
accent?: string;
|
|
40
|
+
background?: string;
|
|
41
|
+
blur?: number;
|
|
42
|
+
speed?: number;
|
|
43
|
+
animated?: boolean;
|
|
44
|
+
className?: string;
|
|
45
|
+
}
|
|
46
|
+
declare function GradientMesh({ primary, secondary, accent, background, blur, speed, animated, className, }: GradientMeshProps): react.JSX.Element;
|
|
47
|
+
|
|
48
|
+
interface AuroraGridProps {
|
|
49
|
+
gridColor?: string;
|
|
50
|
+
auroraColor?: string;
|
|
51
|
+
background?: string;
|
|
52
|
+
gridSize?: number;
|
|
53
|
+
glow?: number;
|
|
54
|
+
speed?: number;
|
|
55
|
+
animated?: boolean;
|
|
56
|
+
className?: string;
|
|
57
|
+
}
|
|
58
|
+
declare function AuroraGrid({ gridColor, auroraColor, background, gridSize, glow, speed, animated, className, }: AuroraGridProps): react.JSX.Element;
|
|
59
|
+
|
|
60
|
+
interface NoiseFieldProps {
|
|
61
|
+
color?: string;
|
|
62
|
+
background?: string;
|
|
63
|
+
opacity?: number;
|
|
64
|
+
scale?: number;
|
|
65
|
+
speed?: number;
|
|
66
|
+
animated?: boolean;
|
|
67
|
+
className?: string;
|
|
68
|
+
}
|
|
69
|
+
declare function NoiseField({ color, background, opacity, scale, speed, animated, className, }: NoiseFieldProps): react.JSX.Element;
|
|
70
|
+
|
|
71
|
+
export { AuroraGrid, type AuroraGridProps, DotMatrix, type DotMatrixProps, GradientMesh, type GradientMeshProps, NoiseField, type NoiseFieldProps, PredictiveArc, type PredictiveArcProps, SignalParticles, type SignalParticlesProps };
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
|
|
3
|
+
interface PredictiveArcProps {
|
|
4
|
+
color?: string;
|
|
5
|
+
background?: string;
|
|
6
|
+
size?: number;
|
|
7
|
+
thickness?: number;
|
|
8
|
+
glow?: number;
|
|
9
|
+
animated?: boolean;
|
|
10
|
+
className?: string;
|
|
11
|
+
}
|
|
12
|
+
declare function PredictiveArc({ color, background, size, thickness, glow, animated, className, }: PredictiveArcProps): react.JSX.Element;
|
|
13
|
+
|
|
14
|
+
interface SignalParticlesProps {
|
|
15
|
+
color?: string;
|
|
16
|
+
background?: string;
|
|
17
|
+
density?: number;
|
|
18
|
+
size?: number;
|
|
19
|
+
speed?: number;
|
|
20
|
+
animated?: boolean;
|
|
21
|
+
className?: string;
|
|
22
|
+
}
|
|
23
|
+
declare function SignalParticles({ color, background, density, size, speed, animated, className, }: SignalParticlesProps): react.JSX.Element;
|
|
24
|
+
|
|
25
|
+
interface DotMatrixProps {
|
|
26
|
+
color?: string;
|
|
27
|
+
background?: string;
|
|
28
|
+
dotSize?: number;
|
|
29
|
+
gap?: number;
|
|
30
|
+
opacity?: number;
|
|
31
|
+
fade?: boolean;
|
|
32
|
+
className?: string;
|
|
33
|
+
}
|
|
34
|
+
declare function DotMatrix({ color, background, dotSize, gap, opacity, fade, className, }: DotMatrixProps): react.JSX.Element;
|
|
35
|
+
|
|
36
|
+
interface GradientMeshProps {
|
|
37
|
+
primary?: string;
|
|
38
|
+
secondary?: string;
|
|
39
|
+
accent?: string;
|
|
40
|
+
background?: string;
|
|
41
|
+
blur?: number;
|
|
42
|
+
speed?: number;
|
|
43
|
+
animated?: boolean;
|
|
44
|
+
className?: string;
|
|
45
|
+
}
|
|
46
|
+
declare function GradientMesh({ primary, secondary, accent, background, blur, speed, animated, className, }: GradientMeshProps): react.JSX.Element;
|
|
47
|
+
|
|
48
|
+
interface AuroraGridProps {
|
|
49
|
+
gridColor?: string;
|
|
50
|
+
auroraColor?: string;
|
|
51
|
+
background?: string;
|
|
52
|
+
gridSize?: number;
|
|
53
|
+
glow?: number;
|
|
54
|
+
speed?: number;
|
|
55
|
+
animated?: boolean;
|
|
56
|
+
className?: string;
|
|
57
|
+
}
|
|
58
|
+
declare function AuroraGrid({ gridColor, auroraColor, background, gridSize, glow, speed, animated, className, }: AuroraGridProps): react.JSX.Element;
|
|
59
|
+
|
|
60
|
+
interface NoiseFieldProps {
|
|
61
|
+
color?: string;
|
|
62
|
+
background?: string;
|
|
63
|
+
opacity?: number;
|
|
64
|
+
scale?: number;
|
|
65
|
+
speed?: number;
|
|
66
|
+
animated?: boolean;
|
|
67
|
+
className?: string;
|
|
68
|
+
}
|
|
69
|
+
declare function NoiseField({ color, background, opacity, scale, speed, animated, className, }: NoiseFieldProps): react.JSX.Element;
|
|
70
|
+
|
|
71
|
+
export { AuroraGrid, type AuroraGridProps, DotMatrix, type DotMatrixProps, GradientMesh, type GradientMeshProps, NoiseField, type NoiseFieldProps, PredictiveArc, type PredictiveArcProps, SignalParticles, type SignalParticlesProps };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"backgrounds.js"}
|
package/dist/buttons.cjs
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkROKPXWY2_cjs = require('./chunk-ROKPXWY2.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "GlassButton", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () { return chunkROKPXWY2_cjs.GlassButton; }
|
|
10
|
+
});
|
|
11
|
+
Object.defineProperty(exports, "GlowButton", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function () { return chunkROKPXWY2_cjs.GlowButton; }
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(exports, "MagneticButton", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return chunkROKPXWY2_cjs.MagneticButton; }
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=buttons.cjs.map
|
|
20
|
+
//# sourceMappingURL=buttons.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"buttons.cjs"}
|
package/dist/buttons.css
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/* src/buttons/MagneticButton.css */
|
|
2
|
+
.fb-magnetic-button {
|
|
3
|
+
border: 0;
|
|
4
|
+
cursor: pointer;
|
|
5
|
+
font-family: inherit;
|
|
6
|
+
transition: transform 0.18s ease-out, box-shadow 0.2s ease;
|
|
7
|
+
}
|
|
8
|
+
.fb-magnetic-button:hover {
|
|
9
|
+
box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
|
|
10
|
+
}
|
|
11
|
+
.fb-magnetic-button:focus-visible {
|
|
12
|
+
outline: 2px solid #9b7cff;
|
|
13
|
+
outline-offset: 4px;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/* src/buttons/GlowButton.css */
|
|
17
|
+
.fb-glow-button {
|
|
18
|
+
position: relative;
|
|
19
|
+
isolation: isolate;
|
|
20
|
+
overflow: hidden;
|
|
21
|
+
border: 1px solid rgba(255, 255, 255, 0.18);
|
|
22
|
+
font-family: inherit;
|
|
23
|
+
font-weight: 500;
|
|
24
|
+
cursor: pointer;
|
|
25
|
+
transition: transform 0.2s ease, box-shadow 0.25s ease;
|
|
26
|
+
}
|
|
27
|
+
.fb-glow-button:hover {
|
|
28
|
+
transform: translateY(-2px) scale(1.02);
|
|
29
|
+
}
|
|
30
|
+
.fb-glow-button:active {
|
|
31
|
+
transform: translateY(0) scale(0.99);
|
|
32
|
+
}
|
|
33
|
+
.fb-glow-button:focus-visible {
|
|
34
|
+
outline: 2px solid var( --fb-glow-button-color, #9b7cff );
|
|
35
|
+
outline-offset: 4px;
|
|
36
|
+
}
|
|
37
|
+
.fb-glow-button__content {
|
|
38
|
+
position: relative;
|
|
39
|
+
z-index: 2;
|
|
40
|
+
}
|
|
41
|
+
.fb-glow-button__glow {
|
|
42
|
+
position: absolute;
|
|
43
|
+
z-index: 1;
|
|
44
|
+
inset: -25%;
|
|
45
|
+
border-radius: inherit;
|
|
46
|
+
background: var( --fb-glow-button-color, #9b7cff );
|
|
47
|
+
opacity: 0.16;
|
|
48
|
+
filter: blur(18px);
|
|
49
|
+
animation: fbGlowButtonPulse 2.5s ease-in-out infinite alternate;
|
|
50
|
+
}
|
|
51
|
+
@keyframes fbGlowButtonPulse {
|
|
52
|
+
from {
|
|
53
|
+
opacity: 0.08;
|
|
54
|
+
transform: scale(0.85);
|
|
55
|
+
}
|
|
56
|
+
to {
|
|
57
|
+
opacity: 0.26;
|
|
58
|
+
transform: scale(1.15);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
@media (prefers-reduced-motion: reduce) {
|
|
62
|
+
.fb-glow-button,
|
|
63
|
+
.fb-glow-button__glow {
|
|
64
|
+
animation: none !important;
|
|
65
|
+
transition: none !important;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/* src/buttons/GlassButton.css */
|
|
70
|
+
.fb-glass-button {
|
|
71
|
+
position: relative;
|
|
72
|
+
overflow: hidden;
|
|
73
|
+
padding: 13px 22px;
|
|
74
|
+
border: 1px solid;
|
|
75
|
+
font-family: inherit;
|
|
76
|
+
font-size: 14px;
|
|
77
|
+
font-weight: 500;
|
|
78
|
+
cursor: pointer;
|
|
79
|
+
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14);
|
|
80
|
+
transition: transform 0.2s ease, background 0.2s ease;
|
|
81
|
+
}
|
|
82
|
+
.fb-glass-button:hover {
|
|
83
|
+
transform: translateY(-2px);
|
|
84
|
+
}
|
|
85
|
+
.fb-glass-button:active {
|
|
86
|
+
transform: translateY(0);
|
|
87
|
+
}
|
|
88
|
+
.fb-glass-button:focus-visible {
|
|
89
|
+
outline: 2px solid #a88cff;
|
|
90
|
+
outline-offset: 4px;
|
|
91
|
+
}
|
|
92
|
+
.fb-glass-button__shine {
|
|
93
|
+
position: absolute;
|
|
94
|
+
width: 45%;
|
|
95
|
+
height: 300%;
|
|
96
|
+
left: -70%;
|
|
97
|
+
top: -100%;
|
|
98
|
+
background:
|
|
99
|
+
linear-gradient(
|
|
100
|
+
90deg,
|
|
101
|
+
transparent,
|
|
102
|
+
rgba(255, 255, 255, 0.22),
|
|
103
|
+
transparent);
|
|
104
|
+
transform: rotate(20deg);
|
|
105
|
+
transition: left 0.5s ease;
|
|
106
|
+
}
|
|
107
|
+
.fb-glass-button:hover .fb-glass-button__shine {
|
|
108
|
+
left: 130%;
|
|
109
|
+
}
|
|
110
|
+
@media (prefers-reduced-motion: reduce) {
|
|
111
|
+
.fb-glass-button,
|
|
112
|
+
.fb-glass-button__shine {
|
|
113
|
+
transition: none !important;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/*# sourceMappingURL=buttons.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/buttons/MagneticButton.css","../src/buttons/GlowButton.css","../src/buttons/GlassButton.css"],"sourcesContent":[".fb-magnetic-button {\r\n border: 0;\r\n\r\n cursor: pointer;\r\n\r\n font-family: inherit;\r\n\r\n transition:\r\n transform\r\n 0.18s\r\n ease-out,\r\n box-shadow\r\n 0.2s\r\n ease;\r\n}\r\n\r\n.fb-magnetic-button:hover {\r\n box-shadow:\r\n 0\r\n 10px\r\n 40px\r\n rgba(\r\n 0,\r\n 0,\r\n 0,\r\n 0.3\r\n );\r\n}\r\n\r\n.fb-magnetic-button:focus-visible {\r\n outline:\r\n 2px solid\r\n #9b7cff;\r\n\r\n outline-offset:\r\n 4px;\r\n}",".fb-glow-button {\r\n position: relative;\r\n\r\n isolation: isolate;\r\n\r\n overflow: hidden;\r\n\r\n border:\r\n 1px solid\r\n rgba(\r\n 255,\r\n 255,\r\n 255,\r\n 0.18\r\n );\r\n\r\n font-family: inherit;\r\n\r\n font-weight: 500;\r\n\r\n cursor: pointer;\r\n\r\n transition:\r\n transform\r\n 0.2s\r\n ease,\r\n box-shadow\r\n 0.25s\r\n ease;\r\n}\r\n\r\n.fb-glow-button:hover {\r\n transform:\r\n translateY(-2px)\r\n scale(1.02);\r\n}\r\n\r\n.fb-glow-button:active {\r\n transform:\r\n translateY(0)\r\n scale(0.99);\r\n}\r\n\r\n.fb-glow-button:focus-visible {\r\n outline:\r\n 2px solid\r\n var(\r\n --fb-glow-button-color,\r\n #9b7cff\r\n );\r\n\r\n outline-offset:\r\n 4px;\r\n}\r\n\r\n.fb-glow-button__content {\r\n position: relative;\r\n\r\n z-index: 2;\r\n}\r\n\r\n.fb-glow-button__glow {\r\n position: absolute;\r\n\r\n z-index: 1;\r\n\r\n inset: -25%;\r\n\r\n border-radius: inherit;\r\n\r\n background:\r\n var(\r\n --fb-glow-button-color,\r\n #9b7cff\r\n );\r\n\r\n opacity: 0.16;\r\n\r\n filter:\r\n blur(18px);\r\n\r\n animation:\r\n fbGlowButtonPulse\r\n 2.5s\r\n ease-in-out\r\n infinite alternate;\r\n}\r\n\r\n@keyframes fbGlowButtonPulse {\r\n from {\r\n opacity:\r\n 0.08;\r\n\r\n transform:\r\n scale(0.85);\r\n }\r\n\r\n to {\r\n opacity:\r\n 0.26;\r\n\r\n transform:\r\n scale(1.15);\r\n }\r\n}\r\n\r\n@media (\r\n prefers-reduced-motion:\r\n reduce\r\n) {\r\n .fb-glow-button,\r\n .fb-glow-button__glow {\r\n animation:\r\n none !important;\r\n\r\n transition:\r\n none !important;\r\n }\r\n}",".fb-glass-button {\r\n position: relative;\r\n\r\n overflow: hidden;\r\n\r\n padding:\r\n 13px\r\n 22px;\r\n\r\n border:\r\n 1px solid;\r\n\r\n font-family:\r\n inherit;\r\n\r\n font-size: 14px;\r\n\r\n font-weight: 500;\r\n\r\n cursor: pointer;\r\n\r\n box-shadow:\r\n inset\r\n 0\r\n 1px\r\n 0\r\n rgba(\r\n 255,\r\n 255,\r\n 255,\r\n 0.14\r\n );\r\n\r\n transition:\r\n transform\r\n 0.2s\r\n ease,\r\n background\r\n 0.2s\r\n ease;\r\n}\r\n\r\n.fb-glass-button:hover {\r\n transform:\r\n translateY(-2px);\r\n}\r\n\r\n.fb-glass-button:active {\r\n transform:\r\n translateY(0);\r\n}\r\n\r\n.fb-glass-button:focus-visible {\r\n outline:\r\n 2px solid\r\n #a88cff;\r\n\r\n outline-offset:\r\n 4px;\r\n}\r\n\r\n.fb-glass-button__shine {\r\n position: absolute;\r\n\r\n width: 45%;\r\n height: 300%;\r\n\r\n left: -70%;\r\n top: -100%;\r\n\r\n background:\r\n linear-gradient(\r\n 90deg,\r\n transparent,\r\n rgba(\r\n 255,\r\n 255,\r\n 255,\r\n 0.22\r\n ),\r\n transparent\r\n );\r\n\r\n transform:\r\n rotate(20deg);\r\n\r\n transition:\r\n left\r\n 0.5s\r\n ease;\r\n}\r\n\r\n.fb-glass-button:hover\r\n.fb-glass-button__shine {\r\n left:\r\n 130%;\r\n}\r\n\r\n@media (\r\n prefers-reduced-motion:\r\n reduce\r\n) {\r\n .fb-glass-button,\r\n .fb-glass-button__shine {\r\n transition:\r\n none !important;\r\n }\r\n}"],"mappings":";AAAA,CAAC;AACC,UAAQ;AAER,UAAQ;AAER,eAAa;AAEb,cACE,UACA,MACA,QAAQ,EACR,WACA,KACA;AACJ;AAEA,CAhBC,kBAgBkB;AACjB,cACE,EACA,KACA,KACA,KACE,CAAC,EACD,CAAC,EACD,CAAC,EACD;AAEN;AAEA,CA7BC,kBA6BkB;AACjB,WACE,IAAI,MACJ;AAEF,kBACE;AACJ;;;ACpCA,CAAC;AACC,YAAU;AAEV,aAAW;AAEX,YAAU;AAEV,UACE,IAAI,MACJ,KACE,GAAG,EACH,GAAG,EACH,GAAG,EACH;AAGJ,eAAa;AAEb,eAAa;AAEb,UAAQ;AAER,cACE,UACA,KACA,IAAI,EACJ,WACA,MACA;AACJ;AAEA,CA/BC,cA+Bc;AACb,aACE,WAAW,MACX,MAAM;AACV;AAEA,CArCC,cAqCc;AACb,aACE,WAAW,GACX,MAAM;AACV;AAEA,CA3CC,cA2Cc;AACb,WACE,IAAI,MACJ,KACE,sBAAsB,EACtB;AAGJ,kBACE;AACJ;AAEA,CAAC;AACC,YAAU;AAEV,WAAS;AACX;AAEA,CAAC;AACC,YAAU;AAEV,WAAS;AAET,SAAO;AAEP,iBAAe;AAEf,cACE,KACE,sBAAsB,EACtB;AAGJ,WAAS;AAET,UACE,KAAK;AAEP,aACE,kBACA,KACA,YACA,SAAS;AACb;AAEA,WANI;AAOF;AACE,aACE;AAEF,eACE,MAAM;AACV;AAEA;AACE,aACE;AAEF,eACE,MAAM;AACV;AACF;AAEA,QAAO,wBAEL;AAEA,GA9GD;AAAA,EA+GC,CAlDD;AAmDG,eACE;AAEF,gBACE;AACJ;AACF;;;ACtHA,CAAC;AACC,YAAU;AAEV,YAAU;AAEV,WACE,KACA;AAEF,UACE,IAAI;AAEN,eACE;AAEF,aAAW;AAEX,eAAa;AAEb,UAAQ;AAER,cACE,MACA,EACA,IACA,EACA,KACE,GAAG,EACH,GAAG,EACH,GAAG,EACH;AAGJ,cACE,UACA,KACA,IAAI,EACJ,WACA,KACA;AACJ;AAEA,CA1CC,eA0Ce;AACd,aACE,WAAW;AACf;AAEA,CA/CC,eA+Ce;AACd,aACE,WAAW;AACf;AAEA,CApDC,eAoDe;AACd,WACE,IAAI,MACJ;AAEF,kBACE;AACJ;AAEA,CAAC;AACC,YAAU;AAEV,SAAO;AACP,UAAQ;AAER,QAAM;AACN,OAAK;AAEL;AAAA,IACE;AAAA,MACE,KAAK;AAAA,MACL,WAAW;AAAA,MACX,KACE,GAAG,EACH,GAAG,EACH,GAAG,EACH,KACD;AAAA,MACD;AAGJ,aACE,OAAO;AAET,cACE,KACA,KACA;AACJ;AAEA,CA5FC,eA4Fe,OAChB,CAhCC;AAiCC,QACE;AACJ;AAEA,QAAO,wBAEL;AAEA,GAtGD;AAAA,EAuGC,CA1CD;AA2CG,gBACE;AACJ;AACF;","names":[]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { ButtonHTMLAttributes, ReactNode } from 'react';
|
|
3
|
+
|
|
4
|
+
interface MagneticButtonProps {
|
|
5
|
+
children?: React.ReactNode;
|
|
6
|
+
background?: string;
|
|
7
|
+
textColor?: string;
|
|
8
|
+
fontSize?: number;
|
|
9
|
+
radius?: number;
|
|
10
|
+
paddingX?: number;
|
|
11
|
+
paddingY?: number;
|
|
12
|
+
strength?: number;
|
|
13
|
+
className?: string;
|
|
14
|
+
}
|
|
15
|
+
declare function MagneticButton({ children, background, textColor, fontSize, radius, paddingX, paddingY, strength, className, }: MagneticButtonProps): react.JSX.Element;
|
|
16
|
+
|
|
17
|
+
interface GlowButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "color"> {
|
|
18
|
+
children?: ReactNode;
|
|
19
|
+
background?: string;
|
|
20
|
+
textColor?: string;
|
|
21
|
+
glowColor?: string;
|
|
22
|
+
glow?: number;
|
|
23
|
+
radius?: number;
|
|
24
|
+
fontSize?: number;
|
|
25
|
+
paddingX?: number;
|
|
26
|
+
}
|
|
27
|
+
declare function GlowButton({ children, background, textColor, glowColor, glow, radius, fontSize, paddingX, className, style, ...props }: GlowButtonProps): react.JSX.Element;
|
|
28
|
+
|
|
29
|
+
interface GlassButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "color"> {
|
|
30
|
+
children?: ReactNode;
|
|
31
|
+
textColor?: string;
|
|
32
|
+
tint?: string;
|
|
33
|
+
opacity?: number;
|
|
34
|
+
blur?: number;
|
|
35
|
+
radius?: number;
|
|
36
|
+
borderOpacity?: number;
|
|
37
|
+
}
|
|
38
|
+
declare function GlassButton({ children, textColor, tint, opacity, blur, radius, borderOpacity, className, style, ...props }: GlassButtonProps): react.JSX.Element;
|
|
39
|
+
|
|
40
|
+
export { GlassButton, type GlassButtonProps, GlowButton, type GlowButtonProps, MagneticButton, type MagneticButtonProps };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { ButtonHTMLAttributes, ReactNode } from 'react';
|
|
3
|
+
|
|
4
|
+
interface MagneticButtonProps {
|
|
5
|
+
children?: React.ReactNode;
|
|
6
|
+
background?: string;
|
|
7
|
+
textColor?: string;
|
|
8
|
+
fontSize?: number;
|
|
9
|
+
radius?: number;
|
|
10
|
+
paddingX?: number;
|
|
11
|
+
paddingY?: number;
|
|
12
|
+
strength?: number;
|
|
13
|
+
className?: string;
|
|
14
|
+
}
|
|
15
|
+
declare function MagneticButton({ children, background, textColor, fontSize, radius, paddingX, paddingY, strength, className, }: MagneticButtonProps): react.JSX.Element;
|
|
16
|
+
|
|
17
|
+
interface GlowButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "color"> {
|
|
18
|
+
children?: ReactNode;
|
|
19
|
+
background?: string;
|
|
20
|
+
textColor?: string;
|
|
21
|
+
glowColor?: string;
|
|
22
|
+
glow?: number;
|
|
23
|
+
radius?: number;
|
|
24
|
+
fontSize?: number;
|
|
25
|
+
paddingX?: number;
|
|
26
|
+
}
|
|
27
|
+
declare function GlowButton({ children, background, textColor, glowColor, glow, radius, fontSize, paddingX, className, style, ...props }: GlowButtonProps): react.JSX.Element;
|
|
28
|
+
|
|
29
|
+
interface GlassButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "color"> {
|
|
30
|
+
children?: ReactNode;
|
|
31
|
+
textColor?: string;
|
|
32
|
+
tint?: string;
|
|
33
|
+
opacity?: number;
|
|
34
|
+
blur?: number;
|
|
35
|
+
radius?: number;
|
|
36
|
+
borderOpacity?: number;
|
|
37
|
+
}
|
|
38
|
+
declare function GlassButton({ children, textColor, tint, opacity, blur, radius, borderOpacity, className, style, ...props }: GlassButtonProps): react.JSX.Element;
|
|
39
|
+
|
|
40
|
+
export { GlassButton, type GlassButtonProps, GlowButton, type GlowButtonProps, MagneticButton, type MagneticButtonProps };
|
package/dist/buttons.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"buttons.js"}
|