$bubble-margin: .25rem; @keyframes bubbleSelected { 0% { opacity: 0; } 25% { opacity: 1; } to { opacity: 0; } } .bubbles-date-group { position: relative; /* .sticky_sentinel { visibility: visible; background: #000; } */ .sticky_sentinel--top { /* Adjust the height and top values based on your on your sticky top position. e.g. make the height bigger and adjust the top so observeHeaders()'s IntersectionObserver fires as soon as the bottom of the sentinel crosses the top of the intersection container. */ height: $bubble-margin; top: 0; } // .sticky_sentinel--bottom { // /* Height should match the top of the header when it's at the bottom of the // intersection container. */ // height: 1px; // bottom: 0; // } } .bubble { position: relative; z-index: 1; margin: 0 auto $bubble-margin; user-select: none; display: flex; flex-wrap: wrap; //flex-direction: column; // fix 'Unread messages', still need to refactor it --background-color: #fff; --accent-color: #{$color-blue}; --secondary-color: #{$color-gray}; &.is-highlighted, &.is-selected, /* .bubbles.is-selecting */ & { &:after { position: absolute; left: -50%; /* top: 0; bottom: 0; */ top: -#{$bubble-margin / 2}; bottom: -#{$bubble-margin / 2}; content: " "; z-index: -1; } } /* &.is-highlighted, &.is-selected { &:not(.is-group-last):after { height: calc(100% + #{$bubble-margin / 2}) !important; } & + &:not(.is-group-last) { &:after { top: .125rem !important; height: calc(100% - #{$bubble-margin / 2}) !important; } } } */ // ! if turn this on, there will be an empty space /* &.is-highlighted, &.is-selected { &.is-group-last:after { bottom: #{$bubble-margin / 2} !important; } } */ &.is-highlighted:after { //background-color: rgba(0, 132, 255, .3); background-color: var(--message-highlightning-color); body:not(.animation-level-0) & { animation: bubbleSelected 2s linear; } } &.is-first-unread { @include respond-to(handhelds) { max-width: unset; } &:before { content: "Unread messages"; height: 30px; margin-bottom: $bubble-margin; margin-left: -50%; margin-right: -50%; text-align: center; color: #538BCC; line-height: 2.1; font-weight: 500; font-size: 15px; background-color: rgba(255, 255, 255, .95); z-index: 2; position: relative; } &.is-highlighted, &.is-selected { &:after { top: calc(#{$bubble-margin / 2} + 30px); } } } &.is-selected { &:after { background-color: var(--message-highlightning-color); } body:not(.animation-level-0) & { &:after { animation: fade-in-opacity .2s linear forwards; } &.backwards:after { animation: fade-in-backwards-opacity .2s linear forwards; } } } //&.is-highlighted:after, &.is-first-unread:before, &.is-selected:after { &:after, &:before { width: 200%; display: block; } &.is-multiple-documents { &:before, &:after { display: none; } } &.channel-post { .message.poll-message { .time { position: unset; } } poll-element .poll-footer { height: auto; } } &-select-checkbox { z-index: 3; position: absolute; left: 0; display: flex; margin: 0; .checkbox-box-background { background-color: #61c642; } .checkbox-box-check { use { stroke-width: 3.5; } } } & > &-select-checkbox { //bottom: .75rem; // * by avatar bottom: .3125rem; // * by middle of one-line message /* left: 0; top: 50%; transform: translateY(-50%); */ .checkbox-box { box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, .4); } } .bubbles.is-selecting &:not(.is-album) { .audio, .document, .attachment, poll-element { pointer-events: none !important; } } // ! hide context menu for media on android .bubbles.is-selecting & { img, video { pointer-events: none; } } &-content { //min-width: 60px; min-width: 56px; max-width: 100%; border-radius: 12px; box-shadow: 0 1px 2px 0 rgba(16, 35, 47, .15); position: relative; display: flex; flex-direction: column-reverse; /* font-size: 0; */ width: max-content; height: fit-content; z-index: 2; user-select: none; background-color: var(--background-color); body.animation-level-0 & { transition: none; } /* html.no-touch .bubbles:not(.is-selecting) &, html.is-touch .bubbles.is-selecting:not(.no-select) & { user-select: text; } */ html.no-touch .bubbles:not(.is-selecting) &, html.is-touch body:not(.no-select) .bubbles.is-selecting & { // * need no-select on body because chat-input transforms in channels user-select: text; } } /* &.with-beside-button &-content { @include respond-to(handhelds) { max-width: calc(100% - var(--message-handhelds-margin)) !important; } } */ &.service { //padding: 1rem 0; //padding: $bubble-margin 0; max-width: var(--messages-container-width); .bubble-content { /* justify-self: center; */ margin: 0 auto; max-width: 100%; box-shadow: none; } } &.is-date { position: sticky; top: $bubble-margin; padding-bottom: $bubble-margin; //z-index: 3; z-index: 2; transition: opacity .3s ease; opacity: .99999; // for safari pointer-events: none; &:before, &:after { display: none; } body.animation-level-0 & { transition: none; } &.is-sticky { opacity: .00001; // for safari .bubbles-inner:not(.is-scrolling) & { //transition-delay: 1.35s; .bubble-content { cursor: default; } } /* .bubbles-inner.is-scrolling & { transition-delay: 0; } */ } .chat.type-chat & .bubble-content, .chat.type-discussion & .bubble-content { cursor: pointer; pointer-events: all; } } &-beside-button { //opacity: 0; //transition: .2s opacity; position: absolute; right: -46px; bottom: 0; width: 38px; height: 38px; font-size: 1.5rem; align-items: center; display: flex; justify-content: center; color: #fff; border-radius: 50%; //background: rgba(0, 0, 0, .16); background: var(--message-highlightning-color); cursor: pointer; } .forward { svg { width: 22px; height: 22px; } } /* &.is-group-first { padding-top: 10px; } */ &.is-group-last { margin-bottom: #{$bubble-margin * 2}; &:after { bottom: -#{$bubble-margin}; } /* > .bubble-select-checkbox { bottom: .3125rem; } */ .bubbles-inner.is-chat &.is-in { > .bubble-select-checkbox { bottom: .1875rem; } } } &.is-group-first { &:after { top: -#{$bubble-margin}; } } &:not(.forwarded) { &:not(.is-group-first) { .bubble-content > .name, .document-wrapper > .name { display: none; } &:not(.is-message-empty):not(.is-reply) .message { padding-top: 6px; } } } &:not(.is-group-last) .bubble-content-wrapper > .user-avatar { display: none; } &:not(.hide-name) { .audio { margin: 4px 0; } } /* .goto-original { opacity: 1; } */ .reply { width: auto; .reply-content { height: auto; min-height: 32px; } } &.photo, &.video { .bubble-content { width: min-content; } .web { /* width: max-content; */ // commented 10.02.2020 /* width: min-content; */ max-width: 100%; } } &.webpage { .preview-with-document { margin-bottom: 0 !important; } .document { height: 3.375rem; @include respond-to(handhelds) { padding-left: 44px; } } } .preview-resizer { display: flex; } img.emoji { height: 18px; width: 18px; margin: 0 .05rem; vertical-align: bottom; } .thumbnail { position: absolute; } &.emoji-big { font-size: 0; .bubble-content { background: none!important; box-shadow: none; line-height: 1; user-select: none; } &:not(.sticker) .attachment { padding-top: .5rem; padding-bottom: 1.5rem; //max-width: fit-content!important; max-height: fit-content!important; span.emoji { height: auto; width: auto; } } &.sticker .bubble-content { max-width: 140px !important; max-height: 140px !important; } } &.emoji-1x .attachment { font-size: 96px; img.emoji { height: 64px; width: 64px; } } &.emoji-2x .attachment { font-size: 64px; img.emoji { height: 48px; width: 48px; } } &.emoji-3x .attachment { font-size: 52px; img.emoji { height: 32px; width: 32px; } } &.sticker, &.round, &.emoji-big { .bubble-content { cursor: pointer; background: none!important; box-shadow: none; /* max-width: 300px; max-height: 300px; */ } img { object-fit: contain; } &.is-message-empty .message { //background-color: rgba(0, 0, 0, .23); background: var(--message-highlightning-color); } /* &.is-message-empty .message { display: none; } &.is-message-empty:hover .message { display: block; } */ } &.sticker { .attachment { border-radius: 0; z-index: 1; } .bubble-content { max-width: 200px !important; max-height: 200px !important; } } &.round { .attachment { max-width: 200px !important; max-height: 200px !important; .media-photo, .media-video { border-radius: 50%; pointer-events: none; } } } &:not(.is-message-empty) .attachment/* , &:not(.is-message-empty).is-reply .attachment */ { border-bottom-left-radius: 0; border-bottom-right-radius: 0; } &:not(.emoji-big) .attachment { font-size: 0; } .attachment { max-width: 100%; border-radius: inherit; overflow: hidden; user-select: none; //-webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%); // fix safari overflow display: flex; // lol justify-content: center; position: relative; cursor: pointer; img, video { max-width: 100%; } .download { position: absolute; left: 0; top: 0; height: 100%; width: 100%; cursor: pointer; display: flex; justify-content: center; align-items: center; span { background-color: var(--message-time-background); font-size: 23px; color: #fff; text-align: center; } } .download, .preloader-container { & ~ .video-play { display: none; } } } .preloader-container { z-index: 2; } &:not(.sticker) { .attachment { max-width: unquote('min(480px, 100%)'); max-height: unquote('min(480px, 100%)'); width: max-content; } } img:not(.emoji), video { /* object-fit: contain; */ object-fit: cover; width: 100%; height: 100%; } html.is-safari &:not(.round) { img:not(.emoji), video { border-radius: inherit; } } &.is-album { .attachment { max-width: unquote('min(451px, 100%)'); max-height: none; //overflow: hidden; } } .album-item { background-color: rgba(0, 0, 0, .06); max-width: 100%; cursor: pointer; position: absolute; overflow: hidden; /* .bubbles.is-selecting & { -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%); // fix safari overflow } */ img, video { border-radius: inherit; } &-media { // * fix overflow for handhelds border-radius: inherit; } .bubble-select-checkbox { bottom: auto !important; left: auto; right: .5rem; top: .5rem; } &.is-selected { border-radius: 0; .album-item-media { transform: scale(1); } &.animating { transition: border-radius var(--layer-transition); .album-item-media { transition: transform var(--layer-transition), border-radius var(--layer-transition); } } &:not(.backwards) { .album-item-media { transform: scale(.883333); } &, .album-item-media { //border-radius: .5rem; border-radius: 0; } } } } .web { padding-top: 1px; margin: 4px 0 -5px 1px; // margin-bottom: 5px; max-width: 100%; overflow: hidden; .preview { max-height: unquote('min(400px, 100%)'); max-width: unquote('min(480px, 100%)'); border-radius: 4px; margin-bottom: 3px; overflow: hidden; user-select: none; cursor: pointer; position: relative; width: max-content; img, video { max-width: 100%; } } .title { letter-spacing: -.2px; line-height: 1.2; font-weight: 500 !important; } .name { letter-spacing: -.3px; display: block; font-size: calc(1rem - 1px); @include hover() { text-decoration: underline; } } .text { overflow: hidden; text-overflow: ellipsis; line-height: 1.2; letter-spacing: -.3px; margin-top: 2px; font-size: var(--messages-secondary-text-size); } .quote { // padding-left: .5rem; padding-left: .55rem; max-width: 100%; overflow: hidden; width: 100%; } } .web, .reply { font-size: var(--messages-secondary-text-size); .name, .reply-title { font-weight: 500 !important; display: inline!important; } } &.is-square-photo { .bubble-content { width: fit-content; } .web { .quote { display: flex; justify-content: space-between; } .preview-resizer { order: 2; flex-shrink: 0; max-width: 5rem; max-height: 5rem; .preview { max-width: unquote('min(5rem, 100%)'); max-height: unquote('min(5rem, 100%)'); } } .quote-text { order: 1; padding-right: 1rem; } } } &.is-vertical-photo { .bubble-content { width: fit-content; } } .reply { padding: 4px; margin: 0 4px 6px 4px; cursor: pointer; border-radius: 4px; &-content { max-width: 300px; } } &.is-reply { &.emoji-big, &.sticker { .reply { padding: 10px; border-radius: 12px; border: 1px solid #ccc; max-width: 300px; height: 54px; max-height: 54px; white-space: nowrap; position: absolute; top: 0; margin-bottom: 0; @include respond-to(handhelds) { padding: 8px 6px 8px 8px; max-width: 94px; } .reply-content { margin-top: 0; } } } .reply-content { white-space: nowrap; text-overflow: ellipsis; overflow: hidden; } } .message { font-size: var(--messages-text-size); padding: 0 9px 6px 9px; max-width: 100%; color: #000; line-height: 1.3125; // 21 / 16 word-break: break-word; white-space: pre-wrap; // * fix spaces on line begin position: relative; &:last-child { padding-top: 6px; } } .audio { padding-right: 2px; $parent: ".audio"; #{$parent} { &-title { font-weight: 500; } &-ico { font-size: 0; } } @include respond-to(handhelds) { height: 42px; padding-left: 47px; .audio-details { margin-top: 2px; margin-bottom: 0; } .audio-subtitle { margin-top: -1px; } } } // all for audio (not voice) .message.audio-message { min-width: 335px; max-width: 335px !important; @include respond-to(handhelds) { min-width: 280px; max-width: 300px !important; } } .message.audio-message, .message.voice-message { padding: 8px !important; //padding: 4px 6px 4px 8px !important; } .message.contact-message { min-width: 200px; padding-left: 8px; .contact { display: flex; padding: 2px 0; cursor: pointer; &-avatar { color: #fff; } &-details { padding-left: 12px; margin-top: 8px; display: flex; flex-direction: column; } &-name { font-size: 1rem; font-weight: 500; } &-number { font-size: 14px; line-height: 1.4; } } } .message.poll-message { max-width: 400px; } .message.document-message { max-width: 325px !important; .document { padding-left: 66px; height: 58px; @include respond-to(handhelds) { padding-left: 44px; //было 44 } &-name { line-height: 1.4; margin-top: 1px; overflow: hidden; text-overflow: ellipsis; } } } .document-wrapper { display: flex; flex-direction: column-reverse; .document-message { margin-top: .25rem; } } .document-container .time.tgico { position: relative !important; height: 0px !important; visibility: hidden !important; .inner { visibility: hidden !important; } } &.is-multiple-documents { /* .bubble-content { position: unset; } */ .message { padding: 0 !important; border-radius: inherit; } .document-container { position: relative; border-radius: inherit; .document-selection { position: absolute; top: 0; bottom: 0; z-index: -1; width: 200vw; left: -75vw; } &.is-highlighted, &.is-selected { .document-wrapper { &:before { content: " "; position: absolute; top: 0; right: 0; bottom: 0; left: 0; background-color: rgba(0, 0, 0, .06); border-radius: inherit; } } } &.is-highlighted { .document-selection { background-color: var(--message-highlightning-color); } body:not(.animation-level-0) & { .document-selection, .document-wrapper:before { animation: bubbleSelected 2s linear; } } } &.is-selected { .document-selection { background-color: var(--message-highlightning-color); } body:not(.animation-level-0) & { .document-selection, .document-wrapper:before { animation: fade-in-opacity .2s linear forwards; } &.backwards { .document-selection, .document-wrapper:before { animation: fade-in-backwards-opacity .2s linear forwards; } } } } .bubble-select-checkbox { left: 2rem; top: 2rem; width: 1.5rem; height: 1.5rem; background: #fff; border-radius: 50%; @include respond-to(handhelds) { left: 20px; top: 25px; } &:before { content: " "; position: absolute; width: 1.25rem; height: 1.25rem; left: .125rem; top: .125rem; border: 2px solid #c4c9cc; border-radius: inherit; } } &:first-of-type { .document-selection { top: -#{$bubble-margin / 2}; // * padding inner + half padding outer } .document-wrapper { padding-top: .5rem; border-top-left-radius: inherit; border-top-right-radius: inherit; } } &:last-of-type { .document-selection { bottom: -#{$bubble-margin / 2}; } .document-wrapper { padding-bottom: .5rem; border-bottom-left-radius: inherit; border-bottom-right-radius: inherit; } } } &.is-group-first .document-container { &:first-of-type { .document-selection { top: -$bubble-margin; } } } &.is-group-last .document-container { &:last-of-type { .document-selection { bottom: -$bubble-margin; } } } .document { height: 54px !important; } .document-wrapper { background-color: #fff; padding: .25rem .5rem; > .name { padding: 0 0 .25rem 0; margin-top: -.25rem; } } // * if have name /* .bubbles-inner.is-chat &.is-in.is-group-first { .document-container:first-of-type { .document-selection { top: -30px; } .document-wrapper { border-top-left-radius: 0; border-top-right-radius: 0; &:before { top: -26px; border-top-left-radius: $border-radius-big; border-top-right-radius: $border-radius-big; } } } } */ } .message { &.document-message, &.audio-message, &.voice-message, &.poll-message, &.contact-message { .time { position: absolute; right: 0; bottom: 0; } } } .message.voice-message { // ! SAFARI FIX BLINK ON SELECTION TRANSFORM ! overflow: visible !important; } &.is-message-empty { .message { position: absolute; /* position: relative; width: max-content; */ bottom: .1rem; right: .2rem; border-radius: 12px; background-color: var(--message-time-background); padding: 0 .2rem; z-index: 2; .time { margin-left: 0; color: #fff; visibility: visible; display: flex; align-items: center; padding: 0 2.5px; line-height: 18px; pointer-events: all; // show title white-space: nowrap; height: 18px; .inner { display: none; } } } &.with-replies:not(.sticker) .message { bottom: 55px; } &.sticker, &.with-replies.round, &.emoji-big { .message { bottom: 0; } } } &.with-replies .attachment { border-bottom-left-radius: 0; border-bottom-right-radius: 0; } .time { visibility: hidden; // * can't use color transparent here, because in name can be emoji font-size: 12px; user-select: none; line-height: 1; vertical-align: middle; pointer-events: none; // do not show title display: inline-flex; z-index: 1; cursor: default; /* display: inline-flex; align-items: center; */ height: 12px; i { font-size: 1.15rem; margin-right: .4rem; } &-icon { margin-left: 2px; } i.edited { overflow: visible; font-size: .8rem; } .inner { pointer-events: all; position: absolute; bottom: 0; right: 0; display: flex; align-items: center; line-height: 1; padding: inherit; white-space: nowrap; height: 12px; // * as font-size visibility: visible; } .tgico-pinnedchat:before { font-weight: bold; } } .video-time { position: absolute; top: 3px; left: 3px; border-radius: 12px; background-color: var(--message-time-background); padding: 0px 6px 0px 6px; z-index: 2; font-size: 12px; color: white; display: flex; align-items: center; cursor: pointer; user-select: none; height: 1.125rem; &.can-autoplay:after { content: $tgico-nosound; // * same as .iconVolume padding: 0 1px 0 3px; font-size: 1.25rem; color: #fff; } } pre { display: inline; margin: 0; } .video-play { background-color: var(--message-time-background); color: #fff; text-align: center; font-size: 2.125rem; cursor: pointer; display: flex; align-items: center; justify-content: center; z-index: 1; } .ckin__player.circle { z-index: 1; } &:not(.forwarded).hide-name, &.emoji-big { .name { display: none; } } .name { cursor: pointer; user-select: none; } &-content > .name, .document-wrapper > .name { /* padding: .2675rem 9px 0 9px; */ /* padding: .32rem 9px 0 9px; */ padding: 5px 9px 0 9px; font-weight: 500 !important; /* padding-bottom: 4px; */ color: $color-blue; font-size: .9rem; max-width: 100%; overflow: hidden; text-overflow: ellipsis; order: 1; //width: max-content; //white-space: nowrap; } &:not(.is-group-first) .bubble-content > .name .name { display: none; } &:not(.webpage) { &.photo, &.video { .bubble-content > .name { //padding-bottom: .2675rem; padding-bottom: 6px; } &:not(.is-message-empty) .message { //padding-top: .2675rem; padding-top: 6px; } } } &:not(.webpage):not(.is-album):not(.sticker):not(.round):not(.emoji-big) .attachment { background-color: #000; } &.hide-name:not(.is-reply):not(.is-message-empty) .message { //padding-top: .2675rem; padding-top: 6px; } &:not(.sticker):not(.emoji-big) { &.hide-name, &:not(.is-group-first)/* , &.is-out */ { .reply { margin-top: 6px; } } } &.can-have-tail.is-group-last .bubble-content:after { position: absolute; //bottom: 0; width: 11px; height: 20px; background-repeat: no-repeat no-repeat; content: ''; background-size: 11px 20px; background-position-y: 1px; z-index: -2; } &.photo, &.video { &.is-message-empty.is-group-last:not(.with-replies) { .bubble-content:after { display: none; } } } &.is-message-empty.is-group-last.with-media-tail { .bubble-content:after { display: none; } .attachment { overflow: visible; } } &__media-container { cursor: pointer; border-radius: inherit; } audio-element, poll-element { white-space: normal; // * fix due to .message white-space prewrap } .replies { user-select: none; .rp { width: 100%; height: 100%; position: absolute; top: 0; left: 0; overflow: hidden; border-radius: inherit; cursor: pointer; } &-beside { flex-direction: column; width: 36px; min-height: 36px; height: auto; max-height: 52px; bottom: 47px; // * forward button + 9px margin border-radius: 2rem; right: -44px; // * because not 38px, as forward button padding: 5.5px 0; .tgico-commentssticker { font-size: 23px; } &-text { font-size: .75rem; } } &-footer { height: 51px; border-top: 2px solid #e6e7ea; position: relative; display: flex; align-items: center; padding: 0 .5rem; border-bottom-left-radius: inherit; border-bottom-right-radius: inherit; color: $color-blue; min-width: 15rem; .tgico-comments, .tgico-next { font-size: 1.4375rem; } &-text { font-weight: 500; font-size: 15px; margin-left: 9px; display: flex; align-items: center; color: #1f88e3; } &-avatars { display: flex; flex-direction: row-reverse; avatar-element { width: 34px; height: 34px; border: 2px solid #fff; cursor: pointer; z-index: 0; // * fix border blinking &:not(:first-child) { margin-right: -14px; } } } .tgico-next { position: absolute; right: 4px; } &.is-unread { .replies-footer-text { &:after { content: " "; background-color: $color-blue; width: .5rem; height: .5rem; margin-left: .75rem; border-radius: 50%; } } } } } &.is-thread-starter { .user-avatar { display: none; } &.is-in .bubble-content-wrapper { margin-left: 0; } } } // * fix scroll with only 1 bubble .bubbles-date-group:last-of-type { .bubble:last-of-type { margin-bottom: $bubble-margin; /* &:after, .document-container:last-of-type .document-selection { bottom: 0 !important; } */ } } .bubble-content-wrapper { transition: transform var(--layer-transition), opacity var(--layer-transition); transform: scale(1) translateX(0); transform-origin: center; opacity: 1; &.zoom-fade /* .bubble-content */ { //transform: scale(.8) translateZ(0); transform: scale3d(.8, .8, 1) translateX(0); //transform: scale(.8) translateX(0); opacity: 0; } @include respond-to(not-handhelds) { max-width: 85%; } @include respond-to(handhelds) { max-width: calc(100% - var(--message-handhelds-margin)); } > .user-avatar { position: absolute; margin-left: -45px; //left: -3rem; # DO JS3 bottom: 0; cursor: pointer; .bubbles.is-selecting & { transform: scale3d(1, 1, 1); transform-origin: bottom; transition: transform var(--layer-transition); body.animation-level-0 & { transition: none; } } .bubbles.is-selecting:not(.backwards) & { transform: scale3d(.76, .76, 1); } // @include respond-to(handhelds) { // left: -45px; // } } } .bubble.service { align-self: center; justify-content: center; .bubble-content { background-color: transparent; } .service-msg { color: #fff; //background-color: rgba(0, 0, 0, .24); background-color: var(--message-highlightning-color); font-size: .9375rem; padding: 0 .5rem; line-height: 1.5rem; border-radius: .75rem; user-select: none; display: flex; align-items: center; justify-content: center; text-align: center; i { font-style: normal; } a { color: #fff; } a, .peer-title { &:hover { text-decoration: underline; } } .peer-title { cursor: pointer; //margin-right: 5px; } img.emoji { margin-bottom: 3px; } } } .bubble.is-in { .bubble-content { &, .poll-footer-button { border-radius: 6px 12px 12px 6px; } } &.is-group-first { .bubble-content, .poll-footer-button { border-top-left-radius: 12px; } } &.is-group-last { &.can-have-tail { .bubble-content, .poll-footer-button { border-bottom-left-radius: 0; } .bubble-content:after { margin-left: -8.4px; background-image: url('assets/img/msg-tail-left.svg'); } } &:not(.can-have-tail) { .bubble-content, .poll-footer-button { border-bottom-left-radius: 12px; } } } &.forwarded .attachment, &.is-reply .attachment, &:not(.hide-name).is-message-empty .attachment/* , &:not(.hide-name):not(.sticker) .attachment */ { border-top-left-radius: 0; border-top-right-radius: 0; } a { color: $color-blue; } .quote { @include hover() { background-color: $light; } } &.is-reply { &.emoji-big, &.sticker { .reply { left: calc(100% + 10px); background-color: #fff; @include respond-to(handhelds) { left: calc(100% + 1px); } } } } .quote { border-left: 2px $color-blue solid; } .quote .name, .reply-title/* , .reply i */ { color: $color-blue; } .time { margin-left: -1px; padding-right: 8px; .inner { color: #a3adb6; margin-bottom: 4px; } } &.is-message-empty.is-group-last { /* &:not(.with-media-tail):not(.with-replies) { &.photo, &.video { .bubble-content { border-bottom-left-radius: 6px; } } } */ &.with-media-tail { .attachment { border-bottom-left-radius: 0; } .bubble__media-container { margin-left: -9px; } } } .audio-subtitle, .contact-number, .audio-time { color: #707579 !important; } /* .poll { &-answer-selected { &:before { margin-left: -1px; } } } */ } .bubble.is-out { flex-direction: row-reverse; --background-color: #eeffde; .bubble-content { &, .poll-footer-button { border-radius: 12px 6px 6px 12px; } .name { color: #50af4f; } } /* .bubble-content-wrapper { > .user-avatar { left: auto; right: -2.5rem; } } */ &.is-group-first { .bubble-content, .poll-footer-button { border-top-right-radius: 12px; } } &.is-group-last { &.can-have-tail { .bubble-content, .poll-footer-button { border-bottom-right-radius: 0; } .bubble-content:after { right: -8.4px; background-image: url('assets/img/msg-tail-right.svg'); } } &:not(.can-have-tail) { .bubble-content, .poll-footer-button { border-bottom-right-radius: 12px; } } } &.forwarded .attachment, &.is-reply .attachment { border-top-left-radius: 0; border-top-right-radius: 0; } .quote { @include hover() { background-color: rgba($color-green, .12); } } &.is-reply { &.emoji-big, &.sticker { .web, .reply { background-color: #eeffde; right: calc(100% + 10px); border-color: rgba($color-green, .12); } } } .quote { border-left: 2px $darkgreen solid; } .reply-border { background-color: $darkgreen; } .quote .name, .reply-title, .reply i { color: $darkgreen; } .time { padding-right: 4px; margin-left: -3px; .inner { color: $darkgreen; bottom: 4px; } &:after, .inner:after { font-size: 19px; //vertical-align: middle; margin-left: 1px; line-height: 16px; // of message } } /* &.is-message-empty .time:after { margin-bottom: 1px; } */ &.forwarded { .name { color: $darkgreen; } } &.is-read { .time:after, .time .inner:after { content: $tgico-checks; } } &.is-sent { .time:after, .time .inner:after { content: $tgico-check; } } &.is-sending { .time:after, .time .inner:after { content: $tgico-sending; } } /* &.is-reply .name { display: none; } */ .document-ico:after { border-top-color: #eeffde; border-right-color: #eeffde; } .audio { &-waveform { rect { fill: #B8DDA9; &.active { fill: #68AB5A !important; } } } &-time, &-subtitle { color: #68AB5A; } &-toggle, &-download { background-color: #4FAE4E; } &-download:empty { display: none; } &.is-unread { rect { //fill: #68AB5A; fill: #B8DDA9; } .audio-time:after { background-color: #68AB5A; } } } &.is-message-empty.is-group-last { /* &:not(.with-media-tail) { &.photo, &.video { .bubble-content { border-bottom-right-radius: 6px; } } } */ &.with-media-tail { .attachment { border-bottom-right-radius: 0; } .bubble__media-container { margin-right: -9px; } } } .audio-subtitle, .contact-number, .document-size { color: #4FAE4E; } poll-element { .poll { &-desc, &-votes-count { color: $color-text-green; } &-line use { stroke: #4fae4e; } &-answer-selected { background-color: #4fae4e; } html.no-touch &-answer:hover { .animation-ring { background-color: rgba(79, 174, 78, .08); } } &-footer-button, &-hint { color: #4fae4e; } } .progress-ring__circle { stroke: #4fae4e; } } &.is-sending poll-element { pointer-events: none; } .audio:not(.is-voice) { .progress-line { &__loaded { background-color: #90e18d !important; } &__filled { background-color: #47aa41; } &__seek { --thumb-color: #47aa41; background-color: rgba(124, 195, 107, .52); } } } .bubble-beside-button { right: auto; left: -46px; //transform: scaleX(-1); &.goto-original { transform: rotate(180deg); } } &.is-multiple-documents { .document-container { .bubble-select-checkbox { background-color: #eeffde; &:before { border-color: #9ed695; } .checkbox-box-border { border-color: #eeffde; } } /* &:after { left: -50vw; } */ } .document-wrapper { background-color: #eeffde; } } } .reply-markup { width: 100%; &-row { margin-top: 5px; overflow: hidden; height: 40px; display: flex; &:last-child { border-bottom-left-radius: $border-radius-big; border-bottom-right-radius: $border-radius-big; } } &-button { display: flex; justify-content: center; align-items: center; border-radius: 6px; //background-color: rgba(0, 0, 0, .23); background: var(--message-highlightning-color); z-index: 2; font-size: 14px; user-select: none; text-align: center; color: white !important; outline: none; border: none; width: 100%; cursor: pointer; position: relative; transition: background-color .35s ease; overflow: hidden; @include hover() { background-color: rgba(0, 0, 0, .06); } & + & { margin-left: 5px; } &.is-link:before { content: $tgico-arrow-next; position: absolute; right: 2px; top: 2px; display: block; transform: rotate(-45deg); } /* img.emoji { vertical-align: middle !important; } */ } } poll-element { margin-top: -1px; display: block; //min-width: 280px; min-width: 330px; user-select: none; @include respond-to(handhelds) { min-width: 240px; } &:not(.is-closed):not(.is-voted) .poll-answer { cursor: pointer; } .poll { &-title { font-weight: 500; @include respond-to(handhelds) { max-width: 88%; white-space: normal; } } &-desc { font-size: 14px; color: #707579; margin-top: 2px; margin-bottom: 5px; display: flex; position: relative; // @include respond-to(handhelds) { // max-width: 280px; // } } &-type { margin-top: 2px; } &-hint { position: absolute; font-size: 1.5rem; top: -4px; right: 2px; color: #50a2e9; cursor: pointer; transform: scale(1); transition: transform .2s ease; body.animation-level-0 & { transition: none; } // @include respond-to(handhelds) { // right: 16px; // } &.active { transform: scale(0); pointer-events: none; } } &-send-vote { cursor: default; } &-avatars { display: flex; margin-left: 18px; } &-answer { display: flex; position: relative; padding-bottom: 20px; padding-left: 28px; margin-top: 1px; &-text { margin-top: 6px; margin-left: 12px; } &-percents { position: absolute; left: 0; top: 0; opacity: 0; font-weight: 500; margin-top: 7px; font-size: 14px; transition: .34s opacity; margin-left: -9px; text-align: right; width: 40px; } &-selected { position: absolute; bottom: 1px; left: 15px; color: #fff; background: #50a2e9; border-radius: 50%; height: 16px; width: 16px; font-weight: bold; font-size: .75rem; opacity: 0; animation: fade-in-opacity .1s ease forwards; animation-direction: reverse; animation-delay: .24s; display: flex; align-items: center; justify-content: center; &:before { content: $tgico-check; //margin-left: 1px; font-weight: bold; } } @include hover() { .animation-ring { visibility: visible; transform: scale(1); } } &.is-voting { .progress-ring__circle { stroke-dashoffset: -19.792; animation: pollAnswerRotate .65s linear infinite; } } &:not(.is-correct):not(.is-chosen) { .poll-answer-selected { display: none; } } // Multiple answers &.is-chosing { .poll-answer-selected { opacity: 1; } & ~ .poll-footer { .poll-send-vote { cursor: pointer; } } } } &-votes-count { color: #707579; font-size: 14px; padding-top: 1px; } &-line { height: 35px; position: absolute; left: 10px; bottom: 2px; transition: stroke-dashoffset .34s linear, stroke-dasharray .34s linear; stroke-dashoffset: 0; stroke-dasharray: 0, 485.9; use { stroke-width: 4px; stroke-linecap: round; stroke: #50a2e9; fill: none; } } &-footer { text-align: center; margin-top: 7px; height: 27px; } &-footer-button { cursor: pointer; position: absolute; left: 0; margin-top: -7px; width: 100%; height: 41px; color: #50a2e9; //text-transform: uppercase; font-weight: 500; border-top-left-radius: 0 !important; border-top-right-radius: 0 !important; //border-bottom-left-radius: 6px; //border-bottom-right-radius: 12px; font-size: 1rem; line-height: 37px; overflow: hidden; } &-quiz-timer { width: 32px; height: 32px; stroke: #a3adb6; transform: rotate(270deg); top: -7px; fill: none; position: absolute; right: -2px; stroke-linecap: round; } &-time { font-size: 12px; font-weight: 500; position: absolute; right: 27px; color: #a3adb6; } } &.is-quiz .poll { &-answer { &.is-chosen:not(.is-correct) { use { stroke: #DF3F40; } .poll-answer-selected { background: #DF3F40; //line-height: 16px; &:before { content: $tgico-close; font-size: 12px; //margin-left: 2.5px; } } } } /* &-line { use { } } */ } avatar-element { border: 1px solid #fff; cursor: pointer; width: 18px; height: 18px; } .circle-hover { display: flex; justify-content: center; align-items: center; width: 34px; height: 34px; position: absolute; left: -1px; top: -1px; transform: scale(1); transition: .1s transform; .poll-answer-selected { display: flex!important; opacity: 0; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 20px; height: 20px; font-size: 20px; line-height: 16px; animation: none; transition: opacity .2s ease; } } .animation-ring { display: block; border-radius: 50%; height: 34px; width: 34px; transition: transform .12s; background-color: #f4f4f4; transform: scale(.1); visibility: hidden; } .progress-ring { height: 26px; width: 26px; top: unset; left: unset; &__circle { transform-origin: center; transform: rotate(-90deg); transition: stroke-dashoffset .15s; stroke-dasharray: 56.5487, 56.5487; stroke-dashoffset: 0; stroke-opacity: 1; stroke-width: 2; stroke: #dadbdc; fill: transparent; } } &.is-voted { .circle-hover, .animation-ring { transform: scale(0); } .poll-answer-percents { opacity: 1; } .poll-answer-selected { animation-direction: normal; } } &.is-retracting { .circle-hover { transition-delay: .24s; } .animation-ring { transition-delay: .22s; } } } @keyframes pollAnswerRotate { to { transform: rotate(270deg); } }