Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
/* modules.less */
2
 
3
// The home for small tweaks to modules that don't require
4
// changes drastic enough to pull in the full module css
5
// and replace it completely
6
// Plus some misc. odds and ends
7
 
8
select {
9
    width: auto;
10
}
11
 
12
.path-mod {
13
    .activity-header:not(:empty) {
14
        background-color: $gray-100;
15
        margin-bottom: map-get($spacers, 3);
16
        padding-left: map-get($spacers, 3);
17
        padding-right: map-get($spacers, 3);
18
 
19
        @include border-radius();
20
 
21
        & > div:last-child > div:last-child {
22
            border-bottom: 0;
23
        }
24
    }
25
    .activity-information {
26
 
27
        .activity-dates {
28
            padding-top: map-get($spacers, 3);
29
            padding-bottom: map-get($spacers, 3);
30
            border-bottom: $border-width solid $border-color;
31
        }
32
        .completion-info {
33
            padding-top: map-get($spacers, 3);
34
            padding-bottom: map-get($spacers, 3);
35
            border-bottom: $border-width solid $border-color;
36
        }
37
    }
38
    .activity-description {
39
        padding-top: map-get($spacers, 3);
40
        padding-bottom: map-get($spacers, 3);
41
        & > .box.py-3 {
42
            padding-top: 0 !important; /* stylelint-disable-line declaration-no-important */
43
            padding-bottom: 0 !important; /* stylelint-disable-line declaration-no-important */
44
        }
45
        & > .box.py-3:empty {
46
            display: none;
47
        }
48
    }
49
    .automatic-completion-conditions .badge {
50
        font-size: 80%;
51
        padding: map-get($spacers, 2);
52
        margin-top: map-get($spacers, 1);
53
        mix-blend-mode: multiply;
54
        &.badge-light {
55
            background-color: $gray-200 !important; /* stylelint-disable-line declaration-no-important */
56
        }
57
 
58
        .icon {
59
            width: 0.7rem;
60
            height: 0.7rem;
61
            font-size: 0.7rem;
62
        }
63
 
64
        &:first-child {
65
            margin-top: 0;
66
        }
67
    }
68
    .activity-description .no-overflow p:last-child {
69
        padding-bottom: 0;
70
        margin-bottom: 0;
71
    }
72
}
73
 
74
// Choice module
75
 
76
.path-mod-choice {
77
    .horizontal .choices .option {
78
        display: inline-block;
79
    }
80
}
81
 
82
.path-mod-choice {
83
    .choices .option label {
84
        vertical-align: top;
85
    }
86
}
87
 
88
// Forum module
89
 
90
.path-mod-forum .forumsearch {
91
    input,
92
    .helptooltip {
93
        margin: 0 3px;
94
    }
95
}
96
 
97
.path-mod-forum .forumheaderlist,
98
.path-mod-forum .forumheaderlist td {
99
    border: none;
100
}
101
 
102
.path-mod-forum {
103
    .forumheaderlist {
104
        thead .header,
105
        tbody .discussion td {
106
            white-space: normal;
107
            vertical-align: top;
108
            padding-left: 0.5em;
109
            padding-right: 0.5em;
110
        }
111
 
112
        thead .header {
113
            white-space: normal;
114
            vertical-align: top;
115
        }
116
 
117
        thead .header.replies {
118
            text-align: center;
119
        }
120
 
121
        thead .header.lastpost {
122
            text-align: right;
123
        }
124
 
125
        thead .header th,
126
        tbody .discussion td {
127
            &.discussionsubscription {
128
                width: 16px;
129
                padding-left: 0.5em;
130
                padding-right: 0.5em;
131
            }
132
        }
133
 
134
        .discussion {
135
            .replies,
136
            .lastpost {
137
                white-space: normal;
138
            }
139
 
140
            .discussionsubscription,
141
            .replies {
142
                text-align: center;
143
            }
144
 
145
            .topic,
146
            .discussionsubscription,
147
            .topic.starter,
148
            .replies,
149
            .lastpost {
150
                vertical-align: top;
151
            }
152
        }
153
    }
154
 
155
    .discussion-list {
156
        .topic {
157
            // Do not use the default bold style for the table headings.
158
            font-weight: inherit;
159
        }
160
    }
161
}
162
 
163
.discussion-settings-container {
164
    .custom-select {
165
        width: 100%;
166
    }
167
 
168
    input {
169
        max-width: 100%;
170
    }
171
}
172
 
173
.forumpost {
174
    border: $border-width solid $border-color;
175
    display: block;
176
    padding: 6px;
177
 
178
    .header {
179
        margin-bottom: 3px;
180
    }
181
 
182
    .picture img {
183
        margin: 3px;
184
 
185
        &.userpicture {
186
            margin-left: 3px;
187
            margin-right: 10px;
188
        }
189
    }
190
 
191
    .content {
192
        .posting.fullpost {
193
            margin-top: 8px;
194
        }
195
    }
196
 
197
    .row {
198
        display: block;
199
        .topic,
200
        .content-mask,
201
        .options {
202
            margin-left: 48px;
203
        }
204
 
205
        &.side {
206
            clear: both;
207
        }
208
    }
209
}
210
 
211
.forumpost .row .left {
212
    width: 48px;
213
}
214
 
215
.forumpost .options .commands {
216
    margin-left: 0;
217
}
218
 
219
.forumpost .subject {
220
    font-weight: bold;
221
}
222
 
223
// Override hardcoded forum modules styling
224
.forumsearch input[type=text] {
225
    margin-bottom: 0;
226
}
227
 
