aboutsummaryrefslogblamecommitdiffhomepage
path: root/client/src/sass/primeng-custom.scss
blob: 750c433b5cdcffeded3f44b856107369b3030eb8 (plain) (tree)
1
2
3
4
5
6
7
8
9



                                         
                                                         



                                      
                                                
                     

 





                      

                                                  
                                                                             

 

                            
                     
                            
                                                             


                   

                           
                          



                                      
     

   
      
                                                             





                               
                                                  

   
      
                                  
 
                                           



                                         


      
               
                                                             
                 

                          
                                                        

                  
                                                      
       
     




                   
                                                          

       



                                






                                       




                                    










                            
                                        
                                                  


                                           
                                                  

                                
                                                        
                                   
                                                    







                                           
                                                        



                           


                                   
 
                                 
                                          
 
                                                        

         
                               
                                             
 
                                                        









                            



                     
                                       
                       
 


                      




                          
                                                               
                         

                                       
                                                    




                              

                           
                 
                

                          
                                                                          


                            
                                               
         




                             
                                             

       










                                 

                       
                                                                          

         
























                                            


                                


                            
                                                                                       
           

         
           
                                                        
                                                 
                                   



                                        
                                          



                                           
                                                             







             
                      
                                                                                            









                                                          

                                        
                       
 



                               
 


                                 




       














                                         
 
                             




                                 




                                      
 
                             




                                 







                                    

                             




                                      

                             

     

 



                                                
            
 


                            

   

                       

                                                     

     












                                          

                                                             





                                          

     


               

               
                                                  
                                                   
   

















                                                            
 

         
             
                                        
 


                                          
 


                         

     

                                  


     

                             

                                                             







                                                

     

                                         

     

                                        

     

                                        

     

                         

                          
 
                

                     


                          
 

                          
                           
         
       
 

                        

                          


     



                                      
@import '_variables';
@import '_mixins';

@import '~primeng/resources/primeng.css';
@import '~primeng/resources/themes/nova-light/theme.css';

@mixin glyphicon-light {
  font-family: 'Glyphicons Halflings';
  text-decoration: none !important;
  color: pvar(--mainForegroundColor) !important;
  font-display: swap;
}

my-edit-button,
my-delete-button,
my-button {
  height: max-content;
}

// focus box-shadow for primeng
.ui-inputtext:enabled:focus:not(.ui-state-error) {
  box-shadow: #{$focus-box-shadow-form} pvar(--mainColorLightest) !important;
}

