Telegram Web K with changes to work inside I2P
https://web.telegram.i2p/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
511 lines
10 KiB
511 lines
10 KiB
/* |
|
* https://github.com/morethanwords/tweb |
|
* Copyright (C) 2019-2021 Eduard Kuzmenko |
|
* https://github.com/morethanwords/tweb/blob/master/LICENSE |
|
*/ |
|
|
|
.media-viewer { |
|
position: fixed; |
|
top: 0; |
|
left: 0; |
|
right: 0; |
|
bottom: 0; |
|
background: rgba(0, 0, 0, .88); |
|
/* color: var(--secondary-text-color); */ |
|
display: flex; |
|
align-items: center; |
|
justify-content: center; |
|
|
|
@include respond-to(handhelds) { |
|
background: #000; |
|
} |
|
|
|
&-author { |
|
height: 100%; |
|
cursor: pointer; |
|
display: flex; |
|
align-items: center; |
|
|
|
@include respond-to(handhelds) { |
|
margin-left: 1.5rem; |
|
} |
|
} |
|
|
|
&-userpic { |
|
margin-right: 1rem; |
|
|
|
@include respond-to(handhelds) { |
|
display: none; |
|
} |
|
} |
|
|
|
&-name { |
|
line-height: var(--line-height); |
|
font-weight: 500; |
|
margin: .0625rem 0; |
|
|
|
@include respond-to(not-handhelds) { |
|
margin: .0625rem 0 .125rem; |
|
} |
|
} |
|
|
|
&-date { |
|
line-height: var(--line-height); |
|
font-size: .875rem; |
|
} |
|
|
|
&-buttons { |
|
position: absolute; |
|
top: 0; |
|
right: 0; |
|
display: flex; |
|
flex-flow: row nowrap; |
|
padding: .5rem .75rem; |
|
|
|
.btn-icon { |
|
margin: 0 .25rem; |
|
transition: var(--open-duration); |
|
|
|
@include hover() { |
|
color: #fff; |
|
} |
|
} |
|
|
|
@include respond-to(handhelds) { |
|
display: none; |
|
} |
|
} |
|
|
|
&-content { |
|
display: flex; |
|
flex-direction: column; |
|
justify-content: center; |
|
align-items: center; |
|
height: 100%; |
|
max-height: 100%; |
|
max-width: 100%; |
|
overflow: hidden; |
|
} |
|
|
|
/* &-stub { |
|
flex: 1; |
|
min-height: 50px; |
|
} */ |
|
|
|
&-container { |
|
align-self: center; |
|
position: relative; |
|
max-width: 100%; |
|
max-height: 100%; |
|
overflow: hidden; |
|
flex: 1 1 auto; |
|
display: flex; |
|
align-items: center; |
|
} |
|
|
|
&-media { |
|
visibility: hidden; |
|
} |
|
|
|
&-caption { |
|
position: absolute; |
|
text-align: center; |
|
color: #fff; |
|
//color: var(--secondary-text-color); |
|
word-break: break-word; |
|
overflow: hidden; |
|
text-overflow: ellipsis; |
|
z-index: 5; |
|
bottom: 3rem; |
|
left: 50%; |
|
transform: translateX(-50%); |
|
padding: 0 .5rem; |
|
background-color: rgba(0, 0, 0, .6); |
|
border-radius: 8px; |
|
opacity: 0; |
|
transition: opacity var(--open-duration); |
|
|
|
@include respond-to(handhelds) { |
|
border-radius: 0; |
|
width: 100%; |
|
} |
|
|
|
> .scrollable { |
|
padding: .5rem 0; |
|
max-height: 10rem; |
|
max-width: 1280px; |
|
position: relative; |
|
} |
|
|
|
.media-viewer-whole.active & { |
|
opacity: 1; |
|
|
|
@include hover() { |
|
opacity: .2; |
|
|
|
&:hover { |
|
opacity: 1; |
|
//color: #fff; |
|
} |
|
} |
|
} |
|
} |
|
|
|
&-switcher { |
|
position: absolute; |
|
left: 0; |
|
top: 3.75rem; |
|
width: 7rem; |
|
height: calc(100% - 7.5rem); |
|
cursor: pointer; |
|
z-index: 5; |
|
|
|
@include hover() { |
|
height: calc(100% - 3.75rem); |
|
|
|
&:hover { |
|
> span { |
|
opacity: 1; |
|
} |
|
} |
|
} |
|
|
|
@include respond-to(handhelds) { |
|
width: 4rem; |
|
} |
|
|
|
&-right { |
|
left: auto; |
|
right: 0; |
|
} |
|
} |
|
|
|
&-prev-button, &-next-button { |
|
cursor: pointer; |
|
position: absolute; |
|
color: #fff; |
|
font-size: 2rem; |
|
left: 1rem; |
|
top: 50%; |
|
transform: translateY(-50%) rotate(90deg); |
|
opacity: 0; |
|
transition: var(--open-duration) opacity; |
|
z-index: 5; |
|
/* box-shadow: 0 1px 2px 0 rgba(16, 35, 47, 0.07); */ |
|
|
|
@include respond-to(not-handhelds) { |
|
font-size: 3rem; |
|
left: 2rem; |
|
} |
|
} |
|
|
|
&-next-button { |
|
left: auto; |
|
right: 1rem; |
|
transform: translateY(-50%) rotate(-90deg); |
|
|
|
@include respond-to(not-handhelds) { |
|
right: 2rem; |
|
} |
|
} |
|
|
|
&-mover/* , &-canvas */ { |
|
position: fixed!important; |
|
z-index: 4; |
|
//transition: .5s all; |
|
display: flex; |
|
justify-content: center; |
|
align-items: center; // mb net |
|
min-height: auto!important; |
|
left: 0; |
|
top: 0; |
|
transform-origin: top left; |
|
//transform-origin: bottom right; |
|
overflow: hidden; |
|
transform: translateZ(0) scale3d(1, 1, 1); |
|
border-radius: 0; |
|
|
|
&:not(.center) { |
|
-webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%); // fix border-radius overflow |
|
} |
|
|
|
// эти значения должны быть такими же, как при установке maxWidth и maxHeight в openMedia! |
|
//max-width: 100%; |
|
//max-width: calc(1vw - 16px); |
|
//max-height: 100%; |
|
//max-height: calc((var(--vh, 1vh) * 100) - 100px); |
|
|
|
// эти значения должны быть такими же, как при установке maxWidth и maxHeight в openMedia! |
|
@include respond-to(handhelds) { |
|
overflow: visible; |
|
//max-height: 100% !important; |
|
//max-width: 100vw !important; |
|
} |
|
|
|
.ckin__player { |
|
width: 100%; |
|
height: 100%; |
|
position: absolute; |
|
left: 0; |
|
top: 0; |
|
} |
|
|
|
> svg { |
|
width: 100%; |
|
height: 100%; |
|
} |
|
|
|
img, video { |
|
width: 100%; |
|
height: 100%; |
|
max-width: 100%; |
|
max-height: 100%; |
|
user-select: none; |
|
object-fit: cover; |
|
//object-fit: contain; |
|
opacity: 1; |
|
transition: var(--open-duration) opacity; |
|
|
|
/* border-radius: inherit; |
|
transition: var(--open-duration) border-radius; */ |
|
|
|
//&.thumbnail { |
|
position: absolute; |
|
//z-index: -1; |
|
//} |
|
} |
|
|
|
// !SAFARI |
|
svg { |
|
img, video { |
|
position: unset; |
|
} |
|
} |
|
|
|
&.active { |
|
transition: transform var(--open-duration), border-radius var(--open-duration), opacity var(--open-duration) calc(var(--open-duration) / 8); |
|
} |
|
|
|
&.active.opening { |
|
transition: transform var(--open-duration), border-radius var(--open-duration), opacity var(--open-duration) 0s; |
|
} |
|
|
|
&.moving { |
|
transition: transform var(--move-duration) ease; |
|
} |
|
|
|
/* &.center { |
|
transition: none !important; |
|
} */ |
|
|
|
&.no-transition { |
|
transition: none !important; |
|
} |
|
|
|
&.center { |
|
left: 50% !important; |
|
top: 50% !important; |
|
transform: translate3d(-50%, -50%, 0) !important; |
|
max-width: calc(100vw - 16px); |
|
max-height: calc((var(--vh, 1vh) * 100) - 120px); |
|
|
|
@include respond-to(handhelds) { |
|
width: 100% !important; |
|
height: 100% !important; |
|
max-width: 100vw !important; |
|
// max-height: 100vh !important; |
|
// TODO: max-height: calc((var(--vh, 1vh) * 100)); |
|
//height: calc(100% - 100px) !important; |
|
/* height: calc(100% - 50px) !important; |
|
top: calc(50% + 25px) !important; |
|
|
|
img, video { |
|
margin-top: -25px; |
|
} */ |
|
|
|
/* img, video { |
|
max-height: calc(100% - 100px); |
|
} */ |
|
|
|
.ckin__player:not(.ckin__fullscreen) { |
|
.default__controls/* , |
|
.default__gradient-bottom */ { |
|
bottom: -61px; |
|
} |
|
} |
|
} |
|
|
|
/* @include respond-to(handhelds) { |
|
&.moving { |
|
.ckin__player { |
|
.default__controls, .default__gradient-bottom { |
|
display: none; |
|
} |
|
} |
|
} |
|
} */ |
|
|
|
img:not(.thumbnail), |
|
video { |
|
/* height: auto; |
|
width: auto; */ |
|
object-fit: contain; |
|
//max-height: calc(100% - 100px); |
|
} |
|
|
|
img.thumbnail { |
|
width: auto; |
|
object-fit: contain; |
|
//height: auto; |
|
} |
|
} |
|
|
|
&.hiding { |
|
img, video { |
|
opacity: 0; |
|
} |
|
} |
|
} |
|
|
|
&-appear { |
|
opacity: 0; |
|
visibility: hidden; |
|
transition: opacity var(--open-duration) 0s, visibility 0s var(--open-duration); |
|
} |
|
|
|
&-topbar { |
|
position: absolute; |
|
top: 0; |
|
left: 0; |
|
right: 0; |
|
height: 3.5rem; |
|
display: flex; |
|
align-items: center; |
|
justify-content: space-between; |
|
z-index: 5; |
|
padding: 0 1.25rem; |
|
|
|
.btn-icon, .media-viewer-author { |
|
color: #8b8b8b; |
|
|
|
@include animation-level(2) { |
|
transition: color var(--open-duration) ease-in-out; |
|
} |
|
|
|
@include hover() { |
|
color: #fff; |
|
} |
|
} |
|
|
|
&-left { |
|
display: flex; |
|
align-items: center; |
|
} |
|
|
|
@include respond-to(handhelds) { |
|
padding: 0 .5rem; |
|
// transform: translateY(-3.5rem); |
|
// background: rgba(0, 0, 0, .2); |
|
|
|
/* @include animation-level(2) { |
|
transition: transform var(--open-duration) ease-in-out; |
|
} */ |
|
} |
|
} |
|
|
|
// возможно тут это вообще не нужно |
|
&-aspecter { |
|
width: 100%; |
|
height: 100%; |
|
transform: scale3d(1, 1, 1); |
|
//overflow: hidden; // WARNING |
|
position: absolute; |
|
border-radius: 0; |
|
|
|
display: flex; |
|
align-items: center; |
|
justify-content: center; |
|
} |
|
|
|
&-mover.active &-aspecter { |
|
transition: width var(--open-duration), height var(--open-duration), transform var(--open-duration), border-radius var(--open-duration); |
|
//transition: var(--open-duration) all; |
|
} |
|
|
|
&-whole { |
|
--open-duration: .2s; |
|
--move-duration: .35s; |
|
top: 0; |
|
left: 0; |
|
width: 100%; |
|
height: 100%; |
|
position: fixed!important; |
|
display: block; |
|
z-index: 4; |
|
visibility: hidden; |
|
transition: visibility 0s var(--open-duration); |
|
|
|
body.animation-level-0 & { |
|
--open-duration: 0s; |
|
--move-duration: 0s; |
|
} |
|
|
|
&.active { |
|
visibility: visible; |
|
transition-delay: 0s; |
|
|
|
.overlays, |
|
.media-viewer-appear/* , |
|
> .btn-icon */ { |
|
opacity: 1; |
|
visibility: visible; |
|
transition: opacity var(--open-duration) 0s, visibility 0s 0s; |
|
} |
|
} |
|
|
|
@include respond-to(handhelds) { |
|
/* > .btn-icon { |
|
top: 8px; |
|
position: fixed; |
|
z-index: 5; |
|
opacity: 0; |
|
transition: opacity var(--open-duration) 0s, visibility 0s var(--open-duration); |
|
} */ |
|
|
|
.btn-menu-toggle { |
|
&.menu-open { |
|
color: #fff; |
|
background-color: rgba(112, 117, 121, .2) !important; |
|
} |
|
} |
|
} |
|
|
|
&.highlight-switchers { |
|
.media-viewer-switcher > span { |
|
opacity: 1; |
|
} |
|
} |
|
} |
|
|
|
&-switchers { |
|
position: relative; |
|
width: $large-screen; |
|
max-width: 100%; |
|
height: 100%; |
|
margin: 0 auto; |
|
} |
|
} |
|
|
|
.overlays { |
|
top: 0; |
|
left: 0; |
|
width: 100%; |
|
height: 100%; |
|
position: fixed!important; |
|
background-color: rgba(0, 0, 0, .2); |
|
z-index: 4; |
|
//display: none; |
|
opacity: 0; |
|
visibility: hidden; |
|
transition: opacity var(--open-duration) 0s, visibility 0s var(--open-duration); |
|
}
|
|
|