699 lines
		
	
	
	
		
			11 KiB
		
	
	
	
		
			SCSS
		
	
	
	
	
	
			
		
		
	
	
			699 lines
		
	
	
	
		
			11 KiB
		
	
	
	
		
			SCSS
		
	
	
	
	
	
| .video-error-cover {
 | |
|   align-items: center;
 | |
|   background: $base-overlay-background;
 | |
|   color: $primary-text-color;
 | |
|   cursor: pointer;
 | |
|   display: flex;
 | |
|   flex-direction: column;
 | |
|   height: 100%;
 | |
|   justify-content: center;
 | |
|   margin-top: 8px;
 | |
|   position: relative;
 | |
|   text-align: center;
 | |
|   z-index: 100;
 | |
| }
 | |
| 
 | |
| .media-spoiler {
 | |
|   background: $base-overlay-background;
 | |
|   color: $darker-text-color;
 | |
|   border: 0;
 | |
|   width: 100%;
 | |
|   height: 100%;
 | |
| 
 | |
|   &:hover,
 | |
|   &:active,
 | |
|   &:focus {
 | |
|     color: lighten($darker-text-color, 8%);
 | |
|   }
 | |
| 
 | |
|   .status__content > & {
 | |
|     margin-top: 15px; // Add margin when used bare for NSFW video player
 | |
|   }
 | |
|   @include fullwidth-gallery;
 | |
| }
 | |
| 
 | |
| .media-spoiler__warning {
 | |
|   display: block;
 | |
|   font-size: 14px;
 | |
| }
 | |
| 
 | |
| .media-spoiler__trigger {
 | |
|   display: block;
 | |
|   font-size: 11px;
 | |
|   font-weight: 500;
 | |
| }
 | |
| 
 | |
| .media-gallery__gifv__label {
 | |
|   display: block;
 | |
|   position: absolute;
 | |
|   color: $primary-text-color;
 | |
|   background: rgba($base-overlay-background, 0.5);
 | |
|   bottom: 6px;
 | |
|   left: 6px;
 | |
|   padding: 2px 6px;
 | |
|   border-radius: 2px;
 | |
|   font-size: 11px;
 | |
|   font-weight: 600;
 | |
|   z-index: 1;
 | |
|   pointer-events: none;
 | |
|   opacity: 0.9;
 | |
|   transition: opacity 0.1s ease;
 | |
|   line-height: 18px;
 | |
| }
 | |
| 
 | |
