3 // When we upgrade boostrap to v4 release, we will need to change this to be used by the text-white class.
4 // Because a primary colour that is both AA accessible on grey (footer) and white is not possible, we always
5 // want white default colour.
6 $bg-inverse-link-color: #fff !default;
14 .context-header-settings-menu,
15 .region-main-settings-menu {
24 .context-header-settings-menu .dropdown-toggle > .icon,
25 #region-main-settings-menu .dropdown-toggle > .icon {
30 /** Prevent user notifications overlapping with region main settings menu */
36 /** Page layout CSS starts **/
37 .layout-option-noheader #page-header,
38 .layout-option-nonavbar #page-navbar,
39 .layout-option-nofooter #page-footer,
40 .layout-option-nocourseheader .course-content-header,
41 .layout-option-nocoursefooter .course-content-footer {
45 /** Page layout CSS ends **/
57 direction: ltr !important; /* stylelint-disable-line declaration-no-important */
72 a.dimmed_text:visited,
76 .dimmed_text a:visited,
79 .usersuspended a:link,
80 .usersuspended a:visited,
106 font-size: $font-size-xs;
116 @extend .text-warning;
121 @extend .text-success;
128 .fitem.advanced .text-info {
136 a.autolink.glossary:hover {
139 /* Block which is hidden if javascript enabled, prevents fickering visible when JS from footer used! */
140 .collapsibleregioncaption {
142 min-height: $line-height-base * $font-size-base;
145 .pagelayout-mydashboard.jsenabled .collapsibleregioncaption {
149 .collapsibleregioncaption img {
150 vertical-align: middle;
153 .jsenabled .hiddenifjs {
161 .jsenabled .visibleifjs {
165 .jsenabled .collapsibleregion {
167 box-sizing: content-box;
170 .jsenabled .collapsed .collapsibleregioninner {
174 .collapsible-actions {
179 .jsenabled .collapsible-actions {
183 .collapsible-actions .collapseexpand {
185 background: url([[pix:t/collapsed]]) 2px center no-repeat;
188 .collapsible-actions .collapseexpand {
189 background: url([[pix:t/collapsed_rtl]]) right center no-repeat;
192 .collapsible-actions .collapse-all {
193 background-image: url([[pix:t/expanded]]);
196 .yui-overlay .yui-widget-bd {
197 background-color: #ffee69;
198 border: 1px solid #a6982b;
199 border-top-color: #d4c237;
209 background: transparent;
222 .pagingbar .thispage {
227 margin-right: 0.5rem;
235 .action-menu .dropdown-toggle {
236 text-decoration: none;
251 vertical-align: middle;
268 #addmembersform table {
273 table.flexible .emptyrow {
282 .arrow_button input {
289 .no-overflow > .generaltable {
292 // Accessibility features
294 // Accessibility: text 'seen' by screen readers but not visual users.
307 // Accessibility: Skip block link, for keyboard-only users.
313 text-decoration: none;
334 .blog_entry .audience {
343 .blog_entry .content {
358 #doc-contents ul li {
359 list-style-type: none;
362 .groupmanagementtable td {
366 .groupmanagementtable #existingcell,
367 .groupmanagementtable #potentialcell {
371 .groupmanagementtable #buttonscell {
375 .groupmanagementtable #buttonscell p.arrow_button input {
381 .groupmanagementtable #removeselect_wrapper,
382 .groupmanagementtable #addselect_wrapper {
386 .groupmanagementtable #removeselect_wrapper label,
387 .groupmanagementtable #addselect_wrapper label {
398 display: inline-block;
401 .groupselector label {
402 display: inline-block;
409 border-bottom-right-radius: 0;
410 border-bottom-left-radius: 0;
415 border-top-left-radius: 0;
416 border-top-right-radius: 0;
425 .notepost .userpicture {
440 .path-my .coursebox {
445 margin: 15px 30px 10px 30px;
449 .path-my .coursebox .info {
481 .comment-area textarea {
486 -webkit-box-sizing: border-box;
487 -moz-box-sizing: border-box;
488 box-sizing: border-box;
501 vertical-align: text-bottom;
521 .comment-list li.first {
529 .comment-paging .pageno {
533 .comment-paging .curpage {
534 border: 1px solid #ccc;
537 .comment-message .picture {
542 .comment-message .text {
547 .comment-message .text p {
559 .comment-report-selectall {
567 .jsenabled .comment-link {
571 .jsenabled .showcommentsnonjs {
575 .jsenabled .comment-report-selectall {
579 * Completion progress report
581 .completion-expired {
582 @extend .text-warning;
585 .completion-expected {
586 font-size: $font-size-xs;
589 .completion-sortchoice,
590 .completion-identifyfield {
591 font-size: $font-size-xs;
592 vertical-align: bottom;
595 .completion-progresscell {
599 .completion-expired .completion-expected {
615 .path-tag .tag-index-items .tagarea {
616 border: 1px solid #e3e3e3;
622 .path-tag .tag-index-items .tagarea h3 {
624 padding: 3px 0 10px 0;
630 text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
631 text-transform: uppercase;
632 word-wrap: break-word;
633 border-bottom: solid 1px #e3e3e3;
637 .path-tag .tagarea .controls,
638 .path-tag .tagarea .taggeditems {
642 .path-tag .tagarea .controls,
643 .path-tag .tag-backtoallitems {
647 .path-tag .tagarea .controls .gotopage.nextpage {
651 .path-tag .tagarea .controls .gotopage.prevpage {
655 .path-tag .tagarea .controls .exclusivemode {
656 display: inline-block;
659 .path-tag .tagarea .controls.controls-bottom {
663 .path-tag .tagarea .controls .gotopage.nextpage::after {
669 .path-tag .tagarea .controls .gotopage.prevpage::before {
679 @extend .text-warning;
682 .tag-management-table td,
683 .tag-management-table th {
684 vertical-align: middle;
688 .tag-management-table .inplaceeditable.inplaceeditingon input {
692 .path-admin-tag .addstandardtags {
700 .path-tag .tag-relatedtags {
704 .path-tag .tag-management-box {
708 .path-tag .tag-index-toc {
713 .path-tag .tag-index-toc li,
714 .path-tag .tag-management-box li {
719 .path-tag .tag-management-box li a.edittag {
720 background-image: url([[pix:moodle|i/settings]]);
723 .path-tag .tag-management-box li a.flagasinappropriate {
724 background-image: url([[pix:moodle|i/flagged]]);
727 .path-tag .tag-management-box li a.removefrommyinterests {
728 background-image: url([[pix:moodle|t/delete]]);
731 .path-tag .tag-management-box li a.addtomyinterests {
732 background-image: url([[pix:moodle|t/add]]);
735 .path-tag .tag-management-box li a {
736 background-repeat: no-repeat;
737 background-position: left;
741 .tag_feed.media-list .media .itemimage {
745 .tag_feed.media-list .media .itemimage img {
750 .tag_feed.media-list .media .media-body {
755 .tag_feed .media .muted a {
763 .tag_cloud .inline-list li {
767 .tag_cloud .tag_overflow {
860 .tag_list.hideoverlimit .overlimit {
864 .tag_list .tagmorelink {
868 .tag_list.hideoverlimit .tagmorelink {
872 .tag_list.hideoverlimit .taglesslink {
879 #webservice-doc-generator td {
881 border: 0 solid black;
889 border-collapse: collapse;
901 .userenrolment .subfield {
905 .userenrolment .col_userdetails .subfield {
909 .userenrolment .col_userdetails .subfield_picture {
914 .userenrolment .col_lastseen {
918 .userenrolment .col_role {
922 .userenrolment .col_role .roles,
923 .userenrolment .col_group .groups {
927 .userenrolment .col_role .role {
934 .userenrolment .col_group .group {
941 .userenrolment .col_role .role a,
942 .userenrolment .col_group .group a {
947 .userenrolment .col_role .addrole,
948 .userenrolment .col_group .addgroup {
954 border-bottom: 1px solid #666;
958 .userenrolment .col_role .addrole img,
959 .userenrolment .col_group .addgroup img {
960 vertical-align: baseline;
963 .userenrolment .hasAllRoles .col_role .addrole {
967 .userenrolment .col_enrol .enrolment {
973 .userenrolment .col_enrol .enrolment a {
979 .enrol_user_buttons {
990 #page-enrol-users .enrol-users-page-action input {
995 background-color: #ccc;
1015 display: table-cell;
1018 .label .mod-indent {
1022 $mod-indent-size: 30px;
1023 /* Creates a series of .mod-indent-# rule declarations based on indent size and number of indent levels. */
1025 @for $i from 1 through 16 {
1026 $width: ($i * $mod-indent-size);
1034 width: (16 * $mod-indent-size);
1037 /* Audio player size in 'block' mode (can only change width, height is hardcoded in JS) */
1038 .resourcecontent .mediaplugin_mp3 object {
1043 .resourcecontent audio.mediaplugin_html5audio {
1046 /** Large resource images should avoid hidden overflow **/
1050 /* Audio player size in 'inline' mode (can only change width, as above) */
1051 .mediaplugin_mp3 object {
1056 audio.mediaplugin_html5audio {
1059 /* TinyMCE moodle media preview frame should not have padding */
1060 .core_media_preview.pagelayout-embedded #content {
1064 .core_media_preview.pagelayout-embedded #maincontent {
1068 body#page-lib-editor-tinymce-plugins-moodlemedia-preview {
1075 .path-rating .ratingtable {
1080 .path-rating .ratingtable th.rating {
1084 .path-rating .ratingtable td.rating,
1085 .path-rating .ratingtable td.time {
1086 white-space: nowrap;
1092 display: inline-block;
1096 text-overflow: ellipsis;
1097 white-space: nowrap;
1101 /* Moodle Dialogue Settings (moodle-core-dialogue) */
1102 .moodle-dialogue-base .moodle-dialogue-lightbox {
1103 background-color: $gray;
1106 .moodle-dialogue-base .hidden,
1107 .moodle-dialogue-base .moodle-dialogue-hidden {
1115 .moodle-dialogue-base .moodle-dialogue-fullscreen {
1123 .moodle-dialogue-base .moodle-dialogue-fullscreen .moodle-dialogue-content {
1127 .moodle-dialogue-base .moodle-dialogue-fullscreen .closebutton {
1130 background-size: 100%;
1133 .moodle-dialogue-base .moodle-dialogue-wrap {
1134 background-color: #fff;
1135 border: 1px solid #ccc;
1138 // Show is a bootstrap 2 class - but we use it for modals. We don't want to enable it everywhere because they removed
1139 // it for a reason (conflicts with jquery .show()).
1144 .moodle-dialogue-base .moodle-dialogue-wrap.moodle-dialogue-content {
1145 @extend .modal-content;
1148 .moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd {
1149 @extend .modal-header;
1152 .moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd.yui3-widget-hd {
1153 // Undo some YUI damage.
1156 background: initial;
1161 .moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd h1 {
1162 @extend .modal-title;
1166 .moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd .yui3-widget-buttons {
1174 .moodle-dialogue-base .closebutton {
1182 .moodle-dialogue-base .moodle-dialogue .moodle-dialogue-bd {
1186 .moodle-dialogue-base .moodle-dialogue-fullscreen .moodle-dialogue-content {
1197 .moodle-dialogue-exception .moodle-exception-param label {
1201 .moodle-dialogue-exception .param-stacktrace label {
1202 background-color: #eee;
1203 border: 1px solid #ccc;
1204 border-bottom-width: 0;
1207 .moodle-dialogue-exception .param-stacktrace pre {
1208 border: 1px solid #ccc;
1209 background-color: #fff;
1212 .moodle-dialogue-exception .param-stacktrace .stacktrace-file {
1214 font-size: $font-size-sm;
1217 .moodle-dialogue-exception .param-stacktrace .stacktrace-line {
1218 @extend .text-warning;
1219 font-size: $font-size-sm;
1222 .moodle-dialogue-exception .param-stacktrace .stacktrace-call {
1225 border-bottom: 1px solid #eee;
1228 .moodle-dialogue-base .moodle-dialogue .moodle-dialogue-content .moodle-dialogue-ft {
1229 @extend .modal-footer;
1232 .moodle-dialogue-base .moodle-dialogue .moodle-dialogue-content .moodle-dialogue-ft:empty {
1236 .moodle-dialogue-base .moodle-dialogue .moodle-dialogue-content .moodle-dialogue-ft.yui3-widget-ft {
1237 // Undo some YUI damage.
1238 background: initial;
1241 .moodle-dialogue-confirm .confirmation-message {
1244 .moodle-dialogue-confirm .confirmation-buttons {
1248 .moodle-dialogue-confirm .confirmation-dialogue input {
1252 .moodle-dialogue-exception .moodle-exception-message {
1256 .moodle-dialogue-exception .moodle-exception-param {
1257 margin-bottom: 0.5em;
1260 .moodle-dialogue-exception .moodle-exception-param label {
1264 .moodle-dialogue-exception .param-stacktrace label {
1270 .moodle-dialogue-exception .param-stacktrace pre {
1276 .moodle-dialogue-exception .param-stacktrace .stacktrace-file {
1277 display: inline-block;
1281 .moodle-dialogue-exception .param-stacktrace .stacktrace-line {
1282 display: inline-block;
1287 .moodle-dialogue-exception .param-stacktrace .stacktrace-call {
1290 padding-bottom: 4px;
1293 .moodle-dialogue .moodle-dialogue-bd .content-lightbox {
1299 background-color: white;
1303 /* Apply a default max-height on tooltip text */
1304 .moodle-dialogue .tooltiptext {
1308 .moodle-dialogue-base .moodle-dialogue.moodle-dialogue-tooltip {
1311 .moodle-dialogue-bd {
1317 * Chooser Dialogues (moodle-core-chooserdialogue)
1319 * This CSS belong to the chooser dialogue which should work both with, and
1320 * without javascript enabled
1322 /* Hide the dialog and it's title */
1323 .chooserdialoguebody,
1328 .moodle-dialogue.chooserdialogue .moodle-dialogue-content .moodle-dialogue-ft {
1332 .chooserdialogue .moodle-dialogue-wrap .moodle-dialogue-bd {
1334 background: #f2f2f2;
1336 @include border-bottom-radius(10px);
1338 /* Center the submit buttons within the area */
1339 .choosercontainer #chooseform .submitbuttons {
1343 /* Fixed for safari browser on iPhone4S with ios7@mixin */
1345 @media (max-height: 639px) {
1346 .ios.safari .choosercontainer #chooseform .submitbuttons {
1351 .choosercontainer #chooseform .submitbuttons input {
1355 /* Various settings for the options area */
1356 .choosercontainer #chooseform .options {
1358 border-bottom: 1px solid #bbb;
1360 /* Only set these options if we're showing the js container */
1361 .jschooser .choosercontainer #chooseform .alloptions {
1368 display: inline-block;
1372 display: inline-block;
1377 /* Settings for option rows and option subtypes */
1378 .choosercontainer #chooseform .moduletypetitle,
1379 .choosercontainer #chooseform .option,
1380 .choosercontainer #chooseform .nonoption {
1382 padding: 0 1.6em 0 1.6em;
1385 .choosercontainer #chooseform .moduletypetitle {
1386 text-transform: uppercase;
1388 padding-bottom: 0.4em;
1391 .choosercontainer #chooseform .option .typename,
1392 .choosercontainer #chooseform .nonoption .typename {
1393 padding: 0 0 0 0.5em;
1396 .choosercontainer #chooseform .modicon + .typename {
1400 .choosercontainer #chooseform .option input[type=radio],
1401 .choosercontainer #chooseform .option span.typename {
1402 vertical-align: middle;
1405 .choosercontainer #chooseform .option label {
1408 padding: ($spacer / 2) 0;
1409 border-bottom: 1px solid #fff;
1412 .choosercontainer #chooseform .option .icon {
1417 .choosercontainer #chooseform .nonoption {
1418 padding-left: 2.7em;
1420 padding-bottom: 0.1em;
1423 .choosercontainer #chooseform .subtype {
1425 padding: 0 1.6em 0 3.2em;
1428 .choosercontainer #chooseform .subtype .typename {
1429 margin: 0 0 0 0.2em;
1431 /* The instruction/help area */
1432 .jschooser .choosercontainer #chooseform .instruction,
1433 .jschooser .choosercontainer #chooseform .typesummary {
1442 background-color: #fff;
1447 /* Selected option settings */
1448 .jschooser .choosercontainer #chooseform .instruction,
1449 .choosercontainer #chooseform .selected .typesummary {
1453 .choosercontainer #chooseform .selected {
1454 background-color: #fff;
1459 .chooserdialogue-course-modchooser .modicon .icon {
1465 @include media-breakpoint-down(xs) {
1466 .jsenabled .choosercontainer #chooseform .alloptions {
1470 .jsenabled .choosercontainer #chooseform .instruction,
1471 .jsenabled .choosercontainer #chooseform .typesummary {
1476 /* Form element: listing */
1478 padding-bottom: 25px;
1479 padding-right: 10px;
1482 .formlistinginputradio {
1493 padding: 1px 19px 14px;
1494 background-color: white;
1495 border: 1px solid #ddd;
1497 @include border-radius(4px);
1508 background-color: whitesmoke;
1509 border: 1px solid #ddd;
1512 @include border-radius(4px 0 4px 0);
1519 @include border-radius(4px);
1524 border-bottom: 1px solid;
1525 border-color: #e1e1e8;
1526 border-left: 1px solid #e1e1e8;
1527 border-right: 1px solid #e1e1e8;
1528 background-color: #f7f7f9;
1530 @include border-radius(0 0 4px 4px);
1539 body.jsenabled .formlistingradio {
1543 body.jsenabled .formlisting {
1550 @extend .table-bordered;
1551 @extend .table-striped;
1559 div.criteria-description {
1562 background: none repeat scroll 0 0 #f9f9f9;
1563 border: 1px solid #eee;
1573 display: inline-block;
1576 vertical-align: top;
1580 .badges li .badge-name {
1589 .badges li .badge-image {
1597 .badges li .badge-actions {
1601 .badges li .expireimage {
1612 background-color: transparent;
1617 display: inline-block;
1618 vertical-align: top;
1620 margin-bottom: 20px;
1643 display: inline-block;
1653 vertical-align: top;
1659 display: inline-block;
1665 display: inline-block;
1672 vertical-align: top;
1676 @extend .text-success;
1680 @extend .text-danger;
1684 @extend .text-warning;
1687 #page-badges-award .recipienttable tr td {
1688 vertical-align: top;
1691 #page-badges-award .recipienttable tr td.actions .actionbutton {
1697 #page-badges-award .recipienttable tr td.existing,
1698 #page-badges-award .recipienttable tr td.potential {
1702 #issued-badge-table .activatebadge {
1703 display: inline-block;
1707 background-color: $state-success-bg;
1710 .statusbox.inactive {
1711 background-color: $state-warning-bg;
1720 .statusbox .activatebadge {
1721 display: inline-block;
1724 .statusbox .activatebadge input[type=submit] {
1731 vertical-align: middle;
1734 img#persona_signin {
1742 .invisiblefieldset {
1759 nav.navbar .logo img {
1763 /** Header-bar styles **/
1764 .page-context-header {
1765 // We need to be explicit about the height of the header.
1766 $pageHeaderHeight: 140px;
1768 // Do not remove these rules.
1772 .page-header-headings {
1778 .page-header-image {
1783 .page-header-headings,
1784 .header-button-group {
1787 vertical-align: middle;
1790 .header-button-group {
1797 // Don't touch it unless you know exactly what you are doing.
1803 ul.dragdrop-keyboard-drag li {
1804 list-style-type: none;
1809 text-decoration: none;
1820 .progressbar_container {
1825 /* IE10 only fix for calendar titling */
1826 .ie10 .yui3-calendar-header-label {
1827 display: inline-block;
1840 // Active tabs with links should have a different
1841 // cursor to indicate they are clickable.
1842 .nav-tabs > .active > a[href],
1843 .nav-tabs > .active > a[href]:hover,
1844 .nav-tabs > .active > a[href]:focus {
1849 &.inplaceeditingon {
1854 font-weight: normal;
1859 white-space: nowrap;
1864 vertical-align: text-bottom;
1873 .quickediticon img {
1879 text-decoration: inherit;
1882 &:hover .quickeditlink .quickediticon img,
1883 .quickeditlink:focus .quickediticon img {
1887 &.inplaceeditable-toggle .quickediticon {
1891 &.inplaceeditable-autocomplete {
1896 h3.sectionname .inplaceeditable.inplaceeditingon .editinstructions {
1908 .chart-output-htmltable caption {
1909 white-space: nowrap;
1911 /** When accessible, we display the table only. */
1913 .chart-table-expand {
1928 /* YUI 2 Tree View */
1949 background-image: url([[pix:theme|yui2-treeview-sprite-rtl]]);
1953 .hover-tooltip-container {
1962 top: calc(-50% - 5px);
1963 transform: translate(-50%, -50%);
1964 background-color: #fff;
1965 border: 1px solid rgba(0, 0, 0, .2);
1966 border-radius: .3rem;
1967 box-sizing: border-box;
1969 white-space: nowrap;
1970 transition: opacity 0.15s, visibility 0.15s;
1975 display: inline-block;
1976 border-left: 8px solid transparent;
1977 border-right: 8px solid transparent;
1978 border-top: 8px solid rgba(0, 0, 0, .2);
1981 left: calc(50% - 8px);
1986 display: inline-block;
1987 border-left: 7px solid transparent;
1988 border-right: 7px solid transparent;
1989 border-top: 7px solid #fff;
1992 left: calc(50% - 7px);
2000 visibility: visible;
2001 transition: opacity 0.15s 0.5s, visibility 0.15s 0.5s;
2010 margin-right: $grid-gutter-width / 2;
2011 background-color: $card-bg;
2013 @include media-breakpoint-down(sm) {
2015 margin-top: $grid-gutter-width;
2021 // Footer link colour was added to allow the colour of footer links to be changed,
2022 // but really in bootstrap we want the colour of links on .bg-inverse to be changed
2023 // rather than being specific to the footer. This is kept for backwards compatibility.
2024 $footer-link-color: $bg-inverse-link-color !default;
2026 color: $footer-link-color;
2027 text-decoration: underline;
2029 color: $footer-link-color;
2034 color: $bg-inverse-link-color;
2035 text-decoration: underline;
2037 color: $bg-inverse-link-color;
2047 // Make links in a menu clickable anywhere in the row.
2056 padding-left: 1.5rem;
2060 .sr-only-focusable {
2063 z-index: $zindex-navbar-fixed + 1;
2072 [data-drag-type="move"] {
2080 .overlay-icon-container {
2086 background-color: rgba(255, 255, 255, 0.6);
2092 transform: translate(-50%, -50%);
2102 .open.atto_menu > .dropdown-menu {