463 lines
8.7 KiB
SCSS
463 lines
8.7 KiB
SCSS
/*
|
|
* https://github.com/morethanwords/tweb
|
|
* Copyright (C) 2019-2021 Eduard Kuzmenko
|
|
* https://github.com/morethanwords/tweb/blob/master/LICENSE
|
|
*/
|
|
|
|
.ckin {
|
|
&__player {
|
|
letter-spacing: 0.02em;
|
|
user-select: none;
|
|
|
|
&.ckin__fullscreen {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
height: 100%;
|
|
width: 100%;
|
|
z-index: 10000000;
|
|
background: #000;
|
|
border-radius: 0 !important;
|
|
display: -ms-flexbox;
|
|
display: flex;
|
|
|
|
video {
|
|
width: 100%;
|
|
height: 100%;
|
|
/* max-height: none;
|
|
max-width: none; */
|
|
object-fit: contain;
|
|
}
|
|
}
|
|
|
|
.time {
|
|
margin-left: .875rem;
|
|
font-size: .875rem;
|
|
color: #fff;
|
|
|
|
@include respond-to(handhelds) {
|
|
margin-left: 1.125rem;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.default {
|
|
position: relative;
|
|
font-size: 0;
|
|
//overflow: hidden;
|
|
//border-radius: 5px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
|
|
&.show-controls video {
|
|
cursor: pointer;
|
|
}
|
|
|
|
/* &:before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
bottom: 0;
|
|
right: 0;
|
|
transition: opacity .2s;
|
|
opacity: 1;
|
|
visibility: visible;
|
|
} */
|
|
|
|
&__button {
|
|
color: #fff;
|
|
padding: .375rem;
|
|
|
|
i {
|
|
align-self: center;
|
|
}
|
|
|
|
&--big {
|
|
background: none;
|
|
border: 0;
|
|
line-height: 1;
|
|
color: #fff;
|
|
text-align: center;
|
|
outline: 0;
|
|
padding: 0;
|
|
position: absolute;
|
|
opacity: 1;
|
|
visibility: visible;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate3d(-50%, -50%, 0) scale(1);
|
|
font-size: 4rem;
|
|
|
|
@include respond-to(not-handhelds) {
|
|
pointer-events: none;
|
|
}
|
|
|
|
@include animation-level(2) {
|
|
transition: visibility var(--layer-transition), opacity var(--layer-transition);
|
|
}
|
|
|
|
@include respond-to(handhelds) {
|
|
font-size: 3rem;
|
|
}
|
|
}
|
|
}
|
|
|
|
&:not(.played) {
|
|
.default__button--big {
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
}
|
|
}
|
|
|
|
&__controls {
|
|
position: absolute;
|
|
bottom: 0;
|
|
right: 0;
|
|
left: 0;
|
|
text-align: left;
|
|
direction: ltr;
|
|
z-index: 6;
|
|
|
|
@include animation-level(2) {
|
|
transition: transform var(--layer-transition);
|
|
}
|
|
|
|
.progress-line {
|
|
margin: 0 16px;
|
|
border-radius: var(--border-radius);
|
|
|
|
&__filled {
|
|
background: var(--primary-color);
|
|
}
|
|
|
|
&__loaded {
|
|
background-color: #fff;
|
|
}
|
|
|
|
& {
|
|
background: rgba(255, 255, 255, .38);
|
|
}
|
|
|
|
@include respond-to(handhelds) {
|
|
margin-bottom: -1px;
|
|
}
|
|
}
|
|
}
|
|
|
|
&__gradient-bottom {
|
|
height: 49px;
|
|
// padding-top: 49px;
|
|
padding-top: 93px;
|
|
bottom: 0;
|
|
z-index: 2;
|
|
background-position: bottom;
|
|
width: 100%;
|
|
position: absolute;
|
|
background-repeat: repeat-x;
|
|
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==);
|
|
pointer-events: none;
|
|
|
|
@include animation-level(2) {
|
|
transition: transform var(--layer-transition);
|
|
}
|
|
}
|
|
|
|
&:not(.ckin__fullscreen) .default__gradient-bottom {
|
|
@include respond-to(handhelds) {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
.toggle:before {
|
|
content: $tgico-play;
|
|
}
|
|
|
|
.default__gradient-bottom {
|
|
transform: translate3d(0, 50px, 0);
|
|
}
|
|
|
|
.default__controls {
|
|
transform: translate3d(0, 52px, 0);
|
|
|
|
@include respond-to(handhelds) {
|
|
transform: translate3d(0, 65px, 0);
|
|
}
|
|
}
|
|
|
|
&.show-controls {
|
|
.default__gradient-bottom,
|
|
.default__controls {
|
|
transform: translateZ(0);
|
|
}
|
|
}
|
|
|
|
&.is-playing {
|
|
&:not(.show-controls) {
|
|
cursor: none;
|
|
}
|
|
}
|
|
|
|
&.is-playing, &:not(.played) {
|
|
.default__button--big {
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
}
|
|
|
|
.toggle:not(.default__button--big) {
|
|
&:before {
|
|
content: $tgico-pause;
|
|
}
|
|
}
|
|
}
|
|
|
|
.player-volume {
|
|
--icon-size: 2.25rem;
|
|
--icon-margin-right: .5rem;
|
|
--selector-size: 50px;
|
|
--selector-thumb-size: .75rem;
|
|
--hide-width: var(--icon-size);
|
|
--show-width: calc(var(--icon-size) + var(--icon-margin-right) + var(--selector-size) + var(--selector-thumb-size) * .75);
|
|
// margin: 0 .125rem;
|
|
display: flex;
|
|
align-items: center;
|
|
width: var(--hide-width);
|
|
overflow: hidden;
|
|
|
|
@include animation-level(2) {
|
|
transition: width var(--layer-transition);
|
|
}
|
|
|
|
html.is-touch & {
|
|
// margin-left: .125rem;
|
|
display: none;
|
|
}
|
|
|
|
html:not(.is-touch) & {
|
|
& + .time {
|
|
margin-left: .5rem;
|
|
}
|
|
}
|
|
|
|
@include hover() {
|
|
width: var(--show-width);
|
|
}
|
|
|
|
&__icon {
|
|
color: #fff;
|
|
width: var(--icon-size);
|
|
height: var(--icon-size);
|
|
margin-right: var(--icon-margin-right);
|
|
cursor: pointer;
|
|
padding: .375rem;
|
|
font-size: 1.5rem;
|
|
display: flex;
|
|
}
|
|
|
|
.progress-line {
|
|
--color: #fff;
|
|
--thumb-size: var(--selector-thumb-size);
|
|
--height: 4px;
|
|
margin: 0;
|
|
width: var(--selector-size);
|
|
min-width: var(--selector-size);
|
|
|
|
// https://stackoverflow.com/a/4816050
|
|
html.is-ios & {
|
|
display: none;
|
|
}
|
|
}
|
|
}
|
|
|
|
&.is-buffering {
|
|
> .toggle {
|
|
display: none !important;
|
|
}
|
|
}
|
|
}
|
|
|
|
video::-webkit-media-controls-enclosure {
|
|
display: none !important;
|
|
}
|
|
|
|
.progress-line {
|
|
--color: var(--primary-color);
|
|
--height: 5px;
|
|
--border-radius: 6px;
|
|
--thumb-size: 13px;
|
|
border-radius: var(--border-radius);
|
|
height: var(--height);
|
|
position: relative;
|
|
cursor: pointer;
|
|
|
|
&:before {
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
display: block;
|
|
content: " ";
|
|
border-radius: inherit;
|
|
}
|
|
|
|
&__seek {
|
|
-webkit-appearance: none;
|
|
-moz-appearance: none;
|
|
background: transparent;
|
|
width: 100%;
|
|
cursor: pointer;
|
|
padding: 0;
|
|
margin: 0;
|
|
outline: none;
|
|
caret-color: var(--color);
|
|
position: absolute;
|
|
top: -.5rem;
|
|
bottom: -.5rem;
|
|
|
|
&:focus {
|
|
outline: none;
|
|
|
|
/* &::-webkit-slider-runnable-track {
|
|
background: transparent;
|
|
}
|
|
|
|
&::-moz-range-track {
|
|
outline: none;
|
|
} */
|
|
}
|
|
|
|
&::-webkit-slider-thumb {
|
|
display: none;
|
|
}
|
|
|
|
&::-moz-range-thumb {
|
|
display: none;
|
|
width: 0;
|
|
height: 0;
|
|
}
|
|
|
|
&::-moz-range-track {
|
|
display: none;
|
|
}
|
|
|
|
&::-webkit-slider-runnable-track {
|
|
display: none;
|
|
}
|
|
|
|
/* &::-webkit-slider-thumb,
|
|
&::-moz-range-thumb,
|
|
&::-moz-range-track,
|
|
&::-webkit-slider-runnable-track {
|
|
-webkit-appearance: none;
|
|
background: transparent;
|
|
border-color: transparent;
|
|
color: transparent;
|
|
width: 0;
|
|
height: 0;
|
|
} */
|
|
}
|
|
|
|
&__filled {
|
|
// padding-right: 1px; // * need because there is border-radius
|
|
max-width: 100%;
|
|
|
|
&:not(.progress-line__loaded) {
|
|
background-color: var(--color);
|
|
z-index: 1;
|
|
|
|
&:after {
|
|
content: " ";
|
|
display: block;
|
|
height: var(--thumb-size);
|
|
width: var(--thumb-size);
|
|
border-radius: 50%;
|
|
background-color: var(--color);
|
|
cursor: pointer;
|
|
position: absolute;
|
|
right: 0;
|
|
top: calc((var(--thumb-size) - var(--height)) / -2);
|
|
transform: translateX(calc(var(--thumb-size) / 2)) scale(1);
|
|
|
|
@include animation-level(2) {
|
|
transition: transform .125s ease-in-out;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
&.is-focused .progress-line__filled:not(.progress-line__loaded):after {
|
|
transform: translateX(calc(var(--thumb-size) / 2)) scale(1.25);
|
|
}
|
|
|
|
&__loaded, &:before {
|
|
opacity: .3;
|
|
background-color: var(--secondary-color);
|
|
}
|
|
|
|
&__filled,
|
|
&__loaded {
|
|
border-radius: var(--border-radius);
|
|
position: absolute;
|
|
top: 0;
|
|
bottom: 0;
|
|
}
|
|
|
|
@include animation-level(2) {
|
|
&.with-transition {
|
|
.progress-line__filled {
|
|
transition: width .2s;
|
|
}
|
|
}
|
|
}
|
|
|
|
&.use-transform {
|
|
.progress-line__filled {
|
|
width: 100%;
|
|
transform-origin: left center;
|
|
}
|
|
}
|
|
}
|
|
|
|
input[type=range] {
|
|
&::-ms-track {
|
|
visibility: hidden;
|
|
}
|
|
|
|
&::-ms-ticks {
|
|
background: none;
|
|
color: none;
|
|
border: none;
|
|
}
|
|
|
|
&::-ms-thumb {
|
|
visibility: hidden;
|
|
}
|
|
|
|
&::-ms-tooltip {
|
|
visibility: hidden;
|
|
}
|
|
}
|
|
|
|
.left-controls,
|
|
.right-controls {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.bottom-controls {
|
|
padding: 0 .625rem;
|
|
height: 2.25rem;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
|
|
@include respond-to(handhelds) {
|
|
height: 3.625rem;
|
|
}
|
|
}
|