vjs_rails 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,955 @@
1
+ /*!
2
+ Video.js Default Styles (http://videojs.com)
3
+ Version 4.9.1
4
+ Create your own skin at http://designer.videojs.com
5
+ */
6
+ /* SKIN
7
+ ================================================================================
8
+ The main class name for all skin-specific styles. To make your own skin,
9
+ replace all occurances of 'vjs-default-skin' with a new name. Then add your new
10
+ skin name to your video tag instead of the default skin.
11
+ e.g. <video class="video-js my-skin-name">
12
+ */
13
+ .vjs-default-skin {
14
+ color: #cccccc;
15
+ }
16
+ /* Custom Icon Font
17
+ --------------------------------------------------------------------------------
18
+ The control icons are from a custom font. Each icon corresponds to a character
19
+ (e.g. "\e001"). Font icons allow for easy scaling and coloring of icons.
20
+ */
21
+ @font-face {
22
+ font-family: 'VideoJS';
23
+ src: url(<%= asset_path 'vjs.eot' %>);
24
+ src: url(<%= asset_path 'vjs.eot?#iefix' %>) format('embedded-opentype'), url(<%= asset_path 'vjs.woff' %>) format('woff'), url(<%= asset_path 'vjs.ttf' %>) format('truetype'), url(<%= asset_path 'vjs.svg#icomoon' %>) format('svg');
25
+ font-weight: normal;
26
+ font-style: normal;
27
+ }
28
+ /* Base UI Component Classes
29
+ --------------------------------------------------------------------------------
30
+ */
31
+ /* Slider - used for Volume bar and Seek bar */
32
+ .vjs-default-skin .vjs-slider {
33
+ /* Replace browser focus hightlight with handle highlight */
34
+ outline: 0;
35
+ position: relative;
36
+ cursor: pointer;
37
+ padding: 0;
38
+ /* background-color-with-alpha */
39
+ background-color: #333333;
40
+ background-color: rgba(51, 51, 51, 0.9);
41
+ }
42
+ .vjs-default-skin .vjs-slider:focus {
43
+ /* box-shadow */
44
+ -webkit-box-shadow: 0 0 2em #ffffff;
45
+ -moz-box-shadow: 0 0 2em #ffffff;
46
+ box-shadow: 0 0 2em #ffffff;
47
+ }
48
+ .vjs-default-skin .vjs-slider-handle {
49
+ position: absolute;
50
+ /* Needed for IE6 */
51
+ left: 0;
52
+ top: 0;
53
+ }
54
+ .vjs-default-skin .vjs-slider-handle:before {
55
+ content: "\e009";
56
+ font-family: VideoJS;
57
+ font-size: 1em;
58
+ line-height: 1;
59
+ text-align: center;
60
+ text-shadow: 0em 0em 1em #fff;
61
+ position: absolute;
62
+ top: 0;
63
+ left: 0;
64
+ /* Rotate the square icon to make a diamond */
65
+ /* transform */
66
+ -webkit-transform: rotate(-45deg);
67
+ -moz-transform: rotate(-45deg);
68
+ -ms-transform: rotate(-45deg);
69
+ -o-transform: rotate(-45deg);
70
+ transform: rotate(-45deg);
71
+ }
72
+ /* Control Bar
73
+ --------------------------------------------------------------------------------
74
+ The default control bar that is a container for most of the controls.
75
+ */
76
+ .vjs-default-skin .vjs-control-bar {
77
+ /* Start hidden */
78
+ display: none;
79
+ position: absolute;
80
+ /* Place control bar at the bottom of the player box/video.
81
+ If you want more margin below the control bar, add more height. */
82
+ bottom: 0;
83
+ /* Use left/right to stretch to 100% width of player div */
84
+ left: 0;
85
+ right: 0;
86
+ /* Height includes any margin you want above or below control items */
87
+ height: 3.0em;
88
+ /* background-color-with-alpha */
89
+ background-color: #07141e;
90
+ background-color: rgba(7, 20, 30, 0.7);
91
+ }
92
+ /* Show the control bar only once the video has started playing */
93
+ .vjs-default-skin.vjs-has-started .vjs-control-bar {
94
+ display: block;
95
+ /* Visibility needed to make sure things hide in older browsers too. */
96
+
97
+ visibility: visible;
98
+ opacity: 1;
99
+ /* transition */
100
+ -webkit-transition: visibility 0.1s, opacity 0.1s;
101
+ -moz-transition: visibility 0.1s, opacity 0.1s;
102
+ -o-transition: visibility 0.1s, opacity 0.1s;
103
+ transition: visibility 0.1s, opacity 0.1s;
104
+ }
105
+ /* Hide the control bar when the video is playing and the user is inactive */
106
+ .vjs-default-skin.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar {
107
+ display: block;
108
+ visibility: hidden;
109
+ opacity: 0;
110
+ /* transition */
111
+ -webkit-transition: visibility 1s, opacity 1s;
112
+ -moz-transition: visibility 1s, opacity 1s;
113
+ -o-transition: visibility 1s, opacity 1s;
114
+ transition: visibility 1s, opacity 1s;
115
+ }
116
+ .vjs-default-skin.vjs-controls-disabled .vjs-control-bar {
117
+ display: none;
118
+ }
119
+ .vjs-default-skin.vjs-using-native-controls .vjs-control-bar {
120
+ display: none;
121
+ }
122
+ /* The control bar shouldn't show after an error */
123
+ .vjs-default-skin.vjs-error .vjs-control-bar {
124
+ display: none;
125
+ }
126
+ /* Don't hide the control bar if it's audio */
127
+ .vjs-audio.vjs-default-skin.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar {
128
+ opacity: 1;
129
+ visibility: visible;
130
+ }
131
+ /* IE8 is flakey with fonts, and you have to change the actual content to force
132
+ fonts to show/hide properly.
133
+ - "\9" IE8 hack didn't work for this
134
+ - Found in XP IE8 from http://modern.ie. Does not show up in "IE8 mode" in IE9
135
+ */
136
+ @media \0screen {
137
+ .vjs-default-skin.vjs-user-inactive.vjs-playing .vjs-control-bar :before {
138
+ content: "";
139
+ }
140
+ }
141
+ /* General styles for individual controls. */
142
+ .vjs-default-skin .vjs-control {
143
+ outline: none;
144
+ position: relative;
145
+ float: left;
146
+ text-align: center;
147
+ margin: 0;
148
+ padding: 0;
149
+ height: 3.0em;
150
+ width: 4em;
151
+ }
152
+ /* Font button icons */
153
+ .vjs-default-skin .vjs-control:before {
154
+ font-family: VideoJS;
155
+ font-size: 1.5em;
156
+ line-height: 2;
157
+ position: absolute;
158
+ top: 0;
159
+ left: 0;
160
+ width: 100%;
161
+ height: 100%;
162
+ text-align: center;
163
+ text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
164
+ }
165
+ /* Replacement for focus outline */
166
+ .vjs-default-skin .vjs-control:focus:before,
167
+ .vjs-default-skin .vjs-control:hover:before {
168
+ text-shadow: 0em 0em 1em #ffffff;
169
+ }
170
+ .vjs-default-skin .vjs-control:focus {
171
+ /* outline: 0; */
172
+ /* keyboard-only users cannot see the focus on several of the UI elements when
173
+ this is set to 0 */
174
+
175
+ }
176
+ /* Hide control text visually, but have it available for screenreaders */
177
+ .vjs-default-skin .vjs-control-text {
178
+ /* hide-visually */
179
+ border: 0;
180
+ clip: rect(0 0 0 0);
181
+ height: 1px;
182
+ margin: -1px;
183
+ overflow: hidden;
184
+ padding: 0;
185
+ position: absolute;
186
+ width: 1px;
187
+ }
188
+ /* Play/Pause
189
+ --------------------------------------------------------------------------------
190
+ */
191
+ .vjs-default-skin .vjs-play-control {
192
+ width: 5em;
193
+ cursor: pointer;
194
+ }
195
+ .vjs-default-skin .vjs-play-control:before {
196
+ content: "\e001";
197
+ }
198
+ .vjs-default-skin.vjs-playing .vjs-play-control:before {
199
+ content: "\e002";
200
+ }
201
+ /* Playback toggle
202
+ --------------------------------------------------------------------------------
203
+ */
204
+ .vjs-default-skin .vjs-playback-rate .vjs-playback-rate-value {
205
+ font-size: 1.5em;
206
+ line-height: 2;
207
+ position: absolute;
208
+ top: 0;
209
+ left: 0;
210
+ width: 100%;
211
+ height: 100%;
212
+ text-align: center;
213
+ text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
214
+ }
215
+ .vjs-default-skin .vjs-playback-rate.vjs-menu-button .vjs-menu .vjs-menu-content {
216
+ width: 4em;
217
+ left: -2em;
218
+ list-style: none;
219
+ }
220
+ /* Volume/Mute
221
+ -------------------------------------------------------------------------------- */
222
+ .vjs-default-skin .vjs-mute-control,
223
+ .vjs-default-skin .vjs-volume-menu-button {
224
+ cursor: pointer;
225
+ float: right;
226
+ }
227
+ .vjs-default-skin .vjs-mute-control:before,
228
+ .vjs-default-skin .vjs-volume-menu-button:before {
229
+ content: "\e006";
230
+ }
231
+ .vjs-default-skin .vjs-mute-control.vjs-vol-0:before,
232
+ .vjs-default-skin .vjs-volume-menu-button.vjs-vol-0:before {
233
+ content: "\e003";
234
+ }
235
+ .vjs-default-skin .vjs-mute-control.vjs-vol-1:before,
236
+ .vjs-default-skin .vjs-volume-menu-button.vjs-vol-1:before {
237
+ content: "\e004";
238
+ }
239
+ .vjs-default-skin .vjs-mute-control.vjs-vol-2:before,
240
+ .vjs-default-skin .vjs-volume-menu-button.vjs-vol-2:before {
241
+ content: "\e005";
242
+ }
243
+ .vjs-default-skin .vjs-volume-control {
244
+ width: 5em;
245
+ float: right;
246
+ }
247
+ .vjs-default-skin .vjs-volume-bar {
248
+ width: 5em;
249
+ height: 0.6em;
250
+ margin: 1.1em auto 0;
251
+ }
252
+ .vjs-default-skin .vjs-volume-level {
253
+ position: absolute;
254
+ top: 0;
255
+ left: 0;
256
+ height: 0.5em;
257
+ /* assuming volume starts at 1.0 */
258
+
259
+ width: 100%;
260
+ background: #66a8cc url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR/QJ/Ub//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC) -50% 0 repeat;
261
+ }
262
+ .vjs-default-skin .vjs-volume-bar .vjs-volume-handle {
263
+ width: 0.5em;
264
+ height: 0.5em;
265
+ /* Assumes volume starts at 1.0. If you change the size of the
266
+ handle relative to the volume bar, you'll need to update this value
267
+ too. */
268
+
269
+ left: 4.5em;
270
+ }
271
+ .vjs-default-skin .vjs-volume-handle:before {
272
+ font-size: 0.9em;
273
+ top: -0.2em;
274
+ left: -0.2em;
275
+ width: 1em;
276
+ height: 1em;
277
+ }
278
+ /* The volume menu button is like menu buttons (captions/subtitles) but works
279
+ a little differently. It needs to be possible to tab to the volume slider
280
+ without hitting space bar on the menu button. To do this we're not using
281
+ display:none to hide the slider menu by default, and instead setting the
282
+ width and height to zero. */
283
+ .vjs-default-skin .vjs-volume-menu-button .vjs-menu {
284
+ display: block;
285
+ width: 0;
286
+ height: 0;
287
+ border-top-color: transparent;
288
+ }
289
+ .vjs-default-skin .vjs-volume-menu-button .vjs-menu .vjs-menu-content {
290
+ height: 0;
291
+ width: 0;
292
+ }
293
+ .vjs-default-skin .vjs-volume-menu-button:hover .vjs-menu,
294
+ .vjs-default-skin .vjs-volume-menu-button .vjs-menu.vjs-lock-showing {
295
+ border-top-color: rgba(7, 40, 50, 0.5);
296
+ /* Same as ul background */
297
+
298
+ }
299
+ .vjs-default-skin .vjs-volume-menu-button:hover .vjs-menu .vjs-menu-content,
300
+ .vjs-default-skin .vjs-volume-menu-button .vjs-menu.vjs-lock-showing .vjs-menu-content {
301
+ height: 2.9em;
302
+ width: 10em;
303
+ }
304
+ /* Progress
305
+ --------------------------------------------------------------------------------
306
+ */
307
+ .vjs-default-skin .vjs-progress-control {
308
+ position: absolute;
309
+ left: 0;
310
+ right: 0;
311
+ width: auto;
312
+ font-size: 0.3em;
313
+ height: 1em;
314
+ /* Set above the rest of the controls. */
315
+ top: -1em;
316
+ /* Shrink the bar slower than it grows. */
317
+ /* transition */
318
+ -webkit-transition: all 0.4s;
319
+ -moz-transition: all 0.4s;
320
+ -o-transition: all 0.4s;
321
+ transition: all 0.4s;
322
+ }
323
+ /* On hover, make the progress bar grow to something that's more clickable.
324
+ This simply changes the overall font for the progress bar, and this
325
+ updates both the em-based widths and heights, as wells as the icon font */
326
+ .vjs-default-skin:hover .vjs-progress-control {
327
+ font-size: .9em;
328
+ /* Even though we're not changing the top/height, we need to include them in
329
+ the transition so they're handled correctly. */
330
+
331
+ /* transition */
332
+ -webkit-transition: all 0.2s;
333
+ -moz-transition: all 0.2s;
334
+ -o-transition: all 0.2s;
335
+ transition: all 0.2s;
336
+ }
337
+ /* Box containing play and load progresses. Also acts as seek scrubber. */
338
+ .vjs-default-skin .vjs-progress-holder {
339
+ height: 100%;
340
+ }
341
+ /* Progress Bars */
342
+ .vjs-default-skin .vjs-progress-holder .vjs-play-progress,
343
+ .vjs-default-skin .vjs-progress-holder .vjs-load-progress,
344
+ .vjs-default-skin .vjs-progress-holder .vjs-load-progress div {
345
+ position: absolute;
346
+ display: block;
347
+ height: 100%;
348
+ margin: 0;
349
+ padding: 0;
350
+ /* updated by javascript during playback */
351
+
352
+ width: 0;
353
+ /* Needed for IE6 */
354
+ left: 0;
355
+ top: 0;
356
+ }
357
+ .vjs-default-skin .vjs-play-progress {
358
+ /*
359
+ Using a data URI to create the white diagonal lines with a transparent
360
+ background. Surprisingly works in IE8.
361
+ Created using http://www.patternify.com
362
+ Changing the first color value will change the bar color.
363
+ Also using a paralax effect to make the lines move backwards.
364
+ The -50% left position makes that happen.
365
+ */
366
+
367
+ background: #66a8cc url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR/QJ/Ub//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC) -50% 0 repeat;
368
+ }
369
+ .vjs-default-skin .vjs-load-progress {
370
+ background: #646464 /* IE8- Fallback */;
371
+ background: rgba(255, 255, 255, 0.2);
372
+ }
373
+ /* there are child elements of the load progress bar that represent the
374
+ specific time ranges that have been buffered */
375
+ .vjs-default-skin .vjs-load-progress div {
376
+ background: #787878 /* IE8- Fallback */;
377
+ background: rgba(255, 255, 255, 0.1);
378
+ }
379
+ .vjs-default-skin .vjs-seek-handle {
380
+ width: 1.5em;
381
+ height: 100%;
382
+ }
383
+ .vjs-default-skin .vjs-seek-handle:before {
384
+ padding-top: 0.1em /* Minor adjustment */;
385
+ }
386
+ /* Live Mode
387
+ --------------------------------------------------------------------------------
388
+ */
389
+ .vjs-default-skin.vjs-live .vjs-time-controls,
390
+ .vjs-default-skin.vjs-live .vjs-time-divider,
391
+ .vjs-default-skin.vjs-live .vjs-progress-control {
392
+ display: none;
393
+ }
394
+ .vjs-default-skin.vjs-live .vjs-live-display {
395
+ display: block;
396
+ }
397
+ /* Live Display
398
+ --------------------------------------------------------------------------------
399
+ */
400
+ .vjs-default-skin .vjs-live-display {
401
+ display: none;
402
+ font-size: 1em;
403
+ line-height: 3em;
404
+ }
405
+ /* Time Display
406
+ --------------------------------------------------------------------------------
407
+ */
408
+ .vjs-default-skin .vjs-time-controls {
409
+ font-size: 1em;
410
+ /* Align vertically by making the line height the same as the control bar */
411
+ line-height: 3em;
412
+ }
413
+ .vjs-default-skin .vjs-current-time {
414
+ float: left;
415
+ }
416
+ .vjs-default-skin .vjs-duration {
417
+ float: left;
418
+ }
419
+ /* Remaining time is in the HTML, but not included in default design */
420
+ .vjs-default-skin .vjs-remaining-time {
421
+ display: none;
422
+ float: left;
423
+ }
424
+ .vjs-time-divider {
425
+ float: left;
426
+ line-height: 3em;
427
+ }
428
+ /* Fullscreen
429
+ --------------------------------------------------------------------------------
430
+ */
431
+ .vjs-default-skin .vjs-fullscreen-control {
432
+ width: 3.8em;
433
+ cursor: pointer;
434
+ float: right;
435
+ }
436
+ .vjs-default-skin .vjs-fullscreen-control:before {
437
+ content: "\e000";
438
+ }
439
+ /* Switch to the exit icon when the player is in fullscreen */
440
+ .vjs-default-skin.vjs-fullscreen .vjs-fullscreen-control:before {
441
+ content: "\e00b";
442
+ }
443
+ /* Big Play Button (play button at start)
444
+ --------------------------------------------------------------------------------
445
+ Positioning of the play button in the center or other corners can be done more
446
+ easily in the skin designer. http://designer.videojs.com/
447
+ */
448
+ .vjs-default-skin .vjs-big-play-button {
449
+ left: 0.5em;
450
+ top: 0.5em;
451
+ font-size: 3em;
452
+ display: block;
453
+ z-index: 2;
454
+ position: absolute;
455
+ width: 4em;
456
+ height: 2.6em;
457
+ text-align: center;
458
+ vertical-align: middle;
459
+ cursor: pointer;
460
+ opacity: 1;
461
+ /* Need a slightly gray bg so it can be seen on black backgrounds */
462
+ /* background-color-with-alpha */
463
+ background-color: #07141e;
464
+ background-color: rgba(7, 20, 30, 0.7);
465
+ border: 0.1em solid #3b4249;
466
+ /* border-radius */
467
+ -webkit-border-radius: 0.8em;
468
+ -moz-border-radius: 0.8em;
469
+ border-radius: 0.8em;
470
+ /* box-shadow */
471
+ -webkit-box-shadow: 0px 0px 1em rgba(255, 255, 255, 0.25);
472
+ -moz-box-shadow: 0px 0px 1em rgba(255, 255, 255, 0.25);
473
+ box-shadow: 0px 0px 1em rgba(255, 255, 255, 0.25);
474
+ /* transition */
475
+ -webkit-transition: all 0.4s;
476
+ -moz-transition: all 0.4s;
477
+ -o-transition: all 0.4s;
478
+ transition: all 0.4s;
479
+ }
480
+ /* Optionally center */
481
+ .vjs-default-skin.vjs-big-play-centered .vjs-big-play-button {
482
+ /* Center it horizontally */
483
+ left: 50%;
484
+ margin-left: -2.1em;
485
+ /* Center it vertically */
486
+ top: 50%;
487
+ margin-top: -1.4000000000000001em;
488
+ }
489
+ /* Hide if controls are disabled */
490
+ .vjs-default-skin.vjs-controls-disabled .vjs-big-play-button {
491
+ display: none;
492
+ }
493
+ /* Hide when video starts playing */
494
+ .vjs-default-skin.vjs-has-started .vjs-big-play-button {
495
+ display: none;
496
+ }
497
+ /* Hide on mobile devices. Remove when we stop using native controls
498
+ by default on mobile */
499
+ .vjs-default-skin.vjs-using-native-controls .vjs-big-play-button {
500
+ display: none;
501
+ }
502
+ .vjs-default-skin:hover .vjs-big-play-button,
503
+ .vjs-default-skin .vjs-big-play-button:focus {
504
+ outline: 0;
505
+ border-color: #fff;
506
+ /* IE8 needs a non-glow hover state */
507
+ background-color: #505050;
508
+ background-color: rgba(50, 50, 50, 0.75);
509
+ /* box-shadow */
510
+ -webkit-box-shadow: 0 0 3em #ffffff;
511
+ -moz-box-shadow: 0 0 3em #ffffff;
512
+ box-shadow: 0 0 3em #ffffff;
513
+ /* transition */
514
+ -webkit-transition: all 0s;
515
+ -moz-transition: all 0s;
516
+ -o-transition: all 0s;
517
+ transition: all 0s;
518
+ }
519
+ .vjs-default-skin .vjs-big-play-button:before {
520
+ content: "\e001";
521
+ font-family: VideoJS;
522
+ /* In order to center the play icon vertically we need to set the line height
523
+ to the same as the button height */
524
+
525
+ line-height: 2.6em;
526
+ text-shadow: 0.05em 0.05em 0.1em #000;
527
+ text-align: center /* Needed for IE8 */;
528
+ position: absolute;
529
+ left: 0;
530
+ width: 100%;
531
+ height: 100%;
532
+ }
533
+ .vjs-error .vjs-big-play-button {
534
+ display: none;
535
+ }
536
+ /* Error Display
537
+ --------------------------------------------------------------------------------
538
+ */
539
+ .vjs-error-display {
540
+ display: none;
541
+ }
542
+ .vjs-error .vjs-error-display {
543
+ display: block;
544
+ position: absolute;
545
+ left: 0;
546
+ top: 0;
547
+ width: 100%;
548
+ height: 100%;
549
+ }
550
+ .vjs-error .vjs-error-display:before {
551
+ content: 'X';
552
+ font-family: Arial;
553
+ font-size: 4em;
554
+ color: #666666;
555
+ /* In order to center the play icon vertically we need to set the line height
556
+ to the same as the button height */
557
+
558
+ line-height: 1;
559
+ text-shadow: 0.05em 0.05em 0.1em #000;
560
+ text-align: center /* Needed for IE8 */;
561
+ vertical-align: middle;
562
+ position: absolute;
563
+ left: 0;
564
+ top: 50%;
565
+ margin-top: -0.5em;
566
+ width: 100%;
567
+ }
568
+ .vjs-error-display div {
569
+ position: absolute;
570
+ bottom: 1em;
571
+ right: 0;
572
+ left: 0;
573
+ font-size: 1.4em;
574
+ text-align: center;
575
+ padding: 3px;
576
+ background: #000000;
577
+ background: rgba(0, 0, 0, 0.5);
578
+ }
579
+ .vjs-error-display a,
580
+ .vjs-error-display a:visited {
581
+ color: #F4A460;
582
+ }
583
+ /* Loading Spinner
584
+ --------------------------------------------------------------------------------
585
+ */
586
+ .vjs-loading-spinner {
587
+ /* Should be hidden by default */
588
+ display: none;
589
+ position: absolute;
590
+ top: 50%;
591
+ left: 50%;
592
+ font-size: 4em;
593
+ line-height: 1;
594
+ width: 1em;
595
+ height: 1em;
596
+ margin-left: -0.5em;
597
+ margin-top: -0.5em;
598
+ opacity: 0.75;
599
+ }
600
+ /* Show the spinner when waiting for data and seeking to a new time */
601
+ .vjs-waiting .vjs-loading-spinner,
602
+ .vjs-seeking .vjs-loading-spinner {
603
+ display: block;
604
+ /* only animate when showing because it can be processor heavy */
605
+ /* animation */
606
+ -webkit-animation: spin 1.5s infinite linear;
607
+ -moz-animation: spin 1.5s infinite linear;
608
+ -o-animation: spin 1.5s infinite linear;
609
+ animation: spin 1.5s infinite linear;
610
+ }
611
+ /* Errors are unrecoverable without user interaction so hide the spinner */
612
+ .vjs-error .vjs-loading-spinner {
613
+ display: none;
614
+ /* ensure animation doesn't continue while hidden */
615
+ /* animation */
616
+ -webkit-animation: none;
617
+ -moz-animation: none;
618
+ -o-animation: none;
619
+ animation: none;
620
+ }
621
+ .vjs-default-skin .vjs-loading-spinner:before {
622
+ content: "\e01e";
623
+ font-family: VideoJS;
624
+ position: absolute;
625
+ top: 0;
626
+ left: 0;
627
+ width: 1em;
628
+ height: 1em;
629
+ text-align: center;
630
+ text-shadow: 0em 0em 0.1em #000;
631
+ }
632
+ @-moz-keyframes spin {
633
+ 0% {
634
+ -moz-transform: rotate(0deg);
635
+ }
636
+ 100% {
637
+ -moz-transform: rotate(359deg);
638
+ }
639
+ }
640
+ @-webkit-keyframes spin {
641
+ 0% {
642
+ -webkit-transform: rotate(0deg);
643
+ }
644
+ 100% {
645
+ -webkit-transform: rotate(359deg);
646
+ }
647
+ }
648
+ @-o-keyframes spin {
649
+ 0% {
650
+ -o-transform: rotate(0deg);
651
+ }
652
+ 100% {
653
+ -o-transform: rotate(359deg);
654
+ }
655
+ }
656
+ @keyframes spin {
657
+ 0% {
658
+ transform: rotate(0deg);
659
+ }
660
+ 100% {
661
+ transform: rotate(359deg);
662
+ }
663
+ }
664
+ /* Menu Buttons (Captions/Subtitles/etc.)
665
+ --------------------------------------------------------------------------------
666
+ */
667
+ .vjs-default-skin .vjs-menu-button {
668
+ float: right;
669
+ cursor: pointer;
670
+ }
671
+ .vjs-default-skin .vjs-menu {
672
+ display: none;
673
+ position: absolute;
674
+ bottom: 0;
675
+ left: 0em;
676
+ /* (Width of vjs-menu - width of button) / 2 */
677
+
678
+ width: 0em;
679
+ height: 0em;
680
+ margin-bottom: 3em;
681
+ border-left: 2em solid transparent;
682
+ border-right: 2em solid transparent;
683
+ border-top: 1.55em solid #000000;
684
+ /* Same width top as ul bottom */
685
+
686
+ border-top-color: rgba(7, 40, 50, 0.5);
687
+ /* Same as ul background */
688
+
689
+ }
690
+ /* Button Pop-up Menu */
691
+ .vjs-default-skin .vjs-menu-button .vjs-menu .vjs-menu-content {
692
+ display: block;
693
+ padding: 0;
694
+ margin: 0;
695
+ position: absolute;
696
+ width: 10em;
697
+ bottom: 1.5em;
698
+ /* Same bottom as vjs-menu border-top */
699
+
700
+ max-height: 15em;
701
+ overflow: auto;
702
+ left: -5em;
703
+ /* Width of menu - width of button / 2 */
704
+
705
+ /* background-color-with-alpha */
706
+ background-color: #07141e;
707
+ background-color: rgba(7, 20, 30, 0.7);
708
+ /* box-shadow */
709
+ -webkit-box-shadow: -0.2em -0.2em 0.3em rgba(255, 255, 255, 0.2);
710
+ -moz-box-shadow: -0.2em -0.2em 0.3em rgba(255, 255, 255, 0.2);
711
+ box-shadow: -0.2em -0.2em 0.3em rgba(255, 255, 255, 0.2);
712
+ }
713
+ .vjs-default-skin .vjs-menu-button:hover .vjs-control-content .vjs-menu,
714
+ .vjs-default-skin .vjs-control-content .vjs-menu.vjs-lock-showing {
715
+ display: block;
716
+ }
717
+ .vjs-default-skin .vjs-menu-button ul li {
718
+ list-style: none;
719
+ margin: 0;
720
+ padding: 0.3em 0 0.3em 0;
721
+ line-height: 1.4em;
722
+ font-size: 1.2em;
723
+ text-align: center;
724
+ text-transform: lowercase;
725
+ }
726
+ .vjs-default-skin .vjs-menu-button ul li.vjs-selected {
727
+ background-color: #000;
728
+ }
729
+ .vjs-default-skin .vjs-menu-button ul li:focus,
730
+ .vjs-default-skin .vjs-menu-button ul li:hover,
731
+ .vjs-default-skin .vjs-menu-button ul li.vjs-selected:focus,
732
+ .vjs-default-skin .vjs-menu-button ul li.vjs-selected:hover {
733
+ outline: 0;
734
+ color: #111;
735
+ /* background-color-with-alpha */
736
+ background-color: #ffffff;
737
+ background-color: rgba(255, 255, 255, 0.75);
738
+ /* box-shadow */
739
+ -webkit-box-shadow: 0 0 1em #ffffff;
740
+ -moz-box-shadow: 0 0 1em #ffffff;
741
+ box-shadow: 0 0 1em #ffffff;
742
+ }
743
+ .vjs-default-skin .vjs-menu-button ul li.vjs-menu-title {
744
+ text-align: center;
745
+ text-transform: uppercase;
746
+ font-size: 1em;
747
+ line-height: 2em;
748
+ padding: 0;
749
+ margin: 0 0 0.3em 0;
750
+ font-weight: bold;
751
+ cursor: default;
752
+ }
753
+ /* Subtitles Button */
754
+ .vjs-default-skin .vjs-subtitles-button:before {
755
+ content: "\e00c";
756
+ }
757
+ /* Captions Button */
758
+ .vjs-default-skin .vjs-captions-button:before {
759
+ content: "\e008";
760
+ }
761
+ /* Chapters Button */
762
+ .vjs-default-skin .vjs-chapters-button:before {
763
+ content: "\e00c";
764
+ }
765
+ .vjs-default-skin .vjs-chapters-button.vjs-menu-button .vjs-menu .vjs-menu-content {
766
+ width: 24em;
767
+ left: -12em;
768
+ }
769
+ /* Replacement for focus outline */
770
+ .vjs-default-skin .vjs-captions-button:focus .vjs-control-content:before,
771
+ .vjs-default-skin .vjs-captions-button:hover .vjs-control-content:before {
772
+ /* box-shadow */
773
+ -webkit-box-shadow: 0 0 1em #ffffff;
774
+ -moz-box-shadow: 0 0 1em #ffffff;
775
+ box-shadow: 0 0 1em #ffffff;
776
+ }
777
+ /*
778
+ REQUIRED STYLES (be careful overriding)
779
+ ================================================================================
780
+ When loading the player, the video tag is replaced with a DIV,
781
+ that will hold the video tag or object tag for other playback methods.
782
+ The div contains the video playback element (Flash or HTML5) and controls,
783
+ and sets the width and height of the video.
784
+
785
+ ** If you want to add some kind of border/padding (e.g. a frame), or special
786
+ positioning, use another containing element. Otherwise you risk messing up
787
+ control positioning and full window mode. **
788
+ */
789
+ .video-js {
790
+ background-color: #000;
791
+ position: relative;
792
+ padding: 0;
793
+ /* Start with 10px for base font size so other dimensions can be em based and
794
+ easily calculable. */
795
+
796
+ font-size: 10px;
797
+ /* Allow poster to be vertially aligned. */
798
+
799
+ vertical-align: middle;
800
+ /* display: table-cell; */
801
+ /*This works in Safari but not Firefox.*/
802
+
803
+ /* Provide some basic defaults for fonts */
804
+
805
+ font-weight: normal;
806
+ font-style: normal;
807
+ /* Avoiding helvetica: issue #376 */
808
+
809
+ font-family: Arial, sans-serif;
810
+ /* Turn off user selection (text highlighting) by default.
811
+ The majority of player components will not be text blocks.
812
+ Text areas will need to turn user selection back on. */
813
+
814
+ /* user-select */
815
+ -webkit-user-select: none;
816
+ -moz-user-select: none;
817
+ -ms-user-select: none;
818
+ user-select: none;
819
+ }
820
+ /* Playback technology elements expand to the width/height of the containing div
821
+ <video> or <object> */
822
+ .video-js .vjs-tech {
823
+ position: absolute;
824
+ top: 0;
825
+ left: 0;
826
+ width: 100%;
827
+ height: 100%;
828
+ }
829
+ /* Fix for Firefox 9 fullscreen (only if it is enabled). Not needed when
830
+ checking fullScreenEnabled. */
831
+ .video-js:-moz-full-screen {
832
+ position: absolute;
833
+ }
834
+ /* Fullscreen Styles */
835
+ body.vjs-full-window {
836
+ padding: 0;
837
+ margin: 0;
838
+ height: 100%;
839
+ /* Fix for IE6 full-window. http://www.cssplay.co.uk/layouts/fixed.html */
840
+ overflow-y: auto;
841
+ }
842
+ .video-js.vjs-fullscreen {
843
+ position: fixed;
844
+ overflow: hidden;
845
+ z-index: 1000;
846
+ left: 0;
847
+ top: 0;
848
+ bottom: 0;
849
+ right: 0;
850
+ width: 100% !important;
851
+ height: 100% !important;
852
+ /* IE6 full-window (underscore hack) */
853
+ _position: absolute;
854
+ }
855
+ .video-js:-webkit-full-screen {
856
+ width: 100% !important;
857
+ height: 100% !important;
858
+ }
859
+ .video-js.vjs-fullscreen.vjs-user-inactive {
860
+ cursor: none;
861
+ }
862
+ /* Poster Styles */
863
+ .vjs-poster {
864
+ background-repeat: no-repeat;
865
+ background-position: 50% 50%;
866
+ background-size: contain;
867
+ cursor: pointer;
868
+ margin: 0;
869
+ padding: 0;
870
+ position: absolute;
871
+ top: 0;
872
+ right: 0;
873
+ bottom: 0;
874
+ left: 0;
875
+ }
876
+ .vjs-poster img {
877
+ display: block;
878
+ margin: 0 auto;
879
+ max-height: 100%;
880
+ padding: 0;
881
+ width: 100%;
882
+ }
883
+ /* Hide the poster when native controls are used otherwise it covers them */
884
+ .video-js.vjs-using-native-controls .vjs-poster {
885
+ display: none;
886
+ }
887
+ /* Text Track Styles */
888
+ /* Overall track holder for both captions and subtitles */
889
+ .video-js .vjs-text-track-display {
890
+ text-align: center;
891
+ position: absolute;
892
+ bottom: 4em;
893
+ /* Leave padding on left and right */
894
+ left: 1em;
895
+ right: 1em;
896
+ }
897
+ /* Move captions down when controls aren't being shown */
898
+ .video-js.vjs-user-inactive.vjs-playing .vjs-text-track-display {
899
+ bottom: 1em;
900
+ }
901
+ /* Individual tracks */
902
+ .video-js .vjs-text-track {
903
+ display: none;
904
+ font-size: 1.4em;
905
+ text-align: center;
906
+ margin-bottom: 0.1em;
907
+ /* Transparent black background, or fallback to all black (oldIE) */
908
+ /* background-color-with-alpha */
909
+ background-color: #000000;
910
+ background-color: rgba(0, 0, 0, 0.5);
911
+ }
912
+ .video-js .vjs-subtitles {
913
+ color: #ffffff /* Subtitles are white */;
914
+ }
915
+ .video-js .vjs-captions {
916
+ color: #ffcc66 /* Captions are yellow */;
917
+ }
918
+ .vjs-tt-cue {
919
+ display: block;
920
+ }
921
+ /* Increase font-size when fullscreen */
922
+ .video-js.vjs-fullscreen .vjs-text-track {
923
+ font-size: 3em;
924
+ }
925
+ /* Hide disabled or unsupported controls */
926
+ .vjs-default-skin .vjs-hidden {
927
+ display: none;
928
+ }
929
+ .vjs-lock-showing {
930
+ display: block !important;
931
+ opacity: 1;
932
+ visibility: visible;
933
+ }
934
+ /* In IE8 w/ no JavaScript (no HTML5 shim), the video tag doesn't register.
935
+ The .video-js classname on the video tag also isn't considered.
936
+ This optional paragraph inside the video tag can provide a message to users
937
+ about what's required to play video. */
938
+ .vjs-no-js {
939
+ padding: 20px;
940
+ color: #ccc;
941
+ background-color: #333;
942
+ font-size: 18px;
943
+ font-family: Arial, sans-serif;
944
+ text-align: center;
945
+ width: 300px;
946
+ height: 150px;
947
+ margin: 0px auto;
948
+ }
949
+ .vjs-no-js a,
950
+ .vjs-no-js a:visited {
951
+ color: #F4A460;
952
+ }
953
+ /* -----------------------------------------------------------------------------
954
+ The original source of this file lives at
955
+ https://github.com/videojs/video.js/blob/master/src/css/video-js.less */