Proyectos de Subversion Moodle

Rev

Rev 11 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1441 ariadna 1
/*
2
 * Course page styles.
1 efrain 3
 */
4
 
1441 ariadna 5
// Variables.
6
$activity-item-padding: 0.75rem !default;
1 efrain 7
$activity-border-radius: 1rem !default;
8
$activity-border-width: 2px !default;
9
$activity-hover-border-color: $primary !default;
10
$divider-color: $gray-300 !default;
11
$divider-width: 2px !default;
12
$divider-hover-color: $primary !default;
13
 
1441 ariadna 14
/* Course content */
1 efrain 15
 
1441 ariadna 16
.course-content ul.section-list {
17
    padding: 0;
18
    margin: 0;
19
}
20
 
21
// Re-style ordered list in course content.
22
.course-content .section-item,
23
.course-content .section-item .activity-item {
24
    ul {
25
        list-style: disc;
26
        ul {
27
            list-style: circle;
28
            ul {
29
                list-style: square;
1 efrain 30
            }
31
        }
32
    }
33
}
34
 
1441 ariadna 35
// Expand all/Collapse all.
1 efrain 36
.section-collapsemenu {
37
    .collapseall {
38
        display: block;
39
    }
40
 
41
    .expandall {
42
        display: none;
43
    }
44
 
45
    &.collapsed {
46
        .collapseall {
47
            display: none;
48
        }
49
 
50
        .expandall {
51
            display: block;
52
        }
53
    }
54
}
55
 
1441 ariadna 56
// Course 'add section' button.
57
.btn.add-section {
58
    @include border-radius($activity-border-radius);
59
    border: $divider-width dashed $border-color;
60
    color: $primary;
61
    font-size: $font-size-sm;
62
    font-weight: bold;
63
    &:hover,
64
    &:focus {
65
        background-color: $primary-light-background;
66
        border: $divider-width solid $primary;
67
        color: $primary;
68
    }
69
}
1 efrain 70
 
1441 ariadna 71
// Max sections reached alert.
72
.max-section-alert {
73
    border-top: $divider-width dashed $border-color;
74
    font-size: $font-size-sm;
75
    font-weight: normal;
76
    color: $gray-600;
77
}
78
 
79
/* Sections */
80
 
1 efrain 81
.course-section {
82
    list-style: none;
83
    margin-top: map-get($spacers, 3);
84
    // Custom styles for course sections while editing.
85
    .editing & {
86
        margin-top: map-get($spacers, 2);
87
    }
88
 
89
    .section-item {
90
        padding: map-get($spacers, 3);
91
        border: $border-width solid $border-color;
92
        @include border-radius($activity-border-radius);
93
    }
94
 
1441 ariadna 95
    &.hidden,
96
    &.orphaned {
1 efrain 97
        .section-item {
98
            background-color: $gray-100;
99
        }
100
    }
101
 
1441 ariadna 102
    // Highlighted section.
103
    &.current {
104
        > .section-item {
105
            position: relative;
106
            &::before {
107
                border-left: $primary 3px solid;
108
                bottom: 0;
109
                content: "";
110
                left: -8px;
111
                position: absolute;
112
                top: 0;
113
            }
114
        }
115
    }
116
 
1 efrain 117
    .sectionname > a {
118
        color: $gray-900;
119
        &:hover {
120
            text-decoration: none;
121
        }
122
    }
123
 
124
    .sectionbadges .badge {
125
        margin-left: map-get($spacers, 2);
126
        font-weight: normal;
127
        .icon {
128
            font-size: 12px;
129
            width: 12px;
130
            height: 12px;
131
        }
132
    }
133
 
134
    .course-section-header.draggable {
135
        cursor: move;
136
    }
137
 
138
    .section_action_menu {
139
        .dropdown-toggle::after {
140
            display: none;
141
        }
142
    }
143
 
144
    .summarytext {
145
        // Add rounded borders to images.
146
        img {
147
            @include border-radius($activity-border-radius);
148
        }
149
    }
150
 
151
    // Availability styles for both section and activities.
152
    .availabilityinfo {
153
        margin-top: map-get($spacers, 2);
154
        padding: map-get($spacers, 1) map-get($spacers, 3);
155
        background-color: $gray-200;
156
        @include font-size($small-font-size);
157
        @include border-radius($activity-border-radius);
158
        .editavailability {
159
            a {
160
                @include border-radius();
161
                font-weight: bold;
162
                &:hover {
163
                    background-color: $gray-400;
164
                }
165
                .icon {
166
                    font-size: inherit;
167
                    margin-right: map-get($spacers, 1);
168
                }
169
            }
170
        }
171
    }
172
 
1441 ariadna 173
    // Override '.btn-icon' styles from buttons.scss to make section action menu icons bigger.
174
    .section_action_menu > .action-menu {
175
        .btn-icon {
176
            font-size: $font-size-lg;
177
        }
1 efrain 178
    }
179
 
180
    .section-summary-activities {
181
        .icon {
182
            width: inherit;
183
            color: $primary;
184
        }
185
    }
186
 
187
    .section-summary-activities + .section {
188
        border-top: $border-width solid $border-color;
189
        margin-top: map-get($spacers, 3) !important;  // stylelint-disable-line declaration-no-important
190
        padding-top: map-get($spacers, 3) !important; // stylelint-disable-line declaration-no-important
191
    }
192
 
193
    .section_goto .icon {
194
        font-size: $font-size-lg;
195
        color: $primary;
196
    }
197
 
198
    // Add new z-index context for dnd overlay higher divider buttons and quick edit links.
199
    .overlay-preview {
200
        z-index: 5;
201
    }
202
}
203
 
