mirror of
https://github.com/videojs/video.js.git
synced 2024-12-27 02:43:45 +02:00
6a682af82c
Switched play/pause class on play button to playing/paused class on box, so other elements can style based on that.
239 lines
14 KiB
CSS
239 lines
14 KiB
CSS
/*
|
|
VideoJS Default Styles (http://videojs.com)
|
|
Version 1.2.0
|
|
|
|
REQUIRED STYLES (be careful overriding)
|
|
================================================================================ */
|
|
|
|
/* Box containing video, controls, and download links.
|
|
If you want to add some kind of frame or special positioning, use another containing element, not video-js-box. */
|
|
.video-js-box { text-align: left; position: relative; vertical-align: bottom; } /* Will be set to the width of the video element */
|
|
|
|
/* Video Element */
|
|
video.video-js { background-color: #000; position: relative; }
|
|
|
|
/* Poster Style */
|
|
.video-js-box img.vjs-poster { display: block; position: absolute; left: 0; top: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
|
|
/* Subtiles Style */
|
|
.video-js-box .vjs-subtitles { color:#fff; font-size: 20px; text-align: center; bottom: 40px; left: 0; right: 0; position: absolute; }
|
|
|
|
/* Fullscreen styles for main elements */
|
|
.video-js-box.vjs-fullscreen { position: fixed; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: 1000; }
|
|
.video-js-box.vjs-fullscreen video.video-js { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 1000; }
|
|
.video-js-box.vjs-fullscreen img.vjs-poster { z-index: 1001; }
|
|
.video-js-box.vjs-fullscreen .vjs-spinner { z-index: 1001; }
|
|
.video-js-box.vjs-fullscreen .vjs-controls { z-index: 1003; }
|
|
.video-js-box.vjs-fullscreen .vjs-big-play-button { z-index: 1004; }
|
|
.video-js-box.vjs-fullscreen .vjs-subtitles { z-index: 1004; }
|
|
|
|
/* Styles Loaded Check */
|
|
.vjs-styles-check { height: 5px; z-index: -1; }
|
|
|
|
/* DEFAULT SKIN (override in another file)
|
|
================================================================================
|
|
Using all CSS to draw the controls. Images could be used if desired.
|
|
Instead of editing this file, I recommend creating your own skin CSS file to be included after this file,
|
|
so you can upgrade to newer versions easier. */
|
|
|
|
/* Controls Layout
|
|
Using a Holy Grail type method to allow the progress bar holder to expand into all available space,
|
|
but using abosolute positioning for individual controls. http://www.alistapart.com/articles/holygrail */
|
|
.video-js-box .vjs-controls {
|
|
position: absolute; margin: 0; border: none; opacity: 0.85; color: #fff;
|
|
display: none; /* Start hidden */
|
|
left: 0; right: 0; /* 100% width of video-js-box */
|
|
height: 35px; /* Including any margin you want above or below control items */
|
|
padding-left: 35px; /* Width of play button + margin */
|
|
padding-right: 165px; /* Width of all the controls to the right of the progress control + margins */
|
|
padding-top: 0; padding-bottom: 0;
|
|
}
|
|
/* Controls styles when below the video */
|
|
.video-js-box.vjs-controls-below .vjs-controls { background-color: #000; }
|
|
|
|
.video-js-box .vjs-controls > div { /* Direct div children of control bar */
|
|
position: absolute; float: left; padding: 0; text-align: center;
|
|
height: 25px; /* Default height of individual controls */
|
|
margin: 5px 0 0 0; /* Top margin to put space between video and controls when controls are below */
|
|
|
|
/* CSS Background Gradients */
|
|
/* Default */ background-color: #0B151A;
|
|
/* Webkit */ background: #1F3744 -webkit-gradient(linear, left top, left bottom, from(#0B151A), to(#1F3744)) left 12px;
|
|
/* Firefox */ background: #1F3744 -moz-linear-gradient(top, #0B151A, #1F3744) left 12px;
|
|
|
|
/* CSS Curved Corners */
|
|
border-radius: 5px; -webkit-border-radius: 5px; -moz-border-radius: 5px;
|
|
|
|
/* CSS Shadows */
|
|
box-shadow: 1px 1px 2px #000; -webkit-box-shadow: 1px 1px 2px #000; -moz-box-shadow: 1px 1px 2px #000;
|
|
}
|
|
|
|
/* Placement of Control Items */
|
|
.vjs-controls > div.vjs-play-control { width: 25px; left: 5px; }
|
|
.vjs-controls > div.vjs-progress-control { width: 100%; position: relative; }
|
|
.vjs-controls > div.vjs-time-control { width: 75px; right: 90px; } /* Time control and progress bar are combined to look like one */
|
|
.vjs-controls > div.vjs-volume-control { width: 50px; right: 35px; }
|
|
.vjs-controls > div.vjs-fullscreen-control { width: 25px; right: 5px; }
|
|
|
|
/* Removing curves on progress control and time control to join them. */
|
|
.vjs-controls > div.vjs-progress-control {
|
|
border-top-right-radius: 0; -webkit-border-top-right-radius: 0; -moz-border-radius-topright: 0;
|
|
border-bottom-right-radius: 0; -webkit-border-bottom-right-radius: 0; -moz-border-radius-bottomright: 0;
|
|
}
|
|
.vjs-controls > div.vjs-time-control {
|
|
border-top-left-radius: 0; -webkit-border-top-left-radius: 0; -moz-border-radius-topleft: 0;
|
|
border-bottom-left-radius: 0; -webkit-border-bottom-left-radius: 0; -moz-border-radius-bottomleft: 0;
|
|
}
|
|
|
|
/* Play/Pause
|
|
-------------------------------------------------------------------------------- */
|
|
.vjs-play-control { cursor: pointer !important; }
|
|
.vjs-play-control span { display: block; font-size: 0; line-height: 0; }
|
|
.vjs-paused .vjs-play-control span {
|
|
width: 0; height: 0; margin: 8px 0 0 8px;
|
|
/* Drawing the play triangle with borders - http://www.infimum.dk/HTML/slantinfo.html */
|
|
border-left: 10px solid #fff; /* Width & Color of play icon */
|
|
/* Height of play icon is total top & bottom border widths. Color is transparent. */
|
|
border-top: 5px solid rgba(0,0,0,0); border-bottom: 5px solid rgba(0,0,0,0);
|
|
}
|
|
.vjs-playing .vjs-play-control span {
|
|
width: 3px; height: 10px; margin: 8px auto 0;
|
|
/* Drawing the pause bars with borders */
|
|
border-top: 0px; border-left: 3px solid #fff; border-bottom: 0px; border-right: 3px solid #fff;
|
|
}
|
|
|
|
/* Progress
|
|
-------------------------------------------------------------------------------- */
|
|
.vjs-progress-holder { /* Box containing play and load progresses */
|
|
position: relative; padding: 0; overflow:hidden; cursor: pointer !important;
|
|
height: 9px; border: 1px solid #777;
|
|
margin: 7px 1px 0 5px; /* Placement within the progress control item */
|
|
border-radius: 5px; -webkit-border-radius: 5px; -moz-border-radius: 5px;
|
|
}
|
|
.vjs-progress-holder div { /* Progress Bars */
|
|
position: absolute; display: block; width: 0; height: 9px; margin: 0; padding: 0;
|
|
border-radius: 5px; -webkit-border-radius: 5px; -moz-border-radius: 5px;
|
|
}
|
|
.vjs-play-progress {
|
|
/* Default */ background: #fff;
|
|
/* Webkit */ background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#777));
|
|
/* Firefox */ background: -moz-linear-gradient(top, #fff, #777);
|
|
}
|
|
.vjs-load-progress {
|
|
opacity: 0.8;
|
|
/* Default */ background-color: #555;
|
|
/* Webkit */ background: -webkit-gradient(linear, left top, left bottom, from(#555), to(#aaa));
|
|
/* Firefox */ background: -moz-linear-gradient(top, #555, #aaa);
|
|
}
|
|
|
|
/* Time Display
|
|
-------------------------------------------------------------------------------- */
|
|
.vjs-controls .vjs-time-control { font-size: 10px; line-height: 1; font-weight: normal; font-family: Helvetica, Arial, sans-serif; }
|
|
.vjs-controls .vjs-time-control span { line-height: 25px; /* Centering vertically */ }
|
|
|
|
/* Volume
|
|
-------------------------------------------------------------------------------- */
|
|
.vjs-volume-control { cursor: pointer !important; }
|
|
.vjs-volume-control div { display: block; margin: 0 5px 0 5px; padding: 4px 0 0 0; }
|
|
/* Drawing the volume icon using 6 span elements */
|
|
.vjs-volume-control div span { /* Individual volume bars */
|
|
float: left; padding: 0;
|
|
margin: 0 2px 0 0; /* Space between */
|
|
width: 5px; height: 0px; /* Total height is height + bottom border */
|
|
border-bottom: 18px solid #555; /* Default (off) color and height of visible portion */
|
|
}
|
|
.vjs-volume-control div span.vjs-volume-level-on { border-color: #fff; /* Volume on bar color */ }
|
|
/* Creating differnt bar heights through height (transparent) and bottom border (visible). */
|
|
.vjs-volume-control div span:nth-child(1) { border-bottom-width: 2px; height: 16px; }
|
|
.vjs-volume-control div span:nth-child(2) { border-bottom-width: 4px; height: 14px; }
|
|
.vjs-volume-control div span:nth-child(3) { border-bottom-width: 7px; height: 11px; }
|
|
.vjs-volume-control div span:nth-child(4) { border-bottom-width: 10px; height: 8px; }
|
|
.vjs-volume-control div span:nth-child(5) { border-bottom-width: 14px; height: 4px; }
|
|
.vjs-volume-control div span:nth-child(6) { margin-right: 0; }
|
|
|
|
/* Fullscreen
|
|
-------------------------------------------------------------------------------- */
|
|
.vjs-fullscreen-control { cursor: pointer !important; }
|
|
.vjs-fullscreen-control div {
|
|
padding: 0; text-align: left; vertical-align: top; cursor: pointer !important;
|
|
margin: 5px 0 0 5px; /* Placement within the fullscreen control item */
|
|
width: 20px; height: 20px;
|
|
}
|
|
/* Drawing the fullscreen icon using 4 li elements */
|
|
.vjs-fullscreen-control div span { float: left; margin: 0; padding: 0; font-size: 0; line-height: 0; width: 0; text-align: left; vertical-align: top; }
|
|
.vjs-fullscreen-control div span:nth-child(1) { /* Top-left triangle */
|
|
margin-right: 3px; /* Space between top-left and top-right */
|
|
margin-bottom: 3px; /* Space between top-left and bottom-left */
|
|
border-top: 6px solid #fff; /* Height and color */
|
|
border-right: 6px solid rgba(0,0,0,0); /* Width */
|
|
}
|
|
.vjs-fullscreen-control div span:nth-child(2) { border-top: 6px solid #fff; border-left: 6px solid rgba(0,0,0,0); }
|
|
.vjs-fullscreen-control div span:nth-child(3) { clear: both; margin: 0 3px 0 0; border-bottom: 6px solid #fff; border-right: 6px solid rgba(0,0,0,0); }
|
|
.vjs-fullscreen-control div span:nth-child(4) { border-bottom: 6px solid #fff; border-left: 6px solid rgba(0,0,0,0); }
|
|
/* Icon when video is in fullscreen mode */
|
|
.vjs-fullscreen .vjs-fullscreen-control div span:nth-child(1) { border: none; border-bottom: 6px solid #fff; border-left: 6px solid rgba(0,0,0,0); }
|
|
.vjs-fullscreen .vjs-fullscreen-control div span:nth-child(2) { border: none; border-bottom: 6px solid #fff; border-right: 6px solid rgba(0,0,0,0); }
|
|
.vjs-fullscreen .vjs-fullscreen-control div span:nth-child(3) { border: none; border-top: 6px solid #fff; border-left: 6px solid rgba(0,0,0,0); }
|
|
.vjs-fullscreen .vjs-fullscreen-control div span:nth-child(4) { border: none; border-top: 6px solid #fff; border-right: 6px solid rgba(0,0,0,0); }
|
|
|
|
/* Download Links - Used for browsers that don't support any video.
|
|
---------------------------------------------------------*/
|
|
.vjs-no-video { font-size: small; }
|
|
|
|
/* Big Play Button (at start)
|
|
---------------------------------------------------------*/
|
|
div.vjs-big-play-button {
|
|
display: none; /* Start hidden */ z-index: 2;
|
|
position: absolute; top: 50%; left: 50%; width: 80px; height: 80px; margin: -43px 0 0 -43px; text-align: center; vertical-align: center; cursor: pointer !important;
|
|
border: 3px solid #fff; opacity: 0.9;
|
|
border-radius: 20px; -webkit-border-radius: 20px; -moz-border-radius: 20px;
|
|
|
|
/* CSS Background Gradients */
|
|
/* Default */ background-color: #0B151A;
|
|
/* Webkit */ background: #1F3744 -webkit-gradient(linear, left top, left bottom, from(#0B151A), to(#1F3744)) left 40px;
|
|
/* Firefox */ background: #1F3744 -moz-linear-gradient(top, #0B151A, #1F3744) left 40px;
|
|
|
|
/* CSS Shadows */
|
|
box-shadow: 4px 4px 8px #000; -webkit-box-shadow: 4px 4px 8px #000; -moz-box-shadow: 4px 4px 8px #000;
|
|
}
|
|
div.vjs-big-play-button:hover {
|
|
box-shadow: 0px 0px 80px #fff; -webkit-box-shadow: 0px 0px 80px #fff; -moz-box-shadow: 0px 0px 80px #fff;
|
|
}
|
|
|
|
div.vjs-big-play-button span {
|
|
display: block; font-size: 0; line-height: 0;
|
|
width: 0; height: 0; margin: 20px 0 0 23px;
|
|
/* Drawing the play triangle with borders - http://www.infimum.dk/HTML/slantinfo.html */
|
|
border-left: 40px solid #fff; /* Width & Color of play icon */
|
|
/* Height of play icon is total top & bottom border widths. Color is transparent. */
|
|
border-top: 20px solid rgba(0,0,0,0); border-bottom: 20px solid rgba(0,0,0,0);
|
|
}
|
|
|
|
/* Spinner Styles
|
|
---------------------------------------------------------*/
|
|
/* CSS Spinners by Kilian Valkhof - http://kilianvalkhof.com/2010/css-xhtml/css3-loading-spinners-without-images/ */
|
|
|
|
.vjs-spinner { display: none; position: absolute; top: 50%; left: 50%; width: 100px; height: 100px; z-index: 1; margin: -50px 0 0 -50px;
|
|
transform: scale(0.5); -webkit-transform:scale(0.5); -moz-transform:scale(0.5);
|
|
/* -webkit-animation-name: rotateThis;
|
|
-webkit-animation-duration:2s;
|
|
-webkit-animation-iteration-count:infinite;
|
|
-webkit-animation-timing-function:linear;*/
|
|
}
|
|
|
|
/*@-webkit-keyframes rotateThis {
|
|
from {-webkit-transform:scale(0.5) rotate(0deg);}
|
|
to {-webkit-transform:scale(0.5) rotate(360deg);}
|
|
}*/
|
|
|
|
.vjs-spinner div { position:absolute; left: 40px; top: 40px; width: 20px; height: 20px; background: #fff;
|
|
border-radius: 20px; -webkit-border-radius: 20px; -moz-border-radius: 20px;
|
|
border: 1px solid #ccc; /* Added border so can be visible on white backgrounds */
|
|
}
|
|
.vjs-spinner div:nth-child(1) { opacity: 0.12; transform: rotate(000deg) translate(0, -40px) scale(0.1); -webkit-transform: rotate(000deg) translate(0, -40px) scale(0.1); -moz-transform: rotate(000deg) translate(0, -40px) scale(0.1); }
|
|
.vjs-spinner div:nth-child(2) { opacity: 0.25; transform: rotate(045deg) translate(0, -40px) scale(0.2); -webkit-transform: rotate(045deg) translate(0, -40px) scale(0.2); -moz-transform: rotate(045deg) translate(0, -40px) scale(0.2); }
|
|
.vjs-spinner div:nth-child(3) { opacity: 0.37; transform: rotate(090deg) translate(0, -40px) scale(0.4); -webkit-transform: rotate(090deg) translate(0, -40px) scale(0.4); -moz-transform: rotate(090deg) translate(0, -40px) scale(0.4); }
|
|
.vjs-spinner div:nth-child(4) { opacity: 0.50; transform: rotate(135deg) translate(0, -40px) scale(0.6); -webkit-transform: rotate(135deg) translate(0, -40px) scale(0.6); -moz-transform: rotate(135deg) translate(0, -40px) scale(0.6); }
|
|
.vjs-spinner div:nth-child(5) { opacity: 0.62; transform: rotate(180deg) translate(0, -40px) scale(0.8); -webkit-transform: rotate(180deg) translate(0, -40px) scale(0.8); -moz-transform: rotate(180deg) translate(0, -40px) scale(0.8); }
|
|
.vjs-spinner div:nth-child(6) { opacity: 0.75; transform: rotate(225deg) translate(0, -40px) scale(1.0); -webkit-transform: rotate(225deg) translate(0, -40px) scale(1.0); -moz-transform: rotate(225deg) translate(0, -40px) scale(1.0); }
|
|
.vjs-spinner div:nth-child(7) { opacity: 0.87; transform: rotate(270deg) translate(0, -40px) scale(1.1); -webkit-transform: rotate(270deg) translate(0, -40px) scale(1.1); -moz-transform: rotate(270deg) translate(0, -40px) scale(1.1); }
|
|
.vjs-spinner div:nth-child(8) { opacity: 1.00; transform: rotate(315deg) translate(0, -40px) scale(1.3); -webkit-transform: rotate(315deg) translate(0, -40px) scale(1.3); -moz-transform: rotate(315deg) translate(0, -40px) scale(1.3); } |