videojs_rails 0.0.1 → 4.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,726 @@
1
+ /*!
2
+ Video.js Default Styles (http://videojs.com)
3
+ Version 4.1.0
4
+ */
5
+
6
+ /*
7
+ REQUIRED STYLES (be careful overriding)
8
+ ================================================================================ */
9
+ /* When loading the player, the video tag is replaced with a DIV,
10
+ that will hold the video tag or object tag for other playback methods.
11
+ The div contains the video playback element (Flash or HTML5) and controls, and sets the width and height of the video.
12
+
13
+ ** If you want to add some kind of border/padding (e.g. a frame), or special positioning, use another containing element.
14
+ Otherwise you risk messing up control positioning and full window mode. **
15
+ */
16
+ .video-js {
17
+ background-color: #000;
18
+ position: relative;
19
+ padding: 0;
20
+ /* Start with 10px for base font size so other dimensions can be em based and easily calculable. */
21
+ font-size: 10px;
22
+ /* Allow poster to be vertially aligned. */
23
+ vertical-align: middle;
24
+ /* display: table-cell; */ /*This works in Safari but not Firefox.*/
25
+
26
+ /* Turn off user selection (text highlighting) by default.
27
+ The majority of player components will not be text blocks.
28
+ Text areas will need to turn user selection back on. */
29
+ -webkit-user-select: none; /* Chrome all / Safari all */
30
+ -moz-user-select: none; /* Firefox all */
31
+ -ms-user-select: none; /* IE 10+ */
32
+ -o-user-select: none;
33
+ user-select: none;
34
+ }
35
+
36
+ /* Playback technology elements expand to the width/height of the containing div.
37
+ <video> or <object> */
38
+ .video-js .vjs-tech {
39
+ position: absolute;
40
+ top: 0;
41
+ left: 0;
42
+ width: 100%;
43
+ height: 100%;
44
+ }
45
+
46
+ /* Fix for Firefox 9 fullscreen (only if it is enabled). Not needed when checking fullScreenEnabled. */
47
+ .video-js:-moz-full-screen { position: absolute; }
48
+
49
+ /* Fullscreen Styles */
50
+ body.vjs-full-window {
51
+ padding: 0;
52
+ margin: 0;
53
+ height: 100%;
54
+ overflow-y: auto; /* Fix for IE6 full-window. http://www.cssplay.co.uk/layouts/fixed.html */
55
+ }
56
+ .video-js.vjs-fullscreen {
57
+ position: fixed;
58
+ overflow: hidden;
59
+ z-index: 1000;
60
+ left: 0;
61
+ top: 0;
62
+ bottom: 0;
63
+ right: 0;
64
+ width: 100% !important;
65
+ height: 100% !important;
66
+ _position: absolute; /* IE6 Full-window (underscore hack) */
67
+ }
68
+ .video-js:-webkit-full-screen {
69
+ width: 100% !important; height: 100% !important;
70
+ }
71
+
72
+ /* Poster Styles */
73
+ .vjs-poster {
74
+ background-repeat: no-repeat;
75
+ background-position: 50% 50%;
76
+ background-size: contain;
77
+ cursor: pointer;
78
+ height: 100%;
79
+ margin: 0;
80
+ padding: 0;
81
+ position: relative;
82
+ width: 100%;
83
+ }
84
+ .vjs-poster img {
85
+ display: block;
86
+ margin: 0 auto;
87
+ max-height: 100%;
88
+ padding: 0;
89
+ width: 100%;
90
+ }
91
+
92
+ /* Text Track Styles */
93
+ /* Overall track holder for both captions and subtitles */
94
+ .video-js .vjs-text-track-display {
95
+ text-align: center;
96
+ position: absolute;
97
+ bottom: 4em;
98
+ left: 1em; /* Leave padding on left and right */
99
+ right: 1em;
100
+ font-family: Arial, sans-serif;
101
+ }
102
+ /* Individual tracks */
103
+ .video-js .vjs-text-track {
104
+ display: none;
105
+ font-size: 1.4em;
106
+ text-align: center;
107
+ margin-bottom: 0.1em;
108
+ /* Transparent black background, or fallback to all black (oldIE) */
109
+ background: rgb(0, 0, 0); background: rgba(0, 0, 0, 0.50);
110
+ }
111
+ .video-js .vjs-subtitles { color: #fff; } /* Subtitles are white */
112
+ .video-js .vjs-captions { color: #fc6; } /* Captions are yellow */
113
+ .vjs-tt-cue { display: block; }
114
+
115
+ /* Fading sytles, used to fade control bar. */
116
+ .vjs-fade-in {
117
+ display: block !important;
118
+ visibility: visible; /* Needed to make sure things hide in older browsers too. */
119
+ opacity: 1;
120
+
121
+ -webkit-transition: visibility 0.1s, opacity 0.1s;
122
+ -moz-transition: visibility 0.1s, opacity 0.1s;
123
+ -ms-transition: visibility 0.1s, opacity 0.1s;
124
+ -o-transition: visibility 0.1s, opacity 0.1s;
125
+ transition: visibility 0.1s, opacity 0.1s;
126
+ }
127
+ .vjs-fade-out {
128
+ display: block !important;
129
+ visibility: hidden;
130
+ opacity: 0;
131
+
132
+ -webkit-transition: visibility 1.5s, opacity 1.5s;
133
+ -moz-transition: visibility 1.5s, opacity 1.5s;
134
+ -ms-transition: visibility 1.5s, opacity 1.5s;
135
+ -o-transition: visibility 1.5s, opacity 1.5s;
136
+ transition: visibility 1.5s, opacity 1.5s;
137
+
138
+ /* Wait a moment before fading out the control bar */
139
+ -webkit-transition-delay: 2s;
140
+ -moz-transition-delay: 2s;
141
+ -ms-transition-delay: 2s;
142
+ -o-transition-delay: 2s;
143
+ transition-delay: 2s;
144
+ }
145
+ /* Hide disabled or unsupported controls */
146
+ .vjs-default-skin .vjs-hidden { display: none; }
147
+
148
+ .vjs-lock-showing {
149
+ display: block !important;
150
+ opacity: 1;
151
+ visibility: visible;
152
+ }
153
+
154
+ /* DEFAULT SKIN (override in another file to create new skins)
155
+ ================================================================================
156
+ Instead of editing this file, I recommend creating your own skin CSS file to be included after this file,
157
+ so you can upgrade to newer versions easier. You can remove all these styles by removing the 'vjs-default-skin' class from the tag. */
158
+
159
+ /* Base UI Component Classes
160
+ -------------------------------------------------------------------------------- */
161
+ @font-face{
162
+ font-family: 'VideoJS';
163
+ src: url('<%= asset_path('vjs.eot') %>');
164
+ src: url('<%= asset_path('vjs.eot?#iefix') %>') format('embedded-opentype'),
165
+ url('<%= asset_path('vjs.woff') %>') format('woff'),
166
+ url('<%= asset_path('vjs.ttf') %>') format('truetype');
167
+ font-weight: normal;
168
+ font-style: normal;
169
+ }
170
+
171
+ .vjs-default-skin {
172
+ color: #ccc;
173
+ }
174
+
175
+ /* Slider - used for Volume bar and Seek bar */
176
+ .vjs-default-skin .vjs-slider {
177
+ outline: 0; /* Replace browser focus hightlight with handle highlight */
178
+ position: relative;
179
+ cursor: pointer;
180
+ padding: 0;
181
+
182
+ background: rgb(50, 50, 50); /* IE8- Fallback */
183
+ background: rgba(100, 100, 100, 0.5);
184
+ }
185
+
186
+ .vjs-default-skin .vjs-slider:focus {
187
+ background: rgb(70, 70, 70); /* IE8- Fallback */
188
+ background: rgba(100, 100, 100, 0.70);
189
+
190
+ -webkit-box-shadow: 0 0 2em rgba(255, 255, 255, 1);
191
+ -moz-box-shadow: 0 0 2em rgba(255, 255, 255, 1);
192
+ box-shadow: 0 0 2em rgba(255, 255, 255, 1);
193
+ }
194
+
195
+ .vjs-default-skin .vjs-slider-handle {
196
+ position: absolute;
197
+ /* Needed for IE6 */
198
+ left: 0;
199
+ top: 0;
200
+ }
201
+
202
+ .vjs-default-skin .vjs-slider-handle:before {
203
+ /*content: "\f111";*/ /* Circle icon = f111 */
204
+ content: "\e009"; /* Square icon */
205
+ font-family: VideoJS;
206
+ font-size: 1em;
207
+ line-height: 1;
208
+ text-align: center;
209
+ text-shadow: 0em 0em 1em #fff;
210
+
211
+ position: absolute;
212
+ top: 0;
213
+ left: 0;
214
+
215
+ /* Rotate the square icon to make a diamond */
216
+ -webkit-transform: rotate(-45deg);
217
+ -moz-transform: rotate(-45deg);
218
+ -ms-transform: rotate(-45deg);
219
+ -o-transform: rotate(-45deg);
220
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
221
+ }
222
+
223
+ /* Control Bar
224
+ -------------------------------------------------------------------------------- */
225
+ /* The default control bar. Created by controls.js */
226
+ .vjs-default-skin .vjs-control-bar {
227
+ display: none; /* Start hidden */
228
+ position: absolute;
229
+ /* Distance from the bottom of the box/video. Keep 0. Use height to add more bottom margin. */
230
+ bottom: 0;
231
+ /* 100% width of player div */
232
+ left: 0;
233
+ right: 0;
234
+ /* Controls are absolutely position, so no padding necessary */
235
+ padding: 0;
236
+ margin: 0;
237
+ /* Height includes any margin you want above or below control items */
238
+ height: 3.0em;
239
+ background-color: rgb(0, 0, 0);
240
+ /* Slight blue so it can be seen more easily on black. */
241
+ background-color: rgba(7, 40, 50, 0.7);
242
+ /* Default font settings */
243
+ font-style: normal;
244
+ font-weight: normal;
245
+ font-family: Arial, sans-serif;
246
+ }
247
+
248
+ /* General styles for individual controls. */
249
+ .vjs-default-skin .vjs-control {
250
+ outline: none;
251
+ position: relative;
252
+ float: left;
253
+ text-align: center;
254
+ margin: 0;
255
+ padding: 0;
256
+ height: 3.0em;
257
+ width: 4em;
258
+ }
259
+
260
+ /* FontAwsome button icons */
261
+ .vjs-default-skin .vjs-control:before {
262
+ font-family: VideoJS;
263
+ font-size: 1.5em;
264
+ line-height: 2;
265
+ position: absolute;
266
+ top: 0;
267
+ left: 0;
268
+ width: 100%;
269
+ height: 100%;
270
+ text-align: center;
271
+ text-shadow: 1px 1px 1px rgba(0,0,0,0.5);
272
+ }
273
+
274
+ /* Replacement for focus outline */
275
+ .vjs-default-skin .vjs-control:focus:before,
276
+ .vjs-default-skin .vjs-control:hover:before {
277
+ text-shadow: 0em 0em 1em rgba(255, 255, 255, 1);
278
+ }
279
+
280
+ .vjs-default-skin .vjs-control:focus { /* outline: 0; */ /* keyboard-only users cannot see the focus on several of the UI elements when this is set to 0 */ }
281
+
282
+ /* Hide control text visually, but have it available for screenreaders: h5bp.com/v */
283
+ .vjs-default-skin .vjs-control-text { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
284
+
285
+ /* Play/Pause
286
+ -------------------------------------------------------------------------------- */
287
+ .vjs-default-skin .vjs-play-control {
288
+ width: 5em;
289
+ cursor: pointer;
290
+ }
291
+ .vjs-default-skin .vjs-play-control:before {
292
+ content: "\e001"; /* Play Icon */
293
+ }
294
+ .vjs-default-skin.vjs-playing .vjs-play-control:before {
295
+ content: "\e002"; /* Pause Icon */
296
+ }
297
+
298
+ /* Rewind
299
+ -------------------------------------------------------------------------------- */
300
+ /*.vjs-default-skin .vjs-rewind-control { width: 5em; cursor: pointer !important; }
301
+ .vjs-default-skin .vjs-rewind-control div { width: 19px; height: 16px; background: url('video-js.png'); margin: 0.5em auto 0; }
302
+ */
303
+
304
+ /* Volume/Mute
305
+ -------------------------------------------------------------------------------- */
306
+ .vjs-default-skin .vjs-mute-control,
307
+ .vjs-default-skin .vjs-volume-menu-button {
308
+ cursor: pointer;
309
+ float: right;
310
+ }
311
+ .vjs-default-skin .vjs-mute-control:before,
312
+ .vjs-default-skin .vjs-volume-menu-button:before {
313
+ content: "\e006"; /* Full volume */
314
+ }
315
+ .vjs-default-skin .vjs-mute-control.vjs-vol-0:before,
316
+ .vjs-default-skin .vjs-volume-menu-button.vjs-vol-0:before {
317
+ content: "\e003"; /* No volume */
318
+ }
319
+ .vjs-default-skin .vjs-mute-control.vjs-vol-1:before,
320
+ .vjs-default-skin .vjs-volume-menu-button.vjs-vol-1:before {
321
+ content: "\e004"; /* Half volume */
322
+ }
323
+ .vjs-default-skin .vjs-mute-control.vjs-vol-2:before,
324
+ .vjs-default-skin .vjs-volume-menu-button.vjs-vol-2:before {
325
+ content: "\e005"; /* Full volume */
326
+ }
327
+
328
+ .vjs-default-skin .vjs-volume-control {
329
+ width: 5em;
330
+ float: right;
331
+ }
332
+ .vjs-default-skin .vjs-volume-bar {
333
+ width: 5em;
334
+ height: 0.6em;
335
+ margin: 1.1em auto 0;
336
+ }
337
+
338
+ .vjs-default-skin .vjs-volume-menu-button .vjs-menu-content {
339
+ height: 2.9em;
340
+ }
341
+
342
+ .vjs-default-skin .vjs-volume-level {
343
+ position: absolute;
344
+ top: 0;
345
+ left: 0;
346
+ height: 0.5em;
347
+
348
+ background: #66A8CC
349
+ url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR/QJ/Ub//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC)
350
+ -50% 0 repeat;
351
+ }
352
+ .vjs-default-skin .vjs-volume-bar .vjs-volume-handle {
353
+ width: 0.5em;
354
+ height: 0.5em;
355
+ }
356
+
357
+ .vjs-default-skin .vjs-volume-handle:before {
358
+ font-size: 0.9em;
359
+ top: -0.2em;
360
+ left: -0.2em;
361
+
362
+ width: 1em;
363
+ height: 1em;
364
+ }
365
+
366
+ .vjs-default-skin .vjs-volume-menu-button .vjs-menu .vjs-menu-content {
367
+ width: 6em;
368
+ left: -4em;
369
+ }
370
+
371
+ /*.vjs-default-skin .vjs-menu-button .vjs-volume-control {
372
+ height: 1.5em;
373
+ }*/
374
+
375
+ /* Progress
376
+ -------------------------------------------------------------------------------- */
377
+ .vjs-default-skin .vjs-progress-control {
378
+ position: absolute;
379
+ left: 0;
380
+ right: 0;
381
+ width: auto;
382
+ font-size: 0.3em;
383
+ height: 1em;
384
+ /* Set above the rest of the controls. */
385
+ top: -1em;
386
+
387
+ /* Shrink the bar slower than it grows. */
388
+ -webkit-transition: top 0.4s, height 0.4s, font-size 0.4s, -webkit-transform 0.4s;
389
+ -moz-transition: top 0.4s, height 0.4s, font-size 0.4s, -moz-transform 0.4s;
390
+ -o-transition: top 0.4s, height 0.4s, font-size 0.4s, -o-transform 0.4s;
391
+ transition: top 0.4s, height 0.4s, font-size 0.4s, transform 0.4s;
392
+
393
+ }
394
+
395
+ /* On hover, make the progress bar grow to something that's more clickable.
396
+ This simply changes the overall font for the progress bar, and this
397
+ updates both the em-based widths and heights, as wells as the icon font */
398
+ .vjs-default-skin:hover .vjs-progress-control {
399
+ font-size: .9em;
400
+
401
+ /* Even though we're not changing the top/height, we need to include them in
402
+ the transition so they're handled correctly. */
403
+ -webkit-transition: top 0.2s, height 0.2s, font-size 0.2s, -webkit-transform 0.2s;
404
+ -moz-transition: top 0.2s, height 0.2s, font-size 0.2s, -moz-transform 0.2s;
405
+ -o-transition: top 0.2s, height 0.2s, font-size 0.2s, -o-transform 0.2s;
406
+ transition: top 0.2s, height 0.2s, font-size 0.2s, transform 0.2s;
407
+ }
408
+
409
+ /* Box containing play and load progresses. Also acts as seek scrubber. */
410
+ .vjs-default-skin .vjs-progress-holder {
411
+ /* Placement within the progress control item */
412
+ height: 100%;
413
+ }
414
+
415
+ /* Progress Bars */
416
+ .vjs-default-skin .vjs-progress-holder .vjs-play-progress,
417
+ .vjs-default-skin .vjs-progress-holder .vjs-load-progress {
418
+ position: absolute;
419
+ display: block;
420
+ height: 100%;
421
+ margin: 0;
422
+ padding: 0;
423
+ /* Needed for IE6 */
424
+ left: 0;
425
+ top: 0;
426
+ }
427
+
428
+ .vjs-default-skin .vjs-play-progress {
429
+ /*
430
+ Using a data URI to create the white diagonal lines with a transparent
431
+ background. Surprising works in IE8.
432
+ Created using http://www.patternify.com
433
+ Changing the first color value will change the bar color.
434
+ Also using a paralax effect to make the lines move backwards.
435
+ The -50% left position makes that happen.
436
+ */
437
+ background: #66A8CC
438
+ url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR/QJ/Ub//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC)
439
+ -50% 0 repeat;
440
+ }
441
+ .vjs-default-skin .vjs-load-progress {
442
+ background: rgb(100, 100, 100); /* IE8- Fallback */
443
+ background: rgba(255, 255, 255, 0.4);
444
+ }
445
+
446
+ .vjs-default-skin .vjs-seek-handle {
447
+ width: 1.5em;
448
+ height: 100%;
449
+ }
450
+
451
+ .vjs-default-skin .vjs-seek-handle:before {
452
+ padding-top: 0.1em; /* Minor adjustment */
453
+ }
454
+
455
+ /* Time Display
456
+ -------------------------------------------------------------------------------- */
457
+ .vjs-default-skin .vjs-time-controls {
458
+ font-size: 1em;
459
+ /* Align vertically by making the line height the same as the control bar */
460
+ line-height: 3em;
461
+ }
462
+ .vjs-default-skin .vjs-current-time { float: left; }
463
+ .vjs-default-skin .vjs-duration { float: left; }
464
+ /* Remaining time is in the HTML, but not included in default design */
465
+ .vjs-default-skin .vjs-remaining-time { display: none; float: left; }
466
+ .vjs-time-divider { float: left; line-height: 3em; }
467
+
468
+ /* Fullscreen
469
+ -------------------------------------------------------------------------------- */
470
+ .vjs-default-skin .vjs-fullscreen-control {
471
+ width: 3.8em;
472
+ cursor: pointer;
473
+ float: right;
474
+ }
475
+ .vjs-default-skin .vjs-fullscreen-control:before {
476
+ content: "\e000"; /* Enter full screen */
477
+ }
478
+ .vjs-default-skin.vjs-fullscreen .vjs-fullscreen-control:before {
479
+ content: "\e00b"; /* Exit full screen */
480
+ }
481
+
482
+ /* Big Play Button (at start)
483
+ ---------------------------------------------------------*/
484
+ .vjs-default-skin .vjs-big-play-button {
485
+ display: block;
486
+ z-index: 2;
487
+ position: absolute;
488
+ top: 2em;
489
+ left: 2em;
490
+ width: 12.0em;
491
+ height: 8.0em;
492
+ margin: 0;
493
+ text-align: center;
494
+ vertical-align: middle;
495
+ cursor: pointer;
496
+ opacity: 1;
497
+
498
+ /* Need a slightly gray bg so it can be seen on black backgrounds */
499
+ background-color: rgb(40, 40, 40);
500
+ background-color: rgba(7, 40, 50, 0.7);
501
+
502
+ border: 0.3em solid rgb(50, 50, 50);
503
+ border-color: rgba(255, 255, 255, 0.25);
504
+
505
+ -webkit-border-radius: 25px;
506
+ -moz-border-radius: 25px;
507
+ border-radius: 25px;
508
+
509
+ -webkit-box-shadow: 0px 0px 1em rgba(255, 255, 255, 0.25);
510
+ -moz-box-shadow: 0px 0px 1em rgba(255, 255, 255, 0.25);
511
+ box-shadow: 0px 0px 1em rgba(255, 255, 255, 0.25);
512
+
513
+ -webkit-transition: border 0.4s, -webkit-box-shadow 0.4s, -webkit-transform 0.4s;
514
+ -moz-transition: border 0.4s, -moz-box-shadow 0.4s, -moz-transform 0.4s;
515
+ -o-transition: border 0.4s, -o-box-shadow 0.4s, -o-transform 0.4s;
516
+ transition: border 0.4s, box-shadow 0.4s, transform 0.4s;
517
+ }
518
+
519
+ .vjs-default-skin:hover .vjs-big-play-button,
520
+ .vjs-default-skin .vjs-big-play-button:focus {
521
+ outline: 0;
522
+ border-color: rgb(255, 255, 255);
523
+ border-color: rgba(255, 255, 255, 1);
524
+ /* IE8 needs a non-glow hover state */
525
+ background-color: rgb(80, 80, 80);
526
+ background-color: rgba(50, 50, 50, 0.75);
527
+
528
+ -webkit-box-shadow: 0 0 3em #fff;
529
+ -moz-box-shadow: 0 0 3em #fff;
530
+ box-shadow: 0 0 3em #fff;
531
+
532
+ -webkit-transition: border 0s, -webkit-box-shadow 0s, -webkit-transform 0s;
533
+ -moz-transition: border 0s, -moz-box-shadow 0s, -moz-transform 0s;
534
+ -o-transition: border 0s, -o-box-shadow 0s, -o-transform 0s;
535
+ transition: border 0s, box-shadow 0s, transform 0s;
536
+ }
537
+
538
+ .vjs-default-skin .vjs-big-play-button:before {
539
+ content: "\e001"; /* Play icon */
540
+ font-family: VideoJS;
541
+ font-size: 3em;
542
+ line-height: 2.66;
543
+ text-shadow: 0.05em 0.05em 0.1em #000;
544
+ text-align: center; /* Needed for IE8 */
545
+
546
+ position: absolute;
547
+ left: 0;
548
+ width: 100%;
549
+ height: 100%;
550
+ }
551
+
552
+ /* Loading Spinner
553
+ ---------------------------------------------------------*/
554
+ .vjs-loading-spinner {
555
+ display: none;
556
+ position: absolute;
557
+ top: 50%;
558
+ left: 50%;
559
+
560
+ font-size: 5em;
561
+ line-height: 1;
562
+
563
+ width: 1em;
564
+ height: 1em;
565
+
566
+ margin-left: -0.5em;
567
+ margin-top: -0.5em;
568
+
569
+ opacity: 0.75;
570
+
571
+ -webkit-animation: spin 1.5s infinite linear;
572
+ -moz-animation: spin 1.5s infinite linear;
573
+ -o-animation: spin 1.5s infinite linear;
574
+ animation: spin 1.5s infinite linear;
575
+ }
576
+
577
+ .vjs-default-skin .vjs-loading-spinner:before {
578
+ content: "\e00a"; /* Loading spinner icon */
579
+ font-family: VideoJS;
580
+
581
+ position: absolute;
582
+ width: 1em;
583
+ height: 1em;
584
+ text-align: center;
585
+ text-shadow: 0em 0em 0.1em #000;
586
+ }
587
+
588
+ /* Add a gradient to the spinner by overlaying another copy.
589
+ Text gradient plus a text shadow doesn't work
590
+ and `background-clip: text` only works in Webkit. */
591
+ .vjs-default-skin .vjs-loading-spinner:after {
592
+ content: "\e00a"; /* Loading spinner icon */
593
+ font-family: VideoJS;
594
+
595
+ position: absolute;
596
+ width: 1em;
597
+ height: 1em;
598
+ text-align: center;
599
+
600
+ -webkit-background-clip: text;
601
+ -webkit-text-fill-color: transparent;
602
+ }
603
+
604
+ @-moz-keyframes spin {
605
+ 0% { -moz-transform: rotate(0deg); }
606
+ 100% { -moz-transform: rotate(359deg); }
607
+ }
608
+ @-webkit-keyframes spin {
609
+ 0% { -webkit-transform: rotate(0deg); }
610
+ 100% { -webkit-transform: rotate(359deg); }
611
+ }
612
+ @-o-keyframes spin {
613
+ 0% { -o-transform: rotate(0deg); }
614
+ 100% { -o-transform: rotate(359deg); }
615
+ }
616
+ @-ms-keyframes spin {
617
+ 0% { -ms-transform: rotate(0deg); }
618
+ 100% { -ms-transform: rotate(359deg); }
619
+ }
620
+ @keyframes spin {
621
+ 0% { transform: rotate(0deg); }
622
+ 100% { transform: rotate(359deg); }
623
+ }
624
+
625
+ /* Menu Buttons (Captions/Subtitles/etc.)
626
+ -------------------------------------------------------------------------------- */
627
+ .vjs-default-skin .vjs-menu-button {
628
+ float: right;
629
+ cursor: pointer;
630
+ }
631
+
632
+ .vjs-default-skin .vjs-menu {
633
+ display: none;
634
+ position: absolute;
635
+ bottom: 0;
636
+ left: 0em; /* (Width of vjs-menu - width of button) / 2 */
637
+ width: 0em;
638
+ height: 0em;
639
+ margin-bottom: 3em;
640
+
641
+ border-left: 2em solid transparent;
642
+ border-right: 2em solid transparent;
643
+
644
+ border-top: 1.55em solid rgb(0, 0, 0); /* Same top as ul bottom */
645
+ border-top-color: rgba(7, 40, 50, 0.5); /* Same as ul background */
646
+ }
647
+
648
+ /* Button Pop-up Menu */
649
+ .vjs-default-skin .vjs-menu-button .vjs-menu .vjs-menu-content {
650
+ display: block;
651
+ padding: 0; margin: 0;
652
+ position: absolute;
653
+ width: 10em;
654
+ bottom: 1.5em; /* Same bottom as vjs-menu border-top */
655
+ max-height: 15em;
656
+ overflow: auto;
657
+
658
+ left: -5em; /* Width of menu - width of button / 2 */
659
+
660
+ background-color: rgb(0, 0, 0);
661
+ background-color: rgba(7, 40, 50, 0.7);
662
+
663
+ -webkit-box-shadow: -20px -20px 0px rgba(255, 255, 255, 0.5);
664
+ -moz-box-shadow: 0 0 1em rgba(255, 255, 255, 0.5);
665
+ box-shadow: -0.2em -0.2em 0.3em rgba(255, 255, 255, 0.2);
666
+ }
667
+
668
+ /*.vjs-default-skin .vjs-menu-button:focus ul,*/ /* This is not needed because keyboard accessibility for the caption button is not handled with the focus any more. */
669
+ .vjs-default-skin .vjs-menu-button:hover .vjs-menu {
670
+ display: block;
671
+ }
672
+ .vjs-default-skin .vjs-menu-button ul li {
673
+ list-style: none;
674
+ margin: 0;
675
+ padding: 0.3em 0 0.3em 0;
676
+ line-height: 1.4em;
677
+ font-size: 1.2em;
678
+ font-weight: normal;
679
+ text-align: center;
680
+ text-transform: lowercase;
681
+ }
682
+ .vjs-default-skin .vjs-menu-button ul li.vjs-selected {
683
+ background-color: #000;
684
+ }
685
+ .vjs-default-skin .vjs-menu-button ul li:focus,
686
+ .vjs-default-skin .vjs-menu-button ul li:hover,
687
+ .vjs-default-skin .vjs-menu-button ul li.vjs-selected:focus,
688
+ .vjs-default-skin .vjs-menu-button ul li.vjs-selected:hover {
689
+ background-color: rgb(255, 255, 255);
690
+ background-color: rgba(255, 255, 255, 0.75);
691
+ color: #111;
692
+ outline: 0;
693
+
694
+ -webkit-box-shadow: 0 0 1em rgba(255, 255, 255, 1);
695
+ -moz-box-shadow: 0 0 1em rgba(255, 255, 255, 1);
696
+ box-shadow: 0 0 1em rgba(255, 255, 255, 1);
697
+ }
698
+ .vjs-default-skin .vjs-menu-button ul li.vjs-menu-title {
699
+ text-align: center;
700
+ text-transform: uppercase;
701
+ font-size: 1em;
702
+ line-height: 2em;
703
+ padding: 0;
704
+ margin: 0 0 0.3em 0;
705
+ font-weight: bold;
706
+ cursor: default;
707
+ }
708
+
709
+ /* Subtitles Button */
710
+ .vjs-default-skin .vjs-subtitles-button:before { content: "\e00c"; }
711
+
712
+ /* There's unfortunately no CC button in FontAwesome, so we need
713
+ to use another font. Please +1 the fontawesome request.
714
+ https://github.com/FortAwesome/Font-Awesome/issues/968 */
715
+ .vjs-default-skin .vjs-captions-button:before {
716
+ content: "\e008";
717
+ }
718
+
719
+
720
+ /* Replacement for focus outline */
721
+ .vjs-default-skin .vjs-captions-button:focus .vjs-control-content:before,
722
+ .vjs-default-skin .vjs-captions-button:hover .vjs-control-content:before {
723
+ -webkit-box-shadow: 0 0 1em rgba(255, 255, 255, 1);
724
+ -moz-box-shadow: 0 0 1em rgba(255, 255, 255, 1);
725
+ box-shadow: 0 0 1em rgba(255, 255, 255, 1);
726
+ }