1441 ariadna 204
// Old movehere link styles.
205
.section li.movehere a {
206
    display: block;
207
    width: 100%;
208
    height: 2rem;
209
    border: 2px dashed $gray-800;
1 efrain 210
}
211
 
1441 ariadna 212
/* Activities */
1 efrain 213
 
214
.activity {
215
    list-style: none;
216
    padding-top: map-get($spacers, 1);
217
    margin-top: map-get($spacers, 1);
218
    border-top: $border-width solid $border-color;
1441 ariadna 219
    &.indented {
220
        .activity-item {
221
            margin-left: map-get($spacers, 3);
222
        }
223
    }
224
    // Custom styles for activity while editing and for the first activity card in the section.
225
    .editing &,
226
    .section &:first-child {
1 efrain 227
        // Remove activity top border and spacing, while editing a separator is displayed.
228
        padding-top: 0;
229
        margin-top: 0;
230
        border-top: none;
231
    }
232
}
233
 
234
.activity-item {
1441 ariadna 235
    padding: $activity-item-padding;
236
    @include border-radius($activity-border-radius);
1 efrain 237
    &.activityinline {
1441 ariadna 238
        padding: $activity-item-padding 0;
1 efrain 239
    }
240
    &.hiddenactivity {
241
        background-color: $gray-100;
242
        .activityiconcontainer,
243
        .badge {
244
            mix-blend-mode: multiply;
245
        }
246
    }
247
    // Custom styles for activity cards while editing.
248
    .editing & {
249
        cursor: move;
250
        .a {
251
            cursor: pointer;
252
        }
1441 ariadna 253
        // Add a border on hover to the activity card (avoiding hover effect in inner activities).
254
        &:hover:not(:has(.activity:hover)),
1 efrain 255
        &.selected {
1441 ariadna 256
            // We use outline here to avoid changing the layout everytime we hover.
257
            outline: $activity-border-width solid $activity-hover-border-color;
1 efrain 258
            box-shadow: $box-shadow-sm;
259
            .activityiconcontainer,
260
            .badge {
261
                mix-blend-mode: multiply;
262
            }
263
        }
264
    }
1441 ariadna 265
    .activity.dragging & {
266
        border: $activity-border-width solid $activity-hover-border-color;
267
        .editing &:hover {
268
            // We cancel the outline when dragging because it is not taken into account
269
            // in the element/image representing the drag and drop and it cuts out part of the
270
            // border.
271
            outline: none;
272
        }
273
    }
1 efrain 274
 
275
    // Activity card grid layout.
276
    .activity-grid {
277
        display: grid;
278
        align-items: center;
279
        grid-template-columns: min-content 1fr min-content min-content min-content;
280
        grid-template-rows: 1fr repeat(5, min-content);
281
        grid-template-areas:
282
            "icon   name          groupmode      completion    actions"
283
            "icon   visibility    groupmode      completion    actions"
284
            "icon   dates         groupmode      completion    actions"
285
            "icon   altcontent    altcontent     altcontent    altcontent"
286
            "icon   afterlink     afterlink      afterlink     afterlink"
287
            "icon   availability  availability   availability  availability";
1441 ariadna 288
        @include media-breakpoint-down(sm) {
1 efrain 289
            grid-template-columns: min-content 1fr min-content min-content min-content;
290
            grid-template-rows: 1fr repeat(4, min-content);
291
            grid-template-areas:
292
                "icon          name          actions"
293
                "icon          visibility    actions"
294
                "dates         dates         dates"
295
                "groupmode     groupmode     groupmode"
296
                "completion    completion    completion"
297
                "altcontent    altcontent    altcontent"
298
                "afterlink     afterlink     afterlink"
299
                "availability  availability  availability";
300
        }
301
    }
302
    // Activity card specific grid layout for activities without name.
303
    .activity-grid.noname-grid {
304
        grid-template-columns: min-content 1fr min-content min-content;
305
        grid-template-areas:
306
            "visibility    groupmode        completion    actions"
307
            "altcontent    altcontent       altcontent    altcontent"
308
            "afterlink     afterlink        afterlink     afterlink"
309
            "availability  availability     availability  availability";
1441 ariadna 310
        @include media-breakpoint-down(sm) {
1 efrain 311
            grid-template-columns: 1fr min-content;
312
            grid-template-areas:
313
                "visibility    actions"
314
                "altcontent    altcontent"
315
                "groupmode     groupmode"
316
                "afterlink     afterlink"
317
                "completion    completion"
318
                "availability  availability";
319
        }
320
    }
321
 
322
    .activity-actions {
323
        grid-area: actions;
324
        .actions {
325
            position: relative;
326
        }
327
    }
328
 
329
    .activity-icon {
330
        grid-area: icon;
331
    }
332
 
333
    .activity-dates {
334
        grid-area: dates;
335
        @include font-size($small-font-size);
336
        color: $gray-700;
337
        display: flex;
338
        flex-wrap: wrap;
339
        column-gap: 0.75rem;
1441 ariadna 340
        @include media-breakpoint-down(sm) {
1 efrain 341
            margin-top: map-get($spacers, 2);
342
        }
343
    }
344
    .activity-name-area {
345
        grid-area: name;
346
        // Prevent bootstrap strech-link from covering the inplace editable button using z-index.
347
        .activityname {
348
            .afterlink {
349
                margin-left: map-get($spacers, 2);
350
            }
351
            .inplaceeditable .quickeditlink {
352
                position: relative;
353
                z-index: 2;
354
                margin-left: map-get($spacers, 2);
355
            }
356
        }
357
        .activitybadge {
358
            &.badge-none {
359
                font-weight: normal;
1441 ariadna 360
                --#{$prefix}badge-color: #{$body-color};
1 efrain 361
                @include font-size($small-font-size);
362
                padding: 0;
363
            }
364
        }
365
    }
366
 
367
    .activity-completion {
368
        grid-area: completion;
369
        justify-self: end;
370
        button,
371
        a[role="button"] {
1441 ariadna 372
            min-height: map-get($iconsizes, 5);
1 efrain 373
        }
1441 ariadna 374
        @include media-breakpoint-down(sm) {
1 efrain 375
            width: 100%;
376
            margin-top: map-get($spacers, 2);
377
            button {
378
                width: 100%;
379
            }
380
        }
381
        .completion-dialog {
382
            color: $gray-700;
383
            font-size: $font-size-sm;
384
            min-width: 12rem;
385
            .icon {
386
                font-size: $font-size-sm;
387
                width: $font-size-sm;
388
                height: $font-size-sm;
389
                margin-right: map-get($spacers, 1);
390
            }
391
            .editcompletion a {
392
                @include border-radius();
393
                color: $gray-700;
394
                font-weight: bold;
395
                text-decoration: none;
396
                &:hover {
397
                    background-color: $gray-200;
398
                }
399
            }
400
        }
401
    }
402
 
403
    .activity-groupmode-info {
404
        grid-area: groupmode;
405
        justify-self: end;
406
        .groupmode-information {
407
            height: map-get($iconsizes, 5);
408
            width: map-get($iconsizes, 5);
409
            @include border-radius();
1441 ariadna 410
            .icon {
411
                width: map-get($iconsizes, 3);
412
                height: map-get($iconsizes, 3);
413
            }
1 efrain 414
        }
415
        .groupmode-icon-info {
416
            display: none;
417
        }
1441 ariadna 418
        @include media-breakpoint-down(sm) {
1 efrain 419
            width: 100%;
420
            margin-top: map-get($spacers, 2);
421
            padding-top: map-get($spacers, 2);
422
            border-top: $border-width solid $border-color;
423
            .groupmode-information {
424
                width: auto;
425
                font-size: inherit;
426
                padding: 0 map-get($spacers, 2);
427
            }
428
            .groupmode-icon-info {
429
                display: inline;
430
            }
431
            // Disable v-parent-focus behaviour on small devices to always show the groupmode button.
432
            .v-parent-focus {
433
                opacity: 1;
434
                visibility: visible;
435
            }
436
        }
437
    }
438
 
439
    .activity-badges {
440
        grid-area: visibility;
441
        .badge {
442
            font-weight: normal;
443
            .icon {
444
                font-size: 12px;
445
                width: 12px;
446
                height: 12px;
447
            }
448
        }
449
    }
450
 
451
    .activity-altcontent {
452
        grid-area: altcontent;
453
        margin-top: map-get($spacers, 1);
454
        &.activity-description {
455
            margin-top: map-get($spacers, 2);
456
            padding-top: map-get($spacers, 2);
457
            border-top: $border-width solid $border-color;
458
            @include font-size($small-font-size);
1441 ariadna 459
            // Fix activity description bottom margin for first level-lists.
460
            ul:not(.activity-description ul ul) {
461
                margin-bottom: 1rem;
462
            }
1 efrain 463
        }
464
        // Add rounded borders to images.
465
        img {
466
            @include border-radius($activity-border-radius);
467
        }
468
    }
469
 
470
    .activity-availability {
471
        grid-area: availability;
472
    }
473
 
474
    .activity-afterlink {
475
        grid-area: afterlink;
476
        margin-top: map-get($spacers, 2);
477
        padding-top: map-get($spacers, 2);
478
        border-top: $border-width solid $border-color;
479
    }
480
 
481
    .no-overflow {
482
        width: 100%;
483
    }
484
}
485
 