228
#page-mod-forum-view {
229
    table {
230
        .fit-content {
231
            width: 1px;
232
            white-space: nowrap;
233
        }
234
 
235
        .limit-width {
236
            max-width: 200px;
237
            white-space: nowrap;
238
            text-overflow: ellipsis;
239
            overflow: hidden;
240
 
241
            .author-info {
242
                max-width: calc(100% - 35px - .5rem);
243
            }
244
        }
245
    }
246
}
247
 
248
$author-image-width: 70px;
249
$author-image-margin: 24px;
250
$author-image-width-sm: 30px;
251
$author-image-margin-sm: 8px;
252
 
253
/** Gently highlight the selected post by changing it's background to blue and then fading it out. */
254
@keyframes background-highlight {
255
    from {
256
        background-color: $modules-highlight-bg;
257
    }
258
    to {
259
        background-color: inherit;
260
    }
261
}
262
 
263
.path-mod-forum .nested-v2-display-mode,
264
.path-mod-forum.nested-v2-display-mode {
265
    .discussionsubscription {
266
        margin-top: 0;
267
        text-align: inherit;
268
        margin-bottom: 0;
269
    }
270
 
271
    .preload-subscribe,
272
    .preload-unsubscribe {
273
        display: none;
274
    }
275
 
276
    .post-message {
277
        line-height: 1.6;
278
    }
279
 
280
    .indent {
281
        margin-left: 0;
282
    }
283
 
284
    /** Reset the badge styling back to pill style. */
285
    .badge {
286
        font-size: inherit;
287
        font-weight: inherit;
288
        padding-left: .5rem;
289
        padding-right: .5rem;
290
        border-radius: 10rem;
291
    }
292
 
293
    .badge-light {
294
        background-color: $modules-badge-bg;
295
        color: $modules-badge-color;
296
    }
297
 
298
    /** Style the ratings like a badge. */
299
    .rating-aggregate-container {
300
        background-color: $modules-rating-aggregate-bg;
301
        color: $modules-rating-aggregate-color;
302
        padding: .25em .5em;
303
        line-height: 1;
304
        margin-right: .5rem;
305
        vertical-align: middle;
306
        border-radius: 10rem;
307
        text-align: center;
308
    }
309
 
310
    .ratinginput {
311
        padding: .25em 1.75rem 0.25em .75em;
312
        line-height: 1;
313
        height: auto;
314
        border-radius: 10rem;
315
 
316
        @include media-breakpoint-down(sm) {
317
            margin-top: .5rem;
318
        }
319
    }
320
 
321
    .group-image {
322
        width: 35px;
323
        height: 35px;
324
        margin-right: 0;
325
        float: none;
326
        display: inline-block;
327
    }
328
 
329
    /** Don't show the discussion locked alert in this mode because it's already indicated with a badge. */
330
    .alert.discussionlocked {
331
        @include sr-only();
332
    }
333
 
334
    /** Fix muted text contrast ratios for accessibility. */
335
    .text-muted,
336
    .dimmed_text {
337
        color: $modules-forum-muted-color !important; /* stylelint-disable-line declaration-no-important */
338
    }
339
 
340
    .author-header {
341
        font-style: italic;
342
 
343
        .author-name {
344
            font-style: normal;
345
        }
346
    }
347
 
348
    /** Make the tag list text screen reader visible only */
349
    .tag_list > b {
350
        @include sr-only();
351
    }
352
 
353
    :target > .focus-target {
354
        animation-name: background-highlight;
355
        animation-duration: 1s;
356
        animation-timing-function: ease-in-out;
357
        animation-iteration-count: 1;
358
    }
359
 
360
    .forum-post-container {
361
        .replies-container {
362
            .forum-post-container {
363
                border-top: 1px solid $modules-forum-post-border-color;
364
                padding-top: 1.5rem;
365
 
366
                .replies-container .forum-post-container {
367
                    border-top: none;
368
                    padding-top: 0;
369
                }
370
            }
371
 
372
            .inline-reply-container .reply-author {
373
                display: none;
374
            }
375
        }
376
 
377
        .post-message p:last-of-type {
378
            margin-bottom: 0;
379
        }
380
 
381
        .author-image-container {
382
            width: $author-image-width;
383
            margin-right: $author-image-margin;
384
            flex-shrink: 0;
385
        }
386
 
387
        .inline-reply-container textarea {
388
            border: 0;
389
            resize: none;
390
        }
391
 
392
        .indent {
393
            /**
394
             * The first post and first set of replies have a larger author image so offset the 2nd
395
             * set of replies by the image width + margin to ensure they align.
396
             */
397
            .indent {
398
                padding-left: $author-image-width + $author-image-margin;
399
 
400
                /**
401
                 * Reduce the size of the the author image for all second level replies (and below).
402
                 */
403
                .author-image-container {
404
                    width: $author-image-width-sm;
405
                    margin-right: $author-image-margin-sm;
406
                    padding-top: (36px - $author-image-width-sm) * 0.5;
407
                }
408
 
409
                /**
410
                 * Adjust the indentation offset for all 3rd level replies and below for the smaller author image.
411
                 */
412
                .indent {
413
                    padding-left: $author-image-width-sm + $author-image-margin-sm;
414
 
415
                    /**
416
                     * Stop indenting the replies after the 5th reply.
417
                     */
418
                    .indent .indent .indent {
419
                        padding-left: 0;
420
                    }
421
                }
422
            }
423
        }
424
    }
425
}
426
 
