]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/+videos/+video-watch/video-watch.component.scss
Move watch action buttons in a dedicated component
[github/Chocobozzz/PeerTube.git] / client / src / app / +videos / +video-watch / video-watch.component.scss
index e8ad10a11926f3e4a7b2cb1e3fbf07e8b0252215..1d83fa139ea30dd45f8d59101e3d80967f3945ee 100644 (file)
@@ -1,17 +1,15 @@
-@import '_variables';
-@import '_mixins';
-@import '_bootstrap-variables';
-@import '_miniature';
-
-$player-factor: 16/9;
-$video-info-margin-left: 44px;
-
-@function getPlayerHeight($width){
-  @return calc(#{$width} / #{$player-factor})
+@use 'sass:math';
+@use '_variables' as *;
+@use '_mixins' as *;
+@use '_bootstrap-variables';
+@use '_miniature' as *;
+
+@function getPlayerHeight ($width) {
+  @return calc(#{$width} / #{$video-watch-player-factor});
 }
 
-@function getPlayerWidth($height){
-  @return calc(#{$height} * #{$player-factor})
+@function getPlayerWidth ($height) {
+  @return calc(#{$height} * #{$video-watch-player-factor});
 }
 
 @mixin playlist-below-player {
@@ -24,11 +22,11 @@ $video-info-margin-left: 44px;
 
 .root {
   &.theater-enabled #video-wrapper {
+    $height: calc(100vh - #{$header-height} - #{$theater-bottom-space});
+
     flex-direction: column;
     justify-content: center;
 
-    $height: calc(100vh - #{$header-height} - #{$theater-bottom-space});
-
     #videojs-wrapper {
       width: 100%;
       height: $height;
@@ -50,6 +48,10 @@ $video-info-margin-left: 44px;
   font-weight: $font-semibold;
 }
 
+.placeholder-image {
+  height: 100%;
+}
+
 #video-wrapper {
   $video-height: 66vh;
 
@@ -141,12 +143,15 @@ $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;
@@ -161,9 +166,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;
       }
 
@@ -173,6 +179,7 @@ $video-info-margin-left: 44px;
 
         a {
           @include disable-default-a-behaviour;
+          @include peertube-word-wrap;
 
           color: pvar(--mainForegroundColor);
 
@@ -202,173 +209,13 @@ $video-info-margin-left: 44px;
         }
 
         my-subscribe-button {
-          margin-left: 5px;
-        }
-      }
-
-      .video-actions-rates {
-        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-dropdown,
-          my-video-actions-dropdown {
-            margin-left: 5px;
-          }
-
-          ::ng-deep.action-button {
-            @include peertube-button;
-            @include button-with-icon(21px, 0, -1px);
-            @include apply-svg-color(pvar(--actionButtonColor));
-
-            font-size: 100%;
-            font-weight: $font-semibold;
-            display: inline-block;
-            padding: 0 10px 0 10px;
-            white-space: nowrap;
-            background-color: transparent !important;
-            color: pvar(--actionButtonColor);
-            text-transform: uppercase;
-
-            &::after {
-              display: none;
-            }
-
-            &:hover {
-              opacity: 0.9;
-            }
-
-            &.action-button-like,
-            &.action-button-dislike {
-              filter: brightness(120%);
-
-              .count {
-                margin: 0 5px;
-              }
-            }
-
-            &.action-button-like.activated {
-              .count {
-                color: pvar(--activatedActionButtonColor);
-              }
-
-              my-global-icon {
-                @include apply-svg-color(pvar(--activatedActionButtonColor));
-              }
-            }
-
-            &.action-button-dislike.activated {
-              .count {
-                color: pvar(--activatedActionButtonColor);
-              }
-
-              my-global-icon {
-                @include apply-svg-color(pvar(--activatedActionButtonColor));
-              }
-            }
-
-            &.action-button-support {
-              color: pvar(--supportButtonColor);
-
-              my-global-icon {
-                @include apply-svg-color(pvar(--supportButtonColor));
-              }
-            }
-
-            &.action-button-support {
-              my-global-icon {
-                ::ng-deep path:first-child {
-                  fill: pvar(--supportButtonHeartColor) !important;
-                }
-              }
-            }
-
-            &.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 {
-          $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: #909090;
-
-            &.liked {
-              background-color: pvar(--activatedActionButtonColor);
-            }
-          }
-        }
-      }
-    }
-
-    .video-info-description {
-      margin: 20px 0;
-      margin-left: $video-info-margin-left;
-      font-size: 15px;
-
-      .video-info-description-html {
-        @include peertube-word-wrap;
-
-        ::ng-deep a {
-          text-decoration: none;
-        }
-      }
-
-      .glyphicon, .description-loading {
-        margin-left: 3px;
-      }
-
-      .description-loading {
-        display: inline-block;
-      }
-
-      .video-info-description-more {
-        cursor: pointer;
-        font-weight: $font-semibold;
-        color: pvar(--greyForegroundColor);
-        font-size: 14px;
-
-        .glyphicon {
-          position: relative;
-          top: 2px;
+          @include margin-left(5px);
         }
       }
     }
 
     .video-attributes {
-      margin-left: $video-info-margin-left;
+      @include margin-left($video-watch-info-margin-left);
     }
 
     .video-attributes .video-attribute {
@@ -377,8 +224,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;
@@ -396,7 +244,7 @@ $video-info-margin-left: 44px;
       &.video-attribute-tags {
         .video-attribute-value:not(:nth-child(2)) {
           &::before {
-            content: ', '
+            content: ', ';
           }
         }
       }
@@ -404,9 +252,22 @@ $video-info-margin-left: 44px;
   }
 }
 
+my-action-buttons {
+  @include margin-left(auto);
+  @include margin-right(0);
+
+  display: block;
+  margin-top: 0;
+  margin-bottom: 10px;
+
+  align-items: start;
+  width: max-content;
+}
+
 my-recommended-videos {
+  @include padding-left(15px);
+
   display: block;
-  padding-left: 15px;
   min-width: 250px;
 }
 
@@ -416,91 +277,12 @@ my-video-comments {
   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: space-between;
-  background-color: rgba(0, 0, 0, 0.9);
-  color: #fff;
-
-  .privacy-concerns-text {
-    margin: 0 5px;
-  }
-
-  a {
-    @include disable-default-a-behaviour;
-
-    color: pvar(--mainColor);
-    transition: color 0.3s;
-
-    &:hover {
-      color: #fff;
-    }
-  }
-
-  .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;
-
-    &:hover {
-      background-color: #000;
-    }
-  }
-
-  .privacy-concerns-okay {
-    background-color: pvar(--mainColor);
-    margin-left: 10px;
-  }
-}
-
 @media screen and (max-width: 1600px) {
   .video-bottom .video-info .video-attributes .video-attribute {
     margin-bottom: 5px;
   }
 }
 
-@media screen and (max-width: 1300px) {
-  .privacy-concerns {
-    font-size: 12px;
-    padding: 2px 5px;
-
-    .privacy-concerns-text {
-      margin: 0;
-    }
-  }
-}
-
 // 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 {
@@ -517,7 +299,7 @@ my-video-comments {
   }
 
   my-recommended-videos {
-    padding-left: 0;
+    @include padding-left(0);
   }
 }
 
@@ -538,18 +320,10 @@ my-video-comments {
       }
     }
   }
-
-  .privacy-concerns {
-    width: 100%;
-  }
 }
 
 @media screen and (max-width: 450px) {
   .video-bottom {
-    .action-button .icon-text {
-      display: none !important;
-    }
-
     .video-info .video-info-first-row {
       .video-info-name {
         font-size: 18px;
@@ -558,15 +332,11 @@ my-video-comments {
       .video-info-date-views {
         font-size: 14px;
       }
-
-      .video-actions-rates {
-        margin-top: 10px;
-      }
     }
+  }
 
-    .video-info-description {
-      font-size: 14px !important;
-    }
+  my-action-buttons {
+    margin-top: 10px;
   }
 }