aboutsummaryrefslogblamecommitdiffhomepage
path: root/client/src/sass/player/settings-menu.scss
blob: 9932fc8c899742a394728191c3195553aacef854 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

                                










                                     
                






















                                                                              
                                        











                                                                                                                                               
                                 

                                  
                        



                                  
                      



































                                                                                
                                  
                   
                            








                                                       
 


                                                 










                                             
                                    


                                
                        


                                      
                          
                           
                             
                                       
                               
                                             
                              


                                              
                                         






                                      


                                                         





                                  
                                                                                    

             





                                
                              
                                 
                                         






                                         

       
 
@use '_variables' as *;
@use '_mixins' as *;
@use './_player-variables' as *;

$setting-transition-duration: 0.15s;
$setting-transition-easing: ease-out;

/* Sass for videojs-settings-menu */

.video-js {

  .vjs-settings {
    @include disable-outline;

    cursor: pointer;
    width: 33px;

    .vjs-icon-placeholder {
      display: inline-block;
      width: 17px;
      height: 17px;
      vertical-align: middle;
      background: url('#{$assets-path}/player/images/settings.svg') no-repeat;
      background-size: contain;

      &::before {
        content: '';
      }
    }
  }

  .vjs-settings-sub-menu-title {
    width: 4em;
    text-transform: initial;
  }

  .vjs-settings-dialog {
    position: absolute;
    right: .5em;
    bottom: 3.5em;
    color: pvar(--embedForegroundColor);
    opacity: $primary-foreground-opacity;
    margin: 0 auto;
    font-size: $font-size !important;

    width: auto;
    overflow: hidden;

    transition: width $setting-transition-duration $setting-transition-easing,  height $setting-transition-duration $setting-transition-easing;

    .vjs-settings-sub-menu-value,
    .vjs-settings-sub-menu-title {
      display: table-cell;
      padding: 0 5px;
      text-transform: capitalize;
    }

    .vjs-settings-sub-menu-title {
      text-align: start;
      font-weight: $font-semibold;
    }

    .vjs-settings-sub-menu-value {
      width: 100%;
      text-align: end;

      small {
        font-size: 0.85em;
        opacity: 0.8;
      }
    }

    .vjs-settings-panel {
      position: absolute;
      bottom: 0;
      right: 0;
      overflow-y: auto;
      overflow-x: hidden;
      border-radius: 1px;
    }

    .vjs-settings-panel-child {
      display: flex;

      align-items: flex-end;
      white-space: nowrap;

      &:focus,
      &:active {
        outline: none;
      }

      > .vjs-menu {
        flex: 1;
        min-width: 200px;
      }

      > .vjs-menu,
      > .vjs-settings-sub-menu {
        transition: all $setting-transition-duration $setting-transition-easing;

        .vjs-menu-item {
          font-size: 1em;
          text-transform: initial;

          &:hover {
            cursor: pointer;
            background-color: rgba(255, 255, 255, 0.2);
          }

          &:first-child {
            margin-top: 5px;
          }

          &:last-child {
            margin-bottom: 5px;
          }

          &.disabled {
            opacity: 0.5;
            cursor: default !important;
            background-color: inherit !important;
          }
        }
      }

      > .vjs-menu {
        .vjs-menu-item {
          padding: 8px 16px;
        }

        .vjs-settings-sub-menu-value::after {
          @include chevron-right(9px, 2px);

          @include margin-left(5px);
        }
      }

      > .vjs-settings-sub-menu {
        min-width: 80px;

        .vjs-menu-item {
          outline: 0;
          font-weight: $font-semibold;
          text-align: end;
          padding: 5px 8px;

          &.vjs-back-button {
            padding: 8px 8px 13px 12px;
            margin-bottom: 5px;
            border-bottom: 1px solid #808080;
            text-align: start;

            &::before {
              @include chevron-left(9px, 2px);

              @include margin-right(5px);
            }
          }

          &.vjs-selected {
            background-color: inherit;
            color: inherit;
            position: relative;

            &:focus {
              background-color: rgba(115, 133, 159, 0.5);
            }

            &::before {
              @include icon(15px);

              position: absolute;
              left: 8px;
              content: ' ';
              margin-top: 1px;
              background-image: url('#{$assets-path}/player/images/tick-white.svg');
            }
          }
        }

        // Special captions case
        // Bigger caption button
        &.vjs-captions-button {
          width: 200px;

          .vjs-menu-item {
            text-align: start;

            .vjs-menu-item-text {
              @include margin-left(25px);
              text-transform: capitalize;
            }
          }
        }

        .vjs-menu {
          width: inherit;
        }
      }
    }
  }
}