486
.section .draggable .activity-item .dragicon {
487
    display: none;
488
}
489
 
490
/* Dividers */
491
 
1441 ariadna 492
.course-content .divider {
1 efrain 493
    position: relative;
494
    hr {
495
        width: 100%;
496
        margin: map-get($spacers, 2) map-get($spacers, 1);
497
        border-top: $divider-width dashed $divider-color;
1441 ariadna 498
        opacity: 1;
499
        .changenumsections.disabled & {
500
            border-top: $divider-width dashed $divider-color;
501
        }
1 efrain 502
    }
503
    .divider-content {
504
        opacity: 0;
505
        visibility: hidden;
506
        transition: visibility 0.1s;
507
        position: absolute;
508
        background: linear-gradient(transparent 40%, $white 40%, $white 60%, transparent 60%);
509
        .section.hidden & {
510
            background: linear-gradient(transparent 40%, $gray-100 40%, $gray-100 60%, transparent 60%);
511
        }
512
    }
513
    &.always-visible {
514
        .divider-content {
515
            opacity: 1;
516
            visibility: visible;
517
        }
518
    }
519
    &.always-hidden {
520
        hr {
521
            opacity: 0;
522
            visibility: hidden;
523
        }
524
    }
525
    &:hover,
526
    &:focus,
527
    &:focus-within {
528
        .divider-content {
529
            opacity: 1;
530
            visibility: visible;
531
        }
532
        hr {
533
            opacity: 1;
534
            visibility: visible;
535
        }
536
    }
537
    // Style the hr divider when the "Add content" button is hovered.
538
    &:has(.btn.add-content:hover) {
539
        hr {
540
            border-color: $divider-hover-color;
1441 ariadna 541
            .changenumsections.disabled & {
542
                border-color: $gray-200;
543
            }
1 efrain 544
        }
545
    }
546
}
547
 
