tweb/src/scss/style.scss

1703 lines
36 KiB
SCSS

/*
* https://github.com/morethanwords/tweb
* Copyright (C) 2019-2021 Eduard Kuzmenko
* https://github.com/morethanwords/tweb/blob/master/LICENSE
*/
$placeholder-color: #9e9e9e;
$border-radius: 8px;
$border-radius-medium: 10px;
$border-radius-big: 12px;
$hover-alpha: .08;
//$small-screen: 720px;
$small-screen: 600px;
//$small-screen: 900px;
$medium-screen: 1275px;
$large-screen: 1680px;
//$large-screen: 16800px;
$floating-left-sidebar: 925px;
$messages-container-width: 728px;
$chat-input-size: 3.375rem;
$chat-input-handhelds-size: 2.875rem;
$chat-padding: .8125rem;
$chat-padding-handhelds: .5rem;
$chat-input-inner-padding: .5rem;
$chat-input-inner-padding-handhelds: .25rem;
@function hover-color($color) {
@return rgba($color, $hover-alpha);
}
@function rgba-to-rgb($rgba, $background: #fff) {
@return mix(rgb(red($rgba), green($rgba), blue($rgba)), $background, alpha($rgba) * 100%);
}
/* @mixin safari-overflow() {
html.is-safari & {
-webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%);
@content;
}
} */
@import "mixins/hover";
@import "mixins/respondTo";
@import "mixins/textOverflow";
@import "mixins/animationLevel";
:root {
--vh: 1vh;
--z-below: -1;
--hover-alpha: #{$hover-alpha};
--transition-standard-easing: cubic-bezier(.4, .0, .2, 1);
--transition-standard-in-time: .3s;
--transition-standard-out-time: .25s;
--transition-standard-in: var(--transition-standard-in-time) var(--transition-standard-easing);
--transition-standard-out: var(--transition-standard-out-time) var(--transition-standard-easing);
--pm-transition: .2s ease-in-out;
--layer-transition: .2s cubic-bezier(.4, .0, .2, 1);
--slide-header-transition: .4s ease-in-out;
--tabs-transition: .25s ease-in-out;
--btn-menu-transition: .2s cubic-bezier(.4, 0, .2, 1);
--esg-transition: var(--btn-menu-transition);
--popup-transition-function: cubic-bezier(.4, 0, .2, 1);
--popup-transition-time: .15s;
//--layer-transition: .3s cubic-bezier(.33, 1, .68, 1);
//--layer-transition: none;
--btn-corner-transition: .2s cubic-bezier(.34, 1.56, .64, 1);
--chatlist-badge-transition-in: .2s cubic-bezier(.35,.35,.47,1); // 1.34
--chatlist-badge-transition-out: .2s cubic-bezier(.35,.35,.7,1);
--message-handhelds-margin: 5.5625rem;
--message-beside-button-size: 2.375rem;
--message-beside-button-margin: calc((var(--message-beside-button-size) + .5rem) * -1);
--message-time-background: rgba(0, 0, 0, .35);
--message-highlightning-color: hsla(85.5319, 36.9171%, 40.402%, .4);//rgba(77, 142, 80, .4);
--messages-container-width: #{$messages-container-width};
--messages-text-size: 16px;
--messages-secondary-text-size: calc(var(--messages-text-size) - 2px);
--messages-secondary-line-height: calc(var(--messages-secondary-text-size) + 4px);
--line-height: 1.3125;
--line-height-16: 21px;
--line-height-14: 18px;
--line-height-12: 16px;
--font-size-16: 16px;
--font-size-14: 14px;
--font-size-12: 12px;
--esg-sticker-size: 80px;
--disabled-opacity: .3;
--round-video-size: 280px;
--menu-box-shadow: 0px 2px 8px 1px var(--menu-box-shadow-color);
--topbar-floating-scaleX: 1;
--topbar-call-height: 3rem;
--topbar-floating-call-height: 0px;
--call-button-size: 3.375rem;
--call-button-margin: 2rem;
// https://github.com/overtake/TelegramSwift/blob/5cc7d2475fe4738a6aa0486c23eaf80a89d33b97/submodules/TGUIKit/TGUIKit/PresentationTheme.swift#L2054
--peer-avatar-red-top: #ff885e;
--peer-avatar-red-bottom: #ff516a;
--peer-avatar-orange-top: #ffcd6a;
--peer-avatar-orange-bottom: #ffa85c;
--peer-avatar-violet-top: #82b1ff;
--peer-avatar-violet-bottom: #665fff;
--peer-avatar-green-top: #a0de7e;
--peer-avatar-green-bottom: #54cb68;
--peer-avatar-cyan-top: #53edd6;
--peer-avatar-cyan-bottom: #28c9b7;
--peer-avatar-blue-top: #72d5fd;
--peer-avatar-blue-bottom: #2a9ef1;
--peer-avatar-pink-top: #e0a2f3;
--peer-avatar-pink-bottom: #d669ed;
@include respond-to(handhelds) {
--right-column-width: 100vw;
--esg-sticker-size: 68px;
--round-video-size: 200px;
--chat-input-size: #{$chat-input-handhelds-size};
--chat-input-padding: #{$chat-padding-handhelds};
--chat-input-inner-padding: #{$chat-input-inner-padding-handhelds};
}
@include respond-to(not-handhelds) {
--right-column-width: calc(#{$large-screen} / 4);
--chat-input-size: #{$chat-input-size};
--chat-input-padding: #{$chat-padding};
--chat-input-inner-padding: #{$chat-input-inner-padding};
}
@include respond-to(esg-bottom) {
--chat-input-size: #{$chat-input-handhelds-size};
--chat-input-inner-padding: #{$chat-input-inner-padding-handhelds};
}
@include respond-to(only-medium-screens) {
--right-column-width: 25vw;
}
}
@mixin splitColor($property, $color, $light: true, $dark: true, $light-rgb: false, $dark-rgb: false) {
--#{$property}: #{$color};
$lightened: hover-color($color);
@if $light != false {
--light-#{$property}: #{$lightened};
}
@if $light-rgb != false {
--light-filled-#{$property}: #{rgba-to-rgb($lightened, $light-rgb)};
}
$darkened: darken($color, $hover-alpha * 100);
@if $dark != false {
--dark-#{$property}: #{$darkened};
}
@if $dark-rgb != false {
--dark-filled-#{$property}: #{rgba-to-rgb($darkened, $dark-rgb)};
}
}
:root {
// * Day theme
--body-background-color: #fff;
--background-color-true: #f4f4f5;
// --background-color: #fff;
--background-color: var(--background-color-true);
--border-color: #dfe1e5;
--surface-color-rgb: 255, 255, 255;
--surface-color: #fff;
--scrollbar-color: rgba(0, 0, 0, .2);
--section-box-shadow-color: rgba(0, 0, 0, .06);
--menu-box-shadow-color: rgba(0, 0, 0, .24);
--input-search-background-color: #fff;
--input-search-border-color: #dfe1e5;
@include splitColor(primary-color, #3390ec, true, true, #fff);
--primary-text-color: #000;
--secondary-color: #c4c9cc;
@include splitColor(secondary-text-color, #707579, true, false);
@include splitColor(danger-color, #df3f40, true, false);
--avatar-online-color: #0ac630;
--avatar-color-top: var(--peer-avatar-blue-top);
--avatar-color-bottom: var(--peer-avatar-blue-bottom);
--chatlist-status-color: var(--avatar-online-color);
--chatlist-pinned-color: #a2abb2;
--badge-text-color: #fff;
--link-color: #00488f;
--ripple-color: rgba(0, 0, 0, .08);
--poll-circle-color: var(--border-color);
--spoiler-background-color: #e3e5e8;
--spoiler-draft-background-color: #d9d9d9;
--message-background-color: var(--surface-color);
--message-checkbox-color: #61c642;
--message-checkbox-border-color: #fff;
--message-primary-color: var(--primary-color);
--light-filled-message-primary-color: var(--light-filled-primary-color);
--message-secondary-color: var(--secondary-color);
$message-out-background-color: #eeffde;
@include splitColor(message-out-background-color, $message-out-background-color, true, true);
--message-out-link-color: var(--link-color);
@include splitColor(message-out-primary-color, #4fae4e, false, false, $message-out-background-color);
--message-out-status-color: var(--message-out-primary-color);
--message-out-audio-play-button-color: #fff;
--gc-background-color: #212121;
--gc-button-leave-color: rgba(255, 89, 90, .3);
--gc-button-unmuted-color: rgba(1, 200, 80, .2);
--gc-button-muted-color: rgba(60, 135, 247, .2);
--gc-button-hand-color: rgba(223, 68, 184, .2);
--gc-button-unmuted-fill-color: #195530;
--gc-button-muted-fill-color: #3C87F7;
--gc-green-color: #195530;
--gc-blue-color: #3C87F7;
--gc-red-color: #643333;
--gc-primary-text-color: #fff;
--gc-secondary-text-color: #aaaaaa;
--gc-green-text-color: #5CC85E;
--gc-blue-text-color: #3390ec;
--gc-red-text-color: #ff595a;
--gc-right-column-width: 26.25rem;
// * Day theme end
}
.night {
//:root {
// * Night theme
--body-background-color: #181818;
--background-color-true: #181818;
// --background-color: #212121;
--background-color: var(--background-color-true);
--border-color: #0f0f0f;
--surface-color-rgb: 33, 33, 33;
--surface-color: #212121;
--scrollbar-color: rgba(255, 255, 255, .2);
--section-box-shadow-color: rgba(0, 0, 0, .12);
--input-search-background-color: #181818;
--input-search-border-color: #2f2f2f;
@include splitColor(primary-color, #8774E1, true, true, #212121);
--primary-text-color: #fff;
--secondary-color: #707579;
@include splitColor(secondary-text-color, #aaaaaa, true, false);
@include splitColor(danger-color, #ff595a, true, false);
--avatar-online-color: #0ac630;
--avatar-color-top: var(--peer-avatar-violet-top);
--avatar-color-bottom: var(--peer-avatar-violet-bottom);
--chatlist-status-color: var(--primary-color);
--chatlist-pinned-color: var(--secondary-color);
--badge-text-color: #fff;
--link-color: var(--primary-color);
--ripple-color: rgba(255, 255, 255, .08);
--poll-circle-color: #fff;
--spoiler-background-color: #373e4e;
--spoiler-draft-background-color: #484848;
--message-background-color: var(--surface-color);
--message-checkbox-color: var(--primary-color);
--message-checkbox-border-color: #fff;
--message-secondary-color: var(--secondary-color);
$message-out-background-color: #8774E1;
//@include splitColor(message-out-background-color, #ae582d, true, true);
@include splitColor(message-out-background-color, $message-out-background-color, true, true);
--message-out-link-color: #fff;
@include splitColor(message-out-primary-color, #fff, false, false, $message-out-background-color);
--message-out-status-color: rgba(255, 255, 255, .6);
--message-out-audio-play-button-color: var(--message-out-background-color);
// * Night theme end
}
@import "tgico";
@import "partials/input";
@import "partials/button";
@import "partials/animatedIcon";
@import "partials/autocompleteHelper";
@import "partials/autocompletePeerHelper";
@import "partials/badge";
@import "partials/ckin";
@import "partials/checkbox";
@import "partials/chatlist";
@import "partials/chat";
@import "partials/chatTopbar";
@import "partials/chatBubble";
@import "partials/chatPinned";
@import "partials/chatMarkupTooltip";
@import "partials/chatStickersHelper";
@import "partials/chatEmojiHelper";
@import "partials/chatInlineHelper";
@import "partials/chatSearch";
@import "partials/chatDrop";
@import "partials/chatBotCommands";
@import "partials/crop";
@import "partials/sidebar";
@import "partials/profile";
@import "partials/slider";
@import "partials/leftSidebar";
@import "partials/rightSidebar";
@import "partials/mediaViewer";
@import "partials/emojiDropdown";
@import "partials/scrollable";
@import "partials/selector";
@import "partials/gifsMasonry";
@import "partials/preloader";
@import "partials/ripple";
@import "partials/avatar";
@import "partials/document";
@import "partials/audio";
@import "partials/quizHint";
@import "partials/peerTyping";
@import "partials/poll";
@import "partials/transition";
@import "partials/row";
@import "partials/colorPicker";
@import "partials/replyKeyboard";
@import "partials/peopleNearby";
@import "partials/spoiler";
@import "partials/emojiAnimation";
@import "partials/reactions";
@import "partials/reaction";
@import "partials/stackedAvatars";
@import "partials/popups/popup";
@import "partials/popups/editAvatar";
@import "partials/popups/mediaAttacher";
@import "partials/popups/peer";
@import "partials/popups/stickers";
@import "partials/popups/datePicker";
@import "partials/popups/createPoll";
@import "partials/popups/forward";
@import "partials/popups/instanceDeactivated";
@import "partials/popups/joinChatInvite";
@import "partials/popups/reportMessages";
@import "partials/popups/call";
@import "partials/popups/groupCall";
@import "partials/popups/sponsored";
@import "partials/popups/mute";
@import "partials/popups/reactedList";
@import "partials/pages/pages";
@import "partials/pages/authCode";
@import "partials/pages/chats";
@import "partials/pages/password";
/* cyrillic */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
font-display: swap;
src: local('Roboto'), local('Roboto-Regular'), url(assets/fonts/KFOmCnqEu92Fr1Mu5mxKKTU1Kvnz.woff2) format('woff2');
unicode-range:U + 0400-045F, U + 0490-0491, U + 04B0-04B1, U + 2116
}
/* latin-ext */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
font-display: swap;
src: local('Roboto'), local('Roboto-Regular'), url(assets/fonts/KFOmCnqEu92Fr1Mu7GxKKTU1Kvnz.woff2) format('woff2');
unicode-range:U + 0100-024F, U + 0259, U + 1E00-1EFF, U + 2020, U + 20A0-20AB, U + 20AD-20CF, U + 2113, U + 2C60-2C7F, U + A720-A7FF
}
/* latin */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
font-display: swap;
src: local('Roboto'), local('Roboto-Regular'), url(assets/fonts/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2) format('woff2');
unicode-range:U + 0000-00FF, U + 0131, U + 0152-0153, U + 02BB-02BC, U + 02C6, U + 02DA, U + 02DC, U + 2000-206F, U + 2074, U + 20AC, U + 2122, U + 2191, U + 2193, U + 2212, U + 2215, U + FEFF, U + FFFD
}
/* cyrillic */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 500;
font-display: swap;
src: local('Roboto Medium'), local('Roboto-Medium'), url(assets/fonts/KFOlCnqEu92Fr1MmEU9fABc4AMP6lbBP.woff2) format('woff2');
unicode-range:U + 0400-045F, U + 0490-0491, U + 04B0-04B1, U + 2116
}
/* latin-ext */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 500;
font-display: swap;
src: local('Roboto Medium'), local('Roboto-Medium'), url(assets/fonts/KFOlCnqEu92Fr1MmEU9fChc4AMP6lbBP.woff2) format('woff2');
unicode-range:U + 0100-024F, U + 0259, U + 1E00-1EFF, U + 2020, U + 20A0-20AB, U + 20AD-20CF, U + 2113, U + 2C60-2C7F, U + A720-A7FF
}
/* latin */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 500;
font-display: swap;
src: local('Roboto Medium'), local('Roboto-Medium'), url(assets/fonts/KFOlCnqEu92Fr1MmEU9fBBc4AMP6lQ.woff2) format('woff2');
unicode-range:U + 0000-00FF, U + 0131, U + 0152-0153, U + 02BB-02BC, U + 02C6, U + 02DA, U + 02DC, U + 2000-206F, U + 2074, U + 20AC, U + 2122, U + 2191, U + 2193, U + 2212, U + 2215, U + FEFF, U + FFFD
}
// !!! FIX FOR [contenteditable] Ctrl+B, due to font-weight: 500;
/* cyrillic */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
font-display: swap;
src: local('Roboto Medium'), local('Roboto-Medium'), url(assets/fonts/KFOlCnqEu92Fr1MmEU9fABc4AMP6lbBP.woff2) format('woff2');
unicode-range:U + 0400-045F, U + 0490-0491, U + 04B0-04B1, U + 2116
}
/* latin-ext */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
font-display: swap;
src: local('Roboto Medium'), local('Roboto-Medium'), url(assets/fonts/KFOlCnqEu92Fr1MmEU9fChc4AMP6lbBP.woff2) format('woff2');
unicode-range:U + 0100-024F, U + 0259, U + 1E00-1EFF, U + 2020, U + 20A0-20AB, U + 20AD-20CF, U + 2113, U + 2C60-2C7F, U + A720-A7FF
}
/* latin */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
font-display: swap;
src: local('Roboto Medium'), local('Roboto-Medium'), url(assets/fonts/KFOlCnqEu92Fr1MmEU9fBBc4AMP6lQ.woff2) format('woff2');
unicode-range:U + 0000-00FF, U + 0131, U + 0152-0153, U + 02BB-02BC, U + 02C6, U + 02DA, U + 02DC, U + 2000-206F, U + 2074, U + 20AC, U + 2122, U + 2191, U + 2193, U + 2212, U + 2215, U + FEFF, U + FFFD
}
html, body {
height: 100%;
width: 100%;
margin: 0;
padding: 0;
@include respond-to(handhelds) {
overflow: hidden;
height: calc(var(--vh, 1vh) * 100);
}
/* @include respond-to(handhelds) {
//overflow-y: auto;
height: 100%;
min-height: 100%;
min-width: 100%;
}
@include respond-to(not-handhelds) {
width: 100%;
height: 100%;
} */
}
html.is-ios {
//&, body {
position: fixed; // fix iOS fullscreen scroll
//}
// disable image longtapping
-webkit-user-select: none;
-webkit-touch-callout: none;
}
@supports(padding: unquote('max(0px)')) {
html {
padding: 0 unquote('min(16px, env(safe-area-inset-right))') 0 unquote('min(16px, env(safe-area-inset-left))');
}
}
html {
font-size: 16px;
//overflow: hidden;
-webkit-font-smoothing: antialiased;
-webkit-text-size-adjust: 100%;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
//text-rendering: optimizeSpeed;
}
body {
//touch-action: pan-x pan-y;
background-color: var(--body-background-color);
color: var(--primary-text-color);
}
body.deactivated {
animation: grayscale-in var(--transition-standard-in) forwards;
}
body.deactivated-backwards {
animation: grayscale-out var(--transition-standard-out) forwards;
}
@keyframes grayscale-in {
0% {
filter: grayscale(0);
}
100% {
filter: grayscale(1);
}
}
@keyframes grayscale-out {
0% {
filter: grayscale(1);
}
100% {
filter: grayscale(0);
}
}
/* body {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
min-height: 0!important;
} */
a {
color: var(--link-color);
}
button, input, optgroup, select, textarea, html {
font-family: "Roboto", -apple-system, apple color emoji, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
}
input, textarea, button, select, a, div {
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.whole {
min-height: 100%;
width: 100%;
//min-width: 100%;
margin: 0 auto;
max-width: $large-screen;
//@include respond-to(not-handhelds) {
height: 100%;
//}
}
@include respond-to(not-handhelds) {
.only-handhelds {
display: none !important;
}
}
.container {
margin: 0 auto;
}
h1, h2, h3, h4, h5, h6 {
font-weight: 500;
}
h4 {
font-size: 2rem;
//margin: 1.5rem 0 1rem 0;
margin: 22px 0 14px;
line-height: 110%;
@include respond-to(handhelds) {
font-size: 20px;
margin: 2px 0 8px;
}
}
input, [contenteditable=true] {
caret-color: var(--primary-color);
color: var(--primary-text-color);
background-color: transparent;
}
input, textarea {
-webkit-appearance: none;
}
// Possible fix Safari's password autocomplete
input::-webkit-contacts-auto-fill-button,
input::-webkit-credentials-auto-fill-button {
visibility: hidden;
position: absolute;
right: 0;
}
/* input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
transition: background-color 5000s ease-in-out 0s;
} */
.subtitle {
/* font-weight: 500; */
color: var(--secondary-text-color);
line-height: 1.35;
}
.danger {
color: var(--danger-color) !important;
.c-ripple__circle {
background-color: var(--light-danger-color);
}
}
.blue, .primary {
color: var(--primary-color) !important;
.c-ripple__circle {
background-color: var(--light-primary-color);
}
}
.blue:before, .primary:before, .danger:before {
color: inherit !important;
}
.bg-warning {
background: #fed85a !important;
}
.contextmenu {
position: fixed !important;
right: auto !important;
bottom: auto !important;
width: auto !important;
z-index: 4 !important;
}
.preloader {
width: 50px;
height: 50px;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
// ! do not change it to &-path
.preloader-path {
stroke: var(--primary-color);
}
}
@keyframes thumbnail-fade-in-opacity {
0% {
opacity: 0;
}
to {
opacity: .8;
}
}
@keyframes fade-in-opacity {
0% {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes fade-out-opacity {
0% {
opacity: 1;
}
to {
opacity: 0;
}
}
@keyframes fade-in-backwards-opacity {
0% {
opacity: 1;
}
100% {
opacity: 0;
}
}
@keyframes fade-out-backwards-opacity {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@keyframes fade-in-opacity-fade-out-opacity {
0% {
opacity: 0;
}
10% {
opacity: 1;
}
50% {
opacity: 1;
}
to {
opacity: 0;
}
}
.toast {
position: fixed;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
padding: .5rem 1rem;
background-color: rgba(0, 0, 0, .66);
color: #fff;
font-size: 1rem;
border-radius: $border-radius-medium;
animation: fade-in-opacity-fade-out-opacity 3s linear forwards;
z-index: 5;
max-width: 22.5rem;
b {
color: inherit;
}
}
hr {
width: 100%;
border: none;
border-top: 1px solid var(--border-color);
margin: 0;
padding-bottom: .5rem;
}
.user-title, b/* , .user-last-message b */ {
color: var(--primary-text-color);
font-weight: bolder;
//font-weight: 500;
//font-weight: normal;
}
.user-last-message b {
font-weight: 400;
//margin-right: .25rem;
}
.avatar-edit {
position: relative;
border-radius: 50%;
cursor: pointer;
overflow: hidden;
&-canvas {
max-width: 100%;
max-height: 100%;
width: 100%;
height: 100%;
background: linear-gradient(var(--avatar-color-top), var(--avatar-color-bottom));
}
html.no-touch body.animation-level-2 & {
.tgico-cameraadd {
transform: translateY(-50%) translateX(-50%) scale(1);
transition: transform .2s ease-in-out;
}
&:hover {
.tgico-cameraadd {
transform: translateY(-50%) translateX(-50%) scale(1.2);
}
}
}
.tgico-cameraadd {
position: absolute;
font-size: 48px;
line-height: 48px;
top: 50%;
left: 50%;
transform: translateY(-50%) translateX(-50%);
z-index: 2;
color: #fff;
}
.avatar-placeholder {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
filter: brightness(0.7);
}
}
.missing-icon {
width: 1.5rem;
height: 1.5rem;
&-path {
fill: currentColor;
}
}
.select-wrapper {
max-height: 23.5rem;
/* height: auto; */
position: absolute;
width: 100%;
top: calc(100% + .5rem);
left: 0;
overflow: hidden;
background-color: var(--surface-color);
z-index: 3;
border-radius: $border-radius-medium;
display: flex;
flex-direction: column;
flex-wrap: wrap;
transition: opacity .2s ease-out, transform .2s ease-out;
transform: scale(.95);
transform-origin: top center;
opacity: 0;
&.active {
transform: scale(1);
opacity: 1;
}
ul {
margin: .5rem 0;
}
li {
/* display: flex; */
align-items: center;
padding: 0 1rem;
justify-content: space-between;
height: 3.5rem;
cursor: pointer;
/* font-weight: 500; */
text-align: left;
display: grid;
grid-template-columns: calc(26px + 2rem) 1fr 80px;
@include hover-background-effect();
}
// +2 px bc of whitespace
.emoji {
height: 26px;
width: 26px;
font-size: 26px;
line-height: 1;
}
.scrollable {
position: relative;
}
}
.phone-code {
color: $placeholder-color;
text-align: right;
}
// this dimensions will be used for monkey business
.auth-image {
width: 166px;
height: 166px;
margin: 0 auto 18px;
position: relative;
@include respond-to(handhelds) {
width: 120px;
height: 120px;
}
}
/* .phone-wrapper {
display: flex;
align-items: ;
} */
.phone-edit {
display: inline-block;
width: 24px;
height: 24px;
margin-left: .4rem;
opacity: .5;
transition: .2s opacity;
cursor: pointer;
font-size: 1.5rem;
@include respond-to(handhelds) {
margin-top: -14px;
}
@include hover() {
opacity: 1;
}
}
span.emoji {
display: inline !important;
vertical-align: unset !important;
//line-height: 1em;
//font-size: 1em;
font-family: apple color emoji,segoe ui emoji,noto color emoji,android emoji,emojisymbols,emojione mozilla,twemoji mozilla,segoe ui symbol;
line-height: 1 !important;
}
// non-Retina device
@media
not screen and (-webkit-min-device-pixel-ratio: 2),
not screen and ( min--moz-device-pixel-ratio: 2),
not screen and ( -o-min-device-pixel-ratio: 2/1),
not screen and ( min-device-pixel-ratio: 2),
not screen and ( min-resolution: 192dpi),
not screen and ( min-resolution: 2dppx) {
html:not(.is-safari) {
span.emoji {
margin-right: 5px !important;
}
avatar-element span.emoji {
margin-right: 0 !important;
}
}
}
img.emoji {
width: 18px;
height: 18px;
// margin: 0 .125rem;
display: inline-block;
/* width: 100%;
height: 100%; */
max-width: 100%;
max-height: 100%;
vertical-align: middle;
}
[contenteditable=true] {
user-select: text;
outline: none;
cursor: text;
white-space: pre-wrap;
}
[contenteditable][data-placeholder] {
&:empty:before {
content: attr(data-placeholder);
color: #a2acb4;
display: block; /* For Firefox By Ariel Flesler */
pointer-events: none;
}
}
.sticky_sentinel {
position: absolute;
left: 0;
right: 0; /* needs dimensions */
visibility: hidden;
pointer-events: none;
}
.super-stickers {
width: 100%;
display: grid;
grid-template-columns: repeat(auto-fill, var(--esg-sticker-size)); // 64px
grid-column-gap: 1px;
justify-content: space-between;
}
.super-sticker {
@include hover-background-effect() {
border-radius: 10px;
}
/* &:nth-child(5n+5) {
margin-right: 0;
} */
/* > img, > .rlottie {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
}
> img {
object-fit: contain;
@include animation-level(2) {
animation: fade-in-opacity .2s ease forwards;
}
} */
}
.fade-in-transition {
opacity: 1;
@include animation-level(2) {
transition: opacity .2s ease-in-out;
}
}
/* .fade-in-new {
opacity: 1;
transition: opacity .2s ease-in-out;
&.not-yet {
opacity: 0;
}
} */
.show-more {
padding-top: 13px;
padding-bottom: 13px;
cursor: pointer;
user-select: none;
position: relative;
@include respond-to(not-handhelds) {
padding-left: 8px;
}
.tgico-down {
float: left;
padding-right: 32px;
padding-left: 16px;
font-size: 24px;
color: var(--secondary-text-color);
}
}
// .message .audio .preloader-container {
// @include respond-to(handhelds) {
// width: 30px;
// height: 30px;
// left: 2px;
// }
// }
.content-empty {
color: var(--secondary-text-color);
}
@keyframes grow-icon {
0% {
transform: scale(.5);
opacity: .8;
}
50% {
transform: scale(1.1);
opacity: 1;
}
100% {
transform: scale(1);
}
}
@keyframes hide-icon {
from {
transform: scale(1);
opacity: .4;
}
to {
transform: scale(.5);
opacity: 0;
}
}
.popup-disable-password, .popup-skip-email {
.popup-description {
max-width: 284px;
}
}
.grid {
width: 100%;
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-auto-rows: 1fr;
grid-gap: .25rem;
&-item {
height: 0;
padding-bottom: 100%;
//overflow: hidden;
position: relative;
cursor: pointer;
user-select: none;
&-media {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
}
}
.animated-super {
&-row {
--translateY: 100%;
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
transition: transform var(--pm-transition), opacity var(--pm-transition);
body.animation-level-0 & {
transition: none;
}
/* &:not(.is-hiding) {
transform: none !important;
} */
&.is-hiding {
opacity: 0;
&.from-top {
transform: translate3d(0, calc(var(--translateY) * -1), 0);
//transform: translateY(calc(var(--translateY) * -1));
//transform: translateY(-100%);
}
&.from-bottom {
transform: translate3d(0, var(--translateY), 0);
//transform: translateY(var(--translateY));
//transform: translateY(100%);
}
/* &.backwards {
opacity: 1;
transform: translateY(0) !important;
} */
}
}
}
.animated-counter {
display: inline-flex;
&-decimal {
position: relative;
&-placeholder {
color: transparent;
}
&-wrapper {
position: absolute;
left: 0;
top: 0;
bottom: 0;
right: 0;
}
/* &:not(:first-child) {
.animated-super {
&-row {
&.is-hiding {
&.from-top {
transform: translateY(100%);
}
&.from-bottom {
transform: translateY(-100%);
}
}
}
}
} */
}
/* &.from-top {
.animated-super-row.is-hiding {
&.from-top {
transform: translateY(100%) !important;
}
}
} */
}
// *:not(input):not(textarea) {
// -webkit-user-select: none; /* disable selection/Copy of UIWebView */
// -webkit-touch-callout: none; /* disable the IOS popup when long-press on a link */
// }
middle-ellipsis-element {
width: 100%;
overflow: hidden;
display: block;
}
.album-item {
&-media {
width: 100%;
height: 100%;
}
}
.hover-effect {
@include hover-background-effect();
}
.progress-ring {
position: absolute;
top: 0;
left: 0;
pointer-events: none;
&__circle {
transition: stroke-dashoffset;
stroke-linecap: round;
}
}
.rlottie,
.rlottie-vector {
left: 0;
top: 0;
bottom: 0;
right: 0;
position: absolute;
max-width: 100%;
max-height: 100%;
width: 100%;
height: 100%;
}
.rlottie-icon {
position: relative;
pointer-events: none;
}
.rlottie.fade-in {
@include animation-level(2) {
animation: fade-in-opacity .2s ease-in-out forwards;
}
}
.rlottie-vector {
fill: rgba(0, 0, 0, .08);
}
.media-photo,
.media-video,
.media-sticker,
.media-round,
.media-poster {
@include animation-level(2) {
&.fade-in {
animation: fade-in-opacity .2s ease-in-out forwards;
}
&.fade-out {
animation: fade-out-opacity .2s ease-in-out forwards;
}
}
// & ~ & {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
// }
}
.media-video {
z-index: 1; // * overflow media-photo
}
.media-sticker {
margin: auto;
object-fit: contain;
width: 100%;
height: 100%;
max-width: 100%;
max-height: 100%;
}
.media-round {
max-width: var(--round-video-size);
max-height: var(--round-video-size);
z-index: 1;
canvas {
width: 100%;
height: 100%;
border-radius: 50%;
position: relative;
}
.video-time {
padding: 0 .375rem;
background-color: var(--message-highlightning-color) !important;
&:before, &:after {
margin-left: .25rem;
}
}
&.is-unread .video-time {
&:before {
order: 1;
width: .5rem;
height: .5rem;
background-color: #fff;
border-radius: 50%;
content: " ";
}
}
&.is-paused .video-time {
&:after {
content: $tgico-nosound;
display: flex;
align-items: center;
font-size: 1.125rem;
order: 2;
}
}
}
.gradient-delimiter {
width: 100%;
height: .75rem;
background-color: var(--background-color-true);
position: relative;
&:before {
content: " ";
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
background: linear-gradient(180deg, rgba(0, 0, 0, .06) 0%, rgba(0, 0, 0, 0) 20%, rgba(0, 0, 0, 0) 94%, rgba(0, 0, 0, .06) 100%);
}
}
.sidebar-header.with-border {
min-height: 3.5625rem;
border-bottom: 1px solid var(--border-color);
/* position: relative;
&:after {
content: " ";
position: absolute;
right: 0;
bottom: 0px;
left: 0;
height: 1px;
background-color: var(--border-color);
} */
}
.sidebar-left {
&-section {
background-color: var(--surface-color);
padding: .5rem 0 !important;
margin-bottom: .75rem;
-webkit-box-shadow: 0px 1px 3px 0px var(--section-box-shadow-color);
-moz-box-shadow: 0px 1px 3px 0px var(--section-box-shadow-color);
box-shadow: 0px 1px 3px 0px var(--section-box-shadow-color);
&.no-shadow {
box-shadow: none !important;
}
&-name {
padding: .5rem 1rem;
}
&-caption {
margin: -0.1875rem 0 1rem;
font-size: .875rem;
padding: 0 1.5rem;
&:first-child {
margin-top: .8125rem;
margin-bottom: .8125rem;
}
}
&-container {
user-select: none;
}
}
}
hr {
display: none !important;
}
// ! TEMPORARY
.tgico-reply:before,
.tgico-attach:before,
.tgico-saved:before,
.tgico-phone:before,
.tgico-admin:before,
.tgico-message:before,
.tgico-fontsize:before,
.tgico-forward:before,
.tgico-reply_filled:before,
.tgico-forward_filled:before {
font-size: 20px !important;
padding: 2px;
}
// ! TEMPORARY
.tgico-endcall_filled,
.tgico-phone_filled {
font-size: 26px !important;
}
.stealthy {
left: 0;
margin: 0;
max-height: 1px;
max-width: 1px;
opacity: 0;
outline: none;
overflow: hidden;
pointer-events: none;
position: absolute;
top: 0;
z-index: -1;
}
.verified-check {
fill: #fff;
}
.verified-background {
fill: #33a8e5;
}
.navigable-list {
.active {
background-color: var(--light-secondary-text-color);
border-radius: inherit;
}
}
.super-emojis {
// ! No chrome 56 support
display: grid;
grid-column-gap: 2.44px;
grid-template-columns: repeat(auto-fill, 2.625rem);
justify-content: space-between;
font-size: 2.125rem;
line-height: 2.125rem;
.super-emoji {
display: inline-block;
margin: 0 .0625rem;
padding: .25rem;
line-height: inherit;
border-radius: $border-radius;
cursor: pointer;
user-select: none;
vertical-align: middle;
width: 2.625rem;
height: 2.625rem;
// html:not(.emoji-supported) & {
position: relative;
// }
.emoji-placeholder {
position: absolute;
left: 7px;
top: 7px;
width: 1.75rem;
height: 1.75rem;
border-radius: 50%;
background-color: var(--light-secondary-text-color);
pointer-events: none;
@include animation-level(2) {
opacity: 0;
transition: opacity .2s ease-in-out;
}
}
@include animation-level(2) {
img {
opacity: 1;
transition: opacity .2s ease-in-out;
}
}
.emoji {
width: 100%;
height: 100%;
vertical-align: unset;
margin: 0;
}
@include hover-background-effect();
}
}
.tgico-char {
&:before {
font-family: "Roboto" !important;
font-weight: 500;
width: 1.5rem;
text-align: center;
}
&.z:before {
content: "Z";
}
&.w:before {
content: "W";
}
}
.sending-status {
&:empty {
display: none;
}
/* &.animating {
.sending-status-icon {
background: var(--background);
}
} */
&-icon {
position: absolute;
line-height: 1 !important;
}
}
.quick-reaction-title {
display: flex;
align-items: center;
}
.quick-reaction-sticker {
width: 32px !important;
height: 32px !important;
position: relative !important;
margin: 0 .5rem 0 0 !important;
}
.verified-icon {
flex: 0 0 auto;
width: 1.25rem;
height: 1.25rem;
margin-left: .125rem;
}
.badge-fake {
flex: 0 0 auto;
color: var(--danger-color);
border: 1px solid var(--danger-color);
padding: .125rem .25rem;
border-radius: .185rem;
font-size: .625rem;
font-weight: 500;
line-height: 1 !important;
margin: 0 .25rem;
}
.movable-element {
--size: .5rem;
position: relative;
&-resize-handler {
position: absolute;
&-side-n,
&-side-s {
left: 0;
right: 0;
height: var(--size);
cursor: row-resize;
}
&-side-e,
&-side-w {
top: 0;
bottom: 0;
width: var(--size);
cursor: col-resize;
}
&-side-n {
top: 0;
}
&-side-e {
right: 0;
}
&-side-s {
bottom: 0;
}
&-side-w {
left: 0;
}
// corners
&-side-nw,
&-side-ne,
&-side-sw,
&-side-se {
width: var(--size);
height: var(--size);
z-index: 1;
}
&-side-ne,
&-side-sw {
cursor: nesw-resize;
}
&-side-se,
&-side-nw {
cursor: nwse-resize;
}
&-side-ne {
top: 0;
right: 0;
}
&-side-se {
right: 0;
bottom: 0;
}
&-side-sw {
bottom: 0;
left: 0;
}
&-side-nw {
top: 0;
left: 0;
}
}
}