MDL-80395 theme: Refactor mixins deprecated in BS4
[moodle.git] / theme / boost / scss / moodle / message.scss
blobfedc74e3e8494398adecfffe4df28eac4d10f1fa
1 /** The message area **/
2 @mixin setSelectedContact() {
3     background-color: $message-selected-bg;
4     color: $message-selected-color;
5     border: none;
7     .information {
8         .lastmessage {
9             color: $message-selected-color;
10         }
11     }
12     .picture {
13         border: none;
14     }
17 .hidden {
18     display: none;
21 .preferences-container {
22     .container-fluid {
23         padding: 0;
25         .col-md-6 {
26             min-height: 20px;
27         }
28     }
29     .align-bottom {
30         vertical-align: bottom;
31     }
32     .preference-table {
33         border: 1px solid $message-preference-table-border-color;
35         thead {
36             th {
37                 text-align: center;
39                 .config-warning {
40                     display: none;
41                 }
43                 &.unconfigured {
44                     .config-warning {
45                         display: inline-block;
46                     }
47                 }
48             }
49         }
50         tr {
51             th {
52                 border-left: 1px solid $border-color;
53             }
54             td {
55                 &:not(:first-child) {
56                     width: 150px;
57                     text-align: center;
58                 }
59                 &:nth-child(even) {
60                     border: 1px solid $border-color;
61                 }
62             }
63         }
64         .preference-row {
65             .hover-tooltip-container {
66                 display: inline-block;
67             }
69             .preference-name {
70                 vertical-align: middle;
71             }
72             .disabled-message {
73                 text-align: center;
74                 height: 30px;
75                 line-height: 30px;
76             }
77             &.loading {
78                 .preference-name {
79                     .loading-icon {
80                         display: block;
81                     }
82                 }
83             }
84         }
85     }
88 .disabled-message {
89     display: none;
92 .disabled {
93     .disabled-message {
94         display: block;
96         + form {
97             display: none;
98         }
99     }
102 .general-settings-container {
103     .loading-icon {
104         display: none;
105     }
106     .loading {
107         .loading-icon {
108             display: inline-block;
109         }
110     }
111     label {
112         display: inline-block;
113     }
115 .processor-container {
116     position: relative;
118     .loading-container {
119         display: none;
120         position: absolute;
121         width: 100%;
122         height: 100%;
123         text-align: center;
124         background-color: $message-loading-bg;
126         .vertical-align {
127             height: 100%;
128             width: 0%;
129             display: inline-block;
130             vertical-align: middle;
131         }
132     }
134     &.loading {
135         .loading-container {
136             display: block;
137         }
138     }
141 .preferences-page-container {
142     .checkbox-container {
143         margin: 30px 5px;
144         line-height: 20px;
146         input {
147             line-height: 20px;
148             margin: 0;
149         }
151         .loading-icon {
152             display: none;
153         }
155         &.loading {
156             .loading-icon {
157                 display: inline-block;
158             }
159         }
160     }
163 .notification-area {
164     height: 600px;
165     @media (max-height: 670px) {
166         height: 500px;
167     }
168     box-sizing: border-box;
169     border-radius: 4px;
170     margin-bottom: 30px;
171     border: 1px solid $message-notif-area-border-color;
173     .control-area {
174         box-sizing: border-box;
175         display: inline-block;
176         width: 300px;
177         height: 100%;
178         overflow: auto;
179         -webkit-overflow-scrolling: touch;
180         border-right: 1px solid $message-notif-area-border-color;
182         .content {
183             position: relative;
185             .content-item-container {
186                 cursor: pointer;
187             }
189             &:empty + .empty-text {
190                 display: block;
191             }
192         }
194         .loading-icon {
195             display: none;
196         }
198         .empty-text {
199             display: none;
200             text-align: center;
201             padding-top: 20px;
202         }
204         &.loading {
205             .loading-icon {
206                 display: block;
207                 text-align: center;
208                 box-sizing: border-box;
209                 padding: 5px;
210             }
212             .content:empty + .empty-text {
213                 display: none;
214             }
215         }
216     }
218     .content-area {
219         box-sizing: border-box;
220         display: inline-block;
221         width: calc(100% - 300px);
222         float: right;
224         .toggle-mode {
225             display: none;
226         }
228         .header {
229             height: 50px;
230             box-sizing: border-box;
231             border-bottom: 1px solid $message-notif-area-border-color;
232             padding: 5px;
234             .image-container {
235                 display: inline-block;
236                 height: 25px;
237                 width: 24px;
238                 float: left;
239             }
241             .subject-container {
242                 display: inline-block;
243                 max-width: calc(100% - 24px);
244                 white-space: nowrap;
245                 overflow: hidden;
246                 text-overflow: ellipsis;
247                 height: 25px;
248                 padding-left: 5px;
249                 box-sizing: border-box;
250             }
252             .timestamp {
253                 font-size: 10px;
254                 line-height: 10px;
255                 margin: 0;
256                 color: $message-notif-area-timestamp-color;
257                 margin-left: 30px;
258             }
260             &:empty {
261                 display: none;
262             }
263         }
265         > .content {
266             height: 500px;
267             @media (max-height: 670px) {
268                 height: 400px;
269             }
270             box-sizing: border-box;
271             overflow: auto;
272             -webkit-overflow-scrolling: touch;
273             padding: 15px;
275             &:empty {
276                 display: none;
278                 & + .empty-text {
279                     display: block;
280                     text-align: center;
281                     padding-top: 100px;
282                 }
283             }
284         }
286         .empty-text {
287             display: none;
288         }
290         .footer {
291             height: 50px;
292             box-sizing: border-box;
293             text-align: center;
295             a {
296                 line-height: 50px;
297             }
299             &:empty {
300                 display: none;
301             }
302         }
303     }
306 @media (max-width: 979px) {
307     .notification-area {
308         position: relative;
309         overflow: hidden;
311         .control-area {
312             border-right: none;
313             width: 100%;
314             position: absolute;
315             top: 0;
316             left: 0;
317             opacity: 1;
318             visibility: visible;
319             transition: left 0.25s;
320         }
322         .content-area {
323             width: 100%;
324             position: absolute;
325             top: 0;
326             right: -100%;
327             opacity: 0;
328             visibility: hidden;
329             transition: right 0.25s, opacity 0.25s, visibility 0.25s;
331             .toggle-mode {
332                 display: inline-block;
333                 float: left;
334                 width: 70px;
335                 height: 50px;
336                 line-height: 50px;
337                 box-sizing: border-box;
338                 border-right: 1px solid $message-notif-area-border-color;
339                 border-bottom: 1px solid $message-notif-area-border-color;
340             }
342             .header {
343                 display: inline-block;
344                 width: calc(100% - 70px);
345             }
346         }
348         &.show-content-area {
349             .control-area {
350                 left: -100%;
351                 opacity: 0;
352                 visibility: hidden;
353                 transition: left 0.25s, opacity 0.25s, visibility 0.25s;
354             }
356             .content-area {
357                 right: 0;
358                 opacity: 1;
359                 visibility: visible;
360                 transition: right 0.25s;
361             }
362         }
363     }
366 $message-send-bg: $gray-300 !default;
367 $message-send-color: color-yiq($message-send-bg) !default;
368 $message-send-time-color: mix($message-send-color, $message-send-bg, 100%) !default;
369 $message-received-bg: $body-bg !default;
370 $message-received-color: color-yiq($message-received-bg) !default;
371 $message-received-color-muted: mix($message-received-color, $message-received-bg, 70%) !default;
372 $message-app-bg: mix($message-send-bg, $message-received-bg, 50%) !default;
373 $message-day-color: color-yiq($message-app-bg) !default;
375 .drawer {
376     .message-app {
377         height: 100%;
378         .icon-back-in-app {
379             display: none;
380         }
381         .icon-back-in-drawer {
382             display: inherit;
383         }
384     }
387 .message-app {
388     display: flex;
389     flex-direction: column;
390     background-color: $message-app-bg;
392     .icon-back-in-drawer {
393         display: none;
394     }
396     &.main {
397         min-height: 400px;
398     }
400     .header-container {
401         flex-shrink: 0;
402     }
404     .overflow-y {
405         overflow-y: auto;
406     }
408     @media (max-height: 320px) {
409         .header-container [data-region="view-overview"]:not(.hidden) {
410             display: flex;
411             align-items: center;
412         }
413         .footer-container [data-region="view-overview"] {
414             display: none;
415         }
416         .overflow-y {
417             overflow-y: unset;
418         }
419     }
420     .body-container {
421         flex: 1;
422         overflow: hidden;
424         & > * {
425             position: absolute;
426             right: 0;
427             left: 0;
428             top: 0;
429             bottom: 0;
430             overflow: auto;
431         }
432     }
434     .footer-container {
435         flex-shrink: 0;
437         textarea {
438             direction: ltr;
439         }
440     }
442     .contact-status {
443         position: absolute;
444         left: 39px;
445         top: 39px;
446         width: 10px;
447         height: 10px;
448         border-radius: 50%;
449         &.online {
450             border: 1px solid $body-bg;
451             background-color: $green;
452         }
453     }
455     .message {
456         p {
457             margin: 0;
458         }
459     }
461     .clickable {
462         cursor: pointer;
464         &:hover {
465             filter: drop-shadow(2px 2px 2px $message-clickable-hover-shadow);
466         }
467     }
469     a,
470     .btn-link {
471         color: inherit;
472     }
473     .btn-link {
474         &:hover,
475         &:focus {
476             background-color: rgba($black, .035);
477             text-decoration: none;
478         }
479     }
481     .icon {
482         margin-right: 0;
483     }
485     .overview-section-toggle {
486         .collapsed-icon-container {
487             display: none;
488         }
489         .expanded-icon-container {
490             display: inline-block;
491         }
493         &.collapsed {
494             .collapsed-icon-container {
495                 display: inline-block;
496             }
497             .expanded-icon-container {
498                 display: none;
499             }
500         }
501     }
503     .btn.btn-link.btn-icon {
504         height: $icon-width;
505         width: $icon-width;
506         padding: 0;
507         border-radius: 50%;
508         flex-shrink: 0;
510         @each $size, $length in $iconsizes {
511             &.icon-size-#{$size} {
512                 height: ($length + 20px) !important; /* stylelint-disable-line declaration-no-important */
513                 width: ($length + 20px) !important; /* stylelint-disable-line declaration-no-important */
514             }
515         }
516     }
518     .view-overview-body {
519         .section {
520             display: block;
522             &.expanded {
523                 display: flex;
524             }
526             div[data-region="toggle"] {
527                 padding: 0.1rem;
528             }
529         }
530     }
532     .view-conversation {
533         .content-message-container {
534             img {
535                 max-width: 100%;
536             }
537         }
538     }
539     .list-group {
540         border-radius: 0;
541         .list-group-item {
542             border-left: 0;
543             border-right: 0;
544             &:hover {
545                 color: $white;
546                 background-color: $primary;
547                 .badge-primary {
548                     background-color: $white;
549                     color: $primary;
550                 }
551             }
552             &:first-child {
553                 border-top: 0;
554             }
555             &:last-child {
556                 border-bottom: 0;
557             }
558             &.list-group-item-action {
559                 margin: 0.1rem;
560                 width: auto;
561                 text-align: inherit;
562             }
563         }
564     }
565     .last-message {
566         min-height: 1.5rem;
567     }
568     .section {
569         .collapsing {
570             overflow: hidden;
571         }
572     }
574     .message {
575         &.send {
576             background-color: $message-send-bg;
577             color: $message-send-color;
578             .time {
579                 color: $message-send-time-color;
580             }
581             .tail {
582                 right: 0;
583                 margin-right: -0.5rem;
584                 border-bottom-color: $message-send-bg;
585             }
586         }
587         &.received {
588             background-color: $message-received-bg;
589             color: $message-received-color;
590             .time {
591                 color: $message-received-color-muted;
592             }
593             .tail {
594                 left: 0;
595                 margin-left: -0.5rem;
596                 border-bottom-color: $message-received-bg;
597             }
598         }
599         .tail {
600             content: '';
601             bottom: 0;
602             width: 0;
603             height: 0;
604             border: 0.5rem solid transparent;
605             position: relative;
606         }
607     }
608     .day {
609         color: $message-day-color;
610     }
611     .lazy-load-list {
612         overflow-y: auto;
613     }
615 #page-message-index {
616     #page-header {
617         display: none;
618     }
619     #region-main {
620         height: 100%;
621         margin-top: 0;
622         .conversationcontainer {
623             .section {
624                 max-height: calc(100vh - 50px);
625             }
626         }
627         div[role="main"] {
628             height: 100%;
629             #maincontent {
630                 margin-top: -1px;
631             }
632             .message-app.main {
633                 height: 100%;
634             }
635         }
636     }
638 .dir-rtl {
639     .message-drawer {
640         box-shadow: 2px 2px 4px $message-drawer-shadow;
641     }
644 .message-app {
645     .emoji-picker-container {
646         position: absolute;
647         top: -5px;
648         right: 5px;
649         transform: translateY(-100%);
651         .emoji-picker {
652             .picker-row {
653                 // To override the button styling for the message app.
654                 .emoji-button {
655                     height: $picker-emoji-button-size;
656                     width: $picker-emoji-button-size;
657                 }
658             }
659         }
661         @include media-breakpoint-down(xs) {
662             right: -1 * map-get($spacers, 2);
663         }
664     }
666     @media (max-height: 495px) {
667         .emoji-picker-container {
668             position: fixed;
669             top: 0;
670             transform: none;
671         }
672     }
674     .emoji-auto-complete-container {
675         overflow: auto;
676         // Add a 50px buffer to account for scroll bars.
677         max-height: $picker-row-height + 50px;
678         transition: max-height .15s ease-in-out;
679         visibility: visible;
681         &.hidden {
682             display: block;
683             max-height: 0;
684             visibility: hidden;
685             overflow: hidden;
686             transition: max-height .15s ease-in-out, visibility 0s linear .15s, overflow 0s linear .15s;
687         }
688     }