Files
edx-platform/common/lib/xmodule/xmodule/css/video/display.scss
2014-03-14 11:49:00 -04:00

772 lines
17 KiB
SCSS

& {
margin-bottom: 30px;
}
.is-hidden {
display: none;
}
div.video {
@include clearfix();
background: #f3f3f3;
display: block;
margin: 0 -12px;
padding: 12px;
border-radius: 5px;
&:focus, &:active, &:hover {
border: 0;
}
&.is-initialized {
article.video-wrapper {
.spinner {
display: none;
}
}
}
div.tc-wrapper {
@include clearfix;
position: relative;
}
div.focus_grabber {
position: relative;
display: inline;
width: 0px;
height: 0px;
}
.wrapper-downloads {
margin: 0;
padding: 0;
.video-sources,
.video-tracks {
display: inline-block;
vertical-align: top;
margin: ($baseline*.75) ($baseline/2) 0 0;
> a {
@include transition(all 0.25s ease-in-out 0s);
@include font-size(14);
line-height : 14px;
float: left;
border-radius: 3px;
background-color: $very-light-text;
padding: ($baseline*.75);
color: $lighter-base-font-color;
&:hover, &:focus {
background-color: $action-primary-active-bg;
color: $very-light-text;
}
}
}
.video-tracks {
> a {
border-radius: 3px 0 0 3px;
}
> a.external-track {
border-radius: 3px;
}
}
}
article.video-wrapper {
float: left;
margin-right: flex-gutter(9);
width: flex-grid(6, 9);
background-color: black;
position: relative;
div.video-player-pre, div.video-player-post {
height: 50px;
background-color: black;
}
.spinner {
@include transform(translate(-50%, -50%));
position: absolute;
z-index: 1;
background: rgba(0, 0, 0, 0.7);
top: 50%;
left: 50%;
padding: 30px;
border-radius: 25%;
&:after{
@include animation(rotateCW 3s infinite linear);
content: '';
display: block;
width: 30px;
height: 30px;
border: 7px solid white;
border-top-color: transparent;
border-radius: 100%;
position: relative;
}
}
.btn-play {
@include transform(translate(-50%, -50%));
position: absolute;
z-index: 1;
background: rgba(0, 0, 0, 0.7);
top: 50%;
left: 50%;
padding: 30px;
border-radius: 25%;
&:after{
content: '';
display: block;
width: 0px;
height: 0px;
border-style: solid;
border-width: 30px 0 30px 50px;
border-color: transparent transparent transparent #ffffff;
position: relative;
}
}
section.video-player {
overflow: hidden;
min-height: 300px;
> div {
height: 100%;
&.hidden {
display: none;
}
}
object, iframe, video {
border: none;
width: 100%;
}
h3 {
text-align: center;
color: white;
&.hidden {
display: none;
}
}
}
section.video-controls {
@include clearfix();
background: #333;
border: 1px solid #000;
border-top: 0;
color: #ccc;
position: relative;
&:hover, &:focus {
ul, div {
opacity: 1;
}
}
%video-button {
@include transition(none);
display: block;
font-weight: 800;
line-height: 46px;
margin: 0;
padding: 0 0 0 15px;
text-indent: -9999px;
-webkit-font-smoothing: antialiased;
box-shadow: 1px 0 0 #555, inset 1px 0 0 #555;
color: #fff;
cursor: pointer;
border-width: 0 1px;
border-style: solid;
border-color: #000;
&:hover, &:focus {
background-color: #444;
color: #fff;
text-decoration: none;
}
&:active,
&:focus {
color: #fff;
background-color: #444;
text-decoration: none;
}
}
div.slider {
@include clearfix();
@include transform(scaleY(0.5) translate3d(0, 50%, 0));
background: #c2c2c2;
border: 1px solid #000;
border-radius: 0;
border-top: 1px solid #000;
box-shadow: inset 0 1px 0 #eee, 0 1px 0 #555;
position: absolute;
z-index: 1;
bottom: 100%;
left: 0;
right: 0;
height: 14px;
margin-left: -1px;
margin-right: -1px;
-webkit-transition: -webkit-transform 0.7s ease-in-out;
-moz-transition: -moz-transform 0.7s ease-in-out;
-ms-transition: -ms-transform 0.7s ease-in-out;
transition: transform 0.7s ease-in-out;
div.ui-widget-header {
background: #777;
box-shadow: inset 0 1px 0 #999;
}
div.ui-corner-all.slider-range {
background-color: #1e91d3;
opacity: 0.3;
}
a.ui-slider-handle {
@include transform(scale(.7, 1.3) translate3d(-80%, -15%, 0));
background: $pink url(../images/slider-handle.png) center center no-repeat;
background-size: 50%;
border: 1px solid darken($pink, 20%);
border-radius: 50%;
box-shadow: inset 0 1px 0 lighten($pink, 10%);
cursor: pointer;
height: 20px;
margin-left: 0;
top: 0;
-webkit-transition: -webkit-transform 0.7s ease-in-out;
-moz-transition: -moz-transform 0.7s ease-in-out;
-ms-transition: -ms-transform 0.7s ease-in-out;
transition: transform 0.7s ease-in-out;
width: 20px;
&:focus, &:hover {
background-color: lighten($pink, 10%);
}
}
}
ul.vcr {
float: left;
list-style: none;
margin: 0 lh() 0 0;
padding: 0;
@media (max-width: 1120px) {
margin-right: lh(.5);
font-size: em(14);
}
li {
float: left;
margin-bottom: 0;
a {
@extend %video-button;
background-image: url('../images/vcr.png');
background-position: 15px 15px ;
background-repeat: no-repeat;
border-left: none;
box-shadow: 1px 0 0 #555;
padding: 0 lh(.75);
width: 14px;
&:focus {
position: relative;
z-index: 10000;
outline: #fff dotted thin;
outline-offset: -2px;
}
&:empty {
height: 46px;
background-position: 15px 15px;
}
&.play {
background-position: 17px -114px;
}
&.pause {
background-position: 16px -50px;
}
}
div.vidtime {
font-weight: bold;
line-height: 46px; //height of play pause buttons
-webkit-font-smoothing: antialiased;
padding-left: lh(.75);
@media (max-width: 1120px) {
padding-left: lh(.5);
}
}
}
}
div.secondary-controls {
float: right;
div.speeds>a, div.volume>a, a.add-fullscreen, a.quality_control,
a.hide-subtitles {
// overflow is used to bypass Firefox CSS :focus outline bug
// http://johndoesdesign.com/blog/2012/css/firefox-and-its-css-focus-outline-bug/
&:focus {
position: relative;
z-index: 10000;
outline: #fff dotted thin;
outline-offset: -2px;
overflow: auto;
}
}
.menu-container {
float: left;
position: relative;
&.open {
.menu {
display: block;
opacity: 1;
padding: 0;
margin: 0;
list-style: none;
}
}
.menu {
@include transition(none);
box-shadow: inset 1px 0 0 #555, 0 1px 0 #444;
background-color: #444;
border: 1px solid #000;
bottom: 46px;
display: none;
opacity: 0;
position: absolute;
z-index: 10;
li {
box-shadow: 0 1px 0 #555;
border-bottom: 1px solid #000;
color: #fff;
cursor: pointer;
a {
border: 0;
color: #fff;
display: block;
padding: lh(.5);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
&:hover, &:focus {
background-color: #666;
color: #aaa;
outline-offset: -4px;
}
}
&.active{
a {
font-weight: bold;
}
}
&:last-child {
box-shadow: none;
border-bottom: 0;
margin-top: 0;
}
}
}
}
div.speeds {
&.open {
& > a {
background-image: url('../images/open-arrow.png');
}
}
.menu{
width: 131px;
@media (max-width: 1120px) {
width: 80px;
}
}
& > a {
@extend %video-button;
@include clearfix();
background-image: url('../images/closed-arrow.png');
background-position: 10px center;
background-repeat: no-repeat;
min-width: 116px;
text-indent: 0;
@media (max-width: 1120px) {
min-width: 0;
width: 60px;
}
h3 {
float: left;
font-size: em(14);
font-weight: normal;
letter-spacing: 1px;
padding: 0 lh(.25) 0 lh(.5);
line-height: 46px;
text-transform: uppercase;
color: #999;
@media (max-width: 1120px) {
display: none;
}
}
p.active {
float: left;
font-weight: bold;
margin-bottom: 0;
padding: 0 lh(.5) 0 0;
@media (max-width: 1120px) {
padding: 0 lh(.5) 0 lh(.5);
}
line-height: 46px;
color: #fff;
}
}
}
div.volume {
float: left;
position: relative;
&.open {
.volume-slider-container {
display: block;
opacity: 1;
}
}
&.muted {
& > a {
background-image: url('../images/mute.png');
}
}
& > a {
@extend %video-button;
@include clearfix();
background-image: url('../images/volume.png');
background-position: 10px center;
background-repeat: no-repeat;
border-left: none;
width: 30px;
height: 46px;
}
.volume-slider-container {
@include transition(none);
box-shadow: inset 1px 0 0 #555, 0 3px 0 #444;
background-color: #444;
border: 1px solid #000;
bottom: 46px;
display: none;
opacity: 0;
position: absolute;
width: 45px;
height: 125px;
margin-left: -1px;
z-index: 10;
.volume-slider {
height: 100px;
border: 0;
width: 5px;
margin: 14px auto;
background: #666;
border: 1px solid #000;
box-shadow: 0 1px 0 #333;
a.ui-slider-handle {
@include transition(height 2.0s ease-in-out 0s, width 2.0s ease-in-out 0s);
background: $pink url(../images/slider-handle.png) center center no-repeat;
background-size: 50%;
border: 1px solid darken($pink, 20%);
border-radius: 15px;
box-shadow: inset 0 1px 0 lighten($pink, 10%);
cursor: pointer;
height: 15px;
left: -6px;
width: 15px;
}
.ui-slider-range {
background: #ddd;
}
}
}
}
a.add-fullscreen {
@extend %video-button;
background: url(../images/fullscreen.png) center no-repeat;
border-left: none;
float: left;
padding: 0 11px;
width: 30px;
}
a.quality_control {
@extend %video-button;
background: url(../images/hd.png) center no-repeat;
border-left: none;
display: none;
float: left;
padding: 0 11px;
width: 30px;
&.active {
background-color: #F44;
color: #0ff;
text-decoration: none;
}
}
div.lang {
& > a.hide-subtitles {
@extend %video-button;
@include transition(none);
box-shadow: inset 1px 0 0 #555;
background: url('../images/cc.png') center no-repeat;
border-left: none;
border-right: none;
padding: 0 11px;
width: 30px;
&.off {
opacity: 0.7;
}
}
.menu.langs-list {
right: -1px;
width: 150px;
}
}
}
}
&:hover section.video-controls {
ul, div {
opacity: 1;
}
div.slider {
@include transform(scaleY(1) translate3d(0, 0, 0));
a.ui-slider-handle {
@include transform(scale(1) translate3d(-50%, -15%, 0));
}
}
}
}
ol.subtitles {
padding-left: 0;
float: left;
max-height: 460px;
overflow: auto;
width: flex-grid(3, 9);
margin: 0;
font-size: 14px;
list-style: none;
visibility: visible;
li {
border: 0;
color: rgb(29,157,217);
cursor: pointer;
margin-bottom: 8px;
padding: 0;
line-height: lh();
&.current {
color: #333;
font-weight: 700;
}
&.focused {
outline: #000 dotted thin;
outline-offset: -1px;
}
&:hover, &:focus {
text-decoration: underline;
}
&:empty {
margin-bottom: 0px;
}
}
}
&.closed {
article.video-wrapper {
width: flex-grid(9,9);
background-color: inherit;
}
article.video-wrapper section.video-controls.html5 {
bottom: 0px;
left: 0px;
right: 0px;
position: absolute;
z-index: 1;
}
article.video-wrapper div.video-player-pre, article.video-wrapper div.video-player-post {
height: 0px;
}
article.video-wrapper section.video-player {
h3 {
color: black;
}
}
ol.subtitles {
width: 0;
height: 0;
}
ol.subtitles.html5 {
background-color: rgba(243, 243, 243, 0.8);
height: 100%;
position: absolute;
right: 0;
bottom: 0;
top: 0;
width: 275px;
padding: 0 20px;
z-index: 0;
display: none;
}
}
&.video-fullscreen {
background: rgba(#000, .95);
border: 0;
bottom: 0;
height: 100%;
left: 0;
margin: 0;
padding: 0;
position: fixed;
top: 0;
width: 100%;
z-index: 999;
vertical-align: middle;
&.closed {
div.tc-wrapper {
article.video-wrapper {
width: 100%;
}
}
}
article.video-wrapper div.video-player-pre, article.video-wrapper div.video-player-post {
height: 0px;
}
article.video-wrapper {
position: static;
}
article.video-wrapper section.video-player {
h3 {
color: white;
}
}
div.tc-wrapper {
@include clearfix;
width: 100%;
height: 100%;
position: static;
article.video-wrapper {
height: 100%;
width: 75%;
vertical-align: middle;
margin-right: 0;
object, iframe, video{
position: absolute;
width: auto;
height: auto;
}
}
section.video-controls {
bottom: 0;
left: 0;
position: absolute;
width: 100%;
z-index: 9999;
}
}
ol.subtitles {
@include box-sizing(border-box);
@include transition(none);
background: #000;
height: 100%;
width: 25%;
padding: lh();
visibility: visible;
li {
color: #aaa;
&.current {
color: #fff;
}
}
}
}
&.is-touch {
div.tc-wrapper {
article.video-wrapper {
object, iframe, video{
width: 100%;
height: 100%;
}
}
}
}
}