X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fsass%2Fplayer%2Fpeertube-skin.scss;h=c010f72975b392bafb9a080de6fa95deaeb44e85;hb=35f676e5d3e5e242e84ed63da2cc78117079c7cb;hp=4bf48a5704d546b077b6e47d23056a9f1958565d;hpb=282e61e6c11f79e919c543871783fe1a00298d18;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/sass/player/peertube-skin.scss b/client/src/sass/player/peertube-skin.scss index 4bf48a570..c010f7297 100644 --- a/client/src/sass/player/peertube-skin.scss +++ b/client/src/sass/player/peertube-skin.scss @@ -17,10 +17,17 @@ body { .video-js.vjs-peertube-skin { font-size: $font-size; - color: var(--embedForegroundColor); + color: pvar(--embedForegroundColor); .vjs-dock-text { - padding-right: 10px; + padding: $dock-padding; + padding-right: 60px; + 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 { + text-shadow: 0 0 2px rgba(0, 0, 0, .5); } .vjs-dock-description { @@ -36,10 +43,6 @@ body { } } - .vjs-button > .vjs-icon-placeholder::before { - line-height: $control-bar-height; - } - .vjs-volume-level::before { content: ''; /* Remove Circle From Progress Bar */ } @@ -49,13 +52,13 @@ body { } .vjs-big-play-button { - outline: 0; - font-size: 6em; - $big-play-width: 1.2em; $big-play-height: 1.2em; - border: 4px solid #fff; + outline: 0; + font-size: 6em; + + border: 2px solid #fff; border-radius: 100%; left: 50%; @@ -69,7 +72,7 @@ body { &::-moz-focus-inner { border: 0; - padding: 0 + padding: 0; } .vjs-icon-placeholder::before { @@ -79,24 +82,29 @@ body { background-image: url('#{$assets-path}/player/images/big-play-button.svg'); } + &.focus-visible, &:hover { - opacity: 0.8; + background-color: var(--mainColor, #696969); } + } // Small effect when we click on the play button &.vjs-has-big-play-button-clicked { - .vjs-big-play-button, .vjs-poster { + .vjs-big-play-button, + .vjs-poster { display: block; visibility: hidden; - &.vjs-big-play-button, &.vjs-big-play-button::before { + &.vjs-big-play-button, + &.vjs-big-play-button::before { opacity: 0; transition: visibility 0.2s, opacity 0.2s; } - &.vjs-poster, &.vjs-poster::before { + &.vjs-poster, + &.vjs-poster::before { opacity: 0; transition: visibility 0.3s, opacity 0.3s; transition-delay: 0.05s; @@ -104,6 +112,26 @@ body { } } + // 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; + } + } + + // Do not display poster when video is starting + &.vjs-has-autoplay:not(.vjs-has-started) { + .vjs-poster { + opacity: 0; + visibility: hidden; + } + } + // Hide the big play button on autoplay &.vjs-has-autoplay { .vjs-big-play-button { @@ -114,7 +142,7 @@ body { .vjs-control-bar, .vjs-big-play-button, .vjs-settings-dialog { - background-color: var(--embedBigPlayBackgroundColor); + background-color: pvar(--embedBigPlayBackgroundColor); } .vjs-poster { @@ -128,6 +156,10 @@ body { box-shadow: 0 -15px 40px 10px rgba(0, 0, 0, 0.2); text-shadow: 0 0 2px rgba(0, 0, 0, 0.5); + > button:first-child { + margin-left: $first-control-bar-element-margin-left; + } + .vjs-progress-control, .vjs-play-control, .vjs-playback-rate, @@ -137,9 +169,8 @@ body { .vjs-fullscreen-control, .vjs-peertube-link, .vjs-theater-control, - .vjs-settings - { - color: var(--embedForegroundColor) !important; + .vjs-settings { + color: pvar(--embedForegroundColor) !important; opacity: $primary-foreground-opacity; transition: opacity .1s; @@ -152,7 +183,7 @@ body { .vjs-current-time, .vjs-duration, .vjs-peertube { - color: var(--embedForegroundColor); + color: pvar(--embedForegroundColor); opacity: $primary-foreground-opacity; } @@ -172,7 +203,7 @@ body { transition: none; .vjs-play-progress { - background: var(--embedForegroundColor); + background: pvar(--embedForegroundColor); // Not display the circle if the progress is not hovered &::before { @@ -189,7 +220,8 @@ body { } .vjs-load-progress { - &, & div { + &, + div { background: rgba(255, 255, 255, .2); } } @@ -210,8 +242,19 @@ body { @include disable-outline; cursor: pointer; - font-size: $font-size; - margin-right: 5px; + width: 2em; + + .vjs-icon-placeholder { + line-height: $control-bar-height; + position: relative; + top: -1px; + + &::before { + font-size: 28px; + line-height: unset; + position: relative; + } + } } .vjs-time-control { @@ -221,12 +264,13 @@ body { font-size: $font-size; display: inline-block; padding: 0; + margin-left: .5em; .vjs-current-time-display { - line-height: calc(#{$control-bar-height} + 1px); + line-height: calc(#{$control-bar-height} - 1px); &::after { - content: "/"; + content: '/'; margin: 0 1px 0 2px; } } @@ -236,8 +280,9 @@ body { font-size: $font-size; display: inline-block; padding: 0; + .vjs-duration-display { - line-height: calc(#{$control-bar-height} + 1px); + line-height: calc(#{$control-bar-height} - 1px); } } @@ -246,10 +291,18 @@ body { } } + .vjs-live-control { + line-height: $control-bar-height; + min-width: 4em; + width: inherit; + } + .vjs-peertube { width: 100%; line-height: $control-bar-height; text-align: right; + margin-right: 6px; + overflow: hidden; .vjs-peertube-displayed { display: block; @@ -259,14 +312,57 @@ body { display: none; } - .download-speed-number, .upload-speed-number, .peers-number, .http-fallback { + .download-speed-number, + .upload-speed-number, + .peers-number, + .http-fallback { font-weight: $font-semibold; } - .download-speed-text, .upload-speed-text, .peers-text, .http-fallback { + .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, + .vjs-previous-video { + line-height: $control-bar-height; + text-align: right; + + .icon { + &.icon-next, + &.icon-previous { + mask-image: url('#{$assets-path}/player/images/next.svg'); + -webkit-mask-image: url('#{$assets-path}/player/images/next.svg'); + + background-color: #fff; + mask-size: cover; + width: 11px; + height: 11px; + margin-top: -2px; + display: inline-block; + } + + &.icon-previous { + transform: rotate(180deg); + } + } + } + + .vjs-peertube { .icon { display: inline-block; width: 15px; @@ -274,17 +370,8 @@ body { 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'); - } } } @@ -305,7 +392,6 @@ body { .vjs-mute-control { @include disable-outline; - line-height: $control-bar-height; padding: 0; width: 30px; @@ -334,7 +420,7 @@ body { } .vjs-volume-bar { - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAcCAQAAACw95UnAAAAMElEQVRIx2NgoBL4n4YKGUYNHkEG4zJg1OCRYDCpBowaPJwMppbLRg0eNXjUYBLEAXWNUA6QNm1lAAAAAElFTkSuQmCC) no-repeat; + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAcCAQAAACw95UnAAAAMElEQVRIx2NgoBL4n4YKGUYNHkEG4zJg1OCRYDCpBowaPJwMppbLRg0eNXjUYBLEAXWNUA6QNm1lAAAAAElFTkSuQmCC') no-repeat; background-size: 22px 14px; height: 100%; width: 100%; @@ -345,7 +431,7 @@ body { top: 3px; .vjs-volume-level { - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAcAQAAAAAyhWABAAAAAnRSTlMAAHaTzTgAAAAZSURBVHgBYwAB/g9EUv+JokCqiaT+U4MCAPKPS7WUUOc1AAAAAElFTkSuQmCC) no-repeat; + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAcAQAAAAAyhWABAAAAAnRSTlMAAHaTzTgAAAAZSURBVHgBYwAB/g9EUv+JokCqiaT+U4MCAPKPS7WUUOc1AAAAAElFTkSuQmCC') no-repeat; background-size: 22px 14px; max-width: 22px; max-height: 14px; @@ -428,7 +514,7 @@ body { @include disable-outline; width: 37px; - margin-right: 11px; + margin-right: $first-control-bar-element-margin-left; .vjs-icon-placeholder { display: inline-block; @@ -513,9 +599,19 @@ body { display: none !important; } } + + &.vjs-live { + .vjs-duration { + display: none !important; + } + + .vjs-peertube { + display: none !important; + } + } } - @media screen and (max-width: 300px) { + @media screen and (max-width: 350px) { .vjs-dock-text { font-size: 13px; } @@ -529,7 +625,9 @@ body { } } - .vjs-volume-control { + .vjs-volume-control, + .vjs-next-video, + .vjs-previous-video { display: none !important; } @@ -540,6 +638,22 @@ body { .vjs-settings { width: 33px; } + + .vjs-control-bar { + > button:first-child { + margin-left: $first-control-bar-element-margin-left-small-width; + } + } + + .vjs-fullscreen-control { + margin-right: $first-control-bar-element-margin-left-small-width; + } + + &.vjs-live { + .vjs-current-time { + display: none !important; + } + } } // Theater mode is enabled @@ -607,3 +721,13 @@ body { display: block; } } + +.vjs-no-next-in-playlist { + .vjs-next-video { + cursor: default; + + .icon { + background-color: rgba(255, 255, 255, 0.5); + } + } +}