// data table customizations
p-table {
  .ui-table-caption {
    border: none !important;
    background-color: pvar(--mainBackgroundColor) !important;

    .caption {
      height: 40px;
      width: 100%;
      display: inline-flex;
      align-items: center;

      .input-group-text {
        background-color: transparent;
      }
    }
  }

  th {
    background-color: pvar(--mainBackgroundColor) !important;
    outline: 0;
  }

  td, th {
    font-family: $main-fonts;
    font-size: 15px !important;
    color: pvar(--mainForegroundColor) !important;
  }

  td {
    padding-left: 15px !important;

    &:not(.action-cell):not(.expand-cell) {
      overflow: hidden !important;
      text-overflow: ellipsis !important;
      white-space: nowrap !important;
    }
  }

  tr {
    outline: 0;
    background-color: pvar(--mainBackgroundColor) !important;
    height: 46px;

    &.ui-state-highlight {
      background-color: pvar(--submenuColor) !important;

      td, td > a {
        color: pvar(--mainForegroundColor) !important;
      }
    }
  }

  .ui-table-tbody {
    tr {
      &:hover {
        background-color: pvar(--submenuColor) !important;
      }

      td {
        border: none !important;
      }

      &:first-child td {
        border-top: none !important;
      }

      &:last-child td {
        border-bottom: none !important;
      }

      &:focus + tr > td,
      &:focus > td {
        box-shadow: none !important;
      }
    }

    .expander {
      cursor: pointer;
      position: relative;
      top: 1px;
    }
  }

  th {
    border: none !important;
    border-bottom: 1px solid !important;
    border-color: pvar(--submenuColor) !important;
    text-align: left !important;
    padding: 5px 0 5px 15px !important;
    font-weight: $font-semibold !important;
    color: pvar(--mainForegroundColor) !important;

    &.ui-sortable-column:hover {
      background-color: pvar(--submenuColor) !important;
      border: 1px solid !important;
      border-color: pvar(--submenuColor) !important;
      border-width: 0 1px !important;

      &:first-child {
        border-width: 0 1px 0 0 !important;
      }
    }

    &.ui-state-highlight {
      background-color: pvar(--submenuColor) !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-down {
          @extend .glyphicon-triangle-bottom;

          color: pvar(--mainForegroundColor) !important;
        }
      }
    }
  }

  .action-cell {
    width: 250px !important;
    padding: 0 !important;
    text-align: center;

    .dropdown-root,
    my-edit-button,
    my-delete-button,
    my-button {
      display: inline-block !important;
      margin-left: 5px;

      :first-child {
        margin-left: 0
      }
    }
  }

  p-paginator {
    .ui-paginator-bottom {
      background-color: pvar(--mainBackgroundColor) !important;
      position: relative;
      border: none;
      border-top: 1px solid !important;
      border-color: pvar(--submenuColor) !important;
      height: 40px;
      display: flex;
      justify-content: center;
      align-items: center;

      .ui-dropdown {
        position: absolute;
        top: 3px;
        left: 0;

        &.ui-state-focus {
          box-shadow: #{$focus-box-shadow-form} pvar(--mainColorLightest);
        }

        .ui-dropdown-label {
          color: pvar(--inputPlaceholderColor);
        }
      }

      .ui-paginator-current {
        position: absolute;
        right: 0;
        color: pvar(--inputPlaceholderColor);
      }

      .ui-paginator-first,
      .ui-paginator-prev,
      .ui-paginator-next,
      .ui-paginator-last {
        @include glyphicon-light;
        padding: 5px 2px;
        height: auto;
        outline: none;
        font-size: 13px;
        top: -1px;

        &.focus-within,
        &:focus {
          box-shadow: #{$focus-box-shadow-form} pvar(--mainColorLightest);
        }

        &.ui-state-disabled:hover {
          background-color: #fff !important;
        }

        &.ui-paginator-first {
          @extend .glyphicon-step-backward;
        }

        &.ui-paginator-prev {
          @extend .glyphicon-chevron-left;

          margin-right: 10px;
        }

        &.ui-paginator-next {
          @extend .glyphicon-chevron-right;

          margin-left: 10px;
        }

        &.ui-paginator-last {
          @extend .glyphicon-step-forward;
        }
      }

      .ui-paginator-pages {
        height: auto !important;

        .ui-paginator-page {
          &.focus-within,
          &:focus {
            box-shadow: #{$focus-box-shadow-form} pvar(--mainColorLightest) !important;
          }
        }

        a {
          color: pvar(--mainForegroundColor) !important;
          font-weight: $font-semibold !important;
          margin: 0 5px !important;
          outline: 0 !important;
          border-radius: 3px !important;
          padding: 5px 2px !important;
          height: auto !important;
          line-height: initial !important;

          &.ui-state-active {
            &, &:hover, &:active, &:focus {
              color: #fff !important;
              background-color: pvar(--mainColor) !important;
            }
          }
        }
      }
    }
  }
}

