$placeholder-color: #9e9e9e; $border-radius: 8px; $border-radius-medium: 10px; $border-radius-big: 12px; $color-green: #4DCD5E; $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; @function hover-color($color) { @return rgba($color, $hover-alpha); } @import "mixins/hover"; @import "mixins/respondTo"; @import "mixins/textOverflow"; @import "mixins/animationLevel"; :root { --vh: 1vh; --z-below: -1; --hover-alpha: #{$hover-alpha}; --color-gray: #c4c9cc; --pm-transition: .2s ease-in-out; --layer-transition: .2s ease-in-out; --slide-header-transition: .4s ease-in-out; --tabs-transition: .25s ease-in-out; //--layer-transition: .3s cubic-bezier(.33, 1, .68, 1); //--layer-transition: none; --btn-corner-transition: .2s cubic-bezier(.34, 1.56, .64, 1); --message-handhelds-margin: 5.5625rem; --message-beside-button-margin: 2.875rem; --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) - 1px); --line-height: 1.3125; --esg-sticker-size: 80px; --disabled-opacity: .3; // 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; --chat-input-size: #{$chat-input-handhelds-size}; --chat-input-padding: #{$chat-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}; } @include respond-to(esg-bottom) { --chat-input-size: #{$chat-input-handhelds-size}; } @include respond-to(only-medium-screens) { --right-column-width: 25vw; } } @mixin splitColor($property, $color, $light: true, $dark: true) { --#{$property}: #{$color}; @if $light != false { --light-#{$property}: #{hover-color($color)}; } @if $dark != false { --dark-#{$property}: #{darken($color, $hover-alpha * 100)}; } } :root { // * Day theme --body-background-color: #fff; //--background-color: #f4f4f5; --background-color: #fff; --border-color: #dfe1e5; --surface-color: #fff; --scrollbar-color: rgba(0, 0, 0, .2); --input-search-background-color: #fff; --input-search-border-color: #dfe1e5; @include splitColor(primary-color, #3390ec, true, true); --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; --chatlist-status-color: var(--avatar-online-color); --chatlist-pinned-color: #a2abb2; --badge-text-color: #fff; --link-color: #00488f; --message-background-color: var(--surface-color); --message-checkbox-color: #61c642; --message-checkbox-border-color: #fff; --message-secondary-color: var(--secondary-color); @include splitColor(message-out-background-color, #eeffde, true, true); --message-out-link-color: var(--link-color); --message-out-primary-color: #4fae4e; --message-out-audio-play-button-color: #fff; // * Day theme end } html.night { //:root { // * Night theme --body-background-color: #181818; //--background-color: #181818; --background-color: #212121; --border-color: #0f0f0f; --surface-color: #212121; --scrollbar-color: rgba(255, 255, 255, .2); --input-search-background-color: #181818; --input-search-border-color: #2f2f2f; @include splitColor(primary-color, #878afd, true, true); --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; --chatlist-status-color: var(--primary-color); --chatlist-pinned-color: var(--secondary-color); --badge-text-color: #fff; --link-color: var(--primary-color); --message-background-color: var(--surface-color); --message-checkbox-color: var(--primary-color); --message-checkbox-border-color: #fff; --message-secondary-color: var(--secondary-color); @include splitColor(message-out-background-color, #ae582d, true, true); --message-out-link-color: #fff; --message-out-primary-color: #fff; --message-out-audio-play-button-color: var(--message-out-background-color); // * Night theme end } @import "partials/ico"; @import "partials/input"; @import "partials/button"; @import "partials/animatedIcon"; @import "partials/badge"; @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/chatSearch"; @import "partials/chatDrop"; @import "partials/crop"; @import "partials/sidebar"; @import "partials/profile"; @import "partials/leftSidebar"; @import "partials/rightSidebar"; @import "partials/mediaViewer"; @import "partials/ckin"; @import "partials/emojiDropdown"; @import "partials/scrollable"; @import "partials/slider"; @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/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/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 { 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 { 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%; //} } .disable-hover/* , .disable-hover * */ { pointer-events: none !important; } @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; } .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; } .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 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; } 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-color: var(--primary-color); } .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); } } .select-wrapper { max-height: 23.5rem; /* height: auto; */ position: absolute; width: 100%; top: calc(100% + .5rem); left: 0; overflow: hidden; background-color: #fff; 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; } 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; } [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; transition: opacity .2s ease; } .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%; } } .row { min-height: 3.5rem; position: relative; padding: .6875rem 1rem; display: flex; flex-direction: column; justify-content: center; a { position: relative; z-index: 1; } &-title-row { display: flex; justify-content: space-between; align-items: center; .row-title { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex: 1 1 auto; } } &-title { color: var(--primary-text-color); line-height: var(--line-height); @include text-overflow(false); &-right { flex: 0 0 auto !important; margin-left: 1rem; } } &-midtitle { font-size: .875rem; } &-with-padding { padding-left: 4.5rem; .row-title.tgico:before { position: absolute; left: 1rem; font-size: 1.5rem; margin-top: .25rem; color: var(--secondary-text-color); pointer-events: none; } } &-clickable { cursor: pointer; border-radius: $border-radius-medium; overflow: hidden; } .radio-field-main, .checkbox-field { padding-left: 3.375rem; margin-left: -3.375rem; } .checkbox-field { margin-right: 0; height: auto; .checkbox-caption { padding-left: 0; } } &-subtitle { color: var(--secondary-text-color) !important; font-size: .875rem !important; line-height: var(--line-height); margin-top: .125rem; margin-bottom: .0625rem; &:empty { display: none; } } } .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.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 { position: absolute; top: 0; right: 0; bottom: 0; left: 0; @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; } } } .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: 200px; max-height: 200px; z-index: 1; canvas { width: 100%; height: 100%; border-radius: 50%; position: relative; } .video-time { padding: 1px 6px 2px; background-color: rgba(0, 0, 0, .23) !important; } &.is-paused .video-time { &:after { content: $tgico-nosound; padding-left: .25rem; display: flex; align-items: center; font-size: 1.125rem; } } }