blob: 1d172513b91bbc86d3aed3753b1a1817111bb8e8 [file] [log] [blame]
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -04001/** Variable and font definitions */
Adrien Beraud8e25afb2017-04-19 01:38:57 +02002
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -04003:root {
4 /* color definitions */
5 --ring-light-blue: rgba(59, 193, 211, 0.3);
6 --ring-dark-blue: #003b4e;
Sébastien Blin82d0d2d2018-03-14 17:21:42 -04007
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -04008 /* main properties */
9 --bg-color: #f2f2f2; /* same as macOS client */
Sébastien Blinf4f90282017-10-03 14:07:16 -040010
Hugo Lefeuvreedad8832018-05-14 16:36:06 -040011 /* navbar properties */
12 --navbar-height: 40px;
13 --navbar-padding-top: 8px;
14 --navbar-padding-bottom: var(--navbar-padding-top);
15 --navbar-size: calc(var(--navbar-height) + var(--navbar-padding-top) + var(--navbar-padding-bottom));
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -040016 --messagebar-size: 57px; /* FIXME clean this up */
Sébastien Blinf4f90282017-10-03 14:07:16 -040017
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -040018 /* button properties */
19 --action-icon-color: var(--ring-dark-blue);
Hugo Lefeuvreedad8832018-05-14 16:36:06 -040020 --deactivated-icon-color: #BEBEBE;
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -040021 --action-icon-hover-color: var(--ring-light-blue);
Hugo Lefeuvreedad8832018-05-14 16:36:06 -040022 --action-critical-icon-hover-color: rgba(211, 77, 59, 0.3); /* complementary color of ring light blue */
23 --action-critical-icon-press-color: rgba(211, 77, 59, 0.5);
24 --action-critical-icon-color: #4E1300;
25 --non-action-icon-color: #212121;
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -040026 --action-icon-press-color: rgba(59, 193, 211, 0.5);
Sébastien Blinf4f90282017-10-03 14:07:16 -040027
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -040028 /* hairline properties */
29 --hairline-color: #d9d9d9;
30 --hairline-thickness: 0.2px;
aviau32b8dd62016-11-02 00:36:57 -040031}
32
Hugo Lefeuvre9186c602018-05-03 10:44:15 -040033@font-face {
34 font-family: emoji;
35
36 /* Fonts for text outside emoji blocks */
37 src: local('Open sans'),
38 local('Helvetica'),
39 local('Segoe UI'),
40 local('sans-serif');
41}
42
43@font-face {
44 font-family: emoji;
45
46 src: local('Noto Color Emoji'),
47 local('Android Emoji'),
48 local('Twitter Color Emoji');
49
50 /* Emoji unicode blocks */
51 unicode-range: U+1F300-1F5FF, U+1F600-1F64F, U+1F680-1F6FF, U+2600-26FF;
52}
53
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -040054/** Body */
55
56body {
57 margin: 0;
58 overflow: hidden;
59 background-color: var(--bg-color);
Hugo Lefeuvreedad8832018-05-14 16:36:06 -040060 padding-top: var(--navbar-size);
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -040061 padding-bottom: var(--messagebar-size);
62}
63
Hugo Lefeuvreedad8832018-05-14 16:36:06 -040064/** Navbar */
65
66.navbar-wrapper {
67 /* on top, over everything and full width */
68 position: fixed;
69 left:0; right:0;
70 z-index: 500;
71 top: 0;
72}
73
74#navbar {
75 background-color: var(--bg-color);
76 padding-right: 8px;
77 padding-left: 8px;
78 padding-top: var(--navbar-padding-top);
79 padding-bottom: var(--navbar-padding-bottom);
80 height: var(--navbar-height);
81 overflow: hidden;
82 align-items: center;
83
84 /* takes whole width */
85 left:0; right:0;
86
87 /* hairline */
88 border-bottom: var(--hairline-thickness) solid var(--hairline-color);
89
90 /* disable selection highlight because it looks very bad */
91 -webkit-user-select: none;
92}
93
94#navbar.hiddenState {
95 visibility: hidden;
96}
97
98.svgicon {
99 display: block;
100 margin: auto;
101 height: 100%;
102}
103
104.nav-button {
105 width: 40px;
106 height: 40px;
107 align-self: center;
108 display: flex;
109 cursor: pointer;
110 border-radius: 50%;
111}
112
113.nav-button.deactivated {
114 width: 40px;
115 height: 40px;
116 align-self: center;
117 display: flex;
118 border-radius: 50%;
119 cursor: auto;
120}
121
122.nav-right {
123 float: right;
124}
125
126.nav-left {
127 float: left;
128}
129
130#nav-contactid {
131 margin: 0px;
132 margin-left: 5px;
133 padding: 0px;
134 height: 100%;
135 font-family: emoji;
136
137 /* enable selection (it is globally disabled in the navbar) */
138 -webkit-user-select: auto;
139}
140
141#nav-contactid.oneEntry {
142 display: flex;
143 justify-content: center;
144 align-items: center;
145}
146
147#nav-contactid-alias {
148 font-size: 14px;
149 font-weight: bold;
150 margin: 5px 0px 3px;
151}
152
153#nav-contactid-bestId {
154 font-size: 11px;
155}
156
157.oneEntry #nav-contactid-bestId {
158 visibility: hidden;
159}
160
161.action-button svg {
162 fill: var(--action-icon-color);
163}
164
165.action-button.deactivated svg {
166 fill: var(--deactivated-icon-color);
167}
168
169.non-action-button svg {
170 fill: var(--non-action-icon-color);
171}
172
173.non-action-button:hover, .action-button:hover {
174 background: var(--action-icon-hover-color);
175}
176
177.non-action-button:active, .action-button:active {
178 background: var(--action-icon-press-color);
179}
180
181.action-button.deactivated:hover, .action-button.deactivated:active {
182 background: none;
183}
184
185.action-critical-button svg {
186 fill: var(--action-critical-icon-color);
187}
188
189.action-critical-button:hover {
190 background: var(--action-critical-icon-hover-color);
191}
192
193.action-critical-button:active {
194 background: var(--action-critical-icon-press-color);
195}
196
197#navbar #addBannedContactButton, #navbar #addToConversationsButton {
198 display: none;
199}
200
201#navbar.onBannedState #addToConvButton, #navbar.onBannedState #callButtons, #navbar.onBannedState #addToConversationsButton {
202 display: none;
203}
204
205#navbar.onBannedState #addBannedContactButton {
206 display: flex;
207}
208
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -0400209/** Invitation bar */
210
211#invitation {
212 visibility: hidden;
213 background: var(--ring-light-blue);
214 position: absolute;
215 width: 100%;
216
217 /* hairline */
218 border-bottom: var(--hairline-thickness) solid var(--hairline-color);
219}
220
221#actions
222{
223 margin: 10px;
224 list-style: none;
225 display: flex;
226 align-items: center;
227 justify-content: center;
228}
229
230.invitation-button,
231.flat-button {
232 margin: 5px;
233 border: 0;
234 border-radius: 5px;
235 transition: all 0.3s ease;
Hugo Lefeuvreedad8832018-05-14 16:36:06 -0400236 color: #f9f9f9;
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -0400237 padding: 10px 20px 10px 20px;
238 vertical-align: middle;
239 cursor: pointer;
240}
241
242.button-green {
243 background: #27ae60;
244}
245
246.button-green:hover {
247 background: #1f8b4c;
248}
249
250.button-red {
251 background: #dc3a37;
252}
253
254.button-red:hover {
255 background: #b02e2c;
256}
257
258#invitation #text h1 {
259 font-size: 1.5em;
260}
261
262#invitation #text {
263 text-align: center;
264 width: 90%;
265 margin: auto;
266 margin-top: 10px;
267 font-size: 0.8em;
268}
269
270/** Messaging bar */
271
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -0400272#sendMessage {
273 background-color: var(--bg-color);
274 display: flex;
275 position: relative;
276 padding-right: 10px;
277 padding-left: 8px;
278 overflow: hidden;
279 padding-top: 8px;
280 padding-bottom: 8px;
281 align-items: center;
282
283 position: fixed;
284 left:0; right:0;
285 z-index: 500;
286 bottom: 0;
287 /* hairline */
288 border-top: var(--hairline-thickness) solid var(--hairline-color);
289}
290
291#sendMessage.hiddenState {
292 visibility: hidden;
293}
294
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -0400295#message {
296 flex: 1;
297 background-color: var(--bg-color);
298 border: 0;
299 overflow-y: scroll;
300 color: black;
301 max-height: 150px;
302 margin-right: 10px;
303 resize: none;
304}
305
306#message:focus,
307#message.focus {
308 outline: none;
309}
310
311#container[disabled] {
312 background-color: #ccc;
313}
314
315input[placeholder], [placeholder], *[placeholder] {
316 color: #d3d3d3;
317}
318
319/** Main chat view */
320
321#container {
322 position: relative;
323 height: 100%;
324 width: 100%;
325 display: flex;
326 flex-direction: column;
327 margin: 0;
328 padding: 0;
329 justify-content: flex-end;
330}
331
332a:link {
333 text-decoration: none;
334 color: #0e649b;
335 transition: all 0.2s ease-in-out;
336 border-bottom: dotted 1px;
337}
338
339a:hover {
340 border: 0;
341}
342
343#messages {
344 position: relative;
345 z-index: 0;
346 width: 100%;
347 overflow-y: scroll;
348 height: auto;
349 padding-top: 0.5em;
350 padding-bottom: 1em;
351}
352
353/* General messages */
354
355.wc {
356 will-change: transform;
357}
358
359.message_wrapper {
360 transform: scale(0);
361 max-width: 70%;
362 margin: 8px 0 0 0;
363 display: inline-block;
364 padding: 1em;
365 border-radius: 10px;
366 position: relative;
367 -webkit-animation: talk;
368 -webkit-animation-duration: 0.3s;
369 -webkit-animation-delay: 0.1s;
370 -webkit-animation-fill-mode: forwards;
371 -webkit-animation-timing-function: ease-in-out;
372}
373
aviau32b8dd62016-11-02 00:36:57 -0400374.message {
Hugo Lefeuvre9186c602018-05-03 10:44:15 -0400375 font: 0.875em emoji;
aviau32b8dd62016-11-02 00:36:57 -0400376 margin: 0;
377 display: flex;
378 justify-content: flex-start;
379 align-items: top;
380 overflow: hidden;
381}
382
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400383.message_in {
384 padding-left: 25%;
AmarOk6286ad42017-07-14 12:11:08 -0400385}
386
aviau32b8dd62016-11-02 00:36:57 -0400387.message_out {
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400388 padding-right: 25%;
Sébastien Blinc6f3a262017-07-28 16:12:24 -0400389 flex-direction: row-reverse;
390}
391
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400392.message_in + .message_in .sender_image {
393 opacity: 0;
394}
395
396.message_out + .message_out .sender_image {
397 opacity: 0;
398}
399
400.message_in > .message_wrapper:before {
401 content: "";
402 width: 10px;
403 height: 10px;
404 position: absolute;
405 left: -10px;
406 top: 0;
407 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E %3Cpath d= 'M10,0 L0,0 C10,0 10,10 10,10' fill='%23fdfdfd'/%3E %3C/svg%3E");
408 transform-origin: top left;
409}
410
411.message_in + .message_in > .message_wrapper:before {
412 display: none;
413}
414
415.message_out + .message_out > .message_wrapper:after {
416 display: none;
417}
418
419.message_out > .message_wrapper:after {
420 content: "";
421 width: 10px;
422 height: 10px;
423 position: absolute;
424 right: -10px;
425 top: 0;
426 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E %3Cpath d= 'M0,0 L10,0 C0,0 0,10 0,10' fill='%23cfd8dc'/%3E %3C/svg%3E");
427 transform-origin: top right;
428}
429
430.message_delivery_status {
431 margin: 10px 10px;
432 color: #A0A0A0;
433 opacity: 0;
434 -webkit-animation-name: fade-in;
435 -webkit-animation-duration: 0.2s;
436 -webkit-animation-timing-function: ease-in-out;
437 -webkit-animation-delay: 0.4s;
438 -webkit-animation-fill-mode: forwards;
439 transition: opacity 0.5s ease-in-out;
440}
441
aviau32b8dd62016-11-02 00:36:57 -0400442.message_sender {
443 display: none;
444}
445
446.sender_image {
447 border-radius: 50%;
448 transition: transform 0.2s ease-in-out;
Frédéric Guimont3e5f1b62016-11-22 11:41:38 -0500449 margin: 10px;
aviau32b8dd62016-11-02 00:36:57 -0400450}
451
452.message_in .sender_image {
453 -webkit-animation-name: enter-stage-left;
454 -webkit-animation-duration: 0.2s;
455 -webkit-animation-timing-function: ease-in-out;
456}
457
458.message_out .sender_image {
459 -webkit-animation-name: enter-stage-right;
460 -webkit-animation-duration: 0.2s;
461 -webkit-animation-timing-function: ease-in-out;
462}
463
464@-webkit-keyframes enter-stage-left {
465 from {
466 transform: translateX(-100%);
467 }
468 to {
469 transform: translateX(0);
470 }
471}
472
473@-webkit-keyframes enter-stage-right {
474 from {
475 transform: translateX(100%);
476 }
477 to {
478 transform: translateX(0);
479 }
480}
481
482.message_out > .message_wrapper {
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400483 background-color: #cfd8dc;
aviau32b8dd62016-11-02 00:36:57 -0400484 border-top-right-radius: 0;
485 transform-origin: top right;
486}
487
488.message_out + .message_out > .message_wrapper {
489 border-top-right-radius: 10px;
490}
491
492.message_in > .message_wrapper {
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400493 background-color: #fdfdfd;
aviau32b8dd62016-11-02 00:36:57 -0400494 border-top-left-radius: 0;
495 transform-origin: top left;
496}
497
498.message_in + .message_in > .message_wrapper {
499 border-top-left-radius: 10px;
500}
501
aviau32b8dd62016-11-02 00:36:57 -0400502
503@-webkit-keyframes fade-in {
504 from {
505 opacity: 0;
506 }
507 to {
508 opacity: 1;
509 }
510}
511
aviau32b8dd62016-11-02 00:36:57 -0400512@-webkit-keyframes talk {
513 from {
514 transform: scale(0);
515 }
516 to {
517 transform: scale(1);
518 }
519}
520
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400521.timestamp {
522 display: flex;
523 justify-content: flex-start;
524 color: #333;
525 font-size: 10px;
526 padding: 5px;
aviau32b8dd62016-11-02 00:36:57 -0400527}
528
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400529.timestamp_out {
530 flex-direction: row-reverse;
aviau32b8dd62016-11-02 00:36:57 -0400531}
532
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400533/* Buttons */
534
535.flat-button {
536 flex: 1;
537 padding: 0;
aviau32b8dd62016-11-02 00:36:57 -0400538}
539
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400540.left_buttons {
541 display: flex;
542 align-self: center;
543 max-width: 90px;
544 padding-left: 1em;
aviau32b8dd62016-11-02 00:36:57 -0400545}
546
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400547/* Status */
548
549.status_circle {
550 fill: #A0A0A0;
551 -webkit-animation: circle-dance;
552 -webkit-animation-duration: 0.8s;
553 -webkit-animation-iteration-count: infinite;
554 -webkit-animation-direction: alternate;
555 -webkit-animation-timing-function: ease-in-out;
aviau32b8dd62016-11-02 00:36:57 -0400556}
Sébastien Blinf4f90282017-10-03 14:07:16 -0400557
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400558.anim-first {
559 -webkit-animation-delay: 0.7s;
Sébastien Blinf4f90282017-10-03 14:07:16 -0400560}
561
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400562.anim-second {
563 -webkit-animation-delay: 0.9s;
564}
565
566.anim-third {
567 -webkit-animation-delay: 1.1s;
568}
569
570@-webkit-keyframes circle-dance {
571 0%,50% {
572 -webkit-transform: translateY(0);
573 fill: #A0A0A0;
574 }
575 100% {
576 -webkit-transform: translateY(-8px);
577 fill: #000;
578 }
579}
580
581.status-x {
582 stroke-dasharray: 12;
583 stroke-dashoffset: 12;
584 -webkit-animation: dash-x;
585 -webkit-animation-duration: 0.2s;
586 -webkit-animation-fill-mode: forwards;
587 -webkit-animation-timing-function: ease-in-out;
588}
589
590.x-first {
591 -webkit-animation-delay: 0.7s;
592}
593
594.x-second {
595 -webkit-animation-delay: 0.9s;
596}
597
598@-webkit-keyframes dash-x{
599 from {
600 stroke-dashoffset: 12;
601 }
602 to {
603 stroke-dashoffset: 0;
604 }
605}
606
607/* Contact + Call interactions */
608.message_type_contact .message_wrapper,
609.message_type_call .message_wrapper {
610 width: auto;
611 margin-left: 30%;
612 margin-right: 30%;
613 display: flex;
614 flex-wrap: wrap;
615 background-color: #f2f2f2;
616 padding: 0;
Sébastien Blinf4f90282017-10-03 14:07:16 -0400617}
618
Sébastien Blinf4f90282017-10-03 14:07:16 -0400619.message_type_contact .message_wrapper:before,
620.message_type_call .message_wrapper:before {
621 display: none;
622}
623
624.message_type_call .message_wrapper:after,
625.message_type_contact .message_wrapper:after {
626 display: none;
627}
628
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400629.message_type_contact .text,
630.message_type_call .text {
631 align-self: center;
632 font-size: 1.2em;
633 padding: 1em;
Sébastien Blinf4f90282017-10-03 14:07:16 -0400634}
635
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400636/* file interactions */
Sébastien Blinf4f90282017-10-03 14:07:16 -0400637
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400638.message_type_data_transfer .message_wrapper {
Guillaume Roguez5b137be2018-02-21 10:44:58 -0500639 padding: 0;
640 width: 30%;
641 display: flex;
642 flex-wrap: wrap;
643}
644
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400645.accept, .refuse {
646 border-radius: 50%;
647 cursor: pointer;
648}
649
650.accept svg,
651.refuse svg {
652 padding: 8px;
653 width: 24px;
654 height: 24px;
655}
656
657.accept {
658 fill: #219d55;
659}
660
661.accept:hover {
662 fill: white;
663 background: #219d55;
664}
665
666.refuse {
667 fill: #dc2719;
668}
669
670.refuse:hover {
671 fill: white;
672 background: #dc2719;
673}
674
675.message_type_data_transfer .text {
676 padding: 1em;
677 text-align: left;
678 align-self: left;
679 max-width: calc(100% - 180px);
680}
681
682.message_type_data_transfer .filename {
683 cursor: pointer;
684 font-size: 1.1em;
Guillaume Roguez5b137be2018-02-21 10:44:58 -0500685 overflow: hidden;
686}
687
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400688.message_type_data_transfer .informations {
Guillaume Roguez5b137be2018-02-21 10:44:58 -0500689 color: #555;
690 font-size: 0.8em;
691}
692
693.message_progress_bar {
Guillaume Roguez5b137be2018-02-21 10:44:58 -0500694 width: 100%;
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400695 height: 1em;
Guillaume Roguez5b137be2018-02-21 10:44:58 -0500696 position: relative;
697 overflow: hidden;
698 background-color: #eee;
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400699 border-radius: 0;
Guillaume Roguez5b137be2018-02-21 10:44:58 -0500700 box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25) inset;
701}
702
703.message_progress_bar > span {
704 display: inline;
705 height: 100%;
706 background-color: #01a2b8;
707 position: absolute;
708 overflow: hidden;
709}
710
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400711/* text interactions */
712
713.message_type_text .message_wrapper {
714 max-width: 40%;
715}
716
717.message_type_text .message_text {
718 padding: 0px;
719}
720
721.message_text {
722 hyphens: auto; /* When webkitgtk+ will supports this, intelligent word-breaking */
723 word-break: break-word;
724 word-wrap: break-word;
725 display: block;
726}
727
728pre {
729 font : inherit;
730 font-family : inherit;
731 font-size : inherit;
732 font-style : inherit;
733 font-variant : inherit;
734 font-weight : inherit;
735 margin: 0;
Guillaume Roguez5b137be2018-02-21 10:44:58 -0500736 padding: 0;
737}
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400738
739/* Media interactions */
740.media_wrapper img {
741 max-width: 800px;
742 max-height: 700px;
743 margin: 5px 0 0 0;
Sébastien Blinc304a232018-05-04 15:18:31 -0400744 border-radius: 10px;
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400745}
746
747.playVideo {
748 background-color: rgba(0, 0, 0, 0.6);
749 height: 50px;
750 width: 50px;
751 border-radius: 5px;
752 float: right;
753 position: absolute;
754 top: calc(50% - 25px);
755 left: calc(50% - 25px);
756 z-index: 3;
757}
758
759.containerVideo {
760 width: 100%;
761 position: relative;
762}
763
764.playVideo svg {
765 height: 40px;
766 width: 40px;
767 margin: 5px;
768}
769
770/* Text interaction */
771.failure,
772.sending {
773 margin: 10px 10px;
774 color: #A0A0A0;
775 opacity: 0;
776 -webkit-animation-name: fade-in;
777 -webkit-animation-duration: 0.2s;
778 -webkit-animation-timing-function: ease-in-out;
779 -webkit-animation-delay: 0.4s;
780 -webkit-animation-fill-mode: forwards;
781 transition: opacity 0.5s ease-in-out;
782}
783
784/* Classic screens */
785@media screen and (max-width: 1920px), screen and (max-height: 1080px) {
786 .message_in {
787 padding-left: 15%;
788 }
789
790 .message_out {
791 padding-right: 15%;
792 }
793
794 .message_type_text .message_wrapper {
795 max-width: 60%;
796 }
797
798 /* File interactions */
799 .message_type_data_transfer .message_wrapper {
800 width: 40%;
801 }
802
803 /* Media interactions */
804 .media_wrapper img {
805 max-width: 450px;
806 max-height: 450px;
807 }
808}
809
810/* lower resolutions */
811@media screen and (max-width: 1000px), screen and (max-height: 480px) {
812 .message_in {
813 padding-left: 0;
814 }
815
816 .message_out {
817 padding-right: 0;
818 }
819
820 .message_type_text .message_wrapper {
821 max-width: 90%;
822 }
823
824 /* File interactions */
825 .message_type_data_transfer .message_wrapper {
826 width: 70%;
827 }
828
829 /* Media interactions */
830 .media_wrapper img {
831 max-width: 200px;
832 max-height: 200px;
833 }
834}
835
836/* Special case */
837@media screen and (max-width: 300px) {
838 .sender_image {
839 visibility: hidden;
840 display: none;
841 }
842
843 /* File interactions */
844 .message_type_data_transfer .left_buttons {
845 max-width: 100%;
846 }
847
848 .message_type_data_transfer .text {
849 max-width: 100%;
850 padding-left: 0;
851 }
852}
853
854.message_type_contact .message_wrapper:hover .timestamp_action,
855.message_type_call .message_wrapper:hover .timestamp_action {
856 opacity: 1;
857}
858
859.timestamp_action {
860 display: flex;
861 align-items: center;
862 justify-content: center;
863 opacity:0;
864 transition:visibility 0.3s linear,opacity 0.3s linear;
865}