aboutsummaryrefslogtreecommitdiffstats
path: root/src/sass/components
diff options
context:
space:
mode:
Diffstat (limited to 'src/sass/components')
-rw-r--r--src/sass/components/captions.scss9
-rw-r--r--src/sass/components/control.scss40
-rw-r--r--src/sass/components/controls.scss75
-rw-r--r--src/sass/components/embed.scss5
-rw-r--r--src/sass/components/menus.scss83
-rw-r--r--src/sass/components/poster.scss6
-rw-r--r--src/sass/components/progress.scss28
-rw-r--r--src/sass/components/sliders.scss18
-rw-r--r--src/sass/components/tooltips.scss2
-rw-r--r--src/sass/components/video.scss1
-rw-r--r--src/sass/components/volume.scss7
11 files changed, 161 insertions, 113 deletions
diff --git a/src/sass/components/captions.scss b/src/sass/components/captions.scss
index 9dfc2be8..1cfca92e 100644
--- a/src/sass/components/captions.scss
+++ b/src/sass/components/captions.scss
@@ -17,11 +17,10 @@
padding: $plyr-control-spacing;
position: absolute;
text-align: center;
- transform: translateY(-($plyr-control-spacing * 4));
transition: transform 0.4s ease-in-out;
width: 100%;
- span {
+ .plyr__caption {
background: $plyr-captions-bg;
border-radius: 2px;
box-decoration-break: clone;
@@ -53,6 +52,8 @@
display: block;
}
-.plyr--hide-controls .plyr__captions {
- transform: translateY(-($plyr-control-spacing * 1.5));
+// If the lower controls are shown and not empty
+.plyr:not(.plyr--hide-controls) .plyr__controls:not(:empty) ~ .plyr__captions {
+ transform: translateY(-($plyr-control-spacing * 4));
}
+
diff --git a/src/sass/components/control.scss b/src/sass/components/control.scss
index 52716805..1c9aab2b 100644
--- a/src/sass/components/control.scss
+++ b/src/sass/components/control.scss
@@ -33,15 +33,25 @@
}
}
+// Remove any link styling
+a.plyr__control {
+ text-decoration: none;
+
+ &::after,
+ &::before {
+ display: none;
+ }
+}
+
// Change icons on state change
-.plyr__control[aria-pressed='false'] .icon--pressed,
-.plyr__control[aria-pressed='true'] .icon--not-pressed,
-.plyr__control[aria-pressed='false'] .label--pressed,
-.plyr__control[aria-pressed='true'] .label--not-pressed {
+.plyr__control:not(.plyr__control--pressed) .icon--pressed,
+.plyr__control.plyr__control--pressed .icon--not-pressed,
+.plyr__control:not(.plyr__control--pressed) .label--pressed,
+.plyr__control.plyr__control--pressed .label--not-pressed {
display: none;
}
-// Audio styles
+// Audio control
.plyr--audio .plyr__control {
&.plyr__tab-focus,
&:hover,
@@ -51,6 +61,21 @@
}
}
+// Video control
+.plyr--video .plyr__control {
+ svg {
+ filter: drop-shadow(0 1px 1px rgba(#000, 0.15));
+ }
+
+ // Hover and tab focus
+ &.plyr__tab-focus,
+ &:hover,
+ &[aria-expanded='true'] {
+ background: $plyr-video-control-bg-hover;
+ color: $plyr-video-control-color-hover;
+ }
+}
+
// Large play button (video only)
.plyr__control--overlaid {
background: rgba($plyr-video-control-bg-hover, 0.8);
@@ -66,11 +91,10 @@
transform: translate(-50%, -50%);
z-index: 2;
+ // Offset icon to make the play button look right
svg {
- height: $plyr-control-icon-size-large;
- left: 2px; // Offset to make the play button look right
+ left: 2px;
position: relative;
- width: $plyr-control-icon-size-large;
}
&:hover,
diff --git a/src/sass/components/controls.scss b/src/sass/components/controls.scss
index 91db1b20..41426e8b 100644
--- a/src/sass/components/controls.scss
+++ b/src/sass/components/controls.scss
@@ -11,79 +11,78 @@
.plyr__controls {
align-items: center;
display: flex;
+ justify-content: flex-end;
text-align: center;
// Spacing
> .plyr__control,
.plyr__progress,
.plyr__time,
- .plyr__menu {
+ .plyr__menu,
+ .plyr__volume {
margin-left: ($plyr-control-spacing / 2);
+ }
- &:first-child,
- &:first-child + [data-plyr='pause'] {
- margin-left: 0;
- }
+ .plyr__menu + .plyr__control,
+ > .plyr__control + .plyr__menu,
+ > .plyr__control + .plyr__control,
+ .plyr__progress + .plyr__control {
+ margin-left: floor($plyr-control-spacing / 4);
}
- .plyr__volume {
- margin-left: ($plyr-control-spacing / 2);
+ > .plyr__control:first-child,
+ > .plyr__control:first-child + [data-plyr='pause'] {
+ margin-left: 0;
+ margin-right: auto;
+ }
+
+ // Hide empty controls
+ &:empty {
+ display: none;
}
@media (min-width: $plyr-bp-sm) {
> .plyr__control,
+ .plyr__menu,
.plyr__progress,
.plyr__time,
- .plyr__menu {
+ .plyr__volume {
margin-left: $plyr-control-spacing;
}
-
- > .plyr__control + .plyr__control,
- .plyr__menu + .plyr__control,
- > .plyr__control + .plyr__menu {
- margin-left: ($plyr-control-spacing / 2);
- }
}
}
+// Audio controls
+.plyr--audio .plyr__controls {
+ background: $plyr-audio-controls-bg;
+ border-radius: inherit;
+ color: $plyr-audio-control-color;
+ padding: $plyr-control-spacing;
+}
+
// Video controls
.plyr--video .plyr__controls {
- background: linear-gradient(rgba($plyr-video-controls-bg, 0), rgba($plyr-video-controls-bg, 0.7));
+ background: linear-gradient(
+ rgba($plyr-video-controls-bg, 0),
+ rgba($plyr-video-controls-bg, 0.7)
+ );
border-bottom-left-radius: inherit;
border-bottom-right-radius: inherit;
bottom: 0;
color: $plyr-video-control-color;
left: 0;
- padding: ($plyr-control-spacing * 3.5) $plyr-control-spacing $plyr-control-spacing;
+ padding: ($plyr-control-spacing * 2) ($plyr-control-spacing / 2) ($plyr-control-spacing / 2);
position: absolute;
right: 0;
transition: opacity 0.4s ease-in-out, transform 0.4s ease-in-out;
- z-index: 2;
-
- .plyr__control {
- svg {
- filter: drop-shadow(0 1px 1px rgba(#000, 0.15));
- }
+ z-index: 3;
- // Hover and tab focus
- &.plyr__tab-focus,
- &:hover,
- &[aria-expanded='true'] {
- background: $plyr-video-control-bg-hover;
- color: $plyr-video-control-color-hover;
- }
+ @media (min-width: $plyr-bp-sm) {
+ padding: ($plyr-control-spacing * 3.5) $plyr-control-spacing $plyr-control-spacing;
}
}
-// Audio controls
-.plyr--audio .plyr__controls {
- background: $plyr-audio-controls-bg;
- border-radius: inherit;
- color: $plyr-audio-control-color;
- padding: $plyr-control-spacing;
-}
-
-// Hide controls
+// Hide video controls
.plyr--video.plyr--hide-controls .plyr__controls {
opacity: 0;
pointer-events: none;
diff --git a/src/sass/components/embed.scss b/src/sass/components/embed.scss
index be807739..25431caf 100644
--- a/src/sass/components/embed.scss
+++ b/src/sass/components/embed.scss
@@ -27,11 +27,6 @@ $embed-padding: ((100 / 16) * 9);
$height: 240;
$offset: to-percentage(($height - $embed-padding) / ($height / 50));
- // To allow mouse events to be captured if full support
- iframe {
- pointer-events: none;
- }
-
// Only used for Vimeo
> .plyr__video-embed__container {
padding-bottom: to-percentage($height);
diff --git a/src/sass/components/menus.scss b/src/sass/components/menus.scss
index 3ad4039a..b8c85284 100644
--- a/src/sass/components/menus.scss
+++ b/src/sass/components/menus.scss
@@ -39,7 +39,8 @@
> div {
overflow: hidden;
- transition: height 0.35s cubic-bezier(0.4, 0, 0.2, 1), width 0.35s cubic-bezier(0.4, 0, 0.2, 1);
+ transition: height 0.35s cubic-bezier(0.4, 0, 0.2, 1),
+ width 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
// Arrow
@@ -54,18 +55,16 @@
width: 0;
}
- ul {
- list-style: none;
- margin: 0;
- overflow: hidden;
+ [role='menu'] {
padding: $plyr-control-padding;
+ }
- li {
- margin-top: 2px;
+ [role='menuitem'],
+ [role='menuitemradio'] {
+ margin-top: 2px;
- &:first-child {
- margin-top: 0;
- }
+ &:first-child {
+ margin-top: 0;
}
}
@@ -75,10 +74,17 @@
color: $plyr-menu-color;
display: flex;
font-size: $plyr-font-size-menu;
- padding: ceil($plyr-control-padding / 2) ($plyr-control-padding * 2);
+ padding: ceil($plyr-control-padding / 2)
+ ceil($plyr-control-padding * 1.5);
user-select: none;
width: 100%;
+ > span {
+ align-items: inherit;
+ display: flex;
+ width: 100%;
+ }
+
&::after {
border: 4px solid transparent;
content: '';
@@ -135,50 +141,49 @@
}
}
- label.plyr__control {
+ .plyr__control[role='menuitemradio'] {
padding-left: $plyr-control-padding;
- input[type='radio'] + span {
- background: rgba(#000, 0.1);
+ &::before,
+ &::after {
border-radius: 100%;
+ }
+
+ &::before {
+ background: rgba(#000, 0.1);
+ content: '';
display: block;
flex-shrink: 0;
height: 16px;
margin-right: $plyr-control-spacing;
- position: relative;
transition: all 0.3s ease;
width: 16px;
-
- &::after {
- background: #fff;
- border-radius: 100%;
- content: '';
- height: 6px;
- left: 5px;
- opacity: 0;
- position: absolute;
- top: 5px;
- transform: scale(0);
- transition: transform 0.3s ease, opacity 0.3s ease;
- width: 6px;
- }
}
- input[type='radio']:checked + span {
- background: $plyr-color-main;
+ &::after {
+ background: #fff;
+ border: 0;
+ height: 6px;
+ left: 12px;
+ opacity: 0;
+ top: 50%;
+ transform: translateY(-50%) scale(0);
+ transition: transform 0.3s ease, opacity 0.3s ease;
+ width: 6px;
+ }
+ &[aria-checked='true'] {
+ &::before {
+ background: $plyr-color-main;
+ }
&::after {
opacity: 1;
- transform: scale(1);
+ transform: translateY(-50%) scale(1);
}
}
- input[type='radio']:focus + span {
- @include plyr-tab-focus();
- }
-
- &.plyr__tab-focus input[type='radio'] + span,
- &:hover input[type='radio'] + span {
+ &.plyr__tab-focus::before,
+ &:hover::before {
background: rgba(#000, 0.1);
}
}
@@ -188,7 +193,7 @@
align-items: center;
display: flex;
margin-left: auto;
- margin-right: -$plyr-control-padding;
+ margin-right: -($plyr-control-padding - 2);
overflow: hidden;
padding-left: ceil($plyr-control-padding * 3.5);
pointer-events: none;
diff --git a/src/sass/components/poster.scss b/src/sass/components/poster.scss
index b2518a78..9b239d4f 100644
--- a/src/sass/components/poster.scss
+++ b/src/sass/components/poster.scss
@@ -6,17 +6,17 @@
background-color: #000;
background-position: 50% 50%;
background-repeat: no-repeat;
- background-size: 100% 100%;
+ background-size: contain;
height: 100%;
left: 0;
opacity: 0;
position: absolute;
top: 0;
- transition: opacity 0.3s ease;
+ transition: opacity 0.2s ease;
width: 100%;
z-index: 1;
}
-.plyr--stopped .plyr__poster {
+.plyr--stopped.plyr__poster-enabled .plyr__poster {
opacity: 1;
}
diff --git a/src/sass/components/progress.scss b/src/sass/components/progress.scss
index 7490ee17..f28a19ca 100644
--- a/src/sass/components/progress.scss
+++ b/src/sass/components/progress.scss
@@ -3,10 +3,19 @@
// --------------------------------------------------------------
.plyr__progress {
- display: flex;
flex: 1;
+ left: $plyr-range-thumb-height / 2;
+ margin-right: $plyr-range-thumb-height;
position: relative;
+ input[type='range'],
+ &__buffer {
+ margin-left: -($plyr-range-thumb-height / 2);
+ margin-right: -($plyr-range-thumb-height / 2);
+ // Offset the range thumb in order to be able to calculate the relative progress (#954)
+ width: calc(100% + #{$plyr-range-thumb-height});
+ }
+
input[type='range'] {
position: relative;
z-index: 2;
@@ -19,28 +28,27 @@
}
}
-.plyr__progress--buffer {
+.plyr__progress__buffer {
-webkit-appearance: none; /* stylelint-disable-line */
background: transparent;
border: 0;
border-radius: 100px;
height: $plyr-range-track-height;
left: 0;
- margin: -($plyr-range-track-height / 2) 0 0;
+ margin-top: -($plyr-range-track-height / 2);
padding: 0;
position: absolute;
top: 50%;
- width: 100%;
&::-webkit-progress-bar {
background: transparent;
- transition: width 0.2s ease;
}
&::-webkit-progress-value {
background: currentColor;
border-radius: 100px;
min-width: $plyr-range-track-height;
+ transition: width 0.2s ease;
}
// Mozilla
@@ -58,17 +66,17 @@
}
}
-.plyr--video .plyr__progress--buffer {
+.plyr--video .plyr__progress__buffer {
box-shadow: 0 1px 1px rgba(#000, 0.15);
color: $plyr-video-progress-buffered-bg;
}
-.plyr--audio .plyr__progress--buffer {
+.plyr--audio .plyr__progress__buffer {
color: $plyr-audio-progress-buffered-bg;
}
// Loading state
-.plyr--loading .plyr__progress--buffer {
+.plyr--loading .plyr__progress__buffer {
animation: plyr-progress 1s linear infinite;
background-image: linear-gradient(
-45deg,
@@ -85,10 +93,10 @@
color: transparent;
}
-.plyr--video.plyr--loading .plyr__progress--buffer {
+.plyr--video.plyr--loading .plyr__progress__buffer {
background-color: $plyr-video-progress-buffered-bg;
}
-.plyr--audio.plyr--loading .plyr__progress--buffer {
+.plyr--audio.plyr--loading .plyr__progress__buffer {
background-color: $plyr-audio-progress-buffered-bg;
}
diff --git a/src/sass/components/sliders.scss b/src/sass/components/sliders.scss
index b9264b05..ee64271b 100644
--- a/src/sass/components/sliders.scss
+++ b/src/sass/components/sliders.scss
@@ -19,7 +19,11 @@
&::-webkit-slider-runnable-track {
@include plyr-range-track();
- background-image: linear-gradient(to right, currentColor var(--value, 0%), transparent var(--value, 0%));
+ background-image: linear-gradient(
+ to right,
+ currentColor var(--value, 0%),
+ transparent var(--value, 0%)
+ );
}
&::-webkit-slider-thumb {
@@ -140,15 +144,21 @@
// Pressed styles
&:active {
&::-webkit-slider-thumb {
- @include plyr-range-thumb-active($plyr-audio-range-thumb-shadow-color);
+ @include plyr-range-thumb-active(
+ $plyr-audio-range-thumb-shadow-color
+ );
}
&::-moz-range-thumb {
- @include plyr-range-thumb-active($plyr-audio-range-thumb-shadow-color);
+ @include plyr-range-thumb-active(
+ $plyr-audio-range-thumb-shadow-color
+ );
}
&::-ms-thumb {
- @include plyr-range-thumb-active($plyr-audio-range-thumb-shadow-color);
+ @include plyr-range-thumb-active(
+ $plyr-audio-range-thumb-shadow-color
+ );
}
}
}
diff --git a/src/sass/components/tooltips.scss b/src/sass/components/tooltips.scss
index 537e2444..80603bb5 100644
--- a/src/sass/components/tooltips.scss
+++ b/src/sass/components/tooltips.scss
@@ -10,6 +10,7 @@
color: $plyr-tooltip-color;
font-size: $plyr-font-size-small;
font-weight: $plyr-font-weight-regular;
+ left: 50%;
line-height: 1.3;
margin-bottom: ($plyr-tooltip-padding * 2);
opacity: 0;
@@ -64,6 +65,7 @@
// Last tooltip
.plyr__controls > .plyr__control:last-child .plyr__tooltip {
+ left: auto;
right: 0;
transform: translate(0, 10px) scale(0.8);
transform-origin: 100% 100%;
diff --git a/src/sass/components/video.scss b/src/sass/components/video.scss
index 3caf866d..c3dc4152 100644
--- a/src/sass/components/video.scss
+++ b/src/sass/components/video.scss
@@ -3,6 +3,7 @@
// --------------------------------------------------------------
.plyr--video {
+ background: #000;
overflow: hidden;
// Menu open
diff --git a/src/sass/components/volume.scss b/src/sass/components/volume.scss
index d22b7cba..82a6dd36 100644
--- a/src/sass/components/volume.scss
+++ b/src/sass/components/volume.scss
@@ -3,20 +3,23 @@
// --------------------------------------------------------------
.plyr__volume {
+ align-items: center;
+ display: flex;
flex: 1;
position: relative;
input[type='range'] {
+ margin-left: ($plyr-control-spacing / 2);
position: relative;
z-index: 2;
}
@media (min-width: $plyr-bp-sm) {
- max-width: 50px;
+ max-width: 90px;
}
@media (min-width: $plyr-bp-md) {
- max-width: 80px;
+ max-width: 110px;
}
}