]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/sass/application.scss
Add video channel view
[github/Chocobozzz/PeerTube.git] / client / src / sass / application.scss
index f7d83c5c38af9c932f6b0d133397a32e7269b940..28b466c01cd1f20f4acf51f09c11570bf7e183cc 100644 (file)
@@ -1,23 +1,67 @@
-$FontPathSourceSansPro: "../fonts/source-sans-pro";
-@import '~source-sans-pro/source-sans-pro';
-@import '~primeng/resources/themes/bootstrap/theme.css';
-@import '~primeng/resources/primeng.css';
+$icon-font-path: '~@neos21/bootstrap3-glyphicons/assets/fonts/';
+@import '_bootstrap';
+
+@import '_variables';
+@import '_mixins';
+
+@import '_fonts';
+
 @import '~video.js/dist/video-js.css';
-@import './video-js-custom.scss';
+
+$assets-path: '../assets/';
+@import './player/index';
+@import './loading-bar';
+
+@import './primeng-custom';
 
 [hidden] {
   display: none !important;
 }
 
 body {
-  font-family: 'Source Sans Pro';
+  /*** theme ***/
+  // now beware node-sass requires interpolation
+  // for css custom properties #{$var}
+  --mainColor: #{$orange-color};
+  --mainHoverColor: #{$orange-hover-color};
+  --mainBackgroundColor: #{$bg-color};
+  --mainForegroundColor: #{$fg-color};
+  --menuBackgroundColor: #{$menu-background};
+  --menuForegroundColor: #{$menu-color};
+  --submenuColor: #{$sub-menu-color};
+  --inputColor: #{$input-background-color};
+  --inputPlaceholderColor: #{$input-placeholder-color};
+
+  font-family: $main-fonts;
   font-weight: $font-regular;
-  color: #000;
+  color: var(--mainForegroundColor);
+  font-size: 14px;
+}
+
+#incompatible-browser {
+  display: none;
+  text-align: center;
+  position: absolute;
+  width: 100%;
+  top: 45%;
+}
+
+strong {
+  font-weight: $font-semibold;
 }
 
 input.readonly {
   /* Force blank on readonly inputs */
-  background-color: #fff !important;
+  background-color: var(--inputColor) !important;
+}
+
+input, textarea {
+  outline: none;
+  color: var(--mainForegroundColor);
+}
+
+.btn-outline-secondary {
+  border-color: $input-border-color;
 }
 
 label {
@@ -27,12 +71,19 @@ label {
 
 .form-error {
   display: block;
-  color: $red-error;
+  color: $red;
   margin-top: 5px;
 }
 
 .input-error {
-  border-color: $red-error !important;
+  border-color: $red !important;
+}
+
+.fullWidth {
+  width: 100%;
+  margin-left: auto;
+  margin-right: auto;
+  max-width: initial;
 }
 
 .glyphicon-black {
@@ -41,20 +92,23 @@ label {
 
 .main-col {
   margin-left: $menu-width;
+  width: auto;
 
   .margin-content {
     margin-left: $not-expanded-horizontal-margins;
     margin-right: $not-expanded-horizontal-margins;
+    flex-grow: 1;
   }
 
   .sub-menu {
-    background-color: #F7F7F7;
+    background-color: var(--submenuColor);
     width: 100%;
     height: 81px;
-    margin-bottom: 30px;
+    margin-bottom: $sub-menu-margin-bottom;
     display: flex;
     align-items: center;
     padding-left: $not-expanded-horizontal-margins;
+    padding-right: $not-expanded-horizontal-margins;
   }
 
   // Override some properties if the main content is expanded (no menu on the left)
@@ -68,12 +122,13 @@ label {
 
     .sub-menu {
       padding-left: $expanded-horizontal-margins;
+      padding-right: $expanded-horizontal-margins;
     }
   }
 }
 
 .title-page {
-  color: #000;
+  color: var(--mainForegroundColor);
   font-size: 16px;
   display: inline-block;
   margin-right: 55px;
@@ -81,14 +136,18 @@ label {
   @include disable-default-a-behaviour;
 
   &.active, &.title-page-single {
-    border-bottom: 2px solid $orange-color;
+    border-bottom: 2px solid var(--mainColor);
     font-weight: $font-bold;
     margin-top: 30px;
     margin-bottom: 25px;
   }
 
   &:hover, &:active, &:focus {
-    color: #000;
+    color: var(--mainForegroundColor);
+  }
+
+  @media screen and (max-width: 500px) {
+    margin-right: 20px;
   }
 }
 
@@ -97,46 +156,34 @@ label {
   align-items: center;
   margin-bottom: 30px;
 
-  .admin-sub-title {
+  .form-sub-title {
     flex-grow: 1;
   }
-}
 
-.admin-sub-title {
-  font-size: 20px;
-  font-weight: bold;
-}
+  .admin-sub-nav a {
+    @include disable-default-a-behaviour;
 
-// On small screen, menu is absolute
-@media screen and (max-width: 800px) {
-  .title-menu-left {
-    width: 120px;
-    position: absolute !important;
-    z-index: 10000;
-  }
-
-  .main-col {
-    margin-left: 0;
+    font-size: 16px;
+    color: var(--mainForegroundColor);
+    padding: 5px 15px;
+    border-radius: 0.25rem;
 
-    &, &.expanded {
-      .margin-content {
-        //display: flex;
-        //flex-direction: column;
-        //align-items: center;
-        //justify-content: center;
-        margin-left: auto;
-        margin-right: auto;
-      }
+    &.active {
+      font-weight: $font-semibold;
+      background-color: #f0f0f0;
+      color: #000;
     }
   }
 }
 
+.form-sub-title {
+  font-size: 20px;
+  font-weight: bold;
+}
+
 // Thanks https://gist.github.com/alexandrevicenzi/680147013e902a4eaa5d
 .glyphicon-refresh-animate {
-  -animation: spin .7s infinite linear;
-  -ms-animation: spin .7s infinite linear;
-  -webkit-animation: spinw .7s infinite linear;
-  -moz-animation: spinm .7s infinite linear;
+  animation: spin .7s infinite linear;
 }
 
 @keyframes spin {
@@ -144,167 +191,117 @@ label {
   to { transform: scale(1) rotate(360deg);}
 }
 
-@-webkit-keyframes spinw {
-  from { -webkit-transform: rotate(0deg);}
-  to { -webkit-transform: rotate(360deg);}
-}
-
-@-moz-keyframes spinm {
-  from { -moz-transform: rotate(0deg);}
-  to { -moz-transform: rotate(360deg);}
-}
+// Bootstrap customizations
+.dropdown-menu {
+  border-radius: 3px;
+  box-shadow: 0 3px 6px;
+  font-size: 15px;
 
-// ngprime data table customizations
-p-datatable {
-  font-size: 15px !important;
+  .dropdown-item {
+    padding: 3px 15px;
 
-  .ui-datatable-scrollable-header {
-    background-color: #fff !important;
+    &:active {
+      color: #000 !important;
+    }
   }
 
-  .ui-widget-content {
-    border: none !important;
+  button {
+    @include disable-default-a-behaviour;
   }
 
-  .ui-datatable-virtual-table {
-    border-top: none !important;
+  a {
+    @include disable-default-a-behaviour;
+    color: #000 !important;
   }
+}
 
-  td {
-    border: 1px solid #E5E5E5 !important;
-    padding-left: 15px !important;
+.modal {
+  .modal-content {
+    background-color: var(--mainBackgroundColor);
   }
 
-  tr {
-    background-color: #fff !important;
-    height: 46px;
+  .modal-header {
+    border-bottom: none;
+    margin-bottom: 5px;
 
-    &:hover {
-      background-color: #f0f0f0 !important;
+    .modal-title {
+      font-size: 20px;
+      font-weight: $font-semibold;
     }
 
-    &:not(:hover) {
-      .action-cell * {
-        display: none !important;
-      }
-    }
+    my-global-icon {
+      @include icon(24px);
 
-    &:first-child td {
-      border-top: none !important;
-    }
+      position: relative;
+      top: 3px;
+      float: right;
 
-    &:last-child td {
-      border-bottom: none !important;
+      margin: 0;
+      padding: 0;
+      opacity: 1;
     }
   }
 
-  th {
-    border: none !important;
-    border-bottom: 1px solid #f0f0f0 !important;
-    text-align: left !important;
-    padding: 5px 0 5px 15px !important;
-    font-weight: $font-semibold !important;
-    color: #000 !important;
+  .inputs {
+    margin-bottom: 0;
+    text-align: right;
 
-    &.ui-state-active, &.ui-sortable-column:hover {
-      background-color: #f0f0f0 !important;
-      border: 1px solid #f0f0f0 !important;
-      border-width: 0 1px !important;
-    }
-  }
+    .action-button-cancel {
+      @include peertube-button;
+      @include grey-button;
 
-  .action-cell {
-    width: 250px !important;
-    padding: 0 !important;
-    text-align: center;
-  }
+      display: inline-block;
+      margin-right: 10px;
+    }
 
-  p-paginator {
-    .ui-paginator-bottom {
-      position: relative;
-      border: none !important;
-      border: 1px solid #f0f0f0 !important;
-      height: 40px;
-      display: flex;
-      justify-content: center;
-      align-items: center;
-
-      a {
-        color: #000 !important;
-        font-weight: $font-semibold !important;
-        margin-right: 20px !important;
-        outline: 0 !important;
-        border-radius: 3px !important;
-        padding: 5px 2px !important;
-
-        &.ui-state-active {
-          &, &:hover, &:active, &:focus {
-            color: #fff !important;
-            background-color: $orange-color !important;
-          }
-        }
-      }
+    .action-button-submit {
+      @include peertube-button;
+      @include orange-button;
     }
   }
 }
 
-// Bootstrap customizations
-.dropdown-menu {
-  border-radius: 3px;
-  box-shadow: 0 3px 6px;
-  font-size: 15px;
+// Nav customizations
+.nav .nav-link {
+  display: flex !important;
+  align-items: center;
+  height: 30px !important;
+  padding: 10px 15px !important;
+}
 
-  .dropdown-item {
-    padding: 3px 15px;
-  }
+.nav.nav-pills {
+  font-size: 16px !important;
 
-  a {
-    color: #000 !important;
+  .nav-link.active {
+    font-weight: $font-semibold !important;
   }
-}
 
-.modal {
-  .modal-header {
-    border-bottom: none;
+  a {
+    @include disable-default-a-behaviour;
 
-    .title-page-single {
-      margin: 0;
-    }
+    color: var(--mainForegroundColor);
   }
 }
 
-.nav {
-  font-size: 16px !important;
-  border: none !important;
-
-  .nav-item .nav-link {
-    margin-right: 30px;
-    padding: 0;
-    border-radius: 3px;
-    border: none !important;
-
-    .tab-link {
-      display: flex !important;
-      align-items: center;
-      height: 30px !important;
-      padding: 0 15px;
-    }
+ngb-tabset.bootstrap {
 
+  .nav-link {
     &, & a {
-      color: #000 !important;
       @include disable-default-a-behaviour;
-    }
 
-    &.active, &:hover {
-      background-color: #F0F0F0;
+      color: var(--mainForegroundColor) !important;
     }
+  }
 
-    &.active {
-      font-weight: $font-semibold !important;
-    }
+  .nav-pills .nav-link.active {
+    color: #000 !important;
   }
 }
 
+.nav-tabs .nav-link.active {
+  background-color: var(--mainBackgroundColor) !important;
+  border-bottom: none;
+}
 
 .orange-button {
   @include peertube-button;
@@ -325,3 +322,74 @@ p-datatable {
   @include peertube-button-link;
   @include grey-button;
 }
+
+// In tables, don't have a hover different background
+table {
+  .action-button-edit, .action-button-delete {
+    &:hover, &:active, &:focus, &[disabled], &.disabled {
+      background-color: $grey-background-color !important;
+    }
+  }
+}
+
+.no-results {
+  height: 40vh;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  font-size: 16px;
+  font-weight: $font-semibold;
+}
+
+@media screen and (max-width: 1600px) {
+  .main-col {
+    &.expanded {
+      .margin-content {
+        margin-left: $expanded-horizontal-margins/2;
+        margin-right: $expanded-horizontal-margins/2;
+      }
+    }
+  }
+}
+
+@media screen and (max-width: 900px) {
+  .main-col {
+    &.expanded {
+      .margin-content {
+        margin-left: $expanded-horizontal-margins/3;
+        margin-right: $expanded-horizontal-margins/3;
+      }
+
+      .sub-menu {
+        padding-left: 50px;
+
+        .title-page {
+          font-size: 15px;
+        }
+      }
+    }
+  }
+}
+
+@media screen and (max-width: $small-view) {
+  .main-col {
+    margin-left: 0;
+
+    &, &.expanded {
+      .margin-content {
+        margin-left: 15px;
+        margin-right: 15px;
+      }
+
+      .sub-menu {
+        padding-left: 15px;
+        padding-right: 15px;
+        margin-bottom: 10px;
+      }
+
+      input[type=text], input[type=password] {
+        width: 100% !important;
+      }
+    }
+  }
+}