VeryOnly123 commited on
Commit
f5d9566
·
1 Parent(s): e5a2cd5

鑷姩鎻愪氦: 2026/04/12 周日 13:56:04.94

Browse files
css/brands.css ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fab,
2
+ .fa-brands {
3
+ font-weight: 400;
4
+ }
5
+
6
+ :root, :host {
7
+ --fa-style-family-brands: 'Font Awesome 6 Brands';
8
+ --fa-font-brands: normal 400 1em/1 'Font Awesome 6 Brands'; }
9
+
10
+ @font-face {
11
+ font-family: 'Font Awesome 6 Brands';
12
+ font-style: normal;
13
+ font-weight: 400;
14
+ font-display: block;
15
+ src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); }
16
+
17
+ .fa-apple { --fa: "\f179"; --fa--fa: "\f179\f179"; }
18
+ .fa-discord { --fa: "\f392"; --fa--fa: "\f392\f392"; }
19
+ .fa-youtube { --fa: "\f167"; --fa--fa: "\f167\f167"; }
css/custom-icons.css ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fak.fa-pants, .fa-kit.fa-pants { --fa: "\e000"; --fa--fa: "\e000\e000"; }
2
+ .fak.fa-shoe, .fa-kit.fa-shoe { --fa: "\e001"; --fa--fa: "\e001\e001"; }
3
+
4
+ .fak, .fa-kit {
5
+ -webkit-font-smoothing: antialiased;
6
+ -moz-osx-font-smoothing: grayscale;
7
+ display: var(--fa-display, inline-block);
8
+ font-family: "Font Awesome Kit";
9
+ font-style: normal;
10
+ font-variant: normal;
11
+ font-weight: 400;
12
+ line-height: 1;
13
+ text-rendering: auto;
14
+ }
15
+
16
+ .fak::before, .fa-kit::before {
17
+ content: var(--fa);
18
+ }
19
+
20
+ @font-face {
21
+ font-family: "Font Awesome Kit";
22
+ font-style: normal;
23
+ font-display: block;
24
+ src: url("../webfonts/custom-icons.woff2") format("woff2"), url("../webfonts/custom-icons.ttf") format("truetype");
25
+ }
css/duotone.css ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ :root, :host {
2
+ --fa-style-family-duotone: 'Font Awesome 6 Duotone';
3
+ --fa-font-duotone: normal 900 1em/1 'Font Awesome 6 Duotone'; }
4
+
5
+ @font-face {
6
+ font-family: 'Font Awesome 6 Duotone';
7
+ font-style: normal;
8
+ font-weight: 900;
9
+ font-display: block;
10
+ src: url("../webfonts/fa-duotone-900.woff2") format("woff2"), url("../webfonts/fa-duotone-900.ttf") format("truetype"); }
11
+
12
+ .fad,
13
+ .fa-duotone {
14
+ position: relative;
15
+ font-weight: 900;
16
+ letter-spacing: normal; }
17
+
18
+ .fad::before,
19
+ .fa-duotone::before {
20
+ position: absolute;
21
+ color: var(--fa-primary-color, inherit);
22
+ opacity: var(--fa-primary-opacity, 1); }
23
+
24
+ .fad::after,
25
+ .fa-duotone::after {
26
+ color: var(--fa-secondary-color, inherit);
27
+ opacity: var(--fa-secondary-opacity, 0.4); }
28
+
29
+ .fa-swap-opacity .fad::before,
30
+ .fa-swap-opacity .fa-duotone::before,
31
+ .fad.fa-swap-opacity::before,
32
+ .fa-duotone.fa-swap-opacity::before {
33
+ opacity: var(--fa-secondary-opacity, 0.4); }
34
+
35
+ .fa-swap-opacity .fad::after,
36
+ .fa-swap-opacity .fa-duotone::after,
37
+ .fad.fa-swap-opacity::after,
38
+ .fa-duotone.fa-swap-opacity::after {
39
+ opacity: var(--fa-primary-opacity, 1); }
40
+
41
+ .fad.fa-inverse,
42
+ .fa-duotone.fa-inverse {
43
+ color: var(--fa-inverse, #fff); }
44
+
45
+ .fad.fa-stack-1x, .fad.fa-stack-2x,
46
+ .fa-duotone.fa-stack-1x, .fa-duotone.fa-stack-2x {
47
+ position: absolute; }
css/fontawesome.css ADDED
@@ -0,0 +1,621 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .fa {
2
+ font-family: var(--fa-style-family, "Font Awesome 6 Pro");
3
+ font-weight: var(--fa-style, 900); }
4
+
5
+ .fas,
6
+ .fass,
7
+ .far,
8
+ .fasr,
9
+ .fal,
10
+ .fasl,
11
+ .fat,
12
+ .fast,
13
+ .fad,
14
+ .fadr,
15
+ .fadl,
16
+ .fadt,
17
+ .fasds,
18
+ .fasdr,
19
+ .fasdl,
20
+ .fasdt,
21
+ .fab,
22
+ .fa-solid,
23
+ .fa-regular,
24
+ .fa-light,
25
+ .fa-thin,
26
+ .fa-brands,
27
+ .fa-classic,
28
+ .fa-duotone,
29
+ .fa-sharp,
30
+ .fa-sharp-duotone,
31
+ .fa {
32
+ -moz-osx-font-smoothing: grayscale;
33
+ -webkit-font-smoothing: antialiased;
34
+ display: var(--fa-display, inline-block);
35
+ font-style: normal;
36
+ font-variant: normal;
37
+ line-height: 1;
38
+ text-rendering: auto; }
39
+
40
+ .fas::before,
41
+ .fass::before,
42
+ .far::before,
43
+ .fasr::before,
44
+ .fal::before,
45
+ .fasl::before,
46
+ .fat::before,
47
+ .fast::before,
48
+ .fad::before,
49
+ .fadr::before,
50
+ .fadl::before,
51
+ .fadt::before,
52
+ .fasds::before,
53
+ .fasdr::before,
54
+ .fasdl::before,
55
+ .fasdt::before,
56
+ .fab::before,
57
+ .fa-solid::before,
58
+ .fa-regular::before,
59
+ .fa-light::before,
60
+ .fa-thin::before,
61
+ .fa-brands::before,
62
+ .fa-classic::before,
63
+ .fa-duotone::before,
64
+ .fa-sharp::before,
65
+ .fa-sharp-duotone::before,
66
+ .fa::before {
67
+ content: var(--fa); }
68
+
69
+ .fad::after,
70
+ .fa-duotone.fa-solid::after,
71
+ .fa-duotone::after,
72
+ .fadr::after,
73
+ .fa-duotone.fa-regular::after,
74
+ .fadl::after,
75
+ .fa-duotone.fa-light::after,
76
+ .fadt::after,
77
+ .fa-duotone.fa-thin::after,
78
+ .fasds::after,
79
+ .fa-sharp-duotone.fa-solid::after,
80
+ .fa-sharp-duotone::after,
81
+ .fasdr::after,
82
+ .fa-sharp-duotone.fa-regular::after,
83
+ .fasdl::after,
84
+ .fa-sharp-duotone.fa-light::after,
85
+ .fasdt::after,
86
+ .fa-sharp-duotone.fa-thin::after {
87
+ content: var(--fa--fa); }
88
+
89
+ .fa-classic.fa-duotone {
90
+ font-family: 'Font Awesome 6 Duotone'; }
91
+
92
+ .fass,
93
+ .fa-sharp {
94
+ font-weight: 900; }
95
+
96
+ .fad,
97
+ .fa-duotone {
98
+ font-weight: 900; }
99
+
100
+ .fasds,
101
+ .fa-sharp-duotone {
102
+ font-weight: 900; }
103
+
104
+ .fa-classic,
105
+ .fas,
106
+ .fa-solid,
107
+ .far,
108
+ .fa-regular,
109
+ .fal,
110
+ .fa-light,
111
+ .fat,
112
+ .fa-thin {
113
+ font-family: 'Font Awesome 6 Pro'; }
114
+
115
+ .fa-duotone,
116
+ .fad,
117
+ .fadr,
118
+ .fadl,
119
+ .fadt {
120
+ font-family: 'Font Awesome 6 Duotone'; }
121
+
122
+ .fa-brands,
123
+ .fab {
124
+ font-family: 'Font Awesome 6 Brands'; }
125
+
126
+ .fa-sharp,
127
+ .fass,
128
+ .fasr,
129
+ .fasl,
130
+ .fast {
131
+ font-family: 'Font Awesome 6 Sharp'; }
132
+
133
+ .fa-sharp-duotone,
134
+ .fasds,
135
+ .fasdr,
136
+ .fasdl,
137
+ .fasdt {
138
+ font-family: 'Font Awesome 6 Sharp Duotone'; }
139
+
140
+ .fa-1x {
141
+ font-size: 1em; }
142
+
143
+ .fa-2x {
144
+ font-size: 2em; }
145
+
146
+ .fa-3x {
147
+ font-size: 3em; }
148
+
149
+ .fa-4x {
150
+ font-size: 4em; }
151
+
152
+ .fa-5x {
153
+ font-size: 5em; }
154
+
155
+ .fa-6x {
156
+ font-size: 6em; }
157
+
158
+ .fa-7x {
159
+ font-size: 7em; }
160
+
161
+ .fa-8x {
162
+ font-size: 8em; }
163
+
164
+ .fa-9x {
165
+ font-size: 9em; }
166
+
167
+ .fa-10x {
168
+ font-size: 10em; }
169
+
170
+ .fa-2xs {
171
+ font-size: 0.625em;
172
+ line-height: 0.1em;
173
+ vertical-align: 0.225em; }
174
+
175
+ .fa-xs {
176
+ font-size: 0.75em;
177
+ line-height: 0.08333em;
178
+ vertical-align: 0.125em; }
179
+
180
+ .fa-sm {
181
+ font-size: 0.875em;
182
+ line-height: 0.07143em;
183
+ vertical-align: 0.05357em; }
184
+
185
+ .fa-lg {
186
+ font-size: 1.25em;
187
+ line-height: 0.05em;
188
+ vertical-align: -0.075em; }
189
+
190
+ .fa-xl {
191
+ font-size: 1.5em;
192
+ line-height: 0.04167em;
193
+ vertical-align: -0.125em; }
194
+
195
+ .fa-2xl {
196
+ font-size: 2em;
197
+ line-height: 0.03125em;
198
+ vertical-align: -0.1875em; }
199
+
200
+ .fa-fw {
201
+ text-align: center;
202
+ width: 1.25em; }
203
+
204
+ .fa-ul {
205
+ list-style-type: none;
206
+ margin-left: var(--fa-li-margin, 2.5em);
207
+ padding-left: 0; }
208
+ .fa-ul > li {
209
+ position: relative; }
210
+
211
+ .fa-li {
212
+ left: calc(-1 * var(--fa-li-width, 2em));
213
+ position: absolute;
214
+ text-align: center;
215
+ width: var(--fa-li-width, 2em);
216
+ line-height: inherit; }
217
+
218
+ .fa-border {
219
+ border-color: var(--fa-border-color, #eee);
220
+ border-radius: var(--fa-border-radius, 0.1em);
221
+ border-style: var(--fa-border-style, solid);
222
+ border-width: var(--fa-border-width, 0.08em);
223
+ padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); }
224
+
225
+ .fa-pull-left {
226
+ float: left;
227
+ margin-right: var(--fa-pull-margin, 0.3em); }
228
+
229
+ .fa-pull-right {
230
+ float: right;
231
+ margin-left: var(--fa-pull-margin, 0.3em); }
232
+
233
+ .fa-beat {
234
+ animation-name: fa-beat;
235
+ animation-delay: var(--fa-animation-delay, 0s);
236
+ animation-direction: var(--fa-animation-direction, normal);
237
+ animation-duration: var(--fa-animation-duration, 1s);
238
+ animation-iteration-count: var(--fa-animation-iteration-count, infinite);
239
+ animation-timing-function: var(--fa-animation-timing, ease-in-out); }
240
+
241
+ .fa-bounce {
242
+ animation-name: fa-bounce;
243
+ animation-delay: var(--fa-animation-delay, 0s);
244
+ animation-direction: var(--fa-animation-direction, normal);
245
+ animation-duration: var(--fa-animation-duration, 1s);
246
+ animation-iteration-count: var(--fa-animation-iteration-count, infinite);
247
+ animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); }
248
+
249
+ .fa-fade {
250
+ animation-name: fa-fade;
251
+ animation-delay: var(--fa-animation-delay, 0s);
252
+ animation-direction: var(--fa-animation-direction, normal);
253
+ animation-duration: var(--fa-animation-duration, 1s);
254
+ animation-iteration-count: var(--fa-animation-iteration-count, infinite);
255
+ animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }
256
+
257
+ .fa-beat-fade {
258
+ animation-name: fa-beat-fade;
259
+ animation-delay: var(--fa-animation-delay, 0s);
260
+ animation-direction: var(--fa-animation-direction, normal);
261
+ animation-duration: var(--fa-animation-duration, 1s);
262
+ animation-iteration-count: var(--fa-animation-iteration-count, infinite);
263
+ animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }
264
+
265
+ .fa-flip {
266
+ animation-name: fa-flip;
267
+ animation-delay: var(--fa-animation-delay, 0s);
268
+ animation-direction: var(--fa-animation-direction, normal);
269
+ animation-duration: var(--fa-animation-duration, 1s);
270
+ animation-iteration-count: var(--fa-animation-iteration-count, infinite);
271
+ animation-timing-function: var(--fa-animation-timing, ease-in-out); }
272
+
273
+ .fa-shake {
274
+ animation-name: fa-shake;
275
+ animation-delay: var(--fa-animation-delay, 0s);
276
+ animation-direction: var(--fa-animation-direction, normal);
277
+ animation-duration: var(--fa-animation-duration, 1s);
278
+ animation-iteration-count: var(--fa-animation-iteration-count, infinite);
279
+ animation-timing-function: var(--fa-animation-timing, linear); }
280
+
281
+ .fa-spin {
282
+ animation-name: fa-spin;
283
+ animation-delay: var(--fa-animation-delay, 0s);
284
+ animation-direction: var(--fa-animation-direction, normal);
285
+ animation-duration: var(--fa-animation-duration, 2s);
286
+ animation-iteration-count: var(--fa-animation-iteration-count, infinite);
287
+ animation-timing-function: var(--fa-animation-timing, linear); }
288
+
289
+ .fa-spin-reverse {
290
+ --fa-animation-direction: reverse; }
291
+
292
+ .fa-pulse,
293
+ .fa-spin-pulse {
294
+ animation-name: fa-spin;
295
+ animation-direction: var(--fa-animation-direction, normal);
296
+ animation-duration: var(--fa-animation-duration, 1s);
297
+ animation-iteration-count: var(--fa-animation-iteration-count, infinite);
298
+ animation-timing-function: var(--fa-animation-timing, steps(8)); }
299
+
300
+ @media (prefers-reduced-motion: reduce) {
301
+ .fa-beat,
302
+ .fa-bounce,
303
+ .fa-fade,
304
+ .fa-beat-fade,
305
+ .fa-flip,
306
+ .fa-pulse,
307
+ .fa-shake,
308
+ .fa-spin,
309
+ .fa-spin-pulse {
310
+ animation-delay: -1ms;
311
+ animation-duration: 1ms;
312
+ animation-iteration-count: 1;
313
+ transition-delay: 0s;
314
+ transition-duration: 0s; } }
315
+
316
+ @keyframes fa-beat {
317
+ 0%, 90% {
318
+ transform: scale(1); }
319
+ 45% {
320
+ transform: scale(var(--fa-beat-scale, 1.25)); } }
321
+
322
+ @keyframes fa-bounce {
323
+ 0% {
324
+ transform: scale(1, 1) translateY(0); }
325
+ 10% {
326
+ transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }
327
+ 30% {
328
+ transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }
329
+ 50% {
330
+ transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }
331
+ 57% {
332
+ transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }
333
+ 64% {
334
+ transform: scale(1, 1) translateY(0); }
335
+ 100% {
336
+ transform: scale(1, 1) translateY(0); } }
337
+
338
+ @keyframes fa-fade {
339
+ 50% {
340
+ opacity: var(--fa-fade-opacity, 0.4); } }
341
+
342
+ @keyframes fa-beat-fade {
343
+ 0%, 100% {
344
+ opacity: var(--fa-beat-fade-opacity, 0.4);
345
+ transform: scale(1); }
346
+ 50% {
347
+ opacity: 1;
348
+ transform: scale(var(--fa-beat-fade-scale, 1.125)); } }
349
+
350
+ @keyframes fa-flip {
351
+ 50% {
352
+ transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }
353
+
354
+ @keyframes fa-shake {
355
+ 0% {
356
+ transform: rotate(-15deg); }
357
+ 4% {
358
+ transform: rotate(15deg); }
359
+ 8%, 24% {
360
+ transform: rotate(-18deg); }
361
+ 12%, 28% {
362
+ transform: rotate(18deg); }
363
+ 16% {
364
+ transform: rotate(-22deg); }
365
+ 20% {
366
+ transform: rotate(22deg); }
367
+ 32% {
368
+ transform: rotate(-12deg); }
369
+ 36% {
370
+ transform: rotate(12deg); }
371
+ 40%, 100% {
372
+ transform: rotate(0deg); } }
373
+
374
+ @keyframes fa-spin {
375
+ 0% {
376
+ transform: rotate(0deg); }
377
+ 100% {
378
+ transform: rotate(360deg); } }
379
+
380
+ .fa-rotate-90 {
381
+ transform: rotate(90deg); }
382
+
383
+ .fa-rotate-180 {
384
+ transform: rotate(180deg); }
385
+
386
+ .fa-rotate-270 {
387
+ transform: rotate(270deg); }
388
+
389
+ .fa-flip-horizontal {
390
+ transform: scale(-1, 1); }
391
+
392
+ .fa-flip-vertical {
393
+ transform: scale(1, -1); }
394
+
395
+ .fa-flip-both,
396
+ .fa-flip-horizontal.fa-flip-vertical {
397
+ transform: scale(-1, -1); }
398
+
399
+ .fa-rotate-by {
400
+ transform: rotate(var(--fa-rotate-angle, 0)); }
401
+
402
+ .fa-stack {
403
+ display: inline-block;
404
+ height: 2em;
405
+ line-height: 2em;
406
+ position: relative;
407
+ vertical-align: middle;
408
+ width: 2.5em; }
409
+
410
+ .fa-stack-1x,
411
+ .fa-stack-2x {
412
+ left: 0;
413
+ position: absolute;
414
+ text-align: center;
415
+ width: 100%;
416
+ z-index: var(--fa-stack-z-index, auto); }
417
+
418
+ .fa-stack-1x {
419
+ line-height: inherit; }
420
+
421
+ .fa-stack-2x {
422
+ font-size: 2em; }
423
+
424
+ .fa-inverse {
425
+ color: var(--fa-inverse, #fff); }
426
+
427
+ /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
428
+ readers do not read off random characters that represent icons */
429
+ .fa-add { --fa: "\2b"; --fa--fa: "\2b\2b"; }
430
+ .fa-angle-double-up { --fa: "\f102"; --fa--fa: "\f102\f102"; }
431
+ .fa-angle-down { --fa: "\f107"; --fa--fa: "\f107\f107"; }
432
+ .fa-angle-up { --fa: "\f106"; --fa--fa: "\f106\f106"; }
433
+ .fa-angles-up { --fa: "\f102"; --fa--fa: "\f102\f102"; }
434
+ .fa-arrow-up { --fa: "\f062"; --fa--fa: "\f062\f062"; }
435
+ .fa-arrow-up-right-from-square { --fa: "\f08e"; --fa--fa: "\f08e\f08e"; }
436
+ .fa-arrows { --fa: "\f047"; --fa--fa: "\f047\f047"; }
437
+ .fa-arrows-h { --fa: "\f07e"; --fa--fa: "\f07e\f07e"; }
438
+ .fa-arrows-left-right { --fa: "\f07e"; --fa--fa: "\f07e\f07e"; }
439
+ .fa-arrows-rotate { --fa: "\f021"; --fa--fa: "\f021\f021"; }
440
+ .fa-arrows-up-down-left-right { --fa: "\f047"; --fa--fa: "\f047\f047"; }
441
+ .fa-award { --fa: "\f559"; --fa--fa: "\f559\f559"; }
442
+ .fa-backpack { --fa: "\f5d4"; --fa--fa: "\f5d4\f5d4"; }
443
+ .fa-bars { --fa: "\f0c9"; --fa--fa: "\f0c9\f0c9"; }
444
+ .fa-block-question { --fa: "\e3dd"; --fa--fa: "\e3dd\e3dd"; }
445
+ .fa-bolt { --fa: "\f0e7"; --fa--fa: "\f0e7\f0e7"; }
446
+ .fa-boot { --fa: "\f782"; --fa--fa: "\f782\f782"; }
447
+ .fa-caret-up { --fa: "\f0d8"; --fa--fa: "\f0d8\f0d8"; }
448
+ .fa-cart-shopping { --fa: "\f07a"; --fa--fa: "\f07a\f07a"; }
449
+ .fa-check { --fa: "\f00c"; --fa--fa: "\f00c\f00c"; }
450
+ .fa-chess-rook { --fa: "\f447"; --fa--fa: "\f447\f447"; }
451
+ .fa-circle-info { --fa: "\f05a"; --fa--fa: "\f05a\f05a"; }
452
+ .fa-circle-plus { --fa: "\f055"; --fa--fa: "\f055\f055"; }
453
+ .fa-clock-rotate-left { --fa: "\f1da"; --fa--fa: "\f1da\f1da"; }
454
+ .fa-cog { --fa: "\f013"; --fa--fa: "\f013\f013"; }
455
+ .fa-coins { --fa: "\f51e"; --fa--fa: "\f51e\f51e"; }
456
+ .fa-comment-dots { --fa: "\f4ad"; --fa--fa: "\f4ad\f4ad"; }
457
+ .fa-commenting { --fa: "\f4ad"; --fa--fa: "\f4ad\f4ad"; }
458
+ .fa-compress { --fa: "\f066"; --fa--fa: "\f066\f066"; }
459
+ .fa-computer-mouse { --fa: "\f8cc"; --fa--fa: "\f8cc\f8cc"; }
460
+ .fa-cookie { --fa: "\f563"; --fa--fa: "\f563\f563"; }
461
+ .fa-copy { --fa: "\f0c5"; --fa--fa: "\f0c5\f0c5"; }
462
+ .fa-crosshairs { --fa: "\f05b"; --fa--fa: "\f05b\f05b"; }
463
+ .fa-crown { --fa: "\f521"; --fa--fa: "\f521\f521"; }
464
+ .fa-cube { --fa: "\f1b2"; --fa--fa: "\f1b2\f1b2"; }
465
+ .fa-cubes { --fa: "\f1b3"; --fa--fa: "\f1b3\f1b3"; }
466
+ .fa-cut { --fa: "\f0c4"; --fa--fa: "\f0c4\f0c4"; }
467
+ .fa-dice { --fa: "\f522"; --fa--fa: "\f522\f522"; }
468
+ .fa-dizzy { --fa: "\f567"; --fa--fa: "\f567\f567"; }
469
+ .fa-door-closed { --fa: "\f52a"; --fa--fa: "\f52a\f52a"; }
470
+ .fa-door-open { --fa: "\f52b"; --fa--fa: "\f52b\f52b"; }
471
+ .fa-download { --fa: "\f019"; --fa--fa: "\f019\f019"; }
472
+ .fa-edit { --fa: "\f044"; --fa--fa: "\f044\f044"; }
473
+ .fa-ellipsis { --fa: "\f141"; --fa--fa: "\f141\f141"; }
474
+ .fa-ellipsis-h { --fa: "\f141"; --fa--fa: "\f141\f141"; }
475
+ .fa-exclamation { --fa: "\21"; --fa--fa: "\21\21"; }
476
+ .fa-expand { --fa: "\f065"; --fa--fa: "\f065\f065"; }
477
+ .fa-external-link { --fa: "\f08e"; --fa--fa: "\f08e\f08e"; }
478
+ .fa-eye { --fa: "\f06e"; --fa--fa: "\f06e\f06e"; }
479
+ .fa-eye-slash { --fa: "\f070"; --fa--fa: "\f070\f070"; }
480
+ .fa-face-diagonal-mouth { --fa: "\e47e"; --fa--fa: "\e47e\e47e"; }
481
+ .fa-face-dizzy { --fa: "\f567"; --fa--fa: "\f567\f567"; }
482
+ .fa-face-raised-eyebrow { --fa: "\e388"; --fa--fa: "\e388\e388"; }
483
+ .fa-face-smile { --fa: "\f118"; --fa--fa: "\f118\f118"; }
484
+ .fa-face-worried { --fa: "\e3a3"; --fa--fa: "\e3a3\e3a3"; }
485
+ .fa-feather-alt { --fa: "\f56b"; --fa--fa: "\f56b\f56b"; }
486
+ .fa-feather-pointed { --fa: "\f56b"; --fa--fa: "\f56b\f56b"; }
487
+ .fa-file-alt { --fa: "\f15c"; --fa--fa: "\f15c\f15c"; }
488
+ .fa-file-clipboard { --fa: "\f0ea"; --fa--fa: "\f0ea\f0ea"; }
489
+ .fa-file-lines { --fa: "\f15c"; --fa--fa: "\f15c\f15c"; }
490
+ .fa-file-text { --fa: "\f15c"; --fa--fa: "\f15c\f15c"; }
491
+ .fa-film { --fa: "\f008"; --fa--fa: "\f008\f008"; }
492
+ .fa-fire { --fa: "\f06d"; --fa--fa: "\f06d\f06d"; }
493
+ .fa-fist-raised { --fa: "\f6de"; --fa--fa: "\f6de\f6de"; }
494
+ .fa-flag { --fa: "\f024"; --fa--fa: "\f024\f024"; }
495
+ .fa-folder-image { --fa: "\e18a"; --fa--fa: "\e18a\e18a"; }
496
+ .fa-gauge-high { --fa: "\f625"; --fa--fa: "\f625\f625"; }
497
+ .fa-gear { --fa: "\f013"; --fa--fa: "\f013\f013"; }
498
+ .fa-gem { --fa: "\f3a5"; --fa--fa: "\f3a5\f3a5"; }
499
+ .fa-globe { --fa: "\f0ac"; --fa--fa: "\f0ac\f0ac"; }
500
+ .fa-hammer { --fa: "\f6e3"; --fa--fa: "\f6e3\f6e3"; }
501
+ .fa-hand-back-point-up { --fa: "\e1a2"; --fa--fa: "\e1a2\e1a2"; }
502
+ .fa-hand-fist { --fa: "\f6de"; --fa--fa: "\f6de\f6de"; }
503
+ .fa-hand-holding-medical { --fa: "\e05c"; --fa--fa: "\e05c\e05c"; }
504
+ .fa-hand-point-left { --fa: "\f0a5"; --fa--fa: "\f0a5\f0a5"; }
505
+ .fa-hat-santa { --fa: "\f7a7"; --fa--fa: "\f7a7\f7a7"; }
506
+ .fa-hat-witch { --fa: "\f6e7"; --fa--fa: "\f6e7\f6e7"; }
507
+ .fa-heart { --fa: "\f004"; --fa--fa: "\f004\f004"; }
508
+ .fa-heart-music-camera-bolt { --fa: "\f86d"; --fa--fa: "\f86d\f86d"; }
509
+ .fa-history { --fa: "\f1da"; --fa--fa: "\f1da\f1da"; }
510
+ .fa-icons { --fa: "\f86d"; --fa--fa: "\f86d\f86d"; }
511
+ .fa-info-circle { --fa: "\f05a"; --fa--fa: "\f05a\f05a"; }
512
+ .fa-joystick { --fa: "\f8c5"; --fa--fa: "\f8c5\f8c5"; }
513
+ .fa-layer-group { --fa: "\f5fd"; --fa--fa: "\f5fd\f5fd"; }
514
+ .fa-lightbulb { --fa: "\f0eb"; --fa--fa: "\f0eb\f0eb"; }
515
+ .fa-list { --fa: "\f03a"; --fa--fa: "\f03a\f03a"; }
516
+ .fa-list-squares { --fa: "\f03a"; --fa--fa: "\f03a\f03a"; }
517
+ .fa-location-check { --fa: "\f606"; --fa--fa: "\f606\f606"; }
518
+ .fa-location-xmark { --fa: "\f60e"; --fa--fa: "\f60e\f60e"; }
519
+ .fa-lock { --fa: "\f023"; --fa--fa: "\f023\f023"; }
520
+ .fa-lock-open { --fa: "\f3c1"; --fa--fa: "\f3c1\f3c1"; }
521
+ .fa-magnifying-glass { --fa: "\f002"; --fa--fa: "\f002\f002"; }
522
+ .fa-male { --fa: "\f183"; --fa--fa: "\f183\f183"; }
523
+ .fa-map-marker-check { --fa: "\f606"; --fa--fa: "\f606\f606"; }
524
+ .fa-map-marker-times { --fa: "\f60e"; --fa--fa: "\f60e\f60e"; }
525
+ .fa-map-marker-xmark { --fa: "\f60e"; --fa--fa: "\f60e\f60e"; }
526
+ .fa-minus-square { --fa: "\f146"; --fa--fa: "\f146\f146"; }
527
+ .fa-mouse { --fa: "\f8cc"; --fa--fa: "\f8cc\f8cc"; }
528
+ .fa-music { --fa: "\f001"; --fa--fa: "\f001\f001"; }
529
+ .fa-navicon { --fa: "\f0c9"; --fa--fa: "\f0c9\f0c9"; }
530
+ .fa-palette { --fa: "\f53f"; --fa--fa: "\f53f\f53f"; }
531
+ .fa-paste { --fa: "\f0ea"; --fa--fa: "\f0ea\f0ea"; }
532
+ .fa-pen { --fa: "\f304"; --fa--fa: "\f304\f304"; }
533
+ .fa-pen-field { --fa: "\e211"; --fa--fa: "\e211\e211"; }
534
+ .fa-pen-to-square { --fa: "\f044"; --fa--fa: "\f044\f044"; }
535
+ .fa-person { --fa: "\f183"; --fa--fa: "\f183\f183"; }
536
+ .fa-person-arrow-down-to-line { --fa: "\e538"; --fa--fa: "\e538\e538"; }
537
+ .fa-person-arrow-up-from-line { --fa: "\e539"; --fa--fa: "\e539\e539"; }
538
+ .fa-person-falling-burst { --fa: "\e547"; --fa--fa: "\e547\e547"; }
539
+ .fa-person-military-pointing { --fa: "\e54a"; --fa--fa: "\e54a\e54a"; }
540
+ .fa-planet-ringed { --fa: "\e020"; --fa--fa: "\e020\e020"; }
541
+ .fa-plus { --fa: "\2b"; --fa--fa: "\2b\2b"; }
542
+ .fa-plus-circle { --fa: "\f055"; --fa--fa: "\f055\f055"; }
543
+ .fa-power-off { --fa: "\f011"; --fa--fa: "\f011\f011"; }
544
+ .fa-recycle { --fa: "\f1b8"; --fa--fa: "\f1b8\f1b8"; }
545
+ .fa-redo-alt { --fa: "\f2f9"; --fa--fa: "\f2f9\f2f9"; }
546
+ .fa-refresh { --fa: "\f021"; --fa--fa: "\f021\f021"; }
547
+ .fa-right-from-bracket { --fa: "\f2f5"; --fa--fa: "\f2f5\f2f5"; }
548
+ .fa-rocket-launch { --fa: "\e027"; --fa--fa: "\e027\e027"; }
549
+ .fa-rotate-forward { --fa: "\f2f9"; --fa--fa: "\f2f9\f2f9"; }
550
+ .fa-rotate-right { --fa: "\f2f9"; --fa--fa: "\f2f9\f2f9"; }
551
+ .fa-scissors { --fa: "\f0c4"; --fa--fa: "\f0c4\f0c4"; }
552
+ .fa-search { --fa: "\f002"; --fa--fa: "\f002\f002"; }
553
+ .fa-shield { --fa: "\f132"; --fa--fa: "\f132\f132"; }
554
+ .fa-shield-alt { --fa: "\f3ed"; --fa--fa: "\f3ed\f3ed"; }
555
+ .fa-shield-blank { --fa: "\f132"; --fa--fa: "\f132\f132"; }
556
+ .fa-shield-halved { --fa: "\f3ed"; --fa--fa: "\f3ed\f3ed"; }
557
+ .fa-shirt { --fa: "\f553"; --fa--fa: "\f553\f553"; }
558
+ .fa-shopping-cart { --fa: "\f07a"; --fa--fa: "\f07a\f07a"; }
559
+ .fa-sign-out-alt { --fa: "\f2f5"; --fa--fa: "\f2f5\f2f5"; }
560
+ .fa-smile { --fa: "\f118"; --fa--fa: "\f118\f118"; }
561
+ .fa-snowflake { --fa: "\f2dc"; --fa--fa: "\f2dc\f2dc"; }
562
+ .fa-square-dashed { --fa: "\e269"; --fa--fa: "\e269\e269"; }
563
+ .fa-square-minus { --fa: "\f146"; --fa--fa: "\f146\f146"; }
564
+ .fa-star { --fa: "\f005"; --fa--fa: "\f005\f005"; }
565
+ .fa-store { --fa: "\f54e"; --fa--fa: "\f54e\f54e"; }
566
+ .fa-swords { --fa: "\f71d"; --fa--fa: "\f71d\f71d"; }
567
+ .fa-sync { --fa: "\f021"; --fa--fa: "\f021\f021"; }
568
+ .fa-t-shirt { --fa: "\f553"; --fa--fa: "\f553\f553"; }
569
+ .fa-tachometer-alt { --fa: "\f625"; --fa--fa: "\f625\f625"; }
570
+ .fa-tachometer-alt-fast { --fa: "\f625"; --fa--fa: "\f625\f625"; }
571
+ .fa-terminal { --fa: "\f120"; --fa--fa: "\f120\f120"; }
572
+ .fa-trash-alt { --fa: "\f2ed"; --fa--fa: "\f2ed\f2ed"; }
573
+ .fa-trash-can { --fa: "\f2ed"; --fa--fa: "\f2ed\f2ed"; }
574
+ .fa-trophy { --fa: "\f091"; --fa--fa: "\f091\f091"; }
575
+ .fa-tshirt { --fa: "\f553"; --fa--fa: "\f553\f553"; }
576
+ .fa-up-from-bracket { --fa: "\e590"; --fa--fa: "\e590\e590"; }
577
+ .fa-upload { --fa: "\f093"; --fa--fa: "\f093\f093"; }
578
+ .fa-user { --fa: "\f007"; --fa--fa: "\f007\f007"; }
579
+ .fa-user-astronaut { --fa: "\f4fb"; --fa--fa: "\f4fb\f4fb"; }
580
+ .fa-user-friends { --fa: "\f500"; --fa--fa: "\f500\f500"; }
581
+ .fa-user-group { --fa: "\f500"; --fa--fa: "\f500\f500"; }
582
+ .fa-user-group-crown { --fa: "\f6a5"; --fa--fa: "\f6a5\f6a5"; }
583
+ .fa-user-minus { --fa: "\f503"; --fa--fa: "\f503\f503"; }
584
+ .fa-user-plus { --fa: "\f234"; --fa--fa: "\f234\f234"; }
585
+ .fa-user-slash { --fa: "\f506"; --fa--fa: "\f506\f506"; }
586
+ .fa-user-unlock { --fa: "\e058"; --fa--fa: "\e058\e058"; }
587
+ .fa-users-crown { --fa: "\f6a5"; --fa--fa: "\f6a5\f6a5"; }
588
+ .fa-video { --fa: "\f03d"; --fa--fa: "\f03d\f03d"; }
589
+ .fa-video-camera { --fa: "\f03d"; --fa--fa: "\f03d\f03d"; }
590
+ .fa-volume { --fa: "\f6a8"; --fa--fa: "\f6a8\f6a8"; }
591
+ .fa-volume-down { --fa: "\f027"; --fa--fa: "\f027\f027"; }
592
+ .fa-volume-low { --fa: "\f027"; --fa--fa: "\f027\f027"; }
593
+ .fa-volume-medium { --fa: "\f6a8"; --fa--fa: "\f6a8\f6a8"; }
594
+ .fa-volume-slash { --fa: "\f2e2"; --fa--fa: "\f2e2\f2e2"; }
595
+ .fa-wrench { --fa: "\f0ad"; --fa--fa: "\f0ad\f0ad"; }
596
+ .fa-x { --fa: "\58"; --fa--fa: "\58\58"; }
597
+ .fa-zap { --fa: "\f0e7"; --fa--fa: "\f0e7\f0e7"; }
598
+
599
+ .sr-only,
600
+ .fa-sr-only {
601
+ position: absolute;
602
+ width: 1px;
603
+ height: 1px;
604
+ padding: 0;
605
+ margin: -1px;
606
+ overflow: hidden;
607
+ clip: rect(0, 0, 0, 0);
608
+ white-space: nowrap;
609
+ border-width: 0; }
610
+
611
+ .sr-only-focusable:not(:focus),
612
+ .fa-sr-only-focusable:not(:focus) {
613
+ position: absolute;
614
+ width: 1px;
615
+ height: 1px;
616
+ padding: 0;
617
+ margin: -1px;
618
+ overflow: hidden;
619
+ clip: rect(0, 0, 0, 0);
620
+ white-space: nowrap;
621
+ border-width: 0; }
css/solid.css ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Font Awesome Pro 6.7.2 by @fontawesome - https://fontawesome.com
3
+ * License - https://fontawesome.com/license (Commercial License)
4
+ * Copyright 2024 Fonticons, Inc.
5
+ */
6
+ :root, :host {
7
+ --fa-style-family-classic: 'Font Awesome 6 Pro';
8
+ --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Pro'; }
9
+
10
+ @font-face {
11
+ font-family: 'Font Awesome 6 Pro';
12
+ font-style: normal;
13
+ font-weight: 900;
14
+ font-display: block;
15
+ src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); }
16
+
17
+ .fas,
18
+ .fa-solid {
19
+ font-weight: 900; }
index.html CHANGED
@@ -4,8 +4,12 @@
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
6
  <title>游戏可用图标 · Font Awesome 6 子集</title>
7
- <!-- Font Awesome 6 免费版 CDN (用于预览, Pro专属图标将显示占位符) -->
8
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
 
 
 
 
9
  <style>
10
  * {
11
  box-sizing: border-box;
@@ -57,10 +61,28 @@
57
  margin-left: 10px;
58
  vertical-align: middle;
59
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  .search-wrapper {
61
  position: relative;
62
  max-width: 500px;
63
- margin-bottom: 32px;
64
  }
65
  .search-wrapper i {
66
  position: absolute;
@@ -83,6 +105,31 @@
83
  border-color: #3b82f6;
84
  box-shadow: 0 8px 12px -6px rgba(59,130,246,0.2);
85
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
86
  .stats {
87
  display: flex;
88
  flex-wrap: wrap;
@@ -154,11 +201,6 @@
154
  align-items: center;
155
  justify-content: center;
156
  }
157
- .pro-icon-placeholder {
158
- opacity: 0.5;
159
- filter: grayscale(0.3);
160
- font-size: 36px;
161
- }
162
  .class-name {
163
  font-family: 'SF Mono', 'Menlo', 'Monaco', 'Cascadia Code', 'Consolas', monospace;
164
  background: #f1f5f9;
@@ -191,6 +233,17 @@
191
  text-transform: uppercase;
192
  letter-spacing: 0.3px;
193
  }
 
 
 
 
 
 
 
 
 
 
 
194
  .footer-note {
195
  margin-top: 48px;
196
  text-align: center;
@@ -237,16 +290,23 @@
237
  <i class="fa-solid fa-gamepad"></i>
238
  游戏内可用图标库
239
  <span class="badge-pro">Font Awesome 6 Pro 子集</span>
 
240
  </h1>
241
  <div class="subtitle">
242
- 基于提取的 CSS 文件 — 包含以下 100+ 图标。 <strong>copy / paste</strong> 能用,<strong>envelope</strong> 不在列表中。<br>
243
  👆 点击卡片复制<strong>不带 `fa-` 前缀</strong>的图标名(例如 <code>copy</code>)
244
  </div>
245
  </header>
246
 
247
- <div class="search-wrapper">
248
- <i class="fa-solid fa-magnifying-glass"></i>
249
- <input type="text" id="searchInput" placeholder="搜索图标名称或类名 (例如 copy, heart, user...)" autocomplete="off">
 
 
 
 
 
 
250
  </div>
251
 
252
  <div class="stats">
@@ -256,13 +316,14 @@
256
  <div class="legend">
257
  <span><i class="fa-solid fa-check" style="color:#16a34a;"></i> 免费版可预览</span>
258
  <span><i class="fa-solid fa-crown" style="color:#d97706;"></i> Pro 专属</span>
 
259
  </div>
260
  </div>
261
 
262
  <div class="grid" id="iconGrid"></div>
263
 
264
  <div class="footer-note">
265
- ⚡ 点击卡片复制短名称(无 `fa-`)· 部分图标 Pro 专属,游戏内可使用但预览为占位符 · 实际样式以游戏内为准
266
  </div>
267
  </div>
268
 
@@ -272,17 +333,21 @@
272
  (function(){
273
  "use strict";
274
 
275
- // ---------- 从提供的 CSS 中提取的图标数据集 (去重合并别名) ----------
 
276
  const iconDatabase = [
277
  { primary: "fa-add", aliases: ["fa-plus"], isPro: false },
278
- { primary: "fa-angle-double-up", aliases: ["fa-angles-up"], isPro: false },
279
  { primary: "fa-angle-down", aliases: [], isPro: false },
280
  { primary: "fa-angle-up", aliases: [], isPro: false },
 
 
281
  { primary: "fa-arrow-up", aliases: [], isPro: false },
282
  { primary: "fa-arrow-up-right-from-square", aliases: ["fa-external-link"], isPro: false },
283
  { primary: "fa-arrows", aliases: ["fa-arrows-up-down-left-right"], isPro: false },
284
  { primary: "fa-arrows-h", aliases: ["fa-arrows-left-right"], isPro: false },
285
  { primary: "fa-arrows-rotate", aliases: ["fa-refresh","fa-sync"], isPro: false },
 
286
  { primary: "fa-award", aliases: [], isPro: false },
287
  { primary: "fa-backpack", aliases: [], isPro: true },
288
  { primary: "fa-bars", aliases: ["fa-navicon"], isPro: false },
@@ -309,6 +374,7 @@
309
  { primary: "fa-cubes", aliases: [], isPro: false },
310
  { primary: "fa-cut", aliases: ["fa-scissors"], isPro: false },
311
  { primary: "fa-dice", aliases: [], isPro: false },
 
312
  { primary: "fa-dizzy", aliases: ["fa-face-dizzy"], isPro: false },
313
  { primary: "fa-door-closed", aliases: [], isPro: false },
314
  { primary: "fa-door-open", aliases: [], isPro: false },
@@ -346,38 +412,55 @@
346
  { primary: "fa-layer-group", aliases: [], isPro: false },
347
  { primary: "fa-lightbulb", aliases: [], isPro: false },
348
  { primary: "fa-list", aliases: ["fa-list-squares"], isPro: false },
349
- { primary: "fa-location-check", aliases: ["fa-map-marker-check"], isPro: true },
350
- { primary: "fa-location-xmark", aliases: ["fa-map-marker-times","fa-map-marker-xmark"], isPro: true },
351
  { primary: "fa-lock", aliases: [], isPro: false },
352
  { primary: "fa-lock-open", aliases: [], isPro: false },
353
  { primary: "fa-magnifying-glass", aliases: ["fa-search"], isPro: false },
354
- { primary: "fa-person", aliases: ["fa-male"], isPro: false },
355
- { primary: "fa-square-minus", aliases: ["fa-minus-square"], isPro: false },
 
 
 
356
  { primary: "fa-music", aliases: [], isPro: false },
 
357
  { primary: "fa-palette", aliases: [], isPro: false },
 
358
  { primary: "fa-pen", aliases: [], isPro: false },
359
  { primary: "fa-pen-field", aliases: [], isPro: true },
 
 
 
360
  { primary: "fa-person-arrow-down-to-line", aliases: [], isPro: true },
361
  { primary: "fa-person-arrow-up-from-line", aliases: [], isPro: true },
362
  { primary: "fa-person-falling-burst", aliases: [], isPro: true },
363
  { primary: "fa-person-military-pointing", aliases: [], isPro: true },
364
  { primary: "fa-planet-ringed", aliases: [], isPro: true },
365
  { primary: "fa-power-off", aliases: [], isPro: false },
 
 
366
  { primary: "fa-recycle", aliases: [], isPro: false },
367
- { primary: "fa-rotate-right", aliases: ["fa-redo-alt","fa-rotate-forward"], isPro: false },
368
  { primary: "fa-right-from-bracket", aliases: ["fa-sign-out-alt"], isPro: false },
369
  { primary: "fa-rocket-launch", aliases: [], isPro: true },
 
 
 
370
  { primary: "fa-shield", aliases: ["fa-shield-blank"], isPro: false },
371
  { primary: "fa-shield-halved", aliases: ["fa-shield-alt"], isPro: false },
372
- { primary: "fa-shirt", aliases: ["fa-tshirt"], isPro: false },
373
  { primary: "fa-snowflake", aliases: [], isPro: false },
374
  { primary: "fa-square-dashed", aliases: [], isPro: true },
375
  { primary: "fa-star", aliases: [], isPro: false },
376
  { primary: "fa-store", aliases: [], isPro: false },
377
  { primary: "fa-swords", aliases: [], isPro: true },
 
 
 
378
  { primary: "fa-terminal", aliases: [], isPro: false },
379
  { primary: "fa-trash-can", aliases: ["fa-trash-alt"], isPro: false },
380
  { primary: "fa-trophy", aliases: [], isPro: false },
 
381
  { primary: "fa-up-from-bracket", aliases: [], isPro: true },
382
  { primary: "fa-upload", aliases: [], isPro: false },
383
  { primary: "fa-user", aliases: [], isPro: false },
@@ -388,12 +471,17 @@
388
  { primary: "fa-user-plus", aliases: [], isPro: false },
389
  { primary: "fa-user-slash", aliases: [], isPro: false },
390
  { primary: "fa-user-unlock", aliases: [], isPro: true },
 
391
  { primary: "fa-video", aliases: ["fa-video-camera"], isPro: false },
392
  { primary: "fa-volume", aliases: ["fa-volume-medium"], isPro: false },
393
  { primary: "fa-volume-low", aliases: ["fa-volume-down"], isPro: false },
 
 
394
  { primary: "fa-volume-slash", aliases: [], isPro: false },
395
  { primary: "fa-wrench", aliases: [], isPro: false },
396
- { primary: "fa-x", aliases: [], isPro: false }
 
 
397
  ];
398
 
399
  const totalIcons = iconDatabase.length;
@@ -404,52 +492,66 @@
404
  const visibleSpan = document.getElementById('visibleCount');
405
  const toast = document.getElementById('toast');
406
 
407
- // 辅助函数:去除 "fa-" 前缀
 
 
 
 
 
 
408
  function getShortName(primaryClass) {
409
  return primaryClass.replace(/^fa-/, '');
410
  }
411
 
412
- // 渲染网格
 
 
 
 
 
413
  function renderCards(filterText = '') {
414
  const searchTerm = filterText.trim().toLowerCase();
415
  let visibleCount = 0;
416
-
417
  let html = '';
418
  iconDatabase.forEach(item => {
419
  const primary = item.primary;
420
  const aliases = item.aliases;
421
  const isPro = item.isPro;
422
-
 
 
 
423
  const allNames = [primary, ...aliases].map(n => n.toLowerCase());
424
  const matches = searchTerm === '' || allNames.some(name => name.includes(searchTerm));
425
-
426
  if (!matches) return;
427
  visibleCount++;
428
-
429
  const shortName = getShortName(primary);
430
- const iconClass = `fa-solid ${primary}`;
431
  const aliasStr = aliases.length ? aliases.map(a => a.replace(/^fa-/, '')).join(' · ') : '';
432
-
433
  html += `
434
- <div class="card" data-short="${shortName}" data-pro="${isPro}" title="点击复制 ${shortName}">
435
  <div class="icon-preview">
436
- <i class="${iconClass}${isPro ? ' pro-icon-placeholder' : ''}" style="${isPro ? 'opacity:0.5;' : ''}"></i>
437
  </div>
438
  <div class="class-name">${primary}</div>
439
  ${aliasStr ? `<div class="aliases">别名: ${aliasStr}</div>` : ''}
440
  ${isPro ? '<div class="pro-badge"><i class="fa-solid fa-crown" style="font-size:10px;"></i> PRO</div>' : ''}
 
441
  </div>
442
  `;
443
  });
444
-
445
  if (visibleCount === 0) {
446
  html = `<div class="no-result"><i class="fa-regular fa-face-frown" style="margin-right:10px;"></i>没有匹配的图标,试试 "copy", "heart" 或 "user"</div>`;
447
  }
448
-
449
  grid.innerHTML = html;
450
  visibleSpan.textContent = visibleCount;
451
-
452
- // 绑定点击复制事件 —— 复制不带 "fa-" 的短名称
453
  document.querySelectorAll('.card').forEach(card => {
454
  card.addEventListener('click', (e) => {
455
  const shortName = card.dataset.short;
@@ -480,7 +582,6 @@
480
  setTimeout(() => toast.classList.remove('show'), 1800);
481
  }
482
 
483
- // 搜索防抖
484
  let debounceTimer;
485
  searchInput.addEventListener('input', (e) => {
486
  clearTimeout(debounceTimer);
@@ -489,9 +590,8 @@
489
  }, 200);
490
  });
491
 
492
- // 初始化渲染
493
  renderCards();
494
  })();
495
  </script>
496
  </body>
497
- </html>
 
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
6
  <title>游戏可用图标 · Font Awesome 6 子集</title>
7
+ <link rel="stylesheet" href="css/fontawesome.css">
8
+ <link rel="stylesheet" href="css/solid.css">
9
+ <link rel="stylesheet" href="css/duotone.css">
10
+ <link rel="stylesheet" href="css/brands.css">
11
+ <link rel="stylesheet" href="css/custom-icons.css">
12
+
13
  <style>
14
  * {
15
  box-sizing: border-box;
 
61
  margin-left: 10px;
62
  vertical-align: middle;
63
  }
64
+ .badge-kit {
65
+ background: #a78bfa;
66
+ color: #1e293b;
67
+ font-size: 0.7rem;
68
+ font-weight: 600;
69
+ padding: 2px 8px;
70
+ border-radius: 20px;
71
+ text-transform: uppercase;
72
+ margin-left: 10px;
73
+ vertical-align: middle;
74
+ }
75
+ .controls {
76
+ display: flex;
77
+ flex-wrap: wrap;
78
+ gap: 16px;
79
+ align-items: center;
80
+ margin-bottom: 32px;
81
+ }
82
  .search-wrapper {
83
  position: relative;
84
  max-width: 500px;
85
+ flex: 1;
86
  }
87
  .search-wrapper i {
88
  position: absolute;
 
105
  border-color: #3b82f6;
106
  box-shadow: 0 8px 12px -6px rgba(59,130,246,0.2);
107
  }
108
+ .filter-toggle {
109
+ display: flex;
110
+ background: #e2e8f0;
111
+ border-radius: 60px;
112
+ padding: 4px;
113
+ gap: 0;
114
+ }
115
+ .filter-toggle button {
116
+ border: none;
117
+ background: transparent;
118
+ padding: 10px 20px;
119
+ border-radius: 60px;
120
+ font-size: 0.875rem;
121
+ font-weight: 500;
122
+ color: #475569;
123
+ cursor: pointer;
124
+ transition: all 0.2s;
125
+ white-space: nowrap;
126
+ }
127
+ .filter-toggle button.active {
128
+ background: white;
129
+ color: #1e293b;
130
+ box-shadow: 0 2px 6px rgba(0,0,0,0.08);
131
+ font-weight: 600;
132
+ }
133
  .stats {
134
  display: flex;
135
  flex-wrap: wrap;
 
201
  align-items: center;
202
  justify-content: center;
203
  }
 
 
 
 
 
204
  .class-name {
205
  font-family: 'SF Mono', 'Menlo', 'Monaco', 'Cascadia Code', 'Consolas', monospace;
206
  background: #f1f5f9;
 
233
  text-transform: uppercase;
234
  letter-spacing: 0.3px;
235
  }
236
+ .kit-badge {
237
+ background: #e9d5ff;
238
+ color: #6b21a8;
239
+ font-size: 0.65rem;
240
+ font-weight: 700;
241
+ padding: 3px 8px;
242
+ border-radius: 40px;
243
+ margin-top: 8px;
244
+ text-transform: uppercase;
245
+ letter-spacing: 0.3px;
246
+ }
247
  .footer-note {
248
  margin-top: 48px;
249
  text-align: center;
 
290
  <i class="fa-solid fa-gamepad"></i>
291
  游戏内可用图标库
292
  <span class="badge-pro">Font Awesome 6 Pro 子集</span>
293
+ <span class="badge-kit">+ 自定义图标</span>
294
  </h1>
295
  <div class="subtitle">
296
+ 基于从 bloxd.io 提取的 5 个 CSS 文件 — 包含 <strong>自定义图标 / Duotone / Solid / Brands</strong>。<br>
297
  👆 点击卡片复制<strong>不带 `fa-` 前缀</strong>的图标名(例如 <code>copy</code>)
298
  </div>
299
  </header>
300
 
301
+ <div class="controls">
302
+ <div class="search-wrapper">
303
+ <i class="fa-solid fa-magnifying-glass"></i>
304
+ <input type="text" id="searchInput" placeholder="搜索图标名称或类名 (例如 copy, heart, user...)" autocomplete="off">
305
+ </div>
306
+ <div class="filter-toggle">
307
+ <button id="btnAll" class="active" onclick="setFilter('all')">bloxd全集</button>
308
+ <button id="btnGame" onclick="setFilter('game')">自定义游戏内可用</button>
309
+ </div>
310
  </div>
311
 
312
  <div class="stats">
 
316
  <div class="legend">
317
  <span><i class="fa-solid fa-check" style="color:#16a34a;"></i> 免费版可预览</span>
318
  <span><i class="fa-solid fa-crown" style="color:#d97706;"></i> Pro 专属</span>
319
+ <span><i class="fa-kit fa-pants" style="color:#7c3aed;"></i> 自定义 Kit</span>
320
  </div>
321
  </div>
322
 
323
  <div class="grid" id="iconGrid"></div>
324
 
325
  <div class="footer-note">
326
+ ⚡ 点击卡片复制短名称(无 `fa-`)· 图标来源:fontawesome.css / solid / duotone / brands / custom-icons(bloxd.io)· 实际样式以游戏内为准
327
  </div>
328
  </div>
329
 
 
333
  (function(){
334
  "use strict";
335
 
336
+ let currentFilter = 'all';
337
+
338
  const iconDatabase = [
339
  { primary: "fa-add", aliases: ["fa-plus"], isPro: false },
340
+ { primary: "fa-angles-up", aliases: ["fa-angle-double-up"], isPro: false },
341
  { primary: "fa-angle-down", aliases: [], isPro: false },
342
  { primary: "fa-angle-up", aliases: [], isPro: false },
343
+ { primary: "fa-angle-double-up", aliases: [], isPro: false },
344
+ { primary: "fa-apple", aliases: [], isPro: false, available: false },
345
  { primary: "fa-arrow-up", aliases: [], isPro: false },
346
  { primary: "fa-arrow-up-right-from-square", aliases: ["fa-external-link"], isPro: false },
347
  { primary: "fa-arrows", aliases: ["fa-arrows-up-down-left-right"], isPro: false },
348
  { primary: "fa-arrows-h", aliases: ["fa-arrows-left-right"], isPro: false },
349
  { primary: "fa-arrows-rotate", aliases: ["fa-refresh","fa-sync"], isPro: false },
350
+ { primary: "fa-arrows-left-right", aliases: [], isPro: false },
351
  { primary: "fa-award", aliases: [], isPro: false },
352
  { primary: "fa-backpack", aliases: [], isPro: true },
353
  { primary: "fa-bars", aliases: ["fa-navicon"], isPro: false },
 
374
  { primary: "fa-cubes", aliases: [], isPro: false },
375
  { primary: "fa-cut", aliases: ["fa-scissors"], isPro: false },
376
  { primary: "fa-dice", aliases: [], isPro: false },
377
+ { primary: "fa-discord", aliases: [], isPro: false, available: false },
378
  { primary: "fa-dizzy", aliases: ["fa-face-dizzy"], isPro: false },
379
  { primary: "fa-door-closed", aliases: [], isPro: false },
380
  { primary: "fa-door-open", aliases: [], isPro: false },
 
412
  { primary: "fa-layer-group", aliases: [], isPro: false },
413
  { primary: "fa-lightbulb", aliases: [], isPro: false },
414
  { primary: "fa-list", aliases: ["fa-list-squares"], isPro: false },
415
+ { primary: "fa-location-check", aliases: ["fa-map-marker-check"], isPro: false },
416
+ { primary: "fa-location-xmark", aliases: ["fa-map-marker-times","fa-map-marker-xmark"], isPro: false },
417
  { primary: "fa-lock", aliases: [], isPro: false },
418
  { primary: "fa-lock-open", aliases: [], isPro: false },
419
  { primary: "fa-magnifying-glass", aliases: ["fa-search"], isPro: false },
420
+ { primary: "fa-map-marker-check", aliases: [], isPro: false },
421
+ { primary: "fa-map-marker-times", aliases: [], isPro: false },
422
+ { primary: "fa-map-marker-xmark", aliases: [], isPro: false },
423
+ { primary: "fa-minus-square", aliases: ["fa-square-minus"], isPro: false },
424
+ { primary: "fa-mouse", aliases: [], isPro: false },
425
  { primary: "fa-music", aliases: [], isPro: false },
426
+ { primary: "fa-navicon", aliases: [], isPro: false },
427
  { primary: "fa-palette", aliases: [], isPro: false },
428
+ { primary: "fa-pants", aliases: [], isPro: false, available: false },
429
  { primary: "fa-pen", aliases: [], isPro: false },
430
  { primary: "fa-pen-field", aliases: [], isPro: true },
431
+ { primary: "fa-paste", aliases: [], isPro: false },
432
+ { primary: "fa-pen-to-square", aliases: [], isPro: false },
433
+ { primary: "fa-person", aliases: ["fa-male"], isPro: false },
434
  { primary: "fa-person-arrow-down-to-line", aliases: [], isPro: true },
435
  { primary: "fa-person-arrow-up-from-line", aliases: [], isPro: true },
436
  { primary: "fa-person-falling-burst", aliases: [], isPro: true },
437
  { primary: "fa-person-military-pointing", aliases: [], isPro: true },
438
  { primary: "fa-planet-ringed", aliases: [], isPro: true },
439
  { primary: "fa-power-off", aliases: [], isPro: false },
440
+ { primary: "fa-plus", aliases: [], isPro: false },
441
+ { primary: "fa-plus-circle", aliases: [], isPro: false },
442
  { primary: "fa-recycle", aliases: [], isPro: false },
443
+ { primary: "fa-redo-alt", aliases: ["fa-rotate-forward"], isPro: false },
444
  { primary: "fa-right-from-bracket", aliases: ["fa-sign-out-alt"], isPro: false },
445
  { primary: "fa-rocket-launch", aliases: [], isPro: true },
446
+ { primary: "fa-rotate-forward", aliases: [], isPro: false },
447
+ { primary: "fa-rotate-right", aliases: ["fa-redo-alt","fa-rotate-forward"], isPro: false },
448
+ { primary: "fa-shoe", aliases: [], isPro: false, available: false },
449
  { primary: "fa-shield", aliases: ["fa-shield-blank"], isPro: false },
450
  { primary: "fa-shield-halved", aliases: ["fa-shield-alt"], isPro: false },
451
+ { primary: "fa-shirt", aliases: ["fa-t-shirt","fa-tshirt"], isPro: false },
452
  { primary: "fa-snowflake", aliases: [], isPro: false },
453
  { primary: "fa-square-dashed", aliases: [], isPro: true },
454
  { primary: "fa-star", aliases: [], isPro: false },
455
  { primary: "fa-store", aliases: [], isPro: false },
456
  { primary: "fa-swords", aliases: [], isPro: true },
457
+ { primary: "fa-t-shirt", aliases: [], isPro: false },
458
+ { primary: "fa-tachometer-alt", aliases: [], isPro: false },
459
+ { primary: "fa-tachometer-alt-fast", aliases: [], isPro: false },
460
  { primary: "fa-terminal", aliases: [], isPro: false },
461
  { primary: "fa-trash-can", aliases: ["fa-trash-alt"], isPro: false },
462
  { primary: "fa-trophy", aliases: [], isPro: false },
463
+ { primary: "fa-tshirt", aliases: [], isPro: false },
464
  { primary: "fa-up-from-bracket", aliases: [], isPro: true },
465
  { primary: "fa-upload", aliases: [], isPro: false },
466
  { primary: "fa-user", aliases: [], isPro: false },
 
471
  { primary: "fa-user-plus", aliases: [], isPro: false },
472
  { primary: "fa-user-slash", aliases: [], isPro: false },
473
  { primary: "fa-user-unlock", aliases: [], isPro: true },
474
+ { primary: "fa-users-crown", aliases: [], isPro: true },
475
  { primary: "fa-video", aliases: ["fa-video-camera"], isPro: false },
476
  { primary: "fa-volume", aliases: ["fa-volume-medium"], isPro: false },
477
  { primary: "fa-volume-low", aliases: ["fa-volume-down"], isPro: false },
478
+ { primary: "fa-volume-medium", aliases: [], isPro: false },
479
+ { primary: "fa-volume-down", aliases: [], isPro: false },
480
  { primary: "fa-volume-slash", aliases: [], isPro: false },
481
  { primary: "fa-wrench", aliases: [], isPro: false },
482
+ { primary: "fa-x", aliases: [], isPro: false },
483
+ { primary: "fa-youtube", aliases: [], isPro: false, available: false },
484
+ { primary: "fa-zap", aliases: [], isPro: false }
485
  ];
486
 
487
  const totalIcons = iconDatabase.length;
 
492
  const visibleSpan = document.getElementById('visibleCount');
493
  const toast = document.getElementById('toast');
494
 
495
+ window.setFilter = function(mode) {
496
+ currentFilter = mode;
497
+ document.getElementById('btnAll').classList.toggle('active', mode === 'all');
498
+ document.getElementById('btnGame').classList.toggle('active', mode === 'game');
499
+ renderCards(searchInput.value);
500
+ };
501
+
502
  function getShortName(primaryClass) {
503
  return primaryClass.replace(/^fa-/, '');
504
  }
505
 
506
+ function getIconClass(item) {
507
+ if (item.available === false) return "fa-brands " + item.primary;
508
+ if (item.primary === "fa-pants" || item.primary === "fa-shoe") return "fa-kit " + item.primary;
509
+ return "fa-solid " + item.primary;
510
+ }
511
+
512
  function renderCards(filterText = '') {
513
  const searchTerm = filterText.trim().toLowerCase();
514
  let visibleCount = 0;
515
+
516
  let html = '';
517
  iconDatabase.forEach(item => {
518
  const primary = item.primary;
519
  const aliases = item.aliases;
520
  const isPro = item.isPro;
521
+ const isUnavailable = item.available === false;
522
+
523
+ if (currentFilter === 'game' && isUnavailable) return;
524
+
525
  const allNames = [primary, ...aliases].map(n => n.toLowerCase());
526
  const matches = searchTerm === '' || allNames.some(name => name.includes(searchTerm));
527
+
528
  if (!matches) return;
529
  visibleCount++;
530
+
531
  const shortName = getShortName(primary);
532
+ const iconClass = getIconClass(item);
533
  const aliasStr = aliases.length ? aliases.map(a => a.replace(/^fa-/, '')).join(' · ') : '';
534
+
535
  html += `
536
+ <div class="card" data-short="${shortName}" title="点击复制 ${shortName}">
537
  <div class="icon-preview">
538
+ <i class="${iconClass}"></i>
539
  </div>
540
  <div class="class-name">${primary}</div>
541
  ${aliasStr ? `<div class="aliases">别名: ${aliasStr}</div>` : ''}
542
  ${isPro ? '<div class="pro-badge"><i class="fa-solid fa-crown" style="font-size:10px;"></i> PRO</div>' : ''}
543
+ ${isUnavailable ? '<div class="kit-badge"><i class="fa-kit fa-pants" style="font-size:10px;"></i> 仅供参考</div>' : ''}
544
  </div>
545
  `;
546
  });
547
+
548
  if (visibleCount === 0) {
549
  html = `<div class="no-result"><i class="fa-regular fa-face-frown" style="margin-right:10px;"></i>没有匹配的图标,试试 "copy", "heart" 或 "user"</div>`;
550
  }
551
+
552
  grid.innerHTML = html;
553
  visibleSpan.textContent = visibleCount;
554
+
 
555
  document.querySelectorAll('.card').forEach(card => {
556
  card.addEventListener('click', (e) => {
557
  const shortName = card.dataset.short;
 
582
  setTimeout(() => toast.classList.remove('show'), 1800);
583
  }
584
 
 
585
  let debounceTimer;
586
  searchInput.addEventListener('input', (e) => {
587
  clearTimeout(debounceTimer);
 
590
  }, 200);
591
  });
592
 
 
593
  renderCards();
594
  })();
595
  </script>
596
  </body>
597
+ </html>
webfonts/custom-icons.ttf ADDED
Binary file (2.16 kB). View file
 
webfonts/custom-icons.woff2 ADDED
Binary file (1.05 kB). View file
 
webfonts/fa-brands-400.ttf ADDED
Binary file (2.7 kB). View file
 
webfonts/fa-brands-400.woff2 ADDED
Binary file (1.34 kB). View file
 
webfonts/fa-duotone-900.ttf ADDED
Binary file (2.68 kB). View file
 
webfonts/fa-duotone-900.woff2 ADDED
Binary file (1.26 kB). View file
 
webfonts/fa-solid-900.ttf ADDED
Binary file (39.3 kB). View file
 
webfonts/fa-solid-900.woff2 ADDED
Binary file (15.5 kB). View file