427
/** Extra small devices (portrait phones, less than 576px). */
428
@include media-breakpoint-down(sm) {
429
    #page-mod-forum-discuss.nested-v2-display-mode {
430
        .forum-post-container {
431
            .author-image-container {
432
                width: $author-image-width-sm;
433
                margin-right: $author-image-margin-sm;
434
            }
435
 
436
            .indent {
437
                .indent {
438
                    padding-left: $author-image-width-sm + $author-image-margin-sm;
439
 
440
                    .indent .indent {
441
                        padding-left: 0;
442
                    }
443
                }
444
            }
445
        }
446
 
447
        .group-image {
448
            width: 30px;
449
            height: 30px;
450
        }
451
    }
452
}
453
 
454
// Make filter popover content scrollable if needed.
455
.filter-scrollable {
456
    overflow-y: auto;
457
    max-height: 25em;
458
    margin-bottom: 1em;
459
}
460
 
461
// Required to fit a date mform into a filter popover.
462
.filter-dates-popover {
463
    width: 100%;
464
    max-width: 41.5em;
465
}
466
 
467
$grading-drawer-width: 430px !default;
468
$grading-animation-duration: .3s !default;
469
$grading-icon-button-size: 36px !default;
470
$grading-search-button-padding-left: calc(#{map-get($spacers, 2)} + 8px) !default;
471
$grading-search-input-padding-left: calc(#{map-get($spacers, 2)} + #{map-get($spacers, 2)} + #{$grading-icon-button-size - ($input-border-width * 2)}) !default; /* stylelint-disable-line max-line-length */
472
$grading-search-input-padding-right: calc(#{map-get($spacers, 2)} + #{$grading-icon-button-size}) !default;
473
$grading-nav-bar-active-drawer-button-bottom: calc(#{map-get($spacers, 2) * -1} - 1px) !default;
474
$grading-content-show-content-button-padding-left: calc(#{map-get($spacers, 2) * 2} + 45px) !default;
475
 
476
@keyframes expandSearchButton {
477
    from {
478
        height: $grading-icon-button-size;
479
        width: $grading-icon-button-size;
480
        border-radius: $grading-icon-button-size * 0.5;
481
        background-color: $gray-200;
482
    }
483
    to {
484
        width: 100%;
485
        height: $input-height-lg;
486
        border-radius: 0;
487
        background-color: $input-bg;
488
        border-color: $input-border-color;
489
        padding-left: $grading-search-button-padding-left;
490
        padding-top: $input-padding-y-lg;
491
        padding-bottom: $input-padding-y-lg;
492
        @include font-size($input-font-size-lg);
493
        line-height: $input-line-height-lg;
494
        right: 0;
495
    }
496
}
497
 
498
@keyframes collapseSearchButton {
499
    from {
500
        width: 100%;
501
        height: $input-height-lg;
502
        border-radius: 0;
503
        background-color: $input-bg;
504
        border-color: $input-border-color;
505
        padding-left: $grading-search-button-padding-left;
506
        padding-top: $input-padding-y-lg;
507
        padding-bottom: $input-padding-y-lg;
508
        @include font-size($input-font-size-lg);
509
        line-height: $input-line-height-lg;
510
        right: 0;
511
    }
512
    to {
513
        height: $grading-icon-button-size;
514
        width: $grading-icon-button-size;
515
        border-radius: $grading-icon-button-size * 0.5;
516
        background-color: $gray-200;
517
    }
518
}
519
 
520
.path-mod-forum .unified-grader {
521
    @include media-breakpoint-up(xs) {
522
        .navbar {
523
            max-height: none;
524
            z-index: 1;
525
        }
526
    }
527
 
528
    .body-container {
529
        overflow: auto;
530
        &.hidden {
531
            display: none !important; /* stylelint-disable-line declaration-no-important */
532
        }
533
    }
534
 
535
    .userpicture {
536
        height: 60px;
537
        width: 60px;
538
    }
539
 
540
    .grader-grading-panel {
541
        top: 0;
542
        position: absolute;
543
        height: 100%;
544
        z-index: 0;
545
        width: $grading-drawer-width;
546
 
547
        &.hidden {
548
            right: ($grading-drawer-width * -1);
549
        }
550
 
551
        .grading-icon {
552
            width: $grading-icon-button-size;
553
        }
554
 
555
        .user-picker-container {
556
            .user-full-name {
557
                max-width: 240px;
558
            }
559
 
560
            .page-link {
561
                width: $grading-icon-button-size;
562
                height: $grading-icon-button-size;
563
                display: flex;
564
                text-align: center;
565
                align-items: center;
566
                justify-content: center;
567
            }
568
        }
569
 
570
        .header-container {
571
            height: 65px;
572
            position: relative;
573
            overflow: hidden;
574
 
575
            .info-container {
576
                position: absolute;
577
                top: 50%;
578
                left: 0;
579
                transform: translateY(-50%);
580
                width: 100%;
581
                height: 100%;
582
                padding: map-get($spacers, 2);
583
                padding-right: calc(#{$grading-icon-button-size} + #{map-get($spacers, 2)});
584
                opacity: 1;
585
                visibility: visible;
586
                transition: left $grading-animation-duration ease-in-out;
587
                z-index: 1;
588
            }
589
 
590
            .toggle-search-button {
591
                &.expand {
592
                    animation-name: expandSearchButton;
593
                    animation-duration: $grading-animation-duration;
594
                    animation-timing-function: ease-in-out;
595
                }
596
 
597
                &.collapse {
598
                    display: block;
599
                    animation-name: collapseSearchButton;
600
                    animation-duration: $grading-animation-duration;
601
                }
602
            }
603
 
604
            .user-search-container {
605
                overflow: hidden;
606
                position: absolute;
607
                top: 50%;
608
                right: 0;
609
                transform: translateY(-50%);
610
                z-index: 2;
611
                width: 100%;
612
                height: 100% !important; /* stylelint-disable-line declaration-no-important */
613
                padding: map-get($spacers, 2);
614
 
615
                .search-input-container {
616
                    position: relative;
617
                    overflow: visible;
618
                    flex-wrap: nowrap;
619
 
620
                    input {
621
                        padding-left: $grading-search-input-padding-left;
622
                        padding-right: $grading-search-input-padding-right;
623
                        opacity: 1;
624
                        visibility: visible;
625
                        transition:
626
                            opacity 0s linear $grading-animation-duration,
627
                            visibility 0s linear;
628
                    }
629
 
630
                    .search-icon {
631
                        position: absolute;
632
                        top: 50%;
633
                        left: map-get($spacers, 2);
634
                        transform: translateY(-50%);
635
                        color: $input-color;
636
                        height: $grading-icon-button-size;
637
                        width: $grading-icon-button-size - ($input-border-width * 2);
638
                        background-color: $input-bg;
639
                        opacity: 1;
640
                        visibility: visible;
641
                        transition:
642
                            opacity 0s linear $grading-animation-duration,
643
                            visibility 0s linear $grading-animation-duration;
644
                    }
645
 
646
                    .toggle-search-button {
647
                        position: absolute;
648
                        top: 50%;
649
                        right: map-get($spacers, 2);
650
                        transform: translateY(-50%);
651
                        z-index: 1;
652
                        color: inherit;
653
                        text-align: left;
654
                        padding-left: 9px;
655
                        transition: right 0s linear $grading-animation-duration;
656
 
657
                        .expanded-icon {
658
                            opacity: 1;
659
                            visibility: visible;
660
                            max-width: 50px;
661
                            max-height: 50px;
662
                            transition:
663
                                opacity 0s linear $grading-animation-duration,
664
                                max-height 0s linear $grading-animation-duration,
665
                                max-width 0s linear $grading-animation-duration,
666
                                visibility 0s linear $grading-animation-duration;
667
                        }
668
 
669
                        .collapsed-icon {
670
                            opacity: 0;
671
                            visibility: hidden;
672
                            max-height: 0;
673
                            max-width: 0;
674
                            overflow: hidden;
675
                            transition:
676
                                opacity 0s linear $grading-animation-duration,
677
                                max-height 0s linear $grading-animation-duration,
678
                                max-width 0s linear $grading-animation-duration,
679
                                visibility 0s linear $grading-animation-duration;
680
                        }
681
                    }
682
                }
683
 
684
                &.collapsed {
685
                    width: calc(#{$grading-icon-button-size} + #{map-get($spacers, 2)} + #{map-get($spacers, 2)});
686
                    transition: width $grading-animation-duration ease-in-out;
687
 
688
                    .search-input-container {
689
                        flex-wrap: nowrap;
690
 
691
                        input,
692
                        .search-icon {
693
                            opacity: 0;
694
                            visibility: hidden;
695
                            transition:
696
                                opacity 0s linear,
697
                                visibility 0s linear;
698
                        }
699
 
700
                        input {
701
                            padding-left: 0;
702
                            padding-right: 0;
703
                        }
704
 
705
                        .toggle-search-button {
706
                            .expanded-icon {
707
                                opacity: 0;
708
                                visibility: hidden;
709
                                max-height: 0;
710
                                max-width: 0;
711
                                overflow: hidden;
712
                                transition:
713
                                    opacity 0s linear,
714
                                    max-height 0s linear,
715
                                    max-width 0s linear,
716
                                    visibility 0s linear;
717
                            }
718
 
719
                            .collapsed-icon {
720
                                opacity: 1;
721
                                visibility: visible;
722
                                max-width: 50px;
723
                                max-height: 50px;
724
                                transition:
725
                                    opacity 0s linear,
726
                                    max-height 0s linear,
727
                                    max-width 0s linear,
728
                                    visibility 0s linear;
729
                            }
730
                        }
731
                    }
732
                }
733
            }
734
 
735
            .user-search-container:not(.collapsed) + .info-container {
736
                opacity: 0;
737
                visibility: hidden;
738
                left: calc(100% * -1);
739
                transition:
740
                    left $grading-animation-duration ease-in-out,
741
                    opacity 0s linear $grading-animation-duration,
742
                    visibility 0s linear $grading-animation-duration,
743
                    padding 0s linear $grading-animation-duration;
744
            }
745
        }
746
    }
747
 
748
    .grader-module-content {
749
        overflow-y: auto;
750
        margin-right: $grading-drawer-width;
751
        @include transition(margin-right .2s ease-in-out);
752
    }
753
 
754
    .drawer-button {
755
        position: relative;
756
 
757
        &.active::after {
758
            content: "";
759
            position: absolute;
760
            bottom: $grading-nav-bar-active-drawer-button-bottom;
761
            left: 0;
762
            width: 100%;
763
            height: 3px;
764
            background-color: map-get($theme-colors, 'primary');
765
        }
766
 
767
        .icon {
768
            font-size: 20px;
769
            height: 20px;
770
            width: 20px;
771
        }
772
    }
773
 
774
    .grader-module-content-display {
775
        .discussion-container {
776
            &:last-of-type {
777
                > hr {
778
                    display: none;
779
                }
780
            }
781
 
782
            .posts-container {
783
                &:last-of-type {
784
                    > hr {
785
                        display: none;
786
                    }
787
                }
788
 
789
                .parent-container {
790
                    position: relative;
791
 
792
                    .show-content-button {
793
                        position: absolute;
794
                        height: 100%;
795
                        width: 100%;
796
                        left: 0;
797
                        top: 0;
798
                        padding-left: $grading-content-show-content-button-padding-left;
799
                        text-align: left;
800
                        z-index: 1;
801
 
802
                        &:not(.collapsed) {
803
                            display: none;
804
                        }
805
                    }
806
 
807
                    .content {
808
                        display: block;
809
                        height: auto !important; /* stylelint-disable-line declaration-no-important */
810
 
811
                        .header {
812
                            transition: margin-bottom $grading-animation-duration ease-in-out;
813
 
814
                            div + div {
815
                                opacity: 1;
816
                                visibility: visible;
817
                                max-height: none;
818
                                transition:
819
                                    opacity $grading-animation-duration linear,
820
                                    visibility 0s linear;
821
                            }
822
                        }
823
 
824
                        .body-content-container {
825
                            opacity: 1;
826
                            visibility: visible;
827
                            max-height: none;
828
                            transition:
829
                                opacity $grading-animation-duration linear,
830
                                visibility 0s linear;
831
                        }
832
 
833
                        .forum-post-core {
834
                            opacity: 1;
835
                            visibility: visible;
836
                            max-height: none;
837
                            transition:
838
                                opacity $grading-animation-duration linear,
839
                                visibility 0s linear;
840
                        }
841
                    }
842
 
843
                    .show-content-button.collapsed + .content {
844
                        opacity: .3;
845
 
846
                        .header {
847
                            margin-bottom: 0 !important; /* stylelint-disable-line declaration-no-important */
848
 
849
                            div + div {
850
                                opacity: 0;
851
                                visibility: hidden;
852
                                max-height: 0;
853
                            }
854
                        }
855
 
856
                        .body-content-container {
857
                            opacity: 0;
858
                            visibility: hidden;
859
                            max-height: 0;
860
                        }
861
 
862
                        .forum-post-core {
863
                            opacity: 0;
864
                            visibility: hidden;
865
                            max-height: 0;
866
                        }
867
                    }
868
 
869
                    .show-content-button.collapsed:hover + .content,
870
                    .show-content-button.collapsed:focus + .content {
871
                        opacity: 1;
872
                    }
873
                }
874
            }
875
        }
876
 
877
        .no-post-container {
878
            .icon {
879
                height: 250px;
880
                width: 250px;
881
                margin-right: 0;
882
            }
883
        }
884
 
885
        .nested-v2-display-mode {
886
            .discussion-container {
887
                .posts-container {
888
                    .parent-container {
889
                        .show-content-button {
890
                            padding-left: $author-image-width + $author-image-margin;
891
                        }
892
                    }
893
                }
894
            }
895
        }
896
    }
897
 
898
    .no-search-results-container {
899
        .icon {
900
            height: 250px;
901
            width: 250px;
902
            margin-right: 0;
903
        }
904
    }
905
 
906
    .nested-v2-display-mode {
907
        .view-context-button {
908
            margin-left: $author-image-width + $author-image-margin;
909
            border-radius: $border-radius-lg;
910
        }
911
 
912
        .parent-container {
913
            .author-image-container {
914
                position: relative;
915
 
916
                &:after {
917
                    position: absolute;
918
                    top: calc(#{$author-image-width} + #{map-get($spacers, 2)});
919
                    content: "";
920
                    background-color: $gray-200;
921
                    width: 2px;
922
                    height: calc(100% - #{$author-image-width} + #{map-get($spacers, 2)});
923
                }
924
            }
925
        }
926
 
927
        .parent-container + .post-container {
928
            .author-image-container {
929
                img {
930
                    width: $author-image-width-sm !important; /* stylelint-disable-line declaration-no-important */
931
                }
932
            }
933
        }
934
    }
935
}
936
 
937
.path-mod-forum .unified-grader .nested-v2-display-mode,
938
.path-mod-forum .modal .nested-v2-display-mode {
939
    .post-subject {
940
        display: none;
941
    }
942
}
943
 
944
@include media-breakpoint-down(xs) {
945
    .path-mod-forum .unified-grader {
946
        .grader-grading-panel {
947
            width: 100%;
948
            position: fixed;
949
            height: calc(100vh - 50px);
950
            overflow: scroll;
951
            top: 50px;
952
        }
953
        .body-container {
954
            overflow: visible;
955
        }
956
    }
957
}
958
 
959
// End styling for mod_forum.
960
 
961
.maincalendar .calendarmonth td,
962
.maincalendar .calendarmonth th {
963
    border: 1px dotted $table-border-color;
964
}
965
 
966
.path-grade-report-grader h1 {
967
    text-align: inherit;
968
}
969
 
970
#page-mod-chat-gui_basic input#message {
971
    max-width: 100%;
972
}
973
 
974
#page-mod-data-view #singleimage {
975
    width: auto;
976
}
977
 
978
.template_heading {
979
    margin-top: 10px;
980
}
981
 
982
.breadcrumb-button {
983
    margin-top: 4px;
984
}
985
 
986
.breadcrumb-button .singlebutton {
987
    float: left;
988
    margin-left: 4px;
989
}
990
 
991
.langmenu form {
992
    margin: 0;
993
}
994
// contributed by Paul Hibbitts, see http://msdn.microsoft@mixin com/en-us/library/ie/jj583807(v=vs.85).aspx
995
canvas {
996
    -ms-touch-action: auto;
997
}
998
 
999
div#dock {
1000
    display: none;
1001
}
1002
 
1003
// Choice module
1004
 
1005
// Lesson module
1006
 
1007
/** General styles (scope: all of lesson) **/
1008
.path-mod-lesson .invisiblefieldset.fieldsetfix {
1009
    display: block;
1010
}
1011
.path-mod-lesson .answeroption .checkbox label p {
1012
    display: inline;
1013
}
1014
.path-mod-lesson .slideshow {
1015
    overflow: auto;
1016
    padding: 15px;
1017
}
1018
#page-mod-lesson-view .branchbuttoncontainer .singlebutton button[type="submit"] {
1019
    white-space: normal;
1020
}
1021
#page-mod-lesson-view {
1022
    .vertical .singlebutton {
1023
        display: block;
1024
        + .singlebutton {
1025
            margin-left: 0;
1026
            margin-top: 1rem;
1027
        }
1028
    }
1029
    .fitem .felement .custom-select {
1030
        align-self: flex-start;
1031
    }
1032
}
1033
.path-mod-lesson .generaltable td {
1034
    vertical-align: middle;
1035
    label {
1036
        margin-bottom: 0;
1037
    }
1038
    .highlight {
1039
        display: inline-block;
1040
        margin-left: 0.25rem;
1041
    }
1042
    input[type="checkbox"] {
1043
        display: block;
1044
    }
1045
}
1046
 
1047
.path-mod-wiki .wiki_headingtitle,
1048
.path-mod-wiki .midpad,
1049
.path-mod-wiki .wiki_headingtime {
1050
    text-align: inherit;
1051
}
1052
 
1053
.path-mod-wiki .wiki_contentbox {
1054
    width: 100%;
1055
}
1056
 
1057
// Survey module
1058
 
1059
.path-mod-survey {
1060
    .surveytable {
1061
        > tbody > tr:nth-of-type(odd) {
1062
            background-color: $table-bg;
1063
        }
1064
 
1065
        > tbody > tr:nth-of-type(even) {
1066
            background-color: $table-accent-bg;
1067
        }
1068
 
1069
        .rblock label {
1070
            text-align: center;
1071
        }
1072
    }
1073
 
1074
}
1075
 
1076
.nav .caret {
1077
    margin-left: 4px;
1078
}
1079
 
1080
// Dividers
1081
.nav {
1082
    .divider {
1083
        overflow: hidden;
1084
        width: 0;
1085
    }
1086
}
1087
 
1088
// Usermenu
1089
.userloggedinas,
1090
.userswitchedrole,
1091
.loginfailures {
1092
    .usermenu {
1093
        .usertext {
1094
            float: left;
1095
            text-align: right;
1096
            margin-right: $spacer * 0.5;
1097
            height: 35px;
1098
            .meta {
1099
                font-size: $font-size-sm;
1100
                align-items: center;
1101
            }
1102
        }
1103
        .avatar {
1104
            img {
1105
                margin: 0;
1106
            }
1107
        }
1108
    }
1109
}
1110
 
1111
.userloggedinas .usermenu {
1112
    .userbutton .avatars {
1113
        position: relative;
1114
        display: inline-block;
1115
        .avatar {
1116
            &.current {
1117
                display: inline-block;
1118
                position: absolute;
1119
                bottom: 0;
1120
                right: 0;
1121
                width: 20px;
1122
                height: 20px;
1123
                border-radius: 50%;
1124
                img {
1125
                    vertical-align: baseline;
1126
                }
1127
                .userinitials.size-35 {
1128
                    width: 20px;
1129
                    height: 20px;
1130
                    border: $border-width solid $border-color;
1131
                    background-color: $white;
1132
                    font-size: $font-size-base * .6;
1133
                }
1134
            }
1135
            img {
1136
                width: inherit;
1137
                height: inherit;
1138
            }
1139
        }
1140
        .realuser {
1141
            width: 35px;
1142
            height: 35px;
1143
            display: inline-block;
1144
        }
1145
    }
1146
}
1147
 
1148
.userinitials {
1149
    background-color: $gray-200;
1150
    vertical-align: middle;
1151
    display: inline-flex;
1152
    align-items: center;
1153
    justify-content: center;
1154
    border-radius: 50%;
1155
    color: $gray-800;
1156
    font-weight: normal;
1157
    margin-right: $spacer * 0.25;
1158
    &.size-16,
1159
    &.size-30 {
1160
        font-size: 0.7rem;
1161
        width: 30px;
1162
        height: 30px;
1163
    }
1164
    &.size-35 {
1165
        width: 35px;
1166
        height: 35px;
1167
    }
1168
    &.size-50 {
1169
        width: 50px;
1170
        height: 50px;
1171
    }
1172
    &.size-64 {
1173
        width: 64px;
1174
        height: 64px;
1175
    }
1176
    &.size-100 {
1177
        width: 100px;
1178
        height: 100px;
1179
        font-size: $h2-font-size;
1180
    }
1181
}
1182
 
1183
img.userpicture {
1184
    margin-right: $spacer * 0.25;
1185
}
1186
 
1187
@include media-breakpoint-down(sm) {
1188
    .usertext {
1189
        display: none;
1190
    }
1191
}
1192
 
1193
// Quiz module
1194
#page-mod-quiz-mod #id_reviewoptionshdr .col-md-3,
1195
#page-mod-quiz-mod #id_reviewoptionshdr .col-md-9 {
1196
    width: auto;
1197
    max-width: none;
1198
}
1199
 
1200
#page-mod-quiz-mod #id_reviewoptionshdr .fcontainer > .fitem {
1201
    float: left;
1202
    width: 20rem;
1203
    display: inline-block;
1204
    min-height: 12rem;
1205
}
1206
 
1207
#page-mod-quiz-mod #id_reviewoptionshdr .btn-link {
1208
    line-height: 1.5;
1209
    vertical-align: bottom;
1210
}
1211
#page-mod-quiz-mod #id_reviewoptionshdr .form-check {
1212
    width: auto;
1213
    height: 22px;
1214
    justify-content: flex-start;
1215
}
1216
 
