UNPKG

29.6 kBSCSSView Raw
1.str-chat__li {
2 display: block;
3 position: relative;
4
5 /*
6 min-width in a flex context: While the default min-width value is 0, for flex items it is auto.
7 This can make block elements take up much more space than desired, resulting in overflow.
8 */
9 .str-chat__message-inner {
10 min-width: 0;
11
12 .str-chat__translation-notice {
13 button {
14 cursor: pointer;
15 padding: 0.25rem 0;
16 margin: 0;
17 font-size: 14px;
18 line-height: 16px;
19 color: var(--lighten-grey);
20 border: none;
21 background: none;
22
23 &:active,
24 &:hover {
25 background: var(--grey-whisper);
26 }
27 }
28 }
29 }
30
31 .quoted-message {
32 display: flex;
33 align-items: flex-end;
34 margin-bottom: var(--xxs-m);
35 /** clicking on the quoted message navigates to its original location in the message list*/
36 cursor: pointer;
37
38 &-inner {
39 display: flex;
40 text-align: start;
41 align-items: flex-end;
42 background: var(--grey-whisper);
43 border-radius: var(--border-radius-md) var(--border-radius-md) var(--border-radius-md) 0;
44 max-width: 408px;
45 padding: var(--xxs-p) var(--xs-p);
46
47 .str-chat__message-attachment-card.str-chat__message-attachment-card--image {
48 border: none;
49 border-radius: var(--border-radius-md);
50 }
51
52 .str-chat__message-attachment {
53 &--image:first-of-type {
54 max-height: 48px;
55 max-width: 48px;
56 border-radius: var(--border-radius-md);
57 }
58
59 img {
60 border-radius: var(--border-radius-md);
61 }
62
63 &--file:first-of-type {
64 background: var(--white);
65 border-radius: var(--border-radius-md);
66 border-bottom: 1px solid var(--grey-whisper);
67 min-width: 33%;
68 }
69 }
70
71 :nth-child(2) {
72 margin-left: var(--xs-m);
73 }
74 }
75
76 &.mine {
77 .quoted-message-inner {
78 background: var(--white-snow);
79 }
80 }
81 }
82
83 /* group styling */
84 &--top,
85 &--single {
86 margin: 24px 0 0;
87
88 .str-chat__message {
89 &-attachment--img,
90 &-attachment-card,
91 .str-chat__gallery {
92 border-radius: var(--border-radius) var(--border-radius) var(--border-radius)
93 calc(var(--border-radius-sm) / 2);
94 }
95
96 &.str-chat__message--has-text.str-chat__message--has-attachment {
97 .str-chat__message-attachment--img,
98 .str-chat__message-attachment-card {
99 border-radius: var(--border-radius) var(--border-radius) var(--border-radius)
100 calc(var(--border-radius-sm) / 2);
101 }
102 }
103
104 &--me {
105 text-align: right; // for inline(-flex/block) elements, e.g. gallery
106 .str-chat__message {
107 &-attachment--img,
108 &-attachment-card {
109 border-radius: var(--border-radius) var(--border-radius)
110 calc(var(--border-radius-sm) / 2) var(--border-radius);
111 }
112 }
113
114 &.str-chat__message--has-text.str-chat__message--has-attachment {
115 .str-chat__message-attachment--img,
116 .str-chat__message-attachment-card {
117 border-radius: var(--border-radius) var(--border-radius)
118 calc(var(--border-radius-sm) / 2) var(--border-radius);
119 }
120 }
121
122 .str-chat__gallery {
123 border-radius: var(--border-radius) var(--border-radius) calc(var(--border-radius-sm) / 2)
124 var(--border-radius);
125 }
126
127 &.str-chat__message--has-text {
128 .str-chat__gallery {
129 border-radius: var(--border-radius) var(--border-radius)
130 calc(var(--border-radius-sm) / 2) var(--border-radius);
131 }
132 }
133 }
134 }
135 }
136
137 &--middle {
138 margin: 0;
139
140 .str-chat__message {
141 &-attachment--img,
142 &-attachment-card,
143 .str-chat__gallery {
144 border-radius: calc(var(--border-radius-sm) / 2) var(--border-radius) var(--border-radius)
145 calc(var(--border-radius-sm) / 2);
146 }
147
148 &.str-chat__message--has-text.str-chat__message--has-attachment {
149 .str-chat__message-attachment--img,
150 .str-chat__message-attachment-card,
151 .str-chat__gallery {
152 border-radius: calc(var(--border-radius-sm) / 2) var(--border-radius) var(--border-radius)
153 calc(var(--border-radius-sm) / 2);
154 }
155 }
156
157 &--me {
158 .str-chat__message {
159 &-attachment--img,
160 &-attachment-card,
161 .str-chat__gallery {
162 border-radius: var(--border-radius) calc(var(--border-radius-sm) / 2)
163 calc(var(--border-radius-sm) / 2) var(--border-radius);
164 }
165 }
166
167 &.str-chat__message--has-text.str-chat__message--has-attachment {
168 .str-chat__message-attachment--img,
169 .str-chat__message-attachment-card,
170 .str-chat__gallery {
171 border-top-left-radius: calc(var(--border-radius-sm) / 2);
172 }
173 }
174 }
175 }
176 }
177
178 &--bottom {
179 margin: 0 0 24px;
180
181 .str-chat__message {
182 &-attachment--img,
183 &-attachment-card,
184 .str-chat__gallery {
185 border-radius: calc(var(--border-radius-sm) / 2) var(--border-radius) var(--border-radius)
186 calc(var(--border-radius-sm) / 2);
187 }
188
189 &.str-chat__message--has-text.str-chat__message--has-attachment {
190 .str-chat__message-attachment--img,
191 .str-chat__message-attachment-card,
192 .str-chat__gallery {
193 border-radius: calc(var(--border-radius-sm) / 2) var(--border-radius) var(--border-radius)
194 calc(var(--border-radius-sm) / 2);
195 }
196 }
197
198 &--me {
199 .str-chat__message {
200 &-attachment--img,
201 &-attachment-card,
202 .str-chat__gallery {
203 border-radius: var(--border-radius) calc(var(--border-radius-sm) / 2)
204 calc(var(--border-radius-sm) / 2) var(--border-radius);
205 }
206 }
207
208 &.str-chat__message--has-text.str-chat__message--has-attachment {
209 .str-chat__message-attachment--img,
210 .str-chat__message-attachment-card,
211 .str-chat__gallery {
212 border-top-left-radius: calc(var(--border-radius-sm) / 2);
213 }
214 }
215 }
216 }
217 }
218
219 &--single {
220 margin-bottom: var(--md-m);
221 }
222
223 &--top,
224 &--middle {
225 .str-chat__message {
226 &-data {
227 display: none;
228 }
229 }
230 }
231
232 &--top {
233 .str-chat__message {
234 &-text {
235 &-inner {
236 border-radius: var(--border-radius) var(--border-radius) var(--border-radius)
237 calc(var(--border-radius-sm) / 2);
238 }
239 }
240
241 &--me {
242 .str-chat__message-text {
243 &-inner {
244 border-radius: var(--border-radius) var(--border-radius)
245 calc(var(--border-radius-sm) / 2) var(--border-radius);
246 }
247 }
248 }
249 }
250 }
251
252 &--single {
253 .str-chat__message {
254 &-text {
255 &-inner {
256 border-radius: var(--border-radius) var(--border-radius) var(--border-radius)
257 calc(var(--border-radius-sm) / 2);
258
259 &--has-attachment {
260 border-radius: calc(var(--border-radius-sm) / 2) var(--border-radius)
261 var(--border-radius) calc(var(--border-radius-sm) / 2);
262 }
263 }
264 }
265
266 &--me {
267 .str-chat__message-text {
268 &-inner {
269 border-radius: var(--border-radius) var(--border-radius)
270 calc(var(--border-radius-sm) / 2) var(--border-radius);
271
272 &--has-attachment {
273 border-radius: var(--border-radius) calc(var(--border-radius-sm) / 2)
274 calc(var(--border-radius-sm) / 2) var(--border-radius);
275 }
276 }
277 }
278 }
279 }
280 }
281
282 &--bottom,
283 &--middle {
284 .str-chat__message {
285 &-text {
286 &-inner {
287 border-radius: calc(var(--border-radius-sm) / 2) var(--border-radius) var(--border-radius)
288 calc(var(--border-radius-sm) / 2);
289 }
290 }
291
292 &--me {
293 .str-chat__message-text {
294 &-inner {
295 border-radius: var(--border-radius) calc(var(--border-radius-sm) / 2)
296 calc(var(--border-radius-sm) / 2) var(--border-radius);
297
298 &--has-attachment {
299 margin: 0;
300 }
301 }
302 }
303
304 .str-chat__message-attachment-card {
305 margin: 0;
306 padding: 0;
307 border-radius: var(--border-radius) calc(var(--border-radius-sm) / 2)
308 calc(var(--border-radius-sm) / 2) var(--border-radius);
309 }
310 }
311 }
312 }
313}
314
315.str-chat__message,
316.str-chat__message-simple {
317 display: inline-flex;
318 justify-content: flex-start;
319 align-items: flex-end;
320 padding: 0;
321 position: relative;
322 margin: calc(var(--xxs-m) / 2) 0;
323 width: 100%;
324 transition: background-color 0.5s ease-out;
325
326 &--system {
327 text-align: center;
328 align-items: center;
329 width: 100%;
330 flex-direction: column;
331 padding: var(--xl-p);
332 box-sizing: border-box;
333 font-size: var(--xs-font);
334
335 &__text {
336 display: flex;
337 align-items: center;
338 width: 100%;
339
340 p {
341 margin: 0 24px;
342 color: var(--grey);
343 text-transform: uppercase;
344 font-weight: var(--font-weight-bold);
345 }
346 }
347
348 &__line {
349 flex: 1;
350 height: 1px;
351 width: 100%;
352 background-color: var(--overlay);
353 }
354
355 &__date {
356 margin-top: 4px;
357 text-transform: uppercase;
358 color: var(--grey);
359 }
360 }
361
362 &-inner {
363 position: relative;
364
365 @media screen and (min-width: 420px) {
366 margin-right: 88px;
367 margin-left: unset;
368 }
369
370 > .str-chat__message-simple__actions {
371 position: absolute;
372 top: 5px;
373 left: calc(100% + 8px);
374 }
375 }
376
377 &-attachment-container {
378 display: flex;
379 flex-direction: column;
380 }
381
382 &-text {
383 display: inline-flex;
384 justify-content: flex-start;
385 align-items: center;
386 padding: 0;
387 position: relative;
388
389 &-inner {
390 position: relative;
391 flex: 1;
392 display: block;
393 min-height: 32px;
394 padding: var(--xxs-p) var(--xs-p);
395 font-size: var(--lg-font);
396 color: var(--black);
397 border-radius: var(--border-radius) var(--border-radius) var(--border-radius) 0;
398 background: var(--white-snow);
399 border: 1px solid var(--border);
400 margin-left: 0; /* set spacing when unfocused */
401
402 // Fixes emoji display in Chrome https://bugs.chromium.org/p/chromium/issues/detail?id=596223
403 .str-chat__emoji-display-fix {
404 display: inline-block;
405 width: 1.25em;
406 }
407
408 p {
409 /* Make sure really long urls and words don't break out.*/
410 word-wrap: break-word;
411 word-break: break-word;
412
413 /* Adds a hyphen where the word breaks, if supported (No Blink) */
414 -ms-hyphens: auto;
415 -moz-hyphens: auto;
416 -webkit-hyphens: auto;
417 hyphens: auto;
418 }
419
420 /* if text consists is focused */
421 &--focused {
422 background: var(--primary-color);
423 border: 1px solid var(--primary-color);
424 margin-right: 0;
425 margin-left: 0; /* set spacing when focused */
426 }
427
428 &--has-attachment {
429 border-radius: calc(var(--border-radius-sm) / 2) var(--border-radius) var(--border-radius)
430 calc(var(--border-radius-sm) / 2);
431 }
432
433 /* if text consists of just one emoji */
434 &--is-emoji {
435 background: transparent;
436 border: 1px solid transparent;
437 font-size: var(--xxxl-font);
438
439 padding-left: 0;
440 padding-right: 0;
441 }
442 }
443 }
444
445 &-attachment {
446 --attachment-max-width: 480px;
447
448 &--img {
449 width: 100%;
450 display: block;
451 cursor: -moz-zoom-in;
452 cursor: -webkit-zoom-in;
453 cursor: zoom-in;
454 }
455 }
456
457 &-data {
458 margin-top: var(--xxs-m);
459 width: 100%;
460 font-size: var(--xs-font);
461 color: var(--overlay-dark);
462 position: absolute;
463 white-space: nowrap;
464 }
465
466 &-name {
467 font-weight: var(--font-weight-bold);
468 margin-right: var(--xxs-m);
469 }
470
471 p {
472 margin: 0;
473 white-space: pre-line;
474 line-height: 20px;
475
476 &:not(:first-of-type) {
477 margin: var(--sm-m) 0 0;
478 }
479 }
480
481 /* me */
482 &--me {
483 display: inline-flex;
484 margin: var(--xxs-m) 0;
485 justify-content: flex-end;
486
487 .str-chat__message {
488 &-text {
489 display: flex;
490 justify-content: flex-end;
491 }
492
493 &-attachment-container {
494 display: flex;
495 flex-direction: column;
496 align-items: flex-end;
497 }
498
499 &-inner {
500 justify-content: flex-end;
501 align-items: flex-end;
502 @media screen and (min-width: 420px) {
503 margin-right: unset;
504 margin-left: 88px;
505 }
506
507 > .str-chat__message-simple__actions {
508 position: absolute;
509 top: 5px;
510 left: unset;
511 right: calc(100% + 8px);
512 }
513 }
514
515 &-text-inner {
516 flex: initial;
517 background: var(--grey-whisper);
518 border-color: transparent;
519 text-align: right;
520 border-radius: var(--border-radius) var(--border-radius) calc(var(--border-radius-sm) / 2)
521 var(--border-radius);
522 margin-right: 0; /* set spacing when unfocused */
523
524 &--focused {
525 background: var(--primary-color);
526 border: 1px solid var(--primary-color);
527 margin-left: 0;
528 margin-right: 0; /* set spacing when focused */
529 }
530
531 &--has-attachment {
532 border-radius: var(--border-radius) calc(var(--border-radius-sm) / 2)
533 calc(var(--border-radius-sm) / 2) var(--border-radius);
534 }
535
536 &--is-emoji {
537 background: transparent;
538 border: 1px solid transparent;
539 font-size: var(--xxxl-font);
540 padding-left: 0;
541 padding-right: 0;
542
543 p {
544 line-height: 48px;
545 }
546 }
547 }
548
549 &-attachment {
550 &--img {
551 width: 100%;
552 // CDN resize requires max-width to be set on this element
553 max-width: inherit;
554 display: block;
555 object-fit: cover;
556 border: none;
557 }
558 }
559
560 &-data {
561 text-align: right;
562 right: 0;
563 width: fit-content;
564 }
565 }
566 }
567
568 &--with-reactions {
569 margin-top: var(--md-m);
570 }
571
572 &--highlighted {
573 transition: background-color 0.1s ease-out;
574 background-color: var(--highlight);
575 }
576
577 &-link {
578 color: var(--primary-color);
579 font-weight: var(--font-weight-bold);
580 text-decoration: none;
581 }
582
583 &-mention {
584 font-weight: var(--font-weight-bold);
585 }
586
587 &--inner {
588 display: flex;
589 flex-direction: column;
590 align-items: flex-start;
591 }
592
593 .messaging {
594 &.str-chat {
595 .str-chat {
596 &__message,
597 &__message--me {
598 margin: calc(var(--xxs-m) / 2) 0;
599
600 &--with-reactions {
601 margin-top: var(--lg-m);
602 }
603 }
604
605 &__message-attachment--image {
606 margin: calc(var(--xxs-m) / 2) 0;
607 max-width: 480px;
608 }
609
610 &__message-attachment--card {
611 margin: calc(var(--xxs-m) / 2) 0;
612 line-height: normal;
613 }
614
615 &__message-attachment-card {
616 margin: calc(var(--xxs-m) / 2) auto;
617 line-height: normal;
618 background: var(--grey-gainsboro);
619
620 &--title {
621 color: var(--primary-color);
622 }
623
624 &--text {
625 display: none;
626 }
627
628 &--url {
629 text-transform: lowercase;
630 }
631 }
632
633 &__message--deleted {
634 margin: 0 var(--xl-m);
635 }
636
637 &__li {
638 &--middle {
639 .str-chat__message {
640 .str-chat__message-attachment--card,
641 .str-chat__message-attachment--image {
642 border-top-left-radius: calc(var(--border-radius-sm) / 2);
643 }
644 }
645 }
646 }
647
648 /* __li*/
649 }
650 }
651 }
652
653 /* deleted messages */
654 &--deleted {
655 margin: 0 0 0 var(--xl-m);
656 flex-direction: column;
657 align-items: flex-start;
658
659 &-inner {
660 background: var(--grey-whisper);
661 padding: var(--xs-p) var(--sm-p);
662 border-radius: var(--border-radius);
663 font-size: var(--sm-font);
664 color: var(--grey);
665 }
666 }
667
668 &--me {
669 &.str-chat__message--deleted {
670 margin: 0 var(--xl-m) 0 0;
671 align-items: flex-end;
672
673 &-inner {
674 background: var(--white-smoke);
675 padding: var(--xs-p) var(--sm-p);
676 border-radius: var(--border-radius);
677 font-size: var(--sm-font);
678 color: var(--grey);
679 }
680 }
681 }
682
683 /* error messages */
684 &--error,
685 &--failed {
686 font-size: var(--sm-font);
687 padding: var(--xxs-p) 0;
688
689 .str-chat__message-text-inner {
690 background: var(--faded-red);
691 border: 1px solid var(--faded-red);
692 }
693 }
694
695 &--me {
696 &.str-chat__message--error,
697 &.str-chat__message--failed {
698 border-left: initial;
699 margin-right: var(--xl-m);
700 }
701 }
702
703 .str-chat__message-attachment-file--item:hover {
704 background: transparent;
705 }
706
707 // Disable pointer events so that clicking inside quoted message text or attachments doesn't interfere with jump to message
708 .quoted-message-inner {
709 pointer-events: none;
710 }
711}
712
713.str-chat {
714 &__message-simple {
715 font-family: var(--second-font);
716
717 &__actions {
718 display: flex;
719
720 &__action {
721 margin: var(--xxs-m);
722 display: flex;
723 align-items: center;
724 height: 10px;
725 cursor: pointer;
726 background-color: transparent;
727 border: none;
728 padding: 0;
729
730 svg {
731 fill: var(--black);
732 opacity: 0.5;
733 }
734
735 &:hover {
736 svg {
737 opacity: 1;
738 }
739 }
740
741 &--thread,
742 &--options,
743 &--reactions {
744 display: none;
745 }
746
747 &--options {
748 position: relative;
749
750 > button {
751 cursor: pointer;
752 background-color: transparent;
753 border: none;
754 padding: 3px 0;
755 }
756 }
757
758 &--options.str-chat-angular__message-simple__actions__action--options--editing {
759 position: relative;
760 display: flex;
761 }
762 }
763 }
764
765 &:hover {
766 .str-chat__message-simple__actions__action--thread,
767 .str-chat__message-simple__actions__action--reactions,
768 .str-chat__message-simple__actions__action--options {
769 display: flex;
770 }
771
772 .str-chat__message-simple__actions__action--options {
773 button {
774 display: flex;
775 align-items: center;
776 }
777 }
778 }
779
780 &-text {
781 display: flex;
782 justify-content: flex-end;
783 padding: 0;
784 position: relative;
785 }
786
787 &-text-inner {
788 flex: initial;
789 text-align: left;
790 max-width: 460px;
791 word-wrap: break-word;
792 word-break: break-word;
793
794 &.str-chat__message-simple-text-inner--is-emoji {
795 background: transparent;
796
797 p {
798 line-height: 48px;
799 }
800 }
801
802 p {
803 text-align: left;
804 }
805
806 a {
807 color: var(--primary-color);
808 font-weight: var(--font-weight-bold);
809 text-decoration: none;
810
811 &:active,
812 &:focus,
813 &:hover {
814 text-decoration: underline;
815 }
816 }
817
818 blockquote {
819 margin: 0 0 0 var(--xxs-m);
820 font-style: italic;
821 padding-left: var(--md-p);
822 position: relative;
823
824 &::before {
825 font-size: var(--xxl-font);
826 content: '\201C';
827 font-style: italic;
828 position: absolute;
829 opacity: 0.5;
830 top: 2px;
831 left: -5px;
832 }
833 }
834 }
835
836 &--deleted-inner {
837 background: var(--dark-grey);
838 color: var(--white);
839 }
840
841 &--me {
842 .str-chat__message-simple-reply-button {
843 display: flex;
844 justify-content: flex-end;
845
846 .str-chat__message-replies-count-button {
847 display: flex;
848 flex-direction: row-reverse;
849
850 svg {
851 transform: scaleX(-1);
852 margin-left: var(--xxs-m);
853 margin-bottom: var(--xxs-m);
854 margin-right: 0;
855 }
856 }
857 }
858
859 .str-chat__message-simple__actions {
860 justify-content: flex-end;
861 flex-direction: row-reverse;
862 }
863
864 .str-chat__message-attachment {
865 --attachment-max-width: 460px;
866 }
867
868 &-text-inner {
869 &--is-emoji {
870 background-color: transparent;
871 line-height: 32px;
872 }
873 }
874
875 .str-chat__message-simple__actions {
876 order: -1;
877 }
878 }
879 }
880}
881
882.str-chat__simple-message--error-message {
883 text-align: left;
884 text-transform: uppercase;
885 font-size: var(--xs-font);
886 opacity: 0.5;
887}
888
889.str-chat__message-simple-status {
890 margin: var(--xs-m) 0 var(--xs-m) var(--xs-m);
891 order: 3;
892 position: absolute;
893 left: 100%;
894 bottom: 0;
895 line-height: 1;
896 display: flex;
897 justify-content: flex-end;
898 align-items: center;
899 z-index: 1;
900
901 &-number {
902 font-size: var(--xs-font);
903 margin-left: 4px;
904 position: absolute;
905 left: 100%;
906 color: var(--overlay-dark);
907 }
908
909 &-angular {
910 svg {
911 width: 20px;
912 height: 20px;
913
914 path {
915 fill: var(--primary-color);
916 }
917 }
918 }
919
920 > .str-chat__avatar,
921 > .str-chat-angular__avatar-host .str-chat__avatar {
922 align-self: flex-end;
923 margin-right: 0;
924 }
925
926 > .str-chat__tooltip {
927 display: none;
928 max-width: 300px;
929 min-width: 100px;
930 text-align: center;
931 }
932
933 &:hover {
934 > .str-chat__tooltip {
935 display: block;
936 }
937 }
938
939 &::after {
940 position: absolute;
941 bottom: 100%;
942 right: 0;
943 content: ' ';
944 width: 15px;
945 height: 15px;
946 }
947}
948
949.str-chat__message-simple {
950 .str-chat__message-attachment-card {
951 margin: 0;
952 background: var(--white);
953 border: 1px solid var(--border);
954
955 &--content {
956 background: var(--grey-gainsboro);
957 }
958
959 &--text {
960 display: none;
961 }
962 }
963
964 .str-chat__message-attachment--file {
965 margin: 0;
966 background: var(--white);
967 border-color: transparent;
968 border: 1px solid var(--grey-gainsboro);
969 border-radius: var(--border-radius-md);
970
971 .str-chat__message-attachment-file--item {
972 border-color: transparent;
973 padding: 0 var(--xs-p);
974 }
975
976 &:first-of-type:not(.str-chat-angular__message-attachment-file-single) {
977 border-radius: var(--border-radius) var(--border-radius) 0 0;
978 border-bottom: transparent;
979 }
980
981 &:last-of-type:not(.str-chat-angular__message-attachment-file-single) {
982 border-top-color: transparent;
983 border-radius: 0 0 var(--border-radius) calc(var(--border-radius-sm) / 2);
984
985 &:first-of-type {
986 border-bottom: 1px solid var(--grey-gainsboro);
987 border-top: 1px solid var(--grey-gainsboro);
988 border-radius: var(--border-radius) var(--border-radius) var(--border-radius)
989 calc(var(--border-radius-sm) / 2);
990 }
991 }
992 }
993
994 .str-chat__message-attachment-file--item:not(.str-chat-angular__message-attachment-file-single) {
995 border-radius: 0;
996 }
997
998 &--me {
999 .str-chat__message-attachment-card {
1000 border-radius: var(--border-radius) var(--border-radius-sm) var(--border-radius-sm)
1001 var(--border-radius-sm);
1002 }
1003
1004 .str-chat__message-attachment--file {
1005 background: var(--grey-gainsboro);
1006
1007 &:last-of-type:not(.str-chat-angular__message-attachment-file-single) {
1008 border-radius: 0 0 calc(var(--border-radius-sm) / 2) var(--border-radius);
1009
1010 &:first-of-type:not(.str-chat-angular__message-attachment-file-single) {
1011 border-radius: var(--border-radius) var(--border-radius) calc(var(--border-radius-sm) / 2)
1012 var(--border-radius);
1013 }
1014 }
1015 }
1016 }
1017}
1018
1019.str-chat__list--thread {
1020 .str-chat__message-simple {
1021 &__actions {
1022 width: 30px;
1023 }
1024
1025 &__actions__action--options {
1026 .str-chat__message-actions-box {
1027 right: unset;
1028 left: 100%;
1029 border-radius: var(--border-radius) var(--border-radius) var(--border-radius)
1030 calc(var(--border-radius-sm) / 2);
1031 }
1032 }
1033 }
1034}
1035
1036.livestream.str-chat {
1037 .str-chat {
1038 &__li {
1039 &--single {
1040 margin: 0;
1041 }
1042 }
1043 }
1044}
1045
1046@media screen and (max-width: 960px) {
1047 .str-chat__message-simple-text-inner {
1048 max-width: 218px;
1049 }
1050
1051 .str-chat__message-simple-status {
1052 left: unset;
1053 right: 8px;
1054 bottom: 30px;
1055
1056 &-angular {
1057 margin-bottom: 3px;
1058 }
1059 }
1060}
1061
1062.dark.str-chat {
1063 .str-chat__message,
1064 .str-chat__message-simple {
1065 &-text-inner {
1066 background: var(--dark-grey);
1067 color: var(--white);
1068
1069 &--is-emoji {
1070 background: transparent;
1071 }
1072
1073 .quoted-message-inner {
1074 background: var(--dark-grey);
1075 }
1076 }
1077
1078 &__actions {
1079 svg {
1080 fill: var(--white);
1081 }
1082 }
1083
1084 &-data {
1085 color: var(--white);
1086 opacity: 0.5;
1087 }
1088
1089 .str-chat__message-attachment-card {
1090 background: transparent;
1091
1092 &--content {
1093 background: var(--dark-grey);
1094 }
1095
1096 &--url {
1097 color: var(--grey-gainsboro);
1098 }
1099
1100 &--title {
1101 color: var(--primary-color);
1102 }
1103 }
1104
1105 .str-chat__message-attachment--file {
1106 border-color: transparent;
1107 background: var(--dark-grey);
1108 color: var(--white10);
1109
1110 a,
1111 span {
1112 color: var(--white);
1113 }
1114
1115 span {
1116 opacity: 0.5;
1117 }
1118 }
1119
1120 .str-chat__message-simple-status {
1121 &-number {
1122 color: var(--grey-gainsboro);
1123 }
1124 }
1125
1126 .str-chat__message-simple--deleted-inner,
1127 .str-chat__message--deleted-inner {
1128 background: var(--dark-grey);
1129 color: var(--white);
1130 }
1131
1132 &--me {
1133 .str-chat__message-text-inner {
1134 background: var(--black40);
1135
1136 &--is-emoji {
1137 background: transparent;
1138 }
1139 }
1140
1141 .str-chat__message-attachment-card {
1142 &--content {
1143 background: var(--black40);
1144 }
1145 }
1146
1147 .str-chat__message-attachment--file {
1148 background: var(--black40);
1149 }
1150
1151 .str-chat__message-simple--deleted-inner,
1152 .str-chat__message--deleted-inner {
1153 background: var(--black40);
1154 color: var(--white);
1155 }
1156 }
1157 }
1158}
1159
1160.dark.str-chat {
1161 .str-chat__message-simple__actions__action--options .str-chat__actions-box {
1162 background: var(--grey);
1163 box-shadow: 0 0 2px 0 var(--overlay), 0 1px 0 0 var(--border), 0 1px 8px 0 var(--border);
1164 }
1165
1166 .str-chat__message {
1167 &--error,
1168 &--failed {
1169 .str-chat__message-simple-text-inner {
1170 background: var(--faded-red);
1171 border: 1px solid var(--faded-red);
1172 }
1173 }
1174 }
1175}
1176
1177.str-chat__message {
1178 .str-chat__message-simple__actions__action--options {
1179 .str-chat__message-actions-box {
1180 left: 100%;
1181 right: unset;
1182
1183 &--reverse {
1184 right: 100%;
1185 left: unset;
1186 border-radius: var(--border-radius) var(--border-radius) calc(var(--border-radius-sm) / 2)
1187 var(--border-radius);
1188 }
1189 }
1190
1191 .str-chat__message-actions-box--mine {
1192 right: 100%;
1193 left: unset;
1194 border-radius: var(--border-radius) var(--border-radius) calc(var(--border-radius-sm) / 2)
1195 var(--border-radius);
1196
1197 &.str-chat__message-actions-box--reverse {
1198 left: 100%;
1199 right: unset;
1200 border-radius: var(--border-radius) var(--border-radius) var(--border-radius)
1201 calc(var(--border-radius-sm) / 2);
1202 }
1203 }
1204 }
1205
1206 a[href^='mailto:'] {
1207 -webkit-hyphens: none;
1208 -moz-hyphens: none;
1209 hyphens: none;
1210 }
1211}
1212
1213@media screen and (max-width: 375px) {
1214 .str-chat__message .str-chat__message-attachment {
1215 --attachment-max-width: 235px;
1216 }
1217}
1218
1219@media screen and (max-width: 414px) {
1220 .str-chat__message .str-chat__message-attachment {
1221 --attachment-max-width: 235px;
1222 }
1223}
1224
1225@media only screen and (device-width: 375px) and (-webkit-device-pixel-ratio: 3) {
1226 .str-chat__message .str-chat__message-attachment {
1227 --attachment-max-width: 235px;
1228 }
1229}
1230
1231.str-chat {
1232 // fixes the overall overflow/flex issues together with the rule below
1233 .mml-container {
1234 display: flex;
1235 padding-bottom: var(--xxs-p);
1236 }
1237
1238 .mml-icon {
1239 font-family: 'Material Icons', sans-serif;
1240 }
1241
1242 // fixes the overall overflow/flex issues together with the rule above
1243 .mml-wrap {
1244 display: block;
1245 // the max-width should match that to .str-chat__message-XXXX-text-inner
1246 max-width: 345px;
1247
1248 @media screen and (max-width: 375px) {
1249 max-width: 220px;
1250 }
1251 }
1252
1253 .mml-datepicker {
1254 min-width: 180px;
1255 }
1256
1257 // undo the negative margins that make the mml content to expand to the
1258 // viewport edges
1259 .mml-align-right .mml-btnlist--floating,
1260 .mml-align-right .mml-carousel {
1261 margin-left: auto;
1262 }
1263
1264 .mml-align-left .mml-btnlist--floating,
1265 .mml-align-left .mml-carousel {
1266 margin-right: auto;
1267 }
1268
1269 @media screen and (max-width: 960px) {
1270 .mml-align-left .mml-carousel {
1271 margin-left: -10px;
1272 }
1273
1274 .mml-align-right .mml-carousel {
1275 margin-right: -10px;
1276 }
1277 }
1278
1279 // expand carousel to the edge of the screen, the horizontal padding is theme
1280 // specific in stream-chat-react
1281 &.messaging {
1282 // as .messaging.str-chat .str-chat__list:
1283 @media screen and (max-width: 960px) {
1284 .mml-align-left .mml-carousel {
1285 margin-left: -10px;
1286 }
1287
1288 .mml-align-right .mml-carousel {
1289 margin-right: -10px;
1290 }
1291 }
1292 }
1293}