// overflow data table
@mixin overflow-datatable ($table-min-width, $horizontal-margins, $mobile-paginator: true) {
  p-table {
    .ui-table-wrapper {
      overflow-x: auto;
      max-width: calc(100vw - #{$horizontal-margins * 2});

      table {
        min-width: $table-min-width;
      }
    }

    @if $mobile-paginator {
      p-paginator .ui-paginator-bottom {
        display: block;

        .ui-paginator-current {
          position: relative;
          display: block;
        }

        a, .ui-paginator-pages {
          vertical-align: middle;
        }
      }
    }
  }
}

// PrimeNG calendar tweaks
p-calendar .ui-datepicker {
  a {
    @include disable-default-a-behaviour;
  }

  .ui-datepicker-header {

    .ui-datepicker-year {
      margin-left: 5px;
    }

    .ui-datepicker-next {
      @extend .glyphicon-chevron-right;
      @include glyphicon-light;

      color: #000 !important;
      text-align: right;

      .pi.pi-chevron-right {
        display: none !important;
      }
    }

    .ui-datepicker-prev {
      @extend .glyphicon-chevron-left;
      @include glyphicon-light;

      color: #000 !important;
      text-align: left;

      .pi.pi-chevron-left {
        display: none !important;
      }
    }
  }

  .ui-timepicker {

    .pi.pi-chevron-up {
      @extend .glyphicon-chevron-up;
      @include glyphicon-light;

      color: #000 !important;
    }

    .pi.pi-chevron-down {
      @extend .glyphicon-chevron-down;
      @include glyphicon-light;

      color: #000 !important;
    }
  }
}

p-tablecheckbox:hover div .ui-chkbox-box {
  box-shadow: 0 0 0 .1rem rgba(87, 85, 217, .2);
}

.ui-chkbox {

  &, .ui-chkbox-box {
    width: 18px !important;
    height: 18px !important;
  }

  .ui-chkbox-box {
    &.ui-state-active {
      border-color: pvar(--mainColor) !important;
      background-color: pvar(--mainColor) !important;
    }

    .ui-chkbox-icon {
      position: relative;
      overflow: visible !important;

      &:after {
        content: '';
        position: absolute;
        top: 1px;
        left: 6px;
        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);
      }
    }
  }
}

p-inputswitch {
  height: 26px;

  .ui-inputswitch-checked .ui-inputswitch-slider {
    background-color: pvar(--mainColor) !important;
  }

  &.small {
    height: 20px;

    .ui-inputswitch {
      width: 2.5em !important;
      height: 1.45em !important;

      .ui-inputswitch-slider::before {
        height: 1em !important;
        width: 1em !important;
      }
    }

    .ui-inputswitch-checked .ui-inputswitch-slider::before {
      transform: translateX(1em) !important;
    }
  }
}

p-toast {
  .ui-toast {
    z-index: z(notification) !important;

    .ui-toast-close-icon {
      font-family: "Glyphicons Halflings";
      opacity: 0;

      &:after {
        content: "\e014";
      }
    }

    &:hover .ui-toast-close-icon {
      opacity: .3;
    }
  }

  .ui-toast-message {
    font-family: $main-fonts;
    background-color: pvar(--mainBackgroundColor) !important;
    color: pvar(--mainForegroundColor) !important;
    border-radius: 5px;
    box-sizing: border-box;
    border: 1px solid #EBEEF5 !important;
    box-shadow: 0 2px 12px 0 rgba(0, 0 , 0, .1);
    overflow: hidden;

    &.ui-toast-message-success .glyphicon {
      color: #8BC34A !important;
    }

    &.ui-toast-message-error .glyphicon {
      color: #F44336 !important;
    }

    &.ui-toast-message-warn .glyphicon {
      color: #F1680D !important;
    }

    &.ui-toast-message-info .glyphicon {
      color: #03A9F4 !important;
    }

    .notification-block {
      display: flex;
      align-items: center;
      padding: 5px;

      .message {
        flex-grow: 1;

        h3 {
          font-size: 21px;
        }

        p {
          font-size: 15px;
          margin-bottom: 0;
        }
      }

      .glyphicon {
        font-size: 32px;
        margin-right: 5px;
      }
    }
  }
}

.ui-widget {
  font-family: $main-fonts !important;
}