| .media-gallery__gifv {
 | |
|   &.autoplay {
 | |
|     .media-gallery__gifv__label {
 | |
|       display: none;
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   &:hover {
 | |
|     .media-gallery__gifv__label {
 | |
|       opacity: 1;
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| .media-gallery {
 | |
|   box-sizing: border-box;
 | |
|   margin-top: 8px;
 | |
|   overflow: hidden;
 | |
|   border-radius: 4px;
 | |
|   position: relative;
 | |
|   width: 100%;
 | |
|   height: 110px;
 | |
| 
 | |
|   @include fullwidth-gallery;
 | |
| }
 | |
| 
 | |
| .media-gallery__item {
 | |
|   border: none;
 | |
|   box-sizing: border-box;
 | |
|   display: block;
 | |
|   float: left;
 | |
|   position: relative;
 | |
|   border-radius: 4px;
 | |
|   overflow: hidden;
 | |
| 
 | |
|   .full-width & {
 | |
|     border-radius: 0;
 | |
|   }
 | |
| 
 | |
|   &.standalone {
 | |
|     .media-gallery__item-gifv-thumbnail {
 | |
|       transform: none;
 | |
|       top: 0;
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   &.letterbox {
 | |
|     background: $base-shadow-color;
 | |
|   }
 | |
| }
 | |
| 
 | |
| .media-gallery__item-thumbnail {
 | |
|   cursor: zoom-in;
 | |
|   display: block;
 | |
|   text-decoration: none;
 | |
|   color: $secondary-text-color;
 | |
|   position: relative;
 | |
|   z-index: 1;
 | |
| 
 | |
|   &,
 | |
|   img {
 | |
|     height: 100%;
 | |
|     width: 100%;
 | |
|     object-fit: contain;
 | |
| 
 | |
|     &:not(.letterbox) {
 | |
|       height: 100%;
 | |
|       object-fit: cover;
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| .media-gallery__preview {
 | |
|   width: 100%;
 | |
|   height: 100%;
 | |
|   object-fit: cover;
 | |
|   position: absolute;
 | |
|   top: 0;
 | |
|   left: 0;
 | |
|   z-index: 0;
 | |
|   background: $base-overlay-background;
 | |
| 
 | |
|   &--hidden {
 | |
|     display: none;
 | |
|   }
 | |
| }
 | |
| 
 | |
| .media-gallery__gifv {
 | |
|   height: 100%;
 | |
|   overflow: hidden;
 | |
|   position: relative;
 | |
|   width: 100%;
 | |
|   display: flex;
 | |
|   justify-content: center;
 | |
| }
 | |
| 
 | |
| .media-gallery__item-gifv-thumbnail {
 | |
|   cursor: zoom-in;
 | |
|   height: 100%;
 | |
|   width: 100%;
 | |
|   position: relative;
 | |
|   z-index: 1;
 | |
|   object-fit: contain;
 | |
|   user-select: none;
 | |
| 
 | |
|   &:not(.letterbox) {
 | |
|     height: 100%;
 | |
|     object-fit: cover;
 | |
|   }
 | |
| }
 | |
| 
 | |
| .media-gallery__item-thumbnail-label {
 | |
|   clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
 | |
|   clip: rect(1px, 1px, 1px, 1px);
 | |
|   overflow: hidden;
 | |
|   position: absolute;
 | |
| }
 | |
| 
 | |
| .video-modal__container {
 | |
|   max-width: 100vw;
 | |
|   max-height: 100vh;
 | |
| }
 | |
| 
 | |
| .audio-modal__container {
 | |
|   width: 50vw;
 | |
| }
 | |
| 
 | |
| .media-modal {
 | |
|   width: 100%;
 | |
|   height: 100%;
 | |
|   position: relative;
 | |
| 
 | |
|   .extended-video-player {
 | |
|     width: 100%;
 | |
|     height: 100%;
 | |
|     display: flex;
 | |
|     align-items: center;
 | |
|     justify-content: center;
 | |
| 
 | |
|     video {
 | |
|       max-width: $media-modal-media-max-width;
 | |
|       max-height: $media-modal-media-max-height;
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| .media-modal__closer {
 | |
|   position: absolute;
 | |
|   top: 0;
 | |
|   left: 0;
 | |
|   right: 0;
 | |
|   bottom: 0;
 | |
| }
 | |
| 
 | |
| .media-modal__navigation {
 | |
|   position: absolute;
 | |
|   top: 0;
 | |
|   left: 0;
 | |
|   right: 0;
 | |
|   bottom: 0;
 | |
|   pointer-events: none;
 | |
|   transition: opacity 0.3s linear;
 | |
|   will-change: opacity;
 | |
| 
 | |
|   * {
 | |
|     pointer-events: auto;
 | |
|   }
 | |
| 
 | |
|   &.media-modal__navigation--hidden {
 | |
|     opacity: 0;
 | |
| 
 | |
|     * {
 | |
|       pointer-events: none;
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| .media-modal__nav {
 | |
|   background: rgba($base-overlay-background, 0.5);
 | |
|   box-sizing: border-box;
 | |
|   border: 0;
 | |
|   color: $primary-text-color;
 | |
|   cursor: pointer;
 | |
|   display: flex;
 | |
|   align-items: center;
 | |
|   font-size: 24px;
 | |
|   height: 20vmax;
 | |
|   margin: auto 0;
 | |
|   padding: 30px 15px;
 | |
|   position: absolute;
 | |
|   top: 0;
 | |
|   bottom: 0;
 | |
| }
 | |
| 
 | |
| .media-modal__nav--left {
 | |
|   left: 0;
 | |
| }
 | |
| 
 | |
| .media-modal__nav--right {
 | |
|   right: 0;
 | |
| }
 | |
| 
 | |
| .media-modal__pagination {
 | |
|   width: 100%;
 | |
|   text-align: center;
 | |
|   position: absolute;
 | |
|   left: 0;
 | |
|   bottom: 20px;
 | |
|   pointer-events: none;
 | |
| }
 | |
| 
 | |
| .media-modal__meta {
 | |
|   text-align: center;
 | |
|   position: absolute;
 | |
|   left: 0;
 | |
|   bottom: 20px;
 | |
|   width: 100%;
 | |
|   pointer-events: none;
 | |
| 
 | |
|   &--shifted {
 | |
|     bottom: 62px;
 | |
|   }
 | |
| 
 | |
|   a {
 | |
|     pointer-events: auto;
 | |
|     text-decoration: none;
 | |
|     font-weight: 500;
 | |
|     color: $ui-secondary-color;
 | |
| 
 | |
|     &:hover,
 | |
|     &:focus,
 | |
|     &:active {
 | |
|       text-decoration: underline;
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| .media-modal__page-dot {
 | |
|   display: inline-block;
 | |
| }
 | |
| 
 | |
| .media-modal__button {
 | |
|   background-color: $white;
 | |
|   height: 12px;
 | |
|   width: 12px;
 | |
|   border-radius: 6px;
 | |
|   margin: 10px;
 | |
|   padding: 0;
 | |
|   border: 0;
 | |
|   font-size: 0;
 | |
| }
 | |
| 
 | |
| .media-modal__button--active {
 | |
|   background-color: $ui-highlight-color;
 | |
| }
 | |
| 
 | |
| .media-modal__close {
 | |
|   position: absolute;
 | |
|   right: 8px;
 | |
|   top: 8px;
 | |
|   z-index: 100;
 | |
| }
 | |
| 
 | |
| .detailed,
 | |
| .fullscreen {
 | |
|   .video-player__volume__current,
 | |
|   .video-player__volume::before {
 | |
|     bottom: 27px;
 | |
|   }
 | |
| 
 | |
|   .video-player__volume__handle {
 | |
|     bottom: 23px;
 | |
|   }
 | |
| 
 | |
| }
 | |
| 
 | |
| .audio-player {
 | |
|   box-sizing: border-box;
 | |
|   position: relative;
 | |
|   background: darken($ui-base-color, 8%);
 | |
|   border-radius: 4px;
 | |
|   padding-bottom: 44px;
 | |
|   direction: ltr;
 | |
| 
 | |
|   &.editable {
 | |
|     border-radius: 0;
 | |
|     height: 100%;
 | |
|   }
 | |
| 
 | |
|   &__waveform {
 | |
|     padding: 15px 0;
 | |
|     position: relative;
 | |
|     overflow: hidden;
 | |
| 
 | |
|     &::before {
 | |
|       content: "";
 | |
|       display: block;
 | |
|       position: absolute;
 | |
|       border-top: 1px solid lighten($ui-base-color, 4%);
 | |
|       width: 100%;
 | |
|       height: 0;
 | |
|       left: 0;
 | |
|       top: calc(50% + 1px);
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   &__progress-placeholder {
 | |
|     background-color: rgba(lighten($ui-highlight-color, 8%), 0.5);
 | |
|   }
 | |
| 
 | |
|   &__wave-placeholder {
 | |
|     background-color: lighten($ui-base-color, 16%);
 | |
|   }
 | |
| 
 | |
|   .video-player__controls {
 | |
|     padding: 0 15px;
 | |
|     padding-top: 10px;
 | |
|     background: darken($ui-base-color, 8%);
 | |
|     border-top: 1px solid lighten($ui-base-color, 4%);
 | |
|     border-radius: 0 0 4px 4px;
 | |
|   }
 | |
| }
 | |
| 
 | |
| .video-player {
 | |
|   overflow: hidden;
 | |
|   position: relative;
 | |
|   background: $base-shadow-color;
 | |
|   max-width: 100%;
 | |
|   border-radius: 4px;
 | |
|   box-sizing: border-box;
 | |
|   direction: ltr;
 | |
| 
 | |
|   &.editable {
 | |
|     border-radius: 0;
 | |
|     height: 100% !important;
 | |
|   }
 | |
| 
 | |
|   &:focus {
 | |
|     outline: 0;
 | |
|   }
 | |
| 
 | |
|   .detailed-status & {
 | |
|     width: 100%;
 | |
|     height: 100%;
 | |
|   }
 | |
| 
 | |
|   @include fullwidth-gallery;
 | |
| 
 | |
|   video {
 | |
|     max-width: 100vw;
 | |
|     max-height: 80vh;
 | |
|     z-index: 1;
 | |
|     position: relative;
 | |
|   }
 | |
| 
 | |
|   &.fullscreen {
 | |
|     width: 100% !important;
 | |
|     height: 100% !important;
 | |
|     margin: 0;
 | |
| 
 | |
|     video {
 | |
|       max-width: 100% !important;
 | |
|       max-height: 100% !important;
 | |
|       width: 100% !important;
 | |
|       height: 100% !important;
 | |
|       outline: 0;
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   &.inline {
 | |
|     video {
 | |
|       object-fit: contain;
 | |
|       position: relative;
 | |
|       top: 50%;
 | |
|       transform: translateY(-50%);
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   &__controls {
 | |
|     position: absolute;
 | |
|     z-index: 2;
 | |
|     bottom: 0;
 | |
|     left: 0;
 | |
|     right: 0;
 | |
|     box-sizing: border-box;
 | |
|     background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent);
 | |
|     padding: 0 15px;
 | |
|     opacity: 0;
 | |
|     transition: opacity .1s ease;
 | |
| 
 | |
|     &.active {
 | |
|       opacity: 1;
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   &.inactive {
 | |
|     video,
 | |
|     .video-player__controls {
 | |
|       visibility: hidden;
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   &__spoiler {
 | |
|     display: none;
 | |
|     position: absolute;
 | |
|     top: 0;
 | |
|     left: 0;
 | |
|     width: 100%;
 | |
|     height: 100%;
 | |
|     z-index: 4;
 | |
|     border: 0;
 | |
|     background: $base-shadow-color;
 | |
|     color: $darker-text-color;
 | |
|     transition: none;
 | |
|     pointer-events: none;
 | |
| 
 | |
|     &.active {
 | |
|       display: block;
 | |
|       pointer-events: auto;
 | |
| 
 | |
|       &:hover,
 | |
|       &:active,
 | |
|       &:focus {
 | |
|         color: lighten($darker-text-color, 7%);
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     &__title {
 | |
|       display: block;
 | |
|       font-size: 14px;
 | |
|     }
 | |
| 
 | |
|     &__subtitle {
 | |
|       display: block;
 | |
|       font-size: 11px;
 | |
|       font-weight: 500;
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   &__buttons-bar {
 | |
|     display: flex;
 | |
|     justify-content: space-between;
 | |
|     padding-bottom: 10px;
 | |
| 
 | |
|     .video-player__download__icon {
 | |
|       color: inherit;
 | |
| 
 | |
|       .fa,
 | |
|       &:active .fa,
 | |
|       &:hover .fa,
 | |
|       &:focus .fa {
 | |
|         color: inherit;
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   &__buttons {
 | |
|     font-size: 16px;
 | |
|     white-space: nowrap;
 | |
|     overflow: hidden;
 | |
|     text-overflow: ellipsis;
 | |
| 
 | |
|     &.left {
 | |
|       button {
 | |
|         padding-left: 0;
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     &.right {
 | |
|       button {
 | |
|         padding-right: 0;
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     button {
 | |
|       background: transparent;
 | |
|       padding: 2px 10px;
 | |
|       font-size: 16px;
 | |
|       border: 0;
 | |
|       color: rgba($white, 0.75);
 | |
| 
 | |
|       &:active,
 | |
|       &:hover,
 | |
|       &:focus {
 | |
|         color: $white;
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   &__time-sep,
 | |
|   &__time-total,
 | |
|   &__time-current {
 | |
|     font-size: 14px;
 | |
|     font-weight: 500;
 | |
|   }
 | |
| 
 | |
|   &__time-current {
 | |
|     color: $white;
 | |
|     margin-left: 60px;
 | |
|   }
 | |
| 
 | |
|   &__time-sep {
 | |
|     display: inline-block;
 | |
|     margin: 0 6px;
 | |
|   }
 | |
| 
 | |
|   &__time-sep,
 | |
|   &__time-total {
 | |
|     color: $white;
 | |
|   }
 | |
| 
 | |
|   &__volume {
 | |
|     cursor: pointer;
 | |
|     height: 24px;
 | |
|     display: inline;
 | |
| 
 | |
|     &::before {
 | |
|       content: "";
 | |
|       width: 50px;
 | |
|       background: rgba($white, 0.35);
 | |
|       border-radius: 4px;
 | |
|       display: block;
 | |
|       position: absolute;
 | |
|       height: 4px;
 | |
|       left: 70px;
 | |
|       bottom: 20px;
 | |
|     }
 | |
| 
 | |
|     &__current {
 | |
|       display: block;
 | |
|       position: absolute;
 | |
|       height: 4px;
 | |
|       border-radius: 4px;
 | |
|       left: 70px;
 | |
|       bottom: 20px;
 | |
|       background: lighten($ui-highlight-color, 8%);
 | |
|     }
 | |
| 
 | |
|     &__handle {
 | |
|       position: absolute;
 | |
|       z-index: 3;
 | |
|       border-radius: 50%;
 | |
|       width: 12px;
 | |
|       height: 12px;
 | |
|       bottom: 16px;
 | |
|       left: 70px;
 | |
|       transition: opacity .1s ease;
 | |
|       background: lighten($ui-highlight-color, 8%);
 | |
|       box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);
 | |
|       pointer-events: none;
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   &__link {
 | |
|     padding: 2px 10px;
 | |
| 
 | |
|     a {
 | |
|       text-decoration: none;
 | |
|       font-size: 14px;
 | |
|       font-weight: 500;
 | |
|       color: $white;
 | |
| 
 | |
|       &:hover,
 | |
|       &:active,
 | |
|       &:focus {
 | |
|         text-decoration: underline;
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   &__seek {
 | |
|     cursor: pointer;
 | |
|     height: 24px;
 | |
|     position: relative;
 | |
| 
 | |
|     &::before {
 | |
|       content: "";
 | |
|       width: 100%;
 | |
|       background: rgba($white, 0.35);
 | |
|       border-radius: 4px;
 | |
|       display: block;
 | |
|       position: absolute;
 | |
|       height: 4px;
 | |
|       top: 10px;
 | |
|     }
 | |
| 
 | |
|     &__progress,
 | |
|     &__buffer {
 | |
|       display: block;
 | |
|       position: absolute;
 | |
|       height: 4px;
 | |
|       border-radius: 4px;
 | |
|       top: 10px;
 | |
|       background: lighten($ui-highlight-color, 8%);
 | |
|     }
 | |
| 
 | |
|     &__buffer {
 | |
|       background: rgba($white, 0.2);
 | |
|     }
 | |
| 
 | |
|     &__handle {
 | |
|       position: absolute;
 | |
|       z-index: 3;
 | |
|       opacity: 0;
 | |
|       border-radius: 50%;
 | |
|       width: 12px;
 | |
|       height: 12px;
 | |
|       top: 6px;
 | |
|       margin-left: -6px;
 | |
|       transition: opacity .1s ease;
 | |
|       background: lighten($ui-highlight-color, 8%);
 | |
|       box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);
 | |
|       pointer-events: none;
 | |
| 
 | |
|       &.active {
 | |
|         opacity: 1;
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     &:hover {
 | |
|       .video-player__seek__handle {
 | |
|         opacity: 1;
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   &.detailed,
 | |
|   &.fullscreen {
 | |
|     .video-player__buttons {
 | |
|       button {
 | |
|         padding-top: 10px;
 | |
|         padding-bottom: 10px;
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| }
 |