Merge pull request #102 from ChristianPV/patch-1

Update plyr.scss - Make it work
This commit is contained in:
Sam Potts 2015-07-28 10:13:47 +10:00
commit 6b0f58dab2

View File

@ -7,51 +7,69 @@
// ------------------------------- // -------------------------------
// Colors // Colors
$blue: #3498DB !default; $blue: #3498DB;
$gray-dark: #343F4A !default; $gray-dark: #343F4A;
$gray: #565D64 !default; $gray: #565D64;
$gray-light: #6B7D86 !default; $gray-light: #6B7D86;
$gray-lighter: #CBD0D3 !default; $gray-lighter: #CBD0D3;
$off-white: #D6DADD !default; $off-white: #D6DADD;
// Font sizes // Font sizes
$font-size-small: 14px !default; $font-size-small: 14px;
$font-size-base: 16px !default; $font-size-base: 16px;
$font-size-large: ceil(($font-size-base * 1.5)) !default; $font-size-large: ceil(($font-size-base * 1.5));
// Controls // Controls
$control-spacing: 10px !default; $control-spacing: 10px;
$controls-bg: #fff !default; $controls-bg: #fff;
$control-bg-hover: @blue !default; $control-bg-hover: $blue;
.contrast-control-color($controls-bg);
.contrast-control-color-hover($control-bg-hover); // Contrast
@mixin contrast-control-color($color: "") {
$control-color: null !global;
@if lightness($color) >= 65% {
$control-color: $gray-light;
} @else if(lightness($color) < 65%) {
$control-color: $gray-lighter;
}
}
@mixin contrast-control-color-hover($color: "") {
$control-color-hover: null !global;
@if lightness($color) >= 65% {
$control-color-hover: $gray;
} @else if lightness($color) < 65% {
$control-color-hover: #fff;
}
}
@include contrast-control-color($controls-bg);
@include contrast-control-color-hover($control-bg-hover);
// Tooltips // Tooltips
$tooltip-bg: $controls-bg !default; $tooltip-bg: $controls-bg;
$tooltip-border-color: $off-white !default; $tooltip-color: $control-color;
$tooltip-color: $control-color !default; $tooltip-padding: $control-spacing;
$tooltip-padding: $control-spacing !default; $tooltip-arrow-size: 5px;
$tooltip-arrow-size: 5px !default; $tooltip-radius: 3px;
$tooltip-radius: 3px !default;
// Progress // Progress
$progress-bg: rgba(red($gray), green($gray), blue($gray), .2) !default; $progress-bg: rgba(red($gray), green($gray), blue($gray), .2);
$progress-playing-bg: $blue !default; $progress-playing-bg: $blue;
$progress-buffered-bg: rgba(red($gray), green($gray), blue($gray), .25) !default; $progress-buffered-bg: rgba(red($gray), green($gray), blue($gray), .25);
$progress-loading-size: 40px !default; $progress-loading-size: 40px;
$progress-loading-bg: rgba(0,0,0, .15) !default; $progress-loading-bg: rgba(0,0,0, .15);
// Volume // Volume
$volume-track-height: 6px !default; $volume-track-height: 6px;
$volume-track-bg: darken($controls-bg, 10%) !default; $volume-track-bg: darken($controls-bg, 10%);
$volume-thumb-height: ($volume-track-height * 2) !default; $volume-thumb-height: ($volume-track-height * 2);
$volume-thumb-width: ($volume-track-height * 2) !default; $volume-thumb-width: ($volume-track-height * 2);
$volume-thumb-bg: $control-color !default; $volume-thumb-bg: $control-color;
$volume-thumb-bg-focus: $control-bg-hover !default; $volume-thumb-bg-focus: $control-bg-hover;
// Breakpoints // Breakpoints
$bp-control-split: 560px !default; // When controls split into left/right $bp-control-split: 560px; // When controls split into left/right
$bp-captions-large: 768px !default; // When captions jump to the larger font size $bp-captions-large: 768px; // When captions jump to the larger font size
// Animation // Animation
// --------------------------------------- // ---------------------------------------
@ -60,45 +78,24 @@ $bp-captions-large: 768px !default; // When captions jump to the larger fo
to { background-position: $progress-loading-size 0; } to { background-position: $progress-loading-size 0; }
} }
// Mixins
// -------------------------------
// Contrast
@mixin contrast-control-color($color: "") {
@if (lightness($color) >= 65%) {
$control-color: $gray-light;
}
@else if(lightness(@color) < 65%) {
$control-color: $gray-lighter;
}
}
@mixin contrast-control-color-hover($color: "") {
@if (lightness($color) >= 65%) {
$control-color-hover: $gray;
}
@else if (lightness($color) < 65%) {
$control-color-hover: #fff;
}
}
// Font smoothing // Font smoothing
@mixin font-smoothing($mode: on) @mixin font-smoothing($mode: on)
{ {
@if ($mode == 'on') { @if ($mode == 'on') {
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
} }
@else if ($mode == 'off') { @else if ($mode == 'off') {
-moz-osx-font-smoothing: auto; -moz-osx-font-smoothing: auto;
-webkit-font-smoothing: subpixel-antialiased; -webkit-font-smoothing: subpixel-antialiased;
} }
} }
// Contain floats: nicolasgallagher.com/micro-clearfix-hack/ // Contain floats: nicolasgallagher.com/micro-clearfix-hack/
@mixin clearfix() @mixin clearfix()
{ {
zoom: 1; zoom: 1;
&:before, &:before,
&:after { content: ""; display: table; } &:after { content: ""; display: table; }
&:after { clear: both; } &:after { clear: both; }
} }
@ -109,7 +106,7 @@ $bp-captions-large: 768px !default; // When captions jump to the larger fo
outline-offset: 0; outline-offset: 0;
} }
// Range mixins // <input type="range"> styling
@mixin volume-thumb() @mixin volume-thumb()
{ {
height: $volume-thumb-height; height: $volume-thumb-height;
@ -154,7 +151,7 @@ $bp-captions-large: 768px !default; // When captions jump to the larger fo
// Styles // Styles
// ------------------------------- // -------------------------------
// Base // Base
.player { .player {
position: relative; position: relative;
max-width: 100%; max-width: 100%;
@ -165,8 +162,8 @@ $bp-captions-large: 768px !default; // When captions jump to the larger fo
&, &,
*, *,
*::after, *::after,
*::before { *::before {
box-sizing: border-box; box-sizing: border-box;
} }
// For video // For video
@ -180,6 +177,21 @@ $bp-captions-large: 768px !default; // When captions jump to the larger fo
vertical-align: middle; vertical-align: middle;
} }
// For embeds
&-video-embed {
padding-bottom: 56.25%; /* 16:9 */
height: 0;
iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: 0;
}
}
// Captions // Captions
&-captions { &-captions {
display: none; display: none;
@ -192,10 +204,10 @@ $bp-captions-large: 768px !default; // When captions jump to the larger fo
color: #fff; color: #fff;
font-size: $font-size-base; font-size: $font-size-base;
font-weight: 600; font-weight: 600;
text-shadow: text-shadow:
-1px -1px 0 $gray, -1px -1px 0 $gray,
1px -1px 0 $gray, 1px -1px 0 $gray,
-1px 1px 0 $gray, -1px 1px 0 $gray,
1px 1px 0 $gray; 1px 1px 0 $gray;
text-align: center; text-align: center;
@include font-smoothing(); @include font-smoothing();
@ -233,15 +245,15 @@ $bp-captions-large: 768px !default; // When captions jump to the larger fo
margin-top: 0; margin-top: 0;
} }
} }
input + label, input + label,
button { button {
display: inline-block; display: inline-block;
vertical-align: middle; vertical-align: middle;
margin: 0 2px; margin: 0 2px;
padding: ($control-spacing / 2) $control-spacing; padding: ($control-spacing / 2) $control-spacing;
background .3s ease, color .3s ease, opacity .3s ease; transition: background .3s ease, color .3s ease, opacity .3s ease;
border-radius: 3px; border-radius: 3px;
cursor: pointer; cursor: pointer;
@ -257,7 +269,7 @@ $bp-captions-large: 768px !default; // When captions jump to the larger fo
.inverted:checked + label { .inverted:checked + label {
opacity: .5; opacity: .5;
} }
button, button,
.inverted + label, .inverted + label,
input:checked + label { input:checked + label {
color: $control-color; color: $control-color;
@ -268,7 +280,7 @@ $bp-captions-large: 768px !default; // When captions jump to the larger fo
background: transparent; background: transparent;
overflow: hidden; overflow: hidden;
} }
// Specificity for overriding .inverted // Specificity for overriding .inverted
button:focus, button:focus,
button:hover, button:hover,
@ -324,7 +336,6 @@ $bp-captions-large: 768px !default; // When captions jump to the larger fo
opacity: 0; opacity: 0;
background: $tooltip-bg; background: $tooltip-bg;
border: 1px solid $tooltip-border-color;
border-radius: $tooltip-radius; border-radius: $tooltip-radius;
color: $tooltip-color; color: $tooltip-color;
font-size: $font-size-small; font-size: $font-size-small;
@ -335,26 +346,25 @@ $bp-captions-large: 768px !default; // When captions jump to the larger fo
transform-origin: 50% 100%; transform-origin: 50% 100%;
transition: transform .2s .1s ease, opacity .2s .1s ease; transition: transform .2s .1s ease, opacity .2s .1s ease;
// Arrow
&::after { &::after {
content: ""; content: "";
position: absolute;
z-index: 1;
top: 100%;
left: 50%;
display: block; display: block;
width: 10px; position: absolute;
height: 10px; left: 50%;
background: $tooltip-bg; bottom: -$tooltip-arrow-size;
transform: translate(-50%, -50%) rotate(45deg) translateY(2px); margin-left: -$tooltip-arrow-size;
border: 1px solid $tooltip-border-color; width: 0;
border-width: 0 1px 1px 0; height: 0;
transition: inherit;
border-style: solid;
border-width: $tooltip-arrow-size $tooltip-arrow-size 0 $tooltip-arrow-size;
border-color: $controls-bg transparent transparent;
} }
} }
label:hover .player-tooltip, label:hover .player-tooltip,
input.tab-focus:focus + label .player-tooltip, input:focus + label .player-tooltip,
button:hover .player-tooltip, button:hover .player-tooltip,
button.tab-focus:focus .player-tooltip { button:focus .player-tooltip {
visibility: visible; visibility: visible;
opacity: 1; opacity: 1;
transform: translate(-50%, 0) scale(1); transform: translate(-50%, 0) scale(1);
@ -393,7 +403,7 @@ $bp-captions-large: 768px !default; // When captions jump to the larger fo
background: transparent; background: transparent;
} }
&-buffer[value], &-buffer[value],
&-played[value] { &-played[value] {
&::-webkit-progress-bar { &::-webkit-progress-bar {
background: transparent; background: transparent;
} }
@ -439,7 +449,7 @@ $bp-captions-large: 768px !default; // When captions jump to the larger fo
-moz-appearance: none; -moz-appearance: none;
@include seek-thumb(); @include seek-thumb();
} }
// Microsoft // Microsoft
&::-ms-track { &::-ms-track {
color: transparent; color: transparent;
@ -469,15 +479,15 @@ $bp-captions-large: 768px !default; // When captions jump to the larger fo
background-repeat: repeat-x; background-repeat: repeat-x;
background-color: $progress-buffered-bg; background-color: $progress-buffered-bg;
background-image: linear-gradient( background-image: linear-gradient(
-45deg, -45deg,
$progress-loading-bg 25%, $progress-loading-bg 25%,
transparent 25%, transparent 25%,
transparent 50%, transparent 50%,
$progress-loading-bg 50%, $progress-loading-bg 50%,
$progress-loading-bg 75%, $progress-loading-bg 75%,
transparent 75%, transparent 75%,
transparent); transparent);
color: transparent; color: transparent;
} }
// States // States
@ -492,18 +502,18 @@ $bp-captions-large: 768px !default; // When captions jump to the larger fo
// Volume control // Volume control
// <input[type='range']> element // <input[type='range']> element
// Specificity is for bootstrap compatibility // Specificity is for bootstrap compatibility
&-volume[type="range"] { &-volume[type=range] {
display: inline-block; display: inline-block;
vertical-align: middle; vertical-align: middle;
-webkit-appearance: none; -webkit-appearance: none;
-moz-appearance: none; -moz-appearance: none;
width: 100px; width: 100px;
margin: 0 $control-spacing 0 0; margin: 0 $control-spacing 0 0;
padding: 0; padding: 0;
cursor: pointer; cursor: pointer;
background: transparent; background: transparent;
border: none; border: none;
// Webkit // Webkit
&::-webkit-slider-runnable-track { &::-webkit-slider-runnable-track {
@include volume-track(); @include volume-track();
@ -521,7 +531,7 @@ $bp-captions-large: 768px !default; // When captions jump to the larger fo
&::-moz-range-thumb { &::-moz-range-thumb {
@include volume-thumb(); @include volume-thumb();
} }
// Microsoft // Microsoft
&::-ms-track { &::-ms-track {
height: $volume-track-height; height: $volume-track-height;
@ -597,6 +607,15 @@ $bp-captions-large: 768px !default; // When captions jump to the larger fo
.player-video-wrapper { .player-video-wrapper {
height: 100%; height: 100%;
width: 100%; width: 100%;
.player-captions {
top: auto;
bottom: 90px;
@media (min-width: $bp-control-split) {
bottom: 60px;
}
}
} }
.player-controls { .player-controls {
position: absolute; position: absolute;
@ -606,29 +625,13 @@ $bp-captions-large: 768px !default; // When captions jump to the larger fo
} }
// Hide controls when playing in full screen // Hide controls when playing in full screen
&.fullscreen-hide-controls.playing { &.fullscreen-hide-controls.playing .player-controls {
.player-controls { transform: translateY(100%) translateY($control-spacing / 2);
transform: translateY(100%) translateY($control-spacing / 2); transition: transform .3s .2s ease;
transition: transform .3s .2s ease;
} &.hover {
&.player-hover .player-controls {
transform: translateY(0); transform: translateY(0);
} }
.player-captions {
bottom: (@control-spacing / 2);
transition: bottom .3s .2s ease;
}
}
// Captions
.player-captions,
&.fullscreen-hide-controls.playing.player-hover .player-captions {
top: auto;
bottom: 90px;
@media (min-width: $bp-control-split) {
bottom: 60px;
}
} }
} }
@ -656,4 +659,4 @@ $bp-captions-large: 768px !default; // When captions jump to the larger fo
&.fullscreen-enabled [data-player='fullscreen'] + label { &.fullscreen-enabled [data-player='fullscreen'] + label {
display: inline-block; display: inline-block;
} }
} }