Merge branch 'master' of github.com:selz/plyr
This commit is contained in:
commit
5b2a016241
2
dist/plyr.css
vendored
2
dist/plyr.css
vendored
File diff suppressed because one or more lines are too long
2
dist/plyr.js
vendored
2
dist/plyr.js
vendored
File diff suppressed because one or more lines are too long
10
readme.md
10
readme.md
@ -134,13 +134,19 @@ And the same for `<audio>`
|
|||||||
</div>
|
</div>
|
||||||
```
|
```
|
||||||
|
|
||||||
For YouTube, Plyr uses the standard YouTube API markup (an empty `<div>`):
|
For YouTube and Vimeo, Plyr uses the standard YouTube API markup (an empty `<div>`):
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<div class="plyr">
|
<div class="plyr">
|
||||||
<div data-video-id="L1h9xxCU20g" data-type="youtube"></div>
|
<div data-video-id="bTqVqk7FSmY" data-type="youtube"></div>
|
||||||
</div>
|
</div>
|
||||||
```
|
```
|
||||||
|
```html
|
||||||
|
<div class="plyr">
|
||||||
|
<div data-video-id="143418951" data-type="vimeo"></div>
|
||||||
|
</div>
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
#### Cross Origin (CORS)
|
#### Cross Origin (CORS)
|
||||||
You'll notice the `crossorigin` attribute on the example `<video>` and `<audio>` elements. This is because the media is loaded from another domain. If your media is hosted on another domain, you may need to add this attribute.
|
You'll notice the `crossorigin` attribute on the example `<video>` and `<audio>` elements. This is because the media is loaded from another domain. If your media is hosted on another domain, you may need to add this attribute.
|
||||||
|
@ -1646,7 +1646,8 @@
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'vimeo':
|
case 'vimeo':
|
||||||
plyr.embed.api('seekTo', targetTime);
|
// Round to nearest second for vimeo
|
||||||
|
plyr.embed.api('seekTo', targetTime.toFixed(0));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2214,8 +2215,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Determine which buttons
|
// Determine which buttons
|
||||||
var trigger = plyr.buttons[play ? "play" : "pause"],
|
var trigger = plyr.buttons[play ? 'play' : 'pause'],
|
||||||
target = plyr.buttons[play ? "pause" : "play"];
|
target = plyr.buttons[play ? 'pause' : 'play'];
|
||||||
|
|
||||||
// Setup focus and tab focus
|
// Setup focus and tab focus
|
||||||
if(target) {
|
if(target) {
|
||||||
@ -2475,7 +2476,7 @@
|
|||||||
function _setupInterface() {
|
function _setupInterface() {
|
||||||
// Don't setup interface if no support
|
// Don't setup interface if no support
|
||||||
if (!plyr.supported.full) {
|
if (!plyr.supported.full) {
|
||||||
_log("No full support for this media type (" + plyr.type + ")", true);
|
_log('No full support for this media type (' + plyr.type + ')', true);
|
||||||
|
|
||||||
// Remove controls
|
// Remove controls
|
||||||
_remove(_getElement(config.selectors.controls.wrapper));
|
_remove(_getElement(config.selectors.controls.wrapper));
|
||||||
|
@ -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;
|
||||||
@ -423,22 +417,25 @@
|
|||||||
&--played[value] {
|
&--played[value] {
|
||||||
&::-webkit-progress-bar {
|
&::-webkit-progress-bar {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
|
transition: width .2s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inherit from currentColor;
|
// Inherit from currentColor;
|
||||||
&::-webkit-progress-value {
|
&::-webkit-progress-value {
|
||||||
background: currentColor;
|
background: currentColor;
|
||||||
|
transition: width .2s ease;
|
||||||
}
|
}
|
||||||
&::-moz-progress-bar {
|
&::-moz-progress-bar {
|
||||||
background: currentColor;
|
background: currentColor;
|
||||||
|
transition: width .2s ease;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
&--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 +488,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 +522,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 +534,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 +548,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 +566,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,16 +593,16 @@
|
|||||||
// 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
|
||||||
&--fullscreen,
|
&.plyr--fullscreen,
|
||||||
&--fullscreen-active {
|
&--fullscreen-active {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 0;
|
top: 0;
|
||||||
@ -633,28 +630,29 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Hide controls when playing in full screen
|
// Hide controls when playing in full screen
|
||||||
&--fullscreen--hide-controls&--fullscreen-active&--playing {
|
&--fullscreen-active.plyr--fullscreen--hide-controls.plyr--playing,
|
||||||
|
&.plyr--fullscreen.plyr--fullscreen--hide-controls.plyr--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__captions {
|
||||||
|
bottom: (@plyr-control-spacing / 2);
|
||||||
|
transition: bottom .3s .2s ease;
|
||||||
|
}
|
||||||
&.plyr--hover .plyr__controls {
|
&.plyr--hover .plyr__controls {
|
||||||
transform: translateY(0);
|
transform: translateY(0);
|
||||||
}
|
}
|
||||||
.plyr__captions {
|
|
||||||
bottom: (@control-spacing / 2);
|
|
||||||
transition: bottom .3s .2s ease;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Captions
|
// Captions
|
||||||
&--fullscreen .plyr__captions,
|
&.plyr--fullscreen .plyr__captions,
|
||||||
&--fullscreen-active .plyr__captions,
|
&--fullscreen-active .plyr__captions,
|
||||||
&--fullscreen--hide-controls&--fullscreen-active&--playing&--hover &__captions {
|
&--fullscreen--hide-controls.plyr--fullscreen-active.plyr--playing.plyr--hover .plyr__captions {
|
||||||
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
@ -424,22 +417,25 @@ $bp-captions-large: 768px !default; // When captions jump to the larger
|
|||||||
&--played[value] {
|
&--played[value] {
|
||||||
&::-webkit-progress-bar {
|
&::-webkit-progress-bar {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
|
transition: width .2s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inherit from currentColor;
|
// Inherit from currentColor;
|
||||||
&::-webkit-progress-value {
|
&::-webkit-progress-value {
|
||||||
background: currentColor;
|
background: currentColor;
|
||||||
|
transition: width .2s ease;
|
||||||
}
|
}
|
||||||
&::-moz-progress-bar {
|
&::-moz-progress-bar {
|
||||||
background: currentColor;
|
background: currentColor;
|
||||||
|
transition: width .2s ease;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
&--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 +488,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 +522,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 +534,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 +548,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 +566,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 +593,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
|
||||||
@ -633,28 +629,29 @@ $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-active.plyr--fullscreen--hide-controls.plyr--playing,
|
||||||
|
&.plyr--fullscreen.plyr--fullscreen--hide-controls.plyr--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__captions {
|
||||||
|
bottom: ($plyr-control-spacing / 2);
|
||||||
|
transition: bottom .3s .2s ease;
|
||||||
|
}
|
||||||
&.plyr--hover .plyr__controls {
|
&.plyr--hover .plyr__controls {
|
||||||
transform: translateY(0);
|
transform: translateY(0);
|
||||||
}
|
}
|
||||||
.plyr__captions {
|
|
||||||
bottom: ($control-spacing / 2);
|
|
||||||
transition: bottom .3s .2s ease;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Captions
|
// Captions
|
||||||
&--fullscreen .plyr__captions,
|
&.plyr--fullscreen .plyr__captions,
|
||||||
&--fullscreen-active .plyr__captions,
|
&--fullscreen-active .plyr__captions,
|
||||||
&--fullscreen--hide-controls&--fullscreen-active&--playing&--hover &__captions {
|
&--fullscreen--hide-controls.plyr--fullscreen-active.plyr--playing.plyr--hover .plyr__captions {
|
||||||
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user