548
// These styles will make the activity and section dividers buttons visible (but still without opacity) so
549
// buttons can be keyboard focusable.
550
.activity:focus-within + .activity .divider .divider-content,
551
.course-section-header:focus-within + .content .section .activity:first-child .divider .divider-content,
552
.content .section .activity:focus-within .divider .divider-content,
553
.course-content:focus-within .changenumsections .divider .divider-content {
554
    visibility: visible;
555
}
556
 
557
// Hide last section "Add section". It will rely on the course format general "Add section" button.
558
.course-content ul.topics > li:last-child .changenumsections {
559
    display: none;
560
}
561
 
562
// Custom buttons for dividers.
1441 ariadna 563
.course-content .divider .btn.add-content {
1 efrain 564
    position: relative;
565
    z-index: 1;
1441 ariadna 566
    @include border-radius();
1 efrain 567
    font-size: $font-size-sm;
568
    font-weight: bold;
1441 ariadna 569
    color: shift-color($primary, $alert-color-scale);
570
    background-color: shift-color($primary, $alert-bg-scale);
1 efrain 571
    &:hover,
572
    &:focus {
1441 ariadna 573
        color: color-contrast($primary);
1 efrain 574
        background-color: $primary;
575
    }
576
    .icon {
577
        width: 14px;
578
        height: 14px;
579
        font-size: 14px;
580
    }
1441 ariadna 581
    .changenumsections.disabled & {
582
        color: $gray-500;
583
        background-color: $gray-200;
584
        outline: none;
585
        box-shadow: none;
586
        &:hover,
587
        &:focus {
588
            color: $gray-500;
589
            background-color: $gray-200;
590
            outline: none;
591
            box-shadow: none;
592
        }
593
        pointer-events: auto; // Restore pointer events for the disabled button so we can see the tooltip.
594
    }
1 efrain 595
}
596
 
