]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/sass/primeng-custom.scss
Fix video edit page overflow
[github/Chocobozzz/PeerTube.git] / client / src / sass / primeng-custom.scss
index 544d0039a5d3f1d26492334488b0e5c3a51e2b6a..a721663eafd2f355e1b8dc62c76e50b3f69771bf 100644 (file)
@@ -1,13 +1,19 @@
-@import '_variables';
-@import '_mixins';
+@use '_variables' as *;
+@use '_mixins' as *;
+@use '_icons' as *;
 
+/* stylelint-disable */
 @import '~primeng/resources/primeng.css';
 
 // Override primeng style we don't want
-input[type="button"] {
+input[type=button] {
   border-radius: inherit;
 }
 
+p-table .p-datatable-header .caption {
+  margin-bottom: 15px;
+}
+
 // Taken from old nova light theme
 
 body .p-disabled {
@@ -82,9 +88,6 @@ body .p-paginator .p-paginator-current {
   min-width: 2.286em;
   line-height: 2.286em;
 }
-body .p-paginator .p-dropdown {
-  border: 0 none;
-}
 body .p-paginator .p-dropdown .p-dropdown-trigger, body .p-paginator .p-dropdown .p-dropdown-label {
   color: #848484;
 }
@@ -134,7 +137,8 @@ body .p-paginator .p-paginator-pages .p-paginator-page:focus {
   box-shadow: 0 0 0 0.2em pvar(--mainColorLightest);
 }
 body .p-paginator .p-dropdown {
-  margin-left: 0.5em;
+  @include margin-left(0.5em);
+
   height: 2.286em;
   min-width: auto;
 }
@@ -145,6 +149,7 @@ body .p-dropdown {
   background: #ffffff;
   border: 1px solid #a6a6a6;
   transition: border-color 0.2s, box-shadow 0.2s;
+  border-radius: 6px;
 }
 body .p-dropdown:not(.p-disabled):hover {
   border-color: #212121;
@@ -155,28 +160,41 @@ body .p-dropdown:not(.p-disabled).p-focus {
   box-shadow: 0 0 0 0.2em pvar(--mainColorLightest);
   border-color: pvar(--mainColor);
 }
+body .p-dropdown.p-dropdown-clearable .p-dropdown-label {
+  @include padding-right(0);
+}
 body .p-dropdown .p-dropdown-label {
-  padding-right: 2em;
+  background: transparent;
+  border: 0 none;
 }
+body .p-dropdown .p-dropdown-label.p-placeholder {
+  color: #6c757d;
+}
+body .p-dropdown .p-dropdown-label:enabled:focus {
+  outline: 0 none;
+  box-shadow: none;
+}
+
 body .p-dropdown .p-dropdown-trigger {
-  background-color: #ffffff;
-  width: 2em;
-  line-height: 2em;
-  text-align: center;
-  padding: 0;
+  background-color: transparent;
+  width: 2rem;
+  border-top-right-radius: 6px;
+  border-bottom-right-radius: 6px;
   color: #848484;
 }
 body .p-dropdown .p-dropdown-clear-icon {
   color: #848484;
+  right: 2rem;
 }
 body .p-dropdown.p-dropdown-clearable .p-dropdown-label {
-  padding-right: 4em;
+  @include padding-right(4em);
 }
 body .p-dropdown-panel {
-  padding: 0;
-  border: 1px solid #c8c8c8;
   background-color: #ffffff;
   box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);
+  border: 0 none;
+  border-radius: 6px;
+  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
 }
 body .p-dropdown-panel .p-dropdown-filter-container {
   padding: 0.429em 0.857em 0.429em 0.857em;
@@ -186,8 +204,9 @@ body .p-dropdown-panel .p-dropdown-filter-container {
   margin: 0;
 }
 body .p-dropdown-panel .p-dropdown-filter-container .p-dropdown-filter {
+  @include padding-right(2em);
+
   width: 100%;
-  padding-right: 2em;
 }
 body .p-dropdown-panel .p-dropdown-filter-container .p-dropdown-filter-icon {
   top: 50%;
@@ -363,17 +382,18 @@ body .p-datepicker.p-datepicker-timeonly .p-timepicker {
   border-top: 0 none;
 }
 body .p-datepicker.p-datepicker-multiple-month .p-datepicker-group {
+  @include padding-right(0.857em);
+  @include padding-left(0.857em);
+
   border-right: 1px solid #d8dae2;
-  padding-right: 0.857em;
-  padding-left: 0.857em;
   padding-top: 0;
   padding-bottom: 0;
 }
 body .p-datepicker.p-datepicker-multiple-month .p-datepicker-group:first-child {
-  padding-left: 0;
+  @include padding-left(0);
 }
 body .p-datepicker.p-datepicker-multiple-month .p-datepicker-group:last-child {
-  padding-right: 0;
+  @include padding-right(0);
   border-right: 0 none;
 }
 body .p-calendar.p-calendar-w-btn .p-inputtext {
@@ -397,7 +417,7 @@ body p-calendar.ng-dirty.ng-invalid > .p-calendar > .p-inputtext {
   border: 1px solid #a80000;
 }
 body .p-timepicker .p-separator {
-  margin-left: 0;
+  @include margin-left(0);
   min-width: 0.75rem;
 }
 
@@ -436,84 +456,27 @@ body p-autocomplete.ng-dirty.ng-invalid > .p-autocomplete > .p-inputtext {
   border: 1px solid #a80000;
 }
 
-// select button
-body .p-selectbutton .p-button {
-  background-color: #dadada;
-  border: 1px solid #dadada;
-  color: #333333;
-  overflow: hidden;
-  transition: background-color 0.2s, box-shadow 0.2s;
-}
-body .p-selectbutton .p-button .p-button-icon-left {
-  color: #666666;
-}
-body .p-selectbutton .p-button:not(.p-disabled):not(.p-highlight):hover {
-  background-color: #c8c8c8;
-  border-color: #c8c8c8;
-  color: #333333;
-}
-body .p-selectbutton .p-button:not(.p-disabled):not(.p-highlight):hover .p-button-icon-left {
-  color: #212121;
-}
-body .p-selectbutton .p-button:not(.p-disabled):not(.p-highlight).ui-state-focus {
-  box-shadow: 0 0 0 0.2em #8dcdff;
-  z-index: 1;
-}
-body .p-selectbutton .p-button.p-highlight {
-  background-color: pvar(--mainColor);
-  border-color: pvar(--mainColor);
-  color: #ffffff;
-}
-body .p-selectbutton .p-button.p-highlight .p-button-icon-left {
-  color: #ffffff;
-}
-body .p-selectbutton .p-button.p-highlight:not(.p-disabled):hover {
-  background-color: pvar(--mainColorLighter);
-  border-color: pvar(--mainColorLighter);
-  color: #ffffff;
-}
-body .p-selectbutton .p-button.p-highlight:not(.p-disabled):hover .p-button-icon-left {
-  color: #ffffff;
-}
-body .p-selectbutton .p-button:first-child {
-  border-top-left-radius: 3px;
-  border-bottom-left-radius: 3px;
-}
-body .p-selectbutton .p-button:last-child {
-  border-top-right-radius: 3px;
-  border-bottom-right-radius: 3px;
-}
-body p-selectbutton.ng-dirty.ng-invalid .p-button {
-  border: 1px solid #a80000;
-}
-
-//
+// ---------------------------------------------------------------------------
+// PeerTube customizations
+// ---------------------------------------------------------------------------
 
-@mixin glyphicon-light {
-  font-family: 'Glyphicons Halflings';
-  text-decoration: none !important;
-  color: pvar(--mainForegroundColor) !important;
-  font-display: swap;
-}
-
-// data table customizations
 p-table {
+  table {
+    table-layout: fixed;
+  }
+
   .p-datatable-header {
     border: none !important;
     background-color: pvar(--mainBackgroundColor) !important;
 
     .caption {
-      height: 40px;
+      min-height: 40px;
       width: 100%;
       display: inline-flex;
       align-items: center;
 
       .left-buttons {
-        padding-left: 15px;
-      }
-
-      .input-group-text {
-        background-color: transparent;
+        @include padding-left(15px);
       }
     }
   }
@@ -528,12 +491,12 @@ p-table {
 
   td, th {
     font-family: $main-fonts;
-    font-size: 15px !important;
+    font-size: 15px;
     color: pvar(--mainForegroundColor) !important;
   }
 
   td {
-    padding-left: 15px !important;
+    @include padding-left(15px !important);
 
     &.expand-cell {
       padding: 10px 15px;
@@ -593,46 +556,40 @@ p-table {
   }
 
   th {
+    @include padding-left(15px);
+    @include padding-right(0px);
+
+    padding-top: 5px !important;
+    padding-bottom: 5px !important;
+
     border: none !important;
     border-bottom: 1px solid !important;
     border-color: pvar(--submenuBackgroundColor) !important;
-    text-align: left !important;
-    padding: 5px 0 5px 15px !important;
+    text-align: start !important;
     font-weight: $font-semibold !important;
     color: pvar(--mainForegroundColor) !important;
 
     &.p-sortable-column:hover {
       background-color: pvar(--submenuBackgroundColor) !important;
-      border: 1px solid !important;
-      border-color: pvar(--submenuBackgroundColor) !important;
-      border-width: 0 1px !important;
-
-      &:first-child {
-        border-width: 0 1px 0 0 !important;
-      }
     }
 
     &.p-highlight {
       background-color: pvar(--submenuBackgroundColor) !important;
 
-      .pi {
-        @extend .glyphicon;
-
-        color: #000 !important;
-        font-size: 11px !important;
-        top: 0 !important;
-
-        &.pi-sort-amount-up-alt {
-          @extend .glyphicon-triangle-top;
-
-          color: pvar(--mainForegroundColor) !important;
-        }
+      .pi-sort-amount-up-alt,
+      .pi-sort-amount-down {
+        display: inline-block;
+        position: relative;
+        top: -1px;
+        color: pvar(--mainForegroundColor) !important;
+      }
 
-        &.pi-sort-amount-down {
-          @extend .glyphicon-triangle-bottom;
+      .pi-sort-amount-up-alt {
+        @include arrow-up(5px);
+      }
 
-          color: pvar(--mainForegroundColor) !important;
-        }
+      .pi-sort-amount-down {
+        @include arrow-down(5px);
       }
     }
   }
@@ -645,10 +602,10 @@ p-table {
     my-delete-button,
     my-button {
       display: inline-block !important;
-      margin-left: 5px;
+      @include margin-left(5px);
 
       &:first-child {
-        margin-left: 0
+        @include margin-left(0)
       }
     }
   }
@@ -665,10 +622,12 @@ p-table {
       justify-content: center;
       align-items: center;
 
-      .p-dropdown {
-        position: absolute;
-        top: 10px;
-        left: 0;
+      p-dropdown {
+        .p-dropdown {
+          @include padding-left(0.5rem);
+
+          align-items: center;
+        }
 
         &.p-focus {
           box-shadow: #{$focus-box-shadow-form} pvar(--mainColorLightest);
@@ -679,23 +638,33 @@ p-table {
         }
       }
 
+      .p-dropdown,
+      .p-dropdown-trigger {
+        color: pvar(--mainForegroundColor);
+        background-color: pvar(--mainBackgroundColor);
+      }
+
       .p-paginator-current {
-        position: absolute;
-        right: 0;
         color: pvar(--inputPlaceholderColor);
         overflow: visible;
       }
 
+      .p-paginator-first {
+        margin-left: auto;
+      }
+
+      .p-paginator-last {
+        margin-right: auto;
+      }
+
       .p-paginator-first,
       .p-paginator-prev,
       .p-paginator-next,
       .p-paginator-last {
-        @include glyphicon-light;
         padding: 5px 2px;
-        height: auto;
+        height: 100%;
         outline: none;
-        font-size: 13px;
-        top: -1px;
+        color: pvar(--mainForegroundColor);
 
         &.focus-within,
         &:focus {
@@ -706,24 +675,17 @@ p-table {
           background-color: #fff !important;
         }
 
-        &.p-paginator-first {
-          @extend .glyphicon-step-backward;
+        .p-paginator-icon {
+          width: 18px;
+          height: 18px;
         }
 
         &.p-paginator-prev {
-          @extend .glyphicon-chevron-left;
-
-          margin-right: 10px;
+          @include margin-right(10px);
         }
 
         &.p-paginator-next {
-          @extend .glyphicon-chevron-right;
-
-          margin-left: 10px;
-        }
-
-        &.p-paginator-last {
-          @extend .glyphicon-step-forward;
+          @include margin-left(10px);
         }
       }
 
@@ -755,6 +717,11 @@ p-table {
       }
     }
   }
+
+  .pt-badge {
+    font-size: 12px;
+    text-transform: uppercase;
+  }
 }
 
 // overflow data table
@@ -764,23 +731,19 @@ p-table {
     max-width: 100%;
 
     table {
-      min-width: breakpoint(lg);
+      width: 100%;
     }
   }
 
-  @media screen and (max-width: #{breakpoint(lg)}) {
-    // Prevent overflow
+  @media screen and (max-width: $small-view) {
     p-paginator {
-      .p-paginator-current,
-      .p-dropdown {
-        top: 0;
-        margin-top: 30px;
+      .p-paginator-current {
+        display: none !important;
       }
     }
   }
 
   @media screen and (max-width: $mobile-view) {
-    // Prevent overflow
     p-paginator {
       .p-paginator-pages > .p-paginator-page:not(.p-highlight) {
         display: none;
@@ -798,15 +761,14 @@ p-calendar .p-datepicker {
   .p-datepicker-header {
 
     .p-datepicker-year {
-      margin-left: 5px;
+      @include margin-left(5px);
     }
 
     .p-datepicker-next {
-      @extend .glyphicon-chevron-right;
-      @include glyphicon-light;
+      @include chevron-right-default;
 
       color: #000 !important;
-      text-align: right;
+      text-align: end;
 
       .pi.pi-chevron-right {
         display: none !important;
@@ -814,11 +776,10 @@ p-calendar .p-datepicker {
     }
 
     .p-datepicker-prev {
-      @extend .glyphicon-chevron-left;
-      @include glyphicon-light;
+      @include chevron-left-default;
 
       color: #000 !important;
-      text-align: left;
+      text-align: start;
 
       .pi.pi-chevron-left {
         display: none !important;
@@ -829,15 +790,13 @@ p-calendar .p-datepicker {
   .p-timepicker {
 
     .pi.pi-chevron-up {
-      @extend .glyphicon-chevron-up;
-      @include glyphicon-light;
+      @include chevron-up-default;
 
       color: #000 !important;
     }
 
     .pi.pi-chevron-down {
-      @extend .glyphicon-chevron-down;
-      @include glyphicon-light;
+      @include chevron-down-default;
 
       color: #000 !important;
     }
@@ -857,31 +816,9 @@ p-tablecheckbox:hover div .p-checkbox-box {
 
   .p-checkbox-box {
     &.p-highlight {
-      border-color: pvar(--mainColor) !important;
+      color: pvar(--mainBackgroundColor) !important;
       background-color: pvar(--mainColor) !important;
-    }
-
-    .p-checkbox-icon {
-      position: relative;
-      overflow: visible !important;
-
-      &:after {
-        content: '';
-        position: absolute;
-        bottom: -5px;
-        left: -2px;
-        width: 5px;
-        height: 12px;
-        opacity: 0;
-        transform: rotate(45deg) scale(0);
-        border-right: 2px solid pvar(--mainBackgroundColor);
-        border-bottom: 2px solid pvar(--mainBackgroundColor);
-      }
-
-      &.pi-check:after {
-        opacity: 1;
-        transform: rotate(45deg) scale(1);
-      }
+      border-color: pvar(--mainColor) !important;
     }
   }
 }
@@ -891,18 +828,16 @@ p-toast {
     width: auto;
     max-width: 300px;
     min-width: 200px;
-    z-index: z(notification) !important;
 
     .p-toast-icon-close {
-      font-family: "Glyphicons Halflings";
       opacity: 0;
       position: absolute;
       right: 5px;
       top: 5px;
-
-      &:after {
-        content: "\e014";
-      }
+      width: 18px;
+      height: 18px;
+      background: url('../assets/images/feather/x.svg') no-repeat;
+      background-size: contain;
     }
 
     &:hover .p-toast-icon-close {
@@ -920,22 +855,6 @@ p-toast {
     box-shadow: 0 2px 12px 0 rgba(0, 0 , 0, .1);
     overflow: hidden;
 
-    &.p-toast-message-success .glyphicon {
-      color: #8BC34A !important;
-    }
-
-    &.p-toast-message-error .glyphicon {
-      color: #F44336 !important;
-    }
-
-    &.p-toast-message-warn .glyphicon {
-      color: #F1680D !important;
-    }
-
-    &.p-toast-message-info .glyphicon {
-      color: #03A9F4 !important;
-    }
-
     .notification-block {
       display: flex;
       align-items: center;
@@ -943,35 +862,73 @@ p-toast {
       padding: 10px 20px;
 
       .message {
+        @include margin-right(20px);
+
         flex-grow: 1;
-        margin-right: 20px;
 
         h3 {
           font-size: 21px;
         }
 
         p {
-          font-size: 15px;
+          @include peertube-word-wrap;
+
           margin-bottom: 0;
         }
       }
+    }
+  }
+
+  .p-toast-message-success my-global-icon {
+    color: #8BC34A !important;
+  }
+
+  .p-toast-message-error my-global-icon {
+    color: #F44336 !important;
+  }
+
+  .p-toast-message-warn my-global-icon {
+    color: #F1680D !important;
+  }
+
+  .p-toast-message-info my-global-icon {
+    color: #03A9F4 !important;
+  }
+}
+
+@media screen and (max-width: $primeng-breakpoint) {
+  p-table {
+    td {
+      padding: 3px 0;
+
+      &.expand-cell {
+        padding: 5px;
+      }
+    }
 
-      .glyphicon {
-        font-size: 32px;
-        margin-right: 5px;
+    .p-datatable-tbody {
+
+      td:last-child {
+        padding-bottom: 15px;
+        margin-bottom: 15px;
+        border-bottom: 1px solid $separator-border-color !important;
       }
     }
   }
 }
 
-.p-selectbutton {
-  .p-button:focus {
-    outline: none;
-  }
+@media screen and (max-width: $mobile-view) {
+  p-table {
+    .p-datatable-header {
+      .caption {
+        flex-wrap: wrap;
 
-  .p-button-label {
-    padding: 5px 15px;
-    font-size: 15px;
-    font-weight: 600;
+        > div {
+          width: 100%;
+          padding: 0 !important;
+          margin-bottom: 5px;
+        }
+      }
+    }
   }
 }