1217
#page-mod-quiz-mod #id_reviewoptionshdr .review_option_item {
1218
    width: 90%;
1219
    height: 22px;
1220
}
1221
 
1222
// Question navigation block.
1223
.path-mod-quiz #mod_quiz_navblock {
1224
    .qnbutton {
1225
        text-decoration: none;
1226
        font-size: 14px;
1227
        line-height: 20px;
1228
        font-weight: normal;
1229
        background-color: $card-bg;
1230
        background-image: none;
1231
        height: 40px;
1232
        width: 30px;
1233
        border-radius: 3px;
1234
        border: 0;
1235
        overflow: hidden;
1236
        white-space: nowrap;
1237
        margin: 0 6px 6px 0;
1238
    }
1239
 
1240
    span.qnbutton {
1241
        cursor: default;
1242
        background-color: $input-disabled-bg;
1243
        color: $gray-700;
1244
    }
1245
 
1246
    a.qnbutton:hover,
1247
    a.qnbutton:active,
1248
    a.qnbutton:focus {
1249
        text-decoration: underline;
1250
    }
1251
 
1252
    .qnbutton .thispageholder {
1253
        border: 1px solid;
1254
        border-radius: 3px;
1255
        z-index: 1;
1256
    }
1257
 
1258
    .qnbutton.thispage .thispageholder {
1259
        border-width: 3px;
1260
    }