597
/* Bulk editing */
598
 
599
.bulkenabled {
600
    .bulk-hidden {
601
        display: none !important; // stylelint-disable-line declaration-no-important
602
    }
1441 ariadna 603
    .section {
604
        margin-left: map-get($spacers, 3);
605
        &:not(:first-child) {
606
            margin-top: map-get($spacers, 4);
607
        }
1 efrain 608
    }
609
    .activity {
610
        margin-top: map-get($spacers, 2);
611
        margin-left: 2rem;
612
        padding-top: map-get($spacers, 2);
613
        border-top: $divider-width dashed $divider-color;
614
        &:first-child {
615
            margin-top: map-get($spacers, 4);
616
        }
617
    }
618
    .activity-item {
619
        .bulkselect {
1441 ariadna 620
            float: left;
621
            margin-left: -2rem;
1 efrain 622
        }
1441 ariadna 623
        // Delegated sections are not available for bulk editing.
624
        &:has(.delegated-section):hover {
625
            outline: none !important; // stylelint-disable-line declaration-no-important
626
            box-shadow: none !important; // stylelint-disable-line declaration-no-important
627
        }
1 efrain 628
    }
629
    .course-section-header .bulkselect {
630
        left: -2.75rem;
631
        position: relative;
632
        width: 0;
633
    }
1441 ariadna 634
    @include media-breakpoint-down(md) {
1 efrain 635
        .course-content {
636
            margin-left: 2rem;
637
        }
638
    }
1441 ariadna 639
    .sticky-footer-content.bulkactions {
640
        .btn {
641
            --bs-btn-disabled-border-color: transparent;
642
            &:focus {
643
                outline: 0;
644
                box-shadow: $input-btn-focus-box-shadow;
645
            }
646
        }
647
    }
1 efrain 648
}
649
 
