video-react-new-new 0.18.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 +425 -0
- package/LICENSE +21 -0
- package/README.md +97 -0
- package/package.json +153 -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 +44 -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/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 +156 -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 +238 -0
- package/styles/scss/layout.scss +107 -0
- package/styles/scss/mixins.scss +117 -0
- package/styles/scss/variables.scss +16 -0
- package/styles/scss/video-react-new.scss +25 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
.video-react-new {
|
|
2
|
+
.video-react-new-big-play-button {
|
|
3
|
+
font-size: 3em;
|
|
4
|
+
line-height: $video-react-new-big-play-button-height;
|
|
5
|
+
height: $video-react-new-big-play-button-height;
|
|
6
|
+
width: $video-react-new-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-new-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-new-primary-background-color, $video-react-new-primary-background-transparency);
|
|
17
|
+
@include border-radius(0.3em);
|
|
18
|
+
@include transition(all 0.4s);
|
|
19
|
+
@extend .video-react-new-icon;
|
|
20
|
+
@extend .video-react-new-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-new-icon-default;
|
|
25
|
+
}
|
|
26
|
+
// Allow people that hate their poster image to center the big play button.
|
|
27
|
+
&.video-react-new-big-play-button-center {
|
|
28
|
+
top: 50%;
|
|
29
|
+
left: 50%;
|
|
30
|
+
margin-top: -calc($video-react-new-big-play-button-height / 2);
|
|
31
|
+
margin-left: -calc($video-react-new-big-play-button-width / 2);
|
|
32
|
+
}
|
|
33
|
+
&.big-play-button-hide {
|
|
34
|
+
display: none;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
&:hover .video-react-new-big-play-button,
|
|
38
|
+
.video-react-new-big-play-button:focus {
|
|
39
|
+
outline: 0;
|
|
40
|
+
border-color: $video-react-new-primary-foreground-color;
|
|
41
|
+
@include background-color-with-alpha($video-react-new-secondary-background-color, $video-react-new-secondary-background-transparency);
|
|
42
|
+
@include transition(all 0s);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
.video-react-new .video-react-new-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-new {
|
|
2
|
+
.video-react-new-closed-caption {
|
|
3
|
+
cursor: pointer;
|
|
4
|
+
@include flex(none);
|
|
5
|
+
@extend .video-react-new-icon;
|
|
6
|
+
@extend .video-react-new-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-new .video-react-new-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-new-primary-background-color, $video-react-new-primary-background-transparency);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// Video has started playing
|
|
14
|
+
.video-react-new-has-started .video-react-new-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-new-has-started.video-react-new-user-inactive.video-react-new-playing {
|
|
25
|
+
.video-react-new-control-bar.video-react-new-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-new-controls-disabled .video-react-new-control-bar,
|
|
36
|
+
.video-react-new-using-native-controls .video-react-new-control-bar,
|
|
37
|
+
.video-react-new-error .video-react-new-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-new-audio.video-react-new-has-started.video-react-new-user-inactive.video-react-new-playing .video-react-new-control-bar {
|
|
44
|
+
opacity: 1;
|
|
45
|
+
visibility: visible;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// IE 8 + 9 Support
|
|
49
|
+
.video-react-new-has-started.video-react-new-no-flex .video-react-new-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-new .video-react-new-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-new-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-new-primary-foreground-color,
|
|
26
|
+
0em 0em 0.5em $video-react-new-primary-foreground-color;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
// Hide control text visually, but have it available for screenreaders
|
|
34
|
+
.video-react-new .video-react-new-control-text {
|
|
35
|
+
@include hide-visually;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// IE 8 + 9 Support
|
|
39
|
+
.video-react-new-no-flex .video-react-new-control {
|
|
40
|
+
display: table-cell;
|
|
41
|
+
vertical-align: middle;
|
|
42
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// loading-spinner css style
|
|
2
|
+
.video-react-new .video-react-new-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-new-primary-background-color, $video-react-new-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-new-spinner-spin 1.1s cubic-bezier(0.6, 0.2, 0, 0.8) infinite, video-react-new-spinner-fade 1.1s linear infinite;
|
|
36
|
+
animation: video-react-new-spinner-spin 1.1s cubic-bezier(0.6, 0.2, 0, 0.8) infinite, video-react-new-spinner-fade 1.1s linear infinite;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.video-react-new-seeking .video-react-new-loading-spinner,
|
|
41
|
+
.video-react-new-waiting .video-react-new-loading-spinner {
|
|
42
|
+
display: block;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.video-react-new-seeking .video-react-new-loading-spinner:before,
|
|
46
|
+
.video-react-new-waiting .video-react-new-loading-spinner:before {
|
|
47
|
+
border-top-color: rgb(255,255,255);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.video-react-new-seeking .video-react-new-loading-spinner:after,
|
|
51
|
+
.video-react-new-waiting .video-react-new-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-new-spinner-spin {
|
|
58
|
+
100% {
|
|
59
|
+
transform: rotate(360deg);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
@-webkit-keyframes video-react-new-spinner-spin {
|
|
64
|
+
100% {
|
|
65
|
+
-webkit-transform: rotate(360deg);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
@keyframes video-react-new-spinner-fade {
|
|
70
|
+
0% {
|
|
71
|
+
border-top-color: $video-react-new-secondary-background-color;
|
|
72
|
+
}
|
|
73
|
+
20% {
|
|
74
|
+
border-top-color: $video-react-new-secondary-background-color;
|
|
75
|
+
}
|
|
76
|
+
35% {
|
|
77
|
+
border-top-color: white;
|
|
78
|
+
}
|
|
79
|
+
60% {
|
|
80
|
+
border-top-color: $video-react-new-secondary-background-color;
|
|
81
|
+
}
|
|
82
|
+
100% {
|
|
83
|
+
border-top-color: $video-react-new-secondary-background-color;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
@-webkit-keyframes video-react-new-spinner-fade {
|
|
88
|
+
0% {
|
|
89
|
+
border-top-color: $video-react-new-secondary-background-color;
|
|
90
|
+
}
|
|
91
|
+
20% {
|
|
92
|
+
border-top-color: $video-react-new-secondary-background-color;
|
|
93
|
+
}
|
|
94
|
+
35% {
|
|
95
|
+
border-top-color: white;
|
|
96
|
+
}
|
|
97
|
+
60% {
|
|
98
|
+
border-top-color: $video-react-new-secondary-background-color;
|
|
99
|
+
}
|
|
100
|
+
100% {
|
|
101
|
+
border-top-color: $video-react-new-secondary-background-color;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
.video-react-new {
|
|
2
|
+
.video-react-new-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-new-slider-active {
|
|
16
|
+
width: 12em;
|
|
17
|
+
|
|
18
|
+
.video-react-new-menu {
|
|
19
|
+
display: block;
|
|
20
|
+
opacity: 1;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
&.video-react-new-slider-active {
|
|
26
|
+
@include transition(none);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.video-react-new-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-new-menu-content {
|
|
45
|
+
width: auto;
|
|
46
|
+
height: 100%;
|
|
47
|
+
margin: 0;
|
|
48
|
+
overflow: hidden;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
.video-react-new-no-flex .video-react-new-menu-button-inline {
|
|
55
|
+
.video-react-new-menu {
|
|
56
|
+
display: block;
|
|
57
|
+
opacity: 1;
|
|
58
|
+
position: relative;
|
|
59
|
+
width: auto;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
&:hover,
|
|
63
|
+
&:focus,
|
|
64
|
+
&.video-react-new-slider-active {
|
|
65
|
+
width: auto;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
.video-react-new {
|
|
2
|
+
.video-react-new-menu-button-popup .video-react-new-menu {
|
|
3
|
+
display: none;
|
|
4
|
+
position: absolute;
|
|
5
|
+
bottom: 0;
|
|
6
|
+
width: 10em;
|
|
7
|
+
left: -3em; // (Width of video-react-new-menu - width of button) / 2
|
|
8
|
+
height: 0em;
|
|
9
|
+
margin-bottom: 1.5em;
|
|
10
|
+
border-top-color: rgba($video-react-new-primary-background-color, $video-react-new-primary-background-transparency); // Same as ul background
|
|
11
|
+
|
|
12
|
+
.video-react-new-menu-content {
|
|
13
|
+
@include background-color-with-alpha($video-react-new-primary-background-color, $video-react-new-primary-background-transparency);
|
|
14
|
+
|
|
15
|
+
position: absolute;
|
|
16
|
+
width: 100%;
|
|
17
|
+
bottom: 1.5em; // Same bottom as video-react-new-menu border-top
|
|
18
|
+
max-height: 15em;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// .video-react-new-workinghover .video-react-new-menu-button-popup:hover .video-react-new-menu,
|
|
25
|
+
.video-react-new-menu-button-popup .video-react-new-menu.video-react-new-lock-showing {
|
|
26
|
+
display: block;
|
|
27
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
.video-react-new-menu-button {
|
|
2
|
+
cursor: pointer;
|
|
3
|
+
|
|
4
|
+
// Change cursor back to default if the menu button is disabled
|
|
5
|
+
&.video-react-new-disabled {
|
|
6
|
+
cursor: default;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
.video-react-new-menu {
|
|
12
|
+
.video-react-new-menu-content {
|
|
13
|
+
display: block;
|
|
14
|
+
padding: 0;
|
|
15
|
+
margin: 0;
|
|
16
|
+
overflow: auto;
|
|
17
|
+
font-family: $video-react-new-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-new-secondary-background-color, $video-react-new-secondary-background-transparency);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
&.video-react-new-selected,
|
|
36
|
+
&.video-react-new-selected:focus,
|
|
37
|
+
&.video-react-new-selected:hover {
|
|
38
|
+
background-color: $video-react-new-primary-foreground-color;
|
|
39
|
+
color: $video-react-new-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-new-scrubbing .vjs-menu-button:hover .video-react-new-menu {
|
|
58
|
+
display: none;
|
|
59
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
.video-react-new .video-react-new-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
|
+
}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
|
|
2
|
+
.video-react-new .video-react-new-progress-control {
|
|
3
|
+
@include flex(auto);
|
|
4
|
+
@include display-flex(center);
|
|
5
|
+
min-width: 4em;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.video-react-new-live .video-react-new-progress-control {
|
|
9
|
+
display: none;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// Box containing play and load progresses. Also acts as seek scrubber.
|
|
13
|
+
.video-react-new .video-react-new-progress-holder {
|
|
14
|
+
@include flex(auto);
|
|
15
|
+
@include transition(all 0.2s);
|
|
16
|
+
height: 0.3em;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// We need an increased hit area on hover
|
|
20
|
+
.video-react-new .video-react-new-progress-control:hover .video-react-new-progress-holder {
|
|
21
|
+
font-size: 1.666666666666666666em;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/* If we let the font size grow as much as everything else, the current time tooltip ends up
|
|
25
|
+
ginormous. If you'd like to enable the current time tooltip all the time, this should be disabled
|
|
26
|
+
to avoid a weird hitch when you roll off the hover. */
|
|
27
|
+
|
|
28
|
+
// Also show the current time tooltip
|
|
29
|
+
.video-react-new .video-react-new-progress-control:hover .video-react-new-time-tooltip,
|
|
30
|
+
.video-react-new .video-react-new-progress-control:hover .video-react-new-mouse-display:after,
|
|
31
|
+
.video-react-new .video-react-new-progress-control:hover .video-react-new-play-progress:after {
|
|
32
|
+
visibility: visible;
|
|
33
|
+
font-size: 0.6em;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Progress Bars
|
|
37
|
+
.video-react-new .video-react-new-progress-holder .video-react-new-play-progress,
|
|
38
|
+
.video-react-new .video-react-new-progress-holder .video-react-new-load-progress,
|
|
39
|
+
.video-react-new .video-react-new-progress-holder .video-react-new-tooltip-progress-bar,
|
|
40
|
+
.video-react-new .video-react-new-progress-holder .video-react-new-load-progress div {
|
|
41
|
+
position: absolute;
|
|
42
|
+
display: block;
|
|
43
|
+
height: 0.3em;
|
|
44
|
+
margin: 0;
|
|
45
|
+
padding: 0;
|
|
46
|
+
// updated by javascript during playback
|
|
47
|
+
width: 0;
|
|
48
|
+
// Needed for IE6
|
|
49
|
+
left: 0;
|
|
50
|
+
top: 0;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.video-react-new .video-react-new-play-progress {
|
|
54
|
+
background-color: $video-react-new-primary-foreground-color;
|
|
55
|
+
@extend .video-react-new-icon;
|
|
56
|
+
@extend .video-react-new-icon-circle;
|
|
57
|
+
|
|
58
|
+
// Progress handle
|
|
59
|
+
&:before {
|
|
60
|
+
position: absolute;
|
|
61
|
+
top: -0.333333333333333em;
|
|
62
|
+
right: -0.5em;
|
|
63
|
+
font-size: 0.9em;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// Current Time "tooltip"
|
|
68
|
+
// By default this is hidden and only shown when hovering over the progress control
|
|
69
|
+
.video-react-new .video-react-new-time-tooltip,
|
|
70
|
+
.video-react-new .video-react-new-mouse-display:after,
|
|
71
|
+
.video-react-new .video-react-new-play-progress:after {
|
|
72
|
+
visibility: hidden;
|
|
73
|
+
pointer-events: none;
|
|
74
|
+
position: absolute;
|
|
75
|
+
top: -3.4em;
|
|
76
|
+
right: -1.9em;
|
|
77
|
+
font-size: 0.9em;
|
|
78
|
+
color: #000;
|
|
79
|
+
content: attr(data-current-time);
|
|
80
|
+
padding: 6px 8px 8px 8px;
|
|
81
|
+
@include background-color-with-alpha(#fff, 0.8);
|
|
82
|
+
@include border-radius(0.3em);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.video-react-new .video-react-new-time-tooltip,
|
|
86
|
+
.video-react-new .video-react-new-play-progress:before,
|
|
87
|
+
.video-react-new .video-react-new-play-progress:after {
|
|
88
|
+
z-index: 1;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.video-react-new .video-react-new-progress-control .video-react-new-keep-tooltips-inside:after {
|
|
92
|
+
display: none;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.video-react-new .video-react-new-load-progress {
|
|
96
|
+
// For IE8 we'll lighten the color
|
|
97
|
+
background: lighten($video-react-new-secondary-background-color, 25%);
|
|
98
|
+
// Otherwise we'll rely on stacked opacities
|
|
99
|
+
background: rgba($video-react-new-secondary-background-color, $video-react-new-secondary-background-transparency);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// there are child elements of the load progress bar that represent the
|
|
103
|
+
// specific time ranges that have been buffered
|
|
104
|
+
.video-react-new .video-react-new-load-progress div {
|
|
105
|
+
// For IE8 we'll lighten the color
|
|
106
|
+
background: lighten($video-react-new-secondary-background-color, 50%);
|
|
107
|
+
// Otherwise we'll rely on stacked opacities
|
|
108
|
+
background: rgba($video-react-new-secondary-background-color, 0.75);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.video-react-new.video-react-new-no-flex .video-react-new-progress-control {
|
|
112
|
+
width: auto;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.video-react-new .video-react-new-time-tooltip {
|
|
116
|
+
display: inline-block;
|
|
117
|
+
height: 2.4em;
|
|
118
|
+
position: relative;
|
|
119
|
+
float: right;
|
|
120
|
+
right: -1.9em;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.video-react-new .video-react-new-tooltip-progress-bar {
|
|
124
|
+
visibility: hidden;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.video-react-new .video-react-new-progress-control .video-react-new-mouse-display {
|
|
128
|
+
display: none;
|
|
129
|
+
position: absolute;
|
|
130
|
+
width: 1px;
|
|
131
|
+
height: 100%;
|
|
132
|
+
background-color: #000;
|
|
133
|
+
z-index: 1;
|
|
134
|
+
}
|
|
135
|
+
.video-react-new-no-flex .video-react-new-progress-control .video-react-new-mouse-display {
|
|
136
|
+
z-index: 0;
|
|
137
|
+
}
|
|
138
|
+
.video-react-new .video-react-new-progress-control:hover .video-react-new-mouse-display {
|
|
139
|
+
display: block;
|
|
140
|
+
}
|
|
141
|
+
.video-react-new.video-react-new-user-inactive .video-react-new-progress-control .video-react-new-mouse-display,
|
|
142
|
+
.video-react-new.video-react-new-user-inactive .video-react-new-progress-control .video-react-new-mouse-display:after {
|
|
143
|
+
visibility: hidden;
|
|
144
|
+
opacity: 0;
|
|
145
|
+
$trans: visibility 1.0s, opacity 1.0s;
|
|
146
|
+
@include transition($trans);
|
|
147
|
+
}
|
|
148
|
+
.video-react-new.video-react-new-user-inactive.video-react-new-no-flex .video-react-new-progress-control .video-react-new-mouse-display,
|
|
149
|
+
.video-react-new.video-react-new-user-inactive.video-react-new-no-flex .video-react-new-progress-control .video-react-new-mouse-display:after {
|
|
150
|
+
display: none;
|
|
151
|
+
}
|
|
152
|
+
.video-react-new .video-react-new-mouse-display .video-react-new-time-tooltip,
|
|
153
|
+
.video-react-new .video-react-new-progress-control .video-react-new-mouse-display:after {
|
|
154
|
+
color: #fff;
|
|
155
|
+
@include background-color-with-alpha(#000, 0.8);
|
|
156
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
.video-react-new .video-react-new-slider {
|
|
2
|
+
outline: 0;
|
|
3
|
+
position: relative;
|
|
4
|
+
cursor: pointer;
|
|
5
|
+
padding: 0;
|
|
6
|
+
margin: 0 0.45em 0 0.45em;
|
|
7
|
+
|
|
8
|
+
@include background-color-with-alpha($video-react-new-secondary-background-color, $video-react-new-secondary-background-transparency);
|
|
9
|
+
|
|
10
|
+
&:focus {
|
|
11
|
+
@include box-shadow(0 0 1em $video-react-new-primary-foreground-color);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
.video-react-new {
|
|
2
|
+
|
|
3
|
+
.video-react-new-time-control {
|
|
4
|
+
@include flex(none);
|
|
5
|
+
font-size: 1em;
|
|
6
|
+
line-height: 3em;
|
|
7
|
+
min-width: 2em;
|
|
8
|
+
width: auto;
|
|
9
|
+
padding-left: 1em;
|
|
10
|
+
padding-right: 1em;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.video-react-new-time-divider {
|
|
14
|
+
line-height: 3em;
|
|
15
|
+
min-width: initial;
|
|
16
|
+
padding: 0;
|
|
17
|
+
}
|
|
18
|
+
}
|