blob: 85083f610a97f279da017de23390bb8d85ff6a16 [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);
Hugo Lefeuvre368c47c2018-05-29 15:50:07 -040015
16 /* message bar properties */
17 --textarea-max-height: 150px;
Sébastien Blinf4f90282017-10-03 14:07:16 -040018
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -040019 /* button properties */
20 --action-icon-color: var(--ring-dark-blue);
Hugo Lefeuvreedad8832018-05-14 16:36:06 -040021 --deactivated-icon-color: #BEBEBE;
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -040022 --action-icon-hover-color: var(--ring-light-blue);
Hugo Lefeuvreedad8832018-05-14 16:36:06 -040023 --action-critical-icon-hover-color: rgba(211, 77, 59, 0.3); /* complementary color of ring light blue */
24 --action-critical-icon-press-color: rgba(211, 77, 59, 0.5);
25 --action-critical-icon-color: #4E1300;
26 --non-action-icon-color: #212121;
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -040027 --action-icon-press-color: rgba(59, 193, 211, 0.5);
Sébastien Blinf4f90282017-10-03 14:07:16 -040028
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -040029 /* hairline properties */
30 --hairline-color: #d9d9d9;
31 --hairline-thickness: 0.2px;
aviau32b8dd62016-11-02 00:36:57 -040032}
33
Hugo Lefeuvre9186c602018-05-03 10:44:15 -040034@font-face {
35 font-family: emoji;
36
37 /* Fonts for text outside emoji blocks */
38 src: local('Open sans'),
39 local('Helvetica'),
40 local('Segoe UI'),
41 local('sans-serif');
42}
43
44@font-face {
45 font-family: emoji;
46
47 src: local('Noto Color Emoji'),
48 local('Android Emoji'),
49 local('Twitter Color Emoji');
50
51 /* Emoji unicode blocks */
52 unicode-range: U+1F300-1F5FF, U+1F600-1F64F, U+1F680-1F6FF, U+2600-26FF;
53}
54
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -040055/** Body */
56
57body {
Hugo Lefeuvre368c47c2018-05-29 15:50:07 -040058 --navbar-size: calc(var(--navbar-height) + var(--navbar-padding-top) + var(--navbar-padding-bottom));
59 --messagebar-size: 57px; /* FIXME clean this up */
60
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -040061 margin: 0;
62 overflow: hidden;
63 background-color: var(--bg-color);
Hugo Lefeuvreedad8832018-05-14 16:36:06 -040064 padding-top: var(--navbar-size);
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -040065 padding-bottom: var(--messagebar-size);
Hugo Lefeuvre368c47c2018-05-29 15:50:07 -040066
67 /* disable selection highlight because it looks very bad */
68 -webkit-user-select: none;
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -040069}
70
Hugo Lefeuvreedad8832018-05-14 16:36:06 -040071/** Navbar */
72
73.navbar-wrapper {
74 /* on top, over everything and full width */
75 position: fixed;
76 left:0; right:0;
77 z-index: 500;
78 top: 0;
79}
80
81#navbar {
82 background-color: var(--bg-color);
83 padding-right: 8px;
84 padding-left: 8px;
85 padding-top: var(--navbar-padding-top);
86 padding-bottom: var(--navbar-padding-bottom);
87 height: var(--navbar-height);
88 overflow: hidden;
89 align-items: center;
90
91 /* takes whole width */
92 left:0; right:0;
93
94 /* hairline */
95 border-bottom: var(--hairline-thickness) solid var(--hairline-color);
Hugo Lefeuvreedad8832018-05-14 16:36:06 -040096}
97
98#navbar.hiddenState {
99 visibility: hidden;
100}
101
102.svgicon {
103 display: block;
104 margin: auto;
105 height: 100%;
106}
107
108.nav-button {
109 width: 40px;
110 height: 40px;
111 align-self: center;
112 display: flex;
113 cursor: pointer;
114 border-radius: 50%;
115}
116
117.nav-button.deactivated {
118 width: 40px;
119 height: 40px;
120 align-self: center;
121 display: flex;
122 border-radius: 50%;
123 cursor: auto;
124}
125
126.nav-right {
127 float: right;
128}
129
130.nav-left {
131 float: left;
132}
133
134#nav-contactid {
135 margin: 0px;
136 margin-left: 5px;
137 padding: 0px;
138 height: 100%;
139 font-family: emoji;
140
Hugo Lefeuvre368c47c2018-05-29 15:50:07 -0400141 /* enable selection (it is globally disabled in the body) */
Hugo Lefeuvreedad8832018-05-14 16:36:06 -0400142 -webkit-user-select: auto;
143}
144
145#nav-contactid.oneEntry {
146 display: flex;
147 justify-content: center;
148 align-items: center;
149}
150
151#nav-contactid-alias {
152 font-size: 14px;
153 font-weight: bold;
154 margin: 5px 0px 3px;
155}
156
157#nav-contactid-bestId {
158 font-size: 11px;
159}
160
161.oneEntry #nav-contactid-bestId {
162 visibility: hidden;
163}
164
165.action-button svg {
166 fill: var(--action-icon-color);
167}
168
169.action-button.deactivated svg {
170 fill: var(--deactivated-icon-color);
171}
172
173.non-action-button svg {
174 fill: var(--non-action-icon-color);
175}
176
177.non-action-button:hover, .action-button:hover {
178 background: var(--action-icon-hover-color);
179}
180
181.non-action-button:active, .action-button:active {
182 background: var(--action-icon-press-color);
183}
184
185.action-button.deactivated:hover, .action-button.deactivated:active {
186 background: none;
187}
188
189.action-critical-button svg {
190 fill: var(--action-critical-icon-color);
191}
192
193.action-critical-button:hover {
194 background: var(--action-critical-icon-hover-color);
195}
196
197.action-critical-button:active {
198 background: var(--action-critical-icon-press-color);
199}
200
201#navbar #addBannedContactButton, #navbar #addToConversationsButton {
202 display: none;
203}
204
205#navbar.onBannedState #addToConvButton, #navbar.onBannedState #callButtons, #navbar.onBannedState #addToConversationsButton {
206 display: none;
207}
208
209#navbar.onBannedState #addBannedContactButton {
210 display: flex;
211}
212
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -0400213/** Invitation bar */
214
215#invitation {
216 visibility: hidden;
217 background: var(--ring-light-blue);
218 position: absolute;
219 width: 100%;
220
221 /* hairline */
222 border-bottom: var(--hairline-thickness) solid var(--hairline-color);
223}
224
225#actions
226{
227 margin: 10px;
228 list-style: none;
229 display: flex;
230 align-items: center;
231 justify-content: center;
232}
233
234.invitation-button,
235.flat-button {
236 margin: 5px;
237 border: 0;
238 border-radius: 5px;
239 transition: all 0.3s ease;
Hugo Lefeuvreedad8832018-05-14 16:36:06 -0400240 color: #f9f9f9;
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -0400241 padding: 10px 20px 10px 20px;
242 vertical-align: middle;
243 cursor: pointer;
244}
245
246.button-green {
247 background: #27ae60;
248}
249
250.button-green:hover {
251 background: #1f8b4c;
252}
253
254.button-red {
255 background: #dc3a37;
256}
257
258.button-red:hover {
259 background: #b02e2c;
260}
261
262#invitation #text h1 {
263 font-size: 1.5em;
264}
265
266#invitation #text {
267 text-align: center;
268 width: 90%;
269 margin: auto;
270 margin-top: 10px;
271 font-size: 0.8em;
272}
273
274/** Messaging bar */
275
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -0400276#sendMessage {
277 background-color: var(--bg-color);
278 display: flex;
279 position: relative;
280 padding-right: 10px;
281 padding-left: 8px;
282 overflow: hidden;
283 padding-top: 8px;
284 padding-bottom: 8px;
285 align-items: center;
286
287 position: fixed;
288 left:0; right:0;
289 z-index: 500;
290 bottom: 0;
291 /* hairline */
292 border-top: var(--hairline-thickness) solid var(--hairline-color);
293}
294
295#sendMessage.hiddenState {
296 visibility: hidden;
297}
298
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -0400299#message {
Hugo Lefeuvre368c47c2018-05-29 15:50:07 -0400300 font-family: emoji;
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -0400301 flex: 1;
302 background-color: var(--bg-color);
303 border: 0;
304 overflow-y: scroll;
305 color: black;
Hugo Lefeuvre368c47c2018-05-29 15:50:07 -0400306 max-height: var(--textarea-max-height);
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -0400307 margin-right: 10px;
308 resize: none;
Hugo Lefeuvre368c47c2018-05-29 15:50:07 -0400309
310 /* enable selection (it is globally disabled in the body) */
311 -webkit-user-select: auto;
Hugo Lefeuvre8127fe12018-05-23 10:53:12 -0400312}
313
314#message:focus,
315#message.focus {
316 outline: none;
317}
318
319#container[disabled] {
320 background-color: #ccc;
321}
322
323input[placeholder], [placeholder], *[placeholder] {
324 color: #d3d3d3;
325}
326
327/** Main chat view */
328
329#container {
330 position: relative;
331 height: 100%;
332 width: 100%;
333 display: flex;
334 flex-direction: column;
335 margin: 0;
336 padding: 0;
337 justify-content: flex-end;
338}
339
340a:link {
341 text-decoration: none;
342 color: #0e649b;
343 transition: all 0.2s ease-in-out;
344 border-bottom: dotted 1px;
345}
346
347a:hover {
348 border: 0;
349}
350
351#messages {
352 position: relative;
353 z-index: 0;
354 width: 100%;
355 overflow-y: scroll;
356 height: auto;
357 padding-top: 0.5em;
358 padding-bottom: 1em;
359}
360
361/* General messages */
362
363.wc {
364 will-change: transform;
365}
366
367.message_wrapper {
368 transform: scale(0);
369 max-width: 70%;
370 margin: 8px 0 0 0;
371 display: inline-block;
372 padding: 1em;
373 border-radius: 10px;
374 position: relative;
375 -webkit-animation: talk;
376 -webkit-animation-duration: 0.3s;
377 -webkit-animation-delay: 0.1s;
378 -webkit-animation-fill-mode: forwards;
379 -webkit-animation-timing-function: ease-in-out;
380}
381
aviau32b8dd62016-11-02 00:36:57 -0400382.message {
Hugo Lefeuvre9186c602018-05-03 10:44:15 -0400383 font: 0.875em emoji;
aviau32b8dd62016-11-02 00:36:57 -0400384 margin: 0;
385 display: flex;
386 justify-content: flex-start;
387 align-items: top;
388 overflow: hidden;
Hugo Lefeuvre368c47c2018-05-29 15:50:07 -0400389
390 /* enable selection (it is globally disabled in the body) */
391 -webkit-user-select: auto;
aviau32b8dd62016-11-02 00:36:57 -0400392}
393
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400394.message_in {
395 padding-left: 25%;
AmarOk6286ad42017-07-14 12:11:08 -0400396}
397
aviau32b8dd62016-11-02 00:36:57 -0400398.message_out {
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400399 padding-right: 25%;
Sébastien Blinc6f3a262017-07-28 16:12:24 -0400400 flex-direction: row-reverse;
401}
402
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400403.message_in + .message_in .sender_image {
404 opacity: 0;
405}
406
407.message_out + .message_out .sender_image {
408 opacity: 0;
409}
410
411.message_in > .message_wrapper:before {
412 content: "";
413 width: 10px;
414 height: 10px;
415 position: absolute;
416 left: -10px;
417 top: 0;
418 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");
419 transform-origin: top left;
420}
421
422.message_in + .message_in > .message_wrapper:before {
423 display: none;
424}
425
426.message_out + .message_out > .message_wrapper:after {
427 display: none;
428}
429
430.message_out > .message_wrapper:after {
431 content: "";
432 width: 10px;
433 height: 10px;
434 position: absolute;
435 right: -10px;
436 top: 0;
437 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");
438 transform-origin: top right;
439}
440
441.message_delivery_status {
442 margin: 10px 10px;
443 color: #A0A0A0;
444 opacity: 0;
445 -webkit-animation-name: fade-in;
446 -webkit-animation-duration: 0.2s;
447 -webkit-animation-timing-function: ease-in-out;
448 -webkit-animation-delay: 0.4s;
449 -webkit-animation-fill-mode: forwards;
450 transition: opacity 0.5s ease-in-out;
451}
452
aviau32b8dd62016-11-02 00:36:57 -0400453.message_sender {
454 display: none;
455}
456
457.sender_image {
458 border-radius: 50%;
459 transition: transform 0.2s ease-in-out;
Frédéric Guimont3e5f1b62016-11-22 11:41:38 -0500460 margin: 10px;
aviau32b8dd62016-11-02 00:36:57 -0400461}
462
463.message_in .sender_image {
464 -webkit-animation-name: enter-stage-left;
465 -webkit-animation-duration: 0.2s;
466 -webkit-animation-timing-function: ease-in-out;
467}
468
469.message_out .sender_image {
470 -webkit-animation-name: enter-stage-right;
471 -webkit-animation-duration: 0.2s;
472 -webkit-animation-timing-function: ease-in-out;
473}
474
475@-webkit-keyframes enter-stage-left {
476 from {
477 transform: translateX(-100%);
478 }
479 to {
480 transform: translateX(0);
481 }
482}
483
484@-webkit-keyframes enter-stage-right {
485 from {
486 transform: translateX(100%);
487 }
488 to {
489 transform: translateX(0);
490 }
491}
492
493.message_out > .message_wrapper {
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400494 background-color: #cfd8dc;
aviau32b8dd62016-11-02 00:36:57 -0400495 border-top-right-radius: 0;
496 transform-origin: top right;
497}
498
499.message_out + .message_out > .message_wrapper {
500 border-top-right-radius: 10px;
501}
502
503.message_in > .message_wrapper {
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400504 background-color: #fdfdfd;
aviau32b8dd62016-11-02 00:36:57 -0400505 border-top-left-radius: 0;
506 transform-origin: top left;
507}
508
509.message_in + .message_in > .message_wrapper {
510 border-top-left-radius: 10px;
511}
512
aviau32b8dd62016-11-02 00:36:57 -0400513
514@-webkit-keyframes fade-in {
515 from {
516 opacity: 0;
517 }
518 to {
519 opacity: 1;
520 }
521}
522
aviau32b8dd62016-11-02 00:36:57 -0400523@-webkit-keyframes talk {
524 from {
525 transform: scale(0);
526 }
527 to {
528 transform: scale(1);
529 }
530}
531
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400532.timestamp {
533 display: flex;
534 justify-content: flex-start;
535 color: #333;
536 font-size: 10px;
537 padding: 5px;
aviau32b8dd62016-11-02 00:36:57 -0400538}
539
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400540.timestamp_out {
541 flex-direction: row-reverse;
aviau32b8dd62016-11-02 00:36:57 -0400542}
543
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400544/* Buttons */
545
546.flat-button {
547 flex: 1;
548 padding: 0;
aviau32b8dd62016-11-02 00:36:57 -0400549}
550
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400551.left_buttons {
552 display: flex;
553 align-self: center;
554 max-width: 90px;
555 padding-left: 1em;
aviau32b8dd62016-11-02 00:36:57 -0400556}
557
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400558/* Status */
559
560.status_circle {
561 fill: #A0A0A0;
562 -webkit-animation: circle-dance;
563 -webkit-animation-duration: 0.8s;
564 -webkit-animation-iteration-count: infinite;
565 -webkit-animation-direction: alternate;
566 -webkit-animation-timing-function: ease-in-out;
aviau32b8dd62016-11-02 00:36:57 -0400567}
Sébastien Blinf4f90282017-10-03 14:07:16 -0400568
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400569.anim-first {
570 -webkit-animation-delay: 0.7s;
Sébastien Blinf4f90282017-10-03 14:07:16 -0400571}
572
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400573.anim-second {
574 -webkit-animation-delay: 0.9s;
575}
576
577.anim-third {
578 -webkit-animation-delay: 1.1s;
579}
580
581@-webkit-keyframes circle-dance {
582 0%,50% {
583 -webkit-transform: translateY(0);
584 fill: #A0A0A0;
585 }
586 100% {
587 -webkit-transform: translateY(-8px);
588 fill: #000;
589 }
590}
591
592.status-x {
593 stroke-dasharray: 12;
594 stroke-dashoffset: 12;
595 -webkit-animation: dash-x;
596 -webkit-animation-duration: 0.2s;
597 -webkit-animation-fill-mode: forwards;
598 -webkit-animation-timing-function: ease-in-out;
599}
600
601.x-first {
602 -webkit-animation-delay: 0.7s;
603}
604
605.x-second {
606 -webkit-animation-delay: 0.9s;
607}
608
609@-webkit-keyframes dash-x{
610 from {
611 stroke-dashoffset: 12;
612 }
613 to {
614 stroke-dashoffset: 0;
615 }
616}
617
618/* Contact + Call interactions */
619.message_type_contact .message_wrapper,
620.message_type_call .message_wrapper {
621 width: auto;
622 margin-left: 30%;
623 margin-right: 30%;
624 display: flex;
625 flex-wrap: wrap;
626 background-color: #f2f2f2;
627 padding: 0;
Sébastien Blinf4f90282017-10-03 14:07:16 -0400628}
629
Sébastien Blinf4f90282017-10-03 14:07:16 -0400630.message_type_contact .message_wrapper:before,
631.message_type_call .message_wrapper:before {
632 display: none;
633}
634
635.message_type_call .message_wrapper:after,
636.message_type_contact .message_wrapper:after {
637 display: none;
638}
639
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400640.message_type_contact .text,
641.message_type_call .text {
642 align-self: center;
643 font-size: 1.2em;
644 padding: 1em;
Sébastien Blinf4f90282017-10-03 14:07:16 -0400645}
646
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400647/* file interactions */
Sébastien Blinf4f90282017-10-03 14:07:16 -0400648
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400649.message_type_data_transfer .message_wrapper {
Guillaume Roguez5b137be2018-02-21 10:44:58 -0500650 padding: 0;
651 width: 30%;
652 display: flex;
653 flex-wrap: wrap;
654}
655
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400656.accept, .refuse {
657 border-radius: 50%;
658 cursor: pointer;
659}
660
661.accept svg,
662.refuse svg {
663 padding: 8px;
664 width: 24px;
665 height: 24px;
666}
667
668.accept {
669 fill: #219d55;
670}
671
672.accept:hover {
673 fill: white;
674 background: #219d55;
675}
676
677.refuse {
678 fill: #dc2719;
679}
680
681.refuse:hover {
682 fill: white;
683 background: #dc2719;
684}
685
686.message_type_data_transfer .text {
687 padding: 1em;
688 text-align: left;
689 align-self: left;
690 max-width: calc(100% - 180px);
691}
692
693.message_type_data_transfer .filename {
694 cursor: pointer;
695 font-size: 1.1em;
Guillaume Roguez5b137be2018-02-21 10:44:58 -0500696 overflow: hidden;
697}
698
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400699.message_type_data_transfer .informations {
Guillaume Roguez5b137be2018-02-21 10:44:58 -0500700 color: #555;
701 font-size: 0.8em;
702}
703
704.message_progress_bar {
Guillaume Roguez5b137be2018-02-21 10:44:58 -0500705 width: 100%;
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400706 height: 1em;
Guillaume Roguez5b137be2018-02-21 10:44:58 -0500707 position: relative;
708 overflow: hidden;
709 background-color: #eee;
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400710 border-radius: 0;
Guillaume Roguez5b137be2018-02-21 10:44:58 -0500711 box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25) inset;
712}
713
714.message_progress_bar > span {
715 display: inline;
716 height: 100%;
717 background-color: #01a2b8;
718 position: absolute;
719 overflow: hidden;
720}
721
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400722/* text interactions */
723
724.message_type_text .message_wrapper {
725 max-width: 40%;
726}
727
728.message_type_text .message_text {
729 padding: 0px;
730}
731
732.message_text {
733 hyphens: auto; /* When webkitgtk+ will supports this, intelligent word-breaking */
734 word-break: break-word;
735 word-wrap: break-word;
736 display: block;
737}
738
739pre {
740 font : inherit;
741 font-family : inherit;
742 font-size : inherit;
743 font-style : inherit;
744 font-variant : inherit;
745 font-weight : inherit;
746 margin: 0;
Guillaume Roguez5b137be2018-02-21 10:44:58 -0500747 padding: 0;
748}
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400749
750/* Media interactions */
751.media_wrapper img {
752 max-width: 800px;
753 max-height: 700px;
754 margin: 5px 0 0 0;
Sébastien Blinc304a232018-05-04 15:18:31 -0400755 border-radius: 10px;
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400756}
757
758.playVideo {
759 background-color: rgba(0, 0, 0, 0.6);
760 height: 50px;
761 width: 50px;
762 border-radius: 5px;
763 float: right;
764 position: absolute;
765 top: calc(50% - 25px);
766 left: calc(50% - 25px);
767 z-index: 3;
768}
769
770.containerVideo {
771 width: 100%;
772 position: relative;
773}
774
775.playVideo svg {
776 height: 40px;
777 width: 40px;
778 margin: 5px;
779}
780
781/* Text interaction */
782.failure,
783.sending {
784 margin: 10px 10px;
785 color: #A0A0A0;
786 opacity: 0;
787 -webkit-animation-name: fade-in;
788 -webkit-animation-duration: 0.2s;
789 -webkit-animation-timing-function: ease-in-out;
790 -webkit-animation-delay: 0.4s;
791 -webkit-animation-fill-mode: forwards;
792 transition: opacity 0.5s ease-in-out;
793}
794
795/* Classic screens */
796@media screen and (max-width: 1920px), screen and (max-height: 1080px) {
797 .message_in {
798 padding-left: 15%;
799 }
800
801 .message_out {
802 padding-right: 15%;
803 }
804
805 .message_type_text .message_wrapper {
806 max-width: 60%;
807 }
808
809 /* File interactions */
810 .message_type_data_transfer .message_wrapper {
811 width: 40%;
812 }
813
814 /* Media interactions */
815 .media_wrapper img {
816 max-width: 450px;
817 max-height: 450px;
818 }
819}
820
821/* lower resolutions */
822@media screen and (max-width: 1000px), screen and (max-height: 480px) {
823 .message_in {
824 padding-left: 0;
825 }
826
827 .message_out {
828 padding-right: 0;
829 }
830
831 .message_type_text .message_wrapper {
832 max-width: 90%;
833 }
834
835 /* File interactions */
836 .message_type_data_transfer .message_wrapper {
837 width: 70%;
838 }
839
840 /* Media interactions */
841 .media_wrapper img {
842 max-width: 200px;
843 max-height: 200px;
844 }
845}
846
847/* Special case */
848@media screen and (max-width: 300px) {
849 .sender_image {
850 visibility: hidden;
851 display: none;
852 }
853
854 /* File interactions */
855 .message_type_data_transfer .left_buttons {
856 max-width: 100%;
857 }
858
859 .message_type_data_transfer .text {
860 max-width: 100%;
861 padding-left: 0;
862 }
863}
864
865.message_type_contact .message_wrapper:hover .timestamp_action,
866.message_type_call .message_wrapper:hover .timestamp_action {
867 opacity: 1;
868}
869
870.timestamp_action {
871 display: flex;
872 align-items: center;
873 justify-content: center;
874 opacity:0;
875 transition:visibility 0.3s linear,opacity 0.3s linear;
876}