X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fvideos%2F%2Bvideo-watch%2Fvideo-watch.component.scss;h=977312a8363387d23f6a1e4e18fdec52e42d0799;hb=c2a89b70ce75c4955cbdb1ced6fd20a5010a8c9b;hp=4ce17209f4003f6c8db2ca93fa5c732e99813245;hpb=6d88de725321e77486788f64a2e2537f5e6ef0cd;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/videos/+video-watch/video-watch.component.scss b/client/src/app/videos/+video-watch/video-watch.component.scss index 4ce17209f..977312a83 100644 --- a/client/src/app/videos/+video-watch/video-watch.component.scss +++ b/client/src/app/videos/+video-watch/video-watch.component.scss @@ -1,15 +1,63 @@ @import '_variables'; @import '_mixins'; +@import '_bootstrap-variables'; +@import '_miniature'; -#video-element-wrapper { +$player-factor: 1.7; // 16/9 +$video-info-margin-left: 44px; + +@function getPlayerHeight($width){ + @return calc(#{$width} / #{$player-factor}) +} + +@function getPlayerWidth($height){ + @return calc(#{$height} * #{$player-factor}) +} + +@mixin playlist-below-player { + width: 100% !important; + height: auto !important; + max-height: 300px !important; + max-width: initial; + border-bottom: 1px solid $separator-border-color !important; +} + +.root { + &.theater-enabled #video-wrapper { + flex-direction: column; + justify-content: center; + + #videojs-wrapper { + width: 100%; + } + + ::ng-deep .video-js { + $height: calc(100vh - #{$header-height} - #{$theater-bottom-space}); + + height: $height; + width: 100%; + max-width: initial; + } + + my-video-watch-playlist ::ng-deep .playlist { + @include playlist-below-player; + } + } +} + +.blacklisted-label { + font-weight: $font-semibold; +} + +#video-wrapper { background-color: #000; display: flex; justify-content: center; - height: 500px; - @media screen and (max-width: 600px) { - width: 100vw; - height: calc(100vw / 1.7); // 16/9 + #videojs-wrapper { + display: flex; + justify-content: center; + flex-grow: 1; } .remote-server-down { @@ -21,8 +69,8 @@ justify-content: center; background-color: #141313; width: 100%; - height: 100%; font-size: 24px; + height: 500px; @media screen and (max-width: 1000px) { font-size: 20px; @@ -33,9 +81,10 @@ } } - /deep/ .video-js { - width: 888px; - height: 100%; + ::ng-deep .video-js { + width: 100%; + max-width: getPlayerWidth(66vh); + height: 66vh; // VideoJS create an inner video player video { @@ -44,14 +93,22 @@ } } - /deep/ .video-js.vjs-theater-enabled { - width: 100%; - height: calc(100vh - #{$header-height} - #{$theater-bottom-space}); + @media screen and (max-width: 600px) { + .remote-server-down, + ::ng-deep .video-js { + width: 100vw; + height: getPlayerHeight(100vw) + } } } .alert { text-align: center; + border-radius: 0; +} + +.flex-direction-column { + flex-direction: column; } #video-not-found { @@ -64,14 +121,14 @@ } .video-bottom { - margin-top: 40px; display: flex; + margin-top: 40px; .video-info { flex-grow: 1; - margin-right: 40px; // Set min width for flex item min-width: 1px; + max-width: 100%; .video-info-first-row { display: flex; @@ -88,10 +145,18 @@ flex-grow: 1; } + .video-info-first-row-bottom { + display: flex; + flex-wrap: wrap; + align-items: center; + width: 100%; + } + .video-info-date-views { - font-size: 16px; + align-self: start; margin-bottom: 10px; - flex-grow: 1; + margin-right: 10px; + font-size: 1em; } .video-info-channel { @@ -101,7 +166,7 @@ a { @include disable-default-a-behaviour; - color: #000; + color: var(--mainForegroundColor); &:hover { opacity: 0.8; @@ -110,155 +175,158 @@ img { @include avatar(18px); - margin: -2px 2px 0 5px; + margin: -2px 5px 0 0; } } - my-help { - display: inline-block; - } - } + .video-info-channel-left { + flex-grow: 1; - .video-info-by a { - @include disable-default-a-behaviour; - - display: inline; - align-items: center; - font-size: 13px; - color: #000; + .video-info-channel-left-links { + display: flex; + flex-direction: column; + position: relative; + line-height: 1.37; - span:hover { - opacity: 0.8; + a:nth-of-type(2) { + font-weight: 500; + font-size: 90%; + } + } } - img { - @include avatar(18px); - - margin-top: -2px; - margin-left: 7px; + my-subscribe-button { + margin-left: 5px; } } - my-video-feed { + my-feed { margin-left: 5px; margin-top: 1px; } .video-actions-rates { - display: flex; - flex-direction: column; - align-items: flex-end; + margin: 0 0 10px 0; + align-items: start; + width: max-content; + margin-left: auto; .video-actions { height: 40px; // Align with the title display: flex; align-items: center; - .action-button:not(:first-child), .action-more { - margin-left: 10px; + .action-button:not(:first-child), + .action-dropdown, + my-video-actions-dropdown { + margin-left: 5px; } - .action-button { + ::ng-deep.action-button { @include peertube-button; - @include grey-button; + @include button-with-icon(21px, 0, -1px); + @include apply-svg-color(var(--actionButtonColor)); - font-size: 15px; + font-size: 100%; font-weight: $font-semibold; display: inline-block; padding: 0 10px 0 10px; white-space: nowrap; + background-color: transparent !important; + color: var(--actionButtonColor); + text-transform: uppercase; - .icon { - @include icon(21px); - - position: relative; - top: -2px; - - &.icon-like { - background-image: url('../../../assets/images/video/like-grey.svg'); - } - - &.icon-dislike { - background-image: url('../../../assets/images/video/dislike-grey.svg'); - } + &::after { + display: none; + } - &.icon-support { - background-image: url('../../../assets/images/video/heart.svg'); - } + &:hover { + opacity: 0.9; + } - &.icon-share { - background-image: url('../../../assets/images/video/share.svg'); - } + &.action-button-like, + &.action-button-dislike { + filter: brightness(120%); - &.icon-more { - background-image: url('../../../assets/images/video/more.svg'); - top: -1px; + .count { + margin-right: 5px; } } - .icon-text { - margin-left: 3px; - } - &.action-button-like.activated { - background-color: #39CC0B; + .count { + color: $activated-action-button-color; + } - .icon-like { - background-image: url('../../../assets/images/video/like-white.svg'); + my-global-icon { + @include apply-svg-color($activated-action-button-color); } } &.action-button-dislike.activated { - background-color: #FF0000; + .count { + color: $activated-action-button-color; + } - .icon-dislike { - background-image: url('../../../assets/images/video/dislike-white.svg'); + my-global-icon { + @include apply-svg-color($activated-action-button-color); } } - } - - .action-more { - display: inline-block; - .dropdown-menu .dropdown-item { - padding: 6px 24px; + &.action-button-support { + color: var(--supportButtonColor); - .icon { - @include icon(24px); - - margin-right: 10px; - position: relative; - top: -1px; - - &.icon-download { - background-image: url('../../../assets/images/video/download-black.svg'); - } - - &.icon-edit { - background-image: url('../../../assets/images/global/edit-black.svg'); - } + my-global-icon { + @include apply-svg-color(var(--supportButtonColor)); + } + } - &.icon-alert { - background-image: url('../../../assets/images/video/alert.svg'); + &.action-button-support { + my-global-icon { + ::ng-deep path:first-child { + fill: var(--supportButtonHeartColor) !important; } + } + } - &.icon-blacklist { - background-image: url('../../../assets/images/video/blacklist.svg'); - } + &.action-button-save { + my-global-icon { + top: 0 !important; + right: -1px; } } + + .icon-text { + margin-left: 3px; + } } } + .video-info-likes-dislikes-bar-outer-container { + position: relative; + } + + .video-info-likes-dislikes-bar-inner-container { + position: absolute; + height: 20px; + } + .video-info-likes-dislikes-bar { - height: 5px; - width: 186px; - background-color: #E5E5E5; - margin-top: 25px; + $likes-bar-height: 2px; + height: $likes-bar-height; + margin-top: -$likes-bar-height; + width: 120px; + background-color: #ccc; + position: relative; + top: 10px; .likes-bar { height: 100%; - background-color: #39CC0B; + background-color: #909090; + + &.liked { + background-color: $activated-action-button-color; + } } } } @@ -266,10 +334,15 @@ .video-info-description { margin: 20px 0; + margin-left: $video-info-margin-left; font-size: 15px; .video-info-description-html { @include peertube-word-wrap; + + /deep/ a { + text-decoration: none; + } } .glyphicon, .description-loading { @@ -283,7 +356,7 @@ .video-info-description-more { cursor: pointer; font-weight: $font-semibold; - color: #585858; + color: $grey-foreground-color; font-size: 14px; .glyphicon { @@ -293,60 +366,110 @@ } } + .video-attributes { + margin-left: $video-info-margin-left; + } + .video-attributes .video-attribute { font-size: 13px; display: block; margin-bottom: 12px; .video-attribute-label { - width: 86px; + min-width: 142px; + padding-right: 5px; display: inline-block; - color: #585858; + color: $grey-foreground-color; font-weight: $font-bold; } + + a.video-attribute-value { + @include disable-default-a-behaviour; + color: var(--mainForegroundColor); + + &:hover { + opacity: 0.9; + } + } + + &.video-attribute-tags { + .video-attribute-value:not(:nth-child(2)) { + &::before { + content: ', ' + } + } + } } } - .other-videos { - padding-left: 1em; + ::ng-deep .other-videos { + padding-left: 15px; + min-width: $video-miniature-width; + + @media screen and (min-width: 1800px - (3* $video-miniature-width)) { + width: min-content; + } .title-page { - margin-top: 0; + margin: 0 !important; } - /deep/ .video-miniature { + .video-miniature { display: flex; + width: max-content; height: 100%; margin-bottom: 20px; flex-wrap: wrap; + } - .video-miniature-information { - flex-grow: 1; + .video-bottom { + @media screen and (max-width: 1800px - (3* $video-miniature-width)) { + margin-left: 1rem; + } + @media screen and (max-width: 500px) { + margin-left: 0; + margin-top: .5rem; } } } } +my-video-comments { + display: inline-block; + width: 100%; + margin-bottom: 20px; +} + // If the view is not expanded, take into account the menu .privacy-concerns { + z-index: z(dropdown) + 1; width: calc(100% - #{$menu-width}); } +@media screen and (max-width: $small-view) { + .privacy-concerns { + margin-left: $menu-width - 15px; // Menu is absolute + } +} + :host-context(.expanded) { .privacy-concerns { width: 100%; + margin-left: -15px; } } .privacy-concerns { position: fixed; bottom: 0; + z-index: z(privacymsg); padding: 5px 15px; display: flex; + flex-wrap: nowrap; align-items: center; - justify-content: flex-start; + justify-content: space-between; background-color: rgba(0, 0, 0, 0.9); color: #fff; @@ -357,7 +480,7 @@ a { @include disable-default-a-behaviour; - color: $orange-color; + color: var(--mainColor); transition: color 0.3s; &:hover { @@ -365,11 +488,11 @@ } } - .privacy-concerns-okay { - background-color: $orange-color; + .privacy-concerns-button { padding: 5px 8px 5px 7px; margin-left: auto; border-radius: 3px; + white-space: nowrap; cursor: pointer; transition: background-color 0.3s; font-weight: $font-semibold; @@ -378,72 +501,61 @@ background-color: #000; } } -} + .privacy-concerns-okay { + background-color: var(--mainColor); + margin-left: 10px; + } +} @media screen and (max-width: 1600px) { - .video-bottom { - .video-info { - margin-right: 20px; - - .video-info-first-row { - flex-direction: column; - margin-bottom: 30px; - - .video-actions-rates { - margin-top: 20px; - align-items: start; - - .video-info-likes-dislikes-bar { - margin-top: 10px; - } - } - } - - .video-info-date-views { - flex-direction: column; - margin-bottom: 30px; + .video-bottom .video-info .video-attributes .video-attribute { + margin-bottom: 5px; + } +} - .video-info-likes-dislikes-bar { - margin-top: 0; - } - } +@media screen and (max-width: 1300px) { + .privacy-concerns { + font-size: 12px; + padding: 2px 5px; - .video-attributes .video-attribute { - margin-bottom: 5px; - } + .privacy-concerns-text { + margin: 0; } } } -@media screen and (max-width: 1300px) { - .video-bottom { +@media screen and (max-width: 1100px) { + #video-wrapper { flex-direction: column; - } - - .other-videos { - padding-left: 0; + justify-content: center; - /deep/ .video-miniature .video-miniature-information { - margin-left: 10px; + my-video-watch-playlist ::ng-deep .playlist { + @include playlist-below-player; } } - .privacy-concerns { - font-size: 12px; - padding: 2px 5px; + .video-bottom { + flex-direction: column; - .privacy-concerns-text { - margin: 0; + ::ng-deep .other-videos { + padding-left: 0 !important; + + ::ng-deep .video-miniature { + flex-direction: row; + width: auto; + } } } } @media screen and (max-width: 600px) { .video-bottom { - margin: 20px 0 0 0; + margin-top: 20px !important; + margin-bottom: 20px !important; .video-info { + padding: 0; .video-info-first-row { @@ -455,6 +567,10 @@ } } + ::ng-deep .other-videos .video-miniature { + flex-direction: column; + } + .privacy-concerns { width: 100%; @@ -465,7 +581,27 @@ } @media screen and (max-width: 450px) { - .video-bottom .action-button .icon-text { - display: none !important; + .video-bottom { + .action-button .icon-text { + display: none !important; + } + + .video-info .video-info-first-row { + .video-info-name { + font-size: 18px; + } + + .video-info-date-views { + font-size: 14px; + } + + .video-actions-rates { + margin-top: 10px; + } + } + + .video-info-description { + font-size: 14px !important; + } } }