2 Video.js Default Styles (http://videojs.com)
4 Create your own skin at http://designer.videojs.com
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">
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.
22 font-family: 'VideoJS';
23 src: url
('font/vjs.eot');
24 src: url
('font/vjs.eot?#iefix') format
('embedded-opentype'), url
('font/vjs.woff') format
('woff'), url
('font/vjs.ttf') format
('truetype');
28 /* Base UI Component Classes
29 --------------------------------------------------------------------------------
31 /* Slider - used for Volume bar and Seek bar */
32 .vjs-default-skin .vjs-slider {
33 /* Replace browser focus hightlight with handle highlight */
38 /* background-color-with-alpha */
39 background-color: #333333;
40 background-color: rgba
(51, 51, 51, 0.9);
42 .vjs-default-skin .vjs-slider:focus {
44 -webkit-box-shadow: 0 0 2em #ffffff;
45 -moz-box-shadow: 0 0 2em #ffffff;
46 box-shadow: 0 0 2em #ffffff;
48 .vjs-default-skin .vjs-slider-handle {
54 .vjs-default-skin .vjs-slider-handle:before {
60 text-shadow: 0em 0em 1em #fff;
64 /* Rotate the square icon to make a diamond */
66 -webkit-transform: rotate
(-45deg);
67 -moz-transform: rotate
(-45deg);
68 -ms-transform: rotate
(-45deg);
69 -o-transform: rotate
(-45deg);
70 transform: rotate
(-45deg);
73 --------------------------------------------------------------------------------
74 The default control bar that is a container for most of the controls.
76 .vjs-default-skin .vjs-control-bar {
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. */
83 /* Use left/right to stretch to 100% width of player div */
86 /* Height includes any margin you want above or below control items */
88 /* background-color-with-alpha */
89 background-color: #07141e;
90 background-color: rgba
(7, 20, 30, 0.7);
92 /* Show the control bar only once the video has started playing */
93 .vjs-default-skin.vjs-has-started .vjs-control-bar {
95 /* Visibility needed to make sure things hide in older browsers too. */
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;
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 {
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;
116 .vjs-default-skin.vjs-controls-disabled .vjs-control-bar {
119 .vjs-default-skin.vjs-using-native-controls .vjs-control-bar {
122 /* IE8 is flakey with fonts, and you have to change the actual content to force
123 fonts to show/hide properly.
124 - "\9" IE8 hack didn't work for this
125 - Found in XP IE8 from http://modern.ie. Does not show up in "IE8 mode" in IE9
128 .vjs-default-skin.vjs-user-inactive.vjs-playing .vjs-control-bar :before {
132 /* General styles for individual controls. */
133 .vjs-default-skin .vjs-control {
143 /* FontAwsome button icons */
144 .vjs-default-skin .vjs-control:before {
145 font-family: VideoJS
;
154 text-shadow: 1px 1px 1px rgba
(0, 0, 0, 0.5);
156 /* Replacement for focus outline */
157 .vjs-default-skin
.vjs-control:focus:before
,
158 .vjs-default-skin .vjs-control:hover:before {
159 text-shadow: 0em 0em 1em #ffffff;
161 .vjs-default-skin .vjs-control:focus {
163 /* keyboard-only users cannot see the focus on several of the UI elements when
167 /* Hide control text visually, but have it available for screenreaders */
168 .vjs-default-skin .vjs-control-text {
180 --------------------------------------------------------------------------------
182 .vjs-default-skin .vjs-play-control {
186 .vjs-default-skin .vjs-play-control:before {
189 .vjs-default-skin.vjs-playing .vjs-play-control:before {
193 -------------------------------------------------------------------------------- */
194 .vjs-default-skin
.vjs-mute-control
,
195 .vjs-default-skin .vjs-volume-menu-button {
199 .vjs-default-skin
.vjs-mute-control:before
,
200 .vjs-default-skin .vjs-volume-menu-button:before {
203 .vjs-default-skin
.vjs-mute-control
.vjs-vol-0:before
,
204 .vjs-default-skin .vjs-volume-menu-button.vjs-vol-0:before {
207 .vjs-default-skin
.vjs-mute-control
.vjs-vol-1:before
,
208 .vjs-default-skin .vjs-volume-menu-button.vjs-vol-1:before {
211 .vjs-default-skin
.vjs-mute-control
.vjs-vol-2:before
,
212 .vjs-default-skin .vjs-volume-menu-button.vjs-vol-2:before {
215 .vjs-default-skin .vjs-volume-control {
219 .vjs-default-skin .vjs-volume-bar {
222 margin: 1.1em auto
0;
224 .vjs-default-skin .vjs-volume-menu-button .vjs-menu-content {
227 .vjs-default-skin .vjs-volume-level {
232 background: #66a8cc url
(data:image
/png
;base64
,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR
/QJ
/Ub
//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC
) -50% 0 repeat
;
234 .vjs-default-skin .vjs-volume-bar .vjs-volume-handle {
238 .vjs-default-skin .vjs-volume-handle:before {
245 .vjs-default-skin .vjs-volume-menu-button .vjs-menu .vjs-menu-content {
250 --------------------------------------------------------------------------------
252 .vjs-default-skin .vjs-progress-control {
259 /* Set above the rest of the controls. */
261 /* Shrink the bar slower than it grows. */
263 -webkit-transition: all
0.4s;
264 -moz-transition: all
0.4s;
265 -o-transition: all
0.4s;
266 transition: all
0.4s;
268 /* On hover, make the progress bar grow to something that's more clickable.
269 This simply changes the overall font for the progress bar, and this
270 updates both the em-based widths and heights, as wells as the icon font */
271 .vjs-default-skin:hover .vjs-progress-control {
273 /* Even though we're not changing the top/height, we need to include them in
274 the transition so they're handled correctly. */
277 -webkit-transition: all
0.2s;
278 -moz-transition: all
0.2s;
279 -o-transition: all
0.2s;
280 transition: all
0.2s;
282 /* Box containing play and load progresses. Also acts as seek scrubber. */
283 .vjs-default-skin .vjs-progress-holder {
287 .vjs-default-skin
.vjs-progress-holder
.vjs-play-progress
,
288 .vjs-default-skin .vjs-progress-holder .vjs-load-progress {
298 .vjs-default-skin .vjs-play-progress {
300 Using a data URI to create the white diagonal lines with a transparent
301 background. Surprisingly works in IE8.
302 Created using http://www.patternify.com
303 Changing the first color value will change the bar color.
304 Also using a paralax effect to make the lines move backwards.
305 The -50% left position makes that happen.
308 background: #66a8cc url
(data:image
/png
;base64
,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR
/QJ
/Ub
//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC
) -50% 0 repeat
;
310 .vjs-default-skin .vjs-load-progress {
311 background: #646464 /* IE8- Fallback */;
312 background: rgba
(255, 255, 255, 0.4);
314 .vjs-default-skin .vjs-seek-handle {
318 .vjs-default-skin .vjs-seek-handle:before {
319 padding-top: 0.1em /* Minor adjustment */;
322 --------------------------------------------------------------------------------
324 .vjs-default-skin .vjs-time-controls {
326 /* Align vertically by making the line height the same as the control bar */
329 .vjs-default-skin .vjs-current-time {
332 .vjs-default-skin .vjs-duration {
335 /* Remaining time is in the HTML, but not included in default design */
336 .vjs-default-skin .vjs-remaining-time {
345 --------------------------------------------------------------------------------
347 .vjs-default-skin .vjs-fullscreen-control {
352 .vjs-default-skin .vjs-fullscreen-control:before {
355 /* Switch to the exit icon when the player is in fullscreen */
356 .vjs-default-skin.vjs-fullscreen .vjs-fullscreen-control:before {
359 /* Big Play Button (play button at start)
360 --------------------------------------------------------------------------------
361 Positioning of the play button in the center or other corners can be done more
362 easily in the skin designer. http://designer.videojs.com/
364 .vjs-default-skin .vjs-big-play-button {
374 vertical-align: middle
;
377 /* Need a slightly gray bg so it can be seen on black backgrounds */
378 /* background-color-with-alpha */
379 background-color: #07141e;
380 background-color: rgba
(7, 20, 30, 0.7);
381 border: 0.1em solid
#3b4249;
383 -webkit-border-radius: 0.8em;
384 -moz-border-radius: 0.8em;
385 border-radius: 0.8em;
387 -webkit-box-shadow: 0px 0px 1em rgba
(255, 255, 255, 0.25);
388 -moz-box-shadow: 0px 0px 1em rgba
(255, 255, 255, 0.25);
389 box-shadow: 0px 0px 1em rgba
(255, 255, 255, 0.25);
391 -webkit-transition: all
0.4s;
392 -moz-transition: all
0.4s;
393 -o-transition: all
0.4s;
394 transition: all
0.4s;
396 /* Hide if controls are disabled */
397 .vjs-default-skin.vjs-controls-disabled .vjs-big-play-button {
400 /* Hide when video starts playing */
401 .vjs-default-skin.vjs-has-started .vjs-big-play-button {
404 /* Hide on mobile devices. Remove when we stop using native controls
405 by default on mobile */
406 .vjs-default-skin.vjs-using-native-controls .vjs-big-play-button {
409 .vjs-default-skin:hover
.vjs-big-play-button
,
410 .vjs-default-skin .vjs-big-play-button:focus {
413 /* IE8 needs a non-glow hover state */
414 background-color: #505050;
415 background-color: rgba
(50, 50, 50, 0.75);
417 -webkit-box-shadow: 0 0 3em #ffffff;
418 -moz-box-shadow: 0 0 3em #ffffff;
419 box-shadow: 0 0 3em #ffffff;
421 -webkit-transition: all
0s;
422 -moz-transition: all
0s;
423 -o-transition: all
0s;
426 .vjs-default-skin .vjs-big-play-button:before {
428 font-family: VideoJS
;
429 /* In order to center the play icon vertically we need to set the line height
430 to the same as the button height */
433 text-shadow: 0.05em 0.05em 0.1em #000;
434 text-align: center
/* Needed for IE8 */;
441 --------------------------------------------------------------------------------
443 .vjs-loading-spinner {
456 -webkit-animation: spin
1.5s infinite linear
;
457 -moz-animation: spin
1.5s infinite linear
;
458 -o-animation: spin
1.5s infinite linear
;
459 animation: spin
1.5s infinite linear
;
461 .vjs-default-skin .vjs-loading-spinner:before {
463 font-family: VideoJS
;
470 text-shadow: 0em 0em 0.1em #000;
472 @-moz-keyframes spin
{
474 -moz-transform: rotate
(0deg);
477 -moz-transform: rotate
(359deg);
480 @-webkit-keyframes spin
{
482 -webkit-transform: rotate
(0deg);
485 -webkit-transform: rotate
(359deg);
490 -o-transform: rotate
(0deg);
493 -o-transform: rotate
(359deg);
498 transform: rotate
(0deg);
501 transform: rotate
(359deg);
504 /* Menu Buttons (Captions/Subtitles/etc.)
505 --------------------------------------------------------------------------------
507 .vjs-default-skin .vjs-menu-button {
511 .vjs-default-skin .vjs-menu {
516 /* (Width of vjs-menu - width of button) / 2 */
521 border-left: 2em solid transparent
;
522 border-right: 2em solid transparent
;
523 border-top: 1.55em solid
#000000;
524 /* Same width top as ul bottom */
526 border-top-color: rgba
(7, 40, 50, 0.5);
527 /* Same as ul background */
530 /* Button Pop-up Menu */
531 .vjs-default-skin .vjs-menu-button .vjs-menu .vjs-menu-content {
538 /* Same bottom as vjs-menu border-top */
543 /* Width of menu - width of button / 2 */
545 /* background-color-with-alpha */
546 background-color: #07141e;
547 background-color: rgba
(7, 20, 30, 0.7);
549 -webkit-box-shadow: -0.2em -0.2em 0.3em rgba
(255, 255, 255, 0.2);
550 -moz-box-shadow: -0.2em -0.2em 0.3em rgba
(255, 255, 255, 0.2);
551 box-shadow: -0.2em -0.2em 0.3em rgba
(255, 255, 255, 0.2);
553 .vjs-default-skin .vjs-menu-button:hover .vjs-menu {
556 .vjs-default-skin .vjs-menu-button ul li {
559 padding: 0.3em 0 0.3em 0;
563 text-transform: lowercase
;
565 .vjs-default-skin .vjs-menu-button ul li.vjs-selected {
566 background-color: #000;
568 .vjs-default-skin
.vjs-menu-button ul
li:focus
,
569 .vjs-default-skin
.vjs-menu-button ul
li:hover
,
570 .vjs-default-skin
.vjs-menu-button ul li
.vjs-selected:focus
,
571 .vjs-default-skin .vjs-menu-button ul li.vjs-selected:hover {
574 /* background-color-with-alpha */
575 background-color: #ffffff;
576 background-color: rgba
(255, 255, 255, 0.75);
578 -webkit-box-shadow: 0 0 1em #ffffff;
579 -moz-box-shadow: 0 0 1em #ffffff;
580 box-shadow: 0 0 1em #ffffff;
582 .vjs-default-skin .vjs-menu-button ul li.vjs-menu-title {
584 text-transform: uppercase
;
592 /* Subtitles Button */
593 .vjs-default-skin .vjs-subtitles-button:before {
596 /* Captions Button */
597 .vjs-default-skin .vjs-captions-button:before {
600 /* Replacement for focus outline */
601 .vjs-default-skin
.vjs-captions-button:focus
.vjs-control-content:before
,
602 .vjs-default-skin .vjs-captions-button:hover .vjs-control-content:before {
604 -webkit-box-shadow: 0 0 1em #ffffff;
605 -moz-box-shadow: 0 0 1em #ffffff;
606 box-shadow: 0 0 1em #ffffff;
609 REQUIRED STYLES (be careful overriding)
610 ================================================================================
611 When loading the player, the video tag is replaced with a DIV,
612 that will hold the video tag or object tag for other playback methods.
613 The div contains the video playback element (Flash or HTML5) and controls,
614 and sets the width and height of the video.
616 ** If you want to add some kind of border/padding (e.g. a frame), or special
617 positioning, use another containing element. Otherwise you risk messing up
618 control positioning and full window mode. **
621 background-color: #000;
624 /* Start with 10px for base font size so other dimensions can be em based and
625 easily calculable. */
628 /* Allow poster to be vertially aligned. */
630 vertical-align: middle
;
631 /* display: table-cell; */
632 /*This works in Safari but not Firefox.*/
634 /* Provide some basic defaults for fonts */
638 /* Avoiding helvetica: issue #376 */
640 font-family: Arial
, sans-serif
;
641 /* Turn off user selection (text highlighting) by default.
642 The majority of player components will not be text blocks.
643 Text areas will need to turn user selection back on. */
646 -webkit-user-select: none
;
647 -moz-user-select: none
;
648 -ms-user-select: none
;
651 /* Playback technology elements expand to the width/height of the containing div
652 <video> or <object> */
653 .video-js .vjs-tech {
660 /* Fix for Firefox 9 fullscreen (only if it is enabled). Not needed when
661 checking fullScreenEnabled. */
662 .video-js:-moz-full-screen {
665 /* Fullscreen Styles */
666 body
.vjs-full-window
{
670 /* Fix for IE6 full-window. http://www.cssplay.co.uk/layouts/fixed.html */
673 .video-js.vjs-fullscreen {
681 width: 100% !important
;
682 height: 100% !important
;
683 /* IE6 full-window (underscore hack) */
686 .video-js:-webkit-full-screen {
687 width: 100% !important
;
688 height: 100% !important
;
690 .video-js.vjs-fullscreen.vjs-user-inactive {
695 background-repeat: no-repeat
;
696 background-position: 50% 50%;
697 background-size: contain
;
712 /* Hide the poster when native controls are used otherwise it covers them */
713 .video-js.vjs-using-native-controls .vjs-poster {
716 /* Text Track Styles */
717 /* Overall track holder for both captions and subtitles */
718 .video-js .vjs-text-track-display {
722 /* Leave padding on left and right */
726 /* Individual tracks */
727 .video-js .vjs-text-track {
731 margin-bottom: 0.1em;
732 /* Transparent black background, or fallback to all black (oldIE) */
733 /* background-color-with-alpha */
734 background-color: #000000;
735 background-color: rgba
(0, 0, 0, 0.5);
737 .video-js .vjs-subtitles {
738 color: #ffffff /* Subtitles are white */;
740 .video-js .vjs-captions {
741 color: #ffcc66 /* Captions are yellow */;
746 /* Hide disabled or unsupported controls */
747 .vjs-default-skin .vjs-hidden {
751 display: block
!important
;
755 /* -----------------------------------------------------------------------------
756 The original source of this file lives at
757 https://github.com/videojs/video.js/blob/master/src/css/video-js.less */