Files

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;
}
}
}