Chatwoot/app/javascript/dashboard/assets/scss/widgets/_conversation-view.scss
2021-05-20 13:51:46 +05:30

373 lines
6.5 KiB
SCSS

@mixin bubble-with-types {
@include padding($space-small $space-normal);
@include margin($zero);
background: $color-woot;
border-radius: $space-one;
color: var(--white);
font-size: $font-size-small;
font-weight: $font-weight-normal;
position: relative;
.message-text__wrap {
position: relative;
.link {
color: var(--white);
text-decoration: underline;
}
}
.image {
cursor: pointer;
position: relative;
.modal-container {
text-align: center;
}
.modal-image {
max-width: 85%;
}
&::before {
background-image: linear-gradient(-180deg, transparent 3%, $color-heading 130%);
bottom: 0;
content: '';
height: 20%;
left: 0;
opacity: .8;
position: absolute;
width: 100%;
}
}
}
.conversations-list-wrap {
@include flex;
flex-direction: column;
.load-more-conversations {
font-size: $font-size-small;
margin: 0;
padding: $space-normal;
width: 100%;
}
.end-of-list-text {
padding: $space-normal;
}
.conversations-list {
@include flex-weight(1);
@include scroll-on-hover;
}
.chat-list__top {
@include flex;
@include padding($zero $zero $space-micro $zero);
align-items: center;
justify-content: space-between;
.page-title {
margin-bottom: $zero;
margin-left: $space-normal;
}
.status--filter {
@include padding($zero null $zero $space-normal);
@include margin($space-smaller $space-slab $zero $zero);
background-color: $color-background-light;
border: 1px solid $color-border;
float: right;
font-size: $font-size-mini;
height: $space-medium;
width: auto;
}
}
.content-box {
text-align: center;
}
}
.conversation-panel {
@include flex;
@include flex-weight(1);
@include margin($zero);
flex-direction: column;
height: 100%;
overflow-y: auto;
padding-bottom: var(--space-normal);
position: relative;
}
.conversation-panel>li {
@include flex;
@include flex-shrink;
@include margin($zero $zero $space-micro);
position: relative;
&:first-child {
margin-top: auto;
}
&:last-child {
margin-bottom: $space-small;
}
&.unread--toast {
span {
@include elegant-card;
@include round-corner;
background: $color-woot;
color: var(--white);
font-size: $font-size-mini;
font-weight: $font-weight-medium;
margin: $space-one auto;
padding: $space-smaller $space-two;
}
}
.bubble {
@include bubble-with-types;
text-align: left;
word-wrap: break-word;
.aplayer {
box-shadow: none;
font-family: inherit;
}
}
&.left {
.bubble {
@include border-normal;
background: $white;
border-bottom-left-radius: $space-smaller;
border-top-left-radius: $space-smaller;
color: $color-body;
margin-right: auto;
word-break: break-word;
&.is-image {
border-radius: var(--border-radius-large);
}
.link {
color: $color-primary-dark;
}
.file {
.text-block-title {
color: $color-body;
}
.icon-wrap {
color: $color-woot;
}
.download {
color: $color-primary-dark;
}
}
}
+.right {
margin-top: $space-one;
.bubble {
border-top-right-radius: $space-one;
}
}
}
&.right {
@include flex-align(right, null);
.wrap {
margin-right: $space-normal;
text-align: right;
}
.bubble {
border-bottom-right-radius: $space-smaller;
border-top-right-radius: $space-smaller;
margin-left: auto;
word-break: break-word;
&.is-private {
background: lighten($warning-color, 32%);
border: 1px solid lighten($warning-color, 15%);
color: $color-heading;
position: relative;
&::before {
bottom: 0;
color: $medium-gray;
position: absolute;
right: $space-one;
top: $space-smaller + $space-micro;
}
}
&.is-image {
border-radius: var(--border-radius-large);
}
}
+.left {
margin-top: $space-one;
.bubble {
border-top-left-radius: $space-one;
}
}
}
&.center {
justify-content: center;
}
.wrap {
@include margin($zero $space-normal);
--bubble-max-width: 49.6rem;
max-width: Min(var(--bubble-max-width), 85%);
.sender--name {
font-size: $font-size-mini;
margin-bottom: $space-smaller;
}
}
.sender--thumbnail {
@include round-corner();
height: $space-slab;
margin-right: $space-one;
margin-top: $space-micro;
width: $space-slab;
}
.activity-wrap {
background: var(--s-50);
border: 1px solid var(--s-100);
border-radius: var(--border-radius-medium);
display: flex;
font-size: var(--font-size-small);
justify-content: center;
margin: var(--space-small) var(--space-normal);
padding: var(--space-small) var(--space-normal);
.is-text {
display: inline-block;
text-align: start;
@include breakpoint(xxxlarge up) {
display: flex;
}
}
}
}
.activity-wrap .message-text__wrap {
.text-content p {
margin-bottom: 0;
}
}
.conversation-footer {
display: flex;
flex-direction: column;
position: relative;
}
.typing-indicator-wrap {
align-items: center;
display: flex;
height: 0;
position: absolute;
top: -$space-large;
width: 100%;
.typing-indicator {
@include elegant-card;
@include round-corner;
background: var(--white);
color: $color-light-gray;
font-size: $font-size-mini;
font-weight: $font-weight-bold;
margin: $space-one auto;
padding: $space-small $space-normal $space-small $space-two;
.gif {
margin-left: $space-small;
width: $space-medium;
}
}
}
.left .bubble .text-content {
h1,
h2,
h3,
h4,
h5,
h6 {
color: var(--color-body);
}
a {
color: var(--color-woot);
text-decoration: underline;
}
blockquote {
border-left-color: var(--s-300);
p {
color: var(--s-300);
}
}
p:last-child {
margin-bottom: 0;
}
}
.right .bubble .text-content {
h1,
h2,
h3,
h4,
h5,
h6 {
color: var(--white);
}
a {
color: var(--white);
text-decoration: underline;
}
blockquote {
border-left-color: var(--w-100);
p {
color: var(--w-100);
}
}
pre code {
background: var(--color-background);
}
p:last-child {
margin-bottom: 0;
}
}