650
// Custom styles for bulk actions sticky footer in small devices.
651
.sticky-footer-content.bulkactions {
1441 ariadna 652
    @include media-breakpoint-down(md) {
1 efrain 653
        position: relative;
654
        .form-check,
655
        .bulkaction-name,
656
        .bulkcount {
657
            display: none;
658
        }
659
        .actions button {
660
            padding: 0 map-get($spacers, 2);
661
        }
662
        .bulkcancel {
663
            position: absolute;
664
            top: 0;
665
            right: 0;
666
        }
667
    }
668
}
669
 
1441 ariadna 670
/* Single section page */
1 efrain 671
 
1441 ariadna 672
.single-section {
673
    // Revert main section's styles.
674
    > ul > .course-section {
675
        &.hidden .section-item {
676
            background-color: inherit;
677
        }
678
        .section-item {
679
            padding: 0;
680
            border: none;
681
        }
682
    }
683
}
684
 
685
.single-section-page .header-action {
686
    display: inline-block;
687
}
688
 
689
/* Default activity completion page */
690
 
1 efrain 691
.defaultactivitycompletion-item {
692
    a {
693
        color: $black;
694
        text-decoration: none;
695
    }
696
    .activityicon {
697
        width: 32px;
698
        height: 32px;
699
    }
700
}
701
 
1441 ariadna 702
/* Home page course */
1 efrain 703
 
704
.sitetopic {
705
    .section-item {
706
        margin-bottom: map-get($spacers, 4);
707
        @include border-radius();
708
    }
709
}
1441 ariadna 710
 
711
/* Move activity and Move section modals */
712
 
713
.move-activity-tree {
714
    .collapse-list-item {
715
        @include border-radius();
716
 
717
        &:hover,
718
        &:focus {
719
            background-color: shift-color($primary, $alert-bg-scale);
720
 
721
            a {
722
                color: shift-color($primary, $alert-color-scale);
723
            }
724
        }
725
 
726
        a {
727
            color: $list-group-action-active-color;
728
 
729
            &:hover,
730
            &:focus {
731
                text-decoration: none;
732
            }
733
        }
734
 
735
        a.disabled {
736
            color: $list-group-disabled-color;
737
        }
738
    }
739
 
740
    .collapse-list-item-content .collapse-list-item {
741
        padding: $collapse-list-item-padding-y $collapse-list-item-padding-x;
742
    }
743
 
744
    ul {
745
        margin-left: map-get($spacers, 4);
746
    }
747
 
748
    .collapse-list-link {
749
        font-weight: bold;
750
    }
751
}
752
 
753
/* Subsections */
754
 
755
.activity.subsection {
756
    border-top: none;
757
    > .activity-item {
758
        border: $border-width solid $border-color;
759
        padding: 0;
760
        margin: map-get($spacers, 2) 0;
761
        > .activity-grid > .activity-altcontent {
762
            margin-top: 0;
763
        }
764
    }
765
    .section {
766
        margin-top: 0;
767
        .section-item {
768
            border: none;
769
            padding: $activity-item-padding;
770
        }
771
        .icons-collapse-expand:has(+ h4) {
772
            height: map-get($iconsizes, 4);
773
            width: map-get($iconsizes, 4);
774
            font-size: $font-size-sm;
775
        }
776
        h4 {
777
            font-size: $h5-font-size;
778
        }
779
        .section_action_menu > .action-menu .btn-icon {
780
            font-size: inherit;
781
        }
782
    }
783
    + .activity {
784
        border-top: none;
785
    }
786
    // Allow v-parent-focus only for closest acvitity (avoiding subsection).
787
    .focus-control:not(:has(.focus-control)) {
788
        &:focus-within .v-parent-focus,
789
        &:hover .v-parent-focus {
790
            opacity: 1 !important; // stylelint-disable-line declaration-no-important
791
            visibility: visible !important; // stylelint-disable-line declaration-no-important
792
        }
793
    }
794
    .focus-control:focus-within .focus-control .v-parent-focus,
795
    .focus-control:hover .focus-control .v-parent-focus {
796
        opacity: 0;
797
        visibility: hidden;
798
    }
799
}
800
 
