video-react-player 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/CHANGELOG.md +27 -0
- package/LICENSE +23 -0
- package/README.md +584 -0
- package/dist/Manager.d.ts +36 -0
- package/dist/actions/player.d.ts +124 -0
- package/dist/actions/video.d.ts +161 -0
- package/dist/components/Bezel.d.ts +22 -0
- package/dist/components/BigPlayButton.d.ts +20 -0
- package/dist/components/ClickableComponent.d.ts +24 -0
- package/dist/components/LoadingSpinner.d.ts +11 -0
- package/dist/components/Player.d.ts +82 -0
- package/dist/components/PosterImage.d.ts +12 -0
- package/dist/components/Shortcut.d.ts +48 -0
- package/dist/components/Slider.d.ts +49 -0
- package/dist/components/Source.d.ts +25 -0
- package/dist/components/Video.d.ts +48 -0
- package/dist/components/control-bar/ClosedCaptionButton.d.ts +19 -0
- package/dist/components/control-bar/ControlBar.d.ts +17 -0
- package/dist/components/control-bar/DownloadButton.d.ts +17 -0
- package/dist/components/control-bar/ForwardControl.d.ts +13 -0
- package/dist/components/control-bar/ForwardReplayControl.d.ts +17 -0
- package/dist/components/control-bar/FullscreenToggle.d.ts +5 -0
- package/dist/components/control-bar/LoadProgressBar.d.ts +18 -0
- package/dist/components/control-bar/LoopToggle.d.ts +5 -0
- package/dist/components/control-bar/MouseTimeDisplay.d.ts +22 -0
- package/dist/components/control-bar/PictureInPictureToggle.d.ts +15 -0
- package/dist/components/control-bar/PlayProgressBar.d.ts +12 -0
- package/dist/components/control-bar/PlayToggle.d.ts +13 -0
- package/dist/components/control-bar/PlaybackRate.d.ts +14 -0
- package/dist/components/control-bar/PlaybackRateMenuButton.d.ts +17 -0
- package/dist/components/control-bar/ProgressControl.d.ts +16 -0
- package/dist/components/control-bar/QualityMenuButton.d.ts +17 -0
- package/dist/components/control-bar/ReplayControl.d.ts +13 -0
- package/dist/components/control-bar/ScreenshotButton.d.ts +14 -0
- package/dist/components/control-bar/SeekBar.d.ts +18 -0
- package/dist/components/control-bar/TheaterModeToggle.d.ts +14 -0
- package/dist/components/control-bar/VolumeMenuButton.d.ts +17 -0
- package/dist/components/menu/Menu.d.ts +15 -0
- package/dist/components/menu/MenuButton.d.ts +46 -0
- package/dist/components/menu/MenuItem.d.ts +22 -0
- package/dist/components/popup/Popup.d.ts +15 -0
- package/dist/components/popup/PopupButton.d.ts +19 -0
- package/dist/components/time-controls/CurrentTimeDisplay.d.ts +18 -0
- package/dist/components/time-controls/DurationDisplay.d.ts +12 -0
- package/dist/components/time-controls/RemainingTimeDisplay.d.ts +13 -0
- package/dist/components/time-controls/TimeDivider.d.ts +10 -0
- package/dist/components/volume-control/VolumeBar.d.ts +33 -0
- package/dist/components/volume-control/VolumeControl.d.ts +16 -0
- package/dist/components/volume-control/VolumeLevel.d.ts +9 -0
- package/dist/index.d.ts +46 -0
- package/dist/reducers/index.d.ts +11 -0
- package/dist/reducers/operation.d.ts +10 -0
- package/dist/reducers/player.d.ts +33 -0
- package/dist/types/component.d.ts +13 -0
- package/dist/types/player.d.ts +31 -0
- package/dist/utils/browser.d.ts +5 -0
- package/dist/utils/dom.d.ts +31 -0
- package/dist/utils/fullscreen.d.ts +16 -0
- package/dist/utils/index.d.ts +24 -0
- package/dist/video-react-new.cjs.js +3904 -0
- package/dist/video-react-new.css +1155 -0
- package/dist/video-react-new.d.ts +11 -0
- package/dist/video-react-new.es.js +3861 -0
- package/dist/video-react-new.full.js +4578 -0
- package/dist/video-react-new.full.min.js +2 -0
- package/dist/video-react-new.js +4283 -0
- package/dist/video-react-new.min.js +2 -0
- package/dist/video-react-player.cjs.js +3904 -0
- package/dist/video-react-player.css +1155 -0
- package/dist/video-react-player.d.ts +11 -0
- package/dist/video-react-player.es.js +3861 -0
- package/dist/video-react-player.full.js +4578 -0
- package/dist/video-react-player.full.min.js +2 -0
- package/dist/video-react-player.js +4283 -0
- package/dist/video-react-player.min.js +2 -0
- package/package.json +145 -0
- package/styles/fonts/video-react.eot +0 -0
- package/styles/fonts/video-react.svg +43 -0
- package/styles/fonts/video-react.ttf +0 -0
- package/styles/fonts/video-react.woff +0 -0
- package/styles/icons.json +584 -0
- package/styles/scss/components/bezel.scss +119 -0
- package/styles/scss/components/big-play-button.scss +45 -0
- package/styles/scss/components/button.scss +18 -0
- package/styles/scss/components/closed-caption.scss +13 -0
- package/styles/scss/components/control-bar.scss +51 -0
- package/styles/scss/components/control.scss +42 -0
- package/styles/scss/components/fullscreen.scss +13 -0
- package/styles/scss/components/loading-spinner.scss +105 -0
- package/styles/scss/components/menu/menu-inline.scss +67 -0
- package/styles/scss/components/menu/menu-popup.scss +27 -0
- package/styles/scss/components/menu/menu.scss +59 -0
- package/styles/scss/components/new-controls.scss +42 -0
- package/styles/scss/components/play-pause.scss +11 -0
- package/styles/scss/components/playback-rate.scss +13 -0
- package/styles/scss/components/poster.scss +27 -0
- package/styles/scss/components/progress.scss +157 -0
- package/styles/scss/components/slider.scss +13 -0
- package/styles/scss/components/time.scss +18 -0
- package/styles/scss/components/volume.scss +147 -0
- package/styles/scss/icons.scss +278 -0
- package/styles/scss/layout.scss +115 -0
- package/styles/scss/mixins.scss +117 -0
- package/styles/scss/variables.scss +16 -0
- package/styles/scss/video-react-player.scss +34 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
.video-react-player {
|
|
2
|
+
.video-react-player-big-play-button {
|
|
3
|
+
font-size: 3em;
|
|
4
|
+
line-height: $video-react-player-big-play-button-height;
|
|
5
|
+
height: $video-react-player-big-play-button-height;
|
|
6
|
+
width: $video-react-player-big-play-button-width; // Firefox bug: For some reason without width the icon wouldn't show up. Switched to using width and removed padding.
|
|
7
|
+
display: block;
|
|
8
|
+
position: absolute;
|
|
9
|
+
top: 10px;
|
|
10
|
+
left: 10px;
|
|
11
|
+
padding: 0;
|
|
12
|
+
cursor: pointer;
|
|
13
|
+
opacity: 1;
|
|
14
|
+
border: 0.06666em solid $video-react-player-primary-foreground-color;
|
|
15
|
+
// Need a slightly gray bg so it can be seen on black backgrounds
|
|
16
|
+
@include background-color-with-alpha($video-react-player-primary-background-color, $video-react-player-primary-background-transparency);
|
|
17
|
+
@include border-radius(0.3em);
|
|
18
|
+
@include transition(all 0.4s);
|
|
19
|
+
@extend .video-react-player-icon;
|
|
20
|
+
@extend .video-react-player-icon-play-arrow;
|
|
21
|
+
// Since the big play button doesn't inherit from vjs-control, we need to specify a bit more than
|
|
22
|
+
// other buttons for the icon.
|
|
23
|
+
&:before {
|
|
24
|
+
@extend %video-react-player-icon-default;
|
|
25
|
+
}
|
|
26
|
+
// Allow people that hate their poster image to center the big play button.
|
|
27
|
+
&.video-react-player-big-play-button-center {
|
|
28
|
+
top: 50%;
|
|
29
|
+
left: 50%;
|
|
30
|
+
margin-top: 0;
|
|
31
|
+
margin-left: 0;
|
|
32
|
+
transform: translate(-50%, -50%);
|
|
33
|
+
}
|
|
34
|
+
&.big-play-button-hide {
|
|
35
|
+
display: none;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
&:hover .video-react-player-big-play-button,
|
|
39
|
+
.video-react-player-big-play-button:focus {
|
|
40
|
+
outline: 0;
|
|
41
|
+
border-color: $video-react-player-primary-foreground-color;
|
|
42
|
+
@include background-color-with-alpha($video-react-player-secondary-background-color, $video-react-player-secondary-background-transparency);
|
|
43
|
+
@include transition(all 0s);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
.video-react-player .video-react-player-button {
|
|
2
|
+
background: none;
|
|
3
|
+
border: none;
|
|
4
|
+
color: inherit;
|
|
5
|
+
display: inline-block;
|
|
6
|
+
cursor: pointer;
|
|
7
|
+
|
|
8
|
+
overflow: visible; // IE8
|
|
9
|
+
font-size: inherit; // IE in general. WTF.
|
|
10
|
+
line-height: inherit;
|
|
11
|
+
text-transform: none;
|
|
12
|
+
text-decoration: none;
|
|
13
|
+
transition: none;
|
|
14
|
+
|
|
15
|
+
-webkit-appearance: none;
|
|
16
|
+
-moz-appearance: none;
|
|
17
|
+
appearance: none;
|
|
18
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
.video-react-player {
|
|
2
|
+
.video-react-player-closed-caption {
|
|
3
|
+
cursor: pointer;
|
|
4
|
+
@include flex(none);
|
|
5
|
+
@extend .video-react-player-icon;
|
|
6
|
+
@extend .video-react-player-icon-closed-caption;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
video::-webkit-media-text-track-container {
|
|
10
|
+
-webkit-transform: translateY(-30px);
|
|
11
|
+
transform: translateY(-30px);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
.video-react-player .video-react-player-control-bar {
|
|
2
|
+
display: none;
|
|
3
|
+
width: 100%;
|
|
4
|
+
position: absolute;
|
|
5
|
+
bottom: 0;
|
|
6
|
+
left: 0;
|
|
7
|
+
right: 0;
|
|
8
|
+
height: 3.0em;
|
|
9
|
+
|
|
10
|
+
@include background-color-with-alpha($video-react-player-primary-background-color, $video-react-player-primary-background-transparency);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// Video has started playing
|
|
14
|
+
.video-react-player-has-started .video-react-player-control-bar {
|
|
15
|
+
@include display-flex;
|
|
16
|
+
visibility: visible;
|
|
17
|
+
opacity: 1;
|
|
18
|
+
|
|
19
|
+
$trans: visibility 0.1s, opacity 0.1s; // Var needed because of comma
|
|
20
|
+
@include transition($trans);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// Video has started playing AND user is inactive
|
|
24
|
+
.video-react-player-has-started.video-react-player-user-inactive.video-react-player-playing {
|
|
25
|
+
.video-react-player-control-bar.video-react-player-control-bar-auto-hide {
|
|
26
|
+
// Remain visible for screen reader and keyboard users
|
|
27
|
+
visibility: visible;
|
|
28
|
+
opacity: 0;
|
|
29
|
+
|
|
30
|
+
$trans: visibility 1.0s, opacity 1.0s;
|
|
31
|
+
@include transition($trans);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.video-react-player-controls-disabled .video-react-player-control-bar,
|
|
36
|
+
.video-react-player-using-native-controls .video-react-player-control-bar,
|
|
37
|
+
.video-react-player-error .video-react-player-control-bar {
|
|
38
|
+
// !important is ok in this context.
|
|
39
|
+
display: none !important;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Don't hide the control bar if it's audio
|
|
43
|
+
.video-react-player-audio.video-react-player-has-started.video-react-player-user-inactive.video-react-player-playing .video-react-player-control-bar {
|
|
44
|
+
opacity: 1;
|
|
45
|
+
visibility: visible;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// IE 8 + 9 Support
|
|
49
|
+
.video-react-player-has-started.video-react-player-no-flex .video-react-player-control-bar {
|
|
50
|
+
display: table;
|
|
51
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// control might be better named button now.
|
|
2
|
+
// It's used on both real buttons (play button)
|
|
3
|
+
// and div buttons (menu buttons)
|
|
4
|
+
.video-react-player .video-react-player-control {
|
|
5
|
+
outline: none;
|
|
6
|
+
position: relative;
|
|
7
|
+
text-align: center;
|
|
8
|
+
margin: 0;
|
|
9
|
+
padding: 0;
|
|
10
|
+
height: 100%;
|
|
11
|
+
width: 4em;
|
|
12
|
+
@include flex(none);
|
|
13
|
+
|
|
14
|
+
&:before {
|
|
15
|
+
font-size: 1.8em;
|
|
16
|
+
line-height: 1.67;
|
|
17
|
+
|
|
18
|
+
@extend %video-react-player-icon-default;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// Replacement for focus outline
|
|
22
|
+
&:focus:before,
|
|
23
|
+
&:hover:before,
|
|
24
|
+
&:focus {
|
|
25
|
+
text-shadow: 0em 0em 1em $video-react-player-primary-foreground-color,
|
|
26
|
+
0em 0em 0.5em $video-react-player-primary-foreground-color;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
// Hide control text visually, but have it available for screenreaders
|
|
34
|
+
.video-react-player .video-react-player-control-text {
|
|
35
|
+
@include hide-visually;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// IE 8 + 9 Support
|
|
39
|
+
.video-react-player-no-flex .video-react-player-control {
|
|
40
|
+
display: table-cell;
|
|
41
|
+
vertical-align: middle;
|
|
42
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// loading-spinner css style
|
|
2
|
+
.video-react-player .video-react-player-loading-spinner {
|
|
3
|
+
display: none;
|
|
4
|
+
position: absolute;
|
|
5
|
+
top: 50%;
|
|
6
|
+
left: 50%;
|
|
7
|
+
margin: -25px 0 0 -25px;
|
|
8
|
+
opacity: 0.85;
|
|
9
|
+
|
|
10
|
+
// Need to fix centered page layouts
|
|
11
|
+
text-align: left;
|
|
12
|
+
|
|
13
|
+
border: 6px solid rgba($video-react-player-primary-background-color, $video-react-player-primary-background-transparency);
|
|
14
|
+
// border: 6px solid rgba(43, 51, 63, 0.5);
|
|
15
|
+
|
|
16
|
+
box-sizing: border-box;
|
|
17
|
+
background-clip: padding-box;
|
|
18
|
+
width: 50px;
|
|
19
|
+
height: 50px;
|
|
20
|
+
border-radius: 25px;
|
|
21
|
+
|
|
22
|
+
&:before,
|
|
23
|
+
&:after {
|
|
24
|
+
content: "";
|
|
25
|
+
position: absolute;
|
|
26
|
+
margin: -6px;
|
|
27
|
+
box-sizing: inherit;
|
|
28
|
+
width: inherit;
|
|
29
|
+
height: inherit;
|
|
30
|
+
border-radius: inherit;
|
|
31
|
+
opacity: 1;
|
|
32
|
+
border: inherit;
|
|
33
|
+
border-color: transparent;
|
|
34
|
+
border-top-color: white;
|
|
35
|
+
-webkit-animation: video-react-player-spinner-spin 1.1s cubic-bezier(0.6, 0.2, 0, 0.8) infinite, video-react-player-spinner-fade 1.1s linear infinite;
|
|
36
|
+
animation: video-react-player-spinner-spin 1.1s cubic-bezier(0.6, 0.2, 0, 0.8) infinite, video-react-player-spinner-fade 1.1s linear infinite;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.video-react-player-seeking .video-react-player-loading-spinner,
|
|
41
|
+
.video-react-player-waiting .video-react-player-loading-spinner {
|
|
42
|
+
display: block;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.video-react-player-seeking .video-react-player-loading-spinner:before,
|
|
46
|
+
.video-react-player-waiting .video-react-player-loading-spinner:before {
|
|
47
|
+
border-top-color: rgb(255,255,255);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.video-react-player-seeking .video-react-player-loading-spinner:after,
|
|
51
|
+
.video-react-player-waiting .video-react-player-loading-spinner:after {
|
|
52
|
+
border-top-color: rgb(255,255,255);
|
|
53
|
+
-webkit-animation-delay: 0.44s;
|
|
54
|
+
animation-delay: 0.44s;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@keyframes video-react-player-spinner-spin {
|
|
58
|
+
100% {
|
|
59
|
+
transform: rotate(360deg);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
@-webkit-keyframes video-react-player-spinner-spin {
|
|
64
|
+
100% {
|
|
65
|
+
-webkit-transform: rotate(360deg);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
@keyframes video-react-player-spinner-fade {
|
|
70
|
+
0% {
|
|
71
|
+
border-top-color: $video-react-player-secondary-background-color;
|
|
72
|
+
}
|
|
73
|
+
20% {
|
|
74
|
+
border-top-color: $video-react-player-secondary-background-color;
|
|
75
|
+
}
|
|
76
|
+
35% {
|
|
77
|
+
border-top-color: white;
|
|
78
|
+
}
|
|
79
|
+
60% {
|
|
80
|
+
border-top-color: $video-react-player-secondary-background-color;
|
|
81
|
+
}
|
|
82
|
+
100% {
|
|
83
|
+
border-top-color: $video-react-player-secondary-background-color;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
@-webkit-keyframes video-react-player-spinner-fade {
|
|
88
|
+
0% {
|
|
89
|
+
border-top-color: $video-react-player-secondary-background-color;
|
|
90
|
+
}
|
|
91
|
+
20% {
|
|
92
|
+
border-top-color: $video-react-player-secondary-background-color;
|
|
93
|
+
}
|
|
94
|
+
35% {
|
|
95
|
+
border-top-color: white;
|
|
96
|
+
}
|
|
97
|
+
60% {
|
|
98
|
+
border-top-color: $video-react-player-secondary-background-color;
|
|
99
|
+
}
|
|
100
|
+
100% {
|
|
101
|
+
border-top-color: $video-react-player-secondary-background-color;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
.video-react-player {
|
|
2
|
+
.video-react-player-menu-button-inline {
|
|
3
|
+
@include transition(all 0.4s);
|
|
4
|
+
overflow: hidden;
|
|
5
|
+
|
|
6
|
+
&:before {
|
|
7
|
+
// Icon pseudoelement has a different base font size (1.8em), so we need to
|
|
8
|
+
// account for that in the width. 4em (standard button width) divided by 1.8
|
|
9
|
+
// to get the same button width as normal.
|
|
10
|
+
width: 2.222222222em;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
&:hover,
|
|
14
|
+
&:focus,
|
|
15
|
+
&.video-react-player-slider-active {
|
|
16
|
+
width: 12em;
|
|
17
|
+
|
|
18
|
+
.video-react-player-menu {
|
|
19
|
+
display: block;
|
|
20
|
+
opacity: 1;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
&.video-react-player-slider-active {
|
|
26
|
+
@include transition(none);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.video-react-player-menu {
|
|
30
|
+
opacity: 0;
|
|
31
|
+
height: 100%;
|
|
32
|
+
width: auto;
|
|
33
|
+
|
|
34
|
+
position: absolute;
|
|
35
|
+
left: 4em;
|
|
36
|
+
top: 0;
|
|
37
|
+
|
|
38
|
+
padding: 0;
|
|
39
|
+
margin: 0;
|
|
40
|
+
|
|
41
|
+
@include transition(all 0.4s);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.video-react-player-menu-content {
|
|
45
|
+
width: auto;
|
|
46
|
+
height: 100%;
|
|
47
|
+
margin: 0;
|
|
48
|
+
overflow: hidden;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
.video-react-player-no-flex .video-react-player-menu-button-inline {
|
|
55
|
+
.video-react-player-menu {
|
|
56
|
+
display: block;
|
|
57
|
+
opacity: 1;
|
|
58
|
+
position: relative;
|
|
59
|
+
width: auto;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
&:hover,
|
|
63
|
+
&:focus,
|
|
64
|
+
&.video-react-player-slider-active {
|
|
65
|
+
width: auto;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
.video-react-player {
|
|
2
|
+
.video-react-player-menu-button-popup .video-react-player-menu {
|
|
3
|
+
display: none;
|
|
4
|
+
position: absolute;
|
|
5
|
+
bottom: 0;
|
|
6
|
+
width: 10em;
|
|
7
|
+
left: -3em; // (Width of video-react-player-menu - width of button) / 2
|
|
8
|
+
height: 0em;
|
|
9
|
+
margin-bottom: 1.5em;
|
|
10
|
+
border-top-color: rgba($video-react-player-primary-background-color, $video-react-player-primary-background-transparency); // Same as ul background
|
|
11
|
+
|
|
12
|
+
.video-react-player-menu-content {
|
|
13
|
+
@include background-color-with-alpha($video-react-player-primary-background-color, $video-react-player-primary-background-transparency);
|
|
14
|
+
|
|
15
|
+
position: absolute;
|
|
16
|
+
width: 100%;
|
|
17
|
+
bottom: 1.5em; // Same bottom as video-react-player-menu border-top
|
|
18
|
+
max-height: 15em;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// .video-react-player-workinghover .video-react-player-menu-button-popup:hover .video-react-player-menu,
|
|
25
|
+
.video-react-player-menu-button-popup .video-react-player-menu.video-react-player-lock-showing {
|
|
26
|
+
display: block;
|
|
27
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
.video-react-player-menu-button {
|
|
2
|
+
cursor: pointer;
|
|
3
|
+
|
|
4
|
+
// Change cursor back to default if the menu button is disabled
|
|
5
|
+
&.video-react-player-disabled {
|
|
6
|
+
cursor: default;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
.video-react-player-menu {
|
|
12
|
+
.video-react-player-menu-content {
|
|
13
|
+
display: block;
|
|
14
|
+
padding: 0;
|
|
15
|
+
margin: 0;
|
|
16
|
+
overflow: auto;
|
|
17
|
+
font-family: $video-react-player-text-font-family;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
li {
|
|
21
|
+
list-style: none;
|
|
22
|
+
margin: 0;
|
|
23
|
+
padding: 0.2em 0;
|
|
24
|
+
line-height: 1.4em;
|
|
25
|
+
font-size: 1.2em;
|
|
26
|
+
text-align: center;
|
|
27
|
+
|
|
28
|
+
&:focus,
|
|
29
|
+
&:hover {
|
|
30
|
+
outline: 0;
|
|
31
|
+
@include background-color-with-alpha($video-react-player-secondary-background-color, $video-react-player-secondary-background-transparency);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
&.video-react-player-selected,
|
|
36
|
+
&.video-react-player-selected:focus,
|
|
37
|
+
&.video-react-player-selected:hover {
|
|
38
|
+
background-color: $video-react-player-primary-foreground-color;
|
|
39
|
+
color: $video-react-player-primary-background-color;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
&.vjs-menu-title {
|
|
43
|
+
text-align: center;
|
|
44
|
+
text-transform: uppercase;
|
|
45
|
+
font-size: 1em;
|
|
46
|
+
line-height: 2em;
|
|
47
|
+
padding: 0;
|
|
48
|
+
margin: 0 0 0.3em 0;
|
|
49
|
+
font-weight: bold;
|
|
50
|
+
cursor: default;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// prevent menus from opening while scrubbing (FF, IE)
|
|
57
|
+
.video-react-player-scrubbing .vjs-menu-button:hover .video-react-player-menu {
|
|
58
|
+
display: none;
|
|
59
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// Picture-in-Picture Control
|
|
2
|
+
.video-react-player .video-react-player-picture-in-picture-control {
|
|
3
|
+
cursor: pointer;
|
|
4
|
+
@include flex(none);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
// Loop Control
|
|
8
|
+
.video-react-player .video-react-player-loop-control {
|
|
9
|
+
cursor: pointer;
|
|
10
|
+
@include flex(none);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.video-react-player .video-react-player-loop-control.video-react-player-icon-loop-active {
|
|
14
|
+
opacity: 0.7;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// Theater Mode Control
|
|
18
|
+
.video-react-player .video-react-player-theater-control {
|
|
19
|
+
cursor: pointer;
|
|
20
|
+
@include flex(none);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// Download Button
|
|
24
|
+
.video-react-player .video-react-player-download-control {
|
|
25
|
+
cursor: pointer;
|
|
26
|
+
@include flex(none);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// Screenshot Button
|
|
30
|
+
.video-react-player .video-react-player-screenshot-control {
|
|
31
|
+
cursor: pointer;
|
|
32
|
+
@include flex(none);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Quality Menu
|
|
36
|
+
.video-react-player .video-react-player-quality-menu {
|
|
37
|
+
.video-react-player-quality-value {
|
|
38
|
+
font-size: 1em;
|
|
39
|
+
line-height: 3em;
|
|
40
|
+
text-align: center;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
.video-react-player .video-react-player-play-control {
|
|
2
|
+
cursor: pointer;
|
|
3
|
+
@include flex(none);
|
|
4
|
+
@extend .video-react-player-icon;
|
|
5
|
+
@extend .video-react-player-icon-play-arrow;
|
|
6
|
+
|
|
7
|
+
&.video-react-player-playing {
|
|
8
|
+
@extend .video-react-player-icon-pause;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
.video-react-player .video-react-player-poster {
|
|
2
|
+
display: inline-block;
|
|
3
|
+
vertical-align: middle;
|
|
4
|
+
background-repeat: no-repeat;
|
|
5
|
+
background-position: 50% 50%;
|
|
6
|
+
background-size: contain;
|
|
7
|
+
background-color: #000000;
|
|
8
|
+
cursor: pointer;
|
|
9
|
+
margin: 0;
|
|
10
|
+
padding: 0;
|
|
11
|
+
position: absolute;
|
|
12
|
+
top: 0;
|
|
13
|
+
right: 0;
|
|
14
|
+
bottom: 0;
|
|
15
|
+
left: 0;
|
|
16
|
+
height: 100%;
|
|
17
|
+
|
|
18
|
+
img {
|
|
19
|
+
display: block;
|
|
20
|
+
vertical-align: middle;
|
|
21
|
+
margin: 0 auto;
|
|
22
|
+
max-height: 100%;
|
|
23
|
+
padding: 0;
|
|
24
|
+
width: 100%;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
}
|