#conversejs { .chatbox-navback { display: none; } .flyout { border-radius: var(--chatbox-border-radius); position: absolute; @media screen and (max-height: $mobile-landscape-height) { border-radius: 0; } @media screen and (max-width: $mobile-portrait-length) { border-radius: 0; } @media screen and (max-height: $mobile-landscape-height) { bottom: 0; } @media screen and (max-width: $mobile-portrait-length) { bottom: 0; } } .chatbox-btn { border-radius: 25%; border: none; cursor: pointer; font-size: var(--chatbox-button-size); margin: 0 0.2em; padding: 0 0 0 0.5em; text-decoration: none; &:active { position: relative; top: 1px; } } .chat-head { flex-wrap: nowrap; color: #ffffff; font-size: 100%; margin: 0; padding: 0.5em; position: relative; &.chat-head-chatbox { background-color: var(--chat-head-color); } .avatar { height: 36px; width: 36px; margin-right: 0.5em; } .chatbox-title { .chatroom-description { font-size: 80%; } } .chatbox-buttons { flex-direction: row-reverse; @include make-col-ready(); @include make-col(3); padding: 0; } .user-custom-message { color: var(--chat-head-color-lighten-50-percent); font-size: 75%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin: 0; padding-top: 0.2em; } a, a:visited, a:hover, a:not([href]):not([tabindex]) { &.chatbox-btn { &.fa, &.fas, &.far { color: white; &.button-on:before { padding: 0.2em; background-color: var(--chat-head-text-color); color: var(--chat-head-color); } } } } .chatbox-btn { color: white; &.fa, &.far, &.fas { color: white; } &:active { position: relative; top: 1px; } &.button-on:before { border-radius: 5%; background-color: var(--chat-head-text-color); color: var(--chat-head-color); } } } .chatbox { text-align: left; margin: 0 var(--chat-gutter); img { &.emoji { height: 1.2em; width: 1.2em; margin: 0 .05em 0 .1em; vertical-align: -0.1em; } } @media screen and (max-height: $mobile-landscape-height) { margin: 0; width: var(--mobile-chat-width); } @media screen and (max-width: $mobile-portrait-length) { margin: 0; width: var(--mobile-chat-width); } .box-flyout { display: flex; flex-direction: column; justify-content: space-between; background-color: var(--chat-head-color); box-shadow: 1px 3px 5px 3px rgba(0, 0, 0, 0.4); z-index: 1; overflow-y: hidden; width: 100%; @media screen and (max-height: $mobile-landscape-height) { height: var(--mobile-chat-height); width: var(--mobile-chat-width); height: 100vh; } @media screen and (max-width: $mobile-portrait-length) { height: var(--mobile-chat-height); width: var(--mobile-chat-width); height: 100vh; } } .chat-title { display: var(--heading-display); font-family: var(--heading-font); color: var(--heading-color); display: block; line-height: var(--line-height-large); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; &.groupchat { padding-right: var(--chatroom-head-title-padding-right); } a { color: var(--chat-head-text-color); width: 100%; } } .chat-body { display: flex; flex-direction: column; justify-content: space-between; height: 100%; background-color: var(--chat-head-color); border-bottom-left-radius: var(--chatbox-border-radius); border-bottom-right-radius: var(--chatbox-border-radius); @media screen and (max-height: $mobile-landscape-height) { border-bottom-left-radius: 0; border-bottom-right-radius: 0; } @media screen and (max-width: $mobile-portrait-length) { border-bottom-left-radius: 0; border-bottom-right-radius: 0; } border-top: 0; p { color: var(--text-color); font-size: var(--message-font-size); margin: 0; padding: 5px; } } .new-msgs-indicator { position: relative; width: 100%; cursor: pointer; background-color: var(--chat-head-color); color: var(--light-background-color); padding: 0.5em; font-size: 0.9em; text-align: center; z-index: 20; white-space: nowrap; margin-bottom: 0.25em; } .chat-content { padding: 1em 0; height: 100%; font-size: var(--message-font-size); color: var(--text-color); overflow-y: auto; border: 0; background-color: #ffffff; line-height: 1.3em; video { width: 100% } progress { margin: 0.5em 0; width: 100% } } .chat-content-sendbutton { height: calc(100% - (var(--chat-textarea-height) + var(--send-button-height) + 2 * var(--send-button-margin))); } .dropdown { /* status dropdown styles */ background-color: var(--light-background-color); dd { margin: 0; padding: 0; position: relative; } } .sendXMPPMessage { -moz-background-clip: padding; -webkit-background-clip: padding-box; border-bottom-radius: var(--chatbox-border-radius); background-clip: padding-box; background-color: white; border: 0; margin: 0; padding: 0; @media screen and (max-height: $mobile-landscape-height) { width: 100%; } @media screen and (max-width: $mobile-portrait-length) { width: 100%; } .suggestion-box__results { &:after { display: none; } } .spoiler-hint { width: 100%; } .chat-textarea { color: var(--chat-textarea-color); background-color: var(--chat-textarea-background-color); border-top-left-radius: 0; border-top-right-radius: 0; border-bottom-radius: var(--chatbox-border-radius); padding: 0.5em; width: 100%; border: none; min-height: var(--chat-textarea-height); margin-bottom: -4px; // Not clear why this is necessar :( resize: none; &:active, &:focus{ outline-color: var(--chat-head-color); } &.spoiler { height: 42px; } &.correcting { background-color: var(--chat-correcting-color); } } .send-button { position: static; left: var(--send-button-margin); width: 100%; background-color: var(--chat-head-color); color: var(--inverse-link-color); font-size: 80%; height: var(--send-button-height); bottom: calc(-var(--send-button-height) - var(--send-button-margin)); } .chat-toolbar { box-sizing: border-box; margin: 0; padding: 0.25em; display: block; border-top: 4px solid var(--chat-head-color); background-color: white; color: var(--chat-head-color); .fa, .fa:hover, .far, .far:hover, .fas, .fas:hover { color: var(--chat-head-color); font-size: var(--font-size-large); } .disabled { color: var(--text-color-lighten-15-percent) !important; } .unencrypted a, .unencrypted { color: var(--text-color); .toolbar-menu { a { color: var(--link-color); } } } .unverified a, .unverified { color: #cf5300; } .private a, .private { color: #4b7003; } li { cursor: pointer; display: inline-block; list-style: none; padding: 0 0.5em; &:hover { cursor: pointer; } .toolbar-menu { background-color: #fff; bottom: 2rem; box-shadow: -1px -1px 2px 0 rgba(0, 0, 0, 0.4); height: auto; margin-bottom: 0; min-width: 21rem; position: absolute; right: 0; top: auto; z-index: $zindex-dropdown; &.otr-menu { left: -6em; min-width: 15rem; &.show { display: flex; flex-direction: column; } } a { color: var(--link-color); } .emoji-picker-container { background: white; } ul { &.emoji-picker { overflow-y: scroll; overflow-x: hidden; padding: 0.5em; } li { margin-left: 0; cursor: pointer; list-style: none; position: relative; &.insert-emoji { padding: 0.2em; &.picked { background-color: var(--highlight-color); } &:hover { background-color: var(--highlight-color); } a { font-size: var(--font-size-huge); &:hover { color: #8f2831; } } } } } } &.toggle-smiley { a.toggle-smiley { padding: 0; } .emoji-toolbar { box-shadow: 0 -1px 1px 0 rgba(0, 0, 0, 0.4); .emoji-category-picker { padding-top: 0.5em; ul { display: flex; flex-direction: row; justify-content: space-between; } } .emoji-category-picker, .emoji-skintone-picker { li { padding: 0.25em; font-size: var(--font-size-huge); &:hover { background-color: var(--highlight-color); } } } } } &.toggle-otr { ul { z-index: 99; li { &:hover { background-color: var(--highlight-color); } display: block; padding: 7px; a { display: block; } } } } } } } .dragresize { background: transparent; border: 0; margin: 0; position: absolute; top: 0; z-index: 20; &-top { cursor: n-resize; height: 5px; width: 100%; } &-left { cursor: w-resize; width: 5px; height: 100%; left: 0; } &-topleft { cursor: nw-resize; width: 15px; height: 15px; top: 0; left: 0; } } } } /* ******************* Overlay and embedded styles *************************** */ #conversejs.converse-embedded, #conversejs.converse-overlayed { .chat-head { border-top-left-radius: var(--chatbox-border-radius); border-top-right-radius: var(--chatbox-border-radius); @media screen and (max-height: $mobile-landscape-height) { border-top-left-radius: 0; border-top-right-radius: 0; } @media screen and (max-width: $mobile-portrait-length) { border-top-left-radius: 0; border-top-right-radius: 0; } .chatbox-title { @include make-col(8); } .chatbox-buttons { @include make-col(4); } } .emoji-picker { height: var(--embedded-emoji-picker-height); } .chatbox { min-width: var(--overlayed-chat-width) !important; width: var(--overlayed-chat-width); .box-flyout { min-width: var(--overlayed-chat-width) !important; width: var(--overlayed-chat-width); .chat-body { height: calc(100% - var(--overlayed-chat-head-height)); } } } } #conversejs.converse-overlayed { .flyout { bottom: var(--overlayed-chatbox-hover-height); } .box-flyout { height: var(--overlayed-chat-height); min-height: calc(var(--overlayed-chat-height) / 2); } .chat-head { height: var(--overlayed-chat-head-height); } .chat-textarea { max-height: var(--overlayed-max-chat-textarea-height); } .emoji-picker { height: var(--overlayed-emoji-picker-height); } .chatbox { .sendXMPPMessage { .chat-toolbar { li { .toolbar-menu { min-width: 235px; ul { &.emoji-toolbar { width: 100%; .emoji-category { float: left; } } } } &.toggle-smiley { .emoji-toolbar { .emoji-category-picker { ul { flex-wrap: wrap; justify-content: flex-start; } } } } } } } } } @include media-breakpoint-down(sm) { #conversejs.converse-overlayed { > .row { flex-direction: column; &.no-gutters { margin: -1em; } } } } #conversejs.converse-embedded.converse-singleton { .flyout { border: none !important; } .chat-head { height: var(--fullpage-chat-head-height); padding: 0.5em; } .chatbox { margin: 0; @include make-col-ready(); @include media-breakpoint-up(md) { @include make-col(12); } @include media-breakpoint-up(lg) { @include make-col(12); } @include media-breakpoint-up(xl) { @include make-col(12); } } } #conversejs.converse-embedded, #conversejs.converse-fullscreen { .flyout { border-radius: 0; border-top: 0.8em solid var(--chat-head-color); border: var(--flyout-padding) solid var(--chat-head-color); bottom: 0; } .chat-head { height: var(--fullpage-chat-head-height); padding: 0; .user-custom-message { font-size: 70%; height: auto; line-height: var(--line-height); } .chatbox-title { @include make-col(10); } .chatbox-buttons { @include make-col(2); } } .chatbox { margin: 0; @include make-col-ready(); @include media-breakpoint-up(md) { @include make-col(8); } @include media-breakpoint-up(lg) { @include make-col(9); } @include media-breakpoint-up(xl) { @include make-col(10); } .box-flyout { box-shadow: none; overflow: hidden; } } } #conversejs.converse-embedded { .converse-chatboxes { z-index: 1031; // One more than bootstrap navbar position: inherit; flex-wrap: nowrap; bottom: auto; height: 100%; width: 100%; margin-left: -15px; } .chatbox { .box-flyout { bottom: 0; height: 100%; min-width: auto; width: 100%; } .chat-title { padding: 0.3em; font-size: 120%; } } .chat-textarea { max-height: var(--fullpage-max-chat-textarea-height); } } /* ******************* Fullpage styles *************************** */ #conversejs.converse-fullscreen { .chatbox-btn { font-size: var(--fullpage-chatbox-button-size); margin: 0 0.3em; } .chat-head { font-size: var(--font-size-huge); } .chat-textarea { max-height: var(--fullpage-max-chat-textarea-height); } .emoji-picker { height: var(--fullpage-emoji-picker-height); } .chatbox { .box-flyout { background-color: var(--chat-head-color); box-shadow: none; height: var(--fullpage-chat-height); min-height: calc(var(--fullpage-chat-height) / 2); width: var(--fullpage-chat-width); overflow: hidden; } .chat-body { height: calc(100% - var(--fullpage-chat-head-height)); background-color: var(--chat-head-color); border-top-left-radius: var(--chatbox-border-radius); border-top-right-radius: var(--chatbox-border-radius); } .chat-content { border-top-left-radius: var(--chatbox-border-radius); border-top-right-radius: var(--chatbox-border-radius); } .chat-title { font-size: var(--font-size-huge); line-height: var(--line-height-huge); } .sendXMPPMessage { ul { width: 100%; } .toggle-smiley { ul { &.emoji-toolbar { .emoji-category-picker { margin-right: 5em; } .emoji-category { padding-left: 10px; padding-right: 10px; } } } } } } } @include media-breakpoint-down(sm) { #conversejs:not(.converse-embedded) { > .row { flex-direction: row-reverse; } #converse-login-panel { .converse-form { padding: 3em 2em 3em; } } .chatbox { width: calc(100% - 50px); .row { .box-flyout { left: 50px; bottom: 0; height: 100vh; box-shadow: none; } } } } #conversejs.converse-mobile, #conversejs.converse-overlayed, #conversejs.converse-fullscreen { .chatbox { .box-flyout { .chatbox-navback { display: flex; @include make-col(2); .fa-arrow-left { &:before { color: white; } } } .chatbox-title { @include make-col(7); } .chatbox-buttons { @include make-col(3); } } } } }