]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/sass/application.scss
Translated using Weblate (Ukrainian)
[github/Chocobozzz/PeerTube.git] / client / src / sass / application.scss
index 089a58009e82ece00059f11285e92b9b09ca2e16..a0009eecc5bfb22b8854e00823abf02d104946a3 100644 (file)
@@ -8,12 +8,12 @@ $icon-font-path: '~@neos21/bootstrap3-glyphicons/assets/fonts/';
 
 @import '~video.js/dist/video-js.css';
 
-$assets-path: '../assets/';
+$assets-path: '../../assets/';
 @import './player/index';
-@import './loading-bar';
 
 @import './bootstrap';
 @import './primeng-custom';
+@import './ng-select.scss';
 
 [hidden] {
   display: none !important;
@@ -21,45 +21,62 @@ $assets-path: '../assets/';
 
 body {
   /*** theme ***/
-  // now beware node-sass requires interpolation
+  // now beware sass requires interpolation
   // for css custom properties #{$var}
   --mainColor: #{$main-color};
   --mainColorLighter: #{$main-color-lighter};
+  --mainColorLightest: #{$main-color-lightest};
   --mainHoverColor: #{$main-hover-color};
   --mainBackgroundColor: #{$bg-color};
   --mainForegroundColor: #{$fg-color};
   --secondaryColor: #{$secondary-color};
 
+  --greyForegroundColor: #{$grey-foreground-color};
+  --greyBackgroundColor: #{$grey-background-color};
+
   --menuBackgroundColor: #{$menu-background};
   --menuForegroundColor: #{$menu-color};
   --submenuColor: #{$sub-menu-color};
 
+  --inputForegroundColor: #{$input-foreground-color};
   --inputBackgroundColor: #{$input-background-color};
   --inputPlaceholderColor: #{$input-placeholder-color};
 
+  --textareaForegroundColor: #{$textarea-foreground-color};
+  --textareaBackgroundColor: #{$textarea-background-color};
+  --markdownTextareaBackgroundColor: #{$markdown-textarea-background-color};
+
   --actionButtonColor: #{$grey-foreground-color};
   --supportButtonBackgroundColor: #{transparent};
-  --supportButtonColor: #{var(--actionButtonColor)};
+  --supportButtonColor: #{pvar(--actionButtonColor)};
   --supportButtonHeartColor: #{$support-button-heart};
 
+  --activatedActionButtonColor: #{$activated-action-button-color};
+
+  --expanded-horizontal-margin-content: #{$expanded-horizontal-margins};
+
   font-family: $main-fonts;
   font-weight: $font-regular;
-  color: var(--mainForegroundColor);
-  background-color: var(--mainBackgroundColor);
+  color: pvar(--mainForegroundColor);
+  background-color: pvar(--mainBackgroundColor);
   font-size: 14px;
+  // On desktop browsers, make sure vertical scroll bar is always visible
+  // Allow to disable the scrollbar instead of hide it when the content fit the body
+  // And not move the content and header horizontally sticked to right when the content is updating
+  overflow-y: scroll;
 }
 
 ::selection {
-  color: var(--mainBackgroundColor);
-  background-color: var(--mainHoverColor);
+  color: pvar(--mainBackgroundColor);
+  background-color: pvar(--mainHoverColor);
 }
 
+noscript,
 #incompatible-browser {
-  display: none;
-  text-align: center;
-  position: absolute;
-  width: 100%;
-  top: 45%;
+  display: block;
+  font-size: 1.2rem;
+  max-width: 600px;
+  margin: 1rem auto;
 }
 
 strong {
@@ -68,16 +85,17 @@ strong {
 
 input.readonly {
   /* Force blank on readonly inputs */
-  background-color: var(--inputBackgroundColor) !important;
+  background-color: pvar(--inputBackgroundColor) !important;
 }
 
 input, textarea {
   outline: none;
-  color: var(--mainForegroundColor);
+  color: pvar(--inputForegroundColor);
 }
 
-.btn-outline-secondary {
-  border-color: $input-border-color;
+button {
+  background: unset;
+  @include disable-outline;
 }
 
 label {
@@ -85,13 +103,25 @@ label {
   font-size: 15px;
 }
 
+code {
+  background-color: pvar(--greyBackgroundColor);
+  color: pvar(--greyForegroundColor);
+  border-radius: 3px;
+  padding: .2em .4em;
+  margin: auto .4em;
+  font-size: 75%;
+  display: inline-block;
+  vertical-align: middle;
+}
+
 .form-error {
   display: block;
   color: $red;
   margin-top: 5px;
 }
 
-.input-error {
+.input-error
+my-input-toggle-hidden ::ng-deep input {
   border-color: $red !important;
 }
 
@@ -107,12 +137,13 @@ label {
 }
 
 .row {
-  margin: 0;
+  margin: 0 !important;
 }
 
 .main-col {
   margin-left: $menu-width;
   width: calc(100% - #{$menu-width});
+  outline: none;
 
   .margin-content {
     margin-left: $not-expanded-horizontal-margins;
@@ -121,14 +152,24 @@ label {
   }
 
   .sub-menu {
-    background-color: var(--submenuColor);
+    background-color: pvar(--submenuColor);
     width: 100%;
-    height: 81px;
-    margin-bottom: $sub-menu-margin-bottom;
     display: flex;
     align-items: center;
     padding-left: $not-expanded-horizontal-margins;
     padding-right: $not-expanded-horizontal-margins;
+    height: $sub-menu-height;
+    margin-bottom: $sub-menu-margin-bottom;
+
+    &.sub-menu-fixed {
+      position: fixed;
+      z-index: #{z('sub-menu') - 1};
+    }
+  }
+
+  // Use an appropriate offset top when sub-menu fixed
+  .margin-content.offset-content {
+    padding-top: $sub-menu-height + $sub-menu-margin-bottom;
   }
 
   // Override some properties if the main content is expanded (no menu on the left)
@@ -137,33 +178,45 @@ label {
     width: 100%;
 
     .margin-content {
-      margin-left: $expanded-horizontal-margins;
-      margin-right: $expanded-horizontal-margins;
+      margin-left: var(--expanded-horizontal-margin-content);
+      margin-right: var(--expanded-horizontal-margin-content);
+    }
+
+    .sub-menu {
+      padding-left: var(--expanded-horizontal-margin-content);
+      padding-right: var(--expanded-horizontal-margin-content);
     }
+  }
+
+  &.lock-scroll .main-row > router-outlet + * {
+    // Lock and hide body scrollbars
+    position: fixed;
 
+    // Lock and hide sub-menu scrollbars
     .sub-menu {
-      padding-left: $expanded-horizontal-margins;
-      padding-right: $expanded-horizontal-margins;
+      overflow-x: hidden;
     }
   }
 }
 
 .title-page {
-  color: var(--mainForegroundColor);
+  opacity: 0.6;
+  color: pvar(--mainForegroundColor);
   font-size: 16px;
   display: inline-block;
   margin-right: 55px;
   font-weight: $font-semibold;
   @include disable-default-a-behaviour;
 
-  &.active, &.title-page-single {
+  border-bottom: 2px solid transparent;
+
+  &.title-page-single {
     margin-top: 30px;
     margin-bottom: 25px;
   }
 
   &.active {
-    font-weight: $font-bold;
-    border-bottom: 2px solid var(--mainColor);
+    border-bottom-color: pvar(--mainColor);
   }
 
   &.title-page-single {
@@ -171,7 +224,12 @@ label {
   }
 
   &:hover, &:active, &:focus {
-    color: var(--mainForegroundColor);
+    color: pvar(--mainForegroundColor);
+  }
+
+  &.active, &:hover,  &:active, &:focus, &.title-page-single {
+    opacity: 1;
+    outline: 0px hidden !important;
   }
 
   @media screen and (max-width: $mobile-view) {
@@ -183,11 +241,6 @@ label {
 .title-page-settings {
   white-space: nowrap;
   font-size: 115%;
-  font-weight: $font-regular;
-
-  &.active {
-    font-weight: $font-semibold;
-  }
 }
 
 .admin-sub-header {
@@ -203,14 +256,18 @@ label {
     @include disable-default-a-behaviour;
 
     font-size: 16px;
-    color: var(--mainForegroundColor);
+    color: pvar(--mainForegroundColor);
     padding: 5px 15px;
     border-radius: 0.25rem;
+    font-weight: $font-semibold;
+    opacity: 0.6;
 
     &.active {
-      font-weight: $font-semibold;
-      background-color: #f0f0f0;
-      color: #000;
+      background-color: pvar(--submenuColor);
+    }
+
+    &.active, &:hover, &:active, &:focus {
+      opacity: 1;
     }
   }
 }
@@ -236,7 +293,10 @@ table {
 
 .no-results {
   height: 40vh;
+  max-height: 500px;
+
   display: flex;
+  flex-direction: column;
   align-items: center;
   justify-content: center;
   font-size: 16px;
@@ -252,32 +312,51 @@ table {
   }
 }
 
+/* offsetTop for scrollToAnchor */
+
 .anchor {
   position: relative;
   top: #{-($header-height + 20px)};
 }
 
-@media screen and (max-width: #{map-get($grid-breakpoints, xxl)}) {
+.offset-content { // if sub-menu fixed
+  .anchor {
+    top: #{-($header-height + $sub-menu-height + 20px)};
+  }
+}
+
+.form-group-description {
+  @extend .text-muted;
+
+  font-size: 90%;
+  margin-top: 10px;
+}
+
+ngx-loading-bar {
+  z-index: z(header) + 1 !important;
+}
+
+@media screen and (max-width: #{breakpoint(xxl)}) {
   .main-col {
     &.expanded {
       .margin-content {
-        margin-left: $expanded-horizontal-margins/2;
-        margin-right: $expanded-horizontal-margins/2;
+        --expanded-horizontal-margin-content: #{$expanded-horizontal-margins/2};
       }
     }
   }
 }
 
-@media screen and (max-width: #{map-get($grid-breakpoints, lg)}) {
+@media screen and (max-width: #{breakpoint(lg)}) {
+  /* the following applies from 500px to 900px and is partially overriden from 500px to 800px by changes below to $small-view */
   .main-col {
-    &.expanded {
+    &, &.expanded {
       .margin-content {
-        margin-left: $expanded-horizontal-margins/3;
-        margin-right: $expanded-horizontal-margins/3;
+        --expanded-horizontal-margin-content: #{$expanded-horizontal-margins/3};
       }
 
       .sub-menu {
         padding-left: 50px;
+        padding-right: 50px;
 
         .title-page {
           font-size: 17px;
@@ -287,26 +366,104 @@ table {
   }
 }
 
+@media screen and (min-width: $mobile-view) and (max-width: $small-view) {
+  .main-col {
+    width: 100%;
+  }
+}
+
 @media screen and (max-width: $small-view) {
   .main-col {
     margin-left: 0;
 
     &, &.expanded {
       .margin-content {
-        margin-left: 15px;
-        margin-right: 15px;
+        --expanded-horizontal-margin-content: 15px;
       }
 
       .sub-menu {
         width: 100vw;
-        overflow-x: auto;
         padding-left: 15px;
         padding-right: 15px;
-        margin-bottom: 10px;
+        margin-bottom: $sub-menu-margin-bottom-small-view;
+        overflow-x: auto;
+      }
+
+      // Use an appropriate offset top when sub-menu fixed
+      .margin-content.offset-content {
+        padding-top: $sub-menu-height + $sub-menu-margin-bottom-small-view;
+      }
+
+      .admin-sub-header {
+        @include admin-sub-header-responsive(15px*2);
+      }
+
+      my-markdown-textarea {
+        .root {
+          max-width: 100% !important;
+        }
       }
 
-      input[type=text], input[type=password] {
-        width: 100% !important;
+      input[type=text],
+      input[type=password],
+      input[type=email],
+      textarea,
+      .peertube-select-container {
+        flex-grow: 1;
+      }
+
+      .caption input[type=text] {
+        width: unset !important;
+        flex-grow: 1;
+      }
+    }
+  }
+}
+
+// overflow-databale responsive rules
+@media screen and (min-width: #{breakpoint(lg)}) {
+  .main-col {
+    &.expanded {
+      @include overflow-datatable(breakpoint(lg), $expanded-horizontal-margins/2, $mobile-paginator: false);
+    }
+
+    &:not(.expanded) {
+      @include overflow-datatable(breakpoint(lg), $not-expanded-horizontal-margins + $menu-width/2, $mobile-paginator: false);
+    }
+  }
+}
+
+@media screen and (max-width: #{breakpoint(lg)}) {
+  .main-col {
+    &.expanded {
+      @include overflow-datatable(breakpoint(lg), $expanded-horizontal-margins/3);
+    }
+
+    &:not(.expanded) {
+      @include overflow-datatable(breakpoint(lg), $expanded-horizontal-margins/3 + $menu-width/2);
+    }
+  }
+}
+
+@media screen and (max-width: $small-view) {
+  .main-col {
+    &:not(.expanded),
+    &.expanded {
+      @include overflow-datatable(breakpoint(lg), 15px);
+    }
+  }
+}
+
+@media screen and (min-width: $small-view) and (max-width: #{$small-view + $menu-width}) {
+  .main-col {
+    &:not(.expanded) {
+      .admin-sub-header {
+        @include admin-sub-header-responsive($expanded-horizontal-margins/3 + $menu-width/2);
+      }
+
+      .sub-menu {
+        overflow-x: auto;
+        width: calc(100vw - #{$menu-width});
       }
     }
   }