801
/* Spinners */
802
 
803
// Edit in progress spinner animation.
804
@keyframes editinprogress-rotation {
805
    0% {
806
        opacity: 0;
807
        transform: rotate(0deg);
808
    }
809
    50% {
810
        opacity: 1;
811
    }
812
    100% {
813
        opacity: 0;
814
        transform: rotate(359deg);
815
    }
816
}
817
 
818
.editing {
819
    // New editing in progress spinners.
820
    .editinprogress {
821
        position: relative;
822
 
823
        & > * {
824
            opacity: .4;
825
        }
826
 
827
        .corelightbox,
828
        .lightbox {
829
            display: none;
830
        }
831
 
832
        &:after {
833
            font: var(--fa-font-solid);
834
            position: absolute;
835
            font-size: 20px;
836
            color: $gray-600;
837
            content: fa-content($fa-var-spinner);
838
            display: flex;
839
            justify-content: center;
840
            align-items: center;
841
            width: 30px;
842
            height: 30px;
843
            left: calc(50% - 15px);
844
            top: calc(50% - 15px);
845
            animation: editinprogress-rotation 2s infinite linear;
846
        }
847
 
848
        // Prevent inner editingprogress.
849
        .editinprogress {
850
            &:after {
851
                display: none;
852
            }
853
        }
854
    }
855
}
856
 
857
/* Drag and drop */
858
 
859
// Compensate for the border widths when dropzones are displayed.
860
.course-content .section.dropready {
861
 
862
    &.main.drop-down {
863
        border-bottom: 1px solid $dropzone-border;
864
    }
865
 
866
    .course-section-header.dropready.drop-zone {
867
        margin-top: -2px;
868
    }
869
 
870
    li.activity.dropready.drop-down {
871
        border-bottom: 1px solid $dropzone-border;
872
        margin-bottom: -1px;
873
    }
874
 
875
    li.activity.dropready.drop-up {
876
        border-top: 1px solid $dropzone-border;
877
        margin-top: -1px;
878
    }
879
 
880
    [data-for="sectioninfo"] {
881
        // When a section is empty, the activity dropzone indicator is below
882
        // the section info. This ensures the dropzone will not displace the content
883
        // even if the section has no restrictions or info to display.
884
        min-height: 1px;
885
    }
886
 
887
    [data-for="sectioninfo"].drop-down {
888
        margin-top: -1px;
889
    }
890
}
891
 
892
/* Old indentation styles */
893
 
894
.mod-indent-outer {
895
    display: table;
896
}
897
 
898
.mod-indent {
899
    display: table-cell;
900
}
901
 
902
.label .mod-indent {
903
    float: left;
904
    padding-top: 20px;
905
}
906
 
907
.activity.label.modtype_label .mod-indent {
908
    float: none;
909
}
910
 
911
@include media-breakpoint-up(sm) {
912
    $mod-indent-size: 30px;
913
    /* Creates a series of .mod-indent-# rule declarations based on indent size and number of indent levels. */
914
 
915
    @for $i from 1 through 16 {
916
        $width: ($i * $mod-indent-size);
917
 
918
        .mod-indent-#{$i} {
919
            width: $width;
920
        }
921
    }
922
 
923
    .mod-indent-huge {
924
        width: (16 * $mod-indent-size);
925
    }
926
}