diff options
-rw-r--r-- | css/_mediaqueries.sass | 8 | ||||
-rw-r--r-- | css/_sidebar.sass | 4 | ||||
-rw-r--r-- | css/bootstrap.css | 2 | ||||
-rw-r--r-- | css/estilos.css | 6 | ||||
-rw-r--r-- | css/librevideojs/red.less | 1427 | ||||
-rw-r--r-- | css/librevideojs/teal.css | 1128 | ||||
-rw-r--r-- | css/librevideojs/teal.less | 1427 | ||||
-rw-r--r-- | css/librevideojs/teal.min.css | 18 | ||||
-rw-r--r-- | css/mix-material/master.css | 4065 | ||||
-rw-r--r-- | css/mix-material/master.min.css | 5 | ||||
-rw-r--r-- | footer.php | 9 | ||||
-rw-r--r-- | functions.php | 2 | ||||
-rw-r--r-- | header.php | 9 | ||||
-rw-r--r-- | languages/Lidra.pot | 2 | ||||
-rw-r--r-- | languages/es_ES.po | 2 | ||||
-rw-r--r-- | librevideojs/libre-panel.php (renamed from libre-panel.php) | 0 | ||||
-rw-r--r-- | librevideojs/librevideojs.php (renamed from librevideojs.php) | 25 | ||||
-rw-r--r-- | librevideojs/processor.php | 21 |
18 files changed, 4051 insertions, 4109 deletions
diff --git a/css/_mediaqueries.sass b/css/_mediaqueries.sass index 2068605..f1d82b4 100644 --- a/css/_mediaqueries.sass +++ b/css/_mediaqueries.sass @@ -1,3 +1,11 @@ +@media screen and (max-width: 1200px) + .sidebar + .widget + &.redes-sociales-libres + a + .delta-ru + margin: 1.2em + @media screen and (max-width: 990px) .sidebar .widget diff --git a/css/_sidebar.sass b/css/_sidebar.sass index 5e9dbb3..069b612 100644 --- a/css/_sidebar.sass +++ b/css/_sidebar.sass @@ -26,7 +26,7 @@ font-size: 1.875em margin-bottom: 0.5em .delta-ru - margin: 1.875em + margin: 2.2em &.boletin .formulario background: #0e2b37 @@ -44,7 +44,7 @@ font-size: 1.125em border-radius: 3px width: 100% - border:none + border: none margin-bottom: 1.25em input[type="submit"] background: $verde diff --git a/css/bootstrap.css b/css/bootstrap.css index c306b1e..4a703ca 100644 --- a/css/bootstrap.css +++ b/css/bootstrap.css @@ -6971,5 +6971,3 @@ button.close { display: none !important; } } - -/*# sourceMappingURL=bootstrap.css.map */ diff --git a/css/estilos.css b/css/estilos.css index a26073f..4b340cf 100644 --- a/css/estilos.css +++ b/css/estilos.css @@ -337,7 +337,7 @@ header form button.btn.btn-primary { font-size: 1.875em; margin-bottom: 0.5em; } .sidebar .widget.redes-sociales-libres a .delta-ru { - margin: 1.875em; } + margin: 2.2em; } .sidebar .widget.boletin .formulario { background: #0e2b37; padding: 1.25em; @@ -354,6 +354,7 @@ header form button.btn.btn-primary { font-size: 1.125em; border-radius: 3px; width: 100%; + border: none; margin-bottom: 1.25em; } .sidebar .widget.boletin .formulario input[type="submit"] { background: #48b84d; @@ -502,6 +503,9 @@ footer .copyleft p { margin-bottom: 0.5em; } /* Mediaqueries */ +@media screen and (max-width: 1200px) { + .sidebar .widget.redes-sociales-libres a .delta-ru { + margin: 1.2em; } } @media screen and (max-width: 990px) { .sidebar .widget.redes-sociales-libres a .icono { font-size: 1em; } diff --git a/css/librevideojs/red.less b/css/librevideojs/red.less new file mode 100644 index 0000000..3a7287c --- /dev/null +++ b/css/librevideojs/red.less @@ -0,0 +1,1427 @@ +/*! +LibreVideoJS +Version 2.0 +Copyright 2017, Jesus E. +*/ + +// To customize the player skin, change the values of the variables or edit the +// CSS below. +// (This file uses LESS. Learn more at http://lesscss.org/) + +// The base font size controls the size of everything, not just text. All +// dimensions use em-based sizes so that the scale along with the font size. +// Try increasing it to 20px and see what happens. +@base-font-size: 12px; +@touch-device-font-size: 15px; + +// The main font color controls the color of the text and the icons (font icons) +@main-font-color: #ffffff; // e.g. rgb(255, 255, 255) or #ffffff +@primary-color: #f44336; +@primary-dark-color: #f12b24; +@clouds-color: #d6dbdf; + +// Menu - Subtitles/captions +@text-dark-color: #0d1f2c; +@caption-color: #ffffff; //other color #ffed00; + +// The default color of control backgrounds is mostly black but with a little +// bit of blue so it can still be seen on all black video frames, which are +// common. +@control-bg-color: #232221; // e.g. rgb(255, 255, 255) or #ffffff +@control-bg-alpha: 0.8; // 1.0 = 100% opacity, 0.0 = 0% opacity + +// The slider bar color is used for the progress bar and the volume bar +@slider-bar-color: #66A8CC; // e.g. rgb(255, 255, 255) or #ffffff +// The background of the progress bar and volume bar have a lined pattern that +// is created from a base64 encoded image. You can generate your own pattern at +// http://www.patternify.com/ then replace the value in the quotes with your own +@slider-bar-pattern: ~'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR/QJ/Ub//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC'; +// The color of the slider background +@slider-background-color: #333333; +@slider-background-alpha: 0.9; // 1.0 = 100% opacity, 0.0 = 0% opacity + +// The "Big Play Button" is the play button that shows before the video plays. +// To center it set the align values to center and middle. The typical location +// of the button is the center, but there is trend towards moving it to a corner +// where it gets out of the way of valuable content in the poster image. +@big-play-align: left; // left, center, or right +@big-play-vertical-align: top; // top, middle, or bottom +// The button colors match the control colors by default but you can customize +// them by replace the variables (@control-bg-color) with your own color values. +@big-play-bg-color: @control-bg-color; +@big-play-bg-alpha: @control-bg-alpha; +// The font size is what makes the big play button, big. All width/height values +// use ems, which are a multiple of the font size. +// If the @base-font-size is 10px, then 3em equals 30px. +@big-play-font-size: 2em; +// Now that font size is set, the following em values will be a multiple of the +// new font size. If @big-play-font-size is 3em (30px), then setting the any of +// the following values to 2em would equal 60px. 2 * font-size +@big-play-margin: 0.5em; +//@big-play-width: 1em; +@big-play-width: 3.8em; +//@big-play-height: 1em; +@big-play-height: 2.6em; +@big-play-border-radius: 0.8em; +@big-play-border-width: 0.1em; +@big-play-border-color: #3b4249; + +/* SKIN +================================================================================ +The main class name for all skin-specific styles. To make your own skin, +replace all occurrences of 'vjs-flat-skin' with a new name. Then add your new +skin name to your video tag instead of the default skin. +e.g. <video class="video-js my-skin-name"> +*/ +.librevjs-libre-mix-skin { + color: @main-font-color; +} + +/* Custom Icon Font +-------------------------------------------------------------------------------- +The control icons are from a custom font. Each icon corresponds to a character +(e.g. "\e001"). Font icons allow for easy scaling and coloring of icons. +*/ +@lvjs-font-path: '../../fonts'; +@font-face{ + font-family: 'LibreVideoJS'; + src: url('@{lvjs-font-path}/libre-material/libre-icons.eot?#iefix') format('embedded-opentype'), + url('@{lvjs-font-path}/libre-material/libre-icons.woff') format('woff'), + url('@{lvjs-font-path}/libre-material/libre-icons.ttf') format('truetype'), + url('@{lvjs-font-path}/libre-material/libre-icons.svg#icomoon') format('svg'); + + font-weight: normal; + font-style: normal; +} + +// Icon font character values +@play-icon: "\e001"; +@pause-icon: "\e002"; +@volume-muted-icon: "\e003"; +@volume-low-icon: "\e004"; +@volume-mid-icon: "\e005"; +@volume-high-icon: "\e006"; +@play-big-icon: "\e007"; +@fullscreen-enter-icon: "\e000"; +@fullscreen-exit-icon: "\e00b"; +@square-icon: "\e009"; +@spinner-icon: "\e00a"; +@spinner2-icon: "\e00d"; +@spinner3-icon: "\e01e"; +@spinner4-icon: "\e01f"; +@subtitles-icon: "\e00c"; +@captions-icon: "\e008"; +@chapters-icon: "\e00c"; +@share-icon: "\e00e"; +@cog-icon: "\e600"; + +/* Base UI Component Classes +-------------------------------------------------------------------------------- +*/ + +/* Slider - used for Volume bar and Seek bar */ +.librevjs-libre-mix-skin .librevjs-slider { + /* Replace browser focus highlight with handle highlight */// + outline: 0; + position: relative; + cursor: pointer; + padding: 0; + + .background-color-with-alpha(@slider-background-color, @slider-background-alpha); +} + +.librevjs-libre-mix-skin .librevjs-slider:focus { + .box-shadow(0 0 2em #fff); +} + +.librevjs-libre-mix-skin .librevjs-slider-handle { + position: absolute; + /* Needed for IE6 */// + left: 0; + top: 0; +} + +.librevjs-libre-mix-skin .librevjs-slider-handle:before { + text-shadow: 0em 0em 1em #fff; + + position: absolute; + top: 0; + left: 0; +} + +/* Control Bar +-------------------------------------------------------------------------------- +The default control bar that is a container for most of the controls. +*/ +.librevjs-libre-mix-skin .librevjs-control-bar { + /* Start hidden */// + display: none; + position: absolute; + /* Place control bar at the bottom of the player box/video. + If you want more margin below the control bar, add more height. */// + bottom: 0; + /* Use left/right to stretch to 100% width of player div */// + left: 0; + right: 0; + /* Height includes any margin you want above or below control items */// + height: 3.0em; + + .background-color-with-alpha(@control-bg-color, @control-bg-alpha); +} + +/* Show the control bar only once the video has started playing */ +.librevjs-libre-mix-skin.librevjs-has-started .librevjs-control-bar { + display: block; + /* Visibility needed to make sure things hide in older browsers too. */ + visibility: visible; + opacity: 1; + + @trans: visibility 0.1s, opacity 0.1s; // Var needed because of comma + .transition(@trans); +} + +/* Hide the control bar when the video is playing and the user is inactive */ +.librevjs-libre-mix-skin.librevjs-has-started.librevjs-user-inactive.librevjs-playing .librevjs-control-bar { + display: block; + visibility: hidden; + opacity: 0; + + @trans: visibility 1.0s, opacity 1.0s; + .transition(@trans); +} + +.librevjs-libre-mix-skin.librevjs-controls-disabled .librevjs-control-bar { + display: none; +} + +.librevjs-libre-mix-skin.librevjs-using-native-controls .librevjs-control-bar { + display: none; +} + +/* The control bar shouldn't show after an error */ +.librevjs-libre-mix-skin.librevjs-error .librevjs-control-bar { + display: none; +} + +/* Don't hide the control bar if it's audio */ +.librevjs-audio.librevjs-libre-mix-skin.librevjs-has-started.librevjs-user-inactive.librevjs-playing .librevjs-control-bar { + opacity: 1; + visibility: visible; +} + +/* IE8 is flakey with fonts, and you have to change the actual content to force +fonts to show/hide properly. + - "\9" IE8 hack didn't work for this + - Found in windows XP (Propietary Software) IE8 from http://modern.ie. Does not show up in "IE8 mode" in IE9 +*/ +@ie8screen: ~"\0screen"; +.librevjs-libre-mix-skin.librevjs-user-inactive.librevjs-playing .librevjs-control-bar :before { + @media @ie8screen { content: ""; } +} + +/* General styles for individual controls. */ +.librevjs-libre-mix-skin .librevjs-control { + outline: none; + position: relative; + float: left; + text-align: center; + margin: 0; + padding: 0; + height: 3.0em; + width: 4em; +} + +/* FreeArt button icons: http://artlibre.org/licence/lal */ +.librevjs-libre-mix-skin .librevjs-control:before { + font-family: LibreVideoJS; + font-size: 1.5em; + line-height: 2; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + text-align: center; + text-shadow: 1px 1px 1px rgba(0,0,0,0.5); +} + +/* Replacement for focus outline */ +.librevjs-libre-mix-skin .librevjs-control:hover:before { + color: @primary-color; +} + +.librevjs-libre-mix-skin .librevjs-control:focus { + /* outline: 0; */// + /* keyboard-only users cannot see the focus on several of the UI elements when this is set to 0 */ +} + +/* Hide control text visually, but have it available for screenreaders */ +.librevjs-libre-mix-skin .librevjs-control-text { + .hide-visually; +} + +/* Play/Pause +-------------------------------------------------------------------------------- +*/ +.librevjs-libre-mix-skin .librevjs-play-control { + width: 5em; + cursor: pointer; + color: @primary-color; +} +.librevjs-libre-mix-skin .librevjs-play-control:before { + content: @play-icon; +} +.librevjs-libre-mix-skin .librevjs-play-control:hover:before { + color: @primary-dark-color; +} +.librevjs-libre-mix-skin.librevjs-playing .librevjs-play-control:before { + content: @pause-icon; +} + +/* Playback toggle +-------------------------------------------------------------------------------- +*/ +.librevjs-libre-mix-skin .librevjs-playback-rate .librevjs-playback-rate-value { + font-size: 1.5em; + line-height: 2; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + text-align: center; + text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5); +} + +.librevjs-libre-mix-skin .librevjs-playback-rate.librevjs-menu-button .librevjs-menu .librevjs-menu-content { + width: 4em; + left: -2em; + list-style: none; +} + +/* Volume/Mute +-------------------------------------------------------------------------------- */ +.librevjs-libre-mix-skin .librevjs-mute-control, +.librevjs-libre-mix-skin .librevjs-volume-menu-button { + cursor: pointer; + float: right; +} +.librevjs-libre-mix-skin .librevjs-mute-control:before, +.librevjs-libre-mix-skin .librevjs-volume-menu-button:before { + content: @volume-high-icon; +} +.librevjs-libre-mix-skin .librevjs-mute-control.librevjs-vol-0:before, +.librevjs-libre-mix-skin .librevjs-volume-menu-button.librevjs-vol-0:before { + content: @volume-muted-icon; +} +.librevjs-libre-mix-skin .librevjs-mute-control.librevjs-vol-1:before, +.librevjs-libre-mix-skin .librevjs-volume-menu-button.librevjs-vol-1:before { + content: @volume-low-icon; +} +.librevjs-libre-mix-skin .librevjs-mute-control.librevjs-vol-2:before, +.librevjs-libre-mix-skin .librevjs-volume-menu-button.librevjs-vol-2:before { + content: @volume-mid-icon; +} + +.librevjs-libre-mix-skin .librevjs-volume-control { + width: 5em; + float: right; +} +.librevjs-libre-mix-skin .librevjs-volume-bar { + width: 5em; + height: 0.6em; + margin: 1.1em auto 0; +} + +.librevjs-libre-mix-skin .librevjs-volume-level { + position: absolute; + top: 0; + left: 0; + height: 0.6em; + /* assuming volume starts at 1.0 */ + width: 100%; + + background: @primary-color; +} +.librevjs-libre-mix-skin .librevjs-volume-bar .librevjs-volume-handle { + width: 0.5em; + height: 0.5em; + /* Assumes volume starts at 1.0. If you change the size of the + handle relative to the volume bar, you'll need to update this value + too. */ + left: 4.5em; +} + +.librevjs-libre-mix-skin .librevjs-volume-handle:before { + font-size: 0.9em; + top: -0.2em; + left: -0.2em; + + width: 1em; + height: 1em; +} + +/* The volume menu button is like menu buttons (captions/subtitles) but works + a little differently. It needs to be possible to tab to the volume slider + without hitting space bar on the menu button. To do this we're not using + display:none to hide the slider menu by default, and instead setting the + width and height to zero. */ +.librevjs-libre-mix-skin .librevjs-volume-menu-button .librevjs-menu { + display: block; + width: 0; + height: 0; + border-top-color: transparent; +} + +.librevjs-libre-mix-skin .librevjs-volume-menu-button .librevjs-menu .librevjs-menu-content { + height: 0; + width: 0; + transform: rotate(-90deg); +} + +.librevjs-libre-mix-skin .librevjs-volume-menu-button.librevjs-menu-button .librevjs-menu .librevjs-menu-content { + margin-bottom: 3.2em; +} + +/*.librevjs-libre-mix-skin .librevjs-volume-menu-button:hover .librevjs-menu, +.librevjs-libre-mix-skin .librevjs-volume-menu-button .librevjs-menu.librevjs-lock-showing { + border-top-color: rgba(7, 40, 50, 0.5); +}*/ + +.librevjs-libre-mix-skin .librevjs-volume-menu-button:hover .librevjs-menu .librevjs-menu-content, +.librevjs-libre-mix-skin .librevjs-volume-menu-button .librevjs-menu.librevjs-lock-showing .librevjs-menu-content { + height: 2.9em; + width: 10em; +} + +/* Progress +-------------------------------------------------------------------------------- +*/ +.librevjs-libre-mix-skin .librevjs-progress-control { + position: absolute; + left: 0; + right: 0; + width: auto; + font-size: 0.3em; + height: 1em; + /* Set above the rest of the controls. */// + top: -1em; + + /* Shrink the bar slower than it grows. */// + .transition(all 0.4s); +} + +/* On hover, make the progress bar grow to something that's more clickable. + This simply changes the overall font for the progress bar, and this + updates both the em-based widths and heights, as wells as the icon font */ +.librevjs-libre-mix-skin:hover .librevjs-progress-control { + font-size: 1em; + + /* Even though we're not changing the top/height, we need to include them in + the transition so they're handled correctly. */ + .transition(all 0.2s); +} + +/* Box containing play and load progresses. Also acts as seek scrubber. */ +.librevjs-libre-mix-skin .librevjs-progress-holder { + height: 100%; +} + +/* Progress Bars */ +.librevjs-libre-mix-skin .librevjs-progress-holder .librevjs-play-progress, +.librevjs-libre-mix-skin .librevjs-progress-holder .librevjs-load-progress, +.librevjs-libre-mix-skin .librevjs-progress-holder .librevjs-load-progress div { + position: absolute; + display: block; + height: 100%; + margin: 0; + padding: 0; + /* updated by javascript during playback */ + width: 0; + /* Needed for IE6 */// + left: 0; + top: 0; +} + +.librevjs-libre-mix-skin .librevjs-play-progress { + /* Using a data URI to create the white diagonal lines with a transparent + background. Surprisingly works in IE8. + Changing the first color value will change the bar color. + Also using a paralax effect to make the lines move backwards. + The -50% left position makes that happen. + */ + background: @primary-color /* IE8- Fallback */; +} +.librevjs-libre-mix-skin .librevjs-load-progress { + background: rgb(red(@clouds-color), green(@clouds-color), blue(@clouds-color)) /* IE8- Fallback */; + background: rgba(red(@clouds-color), green(@clouds-color), blue(@clouds-color), 0.6); +} + +/* there are child elements of the load progress bar that represent the + specific time ranges that have been buffered */ +.librevjs-libre-mix-skin .librevjs-load-progress div { + background: rgb(120, 120, 120) /* IE8- Fallback */; + background: rgba(255, 255, 255, 0.1); +} + +.librevjs-libre-mix-skin .librevjs-seek-handle { + width: 2em; + height: 2em; + border-radius: 1em; + top: -0.5em; + background-color: @primary-dark-color; + opacity: 0; + transition: opacity .4s ease-in-out; +} + +/*.librevjs-libre-mix-skin .librevjs-seek-handle:before { + padding-top: 0.1em; +}*/ + +.librevjs-libre-mix-skin .librevjs-progress-control:hover .librevjs-slider-handle { + opacity: 1; + transition: opacity .4s ease-in-out; +} + +/* Live Mode +-------------------------------------------------------------------------------- +*/ +.librevjs-libre-mix-skin.librevjs-live .librevjs-time-controls, +.librevjs-libre-mix-skin.librevjs-live .librevjs-time-divider, +.librevjs-libre-mix-skin.librevjs-live .librevjs-progress-control { + display: none; +} +.librevjs-libre-mix-skin.librevjs-live .librevjs-live-display { + display: block; +} + +/* Live Display +-------------------------------------------------------------------------------- +*/ +.librevjs-libre-mix-skin .librevjs-live-display { + display: none; + font-size: 1em; + line-height: 3em; +} + +/* Time Display +-------------------------------------------------------------------------------- +*/ +.librevjs-libre-mix-skin .librevjs-time-controls { + font-size: 1.083em; + font-weight: bold; + color: #d6dbdf; + /* Align vertically by making the line height the same as the control bar */// + line-height: 3em; + width: 3em; +} +.librevjs-libre-mix-skin .librevjs-current-time { float: left; } +.librevjs-libre-mix-skin .librevjs-current-time-display { float: right; } +.librevjs-libre-mix-skin .librevjs-duration, +.librevjs-libre-mix-skin .librevjs-duration .librevjs-duration-display { float: left; } +/* Remaining time is in the HTML, but not included in default design */ +.librevjs-libre-mix-skin .librevjs-remaining-time { display: none; float: left; } +.librevjs-time-divider { + float: left; + line-height: 3em; + font-size: 1.083em; + font-weight: bold; + width: 1em; + text-align: center; +} + +/* Fullscreen +-------------------------------------------------------------------------------- +*/ +.librevjs-libre-mix-skin .librevjs-fullscreen-control { + width: 3.8em; + cursor: pointer; + float: right; +} +.librevjs-libre-mix-skin .librevjs-fullscreen-control:before { + content: @fullscreen-enter-icon; +} +/* Switch to the exit icon when the player is in fullscreen */ +.librevjs-libre-mix-skin.librevjs-fullscreen .librevjs-fullscreen-control:before { + content: @fullscreen-exit-icon; +} + +/* Big Play Button (play button at start) +-------------------------------------------------------------------------------- +Positioning of the play button in the center or other corners can be done more +easily in the skin designer. http://designer.videojs.com/ +*/ +.librevjs-libre-mix-skin .librevjs-big-play-button { + left: 50%; + top: 50%; + font-size: @big-play-font-size; + display: block; + z-index: 2; + position: absolute; + width: @big-play-width; + height: @big-play-height; + margin-left: -@big-play-width/2; + margin-top: -@big-play-width/2.5; + text-align: center; + vertical-align: middle; + cursor: pointer; + opacity: 1; + color: @main-font-color; + //Sombras + .background-color-with-alpha(@slider-background-color, @slider-background-alpha); + @border: .4em; + .border-radius(@border); + @trans: all .4s; // Var needed because of comma + .transition(@trans); +} + +/* Hide if controls are disabled */ +.librevjs-libre-mix-skin.librevjs-controls-disabled .librevjs-big-play-button { + display: none; +} +/* Hide when video starts playing */ +.librevjs-libre-mix-skin.librevjs-has-started .librevjs-big-play-button { + display: none; +} +/* Hide on mobile devices. Remove when we stop using native controls + by default on mobile */ +.librevjs-libre-mix-skin.librevjs-using-native-controls .librevjs-big-play-button { + display: none; +} + +.librevjs-libre-mix-skin:hover .librevjs-big-play-button, +.librevjs-libre-mix-skin .librevjs-big-play-button:focus { + color: @main-font-color; + background-color: @primary-color; +} + +.librevjs-libre-mix-skin .librevjs-big-play-button:before { + content: @play-icon; + font-family: LibreVideoJS; + /* In order to center the play icon vertically we need to set the line height + to the same as the button height */ + text-align: center /* Needed for IE8 */; + + /*Shadow*/ + text-shadow: 0.05em 0.05em 0.1em #000; + line-height: 2.6em; + + position: absolute; + left: 0; + width: 100%; + height: 100%; +} + +.librevjs-error .librevjs-big-play-button { + display: none; +} + +/* Error Display +-------------------------------------------------------------------------------- +*/ + +.librevjs-error-display { + display: none; +} + +.librevjs-error .librevjs-error-display { + display: block; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; +} + +.librevjs-error .librevjs-error-display:before { + content: 'X'; + font-family: Arial; + font-size: 4em; + color: #666666; + /* In order to center the play icon vertically we need to set the line height + to the same as the button height */ + line-height: 1; + text-shadow: 0.05em 0.05em 0.1em #000; + text-align: center /* Needed for IE8 */; + vertical-align: middle; + + position: absolute; + left: 0; + top: 50%; + margin-top: -0.5em; + width: 100%; +} + +.librevjs-error-display div { + position: absolute; + bottom: 1em; + right: 0; + left: 0; + + font-size: 1.4em; + text-align: center; + padding: 3px; + background: rgb(0, 0, 0); // fallback to just black + background: rgba(0,0,0,0.5); // Normally show black at 50% opacity +} + +.librevjs-error-display a, .librevjs-error-display a:visited { + color: #F4A460; +} + +/* Loading Spinner +-------------------------------------------------------------------------------- +*/ + +.librevjs-loading-spinner { + /* Should be hidden by default */// + display: none; + + position: absolute; + top: 50%; + left: 50%; + + font-size: 4em; + line-height: 1; + + width: 1em; + height: 1em; + + margin-left: -0.5em; + margin-top: -0.5em; + + opacity: 0.75; + .animation(spin 1.5s infinite linear); +} + +/* Show the spinner when waiting for data and seeking to a new time */ +.librevjs-waiting .librevjs-loading-spinner, +.librevjs-seeking .librevjs-loading-spinner { + display: block; + + /* only animate when showing because it can be processor heavy */// + .animation(spin 1.5s infinite linear); +} + +/* Errors are unrecoverable without user interaction so hide the spinner */ +.librevjs-error .librevjs-loading-spinner { + display: none; + + /* ensure animation doesn't continue while hidden */// + .animation(none); +} + +.librevjs-libre-mix-skin .librevjs-loading-spinner:before { + content: @spinner3-icon; + font-family: LibreVideoJS; + + position: absolute; + top: 0; + left: 0; + width: 1em; + height: 1em; + text-align: center; + text-shadow: 0em 0em 0.1em #000; +} + +@-moz-keyframes spin { + 0% { -moz-transform: rotate(0deg); } + 100% { -moz-transform: rotate(359deg); } +} +@-webkit-keyframes spin { + 0% { -webkit-transform: rotate(0deg); } + 100% { -webkit-transform: rotate(359deg); } +} +@-o-keyframes spin { + 0% { -o-transform: rotate(0deg); } + 100% { -o-transform: rotate(359deg); } +} +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(359deg); } +} + +/* Menu Buttons (Captions/Subtitles/etc.) +-------------------------------------------------------------------------------- +*/ +.librevjs-libre-mix-skin .librevjs-menu-button { + float: right; + cursor: pointer; +} + +.librevjs-libre-mix-skin .librevjs-menu { + display: none; + position: absolute; + bottom: 0; + left: 0em; /* (Width of vjs-menu - width of button) / 2 */ + width: 0em; + height: 0em; + margin-bottom: 3em; + + border-left: 2em solid transparent; + border-right: 2em solid transparent; + + border-top: 1.55em solid rgb(0, 0, 0); /* Same width top as ul bottom */ + border-top-color: rgba(0, 0, 0, 0.4); /* Same as ul background */ +} + +/* Color menu (captions/subtitles)*/ +.librevjs-libre-mix-skin .librevjs-menu-button ul li.librevjs-selected { + color: @text-dark-color; + background-color: @primary-color; +} + +.librevjs-libre-mix-skin .librevjs-menu-button ul li:focus, +.librevjs-libre-mix-skin .librevjs-menu-button ul li:hover, +.librevjs-libre-mix-skin .librevjs-menu-button ul li.librevjs-selected:focus, +.librevjs-libre-mix-skin .librevjs-menu-button ul li.librevjs-selected:hover { + outline: 0; + color: @primary-dark-color; + background-color: @primary-color; +} + +/*Title Resolution | subtitles and Caption*/ + +.librevjs-libre-mix-skin ul li.librevjs-menu-title.librevjs-res-menu-title { + color: @primary-color; + background-color: inherit; +} + +.librevjs-libre-mix-skin ul li.librevjs-menu-title.librevjs-res-menu-title:hover { + color: @primary-color; + background-color: inherit; +} + +/* Button Pop-up Menu */ +.librevjs-libre-mix-skin .librevjs-menu-button .librevjs-menu .librevjs-menu-content { + display: block; + padding: 0; margin: 0; + position: absolute; + width: 10em; + bottom: 1.5em; /* Same bottom as vjs-menu border-top */ + max-height: 15em; + overflow: auto; + + left: -5em; /* Width of menu - width of button / 2 */ + + background-color: @control-bg-color; + background-color: rgba(0, 0, 0, 0.4); + .box-shadow(-0.2em -0.2em 0.3em rgba(255, 255, 255, 0.2)); +} + +/* +.librevjs-libre-mix-skin .librevjs-menu-button:hover .librevjs-control-content .librevjs-menu, +.librevjs-libre-mix-skin .librevjs-control-content .librevjs-menu.librevjs-lock-showing +*/ + +.librevjs-libre-mix-skin .librevjs-menu-button:hover .librevjs-menu { + display: block; +} +/* prevent menus from opening while scrubbing (FF, IE) */ +.librevjs-libre-mix-skin.librevjs-scrubbing .librevjs-menu-button:hover .librevjs-control-content .librevjs-menu { + display: none; +} +.librevjs-libre-mix-skin .librevjs-menu-button ul li { + list-style: none; + margin: 0; + padding: 0.3em 0 0.3em 0; + line-height: 1.4em; + font-size: 1.2em; + text-align: center; + text-transform: lowercase; +} +.librevjs-libre-mix-skin .librevjs-menu-button ul li.librevjs-selected { + background-color: @primary-color; +} +.librevjs-libre-mix-skin .librevjs-menu-button ul li:focus, +.librevjs-libre-mix-skin .librevjs-menu-button ul li:hover, +.librevjs-libre-mix-skin .librevjs-menu-button ul li.librevjs-selected:focus, +.librevjs-libre-mix-skin .librevjs-menu-button ul li.librevjs-selected:hover { + outline: 0; + color: @text-dark-color; + background-color: @primary-color; + + /*.background-color-with-alpha(rgb(255, 255, 255), 0.75);*/ + /*.box-shadow(0 0 1em rgba(255, 255, 255, 1));*/ +} +.librevjs-libre-mix-skin .librevjs-menu-button ul li.librevjs-menu-title { + text-align: center; + text-transform: uppercase; + font-size: 1em; + line-height: 2em; + padding: 0; + margin: 0 0 0.3em 0; + font-weight: bold; + cursor: default; +} + +/* Subtitles Button */ +.librevjs-libre-mix-skin .librevjs-subtitles-button:before { + content: @subtitles-icon; +} + +/* Captions Button */ +.librevjs-libre-mix-skin .librevjs-captions-button:before { + content: @captions-icon; +} + +/* Chapters Button */ +.librevjs-libre-mix-skin .librevjs-chapters-button:before { + content: @chapters-icon; +} + +.librevjs-libre-mix-skin .librevjs-chapters-button.librevjs-menu-button .librevjs-menu .librevjs-menu-content { + width: 24em; + left: -12em; +} + +/* Replacement for focus outline */ +.librevjs-libre-mix-skin .librevjs-captions-button:focus .librevjs-control-content:before, +.librevjs-libre-mix-skin .librevjs-captions-button:hover .librevjs-control-content:before { + .box-shadow(0 0 1em rgba(255, 255, 255, 1)); +} + +/* +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. ** +*/ +.cliplibre-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: @base-font-size; + /* Allow poster to be vertically aligned. */ + vertical-align: middle; + /* display: table-cell; */ /*This works in Safari but not Firefox.*/ + + /* Provide some basic defaults for fonts */ + font-weight: normal; + font-style: normal; + /* Avoiding helvetica: issue #376 */ + font-family: Arial, Helvetica, sans-serif; + + /* Turn off user selection (text highlighting) by default. + The majority of player components will not be text blocks. + Text areas will need to turn user selection back on. */ + .user-select(none); +} + +/* Playback technology elements expand to the width/height of the containing div + <video> or <object> */ +.cliplibre-js .librevjs-tech { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +/* Fix for Firefox 9 fullscreen (only if it is enabled). Not needed when + checking fullScreenEnabled. */ +.cliplibre-js:-moz-full-screen { position: absolute; } + +/* Fullscreen Styles */ +body.librevjs-full-window { + padding: 0; + margin: 0; + height: 100%; + /* Fix for IE6 full-window. http://www.cssplay.co.uk/layouts/fixed.html */// + overflow-y: auto; +} +.cliplibre-js.librevjs-fullscreen { + position: fixed; + overflow: hidden; + z-index: 1000; + left: 0; + top: 0; + bottom: 0; + right: 0; + width: 100% !important; + height: 100% !important; + /* IE6 full-window (underscore hack) */// + _position: absolute; +} +.cliplibre-js:-webkit-full-screen { + width: 100% !important; + height: 100% !important; +} +.cliplibre-js.librevjs-fullscreen.librevjs-user-inactive { + cursor: none; +} + +/* Poster Styles */ +.librevjs-poster { + background-repeat: no-repeat; + background-position: 50% 50%; + background-size: contain; + background-color: #000000; + cursor: pointer; + margin: 0; + padding: 0; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; +} +.librevjs-poster img { + display: block; + margin: 0 auto; + max-height: 100%; + padding: 0; + width: 100%; +} + +/* Hide the poster after the video has started playing */ +.cliplibre-js.librevjs-has-started .librevjs-poster { + display: none; +} + +/* Don't hide the poster if we're playing audio */ +.cliplibre-js.librevjs-audio.librevjs-has-started .librevjs-poster { + display: block; +} + +/* Hide the poster when controls are disabled because it's clickable + and the native poster can take over */ +.cliplibre-js.librevjs-controls-disabled .librevjs-poster { + display: none; +} + +/* Hide the poster when native controls are used otherwise it covers them */ +.cliplibre-js.librevjs-using-native-controls .librevjs-poster { + display: none; +} + +/* Text Track Styles */ +/* Overall track holder for both captions and subtitles */ +.cliplibre-js .librevjs-text-track-display { + text-align: center; + position: absolute; + bottom: 4em; + left: 1em; + right: 1em; +} + +.cliplibre-js .librevjs-subtitles { + color: #fff +} + +.cliplibre-js .librevjs-captions { + color: @caption-color; + background-color: rgba(2, 7, 11, 0.7); +} + + +/* Captions Settings Dialog */ +.librevjs-caption-settings { + position: relative; + top: 1em; + background-color: #000; + opacity: 0.75; + color: #FFF; + margin: 0 auto; + padding: 0.5em; + height: 15em; + font-family: Arial, Helvetica, sans-serif; + font-size: 12px; + width: 40em; +} + +.librevjs-caption-settings .librevjs-tracksettings { + top: 0; + bottom: 2em; + left: 0; + right: 0; + position: absolute; + overflow: auto; +} + +.librevjs-caption-settings .librevjs-tracksettings-colors, +.librevjs-caption-settings .librevjs-tracksettings-font { + float: left; +} +.librevjs-caption-settings .librevjs-tracksettings-colors:after, +.librevjs-caption-settings .librevjs-tracksettings-font:after, +.librevjs-caption-settings .librevjs-tracksettings-controls:after { + clear: both; +} + +.librevjs-caption-settings .librevjs-tracksettings-controls { + position: absolute; + bottom: 1em; + right: 1em; +} + +.librevjs-caption-settings .librevjs-tracksetting { + margin: 5px; + padding: 3px; + min-height: 40px; +} +.librevjs-caption-settings .librevjs-tracksetting label { + display: block; + width: 100px; + margin-bottom: 5px; +} + +.librevjs-caption-settings .librevjs-tracksetting span { + display: inline; + margin-left: 5px; +} + +.librevjs-caption-settings .librevjs-tracksetting > div { + margin-bottom: 5px; + min-height: 20px; +} + +.librevjs-caption-settings .librevjs-tracksetting > div:last-child { + margin-bottom: 0; + padding-bottom: 0; + min-height: 0; +} + +.librevjs-caption-settings label > input { + margin-right: 10px; +} + +.librevjs-caption-settings input[type="button"] { + width: 40px; + height: 40px; +} + +/* Hide disabled or unsupported controls */ +.librevjs-hidden { display: none !important; } + +.librevjs-lock-showing { + display: block !important; + opacity: 1; + visibility: visible; +} + +/* In IE8 w/ no JavaScript (no HTML5 shim), the video tag doesn't register. + The .cliplibre-js classname on the video tag also isn't considered. + This optional paragraph inside the video tag can provide a message to users + about what's required to play video. */ +.librevjs-no-js { + padding: 2em; + color: #ccc; + background-color: #333; + font-size: 1.8em; + font-family: Arial, sans-serif; + text-align: center; + width: 30em; + height: 15em; + margin: 0 auto; +} + +.librevjs-no-js a, .librevjs-no-js a:visited { + color: #F4A460; +} + +/*Responsive web desing + The dates are calculates for display +*/ + +.cliplibre-js-responsive-container.librevjs-hd { + padding-top: 56.25%; +} + +.cliplibre-js-responsive-container.librevjs-sd { + padding-top: 75%; +} + +.cliplibre-js-responsive-container { + width: 100%; + position: relative; +} + +.cliplibre-js-responsive-container .cliplibre-js { + height: 100% !important; + width: 100% !important; + position: absolute; + top: 0; + left: 0; +} + +@media screen and (max-width: 800px) { + .cliplibre-js .librevjs-text-track { + font-size: 1.5em; + margin-bottom: -0.2em; + line-height: 1.5; + } +} + +@media screen and (max-width: 600px) { + .cliplibre-js .librevjs-text-track { + font-size: 1.2em; + } + .cliplibre-js .librevjs-text-track-display { + bottom: 2em; + } +} + +@media screen and (max-width: 413px) { + .cliplibre-js { + font-size: 8px; + } +} + +@media screen and (max-width: 400px) { + .cliplibre-js .librevjs-text-track { + font-size: 1em; + } + .librevjs-libre-mix-skin .librevjs-big-play-button { + font-size: 2em; + } + .cliplibre-js .librevjs-text-track-display { + bottom: 1em; + } +} + +@media screen and (max-width: 335px) { + .cliplibre-js { + font-size: 6px; + } +} + +@media screen and (max-width: 150px) { + .librevjs-libre-mix-skin .librevjs-big-play-button { + font-size: 1.8em; + } +} + +@media screen and (max-width: 90px) { + .librevjs-libre-mix-skin .librevjs-big-play-button { + font-size: 1.4em; + } +} + +/* End Responsive*/ + +// MIXINS +// ============================================================================= +// Mixins are a LESS feature and are used to add vendor prefixes to CSS rules +// when needed. + +// https://developer.mozilla.org/en-US/docs/Web/CSS/box-shadow +.box-shadow (@string: 0 0 1em rgba(0, 0, 0, 0.25)) { + /* box-shadow */// + -webkit-box-shadow: @string; + -moz-box-shadow: @string; + box-shadow: @string; +} + +// https://developer.mozilla.org/en-US/docs/Web/CSS/border-radius +.border-radius (@string: 5px) { + /* border-radius */// + -webkit-border-radius: @string; + -moz-border-radius: @string; + border-radius: @string; +} + +// https://developer.mozilla.org/en-US/docs/Web/CSS/transition +.transition (@string: all 1s linear) { + /* transition */// + -webkit-transition: @string; + -moz-transition: @string; + -o-transition: @string; + transition: @string; +} + +// https://developer.mozilla.org/en-US/docs/Web/CSS/transition +.transition-delay (@string: 1s) { + /* transition-delay */// + -webkit-transition-delay: @string; + -moz-transition-delay: @string; + -o-transition-delay: @string; + transition-delay: @string; +} + +// https://developer.mozilla.org/en-US/docs/Web/CSS/animation +.animation (@string: spin 1s infinite linear) { + /* animation */// + -webkit-animation: @string; + -moz-animation: @string; + -o-animation: @string; + animation: @string; +} + +// https://developer.mozilla.org/en-US/docs/Web/CSS/transform +.transform (@string: rotate(-45deg)) { + /* transform */// + -webkit-transform: @string; + -moz-transform: @string; + -ms-transform: @string; + -o-transform: @string; + transform: @string; +} + +// https://developer.mozilla.org/en-US/docs/Web/CSS/user-select +.user-select (@string: none) { + /* user-select */// + -webkit-user-select: @string; + -moz-user-select: @string; + -ms-user-select: @string; + user-select: @string; +} + +// Hide something visually but keep available for screen readers. +// http://h5bp.com/v +.hide-visually () { + /* hide-visually */// + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} + +// Align an object with absolute positioning +// Used to align the Big Play Button in the corners or center +.absolute-align (@align, @margin, @length) when (@align = top) { + top: @margin; +} +.absolute-align (@align, @margin, @length) when (@align = bottom) { + bottom: @margin; +} +.absolute-align (@align, @margin, @length) when (@align = left) { + left: @margin; +} +.absolute-align (@align, @margin, @length) when (@align = right) { + right: @margin; +} +.absolute-align (@align, @margin, @length) when (@align = center) { + /* Center it horizontally */// + left: 50%; + margin-left: (-(@length/2)); + // margin-left: ((@length*-1)/2); +} +.absolute-align (@align, @margin, @length) when (@align = middle) { + /* Center it vertically */// + top: 50%; + margin-top: (-(@length/2)); + // margin-top: ((@length*-1)/2); +} + +// http://stackoverflow.com/questions/637921/opacity-of-background-but-not-the-text +.background-color-with-alpha (@color, @alpha) { + @rgba: rgba(red(@color), green(@color), blue(@color), @alpha); + /* background-color-with-alpha */// + background-color: @color; + background-color: @rgba; + // No longer using MS filters because they break border radius in IE9 + // @argb: argb(@rgba); + // filter: ~"progid:DXImageTransform.Microsoft.gradient(startColorstr=@{argb}, endColorstr=@{argb})"; + // -ms-filter: ~"progid:DXImageTransform.Microsoft.gradient(startColorstr=@{argb}, endColorstr=@{argb})"; +} + +.border-color-with-alpha (@color, @alpha) { + @rgba: rgba(red(@color), green(@color), blue(@color), @alpha); + /* border-color-with-alpha */// + border-color: @color; + border-color: @rgba; +} + +// Autonomes styles for quality selector and progressTips + +/* Quality Selector Universal +------------------------------------------------------------------------------*/ +/* Position the button */ +.librevjs-res-button { + font-weight: bold; + float: right; + line-height: 3em; +} + +/* Don't show hover effects on title */ +ul li.librevjs-menu-title.librevjs-res-menu-title:hover { + cursor: default; + background-color: transparent; + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +/* Needed to keep text visible in LibreVideoJS */ +.librevjs-res-button .librevjs-control-text { + width: auto; + height: auto; + clip: auto; +} + +/* ProgressTips Universal +------------------------------------------------------------------------------*/ +.librevjs-progress-tip { + visibility: hidden; + display: block; + opacity: 0.8; + padding: 5px; + font-size: 10px; + position: absolute; + z-index: 100000; +} + +.librevjs-progress-tip-arrow { + background: url(data:image/gif;base64,R0lGODlhCQAJAIABAAAAAAAAACH5BAEAAAEALAAAAAAJAAkAAAIRjAOnwIrcDJxvwkplPtchVQAAOw==) no-repeat top left; + bottom: 0; + left: 50%; + margin-left: -4px; + background-position: bottom left; + position: absolute; + width: 9px; + height: 5px; +} + +.librevjs-progress-tip-inner { + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + padding: 5px 8px 4px 8px; + background-color: black; + color: white; + max-width: 200px; + text-align: center; +} + +// NOTES ON LESS (tracking learnings so we don't forget) +// ============================================================================= +// * We want this file to continue to be accessible by people who don't know +// LESS but know CSS. This means finding the balance between using the most +// valuable LESS features (e.g. variables) and keeping it looking like CSS. +// So it's best to avoid advanced LESS features like conditional statements. +// (we're using one for the big play button position because that's a hot +// topic) +// +// * We care about the readability of the CSS output of LESS, which means we +// have to be careful about what features of LESS we use. (if you're building +// your own skin this may not apply) +// 1. Comments inside of rules (strangely) have an extra line added after +// them in the CSS output. To avoid this we can add a LESS comment after +// the CSS comment. +// /* comment */// +// +// 2. In a rule with nested rules, any comments outside of a rule are moved +// to the top of the parent rule. i.e. it might look like: +// /* title of rule 1 */ +// /* title of rule 2 */ +// .rule1 {} +// .rule2 {} +// This is why we aren't using nested rules inside of the +// librevjs-default-skin class. + +/* ----------------------------------------------------------------------------- +The original source of this file lives at +https://github.com/videojs/video.js/blob/master/src/css/video-js.less */ diff --git a/css/librevideojs/teal.css b/css/librevideojs/teal.css new file mode 100644 index 0000000..f6fc653 --- /dev/null +++ b/css/librevideojs/teal.css @@ -0,0 +1,1128 @@ +/*! +LibreVideoJS +Version 2.0 +Copyright 2017, Jesus E. +*/ +/* SKIN +================================================================================ +The main class name for all skin-specific styles. To make your own skin, +replace all occurrences of 'vjs-flat-skin' with a new name. Then add your new +skin name to your video tag instead of the default skin. +e.g. <video class="video-js my-skin-name"> +*/ +.librevjs-libre-mix-skin { + color: #ffffff; +} +/* Custom Icon Font +-------------------------------------------------------------------------------- +The control icons are from a custom font. Each icon corresponds to a character +(e.g. "\e001"). Font icons allow for easy scaling and coloring of icons. +*/ +@font-face { + font-family: 'LibreVideoJS'; + src: url('../../fonts/libre-material/libre-icons.eot?#iefix') format('embedded-opentype'), url('../../fonts/libre-material/libre-icons.woff') format('woff'), url('../../fonts/libre-material/libre-icons.ttf') format('truetype'), url('../../fonts/libre-material/libre-icons.svg#icomoon') format('svg'); + font-weight: normal; + font-style: normal; +} +/* Base UI Component Classes +-------------------------------------------------------------------------------- +*/ +/* Slider - used for Volume bar and Seek bar */ +.librevjs-libre-mix-skin .librevjs-slider { + /* Replace browser focus highlight with handle highlight */ + outline: 0; + position: relative; + cursor: pointer; + padding: 0; + /* background-color-with-alpha */ + background-color: #333333; + background-color: rgba(51, 51, 51, 0.9); +} +.librevjs-libre-mix-skin .librevjs-slider:focus { + /* box-shadow */ + -webkit-box-shadow: 0 0 2em #fff; + -moz-box-shadow: 0 0 2em #fff; + box-shadow: 0 0 2em #fff; +} +.librevjs-libre-mix-skin .librevjs-slider-handle { + position: absolute; + /* Needed for IE6 */ + left: 0; + top: 0; +} +.librevjs-libre-mix-skin .librevjs-slider-handle:before { + text-shadow: 0em 0em 1em #fff; + position: absolute; + top: 0; + left: 0; +} +/* Control Bar +-------------------------------------------------------------------------------- +The default control bar that is a container for most of the controls. +*/ +.librevjs-libre-mix-skin .librevjs-control-bar { + /* Start hidden */ + display: none; + position: absolute; + /* Place control bar at the bottom of the player box/video. + If you want more margin below the control bar, add more height. */ + bottom: 0; + /* Use left/right to stretch to 100% width of player div */ + left: 0; + right: 0; + /* Height includes any margin you want above or below control items */ + height: 3.0em; + /* background-color-with-alpha */ + background-color: #232221; + background-color: rgba(35, 34, 33, 0.8); +} +/* Show the control bar only once the video has started playing */ +.librevjs-libre-mix-skin.librevjs-has-started .librevjs-control-bar { + display: block; + /* Visibility needed to make sure things hide in older browsers too. */ + visibility: visible; + opacity: 1; + /* transition */ + -webkit-transition: visibility 0.1s, opacity 0.1s; + -moz-transition: visibility 0.1s, opacity 0.1s; + -o-transition: visibility 0.1s, opacity 0.1s; + transition: visibility 0.1s, opacity 0.1s; +} +/* Hide the control bar when the video is playing and the user is inactive */ +.librevjs-libre-mix-skin.librevjs-has-started.librevjs-user-inactive.librevjs-playing .librevjs-control-bar { + display: block; + visibility: hidden; + opacity: 0; + /* transition */ + -webkit-transition: visibility 1s, opacity 1s; + -moz-transition: visibility 1s, opacity 1s; + -o-transition: visibility 1s, opacity 1s; + transition: visibility 1s, opacity 1s; +} +.librevjs-libre-mix-skin.librevjs-controls-disabled .librevjs-control-bar { + display: none; +} +.librevjs-libre-mix-skin.librevjs-using-native-controls .librevjs-control-bar { + display: none; +} +/* The control bar shouldn't show after an error */ +.librevjs-libre-mix-skin.librevjs-error .librevjs-control-bar { + display: none; +} +/* Don't hide the control bar if it's audio */ +.librevjs-audio.librevjs-libre-mix-skin.librevjs-has-started.librevjs-user-inactive.librevjs-playing .librevjs-control-bar { + opacity: 1; + visibility: visible; +} +/* IE8 is flakey with fonts, and you have to change the actual content to force +fonts to show/hide properly. + - "\9" IE8 hack didn't work for this + - Found in windows XP (Propietary Software) IE8 from http://modern.ie. Does not show up in "IE8 mode" in IE9 +*/ +@media \0screen { + .librevjs-libre-mix-skin.librevjs-user-inactive.librevjs-playing .librevjs-control-bar :before { + content: ""; + } +} +/* General styles for individual controls. */ +.librevjs-libre-mix-skin .librevjs-control { + outline: none; + position: relative; + float: left; + text-align: center; + margin: 0; + padding: 0; + height: 3.0em; + width: 4em; +} +/* FreeArt button icons: http://artlibre.org/licence/lal */ +.librevjs-libre-mix-skin .librevjs-control:before { + font-family: LibreVideoJS; + font-size: 1.5em; + line-height: 2; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + text-align: center; + text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5); +} +/* Replacement for focus outline */ +.librevjs-libre-mix-skin .librevjs-control:hover:before { + color: #1de9b6; +} +.librevjs-libre-mix-skin .librevjs-control:focus { + /* outline: 0; */ + /* keyboard-only users cannot see the focus on several of the UI elements when this is set to 0 */ +} +/* Hide control text visually, but have it available for screenreaders */ +.librevjs-libre-mix-skin .librevjs-control-text { + /* hide-visually */ + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} +/* Play/Pause +-------------------------------------------------------------------------------- +*/ +.librevjs-libre-mix-skin .librevjs-play-control { + width: 5em; + cursor: pointer; + color: #1de9b6; +} +.librevjs-libre-mix-skin .librevjs-play-control:before { + content: "\e001"; +} +.librevjs-libre-mix-skin .librevjs-play-control:hover:before { + color: #007c5d; +} +.librevjs-libre-mix-skin.librevjs-playing .librevjs-play-control:before { + content: "\e002"; +} +/* Playback toggle +-------------------------------------------------------------------------------- +*/ +.librevjs-libre-mix-skin .librevjs-playback-rate .librevjs-playback-rate-value { + font-size: 1.5em; + line-height: 2; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + text-align: center; + text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5); +} +.librevjs-libre-mix-skin .librevjs-playback-rate.librevjs-menu-button .librevjs-menu .librevjs-menu-content { + width: 4em; + left: -2em; + list-style: none; +} +/* Volume/Mute +-------------------------------------------------------------------------------- */ +.librevjs-libre-mix-skin .librevjs-mute-control, +.librevjs-libre-mix-skin .librevjs-volume-menu-button { + cursor: pointer; + float: right; +} +.librevjs-libre-mix-skin .librevjs-mute-control:before, +.librevjs-libre-mix-skin .librevjs-volume-menu-button:before { + content: "\e006"; +} +.librevjs-libre-mix-skin .librevjs-mute-control.librevjs-vol-0:before, +.librevjs-libre-mix-skin .librevjs-volume-menu-button.librevjs-vol-0:before { + content: "\e003"; +} +.librevjs-libre-mix-skin .librevjs-mute-control.librevjs-vol-1:before, +.librevjs-libre-mix-skin .librevjs-volume-menu-button.librevjs-vol-1:before { + content: "\e004"; +} +.librevjs-libre-mix-skin .librevjs-mute-control.librevjs-vol-2:before, +.librevjs-libre-mix-skin .librevjs-volume-menu-button.librevjs-vol-2:before { + content: "\e005"; +} +.librevjs-libre-mix-skin .librevjs-volume-control { + width: 5em; + float: right; +} +.librevjs-libre-mix-skin .librevjs-volume-bar { + width: 5em; + height: 0.6em; + margin: 1.1em auto 0; +} +.librevjs-libre-mix-skin .librevjs-volume-level { + position: absolute; + top: 0; + left: 0; + height: 0.6em; + /* assuming volume starts at 1.0 */ + width: 100%; + background: #1de9b6; +} +.librevjs-libre-mix-skin .librevjs-volume-bar .librevjs-volume-handle { + width: 0.5em; + height: 0.5em; + /* Assumes volume starts at 1.0. If you change the size of the + handle relative to the volume bar, you'll need to update this value + too. */ + left: 4.5em; +} +.librevjs-libre-mix-skin .librevjs-volume-handle:before { + font-size: 0.9em; + top: -0.2em; + left: -0.2em; + width: 1em; + height: 1em; +} +/* The volume menu button is like menu buttons (captions/subtitles) but works + a little differently. It needs to be possible to tab to the volume slider + without hitting space bar on the menu button. To do this we're not using + display:none to hide the slider menu by default, and instead setting the + width and height to zero. */ +.librevjs-libre-mix-skin .librevjs-volume-menu-button .librevjs-menu { + display: block; + width: 0; + height: 0; + border-top-color: transparent; +} +.librevjs-libre-mix-skin .librevjs-volume-menu-button .librevjs-menu .librevjs-menu-content { + height: 0; + width: 0; + transform: rotate(-90deg); +} +.librevjs-libre-mix-skin .librevjs-volume-menu-button.librevjs-menu-button .librevjs-menu .librevjs-menu-content { + margin-bottom: 3.2em; +} +/*.librevjs-libre-mix-skin .librevjs-volume-menu-button:hover .librevjs-menu, +.librevjs-libre-mix-skin .librevjs-volume-menu-button .librevjs-menu.librevjs-lock-showing { + border-top-color: rgba(7, 40, 50, 0.5); +}*/ +.librevjs-libre-mix-skin .librevjs-volume-menu-button:hover .librevjs-menu .librevjs-menu-content, +.librevjs-libre-mix-skin .librevjs-volume-menu-button .librevjs-menu.librevjs-lock-showing .librevjs-menu-content { + height: 2.9em; + width: 10em; +} +/* Progress +-------------------------------------------------------------------------------- +*/ +.librevjs-libre-mix-skin .librevjs-progress-control { + position: absolute; + left: 0; + right: 0; + width: auto; + font-size: 0.3em; + height: 1em; + /* Set above the rest of the controls. */ + top: -1em; + /* Shrink the bar slower than it grows. */ + /* transition */ + -webkit-transition: all 0.4s; + -moz-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} +/* On hover, make the progress bar grow to something that's more clickable. + This simply changes the overall font for the progress bar, and this + updates both the em-based widths and heights, as wells as the icon font */ +.librevjs-libre-mix-skin:hover .librevjs-progress-control { + font-size: 1em; + /* Even though we're not changing the top/height, we need to include them in + the transition so they're handled correctly. */ + /* transition */ + -webkit-transition: all 0.2s; + -moz-transition: all 0.2s; + -o-transition: all 0.2s; + transition: all 0.2s; +} +/* Box containing play and load progresses. Also acts as seek scrubber. */ +.librevjs-libre-mix-skin .librevjs-progress-holder { + height: 100%; +} +/* Progress Bars */ +.librevjs-libre-mix-skin .librevjs-progress-holder .librevjs-play-progress, +.librevjs-libre-mix-skin .librevjs-progress-holder .librevjs-load-progress, +.librevjs-libre-mix-skin .librevjs-progress-holder .librevjs-load-progress div { + position: absolute; + display: block; + height: 100%; + margin: 0; + padding: 0; + /* updated by javascript during playback */ + width: 0; + /* Needed for IE6 */ + left: 0; + top: 0; +} +.librevjs-libre-mix-skin .librevjs-play-progress { + /* Using a data URI to create the white diagonal lines with a transparent + background. Surprisingly works in IE8. + Changing the first color value will change the bar color. + Also using a paralax effect to make the lines move backwards. + The -50% left position makes that happen. + */ + background: #1de9b6 /* IE8- Fallback */; +} +.librevjs-libre-mix-skin .librevjs-load-progress { + background: #d6dbdf /* IE8- Fallback */; + background: rgba(214, 219, 223, 0.6); +} +/* there are child elements of the load progress bar that represent the + specific time ranges that have been buffered */ +.librevjs-libre-mix-skin .librevjs-load-progress div { + background: #787878 /* IE8- Fallback */; + background: rgba(255, 255, 255, 0.1); +} +.librevjs-libre-mix-skin .librevjs-seek-handle { + width: 2em; + height: 2em; + border-radius: 1em; + top: -0.5em; + background-color: #007c5d; + opacity: 0; + transition: opacity 0.4s ease-in-out; +} +/*.librevjs-libre-mix-skin .librevjs-seek-handle:before { + padding-top: 0.1em; +}*/ +.librevjs-libre-mix-skin .librevjs-progress-control:hover .librevjs-slider-handle { + opacity: 1; + transition: opacity 0.4s ease-in-out; +} +/* Live Mode +-------------------------------------------------------------------------------- +*/ +.librevjs-libre-mix-skin.librevjs-live .librevjs-time-controls, +.librevjs-libre-mix-skin.librevjs-live .librevjs-time-divider, +.librevjs-libre-mix-skin.librevjs-live .librevjs-progress-control { + display: none; +} +.librevjs-libre-mix-skin.librevjs-live .librevjs-live-display { + display: block; +} +/* Live Display +-------------------------------------------------------------------------------- +*/ +.librevjs-libre-mix-skin .librevjs-live-display { + display: none; + font-size: 1em; + line-height: 3em; +} +/* Time Display +-------------------------------------------------------------------------------- +*/ +.librevjs-libre-mix-skin .librevjs-time-controls { + font-size: 1.083em; + font-weight: bold; + color: #d6dbdf; + /* Align vertically by making the line height the same as the control bar */ + line-height: 3em; + width: 3em; +} +.librevjs-libre-mix-skin .librevjs-current-time { + float: left; +} +.librevjs-libre-mix-skin .librevjs-current-time-display { + float: right; +} +.librevjs-libre-mix-skin .librevjs-duration, +.librevjs-libre-mix-skin .librevjs-duration .librevjs-duration-display { + float: left; +} +/* Remaining time is in the HTML, but not included in default design */ +.librevjs-libre-mix-skin .librevjs-remaining-time { + display: none; + float: left; +} +.librevjs-time-divider { + float: left; + line-height: 3em; + font-size: 1.083em; + font-weight: bold; + width: 1em; + text-align: center; +} +/* Fullscreen +-------------------------------------------------------------------------------- +*/ +.librevjs-libre-mix-skin .librevjs-fullscreen-control { + width: 3.8em; + cursor: pointer; + float: right; +} +.librevjs-libre-mix-skin .librevjs-fullscreen-control:before { + content: "\e000"; +} +/* Switch to the exit icon when the player is in fullscreen */ +.librevjs-libre-mix-skin.librevjs-fullscreen .librevjs-fullscreen-control:before { + content: "\e00b"; +} +/* Big Play Button (play button at start) +-------------------------------------------------------------------------------- +Positioning of the play button in the center or other corners can be done more +easily in the skin designer. http://designer.videojs.com/ +*/ +.librevjs-libre-mix-skin .librevjs-big-play-button { + left: 50%; + top: 50%; + font-size: 2em; + display: block; + z-index: 2; + position: absolute; + width: 3.8em; + height: 2.6em; + margin-left: -1.9em; + margin-top: -1.52em; + text-align: center; + vertical-align: middle; + cursor: pointer; + opacity: 1; + color: #ffffff; + /* background-color-with-alpha */ + background-color: #333333; + background-color: rgba(51, 51, 51, 0.9); + /* border-radius */ + -webkit-border-radius: 0.4em; + -moz-border-radius: 0.4em; + border-radius: 0.4em; + /* transition */ + -webkit-transition: all 0.4s; + -moz-transition: all 0.4s; + -o-transition: all 0.4s; + transition: all 0.4s; +} +/* Hide if controls are disabled */ +.librevjs-libre-mix-skin.librevjs-controls-disabled .librevjs-big-play-button { + display: none; +} +/* Hide when video starts playing */ +.librevjs-libre-mix-skin.librevjs-has-started .librevjs-big-play-button { + display: none; +} +/* Hide on mobile devices. Remove when we stop using native controls + by default on mobile */ +.librevjs-libre-mix-skin.librevjs-using-native-controls .librevjs-big-play-button { + display: none; +} +.librevjs-libre-mix-skin:hover .librevjs-big-play-button, +.librevjs-libre-mix-skin .librevjs-big-play-button:focus { + color: #ffffff; + background-color: #1de9b6; +} +.librevjs-libre-mix-skin .librevjs-big-play-button:before { + content: "\e001"; + font-family: LibreVideoJS; + /* In order to center the play icon vertically we need to set the line height + to the same as the button height */ + text-align: center /* Needed for IE8 */; + /*Shadow*/ + text-shadow: 0.05em 0.05em 0.1em #000; + line-height: 2.6em; + position: absolute; + left: 0; + width: 100%; + height: 100%; +} +.librevjs-error .librevjs-big-play-button { + display: none; +} +/* Error Display +-------------------------------------------------------------------------------- +*/ +.librevjs-error-display { + display: none; +} +.librevjs-error .librevjs-error-display { + display: block; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; +} +.librevjs-error .librevjs-error-display:before { + content: 'X'; + font-family: Arial; + font-size: 4em; + color: #666666; + /* In order to center the play icon vertically we need to set the line height + to the same as the button height */ + line-height: 1; + text-shadow: 0.05em 0.05em 0.1em #000; + text-align: center /* Needed for IE8 */; + vertical-align: middle; + position: absolute; + left: 0; + top: 50%; + margin-top: -0.5em; + width: 100%; +} +.librevjs-error-display div { + position: absolute; + bottom: 1em; + right: 0; + left: 0; + font-size: 1.4em; + text-align: center; + padding: 3px; + background: #000000; + background: rgba(0, 0, 0, 0.5); +} +.librevjs-error-display a, +.librevjs-error-display a:visited { + color: #F4A460; +} +/* Loading Spinner +-------------------------------------------------------------------------------- +*/ +.librevjs-loading-spinner { + /* Should be hidden by default */ + display: none; + position: absolute; + top: 50%; + left: 50%; + font-size: 4em; + line-height: 1; + width: 1em; + height: 1em; + margin-left: -0.5em; + margin-top: -0.5em; + opacity: 0.75; + /* animation */ + -webkit-animation: spin 1.5s infinite linear; + -moz-animation: spin 1.5s infinite linear; + -o-animation: spin 1.5s infinite linear; + animation: spin 1.5s infinite linear; +} +/* Show the spinner when waiting for data and seeking to a new time */ +.librevjs-waiting .librevjs-loading-spinner, +.librevjs-seeking .librevjs-loading-spinner { + display: block; + /* only animate when showing because it can be processor heavy */ + /* animation */ + -webkit-animation: spin 1.5s infinite linear; + -moz-animation: spin 1.5s infinite linear; + -o-animation: spin 1.5s infinite linear; + animation: spin 1.5s infinite linear; +} +/* Errors are unrecoverable without user interaction so hide the spinner */ +.librevjs-error .librevjs-loading-spinner { + display: none; + /* ensure animation doesn't continue while hidden */ + /* animation */ + -webkit-animation: none; + -moz-animation: none; + -o-animation: none; + animation: none; +} +.librevjs-libre-mix-skin .librevjs-loading-spinner:before { + content: "\e01e"; + font-family: LibreVideoJS; + position: absolute; + top: 0; + left: 0; + width: 1em; + height: 1em; + text-align: center; + text-shadow: 0em 0em 0.1em #000; +} +@-moz-keyframes spin { + 0% { + -moz-transform: rotate(0deg); + } + 100% { + -moz-transform: rotate(359deg); + } +} +@-webkit-keyframes spin { + 0% { + -webkit-transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + } +} +@-o-keyframes spin { + 0% { + -o-transform: rotate(0deg); + } + 100% { + -o-transform: rotate(359deg); + } +} +@keyframes spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(359deg); + } +} +/* Menu Buttons (Captions/Subtitles/etc.) +-------------------------------------------------------------------------------- +*/ +.librevjs-libre-mix-skin .librevjs-menu-button { + float: right; + cursor: pointer; +} +.librevjs-libre-mix-skin .librevjs-menu { + display: none; + position: absolute; + bottom: 0; + left: 0em; + /* (Width of vjs-menu - width of button) / 2 */ + width: 0em; + height: 0em; + margin-bottom: 3em; + border-left: 2em solid transparent; + border-right: 2em solid transparent; + border-top: 1.55em solid #000000; + /* Same width top as ul bottom */ + border-top-color: rgba(0, 0, 0, 0.4); + /* Same as ul background */ +} +/* Color menu (captions/subtitles)*/ +.librevjs-libre-mix-skin .librevjs-menu-button ul li.librevjs-selected { + color: #0d1f2c; + background-color: #1de9b6; +} +.librevjs-libre-mix-skin .librevjs-menu-button ul li:focus, +.librevjs-libre-mix-skin .librevjs-menu-button ul li:hover, +.librevjs-libre-mix-skin .librevjs-menu-button ul li.librevjs-selected:focus, +.librevjs-libre-mix-skin .librevjs-menu-button ul li.librevjs-selected:hover { + outline: 0; + color: #007c5d; + background-color: #1de9b6; +} +/*Title Resolution | subtitles and Caption*/ +.librevjs-libre-mix-skin ul li.librevjs-menu-title.librevjs-res-menu-title { + color: #1de9b6; + background-color: inherit; +} +.librevjs-libre-mix-skin ul li.librevjs-menu-title.librevjs-res-menu-title:hover { + color: #1de9b6; + background-color: inherit; +} +/* Button Pop-up Menu */ +.librevjs-libre-mix-skin .librevjs-menu-button .librevjs-menu .librevjs-menu-content { + display: block; + padding: 0; + margin: 0; + position: absolute; + width: 10em; + bottom: 1.5em; + /* Same bottom as vjs-menu border-top */ + max-height: 15em; + overflow: auto; + left: -5em; + /* Width of menu - width of button / 2 */ + background-color: #232221; + background-color: rgba(0, 0, 0, 0.4); + /* box-shadow */ + -webkit-box-shadow: -0.2em -0.2em 0.3em rgba(255, 255, 255, 0.2); + -moz-box-shadow: -0.2em -0.2em 0.3em rgba(255, 255, 255, 0.2); + box-shadow: -0.2em -0.2em 0.3em rgba(255, 255, 255, 0.2); +} +/* +.librevjs-libre-mix-skin .librevjs-menu-button:hover .librevjs-control-content .librevjs-menu, +.librevjs-libre-mix-skin .librevjs-control-content .librevjs-menu.librevjs-lock-showing +*/ +.librevjs-libre-mix-skin .librevjs-menu-button:hover .librevjs-menu { + display: block; +} +/* prevent menus from opening while scrubbing (FF, IE) */ +.librevjs-libre-mix-skin.librevjs-scrubbing .librevjs-menu-button:hover .librevjs-control-content .librevjs-menu { + display: none; +} +.librevjs-libre-mix-skin .librevjs-menu-button ul li { + list-style: none; + margin: 0; + padding: 0.3em 0 0.3em 0; + line-height: 1.4em; + font-size: 1.2em; + text-align: center; + text-transform: lowercase; +} +.librevjs-libre-mix-skin .librevjs-menu-button ul li.librevjs-selected { + background-color: #1de9b6; +} +.librevjs-libre-mix-skin .librevjs-menu-button ul li:focus, +.librevjs-libre-mix-skin .librevjs-menu-button ul li:hover, +.librevjs-libre-mix-skin .librevjs-menu-button ul li.librevjs-selected:focus, +.librevjs-libre-mix-skin .librevjs-menu-button ul li.librevjs-selected:hover { + outline: 0; + color: #0d1f2c; + background-color: #1de9b6; + /*.background-color-with-alpha(rgb(255, 255, 255), 0.75);*/ + /*.box-shadow(0 0 1em rgba(255, 255, 255, 1));*/ +} +.librevjs-libre-mix-skin .librevjs-menu-button ul li.librevjs-menu-title { + text-align: center; + text-transform: uppercase; + font-size: 1em; + line-height: 2em; + padding: 0; + margin: 0 0 0.3em 0; + font-weight: bold; + cursor: default; +} +/* Subtitles Button */ +.librevjs-libre-mix-skin .librevjs-subtitles-button:before { + content: "\e00c"; +} +/* Captions Button */ +.librevjs-libre-mix-skin .librevjs-captions-button:before { + content: "\e008"; +} +/* Chapters Button */ +.librevjs-libre-mix-skin .librevjs-chapters-button:before { + content: "\e00c"; +} +.librevjs-libre-mix-skin .librevjs-chapters-button.librevjs-menu-button .librevjs-menu .librevjs-menu-content { + width: 24em; + left: -12em; +} +/* Replacement for focus outline */ +.librevjs-libre-mix-skin .librevjs-captions-button:focus .librevjs-control-content:before, +.librevjs-libre-mix-skin .librevjs-captions-button:hover .librevjs-control-content:before { + /* box-shadow */ + -webkit-box-shadow: 0 0 1em #ffffff; + -moz-box-shadow: 0 0 1em #ffffff; + box-shadow: 0 0 1em #ffffff; +} +/* +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. ** +*/ +.cliplibre-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: 12px; + /* Allow poster to be vertically aligned. */ + vertical-align: middle; + /* display: table-cell; */ + /*This works in Safari but not Firefox.*/ + /* Provide some basic defaults for fonts */ + font-weight: normal; + font-style: normal; + /* Avoiding helvetica: issue #376 */ + font-family: Arial, Helvetica, sans-serif; + /* Turn off user selection (text highlighting) by default. + The majority of player components will not be text blocks. + Text areas will need to turn user selection back on. */ + /* user-select */ + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +/* Playback technology elements expand to the width/height of the containing div + <video> or <object> */ +.cliplibre-js .librevjs-tech { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +/* Fix for Firefox 9 fullscreen (only if it is enabled). Not needed when + checking fullScreenEnabled. */ +.cliplibre-js:-moz-full-screen { + position: absolute; +} +/* Fullscreen Styles */ +body.librevjs-full-window { + padding: 0; + margin: 0; + height: 100%; + /* Fix for IE6 full-window. http://www.cssplay.co.uk/layouts/fixed.html */ + overflow-y: auto; +} +.cliplibre-js.librevjs-fullscreen { + position: fixed; + overflow: hidden; + z-index: 1000; + left: 0; + top: 0; + bottom: 0; + right: 0; + width: 100% !important; + height: 100% !important; + /* IE6 full-window (underscore hack) */ + _position: absolute; +} +.cliplibre-js:-webkit-full-screen { + width: 100% !important; + height: 100% !important; +} +.cliplibre-js.librevjs-fullscreen.librevjs-user-inactive { + cursor: none; +} +/* Poster Styles */ +.librevjs-poster { + background-repeat: no-repeat; + background-position: 50% 50%; + background-size: contain; + background-color: #000000; + cursor: pointer; + margin: 0; + padding: 0; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; +} +.librevjs-poster img { + display: block; + margin: 0 auto; + max-height: 100%; + padding: 0; + width: 100%; +} +/* Hide the poster after the video has started playing */ +.cliplibre-js.librevjs-has-started .librevjs-poster { + display: none; +} +/* Don't hide the poster if we're playing audio */ +.cliplibre-js.librevjs-audio.librevjs-has-started .librevjs-poster { + display: block; +} +/* Hide the poster when controls are disabled because it's clickable + and the native poster can take over */ +.cliplibre-js.librevjs-controls-disabled .librevjs-poster { + display: none; +} +/* Hide the poster when native controls are used otherwise it covers them */ +.cliplibre-js.librevjs-using-native-controls .librevjs-poster { + display: none; +} +/* Text Track Styles */ +/* Overall track holder for both captions and subtitles */ +.cliplibre-js .librevjs-text-track-display { + text-align: center; + position: absolute; + bottom: 4em; + left: 1em; + right: 1em; +} +.cliplibre-js .librevjs-subtitles { + color: #fff; +} +.cliplibre-js .librevjs-captions { + color: #ffffff; + background-color: rgba(2, 7, 11, 0.7); +} +/* Captions Settings Dialog */ +.librevjs-caption-settings { + position: relative; + top: 1em; + background-color: #000; + opacity: 0.75; + color: #FFF; + margin: 0 auto; + padding: 0.5em; + height: 15em; + font-family: Arial, Helvetica, sans-serif; + font-size: 12px; + width: 40em; +} +.librevjs-caption-settings .librevjs-tracksettings { + top: 0; + bottom: 2em; + left: 0; + right: 0; + position: absolute; + overflow: auto; +} +.librevjs-caption-settings .librevjs-tracksettings-colors, +.librevjs-caption-settings .librevjs-tracksettings-font { + float: left; +} +.librevjs-caption-settings .librevjs-tracksettings-colors:after, +.librevjs-caption-settings .librevjs-tracksettings-font:after, +.librevjs-caption-settings .librevjs-tracksettings-controls:after { + clear: both; +} +.librevjs-caption-settings .librevjs-tracksettings-controls { + position: absolute; + bottom: 1em; + right: 1em; +} +.librevjs-caption-settings .librevjs-tracksetting { + margin: 5px; + padding: 3px; + min-height: 40px; +} +.librevjs-caption-settings .librevjs-tracksetting label { + display: block; + width: 100px; + margin-bottom: 5px; +} +.librevjs-caption-settings .librevjs-tracksetting span { + display: inline; + margin-left: 5px; +} +.librevjs-caption-settings .librevjs-tracksetting > div { + margin-bottom: 5px; + min-height: 20px; +} +.librevjs-caption-settings .librevjs-tracksetting > div:last-child { + margin-bottom: 0; + padding-bottom: 0; + min-height: 0; +} +.librevjs-caption-settings label > input { + margin-right: 10px; +} +.librevjs-caption-settings input[type="button"] { + width: 40px; + height: 40px; +} +/* Hide disabled or unsupported controls */ +.librevjs-hidden { + display: none !important; +} +.librevjs-lock-showing { + display: block !important; + opacity: 1; + visibility: visible; +} +/* In IE8 w/ no JavaScript (no HTML5 shim), the video tag doesn't register. + The .cliplibre-js classname on the video tag also isn't considered. + This optional paragraph inside the video tag can provide a message to users + about what's required to play video. */ +.librevjs-no-js { + padding: 2em; + color: #ccc; + background-color: #333; + font-size: 1.8em; + font-family: Arial, sans-serif; + text-align: center; + width: 30em; + height: 15em; + margin: 0 auto; +} +.librevjs-no-js a, +.librevjs-no-js a:visited { + color: #F4A460; +} +/*Responsive web desing + The dates are calculates for display +*/ +.cliplibre-js-responsive-container.librevjs-hd { + padding-top: 56.25%; +} +.cliplibre-js-responsive-container.librevjs-sd { + padding-top: 75%; +} +.cliplibre-js-responsive-container { + width: 100%; + position: relative; +} +.cliplibre-js-responsive-container .cliplibre-js { + height: 100% !important; + width: 100% !important; + position: absolute; + top: 0; + left: 0; +} +@media screen and (max-width: 800px) { + .cliplibre-js .librevjs-text-track { + font-size: 1.5em; + margin-bottom: -0.2em; + line-height: 1.5; + } +} +@media screen and (max-width: 600px) { + .cliplibre-js .librevjs-text-track { + font-size: 1.2em; + } + .cliplibre-js .librevjs-text-track-display { + bottom: 2em; + } +} +@media screen and (max-width: 413px) { + .cliplibre-js { + font-size: 8px; + } +} +@media screen and (max-width: 400px) { + .cliplibre-js .librevjs-text-track { + font-size: 1em; + } + .librevjs-libre-mix-skin .librevjs-big-play-button { + font-size: 2em; + } + .cliplibre-js .librevjs-text-track-display { + bottom: 1em; + } +} +@media screen and (max-width: 335px) { + .cliplibre-js { + font-size: 6px; + } +} +@media screen and (max-width: 150px) { + .librevjs-libre-mix-skin .librevjs-big-play-button { + font-size: 1.8em; + } +} +@media screen and (max-width: 90px) { + .librevjs-libre-mix-skin .librevjs-big-play-button { + font-size: 1.4em; + } +} +/* End Responsive*/ +/* Quality Selector Universal +------------------------------------------------------------------------------*/ +/* Position the button */ +.librevjs-res-button { + font-weight: bold; + float: right; + line-height: 3em; +} +/* Don't show hover effects on title */ +ul li.librevjs-menu-title.librevjs-res-menu-title:hover { + cursor: default; + background-color: transparent; + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} +/* Needed to keep text visible in LibreVideoJS */ +.librevjs-res-button .librevjs-control-text { + width: auto; + height: auto; + clip: auto; +} +/* ProgressTips Universal +------------------------------------------------------------------------------*/ +.librevjs-progress-tip { + visibility: hidden; + display: block; + opacity: 0.8; + padding: 5px; + font-size: 10px; + position: absolute; + z-index: 100000; +} +.librevjs-progress-tip-arrow { + background: url(data:image/gif;base64,R0lGODlhCQAJAIABAAAAAAAAACH5BAEAAAEALAAAAAAJAAkAAAIRjAOnwIrcDJxvwkplPtchVQAAOw==) no-repeat top left; + bottom: 0; + left: 50%; + margin-left: -4px; + background-position: bottom left; + position: absolute; + width: 9px; + height: 5px; +} +.librevjs-progress-tip-inner { + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + padding: 5px 8px 4px 8px; + background-color: black; + color: white; + max-width: 200px; + text-align: center; +} +/* ----------------------------------------------------------------------------- +The original source of this file lives at +https://github.com/videojs/video.js/blob/master/src/css/video-js.less */ diff --git a/css/librevideojs/teal.less b/css/librevideojs/teal.less new file mode 100644 index 0000000..9ccca1a --- /dev/null +++ b/css/librevideojs/teal.less @@ -0,0 +1,1427 @@ +/*! +LibreVideoJS +Version 2.0 +Copyright 2017, Jesus E. +*/ + +// To customize the player skin, change the values of the variables or edit the +// CSS below. +// (This file uses LESS. Learn more at http://lesscss.org/) + +// The base font size controls the size of everything, not just text. All +// dimensions use em-based sizes so that the scale along with the font size. +// Try increasing it to 20px and see what happens. +@base-font-size: 12px; +@touch-device-font-size: 15px; + +// The main font color controls the color of the text and the icons (font icons) +@main-font-color: #ffffff; // e.g. rgb(255, 255, 255) or #ffffff +@primary-color: #1de9b6; +@primary-dark-color: #007c5d; +@clouds-color: #d6dbdf; + +// Menu - Subtitles/captions +@text-dark-color: #0d1f2c; +@caption-color: #ffffff; //other color #ffed00; + +// The default color of control backgrounds is mostly black but with a little +// bit of blue so it can still be seen on all black video frames, which are +// common. +@control-bg-color: #232221; // e.g. rgb(255, 255, 255) or #ffffff +@control-bg-alpha: 0.8; // 1.0 = 100% opacity, 0.0 = 0% opacity + +// The slider bar color is used for the progress bar and the volume bar +@slider-bar-color: #66A8CC; // e.g. rgb(255, 255, 255) or #ffffff +// The background of the progress bar and volume bar have a lined pattern that +// is created from a base64 encoded image. You can generate your own pattern at +// http://www.patternify.com/ then replace the value in the quotes with your own +@slider-bar-pattern: ~'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR/QJ/Ub//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC'; +// The color of the slider background +@slider-background-color: #333333; +@slider-background-alpha: 0.9; // 1.0 = 100% opacity, 0.0 = 0% opacity + +// The "Big Play Button" is the play button that shows before the video plays. +// To center it set the align values to center and middle. The typical location +// of the button is the center, but there is trend towards moving it to a corner +// where it gets out of the way of valuable content in the poster image. +@big-play-align: left; // left, center, or right +@big-play-vertical-align: top; // top, middle, or bottom +// The button colors match the control colors by default but you can customize +// them by replace the variables (@control-bg-color) with your own color values. +@big-play-bg-color: @control-bg-color; +@big-play-bg-alpha: @control-bg-alpha; +// The font size is what makes the big play button, big. All width/height values +// use ems, which are a multiple of the font size. +// If the @base-font-size is 10px, then 3em equals 30px. +@big-play-font-size: 2em; +// Now that font size is set, the following em values will be a multiple of the +// new font size. If @big-play-font-size is 3em (30px), then setting the any of +// the following values to 2em would equal 60px. 2 * font-size +@big-play-margin: 0.5em; +//@big-play-width: 1em; +@big-play-width: 3.8em; +//@big-play-height: 1em; +@big-play-height: 2.6em; +@big-play-border-radius: 0.8em; +@big-play-border-width: 0.1em; +@big-play-border-color: #3b4249; + +/* SKIN +================================================================================ +The main class name for all skin-specific styles. To make your own skin, +replace all occurrences of 'vjs-flat-skin' with a new name. Then add your new +skin name to your video tag instead of the default skin. +e.g. <video class="video-js my-skin-name"> +*/ +.librevjs-libre-mix-skin { + color: @main-font-color; +} + +/* Custom Icon Font +-------------------------------------------------------------------------------- +The control icons are from a custom font. Each icon corresponds to a character +(e.g. "\e001"). Font icons allow for easy scaling and coloring of icons. +*/ +@lvjs-font-path: '../../fonts'; +@font-face{ + font-family: 'LibreVideoJS'; + src: url('@{lvjs-font-path}/libre-material/libre-icons.eot?#iefix') format('embedded-opentype'), + url('@{lvjs-font-path}/libre-material/libre-icons.woff') format('woff'), + url('@{lvjs-font-path}/libre-material/libre-icons.ttf') format('truetype'), + url('@{lvjs-font-path}/libre-material/libre-icons.svg#icomoon') format('svg'); + + font-weight: normal; + font-style: normal; +} + +// Icon font character values +@play-icon: "\e001"; +@pause-icon: "\e002"; +@volume-muted-icon: "\e003"; +@volume-low-icon: "\e004"; +@volume-mid-icon: "\e005"; +@volume-high-icon: "\e006"; +@play-big-icon: "\e007"; +@fullscreen-enter-icon: "\e000"; +@fullscreen-exit-icon: "\e00b"; +@square-icon: "\e009"; +@spinner-icon: "\e00a"; +@spinner2-icon: "\e00d"; +@spinner3-icon: "\e01e"; +@spinner4-icon: "\e01f"; +@subtitles-icon: "\e00c"; +@captions-icon: "\e008"; +@chapters-icon: "\e00c"; +@share-icon: "\e00e"; +@cog-icon: "\e600"; + +/* Base UI Component Classes +-------------------------------------------------------------------------------- +*/ + +/* Slider - used for Volume bar and Seek bar */ +.librevjs-libre-mix-skin .librevjs-slider { + /* Replace browser focus highlight with handle highlight */// + outline: 0; + position: relative; + cursor: pointer; + padding: 0; + + .background-color-with-alpha(@slider-background-color, @slider-background-alpha); +} + +.librevjs-libre-mix-skin .librevjs-slider:focus { + .box-shadow(0 0 2em #fff); +} + +.librevjs-libre-mix-skin .librevjs-slider-handle { + position: absolute; + /* Needed for IE6 */// + left: 0; + top: 0; +} + +.librevjs-libre-mix-skin .librevjs-slider-handle:before { + text-shadow: 0em 0em 1em #fff; + + position: absolute; + top: 0; + left: 0; +} + +/* Control Bar +-------------------------------------------------------------------------------- +The default control bar that is a container for most of the controls. +*/ +.librevjs-libre-mix-skin .librevjs-control-bar { + /* Start hidden */// + display: none; + position: absolute; + /* Place control bar at the bottom of the player box/video. + If you want more margin below the control bar, add more height. */// + bottom: 0; + /* Use left/right to stretch to 100% width of player div */// + left: 0; + right: 0; + /* Height includes any margin you want above or below control items */// + height: 3.0em; + + .background-color-with-alpha(@control-bg-color, @control-bg-alpha); +} + +/* Show the control bar only once the video has started playing */ +.librevjs-libre-mix-skin.librevjs-has-started .librevjs-control-bar { + display: block; + /* Visibility needed to make sure things hide in older browsers too. */ + visibility: visible; + opacity: 1; + + @trans: visibility 0.1s, opacity 0.1s; // Var needed because of comma + .transition(@trans); +} + +/* Hide the control bar when the video is playing and the user is inactive */ +.librevjs-libre-mix-skin.librevjs-has-started.librevjs-user-inactive.librevjs-playing .librevjs-control-bar { + display: block; + visibility: hidden; + opacity: 0; + + @trans: visibility 1.0s, opacity 1.0s; + .transition(@trans); +} + +.librevjs-libre-mix-skin.librevjs-controls-disabled .librevjs-control-bar { + display: none; +} + +.librevjs-libre-mix-skin.librevjs-using-native-controls .librevjs-control-bar { + display: none; +} + +/* The control bar shouldn't show after an error */ +.librevjs-libre-mix-skin.librevjs-error .librevjs-control-bar { + display: none; +} + +/* Don't hide the control bar if it's audio */ +.librevjs-audio.librevjs-libre-mix-skin.librevjs-has-started.librevjs-user-inactive.librevjs-playing .librevjs-control-bar { + opacity: 1; + visibility: visible; +} + +/* IE8 is flakey with fonts, and you have to change the actual content to force +fonts to show/hide properly. + - "\9" IE8 hack didn't work for this + - Found in windows XP (Propietary Software) IE8 from http://modern.ie. Does not show up in "IE8 mode" in IE9 +*/ +@ie8screen: ~"\0screen"; +.librevjs-libre-mix-skin.librevjs-user-inactive.librevjs-playing .librevjs-control-bar :before { + @media @ie8screen { content: ""; } +} + +/* General styles for individual controls. */ +.librevjs-libre-mix-skin .librevjs-control { + outline: none; + position: relative; + float: left; + text-align: center; + margin: 0; + padding: 0; + height: 3.0em; + width: 4em; +} + +/* FreeArt button icons: http://artlibre.org/licence/lal */ +.librevjs-libre-mix-skin .librevjs-control:before { + font-family: LibreVideoJS; + font-size: 1.5em; + line-height: 2; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + text-align: center; + text-shadow: 1px 1px 1px rgba(0,0,0,0.5); +} + +/* Replacement for focus outline */ +.librevjs-libre-mix-skin .librevjs-control:hover:before { + color: @primary-color; +} + +.librevjs-libre-mix-skin .librevjs-control:focus { + /* outline: 0; */// + /* keyboard-only users cannot see the focus on several of the UI elements when this is set to 0 */ +} + +/* Hide control text visually, but have it available for screenreaders */ +.librevjs-libre-mix-skin .librevjs-control-text { + .hide-visually; +} + +/* Play/Pause +-------------------------------------------------------------------------------- +*/ +.librevjs-libre-mix-skin .librevjs-play-control { + width: 5em; + cursor: pointer; + color: @primary-color; +} +.librevjs-libre-mix-skin .librevjs-play-control:before { + content: @play-icon; +} +.librevjs-libre-mix-skin .librevjs-play-control:hover:before { + color: @primary-dark-color; +} +.librevjs-libre-mix-skin.librevjs-playing .librevjs-play-control:before { + content: @pause-icon; +} + +/* Playback toggle +-------------------------------------------------------------------------------- +*/ +.librevjs-libre-mix-skin .librevjs-playback-rate .librevjs-playback-rate-value { + font-size: 1.5em; + line-height: 2; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + text-align: center; + text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5); +} + +.librevjs-libre-mix-skin .librevjs-playback-rate.librevjs-menu-button .librevjs-menu .librevjs-menu-content { + width: 4em; + left: -2em; + list-style: none; +} + +/* Volume/Mute +-------------------------------------------------------------------------------- */ +.librevjs-libre-mix-skin .librevjs-mute-control, +.librevjs-libre-mix-skin .librevjs-volume-menu-button { + cursor: pointer; + float: right; +} +.librevjs-libre-mix-skin .librevjs-mute-control:before, +.librevjs-libre-mix-skin .librevjs-volume-menu-button:before { + content: @volume-high-icon; +} +.librevjs-libre-mix-skin .librevjs-mute-control.librevjs-vol-0:before, +.librevjs-libre-mix-skin .librevjs-volume-menu-button.librevjs-vol-0:before { + content: @volume-muted-icon; +} +.librevjs-libre-mix-skin .librevjs-mute-control.librevjs-vol-1:before, +.librevjs-libre-mix-skin .librevjs-volume-menu-button.librevjs-vol-1:before { + content: @volume-low-icon; +} +.librevjs-libre-mix-skin .librevjs-mute-control.librevjs-vol-2:before, +.librevjs-libre-mix-skin .librevjs-volume-menu-button.librevjs-vol-2:before { + content: @volume-mid-icon; +} + +.librevjs-libre-mix-skin .librevjs-volume-control { + width: 5em; + float: right; +} +.librevjs-libre-mix-skin .librevjs-volume-bar { + width: 5em; + height: 0.6em; + margin: 1.1em auto 0; +} + +.librevjs-libre-mix-skin .librevjs-volume-level { + position: absolute; + top: 0; + left: 0; + height: 0.6em; + /* assuming volume starts at 1.0 */ + width: 100%; + + background: @primary-color; +} +.librevjs-libre-mix-skin .librevjs-volume-bar .librevjs-volume-handle { + width: 0.5em; + height: 0.5em; + /* Assumes volume starts at 1.0. If you change the size of the + handle relative to the volume bar, you'll need to update this value + too. */ + left: 4.5em; +} + +.librevjs-libre-mix-skin .librevjs-volume-handle:before { + font-size: 0.9em; + top: -0.2em; + left: -0.2em; + + width: 1em; + height: 1em; +} + +/* The volume menu button is like menu buttons (captions/subtitles) but works + a little differently. It needs to be possible to tab to the volume slider + without hitting space bar on the menu button. To do this we're not using + display:none to hide the slider menu by default, and instead setting the + width and height to zero. */ +.librevjs-libre-mix-skin .librevjs-volume-menu-button .librevjs-menu { + display: block; + width: 0; + height: 0; + border-top-color: transparent; +} + +.librevjs-libre-mix-skin .librevjs-volume-menu-button .librevjs-menu .librevjs-menu-content { + height: 0; + width: 0; + transform: rotate(-90deg); +} + +.librevjs-libre-mix-skin .librevjs-volume-menu-button.librevjs-menu-button .librevjs-menu .librevjs-menu-content { + margin-bottom: 3.2em; +} + +/*.librevjs-libre-mix-skin .librevjs-volume-menu-button:hover .librevjs-menu, +.librevjs-libre-mix-skin .librevjs-volume-menu-button .librevjs-menu.librevjs-lock-showing { + border-top-color: rgba(7, 40, 50, 0.5); +}*/ + +.librevjs-libre-mix-skin .librevjs-volume-menu-button:hover .librevjs-menu .librevjs-menu-content, +.librevjs-libre-mix-skin .librevjs-volume-menu-button .librevjs-menu.librevjs-lock-showing .librevjs-menu-content { + height: 2.9em; + width: 10em; +} + +/* Progress +-------------------------------------------------------------------------------- +*/ +.librevjs-libre-mix-skin .librevjs-progress-control { + position: absolute; + left: 0; + right: 0; + width: auto; + font-size: 0.3em; + height: 1em; + /* Set above the rest of the controls. */// + top: -1em; + + /* Shrink the bar slower than it grows. */// + .transition(all 0.4s); +} + +/* On hover, make the progress bar grow to something that's more clickable. + This simply changes the overall font for the progress bar, and this + updates both the em-based widths and heights, as wells as the icon font */ +.librevjs-libre-mix-skin:hover .librevjs-progress-control { + font-size: 1em; + + /* Even though we're not changing the top/height, we need to include them in + the transition so they're handled correctly. */ + .transition(all 0.2s); +} + +/* Box containing play and load progresses. Also acts as seek scrubber. */ +.librevjs-libre-mix-skin .librevjs-progress-holder { + height: 100%; +} + +/* Progress Bars */ +.librevjs-libre-mix-skin .librevjs-progress-holder .librevjs-play-progress, +.librevjs-libre-mix-skin .librevjs-progress-holder .librevjs-load-progress, +.librevjs-libre-mix-skin .librevjs-progress-holder .librevjs-load-progress div { + position: absolute; + display: block; + height: 100%; + margin: 0; + padding: 0; + /* updated by javascript during playback */ + width: 0; + /* Needed for IE6 */// + left: 0; + top: 0; +} + +.librevjs-libre-mix-skin .librevjs-play-progress { + /* Using a data URI to create the white diagonal lines with a transparent + background. Surprisingly works in IE8. + Changing the first color value will change the bar color. + Also using a paralax effect to make the lines move backwards. + The -50% left position makes that happen. + */ + background: @primary-color /* IE8- Fallback */; +} +.librevjs-libre-mix-skin .librevjs-load-progress { + background: rgb(red(@clouds-color), green(@clouds-color), blue(@clouds-color)) /* IE8- Fallback */; + background: rgba(red(@clouds-color), green(@clouds-color), blue(@clouds-color), 0.6); +} + +/* there are child elements of the load progress bar that represent the + specific time ranges that have been buffered */ +.librevjs-libre-mix-skin .librevjs-load-progress div { + background: rgb(120, 120, 120) /* IE8- Fallback */; + background: rgba(255, 255, 255, 0.1); +} + +.librevjs-libre-mix-skin .librevjs-seek-handle { + width: 2em; + height: 2em; + border-radius: 1em; + top: -0.5em; + background-color: @primary-dark-color; + opacity: 0; + transition: opacity .4s ease-in-out; +} + +/*.librevjs-libre-mix-skin .librevjs-seek-handle:before { + padding-top: 0.1em; +}*/ + +.librevjs-libre-mix-skin .librevjs-progress-control:hover .librevjs-slider-handle { + opacity: 1; + transition: opacity .4s ease-in-out; +} + +/* Live Mode +-------------------------------------------------------------------------------- +*/ +.librevjs-libre-mix-skin.librevjs-live .librevjs-time-controls, +.librevjs-libre-mix-skin.librevjs-live .librevjs-time-divider, +.librevjs-libre-mix-skin.librevjs-live .librevjs-progress-control { + display: none; +} +.librevjs-libre-mix-skin.librevjs-live .librevjs-live-display { + display: block; +} + +/* Live Display +-------------------------------------------------------------------------------- +*/ +.librevjs-libre-mix-skin .librevjs-live-display { + display: none; + font-size: 1em; + line-height: 3em; +} + +/* Time Display +-------------------------------------------------------------------------------- +*/ +.librevjs-libre-mix-skin .librevjs-time-controls { + font-size: 1.083em; + font-weight: bold; + color: #d6dbdf; + /* Align vertically by making the line height the same as the control bar */// + line-height: 3em; + width: 3em; +} +.librevjs-libre-mix-skin .librevjs-current-time { float: left; } +.librevjs-libre-mix-skin .librevjs-current-time-display { float: right; } +.librevjs-libre-mix-skin .librevjs-duration, +.librevjs-libre-mix-skin .librevjs-duration .librevjs-duration-display { float: left; } +/* Remaining time is in the HTML, but not included in default design */ +.librevjs-libre-mix-skin .librevjs-remaining-time { display: none; float: left; } +.librevjs-time-divider { + float: left; + line-height: 3em; + font-size: 1.083em; + font-weight: bold; + width: 1em; + text-align: center; +} + +/* Fullscreen +-------------------------------------------------------------------------------- +*/ +.librevjs-libre-mix-skin .librevjs-fullscreen-control { + width: 3.8em; + cursor: pointer; + float: right; +} +.librevjs-libre-mix-skin .librevjs-fullscreen-control:before { + content: @fullscreen-enter-icon; +} +/* Switch to the exit icon when the player is in fullscreen */ +.librevjs-libre-mix-skin.librevjs-fullscreen .librevjs-fullscreen-control:before { + content: @fullscreen-exit-icon; +} + +/* Big Play Button (play button at start) +-------------------------------------------------------------------------------- +Positioning of the play button in the center or other corners can be done more +easily in the skin designer. http://designer.videojs.com/ +*/ +.librevjs-libre-mix-skin .librevjs-big-play-button { + left: 50%; + top: 50%; + font-size: @big-play-font-size; + display: block; + z-index: 2; + position: absolute; + width: @big-play-width; + height: @big-play-height; + margin-left: -@big-play-width/2; + margin-top: -@big-play-width/2.5; + text-align: center; + vertical-align: middle; + cursor: pointer; + opacity: 1; + color: @main-font-color; + //Sombras + .background-color-with-alpha(@slider-background-color, @slider-background-alpha); + @border: .4em; + .border-radius(@border); + @trans: all .4s; // Var needed because of comma + .transition(@trans); +} + +/* Hide if controls are disabled */ +.librevjs-libre-mix-skin.librevjs-controls-disabled .librevjs-big-play-button { + display: none; +} +/* Hide when video starts playing */ +.librevjs-libre-mix-skin.librevjs-has-started .librevjs-big-play-button { + display: none; +} +/* Hide on mobile devices. Remove when we stop using native controls + by default on mobile */ +.librevjs-libre-mix-skin.librevjs-using-native-controls .librevjs-big-play-button { + display: none; +} + +.librevjs-libre-mix-skin:hover .librevjs-big-play-button, +.librevjs-libre-mix-skin .librevjs-big-play-button:focus { + color: @main-font-color; + background-color: @primary-color; +} + +.librevjs-libre-mix-skin .librevjs-big-play-button:before { + content: @play-icon; + font-family: LibreVideoJS; + /* In order to center the play icon vertically we need to set the line height + to the same as the button height */ + text-align: center /* Needed for IE8 */; + + /*Shadow*/ + text-shadow: 0.05em 0.05em 0.1em #000; + line-height: 2.6em; + + position: absolute; + left: 0; + width: 100%; + height: 100%; +} + +.librevjs-error .librevjs-big-play-button { + display: none; +} + +/* Error Display +-------------------------------------------------------------------------------- +*/ + +.librevjs-error-display { + display: none; +} + +.librevjs-error .librevjs-error-display { + display: block; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; +} + +.librevjs-error .librevjs-error-display:before { + content: 'X'; + font-family: Arial; + font-size: 4em; + color: #666666; + /* In order to center the play icon vertically we need to set the line height + to the same as the button height */ + line-height: 1; + text-shadow: 0.05em 0.05em 0.1em #000; + text-align: center /* Needed for IE8 */; + vertical-align: middle; + + position: absolute; + left: 0; + top: 50%; + margin-top: -0.5em; + width: 100%; +} + +.librevjs-error-display div { + position: absolute; + bottom: 1em; + right: 0; + left: 0; + + font-size: 1.4em; + text-align: center; + padding: 3px; + background: rgb(0, 0, 0); // fallback to just black + background: rgba(0,0,0,0.5); // Normally show black at 50% opacity +} + +.librevjs-error-display a, .librevjs-error-display a:visited { + color: #F4A460; +} + +/* Loading Spinner +-------------------------------------------------------------------------------- +*/ + +.librevjs-loading-spinner { + /* Should be hidden by default */// + display: none; + + position: absolute; + top: 50%; + left: 50%; + + font-size: 4em; + line-height: 1; + + width: 1em; + height: 1em; + + margin-left: -0.5em; + margin-top: -0.5em; + + opacity: 0.75; + .animation(spin 1.5s infinite linear); +} + +/* Show the spinner when waiting for data and seeking to a new time */ +.librevjs-waiting .librevjs-loading-spinner, +.librevjs-seeking .librevjs-loading-spinner { + display: block; + + /* only animate when showing because it can be processor heavy */// + .animation(spin 1.5s infinite linear); +} + +/* Errors are unrecoverable without user interaction so hide the spinner */ +.librevjs-error .librevjs-loading-spinner { + display: none; + + /* ensure animation doesn't continue while hidden */// + .animation(none); +} + +.librevjs-libre-mix-skin .librevjs-loading-spinner:before { + content: @spinner3-icon; + font-family: LibreVideoJS; + + position: absolute; + top: 0; + left: 0; + width: 1em; + height: 1em; + text-align: center; + text-shadow: 0em 0em 0.1em #000; +} + +@-moz-keyframes spin { + 0% { -moz-transform: rotate(0deg); } + 100% { -moz-transform: rotate(359deg); } +} +@-webkit-keyframes spin { + 0% { -webkit-transform: rotate(0deg); } + 100% { -webkit-transform: rotate(359deg); } +} +@-o-keyframes spin { + 0% { -o-transform: rotate(0deg); } + 100% { -o-transform: rotate(359deg); } +} +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(359deg); } +} + +/* Menu Buttons (Captions/Subtitles/etc.) +-------------------------------------------------------------------------------- +*/ +.librevjs-libre-mix-skin .librevjs-menu-button { + float: right; + cursor: pointer; +} + +.librevjs-libre-mix-skin .librevjs-menu { + display: none; + position: absolute; + bottom: 0; + left: 0em; /* (Width of vjs-menu - width of button) / 2 */ + width: 0em; + height: 0em; + margin-bottom: 3em; + + border-left: 2em solid transparent; + border-right: 2em solid transparent; + + border-top: 1.55em solid rgb(0, 0, 0); /* Same width top as ul bottom */ + border-top-color: rgba(0, 0, 0, 0.4); /* Same as ul background */ +} + +/* Color menu (captions/subtitles)*/ +.librevjs-libre-mix-skin .librevjs-menu-button ul li.librevjs-selected { + color: @text-dark-color; + background-color: @primary-color; +} + +.librevjs-libre-mix-skin .librevjs-menu-button ul li:focus, +.librevjs-libre-mix-skin .librevjs-menu-button ul li:hover, +.librevjs-libre-mix-skin .librevjs-menu-button ul li.librevjs-selected:focus, +.librevjs-libre-mix-skin .librevjs-menu-button ul li.librevjs-selected:hover { + outline: 0; + color: @primary-dark-color; + background-color: @primary-color; +} + +/*Title Resolution | subtitles and Caption*/ + +.librevjs-libre-mix-skin ul li.librevjs-menu-title.librevjs-res-menu-title { + color: @primary-color; + background-color: inherit; +} + +.librevjs-libre-mix-skin ul li.librevjs-menu-title.librevjs-res-menu-title:hover { + color: @primary-color; + background-color: inherit; +} + +/* Button Pop-up Menu */ +.librevjs-libre-mix-skin .librevjs-menu-button .librevjs-menu .librevjs-menu-content { + display: block; + padding: 0; margin: 0; + position: absolute; + width: 10em; + bottom: 1.5em; /* Same bottom as vjs-menu border-top */ + max-height: 15em; + overflow: auto; + + left: -5em; /* Width of menu - width of button / 2 */ + + background-color: @control-bg-color; + background-color: rgba(0, 0, 0, 0.4); + .box-shadow(-0.2em -0.2em 0.3em rgba(255, 255, 255, 0.2)); +} + +/* +.librevjs-libre-mix-skin .librevjs-menu-button:hover .librevjs-control-content .librevjs-menu, +.librevjs-libre-mix-skin .librevjs-control-content .librevjs-menu.librevjs-lock-showing +*/ + +.librevjs-libre-mix-skin .librevjs-menu-button:hover .librevjs-menu { + display: block; +} +/* prevent menus from opening while scrubbing (FF, IE) */ +.librevjs-libre-mix-skin.librevjs-scrubbing .librevjs-menu-button:hover .librevjs-control-content .librevjs-menu { + display: none; +} +.librevjs-libre-mix-skin .librevjs-menu-button ul li { + list-style: none; + margin: 0; + padding: 0.3em 0 0.3em 0; + line-height: 1.4em; + font-size: 1.2em; + text-align: center; + text-transform: lowercase; +} +.librevjs-libre-mix-skin .librevjs-menu-button ul li.librevjs-selected { + background-color: @primary-color; +} +.librevjs-libre-mix-skin .librevjs-menu-button ul li:focus, +.librevjs-libre-mix-skin .librevjs-menu-button ul li:hover, +.librevjs-libre-mix-skin .librevjs-menu-button ul li.librevjs-selected:focus, +.librevjs-libre-mix-skin .librevjs-menu-button ul li.librevjs-selected:hover { + outline: 0; + color: @text-dark-color; + background-color: @primary-color; + + /*.background-color-with-alpha(rgb(255, 255, 255), 0.75);*/ + /*.box-shadow(0 0 1em rgba(255, 255, 255, 1));*/ +} +.librevjs-libre-mix-skin .librevjs-menu-button ul li.librevjs-menu-title { + text-align: center; + text-transform: uppercase; + font-size: 1em; + line-height: 2em; + padding: 0; + margin: 0 0 0.3em 0; + font-weight: bold; + cursor: default; +} + +/* Subtitles Button */ +.librevjs-libre-mix-skin .librevjs-subtitles-button:before { + content: @subtitles-icon; +} + +/* Captions Button */ +.librevjs-libre-mix-skin .librevjs-captions-button:before { + content: @captions-icon; +} + +/* Chapters Button */ +.librevjs-libre-mix-skin .librevjs-chapters-button:before { + content: @chapters-icon; +} + +.librevjs-libre-mix-skin .librevjs-chapters-button.librevjs-menu-button .librevjs-menu .librevjs-menu-content { + width: 24em; + left: -12em; +} + +/* Replacement for focus outline */ +.librevjs-libre-mix-skin .librevjs-captions-button:focus .librevjs-control-content:before, +.librevjs-libre-mix-skin .librevjs-captions-button:hover .librevjs-control-content:before { + .box-shadow(0 0 1em rgba(255, 255, 255, 1)); +} + +/* +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. ** +*/ +.cliplibre-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: @base-font-size; + /* Allow poster to be vertically aligned. */ + vertical-align: middle; + /* display: table-cell; */ /*This works in Safari but not Firefox.*/ + + /* Provide some basic defaults for fonts */ + font-weight: normal; + font-style: normal; + /* Avoiding helvetica: issue #376 */ + font-family: Arial, Helvetica, sans-serif; + + /* Turn off user selection (text highlighting) by default. + The majority of player components will not be text blocks. + Text areas will need to turn user selection back on. */ + .user-select(none); +} + +/* Playback technology elements expand to the width/height of the containing div + <video> or <object> */ +.cliplibre-js .librevjs-tech { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +/* Fix for Firefox 9 fullscreen (only if it is enabled). Not needed when + checking fullScreenEnabled. */ +.cliplibre-js:-moz-full-screen { position: absolute; } + +/* Fullscreen Styles */ +body.librevjs-full-window { + padding: 0; + margin: 0; + height: 100%; + /* Fix for IE6 full-window. http://www.cssplay.co.uk/layouts/fixed.html */// + overflow-y: auto; +} +.cliplibre-js.librevjs-fullscreen { + position: fixed; + overflow: hidden; + z-index: 1000; + left: 0; + top: 0; + bottom: 0; + right: 0; + width: 100% !important; + height: 100% !important; + /* IE6 full-window (underscore hack) */// + _position: absolute; +} +.cliplibre-js:-webkit-full-screen { + width: 100% !important; + height: 100% !important; +} +.cliplibre-js.librevjs-fullscreen.librevjs-user-inactive { + cursor: none; +} + +/* Poster Styles */ +.librevjs-poster { + background-repeat: no-repeat; + background-position: 50% 50%; + background-size: contain; + background-color: #000000; + cursor: pointer; + margin: 0; + padding: 0; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; +} +.librevjs-poster img { + display: block; + margin: 0 auto; + max-height: 100%; + padding: 0; + width: 100%; +} + +/* Hide the poster after the video has started playing */ +.cliplibre-js.librevjs-has-started .librevjs-poster { + display: none; +} + +/* Don't hide the poster if we're playing audio */ +.cliplibre-js.librevjs-audio.librevjs-has-started .librevjs-poster { + display: block; +} + +/* Hide the poster when controls are disabled because it's clickable + and the native poster can take over */ +.cliplibre-js.librevjs-controls-disabled .librevjs-poster { + display: none; +} + +/* Hide the poster when native controls are used otherwise it covers them */ +.cliplibre-js.librevjs-using-native-controls .librevjs-poster { + display: none; +} + +/* Text Track Styles */ +/* Overall track holder for both captions and subtitles */ +.cliplibre-js .librevjs-text-track-display { + text-align: center; + position: absolute; + bottom: 4em; + left: 1em; + right: 1em; +} + +.cliplibre-js .librevjs-subtitles { + color: #fff +} + +.cliplibre-js .librevjs-captions { + color: @caption-color; + background-color: rgba(2, 7, 11, 0.7); +} + + +/* Captions Settings Dialog */ +.librevjs-caption-settings { + position: relative; + top: 1em; + background-color: #000; + opacity: 0.75; + color: #FFF; + margin: 0 auto; + padding: 0.5em; + height: 15em; + font-family: Arial, Helvetica, sans-serif; + font-size: 12px; + width: 40em; +} + +.librevjs-caption-settings .librevjs-tracksettings { + top: 0; + bottom: 2em; + left: 0; + right: 0; + position: absolute; + overflow: auto; +} + +.librevjs-caption-settings .librevjs-tracksettings-colors, +.librevjs-caption-settings .librevjs-tracksettings-font { + float: left; +} +.librevjs-caption-settings .librevjs-tracksettings-colors:after, +.librevjs-caption-settings .librevjs-tracksettings-font:after, +.librevjs-caption-settings .librevjs-tracksettings-controls:after { + clear: both; +} + +.librevjs-caption-settings .librevjs-tracksettings-controls { + position: absolute; + bottom: 1em; + right: 1em; +} + +.librevjs-caption-settings .librevjs-tracksetting { + margin: 5px; + padding: 3px; + min-height: 40px; +} +.librevjs-caption-settings .librevjs-tracksetting label { + display: block; + width: 100px; + margin-bottom: 5px; +} + +.librevjs-caption-settings .librevjs-tracksetting span { + display: inline; + margin-left: 5px; +} + +.librevjs-caption-settings .librevjs-tracksetting > div { + margin-bottom: 5px; + min-height: 20px; +} + +.librevjs-caption-settings .librevjs-tracksetting > div:last-child { + margin-bottom: 0; + padding-bottom: 0; + min-height: 0; +} + +.librevjs-caption-settings label > input { + margin-right: 10px; +} + +.librevjs-caption-settings input[type="button"] { + width: 40px; + height: 40px; +} + +/* Hide disabled or unsupported controls */ +.librevjs-hidden { display: none !important; } + +.librevjs-lock-showing { + display: block !important; + opacity: 1; + visibility: visible; +} + +/* In IE8 w/ no JavaScript (no HTML5 shim), the video tag doesn't register. + The .cliplibre-js classname on the video tag also isn't considered. + This optional paragraph inside the video tag can provide a message to users + about what's required to play video. */ +.librevjs-no-js { + padding: 2em; + color: #ccc; + background-color: #333; + font-size: 1.8em; + font-family: Arial, sans-serif; + text-align: center; + width: 30em; + height: 15em; + margin: 0 auto; +} + +.librevjs-no-js a, .librevjs-no-js a:visited { + color: #F4A460; +} + +/*Responsive web desing + The dates are calculates for display +*/ + +.cliplibre-js-responsive-container.librevjs-hd { + padding-top: 56.25%; +} + +.cliplibre-js-responsive-container.librevjs-sd { + padding-top: 75%; +} + +.cliplibre-js-responsive-container { + width: 100%; + position: relative; +} + +.cliplibre-js-responsive-container .cliplibre-js { + height: 100% !important; + width: 100% !important; + position: absolute; + top: 0; + left: 0; +} + +@media screen and (max-width: 800px) { + .cliplibre-js .librevjs-text-track { + font-size: 1.5em; + margin-bottom: -0.2em; + line-height: 1.5; + } +} + +@media screen and (max-width: 600px) { + .cliplibre-js .librevjs-text-track { + font-size: 1.2em; + } + .cliplibre-js .librevjs-text-track-display { + bottom: 2em; + } +} + +@media screen and (max-width: 413px) { + .cliplibre-js { + font-size: 8px; + } +} + +@media screen and (max-width: 400px) { + .cliplibre-js .librevjs-text-track { + font-size: 1em; + } + .librevjs-libre-mix-skin .librevjs-big-play-button { + font-size: 2em; + } + .cliplibre-js .librevjs-text-track-display { + bottom: 1em; + } +} + +@media screen and (max-width: 335px) { + .cliplibre-js { + font-size: 6px; + } +} + +@media screen and (max-width: 150px) { + .librevjs-libre-mix-skin .librevjs-big-play-button { + font-size: 1.8em; + } +} + +@media screen and (max-width: 90px) { + .librevjs-libre-mix-skin .librevjs-big-play-button { + font-size: 1.4em; + } +} + +/* End Responsive*/ + +// MIXINS +// ============================================================================= +// Mixins are a LESS feature and are used to add vendor prefixes to CSS rules +// when needed. + +// https://developer.mozilla.org/en-US/docs/Web/CSS/box-shadow +.box-shadow (@string: 0 0 1em rgba(0, 0, 0, 0.25)) { + /* box-shadow */// + -webkit-box-shadow: @string; + -moz-box-shadow: @string; + box-shadow: @string; +} + +// https://developer.mozilla.org/en-US/docs/Web/CSS/border-radius +.border-radius (@string: 5px) { + /* border-radius */// + -webkit-border-radius: @string; + -moz-border-radius: @string; + border-radius: @string; +} + +// https://developer.mozilla.org/en-US/docs/Web/CSS/transition +.transition (@string: all 1s linear) { + /* transition */// + -webkit-transition: @string; + -moz-transition: @string; + -o-transition: @string; + transition: @string; +} + +// https://developer.mozilla.org/en-US/docs/Web/CSS/transition +.transition-delay (@string: 1s) { + /* transition-delay */// + -webkit-transition-delay: @string; + -moz-transition-delay: @string; + -o-transition-delay: @string; + transition-delay: @string; +} + +// https://developer.mozilla.org/en-US/docs/Web/CSS/animation +.animation (@string: spin 1s infinite linear) { + /* animation */// + -webkit-animation: @string; + -moz-animation: @string; + -o-animation: @string; + animation: @string; +} + +// https://developer.mozilla.org/en-US/docs/Web/CSS/transform +.transform (@string: rotate(-45deg)) { + /* transform */// + -webkit-transform: @string; + -moz-transform: @string; + -ms-transform: @string; + -o-transform: @string; + transform: @string; +} + +// https://developer.mozilla.org/en-US/docs/Web/CSS/user-select +.user-select (@string: none) { + /* user-select */// + -webkit-user-select: @string; + -moz-user-select: @string; + -ms-user-select: @string; + user-select: @string; +} + +// Hide something visually but keep available for screen readers. +// http://h5bp.com/v +.hide-visually () { + /* hide-visually */// + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} + +// Align an object with absolute positioning +// Used to align the Big Play Button in the corners or center +.absolute-align (@align, @margin, @length) when (@align = top) { + top: @margin; +} +.absolute-align (@align, @margin, @length) when (@align = bottom) { + bottom: @margin; +} +.absolute-align (@align, @margin, @length) when (@align = left) { + left: @margin; +} +.absolute-align (@align, @margin, @length) when (@align = right) { + right: @margin; +} +.absolute-align (@align, @margin, @length) when (@align = center) { + /* Center it horizontally */// + left: 50%; + margin-left: (-(@length/2)); + // margin-left: ((@length*-1)/2); +} +.absolute-align (@align, @margin, @length) when (@align = middle) { + /* Center it vertically */// + top: 50%; + margin-top: (-(@length/2)); + // margin-top: ((@length*-1)/2); +} + +// http://stackoverflow.com/questions/637921/opacity-of-background-but-not-the-text +.background-color-with-alpha (@color, @alpha) { + @rgba: rgba(red(@color), green(@color), blue(@color), @alpha); + /* background-color-with-alpha */// + background-color: @color; + background-color: @rgba; + // No longer using MS filters because they break border radius in IE9 + // @argb: argb(@rgba); + // filter: ~"progid:DXImageTransform.Microsoft.gradient(startColorstr=@{argb}, endColorstr=@{argb})"; + // -ms-filter: ~"progid:DXImageTransform.Microsoft.gradient(startColorstr=@{argb}, endColorstr=@{argb})"; +} + +.border-color-with-alpha (@color, @alpha) { + @rgba: rgba(red(@color), green(@color), blue(@color), @alpha); + /* border-color-with-alpha */// + border-color: @color; + border-color: @rgba; +} + +// Autonomes styles for quality selector and progressTips + +/* Quality Selector Universal +------------------------------------------------------------------------------*/ +/* Position the button */ +.librevjs-res-button { + font-weight: bold; + float: right; + line-height: 3em; +} + +/* Don't show hover effects on title */ +ul li.librevjs-menu-title.librevjs-res-menu-title:hover { + cursor: default; + background-color: transparent; + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +/* Needed to keep text visible in LibreVideoJS */ +.librevjs-res-button .librevjs-control-text { + width: auto; + height: auto; + clip: auto; +} + +/* ProgressTips Universal +------------------------------------------------------------------------------*/ +.librevjs-progress-tip { + visibility: hidden; + display: block; + opacity: 0.8; + padding: 5px; + font-size: 10px; + position: absolute; + z-index: 100000; +} + +.librevjs-progress-tip-arrow { + background: url(data:image/gif;base64,R0lGODlhCQAJAIABAAAAAAAAACH5BAEAAAEALAAAAAAJAAkAAAIRjAOnwIrcDJxvwkplPtchVQAAOw==) no-repeat top left; + bottom: 0; + left: 50%; + margin-left: -4px; + background-position: bottom left; + position: absolute; + width: 9px; + height: 5px; +} + +.librevjs-progress-tip-inner { + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + padding: 5px 8px 4px 8px; + background-color: black; + color: white; + max-width: 200px; + text-align: center; +} + +// NOTES ON LESS (tracking learnings so we don't forget) +// ============================================================================= +// * We want this file to continue to be accessible by people who don't know +// LESS but know CSS. This means finding the balance between using the most +// valuable LESS features (e.g. variables) and keeping it looking like CSS. +// So it's best to avoid advanced LESS features like conditional statements. +// (we're using one for the big play button position because that's a hot +// topic) +// +// * We care about the readability of the CSS output of LESS, which means we +// have to be careful about what features of LESS we use. (if you're building +// your own skin this may not apply) +// 1. Comments inside of rules (strangely) have an extra line added after +// them in the CSS output. To avoid this we can add a LESS comment after +// the CSS comment. +// /* comment */// +// +// 2. In a rule with nested rules, any comments outside of a rule are moved +// to the top of the parent rule. i.e. it might look like: +// /* title of rule 1 */ +// /* title of rule 2 */ +// .rule1 {} +// .rule2 {} +// This is why we aren't using nested rules inside of the +// librevjs-default-skin class. + +/* ----------------------------------------------------------------------------- +The original source of this file lives at +https://github.com/videojs/video.js/blob/master/src/css/video-js.less */ diff --git a/css/librevideojs/teal.min.css b/css/librevideojs/teal.min.css new file mode 100644 index 0000000..5af057b --- /dev/null +++ b/css/librevideojs/teal.min.css @@ -0,0 +1,18 @@ +/*!LibreVideoJS Version 2.0 Copyright 2017,Jesus E. */ .librevjs-libre-mix-skin{color:#fff}@font-face{font-family:'LibreVideoJS';src:url('../../fonts/libre-material/libre-icons.eot?#iefix') format('embedded-opentype'),url('../../fonts/libre-material/libre-icons.woff') format('woff'),url('../../fonts/libre-material/libre-icons.ttf') format('truetype'),url('../../fonts/libre-material/libre-icons.svg#icomoon') format('svg');font-weight:normal;font-style:normal}.librevjs-libre-mix-skin .librevjs-slider{outline:0;position:relative;cursor:pointer;padding:0;background-color:#333;background-color:rgba(51,51,51,0.9)}.librevjs-libre-mix-skin .librevjs-slider:focus{-webkit-box-shadow:0 0 2em #fff;-moz-box-shadow:0 0 2em #fff;box-shadow:0 0 2em #fff}.librevjs-libre-mix-skin .librevjs-slider-handle{position:absolute;left:0;top:0}.librevjs-libre-mix-skin .librevjs-slider-handle:before{text-shadow:0 0 1em #fff;position:absolute;top:0;left:0}.librevjs-libre-mix-skin .librevjs-control-bar{display:none;position:absolute;bottom:0;left:0;right:0;height:3.0em;background-color:#232221;background-color:rgba(35,34,33,0.8)} +.librevjs-libre-mix-skin.librevjs-has-started .librevjs-control-bar{display:block;visibility:visible;opacity:1;-webkit-transition:visibility .1s,opacity .1s;-moz-transition:visibility .1s,opacity .1s;-o-transition:visibility .1s,opacity .1s;transition:visibility .1s,opacity .1s}.librevjs-libre-mix-skin.librevjs-has-started.librevjs-user-inactive.librevjs-playing .librevjs-control-bar{display:block;visibility:hidden;opacity:0;-webkit-transition:visibility 1s,opacity 1s;-moz-transition:visibility 1s,opacity 1s;-o-transition:visibility 1s,opacity 1s;transition:visibility 1s,opacity 1s}.librevjs-libre-mix-skin.librevjs-controls-disabled .librevjs-control-bar{display:none}.librevjs-libre-mix-skin.librevjs-using-native-controls .librevjs-control-bar{display:none}.librevjs-libre-mix-skin.librevjs-error .librevjs-control-bar{display:none}.librevjs-audio.librevjs-libre-mix-skin.librevjs-has-started.librevjs-user-inactive.librevjs-playing .librevjs-control-bar{opacity:1;visibility:visible}@media \0screen{.librevjs-libre-mix-skin.librevjs-user-inactive.librevjs-playing .librevjs-control-bar:before{content:""} +}.librevjs-libre-mix-skin .librevjs-control{outline:none;position:relative;float:left;text-align:center;margin:0;padding:0;height:3.0em;width:4em}.librevjs-libre-mix-skin .librevjs-control:before{font-family:LibreVideoJS;font-size:1.5em;line-height:2;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;text-shadow:1px 1px 1px rgba(0,0,0,0.5)}.librevjs-libre-mix-skin .librevjs-control:hover:before{color:#1de9b6}.librevjs-libre-mix-skin .librevjs-control:focus{}.librevjs-libre-mix-skin .librevjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.librevjs-libre-mix-skin .librevjs-play-control{width:5em;cursor:pointer;color:#1de9b6}.librevjs-libre-mix-skin .librevjs-play-control:before{content:"\e001"}.librevjs-libre-mix-skin .librevjs-play-control:hover:before{color:#007c5d}.librevjs-libre-mix-skin.librevjs-playing .librevjs-play-control:before{content:"\e002"}.librevjs-libre-mix-skin .librevjs-playback-rate .librevjs-playback-rate-value{font-size:1.5em;line-height:2;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;text-shadow:1px 1px 1px rgba(0,0,0,0.5)} +.librevjs-libre-mix-skin .librevjs-playback-rate.librevjs-menu-button .librevjs-menu .librevjs-menu-content{width:4em;left:-2em;list-style:none}.librevjs-libre-mix-skin .librevjs-mute-control,.librevjs-libre-mix-skin .librevjs-volume-menu-button{cursor:pointer;float:right}.librevjs-libre-mix-skin .librevjs-mute-control:before,.librevjs-libre-mix-skin .librevjs-volume-menu-button:before{content:"\e006"}.librevjs-libre-mix-skin .librevjs-mute-control.librevjs-vol-0:before,.librevjs-libre-mix-skin .librevjs-volume-menu-button.librevjs-vol-0:before{content:"\e003"}.librevjs-libre-mix-skin .librevjs-mute-control.librevjs-vol-1:before,.librevjs-libre-mix-skin .librevjs-volume-menu-button.librevjs-vol-1:before{content:"\e004"}.librevjs-libre-mix-skin .librevjs-mute-control.librevjs-vol-2:before,.librevjs-libre-mix-skin .librevjs-volume-menu-button.librevjs-vol-2:before{content:"\e005"}.librevjs-libre-mix-skin .librevjs-volume-control{width:5em;float:right}.librevjs-libre-mix-skin .librevjs-volume-bar{width:5em;height:.6em;margin:1.1em auto 0} +.librevjs-libre-mix-skin .librevjs-volume-level{position:absolute;top:0;left:0;height:.6em;width:100%;background:#1de9b6}.librevjs-libre-mix-skin .librevjs-volume-bar .librevjs-volume-handle{width:.5em;height:.5em;left:4.5em}.librevjs-libre-mix-skin .librevjs-volume-handle:before{font-size:.9em;top:-0.2em;left:-0.2em;width:1em;height:1em}.librevjs-libre-mix-skin .librevjs-volume-menu-button .librevjs-menu{display:block;width:0;height:0;border-top-color:transparent}.librevjs-libre-mix-skin .librevjs-volume-menu-button .librevjs-menu .librevjs-menu-content{height:0;width:0;transform:rotate(-90deg)}.librevjs-libre-mix-skin .librevjs-volume-menu-button.librevjs-menu-button .librevjs-menu .librevjs-menu-content{margin-bottom:3.2em}.librevjs-libre-mix-skin .librevjs-volume-menu-button:hover .librevjs-menu .librevjs-menu-content,.librevjs-libre-mix-skin .librevjs-volume-menu-button .librevjs-menu.librevjs-lock-showing .librevjs-menu-content{height:2.9em;width:10em}.librevjs-libre-mix-skin .librevjs-progress-control{position:absolute;left:0;right:0;width:auto;font-size:.3em;height:1em;top:-1em;-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s} +.librevjs-libre-mix-skin:hover .librevjs-progress-control{font-size:1em;-webkit-transition:all .2s;-moz-transition:all .2s;-o-transition:all .2s;transition:all .2s}.librevjs-libre-mix-skin .librevjs-progress-holder{height:100%}.librevjs-libre-mix-skin .librevjs-progress-holder .librevjs-play-progress,.librevjs-libre-mix-skin .librevjs-progress-holder .librevjs-load-progress,.librevjs-libre-mix-skin .librevjs-progress-holder .librevjs-load-progress div{position:absolute;display:block;height:100%;margin:0;padding:0;width:0;left:0;top:0}.librevjs-libre-mix-skin .librevjs-play-progress{background:#1de9b6}.librevjs-libre-mix-skin .librevjs-load-progress{background:#d6dbdf;background:rgba(214,219,223,0.6)}.librevjs-libre-mix-skin .librevjs-load-progress div{background:#787878;background:rgba(255,255,255,0.1)}.librevjs-libre-mix-skin .librevjs-seek-handle{width:2em;height:2em;border-radius:1em;top:-0.5em;background-color:#007c5d;opacity:0;transition:opacity .4s ease-in-out}.librevjs-libre-mix-skin .librevjs-progress-control:hover .librevjs-slider-handle{opacity:1;transition:opacity .4s ease-in-out} +.librevjs-libre-mix-skin.librevjs-live .librevjs-time-controls,.librevjs-libre-mix-skin.librevjs-live .librevjs-time-divider,.librevjs-libre-mix-skin.librevjs-live .librevjs-progress-control{display:none}.librevjs-libre-mix-skin.librevjs-live .librevjs-live-display{display:block}.librevjs-libre-mix-skin .librevjs-live-display{display:none;font-size:1em;line-height:3em}.librevjs-libre-mix-skin .librevjs-time-controls{font-size:1.083em;font-weight:bold;color:#d6dbdf;line-height:3em;width:3em}.librevjs-libre-mix-skin .librevjs-current-time{float:left}.librevjs-libre-mix-skin .librevjs-current-time-display{float:right}.librevjs-libre-mix-skin .librevjs-duration,.librevjs-libre-mix-skin .librevjs-duration .librevjs-duration-display{float:left}.librevjs-libre-mix-skin .librevjs-remaining-time{display:none;float:left}.librevjs-time-divider{float:left;line-height:3em;font-size:1.083em;font-weight:bold;width:1em;text-align:center}.librevjs-libre-mix-skin .librevjs-fullscreen-control{width:3.8em;cursor:pointer;float:right} +.librevjs-libre-mix-skin .librevjs-fullscreen-control:before{content:"\e000"}.librevjs-libre-mix-skin.librevjs-fullscreen .librevjs-fullscreen-control:before{content:"\e00b"}.librevjs-libre-mix-skin .librevjs-big-play-button{left:50%;top:50%;font-size:2em;display:block;z-index:2;position:absolute;width:3.8em;height:2.6em;margin-left:-1.9em;margin-top:-1.52em;text-align:center;vertical-align:middle;cursor:pointer;opacity:1;color:#fff;background-color:#333;background-color:rgba(51,51,51,0.9);-webkit-border-radius:.4em;-moz-border-radius:.4em;border-radius:.4em;-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.librevjs-libre-mix-skin.librevjs-controls-disabled .librevjs-big-play-button{display:none}.librevjs-libre-mix-skin.librevjs-has-started .librevjs-big-play-button{display:none}.librevjs-libre-mix-skin.librevjs-using-native-controls .librevjs-big-play-button{display:none}.librevjs-libre-mix-skin:hover .librevjs-big-play-button,.librevjs-libre-mix-skin .librevjs-big-play-button:focus{color:#fff;background-color:#1de9b6} +.librevjs-libre-mix-skin .librevjs-big-play-button:before{content:"\e001";font-family:LibreVideoJS;text-align:center;text-shadow:.05em .05em .1em #000;line-height:2.6em;position:absolute;left:0;width:100%;height:100%}.librevjs-error .librevjs-big-play-button{display:none}.librevjs-error-display{display:none}.librevjs-error .librevjs-error-display{display:block;position:absolute;left:0;top:0;width:100%;height:100%}.librevjs-error .librevjs-error-display:before{content:'X';font-family:Arial;font-size:4em;color:#666;line-height:1;text-shadow:.05em .05em .1em #000;text-align:center;vertical-align:middle;position:absolute;left:0;top:50%;margin-top:-0.5em;width:100%}.librevjs-error-display div{position:absolute;bottom:1em;right:0;left:0;font-size:1.4em;text-align:center;padding:3px;background:#000;background:rgba(0,0,0,0.5)}.librevjs-error-display a,.librevjs-error-display a:visited{color:#F4A460}.librevjs-loading-spinner{display:none;position:absolute;top:50%;left:50%;font-size:4em;line-height:1;width:1em;height:1em;margin-left:-0.5em;margin-top:-0.5em;opacity:.75;-webkit-animation:spin 1.5s infinite linear;-moz-animation:spin 1.5s infinite linear;-o-animation:spin 1.5s infinite linear;animation:spin 1.5s infinite linear} +.librevjs-waiting .librevjs-loading-spinner,.librevjs-seeking .librevjs-loading-spinner{display:block;-webkit-animation:spin 1.5s infinite linear;-moz-animation:spin 1.5s infinite linear;-o-animation:spin 1.5s infinite linear;animation:spin 1.5s infinite linear}.librevjs-error .librevjs-loading-spinner{display:none;-webkit-animation:none;-moz-animation:none;-o-animation:none;animation:none}.librevjs-libre-mix-skin .librevjs-loading-spinner:before{content:"\e01e";font-family:LibreVideoJS;position:absolute;top:0;left:0;width:1em;height:1em;text-align:center;text-shadow:0 0 .1em #000}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.librevjs-libre-mix-skin .librevjs-menu-button{float:right;cursor:pointer} +.librevjs-libre-mix-skin .librevjs-menu{display:none;position:absolute;bottom:0;left:0;width:0;height:0;margin-bottom:3em;border-left:2em solid transparent;border-right:2em solid transparent;border-top:1.55em solid #000;border-top-color:rgba(0,0,0,0.4)}.librevjs-libre-mix-skin .librevjs-menu-button ul li.librevjs-selected{color:#0d1f2c;background-color:#1de9b6}.librevjs-libre-mix-skin .librevjs-menu-button ul li:focus,.librevjs-libre-mix-skin .librevjs-menu-button ul li:hover,.librevjs-libre-mix-skin .librevjs-menu-button ul li.librevjs-selected:focus,.librevjs-libre-mix-skin .librevjs-menu-button ul li.librevjs-selected:hover{outline:0;color:#007c5d;background-color:#1de9b6}.librevjs-libre-mix-skin ul li.librevjs-menu-title.librevjs-res-menu-title{color:#1de9b6;background-color:inherit}.librevjs-libre-mix-skin ul li.librevjs-menu-title.librevjs-res-menu-title:hover{color:#1de9b6;background-color:inherit}.librevjs-libre-mix-skin .librevjs-menu-button .librevjs-menu .librevjs-menu-content{display:block;padding:0;margin:0;position:absolute;width:10em;bottom:1.5em;max-height:15em;overflow:auto;left:-5em;background-color:#232221;background-color:rgba(0,0,0,0.4);-webkit-box-shadow:-0.2em -0.2em .3em rgba(255,255,255,0.2);-moz-box-shadow:-0.2em -0.2em .3em rgba(255,255,255,0.2);box-shadow:-0.2em -0.2em .3em rgba(255,255,255,0.2)} +.librevjs-libre-mix-skin .librevjs-menu-button:hover .librevjs-menu{display:block}.librevjs-libre-mix-skin.librevjs-scrubbing .librevjs-menu-button:hover .librevjs-control-content .librevjs-menu{display:none}.librevjs-libre-mix-skin .librevjs-menu-button ul li{list-style:none;margin:0;padding:.3em 0 .3em 0;line-height:1.4em;font-size:1.2em;text-align:center;text-transform:lowercase}.librevjs-libre-mix-skin .librevjs-menu-button ul li.librevjs-selected{background-color:#1de9b6}.librevjs-libre-mix-skin .librevjs-menu-button ul li:focus,.librevjs-libre-mix-skin .librevjs-menu-button ul li:hover,.librevjs-libre-mix-skin .librevjs-menu-button ul li.librevjs-selected:focus,.librevjs-libre-mix-skin .librevjs-menu-button ul li.librevjs-selected:hover{outline:0;color:#0d1f2c;background-color:#1de9b6}.librevjs-libre-mix-skin .librevjs-menu-button ul li.librevjs-menu-title{text-align:center;text-transform:uppercase;font-size:1em;line-height:2em;padding:0;margin:0 0 .3em 0;font-weight:bold;cursor:default} +.librevjs-libre-mix-skin .librevjs-subtitles-button:before{content:"\e00c"}.librevjs-libre-mix-skin .librevjs-captions-button:before{content:"\e008"}.librevjs-libre-mix-skin .librevjs-chapters-button:before{content:"\e00c"}.librevjs-libre-mix-skin .librevjs-chapters-button.librevjs-menu-button .librevjs-menu .librevjs-menu-content{width:24em;left:-12em}.librevjs-libre-mix-skin .librevjs-captions-button:focus .librevjs-control-content:before,.librevjs-libre-mix-skin .librevjs-captions-button:hover .librevjs-control-content:before{-webkit-box-shadow:0 0 1em #fff;-moz-box-shadow:0 0 1em #fff;box-shadow:0 0 1em #fff}.cliplibre-js{background-color:#000;position:relative;padding:0;font-size:12px;vertical-align:middle;font-weight:normal;font-style:normal;font-family:Arial,Helvetica,sans-serif;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cliplibre-js .librevjs-tech{position:absolute;top:0;left:0;width:100%;height:100%}.cliplibre-js:-moz-full-screen{position:absolute} +body.librevjs-full-window{padding:0;margin:0;height:100%;overflow-y:auto}.cliplibre-js.librevjs-fullscreen{position:fixed;overflow:hidden;z-index:1000;left:0;top:0;bottom:0;right:0;width:100%!important;height:100%!important;_position:absolute}.cliplibre-js:-webkit-full-screen{width:100%!important;height:100%!important}.cliplibre-js.librevjs-fullscreen.librevjs-user-inactive{cursor:none}.librevjs-poster{background-repeat:no-repeat;background-position:50% 50%;background-size:contain;background-color:#000;cursor:pointer;margin:0;padding:0;position:absolute;top:0;right:0;bottom:0;left:0}.librevjs-poster img{display:block;margin:0 auto;max-height:100%;padding:0;width:100%}.cliplibre-js.librevjs-has-started .librevjs-poster{display:none}.cliplibre-js.librevjs-audio.librevjs-has-started .librevjs-poster{display:block}.cliplibre-js.librevjs-controls-disabled .librevjs-poster{display:none}.cliplibre-js.librevjs-using-native-controls .librevjs-poster{display:none}.cliplibre-js .librevjs-text-track-display{text-align:center;position:absolute;bottom:4em;left:1em;right:1em} +.cliplibre-js .librevjs-subtitles{color:#fff}.cliplibre-js .librevjs-captions{color:#fff;background-color:rgba(2,7,11,0.7)}.librevjs-caption-settings{position:relative;top:1em;background-color:#000;opacity:.75;color:#FFF;margin:0 auto;padding:.5em;height:15em;font-family:Arial,Helvetica,sans-serif;font-size:12px;width:40em}.librevjs-caption-settings .librevjs-tracksettings{top:0;bottom:2em;left:0;right:0;position:absolute;overflow:auto}.librevjs-caption-settings .librevjs-tracksettings-colors,.librevjs-caption-settings .librevjs-tracksettings-font{float:left}.librevjs-caption-settings .librevjs-tracksettings-colors:after,.librevjs-caption-settings .librevjs-tracksettings-font:after,.librevjs-caption-settings .librevjs-tracksettings-controls:after{clear:both}.librevjs-caption-settings .librevjs-tracksettings-controls{position:absolute;bottom:1em;right:1em}.librevjs-caption-settings .librevjs-tracksetting{margin:5px;padding:3px;min-height:40px}.librevjs-caption-settings .librevjs-tracksetting label{display:block;width:100px;margin-bottom:5px} +.librevjs-caption-settings .librevjs-tracksetting span{display:inline;margin-left:5px}.librevjs-caption-settings .librevjs-tracksetting>div{margin-bottom:5px;min-height:20px}.librevjs-caption-settings .librevjs-tracksetting>div:last-child{margin-bottom:0;padding-bottom:0;min-height:0}.librevjs-caption-settings label>input{margin-right:10px}.librevjs-caption-settings input[type="button"]{width:40px;height:40px}.librevjs-hidden{display:none!important}.librevjs-lock-showing{display:block!important;opacity:1;visibility:visible}.librevjs-no-js{padding:2em;color:#ccc;background-color:#333;font-size:1.8em;font-family:Arial,sans-serif;text-align:center;width:30em;height:15em;margin:0 auto}.librevjs-no-js a,.librevjs-no-js a:visited{color:#F4A460}.cliplibre-js-responsive-container.librevjs-hd{padding-top:56.25%}.cliplibre-js-responsive-container.librevjs-sd{padding-top:75%}.cliplibre-js-responsive-container{width:100%;position:relative}.cliplibre-js-responsive-container .cliplibre-js{height:100%!important;width:100%!important;position:absolute;top:0;left:0} +@media screen and (max-width:800px){.cliplibre-js .librevjs-text-track{font-size:1.5em;margin-bottom:-0.2em;line-height:1.5}}@media screen and (max-width:600px){.cliplibre-js .librevjs-text-track{font-size:1.2em}.cliplibre-js .librevjs-text-track-display{bottom:2em}}@media screen and (max-width:413px){.cliplibre-js{font-size:8px}}@media screen and (max-width:400px){.cliplibre-js .librevjs-text-track{font-size:1em}.librevjs-libre-mix-skin .librevjs-big-play-button{font-size:2em}.cliplibre-js .librevjs-text-track-display{bottom:1em}}@media screen and (max-width:335px){.cliplibre-js{font-size:6px}}@media screen and (max-width:150px){.librevjs-libre-mix-skin .librevjs-big-play-button{font-size:1.8em}}@media screen and (max-width:90px){.librevjs-libre-mix-skin .librevjs-big-play-button{font-size:1.4em}}.librevjs-res-button{font-weight:bold;float:right;line-height:3em}ul li.librevjs-menu-title.librevjs-res-menu-title:hover{cursor:default;background-color:transparent;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none} +.librevjs-res-button .librevjs-control-text{width:auto;height:auto;clip:auto}.librevjs-progress-tip{visibility:hidden;display:block;opacity:.8;padding:5px;font-size:10px;position:absolute;z-index:100000}.librevjs-progress-tip-arrow{background:url(data:image/gif;base64,R0lGODlhCQAJAIABAAAAAAAAACH5BAEAAAEALAAAAAAJAAkAAAIRjAOnwIrcDJxvwkplPtchVQAAOw==) no-repeat top left;bottom:0;left:50%;margin-left:-4px;background-position:bottom left;position:absolute;width:9px;height:5px}.librevjs-progress-tip-inner{border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;padding:5px 8px 4px 8px;background-color:black;color:white;max-width:200px;text-align:center}
\ No newline at end of file diff --git a/css/mix-material/master.css b/css/mix-material/master.css deleted file mode 100644 index e13ad10..0000000 --- a/css/mix-material/master.css +++ /dev/null @@ -1,4065 +0,0 @@ -/*! -LibreVideoJS Estilos personalizados -Version 1.4 -Escrito por Jesús Eduardo -*/ - - -/* SKIN -================================================================================ -The main class name for all skin-specific styles. To make your own skin, -replace all occurances of 'librevjs-default-skin' with a new name. Then add your new -skin name to your video tag instead of the default skin. -e.g. <video class="librevideo-js my-skin-name"> -*/ - - -/* Custom Icon Font --------------------------------------------------------------------------------- -The control icons are from a custom font. Each icon corresponds to a character -(e.g. "\e002"). Font icons allow for easy scaling and coloring of icons. -*/ - - -/* Universal fonts */ - -@font-face { - font-family:"LibreVideoJS"; - src: url("../../fonts/libre-material/libre-icons.eot") format("embedded-opentype"); - src: local('?'), - url("../../fonts/libre-material/libre-icons.woff") format("woff"), - url("../../fonts/libre-material/libre-icons.ttf") format("truetype"), - url("../../fonts/libre-material/libre-icons.svg") format("svg"); -} - - -/* Skins -=========================================================================================================================*/ - - -/* Skin-Blue ------------------------------------------------------------------------------------------------------------*/ - -.librevjs-libre-mixblue-skin { - color: #ccc; - background-color: inherit; -} - - -/* Base UI Component Classes ---------------------------------------------------------------------------------*/ - - -/* Slider - used for Volume bar and Seek bar */ - -.librevjs-libre-mixblue-skin .librevjs-slider { - /* Replace browser focus highlight with handle highlight */ - outline: 0; - position: relative; - cursor: pointer; - padding: 0; - /* background-color-with-alpha */ - background-color: #000000; - background-color: rgba(0, 0, 0, 0.5); -} - -.librevjs-libre-mixblue-skin .librevjs-slider:focus { - -webkit-box-shadow: 0 0 2em #fff; - -moz-box-shadow: 0 0 2em #fff; - box-shadow: 0 0 2em #fff; -} - - -/*Eliminación de botón de barra de progreso*/ - -.librevjs-libre-mixblue-skin .librevjs-slider-handle { - width: 0; - height: 0; -} - -.librevjs-libre-mixblue-skin .librevjs-slider-handle:before { - text-shadow: 0em 0em 1em #fff; - position: absolute; - top: 0; - left: 0; -} - - -/* Control Bar --------------------------------------------------------------------------------- -The default control bar that is a container for most of the controls. -*/ - -.librevjs-libre-mixblue-skin .librevjs-control-bar { - /* Start hidden */ - display: none; - position: absolute; - /* Place control bar at the bottom of the player box/video. - If you want more margin below the control bar, add more height. */ - bottom: 0; - /* Use left/right to stretch to 100% width of player div */ - left: 0; - right: 0; - /* Height includes any margin you want above or below control items */ - height: 3.0em; - /* background-color-with-alpha */ - background-color: #232323; - background-color: rgba(35, 35, 35, 0.8); -} - - -/* Show the control bar only once the video has started playing */ - -.librevjs-libre-mixblue-skin.librevjs-has-started .librevjs-control-bar { - display: block; - visibility: visible; - opacity: 1; - -webkit-transition: visibility .1s, opacity .1s; - -moz-transition: visibility .1s, opacity .1s; - -o-transition: visibility .1s, opacity .1s; - transition: visibility .1s, opacity .1s -} - - -/* Hide the control bar when the video is playing and the user is inactive */ - -.librevjs-libre-mixblue-skin.librevjs-has-started.librevjs-user-inactive.librevjs-playing .librevjs-control-bar { - display: block; - visibility: hidden; - opacity: 0; - -webkit-transition: visibility 1s, opacity 1s; - -moz-transition: visibility 1s, opacity 1s; - -o-transition: visibility 1s, opacity 1s; - transition: visibility 1s, opacity 1s -} - -.librevjs-libre-mixblue-skin.librevjs-controls-disabled .librevjs-control-bar { - display: none -} - -.librevjs-libre-mixblue-skin.librevjs-using-native-controls .librevjs-control-bar { - display: none -} - -@media \0screen { - .librevjs-libre-mixblue-skin.librevjs-user-inactive.librevjs-playing .librevjs-control-bar :before { - content: "" - } -} - - -/* General styles for individual controls. */ - -.librevjs-libre-mixblue-skin .librevjs-control { - outline: 0; - position: relative; - float: left; - text-align: center; - margin: 0; - padding: 0; - height: 3em; - width: 4em -} - - -/* FreeArt button icons: http://artlibre.org/licence/lal */ - -.librevjs-libre-mixblue-skin .librevjs-control:before { - font-family: LibreVideoJS; - font-size: 1.5em; - line-height: 2; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - text-align: center; - text-shadow: 1px 1px 1px rgba(0, 0, 0, .5) -} - - -/* Replacement for focus outline */ - -.librevjs-libre-mixblue-skin .librevjs-control:focus:before, .librevjs-libre-mixblue-skin .librevjs-control:hover:before { - color: #2196F3; -} - -.librevjs-libre-mixblue-skin .librevjs-control:focus { - /* outline: 0; */ - /* keyboard-only users cannot see the focus on several of the UI elements when this is set to 0 */ -} - - -/* Hide control text visually, but have it available for screenreaders */ - -.librevjs-libre-mixblue-skin .librevjs-control-text { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px -} - - -/* Play/Pause --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixblue-skin .librevjs-play-control { - width: 5em; - cursor: pointer; - color: rgb(33, 150, 244); -} - -.librevjs-libre-mixblue-skin .librevjs-play-control:before { - content: "\e001" -} - -.librevjs-libre-mixblue-skin .librevjs-play-control:hover:before { - color: #2980b9; - /*color de play control al pasar el cursor*/ -} - -.librevjs-libre-mixblue-skin.librevjs-playing .librevjs-play-control:before { - content: "\e002" -} - - -/* Volume/Mute --------------------------------------------------------------------------------- */ - -.librevjs-libre-mixblue-skin .librevjs-mute-control, .librevjs-libre-mixblue-skin .librevjs-volume-menu-button { - cursor: pointer; - float: right -} - -.librevjs-libre-mixblue-skin .librevjs-mute-control:before, .librevjs-libre-mixblue-skin .librevjs-volume-menu-button:before { - content: "\e006" -} - -.librevjs-libre-mixblue-skin .librevjs-mute-control.librevjs-vol-0:before, .librevjs-libre-mixblue-skin .librevjs-volume-menu-button.librevjs-vol-0:before { - content: "\e003" -} - -.librevjs-libre-mixblue-skin .librevjs-mute-control.librevjs-vol-1:before, .librevjs-libre-mixblue-skin .librevjs-volume-menu-button.librevjs-vol-1:before { - content: "\e004" -} - -.librevjs-libre-mixblue-skin .librevjs-mute-control.librevjs-vol-2:before, .librevjs-libre-mixblue-skin .librevjs-volume-menu-button.librevjs-vol-2:before { - content: "\e005" -} - -.librevjs-libre-mixblue-skin .librevjs-volume-control { - width: 5em; - float: right -} - -.librevjs-libre-mixblue-skin .librevjs-volume-bar { - width: 5em; - height: .6em; - margin: 1.1em auto 0 -} - -.librevjs-libre-mixblue-skin .librevjs-volume-menu-button .librevjs-menu-content { - height: 2.9em -} - - -/*Personalización del nivel de volumen*/ - -.librevjs-libre-mixblue-skin .librevjs-volume-level { - position: absolute; - top: 0; - left: 0; - height: 0.5em; - /* assuming volume starts at 1.0 */ - width: 100%; - background: #2196F3 url() -50% 0 repeat; -} - -.librevjs-libre-mixblue-skin .librevjs-volume-bar .librevjs-volume-handle { - width: .5em; - height: .5em -} - -.librevjs-libre-mixblue-skin .librevjs-volume-handle:before { - font-size: .9em; - top: -.2em; - left: -.2em; - width: 1em; - height: 1em; -} - -.librevjs-libre-mixblue-skin .librevjs-volume-menu-button .librevjs-menu .librevjs-menu-content { - width: 6em; - left: -4em; -} - - -/* Progress --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixblue-skin .librevjs-progress-control { - position: absolute; - left: 0; - right: 0; - width: auto; - font-size: .3em; - height: 1em; - top: -1em; - -webkit-transition: all .4s; - -moz-transition: all .4s; - -o-transition: all .4s; - transition: all .4s; -} - -.librevjs-libre-mixblue-skin:hover .librevjs-progress-control { - font-size: .9em; - -webkit-transition: all .2s; - -moz-transition: all .2s; - -o-transition: all .2s; - transition: all .2s; -} - - -/* Box containing play and load progress. Also acts as seek scrubber. */ - -.librevjs-libre-mixblue-skin .librevjs-progress-holder { - height: 100%; -} - - -/* Progress Bars */ - -.librevjs-libre-mixblue-skin .librevjs-progress-holder .librevjs-play-progress, .librevjs-libre-mixblue-skin .librevjs-progress-holder .librevjs-load-progress { - position: absolute; - display: block; - height: 100%; - margin: 0; - padding: 0; - left: 0; - top: 0 -} - -.librevjs-libre-mixblue-skin .librevjs-play-progress { - background: #2196F3 url() -50% 0 repeat; -} - -.librevjs-libre-mixblue-skin .librevjs-load-progress { - background: #646464; - background: rgba(255, 255, 255, .4) -} - -.librevjs-libre-mixblue-skin .librevjs-seek-handle { - width: 1.5em; - height: 100% -} - -.librevjs-libre-mixblue-skin .librevjs-seek-handle:before { - padding-top: .1em -} - - -/* Time Display --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixblue-skin .librevjs-time-controls { - font-size: 1em; - font-weight: 700; - /*mayor visibilidad*/ - line-height: 3em -} - -.librevjs-libre-mixblue-skin .librevjs-current-time { - float: left -} - -.librevjs-libre-mixblue-skin .librevjs-duration { - float: left -} - -.librevjs-libre-mixblue-skin .librevjs-remaining-time { - display: none; - float: left -} - - -/* Fullscreen --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixblue-skin .librevjs-fullscreen-control { - width: 3.8em; - cursor: pointer; - float: right -} - -.librevjs-libre-mixblue-skin .librevjs-fullscreen-control:before { - content: "\e000" -} - - -/* Switch to the exit icon when the player is in fullscreen */ - -.librevjs-libre-mixblue-skin.librevjs-fullscreen .librevjs-fullscreen-control:before { - content: "\e00b" -} - - -/* Big Play Button (play button at start) --------------------------------------------------------------------------------- -Positioning of the play button in the center or other corners can be done more -easily in the skin designer by LibreVideoJS FreeArts. -*/ - -.librevjs-libre-mixblue-skin .librevjs-big-play-button { - /* Center it horizontally */ - left: 50%; - margin-left: -1.85em; - /* Center it vertically */ - top: 50%; - margin-top: -1.3em; - font-size: 2em; - display: block; - z-index: 2; - position: absolute; - width: 3.8em; - height: 2.6em; - text-align: center; - vertical-align: middle; - cursor: pointer; - opacity: 1; - /* Need a slightly gray bg so it can be seen on black backgrounds */ - /* background-color-with-alpha */ - background-color: #232323; - background-color: rgba(35, 35, 35, 0.8); - border: 0 solid; - /* border-radius */ - -webkit-border-radius: 0.4em; - -moz-border-radius: 0.4em; - border-radius: 0.4em; - /* transition */ - -webkit-transition: all 0.4s; - -moz-transition: all 0.4s; - -o-transition: all 0.4s; - transition: all 0.4s; -} - - -/* Hide if controls are disabled */ - -.librevjs-libre-mixblue-skin.librevjs-controls-disabled .librevjs-big-play-button { - display: none; -} - - -/* Hide when video starts playing */ - -.librevjs-libre-mixblue-skin.librevjs-has-started .librevjs-big-play-button { - display: none; -} - - -/* Hide on mobile devices. Remove when we stop using native controls - by default on mobile */ - -.librevjs-libre-mixblue-skin.librevjs-using-native-controls .librevjs-big-play-button { - display: none; -} - -.librevjs-libre-mixblue-skin:hover .librevjs-big-play-button, .librevjs-libre-mixblue-skin .librevjs-big-play-button:focus { - outline: 0; - cursor: pointer; - /* IE8 needs a non-glow hover state */ - background-color: #2196F3; - /*color del boton play al hacer focus*/ - color: #FFFFFF; -} - -.librevjs-libre-mixblue-skin .librevjs-big-play-button:before { - content: "\e001"; - font-family: LibreVideoJS; - /* In order to center the play icon vertically we need to set the line height - to the same as the button height */ - line-height: 2.6em; - text-shadow: 0.05em 0.05em 0.1em #000; - text-align: center/* Needed for IE8 */ - ; - position: absolute; - left: 0; - width: 100%; - height: 100%; -} - - -/* Menu Buttons (Captions/Subtitles/etc.) --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixblue-skin .librevjs-menu-button { - float: right; - cursor: pointer; -} - -.librevjs-libre-mixblue-skin .librevjs-menu { - display: none; - position: absolute; - bottom: 0; - left: 0; - width: 0; - height: 0; - margin-bottom: 3em; - border-left: 2em solid transparent; - border-right: 2em solid transparent; - border-top: 1.55em solid #000; - border-top-color: rgba(7, 40, 50, .5); -} - - -/* Button Pop-up Menu */ - -.librevjs-libre-mixblue-skin .librevjs-menu-button .librevjs-menu .librevjs-menu-content { - display: block; - padding: 0; - margin: 0; - position: absolute; - width: 10em; - bottom: 1.5em; - /* Same bottom as librevjs-menu border-top */ - max-height: 15em; - overflow: auto; - left: -5em; - /* Width of menu - width of button / 2 */ - /* background-color-with-alpha */ - background-color: #07141e; - background-color: rgba(7, 20, 30, .7); - -webkit-box-shadow: -.2em -.2em .3em rgba(255, 255, 255, .2); - -moz-box-shadow: -.2em -.2em .3em rgba(255, 255, 255, .2); - box-shadow: -.2em -.2em .3em rgba(255, 255, 255, .2); -} - -.librevjs-libre-mixblue-skin .librevjs-menu-button:hover .librevjs-menu { - display: block; -} - -.librevjs-libre-mixblue-skin .librevjs-menu-button ul li { - list-style: none; - margin: 0; - padding: .3em 0; - line-height: 1.4em; - font-size: 1.2em; - text-align: center; - text-transform: lowercase; - color: #ccc; -} - - -/* Select color menu subtitles/captions */ - -.librevjs-libre-mixblue-skin .librevjs-menu-button ul li.librevjs-selected { - color: rgb(11, 21, 42); - background-color: rgb(33, 150, 244); -} - -.librevjs-libre-mixblue-skin .librevjs-menu-button ul li:focus, .librevjs-libre-mixblue-skin .librevjs-menu-button ul li:hover, .librevjs-libre-mixblue-skin .librevjs-menu-button ul li.librevjs-selected:focus, .librevjs-libre-mixblue-skin .librevjs-menu-button ul li.librevjs-selected:hover { - outline: 0; - color: rgb(11, 21, 42); - background-color: #2196F3; -} - - -/*End Select color menu subtitles/caption */ - -.librevjs-libre-mixblue-skin .librevjs-menu-button ul li.librevjs-menu-title { - text-align: center; - text-transform: uppercase; - font-size: 1em; - line-height: 2em; - padding: 0; - margin: 0 0 .3em; - font-weight: 700; - cursor: default; -} - - -/* Subtitles Button */ - -.librevjs-libre-mixblue-skin .librevjs-subtitles-button:before { - content: "\e00c" -} - - -/* Captions Button */ - -.librevjs-libre-mixblue-skin .librevjs-captions-button:before { - content: "\e008" -} - - -/* Replacement for focus outline */ - -.librevjs-libre-mixblue-skin .librevjs-captions-button:focus .librevjs-control-content:before, .librevjs-libre-mixblue-skin .librevjs-captions-button:hover .librevjs-control-content:before { - -webkit-box-shadow: 0 0 1em #fff; - -moz-box-shadow: 0 0 1em #fff; - box-shadow: 0 0 1em #fff; -} - - -/* Hide disabled or unsupported controls */ - -.librevjs-libre-mixblue-skin .librevjs-hidden { - display: none -} - - -/*Title Resolution | subtitles and Caption*/ - -.librevjs-libre-mixblue-skin ul li.librevjs-menu-title.librevjs-res-menu-title { - color: rgb(33, 150, 244); - background-color: inherit; -} - -.librevjs-libre-mixblue-skin ul li.librevjs-menu-title.librevjs-res-menu-title:hover { - color: rgb(11, 137, 237); - background-color: inherit; -} - -@media screen and (max-width: 400px) { - .librevjs-libre-mixblue-skin .librevjs-big-play-button { - font-size: 2em; - } -} - -@media screen and (max-width: 150px) { - .librevjs-libre-mixblue-skin .librevjs-big-play-button { - font-size: 1.8em; - } -} - -@media screen and (max-width: 90px) { - .librevjs-libre-mixblue-skin .librevjs-big-play-button { - font-size: 1.4em; - } -} - - -/* Skin-Grey -------------------------------------------------------------------------------------------------------*/ - -.librevjs-libre-mixgrey-skin { - color: #ccc; - background-color: inherit; -} - - -/* Base UI Component Classes ---------------------------------------------------------------------------------*/ -/* Slider - used for Volume bar and Seek bar */ - -.librevjs-libre-mixgrey-skin .librevjs-slider { - /* Replace browser focus highlight with handle highlight */ - outline: 0; - position: relative; - cursor: pointer; - padding: 0; - /* background-color-with-alpha */ - background-color: #000000; - background-color: rgba(0, 0, 0, 0.5); -} - -.librevjs-libre-mixgrey-skin .librevjs-slider:focus { - -webkit-box-shadow: 0 0 2em #fff; - -moz-box-shadow: 0 0 2em #fff; - box-shadow: 0 0 2em #fff; -} - - -/*Eliminación de botón de barra de progreso*/ - -.librevjs-libre-mixgrey-skin .librevjs-slider-handle { - width: 0; - height: 0; -} - -.librevjs-libre-mixgrey-skin .librevjs-slider-handle:before { - text-shadow: 0em 0em 1em #fff; - position: absolute; - top: 0; - left: 0; -} - - -/* Control Bar --------------------------------------------------------------------------------- -The default control bar that is a container for most of the controls. -*/ - -.librevjs-libre-mixgrey-skin .librevjs-control-bar { - /* Start hidden */ - display: none; - position: absolute; - /* Place control bar at the bottom of the player box/video. - If you want more margin below the control bar, add more height. */ - bottom: 0; - /* Use left/right to stretch to 100% width of player div */ - left: 0; - right: 0; - /* Height includes any margin you want above or below control items */ - height: 3.0em; - /* background-color-with-alpha */ - background-color: #232323; - background-color: rgba(35, 35, 35, 0.8); -} - - -/* Show the control bar only once the video has started playing */ - -.librevjs-libre-mixgrey-skin.librevjs-has-started .librevjs-control-bar { - display: block; - visibility: visible; - opacity: 1; - -webkit-transition: visibility .1s, opacity .1s; - -moz-transition: visibility .1s, opacity .1s; - -o-transition: visibility .1s, opacity .1s; - transition: visibility .1s, opacity .1s -} - - -/* Hide the control bar when the video is playing and the user is inactive */ - -.librevjs-libre-mixgrey-skin.librevjs-has-started.librevjs-user-inactive.librevjs-playing .librevjs-control-bar { - display: block; - visibility: hidden; - opacity: 0; - -webkit-transition: visibility 1s, opacity 1s; - -moz-transition: visibility 1s, opacity 1s; - -o-transition: visibility 1s, opacity 1s; - transition: visibility 1s, opacity 1s -} - -.librevjs-libre-mixgrey-skin.librevjs-controls-disabled .librevjs-control-bar { - display: none -} - -.librevjs-libre-mixgrey-skin.librevjs-using-native-controls .librevjs-control-bar { - display: none -} - -@media \0screen { - .librevjs-libre-mixgrey-skin.librevjs-user-inactive.librevjs-playing .librevjs-control-bar :before { - content: "" - } -} - - -/* General styles for individual controls. */ - -.librevjs-libre-mixgrey-skin .librevjs-control { - outline: 0; - position: relative; - float: left; - text-align: center; - margin: 0; - padding: 0; - height: 3em; - width: 4em -} - - -/* FreeArt button icons: http://artlibre.org/licence/lal */ - -.librevjs-libre-mixgrey-skin .librevjs-control:before { - font-family: LibreVideoJS; - font-size: 1.5em; - line-height: 2; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - text-align: center; - text-shadow: 1px 1px 1px rgba(0, 0, 0, .5) -} - - -/* Replacement for focus outline */ - -.librevjs-libre-mixgrey-skin .librevjs-control:focus:before, .librevjs-libre-mixgrey-skin .librevjs-control:hover:before { - color: #9e9e9e; -} - -.librevjs-libre-mixgrey-skin .librevjs-control:focus { - /* outline: 0; */ - /* keyboard-only users cannot see the focus on several of the UI elements when this is set to 0 */ -} - - -/* Hide control text visually, but have it available for screenreaders */ - -.librevjs-libre-mixgrey-skin .librevjs-control-text { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px -} - - -/* Play/Pause --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixgrey-skin .librevjs-play-control { - width: 5em; - cursor: pointer; - color: rgb(158, 158, 158); -} - -.librevjs-libre-mixgrey-skin .librevjs-play-control:before { - content: "\e001" -} - -.librevjs-libre-mixgrey-skin .librevjs-play-control:hover:before { - color: #7c7c7c; - /*color de play control al pasar el cursor*/ -} - -.librevjs-libre-mixgrey-skin.librevjs-playing .librevjs-play-control:before { - content: "\e002" -} - - -/* Volume/Mute --------------------------------------------------------------------------------- */ - -.librevjs-libre-mixgrey-skin .librevjs-mute-control, .librevjs-libre-mixgrey-skin .librevjs-volume-menu-button { - cursor: pointer; - float: right -} - -.librevjs-libre-mixgrey-skin .librevjs-mute-control:before, .librevjs-libre-mixgrey-skin .librevjs-volume-menu-button:before { - content: "\e006" -} - -.librevjs-libre-mixgrey-skin .librevjs-mute-control.librevjs-vol-0:before, .librevjs-libre-mixgrey-skin .librevjs-volume-menu-button.librevjs-vol-0:before { - content: "\e003" -} - -.librevjs-libre-mixgrey-skin .librevjs-mute-control.librevjs-vol-1:before, .librevjs-libre-mixgrey-skin .librevjs-volume-menu-button.librevjs-vol-1:before { - content: "\e004" -} - -.librevjs-libre-mixgrey-skin .librevjs-mute-control.librevjs-vol-2:before, .librevjs-libre-mixgrey-skin .librevjs-volume-menu-button.librevjs-vol-2:before { - content: "\e005" -} - -.librevjs-libre-mixgrey-skin .librevjs-volume-control { - width: 5em; - float: right -} - -.librevjs-libre-mixgrey-skin .librevjs-volume-bar { - width: 5em; - height: .6em; - margin: 1.1em auto 0 -} - -.librevjs-libre-mixgrey-skin .librevjs-volume-menu-button .librevjs-menu-content { - height: 2.9em -} - - -/*Personalización del nivel de volumen*/ - -.librevjs-libre-mixgrey-skin .librevjs-volume-level { - position: absolute; - top: 0; - left: 0; - height: 0.5em; - /* assuming volume starts at 1.0 */ - width: 100%; - background: #9e9e9e url() -50% 0 repeat; -} - -.librevjs-libre-mixgrey-skin .librevjs-volume-bar .librevjs-volume-handle { - width: .5em; - height: .5em -} - -.librevjs-libre-mixgrey-skin .librevjs-volume-handle:before { - font-size: .9em; - top: -.2em; - left: -.2em; - width: 1em; - height: 1em; -} - -.librevjs-libre-mixgrey-skin .librevjs-volume-menu-button .librevjs-menu .librevjs-menu-content { - width: 6em; - left: -4em; -} - - -/* Progress --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixgrey-skin .librevjs-progress-control { - position: absolute; - left: 0; - right: 0; - width: auto; - font-size: .3em; - height: 1em; - top: -1em; - -webkit-transition: all .4s; - -moz-transition: all .4s; - -o-transition: all .4s; - transition: all .4s; -} - -.librevjs-libre-mixgrey-skin:hover .librevjs-progress-control { - font-size: .9em; - -webkit-transition: all .2s; - -moz-transition: all .2s; - -o-transition: all .2s; - transition: all .2s; -} - - -/* Box containing play and load progress. Also acts as seek scrubber. */ - -.librevjs-libre-mixgrey-skin .librevjs-progress-holder { - height: 100%; -} - - -/* Progress Bars */ - -.librevjs-libre-mixgrey-skin .librevjs-progress-holder .librevjs-play-progress, .librevjs-libre-mixgrey-skin .librevjs-progress-holder .librevjs-load-progress { - position: absolute; - display: block; - height: 100%; - margin: 0; - padding: 0; - left: 0; - top: 0 -} - -.librevjs-libre-mixgrey-skin .librevjs-play-progress { - background: #9e9e9e url() -50% 0 repeat; -} - -.librevjs-libre-mixgrey-skin .librevjs-load-progress { - background: #646464; - background: rgba(255, 255, 255, .4) -} - -.librevjs-libre-mixgrey-skin .librevjs-seek-handle { - width: 1.5em; - height: 100% -} - -.librevjs-libre-mixgrey-skin .librevjs-seek-handle:before { - padding-top: .1em -} - - -/* Time Display --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixgrey-skin .librevjs-time-controls { - font-size: 1em; - font-weight: 700; - /*mayor visibilidad*/ - line-height: 3em -} - -.librevjs-libre-mixgrey-skin .librevjs-current-time { - float: left -} - -.librevjs-libre-mixgrey-skin .librevjs-duration { - float: left -} - -.librevjs-libre-mixgrey-skin .librevjs-remaining-time { - display: none; - float: left -} - - -/* Fullscreen --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixgrey-skin .librevjs-fullscreen-control { - width: 3.8em; - cursor: pointer; - float: right -} - -.librevjs-libre-mixgrey-skin .librevjs-fullscreen-control:before { - content: "\e000" -} - - -/* Switch to the exit icon when the player is in fullscreen */ - -.librevjs-libre-mixgrey-skin.librevjs-fullscreen .librevjs-fullscreen-control:before { - content: "\e00b" -} - - -/* Big Play Button (play button at start) --------------------------------------------------------------------------------- -Positioning of the play button in the center or other corners can be done more -easily in the skin designer by LibreVideoJS FreeArts. -*/ - -.librevjs-libre-mixgrey-skin .librevjs-big-play-button { - /* Center it horizontally */ - left: 50%; - margin-left: -1.85em; - /* Center it vertically */ - top: 50%; - margin-top: -1.3em; - font-size: 2em; - display: block; - z-index: 2; - position: absolute; - width: 3.8em; - height: 2.6em; - text-align: center; - vertical-align: middle; - cursor: pointer; - opacity: 1; - /* Need a slightly gray bg so it can be seen on black backgrounds */ - /* background-color-with-alpha */ - background-color: #232323; - background-color: rgba(35, 35, 35, 0.8); - border: 0 solid; - /* border-radius */ - -webkit-border-radius: 0.4em; - -moz-border-radius: 0.4em; - border-radius: 0.4em; - /* transition */ - -webkit-transition: all 0.4s; - -moz-transition: all 0.4s; - -o-transition: all 0.4s; - transition: all 0.4s; -} - - -/* Hide if controls are disabled */ - -.librevjs-libre-mixgrey-skin.librevjs-controls-disabled .librevjs-big-play-button { - display: none; -} - - -/* Hide when video starts playing */ - -.librevjs-libre-mixgrey-skin.librevjs-has-started .librevjs-big-play-button { - display: none; -} - - -/* Hide on mobile devices. Remove when we stop using native controls - by default on mobile */ - -.librevjs-libre-mixgrey-skin.librevjs-using-native-controls .librevjs-big-play-button { - display: none; -} - -.librevjs-libre-mixgrey-skin:hover .librevjs-big-play-button, .librevjs-libre-mixgrey-skin .librevjs-big-play-button:focus { - outline: 0; - cursor: pointer; - /* IE8 needs a non-glow hover state */ - background-color: rgb(115, 115, 115); - /*color del boton play al hacer focus*/ - color: #FFFFFF; -} - -.librevjs-libre-mixgrey-skin .librevjs-big-play-button:before { - content: "\e001"; - font-family: LibreVideoJS; - /* In order to center the play icon vertically we need to set the line height - to the same as the button height */ - line-height: 2.6em; - text-shadow: 0.05em 0.05em 0.1em #000; - text-align: center/* Needed for IE8 */ - ; - position: absolute; - left: 0; - width: 100%; - height: 100%; -} - - -/* Menu Buttons (Captions/Subtitles/etc.) --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixgrey-skin .librevjs-menu-button { - float: right; - cursor: pointer; -} - -.librevjs-libre-mixgrey-skin .librevjs-menu { - display: none; - position: absolute; - bottom: 0; - left: 0; - width: 0; - height: 0; - margin-bottom: 3em; - border-left: 2em solid transparent; - border-right: 2em solid transparent; - border-top: 1.55em solid #000; - border-top-color: rgba(7, 40, 50, .5); -} - - -/* Button Pop-up Menu */ - -.librevjs-libre-mixgrey-skin .librevjs-menu-button .librevjs-menu .librevjs-menu-content { - display: block; - padding: 0; - margin: 0; - position: absolute; - width: 10em; - bottom: 1.5em; - /* Same bottom as librevjs-menu border-top */ - max-height: 15em; - overflow: auto; - left: -5em; - /* Width of menu - width of button / 2 */ - /* background-color-with-alpha */ - background-color: #07141e; - background-color: rgba(7, 20, 30, .7); - -webkit-box-shadow: -.2em -.2em .3em rgba(255, 255, 255, .2); - -moz-box-shadow: -.2em -.2em .3em rgba(255, 255, 255, .2); - box-shadow: -.2em -.2em .3em rgba(255, 255, 255, .2); -} - -.librevjs-libre-mixgrey-skin .librevjs-menu-button:hover .librevjs-menu { - display: block; -} - -.librevjs-libre-mixgrey-skin .librevjs-menu-button ul li { - list-style: none; - margin: 0; - padding: .3em 0; - line-height: 1.4em; - font-size: 1.2em; - text-align: center; - text-transform: lowercase; - color: #ccc; -} - - -/* Select color menu subtitles/captions */ - -.librevjs-libre-mixgrey-skin .librevjs-menu-button ul li.librevjs-selected { - color: #fff; - background-color: rgb(158, 158, 158); -} - -.librevjs-libre-mixgrey-skin .librevjs-menu-button ul li:focus, .librevjs-libre-mixgrey-skin .librevjs-menu-button ul li:hover, .librevjs-libre-mixgrey-skin .librevjs-menu-button ul li.librevjs-selected:focus, .librevjs-libre-mixgrey-skin .librevjs-menu-button ul li.librevjs-selected:hover { - outline: 0; - color: #fff; - background-color: #9e9e9e; -} - - -/*End Select color menu subtitles/caption */ - -.librevjs-libre-mixgrey-skin .librevjs-menu-button ul li.librevjs-menu-title { - text-align: center; - text-transform: uppercase; - font-size: 1em; - line-height: 2em; - padding: 0; - margin: 0 0 .3em; - font-weight: 700; - cursor: default; -} - - -/* Subtitles Button */ - -.librevjs-libre-mixgrey-skin .librevjs-subtitles-button:before { - content: "\e00c" -} - - -/* Captions Button */ - -.librevjs-libre-mixgrey-skin .librevjs-captions-button:before { - content: "\e008" -} - - -/* Replacement for focus outline */ - -.librevjs-libre-mixgrey-skin .librevjs-captions-button:focus .librevjs-control-content:before, .librevjs-libre-mixgrey-skin .librevjs-captions-button:hover .librevjs-control-content:before { - -webkit-box-shadow: 0 0 1em #fff; - -moz-box-shadow: 0 0 1em #fff; - box-shadow: 0 0 1em #fff; -} - - -/* Hide disabled or unsupported controls */ - -.librevjs-libre-mixgrey-skin .librevjs-hidden { - display: none -} - - -/*Title Resolution | subtitles and Caption*/ - -.librevjs-libre-mixgrey-skin ul li.librevjs-menu-title.librevjs-res-menu-title { - color: #737373; - background-color: inherit; -} - -.librevjs-libre-mixgrey-skin ul li.librevjs-menu-title.librevjs-res-menu-title:hover { - color: #9e9e9e; - background-color: inherit; -} - -@media screen and (max-width: 400px) { - .librevjs-libre-mixgrey-skin .librevjs-big-play-button { - font-size: 2em; - } -} - -@media screen and (max-width: 150px) { - .librevjs-libre-mixgrey-skin .librevjs-big-play-button { - font-size: 1.8em; - } -} - -@media screen and (max-width: 90px) { - .librevjs-libre-mixgrey-skin .librevjs-big-play-button { - font-size: 1.4em; - } -} - - -/* Skin-Purple -----------------------------------------------------------------------------------------------------*/ - -.librevjs-libre-mixpurple-skin { - color: #ccc; - background-color: inherit; -} - - -/* Base UI Component Classes ---------------------------------------------------------------------------------*/ -/* Slider - used for Volume bar and Seek bar */ - -.librevjs-libre-mixpurple-skin .librevjs-slider { - /* Replace browser focus highlight with handle highlight */ - outline: 0; - position: relative; - cursor: pointer; - padding: 0; - /* background-color-with-alpha */ - background-color: #000000; - background-color: rgba(0, 0, 0, 0.5); -} - -.librevjs-libre-mixpurple-skin .librevjs-slider:focus { - -webkit-box-shadow: 0 0 2em #fff; - -moz-box-shadow: 0 0 2em #fff; - box-shadow: 0 0 2em #fff; -} - - -/*Eliminación de botón de barra de progreso*/ - -.librevjs-libre-mixpurple-skin .librevjs-slider-handle { - width: 0; - height: 0; -} - -.librevjs-libre-mixpurple-skin .librevjs-slider-handle:before { - text-shadow: 0em 0em 1em #fff; - position: absolute; - top: 0; - left: 0; -} - - -/* Control Bar --------------------------------------------------------------------------------- -The default control bar that is a container for most of the controls. -*/ - -.librevjs-libre-mixpurple-skin .librevjs-control-bar { - /* Start hidden */ - display: none; - position: absolute; - /* Place control bar at the bottom of the player box/video. - If you want more margin below the control bar, add more height. */ - bottom: 0; - /* Use left/right to stretch to 100% width of player div */ - left: 0; - right: 0; - /* Height includes any margin you want above or below control items */ - height: 3.0em; - /* background-color-with-alpha */ - background-color: #232323; - background-color: rgba(35, 35, 35, 0.8); -} - - -/* Show the control bar only once the video has started playing */ - -.librevjs-libre-mixpurple-skin.librevjs-has-started .librevjs-control-bar { - display: block; - visibility: visible; - opacity: 1; - -webkit-transition: visibility .1s, opacity .1s; - -moz-transition: visibility .1s, opacity .1s; - -o-transition: visibility .1s, opacity .1s; - transition: visibility .1s, opacity .1s -} - - -/* Hide the control bar when the video is playing and the user is inactive */ - -.librevjs-libre-mixpurple-skin.librevjs-has-started.librevjs-user-inactive.librevjs-playing .librevjs-control-bar { - display: block; - visibility: hidden; - opacity: 0; - -webkit-transition: visibility 1s, opacity 1s; - -moz-transition: visibility 1s, opacity 1s; - -o-transition: visibility 1s, opacity 1s; - transition: visibility 1s, opacity 1s -} - -.librevjs-libre-mixpurple-skin.librevjs-controls-disabled .librevjs-control-bar { - display: none -} - -.librevjs-libre-mixpurple-skin.librevjs-using-native-controls .librevjs-control-bar { - display: none -} - -@media \0screen { - .librevjs-libre-mixpurple-skin.librevjs-user-inactive.librevjs-playing .librevjs-control-bar :before { - content: "" - } -} - - -/* General styles for individual controls. */ - -.librevjs-libre-mixpurple-skin .librevjs-control { - outline: 0; - position: relative; - float: left; - text-align: center; - margin: 0; - padding: 0; - height: 3em; - width: 4em -} - - -/* FreeArt button icons: http://artlibre.org/licence/lal */ - -.librevjs-libre-mixpurple-skin .librevjs-control:before { - font-family: LibreVideoJS; - font-size: 1.5em; - line-height: 2; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - text-align: center; - text-shadow: 1px 1px 1px rgba(0, 0, 0, .5) -} - - -/* Replacement for focus outline */ - -.librevjs-libre-mixpurple-skin .librevjs-control:focus:before, .librevjs-libre-mixpurple-skin .librevjs-control:hover:before { - color: #9c27b0; -} - -.librevjs-libre-mixpurple-skin .librevjs-control:focus { - /* outline: 0; */ - /* keyboard-only users cannot see the focus on several of the UI elements when this is set to 0 */ -} - - -/* Hide control text visually, but have it available for screenreaders */ - -.librevjs-libre-mixpurple-skin .librevjs-control-text { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px -} - - -/* Play/Pause --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixpurple-skin .librevjs-play-control { - width: 5em; - cursor: pointer; - color: rgb(156, 39, 176); -} - -.librevjs-libre-mixpurple-skin .librevjs-play-control:before { - content: "\e001" -} - -.librevjs-libre-mixpurple-skin .librevjs-play-control:hover:before { - color: #8e44ad; - /*color de play control al pasar el cursor*/ -} - -.librevjs-libre-mixpurple-skin.librevjs-playing .librevjs-play-control:before { - content: "\e002" -} - - -/* Volume/Mute --------------------------------------------------------------------------------- */ - -.librevjs-libre-mixpurple-skin .librevjs-mute-control, .librevjs-libre-mixpurple-skin .librevjs-volume-menu-button { - cursor: pointer; - float: right -} - -.librevjs-libre-mixpurple-skin .librevjs-mute-control:before, .librevjs-libre-mixpurple-skin .librevjs-volume-menu-button:before { - content: "\e006" -} - -.librevjs-libre-mixpurple-skin .librevjs-mute-control.librevjs-vol-0:before, .librevjs-libre-mixpurple-skin .librevjs-volume-menu-button.librevjs-vol-0:before { - content: "\e003" -} - -.librevjs-libre-mixpurple-skin .librevjs-mute-control.librevjs-vol-1:before, .librevjs-libre-mixpurple-skin .librevjs-volume-menu-button.librevjs-vol-1:before { - content: "\e004" -} - -.librevjs-libre-mixpurple-skin .librevjs-mute-control.librevjs-vol-2:before, .librevjs-libre-mixpurple-skin .librevjs-volume-menu-button.librevjs-vol-2:before { - content: "\e005" -} - -.librevjs-libre-mixpurple-skin .librevjs-volume-control { - width: 5em; - float: right -} - -.librevjs-libre-mixpurple-skin .librevjs-volume-bar { - width: 5em; - height: .6em; - margin: 1.1em auto 0 -} - -.librevjs-libre-mixpurple-skin .librevjs-volume-menu-button .librevjs-menu-content { - height: 2.9em -} - - -/*Personalización del nivel de volumen*/ - -.librevjs-libre-mixpurple-skin .librevjs-volume-level { - position: absolute; - top: 0; - left: 0; - height: 0.5em; - /* assuming volume starts at 1.0 */ - width: 100%; - background: #9c27b0 url() -50% 0 repeat; -} - -.librevjs-libre-mixpurple-skin .librevjs-volume-bar .librevjs-volume-handle { - width: .5em; - height: .5em -} - -.librevjs-libre-mixpurple-skin .librevjs-volume-handle:before { - font-size: .9em; - top: -.2em; - left: -.2em; - width: 1em; - height: 1em; -} - -.librevjs-libre-mixpurple-skin .librevjs-volume-menu-button .librevjs-menu .librevjs-menu-content { - width: 6em; - left: -4em; -} - - -/* Progress --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixpurple-skin .librevjs-progress-control { - position: absolute; - left: 0; - right: 0; - width: auto; - font-size: .3em; - height: 1em; - top: -1em; - -webkit-transition: all .4s; - -moz-transition: all .4s; - -o-transition: all .4s; - transition: all .4s; -} - -.librevjs-libre-mixpurple-skin:hover .librevjs-progress-control { - font-size: .9em; - -webkit-transition: all .2s; - -moz-transition: all .2s; - -o-transition: all .2s; - transition: all .2s; -} - - -/* Box containing play and load progress. Also acts as seek scrubber. */ - -.librevjs-libre-mixpurple-skin .librevjs-progress-holder { - height: 100%; -} - - -/* Progress Bars */ - -.librevjs-libre-mixpurple-skin .librevjs-progress-holder .librevjs-play-progress, .librevjs-libre-mixpurple-skin .librevjs-progress-holder .librevjs-load-progress { - position: absolute; - display: block; - height: 100%; - margin: 0; - padding: 0; - left: 0; - top: 0 -} - -.librevjs-libre-mixpurple-skin .librevjs-play-progress { - background: #9c27b0 url() -50% 0 repeat; -} - -.librevjs-libre-mixpurple-skin .librevjs-load-progress { - background: #646464; - background: rgba(255, 255, 255, .4) -} - -.librevjs-libre-mixpurple-skin .librevjs-seek-handle { - width: 1.5em; - height: 100% -} - -.librevjs-libre-mixpurple-skin .librevjs-seek-handle:before { - padding-top: .1em -} - - -/* Time Display --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixpurple-skin .librevjs-time-controls { - font-size: 1em; - font-weight: 700; - /*mayor visibilidad*/ - line-height: 3em -} - -.librevjs-libre-mixpurple-skin .librevjs-current-time { - float: left -} - -.librevjs-libre-mixpurple-skin .librevjs-duration { - float: left -} - -.librevjs-libre-mixpurple-skin .librevjs-remaining-time { - display: none; - float: left -} - - -/* Fullscreen --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixpurple-skin .librevjs-fullscreen-control { - width: 3.8em; - cursor: pointer; - float: right -} - -.librevjs-libre-mixpurple-skin .librevjs-fullscreen-control:before { - content: "\e000" -} - - -/* Switch to the exit icon when the player is in fullscreen */ - -.librevjs-libre-mixpurple-skin.librevjs-fullscreen .librevjs-fullscreen-control:before { - content: "\e00b" -} - - -/* Big Play Button (play button at start) --------------------------------------------------------------------------------- -Positioning of the play button in the center or other corners can be done more -easily in the skin designer by LibreVideoJS FreeArts. -*/ - -.librevjs-libre-mixpurple-skin .librevjs-big-play-button { - /* Center it horizontally */ - left: 50%; - margin-left: -1.85em; - /* Center it vertically */ - top: 50%; - margin-top: -1.3em; - font-size: 2em; - display: block; - z-index: 2; - position: absolute; - width: 3.8em; - height: 2.6em; - text-align: center; - vertical-align: middle; - cursor: pointer; - opacity: 1; - /* Need a slightly gray bg so it can be seen on black backgrounds */ - /* background-color-with-alpha */ - background-color: #232323; - background-color: rgba(35, 35, 35, 0.8); - border: 0 solid; - /* border-radius */ - -webkit-border-radius: 0.4em; - -moz-border-radius: 0.4em; - border-radius: 0.4em; - /* transition */ - -webkit-transition: all 0.4s; - -moz-transition: all 0.4s; - -o-transition: all 0.4s; - transition: all 0.4s; -} - - -/* Hide if controls are disabled */ - -.librevjs-libre-mixpurple-skin.librevjs-controls-disabled .librevjs-big-play-button { - display: none; -} - - -/* Hide when video starts playing */ - -.librevjs-libre-mixpurple-skin.librevjs-has-started .librevjs-big-play-button { - display: none; -} - - -/* Hide on mobile devices. Remove when we stop using native controls - by default on mobile */ - -.librevjs-libre-mixpurple-skin.librevjs-using-native-controls .librevjs-big-play-button { - display: none; -} - -.librevjs-libre-mixpurple-skin:hover .librevjs-big-play-button, .librevjs-libre-mixpurple-skin .librevjs-big-play-button:focus { - outline: 0; - cursor: pointer; - /* IE8 needs a non-glow hover state */ - background-color: rgb(142, 68, 173); - /*color del boton play al hacer focus*/ - color: #FFFFFF; -} - -.librevjs-libre-mixpurple-skin .librevjs-big-play-button:before { - content: "\e001"; - font-family: LibreVideoJS; - /* In order to center the play icon vertically we need to set the line height - to the same as the button height */ - line-height: 2.6em; - text-shadow: 0.05em 0.05em 0.1em #000; - text-align: center/* Needed for IE8 */ - ; - position: absolute; - left: 0; - width: 100%; - height: 100%; -} - - -/* Menu Buttons (Captions/Subtitles/etc.) --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixpurple-skin .librevjs-menu-button { - float: right; - cursor: pointer; -} - -.librevjs-libre-mixpurple-skin .librevjs-menu { - display: none; - position: absolute; - bottom: 0; - left: 0; - width: 0; - height: 0; - margin-bottom: 3em; - border-left: 2em solid transparent; - border-right: 2em solid transparent; - border-top: 1.55em solid #000; - border-top-color: rgba(7, 40, 50, .5); -} - - -/* Button Pop-up Menu */ - -.librevjs-libre-mixpurple-skin .librevjs-menu-button .librevjs-menu .librevjs-menu-content { - display: block; - padding: 0; - margin: 0; - position: absolute; - width: 10em; - bottom: 1.5em; - /* Same bottom as librevjs-menu border-top */ - max-height: 15em; - overflow: auto; - left: -5em; - /* Width of menu - width of button / 2 */ - /* background-color-with-alpha */ - background-color: #07141e; - background-color: rgba(7, 20, 30, .7); - -webkit-box-shadow: -.2em -.2em .3em rgba(255, 255, 255, .2); - -moz-box-shadow: -.2em -.2em .3em rgba(255, 255, 255, .2); - box-shadow: -.2em -.2em .3em rgba(255, 255, 255, .2); -} - -.librevjs-libre-mixpurple-skin .librevjs-menu-button:hover .librevjs-menu { - display: block; -} - -.librevjs-libre-mixpurple-skin .librevjs-menu-button ul li { - list-style: none; - margin: 0; - padding: .3em 0; - line-height: 1.4em; - font-size: 1.2em; - text-align: center; - text-transform: lowercase; - color: #ccc; -} - - -/* Select color menu subtitles/captions */ - -.librevjs-libre-mixpurple-skin .librevjs-menu-button ul li.librevjs-selected { - color: #fff; - background-color: rgb(156, 39, 176); -} - -.librevjs-libre-mixpurple-skin .librevjs-menu-button ul li:focus, .librevjs-libre-mixpurple-skin .librevjs-menu-button ul li:hover, .librevjs-libre-mixpurple-skin .librevjs-menu-button ul li.librevjs-selected:focus, .librevjs-libre-mixpurple-skin .librevjs-menu-button ul li.librevjs-selected:hover { - outline: 0; - color: #fff; - background-color: #9c27b0; -} - - -/*End Select color menu subtitles/caption */ - -.librevjs-libre-mixpurple-skin .librevjs-menu-button ul li.librevjs-menu-title { - text-align: center; - text-transform: uppercase; - font-size: 1em; - line-height: 2em; - padding: 0; - margin: 0 0 .3em; - font-weight: 700; - cursor: default; -} - - -/* Subtitles Button */ - -.librevjs-libre-mixpurple-skin .librevjs-subtitles-button:before { - content: "\e00c" -} - - -/* Captions Button */ - -.librevjs-libre-mixpurple-skin .librevjs-captions-button:before { - content: "\e008" -} - - -/* Replacement for focus outline */ - -.librevjs-libre-mixpurple-skin .librevjs-captions-button:focus .librevjs-control-content:before, .librevjs-libre-mixpurple-skin .librevjs-captions-button:hover .librevjs-control-content:before { - -webkit-box-shadow: 0 0 1em #fff; - -moz-box-shadow: 0 0 1em #fff; - box-shadow: 0 0 1em #fff; -} - - -/* Hide disabled or unsupported controls */ - -.librevjs-libre-mixpurple-skin .librevjs-hidden { - display: none -} - - -/*Title Resolution | subtitles and Caption*/ - -.librevjs-libre-mixpurple-skin ul li.librevjs-menu-title.librevjs-res-menu-title { - color: #9c27b0; - background-color: inherit; -} - -.librevjs-libre-mixpurple-skin ul li.librevjs-menu-title.librevjs-res-menu-title:hover { - color: #8e44ad; - background-color: inherit; -} - -@media screen and (max-width: 400px) { - .librevjs-libre-mixpurple-skin .librevjs-big-play-button { - font-size: 2em; - } -} - -@media screen and (max-width: 150px) { - .librevjs-libre-mixpurple-skin .librevjs-big-play-button { - font-size: 1.8em; - } -} - -@media screen and (max-width: 90px) { - .librevjs-libre-mixpurple-skin .librevjs-big-play-button { - font-size: 1.4em; - } -} - - -/* Skin-Red --------------------------------------------------------------------------------------------------------*/ - -.librevjs-libre-mixred-skin { - color: #ccc; - background-color: inherit; -} - - -/* Base UI Component Classes ---------------------------------------------------------------------------------*/ -/* Slider - used for Volume bar and Seek bar */ - -.librevjs-libre-mixred-skin .librevjs-slider { - /* Replace browser focus highlight with handle highlight */ - outline: 0; - position: relative; - cursor: pointer; - padding: 0; - /* background-color-with-alpha */ - background-color: #000000; - background-color: rgba(0, 0, 0, 0.5); -} - -.librevjs-libre-mixred-skin .librevjs-slider:focus { - -webkit-box-shadow: 0 0 2em #fff; - -moz-box-shadow: 0 0 2em #fff; - box-shadow: 0 0 2em #fff; -} - - -/*Eliminación de botón de barra de progreso*/ - -.librevjs-libre-mixred-skin .librevjs-slider-handle { - width: 0; - height: 0; -} - -.librevjs-libre-mixred-skin .librevjs-slider-handle:before { - text-shadow: 0em 0em 1em #fff; - position: absolute; - top: 0; - left: 0; -} - - -/* Control Bar --------------------------------------------------------------------------------- -The default control bar that is a container for most of the controls. -*/ - -.librevjs-libre-mixred-skin .librevjs-control-bar { - /* Start hidden */ - display: none; - position: absolute; - /* Place control bar at the bottom of the player box/video. - If you want more margin below the control bar, add more height. */ - bottom: 0; - /* Use left/right to stretch to 100% width of player div */ - left: 0; - right: 0; - /* Height includes any margin you want above or below control items */ - height: 3.0em; - /* background-color-with-alpha */ - background-color: #232323; - background-color: rgba(35, 35, 35, 0.8); -} - - -/* Show the control bar only once the video has started playing */ - -.librevjs-libre-mixred-skin.librevjs-has-started .librevjs-control-bar { - display: block; - visibility: visible; - opacity: 1; - -webkit-transition: visibility .1s, opacity .1s; - -moz-transition: visibility .1s, opacity .1s; - -o-transition: visibility .1s, opacity .1s; - transition: visibility .1s, opacity .1s -} - - -/* Hide the control bar when the video is playing and the user is inactive */ - -.librevjs-libre-mixred-skin.librevjs-has-started.librevjs-user-inactive.librevjs-playing .librevjs-control-bar { - display: block; - visibility: hidden; - opacity: 0; - -webkit-transition: visibility 1s, opacity 1s; - -moz-transition: visibility 1s, opacity 1s; - -o-transition: visibility 1s, opacity 1s; - transition: visibility 1s, opacity 1s -} - -.librevjs-libre-mixred-skin.librevjs-controls-disabled .librevjs-control-bar { - display: none -} - -.librevjs-libre-mixred-skin.librevjs-using-native-controls .librevjs-control-bar { - display: none -} - -@media \0screen { - .librevjs-libre-mixred-skin.librevjs-user-inactive.librevjs-playing .librevjs-control-bar :before { - content: "" - } -} - - -/* General styles for individual controls. */ - -.librevjs-libre-mixred-skin .librevjs-control { - outline: 0; - position: relative; - float: left; - text-align: center; - margin: 0; - padding: 0; - height: 3em; - width: 4em -} - - -/* FreeArt button icons: http://artlibre.org/licence/lal */ - -.librevjs-libre-mixred-skin .librevjs-control:before { - font-family: LibreVideoJS; - font-size: 1.5em; - line-height: 2; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - text-align: center; - text-shadow: 1px 1px 1px rgba(0, 0, 0, .5) -} - - -/* Replacement for focus outline */ - -.librevjs-libre-mixred-skin .librevjs-control:focus:before, .librevjs-libre-mixred-skin .librevjs-control:hover:before { - color: #f44336; -} - -.librevjs-libre-mixred-skin .librevjs-control:focus { - /* outline: 0; */ - /* keyboard-only users cannot see the focus on several of the UI elements when this is set to 0 */ -} - - -/* Hide control text visually, but have it available for screenreaders */ - -.librevjs-libre-mixred-skin .librevjs-control-text { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px -} - - -/* Play/Pause --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixred-skin .librevjs-play-control { - width: 5em; - cursor: pointer; - color: rgb(244, 67, 54); -} - -.librevjs-libre-mixred-skin .librevjs-play-control:before { - content: "\e001" -} - -.librevjs-libre-mixred-skin .librevjs-play-control:hover:before { - color: #f22e1f; - /*color de play control al pasar el cursor*/ -} - -.librevjs-libre-mixred-skin.librevjs-playing .librevjs-play-control:before { - content: "\e002" -} - - -/* Volume/Mute --------------------------------------------------------------------------------- */ - -.librevjs-libre-mixred-skin .librevjs-mute-control, .librevjs-libre-mixred-skin .librevjs-volume-menu-button { - cursor: pointer; - float: right -} - -.librevjs-libre-mixred-skin .librevjs-mute-control:before, .librevjs-libre-mixred-skin .librevjs-volume-menu-button:before { - content: "\e006" -} - -.librevjs-libre-mixred-skin .librevjs-mute-control.librevjs-vol-0:before, .librevjs-libre-mixred-skin .librevjs-volume-menu-button.librevjs-vol-0:before { - content: "\e003" -} - -.librevjs-libre-mixred-skin .librevjs-mute-control.librevjs-vol-1:before, .librevjs-libre-mixred-skin .librevjs-volume-menu-button.librevjs-vol-1:before { - content: "\e004" -} - -.librevjs-libre-mixred-skin .librevjs-mute-control.librevjs-vol-2:before, .librevjs-libre-mixred-skin .librevjs-volume-menu-button.librevjs-vol-2:before { - content: "\e005" -} - -.librevjs-libre-mixred-skin .librevjs-volume-control { - width: 5em; - float: right -} - -.librevjs-libre-mixred-skin .librevjs-volume-bar { - width: 5em; - height: .6em; - margin: 1.1em auto 0 -} - -.librevjs-libre-mixred-skin .librevjs-volume-menu-button .librevjs-menu-content { - height: 2.9em -} - - -/*Personalización del nivel de volumen*/ - -.librevjs-libre-mixred-skin .librevjs-volume-level { - position: absolute; - top: 0; - left: 0; - height: 0.5em; - /* assuming volume starts at 1.0 */ - width: 100%; - background: #f44336 url() -50% 0 repeat; -} - -.librevjs-libre-mixred-skin .librevjs-volume-bar .librevjs-volume-handle { - width: .5em; - height: .5em -} - -.librevjs-libre-mixred-skin .librevjs-volume-handle:before { - font-size: .9em; - top: -.2em; - left: -.2em; - width: 1em; - height: 1em; -} - -.librevjs-libre-mixred-skin .librevjs-volume-menu-button .librevjs-menu .librevjs-menu-content { - width: 6em; - left: -4em; -} - - -/* Progress --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixred-skin .librevjs-progress-control { - position: absolute; - left: 0; - right: 0; - width: auto; - font-size: .3em; - height: 1em; - top: -1em; - -webkit-transition: all .4s; - -moz-transition: all .4s; - -o-transition: all .4s; - transition: all .4s; -} - -.librevjs-libre-mixred-skin:hover .librevjs-progress-control { - font-size: .9em; - -webkit-transition: all .2s; - -moz-transition: all .2s; - -o-transition: all .2s; - transition: all .2s; -} - - -/* Box containing play and load progress. Also acts as seek scrubber. */ - -.librevjs-libre-mixred-skin .librevjs-progress-holder { - height: 100%; -} - - -/* Progress Bars */ - -.librevjs-libre-mixred-skin .librevjs-progress-holder .librevjs-play-progress, .librevjs-libre-mixred-skin .librevjs-progress-holder .librevjs-load-progress { - position: absolute; - display: block; - height: 100%; - margin: 0; - padding: 0; - left: 0; - top: 0 -} - -.librevjs-libre-mixred-skin .librevjs-play-progress { - background: #f44336 url() -50% 0 repeat; -} - -.librevjs-libre-mixred-skin .librevjs-load-progress { - background: #646464; - background: rgba(255, 255, 255, .4) -} - -.librevjs-libre-mixred-skin .librevjs-seek-handle { - width: 1.5em; - height: 100% -} - -.librevjs-libre-mixred-skin .librevjs-seek-handle:before { - padding-top: .1em -} - - -/* Time Display --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixred-skin .librevjs-time-controls { - font-size: 1em; - font-weight: 700; - /*mayor visibilidad*/ - line-height: 3em -} - -.librevjs-libre-mixred-skin .librevjs-current-time { - float: left -} - -.librevjs-libre-mixred-skin .librevjs-duration { - float: left -} - -.librevjs-libre-mixred-skin .librevjs-remaining-time { - display: none; - float: left -} - - -/* Fullscreen --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixred-skin .librevjs-fullscreen-control { - width: 3.8em; - cursor: pointer; - float: right -} - -.librevjs-libre-mixred-skin .librevjs-fullscreen-control:before { - content: "\e000" -} - - -/* Switch to the exit icon when the player is in fullscreen */ - -.librevjs-libre-mixred-skin.librevjs-fullscreen .librevjs-fullscreen-control:before { - content: "\e00b" -} - - -/* Big Play Button (play button at start) --------------------------------------------------------------------------------- -Positioning of the play button in the center or other corners can be done more -easily in the skin designer by LibreVideoJS FreeArts. -*/ - -.librevjs-libre-mixred-skin .librevjs-big-play-button { - /* Center it horizontally */ - left: 50%; - margin-left: -1.85em; - /* Center it vertically */ - top: 50%; - margin-top: -1.3em; - font-size: 2em; - display: block; - z-index: 2; - position: absolute; - width: 3.8em; - height: 2.6em; - text-align: center; - vertical-align: middle; - cursor: pointer; - opacity: 1; - /* Need a slightly gray bg so it can be seen on black backgrounds */ - /* background-color-with-alpha */ - background-color: #232323; - background-color: rgba(35, 35, 35, 0.8); - border: 0 solid; - /* border-radius */ - -webkit-border-radius: 0.4em; - -moz-border-radius: 0.4em; - border-radius: 0.4em; - /* transition */ - -webkit-transition: all 0.4s; - -moz-transition: all 0.4s; - -o-transition: all 0.4s; - transition: all 0.4s; -} - - -/* Hide if controls are disabled */ - -.librevjs-libre-mixred-skin.librevjs-controls-disabled .librevjs-big-play-button { - display: none; -} - - -/* Hide when video starts playing */ - -.librevjs-libre-mixred-skin.librevjs-has-started .librevjs-big-play-button { - display: none; -} - - -/* Hide on mobile devices. Remove when we stop using native controls - by default on mobile */ - -.librevjs-libre-mixred-skin.librevjs-using-native-controls .librevjs-big-play-button { - display: none; -} - -.librevjs-libre-mixred-skin:hover .librevjs-big-play-button, .librevjs-libre-mixred-skin .librevjs-big-play-button:focus { - outline: 0; - cursor: pointer; - /* IE8 needs a non-glow hover state */ - background-color: #f12b24; - /*color del boton play al hacer focus*/ - color: #FFFFFF; -} - -.librevjs-libre-mixred-skin .librevjs-big-play-button:before { - content: "\e001"; - font-family: LibreVideoJS; - /* In order to center the play icon vertically we need to set the line height - to the same as the button height */ - line-height: 2.6em; - text-shadow: 0.05em 0.05em 0.1em #000; - text-align: center/* Needed for IE8 */ - ; - position: absolute; - left: 0; - width: 100%; - height: 100%; -} - - -/* Menu Buttons (Captions/Subtitles/etc.) --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixred-skin .librevjs-menu-button { - float: right; - cursor: pointer; -} - -.librevjs-libre-mixred-skin .librevjs-menu { - display: none; - position: absolute; - bottom: 0; - left: 0; - width: 0; - height: 0; - margin-bottom: 3em; - border-left: 2em solid transparent; - border-right: 2em solid transparent; - border-top: 1.55em solid #000; - border-top-color: rgba(7, 40, 50, .5); -} - - -/* Button Pop-up Menu */ - -.librevjs-libre-mixred-skin .librevjs-menu-button .librevjs-menu .librevjs-menu-content { - display: block; - padding: 0; - margin: 0; - position: absolute; - width: 10em; - bottom: 1.5em; - max-height: 15em; - /* Same bottom as librevjs-menu border-top */ - overflow: auto; - left: -5em; - /* Width of menu - width of button / 2 */ - /* background-color-with-alpha */ - background-color: #07141e; - background-color: rgba(7, 20, 30, .7); - -webkit-box-shadow: -.2em -.2em .3em rgba(255, 255, 255, .2); - -moz-box-shadow: -.2em -.2em .3em rgba(255, 255, 255, .2); - box-shadow: -.2em -.2em .3em rgba(255, 255, 255, .2); -} - -.librevjs-libre-mixred-skin .librevjs-menu-button:hover .librevjs-menu { - display: block; -} - -.librevjs-libre-mixred-skin .librevjs-menu-button ul li { - list-style: none; - margin: 0; - padding: .3em 0; - line-height: 1.4em; - font-size: 1.2em; - text-align: center; - text-transform: lowercase; - color: #ccc; -} - - -/* Select color menu subtitles/captions */ - -.librevjs-libre-mixred-skin .librevjs-menu-button ul li.librevjs-selected { - color: #fff; - background-color: rgb(244, 67, 54); -} - -.librevjs-libre-mixred-skin .librevjs-menu-button ul li:focus, .librevjs-libre-mixred-skin .librevjs-menu-button ul li:hover, .librevjs-libre-mixred-skin .librevjs-menu-button ul li.librevjs-selected:focus, .librevjs-libre-mixred-skin .librevjs-menu-button ul li.librevjs-selected:hover { - outline: 0; - color: #fff; - background-color: #f44336; -} - - -/*End Select color menu subtitles/caption */ - -.librevjs-libre-mixred-skin .librevjs-menu-button ul li.librevjs-menu-title { - text-align: center; - text-transform: uppercase; - font-size: 1em; - line-height: 2em; - padding: 0; - margin: 0 0 .3em; - font-weight: 700; - cursor: default; -} - - -/* Subtitles Button */ - -.librevjs-libre-mixred-skin .librevjs-subtitles-button:before { - content: "\e00c" -} - - -/* Captions Button */ - -.librevjs-libre-mixred-skin .librevjs-captions-button:before { - content: "\e008" -} - - -/* Replacement for focus outline */ - -.librevjs-libre-mixred-skin .librevjs-captions-button:focus .librevjs-control-content:before, .librevjs-libre-mixred-skin .librevjs-captions-button:hover .librevjs-control-content:before { - -webkit-box-shadow: 0 0 1em #fff; - -moz-box-shadow: 0 0 1em #fff; - box-shadow: 0 0 1em #fff; -} - - -/* Hide disabled or unsupported controls */ - -.librevjs-libre-mixred-skin .librevjs-hidden { - display: none -} - - -/*Title Resolution | subtitles and Caption*/ - -.librevjs-libre-mixred-skin ul li.librevjs-menu-title.librevjs-res-menu-title { - color: rgb(246, 44, 30); - background-color: inherit; -} - -.librevjs-libre-mixred-skin ul li.librevjs-menu-title.librevjs-res-menu-title:hover { - color: rgb(244, 67, 54); - background-color: inherit; -} - -@media screen and (max-width: 400px) { - .librevjs-libre-mixred-skin .librevjs-big-play-button { - font-size: 2em; - } -} - -@media screen and (max-width: 150px) { - .librevjs-libre-mixred-skin .librevjs-big-play-button { - font-size: 1.8em; - } -} - -@media screen and (max-width: 90px) { - .librevjs-libre-mixred-skin .librevjs-big-play-button { - font-size: 1.4em; - } -} - - -/* Skin-Teal -------------------------------------------------------------------------------------------------------*/ - -.librevjs-libre-mixteal-skin { - color: #ccc; - background-color: inherit; -} - - -/* Base UI Component Classes ---------------------------------------------------------------------------------*/ -/* Slider - used for Volume bar and Seek bar */ - -.librevjs-libre-mixteal-skin .librevjs-slider { - /* Replace browser focus highlight with handle highlight */ - outline: 0; - position: relative; - cursor: pointer; - padding: 0; - /* background-color-with-alpha */ - background-color: #000000; - background-color: rgba(0, 0, 0, 0.5); -} - -.librevjs-libre-mixteal-skin .librevjs-slider:focus { - -webkit-box-shadow: 0 0 2em #fff; - -moz-box-shadow: 0 0 2em #fff; - box-shadow: 0 0 2em #fff; -} - - -/*Eliminación de botón de barra de progreso*/ - -.librevjs-libre-mixteal-skin .librevjs-slider-handle { - width: 0; - height: 0; -} - -.librevjs-libre-mixteal-skin .librevjs-slider-handle:before { - text-shadow: 0em 0em 1em #fff; - position: absolute; - top: 0; - left: 0; -} - - -/* Control Bar --------------------------------------------------------------------------------- -The default control bar that is a container for most of the controls. -*/ - -.librevjs-libre-mixteal-skin .librevjs-control-bar { - /* Start hidden */ - display: none; - position: absolute; - /* Place control bar at the bottom of the player box/video. - If you want more margin below the control bar, add more height. */ - bottom: 0; - /* Use left/right to stretch to 100% width of player div */ - left: 0; - right: 0; - /* Height includes any margin you want above or below control items */ - height: 3.0em; - /* background-color-with-alpha */ - background-color: #232323; - background-color: rgba(35, 35, 35, 0.8); -} - - -/* Show the control bar only once the video has started playing */ - -.librevjs-libre-mixteal-skin.librevjs-has-started .librevjs-control-bar { - display: block; - visibility: visible; - opacity: 1; - -webkit-transition: visibility .1s, opacity .1s; - -moz-transition: visibility .1s, opacity .1s; - -o-transition: visibility .1s, opacity .1s; - transition: visibility .1s, opacity .1s -} - - -/* Hide the control bar when the video is playing and the user is inactive */ - -.librevjs-libre-mixteal-skin.librevjs-has-started.librevjs-user-inactive.librevjs-playing .librevjs-control-bar { - display: block; - visibility: hidden; - opacity: 0; - -webkit-transition: visibility 1s, opacity 1s; - -moz-transition: visibility 1s, opacity 1s; - -o-transition: visibility 1s, opacity 1s; - transition: visibility 1s, opacity 1s -} - -.librevjs-libre-mixteal-skin.librevjs-controls-disabled .librevjs-control-bar { - display: none -} - -.librevjs-libre-mixteal-skin.librevjs-using-native-controls .librevjs-control-bar { - display: none -} - -@media \0screen { - .librevjs-libre-mixteal-skin.librevjs-user-inactive.librevjs-playing .librevjs-control-bar :before { - content: "" - } -} - - -/* General styles for individual controls. */ - -.librevjs-libre-mixteal-skin .librevjs-control { - outline: 0; - position: relative; - float: left; - text-align: center; - margin: 0; - padding: 0; - height: 3em; - width: 4em -} - - -/* FreeArt button icons: http://artlibre.org/licence/lal */ - -.librevjs-libre-mixteal-skin .librevjs-control:before { - font-family: LibreVideoJS; - font-size: 1.5em; - line-height: 2; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - text-align: center; - text-shadow: 1px 1px 1px rgba(0, 0, 0, .5) -} - - -/* Replacement for focus outline */ - -.librevjs-libre-mixteal-skin .librevjs-control:focus:before, .librevjs-libre-mixteal-skin .librevjs-control:hover:before { - color: #1de9b6; -} - -.librevjs-libre-mixteal-skin .librevjs-control:focus { - /* outline: 0; */ - /* keyboard-only users cannot see the focus on several of the UI elements when this is set to 0 */ -} - - -/* Hide control text visually, but have it available for screenreaders */ - -.librevjs-libre-mixteal-skin .librevjs-control-text { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px -} - - -/* Play/Pause --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixteal-skin .librevjs-play-control { - width: 5em; - cursor: pointer; - color: rgb(29, 233, 182); -} - -.librevjs-libre-mixteal-skin .librevjs-play-control:before { - content: "\e001" -} - -.librevjs-libre-mixteal-skin .librevjs-play-control:hover:before { - color: #007c5d; - /*color de play control al pasar el cursor*/ -} - -.librevjs-libre-mixteal-skin.librevjs-playing .librevjs-play-control:before { - content: "\e002" -} - - -/* Volume/Mute --------------------------------------------------------------------------------- */ - -.librevjs-libre-mixteal-skin .librevjs-mute-control, .librevjs-libre-mixteal-skin .librevjs-volume-menu-button { - cursor: pointer; - float: right -} - -.librevjs-libre-mixteal-skin .librevjs-mute-control:before, .librevjs-libre-mixteal-skin .librevjs-volume-menu-button:before { - content: "\e006" -} - -.librevjs-libre-mixteal-skin .librevjs-mute-control.librevjs-vol-0:before, .librevjs-libre-mixteal-skin .librevjs-volume-menu-button.librevjs-vol-0:before { - content: "\e003" -} - -.librevjs-libre-mixteal-skin .librevjs-mute-control.librevjs-vol-1:before, .librevjs-libre-mixteal-skin .librevjs-volume-menu-button.librevjs-vol-1:before { - content: "\e004" -} - -.librevjs-libre-mixteal-skin .librevjs-mute-control.librevjs-vol-2:before, .librevjs-libre-mixteal-skin .librevjs-volume-menu-button.librevjs-vol-2:before { - content: "\e005" -} - -.librevjs-libre-mixteal-skin .librevjs-volume-control { - width: 5em; - float: right -} - -.librevjs-libre-mixteal-skin .librevjs-volume-bar { - width: 5em; - height: .6em; - margin: 1.1em auto 0 -} - -.librevjs-libre-mixteal-skin .librevjs-volume-menu-button .librevjs-menu-content { - height: 2.9em -} - - -/*Personalización del nivel de volumen*/ - -.librevjs-libre-mixteal-skin .librevjs-volume-level { - position: absolute; - top: 0; - left: 0; - height: 0.5em; - /* assuming volume starts at 1.0 */ - width: 100%; - background: #1de9b6 url() -50% 0 repeat; -} - -.librevjs-libre-mixteal-skin .librevjs-volume-bar .librevjs-volume-handle { - width: .5em; - height: .5em -} - -.librevjs-libre-mixteal-skin .librevjs-volume-handle:before { - font-size: .9em; - top: -.2em; - left: -.2em; - width: 1em; - height: 1em; -} - -.librevjs-libre-mixteal-skin .librevjs-volume-menu-button .librevjs-menu .librevjs-menu-content { - width: 6em; - left: -4em; -} - - -/* Progress --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixteal-skin .librevjs-progress-control { - position: absolute; - left: 0; - right: 0; - width: auto; - font-size: .3em; - height: 1em; - top: -1em; - -webkit-transition: all .4s; - -moz-transition: all .4s; - -o-transition: all .4s; - transition: all .4s; -} - -.librevjs-libre-mixteal-skin:hover .librevjs-progress-control { - font-size: .9em; - -webkit-transition: all .2s; - -moz-transition: all .2s; - -o-transition: all .2s; - transition: all .2s; -} - - -/* Box containing play and load progress. Also acts as seek scrubber. */ - -.librevjs-libre-mixteal-skin .librevjs-progress-holder { - height: 100%; -} - - -/* Progress Bars */ - -.librevjs-libre-mixteal-skin .librevjs-progress-holder .librevjs-play-progress, .librevjs-libre-mixteal-skin .librevjs-progress-holder .librevjs-load-progress { - position: absolute; - display: block; - height: 100%; - margin: 0; - padding: 0; - left: 0; - top: 0 -} - -.librevjs-libre-mixteal-skin .librevjs-play-progress { - background: #1de9b6 url() -50% 0 repeat; -} - -.librevjs-libre-mixteal-skin .librevjs-load-progress { - background: #646464; - background: rgba(255, 255, 255, .4) -} - -.librevjs-libre-mixteal-skin .librevjs-seek-handle { - width: 1.5em; - height: 100% -} - -.librevjs-libre-mixteal-skin .librevjs-seek-handle:before { - padding-top: .1em -} - - -/* Time Display --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixteal-skin .librevjs-time-controls { - font-size: 1em; - font-weight: 700; - /*mayor visibilidad*/ - line-height: 3em -} - -.librevjs-libre-mixteal-skin .librevjs-current-time { - float: left -} - -.librevjs-libre-mixteal-skin .librevjs-duration { - float: left -} - -.librevjs-libre-mixteal-skin .librevjs-remaining-time { - display: none; - float: left -} - - -/* Fullscreen --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixteal-skin .librevjs-fullscreen-control { - width: 3.8em; - cursor: pointer; - float: right -} - -.librevjs-libre-mixteal-skin .librevjs-fullscreen-control:before { - content: "\e000" -} - - -/* Switch to the exit icon when the player is in fullscreen */ - -.librevjs-libre-mixteal-skin.librevjs-fullscreen .librevjs-fullscreen-control:before { - content: "\e00b" -} - - -/* Big Play Button (play button at start) --------------------------------------------------------------------------------- -Positioning of the play button in the center or other corners can be done more -easily in the skin designer by LibreVideoJS FreeArts. -*/ - -.librevjs-libre-mixteal-skin .librevjs-big-play-button { - /* Center it horizontally */ - left: 50%; - margin-left: -1.85em; - /* Center it vertically */ - top: 50%; - margin-top: -1.3em; - font-size: 2em; - display: block; - z-index: 2; - position: absolute; - width: 3.8em; - height: 2.6em; - text-align: center; - vertical-align: middle; - cursor: pointer; - opacity: 1; - /* Need a slightly gray bg so it can be seen on black backgrounds */ - /* background-color-with-alpha */ - background-color: #232323; - background-color: rgba(35, 35, 35, 0.8); - border: 0 solid; - /* border-radius */ - -webkit-border-radius: 0.4em; - -moz-border-radius: 0.4em; - border-radius: 0.4em; - /* transition */ - -webkit-transition: all 0.4s; - -moz-transition: all 0.4s; - -o-transition: all 0.4s; - transition: all 0.4s; -} - - -/* Hide if controls are disabled */ - -.librevjs-libre-mixteal-skin.librevjs-controls-disabled .librevjs-big-play-button { - display: none; -} - - -/* Hide when video starts playing */ - -.librevjs-libre-mixteal-skin.librevjs-has-started .librevjs-big-play-button { - display: none; -} - - -/* Hide on mobile devices. Remove when we stop using native controls - by default on mobile */ - -.librevjs-libre-mixteal-skin.librevjs-using-native-controls .librevjs-big-play-button { - display: none; -} - -.librevjs-libre-mixteal-skin:hover .librevjs-big-play-button, .librevjs-libre-mixteal-skin .librevjs-big-play-button:focus { - outline: 0; - cursor: pointer; - /* IE8 needs a non-glow hover state */ - background-color: #1de9b6; - /*color del boton play al hacer focus*/ - color: #FFFFFF; -} - -.librevjs-libre-mixteal-skin .librevjs-big-play-button:before { - content: "\e001"; - font-family: LibreVideoJS; - /* In order to center the play icon vertically we need to set the line height - to the same as the button height */ - line-height: 2.6em; - text-shadow: 0.05em 0.05em 0.1em #000; - text-align: center/* Needed for IE8 */ - ; - position: absolute; - left: 0; - width: 100%; - height: 100%; -} - - -/* Menu Buttons (Captions/Subtitles/etc.) --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixteal-skin .librevjs-menu-button { - float: right; - cursor: pointer; -} - -.librevjs-libre-mixteal-skin .librevjs-menu { - display: none; - position: absolute; - bottom: 0; - left: 0; - width: 0; - height: 0; - margin-bottom: 3em; - border-left: 2em solid transparent; - border-right: 2em solid transparent; - border-top: 1.55em solid #000; - border-top-color: rgba(7, 40, 50, .5); -} - - -/* Button Pop-up Menu */ - -.librevjs-libre-mixteal-skin .librevjs-menu-button .librevjs-menu .librevjs-menu-content { - display: block; - padding: 0; - margin: 0; - position: absolute; - width: 10em; - bottom: 1.5em; - /* Same bottom as librevjs-menu border-top */ - max-height: 15em; - overflow: auto; - left: -5em; - /* Width of menu - width of button / 2 */ - /* background-color-with-alpha */ - background-color: #07141e; - background-color: rgba(7, 20, 30, .7); - -webkit-box-shadow: -.2em -.2em .3em rgba(255, 255, 255, .2); - -moz-box-shadow: -.2em -.2em .3em rgba(255, 255, 255, .2); - box-shadow: -.2em -.2em .3em rgba(255, 255, 255, .2); -} - -.librevjs-libre-mixteal-skin .librevjs-menu-button:hover .librevjs-menu { - display: block; -} - -.librevjs-libre-mixteal-skin .librevjs-menu-button ul li { - list-style: none; - margin: 0; - padding: .3em 0; - line-height: 1.4em; - font-size: 1.2em; - text-align: center; - text-transform: lowercase; - color: #ccc; -} - - -/* Select color menu subtitles/captions */ - -.librevjs-libre-mixteal-skin .librevjs-menu-button ul li.librevjs-selected { - color: rgb(1, 56, 47); - background-color: rgb(29, 233, 182); -} - -.librevjs-libre-mixteal-skin .librevjs-menu-button ul li:focus, .librevjs-libre-mixteal-skin .librevjs-menu-button ul li:hover, .librevjs-libre-mixteal-skin .librevjs-menu-button ul li.librevjs-selected:focus, .librevjs-libre-mixteal-skin .librevjs-menu-button ul li.librevjs-selected:hover { - outline: 0; - color: #004d40; - background-color: #1de9b6; -} - - -/*End Select color menu subtitles/caption */ - -.librevjs-libre-mixteal-skin .librevjs-menu-button ul li.librevjs-menu-title { - text-align: center; - text-transform: uppercase; - font-size: 1em; - line-height: 2em; - padding: 0; - margin: 0 0 .3em; - font-weight: 700; - cursor: default; -} - - -/* Subtitles Button */ - -.librevjs-libre-mixteal-skin .librevjs-subtitles-button:before { - content: "\e00c" -} - - -/* Captions Button */ - -.librevjs-libre-mixteal-skin .librevjs-captions-button:before { - content: "\e008" -} - - -/* Replacement for focus outline */ - -.librevjs-libre-mixteal-skin .librevjs-captions-button:focus .librevjs-control-content:before, .librevjs-libre-mixteal-skin .librevjs-captions-button:hover .librevjs-control-content:before { - -webkit-box-shadow: 0 0 1em #fff; - -moz-box-shadow: 0 0 1em #fff; - box-shadow: 0 0 1em #fff; -} - - -/* Hide disabled or unsupported controls */ - -.librevjs-libre-mixteal-skin .librevjs-hidden { - display: none -} - - -/*Title Resolution | subtitles and Caption*/ - -.librevjs-libre-mixteal-skin ul li.librevjs-menu-title.librevjs-res-menu-title { - color: rgb(26, 187, 156); - background-color: inherit; -} - -.librevjs-libre-mixteal-skin ul li.librevjs-menu-title.librevjs-res-menu-title:hover { - color: rgb(29, 233, 182); - background-color: inherit; -} - -@media screen and (max-width: 400px) { - .librevjs-libre-mixteal-skin .librevjs-big-play-button { - font-size: 2em; - } -} - -@media screen and (max-width: 150px) { - .librevjs-libre-mixteal-skin .librevjs-big-play-button { - font-size: 1.8em; - } -} - -@media screen and (max-width: 90px) { - .librevjs-libre-mixteal-skin .librevjs-big-play-button { - font-size: 1.4em; - } -} - - -/* Skin-Yellow -----------------------------------------------------------------------------------------------------*/ - -.librevjs-libre-mixyellow-skin { - color: #ccc; - background-color: inherit; -} - - -/* Base UI Component Classes ---------------------------------------------------------------------------------*/ -/* Slider - used for Volume bar and Seek bar */ - -.librevjs-libre-mixyellow-skin .librevjs-slider { - /* Replace browser focus highlight with handle highlight */ - outline: 0; - position: relative; - cursor: pointer; - padding: 0; - /* background-color-with-alpha */ - background-color: #000000; - background-color: rgba(0, 0, 0, 0.5); -} - -.librevjs-libre-mixyellow-skin .librevjs-slider:focus { - -webkit-box-shadow: 0 0 2em #fff; - -moz-box-shadow: 0 0 2em #fff; - box-shadow: 0 0 2em #fff; -} - - -/*Eliminación de botón de barra de progreso*/ - -.librevjs-libre-mixyellow-skin .librevjs-slider-handle { - width: 0; - height: 0; -} - -.librevjs-libre-mixyellow-skin .librevjs-slider-handle:before { - text-shadow: 0em 0em 1em #fff; - position: absolute; - top: 0; - left: 0; -} - - -/* Control Bar --------------------------------------------------------------------------------- -The default control bar that is a container for most of the controls. -*/ - -.librevjs-libre-mixyellow-skin .librevjs-control-bar { - /* Start hidden */ - display: none; - position: absolute; - /* Place control bar at the bottom of the player box/video. - If you want more margin below the control bar, add more height. */ - bottom: 0; - /* Use left/right to stretch to 100% width of player div */ - left: 0; - right: 0; - /* Height includes any margin you want above or below control items */ - height: 3.0em; - /* background-color-with-alpha */ - background-color: #232323; - background-color: rgba(35, 35, 35, 0.8); -} - - -/* Show the control bar only once the video has started playing */ - -.librevjs-libre-mixyellow-skin.librevjs-has-started .librevjs-control-bar { - display: block; - visibility: visible; - opacity: 1; - -webkit-transition: visibility .1s, opacity .1s; - -moz-transition: visibility .1s, opacity .1s; - -o-transition: visibility .1s, opacity .1s; - transition: visibility .1s, opacity .1s -} - - -/* Hide the control bar when the video is playing and the user is inactive */ - -.librevjs-libre-mixyellow-skin.librevjs-has-started.librevjs-user-inactive.librevjs-playing .librevjs-control-bar { - display: block; - visibility: hidden; - opacity: 0; - -webkit-transition: visibility 1s, opacity 1s; - -moz-transition: visibility 1s, opacity 1s; - -o-transition: visibility 1s, opacity 1s; - transition: visibility 1s, opacity 1s -} - -.librevjs-libre-mixyellow-skin.librevjs-controls-disabled .librevjs-control-bar { - display: none -} - -.librevjs-libre-mixyellow-skin.librevjs-using-native-controls .librevjs-control-bar { - display: none -} - -@media \0screen { - .librevjs-libre-mixyellow-skin.librevjs-user-inactive.librevjs-playing .librevjs-control-bar :before { - content: "" - } -} - - -/* General styles for individual controls. */ - -.librevjs-libre-mixyellow-skin .librevjs-control { - outline: 0; - position: relative; - float: left; - text-align: center; - margin: 0; - padding: 0; - height: 3em; - width: 4em -} - - -/* FreeArt button icons: http://artlibre.org/licence/lal */ - -.librevjs-libre-mixyellow-skin .librevjs-control:before { - font-family: LibreVideoJS; - font-size: 1.5em; - line-height: 2; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - text-align: center; - text-shadow: 1px 1px 1px rgba(0, 0, 0, .5) -} - - -/* Replacement for focus outline */ - -.librevjs-libre-mixyellow-skin .librevjs-control:focus:before, .librevjs-libre-mixyellow-skin .librevjs-control:hover:before { - color: #f1c40f; -} - -.librevjs-libre-mixyellow-skin .librevjs-control:focus { - /* outline: 0; */ - /* keyboard-only users cannot see the focus on several of the UI elements when this is set to 0 */ -} - - -/* Hide control text visually, but have it available for screenreaders */ - -.librevjs-libre-mixyellow-skin .librevjs-control-text { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px -} - - -/* Play/Pause --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixyellow-skin .librevjs-play-control { - width: 5em; - cursor: pointer; - color: rgb(241, 196, 14); -} - -.librevjs-libre-mixyellow-skin .librevjs-play-control:before { - content: "\e001" -} - -.librevjs-libre-mixyellow-skin .librevjs-play-control:hover:before { - color: #f39c12; - /*color de play control al pasar el cursor*/ -} - -.librevjs-libre-mixyellow-skin.librevjs-playing .librevjs-play-control:before { - content: "\e002" -} - - -/* Volume/Mute --------------------------------------------------------------------------------- */ - -.librevjs-libre-mixyellow-skin .librevjs-mute-control, .librevjs-libre-mixyellow-skin .librevjs-volume-menu-button { - cursor: pointer; - float: right -} - -.librevjs-libre-mixyellow-skin .librevjs-mute-control:before, .librevjs-libre-mixyellow-skin .librevjs-volume-menu-button:before { - content: "\e006" -} - -.librevjs-libre-mixyellow-skin .librevjs-mute-control.librevjs-vol-0:before, .librevjs-libre-mixyellow-skin .librevjs-volume-menu-button.librevjs-vol-0:before { - content: "\e003" -} - -.librevjs-libre-mixyellow-skin .librevjs-mute-control.librevjs-vol-1:before, .librevjs-libre-mixyellow-skin .librevjs-volume-menu-button.librevjs-vol-1:before { - content: "\e004" -} - -.librevjs-libre-mixyellow-skin .librevjs-mute-control.librevjs-vol-2:before, .librevjs-libre-mixyellow-skin .librevjs-volume-menu-button.librevjs-vol-2:before { - content: "\e005" -} - -.librevjs-libre-mixyellow-skin .librevjs-volume-control { - width: 5em; - float: right -} - -.librevjs-libre-mixyellow-skin .librevjs-volume-bar { - width: 5em; - height: .6em; - margin: 1.1em auto 0 -} - -.librevjs-libre-mixyellow-skin .librevjs-volume-menu-button .librevjs-menu-content { - height: 2.9em -} - - -/*Personalización del nivel de volumen*/ - -.librevjs-libre-mixyellow-skin .librevjs-volume-level { - position: absolute; - top: 0; - left: 0; - height: 0.5em; - /* assuming volume starts at 1.0 */ - width: 100%; - background: #f1c40f url() -50% 0 repeat; -} - -.librevjs-libre-mixyellow-skin .librevjs-volume-bar .librevjs-volume-handle { - width: .5em; - height: .5em -} - -.librevjs-libre-mixyellow-skin .librevjs-volume-handle:before { - font-size: .9em; - top: -.2em; - left: -.2em; - width: 1em; - height: 1em; -} - -.librevjs-libre-mixyellow-skin .librevjs-volume-menu-button .librevjs-menu .librevjs-menu-content { - width: 6em; - left: -4em; -} - - -/* Progress --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixyellow-skin .librevjs-progress-control { - position: absolute; - left: 0; - right: 0; - width: auto; - font-size: .3em; - height: 1em; - top: -1em; - -webkit-transition: all .4s; - -moz-transition: all .4s; - -o-transition: all .4s; - transition: all .4s; -} - -.librevjs-libre-mixyellow-skin:hover .librevjs-progress-control { - font-size: .9em; - -webkit-transition: all .2s; - -moz-transition: all .2s; - -o-transition: all .2s; - transition: all .2s; -} - - -/* Box containing play and load progress. Also acts as seek scrubber. */ - -.librevjs-libre-mixyellow-skin .librevjs-progress-holder { - height: 100%; -} - - -/* Progress Bars */ - -.librevjs-libre-mixyellow-skin .librevjs-progress-holder .librevjs-play-progress, .librevjs-libre-mixyellow-skin .librevjs-progress-holder .librevjs-load-progress { - position: absolute; - display: block; - height: 100%; - margin: 0; - padding: 0; - left: 0; - top: 0 -} - -.librevjs-libre-mixyellow-skin .librevjs-play-progress { - background: #f1c40f url() -50% 0 repeat; -} - -.librevjs-libre-mixyellow-skin .librevjs-load-progress { - background: #646464; - background: rgba(255, 255, 255, .4) -} - -.librevjs-libre-mixyellow-skin .librevjs-seek-handle { - width: 1.5em; - height: 100% -} - -.librevjs-libre-mixyellow-skin .librevjs-seek-handle:before { - padding-top: .1em -} - - -/* Time Display --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixyellow-skin .librevjs-time-controls { - font-size: 1em; - font-weight: 700; - /*mayor visibilidad*/ - line-height: 3em -} - -.librevjs-libre-mixyellow-skin .librevjs-current-time { - float: left -} - -.librevjs-libre-mixyellow-skin .librevjs-duration { - float: left -} - -.librevjs-libre-mixyellow-skin .librevjs-remaining-time { - display: none; - float: left -} - - -/* Fullscreen --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixyellow-skin .librevjs-fullscreen-control { - width: 3.8em; - cursor: pointer; - float: right -} - -.librevjs-libre-mixyellow-skin .librevjs-fullscreen-control:before { - content: "\e000" -} - - -/* Switch to the exit icon when the player is in fullscreen */ - -.librevjs-libre-mixyellow-skin.librevjs-fullscreen .librevjs-fullscreen-control:before { - content: "\e00b" -} - - -/* Big Play Button (play button at start) --------------------------------------------------------------------------------- -Positioning of the play button in the center or other corners can be done more -easily in the skin designer by LibreVideoJS FreeArts. -*/ - -.librevjs-libre-mixyellow-skin .librevjs-big-play-button { - /* Center it horizontally */ - left: 50%; - margin-left: -1.85em; - /* Center it vertically */ - top: 50%; - margin-top: -1.3em; - font-size: 2em; - display: block; - z-index: 2; - position: absolute; - width: 3.8em; - height: 2.6em; - text-align: center; - vertical-align: middle; - cursor: pointer; - opacity: 1; - /* Need a slightly gray bg so it can be seen on black backgrounds */ - /* background-color-with-alpha */ - background-color: #232323; - background-color: rgba(35, 35, 35, 0.8); - border: 0 solid; - /* border-radius */ - -webkit-border-radius: 0.4em; - -moz-border-radius: 0.4em; - border-radius: 0.4em; - /* transition */ - -webkit-transition: all 0.4s; - -moz-transition: all 0.4s; - -o-transition: all 0.4s; - transition: all 0.4s; -} - - -/* Hide if controls are disabled */ - -.librevjs-libre-mixyellow-skin.librevjs-controls-disabled .librevjs-big-play-button { - display: none; -} - - -/* Hide when video starts playing */ - -.librevjs-libre-mixyellow-skin.librevjs-has-started .librevjs-big-play-button { - display: none; -} - - -/* Hide on mobile devices. Remove when we stop using native controls - by default on mobile */ - -.librevjs-libre-mixyellow-skin.librevjs-using-native-controls .librevjs-big-play-button { - display: none; -} - -.librevjs-libre-mixyellow-skin:hover .librevjs-big-play-button, .librevjs-libre-mixyellow-skin .librevjs-big-play-button:focus { - outline: 0; - cursor: pointer; - /* IE8 needs a non-glow hover state */ - background-color: rgb(244, 156, 18); - /*color del boton play al hacer focus*/ - color: #FFFFFF; -} - -.librevjs-libre-mixyellow-skin .librevjs-big-play-button:before { - content: "\e001"; - font-family: LibreVideoJS; - /* In order to center the play icon vertically we need to set the line height - to the same as the button height */ - line-height: 2.6em; - text-shadow: 0.05em 0.05em 0.1em #000; - text-align: center/* Needed for IE8 */ - ; - position: absolute; - left: 0; - width: 100%; - height: 100%; -} - - -/* Menu Buttons (Captions/Subtitles/etc.) --------------------------------------------------------------------------------- -*/ - -.librevjs-libre-mixyellow-skin .librevjs-menu-button { - float: right; - cursor: pointer; -} - -.librevjs-libre-mixyellow-skin .librevjs-menu { - display: none; - position: absolute; - bottom: 0; - left: 0; - width: 0; - height: 0; - margin-bottom: 3em; - border-left: 2em solid transparent; - border-right: 2em solid transparent; - border-top: 1.55em solid #000; - border-top-color: rgba(7, 40, 50, .5); -} - - -/* Button Pop-up Menu */ - -.librevjs-libre-mixyellow-skin .librevjs-menu-button .librevjs-menu .librevjs-menu-content { - display: block; - padding: 0; - margin: 0; - position: absolute; - width: 10em; - bottom: 1.5em; - /* Same bottom as librevjs-menu border-top */ - max-height: 15em; - overflow: auto; - left: -5em; - /* Width of menu - width of button / 2 */ - /* background-color-with-alpha */ - background-color: #07141e; - background-color: rgba(7, 20, 30, .7); - -webkit-box-shadow: -.2em -.2em .3em rgba(255, 255, 255, .2); - -moz-box-shadow: -.2em -.2em .3em rgba(255, 255, 255, .2); - box-shadow: -.2em -.2em .3em rgba(255, 255, 255, .2); -} - -.librevjs-libre-mixyellow-skin .librevjs-menu-button:hover .librevjs-menu { - display: block; -} - -.librevjs-libre-mixyellow-skin .librevjs-menu-button ul li { - list-style: none; - margin: 0; - padding: .3em 0; - line-height: 1.4em; - font-size: 1.2em; - text-align: center; - text-transform: lowercase; - color: #ccc; -} - - -/* Select color menu subtitles/captions */ - -.librevjs-libre-mixyellow-skin .librevjs-menu-button ul li.librevjs-selected { - color: #fff; - background-color: rgb(241, 196, 14); -} - -.librevjs-libre-mixyellow-skin .librevjs-menu-button ul li:focus, .librevjs-libre-mixyellow-skin .librevjs-menu-button ul li:hover, .librevjs-libre-mixyellow-skin .librevjs-menu-button ul li.librevjs-selected:focus, .librevjs-libre-mixyellow-skin .librevjs-menu-button ul li.librevjs-selected:hover { - outline: 0; - color: #fff; - background-color: #f1c40f; -} - - -/*End Select color menu subtitles/caption */ - -.librevjs-libre-mixyellow-skin .librevjs-menu-button ul li.librevjs-menu-title { - text-align: center; - text-transform: uppercase; - font-size: 1em; - line-height: 2em; - padding: 0; - margin: 0 0 .3em; - font-weight: 700; - cursor: default; -} - - -/* Subtitles Button */ - -.librevjs-libre-mixyellow-skin .librevjs-subtitles-button:before { - content: "\e00c" -} - - -/* Captions Button */ - -.librevjs-libre-mixyellow-skin .librevjs-captions-button:before { - content: "\e008" -} - - -/* Replacement for focus outline */ - -.librevjs-libre-mixyellow-skin .librevjs-captions-button:focus .librevjs-control-content:before, .librevjs-libre-mixyellow-skin .librevjs-captions-button:hover .librevjs-control-content:before { - -webkit-box-shadow: 0 0 1em #fff; - -moz-box-shadow: 0 0 1em #fff; - box-shadow: 0 0 1em #fff; -} - - -/* Hide disabled or unsupported controls */ - -.librevjs-libre-mixyellow-skin .librevjs-hidden { - display: none -} - - -/*Title Resolution | subtitles and Caption*/ - -.librevjs-libre-mixyellow-skin ul li.librevjs-menu-title.librevjs-res-menu-title { - color: #f1c40f; - background-color: inherit; -} - -.librevjs-libre-mixyellow-skin ul li.librevjs-menu-title.librevjs-res-menu-title:hover { - color: #f39c12; - background-color: inherit; -} - -@media screen and (max-width: 400px) { - .librevjs-libre-mixyellow-skin .librevjs-big-play-button { - font-size: 2em; - } -} - -@media screen and (max-width: 150px) { - .librevjs-libre-mixyellow-skin .librevjs-big-play-button { - font-size: 1.8em; - } -} - -@media screen and (max-width: 90px) { - .librevjs-libre-mixyellow-skin .librevjs-big-play-button { - font-size: 1.4em; - } -} - - -/* Global Styles -==============================================================================================*/ - - -/* Global Time-Display */ - -.librevjs-time-divider { - float: left; - line-height: 3em -} - - -/* Global Big-Play-Button-(play-button-at-start) */ - -.librevjs-error .librevjs-big-play-button { - display: none; -} - - -/* Global Loading Spinner */ - -.librevjs-loading-spinner { - display: none; - position: absolute; - top: 50%; - left: 50%; - font-size: 4em; - line-height: 1; - width: 1em; - height: 1em; - margin-left: -.5em; - margin-top: -.5em; - opacity: .75; - -webkit-animation: spin 1.5s infinite linear; - -moz-animation: spin 1.5s infinite linear; - -o-animation: spin 1.5s infinite linear; - animation: spin 1.5s infinite linear -} - -.librevjs-loading-spinner:before { - content: "\e01e"; - font-family: LibreVideoJS; - position: absolute; - top: 0; - left: 0; - width: 1em; - height: 1em; - text-align: center; - text-shadow: 0 0 .1em #000 -} - -@-moz-keyframes spin { - 0% { - -moz-transform: rotate(0deg) - } - 100% { - -moz-transform: rotate(359deg) - } -} - -@-webkit-keyframes spin { - 0% { - -webkit-transform: rotate(0deg) - } - 100% { - -webkit-transform: rotate(359deg) - } -} - -@-o-keyframes spin { - 0% { - -o-transform: rotate(0deg) - } - 100% { - -o-transform: rotate(359deg) - } -} - -@keyframes spin { - 0% { - transform: rotate(0deg) - } - 100% { - transform: rotate(359deg) - } -} - - -/* -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 (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. ** -*/ - -.cliplibre-js { - background-color: #000; - position: relative; - padding: 0; - font-size: 10px; - vertical-align: middle; - font-weight: 500; - font-style: normal; - font-family: Arial, sans-serif; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none -} - - -/* Playback technology elements expand to the width/height of the containing div <video> */ - -.cliplibre-js .librevjs-tech { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100% -} - -.cliplibre-js:-moz-full-screen { - position: absolute -} - - -/* Fullscreen Styles */ - -body.librevjs-full-window { - padding: 0; - margin: 0; - height: 100%; - overflow-y: auto; -} - -.cliplibre-js.librevjs-fullscreen { - position: fixed; - overflow: hidden; - z-index: 1000; - left: 0; - top: 0; - bottom: 0; - right: 0; - width: 100%!important; - height: 100%!important; - position: absolute; -} - -.cliplibre-js:-webkit-full-screen { - width: 100%!important; - height: 100%!important -} - -.cliplibre-js.librevjs-fullscreen.librevjs-user-inactive { - cursor: none -} - - -/* Poster Styles */ - -.librevjs-poster { - background-repeat: no-repeat; - background-position: 50% 50%; - background-size: contain; - cursor: pointer; - height: 100%; - margin: 0; - padding: 0; - position: relative; - width: 100% -} - -.librevjs-poster img { - display: block; - margin: 0 auto; - max-height: 100%; - padding: 0; - width: 100% -} - - -/* Hide the poster when native controls are used otherwise it covers them */ - -.cliplibre-js.librevjs-using-native-controls .librevjs-poster { - display: none -} - - -/* Text Track Styles */ - - -/* Overall track holder for both captions and subtitles */ - -.cliplibre-js .librevjs-text-track-display { - text-align: center; - position: absolute; - bottom: 4em; - left: 1em; - right: 1em -} - - -/* Individual tracks */ - -.cliplibre-js .librevjs-text-track { - display: none; - font-size: 1.7em; - text-align: center; - margin-bottom: .1em; - /* Transparent black background, or fallback to all black (oldIE) */ - background-color: #000; - background-color: rgba(0, 0, 0, .6) -} - -.cliplibre-js .librevjs-subtitles { - color: #fff -} - -.cliplibre-js .librevjs-captions { - color: rgb(255, 237, 0); - background-color: rgba(2, 7, 11, 0.7); -} - -.librevjs-tt-cue { - display: block -} - - -/* Global Hide disabled or unsupported controls */ - -.librevjs-lock-showing { - display: block!important; - opacity: 1; - visibility: visible -} - - -/* Opctional Styles No support HTML5*/ - -.no_html5 { - background: black none repeat scroll 0 0; - color: white; - height: 160px; - padding: 130px 10px 20px; - text-align: center; -} - - -/* Global Responsive -------------------------------------------------------------------------------*/ - -.cliplibre-js-responsive-container.librevjs-hd { - padding-top: 56.25%; -} - -.cliplibre-js-responsive-container.librevjs-sd { - padding-top: 75%; -} - -.cliplibre-js-responsive-container { - width: 100%; - position: relative; -} - -.cliplibre-js-responsive-container .cliplibre-js { - height: 100% !important; - width: 100% !important; - position: absolute; - top: 0; - left: 0; -} - -@media screen and (max-width: 800px) { - .cliplibre-js .librevjs-text-track { - font-size: 1.5em; - margin-bottom: -0.2em; - } -} - -@media screen and (max-width: 600px) { - .cliplibre-js .librevjs-text-track { - font-size: 1.2em; - } - .cliplibre-js .librevjs-text-track-display { - bottom: 2em; - } -} - -@media screen and (max-width: 413px) { - .cliplibre-js { - font-size: 8px; - } -} - -@media screen and (max-width: 400px) { - .cliplibre-js .librevjs-text-track { - font-size: 1em; - } - .cliplibre-js .librevjs-text-track-display { - bottom: 1em; - } -} - -@media screen and (max-width: 335px) { - .cliplibre-js { - font-size: 6px; - } -} - -/* Quality Selector Universal -------------------------------------------------------------------------------*/ -/* Position the button */ -.librevjs-res-button { - font-weight: bold; - float: right; - line-height: 3em; -} - -/* Don't show hover effects on title */ -ul li.librevjs-menu-title.librevjs-res-menu-title:hover { - cursor: default; - background-color: transparent; - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -/* Needed to keep text visible in video.js 4.9 */ -.librevjs-res-button .librevjs-control-text { - width: auto; - height: auto; - clip: auto; -} -/* margin to librevideojs */ -div.LibreVideoJS { - margin-bottom: 20px; -} - -/* ProgressTips Universal -------------------------------------------------------------------------------*/ -.librevjs-progress-tip { - visibility: hidden; - display: block; - opacity: 0.8; - padding: 5px; - font-size: 10px; - position: absolute; - z-index: 100000; -} - -.librevjs-progress-tip-arrow { - background: url(data:image/gif;base64,R0lGODlhCQAJAIABAAAAAAAAACH5BAEAAAEALAAAAAAJAAkAAAIRjAOnwIrcDJxvwkplPtchVQAAOw==) no-repeat top left; - bottom: 0; - left: 50%; - margin-left: -4px; - background-position: bottom left; - position: absolute; - width: 9px; - height: 5px; -} - -.librevjs-progress-tip-inner { - border-radius: 3px; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - padding: 5px 8px 4px 8px; - background-color: black; - color: white; - max-width: 200px; - text-align: center; -} diff --git a/css/mix-material/master.min.css b/css/mix-material/master.min.css deleted file mode 100644 index 9ac70d8..0000000 --- a/css/mix-material/master.min.css +++ /dev/null @@ -1,5 +0,0 @@ -/*! -LibreVideoJS Estilos personalizados -Version 1.4 -Escrito por Jesús Eduardo -*/@font-face{font-family:"LibreVideoJS";src:url("../../fonts/libre-material/libre-icons.eot") format("embedded-opentype");src:local('?'),url("../../fonts/libre-material/libre-icons.woff") format("woff"),url("../../fonts/libre-material/libre-icons.ttf") format("truetype"),url("../../fonts/libre-material/libre-icons.svg") format("svg")}.librevjs-libre-mixblue-skin{color:#ccc;background-color:inherit}.librevjs-libre-mixblue-skin .librevjs-slider{outline:0;position:relative;cursor:pointer;padding:0;background-color:#000;background-color:rgba(0,0,0,0.5)}.librevjs-libre-mixblue-skin .librevjs-slider:focus{-webkit-box-shadow:0 0 2em #fff;-moz-box-shadow:0 0 2em #fff;box-shadow:0 0 2em #fff}.librevjs-libre-mixblue-skin .librevjs-slider-handle{width:0;height:0}.librevjs-libre-mixblue-skin .librevjs-slider-handle:before{text-shadow:0 0 1em #fff;position:absolute;top:0;left:0}.librevjs-libre-mixblue-skin .librevjs-control-bar{display:none;position:absolute;bottom:0;left:0;right:0;height:3.0em;background-color:#232323;background-color:rgba(35,35,35,0.8)}.librevjs-libre-mixblue-skin.librevjs-has-started .librevjs-control-bar{display:block;visibility:visible;opacity:1;-webkit-transition:visibility .1s,opacity .1s;-moz-transition:visibility .1s,opacity .1s;-o-transition:visibility .1s,opacity .1s;transition:visibility .1s,opacity .1s}.librevjs-libre-mixblue-skin.librevjs-has-started.librevjs-user-inactive.librevjs-playing .librevjs-control-bar{display:block;visibility:hidden;opacity:0;-webkit-transition:visibility 1s,opacity 1s;-moz-transition:visibility 1s,opacity 1s;-o-transition:visibility 1s,opacity 1s;transition:visibility 1s,opacity 1s}.librevjs-libre-mixblue-skin.librevjs-controls-disabled .librevjs-control-bar{display:none}.librevjs-libre-mixblue-skin.librevjs-using-native-controls .librevjs-control-bar{display:none}@media \0screen{.librevjs-libre-mixblue-skin.librevjs-user-inactive.librevjs-playing .librevjs-control-bar:before{content:""}}.librevjs-libre-mixblue-skin .librevjs-control{outline:0;position:relative;float:left;text-align:center;margin:0;padding:0;height:3em;width:4em}.librevjs-libre-mixblue-skin .librevjs-control:before{font-family:LibreVideoJS;font-size:1.5em;line-height:2;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;text-shadow:1px 1px 1px rgba(0,0,0,.5)}.librevjs-libre-mixblue-skin .librevjs-control:focus:before,.librevjs-libre-mixblue-skin .librevjs-control:hover:before{color:#2196f3}.librevjs-libre-mixblue-skin .librevjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.librevjs-libre-mixblue-skin .librevjs-play-control{width:5em;cursor:pointer;color:#2196f4}.librevjs-libre-mixblue-skin .librevjs-play-control:before{content:"\e001"}.librevjs-libre-mixblue-skin .librevjs-play-control:hover:before{color:#2980b9}.librevjs-libre-mixblue-skin.librevjs-playing .librevjs-play-control:before{content:"\e002"}.librevjs-libre-mixblue-skin .librevjs-mute-control,.librevjs-libre-mixblue-skin .librevjs-volume-menu-button{cursor:pointer;float:right}.librevjs-libre-mixblue-skin .librevjs-mute-control:before,.librevjs-libre-mixblue-skin .librevjs-volume-menu-button:before{content:"\e006"}.librevjs-libre-mixblue-skin .librevjs-mute-control.librevjs-vol-0:before,.librevjs-libre-mixblue-skin .librevjs-volume-menu-button.librevjs-vol-0:before{content:"\e003"}.librevjs-libre-mixblue-skin .librevjs-mute-control.librevjs-vol-1:before,.librevjs-libre-mixblue-skin .librevjs-volume-menu-button.librevjs-vol-1:before{content:"\e004"}.librevjs-libre-mixblue-skin .librevjs-mute-control.librevjs-vol-2:before,.librevjs-libre-mixblue-skin .librevjs-volume-menu-button.librevjs-vol-2:before{content:"\e005"}.librevjs-libre-mixblue-skin .librevjs-volume-control{width:5em;float:right}.librevjs-libre-mixblue-skin .librevjs-volume-bar{width:5em;height:.6em;margin:1.1em auto 0}.librevjs-libre-mixblue-skin .librevjs-volume-menu-button .librevjs-menu-content{height:2.9em}.librevjs-libre-mixblue-skin .librevjs-volume-level{position:absolute;top:0;left:0;height:.5em;width:100%;background:#2196f3 url() -50% 0 repeat}.librevjs-libre-mixblue-skin .librevjs-volume-bar .librevjs-volume-handle{width:.5em;height:.5em}.librevjs-libre-mixblue-skin .librevjs-volume-handle:before{font-size:.9em;top:-.2em;left:-.2em;width:1em;height:1em}.librevjs-libre-mixblue-skin .librevjs-volume-menu-button .librevjs-menu .librevjs-menu-content{width:6em;left:-4em}.librevjs-libre-mixblue-skin .librevjs-progress-control{position:absolute;left:0;right:0;width:auto;font-size:.3em;height:1em;top:-1em;-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.librevjs-libre-mixblue-skin:hover .librevjs-progress-control{font-size:.9em;-webkit-transition:all .2s;-moz-transition:all .2s;-o-transition:all .2s;transition:all .2s}.librevjs-libre-mixblue-skin .librevjs-progress-holder{height:100%}.librevjs-libre-mixblue-skin .librevjs-progress-holder .librevjs-play-progress,.librevjs-libre-mixblue-skin .librevjs-progress-holder .librevjs-load-progress{position:absolute;display:block;height:100%;margin:0;padding:0;left:0;top:0}.librevjs-libre-mixblue-skin .librevjs-play-progress{background:#2196f3 url() -50% 0 repeat}.librevjs-libre-mixblue-skin .librevjs-load-progress{background:#646464;background:rgba(255,255,255,.4)}.librevjs-libre-mixblue-skin .librevjs-seek-handle{width:1.5em;height:100%}.librevjs-libre-mixblue-skin .librevjs-seek-handle:before{padding-top:.1em}.librevjs-libre-mixblue-skin .librevjs-time-controls{font-size:1em;font-weight:700;line-height:3em}.librevjs-libre-mixblue-skin .librevjs-current-time{float:left}.librevjs-libre-mixblue-skin .librevjs-duration{float:left}.librevjs-libre-mixblue-skin .librevjs-remaining-time{display:none;float:left}.librevjs-libre-mixblue-skin .librevjs-fullscreen-control{width:3.8em;cursor:pointer;float:right}.librevjs-libre-mixblue-skin .librevjs-fullscreen-control:before{content:"\e000"}.librevjs-libre-mixblue-skin.librevjs-fullscreen .librevjs-fullscreen-control:before{content:"\e00b"}.librevjs-libre-mixblue-skin .librevjs-big-play-button{left:50%;margin-left:-1.85em;top:50%;margin-top:-1.3em;font-size:2em;display:block;z-index:2;position:absolute;width:3.8em;height:2.6em;text-align:center;vertical-align:middle;cursor:pointer;opacity:1;background-color:#232323;background-color:rgba(35,35,35,0.8);border:0 solid;-webkit-border-radius:.4em;-moz-border-radius:.4em;border-radius:.4em;-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.librevjs-libre-mixblue-skin.librevjs-controls-disabled .librevjs-big-play-button{display:none}.librevjs-libre-mixblue-skin.librevjs-has-started .librevjs-big-play-button{display:none}.librevjs-libre-mixblue-skin.librevjs-using-native-controls .librevjs-big-play-button{display:none}.librevjs-libre-mixblue-skin:hover .librevjs-big-play-button,.librevjs-libre-mixblue-skin .librevjs-big-play-button:focus{outline:0;cursor:pointer;background-color:#2196f3;color:#fff}.librevjs-libre-mixblue-skin .librevjs-big-play-button:before{content:"\e001";font-family:LibreVideoJS;line-height:2.6em;text-shadow:.05em .05em .1em #000;text-align:center;position:absolute;left:0;width:100%;height:100%}.librevjs-libre-mixblue-skin .librevjs-menu-button{float:right;cursor:pointer}.librevjs-libre-mixblue-skin .librevjs-menu{display:none;position:absolute;bottom:0;left:0;width:0;height:0;margin-bottom:3em;border-left:2em solid transparent;border-right:2em solid transparent;border-top:1.55em solid #000;border-top-color:rgba(7,40,50,.5)}.librevjs-libre-mixblue-skin .librevjs-menu-button .librevjs-menu .librevjs-menu-content{display:block;padding:0;margin:0;position:absolute;width:10em;bottom:1.5em;max-height:15em;overflow:auto;left:-5em;background-color:#07141e;background-color:rgba(7,20,30,.7);-webkit-box-shadow:-.2em -.2em .3em rgba(255,255,255,.2);-moz-box-shadow:-.2em -.2em .3em rgba(255,255,255,.2);box-shadow:-.2em -.2em .3em rgba(255,255,255,.2)}.librevjs-libre-mixblue-skin .librevjs-menu-button:hover .librevjs-menu{display:block}.librevjs-libre-mixblue-skin .librevjs-menu-button ul li{list-style:none;margin:0;padding:.3em 0;line-height:1.4em;font-size:1.2em;text-align:center;text-transform:lowercase;color:#ccc}.librevjs-libre-mixblue-skin .librevjs-menu-button ul li.librevjs-selected{color:#0b152a;background-color:#2196f4}.librevjs-libre-mixblue-skin .librevjs-menu-button ul li:focus,.librevjs-libre-mixblue-skin .librevjs-menu-button ul li:hover,.librevjs-libre-mixblue-skin .librevjs-menu-button ul li.librevjs-selected:focus,.librevjs-libre-mixblue-skin .librevjs-menu-button ul li.librevjs-selected:hover{outline:0;color:#0b152a;background-color:#2196f3}.librevjs-libre-mixblue-skin .librevjs-menu-button ul li.librevjs-menu-title{text-align:center;text-transform:uppercase;font-size:1em;line-height:2em;padding:0;margin:0 0 .3em;font-weight:700;cursor:default}.librevjs-libre-mixblue-skin .librevjs-subtitles-button:before{content:"\e00c"}.librevjs-libre-mixblue-skin .librevjs-captions-button:before{content:"\e008"}.librevjs-libre-mixblue-skin .librevjs-captions-button:focus .librevjs-control-content:before,.librevjs-libre-mixblue-skin .librevjs-captions-button:hover .librevjs-control-content:before{-webkit-box-shadow:0 0 1em #fff;-moz-box-shadow:0 0 1em #fff;box-shadow:0 0 1em #fff}.librevjs-libre-mixblue-skin .librevjs-hidden{display:none}.librevjs-libre-mixblue-skin ul li.librevjs-menu-title.librevjs-res-menu-title{color:#2196f4;background-color:inherit}.librevjs-libre-mixblue-skin ul li.librevjs-menu-title.librevjs-res-menu-title:hover{color:#0b89ed;background-color:inherit}@media screen and (max-width:400px){.librevjs-libre-mixblue-skin .librevjs-big-play-button{font-size:2em}}@media screen and (max-width:150px){.librevjs-libre-mixblue-skin .librevjs-big-play-button{font-size:1.8em}}@media screen and (max-width:90px){.librevjs-libre-mixblue-skin .librevjs-big-play-button{font-size:1.4em}}.librevjs-libre-mixgrey-skin{color:#ccc;background-color:inherit}.librevjs-libre-mixgrey-skin .librevjs-slider{outline:0;position:relative;cursor:pointer;padding:0;background-color:#000;background-color:rgba(0,0,0,0.5)}.librevjs-libre-mixgrey-skin .librevjs-slider:focus{-webkit-box-shadow:0 0 2em #fff;-moz-box-shadow:0 0 2em #fff;box-shadow:0 0 2em #fff}.librevjs-libre-mixgrey-skin .librevjs-slider-handle{width:0;height:0}.librevjs-libre-mixgrey-skin .librevjs-slider-handle:before{text-shadow:0 0 1em #fff;position:absolute;top:0;left:0}.librevjs-libre-mixgrey-skin .librevjs-control-bar{display:none;position:absolute;bottom:0;left:0;right:0;height:3.0em;background-color:#232323;background-color:rgba(35,35,35,0.8)}.librevjs-libre-mixgrey-skin.librevjs-has-started .librevjs-control-bar{display:block;visibility:visible;opacity:1;-webkit-transition:visibility .1s,opacity .1s;-moz-transition:visibility .1s,opacity .1s;-o-transition:visibility .1s,opacity .1s;transition:visibility .1s,opacity .1s}.librevjs-libre-mixgrey-skin.librevjs-has-started.librevjs-user-inactive.librevjs-playing .librevjs-control-bar{display:block;visibility:hidden;opacity:0;-webkit-transition:visibility 1s,opacity 1s;-moz-transition:visibility 1s,opacity 1s;-o-transition:visibility 1s,opacity 1s;transition:visibility 1s,opacity 1s}.librevjs-libre-mixgrey-skin.librevjs-controls-disabled .librevjs-control-bar{display:none}.librevjs-libre-mixgrey-skin.librevjs-using-native-controls .librevjs-control-bar{display:none}@media \0screen{.librevjs-libre-mixgrey-skin.librevjs-user-inactive.librevjs-playing .librevjs-control-bar:before{content:""}}.librevjs-libre-mixgrey-skin .librevjs-control{outline:0;position:relative;float:left;text-align:center;margin:0;padding:0;height:3em;width:4em}.librevjs-libre-mixgrey-skin .librevjs-control:before{font-family:LibreVideoJS;font-size:1.5em;line-height:2;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;text-shadow:1px 1px 1px rgba(0,0,0,.5)}.librevjs-libre-mixgrey-skin .librevjs-control:focus:before,.librevjs-libre-mixgrey-skin .librevjs-control:hover:before{color:#9e9e9e}.librevjs-libre-mixgrey-skin .librevjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.librevjs-libre-mixgrey-skin .librevjs-play-control{width:5em;cursor:pointer;color:#9e9e9e}.librevjs-libre-mixgrey-skin .librevjs-play-control:before{content:"\e001"}.librevjs-libre-mixgrey-skin .librevjs-play-control:hover:before{color:#7c7c7c}.librevjs-libre-mixgrey-skin.librevjs-playing .librevjs-play-control:before{content:"\e002"}.librevjs-libre-mixgrey-skin .librevjs-mute-control,.librevjs-libre-mixgrey-skin .librevjs-volume-menu-button{cursor:pointer;float:right}.librevjs-libre-mixgrey-skin .librevjs-mute-control:before,.librevjs-libre-mixgrey-skin .librevjs-volume-menu-button:before{content:"\e006"}.librevjs-libre-mixgrey-skin .librevjs-mute-control.librevjs-vol-0:before,.librevjs-libre-mixgrey-skin .librevjs-volume-menu-button.librevjs-vol-0:before{content:"\e003"}.librevjs-libre-mixgrey-skin .librevjs-mute-control.librevjs-vol-1:before,.librevjs-libre-mixgrey-skin .librevjs-volume-menu-button.librevjs-vol-1:before{content:"\e004"}.librevjs-libre-mixgrey-skin .librevjs-mute-control.librevjs-vol-2:before,.librevjs-libre-mixgrey-skin .librevjs-volume-menu-button.librevjs-vol-2:before{content:"\e005"}.librevjs-libre-mixgrey-skin .librevjs-volume-control{width:5em;float:right}.librevjs-libre-mixgrey-skin .librevjs-volume-bar{width:5em;height:.6em;margin:1.1em auto 0}.librevjs-libre-mixgrey-skin .librevjs-volume-menu-button .librevjs-menu-content{height:2.9em}.librevjs-libre-mixgrey-skin .librevjs-volume-level{position:absolute;top:0;left:0;height:.5em;width:100%;background:#9e9e9e url() -50% 0 repeat}.librevjs-libre-mixgrey-skin .librevjs-volume-bar .librevjs-volume-handle{width:.5em;height:.5em}.librevjs-libre-mixgrey-skin .librevjs-volume-handle:before{font-size:.9em;top:-.2em;left:-.2em;width:1em;height:1em}.librevjs-libre-mixgrey-skin .librevjs-volume-menu-button .librevjs-menu .librevjs-menu-content{width:6em;left:-4em}.librevjs-libre-mixgrey-skin .librevjs-progress-control{position:absolute;left:0;right:0;width:auto;font-size:.3em;height:1em;top:-1em;-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.librevjs-libre-mixgrey-skin:hover .librevjs-progress-control{font-size:.9em;-webkit-transition:all .2s;-moz-transition:all .2s;-o-transition:all .2s;transition:all .2s}.librevjs-libre-mixgrey-skin .librevjs-progress-holder{height:100%}.librevjs-libre-mixgrey-skin .librevjs-progress-holder .librevjs-play-progress,.librevjs-libre-mixgrey-skin .librevjs-progress-holder .librevjs-load-progress{position:absolute;display:block;height:100%;margin:0;padding:0;left:0;top:0}.librevjs-libre-mixgrey-skin .librevjs-play-progress{background:#9e9e9e url() -50% 0 repeat}.librevjs-libre-mixgrey-skin .librevjs-load-progress{background:#646464;background:rgba(255,255,255,.4)}.librevjs-libre-mixgrey-skin .librevjs-seek-handle{width:1.5em;height:100%}.librevjs-libre-mixgrey-skin .librevjs-seek-handle:before{padding-top:.1em}.librevjs-libre-mixgrey-skin .librevjs-time-controls{font-size:1em;font-weight:700;line-height:3em}.librevjs-libre-mixgrey-skin .librevjs-current-time{float:left}.librevjs-libre-mixgrey-skin .librevjs-duration{float:left}.librevjs-libre-mixgrey-skin .librevjs-remaining-time{display:none;float:left}.librevjs-libre-mixgrey-skin .librevjs-fullscreen-control{width:3.8em;cursor:pointer;float:right}.librevjs-libre-mixgrey-skin .librevjs-fullscreen-control:before{content:"\e000"}.librevjs-libre-mixgrey-skin.librevjs-fullscreen .librevjs-fullscreen-control:before{content:"\e00b"}.librevjs-libre-mixgrey-skin .librevjs-big-play-button{left:50%;margin-left:-1.85em;top:50%;margin-top:-1.3em;font-size:2em;display:block;z-index:2;position:absolute;width:3.8em;height:2.6em;text-align:center;vertical-align:middle;cursor:pointer;opacity:1;background-color:#232323;background-color:rgba(35,35,35,0.8);border:0 solid;-webkit-border-radius:.4em;-moz-border-radius:.4em;border-radius:.4em;-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.librevjs-libre-mixgrey-skin.librevjs-controls-disabled .librevjs-big-play-button{display:none}.librevjs-libre-mixgrey-skin.librevjs-has-started .librevjs-big-play-button{display:none}.librevjs-libre-mixgrey-skin.librevjs-using-native-controls .librevjs-big-play-button{display:none}.librevjs-libre-mixgrey-skin:hover .librevjs-big-play-button,.librevjs-libre-mixgrey-skin .librevjs-big-play-button:focus{outline:0;cursor:pointer;background-color:#737373;color:#fff}.librevjs-libre-mixgrey-skin .librevjs-big-play-button:before{content:"\e001";font-family:LibreVideoJS;line-height:2.6em;text-shadow:.05em .05em .1em #000;text-align:center;position:absolute;left:0;width:100%;height:100%}.librevjs-libre-mixgrey-skin .librevjs-menu-button{float:right;cursor:pointer}.librevjs-libre-mixgrey-skin .librevjs-menu{display:none;position:absolute;bottom:0;left:0;width:0;height:0;margin-bottom:3em;border-left:2em solid transparent;border-right:2em solid transparent;border-top:1.55em solid #000;border-top-color:rgba(7,40,50,.5)}.librevjs-libre-mixgrey-skin .librevjs-menu-button .librevjs-menu .librevjs-menu-content{display:block;padding:0;margin:0;position:absolute;width:10em;bottom:1.5em;max-height:15em;overflow:auto;left:-5em;background-color:#07141e;background-color:rgba(7,20,30,.7);-webkit-box-shadow:-.2em -.2em .3em rgba(255,255,255,.2);-moz-box-shadow:-.2em -.2em .3em rgba(255,255,255,.2);box-shadow:-.2em -.2em .3em rgba(255,255,255,.2)}.librevjs-libre-mixgrey-skin .librevjs-menu-button:hover .librevjs-menu{display:block}.librevjs-libre-mixgrey-skin .librevjs-menu-button ul li{list-style:none;margin:0;padding:.3em 0;line-height:1.4em;font-size:1.2em;text-align:center;text-transform:lowercase;color:#ccc}.librevjs-libre-mixgrey-skin .librevjs-menu-button ul li.librevjs-selected{color:#fff;background-color:#9e9e9e}.librevjs-libre-mixgrey-skin .librevjs-menu-button ul li:focus,.librevjs-libre-mixgrey-skin .librevjs-menu-button ul li:hover,.librevjs-libre-mixgrey-skin .librevjs-menu-button ul li.librevjs-selected:focus,.librevjs-libre-mixgrey-skin .librevjs-menu-button ul li.librevjs-selected:hover{outline:0;color:#fff;background-color:#9e9e9e}.librevjs-libre-mixgrey-skin .librevjs-menu-button ul li.librevjs-menu-title{text-align:center;text-transform:uppercase;font-size:1em;line-height:2em;padding:0;margin:0 0 .3em;font-weight:700;cursor:default}.librevjs-libre-mixgrey-skin .librevjs-subtitles-button:before{content:"\e00c"}.librevjs-libre-mixgrey-skin .librevjs-captions-button:before{content:"\e008"}.librevjs-libre-mixgrey-skin .librevjs-captions-button:focus .librevjs-control-content:before,.librevjs-libre-mixgrey-skin .librevjs-captions-button:hover .librevjs-control-content:before{-webkit-box-shadow:0 0 1em #fff;-moz-box-shadow:0 0 1em #fff;box-shadow:0 0 1em #fff}.librevjs-libre-mixgrey-skin .librevjs-hidden{display:none}.librevjs-libre-mixgrey-skin ul li.librevjs-menu-title.librevjs-res-menu-title{color:#737373;background-color:inherit}.librevjs-libre-mixgrey-skin ul li.librevjs-menu-title.librevjs-res-menu-title:hover{color:#9e9e9e;background-color:inherit}@media screen and (max-width:400px){.librevjs-libre-mixgrey-skin .librevjs-big-play-button{font-size:2em}}@media screen and (max-width:150px){.librevjs-libre-mixgrey-skin .librevjs-big-play-button{font-size:1.8em}}@media screen and (max-width:90px){.librevjs-libre-mixgrey-skin .librevjs-big-play-button{font-size:1.4em}}.librevjs-libre-mixpurple-skin{color:#ccc;background-color:inherit}.librevjs-libre-mixpurple-skin .librevjs-slider{outline:0;position:relative;cursor:pointer;padding:0;background-color:#000;background-color:rgba(0,0,0,0.5)}.librevjs-libre-mixpurple-skin .librevjs-slider:focus{-webkit-box-shadow:0 0 2em #fff;-moz-box-shadow:0 0 2em #fff;box-shadow:0 0 2em #fff}.librevjs-libre-mixpurple-skin .librevjs-slider-handle{width:0;height:0}.librevjs-libre-mixpurple-skin .librevjs-slider-handle:before{text-shadow:0 0 1em #fff;position:absolute;top:0;left:0}.librevjs-libre-mixpurple-skin .librevjs-control-bar{display:none;position:absolute;bottom:0;left:0;right:0;height:3.0em;background-color:#232323;background-color:rgba(35,35,35,0.8)}.librevjs-libre-mixpurple-skin.librevjs-has-started .librevjs-control-bar{display:block;visibility:visible;opacity:1;-webkit-transition:visibility .1s,opacity .1s;-moz-transition:visibility .1s,opacity .1s;-o-transition:visibility .1s,opacity .1s;transition:visibility .1s,opacity .1s}.librevjs-libre-mixpurple-skin.librevjs-has-started.librevjs-user-inactive.librevjs-playing .librevjs-control-bar{display:block;visibility:hidden;opacity:0;-webkit-transition:visibility 1s,opacity 1s;-moz-transition:visibility 1s,opacity 1s;-o-transition:visibility 1s,opacity 1s;transition:visibility 1s,opacity 1s}.librevjs-libre-mixpurple-skin.librevjs-controls-disabled .librevjs-control-bar{display:none}.librevjs-libre-mixpurple-skin.librevjs-using-native-controls .librevjs-control-bar{display:none}@media \0screen{.librevjs-libre-mixpurple-skin.librevjs-user-inactive.librevjs-playing .librevjs-control-bar:before{content:""}}.librevjs-libre-mixpurple-skin .librevjs-control{outline:0;position:relative;float:left;text-align:center;margin:0;padding:0;height:3em;width:4em}.librevjs-libre-mixpurple-skin .librevjs-control:before{font-family:LibreVideoJS;font-size:1.5em;line-height:2;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;text-shadow:1px 1px 1px rgba(0,0,0,.5)}.librevjs-libre-mixpurple-skin .librevjs-control:focus:before,.librevjs-libre-mixpurple-skin .librevjs-control:hover:before{color:#9c27b0}.librevjs-libre-mixpurple-skin .librevjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.librevjs-libre-mixpurple-skin .librevjs-play-control{width:5em;cursor:pointer;color:#9c27b0}.librevjs-libre-mixpurple-skin .librevjs-play-control:before{content:"\e001"}.librevjs-libre-mixpurple-skin .librevjs-play-control:hover:before{color:#8e44ad}.librevjs-libre-mixpurple-skin.librevjs-playing .librevjs-play-control:before{content:"\e002"}.librevjs-libre-mixpurple-skin .librevjs-mute-control,.librevjs-libre-mixpurple-skin .librevjs-volume-menu-button{cursor:pointer;float:right}.librevjs-libre-mixpurple-skin .librevjs-mute-control:before,.librevjs-libre-mixpurple-skin .librevjs-volume-menu-button:before{content:"\e006"}.librevjs-libre-mixpurple-skin .librevjs-mute-control.librevjs-vol-0:before,.librevjs-libre-mixpurple-skin .librevjs-volume-menu-button.librevjs-vol-0:before{content:"\e003"}.librevjs-libre-mixpurple-skin .librevjs-mute-control.librevjs-vol-1:before,.librevjs-libre-mixpurple-skin .librevjs-volume-menu-button.librevjs-vol-1:before{content:"\e004"}.librevjs-libre-mixpurple-skin .librevjs-mute-control.librevjs-vol-2:before,.librevjs-libre-mixpurple-skin .librevjs-volume-menu-button.librevjs-vol-2:before{content:"\e005"}.librevjs-libre-mixpurple-skin .librevjs-volume-control{width:5em;float:right}.librevjs-libre-mixpurple-skin .librevjs-volume-bar{width:5em;height:.6em;margin:1.1em auto 0}.librevjs-libre-mixpurple-skin .librevjs-volume-menu-button .librevjs-menu-content{height:2.9em}.librevjs-libre-mixpurple-skin .librevjs-volume-level{position:absolute;top:0;left:0;height:.5em;width:100%;background:#9c27b0 url() -50% 0 repeat}.librevjs-libre-mixpurple-skin .librevjs-volume-bar .librevjs-volume-handle{width:.5em;height:.5em}.librevjs-libre-mixpurple-skin .librevjs-volume-handle:before{font-size:.9em;top:-.2em;left:-.2em;width:1em;height:1em}.librevjs-libre-mixpurple-skin .librevjs-volume-menu-button .librevjs-menu .librevjs-menu-content{width:6em;left:-4em}.librevjs-libre-mixpurple-skin .librevjs-progress-control{position:absolute;left:0;right:0;width:auto;font-size:.3em;height:1em;top:-1em;-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.librevjs-libre-mixpurple-skin:hover .librevjs-progress-control{font-size:.9em;-webkit-transition:all .2s;-moz-transition:all .2s;-o-transition:all .2s;transition:all .2s}.librevjs-libre-mixpurple-skin .librevjs-progress-holder{height:100%}.librevjs-libre-mixpurple-skin .librevjs-progress-holder .librevjs-play-progress,.librevjs-libre-mixpurple-skin .librevjs-progress-holder .librevjs-load-progress{position:absolute;display:block;height:100%;margin:0;padding:0;left:0;top:0}.librevjs-libre-mixpurple-skin .librevjs-play-progress{background:#9c27b0 url() -50% 0 repeat}.librevjs-libre-mixpurple-skin .librevjs-load-progress{background:#646464;background:rgba(255,255,255,.4)}.librevjs-libre-mixpurple-skin .librevjs-seek-handle{width:1.5em;height:100%}.librevjs-libre-mixpurple-skin .librevjs-seek-handle:before{padding-top:.1em}.librevjs-libre-mixpurple-skin .librevjs-time-controls{font-size:1em;font-weight:700;line-height:3em}.librevjs-libre-mixpurple-skin .librevjs-current-time{float:left}.librevjs-libre-mixpurple-skin .librevjs-duration{float:left}.librevjs-libre-mixpurple-skin .librevjs-remaining-time{display:none;float:left}.librevjs-libre-mixpurple-skin .librevjs-fullscreen-control{width:3.8em;cursor:pointer;float:right}.librevjs-libre-mixpurple-skin .librevjs-fullscreen-control:before{content:"\e000"}.librevjs-libre-mixpurple-skin.librevjs-fullscreen .librevjs-fullscreen-control:before{content:"\e00b"}.librevjs-libre-mixpurple-skin .librevjs-big-play-button{left:50%;margin-left:-1.85em;top:50%;margin-top:-1.3em;font-size:2em;display:block;z-index:2;position:absolute;width:3.8em;height:2.6em;text-align:center;vertical-align:middle;cursor:pointer;opacity:1;background-color:#232323;background-color:rgba(35,35,35,0.8);border:0 solid;-webkit-border-radius:.4em;-moz-border-radius:.4em;border-radius:.4em;-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.librevjs-libre-mixpurple-skin.librevjs-controls-disabled .librevjs-big-play-button{display:none}.librevjs-libre-mixpurple-skin.librevjs-has-started .librevjs-big-play-button{display:none}.librevjs-libre-mixpurple-skin.librevjs-using-native-controls .librevjs-big-play-button{display:none}.librevjs-libre-mixpurple-skin:hover .librevjs-big-play-button,.librevjs-libre-mixpurple-skin .librevjs-big-play-button:focus{outline:0;cursor:pointer;background-color:#8e44ad;color:#fff}.librevjs-libre-mixpurple-skin .librevjs-big-play-button:before{content:"\e001";font-family:LibreVideoJS;line-height:2.6em;text-shadow:.05em .05em .1em #000;text-align:center;position:absolute;left:0;width:100%;height:100%}.librevjs-libre-mixpurple-skin .librevjs-menu-button{float:right;cursor:pointer}.librevjs-libre-mixpurple-skin .librevjs-menu{display:none;position:absolute;bottom:0;left:0;width:0;height:0;margin-bottom:3em;border-left:2em solid transparent;border-right:2em solid transparent;border-top:1.55em solid #000;border-top-color:rgba(7,40,50,.5)}.librevjs-libre-mixpurple-skin .librevjs-menu-button .librevjs-menu .librevjs-menu-content{display:block;padding:0;margin:0;position:absolute;width:10em;bottom:1.5em;max-height:15em;overflow:auto;left:-5em;background-color:#07141e;background-color:rgba(7,20,30,.7);-webkit-box-shadow:-.2em -.2em .3em rgba(255,255,255,.2);-moz-box-shadow:-.2em -.2em .3em rgba(255,255,255,.2);box-shadow:-.2em -.2em .3em rgba(255,255,255,.2)}.librevjs-libre-mixpurple-skin .librevjs-menu-button:hover .librevjs-menu{display:block}.librevjs-libre-mixpurple-skin .librevjs-menu-button ul li{list-style:none;margin:0;padding:.3em 0;line-height:1.4em;font-size:1.2em;text-align:center;text-transform:lowercase;color:#ccc}.librevjs-libre-mixpurple-skin .librevjs-menu-button ul li.librevjs-selected{color:#fff;background-color:#9c27b0}.librevjs-libre-mixpurple-skin .librevjs-menu-button ul li:focus,.librevjs-libre-mixpurple-skin .librevjs-menu-button ul li:hover,.librevjs-libre-mixpurple-skin .librevjs-menu-button ul li.librevjs-selected:focus,.librevjs-libre-mixpurple-skin .librevjs-menu-button ul li.librevjs-selected:hover{outline:0;color:#fff;background-color:#9c27b0}.librevjs-libre-mixpurple-skin .librevjs-menu-button ul li.librevjs-menu-title{text-align:center;text-transform:uppercase;font-size:1em;line-height:2em;padding:0;margin:0 0 .3em;font-weight:700;cursor:default}.librevjs-libre-mixpurple-skin .librevjs-subtitles-button:before{content:"\e00c"}.librevjs-libre-mixpurple-skin .librevjs-captions-button:before{content:"\e008"}.librevjs-libre-mixpurple-skin .librevjs-captions-button:focus .librevjs-control-content:before,.librevjs-libre-mixpurple-skin .librevjs-captions-button:hover .librevjs-control-content:before{-webkit-box-shadow:0 0 1em #fff;-moz-box-shadow:0 0 1em #fff;box-shadow:0 0 1em #fff}.librevjs-libre-mixpurple-skin .librevjs-hidden{display:none}.librevjs-libre-mixpurple-skin ul li.librevjs-menu-title.librevjs-res-menu-title{color:#9c27b0;background-color:inherit}.librevjs-libre-mixpurple-skin ul li.librevjs-menu-title.librevjs-res-menu-title:hover{color:#8e44ad;background-color:inherit}@media screen and (max-width:400px){.librevjs-libre-mixpurple-skin .librevjs-big-play-button{font-size:2em}}@media screen and (max-width:150px){.librevjs-libre-mixpurple-skin .librevjs-big-play-button{font-size:1.8em}}@media screen and (max-width:90px){.librevjs-libre-mixpurple-skin .librevjs-big-play-button{font-size:1.4em}}.librevjs-libre-mixred-skin{color:#ccc;background-color:inherit}.librevjs-libre-mixred-skin .librevjs-slider{outline:0;position:relative;cursor:pointer;padding:0;background-color:#000;background-color:rgba(0,0,0,0.5)}.librevjs-libre-mixred-skin .librevjs-slider:focus{-webkit-box-shadow:0 0 2em #fff;-moz-box-shadow:0 0 2em #fff;box-shadow:0 0 2em #fff}.librevjs-libre-mixred-skin .librevjs-slider-handle{width:0;height:0}.librevjs-libre-mixred-skin .librevjs-slider-handle:before{text-shadow:0 0 1em #fff;position:absolute;top:0;left:0}.librevjs-libre-mixred-skin .librevjs-control-bar{display:none;position:absolute;bottom:0;left:0;right:0;height:3.0em;background-color:#232323;background-color:rgba(35,35,35,0.8)}.librevjs-libre-mixred-skin.librevjs-has-started .librevjs-control-bar{display:block;visibility:visible;opacity:1;-webkit-transition:visibility .1s,opacity .1s;-moz-transition:visibility .1s,opacity .1s;-o-transition:visibility .1s,opacity .1s;transition:visibility .1s,opacity .1s}.librevjs-libre-mixred-skin.librevjs-has-started.librevjs-user-inactive.librevjs-playing .librevjs-control-bar{display:block;visibility:hidden;opacity:0;-webkit-transition:visibility 1s,opacity 1s;-moz-transition:visibility 1s,opacity 1s;-o-transition:visibility 1s,opacity 1s;transition:visibility 1s,opacity 1s}.librevjs-libre-mixred-skin.librevjs-controls-disabled .librevjs-control-bar{display:none}.librevjs-libre-mixred-skin.librevjs-using-native-controls .librevjs-control-bar{display:none}@media \0screen{.librevjs-libre-mixred-skin.librevjs-user-inactive.librevjs-playing .librevjs-control-bar:before{content:""}}.librevjs-libre-mixred-skin .librevjs-control{outline:0;position:relative;float:left;text-align:center;margin:0;padding:0;height:3em;width:4em}.librevjs-libre-mixred-skin .librevjs-control:before{font-family:LibreVideoJS;font-size:1.5em;line-height:2;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;text-shadow:1px 1px 1px rgba(0,0,0,.5)}.librevjs-libre-mixred-skin .librevjs-control:focus:before,.librevjs-libre-mixred-skin .librevjs-control:hover:before{color:#f44336}.librevjs-libre-mixred-skin .librevjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.librevjs-libre-mixred-skin .librevjs-play-control{width:5em;cursor:pointer;color:#f44336}.librevjs-libre-mixred-skin .librevjs-play-control:before{content:"\e001"}.librevjs-libre-mixred-skin .librevjs-play-control:hover:before{color:#f22e1f}.librevjs-libre-mixred-skin.librevjs-playing .librevjs-play-control:before{content:"\e002"}.librevjs-libre-mixred-skin .librevjs-mute-control,.librevjs-libre-mixred-skin .librevjs-volume-menu-button{cursor:pointer;float:right}.librevjs-libre-mixred-skin .librevjs-mute-control:before,.librevjs-libre-mixred-skin .librevjs-volume-menu-button:before{content:"\e006"}.librevjs-libre-mixred-skin .librevjs-mute-control.librevjs-vol-0:before,.librevjs-libre-mixred-skin .librevjs-volume-menu-button.librevjs-vol-0:before{content:"\e003"}.librevjs-libre-mixred-skin .librevjs-mute-control.librevjs-vol-1:before,.librevjs-libre-mixred-skin .librevjs-volume-menu-button.librevjs-vol-1:before{content:"\e004"}.librevjs-libre-mixred-skin .librevjs-mute-control.librevjs-vol-2:before,.librevjs-libre-mixred-skin .librevjs-volume-menu-button.librevjs-vol-2:before{content:"\e005"}.librevjs-libre-mixred-skin .librevjs-volume-control{width:5em;float:right}.librevjs-libre-mixred-skin .librevjs-volume-bar{width:5em;height:.6em;margin:1.1em auto 0}.librevjs-libre-mixred-skin .librevjs-volume-menu-button .librevjs-menu-content{height:2.9em}.librevjs-libre-mixred-skin .librevjs-volume-level{position:absolute;top:0;left:0;height:.5em;width:100%;background:#f44336 url() -50% 0 repeat}.librevjs-libre-mixred-skin .librevjs-volume-bar .librevjs-volume-handle{width:.5em;height:.5em}.librevjs-libre-mixred-skin .librevjs-volume-handle:before{font-size:.9em;top:-.2em;left:-.2em;width:1em;height:1em}.librevjs-libre-mixred-skin .librevjs-volume-menu-button .librevjs-menu .librevjs-menu-content{width:6em;left:-4em}.librevjs-libre-mixred-skin .librevjs-progress-control{position:absolute;left:0;right:0;width:auto;font-size:.3em;height:1em;top:-1em;-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.librevjs-libre-mixred-skin:hover .librevjs-progress-control{font-size:.9em;-webkit-transition:all .2s;-moz-transition:all .2s;-o-transition:all .2s;transition:all .2s}.librevjs-libre-mixred-skin .librevjs-progress-holder{height:100%}.librevjs-libre-mixred-skin .librevjs-progress-holder .librevjs-play-progress,.librevjs-libre-mixred-skin .librevjs-progress-holder .librevjs-load-progress{position:absolute;display:block;height:100%;margin:0;padding:0;left:0;top:0}.librevjs-libre-mixred-skin .librevjs-play-progress{background:#f44336 url() -50% 0 repeat}.librevjs-libre-mixred-skin .librevjs-load-progress{background:#646464;background:rgba(255,255,255,.4)}.librevjs-libre-mixred-skin .librevjs-seek-handle{width:1.5em;height:100%}.librevjs-libre-mixred-skin .librevjs-seek-handle:before{padding-top:.1em}.librevjs-libre-mixred-skin .librevjs-time-controls{font-size:1em;font-weight:700;line-height:3em}.librevjs-libre-mixred-skin .librevjs-current-time{float:left}.librevjs-libre-mixred-skin .librevjs-duration{float:left}.librevjs-libre-mixred-skin .librevjs-remaining-time{display:none;float:left}.librevjs-libre-mixred-skin .librevjs-fullscreen-control{width:3.8em;cursor:pointer;float:right}.librevjs-libre-mixred-skin .librevjs-fullscreen-control:before{content:"\e000"}.librevjs-libre-mixred-skin.librevjs-fullscreen .librevjs-fullscreen-control:before{content:"\e00b"}.librevjs-libre-mixred-skin .librevjs-big-play-button{left:50%;margin-left:-1.85em;top:50%;margin-top:-1.3em;font-size:2em;display:block;z-index:2;position:absolute;width:3.8em;height:2.6em;text-align:center;vertical-align:middle;cursor:pointer;opacity:1;background-color:#232323;background-color:rgba(35,35,35,0.8);border:0 solid;-webkit-border-radius:.4em;-moz-border-radius:.4em;border-radius:.4em;-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.librevjs-libre-mixred-skin.librevjs-controls-disabled .librevjs-big-play-button{display:none}.librevjs-libre-mixred-skin.librevjs-has-started .librevjs-big-play-button{display:none}.librevjs-libre-mixred-skin.librevjs-using-native-controls .librevjs-big-play-button{display:none}.librevjs-libre-mixred-skin:hover .librevjs-big-play-button,.librevjs-libre-mixred-skin .librevjs-big-play-button:focus{outline:0;cursor:pointer;background-color:#f12b24;color:#fff}.librevjs-libre-mixred-skin .librevjs-big-play-button:before{content:"\e001";font-family:LibreVideoJS;line-height:2.6em;text-shadow:.05em .05em .1em #000;text-align:center;position:absolute;left:0;width:100%;height:100%}.librevjs-libre-mixred-skin .librevjs-menu-button{float:right;cursor:pointer}.librevjs-libre-mixred-skin .librevjs-menu{display:none;position:absolute;bottom:0;left:0;width:0;height:0;margin-bottom:3em;border-left:2em solid transparent;border-right:2em solid transparent;border-top:1.55em solid #000;border-top-color:rgba(7,40,50,.5)}.librevjs-libre-mixred-skin .librevjs-menu-button .librevjs-menu .librevjs-menu-content{display:block;padding:0;margin:0;position:absolute;width:10em;bottom:1.5em;max-height:15em;overflow:auto;left:-5em;background-color:#07141e;background-color:rgba(7,20,30,.7);-webkit-box-shadow:-.2em -.2em .3em rgba(255,255,255,.2);-moz-box-shadow:-.2em -.2em .3em rgba(255,255,255,.2);box-shadow:-.2em -.2em .3em rgba(255,255,255,.2)}.librevjs-libre-mixred-skin .librevjs-menu-button:hover .librevjs-menu{display:block}.librevjs-libre-mixred-skin .librevjs-menu-button ul li{list-style:none;margin:0;padding:.3em 0;line-height:1.4em;font-size:1.2em;text-align:center;text-transform:lowercase;color:#ccc}.librevjs-libre-mixred-skin .librevjs-menu-button ul li.librevjs-selected{color:#fff;background-color:#f44336}.librevjs-libre-mixred-skin .librevjs-menu-button ul li:focus,.librevjs-libre-mixred-skin .librevjs-menu-button ul li:hover,.librevjs-libre-mixred-skin .librevjs-menu-button ul li.librevjs-selected:focus,.librevjs-libre-mixred-skin .librevjs-menu-button ul li.librevjs-selected:hover{outline:0;color:#fff;background-color:#f44336}.librevjs-libre-mixred-skin .librevjs-menu-button ul li.librevjs-menu-title{text-align:center;text-transform:uppercase;font-size:1em;line-height:2em;padding:0;margin:0 0 .3em;font-weight:700;cursor:default}.librevjs-libre-mixred-skin .librevjs-subtitles-button:before{content:"\e00c"}.librevjs-libre-mixred-skin .librevjs-captions-button:before{content:"\e008"}.librevjs-libre-mixred-skin .librevjs-captions-button:focus .librevjs-control-content:before,.librevjs-libre-mixred-skin .librevjs-captions-button:hover .librevjs-control-content:before{-webkit-box-shadow:0 0 1em #fff;-moz-box-shadow:0 0 1em #fff;box-shadow:0 0 1em #fff}.librevjs-libre-mixred-skin .librevjs-hidden{display:none}.librevjs-libre-mixred-skin ul li.librevjs-menu-title.librevjs-res-menu-title{color:#f62c1e;background-color:inherit}.librevjs-libre-mixred-skin ul li.librevjs-menu-title.librevjs-res-menu-title:hover{color:#f44336;background-color:inherit}@media screen and (max-width:400px){.librevjs-libre-mixred-skin .librevjs-big-play-button{font-size:2em}}@media screen and (max-width:150px){.librevjs-libre-mixred-skin .librevjs-big-play-button{font-size:1.8em}}@media screen and (max-width:90px){.librevjs-libre-mixred-skin .librevjs-big-play-button{font-size:1.4em}}.librevjs-libre-mixteal-skin{color:#ccc;background-color:inherit}.librevjs-libre-mixteal-skin .librevjs-slider{outline:0;position:relative;cursor:pointer;padding:0;background-color:#000;background-color:rgba(0,0,0,0.5)}.librevjs-libre-mixteal-skin .librevjs-slider:focus{-webkit-box-shadow:0 0 2em #fff;-moz-box-shadow:0 0 2em #fff;box-shadow:0 0 2em #fff}.librevjs-libre-mixteal-skin .librevjs-slider-handle{width:0;height:0}.librevjs-libre-mixteal-skin .librevjs-slider-handle:before{text-shadow:0 0 1em #fff;position:absolute;top:0;left:0}.librevjs-libre-mixteal-skin .librevjs-control-bar{display:none;position:absolute;bottom:0;left:0;right:0;height:3.0em;background-color:#232323;background-color:rgba(35,35,35,0.8)}.librevjs-libre-mixteal-skin.librevjs-has-started .librevjs-control-bar{display:block;visibility:visible;opacity:1;-webkit-transition:visibility .1s,opacity .1s;-moz-transition:visibility .1s,opacity .1s;-o-transition:visibility .1s,opacity .1s;transition:visibility .1s,opacity .1s}.librevjs-libre-mixteal-skin.librevjs-has-started.librevjs-user-inactive.librevjs-playing .librevjs-control-bar{display:block;visibility:hidden;opacity:0;-webkit-transition:visibility 1s,opacity 1s;-moz-transition:visibility 1s,opacity 1s;-o-transition:visibility 1s,opacity 1s;transition:visibility 1s,opacity 1s}.librevjs-libre-mixteal-skin.librevjs-controls-disabled .librevjs-control-bar{display:none}.librevjs-libre-mixteal-skin.librevjs-using-native-controls .librevjs-control-bar{display:none}@media \0screen{.librevjs-libre-mixteal-skin.librevjs-user-inactive.librevjs-playing .librevjs-control-bar:before{content:""}}.librevjs-libre-mixteal-skin .librevjs-control{outline:0;position:relative;float:left;text-align:center;margin:0;padding:0;height:3em;width:4em}.librevjs-libre-mixteal-skin .librevjs-control:before{font-family:LibreVideoJS;font-size:1.5em;line-height:2;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;text-shadow:1px 1px 1px rgba(0,0,0,.5)}.librevjs-libre-mixteal-skin .librevjs-control:focus:before,.librevjs-libre-mixteal-skin .librevjs-control:hover:before{color:#1de9b6}.librevjs-libre-mixteal-skin .librevjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.librevjs-libre-mixteal-skin .librevjs-play-control{width:5em;cursor:pointer;color:#1de9b6}.librevjs-libre-mixteal-skin .librevjs-play-control:before{content:"\e001"}.librevjs-libre-mixteal-skin .librevjs-play-control:hover:before{color:#007c5d}.librevjs-libre-mixteal-skin.librevjs-playing .librevjs-play-control:before{content:"\e002"}.librevjs-libre-mixteal-skin .librevjs-mute-control,.librevjs-libre-mixteal-skin .librevjs-volume-menu-button{cursor:pointer;float:right}.librevjs-libre-mixteal-skin .librevjs-mute-control:before,.librevjs-libre-mixteal-skin .librevjs-volume-menu-button:before{content:"\e006"}.librevjs-libre-mixteal-skin .librevjs-mute-control.librevjs-vol-0:before,.librevjs-libre-mixteal-skin .librevjs-volume-menu-button.librevjs-vol-0:before{content:"\e003"}.librevjs-libre-mixteal-skin .librevjs-mute-control.librevjs-vol-1:before,.librevjs-libre-mixteal-skin .librevjs-volume-menu-button.librevjs-vol-1:before{content:"\e004"}.librevjs-libre-mixteal-skin .librevjs-mute-control.librevjs-vol-2:before,.librevjs-libre-mixteal-skin .librevjs-volume-menu-button.librevjs-vol-2:before{content:"\e005"}.librevjs-libre-mixteal-skin .librevjs-volume-control{width:5em;float:right}.librevjs-libre-mixteal-skin .librevjs-volume-bar{width:5em;height:.6em;margin:1.1em auto 0}.librevjs-libre-mixteal-skin .librevjs-volume-menu-button .librevjs-menu-content{height:2.9em}.librevjs-libre-mixteal-skin .librevjs-volume-level{position:absolute;top:0;left:0;height:.5em;width:100%;background:#1de9b6 url() -50% 0 repeat}.librevjs-libre-mixteal-skin .librevjs-volume-bar .librevjs-volume-handle{width:.5em;height:.5em}.librevjs-libre-mixteal-skin .librevjs-volume-handle:before{font-size:.9em;top:-.2em;left:-.2em;width:1em;height:1em}.librevjs-libre-mixteal-skin .librevjs-volume-menu-button .librevjs-menu .librevjs-menu-content{width:6em;left:-4em}.librevjs-libre-mixteal-skin .librevjs-progress-control{position:absolute;left:0;right:0;width:auto;font-size:.3em;height:1em;top:-1em;-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.librevjs-libre-mixteal-skin:hover .librevjs-progress-control{font-size:.9em;-webkit-transition:all .2s;-moz-transition:all .2s;-o-transition:all .2s;transition:all .2s}.librevjs-libre-mixteal-skin .librevjs-progress-holder{height:100%}.librevjs-libre-mixteal-skin .librevjs-progress-holder .librevjs-play-progress,.librevjs-libre-mixteal-skin .librevjs-progress-holder .librevjs-load-progress{position:absolute;display:block;height:100%;margin:0;padding:0;left:0;top:0}.librevjs-libre-mixteal-skin .librevjs-play-progress{background:#1de9b6 url() -50% 0 repeat}.librevjs-libre-mixteal-skin .librevjs-load-progress{background:#646464;background:rgba(255,255,255,.4)}.librevjs-libre-mixteal-skin .librevjs-seek-handle{width:1.5em;height:100%}.librevjs-libre-mixteal-skin .librevjs-seek-handle:before{padding-top:.1em}.librevjs-libre-mixteal-skin .librevjs-time-controls{font-size:1em;font-weight:700;line-height:3em}.librevjs-libre-mixteal-skin .librevjs-current-time{float:left}.librevjs-libre-mixteal-skin .librevjs-duration{float:left}.librevjs-libre-mixteal-skin .librevjs-remaining-time{display:none;float:left}.librevjs-libre-mixteal-skin .librevjs-fullscreen-control{width:3.8em;cursor:pointer;float:right}.librevjs-libre-mixteal-skin .librevjs-fullscreen-control:before{content:"\e000"}.librevjs-libre-mixteal-skin.librevjs-fullscreen .librevjs-fullscreen-control:before{content:"\e00b"}.librevjs-libre-mixteal-skin .librevjs-big-play-button{left:50%;margin-left:-1.85em;top:50%;margin-top:-1.3em;font-size:2em;display:block;z-index:2;position:absolute;width:3.8em;height:2.6em;text-align:center;vertical-align:middle;cursor:pointer;opacity:1;background-color:#232323;background-color:rgba(35,35,35,0.8);border:0 solid;-webkit-border-radius:.4em;-moz-border-radius:.4em;border-radius:.4em;-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.librevjs-libre-mixteal-skin.librevjs-controls-disabled .librevjs-big-play-button{display:none}.librevjs-libre-mixteal-skin.librevjs-has-started .librevjs-big-play-button{display:none}.librevjs-libre-mixteal-skin.librevjs-using-native-controls .librevjs-big-play-button{display:none}.librevjs-libre-mixteal-skin:hover .librevjs-big-play-button,.librevjs-libre-mixteal-skin .librevjs-big-play-button:focus{outline:0;cursor:pointer;background-color:#1de9b6;color:#fff}.librevjs-libre-mixteal-skin .librevjs-big-play-button:before{content:"\e001";font-family:LibreVideoJS;line-height:2.6em;text-shadow:.05em .05em .1em #000;text-align:center;position:absolute;left:0;width:100%;height:100%}.librevjs-libre-mixteal-skin .librevjs-menu-button{float:right;cursor:pointer}.librevjs-libre-mixteal-skin .librevjs-menu{display:none;position:absolute;bottom:0;left:0;width:0;height:0;margin-bottom:3em;border-left:2em solid transparent;border-right:2em solid transparent;border-top:1.55em solid #000;border-top-color:rgba(7,40,50,.5)}.librevjs-libre-mixteal-skin .librevjs-menu-button .librevjs-menu .librevjs-menu-content{display:block;padding:0;margin:0;position:absolute;width:10em;bottom:1.5em;max-height:15em;overflow:auto;left:-5em;background-color:#07141e;background-color:rgba(7,20,30,.7);-webkit-box-shadow:-.2em -.2em .3em rgba(255,255,255,.2);-moz-box-shadow:-.2em -.2em .3em rgba(255,255,255,.2);box-shadow:-.2em -.2em .3em rgba(255,255,255,.2)}.librevjs-libre-mixteal-skin .librevjs-menu-button:hover .librevjs-menu{display:block}.librevjs-libre-mixteal-skin .librevjs-menu-button ul li{list-style:none;margin:0;padding:.3em 0;line-height:1.4em;font-size:1.2em;text-align:center;text-transform:lowercase;color:#ccc}.librevjs-libre-mixteal-skin .librevjs-menu-button ul li.librevjs-selected{color:#01382f;background-color:#1de9b6}.librevjs-libre-mixteal-skin .librevjs-menu-button ul li:focus,.librevjs-libre-mixteal-skin .librevjs-menu-button ul li:hover,.librevjs-libre-mixteal-skin .librevjs-menu-button ul li.librevjs-selected:focus,.librevjs-libre-mixteal-skin .librevjs-menu-button ul li.librevjs-selected:hover{outline:0;color:#004d40;background-color:#1de9b6}.librevjs-libre-mixteal-skin .librevjs-menu-button ul li.librevjs-menu-title{text-align:center;text-transform:uppercase;font-size:1em;line-height:2em;padding:0;margin:0 0 .3em;font-weight:700;cursor:default}.librevjs-libre-mixteal-skin .librevjs-subtitles-button:before{content:"\e00c"}.librevjs-libre-mixteal-skin .librevjs-captions-button:before{content:"\e008"}.librevjs-libre-mixteal-skin .librevjs-captions-button:focus .librevjs-control-content:before,.librevjs-libre-mixteal-skin .librevjs-captions-button:hover .librevjs-control-content:before{-webkit-box-shadow:0 0 1em #fff;-moz-box-shadow:0 0 1em #fff;box-shadow:0 0 1em #fff}.librevjs-libre-mixteal-skin .librevjs-hidden{display:none}.librevjs-libre-mixteal-skin ul li.librevjs-menu-title.librevjs-res-menu-title{color:#1abb9c;background-color:inherit}.librevjs-libre-mixteal-skin ul li.librevjs-menu-title.librevjs-res-menu-title:hover{color:#1de9b6;background-color:inherit}@media screen and (max-width:400px){.librevjs-libre-mixteal-skin .librevjs-big-play-button{font-size:2em}}@media screen and (max-width:150px){.librevjs-libre-mixteal-skin .librevjs-big-play-button{font-size:1.8em}}@media screen and (max-width:90px){.librevjs-libre-mixteal-skin .librevjs-big-play-button{font-size:1.4em}}.librevjs-libre-mixyellow-skin{color:#ccc;background-color:inherit}.librevjs-libre-mixyellow-skin .librevjs-slider{outline:0;position:relative;cursor:pointer;padding:0;background-color:#000;background-color:rgba(0,0,0,0.5)}.librevjs-libre-mixyellow-skin .librevjs-slider:focus{-webkit-box-shadow:0 0 2em #fff;-moz-box-shadow:0 0 2em #fff;box-shadow:0 0 2em #fff}.librevjs-libre-mixyellow-skin .librevjs-slider-handle{width:0;height:0}.librevjs-libre-mixyellow-skin .librevjs-slider-handle:before{text-shadow:0 0 1em #fff;position:absolute;top:0;left:0}.librevjs-libre-mixyellow-skin .librevjs-control-bar{display:none;position:absolute;bottom:0;left:0;right:0;height:3.0em;background-color:#232323;background-color:rgba(35,35,35,0.8)}.librevjs-libre-mixyellow-skin.librevjs-has-started .librevjs-control-bar{display:block;visibility:visible;opacity:1;-webkit-transition:visibility .1s,opacity .1s;-moz-transition:visibility .1s,opacity .1s;-o-transition:visibility .1s,opacity .1s;transition:visibility .1s,opacity .1s}.librevjs-libre-mixyellow-skin.librevjs-has-started.librevjs-user-inactive.librevjs-playing .librevjs-control-bar{display:block;visibility:hidden;opacity:0;-webkit-transition:visibility 1s,opacity 1s;-moz-transition:visibility 1s,opacity 1s;-o-transition:visibility 1s,opacity 1s;transition:visibility 1s,opacity 1s}.librevjs-libre-mixyellow-skin.librevjs-controls-disabled .librevjs-control-bar{display:none}.librevjs-libre-mixyellow-skin.librevjs-using-native-controls .librevjs-control-bar{display:none}@media \0screen{.librevjs-libre-mixyellow-skin.librevjs-user-inactive.librevjs-playing .librevjs-control-bar:before{content:""}}.librevjs-libre-mixyellow-skin .librevjs-control{outline:0;position:relative;float:left;text-align:center;margin:0;padding:0;height:3em;width:4em}.librevjs-libre-mixyellow-skin .librevjs-control:before{font-family:LibreVideoJS;font-size:1.5em;line-height:2;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;text-shadow:1px 1px 1px rgba(0,0,0,.5)}.librevjs-libre-mixyellow-skin .librevjs-control:focus:before,.librevjs-libre-mixyellow-skin .librevjs-control:hover:before{color:#f1c40f}.librevjs-libre-mixyellow-skin .librevjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.librevjs-libre-mixyellow-skin .librevjs-play-control{width:5em;cursor:pointer;color:#f1c40e}.librevjs-libre-mixyellow-skin .librevjs-play-control:before{content:"\e001"}.librevjs-libre-mixyellow-skin .librevjs-play-control:hover:before{color:#f39c12}.librevjs-libre-mixyellow-skin.librevjs-playing .librevjs-play-control:before{content:"\e002"}.librevjs-libre-mixyellow-skin .librevjs-mute-control,.librevjs-libre-mixyellow-skin .librevjs-volume-menu-button{cursor:pointer;float:right}.librevjs-libre-mixyellow-skin .librevjs-mute-control:before,.librevjs-libre-mixyellow-skin .librevjs-volume-menu-button:before{content:"\e006"}.librevjs-libre-mixyellow-skin .librevjs-mute-control.librevjs-vol-0:before,.librevjs-libre-mixyellow-skin .librevjs-volume-menu-button.librevjs-vol-0:before{content:"\e003"}.librevjs-libre-mixyellow-skin .librevjs-mute-control.librevjs-vol-1:before,.librevjs-libre-mixyellow-skin .librevjs-volume-menu-button.librevjs-vol-1:before{content:"\e004"}.librevjs-libre-mixyellow-skin .librevjs-mute-control.librevjs-vol-2:before,.librevjs-libre-mixyellow-skin .librevjs-volume-menu-button.librevjs-vol-2:before{content:"\e005"}.librevjs-libre-mixyellow-skin .librevjs-volume-control{width:5em;float:right}.librevjs-libre-mixyellow-skin .librevjs-volume-bar{width:5em;height:.6em;margin:1.1em auto 0}.librevjs-libre-mixyellow-skin .librevjs-volume-menu-button .librevjs-menu-content{height:2.9em}.librevjs-libre-mixyellow-skin .librevjs-volume-level{position:absolute;top:0;left:0;height:.5em;width:100%;background:#f1c40f url() -50% 0 repeat}.librevjs-libre-mixyellow-skin .librevjs-volume-bar .librevjs-volume-handle{width:.5em;height:.5em}.librevjs-libre-mixyellow-skin .librevjs-volume-handle:before{font-size:.9em;top:-.2em;left:-.2em;width:1em;height:1em}.librevjs-libre-mixyellow-skin .librevjs-volume-menu-button .librevjs-menu .librevjs-menu-content{width:6em;left:-4em}.librevjs-libre-mixyellow-skin .librevjs-progress-control{position:absolute;left:0;right:0;width:auto;font-size:.3em;height:1em;top:-1em;-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.librevjs-libre-mixyellow-skin:hover .librevjs-progress-control{font-size:.9em;-webkit-transition:all .2s;-moz-transition:all .2s;-o-transition:all .2s;transition:all .2s}.librevjs-libre-mixyellow-skin .librevjs-progress-holder{height:100%}.librevjs-libre-mixyellow-skin .librevjs-progress-holder .librevjs-play-progress,.librevjs-libre-mixyellow-skin .librevjs-progress-holder .librevjs-load-progress{position:absolute;display:block;height:100%;margin:0;padding:0;left:0;top:0}.librevjs-libre-mixyellow-skin .librevjs-play-progress{background:#f1c40f url() -50% 0 repeat}.librevjs-libre-mixyellow-skin .librevjs-load-progress{background:#646464;background:rgba(255,255,255,.4)}.librevjs-libre-mixyellow-skin .librevjs-seek-handle{width:1.5em;height:100%}.librevjs-libre-mixyellow-skin .librevjs-seek-handle:before{padding-top:.1em}.librevjs-libre-mixyellow-skin .librevjs-time-controls{font-size:1em;font-weight:700;line-height:3em}.librevjs-libre-mixyellow-skin .librevjs-current-time{float:left}.librevjs-libre-mixyellow-skin .librevjs-duration{float:left}.librevjs-libre-mixyellow-skin .librevjs-remaining-time{display:none;float:left}.librevjs-libre-mixyellow-skin .librevjs-fullscreen-control{width:3.8em;cursor:pointer;float:right}.librevjs-libre-mixyellow-skin .librevjs-fullscreen-control:before{content:"\e000"}.librevjs-libre-mixyellow-skin.librevjs-fullscreen .librevjs-fullscreen-control:before{content:"\e00b"}.librevjs-libre-mixyellow-skin .librevjs-big-play-button{left:50%;margin-left:-1.85em;top:50%;margin-top:-1.3em;font-size:2em;display:block;z-index:2;position:absolute;width:3.8em;height:2.6em;text-align:center;vertical-align:middle;cursor:pointer;opacity:1;background-color:#232323;background-color:rgba(35,35,35,0.8);border:0 solid;-webkit-border-radius:.4em;-moz-border-radius:.4em;border-radius:.4em;-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.librevjs-libre-mixyellow-skin.librevjs-controls-disabled .librevjs-big-play-button{display:none}.librevjs-libre-mixyellow-skin.librevjs-has-started .librevjs-big-play-button{display:none}.librevjs-libre-mixyellow-skin.librevjs-using-native-controls .librevjs-big-play-button{display:none}.librevjs-libre-mixyellow-skin:hover .librevjs-big-play-button,.librevjs-libre-mixyellow-skin .librevjs-big-play-button:focus{outline:0;cursor:pointer;background-color:#f49c12;color:#fff}.librevjs-libre-mixyellow-skin .librevjs-big-play-button:before{content:"\e001";font-family:LibreVideoJS;line-height:2.6em;text-shadow:.05em .05em .1em #000;text-align:center;position:absolute;left:0;width:100%;height:100%}.librevjs-libre-mixyellow-skin .librevjs-menu-button{float:right;cursor:pointer}.librevjs-libre-mixyellow-skin .librevjs-menu{display:none;position:absolute;bottom:0;left:0;width:0;height:0;margin-bottom:3em;border-left:2em solid transparent;border-right:2em solid transparent;border-top:1.55em solid #000;border-top-color:rgba(7,40,50,.5)}.librevjs-libre-mixyellow-skin .librevjs-menu-button .librevjs-menu .librevjs-menu-content{display:block;padding:0;margin:0;position:absolute;width:10em;bottom:1.5em;max-height:15em;overflow:auto;left:-5em;background-color:#07141e;background-color:rgba(7,20,30,.7);-webkit-box-shadow:-.2em -.2em .3em rgba(255,255,255,.2);-moz-box-shadow:-.2em -.2em .3em rgba(255,255,255,.2);box-shadow:-.2em -.2em .3em rgba(255,255,255,.2)}.librevjs-libre-mixyellow-skin .librevjs-menu-button:hover .librevjs-menu{display:block}.librevjs-libre-mixyellow-skin .librevjs-menu-button ul li{list-style:none;margin:0;padding:.3em 0;line-height:1.4em;font-size:1.2em;text-align:center;text-transform:lowercase;color:#ccc}.librevjs-libre-mixyellow-skin .librevjs-menu-button ul li.librevjs-selected{color:#fff;background-color:#f1c40e}.librevjs-libre-mixyellow-skin .librevjs-menu-button ul li:focus,.librevjs-libre-mixyellow-skin .librevjs-menu-button ul li:hover,.librevjs-libre-mixyellow-skin .librevjs-menu-button ul li.librevjs-selected:focus,.librevjs-libre-mixyellow-skin .librevjs-menu-button ul li.librevjs-selected:hover{outline:0;color:#fff;background-color:#f1c40f}.librevjs-libre-mixyellow-skin .librevjs-menu-button ul li.librevjs-menu-title{text-align:center;text-transform:uppercase;font-size:1em;line-height:2em;padding:0;margin:0 0 .3em;font-weight:700;cursor:default}.librevjs-libre-mixyellow-skin .librevjs-subtitles-button:before{content:"\e00c"}.librevjs-libre-mixyellow-skin .librevjs-captions-button:before{content:"\e008"}.librevjs-libre-mixyellow-skin .librevjs-captions-button:focus .librevjs-control-content:before,.librevjs-libre-mixyellow-skin .librevjs-captions-button:hover .librevjs-control-content:before{-webkit-box-shadow:0 0 1em #fff;-moz-box-shadow:0 0 1em #fff;box-shadow:0 0 1em #fff}.librevjs-libre-mixyellow-skin .librevjs-hidden{display:none}.librevjs-libre-mixyellow-skin ul li.librevjs-menu-title.librevjs-res-menu-title{color:#f1c40f;background-color:inherit}.librevjs-libre-mixyellow-skin ul li.librevjs-menu-title.librevjs-res-menu-title:hover{color:#f39c12;background-color:inherit}@media screen and (max-width:400px){.librevjs-libre-mixyellow-skin .librevjs-big-play-button{font-size:2em}}@media screen and (max-width:150px){.librevjs-libre-mixyellow-skin .librevjs-big-play-button{font-size:1.8em}}@media screen and (max-width:90px){.librevjs-libre-mixyellow-skin .librevjs-big-play-button{font-size:1.4em}}.librevjs-time-divider{float:left;line-height:3em}.librevjs-error .librevjs-big-play-button{display:none}.librevjs-loading-spinner{display:none;position:absolute;top:50%;left:50%;font-size:4em;line-height:1;width:1em;height:1em;margin-left:-.5em;margin-top:-.5em;opacity:.75;-webkit-animation:spin 1.5s infinite linear;-moz-animation:spin 1.5s infinite linear;-o-animation:spin 1.5s infinite linear;animation:spin 1.5s infinite linear}.librevjs-loading-spinner:before{content:"\e01e";font-family:LibreVideoJS;position:absolute;top:0;left:0;width:1em;height:1em;text-align:center;text-shadow:0 0 .1em #000}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.cliplibre-js{background-color:#000;position:relative;padding:0;font-size:10px;vertical-align:middle;font-weight:500;font-style:normal;font-family:Arial,sans-serif;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cliplibre-js .librevjs-tech{position:absolute;top:0;left:0;width:100%;height:100%}.cliplibre-js:-moz-full-screen{position:absolute}body.librevjs-full-window{padding:0;margin:0;height:100%;overflow-y:auto}.cliplibre-js.librevjs-fullscreen{position:fixed;overflow:hidden;z-index:1000;left:0;top:0;bottom:0;right:0;width:100%!important;height:100%!important;position:absolute}.cliplibre-js:-webkit-full-screen{width:100%!important;height:100%!important}.cliplibre-js.librevjs-fullscreen.librevjs-user-inactive{cursor:none}.librevjs-poster{background-repeat:no-repeat;background-position:50% 50%;background-size:contain;cursor:pointer;height:100%;margin:0;padding:0;position:relative;width:100%}.librevjs-poster img{display:block;margin:0 auto;max-height:100%;padding:0;width:100%}.cliplibre-js.librevjs-using-native-controls .librevjs-poster{display:none}.cliplibre-js .librevjs-text-track-display{text-align:center;position:absolute;bottom:4em;left:1em;right:1em}.cliplibre-js .librevjs-text-track{display:none;font-size:1.7em;text-align:center;margin-bottom:.1em;background-color:#000;background-color:rgba(0,0,0,.6)}.cliplibre-js .librevjs-subtitles{color:#fff}.cliplibre-js .librevjs-captions{color:#ffed00;background-color:rgba(2,7,11,0.7)}.librevjs-tt-cue{display:block}.librevjs-lock-showing{display:block!important;opacity:1;visibility:visible}.no_html5{background:black none repeat scroll 0 0;color:white;height:160px;padding:130px 10px 20px;text-align:center}.cliplibre-js-responsive-container.librevjs-hd{padding-top:56.25%}.cliplibre-js-responsive-container.librevjs-sd{padding-top:75%}.cliplibre-js-responsive-container{width:100%;position:relative}.cliplibre-js-responsive-container .cliplibre-js{height:100%!important;width:100%!important;position:absolute;top:0;left:0}@media screen and (max-width:800px){.cliplibre-js .librevjs-text-track{font-size:1.5em;margin-bottom:-0.2em}}@media screen and (max-width:600px){.cliplibre-js .librevjs-text-track{font-size:1.2em}.cliplibre-js .librevjs-text-track-display{bottom:2em}}@media screen and (max-width:413px){.cliplibre-js{font-size:8px}}@media screen and (max-width:400px){.cliplibre-js .librevjs-text-track{font-size:1em}.cliplibre-js .librevjs-text-track-display{bottom:1em}}@media screen and (max-width:335px){.cliplibre-js{font-size:6px}}.librevjs-res-button{font-weight:bold;float:right;line-height:3em}ul li.librevjs-menu-title.librevjs-res-menu-title:hover{cursor:default;background-color:transparent;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.librevjs-res-button .librevjs-control-text{width:auto;height:auto;clip:auto}div.LibreVideoJS{margin-bottom:20px}.librevjs-progress-tip{visibility:hidden;display:block;opacity:.8;padding:5px;font-size:10px;position:absolute;z-index:100000}.librevjs-progress-tip-arrow{background:url(data:image/gif;base64,R0lGODlhCQAJAIABAAAAAAAAACH5BAEAAAEALAAAAAAJAAkAAAIRjAOnwIrcDJxvwkplPtchVQAAOw==) no-repeat top left;bottom:0;left:50%;margin-left:-4px;background-position:bottom left;position:absolute;width:9px;height:5px}.librevjs-progress-tip-inner{border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;padding:5px 8px 4px 8px;background-color:black;color:white;max-width:200px;text-align:center}
\ No newline at end of file @@ -1,15 +1,6 @@ <?php printf(' <footer> - <!--Publicidad--> - <!-- <div class="ad container hidden-xs"> - <div class="row"> - <div class="col-md-12"> - <img src="img/publicidad.jpg" alt="publicidad"> - </div> - </div> - </div> --> - <!----> <div class="menu"> <div class="container"> <div class="row"> diff --git a/functions.php b/functions.php index 523c308..8544cd2 100644 --- a/functions.php +++ b/functions.php @@ -116,4 +116,4 @@ add_filter( 'wp_resource_hints', 'remove_dns_prefetch', 10, 2 ); /* LibreVideoJS ------------------------------------------------------------------------------*/ -include_once 'librevideojs.php'; +include_once 'librevideojs/librevideojs.php'; @@ -91,15 +91,6 @@ printf( printf('</div> </div> </div> - <!--Publicidad--> - <!-- <div class="ad container hidden-xs"> - <div class="row"> - <div class="col-md-12"> - <img src="img/publicidad.jpg" alt="publicidad"> - </div> - </div> - </div> --> - <!----> </header> <div class="container"> <div class="row">'); diff --git a/languages/Lidra.pot b/languages/Lidra.pot index 18e1ed5..8c6c4b0 100644 --- a/languages/Lidra.pot +++ b/languages/Lidra.pot @@ -70,6 +70,6 @@ msgstr "" msgid "you need to specify the src of the video file" msgstr "" -#: librevideojs.php:152 +#: librevideojs.php:151 msgid "Sorry, this video will not work because your web browser does not support HTML5 video. Please, change or update your browser" msgstr "" diff --git a/languages/es_ES.po b/languages/es_ES.po index 14b88a6..9d187dd 100644 --- a/languages/es_ES.po +++ b/languages/es_ES.po @@ -70,6 +70,6 @@ msgstr "Leer más..." msgid "you need to specify the src of the video file" msgstr "es necesario especificar el src del archivo de vídeo" -#: librevideojs.php:152 +#: librevideojs.php:151 msgid "Sorry, this video will not work because your web browser does not support HTML5 video. Please, change or update your browser" msgstr "Lo siento, tu navegador no soporta vídeo en HTML5. Por favor, cambia o actualiza tu navegador web" diff --git a/libre-panel.php b/librevideojs/libre-panel.php index 329d22e..329d22e 100644 --- a/libre-panel.php +++ b/librevideojs/libre-panel.php diff --git a/librevideojs.php b/librevideojs/librevideojs.php index fa62864..cbeb03c 100644 --- a/librevideojs.php +++ b/librevideojs/librevideojs.php @@ -35,7 +35,7 @@ function librevideojs_base(){ global $post, $theme_url; $theme_url = get_bloginfo('template_url', __FILE__); if ( ( is_author() || is_page() || is_single() ) && strpos($post->post_content, '[librevideojs_video') !== false ){ - wp_enqueue_style('LibreVideoJS', $theme_url . '/css/mix-material/master.min.css', array(), '1.4'); + wp_enqueue_style('LibreVideoJS', $theme_url . '/css/librevideojs/teal.min.css', array(), '1.4'); wp_enqueue_script('LibreVideoJS', $theme_url . '/js/cliplibrejs.developer.min.js', array(), L_VERSION); wp_enqueue_script('jQuery-Libre', $theme_url . '/js/jquery-3.1.1.min.js', array(), '3.1.1', true); } @@ -57,15 +57,22 @@ function LibreVideoJS_embed($atts, $content=null){ 'loop' => '', 'muted' => '', 'poster' => '', - 'skin' => '', 'class' => '', ), $atts)); if(empty($url)){ return __('you need to specify the src of the video file', 'Lidra'); } + + // support youtube without DRM + require 'processor.php'; + //src - $src = '<source data-res="'.$url_calidad.'" src="'.$url.'" type="video/'.$code.'"/>'; + if(!empty($url) && strlen($id) === 11 ){ + $src = '<source src="'. $videoyt .'" type="'. $format .'" />'; + } else { + $src = '<source data-res="'.$url_calidad.'" src="'.$url.'" type="video/'.$code.'"/>'; + } //resolution selector if(!empty($selector)){ @@ -134,14 +141,6 @@ function LibreVideoJS_embed($atts, $content=null){ $calidades = ""; } - //skin theme - if(!empty($skin)){ - $_skin = "$skin"; - } - else{ - $_skin= "mixteal"; - } - //poster if(!empty($poster)){ $poster = " poster='$poster'"; @@ -151,7 +150,7 @@ function LibreVideoJS_embed($atts, $content=null){ //languages $_no_html5 = __('Sorry, this video will not work because your web browser does not support HTML5 video. Please, change or update your browser', 'Lidra'); - $_no_browser = '<p class="no_html5">' . $_no_html5 . '</p>'; + $_no_browser = '<p class="librevjs-no-js">' . $_no_html5 . '</p>'; //force_types $_force_types = 'video/' . $code; @@ -183,7 +182,7 @@ EOT; </div> <script> var librestyle = document.getElementById("$player"); - librestyle.className += " cliplibre-js-responsive-container librevjs-hd cliplibre-js librevjs-libre-{$_skin}-skin"; + librestyle.className += " cliplibre-js-responsive-container librevjs-hd cliplibre-js librevjs-libre-mix-skin"; cliplibrejs('$player',{plugins:{resolutionSelector:{force_types:['$_force_types'],default_res:"$resolution",}},nativeControlsForTouch:false}).ready(function(){this.hotkeys({volumeStep:0.1,seekStep:5,enableMute:true,enableFullscreen: true,enableNumbers:true}),this.progressTips();}); </script> $style diff --git a/librevideojs/processor.php b/librevideojs/processor.php new file mode 100644 index 0000000..555a081 --- /dev/null +++ b/librevideojs/processor.php @@ -0,0 +1,21 @@ +<?php + +$yturllarge = "www.youtube.com"; +$yturlshort = 'youtu.be/'; + +if (strpos($url, $yturlshort) !== false || strpos($url, $yturllarge) !== false ){ + $link = $url; + $id = substr($link, -11); //Extract the youtube video ID + $format = "video/webm"; //the MIME type of the video. e.g. video/webm, etc. + parse_str(file_get_contents("https://youtube.com/get_video_info?video_id=".$id),$info); //decode the data + $streams = $info['url_encoded_fmt_stream_map']; + + $streams = explode(',',$streams); + + foreach($streams as $stream){ + parse_str($stream,$data); //decode the stream + if(stripos($data['type'],$format) !== false){ //We've found the right stream with the correct format + $videoyt = $data['url']; //the video + } + } +} |