MDL-69117 output: Correct remove_dir usage
[moodle.git] / theme / boost / scss / moodle / course.scss
1 /* course.less */
2 /* COURSE CONTENT */
4 .section_add_menus {
5     text-align: right;
6     clear: both;
7 }
9 .section-modchooser {
10     clear: both;
11 }
13 .block_tree .tree_item.branch {
14     margin-left: 8px;
15 }
17 .section_add_menus .horizontal div,
18 .section_add_menus .horizontal form {
19     display: inline;
20 }
22 .section_add_menus optgroup {
23     font-weight: normal;
24     font-style: italic;
25 }
26 /*rtl:ignore*/
27 .section_add_menus .urlselect {
28     text-align: left;
29     margin-left: .4em;
30 }
31 /*rtl:ignore*/
32 .section_add_menus .urlselect select {
33     margin-left: .2em;
34 }
36 .sitetopic ul.section {
37     margin: 0;
38 }
40 body:not(.editing)  .sitetopic ul.section {
41     padding-left: 0;
42     .label .mod-indent-outer {
43         padding-left: 0;
44     }
45 }
47 @include media-breakpoint-up(sm) {
48     .course-content ul.section {
49         margin: $spacer;
50     }
51 }
52 .section {
53     .side {
54         &.left {
55             float: left;
56         }
58         &.right {
59             float: right;
60             clear: right;
61         }
62         margin-top: 0.5rem;
63     }
65     .spinner {
66         height: 16px;
67         width: 16px;
68     }
70     .activity {
71         .spinner {
72             left: 100%;
73             position: absolute;
74         }
76         /* The command block for each activity */
77         .actions {
78             position: absolute;
79             right: 0;
80             top: 0;
81             display: flex;
82         }
84         .contentwithoutlink,
85         .activityinstance {
86             min-width: 40%;
87             display: table-cell;
88             padding-right: 4px;
89             min-height: 2em;
91             > a {
92                 display: inline-block;
93                 text-indent: -31px;
94                 padding-left: 31px;
95             }
97             .dimmed {
98                 .activityicon {
99                     opacity: .5;
100                 }
101             }
102         }
104         .stealth {
105             color: $text-muted;
106         }
107         a.stealth,
108         a.stealth:hover {
109             color: lighten($link-color, 25%) !important; /* stylelint-disable-line declaration-no-important */
110         }
111     }
113     .label {
114         .contentwithoutlink,
115         .activityinstance {
116             padding-right: 32px;
117             display: block;
118             height: inherit;
119         }
120         @include media-breakpoint-up(sm) {
121             .mod-indent-outer {
122                 padding-left: 24px;
123                 display: block;
124             }
125         }
126     }
128     .filler {
129         // This must be sized like an icon to fill the space.
130         width: 16px;
131         height: 16px;
132         padding: 0;
133         margin: 0 ($spacer / 2);
134         display: inline-block;
135     }
137     .activity.editor_displayed {
138         a.editing_title,
139         .moodle-actionmenu {
140             display: none;
141         }
143         div.activityinstance {
144             padding-right: initial;
146             input {
147                 margin-bottom: initial;
148                 padding-top: initial;
149                 padding-bottom: initial;
150                 vertical-align: text-bottom;
151             }
152         }
153     }
156 .activity img.activityicon {
157     margin-right: 6px;
158     vertical-align: text-bottom;
161 .section .activity .activityinstance,
162 .section .activity .activityinstance div {
163     display: inline-block;
166 .editing {
167     .section {
168         .activity {
169             .contentwithoutlink,
170             .activityinstance {
171                 padding-right: 200px;
172             }
173             .editing_move {
174                 /* Move the move icon to the start of the line */
175                 position: absolute;
176                 left: 0;
177                 top: 0;
178             }
180             .mod-indent-outer {
181                 /**
182                  * Add appropriate padding such that nothing overlaps the
183                  * absolute positioned move icon.
184                  */
185                 padding-left: 2rem;
186             }
187         }
188     }
191 .editing_show + .editing_assign,
192 .editing_hide + .editing_assign {
193     // if roles icon missing, add space
194     margin-left: 20px;
197 .section .activity .commands {
198     white-space: nowrap;
199     display: inline-block;
202 .section .activity.modtype_label.label {
203     font-weight: normal;
204     padding: .2em;
207 .section li.activity {
208     padding: .2em;
209     clear: both;
212 .section .activity .activityinstance .groupinglabel {
213     padding-left: 30px;
216 .section .activity .availabilityinfo,
217 .section .activity .contentafterlink {
218     margin-top: 0.5em;
219     margin-left: 30px;
222 .section .activity .contentafterlink p {
223     margin: .5em 0;
226 .editing .section .activity:hover,
227 .editing .section .activity.action-menu-shown {
228     background-color: $table-accent-bg;
231 .course-content .current {
232     position: relative;
235 .course-content .current::before {
236     content: "";
237     border-left: $primary 2px solid;
238     position: absolute;
239     left: -$card-spacer-x;
240     top: 0;
241     bottom: 0;
244 .course-content .section-summary {
245     border: 1px solid $table-border-color;
246     margin-top: 5px;
247     list-style: none;
250 .course-content .section-summary .section-title {
251     margin: 2px 5px 10px 5px;
254 .course-content .section-summary .summarytext {
255     margin: 2px 5px 2px 5px;
258 .course-content .section-summary .section-summary-activities .activity-count {
259     color: $text-muted;
260     font-size: $font-size-sm;
261     margin: 3px;
262     white-space: nowrap;
263     display: inline-block;
266 .course-content .section-summary .summary {
267     margin-top: 5px;
270 .course-content .single-section {
271     margin-top: 1em;
274 .course-content .single-section .section-navigation {
275     display: block;
276     padding: 0.5em;
277     margin-bottom: -0.5em;
280 .course-content .single-section .section-navigation .title {
281     font-weight: bold;
282     font-size: 108%;
283     clear: both;
286 .course-content .single-section .section-navigation .mdl-left {
287     font-weight: normal;
288     float: left;
289     margin-right: 1em;
292 .course-content .single-section .section-navigation .mdl-left .larrow {
293     margin-right: 0.1em;
296 .course-content .single-section .section-navigation .mdl-right {
297     font-weight: normal;
298     float: right;
299     margin-left: 1em;
302 .course-content .single-section .section-navigation .mdl-right .rarrow {
303     margin-left: 0.1em;
306 .course-content .single-section .section-navigation .mdl-bottom {
307     margin-top: 0;
310 .course-content ul li.section.main {
311     border-bottom: $border-width solid $table-border-color;
312     margin-top: 0;
314     &:last-child {
315         border-bottom: 0;
316     }
319 .course-content ul li.section.hidden {
320     .sectionname > span,
321     .content > div.summary,
322     .activity .activityinstance {
323         color: $text-muted;
324     }
327 .course-content ul.topics,
328 .course-content ul.weeks {
329     padding: 0;
330     margin: 0;
331     list-style: none;
333     li.section {
334         margin-top: $spacer;
335         padding-bottom: $spacer;
336         .content {
337             margin: 0;
338             padding: 0;
339         }
341         @include media-breakpoint-up(sm) {
342             .summary,
343             .content > .availabilityinfo {
344                 margin-left: 25px;
345             }
346         }
348         .left,
349         .right {
350             padding: 0 6px 0;
351             text-align: right;
352             width: auto;
353         }
354     }
357 @include media-breakpoint-down(sm) {
358     body:not(.editing) {
359         .course-content ul.topics,
360         .course-content ul.weeks {
361             li.section {
362                 .left,
363                 .right {
364                     display: none;
365                 }
366             }
367         }
368     }
371 .course-content {
372     margin-top: 0;
375 .course-content .hidden {
376     display: none;
379 .course-content li {
380     &.section {
381         @include media-breakpoint-down(sm) {
382             ul {
383                 padding-left: 0;
384             }
385         }
386         ul {
387             list-style: disc;
389             ul {
390                 list-style: circle;
392                 ul {
393                     list-style: square;
394                 }
395             }
396         }
398         li {
399             &.activity {
400                 ul {
401                     list-style: disc;
403                     ul {
404                         list-style: circle;
406                         ul {
407                             list-style: square;
408                         }
409                     }
410                 }
411             }
412         }
414         .right {
415             > .icon:first-child {
416                 /* Remove the spacer icon. */
417                 display: none;
418             }
419         }
420     }
423 .path-course-view.editing #region-main > .card-block {
424     padding-bottom: 13rem;
427 .jumpmenu .form-inline {
428     display: block;
431 .path-course-view .completionprogress {
432     margin-left: 25px;
435 .path-course-view .completionprogress {
436     display: block;
437     float: right;
438     height: 20px;
439     position: relative;
442 #page-site-index .subscribelink {
443     text-align: right;
446 #site-news-forum h2,
447 #frontpage-course-list h2,
448 #frontpage-category-names h2,
449 #frontpage-category-combo h2 {
450     margin-bottom: 9px;
453 .path-course-view a.reduce-sections {
454     padding-left: 0.2em;
457 .path-course-view .subscribelink {
458     text-align: right;
461 .path-course-view .unread {
462     margin-left: 30px;
465 .path-course-view .block.drag .header {
466     cursor: move;
469 .path-course-view .completionprogress {
470     text-align: right;
473 .path-course-view .single-section .completionprogress {
474     margin-right: 5px;
477 .path-site li.activity > div,
478 .path-course-view li.activity > div {
479     position: relative;
480     padding: 0 16px 0 0; /* to accommodate the floated completion icon with highlighting */
483 .path-course-view li.activity span.autocompletion img {
484     vertical-align: text-bottom;
485     margin-left: 0;
488 .path-course-view li.activity form.togglecompletion .btn {
489     padding: 0;
491 .path-course-view li.activity form.togglecompletion img {
492     max-width: none; /* The width is 0 so ensure we don't end up with a relative max-width */
495 .path-course-view {
496     &.editing {
497         li.activity span.autocompletion img {
498             /* Use the same spacing as the filler. */
499             margin-right: $spacer / 2;
500             margin-left: $spacer / 2;
501         }
502     }
505 .path-course-view li.activity form.togglecompletion .ajaxworking {
506     width: 16px;
507     height: 16px;
508     position: absolute;
509     right: 22px;
510     top: 3px;
511     background: url([[pix:i/ajaxloader]]) no-repeat;
514 li.section.hidden span.commands a.editing_hide,
515 li.section.hidden span.commands a.editing_show {
516     cursor: default;
519 .single-section h3.sectionname {
520     text-align: center;
521     clear: both;
524 input.titleeditor {
525     width: 330px;
526     vertical-align: text-bottom;
529 span.editinstructions {
530     /*rtl:remove*/
531     position: absolute;
532     /*rtl:raw:
533     position: relative;
534     */
535     top: 0;
536     margin-top: -22px;
537     margin-left: 30px;
538     font-size: $font-size-sm;
539     padding: .1em .4em;
540     background-color: $state-info-bg;
541     color: $info;
542     text-decoration: none;
543     z-index: 9999;
545     @include box-shadow(2px 2px 5px 1px #ccc);
546     border: 1px solid $state-info-border;
549 /* Course drag and drop upload styles */
550 #dndupload-status {
551     position: fixed;
552     left: 0;
553     width: 40%;
554     margin: 0 30%;
555     padding: 6px;
556     border: 1px solid $state-info-border;
557     text-align: center;
558     background: $state-info-bg;
559     color: $info;
560     z-index: 1; // Required in order to have this above relatively positioned course content@mixin
562     @include box-shadow(2px 2px 5px 1px #ccc);
563     @include border-radius(8px);
566 .dndupload-preview {
567     color: #909090;
568     border: 1px dashed #909090;
569     list-style: none;
570     margin-top: .2em;
571     padding: .3em;
574 .dndupload-hidden {
575     display: none;
578 /* COURSES LISTINGS AND COURSE SUMMARY */
579 #page-course-pending .singlebutton,
580 #page-course-index .singlebutton,
581 #page-course-index-category .singlebutton,
582 #page-course-editsection .singlebutton {
583     text-align: center;
586 #page-admin-course-manage #movecourses td img {
587     margin: 0 .22em;
588     vertical-align: text-bottom;
591 #coursesearch {
592     margin-top: 1em;
593     text-align: left;
596 #page-course-pending .pendingcourserequests {
597     margin-bottom: 1em;
600 #page-course-pending .pendingcourserequests .singlebutton {
601     display: inline;
604 #page-course-pending .pendingcourserequests .cell {
605     padding: 0 5px;
608 #page-course-pending .pendingcourserequests .cell.c6 {
609     white-space: nowrap;
612 .coursebox {
613     padding: $spacer / 2;
616 .coursebox > .info > .coursename a {
617     display: block;
618     background-image: url([[pix:moodle|i/course]]);
619     background-repeat: no-repeat;
620     padding-left: 21px;
621     background-position: left 0.2em;
624 .coursebox > .info > .coursename,
625 .coursebox .content .teachers,
626 .coursebox .content .courseimage,
627 .coursebox .content .coursefile,
628 .coursebox .content .customfields-container {
629     float: left;
630     clear: left;
633 .coursebox .content .teachers,
634 .coursebox .content .courseimage,
635 .coursebox .content .coursefile,
636 .coursebox .content .customfields-container {
637     width: 40%;
640 .coursebox > .info > h3.coursename {
641     margin: 5px;
644 .coursebox > .info > .coursename {
645     margin: 5px;
646     padding: 0;
649 .coursebox .content .teachers li {
650     list-style-type: none;
651     padding: 0;
652     margin: 0;
655 .coursebox .moreinfo,
656 .coursebox .enrolmenticons {
657     padding: 3px 0;
658     float: right;
661 .coursebox .moreinfo img {
662     margin: 0 .2em;
665 .coursebox .content {
666     clear: both;
669 .coursebox .content .summary,
670 .coursebox .content .coursecat {
671     float: right;
672     width: 55%;
675 .coursebox .content .coursecat {
676     text-align: right;
677     clear: right;
680 .coursebox.remotecoursebox .remotecourseinfo {
681     float: left;
682     width: 40%;
685 .coursebox .content .courseimage img {
686     max-width: 100px;
687     max-height: 100px;
690 .coursebox .content .coursecat,
691 .coursebox .content .summary,
692 .coursebox .content .courseimage,
693 .coursebox .content .coursefile,
694 .coursebox .content .teachers,
695 .coursebox.remotecoursebox .remotecourseinfo,
696 .coursebox .content .customfields-container {
697     margin: 15px 5px 5px;
698     padding: 0;
701 .coursebox.remotehost > .info > .categoryname a {
702     background-image: url([[pix:moodle|i/mnethost]]);
705 .coursebox.collapsed {
706     margin-bottom: 0;
709 .coursebox.collapsed > .content {
710     display: none;
713 .courses .coursebox {
714     &.collapsed {
715         padding-top: $spacer / 2;
716         padding-bottom: $spacer / 2;
717     }
719     &.even {
720         background-color: $table-accent-bg;
721     }
724 .courses > .paging.paging-morelink {
725     text-align: center;
726     padding: $spacer;
729 .course_category_tree .category .numberofcourse {
730     font-size: $font-size-sm;
733 .course_category_tree .controls {
734     visibility: hidden;
737 .course_category_tree .controls div {
738     display: inline;
739     cursor: pointer;
742 .jsenabled .course_category_tree .controls {
743     visibility: visible;
746 .course_category_tree .controls {
747     margin-bottom: 5px;
748     text-align: right;
749     float: right;
752 .course_category_tree .controls div {
753     padding-right: 2em;
754     font-size: 75%;
757 .course_category_tree .category > .info > .categoryname {
758     background-image: url([[pix:moodle|t/collapsed_empty]]);
759     background-repeat: no-repeat;
760     padding: 2px 18px;
761     margin: 3px;
762     background-position: center left;
764 /* rtl:raw:
765 .course_category_tree .category > .info > .categoryname {
766     background-image:url([[pix:moodle|t/collapsed_empty_rtl]]);
768  */
769 .course_category_tree .category.with_children > .info > .categoryname {
770     background-image: url([[pix:moodle|t/expanded]]);
771     cursor: pointer;
774 .course_category_tree .category.with_children.collapsed > .info > .categoryname {
775     background-image: url([[pix:moodle|t/collapsed]]);
777 /* rtl:raw:
778 .course_category_tree .category.with_children.collapsed > .info > .categoryname {
779     background-image:url([[pix:moodle|t/collapsed_rtl]]);
781 */
782 .course_category_tree .category.collapsed > .content {
783     display: none;
786 .course_category_tree .category > .info {
787     clear: both;
790 .course_category_tree .category > .content {
791     padding-left: 16px;
794 #page-course-index-category .generalbox.info {
795     margin-bottom: 15px;
796     border: 1px dotted #ddd;
798     @include border-radius(4px);
799     padding: 5px;
802 #page-course-index-category .categorypicker {
803     text-align: center;
804     margin: 10px 0 20px;
807 /**
808  * Course management page
809  * Palette
810  *
811  * Background (reg)         #F5F5F5
812  * Background (light        #fafafa
813  * Background (highlight)   #ddffaa
814  * Borders                  #e1e1e8
815  */
816 #course-category-listings {
817     margin-bottom: 0;
819     /** Two column layout */
820     &.columns-2 {
821         > #course-listing > div {
822             position: relative;
823             left: -1px;
824         }
825     }
826     /** Three column layout */
827     &.columns-3 > #course-listing > div {
828         height: 100%;
829     }
831     > div > div {
832         min-height: 300px;
834         > ul.ml > li:first-child > div {
835             border-top: 0;
836         }
837     }
839     h3 {
840         margin: 0;
841         padding: 0.4rem 0.6rem 0.3rem;
842     }
844     h4 {
845         margin: 1rem 0 0;
846         padding: 0.6rem 1rem 0.5rem;
847     }
849     .moodle-actionmenu {
850         white-space: nowrap;
851     }
853     .listing-actions {
854         text-align: center;
856         > .moodle-actionmenu {
857             display: inline-block;
858         }
859     }
861     ul.ml {
862         list-style: none;
863         margin: 1rem 0;
865         ul.ml {
866             margin: 0;
867         }
868     }
870     .listitem {
872         &[data-selected='1'] {
873             border-left: calc(#{$list-group-border-width} + 5px) solid map-get($theme-colors, 'primary');
874             padding-left: calc(#{$list-group-item-padding-x} - 5px);
875         }
876     }
878     .item-actions {
879         margin-right: 1em;
880         display: inline-block;
882         &.show .menu {
884             img {
885                 width: 12px;
886                 max-width: none;
887             }
888         }
890         .menu-action-text {
891             vertical-align: inherit;
892         }
893     }
895     .listitem {
896         > div {
897             > .float-left {
898                 float: left;
899             }
901             > .float-right {
902                 float: right;
903                 text-align: right;
904             }
906             .item-actions {
907                 .action-show {
908                     display: none;
909                 }
911                 .action-hide {
912                     display: inline;
913                 }
914             }
916             .without-actions {
917                 color: #333;
918             }
920             .idnumber {
921                 margin-right: 2em;
922             }
923         }
924         // The category or course is hidden.
925         &[data-visible="0"] {
926             color: $text-muted;
928             > div {
929                 > a {
930                     color: $text-muted;
931                 }
933                 .item-actions {
934                     .action-show {
935                         display: inline;
936                     }
938                     .action-hide {
939                         display: none;
940                     }
941                 }
942             }
943         }
945         &.highlight {
946             background-color: $body-bg;
948             > div,
949             > div:hover,
950             &[data-selected='1'] > div {
951                 background-color: $table-hover-bg;
952             }
953         }
954     }
956     #course-listing {
957         .listitem {
958             .categoryname {
959                 display: inline-block;
960                 margin-left: 1em;
961                 color: #a1a1a8;
962             }
964             .coursename {
965                 display: inline-block;
966             }
967         }
969         > .firstpage .listitem:first-child > div .item-actions .action-moveup,
970         > .lastpage .listitem:last-child > div .item-actions .action-movedown {
971             display: none;
972         }
974         .bulk-action-checkbox {
975             margin: -2px 6px 0 0;
976         }
977     }
979     #category-listing {
980         .listitem.collapsed > ul.ml {
981             display: none;
982         }
984         .listitem {
985             &:first-child > div .item-actions .action-moveup,
986             &:last-child > div .item-actions .action-movedown {
987                 display: none;
988             }
989         }
991         .course-count {
992             color: #a1a1a8;
993             margin-right: 2rem;
994             min-width: 3.5em;
995             display: inline-block;
996         }
998         .bulk-action-checkbox {
999             margin-right: -3px;
1000         }
1002         .category-listing > ul > .listitem:first-child {
1003             position: relative;
1004         }
1006         .category-bulk-actions {
1007             margin: 0 0.5em 0.5em;
1008             position: relative;
1009         }
1010     }
1012     .detail-pair {
1014         > * {
1015             display: inline-block;
1016         }
1018         .pair-key {
1019             font-weight: bold;
1020             vertical-align: top;
1022             span {
1023                 margin-right: 1rem;
1024                 display: block;
1025             }
1026         }
1028         .pair-value select {
1029             max-width: 100%;
1030         }
1031     }
1033     .bulk-actions .detail-pair {
1034         > * {
1035             display: block;
1036             width: 100%;
1037         }
1038     }
1040     .listing-pagination {
1041         text-align: center;
1043         .yui3-button {
1044             @include button-variant($info, $info);
1045             border: 0;
1046             margin: 0.4rem 0.2rem 0.45rem;
1047             font-size: 10.4px;
1049             &.active-page {
1050                 @include button-variant($primary, $primary);
1051             }
1052         }
1053     }
1055     .listing-pagination-totals {
1056         text-align: center;
1058         &.dimmed {
1059             color: $text-muted;
1060             margin: 0.4rem 1rem 0.45rem;
1061         }
1062     }
1064     .select-a-category .notifymessage,
1065     .select-a-category .alert {
1066         margin: 1em;
1067     }
1070 #course-category-listings #course-listing .listitem .drag-handle {
1071     display: none;
1074 .jsenabled #course-category-listings #course-listing .listitem .drag-handle {
1075     display: inline-block;
1076     margin: 0 6px 0 0;
1077     cursor: pointer;
1080 /** Management header styling **/
1081 .coursecat-management-header {
1082     vertical-align: middle;
1084     h2 {
1085         display: inline-block;
1086         text-align: left;
1087     }
1089     > div {
1090         display: inline-block;
1091         float: right;
1093         > div {
1094             margin: 10px 0 10px 1em;
1095             display: inline-block;
1096         }
1097     }
1099     select {
1100         max-width: 300px;
1101         cursor: pointer;
1102         padding: 0.4em 0.5em 0.45em 1em;
1103         vertical-align: baseline;
1104         white-space: nowrap;
1105     }
1107     .view-mode-selector {
1108         .moodle-actionmenu {
1109             white-space: nowrap;
1110             display: inline-block;
1111         }
1113         .moodle-actionmenu[data-enhanced].show .menu a {
1114             padding-left: 1em;
1115         }
1116     }
1119 .course-being-dragged-proxy {
1120     border: 0;
1121     color: $link-color;
1122     vertical-align: middle;
1123     padding: 0 0 0 4em;
1126 .course-being-dragged {
1127     opacity: 0.5;
1130 /**
1131  * Display sizes:
1132  * Large displays                   1200        +
1133  * Default displays                  980     1199
1134  * Tablets                           768      979
1135  * Small tablets and large phones    481      767
1136  * Phones                              0      480
1137  */
1139 @media (min-width: 1200px) and (max-width: 1600px) {
1140     #course-category-listings.columns-3 {
1141         background-color: $body-bg;
1142         border: 0;
1144         #category-listing,
1145         #course-listing {
1146             width: 50%;
1147         }
1149         #category-listing > div,
1150         #course-listing > div,
1151         #course-detail > div {
1152             background-color: $body-bg;
1153         }
1155         #course-detail {
1156             width: 100%;
1157             margin-top: 1em;
1158         }
1159     }
1162 @media (max-width: 1199px) {
1163     #course-category-listings.columns-2,
1164     #course-category-listings.columns-3 {
1165         border: 0;
1167         #category-listing,
1168         #course-listing,
1169         #course-detail {
1170             width: 100%;
1171             margin: 0 0 1em;
1172         }
1173     }
1176 .page-settings-menu .menubar > a > .icon {
1177     width: auto;
1178     height: 32px;
1179     font-size: 32px;
1182 .activity-navigation {
1183     .row {
1184         align-items: center;
1185     }
1186     #prev-activity-link,
1187     #next-activity-link {
1188         white-space: pre-wrap;
1189     }