A photo manager for VRChat.
1@font-face {
2 font-family: Rubik;
3 src: url(https://cdn.phazed.xyz/fonts/rubik/Rubik-VariableFont_wght.ttf);
4}
5
6body{
7 background: #000;
8 margin: 0;
9 font-family: Rubik, 'Courier New';
10}
11
12.loading{
13 position: fixed;
14 z-index: 10000;
15 top: 0;
16 left: 0;
17 width: 100%;
18 height: 100%;
19 background: black;
20 display: flex;
21 opacity: 1;
22 color: white;
23 justify-content: center;
24 align-items: center;
25}
26
27.navbar{
28 background: #555a;
29 position: fixed;
30 top: 0;
31 left: 0;
32 width: 100%;
33 margin-top: -50px;
34 padding-top: 50px;
35 height: 50px;
36 display: flex;
37 backdrop-filter: blur(10px);
38 -webkit-backdrop-filter: blur(10px);
39 z-index: 10;
40 box-shadow: #000 0 0 10px;
41}
42
43.navbar .tabs{
44 width: calc(100% - 450px);
45 height: 100%;
46 display: flex;
47}
48
49.navbar .account{
50 width: 100px;
51 height: 100%;
52 display: flex;
53 justify-content: center;
54 align-items: center;
55 transition: 0.1s;
56 cursor: pointer;
57 user-select: none;
58 -webkit-user-select: none;
59}
60
61.navbar .account:hover{
62 background: #0005;
63}
64
65.navbar .control-lights{
66 width: 150px;
67 height: 50px;
68 display: flex;
69 justify-content: center;
70 align-items: center;
71}
72
73.control-lights .light{
74 user-select: none;
75 -webkit-user-select: none;
76 font-size: 20px;
77 text-align: center;
78 color: white;
79 width: 100%;
80 cursor: pointer;
81 display: flex;
82 justify-content: center;
83 align-items: center;
84 height: 50px;
85 filter: invert(100%);
86}
87
88.control-lights .light:hover{
89 background: #fff5;
90}
91
92.control-lights .light img{
93 width: 25%;
94}
95
96.icon{
97 width: 15px;
98 filter: invert(100%);
99 display: flex;
100 align-items: center;
101 justify-content: center;
102 height: 100%;
103}
104
105.icon-label{
106 margin-top: -20px;
107 margin-right: -200px;
108 width: 200px;
109 color: white;
110 pointer-events: none;
111 transform: translate(40px, -19px);
112 opacity: 0;
113 transition: 0.25s;
114 user-select: none;
115 -webkit-user-select: none;
116}
117
118.icon:hover ~ .icon-label{
119 opacity: 1;
120 transform: translate(60px, -19px);
121}
122
123.user-pfp{
124 width: 35px;
125 height: 35px;
126 background-size: cover !important;
127 background-position: center !important;
128 border-radius: 50%;
129 margin-right: 10px;
130}
131
132.account-dropdown{
133 font-size: 20px;
134 color: white;
135}
136
137.nav-tab{
138 color: white;
139 width: 150px;
140 height: 100%;
141 transition: 0.1s;
142 cursor: pointer;
143 user-select: none;
144 -webkit-user-select: none;
145 justify-content: center;
146 align-items: center;
147 display: flex;
148}
149
150.nav-tab:hover{
151 background: #0005;
152}
153
154.dropdown{
155 position: fixed;
156 right: 125px;
157 top: 60px;
158 background: #555a;
159 height: 60px;
160 width: 150px;
161 border-radius: 5px;
162 backdrop-filter: blur(5px);
163 z-index: 10;
164}
165
166.dropdown-button{
167 width: 100%;
168 text-align: center;
169 padding: 5.5px 0;
170 color: #aaa;
171 cursor: pointer;
172 user-select: none;
173 -webkit-user-select: none;
174 transition: 0.1s;
175}
176
177.dropdown-button:hover{
178 color: #fff;
179}
180
181.photo-list{
182 width: 100%;
183 height: 100%;
184 position: fixed;
185 top: 0;
186 left: 0;
187 overflow: hidden;
188}
189
190.filter-options{
191 position: fixed;
192 top: 55px;
193 left: 5px;
194 width: 40px;
195 height: 50px;
196}
197
198.filter-options img{
199 cursor: pointer;
200 user-select: none;
201 -webkit-user-select: none;
202}
203
204.filter-container{
205 display: none;
206 position: fixed;
207 bottom: 0;
208 left: 50%;
209 width: 600px;
210 height: 83px;
211 transform: translate(-50%);
212 padding: 10px;
213 border-radius: 5px 5px 0 0;
214 backdrop-filter: blur(5px);
215 -webkit-backdrop-filter: blur(5px);
216 background: #555a;
217 color: #fff;
218 text-align: center;
219 box-shadow: #0005 0 0 10px;
220 opacity: 0;
221}
222
223.filter-container > .filter-title{
224 font-size: 30px;
225}
226
227.filter-type-select{
228 display: flex;
229 justify-content: center;
230 align-items: center;
231 width: 75%;
232 margin: auto;
233}
234
235.filter-type-select > div{
236 width: 100%;
237 border: #fff 4px solid;
238 border-left: #fff 2px solid;
239 border-right: #fff 2px solid;
240 padding: 5px 0;
241 cursor: pointer;
242 user-select: none;
243 -webkit-user-select: none;
244}
245
246.filter-type-select > div:first-child{
247 border-left: #fff 4px solid;
248 border-radius: 10px 0 0 10px;
249}
250
251.filter-type-select > div:last-child{
252 border-right: #fff 4px solid;
253 border-radius: 0 10px 10px 0;
254}
255
256.filter-type-select > .selected-filter{
257 background: #00ccff55;
258}
259
260.filter-search{
261 margin-top: 10px;
262 padding: 5px;
263 border: #fff 4px solid;
264 border-radius: 10px;
265 background: #0008;
266 outline: none;
267 color: white;
268 font-size: 15px;
269 font-family: 'Rubik';
270 width: calc(75% - 18px);
271}
272
273.date-list{
274 mask-image: linear-gradient(to bottom, #0000, #000, #0000);
275 overflow: auto;
276 scrollbar-width: thin;
277 height: calc(100% - 100px);
278 padding: 50px 0;
279}
280
281.date-list-date{
282 padding: 10px;
283 user-select: none;
284 -webkit-user-select: none;
285 cursor: pointer;
286 transition: 0.1s;
287 border-radius: 10px;
288}
289
290.date-list-date:hover{
291 background: #0005;
292 box-shadow: inset #0005 0 0 10px;
293}
294
295.photo-tree-loading{
296 position: fixed;
297 top: 0;
298 left: 0;
299 width: 100%;
300 height: 100%;
301 display: flex;
302 justify-content: center;
303 align-items: center;
304 color: white;
305 font-size: 20px;
306}
307
308.loading-bar{
309 width: 500px;
310 height: 8px;
311 border-radius: 12px;
312 background: #333;
313 margin-top: 10px;
314 padding: 2px;
315}
316
317.loading-bar-inner{
318 width: 0%;
319 height: 8px;
320 border-radius: 18px;
321 background: #00ccff;
322}
323
324.photo-container{
325 width: 100%;
326 height: 100%;
327}
328
329.photo-container-bg{
330 width: 100%;
331 height: 100%;
332 position: fixed;
333 top: 0;
334 left: 0;
335 z-index: -1;
336 filter: blur(100px);
337 -webkit-filter: blur(100px);
338}
339
340.single-photo-container{
341 margin: 10px;
342 display: inline-block;
343}
344
345.photo-viewer{
346 justify-content: center;
347 width: 100%;
348 height: 100%;
349 position: fixed;
350 top: 0;
351 left: 0;
352 z-index: 5;
353 background: #0009;
354 backdrop-filter: blur(75px);
355 -webkit-backdrop-filter: blur(75px);
356 opacity: 0;
357 display: none;
358}
359
360.photo-context-menu{
361 position: fixed;
362 top: 0;
363 left: 0;
364 padding: 10px;
365 border-radius: 5px;
366 backdrop-filter: blur(5px);
367 -webkit-backdrop-filter: blur(5px);
368 background: #555a;
369 color: #aaa;
370 box-shadow: #0005 0 0 10px;
371 opacity: 0;
372}
373
374.photo-context-menu > div{
375 padding: 2px 10px;
376 width: calc(100% - 10px);
377 text-align: center;
378 transition: 0.1s;
379}
380
381.photo-context-menu > div:hover{
382 color: #fff;
383 cursor: pointer;
384 user-select: none;
385 -webkit-user-select: none;
386}
387
388.image-container{
389 height: 100%;
390 background-size: contain !important;
391 background-repeat: no-repeat !important;
392 background-position: center !important;
393 opacity: 0;
394}
395
396.viewer-button{
397 color: white;
398 width: 30px;
399 height: 30px;
400 display: flex;
401 justify-content: center;
402 align-items: center;
403 border-radius: 50px;
404 font-size: 12px;
405 background: #8885;
406 backdrop-filter: blur(10px);
407 -webkit-backdrop-filter: blur(10px);
408 user-select: none;
409 -webkit-user-select: none;
410 cursor: pointer;
411 z-index: 7;
412 box-shadow: #0008 0 0 10px;
413}
414
415.viewer-close{
416 position: fixed;
417 top: 10px;
418 right: 10px;
419 width: 35px;
420 height: 35px;
421}
422
423.prev-button{
424 transition: 0.25s;
425 position: fixed;
426 top: 50%;
427 left: 0;
428 color: white;
429 width: 50px;
430 height: 150px;
431 display: flex;
432 justify-content: center;
433 align-items: center;
434 transform: translateY(-50%);
435 background: rgba(255, 255, 255, 0.144);
436 backdrop-filter: blur(50px);
437 -webkit-backdrop-filter: blur(50px);
438 border-radius: 0 15px 15px 0;
439 cursor: pointer;
440 user-select: none;
441 -webkit-user-select: none;
442 box-shadow: #000 0 0 10px;
443}
444
445.prev-button:hover{
446 background: rgba(255, 255, 255, 0.349);
447}
448
449.next-button{
450 transition: 0.25s;
451 position: fixed;
452 top: 50%;
453 right: 0;
454 color: white;
455 width: 50px;
456 height: 150px;
457 display: flex;
458 justify-content: center;
459 align-items: center;
460 transform: translateY(-50%);
461 background: rgba(255, 255, 255, 0.144);
462 backdrop-filter: blur(50px);
463 -webkit-backdrop-filter: blur(50px);
464 border-radius: 15px 0 0 15px;
465 cursor: pointer;
466 user-select: none;
467 -webkit-user-select: none;
468 box-shadow: #000 0 0 10px;
469}
470
471.next-button:hover{
472 background: rgba(255, 255, 255, 0.349);
473}
474
475.reload-photos{
476 position: fixed;
477 top: 70px;
478 right: 20px;
479 color: white;
480 user-select: none;
481 -webkit-user-select: none;
482 cursor: pointer;
483 opacity: 0;
484}
485
486.confirmation-box{
487 position: fixed;
488 top: 0;
489 left: 0;
490 width: 100%;
491 height: 100%;
492 z-index: 15;
493 background: #0005;
494 transition: 0.25s;
495 backdrop-filter: blur(10px);
496 -webkit-backdrop-filter: blur(10px);
497}
498
499.confirmation-box-container{
500 position: fixed;
501 top: 50%;
502 left: 50%;
503 transform: translate(-50%, -50%);
504 color: white;
505 text-align: center;
506 background: #9995;
507 padding: 10px;
508 width: 60%;
509 border-radius: 10px;
510 box-shadow: #000 0 0 10px;
511 font-size: 18px;
512 -webkit-backdrop-filter: blur(10px);
513 backdrop-filter: blur(10px);
514}
515
516.button-danger{
517 display: inline-block;
518 -webkit-backdrop-filter: blur(10px);
519 backdrop-filter: blur(10px);
520 padding: 10px;
521 background: rgba(255, 0, 0, 0.333);
522 box-shadow: #0005 inset 0 0 10px;
523 border-radius: 50px;
524 margin: 0 10px;
525 cursor: pointer;
526 user-select: none;
527 -webkit-user-select: none;
528 width: 200px;
529 transition: 0.25s;
530}
531
532.button{
533 display: inline-block;
534 padding: 10px;
535 backdrop-filter: blur(10px);
536 -webkit-backdrop-filter: blur(10px);
537 background: #9995;
538 box-shadow: #0005 inset 0 0 10px;
539 border-radius: 50px;
540 margin: 0 10px;
541 cursor: pointer;
542 user-select: none;
543 -webkit-user-select: none;
544 width: 200px;
545 transition: 0.25s;
546}
547
548.button:hover{
549 box-shadow: #000a inset 0 0 10px;
550}
551
552.button-danger:hover{
553 box-shadow: #000a inset 0 0 10px;
554}
555
556.control-buttons{
557 position: fixed;
558 bottom: 10px;
559 left: 50%;
560 transform: translateX(-50%);
561 display: flex;
562}
563
564.control-buttons div{
565 margin: 0 20px;
566}
567
568.copy-notif{
569 position: fixed;
570 top: 40px;
571 left: 50%;
572 color: white;
573 transform: translateX(-50%) translateY(-100px);
574 background: #8885;
575 padding: 10px 40px;
576 backdrop-filter: blur(10px);
577 -webkit-backdrop-filter: blur(10px);
578 border-radius: 50px;
579 box-shadow: #000 0 0 10px;
580 z-index: 12;
581 opacity: 0;
582 pointer-events: none;
583}
584
585.photo-tray{
586 position: fixed;
587 bottom: -150px;
588 left: 0;
589 width: 100%;
590 height: 150px;
591 background: #7778;
592 backdrop-filter: blur(10px);
593 -webkit-backdrop-filter: blur(10px);
594 box-shadow: #0008 0 0 10px;
595 padding-bottom: 150px;
596 margin-bottom: -150px;
597}
598
599.photo-tray-close{
600 position: fixed;
601 bottom: 160px;
602 left: 50%;
603 transform: translate(-50%);
604 color: white;
605 background: #8885;
606 backdrop-filter: blur(10px);
607 -webkit-backdrop-filter: blur(10px);
608 box-shadow: #0008 0 0 10px;
609 display: flex;
610 justify-content: center;
611 align-items: center;
612 height: 30px;
613 width: 50px;
614 border-radius: 50px;
615 cursor: pointer;
616 font-size: 12px;
617 user-select: none;
618 -webkit-user-select: none;
619 transition: 0.25s width;
620}
621
622.photo-tray-close:hover{
623 width: 70px;
624}
625
626.photo-tray-columns{
627 width: 100%;
628 height: 100%;
629 display: flex;
630 color: white;
631 text-align: center;
632}
633
634.photo-tray-column{
635 height: 100%;
636 width: 100%;
637 scrollbar-width: thin;
638 overflow-y: auto;
639 overflow-x: hidden;
640 mask-image: linear-gradient(to bottom, #0000 0%, #000 10%, #000 90%, #0000 100%);
641}
642
643.tray-heading{
644 font-weight: bold;
645 font-size: 20px;
646}
647
648.world-tags{
649 display: flex;
650 width: 100%;
651 justify-content: center;
652 align-items: center;
653}
654
655.world-tags div{
656 padding: 0 10px;
657 color: #bbb;
658 transition: 0.25s;
659}
660
661.world-tags div:hover{
662 color: #ddd;
663}
664
665.world-name{
666 font-size: 17px;
667}
668
669.settings{
670 position: fixed;
671 top: 0;
672 left: 0;
673 width: 100%;
674 height: 100%;
675 background: rgba(0, 0, 0, 0.4);
676 backdrop-filter: blur(100px);
677 -webkit-backdrop-filter: blur(100px);
678}
679
680.slide-bar{
681 position: fixed;
682 bottom: 0;
683 left: 0;
684 width: 100%;
685 height: 50px;
686 border-top: #aaa 1px solid;
687 overflow-x: hidden;
688 mask-image: linear-gradient(to left, #0000 0%, #000 20%, #000 80%, #0000 100%);
689 background: #aaa2;
690 box-shadow: #000 0 0 10px;
691}
692
693.inner-slide-bar{
694 display: flex;
695 height: 50px;
696 width: 200%;
697 color: white;
698 align-items: center;
699 cursor: pointer;
700 user-select: none;
701 -webkit-user-select: none;
702}
703
704.slider-dot{
705 width: 5px;
706 height: 5px;
707 border-radius: 5px;
708 background: #aaa;
709 margin: auto 25px;
710}
711
712.slider-text{
713 width: 200px;
714 text-align: center;
715 height: 50px;
716 display: flex;
717 justify-content: center;
718 align-items: center;
719 color: #aaa;
720 transition: 0.25s;
721}
722
723.slider-text:hover{
724 color: #fff;
725}
726
727.slide-bar-tri{
728 position: fixed;
729 bottom: 40px;
730 left: 50%;
731 transform: translateX(-50%);
732 border: transparent solid 5px;
733 border-top: #fff solid 5px;
734}
735
736.settings-container{
737 position: fixed;
738 top: 50px;
739 left: 0px;
740 width: 200%;
741 height: calc(100% - 100px);
742 display: flex;
743}
744
745.settings-block{
746 width: 50%;
747 height: 100%;
748 color: white;
749 text-align: center;
750}
751
752.selector{
753 padding: 10px 20px;
754 border-radius: 10px;
755 background: #000a;
756 display: inline-block;
757 margin: 10px;
758}
759
760.selector .selection-box{
761 height: 20px;
762 background: #777a;
763 margin: 5px -10px 0 -10px;
764 border-radius: 8px;
765 user-select: none;
766 -webkit-user-select: none;
767 cursor: pointer;
768 transition: 0.25s;
769 color: #fff1;
770}
771
772.selector .selection-box:hover{
773 height: 20px;
774 background: #777a;
775 margin: 5px -10px 0 -10px;
776 border-radius: 8px;
777 user-select: none;
778 -webkit-user-select: none;
779 cursor: pointer;
780 transition: 0.25s;
781 color: #fff5;
782}
783
784.selector input{
785 display: none;
786}
787
788.selector input:checked ~ label .selection-box{
789 background: rgba(0, 146, 204, 0.705);
790 color: #fff;
791}
792
793.path{
794 padding: 5px 10px;
795 background: #000a;
796 border-radius: 5px;
797 margin-left: 5px;
798 cursor: pointer;
799}
800
801.scroll-to-top{
802 position: fixed;
803 bottom: 10px;
804 right: 10px;
805 color: white;
806 width: 40px;
807 height: 40px;
808 cursor: pointer;
809 border-radius: 50%;
810 border: 2px solid white;
811 display: flex;
812 justify-content: center;
813 align-items: center;
814}
815
816.account-profile{
817 margin: auto;
818 width: 50%;
819 height: 200px;
820 display: flex;
821}
822
823.account-pfp{
824 width: 200px;
825 height: 200px;
826 background-position: center !important;
827 background-size: cover !important;
828 border-radius: 50%;
829 box-shadow: #0005 0 0 10px;
830 position: relative;
831 z-index: 10;
832}
833
834.account-desc{
835 width: calc(100% - 200px);
836 padding-left: 100px;
837 height: 150px;
838 margin: 25px 0;
839 margin-left: -100px;
840 background: #0009;
841 border-radius: 10px;
842 box-shadow: #0005 0 0 10px;
843}
844
845.storage-bar{
846 width: calc(100% - 20px);
847 height: 10px;
848 margin-left: 10px;
849 background: #555;
850 border-radius: 10px;
851 display: flex;
852 justify-content: left;
853 align-items: center;
854 margin-bottom: 2px;
855}
856
857.storage-bar-inner{
858 margin: 2px;
859 height: 6px;
860 background: #00ccff;
861 border-radius: 10px;
862}
863
864.account-notice{
865 background: #0007;
866 border-radius: 5px;
867 box-shadow: #0005 0 0 10px;
868 padding: 10px;
869 margin: auto;
870 width: calc(50% - 20px);
871 margin-top: 25px;
872}
873
874img{
875 max-width: 100%;
876 max-height: 100%;
877}