1261
 
1262
    .allquestionsononepage .qnbutton.thispage .thispageholder {
1263
        border-width: 1px;
1264
    }
1265
 
1266
    .qnbutton.flagged .thispageholder {
1267
        background: transparent url([[pix:theme|mod/quiz/flag-on]]) 15px 0 no-repeat;
1268
    }
1269
 
1270
    .qnbutton .trafficlight {
1271
        border: 0;
1272
        background: $card-bg none center / 10px no-repeat scroll;
1273
        height: 20px;
1274
        margin-top: 20px;
1275
        border-radius: 0 0 3px 3px;
1276
    }
1277
 
1278
    .qnbutton.notyetanswered .trafficlight,
1279
    .qnbutton.invalidanswer .trafficlight {
1280
        background-color: $card-bg;
1281
    }
1282
 
1283
    .qnbutton.invalidanswer .trafficlight {
1284
        background-image: url([[pix:theme|mod/quiz/warningtriangle]]);
1285
    }
1286
 
1287
    .qnbutton.correct .trafficlight {
1288
        background-image: url([[pix:theme|mod/quiz/checkmark]]);
1289
        background-color: $success;
1290
    }
1291
 
1292
    .qnbutton.blocked .trafficlight {
1293
        background-image: url([[pix:core|t/locked]]);
1294
        background-color: $input-disabled-bg;
1295
    }
