blob: b0e752e5df46507b0eafdc072ed4f19282e61a0c [file] [log] [blame]
Frédéric Guimont3e5f1b62016-11-22 11:41:38 -05001body {
Adrien Beraud8e25afb2017-04-19 01:38:57 +02002 margin: 0;
AmarOkb4253242017-07-13 11:21:39 -04003 overflow: hidden;
Sébastien Blin82d0d2d2018-03-14 17:21:42 -04004 background-color: #f2f2f2;
Adrien Beraud8e25afb2017-04-19 01:38:57 +02005}
6
Sébastien Blin82d0d2d2018-03-14 17:21:42 -04007/** TODO invitation bar like Tirifto mock up */
8
Sébastien Blinf4f90282017-10-03 14:07:16 -04009#invitation {
10 visibility: hidden;
11 width: 100%;
12 background: #bae5f0;
13 z-index: 2;
14 position: absolute;
15 margin: 0 auto;
16 left:0;
17 right:0;
18 top:0;
19}
20
21#actions
22{
23 margin: 10px;
24 list-style: none;
25 display: flex;
26 align-items: center;
27 justify-content: center;
28}
29
Sébastien Blin82d0d2d2018-03-14 17:21:42 -040030.invitation-button,
Sébastien Blinf4f90282017-10-03 14:07:16 -040031.flat-button {
32 margin: 5px;
33 border: 0;
34 border-radius: 5px;
35 transition: all 0.3s ease;
Sébastien Blin82d0d2d2018-03-14 17:21:42 -040036 color: #f9f9f9;
Sébastien Blinf4f90282017-10-03 14:07:16 -040037 padding: 10px 20px 10px 20px;
38 vertical-align: middle;
Sébastien Blinf4f90282017-10-03 14:07:16 -040039}
40
41.button-green {
42 background: #27ae60;
43}
44
45.button-green:hover {
46 background: #219d55;
47}
48
49.button-red {
50 background: #dc3a37;
51}
52
53.button-red:hover {
54 background: #dc2719;
55}
56
57#invitation #text h1 {
58 font-size: 1.5em;
59}
60
61#invitation #text {
62 text-align: center;
63 width: 90%;
64 margin: auto;
65 margin-top: 10px;
66 font-size: 0.8em;
67}
68
Sébastien Blin23c09e02017-07-28 16:19:17 -040069a:link {
70 text-decoration: none;
71 color: #0e649b;
72 transition: all 0.2s ease-in-out;
73 border-bottom: dotted 1px;
74}
75
76a:hover {
77 border: 0;
78}
79
Adrien Beraud8e25afb2017-04-19 01:38:57 +020080#container {
81 position: relative;
82 height: 100%;
83 width: 100%;
AmarOkb4253242017-07-13 11:21:39 -040084 display: flex;
85 flex-direction: column;
86 margin: 0;
87 padding: 0;
AmarOkd55d85e2017-07-14 09:44:05 -040088 justify-content: flex-end;
Adrien Beraud8e25afb2017-04-19 01:38:57 +020089}
90
91#messages {
AmarOkb4253242017-07-13 11:21:39 -040092 position: relative;
AmarOkb4253242017-07-13 11:21:39 -040093 z-index: 0;
Adrien Beraud8e25afb2017-04-19 01:38:57 +020094 width: 100%;
Frédéric Guimont3e5f1b62016-11-22 11:41:38 -050095 overflow-y: scroll;
AmarOkb4253242017-07-13 11:21:39 -040096 height: auto;
Sébastien Blin82d0d2d2018-03-14 17:21:42 -040097 padding-bottom: 1em;
AmarOkd55d85e2017-07-14 09:44:05 -040098 max-height: calc(100% - 50px);
Frédéric Guimont3e5f1b62016-11-22 11:41:38 -050099}
100
AmarOkb4253242017-07-13 11:21:39 -0400101#sendMessage {
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400102 background-color: white;
AmarOkb4253242017-07-13 11:21:39 -0400103 display: flex;
AmarOkb4253242017-07-13 11:21:39 -0400104 position: relative;
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400105 padding-right: 10px;
106 padding-left: 18px;
AmarOk6286ad42017-07-14 12:11:08 -0400107 overflow: hidden;
108 padding-top: 8px;
109 padding-bottom: 8px;
110 align-items: center;
111
AmarOkb4253242017-07-13 11:21:39 -0400112}
113
114#message {
AmarOkd55d85e2017-07-14 09:44:05 -0400115 flex: 1;
AmarOk6286ad42017-07-14 12:11:08 -0400116 margin-right: 10px;
117 border: 0;
118 overflow-y: scroll;
119 color: black;
120 max-height: 150px;
121 padding-left: 8px;
122 resize: none;
AmarOkb4253242017-07-13 11:21:39 -0400123}
124
125#message:focus,
126#message.focus {
AmarOkb4253242017-07-13 11:21:39 -0400127 outline: none;
128}
129
Sébastien Blinf4f90282017-10-03 14:07:16 -0400130#container[disabled] {
131 background-color: #ccc;
132}
133
AmarOkb4253242017-07-13 11:21:39 -0400134input[placeholder], [placeholder], *[placeholder] {
135 color: #d3d3d3;
136}
137
AmarOkb4253242017-07-13 11:21:39 -0400138#sendMessage svg {
139 fill: #666;
140 padding: 5px;
141 width: 100%;
142 height: 100%;
143 transition: all 0.3s ease;
144}
145
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400146/* General messages */
AmarOkb4253242017-07-13 11:21:39 -0400147
Frédéric Guimont3e5f1b62016-11-22 11:41:38 -0500148.wc {
149 will-change: transform;
150}
151
aviau32b8dd62016-11-02 00:36:57 -0400152.message_wrapper {
153 transform: scale(0);
Sébastien Blin23c09e02017-07-28 16:19:17 -0400154 max-width: 70%;
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400155 margin: 8px 0 0 0;
aviau32b8dd62016-11-02 00:36:57 -0400156 display: inline-block;
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400157 padding: 1em;
aviau32b8dd62016-11-02 00:36:57 -0400158 border-radius: 10px;
159 position: relative;
160 -webkit-animation: talk;
161 -webkit-animation-duration: 0.3s;
162 -webkit-animation-delay: 0.1s;
163 -webkit-animation-fill-mode: forwards;
164 -webkit-animation-timing-function: ease-in-out;
165}
166
167.message {
168 font: 0.875em "Open sans",Helvetica,"Segoe UI",sans-serif;
169 margin: 0;
170 display: flex;
171 justify-content: flex-start;
172 align-items: top;
173 overflow: hidden;
174}
175
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400176.message_in {
177 padding-left: 25%;
AmarOk6286ad42017-07-14 12:11:08 -0400178}
179
aviau32b8dd62016-11-02 00:36:57 -0400180.message_out {
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400181 padding-right: 25%;
Sébastien Blinc6f3a262017-07-28 16:12:24 -0400182 flex-direction: row-reverse;
183}
184
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400185.message_in + .message_in .sender_image {
186 opacity: 0;
187}
188
189.message_out + .message_out .sender_image {
190 opacity: 0;
191}
192
193.message_in > .message_wrapper:before {
194 content: "";
195 width: 10px;
196 height: 10px;
197 position: absolute;
198 left: -10px;
199 top: 0;
200 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");
201 transform-origin: top left;
202}
203
204.message_in + .message_in > .message_wrapper:before {
205 display: none;
206}
207
208.message_out + .message_out > .message_wrapper:after {
209 display: none;
210}
211
212.message_out > .message_wrapper:after {
213 content: "";
214 width: 10px;
215 height: 10px;
216 position: absolute;
217 right: -10px;
218 top: 0;
219 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");
220 transform-origin: top right;
221}
222
223.message_delivery_status {
224 margin: 10px 10px;
225 color: #A0A0A0;
226 opacity: 0;
227 -webkit-animation-name: fade-in;
228 -webkit-animation-duration: 0.2s;
229 -webkit-animation-timing-function: ease-in-out;
230 -webkit-animation-delay: 0.4s;
231 -webkit-animation-fill-mode: forwards;
232 transition: opacity 0.5s ease-in-out;
233}
234
aviau32b8dd62016-11-02 00:36:57 -0400235.message_sender {
236 display: none;
237}
238
239.sender_image {
240 border-radius: 50%;
241 transition: transform 0.2s ease-in-out;
Frédéric Guimont3e5f1b62016-11-22 11:41:38 -0500242 margin: 10px;
aviau32b8dd62016-11-02 00:36:57 -0400243}
244
245.message_in .sender_image {
246 -webkit-animation-name: enter-stage-left;
247 -webkit-animation-duration: 0.2s;
248 -webkit-animation-timing-function: ease-in-out;
249}
250
251.message_out .sender_image {
252 -webkit-animation-name: enter-stage-right;
253 -webkit-animation-duration: 0.2s;
254 -webkit-animation-timing-function: ease-in-out;
255}
256
257@-webkit-keyframes enter-stage-left {
258 from {
259 transform: translateX(-100%);
260 }
261 to {
262 transform: translateX(0);
263 }
264}
265
266@-webkit-keyframes enter-stage-right {
267 from {
268 transform: translateX(100%);
269 }
270 to {
271 transform: translateX(0);
272 }
273}
274
275.message_out > .message_wrapper {
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400276 background-color: #cfd8dc;
aviau32b8dd62016-11-02 00:36:57 -0400277 border-top-right-radius: 0;
278 transform-origin: top right;
279}
280
281.message_out + .message_out > .message_wrapper {
282 border-top-right-radius: 10px;
283}
284
285.message_in > .message_wrapper {
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400286 background-color: #fdfdfd;
aviau32b8dd62016-11-02 00:36:57 -0400287 border-top-left-radius: 0;
288 transform-origin: top left;
289}
290
291.message_in + .message_in > .message_wrapper {
292 border-top-left-radius: 10px;
293}
294
aviau32b8dd62016-11-02 00:36:57 -0400295
296@-webkit-keyframes fade-in {
297 from {
298 opacity: 0;
299 }
300 to {
301 opacity: 1;
302 }
303}
304
aviau32b8dd62016-11-02 00:36:57 -0400305@-webkit-keyframes talk {
306 from {
307 transform: scale(0);
308 }
309 to {
310 transform: scale(1);
311 }
312}
313
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400314.timestamp {
315 display: flex;
316 justify-content: flex-start;
317 color: #333;
318 font-size: 10px;
319 padding: 5px;
aviau32b8dd62016-11-02 00:36:57 -0400320}
321
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400322.timestamp_out {
323 flex-direction: row-reverse;
aviau32b8dd62016-11-02 00:36:57 -0400324}
325
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400326/* Buttons */
327
328.flat-button {
329 flex: 1;
330 padding: 0;
aviau32b8dd62016-11-02 00:36:57 -0400331}
332
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400333.left_buttons {
334 display: flex;
335 align-self: center;
336 max-width: 90px;
337 padding-left: 1em;
aviau32b8dd62016-11-02 00:36:57 -0400338}
339
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400340.msg-button {
341 border-radius: 50%;
342 border: 0;
343 width: 40px;
344 height: 40px;
345 align-self: center;
346 transition: all 0.3s ease;
347 cursor: pointer;
aviau32b8dd62016-11-02 00:36:57 -0400348}
349
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400350.msg-button.hover,
351.msg-button:hover {
352 background: #bae5f0;
aviau32b8dd62016-11-02 00:36:57 -0400353}
354
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400355
356/* Status */
357
358.status_circle {
359 fill: #A0A0A0;
360 -webkit-animation: circle-dance;
361 -webkit-animation-duration: 0.8s;
362 -webkit-animation-iteration-count: infinite;
363 -webkit-animation-direction: alternate;
364 -webkit-animation-timing-function: ease-in-out;
aviau32b8dd62016-11-02 00:36:57 -0400365}
Sébastien Blinf4f90282017-10-03 14:07:16 -0400366
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400367.anim-first {
368 -webkit-animation-delay: 0.7s;
Sébastien Blinf4f90282017-10-03 14:07:16 -0400369}
370
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400371.anim-second {
372 -webkit-animation-delay: 0.9s;
373}
374
375.anim-third {
376 -webkit-animation-delay: 1.1s;
377}
378
379@-webkit-keyframes circle-dance {
380 0%,50% {
381 -webkit-transform: translateY(0);
382 fill: #A0A0A0;
383 }
384 100% {
385 -webkit-transform: translateY(-8px);
386 fill: #000;
387 }
388}
389
390.status-x {
391 stroke-dasharray: 12;
392 stroke-dashoffset: 12;
393 -webkit-animation: dash-x;
394 -webkit-animation-duration: 0.2s;
395 -webkit-animation-fill-mode: forwards;
396 -webkit-animation-timing-function: ease-in-out;
397}
398
399.x-first {
400 -webkit-animation-delay: 0.7s;
401}
402
403.x-second {
404 -webkit-animation-delay: 0.9s;
405}
406
407@-webkit-keyframes dash-x{
408 from {
409 stroke-dashoffset: 12;
410 }
411 to {
412 stroke-dashoffset: 0;
413 }
414}
415
416/* Contact + Call interactions */
417.message_type_contact .message_wrapper,
418.message_type_call .message_wrapper {
419 width: auto;
420 margin-left: 30%;
421 margin-right: 30%;
422 display: flex;
423 flex-wrap: wrap;
424 background-color: #f2f2f2;
425 padding: 0;
Sébastien Blinf4f90282017-10-03 14:07:16 -0400426}
427
Sébastien Blinf4f90282017-10-03 14:07:16 -0400428.message_type_contact .message_wrapper:before,
429.message_type_call .message_wrapper:before {
430 display: none;
431}
432
433.message_type_call .message_wrapper:after,
434.message_type_contact .message_wrapper:after {
435 display: none;
436}
437
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400438.message_type_contact .text,
439.message_type_call .text {
440 align-self: center;
441 font-size: 1.2em;
442 padding: 1em;
Sébastien Blinf4f90282017-10-03 14:07:16 -0400443}
444
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400445/* file interactions */
Sébastien Blinf4f90282017-10-03 14:07:16 -0400446
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400447.message_type_data_transfer .message_wrapper {
Guillaume Roguez5b137be2018-02-21 10:44:58 -0500448 padding: 0;
449 width: 30%;
450 display: flex;
451 flex-wrap: wrap;
452}
453
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400454.accept, .refuse {
455 border-radius: 50%;
456 cursor: pointer;
457}
458
459.accept svg,
460.refuse svg {
461 padding: 8px;
462 width: 24px;
463 height: 24px;
464}
465
466.accept {
467 fill: #219d55;
468}
469
470.accept:hover {
471 fill: white;
472 background: #219d55;
473}
474
475.refuse {
476 fill: #dc2719;
477}
478
479.refuse:hover {
480 fill: white;
481 background: #dc2719;
482}
483
484.message_type_data_transfer .text {
485 padding: 1em;
486 text-align: left;
487 align-self: left;
488 max-width: calc(100% - 180px);
489}
490
491.message_type_data_transfer .filename {
492 cursor: pointer;
493 font-size: 1.1em;
Guillaume Roguez5b137be2018-02-21 10:44:58 -0500494 overflow: hidden;
495}
496
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400497.message_type_data_transfer .informations {
Guillaume Roguez5b137be2018-02-21 10:44:58 -0500498 color: #555;
499 font-size: 0.8em;
500}
501
502.message_progress_bar {
Guillaume Roguez5b137be2018-02-21 10:44:58 -0500503 width: 100%;
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400504 height: 1em;
Guillaume Roguez5b137be2018-02-21 10:44:58 -0500505 position: relative;
506 overflow: hidden;
507 background-color: #eee;
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400508 border-radius: 0;
Guillaume Roguez5b137be2018-02-21 10:44:58 -0500509 box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25) inset;
510}
511
512.message_progress_bar > span {
513 display: inline;
514 height: 100%;
515 background-color: #01a2b8;
516 position: absolute;
517 overflow: hidden;
518}
519
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400520/* text interactions */
521
522.message_type_text .message_wrapper {
523 max-width: 40%;
524}
525
526.message_type_text .message_text {
527 padding: 0px;
528}
529
530.message_text {
531 hyphens: auto; /* When webkitgtk+ will supports this, intelligent word-breaking */
532 word-break: break-word;
533 word-wrap: break-word;
534 display: block;
535}
536
537pre {
538 font : inherit;
539 font-family : inherit;
540 font-size : inherit;
541 font-style : inherit;
542 font-variant : inherit;
543 font-weight : inherit;
544 margin: 0;
Guillaume Roguez5b137be2018-02-21 10:44:58 -0500545 padding: 0;
546}
Sébastien Blin82d0d2d2018-03-14 17:21:42 -0400547
548/* Media interactions */
549.media_wrapper img {
550 max-width: 800px;
551 max-height: 700px;
552 margin: 5px 0 0 0;
553}
554
555.playVideo {
556 background-color: rgba(0, 0, 0, 0.6);
557 height: 50px;
558 width: 50px;
559 border-radius: 5px;
560 float: right;
561 position: absolute;
562 top: calc(50% - 25px);
563 left: calc(50% - 25px);
564 z-index: 3;
565}
566
567.containerVideo {
568 width: 100%;
569 position: relative;
570}
571
572.playVideo svg {
573 height: 40px;
574 width: 40px;
575 margin: 5px;
576}
577
578/* Text interaction */
579.failure,
580.sending {
581 margin: 10px 10px;
582 color: #A0A0A0;
583 opacity: 0;
584 -webkit-animation-name: fade-in;
585 -webkit-animation-duration: 0.2s;
586 -webkit-animation-timing-function: ease-in-out;
587 -webkit-animation-delay: 0.4s;
588 -webkit-animation-fill-mode: forwards;
589 transition: opacity 0.5s ease-in-out;
590}
591
592/* Classic screens */
593@media screen and (max-width: 1920px), screen and (max-height: 1080px) {
594 .message_in {
595 padding-left: 15%;
596 }
597
598 .message_out {
599 padding-right: 15%;
600 }
601
602 .message_type_text .message_wrapper {
603 max-width: 60%;
604 }
605
606 /* File interactions */
607 .message_type_data_transfer .message_wrapper {
608 width: 40%;
609 }
610
611 /* Media interactions */
612 .media_wrapper img {
613 max-width: 450px;
614 max-height: 450px;
615 }
616}
617
618/* lower resolutions */
619@media screen and (max-width: 1000px), screen and (max-height: 480px) {
620 .message_in {
621 padding-left: 0;
622 }
623
624 .message_out {
625 padding-right: 0;
626 }
627
628 .message_type_text .message_wrapper {
629 max-width: 90%;
630 }
631
632 /* File interactions */
633 .message_type_data_transfer .message_wrapper {
634 width: 70%;
635 }
636
637 /* Media interactions */
638 .media_wrapper img {
639 max-width: 200px;
640 max-height: 200px;
641 }
642}
643
644/* Special case */
645@media screen and (max-width: 300px) {
646 .sender_image {
647 visibility: hidden;
648 display: none;
649 }
650
651 /* File interactions */
652 .message_type_data_transfer .left_buttons {
653 max-width: 100%;
654 }
655
656 .message_type_data_transfer .text {
657 max-width: 100%;
658 padding-left: 0;
659 }
660}
661
662.message_type_contact .message_wrapper:hover .timestamp_action,
663.message_type_call .message_wrapper:hover .timestamp_action {
664 opacity: 1;
665}
666
667.timestamp_action {
668 display: flex;
669 align-items: center;
670 justify-content: center;
671 opacity:0;
672 transition:visibility 0.3s linear,opacity 0.3s linear;
673}