X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fsass%2Fplayer%2Fpeertube-skin.scss;h=836be23ccece241e7d02283ba37dea1e8cde962d;hb=610d0be13b3d01f653ef269271dd667a57c85ef2;hp=de6501962f1be234b5cbcb6519bc9d98f848931a;hpb=2a19a1e4de848c8c60ef4b4e606770220b3a28df;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/sass/player/peertube-skin.scss b/client/src/sass/player/peertube-skin.scss index de6501962..836be23cc 100644 --- a/client/src/sass/player/peertube-skin.scss +++ b/client/src/sass/player/peertube-skin.scss @@ -2,6 +2,12 @@ @import '_mixins'; @import './_player-variables'; +body { + --embedForegroundColor: #{$primary-foreground-color}; + + --embedBigPlayBackgroundColor: #{$primary-background-color}; +} + @mixin big-play-button-triangle-size($triangle-size) { width: $triangle-size; height: $triangle-size; @@ -11,25 +17,26 @@ .video-js.vjs-peertube-skin { font-size: $font-size; - color: $primary-foreground-color; + color: var(--embedForegroundColor); .vjs-dock-text { padding-right: 10px; + background: linear-gradient(to bottom, rgba(0, 0, 0, .6) 0, rgba(0, 0, 0, 0.2) 70%, rgba(0, 0, 0, 0) 100%); } + .vjs-dock-title, .vjs-dock-description { - font-size: 11px; + text-shadow: 0 0 2px rgba(0, 0, 0, .5); + } - &::before, &::after { - display: inline-block; - content: '\1F308'; - } + .vjs-dock-description { + font-size: 11px; - &::before { + .text::before { margin-right: 4px; } - &::after { + .text::after { margin-left: 4px; transform: scale(-1, 1); } @@ -54,7 +61,7 @@ $big-play-width: 1.2em; $big-play-height: 1.2em; - border: 6px solid #fff; + border: 2px solid #fff; border-radius: 100%; left: 50%; @@ -103,6 +110,18 @@ } } + // Show poster and controls when playing audio-only content + &.vjs-playing-audio-only-content { + .vjs-poster { + display: block; + visibility: visible; + } + + .vjs-control-bar { + opacity: $primary-foreground-opacity-hover; + } + } + // Hide the big play button on autoplay &.vjs-has-autoplay { .vjs-big-play-button { @@ -113,7 +132,7 @@ .vjs-control-bar, .vjs-big-play-button, .vjs-settings-dialog { - background-color: rgba($primary-background-color, 0.5); + background-color: var(--embedBigPlayBackgroundColor); } .vjs-poster { @@ -135,9 +154,11 @@ .vjs-resolution-control, .vjs-fullscreen-control, .vjs-peertube-link, + .vjs-theater-control, .vjs-settings { - color: $primary-foreground-color !important; + color: var(--embedForegroundColor) !important; + opacity: $primary-foreground-opacity; transition: opacity .1s; @@ -149,7 +170,7 @@ .vjs-current-time, .vjs-duration, .vjs-peertube { - color: $primary-foreground-color; + color: var(--embedForegroundColor); opacity: $primary-foreground-opacity; } @@ -169,7 +190,7 @@ transition: none; .vjs-play-progress { - background: $primary-foreground-color; + background: var(--embedForegroundColor); // Not display the circle if the progress is not hovered &::before { @@ -194,7 +215,7 @@ } .vjs-progress-control:hover .vjs-slider, - .vjs-slider.vjs-sliding { + .vjs-progress-control .vjs-slider.vjs-sliding { height: 5px; .vjs-play-progress::before { @@ -208,7 +229,8 @@ cursor: pointer; font-size: $font-size; - margin-right: 5px; + margin-left: 1em; + width: 3em; } .vjs-time-control { @@ -218,6 +240,7 @@ font-size: $font-size; display: inline-block; padding: 0; + margin-left: .5em; .vjs-current-time-display { line-height: calc(#{$control-bar-height} + 1px); @@ -247,6 +270,8 @@ width: 100%; line-height: $control-bar-height; text-align: right; + margin-right: 6px; + overflow: hidden; .vjs-peertube-displayed { display: block; @@ -256,14 +281,41 @@ display: none; } - .download-speed-number, .upload-speed-number, .peers-number { + .download-speed-number, .upload-speed-number, .peers-number, .http-fallback { font-weight: $font-semibold; } - .download-speed-text, .upload-speed-text, .peers-text { + .download-speed-text, .upload-speed-text, .peers-text, .http-fallback { margin-right: 15px; } + .icon { + &.icon-download { + background-image: url('#{$assets-path}/player/images/arrow-down.svg'); + } + + &.icon-upload { + background-image: url('#{$assets-path}/player/images/arrow-up.svg'); + } + } + } + + .vjs-next-video { + line-height: $control-bar-height; + text-align: right; + + .icon { + &.icon-next { + mask-image: url('#{$assets-path}/player/images/next.svg'); + background-color: white; + mask-size: cover; + transform: scale(2.2); + } + } + } + + .vjs-peertube, + .vjs-next-video { .icon { display: inline-block; width: 15px; @@ -271,17 +323,8 @@ background-size: contain; vertical-align: middle; background-repeat: no-repeat; - margin-right: 6px; position: relative; top: -1px; - - &.icon-download { - background-image: url('#{$assets-path}/player/images/arrow-down.svg'); - } - - &.icon-upload { - background-image: url('#{$assets-path}/player/images/arrow-up.svg'); - } } } @@ -348,6 +391,11 @@ max-height: 14px; height: 100%; } + + &:focus { + text-shadow: none; + box-shadow: none; + } } .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active, @@ -394,6 +442,28 @@ padding: 0 5px; } + .vjs-theater-control { + @include disable-outline; + + width: 37px; + margin-right: 1px; + cursor: pointer; + + .vjs-icon-placeholder { + transition: transform 0.2s ease; + display: inline-block; + width: 22px; + height: 22px; + vertical-align: middle; + background: url('#{$assets-path}/player/images/theater.svg') no-repeat; + background-size: contain; + + &::before { + content: ''; + } + } + } + .vjs-fullscreen-control { @include disable-outline; @@ -440,6 +510,10 @@ } @media screen and (max-width: 750px) { + .vjs-theater-control { + display: none; + } + .vjs-dock-text { font-size: 16px; } @@ -450,7 +524,7 @@ .vjs-big-play-button { font-size: 5em; - border-width: 5px; + border-width: 3px; .vjs-icon-placeholder::before { @include big-play-button-triangle-size(32px); @@ -465,17 +539,13 @@ .vjs-big-play-button { font-size: 4.5em; - border-width: 4.5px; + border-width: 2.5px; .vjs-icon-placeholder::before { @include big-play-button-triangle-size(27px); } } - .vjs-playback-rate { - display: none; - } - .vjs-peertube { padding: 0 !important; @@ -492,7 +562,7 @@ .vjs-big-play-button { font-size: 3em; - border-width: 3px; + border-width: 2px; .vjs-icon-placeholder::before { @include big-play-button-triangle-size(20px); @@ -511,6 +581,24 @@ width: 33px; } } + + // Theater mode is enabled + &.vjs-theater-enabled { + .vjs-theater-control { + width: 30px; + + .vjs-icon-placeholder { + transform: scale(0.8); + } + } + } + + // On fullscreen, hide theater control + &.vjs-fullscreen { + .vjs-theater-control { + display: none; + } + } } // Play/pause animations @@ -558,4 +646,4 @@ .vjs-error-display { display: block; } -} \ No newline at end of file +}