perling/public/assets/sass/components/_chat.scss

264 lines
4.8 KiB
SCSS

.chat-wrapper {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
.chat-sidebar {
width: 100%;
@include media(md) {
width: 300px;
}
@include media(xl) {
width: 390px;
}
&.profile-setting {
padding: rem(24px);
}
}
.chat-main {
width: 100%;
margin-top: rem(30px);
@include media(md) {
width: calc(100% - (300px + 24px));
margin-top: 0;
}
@include media(xl) {
width: calc(100% - (390px + 24px));
}
}
}
.chat-main-profile {
display: flex;
flex-flow: column;
align-items: center;
margin-top: rem(30px);
gap: rem(15px);
.img {
position: relative;
width: 80px;
height: 80px;
&::after {
position: absolute;
content: '';
bottom: 4px;
inset-inline-end: 9px;
width: 12px;
height: 12px;
background-color: var(--success-main);
@include border-radius(50%);
}
img {
width: 80px;
height: 80px;
object-fit: cover;
-o-object-fit: cover;
@include border-radius(50%);
}
}
}
.chat-search {
padding: 0 rem(24px);
border-top: 1px solid var(--neutral-200);
border-bottom: 1px solid var(--neutral-200);
display: flex;
align-items: center;
.icon {
font-size: rem(22px);
line-height: 1;
padding-top: 5px;
}
input {
flex-grow: 1;
border: none;
height: 48px;
background-color: transparent;
font-size: rem(18px);
padding-inline-start: rem(10px);
}
}
.chat-all-list {
max-height: 534px;
overflow-y: auto;
@include media(xl) {
max-height: 400px;
}
@include media(xxl) {
max-height: 534px;
}
&::-webkit-scrollbar {
width: 10px;
background-color: var(--white);
}
&::-webkit-scrollbar-thumb {
background-color: var(--bg-color);
border: 3px solid var(--white);
}
}
.chat-sidebar-single {
display: flex;
flex-wrap: wrap;
align-items: center;
padding: rem(11px) rem(24px);
cursor: pointer;
&.top-profile {
padding: rem(24px) rem(24px) rem(16px) rem(24px);
}
&.active {
.img {
&::after {
background-color: var(--success-main);
}
}
}
.img {
position: relative;
&::after {
position: absolute;
content: '';
bottom: 1px;
right: 2px;
width: 8px;
height: 8px;
background-color: var(--neutral-400);
@include border-radius(50%);
}
img {
width: 40px;
height: 40px;
object-fit: cover;
-o-object-fit: cover;
}
}
.info {
flex-grow: 1;
padding: 0 rem(12px);
}
.action {
margin-inline-start: auto;
}
}
.chat-main {
display: flex;
flex-flow: column;
.chat-sidebar-single {
padding: rem(20px) rem(24px);
border-bottom: 1px solid var(--input-form-light);
}
.chat-empty {
flex-grow: 1;
padding: rem(24px);
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
}
}
.chat-message-list {
flex-grow: 1;
min-height: 350px;
max-height: 511px;
padding: rem(24px);
display: flex;
flex-flow: column;
overflow-y: auto;
@include media(xl) {
max-height: 375px;
}
@include media(xxl) {
max-height: 511px;
}
&::-webkit-scrollbar {
width: 10px;
background-color: var(--white);
}
&::-webkit-scrollbar-thumb {
background-color: var(--bg-color);
border: 3px solid var(--white);
}
}
.chat-single-message + .chat-single-message {
margin-top: rem(32px);
}
.chat-single-message {
display: flex;
flex-wrap: wrap;
align-items: flex-end;
justify-content: space-between;
width: 100%;
max-width: 100%;
@include media(sm) {
width: 90%;
}
@include media(lg) {
width: 60%;
}
&.left {
.chat-message-content {
background-color: var(--input-bg);
@include border-radius(16px 16px 16px 0);
p {
color: var(--text-primary-light);
&.chat-time {
color: var(--text-secondary-light);
text-align: end;
}
}
}
}
&.right {
margin-inline-start: auto;
.chat-message-content {
width: 100%;
background-color: var(--brand);
@include border-radius(16px 16px 0 16px);
p {
color: #fff;
&.chat-time {
color: #fff;
}
}
}
}
.chat-message-content {
width: calc(100% - 56px);
padding: rem(20px);
.chat-time {
font-size: rem(12px);
}
}
}
.chat-message-box {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: rem(15px);
padding: rem(16px) rem(24px);
border-top: 1px solid var(--neutral-300);
input {
flex-grow: 1;
}
&-action {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: rem(20px);
}
}
.list-style {
list-style: outside;
list-style-position: inside;
}
.ai-chat-list {
max-height: 644px;
overflow-y: auto;
}