377 lines
10 KiB
SCSS
377 lines
10 KiB
SCSS
/* App Chat
|
|
******************************************************************************* */
|
|
|
|
@import "../_bootstrap-extended/include";
|
|
@import "../_components/include";
|
|
|
|
// Variables
|
|
$chat-app-height: calc(100vh - 10.9rem);
|
|
$chat-app-height-with-no-navbar: calc(100vh - 6.5rem);
|
|
$chat-app-horizontal-height-diff: 3rem;
|
|
|
|
$chat-contact-width: 21rem;
|
|
|
|
$chat-contact-list-padding-x: .75rem;
|
|
$chat-contact-list-padding-y: .528rem;
|
|
|
|
$chat-contact-list-margin-x: $chat-contact-list-padding-x;
|
|
$chat-contact-list-margin-y: .25rem;
|
|
|
|
$chat-history-padding-x: 1.5rem;
|
|
$chat-history-padding-y: 1.5rem;
|
|
$chat-history-height: calc(100vh - 22rem);
|
|
$chat-history-height-with-no-nabvar: calc(100vh - 17.6rem);
|
|
$chat-history-header-padding-x: $chat-history-padding-x;
|
|
$chat-history-header-padding-y: 1.015rem;
|
|
$chat-history-footer-padding: .5rem;
|
|
$chat-history-footer-margin: $chat-history-padding-x;
|
|
|
|
$chat-message-text-padding-x: 1rem;
|
|
$chat-message-text-padding-y: .543rem;
|
|
$chat-message-text-border-radius: $border-radius;
|
|
$chat-list-margin: 3rem;
|
|
|
|
/* App Chat Global */
|
|
.app-chat {
|
|
--#{$prefix}chat-bg: #f3f2f5;
|
|
position: relative;
|
|
block-size: $chat-app-height;
|
|
.layout-navbar-hidden & {
|
|
block-size: $chat-app-height-with-no-navbar;
|
|
}
|
|
@include media-breakpoint-up($menu-collapsed-layout-breakpoint) {
|
|
.layout-horizontal & {
|
|
block-size: calc($chat-app-height - $chat-app-horizontal-height-diff);
|
|
}
|
|
}
|
|
|
|
/* Common Styles Of two sidebars */
|
|
.app-sidebar {
|
|
@media (width <= 992px) {
|
|
z-index: 4;
|
|
}
|
|
.sidebar-header {
|
|
position: relative;
|
|
.close-sidebar {
|
|
position: absolute;
|
|
inset-block-start: 1.25rem;
|
|
inset-inline-end: 1.25rem;
|
|
}
|
|
.chat-sidebar-avatar {
|
|
block-size: 84px;
|
|
inline-size: 84px;
|
|
&::after {
|
|
block-size: 16.8px;
|
|
box-shadow: 0 0 0 .25rem var(--#{$prefix}paper-bg);
|
|
inline-size: 16.8px;
|
|
inset-block-end: 6px;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.app-chat-contacts,
|
|
.app-chat-sidebar-left {
|
|
background-color: var(--#{$prefix}paper-bg);
|
|
|
|
.chat-actions {
|
|
.chat-search-input {
|
|
background-color: var(--#{$prefix}body-bg);
|
|
}
|
|
}
|
|
|
|
.sidebar-body {
|
|
.chat-contact-list {
|
|
li {
|
|
&.active {
|
|
background-color: var(--#{$prefix}primary);
|
|
box-shadow: 0 .125rem .25rem 0 rgba(var(--#{$prefix}primary-rgb), .4);
|
|
color: var(--#{$prefix}white);
|
|
h6,
|
|
.chat-contact-list-item-time {
|
|
color: var(--#{$prefix}white);
|
|
}
|
|
}
|
|
.chat-contact-list-item-time {
|
|
color: var(--#{$prefix}secondary-color);
|
|
}
|
|
}
|
|
}
|
|
.chat-sidebar-avatar {
|
|
block-size: 84px;
|
|
inline-size: 84px;
|
|
&::after {
|
|
block-size: 16.8px;
|
|
inline-size: 16.8px;
|
|
inset-block-end: 6px;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.app-chat-contacts {
|
|
position: absolute;
|
|
flex-basis: $chat-contact-width;
|
|
block-size: $chat-app-height;
|
|
inline-size: $chat-contact-width;
|
|
inset-inline-start: calc(-#{$chat-contact-width} - 1rem);
|
|
transition: all .25s ease;
|
|
.sidebar-header {
|
|
// block-size: 4.75rem;
|
|
}
|
|
.layout-navbar-hidden & {
|
|
block-size: $chat-app-height-with-no-navbar;
|
|
}
|
|
@include media-breakpoint-up($menu-collapsed-layout-breakpoint) {
|
|
.layout-horizontal & {
|
|
block-size: calc($chat-app-height - $chat-app-horizontal-height-diff);
|
|
}
|
|
}
|
|
|
|
@media (width >= 992px) {
|
|
position: static;
|
|
}
|
|
|
|
&.show {
|
|
inset-inline-start: 0;
|
|
}
|
|
|
|
.sidebar-body {
|
|
block-size: calc(#{$chat-app-height} - 4.7rem);
|
|
.layout-navbar-hidden & {
|
|
block-size: calc(#{$chat-app-height-with-no-navbar} - 4.7rem);
|
|
}
|
|
@include media-breakpoint-up($menu-collapsed-layout-breakpoint) {
|
|
.layout-horizontal & {
|
|
block-size: calc(#{$chat-app-height} - 4.7rem - #{$chat-app-horizontal-height-diff});
|
|
}
|
|
}
|
|
|
|
.chat-contact-list {
|
|
li.chat-contact-list-item {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
@include border-radius($chat-message-text-border-radius);
|
|
cursor: pointer;
|
|
margin-block: $chat-contact-list-margin-y;
|
|
margin-inline: $chat-contact-list-margin-x;
|
|
padding-block: $chat-contact-list-padding-y;
|
|
padding-inline: $chat-contact-list-padding-x;
|
|
a {
|
|
inline-size: 100%;
|
|
}
|
|
.chat-contact-info {
|
|
min-inline-size: 0;
|
|
.chat-contact-name {
|
|
line-height: 1.5;
|
|
}
|
|
}
|
|
small {
|
|
white-space: nowrap;
|
|
}
|
|
}
|
|
li.chat-contact-list-item-title {
|
|
padding-block: $chat-contact-list-padding-y ($chat-contact-list-padding-y * .5);
|
|
padding-inline: ($chat-contact-list-padding-y * 1.9);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.app-chat-sidebar-left,
|
|
.app-chat-sidebar-right {
|
|
position: absolute;
|
|
z-index: 5;
|
|
block-size: $chat-app-height;
|
|
inline-size: $chat-contact-width;
|
|
inset-block-start: 0;
|
|
opacity: 0;
|
|
transition: all .25s ease;
|
|
.layout-navbar-hidden & {
|
|
block-size: $chat-app-height-with-no-navbar;
|
|
}
|
|
@include media-breakpoint-up($menu-collapsed-layout-breakpoint) {
|
|
.layout-horizontal & {
|
|
block-size: calc($chat-app-height - $chat-app-horizontal-height-diff);
|
|
}
|
|
}
|
|
|
|
&.show {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.app-chat-sidebar-left {
|
|
inset-inline-start: calc(-#{$chat-contact-width} - 1rem);
|
|
&.show {
|
|
inset-inline-start: 0;
|
|
}
|
|
.sidebar-body {
|
|
block-size: calc(#{$chat-app-height} - 12.5rem);
|
|
.layout-navbar-hidden & {
|
|
block-size: calc(#{$chat-app-height-with-no-navbar} - 12.5rem);
|
|
}
|
|
@include media-breakpoint-up($menu-collapsed-layout-breakpoint) {
|
|
.layout-horizontal & {
|
|
block-size: calc(#{$chat-app-height} - 12.3rem - #{$chat-app-horizontal-height-diff});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.app-chat-conversation {
|
|
background-color: var(--#{$prefix}chat-bg);
|
|
block-size: $chat-app-height;
|
|
.layout-navbar-hidden & {
|
|
block-size: $chat-app-height-with-no-navbar;
|
|
}
|
|
@include media-breakpoint-up($menu-collapsed-layout-breakpoint) {
|
|
.layout-horizontal & {
|
|
block-size: calc($chat-app-height - $chat-app-horizontal-height-diff);
|
|
}
|
|
}
|
|
.app-chat-conversation-btn {
|
|
display: none;
|
|
@media (width <= 992px) {
|
|
display: block;
|
|
}
|
|
}
|
|
}
|
|
|
|
.app-chat-history {
|
|
position: relative;
|
|
background-color: var(--#{$prefix}chat-bg);
|
|
block-size: $chat-app-height;
|
|
transition: all .25s ease;
|
|
.layout-navbar-hidden & {
|
|
block-size: $chat-app-height-with-no-navbar;
|
|
}
|
|
@include media-breakpoint-up($menu-collapsed-layout-breakpoint) {
|
|
.layout-horizontal & {
|
|
block-size: calc($chat-app-height - $chat-app-horizontal-height-diff);
|
|
}
|
|
}
|
|
|
|
.chat-history-wrapper {
|
|
background-color: var(--#{$prefix}chat-bg);
|
|
}
|
|
|
|
.chat-history-header,
|
|
.chat-history-footer {
|
|
background-color: var(--#{$prefix}paper-bg);
|
|
}
|
|
|
|
.chat-history-header {
|
|
margin-block-start: -1px;
|
|
padding-block: $chat-history-header-padding-y;
|
|
padding-inline: $chat-history-header-padding-x;
|
|
}
|
|
|
|
.chat-history-body {
|
|
overflow: hidden;
|
|
block-size: $chat-history-height;
|
|
padding-block: $chat-history-padding-y;
|
|
padding-inline: $chat-history-padding-x;
|
|
.layout-navbar-hidden & {
|
|
block-size: $chat-history-height-with-no-nabvar;
|
|
}
|
|
@include media-breakpoint-up($menu-collapsed-layout-breakpoint) {
|
|
.layout-horizontal & {
|
|
block-size: calc($chat-history-height - $chat-app-horizontal-height-diff);
|
|
}
|
|
}
|
|
|
|
.chat-history {
|
|
.chat-message {
|
|
display: flex;
|
|
justify-content: flex-start;
|
|
|
|
.chat-message-text {
|
|
@include border-radius($chat-message-text-border-radius);
|
|
background-color: var(--#{$prefix}paper-bg);
|
|
box-shadow: var(--#{$prefix}box-shadow-xs);
|
|
padding-block: $chat-message-text-padding-y;
|
|
padding-inline: $chat-message-text-padding-x;
|
|
}
|
|
|
|
&.chat-message-right {
|
|
justify-content: flex-end;
|
|
|
|
.chat-message-text {
|
|
background-color: var(--#{$prefix}primary);
|
|
border-start-end-radius: 0;
|
|
color: var(--#{$prefix}white);
|
|
}
|
|
}
|
|
&:not(.chat-message-right) .chat-message-text {
|
|
border-start-start-radius: 0;
|
|
}
|
|
|
|
.thumbnail {
|
|
cursor: zoom-in;
|
|
}
|
|
|
|
&:not(:last-child) {
|
|
margin-block-end: $chat-list-margin;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.chat-history-footer {
|
|
padding: $chat-history-footer-padding;
|
|
@include border-radius($chat-message-text-border-radius);
|
|
margin: $chat-history-footer-margin;
|
|
box-shadow: var(--#{$prefix}box-shadow-xs);
|
|
padding-inline-start: 2px;
|
|
.form-control.message-input {
|
|
padding-block: calc($input-padding-y - $input-border-width);
|
|
padding-inline: calc($input-padding-x - $input-border-width);
|
|
}
|
|
}
|
|
}
|
|
|
|
.app-chat-sidebar-right {
|
|
background-color: var(--#{$prefix}paper-bg);
|
|
box-shadow: 16px 1px 45px 3px rgba($black, .5);
|
|
inset-inline-end: calc(-#{$chat-contact-width} - 1rem);
|
|
&.show {
|
|
inset-inline-end: 0;
|
|
}
|
|
.sidebar-body {
|
|
block-size: calc(#{$chat-app-height} - 12.3rem);
|
|
.layout-navbar-hidden & {
|
|
block-size: calc(#{$chat-app-height-with-no-navbar} - 12.3rem);
|
|
}
|
|
@include media-breakpoint-up($menu-collapsed-layout-breakpoint) {
|
|
.layout-horizontal & {
|
|
block-size: calc(#{$chat-app-height} - 12.1rem - #{$chat-app-horizontal-height-diff});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* Small screen media */
|
|
@media (width <= 576px) {
|
|
.app-chat {
|
|
.app-chat-sidebar-right,
|
|
.app-chat-sidebar-left,
|
|
.app-chat-contacts {
|
|
&.show {
|
|
inline-size: 100%;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* Dark Theme */
|
|
|
|
@if $enable-dark-mode {
|
|
@include color-mode(dark) {
|
|
.app-chat {
|
|
--#{$prefix}chat-bg: #202534;
|
|
}
|
|
}
|
|
}
|