LESS/SASS variable name spacing and clean up

This commit is contained in:
Sam 2016-01-17 19:22:43 +11:00
parent 3f42e53d95
commit dbe152a4c1
3 changed files with 247 additions and 260 deletions

2
dist/plyr.css vendored

File diff suppressed because one or more lines are too long

View File

@ -7,78 +7,78 @@
// ------------------------------- // -------------------------------
// Colors // Colors
@blue: #3498DB; @plyr-blue: #3498DB;
@gray-dark: #343F4A; @plyr-gray-dark: #343F4A;
@gray: #565D64; @plyr-gray: #565D64;
@gray-light: #6B7D86; @plyr-gray-light: #6B7D86;
@gray-lighter: #CBD0D3; @plyr-gray-lighter: #CBD0D3;
@off-white: #D6DADD; @plyr-off-white: #D6DADD;
// Font sizes // Font sizes
@font-size-small: 14px; @plyr-font-size-small: 14px;
@font-size-base: 16px; @plyr-font-size-base: 16px;
// Captions // Captions
@font-size-captions-base: ceil(@font-size-base * 1.25); @plyr-font-size-captions-base: ceil(@plyr-font-size-base * 1.25);
@font-size-captions-medium: ceil(@font-size-base * 1.5); @plyr-font-size-captions-medium: ceil(@plyr-font-size-base * 1.5);
@font-size-captions-large: (@font-size-base * 2); @plyr-font-size-captions-large: (@plyr-font-size-base * 2);
// Controls // Controls
@control-spacing: 10px; @plyr-control-spacing: 10px;
@controls-bg: #fff; @plyr-controls-bg: #fff;
@control-bg-hover: @blue; @plyr-control-bg-hover: @plyr-blue;
.contrast-control-color(@controls-bg); .contrast-control-color(@plyr-controls-bg);
.contrast-control-color-hover(@control-bg-hover); .contrast-control-color-hover(@plyr-control-bg-hover);
// Tooltips // Tooltips
@tooltip-bg: @controls-bg; @plyr-tooltip-bg: @plyr-controls-bg;
@tooltip-border-color: fade(@gray-dark, 10%); @plyr-tooltip-border-color: fade(@plyr-gray-dark, 10%);
@tooltip-border-width: 1px; @plyr-tooltip-border-width: 1px;
@tooltip-shadow: 0 0 5px @tooltip-border-color, 0 0 0 @tooltip-border-width @tooltip-border-color; @plyr-tooltip-shadow: 0 0 5px @plyr-tooltip-border-color, 0 0 0 @plyr-tooltip-border-width @plyr-tooltip-border-color;
@tooltip-color: @control-color; @plyr-tooltip-color: @plyr-control-color;
@tooltip-padding: @control-spacing; @plyr-tooltip-padding: @plyr-control-spacing;
@tooltip-arrow-size: 6px; @plyr-tooltip-arrow-size: 6px;
@tooltip-radius: 3px; @plyr-tooltip-radius: 3px;
// Progress // Progress
@progress-bg: fade(@gray, 20%); @plyr-progress-bg: fade(@plyr-gray, 20%);
@progress-playing-bg: @blue; @plyr-progress-playing-bg: @plyr-blue;
@progress-buffered-bg: fade(@gray, 25%); @plyr-progress-buffered-bg: fade(@plyr-gray, 25%);
@progress-loading-size: 40px; @plyr-progress-loading-size: 40px;
@progress-loading-bg: rgba(0,0,0, .15); @plyr-progress-loading-bg: fade(#000, 15%);
// Volume // Volume
@volume-track-height: 6px; @plyr-volume-track-height: 6px;
@volume-track-bg: darken(@controls-bg, 10%); @plyr-volume-track-bg: darken(@plyr-controls-bg, 10%);
@volume-thumb-height: (@volume-track-height * 2); @plyr-volume-thumb-height: (@plyr-volume-track-height * 2);
@volume-thumb-width: (@volume-track-height * 2); @plyr-volume-thumb-width: (@plyr-volume-track-height * 2);
@volume-thumb-bg: @control-color; @plyr-volume-thumb-bg: @plyr-control-color;
@volume-thumb-bg-focus: @control-bg-hover; @plyr-volume-thumb-bg-focus: @plyr-control-bg-hover;
// Breakpoints // Breakpoints
@bp-control-split: 560px; // When controls split into left/right @plyr-bp-control-split: 560px; // When controls split into left/right
@bp-captions-large: 768px; // When captions jump to the larger font size @plyr-bp-captions-large: 768px; // When captions jump to the larger font size
// Animation // Animation
// --------------------------------------- // ---------------------------------------
@keyframes progress { @keyframes plyr-progress {
to { background-position: @progress-loading-size 0; } to { background-position: @plyr-progress-loading-size 0; }
} }
// Mixins // Mixins
// ------------------------------- // -------------------------------
// Contrast // Contrast
.contrast-control-color(@color: "") when (lightness(@color) >= 65%) { .contrast-control-color(@plyr-color: "") when (lightness(@plyr-color) >= 65%) {
@control-color: @gray-light; @plyr-control-color: @plyr-gray-light;
} }
.contrast-control-color(@color: "") when (lightness(@color) < 65%) { .contrast-control-color(@plyr-color: "") when (lightness(@plyr-color) < 65%) {
@control-color: @gray-lighter; @plyr-control-color: @plyr-gray-lighter;
} }
.contrast-control-color-hover(@color: "") when (lightness(@color) >= 65%) { .contrast-control-color-hover(@plyr-color: "") when (lightness(@plyr-color) >= 65%) {
@control-color-hover: @gray; @plyr-control-color-hover: @plyr-gray;
} }
.contrast-control-color-hover(@color: "") when (lightness(@color) < 65%) { .contrast-control-color-hover(@plyr-color: "") when (lightness(@plyr-color) < 65%) {
@control-color-hover: #fff; @plyr-control-color-hover: #fff;
} }
// Font smoothing // Font smoothing
@ -91,40 +91,27 @@
-webkit-font-smoothing: subpixel-antialiased; -webkit-font-smoothing: subpixel-antialiased;
} }
// Contain floats: nicolasgallagher.com/micro-clearfix-hack/
.clearfix() {
zoom: 1;
&:before,
&:after { content: ""; display: table; }
&:after { clear: both; }
}
// Tab focus styles
.tab-focus() {
outline: 1px dotted fade(@gray-dark, 80%);
outline-offset: 3px;
}
// <input type="range"> styling // <input type="range"> styling
.volume-thumb() { .volume-thumb() {
height: @volume-thumb-height; height: @plyr-volume-thumb-height;
width: @volume-thumb-width; width: @plyr-volume-thumb-width;
background: @volume-thumb-bg; background: @plyr-volume-thumb-bg;
border: 0; border: 0;
border-radius: 100%; border-radius: 100%;
transition: background .3s ease; transition: background .3s ease;
cursor: ew-resize; cursor: ew-resize;
} }
.volume-track() { .volume-track() {
height: @volume-track-height; height: @plyr-volume-track-height;
background: @volume-track-bg; background: @plyr-volume-track-bg;
border: 0; border: 0;
border-radius: (@volume-track-height / 2); border-radius: (@plyr-volume-track-height / 2);
} }
.seek-thumb() { .seek-thumb() {
background: transparent; background: transparent;
border: 0; border: 0;
width: (@control-spacing * 4); width: (@plyr-control-spacing * 4);
height: @control-spacing; height: @plyr-control-spacing;
transform: translateX(-50%); transform: translateX(-50%);
} }
.seek-track() { .seek-track() {
@ -208,49 +195,55 @@
bottom: 0; bottom: 0;
left: 0; left: 0;
width: 100%; width: 100%;
padding: (@control-spacing * 2) (@control-spacing * 2) (@control-spacing * 3); padding: (@plyr-control-spacing * 2) (@plyr-control-spacing * 2) (@plyr-control-spacing * 3);
color: #fff; color: #fff;
font-size: @font-size-captions-base; font-size: @plyr-font-size-captions-base;
text-align: center; text-align: center;
.font-smoothing(); .font-smoothing();
span { span {
border-radius: 2px; border-radius: 2px;
padding: 3px 10px; padding: 3px 10px;
background: rgba(0,0,0, .9); background: fade(#000, 90%);
} }
span:empty { span:empty {
display: none; display: none;
} }
@media (min-width: @bp-captions-large) { @media (min-width: @plyr-bp-captions-large) {
font-size: @font-size-captions-medium; font-size: @plyr-font-size-captions-medium;
} }
} }
&--captions-active &__captions { &--captions-active &__captions {
display: block; display: block;
} }
&--fullscreen-active &__captions { &--fullscreen-active &__captions {
font-size: @font-size-captions-large; font-size: @plyr-font-size-captions-large;
} }
// Playback controls // Playback controls
&__controls { &__controls {
.clearfix();
.font-smoothing(); .font-smoothing();
position: relative; position: relative;
padding: @control-spacing; padding: @plyr-control-spacing;
background: @controls-bg; background: @plyr-controls-bg;
line-height: 1; line-height: 1;
text-align: center; text-align: center;
box-shadow: 0 1px 1px fade(@gray-dark, 20%); box-shadow: 0 1px 1px fade(@plyr-gray-dark, 20%);
// Clear floats
&::after {
content: '';
display: table;
clear: both;
}
// Layout // Layout
&--right { &--right {
display: block; display: block;
margin: @control-spacing auto 0; margin: @plyr-control-spacing auto 0;
} }
@media (min-width: @bp-control-split) { @media (min-width: @plyr-bp-control-split) {
&--left { &--left {
float: left; float: left;
} }
@ -265,13 +258,13 @@
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: (@plyr-control-spacing / 2) @plyr-control-spacing;
overflow: hidden; overflow: hidden;
border: 0; border: 0;
background: transparent; background: transparent;
border-radius: 3px; border-radius: 3px;
cursor: pointer; cursor: pointer;
color: @control-color; color: @plyr-control-color;
transition: background .3s ease, color .3s ease, opacity .3s ease; transition: background .3s ease, color .3s ease, opacity .3s ease;
svg { svg {
@ -285,8 +278,8 @@
// Hover and tab focus // Hover and tab focus
&.tab-focus:focus, &.tab-focus:focus,
&:hover { &:hover {
background: @control-bg-hover; background: @plyr-control-bg-hover;
color: @control-color-hover; color: @plyr-control-color-hover;
} }
// Default focus // Default focus
&:focus { &:focus {
@ -305,24 +298,24 @@
.plyr__time { .plyr__time {
display: inline-block; display: inline-block;
vertical-align: middle; vertical-align: middle;
margin-left: @control-spacing; margin-left: @plyr-control-spacing;
color: @control-color; color: @plyr-control-color;
font-weight: 600; font-weight: 600;
font-size: @font-size-small; font-size: @plyr-font-size-small;
} }
// Media duration hidden on small screens // Media duration hidden on small screens
.plyr__time + .plyr__time { .plyr__time + .plyr__time {
display: none; display: none;
@media (min-width: @bp-control-split) { @media (min-width: @plyr-bp-control-split) {
display: inline-block; display: inline-block;
} }
// Add a slash in before // Add a slash in before
&::before { &::before {
content: '\2044'; content: '\2044';
margin-right: @control-spacing; margin-right: @plyr-control-spacing;
} }
} }
} }
@ -332,19 +325,19 @@
position: absolute; position: absolute;
z-index: 2; z-index: 2;
bottom: 100%; bottom: 100%;
margin-bottom: @tooltip-padding; margin-bottom: @plyr-tooltip-padding;
padding: @tooltip-padding (@tooltip-padding * 1.5); padding: @plyr-tooltip-padding (@plyr-tooltip-padding * 1.5);
opacity: 0; opacity: 0;
background: @tooltip-bg; background: @plyr-tooltip-bg;
box-shadow: @tooltip-shadow; box-shadow: @plyr-tooltip-shadow;
border-radius: @tooltip-radius; border-radius: @plyr-tooltip-radius;
color: @tooltip-color; color: @plyr-tooltip-color;
font-size: @font-size-small; font-size: @plyr-font-size-small;
line-height: 1.5; line-height: 1.5;
font-weight: 600; font-weight: 600;
transform: translate(-50%, (@tooltip-padding * 3)) scale(.8); transform: translate(-50%, (@plyr-tooltip-padding * 3)) scale(.8);
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;
@ -361,19 +354,19 @@
} }
// The border triangle // The border triangle
&::after { &::after {
@border-arrow-size: (@tooltip-arrow-size + (@tooltip-border-width * 1)); @plyr-border-arrow-size: (@plyr-tooltip-arrow-size + (@plyr-tooltip-border-width * 1));
bottom: -(@border-arrow-size + @tooltip-border-width); bottom: -(@plyr-border-arrow-size + @plyr-tooltip-border-width);
border-right: @border-arrow-size solid transparent; border-right: @plyr-border-arrow-size solid transparent;
border-top: @border-arrow-size solid @tooltip-border-color; border-top: @plyr-border-arrow-size solid @plyr-tooltip-border-color;
border-left: @border-arrow-size solid transparent; border-left: @plyr-border-arrow-size solid transparent;
z-index: 1; z-index: 1;
} }
// The background triangle // The background triangle
&::before { &::before {
bottom: -@tooltip-arrow-size; bottom: -@plyr-tooltip-arrow-size;
border-right: @tooltip-arrow-size solid transparent; border-right: @plyr-tooltip-arrow-size solid transparent;
border-top: @tooltip-arrow-size solid @tooltip-bg; border-top: @plyr-tooltip-arrow-size solid @plyr-tooltip-bg;
border-left: @tooltip-arrow-size solid transparent; border-left: @plyr-tooltip-arrow-size solid transparent;
z-index: 2; z-index: 2;
} }
} }
@ -388,7 +381,8 @@
// Common range styles // Common range styles
input[type='range'].tab-focus:focus { input[type='range'].tab-focus:focus {
.tab-focus(); outline: 1px dotted fade(@plyr-gray-dark, 80%);
outline-offset: 3px;
} }
// Playback progress // Playback progress
@ -399,8 +393,8 @@
left: 0; left: 0;
right: 0; right: 0;
width: 100%; width: 100%;
height: @control-spacing; height: @plyr-control-spacing;
background: @progress-bg; background: @plyr-progress-bg;
&--buffer[value], &--buffer[value],
&--played[value], &--played[value],
@ -409,7 +403,7 @@
left: 0; left: 0;
top: 0; top: 0;
width: 100%; width: 100%;
height: @control-spacing; height: @plyr-control-spacing;
margin: 0; margin: 0;
padding: 0; padding: 0;
vertical-align: top; vertical-align: top;
@ -435,10 +429,10 @@
} }
&--played[value] { &--played[value] {
z-index: 2; z-index: 2;
color: @progress-playing-bg; color: @plyr-progress-playing-bg;
} }
&--buffer[value] { &--buffer[value] {
color: @progress-buffered-bg; color: @plyr-progress-buffered-bg;
} }
// Seek control // Seek control
@ -491,17 +485,17 @@
// Loading state // Loading state
&--loading .plyr__progress--buffer { &--loading .plyr__progress--buffer {
animation: progress 1s linear infinite; animation: plyr-progress 1s linear infinite;
background-size: @progress-loading-size @progress-loading-size; background-size: @plyr-progress-loading-size @plyr-progress-loading-size;
background-repeat: repeat-x; background-repeat: repeat-x;
background-color: @progress-buffered-bg; background-color: @plyr-progress-buffered-bg;
background-image: linear-gradient( background-image: linear-gradient(
-45deg, -45deg,
@progress-loading-bg 25%, @plyr-progress-loading-bg 25%,
transparent 25%, transparent 25%,
transparent 50%, transparent 50%,
@progress-loading-bg 50%, @plyr-progress-loading-bg 50%,
@progress-loading-bg 75%, @plyr-progress-loading-bg 75%,
transparent 75%, transparent 75%,
transparent); transparent);
color: transparent; color: transparent;
@ -525,7 +519,7 @@
-webkit-appearance: none; -webkit-appearance: none;
-moz-appearance: none; -moz-appearance: none;
width: 100px; width: 100px;
margin: 0 @control-spacing 0 0; margin: 0 @plyr-control-spacing 0 0;
padding: 0; padding: 0;
cursor: pointer; cursor: pointer;
background: transparent; background: transparent;
@ -537,7 +531,7 @@
} }
&::-webkit-slider-thumb { &::-webkit-slider-thumb {
-webkit-appearance: none; -webkit-appearance: none;
margin-top: -((@volume-thumb-height - @volume-track-height) / 2); margin-top: -((@plyr-volume-thumb-height - @plyr-volume-track-height) / 2);
.volume-thumb(); .volume-thumb();
} }
@ -551,10 +545,10 @@
// Microsoft // Microsoft
&::-ms-track { &::-ms-track {
height: @volume-track-height; height: @plyr-volume-track-height;
background: transparent; background: transparent;
border-color: transparent; border-color: transparent;
border-width: ((@volume-thumb-height - @volume-track-height) / 2) 0; border-width: ((@plyr-volume-thumb-height - @plyr-volume-track-height) / 2) 0;
color: transparent; color: transparent;
} }
&::-ms-fill-lower, &::-ms-fill-lower,
@ -569,13 +563,13 @@
outline: 0; outline: 0;
&::-webkit-slider-thumb { &::-webkit-slider-thumb {
background: @volume-thumb-bg-focus; background: @plyr-volume-thumb-bg-focus;
} }
&::-moz-range-thumb { &::-moz-range-thumb {
background: @volume-thumb-bg-focus; background: @plyr-volume-thumb-bg-focus;
} }
&::-ms-thumb { &::-ms-thumb {
background: @volume-thumb-bg-focus; background: @plyr-volume-thumb-bg-focus;
} }
} }
} }
@ -596,12 +590,12 @@
// Audio specific styles // Audio specific styles
// Position the progress within the container // Position the progress within the container
&--audio .plyr__controls { &--audio .plyr__controls {
padding-top: (@control-spacing * 2); padding-top: (@plyr-control-spacing * 2);
} }
&--audio .plyr__progress { &--audio .plyr__progress {
bottom: auto; bottom: auto;
top: 0; top: 0;
background: @off-white; background: @plyr-off-white;
} }
// Full screen mode // Full screen mode
@ -635,14 +629,14 @@
// Hide controls when playing in full screen // Hide controls when playing in full screen
&--fullscreen--hide-controls&--fullscreen-active&--playing { &--fullscreen--hide-controls&--fullscreen-active&--playing {
.plyr__controls { .plyr__controls {
transform: translateY(100%) translateY(@control-spacing / 2); transform: translateY(100%) translateY(@plyr-control-spacing / 2);
transition: transform .3s .2s ease; transition: transform .3s .2s ease;
} }
&.plyr--hover .plyr__controls { &.plyr--hover .plyr__controls {
transform: translateY(0); transform: translateY(0);
} }
.plyr__captions { .plyr__captions {
bottom: (@control-spacing / 2); bottom: (@plyr-control-spacing / 2);
transition: bottom .3s .2s ease; transition: bottom .3s .2s ease;
} }
} }
@ -654,7 +648,7 @@
top: auto; top: auto;
bottom: 90px; bottom: 90px;
@media (min-width: @bp-control-split) { @media (min-width: @plyr-bp-control-split) {
bottom: 60px; bottom: 60px;
} }
} }

