@frameset/plex-player 1.0.3 → 1.0.5
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/dist/plex-player.cjs.js +3 -1
- package/dist/plex-player.cjs.js.map +1 -1
- package/dist/plex-player.css +246 -287
- package/dist/plex-player.css.map +1 -1
- package/dist/plex-player.esm.js +3 -1
- package/dist/plex-player.esm.js.map +1 -1
- package/dist/plex-player.js +3 -1
- package/dist/plex-player.js.map +1 -1
- package/dist/plex-player.min.js +2 -2
- package/dist/plex-player.min.js.map +1 -1
- package/dist/react/index.esm.js +2 -2
- package/dist/react/index.esm.js.map +1 -1
- package/dist/react/index.js +2 -2
- package/dist/react/index.js.map +1 -1
- package/dist/vue/index.esm.js +2 -2
- package/dist/vue/index.esm.js.map +1 -1
- package/dist/vue/index.js +2 -2
- package/dist/vue/index.js.map +1 -1
- package/package.json +1 -1
- package/src/core/index.js +2 -0
- package/src/react/index.jsx +1 -1
- package/src/vue/index.js +1 -1
package/dist/plex-player.css
CHANGED
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
PLEX Video Player - Main Styles
|
|
3
3
|
===================================================== */
|
|
4
4
|
|
|
5
|
-
/* CSS Variables */
|
|
6
|
-
|
|
5
|
+
/* CSS Variables - scoped to player */
|
|
6
|
+
.plex-player,
|
|
7
|
+
.plex-player-container {
|
|
7
8
|
--plex-primary: #e5a00d;
|
|
8
9
|
--plex-primary-hover: #f5b82e;
|
|
9
10
|
--plex-bg-dark: #1a1a1a;
|
|
@@ -29,20 +30,24 @@
|
|
|
29
30
|
--plex-z-toast: 50;
|
|
30
31
|
}
|
|
31
32
|
|
|
32
|
-
/* Reset
|
|
33
|
-
*,
|
|
33
|
+
/* Scoped Reset - only inside player */
|
|
34
|
+
.plex-player *,
|
|
35
|
+
.plex-player *::before,
|
|
36
|
+
.plex-player *::after {
|
|
34
37
|
box-sizing: border-box;
|
|
35
38
|
margin: 0;
|
|
36
39
|
padding: 0;
|
|
37
40
|
}
|
|
38
41
|
|
|
39
|
-
|
|
42
|
+
/* Player Container Wrapper */
|
|
43
|
+
.plex-player-container {
|
|
44
|
+
position: relative;
|
|
40
45
|
width: 100%;
|
|
41
|
-
|
|
46
|
+
aspect-ratio: 16 / 9;
|
|
42
47
|
background: var(--plex-bg-darker);
|
|
43
|
-
|
|
44
|
-
color: var(--plex-text-primary);
|
|
48
|
+
border-radius: var(--plex-radius-md);
|
|
45
49
|
overflow: hidden;
|
|
50
|
+
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
46
51
|
-webkit-font-smoothing: antialiased;
|
|
47
52
|
-moz-osx-font-smoothing: grayscale;
|
|
48
53
|
}
|
|
@@ -57,15 +62,18 @@ html, body {
|
|
|
57
62
|
user-select: none;
|
|
58
63
|
-webkit-user-select: none;
|
|
59
64
|
-webkit-tap-highlight-color: transparent;
|
|
65
|
+
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
66
|
+
color: var(--plex-text-primary);
|
|
60
67
|
}
|
|
61
68
|
|
|
62
|
-
.plex-player.fullscreen {
|
|
69
|
+
.plex-player.plex-fullscreen {
|
|
63
70
|
position: fixed;
|
|
64
71
|
top: 0;
|
|
65
72
|
left: 0;
|
|
66
73
|
width: 100vw;
|
|
67
74
|
height: 100vh;
|
|
68
75
|
z-index: 9999;
|
|
76
|
+
border-radius: 0;
|
|
69
77
|
}
|
|
70
78
|
|
|
71
79
|
/* Video Container */
|
|
@@ -571,56 +579,38 @@ html, body {
|
|
|
571
579
|
}
|
|
572
580
|
|
|
573
581
|
/* =====================================================
|
|
574
|
-
PLEX Video Player - Controls Styles
|
|
582
|
+
PLEX Video Player - Controls Styles (NPM Package)
|
|
575
583
|
===================================================== */
|
|
576
584
|
|
|
577
|
-
/*
|
|
578
|
-
.
|
|
579
|
-
position: absolute;
|
|
580
|
-
top: 0;
|
|
581
|
-
left: 0;
|
|
585
|
+
/* Video Element */
|
|
586
|
+
.plex-video {
|
|
582
587
|
width: 100%;
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
padding: 16px 20px;
|
|
587
|
-
background: var(--plex-gradient-top);
|
|
588
|
-
z-index: var(--plex-z-controls);
|
|
589
|
-
transition: all var(--plex-transition-normal);
|
|
590
|
-
}
|
|
591
|
-
|
|
592
|
-
.top-left,
|
|
593
|
-
.top-right {
|
|
594
|
-
display: flex;
|
|
595
|
-
align-items: center;
|
|
596
|
-
gap: 8px;
|
|
597
|
-
}
|
|
598
|
-
|
|
599
|
-
.video-title {
|
|
600
|
-
font-size: 16px;
|
|
601
|
-
font-weight: 600;
|
|
602
|
-
color: var(--plex-text-primary);
|
|
603
|
-
margin-left: 8px;
|
|
604
|
-
max-width: 400px;
|
|
605
|
-
white-space: nowrap;
|
|
606
|
-
overflow: hidden;
|
|
607
|
-
text-overflow: ellipsis;
|
|
588
|
+
height: 100%;
|
|
589
|
+
object-fit: contain;
|
|
590
|
+
background: #000;
|
|
608
591
|
}
|
|
609
592
|
|
|
610
|
-
/*
|
|
611
|
-
.
|
|
593
|
+
/* Controls Container */
|
|
594
|
+
.plex-controls {
|
|
612
595
|
position: absolute;
|
|
613
596
|
bottom: 0;
|
|
614
597
|
left: 0;
|
|
615
|
-
|
|
598
|
+
right: 0;
|
|
616
599
|
padding: 0 16px 16px;
|
|
617
600
|
background: var(--plex-gradient);
|
|
618
601
|
z-index: var(--plex-z-controls);
|
|
619
|
-
transition:
|
|
602
|
+
transition: opacity var(--plex-transition-normal), visibility var(--plex-transition-normal);
|
|
603
|
+
opacity: 1;
|
|
604
|
+
visibility: visible;
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
.plex-player:not(.plex-controls-visible) .plex-controls {
|
|
608
|
+
opacity: 0;
|
|
609
|
+
visibility: hidden;
|
|
620
610
|
}
|
|
621
611
|
|
|
622
612
|
/* Progress Container */
|
|
623
|
-
.progress-container {
|
|
613
|
+
.plex-progress-container {
|
|
624
614
|
position: relative;
|
|
625
615
|
width: 100%;
|
|
626
616
|
height: 24px;
|
|
@@ -630,7 +620,7 @@ html, body {
|
|
|
630
620
|
padding: 8px 0;
|
|
631
621
|
}
|
|
632
622
|
|
|
633
|
-
.progress-bar {
|
|
623
|
+
.plex-progress-bar {
|
|
634
624
|
position: relative;
|
|
635
625
|
width: 100%;
|
|
636
626
|
height: 4px;
|
|
@@ -640,11 +630,11 @@ html, body {
|
|
|
640
630
|
transition: height var(--plex-transition-fast);
|
|
641
631
|
}
|
|
642
632
|
|
|
643
|
-
.progress-container:hover .progress-bar {
|
|
633
|
+
.plex-progress-container:hover .plex-progress-bar {
|
|
644
634
|
height: 6px;
|
|
645
635
|
}
|
|
646
636
|
|
|
647
|
-
.progress-buffered {
|
|
637
|
+
.plex-progress-buffered {
|
|
648
638
|
position: absolute;
|
|
649
639
|
top: 0;
|
|
650
640
|
left: 0;
|
|
@@ -652,9 +642,10 @@ html, body {
|
|
|
652
642
|
background: rgba(255, 255, 255, 0.35);
|
|
653
643
|
border-radius: 2px;
|
|
654
644
|
pointer-events: none;
|
|
645
|
+
width: 0;
|
|
655
646
|
}
|
|
656
647
|
|
|
657
|
-
.progress-played {
|
|
648
|
+
.plex-progress-played {
|
|
658
649
|
position: absolute;
|
|
659
650
|
top: 0;
|
|
660
651
|
left: 0;
|
|
@@ -662,9 +653,10 @@ html, body {
|
|
|
662
653
|
background: var(--plex-primary);
|
|
663
654
|
border-radius: 2px;
|
|
664
655
|
pointer-events: none;
|
|
656
|
+
width: 0;
|
|
665
657
|
}
|
|
666
658
|
|
|
667
|
-
.progress-handle {
|
|
659
|
+
.plex-progress-handle {
|
|
668
660
|
position: absolute;
|
|
669
661
|
top: 50%;
|
|
670
662
|
left: 0;
|
|
@@ -678,120 +670,63 @@ html, body {
|
|
|
678
670
|
pointer-events: none;
|
|
679
671
|
}
|
|
680
672
|
|
|
681
|
-
.progress-container:hover .progress-handle
|
|
682
|
-
.progress-container.dragging .progress-handle {
|
|
673
|
+
.plex-progress-container:hover .plex-progress-handle {
|
|
683
674
|
transform: translate(-50%, -50%) scale(1);
|
|
684
675
|
}
|
|
685
676
|
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
}
|
|
689
|
-
|
|
690
|
-
/* Progress Tooltip */
|
|
691
|
-
.progress-tooltip {
|
|
677
|
+
/* Progress Preview */
|
|
678
|
+
.plex-progress-preview {
|
|
692
679
|
position: absolute;
|
|
693
680
|
bottom: 100%;
|
|
694
681
|
left: 0;
|
|
682
|
+
margin-bottom: 8px;
|
|
695
683
|
padding: 6px 10px;
|
|
696
684
|
background: var(--plex-bg-dark);
|
|
697
685
|
border-radius: var(--plex-radius-sm);
|
|
698
|
-
font-size: 13px;
|
|
699
|
-
font-weight: 500;
|
|
700
|
-
white-space: nowrap;
|
|
701
686
|
opacity: 0;
|
|
702
687
|
visibility: hidden;
|
|
703
|
-
transform: translateX(-50%)
|
|
704
|
-
transition:
|
|
688
|
+
transform: translateX(-50%);
|
|
689
|
+
transition: opacity var(--plex-transition-fast);
|
|
705
690
|
pointer-events: none;
|
|
706
691
|
z-index: 50;
|
|
707
692
|
}
|
|
708
693
|
|
|
709
|
-
.progress-container:hover .progress-
|
|
694
|
+
.plex-progress-container:hover .plex-progress-preview {
|
|
710
695
|
opacity: 1;
|
|
711
696
|
visibility: visible;
|
|
712
|
-
transform: translateX(-50%) translateY(-4px);
|
|
713
697
|
}
|
|
714
698
|
|
|
715
|
-
|
|
716
|
-
.progress-container:hover .progress-preview[style*="display: flex"] ~ .progress-tooltip,
|
|
717
|
-
.progress-preview:not([style*="display: none"]) + .progress-tooltip {
|
|
718
|
-
opacity: 0;
|
|
719
|
-
visibility: hidden;
|
|
720
|
-
}
|
|
721
|
-
|
|
722
|
-
/* Progress Preview (Thumbnail) */
|
|
723
|
-
.progress-preview {
|
|
724
|
-
position: absolute;
|
|
725
|
-
bottom: calc(100% + 16px);
|
|
726
|
-
left: 0;
|
|
727
|
-
display: none;
|
|
728
|
-
flex-direction: column;
|
|
729
|
-
align-items: center;
|
|
730
|
-
z-index: 100;
|
|
731
|
-
pointer-events: none;
|
|
732
|
-
background: rgba(0, 0, 0, 0.9);
|
|
733
|
-
padding: 4px;
|
|
734
|
-
border-radius: var(--plex-radius-sm);
|
|
735
|
-
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
|
|
736
|
-
}
|
|
737
|
-
|
|
738
|
-
#preview-canvas {
|
|
739
|
-
width: 160px;
|
|
740
|
-
height: 90px;
|
|
741
|
-
background: var(--plex-bg-dark);
|
|
742
|
-
border: 2px solid var(--plex-primary);
|
|
743
|
-
border-radius: var(--plex-radius-sm);
|
|
744
|
-
object-fit: contain;
|
|
745
|
-
}
|
|
746
|
-
|
|
747
|
-
.preview-time {
|
|
748
|
-
margin-top: 6px;
|
|
749
|
-
padding: 4px 10px;
|
|
750
|
-
background: var(--plex-primary);
|
|
751
|
-
color: #000;
|
|
752
|
-
border-radius: var(--plex-radius-sm);
|
|
753
|
-
font-size: 12px;
|
|
754
|
-
font-weight: 700;
|
|
755
|
-
}
|
|
756
|
-
|
|
757
|
-
/* Time Display */
|
|
758
|
-
.time-display {
|
|
759
|
-
display: flex;
|
|
760
|
-
align-items: center;
|
|
761
|
-
gap: 4px;
|
|
762
|
-
padding: 8px 0;
|
|
699
|
+
.plex-preview-time {
|
|
763
700
|
font-size: 13px;
|
|
764
|
-
font-weight:
|
|
701
|
+
font-weight: 600;
|
|
765
702
|
color: var(--plex-text-primary);
|
|
703
|
+
white-space: nowrap;
|
|
766
704
|
}
|
|
767
705
|
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
}
|
|
771
|
-
|
|
772
|
-
/* Main Controls Row */
|
|
773
|
-
.main-controls {
|
|
706
|
+
/* Controls Bar */
|
|
707
|
+
.plex-controls-bar {
|
|
774
708
|
display: flex;
|
|
775
709
|
align-items: center;
|
|
776
710
|
justify-content: space-between;
|
|
777
|
-
margin-top:
|
|
711
|
+
margin-top: 8px;
|
|
778
712
|
}
|
|
779
713
|
|
|
780
|
-
.controls-left,
|
|
781
|
-
.controls-right {
|
|
714
|
+
.plex-controls-left,
|
|
715
|
+
.plex-controls-right {
|
|
782
716
|
display: flex;
|
|
783
717
|
align-items: center;
|
|
784
718
|
gap: 4px;
|
|
785
719
|
}
|
|
786
720
|
|
|
787
721
|
/* Control Button */
|
|
788
|
-
.
|
|
722
|
+
.plex-btn {
|
|
789
723
|
position: relative;
|
|
790
724
|
display: flex;
|
|
791
725
|
align-items: center;
|
|
792
726
|
justify-content: center;
|
|
793
727
|
width: 40px;
|
|
794
728
|
height: 40px;
|
|
729
|
+
padding: 0;
|
|
795
730
|
background: transparent;
|
|
796
731
|
border: none;
|
|
797
732
|
border-radius: var(--plex-radius-sm);
|
|
@@ -800,280 +735,304 @@ html, body {
|
|
|
800
735
|
color: var(--plex-text-primary);
|
|
801
736
|
}
|
|
802
737
|
|
|
803
|
-
.
|
|
738
|
+
.plex-btn:hover {
|
|
804
739
|
background: rgba(255, 255, 255, 0.1);
|
|
805
740
|
}
|
|
806
741
|
|
|
807
|
-
.
|
|
742
|
+
.plex-btn:active {
|
|
808
743
|
transform: scale(0.95);
|
|
809
744
|
}
|
|
810
745
|
|
|
811
|
-
.
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
.control-btn.active {
|
|
816
|
-
color: var(--plex-primary);
|
|
817
|
-
}
|
|
818
|
-
|
|
819
|
-
/* Cast Button */
|
|
820
|
-
#cast-btn {
|
|
821
|
-
transition: all var(--plex-transition-fast);
|
|
746
|
+
.plex-btn svg {
|
|
747
|
+
width: 24px;
|
|
748
|
+
height: 24px;
|
|
749
|
+
fill: currentColor;
|
|
822
750
|
}
|
|
823
751
|
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
752
|
+
.plex-btn:focus-visible {
|
|
753
|
+
outline: 2px solid var(--plex-primary);
|
|
754
|
+
outline-offset: 2px;
|
|
827
755
|
}
|
|
828
756
|
|
|
829
|
-
|
|
757
|
+
/* Play Button States */
|
|
758
|
+
.plex-player.plex-playing .plex-play-btn .plex-icon-play {
|
|
830
759
|
display: none;
|
|
831
760
|
}
|
|
832
761
|
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
50% { opacity: 0.6; }
|
|
762
|
+
.plex-player.plex-playing .plex-play-btn .plex-icon-pause {
|
|
763
|
+
display: block;
|
|
836
764
|
}
|
|
837
765
|
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
width: 48px;
|
|
841
|
-
height: 48px;
|
|
766
|
+
.plex-player:not(.plex-playing) .plex-play-btn .plex-icon-play {
|
|
767
|
+
display: block;
|
|
842
768
|
}
|
|
843
769
|
|
|
844
|
-
.play-btn .
|
|
845
|
-
|
|
846
|
-
}
|
|
847
|
-
|
|
848
|
-
/* Speed Text */
|
|
849
|
-
.speed-text {
|
|
850
|
-
font-size: 14px;
|
|
851
|
-
font-weight: 600;
|
|
852
|
-
min-width: 28px;
|
|
770
|
+
.plex-player:not(.plex-playing) .plex-play-btn .plex-icon-pause {
|
|
771
|
+
display: none;
|
|
853
772
|
}
|
|
854
773
|
|
|
855
|
-
/* Volume
|
|
856
|
-
.volume-
|
|
774
|
+
/* Volume Container */
|
|
775
|
+
.plex-volume-container {
|
|
857
776
|
display: flex;
|
|
858
777
|
align-items: center;
|
|
859
778
|
gap: 4px;
|
|
860
779
|
}
|
|
861
780
|
|
|
862
|
-
.volume-slider
|
|
781
|
+
.plex-volume-slider {
|
|
863
782
|
position: relative;
|
|
864
783
|
width: 0;
|
|
865
784
|
overflow: hidden;
|
|
866
785
|
transition: width var(--plex-transition-normal);
|
|
867
786
|
}
|
|
868
787
|
|
|
869
|
-
.volume-
|
|
788
|
+
.plex-volume-container:hover .plex-volume-slider {
|
|
870
789
|
width: 80px;
|
|
871
790
|
}
|
|
872
791
|
|
|
873
|
-
.volume-
|
|
874
|
-
|
|
875
|
-
appearance: none;
|
|
792
|
+
.plex-volume-track {
|
|
793
|
+
position: relative;
|
|
876
794
|
width: 80px;
|
|
877
795
|
height: 4px;
|
|
878
796
|
background: rgba(255, 255, 255, 0.2);
|
|
879
797
|
border-radius: 2px;
|
|
880
|
-
outline: none;
|
|
881
798
|
cursor: pointer;
|
|
882
799
|
}
|
|
883
800
|
|
|
884
|
-
.volume-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
height:
|
|
801
|
+
.plex-volume-level {
|
|
802
|
+
position: absolute;
|
|
803
|
+
top: 0;
|
|
804
|
+
left: 0;
|
|
805
|
+
height: 100%;
|
|
806
|
+
background: var(--plex-primary);
|
|
807
|
+
border-radius: 2px;
|
|
808
|
+
pointer-events: none;
|
|
809
|
+
width: 100%;
|
|
810
|
+
}
|
|
811
|
+
|
|
812
|
+
.plex-volume-handle {
|
|
813
|
+
position: absolute;
|
|
814
|
+
top: 50%;
|
|
815
|
+
right: 0;
|
|
816
|
+
width: 12px;
|
|
817
|
+
height: 12px;
|
|
889
818
|
background: var(--plex-primary);
|
|
890
819
|
border-radius: 50%;
|
|
820
|
+
transform: translateY(-50%);
|
|
891
821
|
cursor: pointer;
|
|
892
|
-
|
|
822
|
+
opacity: 0;
|
|
823
|
+
transition: opacity var(--plex-transition-fast);
|
|
893
824
|
}
|
|
894
825
|
|
|
895
|
-
.volume-
|
|
896
|
-
|
|
826
|
+
.plex-volume-container:hover .plex-volume-handle {
|
|
827
|
+
opacity: 1;
|
|
897
828
|
}
|
|
898
829
|
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
border: none;
|
|
904
|
-
border-radius: 50%;
|
|
905
|
-
cursor: pointer;
|
|
830
|
+
/* Volume Button States */
|
|
831
|
+
.plex-player.plex-muted .plex-icon-volume-high,
|
|
832
|
+
.plex-player.plex-muted .plex-icon-volume-low {
|
|
833
|
+
display: none;
|
|
906
834
|
}
|
|
907
835
|
|
|
908
|
-
.
|
|
909
|
-
|
|
910
|
-
top: 50%;
|
|
911
|
-
left: 0;
|
|
912
|
-
height: 4px;
|
|
913
|
-
background: var(--plex-primary);
|
|
914
|
-
border-radius: 2px;
|
|
915
|
-
transform: translateY(-50%);
|
|
916
|
-
pointer-events: none;
|
|
836
|
+
.plex-player.plex-muted .plex-icon-volume-mute {
|
|
837
|
+
display: block;
|
|
917
838
|
}
|
|
918
839
|
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
position: absolute;
|
|
922
|
-
top: 0;
|
|
923
|
-
width: 3px;
|
|
924
|
-
height: 100%;
|
|
925
|
-
background: rgba(255, 255, 255, 0.8);
|
|
926
|
-
border-radius: 1px;
|
|
927
|
-
transform: translateX(-50%);
|
|
928
|
-
cursor: pointer;
|
|
929
|
-
z-index: 2;
|
|
840
|
+
.plex-player:not(.plex-muted) .plex-icon-volume-mute {
|
|
841
|
+
display: none;
|
|
930
842
|
}
|
|
931
843
|
|
|
932
|
-
.
|
|
933
|
-
|
|
844
|
+
.plex-player:not(.plex-muted) .plex-icon-volume-high {
|
|
845
|
+
display: block;
|
|
846
|
+
}
|
|
847
|
+
|
|
848
|
+
.plex-player:not(.plex-muted) .plex-icon-volume-low {
|
|
849
|
+
display: none;
|
|
934
850
|
}
|
|
935
851
|
|
|
936
|
-
/*
|
|
937
|
-
.
|
|
852
|
+
/* Time Display */
|
|
853
|
+
.plex-time {
|
|
854
|
+
display: flex;
|
|
855
|
+
align-items: center;
|
|
856
|
+
gap: 4px;
|
|
857
|
+
margin-left: 8px;
|
|
858
|
+
font-size: 13px;
|
|
859
|
+
font-weight: 500;
|
|
860
|
+
color: var(--plex-text-primary);
|
|
861
|
+
}
|
|
862
|
+
|
|
863
|
+
.plex-time-current,
|
|
864
|
+
.plex-time-duration {
|
|
865
|
+
font-variant-numeric: tabular-nums;
|
|
866
|
+
}
|
|
867
|
+
|
|
868
|
+
.plex-time-separator {
|
|
869
|
+
color: var(--plex-text-secondary);
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
/* Fullscreen Button States */
|
|
873
|
+
.plex-player.plex-fullscreen .plex-icon-fullscreen {
|
|
874
|
+
display: none;
|
|
875
|
+
}
|
|
876
|
+
|
|
877
|
+
.plex-player.plex-fullscreen .plex-icon-fullscreen-exit {
|
|
878
|
+
display: block;
|
|
879
|
+
}
|
|
880
|
+
|
|
881
|
+
.plex-player:not(.plex-fullscreen) .plex-icon-fullscreen {
|
|
882
|
+
display: block;
|
|
883
|
+
}
|
|
884
|
+
|
|
885
|
+
.plex-player:not(.plex-fullscreen) .plex-icon-fullscreen-exit {
|
|
886
|
+
display: none;
|
|
887
|
+
}
|
|
888
|
+
|
|
889
|
+
/* Big Play Button */
|
|
890
|
+
.plex-big-play {
|
|
938
891
|
position: absolute;
|
|
939
|
-
|
|
940
|
-
|
|
892
|
+
top: 50%;
|
|
893
|
+
left: 50%;
|
|
894
|
+
transform: translate(-50%, -50%) scale(1);
|
|
895
|
+
width: 72px;
|
|
896
|
+
height: 72px;
|
|
897
|
+
background: var(--plex-primary);
|
|
898
|
+
border-radius: 50%;
|
|
941
899
|
display: flex;
|
|
942
900
|
align-items: center;
|
|
943
|
-
|
|
944
|
-
padding: 12px 20px;
|
|
945
|
-
background: rgba(255, 255, 255, 0.9);
|
|
946
|
-
color: #000;
|
|
947
|
-
border: none;
|
|
948
|
-
border-radius: var(--plex-radius-md);
|
|
949
|
-
font-size: 14px;
|
|
950
|
-
font-weight: 600;
|
|
901
|
+
justify-content: center;
|
|
951
902
|
cursor: pointer;
|
|
952
|
-
z-index: var(--plex-z-
|
|
903
|
+
z-index: var(--plex-z-overlay);
|
|
953
904
|
transition: all var(--plex-transition-normal);
|
|
905
|
+
box-shadow: 0 4px 30px rgba(229, 160, 13, 0.4);
|
|
954
906
|
}
|
|
955
907
|
|
|
956
|
-
.
|
|
957
|
-
|
|
958
|
-
|
|
908
|
+
.plex-big-play:hover {
|
|
909
|
+
transform: translate(-50%, -50%) scale(1.1);
|
|
910
|
+
background: var(--plex-primary-hover);
|
|
959
911
|
}
|
|
960
912
|
|
|
961
|
-
.
|
|
962
|
-
|
|
913
|
+
.plex-big-play svg {
|
|
914
|
+
width: 40px;
|
|
915
|
+
height: 40px;
|
|
916
|
+
fill: #000;
|
|
917
|
+
margin-left: 4px;
|
|
918
|
+
}
|
|
919
|
+
|
|
920
|
+
.plex-player.plex-playing .plex-big-play {
|
|
921
|
+
opacity: 0;
|
|
922
|
+
visibility: hidden;
|
|
923
|
+
transform: translate(-50%, -50%) scale(0.8);
|
|
963
924
|
}
|
|
964
925
|
|
|
965
|
-
/*
|
|
966
|
-
.
|
|
926
|
+
/* Loader */
|
|
927
|
+
.plex-loader {
|
|
967
928
|
position: absolute;
|
|
968
|
-
|
|
969
|
-
|
|
929
|
+
top: 50%;
|
|
930
|
+
left: 50%;
|
|
931
|
+
transform: translate(-50%, -50%);
|
|
932
|
+
z-index: var(--plex-z-overlay);
|
|
933
|
+
display: none;
|
|
934
|
+
}
|
|
935
|
+
|
|
936
|
+
.plex-player.plex-loading .plex-loader {
|
|
937
|
+
display: block;
|
|
938
|
+
}
|
|
939
|
+
|
|
940
|
+
.plex-player.plex-loading .plex-big-play {
|
|
941
|
+
display: none;
|
|
942
|
+
}
|
|
943
|
+
|
|
944
|
+
.plex-spinner {
|
|
945
|
+
width: 48px;
|
|
946
|
+
height: 48px;
|
|
947
|
+
border: 4px solid rgba(255, 255, 255, 0.2);
|
|
948
|
+
border-top-color: var(--plex-primary);
|
|
970
949
|
border-radius: 50%;
|
|
971
|
-
|
|
972
|
-
transform: translate(-50%, -50%) scale(0);
|
|
973
|
-
animation: ripple 0.5s ease-out forwards;
|
|
974
|
-
pointer-events: none;
|
|
950
|
+
animation: plex-spin 1s linear infinite;
|
|
975
951
|
}
|
|
976
952
|
|
|
977
|
-
@keyframes
|
|
953
|
+
@keyframes plex-spin {
|
|
978
954
|
to {
|
|
979
|
-
transform:
|
|
980
|
-
opacity: 0;
|
|
955
|
+
transform: rotate(360deg);
|
|
981
956
|
}
|
|
982
957
|
}
|
|
983
958
|
|
|
984
|
-
/* Responsive
|
|
959
|
+
/* Responsive */
|
|
985
960
|
@media (max-width: 768px) {
|
|
986
|
-
.
|
|
987
|
-
padding: 12px 16px;
|
|
988
|
-
}
|
|
989
|
-
|
|
990
|
-
.video-title {
|
|
991
|
-
font-size: 14px;
|
|
992
|
-
max-width: 200px;
|
|
993
|
-
}
|
|
994
|
-
|
|
995
|
-
.bottom-controls {
|
|
961
|
+
.plex-controls {
|
|
996
962
|
padding: 0 12px 12px;
|
|
997
963
|
}
|
|
998
964
|
|
|
999
|
-
.
|
|
965
|
+
.plex-btn {
|
|
1000
966
|
width: 36px;
|
|
1001
967
|
height: 36px;
|
|
1002
968
|
}
|
|
1003
969
|
|
|
1004
|
-
.
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
.play-btn {
|
|
1009
|
-
width: 44px;
|
|
1010
|
-
height: 44px;
|
|
970
|
+
.plex-btn svg {
|
|
971
|
+
width: 22px;
|
|
972
|
+
height: 22px;
|
|
1011
973
|
}
|
|
1012
974
|
|
|
1013
|
-
.
|
|
1014
|
-
font-size: 28px;
|
|
1015
|
-
}
|
|
1016
|
-
|
|
1017
|
-
.time-display {
|
|
975
|
+
.plex-time {
|
|
1018
976
|
font-size: 12px;
|
|
1019
977
|
}
|
|
1020
978
|
|
|
1021
|
-
.
|
|
1022
|
-
|
|
979
|
+
.plex-big-play {
|
|
980
|
+
width: 60px;
|
|
981
|
+
height: 60px;
|
|
1023
982
|
}
|
|
1024
983
|
|
|
1025
|
-
|
|
1026
|
-
width:
|
|
1027
|
-
height:
|
|
984
|
+
.plex-big-play svg {
|
|
985
|
+
width: 32px;
|
|
986
|
+
height: 32px;
|
|
1028
987
|
}
|
|
1029
988
|
}
|
|
1030
989
|
|
|
1031
990
|
@media (max-width: 480px) {
|
|
1032
|
-
.controls-left,
|
|
1033
|
-
.controls-right {
|
|
991
|
+
.plex-controls-left,
|
|
992
|
+
.plex-controls-right {
|
|
1034
993
|
gap: 0;
|
|
1035
994
|
}
|
|
1036
995
|
|
|
1037
|
-
.
|
|
996
|
+
.plex-btn {
|
|
1038
997
|
width: 32px;
|
|
1039
998
|
height: 32px;
|
|
1040
999
|
}
|
|
1041
1000
|
|
|
1042
|
-
.
|
|
1043
|
-
|
|
1001
|
+
.plex-btn svg {
|
|
1002
|
+
width: 20px;
|
|
1003
|
+
height: 20px;
|
|
1044
1004
|
}
|
|
1045
1005
|
|
|
1046
|
-
.
|
|
1047
|
-
|
|
1048
|
-
|
|
1006
|
+
.plex-prev-btn,
|
|
1007
|
+
.plex-next-btn,
|
|
1008
|
+
.plex-cast-btn {
|
|
1009
|
+
display: none;
|
|
1049
1010
|
}
|
|
1050
1011
|
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1012
|
+
.plex-big-play {
|
|
1013
|
+
width: 56px;
|
|
1014
|
+
height: 56px;
|
|
1015
|
+
}
|
|
1016
|
+
|
|
1017
|
+
.plex-big-play svg {
|
|
1018
|
+
width: 28px;
|
|
1019
|
+
height: 28px;
|
|
1055
1020
|
}
|
|
1056
1021
|
}
|
|
1057
1022
|
|
|
1058
|
-
/*
|
|
1059
|
-
.
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
}
|
|
1063
|
-
|
|
1064
|
-
.progress-container:focus-visible {
|
|
1065
|
-
outline: 2px solid var(--plex-primary);
|
|
1066
|
-
outline-offset: 2px;
|
|
1023
|
+
/* Controls Visibility */
|
|
1024
|
+
.plex-player.plex-controls-visible .plex-controls {
|
|
1025
|
+
opacity: 1;
|
|
1026
|
+
visibility: visible;
|
|
1067
1027
|
}
|
|
1068
1028
|
|
|
1069
|
-
/*
|
|
1070
|
-
.
|
|
1071
|
-
|
|
1072
|
-
cursor: not-allowed;
|
|
1029
|
+
/* Cursor hiding when controls hidden */
|
|
1030
|
+
.plex-player:not(.plex-controls-visible) {
|
|
1031
|
+
cursor: none;
|
|
1073
1032
|
}
|
|
1074
1033
|
|
|
1075
|
-
.
|
|
1076
|
-
|
|
1034
|
+
.plex-player:not(.plex-controls-visible) .plex-video {
|
|
1035
|
+
cursor: none;
|
|
1077
1036
|
}
|
|
1078
1037
|
|
|
1079
1038
|
/* =====================================================
|