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;
8 $font-size-xs: ($font-size-base * .75) !default;
13 background-color: $body-bg;
16 @include media-breakpoint-up(sm) {
18 border: $card-border-width solid $card-border-color;
20 @include border-radius($card-border-radius);
22 padding: $card-spacer-x;
26 @include media-breakpoint-up(sm) {
27 .context-header-settings-menu,
28 .region-main-settings-menu {
38 @include media-breakpoint-down(sm) {
39 .context-header-settings-menu,
40 .region-main-settings-menu {
42 justify-content: flex-end;
46 $gototop-bottom-position: 50px !default;
51 transition: opacity .7s ease 0s, visibility .1s ease .8s;
54 bottom: $gototop-bottom-position;
59 transform: translateY(-100%);
63 @include media-breakpoint-down(sm) {
69 body.scrolled #goto-top-link {
72 transition: visibility 0s ease 0s, opacity .7s ease .1s;
75 .context-header-settings-menu .dropdown-toggle > .icon,
76 #region-main-settings-menu .dropdown-toggle > .icon {
81 /** Prevent user notifications overlapping with region main settings menu */
87 /** Page layout CSS starts **/
88 .layout-option-noheader #page-header,
89 .layout-option-nonavbar #page-navbar,
90 .layout-option-nofooter #page-footer,
91 .layout-option-nocourseheader .course-content-header,
92 .layout-option-nocoursefooter .course-content-footer {
96 /** Page layout CSS ends **/
108 direction: ltr !important; /* stylelint-disable-line declaration-no-important */
123 a.dimmed_text:visited,
127 .dimmed_text a:visited,
130 .usersuspended a:link,
131 .usersuspended a:visited,
137 // Accessible focus styling for links, add .aalink to links with custom css classes to get
138 // accessible focus styles.
140 #page-footer a:not([class]),
143 .activityinstance > a {
146 outline: $btn-focus-width solid transparent;
148 background-color: lighten($primary, 50%);
149 box-shadow: 0 -#{$btn-focus-width} lighten($primary, 50%), 0 $btn-focus-width $gray-800;
152 text-decoration: none;
156 // Accessible focus styling for buttons like elements that do not use the .btn class. Add
157 // .aabtn to you element if you need the same focus styles.
163 .list-group-item-action,
164 input[type="checkbox"],
170 .modal-dialog[tabindex="0"],
171 .moodle-dialogue-base .closebutton,
173 .form-autocomplete-selection {
177 box-shadow: $input-btn-focus-box-shadow;
180 text-decoration: none;
184 // Accessible focus styling for autocomplete elements.
185 .form-autocomplete-suggestions li[aria-selected=true] {
187 box-shadow: $input-btn-focus-box-shadow;
190 // Safari does not allow custom styling of checkboxes.
192 input[type="checkbox"],
193 input[type="radio"] {
207 .section li.activity,
208 .section li.movehere,
215 .section li.movehere a {
219 border: 2px dashed $gray-800;
222 .editing .course-content .hidden.sectionname {
233 font-size: $font-size-xs;
243 color: map-get($theme-colors, 'warning');
248 color: map-get($theme-colors, 'success');
252 color: map-get($theme-colors, 'info');
255 .fitem.advanced .text-info {
263 a.autolink.glossary:hover {
266 /* Block which is hidden if javascript enabled, prevents fickering visible when JS from footer used! */
267 .collapsibleregioncaption {
269 min-height: $line-height-base * $font-size-base;
272 .pagelayout-mydashboard.jsenabled .collapsibleregioncaption {
276 .pagelayout-mydashboard #region-main {
279 background-color: transparent;
283 @include media-breakpoint-down(sm) {
284 .pagelayout-mydashboard,
293 .collapsibleregioncaption img {
294 vertical-align: middle;
297 .jsenabled .hiddenifjs {
305 .jsenabled .visibleifjs {
309 .jsenabled .collapsibleregion {
311 box-sizing: content-box;
314 .jsenabled .collapsed .collapsibleregioninner {
318 .collapsible-actions {
323 .jsenabled .collapsible-actions {
327 .collapsible-actions .collapseexpand {
329 background: url([[pix:t/collapsed]]) 2px center no-repeat;
332 .collapsible-actions .collapseexpand {
333 background: url([[pix:t/collapsed_rtl]]) right center no-repeat;
336 .collapsible-actions .collapse-all {
337 background-image: url([[pix:t/expanded]]);
340 .yui-overlay .yui-widget-bd {
341 background-color: #ffee69;
342 border: 1px solid #a6982b;
343 border-top-color: #d4c237;
353 background: transparent;
366 .pagingbar .thispage {
371 margin-right: 0.5rem;
379 .action-menu .dropdown-toggle {
380 text-decoration: none;
395 vertical-align: middle;
412 #addmembersform table {
417 table.flexible .emptyrow {
426 .arrow_button input {
433 // Minimum height required for a menu in a table inside a scrollable div.
434 // Position required for table sizing inside a flex container.
435 .no-overflow > .generaltable {
440 // Accessibility features
442 // Accessibility: text 'seen' by screen readers but not visual users.
452 // Accessibility: Skip block link, for keyboard-only users.
458 text-decoration: none;
479 .blog_entry .audience {
488 .blog_entry .content {
503 #doc-contents ul li {
504 list-style-type: none;
507 .groupmanagementtable td {
511 .groupmanagementtable #existingcell,
512 .groupmanagementtable #potentialcell {
516 .groupmanagementtable #buttonscell {
520 .groupmanagementtable #buttonscell p.arrow_button input {
527 .groupmanagementtable #removeselect_wrapper,
528 .groupmanagementtable #addselect_wrapper {
532 .groupmanagementtable #removeselect_wrapper label,
533 .groupmanagementtable #addselect_wrapper label {
544 display: inline-block;
547 .groupselector label {
548 display: inline-block;
555 border-bottom-right-radius: 0;
556 border-bottom-left-radius: 0;
561 border-top-left-radius: 0;
562 border-top-right-radius: 0;
571 .notepost .userpicture {
586 .path-my .coursebox {
591 margin: 15px 30px 10px 30px;
595 .path-my .coursebox .info {
627 .comment-area textarea {
632 -webkit-box-sizing: border-box;
633 -moz-box-sizing: border-box;
634 box-sizing: border-box;
647 vertical-align: text-bottom;
667 .comment-list li.first {
675 .comment-paging .pageno {
679 .comment-paging .curpage {
680 border: 1px solid #ccc;
683 .comment-message .picture {
688 .comment-message .text {
693 .comment-message .text p {
705 .comment-report-selectall {
713 .jsenabled .comment-link {
717 .jsenabled .showcommentsnonjs {
721 .jsenabled .comment-report-selectall {
725 * Completion progress report
727 .completion-expired {
728 color: map-get($theme-colors, 'warning');
731 .completion-expected {
732 font-size: $font-size-xs;
735 .completion-sortchoice,
736 .completion-identifyfield {
737 font-size: $font-size-xs;
738 vertical-align: bottom;
741 .completion-progresscell {
745 .completion-expired .completion-expected {
761 .path-tag .tag-index-items .tagarea {
762 border: 1px solid #e3e3e3;
768 .path-tag .tag-index-items .tagarea h3 {
770 padding: 3px 0 10px 0;
776 text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
777 text-transform: uppercase;
778 word-wrap: break-word;
779 border-bottom: solid 1px #e3e3e3;
783 .path-tag .tagarea .controls,
784 .path-tag .tagarea .taggeditems {
788 .path-tag .tagarea .controls,
789 .path-tag .tag-backtoallitems {
793 .path-tag .tagarea .controls .gotopage.nextpage {
797 .path-tag .tagarea .controls .gotopage.prevpage {
801 .path-tag .tagarea .controls .exclusivemode {
802 display: inline-block;
805 .path-tag .tagarea .controls.controls-bottom {
809 .path-tag .tagarea .controls .gotopage.nextpage::after {
815 .path-tag .tagarea .controls .gotopage.prevpage::before {
825 color: map-get($theme-colors, 'warning');
828 .tag-management-table td,
829 .tag-management-table th {
830 vertical-align: middle;
834 .tag-management-table .inplaceeditable.inplaceeditingon input {
838 .path-admin-tag .addstandardtags {
846 .path-tag .tag-relatedtags {
850 .path-tag .tag-management-box {
854 .path-tag .tag-index-toc {
859 .path-tag .tag-index-toc li,
860 .path-tag .tag-management-box li {
865 .path-tag .tag-management-box li a.edittag {
866 background-image: url([[pix:moodle|i/settings]]);
869 .path-tag .tag-management-box li a.flagasinappropriate {
870 background-image: url([[pix:moodle|i/flagged]]);
873 .path-tag .tag-management-box li a.removefrommyinterests {
874 background-image: url([[pix:moodle|t/delete]]);
877 .path-tag .tag-management-box li a.addtomyinterests {
878 background-image: url([[pix:moodle|t/add]]);
881 .path-tag .tag-management-box li a {
882 background-repeat: no-repeat;
883 background-position: left;
887 .tag_feed.media-list .media .itemimage {
891 .tag_feed.media-list .media .itemimage img {
896 .tag_feed.media-list .media .media-body {
901 .tag_feed .media .muted a {
909 .tag_cloud .inline-list li {
913 .tag_cloud .tag_overflow {
1006 .tag_list.hideoverlimit .overlimit {
1010 .tag_list .tagmorelink {
1014 .tag_list.hideoverlimit .tagmorelink {
1018 .tag_list.hideoverlimit .taglesslink {
1025 #webservice-doc-generator td {
1027 border: 0 solid black;
1035 border-collapse: collapse;
1039 vertical-align: top;
1047 .userenrolment .subfield {
1051 .userenrolment .col_userdetails .subfield {
1055 .userenrolment .col_userdetails .subfield_picture {
1060 .userenrolment .col_lastseen {
1064 .userenrolment .col_role {
1068 .userenrolment .col_role .roles,
1069 .userenrolment .col_group .groups {
1073 .userenrolment .col_role .role {
1077 white-space: nowrap;
1080 .userenrolment .col_group .group {
1084 white-space: nowrap;
1087 .userenrolment .col_role .role a,
1088 .userenrolment .col_group .group a {
1093 .userenrolment .col_role .addrole,
1094 .userenrolment .col_group .addgroup {
1100 border-bottom: 1px solid #666;
1104 .userenrolment .col_role .addrole img,
1105 .userenrolment .col_group .addgroup img {
1106 vertical-align: baseline;
1109 .userenrolment .hasAllRoles .col_role .addrole {
1113 .userenrolment .col_enrol .enrolment {
1119 .userenrolment .col_enrol .enrolment a {
1125 background-color: #ccc;
1145 display: table-cell;
1148 .label .mod-indent {
1153 @include media-breakpoint-up(sm) {
1154 $mod-indent-size: 30px;
1155 /* Creates a series of .mod-indent-# rule declarations based on indent size and number of indent levels. */
1157 @for $i from 1 through 16 {
1158 $width: ($i * $mod-indent-size);
1166 width: (16 * $mod-indent-size);
1170 /* Audio player size in 'block' mode (can only change width, height is hardcoded in JS) */
1171 .resourcecontent .mediaplugin_mp3 object {
1176 .resourcecontent audio.mediaplugin_html5audio {
1179 /** Large resource images should avoid hidden overflow **/
1183 /* Audio player size in 'inline' mode (can only change width, as above) */
1184 .mediaplugin_mp3 object {
1189 audio.mediaplugin_html5audio {
1192 /* TinyMCE moodle media preview frame should not have padding */
1193 .core_media_preview.pagelayout-embedded #content {
1197 .core_media_preview.pagelayout-embedded #maincontent {
1201 body#page-lib-editor-tinymce-plugins-moodlemedia-preview {
1208 .path-rating .ratingtable {
1213 .path-rating .ratingtable th.rating {
1217 .path-rating .ratingtable td.rating,
1218 .path-rating .ratingtable td.time {
1219 white-space: nowrap;
1223 /* Moodle Dialogue Settings (moodle-core-dialogue) */
1224 .moodle-dialogue-base .moodle-dialogue-lightbox {
1225 background-color: $gray-700;
1228 // Prevent adding backdrops to popups in popups.
1230 .moodle-dialogue-base {
1231 .moodle-dialogue-lightbox {
1232 background-color: transparent;
1235 box-shadow: $popover-box-shadow;
1240 .moodle-dialogue-base .hidden,
1241 .moodle-dialogue-base .moodle-dialogue-hidden {
1249 .moodle-dialogue-base .moodle-dialogue-fullscreen {
1257 .moodle-dialogue-base .moodle-dialogue-fullscreen .moodle-dialogue-content {
1261 .moodle-dialogue-base .moodle-dialogue-fullscreen .closebutton {
1264 background-size: 100%;
1267 .moodle-dialogue-base .moodle-dialogue-wrap {
1268 background-color: #fff;
1269 border: 1px solid #ccc;
1272 // Show is a bootstrap 2 class - but we use it for modals. We don't want to enable it everywhere because they removed
1273 // it for a reason (conflicts with jquery .show()).
1278 .moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd {
1281 border-bottom: 1px solid #dee2e6;
1284 .moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd.yui3-widget-hd {
1285 // Undo some YUI damage.
1288 background: initial;
1293 .moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd h1 {
1297 .moodle-dialogue-base .moodle-dialogue-wrap .moodle-dialogue-hd .yui3-widget-buttons {
1307 .moodle-dialogue-base .closebutton {
1308 padding: $modal-header-padding;
1309 margin: (-$modal-header-padding-y) (-$modal-header-padding-x) (-$modal-header-padding-y) auto;
1311 background-color: transparent;
1313 background-image: none;
1325 .moodle-dialogue-base .moodle-dialogue .moodle-dialogue-bd {
1328 background-color: $body-bg;
1332 .moodle-dialogue-base .moodle-dialogue-fullscreen .moodle-dialogue-content {
1343 .moodle-dialogue-exception .moodle-exception-param label {
1347 .moodle-dialogue-exception .param-stacktrace label {
1348 background-color: #eee;
1349 border: 1px solid #ccc;
1350 border-bottom-width: 0;
1353 .moodle-dialogue-exception .param-stacktrace pre {
1354 border: 1px solid #ccc;
1355 background-color: #fff;
1358 .moodle-dialogue-exception .param-stacktrace .stacktrace-file {
1360 font-size: $font-size-sm;
1363 .moodle-dialogue-exception .param-stacktrace .stacktrace-line {
1364 color: map-get($theme-colors, 'warning');
1365 font-size: $font-size-sm;
1368 .moodle-dialogue-exception .param-stacktrace .stacktrace-call {
1371 border-bottom: 1px solid #eee;
1374 .moodle-dialogue-base .moodle-dialogue .moodle-dialogue-content .moodle-dialogue-ft:empty {
1378 .moodle-dialogue-base .moodle-dialogue .moodle-dialogue-content .moodle-dialogue-ft.yui3-widget-ft {
1379 // Undo some YUI damage.
1380 background: initial;
1383 .moodle-dialogue-confirm .confirmation-message {
1387 .moodle-dialogue-confirm .confirmation-dialogue input {
1391 .moodle-dialogue-exception .moodle-exception-message {
1395 .moodle-dialogue-exception .moodle-exception-param {
1396 margin-bottom: 0.5em;
1399 .moodle-dialogue-exception .moodle-exception-param label {
1403 .moodle-dialogue-exception .param-stacktrace label {
1409 .moodle-dialogue-exception .param-stacktrace pre {
1415 .moodle-dialogue-exception .param-stacktrace .stacktrace-file {
1416 display: inline-block;
1420 .moodle-dialogue-exception .param-stacktrace .stacktrace-line {
1421 display: inline-block;
1426 .moodle-dialogue-exception .param-stacktrace .stacktrace-call {
1429 padding-bottom: 4px;
1432 .moodle-dialogue .moodle-dialogue-bd .content-lightbox {
1438 background-color: white;
1442 /* Apply a default max-height on tooltip text */
1443 .moodle-dialogue .tooltiptext {
1447 .moodle-dialogue-base .moodle-dialogue.moodle-dialogue-tooltip {
1450 .moodle-dialogue-bd {
1456 * Chooser Dialogues (moodle-core-chooserdialogue)
1458 * This CSS belong to the chooser dialogue which should work both with, and
1459 * without javascript enabled
1461 /* Hide the dialog and it's title */
1462 .chooserdialoguebody,
1467 .moodle-dialogue.chooserdialogue .moodle-dialogue-content .moodle-dialogue-ft {
1471 .chooserdialogue .moodle-dialogue-wrap .moodle-dialogue-bd {
1473 background: #f2f2f2;
1475 @include border-bottom-radius(10px);
1477 /* Center the submit buttons within the area */
1478 .choosercontainer #chooseform .submitbuttons {
1482 /* Fixed for safari browser on iPhone4S with ios7@mixin */
1484 @media (max-height: 639px) {
1485 .ios .choosercontainer #chooseform .submitbuttons {
1490 .choosercontainer #chooseform .submitbuttons input {
1494 /* Various settings for the options area */
1495 .choosercontainer #chooseform .options {
1497 border-bottom: 1px solid #bbb;
1499 /* Only set these options if we're showing the js container */
1500 .jschooser .choosercontainer #chooseform .alloptions {
1507 display: inline-block;
1511 display: inline-block;
1516 /* Settings for option rows and option subtypes */
1517 .choosercontainer #chooseform .moduletypetitle,
1518 .choosercontainer #chooseform .option,
1519 .choosercontainer #chooseform .nonoption {
1521 padding: 0 1.6em 0 1.6em;
1524 .choosercontainer #chooseform .moduletypetitle {
1525 text-transform: uppercase;
1527 padding-bottom: 0.4em;
1528 margin-bottom: 0.5rem;
1532 .choosercontainer #chooseform .option .typename,
1533 .choosercontainer #chooseform .nonoption .typename {
1534 padding: 0 0 0 0.5em;
1537 .choosercontainer #chooseform .modicon + .typename {
1541 .choosercontainer #chooseform .option input[type=radio],
1542 .choosercontainer #chooseform .option span.typename {
1543 vertical-align: middle;
1546 .choosercontainer #chooseform .option label {
1549 padding: ($spacer / 2) 0;
1550 border-bottom: 1px solid #fff;
1553 .choosercontainer #chooseform .option .icon {
1558 .choosercontainer #chooseform .nonoption {
1559 padding-left: 2.7em;
1561 padding-bottom: 0.1em;
1564 .choosercontainer #chooseform .subtype {
1566 padding: 0 1.6em 0 3.2em;
1569 .choosercontainer #chooseform .subtype .typename {
1570 margin: 0 0 0 0.2em;
1572 /* The instruction/help area */
1573 .jschooser .choosercontainer #chooseform .instruction,
1574 .jschooser .choosercontainer #chooseform .typesummary {
1583 background-color: #fff;
1588 /* Selected option settings */
1589 .jschooser .choosercontainer #chooseform .instruction,
1590 .choosercontainer #chooseform .selected .typesummary {
1594 .choosercontainer #chooseform .selected {
1595 background-color: #fff;
1601 @include media-breakpoint-down(xs) {
1602 .jsenabled .choosercontainer #chooseform .alloptions {
1606 .jsenabled .choosercontainer #chooseform .instruction,
1607 .jsenabled .choosercontainer #chooseform .typesummary {
1613 * Module chooser dialogue (moodle-core-chooserdialogue)
1615 * This CSS belong to the chooser dialogue which should work both with, and
1616 * without javascript enabled
1618 .modchooser .modal-body {
1623 flex-direction: column;
1625 .searchresultitemscontainer-wrapper {
1629 .carousel-item.active {
1632 .chooser-container {
1634 flex-direction: column;
1647 .carousel-item .loading-icon .icon {
1655 .modchooser .modal-footer {
1657 background: $modal-content-bg;
1662 margin-bottom: .6rem;
1667 .modchoosercontainer.noscroll {
1671 .modchoosercontainer .optionscontainer,
1672 .modchoosercontainer .searchresultitemscontainer {
1675 // 2 items per line.
1676 flex-basis: calc(50% - 0.5rem);
1690 text-decoration: none;
1697 .modchooser .modal-body .optionsummary {
1698 background-color: $white;
1716 border-top: 1px solid $gray-300;
1721 @include media-breakpoint-down(xs) {
1722 .path-course-view .modal-dialog.modal-lg,
1723 .path-course-view .modal-content,
1724 .modchooser .modal-body,
1725 .modchooser .modal-body .carousel,
1726 .modchooser .modal-body .carousel-inner,
1727 .modchooser .modal-body .carousel-item,
1728 .modchooser .modal-body .optionsummary,
1729 .modchoosercontainer,
1731 .searchresultitemscontainer {
1736 .path-course-view .modal-dialog.modal-lg {
1739 .modchooser .modal-body .searchresultitemscontainer-wrapper {
1744 @include media-breakpoint-up(sm) {
1745 .modchoosercontainer .optionscontainer .option,
1746 .modchoosercontainer .searchresultitemscontainer .option {
1747 // Three items per line.
1748 flex-basis: calc(33.33% - 0.5rem);
1752 @include media-breakpoint-up(lg) {
1753 .modchoosercontainer .optionscontainer .option,
1754 .modchoosercontainer .searchresultitemscontainer .option {
1755 // Six items per line.
1756 flex-basis: calc(16.66% - 0.5rem);
1760 /* Form element: listing */
1762 padding-bottom: 25px;
1763 padding-right: 10px;
1766 .formlistinginputradio {
1777 padding: 1px 19px 14px;
1778 background-color: white;
1779 border: 1px solid #ddd;
1781 @include border-radius(4px);
1792 background-color: whitesmoke;
1793 border: 1px solid #ddd;
1796 @include border-radius(4px 0 4px 0);
1803 @include border-radius(4px);
1808 border-bottom: 1px solid;
1809 border-color: #e1e1e8;
1810 border-left: 1px solid #e1e1e8;
1811 border-right: 1px solid #e1e1e8;
1812 background-color: #f7f7f9;
1814 @include border-radius(0 0 4px 4px);
1823 body.jsenabled .formlistingradio {
1827 body.jsenabled .formlisting {
1836 div.criteria-description {
1839 background: none repeat scroll 0 0 #f9f9f9;
1840 border: 1px solid #eee;
1850 display: inline-block;
1853 vertical-align: top;
1857 .badges li .badge-name {
1866 .badges li .badge-image {
1874 .badges li .badge-actions {
1878 .badges li .expireimage {
1889 background-color: transparent;
1894 display: inline-block;
1895 vertical-align: top;
1897 margin-bottom: 20px;
1920 display: inline-block;
1930 vertical-align: top;
1936 display: inline-block;
1942 display: inline-block;
1949 vertical-align: top;
1953 color: map-get($theme-colors, 'success');
1957 color: map-get($theme-colors, 'danger');
1961 color: map-get($theme-colors, 'warning');
1964 #page-badges-award .recipienttable tr td {
1965 vertical-align: top;
1968 #page-badges-award .recipienttable tr td.actions .actionbutton {
1974 #page-badges-award .recipienttable tr td.existing,
1975 #page-badges-award .recipienttable tr td.potential {
1979 #issued-badge-table .activatebadge {
1980 display: inline-block;
1984 background-color: $state-success-bg;
1987 .statusbox.inactive {
1988 background-color: $state-warning-bg;
1997 .statusbox .activatebadge {
1998 display: inline-block;
2001 .statusbox .activatebadge input[type=submit] {
2008 vertical-align: middle;
2011 img#persona_signin {
2019 .invisiblefieldset {
2036 nav.navbar .logo img {
2044 .usermenu .dropdown-toggle {
2049 /** Header-bar styles **/
2050 .page-context-header {
2051 // We need to be explicit about the height of the header.
2052 $pageHeaderHeight: 140px;
2054 // Do not remove these rules.
2059 .page-header-headings {
2065 .page-header-image {
2069 display: inline-block;
2073 .page-header-headings,
2074 .header-button-group {
2077 vertical-align: middle;
2080 .header-button-group {
2086 ul.dragdrop-keyboard-drag li {
2087 list-style-type: none;
2092 text-decoration: none;
2103 .progressbar_container {
2108 /* IE10 only fix for calendar titling */
2109 .ie10 .yui3-calendar-header-label {
2110 display: inline-block;
2123 // Active tabs with links should have a different
2124 // cursor to indicate they are clickable.
2125 .nav-tabs > .active > a[href],
2126 .nav-tabs > .active > a[href]:hover,
2127 .nav-tabs > .active > a[href]:focus {
2132 &.inplaceeditingon {
2137 font-weight: normal;
2142 white-space: nowrap;
2144 @include media-breakpoint-up(sm) {
2147 vertical-align: text-bottom;
2157 .quickediticon img {
2163 text-decoration: inherit;
2166 &:hover .quickeditlink .quickediticon img,
2167 .quickeditlink:focus .quickediticon img {
2171 &.inplaceeditable-toggle .quickediticon {
2175 &.inplaceeditable-autocomplete {
2180 h3.sectionname .inplaceeditable.inplaceeditingon .editinstructions {
2192 .chart-output-htmltable caption {
2193 white-space: nowrap;
2195 /** When accessible, we display the table only. */
2197 .chart-table-expand {
2210 -webkit-margin-start: 0.2rem; /* stylelint-disable-line */
2213 /* YUI 2 Tree View */
2234 background-image: url([[pix:theme|yui2-treeview-sprite-rtl]]);
2238 .hover-tooltip-container {
2247 top: calc(-50% - 5px);
2248 transform: translate(-50%, -50%);
2249 background-color: #fff;
2250 border: 1px solid rgba(0, 0, 0, .2);
2251 border-radius: .3rem;
2252 box-sizing: border-box;
2254 white-space: nowrap;
2255 transition: opacity 0.15s, visibility 0.15s;
2260 display: inline-block;
2261 border-left: 8px solid transparent;
2262 border-right: 8px solid transparent;
2263 border-top: 8px solid rgba(0, 0, 0, .2);
2266 left: calc(50% - 8px);
2271 display: inline-block;
2272 border-left: 7px solid transparent;
2273 border-right: 7px solid transparent;
2274 border-top: 7px solid #fff;
2277 left: calc(50% - 7px);
2285 visibility: visible;
2286 transition: opacity 0.15s 0.5s, visibility 0.15s 0.5s;
2295 margin-right: $grid-gutter-width / 2;
2296 background-color: $card-bg;
2298 @include media-breakpoint-down(sm) {
2300 margin-top: $grid-gutter-width;
2306 // Footer link colour was added to allow the colour of footer links to be changed,
2307 // but really in bootstrap we want the colour of links on .bg-inverse to be changed
2308 // rather than being specific to the footer. This is kept for backwards compatibility.
2309 $footer-link-color: $bg-inverse-link-color !default;
2311 color: $footer-link-color;
2312 text-decoration: underline;
2314 color: $footer-link-color;
2322 color: $bg-inverse-link-color;
2323 text-decoration: underline;
2325 color: $bg-inverse-link-color;
2335 // Make links in a menu clickable anywhere in the row.
2347 background-color: $dropdown-link-hover-bg;
2349 color: $dropdown-link-active-color;
2352 &[aria-current="true"] {
2355 align-items: center;
2358 content: $fa-var-circle;
2368 padding-left: 1.5rem;
2372 .sr-only-focusable {
2384 [data-drag-type="move"] {
2393 .overlay-icon-container {
2399 background-color: rgba(255, 255, 255, 0.6);
2405 transform: translate(-50%, -50%);
2420 animation: bg-pulse-grey 2s infinite linear;
2423 @keyframes bg-pulse-grey {
2425 background-color: $gray-100;
2428 background-color: darken($gray-100, 5%);
2431 background-color: $gray-100;
2435 @each $size, $length in $spacers {
2436 .line-height-#{$size} {
2437 line-height: $length !important; /* stylelint-disable-line declaration-no-important */
2453 .paged-content-page-container {
2454 min-height: 3.125rem;
2465 min-height: 230px; // This should be the same height as default core_h5p iframes.
2469 .text-decoration-none {
2470 text-decoration: none !important; /* stylelint-disable-line declaration-no-important */
2474 color: inherit !important; /* stylelint-disable-line declaration-no-important */
2478 right: 0 !important; /* stylelint-disable-line declaration-no-important */
2482 overflow: hidden !important; /* stylelint-disable-line declaration-no-important */
2486 overflow-wrap: break-word !important; /* stylelint-disable-line declaration-no-important */
2490 z-index: 0 !important; /* stylelint-disable-line declaration-no-important */
2494 z-index: 1 !important; /* stylelint-disable-line declaration-no-important */
2497 // These floats are deprecated in Bootstrap 4.3.1. It is still okay to use them in Moodle.
2499 float: left !important; /* stylelint-disable-line declaration-no-important */
2503 float: right !important; /* stylelint-disable-line declaration-no-important */
2507 @include img-fluid();
2511 cursor: not-allowed;
2523 display: -webkit-box;
2524 -webkit-box-orient: vertical;
2525 -webkit-line-clamp: 2;
2530 word-break: break-all;
2534 background-color: lighten($primary, 40%);
2540 @if $enable-rounded {
2541 @include border-radius($card-border-radius);
2546 $picker-width: 350px !default;
2547 $picker-width-xs: 320px !default;
2548 $picker-height: 400px !default;
2549 $picker-row-height: 40px !default;
2550 $picker-emoji-button-size: 40px !default;
2551 $picker-emoji-button-font-size: 24px !default;
2552 $picker-emoji-category-count: 9 !default;
2553 $picker-emojis-per-row: 7 !default;
2556 width: $picker-width;
2557 height: $picker-height;
2562 width: $picker-width / $picker-emoji-category-count;
2566 border-bottom: 2px solid transparent;
2569 border-bottom: 2px solid map-get($theme-colors, 'primary');
2574 .search-results-container {
2575 min-width: $picker-emojis-per-row * $picker-emoji-button-size;
2579 height: $picker-row-height;
2582 line-height: $picker-row-height;
2586 height: $picker-emoji-button-size;
2587 width: $picker-emoji-button-size;
2588 line-height: $picker-emoji-button-size;
2589 font-size: $picker-emoji-button-font-size;
2592 @include hover-focus {
2594 text-decoration: none;
2600 height: $picker-row-height;
2601 font-size: $picker-row-height;
2602 line-height: $picker-row-height;
2606 line-height: $picker-row-height / 2;
2609 @include media-breakpoint-down(xs) {
2610 width: $picker-width-xs;
2614 .emoji-auto-complete {
2615 height: $picker-row-height;
2617 .btn.btn-link.btn-icon.emoji-button {
2618 height: $picker-emoji-button-size;
2619 width: $picker-emoji-button-size;
2620 line-height: $picker-emoji-button-size;
2621 font-size: $picker-emoji-button-font-size;
2624 background-color: $gray-200;
2630 max-width: $toast-max-width;
2632 // Place these above any modals and other elements.
2636 margin-top: $spacer;
2640 @each $color, $value in $theme-colors {
2641 .alert-#{$color} a {
2642 color: darken(theme-color-level($color, $alert-color-level), 10%);
2646 font-weight: $font-weight-bold;
2649 @include media-breakpoint-down(sm) {
2654 .breadcrumb:not(:empty) {
2656 border: ($border-width * 2) solid $gray-200;
2657 padding: $spacer / 4;
2658 margin-bottom: $spacer / 2;
2660 padding-top: $spacer / 3;
2661 padding-bottom: $spacer / 3;
2662 display: inline-block;
2668 padding-right: 15px;
2673 justify-content: center;
2679 padding: $card-spacer-x / 2;
2693 padding: $spacer / 8;
2694 background-color: $gray-200;
2702 margin: $spacer / 8;
2704 @include button-outline-variant($gray-600);
2705 border-color: $gray-600;
2711 @media (max-width: map-get($grid-breakpoints, "sm")) and (max-height: 320px) {
2722 text-decoration: underline;
2724 text-decoration: none;
2733 border-style: solid;
2734 border-width: 0.125rem;
2738 .core_payment_gateways_modal .custom-control-label::before,
2739 .core_payment_gateways_modal .custom-control-label::after {