]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/+videos/+video-watch/video-watch.component.scss
Add video-playlist-element.created hook (#4196)
[github/Chocobozzz/PeerTube.git] / client / src / app / +videos / +video-watch / video-watch.component.scss
index b2bd04cf30fc64fe7556b8e256e4eb8de820bb3d..4a2e05c62f8a0e5244e3903fb386e427a25ac416 100644 (file)
@@ -3,15 +3,15 @@
 @import '_bootstrap-variables';
 @import '_miniature';
 
-$player-factor: 1.7; // 16/9
+$player-factor: 16/9;
 $video-info-margin-left: 44px;
 
-@function getPlayerHeight($width){
-  @return calc(#{$width} / #{$player-factor})
+@function getPlayerHeight ($width) {
+  @return calc(#{$width} / #{$player-factor});
 }
 
-@function getPlayerWidth($height){
-  @return calc(#{$height} * #{$player-factor})
+@function getPlayerWidth ($height) {
+  @return calc(#{$height} * #{$player-factor});
 }
 
 @mixin playlist-below-player {
@@ -24,16 +24,17 @@ $video-info-margin-left: 44px;
 
 .root {
   &.theater-enabled #video-wrapper {
+    $height: calc(100vh - #{$header-height} - #{$theater-bottom-space});
+
     flex-direction: column;
     justify-content: center;
 
     #videojs-wrapper {
       width: 100%;
+      height: $height;
     }
 
     ::ng-deep .video-js {
-      $height: calc(100vh - #{$header-height} - #{$theater-bottom-space});
-
       height: $height;
       width: 100%;
       max-width: initial;
@@ -49,7 +50,13 @@ $video-info-margin-left: 44px;
   font-weight: $font-semibold;
 }
 
+.placeholder-image {
+  height: 100%;
+}
+
 #video-wrapper {
+  $video-height: 66vh;
+
   background-color: #000;
   display: flex;
   justify-content: center;
@@ -58,6 +65,7 @@ $video-info-margin-left: 44px;
     display: flex;
     justify-content: center;
     flex-grow: 1;
+    height: $video-height;
   }
 
   .remote-server-down {
@@ -84,7 +92,7 @@ $video-info-margin-left: 44px;
   ::ng-deep .video-js {
     width: 100%;
     max-width: getPlayerWidth(66vh);
-    height: 66vh;
+    height: $video-height;
 
     // VideoJS create an inner video player
     video {
@@ -94,10 +102,14 @@ $video-info-margin-left: 44px;
   }
 
   @media screen and (max-width: 600px) {
+    #videojs-wrapper {
+      height: getPlayerHeight(100vw) !important;
+    }
+
     .remote-server-down,
     ::ng-deep .video-js {
       width: 100vw;
-      height: getPlayerHeight(100vw)
+      height: getPlayerHeight(100vw) !important;
     }
   }
 }
@@ -133,12 +145,14 @@ $video-info-margin-left: 44px;
     .video-info-first-row {
       display: flex;
 
-      > div:first-child {
+      > div:first-child {
         flex-grow: 1;
       }
 
       .video-info-name {
-        margin-right: 30px;
+        @include peertube-word-wrap;
+
+        @include margin-right(30px);
         min-height: 40px; // Align with the action buttons
         font-size: 27px;
         font-weight: $font-semibold;
@@ -153,9 +167,10 @@ $video-info-margin-left: 44px;
       }
 
       .video-info-date-views {
-        align-self: start;
+        @include margin-right(10px);
+
         margin-bottom: 10px;
-        margin-right: 10px;
+        align-self: start;
         font-size: 1em;
       }
 
@@ -165,18 +180,13 @@ $video-info-margin-left: 44px;
 
         a {
           @include disable-default-a-behaviour;
+          @include peertube-word-wrap;
 
           color: pvar(--mainForegroundColor);
 
           &:hover {
             opacity: 0.8;
           }
-
-          img {
-            @include avatar(18px);
-
-            margin: -2px 5px 0 0;
-          }
         }
 
         .video-info-channel-left {
@@ -189,7 +199,7 @@ $video-info-margin-left: 44px;
             line-height: 1.37;
 
             a:nth-of-type(2) {
-              font-weight: 500;
+              font-weight: $font-regular;
               font-size: 90%;
             }
 
@@ -200,20 +210,19 @@ $video-info-margin-left: 44px;
         }
 
         my-subscribe-button {
-          margin-left: 5px;
+          @include margin-left(5px);
         }
       }
 
-      my-feed {
-        margin-left: 5px;
-        margin-top: 1px;
-      }
-
       .video-actions-rates {
-        margin: 0 0 10px 0;
+        @include margin-left(auto);
+        @include margin-right(0);
+
+        margin-top: 0;
+        margin-bottom: 10px;
+
         align-items: start;
         width: max-content;
-        margin-left: auto;
 
         .video-actions {
           height: 40px; // Align with the title
@@ -223,7 +232,7 @@ $video-info-margin-left: 44px;
           .action-button:not(:first-child),
           .action-dropdown,
           my-video-actions-dropdown {
-            margin-left: 5px;
+            @include margin-left(5px);
           }
 
           ::ng-deep.action-button {
@@ -234,7 +243,7 @@ $video-info-margin-left: 44px;
             font-size: 100%;
             font-weight: $font-semibold;
             display: inline-block;
-            padding: 0 10px 0 10px;
+            padding: 0 10px;
             white-space: nowrap;
             background-color: transparent !important;
             color: pvar(--actionButtonColor);
@@ -301,7 +310,7 @@ $video-info-margin-left: 44px;
             }
 
             .icon-text {
-              margin-left: 3px;
+              @include margin-left(3px);
             }
           }
         }
@@ -337,20 +346,24 @@ $video-info-margin-left: 44px;
     }
 
     .video-info-description {
-      margin: 20px 0;
-      margin-left: $video-info-margin-left;
+      @include margin-left($video-info-margin-left);
+      @include margin-right(0);
+
+      margin-top: 20px;
+      margin-bottom: 20px;
       font-size: 15px;
 
       .video-info-description-html {
         @include peertube-word-wrap;
 
-        /deep/ a {
+        ::ng-deep a {
           text-decoration: none;
         }
       }
 
-      .glyphicon, .description-loading {
-        margin-left: 3px;
+      .glyphicon,
+      .description-loading {
+        @include margin-left(3px);
       }
 
       .description-loading {
@@ -371,7 +384,7 @@ $video-info-margin-left: 44px;
     }
 
     .video-attributes {
-      margin-left: $video-info-margin-left;
+      @include margin-left($video-info-margin-left);
     }
 
     .video-attributes .video-attribute {
@@ -380,8 +393,9 @@ $video-info-margin-left: 44px;
       margin-bottom: 12px;
 
       .video-attribute-label {
+        @include padding-right(5px);
+
         min-width: 142px;
-        padding-right: 5px;
         display: inline-block;
         color: pvar(--greyForegroundColor);
         font-weight: $font-bold;
@@ -399,43 +413,19 @@ $video-info-margin-left: 44px;
       &.video-attribute-tags {
         .video-attribute-value:not(:nth-child(2)) {
           &::before {
-            content: ', '
+            content: ', ';
           }
         }
       }
     }
   }
+}
 
-  ::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: 0 !important;
-    }
-
-    .video-miniature {
-      display: flex;
-      width: max-content;
-      height: 100%;
-      padding-bottom: 20px;
-      flex-wrap: wrap;
-    }
+my-recommended-videos {
+  @include padding-left(15px);
 
-    .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;
-      }
-    }
-  }
+  display: block;
+  min-width: 250px;
 }
 
 my-video-comments {
@@ -452,14 +442,15 @@ my-video-comments {
 
 @media screen and (max-width: $small-view) {
   .privacy-concerns {
-    margin-left: $menu-width - 15px; // Menu is absolute
+    @include margin-left($menu-width - 15px); // Menu is absolute
   }
 }
 
 :host-context(.expanded) {
   .privacy-concerns {
+    @include margin-left(-15px);
+
     width: 100%;
-    margin-left: -15px;
   }
 }
 
@@ -493,8 +484,9 @@ my-video-comments {
   }
 
   .privacy-concerns-button {
+    @include margin-left(auto);
+
     padding: 5px 8px 5px 7px;
-    margin-left: auto;
     border-radius: 3px;
     white-space: nowrap;
     cursor: pointer;
@@ -507,8 +499,9 @@ my-video-comments {
   }
 
   .privacy-concerns-okay {
+    @include margin-left(10px);
+
     background-color: pvar(--mainColor);
-    margin-left: 10px;
   }
 }
 
@@ -529,6 +522,7 @@ my-video-comments {
   }
 }
 
+// Use the same breakpoint than in the typescript component to display the other video miniatures as row
 @media screen and (max-width: 1100px) {
   #video-wrapper {
     flex-direction: column;
@@ -541,15 +535,10 @@ my-video-comments {
 
   .video-bottom {
     flex-direction: column;
+  }
 
-    ::ng-deep .other-videos {
-      padding-left: 0 !important;
-
-      ::ng-deep .video-miniature  {
-        flex-direction: row;
-        width: auto;
-      }
-    }
+  my-recommended-videos {
+    @include padding-left(0);
   }
 }
 
@@ -571,10 +560,6 @@ my-video-comments {
     }
   }
 
-  ::ng-deep .other-videos .video-miniature  {
-    flex-direction: column;
-  }
-
   .privacy-concerns {
     width: 100%;
   }