1296
 
1297
    .qnbutton.notanswered .trafficlight,
1298
    .qnbutton.incorrect .trafficlight {
1299
        background-color: $danger;
1300
    }
1301
 
1302
    .qnbutton.partiallycorrect .trafficlight {
1303
        background-image: url([[pix:theme|mod/quiz/whitecircle]]);
1304
        background-color: $warning;
1305
    }
1306
 
1307
    .qnbutton.complete .trafficlight,
1308
    .qnbutton.answersaved .trafficlight,
1309
    .qnbutton.requiresgrading .trafficlight {
1310
        background-color: $gray-600;
1311
    }
1312
}
1313
 
1314
#page-mod-quiz-edit ul.slots li.section li.activity .instancemaxmarkcontainer form input {
1315
    height: 1.4em;
1316
    vertical-align: middle;
1317
}
1318
 
1319
#page-mod-quiz-edit ul.slots li.section li.activity .instancemaxmarkcontainer {
1320
    padding: 0.5em 0 0.5em 0.1em;
1321
    margin: 2px;
1322
}
1323
 
1324
/* Countdown timer. */
1325
#page-mod-quiz-attempt #region-main {
1326
    overflow-x: inherit;
1327
}
1328
 
1329
#quiz-timer-wrapper {
1330
    display: none;
