mirror of
https://github.com/videojs/video.js.git
synced 2025-02-04 11:43:27 +02:00
369 lines
18 KiB
CSS
369 lines
18 KiB
CSS
/*
|
|
VideoJS YouTube Skin (http://videojs.com)
|
|
Version 3.0
|
|
|
|
REQUIRED STYLES (be careful overriding)
|
|
================================================================================ */
|
|
/* When loading the player, the video tag is replaced with a DIV,
|
|
that will hold the video tag or object tag for other playback methods.
|
|
The div contains the video playback element (Flash or HTML5) and controls, and sets the width and height of the video.
|
|
|
|
** If you want to add some kind of border/padding (e.g. a frame), or special positioning, use another containing element.
|
|
Otherwise you risk messing up control positioning and full window mode. **
|
|
*/
|
|
.video-js {
|
|
background-color: #000; position: relative; padding: 0;
|
|
/* Start with 10px for base font size so other dimensions can be em based and easily calculable. */
|
|
font-size: 10px;
|
|
}
|
|
|
|
/* Playback technology elements expand to the width/height of the containing div. <video> or <object> */
|
|
.video-js .vjs-tech { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
|
|
|
|
/* Fullscreen Styles */
|
|
body.vjs-full-window {
|
|
padding: 0; margin: 0;
|
|
height: 100%; overflow-y: auto; /* Fix for IE6 full-window. http://www.cssplay.co.uk/layouts/fixed.html */
|
|
}
|
|
.video-js.vjs-fullscreen {
|
|
position: fixed; overflow: hidden; z-index: 1000; left: 0; top: 0; bottom: 0; right: 0; width: 100% !important; height: 100% !important;
|
|
_position: absolute; /* IE6 Full-window (underscore hack) */
|
|
}
|
|
.video-js:-webkit-full-screen {
|
|
width: 100% !important; height: 100% !important;
|
|
}
|
|
.video-js:-moz-full-screen {
|
|
width: 100% !important; height: 100% !important;
|
|
}
|
|
|
|
/* Subtiles Style */
|
|
.video-js .vjs-subtitles { color: #fff; font-size: 20px; text-align: center; position: absolute; bottom: 40px; left: 0; right: 0; }
|
|
|
|
|
|
|
|
/* The default control bar. Created by bar.js */
|
|
.tubecss .vjs-controls {
|
|
position: absolute;
|
|
bottom: 0; /* Distance from the bottom of the box/video. Keep 0. Use height to add more bottom margin. */
|
|
left: 0; right: 0; /* 100% width of div */
|
|
opacity: 0.85; display: block; /* Start hidden */
|
|
margin: 0; padding: 0; /* Controls are absolutely position, so no padding necessary */
|
|
height: 2.6em; /* Including any margin you want above or below control items */
|
|
color: #fff; border-top: 1px solid #404040;
|
|
|
|
/* CSS Gradient */
|
|
/* Can use the Ultimate CSS Gradient Generator: http://www.colorzilla.com/gradient-editor/ */
|
|
background: -moz-linear-gradient(top, rgba(51,51,51,0.8) 0%, rgba(0,0,0,1) 100%); /* FF3.6+ */
|
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(51,51,51,0.8)), color-stop(100%,rgba(0,0,0,1))); /* Chrome,Safari4+ */
|
|
background: -webkit-linear-gradient(top, rgba(51,51,51,0.8) 0%,rgba(0,0,0,1) 100%); /* Chrome10+,Safari5.1+ */
|
|
background: -o-linear-gradient(top, rgba(51,51,51,0.8) 0%,rgba(0,0,0,1) 100%); /* Opera 11.10+ */
|
|
background: -ms-linear-gradient(top, rgba(51,51,51,0.8) 0%,rgba(0,0,0,1) 100%); /* IE10+ */
|
|
background: linear-gradient(top, rgba(51,51,51,0.8) 0%,rgba(0,0,0,1) 100%); /* W3C */
|
|
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#cc333333', endColorstr='#000000',GradientType=0 ); /* IE6-9 */
|
|
|
|
/* Fade-in using CSS Transitions */
|
|
/* -webkit-transition: opacity 0.3s linear;
|
|
-moz-transition: opacity 0.3s linear;
|
|
-o-transition: opacity 0.3s linear;
|
|
-ms-transition: opacity 0.3s linear;
|
|
transition: opacity 0.3s linear;*/
|
|
}
|
|
|
|
/* General styles for individual controls. */
|
|
.tubecss .vjs-control {
|
|
position: relative; float: left;
|
|
text-align: center; margin: 0; padding: 0;
|
|
height: 2.6em; width: 2.6em;
|
|
}
|
|
|
|
.tubecss .vjs-control:focus {
|
|
outline: 0;
|
|
}
|
|
|
|
/* Hide control text visually, but have it available for screenreaders: h5bp.com/v */
|
|
.tubecss .vjs-control-text { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
|
|
|
|
|
|
/* Play/Pause
|
|
-------------------------------------------------------------------------------- */
|
|
.tubecss .vjs-play-control { width: 5em; cursor: pointer !important; border-left: 1px solid #333; border-right: 1px solid #222; }
|
|
/* Play Icon */
|
|
.tubecss.vjs-paused .vjs-play-control div { width: 15px; height: 17px; background: url('tubesprite.png'); margin: 0.5em auto 0; }
|
|
.tubecss.vjs-paused .vjs-play-control div:hover {background: url('tubesprite.png') 0 -75px;}
|
|
.tubecss.vjs-playing .vjs-play-control div { width: 15px; height: 17px; background: url('tubesprite.png') -25px 0; margin: 0.5em auto 0; }
|
|
.tubecss.vjs-playing .vjs-play-control div:hover {background: url('tubesprite.png') -25px -75px;}
|
|
|
|
/* Rewind
|
|
-------------------------------------------------------------------------------- */
|
|
.tubecss .vjs-rewind-control { width: 5em; cursor: pointer !important; }
|
|
.tubecss .vjs-rewind-control div { width: 19px; height: 16px; background: url('tubesprite.png'); margin: 0.5em auto 0; }
|
|
|
|
/* Volume/Mute
|
|
-------------------------------------------------------------------------------- */
|
|
.tubecss .vjs-mute-control { width: 3.8em; cursor: pointer !important; float: left; border-left: 1px solid #333;}
|
|
.tubecss .vjs-mute-control div { width: 22px; height: 16px; background: url('tubesprite.png') -75px -25px; margin: 0.5em auto 0; }
|
|
.tubecss .vjs-mute-control.vjs-vol-0 div { background: url('tubesprite.png') 0 -25px; }
|
|
.tubecss .vjs-mute-control.vjs-vol-1 div { background: url('tubesprite.png') -25px -25px; }
|
|
.tubecss .vjs-mute-control.vjs-vol-2 div { background: url('tubesprite.png') -50px -25px; }
|
|
.tubecss .vjs-mute-control div:hover {background: url('tubesprite.png') -75px -100px; }
|
|
.tubecss .vjs-mute-control.vjs-vol-0 div:hover { background: url('tubesprite.png') 0 -100px; }
|
|
.tubecss .vjs-mute-control.vjs-vol-1 div:hover { background: url('tubesprite.png') -25px -100px; }
|
|
.tubecss .vjs-mute-control.vjs-vol-2 div:hover { background: url('tubesprite.png') -50px -100px; }
|
|
|
|
|
|
.tubecss .vjs-volume-control { position: absolute; top: -0.1em; left: 9em; width: 6em; padding-right: 8px; border-right: 1px solid #222;}
|
|
.tubecss .vjs-volume-bar {
|
|
position: relative; border-bottom: 1px solid #333; width: 6em; height: 0.6em; margin: 1em auto 0; cursor: pointer !important;
|
|
|
|
-moz-border-radius: 0.3em; -webkit-border-radius: 0.3em; border-radius: 0.3em;
|
|
|
|
background: #111; /* Old browsers */
|
|
}
|
|
.tubecss .vjs-volume-level {
|
|
position: absolute; top: 0; left: 0; height: 0.6em;
|
|
|
|
-moz-border-radius: 0.3em; -webkit-border-radius: 0.3em; border-radius: 0.3em;
|
|
|
|
background: #c61003; /* Old browsers */
|
|
background: -moz-linear-gradient(top, #c61003 0%, #840400 100%); /* FF3.6+ */
|
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#c61003), color-stop(100%,#840400)); /* Chrome,Safari4+ */
|
|
background: -webkit-linear-gradient(top, #c61003 0%,#840400 100%); /* Chrome10+,Safari5.1+ */
|
|
background: -o-linear-gradient(top, #c61003 0%,#840400 100%); /* Opera 11.10+ */
|
|
background: -ms-linear-gradient(top, #c61003 0%,#840400 100%); /* IE10+ */
|
|
background: linear-gradient(top, #c61003 0%,#840400 100%); /* W3C */
|
|
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#c61003', endColorstr='#840400',GradientType=0 ); /* IE6-9 */
|
|
}
|
|
.tubecss .vjs-volume-handle {
|
|
position: absolute; top: -0.3em; width: 0.5em; height: 1.2em; background: #696969; left: 0;
|
|
border: none;
|
|
border-top: 1px solid #888;
|
|
-moz-border-radius: 0.3em; -webkit-border-radius: 0.3em; border-radius: 0.3em;
|
|
}
|
|
|
|
/* Progress
|
|
-------------------------------------------------------------------------------- */
|
|
.tubecss div.vjs-progress-control {
|
|
position: absolute;
|
|
left: 0em; right: 0em; /* Leave room for time displays. */
|
|
height: 1em; width: auto;
|
|
top: -1.3em; /* Set above the rest of the controls. And leave room for 2px of borders (progress bottom and controls top). */
|
|
border-bottom: 1px solid #1F1F1F;
|
|
border-top: 1px solid #222;
|
|
|
|
/* CSS Gradient */
|
|
background: #111;
|
|
-moz-opacity: 0.80;
|
|
opacity: 0.80;
|
|
|
|
|
|
/* 1px top shadow */
|
|
/* -webkit-box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.15); -moz-box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.15); box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.15);*/
|
|
}
|
|
|
|
/* Box containing play and load progresses. Also acts as seek scrubber. */
|
|
.tubecss .vjs-progress-holder {
|
|
position: relative; cursor: pointer !important; /*overflow: hidden;*/
|
|
padding: 0; margin: 0; /* Placement within the progress control item */
|
|
height: 1.0em;
|
|
-moz-border-radius: 0em; -webkit-border-radius: 0em; border-radius: 0em;
|
|
|
|
/* CSS Gradient */
|
|
background: #000
|
|
-moz-opacity: 0.90;
|
|
opacity: 0.90;
|
|
|
|
|
|
}
|
|
.tubecss .vjs-progress-holder .vjs-play-progress,
|
|
.tubecss .vjs-progress-holder .vjs-load-progress { /* Progress Bars */
|
|
position: absolute; display: block; height: 1.0em; margin: 0; padding: 0;
|
|
left: 0; top: 0; /*Needed for IE6*/
|
|
-moz-border-radius: 0em; -webkit-border-radius: 0em; border-radius: 0em;
|
|
|
|
/*width: 0;*/
|
|
}
|
|
|
|
.tubecss .vjs-play-progress {
|
|
|
|
background: #ff0505; /* Old browsers */
|
|
background: -moz-linear-gradient(top, #ff0505 0%, #9b0000 100%); /* FF3.6+ */
|
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ff0505), color-stop(100%,#9b0000)); /* Chrome,Safari4+ */
|
|
background: -webkit-linear-gradient(top, #ff0505 0%,#9b0000 100%); /* Chrome10+,Safari5.1+ */
|
|
background: -o-linear-gradient(top, #ff0505 0%,#9b0000 100%); /* Opera 11.10+ */
|
|
background: -ms-linear-gradient(top, #ff0505 0%,#9b0000 100%); /* IE10+ */
|
|
background: linear-gradient(top, #ff0505 0%,#9b0000 100%); /* W3C */
|
|
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ff0505', endColorstr='#9b0000',GradientType=0 ); /* IE6-9 */
|
|
}
|
|
|
|
.tubecss .vjs-load-progress {
|
|
background: #999;
|
|
}
|
|
|
|
.tubecss div.vjs-seek-handle {
|
|
position: absolute;
|
|
width: 16px; height: 16px; /* Match img pixles */
|
|
margin-top: -0.3em;
|
|
left: 0; top: 0; /*Needed for IE6*/
|
|
|
|
background: url('tubesprite.png') 0 -50px;
|
|
/* CSS Curved Corners. Needed to make shadows curved. */
|
|
-moz-border-radius: 0.8em; -webkit-border-radius: 0.8em; border-radius: 0.8em;
|
|
/* CSS Shadows */
|
|
-webkit-box-shadow: 0 2px 4px 0 #000; -moz-box-shadow: 0 2px 4px 0 #000; box-shadow: 0 2px 4px 0 #000;
|
|
}
|
|
.tubecss div.vjs-seek-handle:hover {
|
|
background: url('tubesprite.png') -188px -50px;
|
|
}
|
|
|
|
/* Time Display
|
|
-------------------------------------------------------------------------------- */
|
|
.tubecss .vjs-time-controls {
|
|
position: absolute;
|
|
right: 0;
|
|
height: 100%; width: 4em;
|
|
top: 0.0em;
|
|
border-bottom: none;
|
|
border-top: none;
|
|
background: transparent;
|
|
|
|
|
|
font-size: 1em; line-height: 1.0em; font-weight: normal; font-family: Helvetica, Arial, sans-serif;
|
|
|
|
/* 1px top shadow */
|
|
/* -webkit-box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.15); -moz-box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.15); box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.15);*/
|
|
}
|
|
|
|
.tubecss .vjs-current-time {line-height: 2.4em; left: 15.9em; border-left: 1px solid #333; }
|
|
|
|
.tubecss .vjs-duration {line-height: 2.4em; left: 20.2em; display: inline; color: #999; width: 39.5em; text-align: left; padding-left: 2px; border-right: 1px solid #222;}
|
|
.tubecss .vjs-remaining-time { right: 0; display: none; }
|
|
|
|
.vjs-time-divider {line-height: 1.6em; display: inline; position: absolute; left: 19.5em; top: 0.5em; color: #999;}
|
|
|
|
/* Fullscreen
|
|
-------------------------------------------------------------------------------- */
|
|
.vjs-secondary-controls { float: right; }
|
|
|
|
.tubecss .vjs-fullscreen-control { width: 3.8em; cursor: pointer !important; float: right; border-left: 1px solid #333; border-right: 1px solid #222;}
|
|
.tubecss .vjs-fullscreen-control div { width: 16px; height: 16px; background: url('tubesprite.png') -50px 0; margin: 0.5em auto 0; }
|
|
.tubecss .vjs-fullscreen-control div:hover {background: url('tubesprite.png') -50px -75px; }
|
|
|
|
.tubecss.vjs-fullscreen .vjs-fullscreen-control div { background: url('tubesprite.png') -75px 0; }
|
|
.tubecss.vjs-fullscreen .vjs-fullscreen-control div:hover { background: url('tubesprite.png') -75px -75px; }
|
|
|
|
|
|
/* Big Play Button (at start)
|
|
---------------------------------------------------------*/
|
|
.tubecss .vjs-big-play-button {
|
|
display: block; /* Start hidden */ z-index: 2;
|
|
position: absolute; top: 50%; left: 50%; width: 8.0em; height: 8.0em; margin: -43px 0 0 -43px; text-align: center; vertical-align: center; cursor: pointer !important;
|
|
border: 0.3em solid #fff; opacity: 0.95;
|
|
-webkit-border-radius: 25px; -moz-border-radius: 25px; border-radius: 25px;
|
|
|
|
background: #454545;
|
|
background: -moz-linear-gradient(top, #454545 0%, #232323 50%, #161616 50%, #3f3f3f 100%);
|
|
background: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(0%,#454545), color-stop(50%,#232323), color-stop(50%,#161616), color-stop(100%,#3f3f3f));
|
|
background: -webkit-linear-gradient(top, #454545 0%,#232323 50%,#161616 50%,#3f3f3f 100%);
|
|
background: -o-linear-gradient(top, #454545 0%,#232323 50%,#161616 50%,#3f3f3f 100%);
|
|
background: -ms-linear-gradient(top, #454545 0%,#232323 50%,#161616 50%,#3f3f3f 100%);
|
|
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#454545', endColorstr='#3f3f3f',GradientType=0 );
|
|
background: linear-gradient(top, #454545 0%,#232323 50%,#161616 50%,#3f3f3f 100%);
|
|
|
|
/* CSS Shadows */
|
|
-webkit-box-shadow: 4px 4px 8px #000; -moz-box-shadow: 4px 4px 8px #000; box-shadow: 4px 4px 8px #000;
|
|
}
|
|
|
|
.tubecss div.vjs-big-play-button:hover {
|
|
-webkit-box-shadow: 0 0 80px #fff; -moz-box-shadow: 0 0 80px #fff; box-shadow: 0 0 80px #fff;
|
|
}
|
|
|
|
.tubecss div.vjs-big-play-button span {
|
|
position: absolute; top: 50%; left: 50%;
|
|
display: block; width: 35px; height: 42px;
|
|
margin: -20px 0 0 -15px; /* Using negative margin to center image. */
|
|
background: url('tubesprite.png') -100px 0;
|
|
}
|
|
/* Loading Spinner
|
|
---------------------------------------------------------*/
|
|
.vjs-default-skin div.vjs-loading-spinner-fallback {
|
|
display: none;
|
|
position: absolute; top: 50%; left: 50%; width: 30px; height: 30px;
|
|
margin: -15px 0 0 -15px; /* Using negative margin to center image.*/
|
|
background: url('loading.gif');
|
|
}
|
|
|
|
|
|
|
|
/* Spinner Styles
|
|
---------------------------------------------------------*/
|
|
/* CSS Spinners by Kilian Valkhof - http://kilianvalkhof.com/2010/css-xhtml/css3-loading-spinners-without-images/ */
|
|
.vjs-loading-spinner {
|
|
display: hidden;
|
|
position: absolute; top: 50%; left: 50%; width: 55px; height: 55px;
|
|
margin: -28px 0 0 -28px;
|
|
-webkit-animation-name: rotatethis;
|
|
-webkit-animation-duration:1s;
|
|
-webkit-animation-iteration-count:infinite;
|
|
-webkit-animation-timing-function:linear;
|
|
-moz-animation-name: rotatethis;
|
|
-moz-animation-duration:1s;
|
|
-moz-animation-iteration-count:infinite;
|
|
-moz-animation-timing-function:linear;
|
|
}
|
|
@-webkit-keyframes rotatethis {
|
|
0% {-webkit-transform:scale(0.6) rotate(0deg);}
|
|
12.5% {-webkit-transform:scale(0.6) rotate(0deg);}
|
|
12.51% {-webkit-transform:scale(0.6) rotate(45deg);}
|
|
25% {-webkit-transform:scale(0.6) rotate(45deg);}
|
|
25.01% {-webkit-transform:scale(0.6) rotate(90deg);}
|
|
37.5% {-webkit-transform:scale(0.6) rotate(90deg);}
|
|
37.51% {-webkit-transform:scale(0.6) rotate(135deg);}
|
|
50% {-webkit-transform:scale(0.6) rotate(135deg);}
|
|
50.01% {-webkit-transform:scale(0.6) rotate(180deg);}
|
|
62.5% {-webkit-transform:scale(0.6) rotate(180deg);}
|
|
62.51% {-webkit-transform:scale(0.6) rotate(225deg);}
|
|
75% {-webkit-transform:scale(0.6) rotate(225deg);}
|
|
75.01% {-webkit-transform:scale(0.6) rotate(270deg);}
|
|
87.5% {-webkit-transform:scale(0.6) rotate(270deg);}
|
|
87.51% {-webkit-transform:scale(0.6) rotate(315deg);}
|
|
100% {-webkit-transform:scale(0.6) rotate(315deg);}
|
|
}
|
|
@-moz-keyframes rotatethis {
|
|
0% {-moz-transform:scale(0.6) rotate(0deg);}
|
|
12.5% {-moz-transform:scale(0.6) rotate(0deg);}
|
|
12.51% {-moz-transform:scale(0.6) rotate(45deg);}
|
|
25% {-moz-transform:scale(0.6) rotate(45deg);}
|
|
25.01% {-moz-transform:scale(0.6) rotate(90deg);}
|
|
37.5% {-moz-transform:scale(0.6) rotate(90deg);}
|
|
37.51% {-moz-transform:scale(0.6) rotate(135deg);}
|
|
50% {-moz-transform:scale(0.6) rotate(135deg);}
|
|
50.01% {-moz-transform:scale(0.6) rotate(180deg);}
|
|
62.5% {-moz-transform:scale(0.6) rotate(180deg);}
|
|
62.51% {-moz-transform:scale(0.6) rotate(225deg);}
|
|
75% {-moz-transform:scale(0.6) rotate(225deg);}
|
|
75.01% {-moz-transform:scale(0.6) rotate(270deg);}
|
|
87.5% {-moz-transform:scale(0.6) rotate(270deg);}
|
|
87.51% {-moz-transform:scale(0.6) rotate(315deg);}
|
|
100% {-moz-transform:scale(0.6) rotate(315deg);}
|
|
}
|
|
/* Each circle */
|
|
div.vjs-loading-spinner .ball1 { opacity: 0.12; position:absolute; left: 20px; top: 0px; width: 13px; height: 13px; background: #fff;
|
|
border-radius: 13px; -webkit-border-radius: 13px; -moz-border-radius: 13px; border: 1px solid #ccc; }
|
|
|
|
div.vjs-loading-spinner .ball2 { opacity: 0.25; position:absolute; left: 34px; top: 6px; width: 13px; height: 13px; background: #fff;
|
|
border-radius: 13px; -webkit-border-radius: 13px; -moz-border-radius: 13px; border: 1px solid #ccc; }
|
|
div.vjs-loading-spinner .ball3 { opacity: 0.37; position:absolute; left: 40px; top: 20px; width: 13px; height: 13px; background: #fff;
|
|
border-radius: 13px; -webkit-border-radius: 13px; -moz-border-radius: 13px; border: 1px solid #ccc; }
|
|
|
|
div.vjs-loading-spinner .ball4 { opacity: 0.50; position:absolute; left: 34px; top: 34px; width: 13px; height: 13px; background: #fff;
|
|
border-radius: 10px; -webkit-border-radius: 10px; -moz-border-radius: 15px; border: 1px solid #ccc; }
|
|
div.vjs-loading-spinner .ball5 { opacity: 0.62; position:absolute; left: 20px; top: 40px; width: 13px; height: 13px; background: #fff;
|
|
border-radius: 13px; -webkit-border-radius: 13px; -moz-border-radius: 13px; border: 1px solid #ccc; }
|
|
|
|
div.vjs-loading-spinner .ball6 { opacity: 0.75; position:absolute; left: 6px; top: 34px; width: 13px; height: 13px; background: #fff;
|
|
border-radius: 13px; -webkit-border-radius: 13px; -moz-border-radius: 13px; border: 1px solid #ccc; }
|
|
div.vjs-loading-spinner .ball7 { opacity: 0.87; position:absolute; left: 0px; top: 20px; width: 13px; height: 13px; background: #fff;
|
|
border-radius: 13px; -webkit-border-radius: 13px; -moz-border-radius: 13px; border: 1px solid #ccc; }
|
|
|
|
div.vjs-loading-spinner .ball8 { opacity: 1.00; position:absolute; left: 6px; top: 6px; width: 13px; height: 13px; background: #fff;
|
|
border-radius: 13px; -webkit-border-radius: 13px; -moz-border-radius: 13px; border: 1px solid #ccc; } |