You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

603 lines
8.8 KiB
Plaintext

// Make chats page edge-to-edge
.page-user-chats {
#content.container {
width: auto;
padding: 0;
}
.navbar {
margin-bottom: 0;
}
#panel {
padding-bottom: 0px;
}
[data-widget-area="header"], [data-widget-area="footer"] {
display: none;
}
}
/* Styles common to both full chat and chat modal */
.chats-full, .chat-modal {
display: flex;
flex-wrap: nowrap;
height: calc(100vh - var(--panel-offset));
[component="chat/nav-wrapper"] {
flex: 1;
flex-direction: column;
padding: 0px 15px;
.chats-list {
flex: 1;
overflow-y: auto;
margin-bottom: 0;
height: ~"calc(100% - 5em)";
}
.chat-search {
padding-bottom: 15px;
ul {
width: 100%;
}
}
[component="chat/search/list"] {
padding: 0;
overflow-x: hidden;
overflow-y: auto;
li {
position: relative;
clear: both;
list-style-type: none;
padding: .5em;
height: 70px;
cursor: pointer;
border-left: 1px solid;
border-right: 1px solid;
border-bottom: 1px solid;
border-color: @gray-lighter;
i {
position: relative;
left: -30px;
font-size: 20px;
top: -20px;
}
img, .user-icon {
.user-icon-style(50px, 2.4rem, 50%);
margin-top: 4px;
margin-right: 13px;
margin-left: .5em;
}
}
}
}
[component="chat/main-wrapper"] {
flex: 3;
padding-bottom: 15px;
.alert {
margin: 1em;
}
}
[component="chat/messages"] {
display: flex;
flex-direction: column;
height: 100%;
.chat-content {
flex: 1;
}
}
[component="chat/header"] {
padding: @panel-heading-padding;
border-bottom: 1px solid @modal-header-border-color;
span {
font-weight: 500;
}
.close {
margin-left: 0.5em;
}
.members {
a {
font-weight: 600;
}
}
.dropdown {
.avatar {
margin-right: 0.5em;
}
}
}
.modal-header .dropdown {
.avatar {
margin-right: 0.5em;
}
}
[component="chat/composer"] {
display: flex;
position: relative;
[component="chat/input"] {
flex: 1;
box-shadow: none;
border: 0;
border: 1px solid @gray-lighter;
border-radius: 0;
}
[data-action="send"] {
width: 5em;
height: 100%;
}
[component="chat/message/remaining"] {
position: absolute;
right: 10em;
z-index: 2;
bottom: 0;
color: @gray-light;
}
}
}
.chats-page {
margin-top: 10px;
}
.chats-list {
padding: 0;
overflow-x: hidden;
overflow-y: auto;
border-top: 1px solid @gray-lighter;
> li.no_active {
height: initial;
padding-bottom: 0.5rem;
text-align: center;
}
> li {
display: flex;
position: relative;
clear: both;
list-style-type: none;
height: 80px;
.pointer;
border-left: 1px solid;
border-right: 1px solid;
border-bottom: 1px solid;
border-color: @gray-lighter;
&.typing {
.username:after {
visibility: visible;
}
}
&.unread {
background: lighten(@brand-primary, 35%);
border-bottom: 0;
}
.teaser-content {
font-size: 13px;
opacity: 0.8;
}
.notification-chat-content {
.room-name {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
display: block;
[component="chat/title"] {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
max-width: 350px;
display: inline-block;
}
}
}
&.bg-primary {
background: @brand-primary;
border-bottom: 0;
}
.username {
font-size: 14px;
&:after {
display: inline-block;
font-family: "FontAwesome";
content: "\f11c";
margin-left: 0.5em;
visibility: hidden;
}
}
.teaser-timestamp {
font-size: 10px;
margin-top: .5rem;
margin-right: .5rem;
}
a {
.text-ellipsis;
}
p {
margin: 0;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
height: 20px;
}
.status {
position: absolute;
left: 50px;
font-size: 20px;
top: 10px;
}
.leave {
opacity: 0.5;
&:hover {
opacity: 1.0;
}
}
.members {
padding-left: 1rem;
margin-bottom: 0.5rem;
z-index: 1;
position: absolute;
bottom: 0.2rem;
left: 53px;
li {
display: inline-block;
width: 1.6rem;
padding: 0;
margin: 0;
&:first-child {
display: none;
}
.avatar {
border: 2px solid white;
width: 2.8rem;
height: 2.8rem;
line-height: 2.6rem;
vertical-align: bottom;
}
img {
margin-top: -0.4rem;
}
}
}
.main-avatar {
.avatar {
height: 8rem;
width: 8rem;
font-size: 4rem;
border-radius: 0;
background: @gray-lighter;
}
}
.avatar-placeholder {
height: 8rem;
width: 8rem;
background: @gray-lighter;
position: absolute;
top: 0px;
left: 0px;
}
}
}
.chat-modal {
z-index: @zindex-modal;
}
/* Chat modal specific styles */
.chat-modal {
.modal-header {
padding: 0.25em 1em;
h4 {
font-size: 1.5rem;
font-weight: bold;
min-height: 20px;
i {
font-size: 14px;
vertical-align: center;
&.fa-keyboard-o {
.animation(topic-reply-pulse 2s ease-in infinite);
}
}
}
.close {
padding: 0.5em;
}
.users-tag-container span:only-of-type [data-role="remove"] {
display: none;
}
}
.modal-body {
display: flex;
flex-direction: column;
height: 400px;
.chat-content {
flex: 1;
}
}
}
.expanded-chat, .chat-modal {
.chat-content {
.fix-lists;
overflow-y: auto;
overflow-x: hidden;
resize: none;
word-wrap: break-word;
margin: 0;
padding: 0;
li.chat-message {
position: relative;
list-style-type: none;
font-weight: 300;
padding: 0 1.428rem;
margin-right: 1.428rem;
transition: opacity .5s ease;
&:first-child {
padding-top: 1.428rem;
}
&:last-child {
margin-bottom: 1.428rem;
}
&[data-break="true"] {
padding-top: 1rem;
margin-top: 1rem;
border-top: 1px solid @gray-lighter;
}
&[data-break="true"]:first-child {
border-top: 0;
margin-top: -1.5px;
}
&.deleted {
.message-body-wrapper .controls {
[data-action] {
display: none;
}
[data-action="restore"] {
display: inline;
}
}
.message-body {
opacity: 0.3;
}
}
.chat-user-image {
.user-icon-style(32px, 1.6rem, 50%);
float: left;
}
.chat-user {
display: inline-block;
margin-left: 13px;
a {
color: @text-color;
}
}
.chat-timestamp {
color: @gray-light;
font-size: 1rem;
display: inline-block;
margin-left: 10px;
.user-select(none);
}
.chat-edited {
margin-left: 5px;
margin-top: 2px;
}
&[data-self="0"] + [data-self="0"], &[data-self="1"] + [data-self="1"] {
&[data-break="false"] {
.message-header {
display: none;
}
}
}
.message-body-wrapper {
margin-left: 45px;
.message-body {
padding: 7px 10px;
overflow-y: hidden;
p {
margin: 7px 0 0 0;
line-height: 2rem;
}
p:first-child {
margin: 0;
}
}
.controls {
display: none;
position: absolute;
bottom: 5px;
right: 30px;
border: 1px solid @dropdown-border;
.box-shadow(0 6px 12px rgba(0,0,0,.175));
[data-action="restore"] {
display: none;
}
}
&:hover {
.message-body {
background: @dropdown-link-hover-bg;
}
.controls {
display: block;
}
}
}
}
li.system-message {
list-style-type: none;
text-align: center;
color: @gray-light;
font-size: 1.25rem;
padding: 1rem 0;
&::before, &::after {
display: inline-block;
width: 10%;
content: '';
border-top: 1px solid @gray-lighter;
position: relative;
top: -0.3rem;
margin: 0 2rem;
}
}
.avatar {
display: flex;
align-items: center;
justify-content: center;
}
}
.user-typing {
color: @gray-light;
margin: 1.428rem 0;
}
.selected[data-since] {
font-weight: bold;
}
.modal-dialog {
margin: 0 auto;
}
textarea {
resize: none;
}
.since-bar {
display: block;
padding: 1rem 0;
text-align: center;
}
.controlsToggle {
margin-right: 10px;
}
}
.expanded-chat {
h1 {
margin: 0px;
padding-bottom: 20px;
}
.chat-content {
padding-top: 10px;
}
.input-group {
z-index: 1;
}
}
[component="chat/manage-modal"] {
.list-group-item .avatar {
margin-right: 1em;
}
div+span {
margin: -4px;
}
}
/* Mobile handling of chat page */
@media (max-width: @screen-sm) {
.page-user-chats {
padding-bottom: 0;
[component="chat/nav-wrapper"][data-loaded="1"] {
display: none;
}
[component="chat/nav-wrapper"][data-loaded="0"] + [component="chat/main-wrapper"] {
display: none;
}
.chats-full, .chat-modal {
height: calc(100vh - var(--panel-offset));
}
[component="chat/messages"] {
width: calc(100vw);
}
}
[data-action="pop-out"] {
display: none;
}
}
/* Mobile handling of chat modal */
@media (max-width: @screen-sm-max) {
.chat-modal {
z-index: @zindex-popover + 10;
}
}