1331
    position: sticky;
1332
    justify-content: end;
1333
    top: $navbar-height + 5px;
1334
    z-index: $zindex-sticky;
1335
    #quiz-timer {
1336
        border: $border-width solid $red;
1337
        background-color: $white;
1338
    }
1339
}
1340
.pagelayout-embedded #quiz-timer-wrapper {
1341
    top: 5px;
1342
}
1343
 
1344
@for $i from 0 through 16 {
1345
    #quiz-timer-wrapper #quiz-timer.timeleft#{$i} {
1346
        $bg: lighten($red, ($i * 3%));
1347
        background-color: $bg;
1348
        color: color-yiq($bg);
1349
    }
1350
}
1351
 
1352
// Assign.
1353
.path-mod-assign [data-region="grade-actions-panel"] [data-region="grade-actions"] .collapse-buttons {
1354
    top: auto;
1355
}
1356
 
1357
// This section removes the responsiveness from the form in the grading panel
1358
$popout-header-font-size: 1.5 * $font-size-base;
1359
// This can't be calculated from modal-title-padding because we are mixing px and rem units.
1360
$popout-header-height: 4rem;
1361
 
1362
.path-mod-assign #page-content [data-region="grade-panel"] .mform:not(.unresponsive) .fcontainer .fitem.popout .felement {
1363
    height: calc(100% - #{$popout-header-height});
1364
}
1365
 
