]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/sass/application.scss
Improve admin tables
[github/Chocobozzz/PeerTube.git] / client / src / sass / application.scss
index 0c999d6599a3148c1c3f9bf7c2263792e1a2b7f7..438990a4057f58bd5406e243e06157843831b961 100644 (file)
@@ -1,20 +1,33 @@
-$FontPathSourceSansPro: "../fonts/source-sans-pro";
-@import '~source-sans-pro/source-sans-pro';
+@import '_variables';
+@import '_mixins';
+
+$icon-font-path: '../../node_modules/bootstrap-sass/assets/fonts/bootstrap/';
+@import '_bootstrap';
+
+$FontPathSourceSansPro: '../../node_modules/npm-font-source-sans-pro/fonts';
+@import '~npm-font-source-sans-pro/source-sans-pro';
+
 @import '~primeng/resources/themes/bootstrap/theme.css';
 @import '~primeng/resources/primeng.css';
 @import '~video.js/dist/video-js.css';
-@import './video-js-custom.scss';
+
+@import './video-js-custom';
+@import './loading-bar';
 
 [hidden] {
   display: none !important;
 }
 
 body {
-  font-family: 'Source Sans Pro';
+  font-family: $main-fonts;
   font-weight: $font-regular;
   color: #000;
 }
 
+strong {
+  font-weight: $font-semibold;
+}
+
 input.readonly {
   /* Force blank on readonly inputs */
   background-color: #fff !important;
@@ -86,31 +99,30 @@ label {
     margin-top: 30px;
     margin-bottom: 25px;
   }
-}
 
-// On small screen, menu is absolute and displayed over the page
-@media screen and (max-width: 500px) {
-  .title-menu-left {
-    width: 120px;
-    position: absolute !important;
-    z-index: 10000;
+  &:hover, &:active, &:focus {
+    color: #000;
   }
+}
 
-  .main-col {
-    width: 100% !important;
-  }
+.admin-sub-header {
+  display: flex;
+  align-items: center;
+  margin-bottom: 30px;
 
-  .fake-menu {
-    display: none;
+  .admin-sub-title {
+    flex-grow: 1;
   }
 }
 
+.admin-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 {
@@ -118,27 +130,123 @@ label {
   to { transform: scale(1) rotate(360deg);}
 }
 
-@-webkit-keyframes spinw {
-  from { -webkit-transform: rotate(0deg);}
-  to { -webkit-transform: rotate(360deg);}
-}
+// ngprime data table customizations
+p-table {
+  font-size: 15px !important;
 
-@-moz-keyframes spinm {
-  from { -moz-transform: rotate(0deg);}
-  to { -moz-transform: rotate(360deg);}
-}
+  td {
+    border: 1px solid #E5E5E5 !important;
+    padding-left: 15px !important;
+    overflow: hidden !important;
+    text-overflow: ellipsis !important;
+    white-space: nowrap !important;
+  }
+
+  tr {
+    background-color: #fff !important;
+    height: 46px;
+  }
+
+  .ui-table-tbody {
+    tr {
+      &:hover {
+        background-color: #f0f0f0 !important;
+      }
+
+      &:not(:hover) {
+        .action-cell * {
+          display: none !important;
+        }
+      }
+
+      &:first-child td {
+        border-top: none !important;
+      }
+
+      &:last-child td {
+        border-bottom: none !important;
+      }
+    }
+
+    .expander {
+      cursor: pointer;
+      position: relative;
+      top: 1px;
+    }
+  }
+
+  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;
+
+    &.ui-sortable-column:hover {
+      background-color: #f0f0f0 !important;
+      border: 1px solid #f0f0f0 !important;
+      border-width: 0 1px !important;
+
+      &:first-child {
+        border-width: 0 1px 0 0 !important;
+      }
+    }
+
+    &.ui-state-highlight {
+      background-color: #fff !important;
+
+      .fa {
+        @extend .glyphicon;
+        font-size: 11px;
+
+        &.fa-sort-asc {
+          @extend .glyphicon-triangle-top;
+        }
+
+        &.fa-sort-desc {
+          @extend .glyphicon-triangle-bottom;
+        }
+      }
+    }
+  }
 
-/* ngprime data table customizations */
-p-datatable {
   .action-cell {
+    width: 250px !important;
+    padding: 0 !important;
     text-align: center;
+  }
 
-    .glyphicon {
-      cursor: pointer;
+  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;
+          }
+        }
+      }
     }
   }
 }
 
+// Bootstrap customizations
 .dropdown-menu {
   border-radius: 3px;
   box-shadow: 0 3px 6px;
@@ -156,9 +264,82 @@ p-datatable {
 .modal {
   .modal-header {
     border-bottom: none;
+    margin-bottom: 5px;
+
+    .modal-title {
+      font-size: 20px;
+      font-weight: $font-semibold;
+    }
 
-    .title-page-single {
-      margin: 0;
+    .close {
+      @include icon(24px);
+
+      position: relative;
+      right: -1px;
+      float: right;
+      background-image: url('../assets/images/global/cross.svg');
+    }
+  }
+
+  .inputs {
+    margin-top: 40px;
+    margin-bottom: 0;
+    text-align: right;
+
+    .action-button-cancel {
+      @include peertube-button;
+      @include grey-button;
+
+      display: inline-block;
+      margin-right: 10px;
+    }
+
+    .action-button-submit {
+      @include peertube-button;
+      @include orange-button;
+    }
+  }
+}
+
+tabset:not(.bootstrap) {
+  .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;
+        min-height: 30px !important;
+        padding: 0 15px;
+      }
+
+      &, & a {
+        color: #000 !important;
+        @include disable-default-a-behaviour;
+      }
+
+      &.active, &:hover {
+        background-color: #F0F0F0;
+      }
+
+      &.active {
+        font-weight: $font-semibold !important;
+      }
+    }
+  }
+}
+
+tabset.bootstrap {
+  .nav-item .nav-link {
+    &, & a {
+      color: #000;
+      @include disable-default-a-behaviour;
     }
   }
 }
@@ -182,3 +363,60 @@ 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-color !important;
+    }
+  }
+}
+
+@media screen and (max-width: 900px) {
+  .main-col {
+    &, &.expanded {
+      .margin-content {
+        margin-left: 50px;
+        margin-right: 50px;
+      }
+
+      .sub-menu {
+        padding-left: 50px;
+      }
+    }
+  }
+}
+
+// On small screen, menu is absolute
+@media screen and (max-width: 600px) {
+  .title-menu-left {
+    width: 100% !important;
+    position: absolute !important;
+    z-index: 10000;
+  }
+
+  .main-col {
+    margin-left: 0;
+
+    &, &.expanded {
+      .margin-content {
+        margin-left: 15px;
+        margin-right: 15px;
+      }
+
+      .sub-menu {
+        padding-left: 15px;
+        margin-bottom: 10px;
+      }
+
+      input[type=text], input[type=password] {
+        width: 100% !important;
+      }
+    }
+  }
+
+  bs-dropdown-container {
+    z-index: 10000;
+  }
+}