View File

@ -7,76 +7,76 @@
// ------------------------------- // -------------------------------
// Colors // Colors
$blue: #3498DB !default; $plyr-blue: #3498DB !default;
$gray-dark: #343F4A !default; $plyr-gray-dark: #343F4A !default;
$gray: #565D64 !default; $plyr-gray: #565D64 !default;
$gray-light: #6B7D86 !default; $plyr-gray-light: #6B7D86 !default;
$gray-lighter: #CBD0D3 !default; $plyr-gray-lighter: #CBD0D3 !default;
$off-white: #D6DADD !default; $plyr-off-white: #D6DADD !default;
// Font sizes // Font sizes
$font-size-small: 14px !default; $plyr-font-size-small: 14px !default;
$font-size-base: 16px !default; $plyr-font-size-base: 16px !default;
// Captions // Captions
$font-size-captions-base: ceil($font-size-base * 1.25) !default; $plyr-font-size-captions-base: ceil($plyr-font-size-base * 1.25) !default;
$font-size-captions-medium: ceil($font-size-base * 1.5) !default; $plyr-font-size-captions-medium: ceil($plyr-font-size-base * 1.5) !default;
$font-size-captions-large: ($font-size-base * 2) !default; $plyr-font-size-captions-large: ($plyr-font-size-base * 2) !default;
// Controls // Controls
$control-spacing: 10px !default; $plyr-control-spacing: 10px !default;
$controls-bg: #fff !default; $plyr-controls-bg: #fff !default;
$control-bg-hover: $blue !default; $plyr-control-bg-hover: $plyr-blue !default;
$control-color: null !default; $plyr-control-color: null !default;
$control-color-hover: null !default; $plyr-control-color-hover: null !default;
// Contrast // Contrast
@if lightness($controls-bg) >= 65% { @if lightness($plyr-controls-bg) >= 65% {
$control-color: $gray-light; $plyr-control-color: $plyr-gray-light;
} }
@else { @else {
$control-color: $gray-lighter; $plyr-control-color: $plyr-gray-lighter;
} }
@if lightness($control-bg-hover) >= 65% { @if lightness($plyr-control-bg-hover) >= 65% {
$control-color-hover: $gray; $plyr-control-color-hover: $plyr-gray;
} }
@else { @else {
$control-color-hover: #fff; $plyr-control-color-hover: #fff;
} }
// Tooltips // Tooltips
$tooltip-bg: $controls-bg !default; $plyr-tooltip-bg: $plyr-controls-bg !default;
$tooltip-border-color: transparentize(@gray-dark, .1) !default; $plyr-tooltip-border-color: transparentize(@gray-dark, .1) !default;
$tooltip-border-width: 1px; $plyr-tooltip-border-width: 1px;
$tooltip-shadow: 0 0 5px $tooltip-border-color, 0 0 0 $tooltip-border-width $tooltip-border-color; $plyr-tooltip-shadow: 0 0 5px $plyr-tooltip-border-color, 0 0 0 $plyr-tooltip-border-width $plyr-tooltip-border-color;
$tooltip-color: $control-color !default; $plyr-tooltip-color: $plyr-control-color !default;
$tooltip-padding: $control-spacing !default; $plyr-tooltip-padding: $plyr-control-spacing !default;
$tooltip-arrow-size: 6px !default; $plyr-tooltip-arrow-size: 6px !default;
$tooltip-radius: 3px !default; $plyr-tooltip-radius: 3px !default;
// Progress // Progress
$progress-bg: transparentize($gray, .2) !default; $plyr-progress-bg: transparentize($plyr-gray, .2) !default;
$progress-playing-bg: $blue !default; $plyr-progress-playing-bg: $plyr-blue !default;
$progress-buffered-bg: transparentize($gray, .25) !default; $plyr-progress-buffered-bg: transparentize($plyr-gray, .25) !default;
$progress-loading-size: 40px !default; $plyr-progress-loading-size: 40px !default;
$progress-loading-bg: rgba(0,0,0, .15) !default; $plyr-progress-loading-bg: transparentize(#000, .15); !default;
// Volume // Volume
$volume-track-height: 6px !default; $plyr-volume-track-height: 6px !default;
$volume-track-bg: darken($controls-bg, 10%) !default; $plyr-volume-track-bg: darken($plyr-controls-bg, 10%) !default;
$volume-thumb-height: ($volume-track-height * 2) !default; $plyr-volume-thumb-height: ($plyr-volume-track-height * 2) !default;
$volume-thumb-width: ($volume-track-height * 2) !default; $plyr-volume-thumb-width: ($plyr-volume-track-height * 2) !default;
$volume-thumb-bg: $control-color !default; $plyr-volume-thumb-bg: $plyr-control-color !default;
$volume-thumb-bg-focus: $control-bg-hover !default; $plyr-volume-thumb-bg-focus: $plyr-control-bg-hover !default;
// Breakpoints // Breakpoints
$bp-control-split: 560px !default; // When controls split into left/right $plyr-bp-control-split: 560px !default; // When controls split into left/right
$bp-captions-large: 768px !default; // When captions jump to the larger font size $plyr-bp-captions-large: 768px !default; // When captions jump to the larger font size
// Animation // Animation
// --------------------------------------- // ---------------------------------------
@keyframes progress { @keyframes plyr-progress {
to { background-position: $progress-loading-size 0; } to { background-position: $plyr-progress-loading-size 0; }
} }
// Font smoothing // Font smoothing
@ -92,41 +92,27 @@ $bp-captions-large: 768px !default; // When captions jump to the larger
} }
} }
// Contain floats: nicolasgallagher.com/micro-clearfix-hack/
@mixin clearfix()
{
zoom: 1;
&:before,
&:after { content: ''; display: table; }
&:after { clear: both; }
}
// Tab focus styles
@mixin tab-focus() {
outline: thin dotted transparentize($gray-dark, .8);
outline-offset: 3px;
}
// <input type="range"> styling // <input type="range"> styling
@mixin volume-thumb() { @mixin volume-thumb() {
height: $volume-thumb-height; height: $plyr-volume-thumb-height;
width: $volume-thumb-width; width: $plyr-volume-thumb-width;
background: $volume-thumb-bg; background: $plyr-volume-thumb-bg;
border: 0; border: 0;
border-radius: 100%; border-radius: 100%;
transition: background .3s ease; transition: background .3s ease;
cursor: ew-resize; cursor: ew-resize;
} }
@mixin volume-track() { @mixin volume-track() {
height: $volume-track-height; height: $plyr-volume-track-height;
background: $volume-track-bg; background: $plyr-volume-track-bg;
border: 0; border: 0;
border-radius: ($volume-track-height / 2); border-radius: ($plyr-volume-track-height / 2);
} }
@mixin seek-thumb() { @mixin seek-thumb() {
background: transparent; background: transparent;
border: 0; border: 0;
width: ($control-spacing * 4); width: ($plyr-control-spacing * 4);
height: $control-spacing; height: $plyr-control-spacing;
transform: translateX(-50%); transform: translateX(-50%);
} }
@mixin seek-track() { @mixin seek-track() {
@ -209,49 +195,55 @@ $bp-captions-large: 768px !default; // When captions jump to the larger
bottom: 0; bottom: 0;
left: 0; left: 0;
width: 100%; width: 100%;
padding: ($control-spacing * 2) ($control-spacing * 2) ($control-spacing * 3); padding: ($plyr-control-spacing * 2) ($plyr-control-spacing * 2) ($plyr-control-spacing * 3);
color: #fff; color: #fff;
font-size: $font-size-captions-base; font-size: $plyr-font-size-captions-base;
text-align: center; text-align: center;
@include font-smoothing(); @include font-smoothing();
span { span {
border-radius: 2px; border-radius: 2px;
padding: 3px 10px; padding: 3px 10px;
background: rgba(0,0,0, .9); background: transparentize(#000, .9);
} }
span:empty { span:empty {
display: none; display: none;
} }
@media (min-width: $bp-captions-large) { @media (min-width: $plyr-bp-captions-large) {
font-size: $font-size-captions-medium; font-size: $plyr-font-size-captions-medium;
} }
} }
&--captions-active &__captions { &--captions-active &__captions {
display: block; display: block;
} }
&--fullscreen-active &__captions { &--fullscreen-active &__captions {
font-size: $font-size-captions-large; font-size: $plyr-font-size-captions-large;
} }
// Playback controls // Playback controls
&__controls { &__controls {
@include clearfix();
@include font-smoothing(); @include font-smoothing();
position: relative; position: relative;
padding: $control-spacing; padding: $plyr-control-spacing;
background: $controls-bg; background: $plyr-controls-bg;
line-height: 1; line-height: 1;
text-align: center; text-align: center;
box-shadow: 0 1px 1px transparentize($gray-dark, .2); box-shadow: 0 1px 1px transparentize($plyr-gray-dark, .2);
// Clear floats
&::after {
content: '';
display: table;
clear: both;
}
// Layout // Layout
&--right { &--right {
display: block; display: block;
margin: $control-spacing auto 0; margin: $plyr-control-spacing auto 0;
} }
@media (min-width: $bp-control-split) { @media (min-width: $plyr-bp-control-split) {
&--left { &--left {
float: left; float: left;
} }
@ -266,13 +258,13 @@ $bp-captions-large: 768px !default; // When captions jump to the larger
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: ($plyr-control-spacing / 2) $plyr-control-spacing;
overflow: hidden; overflow: hidden;
border: 0; border: 0;
background: transparent; background: transparent;
border-radius: 3px; border-radius: 3px;
cursor: pointer; cursor: pointer;
color: $control-color; color: $plyr-control-color;
transition: background .3s ease, color .3s ease, opacity .3s ease; transition: background .3s ease, color .3s ease, opacity .3s ease;
svg { svg {
@ -286,8 +278,8 @@ $bp-captions-large: 768px !default; // When captions jump to the larger
// Hover and tab focus // Hover and tab focus
&.tab-focus:hover, &.tab-focus:hover,
&:hover { &:hover {
background: $control-bg-hover; background: $plyr-control-bg-hover;
color: $control-color-hover; color: $plyr-control-color-hover;
} }
// Default focus // Default focus
&:focus { &:focus {
@ -306,24 +298,24 @@ $bp-captions-large: 768px !default; // When captions jump to the larger
.plyr__time { .plyr__time {
display: inline-block; display: inline-block;
vertical-align: middle; vertical-align: middle;
margin-left: $control-spacing; margin-left: $plyr-control-spacing;
color: $control-color; color: $plyr-control-color;
font-weight: 600; font-weight: 600;
font-size: $font-size-small; font-size: $plyr-font-size-small;
} }
// Media duration hidden on small screens // Media duration hidden on small screens
.plyr__time + .plyr__time { .plyr__time + .plyr__time {
display: none; display: none;
@media (min-width: $bp-control-split) { @media (min-width: $plyr-bp-control-split) {
display: inline-block; display: inline-block;
} }
// Add a slash in before // Add a slash in before
&::before { &::before {
content: '\2044'; content: '\2044';
margin-right: $control-spacing; margin-right: $plyr-control-spacing;
} }
} }
} }
@ -333,19 +325,19 @@ $bp-captions-large: 768px !default; // When captions jump to the larger
position: absolute; position: absolute;
z-index: 2; z-index: 2;
bottom: 100%; bottom: 100%;
margin-bottom: $tooltip-padding; margin-bottom: $plyr-tooltip-padding;
padding: $tooltip-padding ($tooltip-padding * 1.5); padding: $plyr-tooltip-padding ($plyr-tooltip-padding * 1.5);
opacity: 0; opacity: 0;
background: $tooltip-bg; background: $plyr-tooltip-bg;
box-shadow: $tooltip-shadow; box-shadow: $plyr-tooltip-shadow;
border-radius: $tooltip-radius; border-radius: $plyr-tooltip-radius;
color: $tooltip-color; color: $plyr-tooltip-color;
font-size: $font-size-small; font-size: $plyr-font-size-small;
line-height: 1.5; line-height: 1.5;
font-weight: 600; font-weight: 600;
transform: translate(-50%, ($tooltip-padding * 3)) scale(.8); transform: translate(-50%, ($plyr-tooltip-padding * 3)) scale(.8);
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;
@ -362,19 +354,19 @@ $bp-captions-large: 768px !default; // When captions jump to the larger
} }
// The border triangle // The border triangle
&::after { &::after {
$border-arrow-size: ($tooltip-arrow-size + ($tooltip-border-width * 1)); $plyr-border-arrow-size: ($plyr-tooltip-arrow-size + ($plyr-tooltip-border-width * 1));
bottom: -($border-arrow-size + $tooltip-border-width); bottom: -($plyr-border-arrow-size + $plyr-tooltip-border-width);
border-right: $border-arrow-size solid transparent; border-right: $plyr-border-arrow-size solid transparent;
border-top: $border-arrow-size solid $tooltip-border-color; border-top: $plyr-border-arrow-size solid $plyr-tooltip-border-color;
border-left: $border-arrow-size solid transparent; border-left: $plyr-border-arrow-size solid transparent;
z-index: 1; z-index: 1;
} }
// The background triangle // The background triangle
&::before { &::before {
bottom: -$tooltip-arrow-size; bottom: -$plyr-tooltip-arrow-size;
border-right: $tooltip-arrow-size solid transparent; border-right: $plyr-tooltip-arrow-size solid transparent;
border-top: $tooltip-arrow-size solid $tooltip-bg; border-top: $plyr-tooltip-arrow-size solid $plyr-tooltip-bg;
border-left: $tooltip-arrow-size solid transparent; border-left: $plyr-tooltip-arrow-size solid transparent;
z-index: 2; z-index: 2;
} }
} }
@ -389,7 +381,8 @@ $bp-captions-large: 768px !default; // When captions jump to the larger
// Common range styles // Common range styles
input[type='range'].tab-focus:focus { input[type='range'].tab-focus:focus {
.tab-focus(); outline: thin dotted transparentize($plyr-gray-dark, .8);
outline-offset: 3px;
} }
// Playback progress // Playback progress
@ -400,8 +393,8 @@ $bp-captions-large: 768px !default; // When captions jump to the larger
left: 0; left: 0;
right: 0; right: 0;
width: 100%; width: 100%;
height: $control-spacing; height: $plyr-control-spacing;
background: $progress-bg; background: $plyr-progress-bg;
&--buffer[value], &--buffer[value],
&--played[value], &--played[value],
@ -410,7 +403,7 @@ $bp-captions-large: 768px !default; // When captions jump to the larger
left: 0; left: 0;
top: 0; top: 0;
width: 100%; width: 100%;
height: $control-spacing; height: $plyr-control-spacing;
margin: 0; margin: 0;
padding: 0; padding: 0;
vertical-align: top; vertical-align: top;
@ -436,10 +429,10 @@ $bp-captions-large: 768px !default; // When captions jump to the larger
} }
&--played[value] { &--played[value] {
z-index: 2; z-index: 2;
color: $progress-playing-bg; color: $plyr-progress-playing-bg;
} }
&--buffer[value] { &--buffer[value] {
color: $progress-buffered-bg; color: $plyr-progress-buffered-bg;
} }
// Seek control // Seek control
@ -492,17 +485,17 @@ $bp-captions-large: 768px !default; // When captions jump to the larger
// Loading state // Loading state
&--loading .plyr__progress--buffer { &--loading .plyr__progress--buffer {
animation: progress 1s linear infinite; animation: plyr-progress 1s linear infinite;
background-size: $progress-loading-size $progress-loading-size; background-size: $plyr-progress-loading-size $plyr-progress-loading-size;
background-repeat: repeat-x; background-repeat: repeat-x;
background-color: $progress-buffered-bg; background-color: $plyr-progress-buffered-bg;
background-image: linear-gradient( background-image: linear-gradient(
-45deg, -45deg,
$progress-loading-bg 25%, $plyr-progress-loading-bg 25%,
transparent 25%, transparent 25%,
transparent 50%, transparent 50%,
$progress-loading-bg 50%, $plyr-progress-loading-bg 50%,
$progress-loading-bg 75%, $plyr-progress-loading-bg 75%,
transparent 75%, transparent 75%,
transparent); transparent);
color: transparent; color: transparent;
@ -526,7 +519,7 @@ $bp-captions-large: 768px !default; // When captions jump to the larger
-webkit-appearance: none; -webkit-appearance: none;
-moz-appearance: none; -moz-appearance: none;
width: 100px; width: 100px;
margin: 0 $control-spacing 0 0; margin: 0 $plyr-control-spacing 0 0;
padding: 0; padding: 0;
cursor: pointer; cursor: pointer;
background: transparent; background: transparent;
@ -538,7 +531,7 @@ $bp-captions-large: 768px !default; // When captions jump to the larger
} }
&::-webkit-slider-thumb { &::-webkit-slider-thumb {
-webkit-appearance: none; -webkit-appearance: none;
margin-top: -(($volume-thumb-height - $volume-track-height) / 2); margin-top: -(($plyr-volume-thumb-height - $plyr-volume-track-height) / 2);
@include volume-thumb(); @include volume-thumb();
} }
@ -552,10 +545,10 @@ $bp-captions-large: 768px !default; // When captions jump to the larger
// Microsoft // Microsoft
&::-ms-track { &::-ms-track {
height: $volume-track-height; height: $plyr-volume-track-height;
background: transparent; background: transparent;
border-color: transparent; border-color: transparent;
border-width: (($volume-thumb-height - $volume-track-height) / 2) 0; border-width: (($plyr-volume-thumb-height - $plyr-volume-track-height) / 2) 0;
color: transparent; color: transparent;
} }
&::-ms-fill-lower, &::-ms-fill-lower,
@ -570,13 +563,13 @@ $bp-captions-large: 768px !default; // When captions jump to the larger
outline: 0; outline: 0;
&::-webkit-slider-thumb { &::-webkit-slider-thumb {
background: $volume-thumb-bg-focus; background: $plyr-volume-thumb-bg-focus;
} }
&::-moz-range-thumb { &::-moz-range-thumb {
background: $volume-thumb-bg-focus; background: $plyr-volume-thumb-bg-focus;
} }
&::-ms-thumb { &::-ms-thumb {
background: $volume-thumb-bg-focus; background: $plyr-volume-thumb-bg-focus;
} }
} }
} }
@ -597,12 +590,12 @@ $bp-captions-large: 768px !default; // When captions jump to the larger
// Audio specific styles // Audio specific styles
// Position the progress within the container // Position the progress within the container
&--audio .plyr__controls { &--audio .plyr__controls {
padding-top: ($control-spacing * 2); padding-top: ($plyr-control-spacing * 2);
} }
&--audio .plyr__progress { &--audio .plyr__progress {
bottom: auto; bottom: auto;
top: 0; top: 0;
background: $off-white; background: $plyr-off-white;
} }
// Full screen mode // Full screen mode
@ -635,14 +628,14 @@ $bp-captions-large: 768px !default; // When captions jump to the larger
// Hide controls when playing in full screen // Hide controls when playing in full screen
&--fullscreen--hide-controls&--fullscreen-active&--playing { &--fullscreen--hide-controls&--fullscreen-active&--playing {
.plyr__controls { .plyr__controls {
transform: translateY(100%) translateY($control-spacing / 2); transform: translateY(100%) translateY($plyr-control-spacing / 2);
transition: transform .3s .2s ease; transition: transform .3s .2s ease;
} }
&.plyr--hover .plyr__controls { &.plyr--hover .plyr__controls {
transform: translateY(0); transform: translateY(0);
} }
.plyr__captions { .plyr__captions {
bottom: ($control-spacing / 2); bottom: ($plyr-control-spacing / 2);
transition: bottom .3s .2s ease; transition: bottom .3s .2s ease;
} }
} }
@ -654,7 +647,7 @@ $bp-captions-large: 768px !default; // When captions jump to the larger
top: auto; top: auto;
bottom: 90px; bottom: 90px;
@media (min-width: $bp-control-split) { @media (min-width: $plyr-bp-control-split) {
bottom: 60px; bottom: 60px;
} }
} }