1366
.path-mod-assign [data-region="grade-panel"] {
1367
    padding-top: $spacer;
1368
}
1369
.path-mod-assign [data-region="grade-panel"] .fitem > .col-md-3,
1370
.path-mod-assign [data-region="grade-panel"] .fitem > .col-md-9 {
1371
    width: 100%;
1372
    padding: 0;
1373
    max-width: 100%;
1374
    flex: none;
1375
}
1376
.path-mod-assign [data-region="grade-panel"] fieldset,
1377
.path-mod-assign [data-region="grade-panel"] .fitem.row {
1378
    margin: 0;
1379
}
1380
 
1381
.path-mod-assign [data-region="grade-panel"] .mform .fitem.has-popout .felement {
1382
    width: 100%;
1383
    overflow: auto;
1384
    height: calc(100% - 4rem);
1385
}
1386
 
1387
.path-mod-assign [data-region="grade-panel"] .mform .fitem .felement {
1388
    width: auto;
1389
}
1390
 
1391
// Now styles for the popout sections.
1392
 
1393
.path-mod-assign [data-region="grade-panel"] .popout {
1394
    background-color: $modal-content-bg;
1395
}
1396
 
1397
.path-mod-assign [data-region="grade-panel"] .fitem.has-popout {
1398
    background-color: $card-bg;
1399
    @include border-radius($card-border-radius);
1400
    border: $card-border-width solid $card-border-color;
1401
    padding: $card-spacer-x;
1402
    margin-bottom: $spacer;
1403
}
1404
.path-mod-assign [data-region="grade-panel"] .has-popout .col-md-3 {
1405
    border-bottom: $hr-border-width solid $hr-border-color;
1406
    margin-bottom: $spacer;
1407
}
1408
 
1409
 
1410
.path-mod-assign [data-region="grade-panel"] .popout > .col-md-3 {
1411
    display: flex;
1412
    align-items: flex-start;
1413
    justify-content: space-between;
1414
    font-size: $popout-header-font-size;
1415
}
1416
 
1417
.path-mod-assign [data-region="grade-panel"] .popout [data-region="popout-button"] {
1418
    margin-top: 0;
1419
}
1420
 
1421
// Now style the fixed header elements.
1422
 
1423
.path-mod-assign [data-region="assignment-info"] {
1424
    overflow-y: hidden;
1425
}
1426
 
1427
.path-mod-assign [data-region="grading-navigation"] {
1428
    padding: 6px;
1429
}
1430
 
1431
.path-mod-assign [data-region="grade-actions"] {
1432
    padding: 10px;
1433
}
1434
 
1435
.path-mod-assign [data-region="user-info"] .img-rounded {
1436
    margin-top: 0;
1437
}
1438
 
1439
.path-mod-assign [data-region="grading-navigation-panel"] {
1440
    height: 85px;
1441
}
1442
 
1443
@media (max-width: 767px) {
1444
    .path-mod-assign [data-region="grading-navigation-panel"] {
1445
        height: auto;
1446
    }
1447
    .path-mod-assign [data-region="user-info"] {
1448
        margin-top: 1rem;
1449
    }
1450
}
1451
 
1452
.path-mod-assign [data-region="grading-navigation"] [data-region="input-field"] input {
1453
    width: auto;
1454
    display: inline-block;
1455
}
1456
 
1457
/**
1458
 * Assign feedback.
1459
 */
1460
.assignfeedback_editpdf_widget * {
1461
    box-sizing: content-box;
1462
}
1463
 
1464
.assignfeedback_editpdf_widget button {
1465
    box-sizing: border-box;
1466
}
1467
 
1468
.assignfeedback_editpdf_widget .commentcolourbutton img {
1469
    border-width: 0;
1470
}
1471
 
1472
.assignfeedback_editpdf_widget .label {
1473
    position: relative;
1474
    padding: $alert-padding-y $alert-padding-x;
1475
    margin-bottom: $alert-margin-bottom;
1476
    border: $alert-border-width solid transparent;
1477
    @include border-radius($alert-border-radius);
1478
    @include alert-variant(theme-color-level('info', $alert-bg-level), theme-color-level('info', $alert-border-level), theme-color-level('info', $alert-color-level)); /* stylelint-disable-line max-line-length */
1479
}
1480
 
1481
.assignfeedback_editpdf_menu {
1482
    padding: 0;
1483
}
1484
 
1485
.path-mod-assign [data-region="grade-panel"] .gradingform_guide .remark .commentchooser {
1486
    float: none;
1487
}
1488
.path-mod-assign [data-region="grade-panel"] .gradingform_guide .markingguideremark {
1489
    width: 100%;
1490
}
1491
.path-mod-assign [data-region="grade-panel"] .mform .fitem .felement[data-fieldtype="grading"] {
1492
    padding-left: $spacer;
1493
    padding-right: $spacer;
1494
}
1495
.path-mod-assign [data-region="grade-panel"] .showmarkerdesc,
1496
.path-mod-assign [data-region="grade-panel"] .showstudentdesc {
1497
    background-color: $card-bg;
1498
}
1499
 
1500
/**
1501
 * Mod LTI.
1502
 */
1503
.path-admin-mod-lti {
1504
    .btn .loader img,
1505
    #tool-list-loader-container .loader img {
1506
        height: auto;
1507
    }
1508
}