MDL-67735 theme_boost: remove bs2 and bs4alpha compatibility css
authorBas Brands <bas@moodle.com>
Mon, 27 Jan 2020 14:06:29 +0000 (15:06 +0100)
committerBas Brands <bas@moodle.com>
Mon, 17 Aug 2020 08:16:42 +0000 (08:16 +0000)
113 files changed:
admin/tool/analytics/classes/output/models_list.php
admin/tool/analytics/templates/evaluation_options.mustache
admin/tool/analytics/templates/export_options.mustache
admin/tool/customlang/templates/translator.mustache
admin/tool/dataprivacy/templates/component_status.mustache
admin/tool/dataprivacy/templates/data_registry.mustache
admin/tool/dataprivacy/templates/data_registry_compliance.mustache
admin/tool/dataprivacy/templates/defaults_display.mustache
admin/tool/dataprivacy/templates/summary.mustache
admin/tool/langimport/templates/langimport.mustache
admin/tool/lp/templates/manage_competencies_page.mustache
admin/tool/moodlenet/amd/build/instance_form.min.js
admin/tool/moodlenet/amd/build/instance_form.min.js.map
admin/tool/moodlenet/amd/src/instance_form.js
admin/tool/moodlenet/templates/import_confirmation.mustache
admin/tool/moodlenet/templates/import_options_select.mustache
analytics/templates/insight_info_message_prediction.mustache
availability/condition/completion/yui/build/moodle-availability_completion-form/moodle-availability_completion-form-debug.js
availability/condition/completion/yui/build/moodle-availability_completion-form/moodle-availability_completion-form-min.js
availability/condition/completion/yui/build/moodle-availability_completion-form/moodle-availability_completion-form.js
availability/condition/completion/yui/src/form/js/form.js
availability/condition/date/yui/build/moodle-availability_date-form/moodle-availability_date-form-debug.js
availability/condition/date/yui/build/moodle-availability_date-form/moodle-availability_date-form-min.js
availability/condition/date/yui/build/moodle-availability_date-form/moodle-availability_date-form.js
availability/condition/date/yui/src/form/js/form.js
availability/condition/grade/yui/build/moodle-availability_grade-form/moodle-availability_grade-form-debug.js
availability/condition/grade/yui/build/moodle-availability_grade-form/moodle-availability_grade-form-min.js
availability/condition/grade/yui/build/moodle-availability_grade-form/moodle-availability_grade-form.js
availability/condition/grade/yui/src/form/js/form.js
availability/condition/group/yui/build/moodle-availability_group-form/moodle-availability_group-form-debug.js
availability/condition/group/yui/build/moodle-availability_group-form/moodle-availability_group-form-min.js
availability/condition/group/yui/build/moodle-availability_group-form/moodle-availability_group-form.js
availability/condition/group/yui/src/form/js/form.js
availability/condition/grouping/yui/build/moodle-availability_grouping-form/moodle-availability_grouping-form-debug.js
availability/condition/grouping/yui/build/moodle-availability_grouping-form/moodle-availability_grouping-form-min.js
availability/condition/grouping/yui/build/moodle-availability_grouping-form/moodle-availability_grouping-form.js
availability/condition/grouping/yui/src/form/js/form.js
availability/condition/profile/yui/build/moodle-availability_profile-form/moodle-availability_profile-form-debug.js
availability/condition/profile/yui/build/moodle-availability_profile-form/moodle-availability_profile-form-min.js
availability/condition/profile/yui/build/moodle-availability_profile-form/moodle-availability_profile-form.js
availability/condition/profile/yui/src/form/js/form.js
availability/yui/build/moodle-core_availability-form/moodle-core_availability-form-debug.js
availability/yui/build/moodle-core_availability-form/moodle-core_availability-form-min.js
availability/yui/build/moodle-core_availability-form/moodle-core_availability-form.js
availability/yui/src/form/js/form.js
badges/renderer.php
blocks/myoverview/templates/view-list.mustache
blocks/myoverview/templates/view-summary.mustache
blocks/rss_client/templates/item.mustache
calendar/templates/event_item.mustache
course/templates/activityinstance.mustache
course/templates/bulkactivitycompletion.mustache
course/templates/coursecard.mustache
course/templates/defaultactivitycompletion.mustache
grade/edit/outcome/course_form.html
group/templates/index.mustache
lib/badgeslib.php
lib/editor/atto/plugins/image/styles.css
lib/editor/atto/plugins/table/yui/build/moodle-atto_table-button/moodle-atto_table-button-debug.js
lib/editor/atto/plugins/table/yui/build/moodle-atto_table-button/moodle-atto_table-button-min.js
lib/editor/atto/plugins/table/yui/build/moodle-atto_table-button/moodle-atto_table-button.js
lib/editor/atto/plugins/table/yui/src/button/js/button.js
lib/form/filemanager.js
lib/outputrenderers.php
lib/templates/auth_digital_minor_page.mustache
lib/templates/filemanager_uploadform.mustache
lib/tests/weblib_test.php
message/templates/message_index.mustache
message/templates/message_preferences_component.mustache
message/templates/message_preferences_notification_processor.mustache
message/templates/notification_preferences_component.mustache
message/templates/notification_preferences_component_notification.mustache
mod/book/tool/print/classes/output/renderer.php
mod/book/tool/print/templates/print_book.mustache
mod/book/tool/print/templates/print_book_chapter.mustache
mod/forum/report/summary/index.php
mod/forum/report/summary/templates/filter_groups.mustache
mod/forum/templates/discussion_list.mustache
mod/forum/templates/forum_discussion.mustache
mod/forum/templates/local/grades/view_grade.mustache
mod/forum/tests/mail_test.php
mod/glossary/formats/entrylist/entrylist_format.php
mod/glossary/lib.php
mod/lesson/locallib.php
mod/lesson/renderer.php
mod/quiz/templates/modal_add_random_question.mustache
mod/quiz/tests/behat/manually_mark_question.feature
question/type/ddimageortext/rendererbase.php
question/type/ddimageortext/styles.css
question/type/ddmarker/renderer.php
question/type/ddmarker/styles.css
report/competency/templates/report.mustache
report/participation/index.php
theme/boost/scss/moodle.scss
theme/boost/scss/moodle/admin.scss
theme/boost/scss/moodle/backup-restore.scss
theme/boost/scss/moodle/bs2-compat.scss [deleted file]
theme/boost/scss/moodle/bs4alphacompat.scss [deleted file]
theme/boost/scss/moodle/calendar.scss
theme/boost/scss/moodle/core.scss
theme/boost/scss/moodle/course.scss
theme/boost/scss/moodle/forms.scss
theme/boost/scss/moodle/grade.scss
theme/boost/scss/moodle/modules.scss
theme/boost/scss/moodle/question.scss
theme/boost/scss/moodle/tool_usertours.scss
theme/boost/scss/moodle/variables.scss [new file with mode: 0644]
theme/boost/scss/preset/default.scss
theme/boost/style/moodle.css
theme/classic/scss/preset/default.scss
theme/classic/style/moodle.css
theme/index.php
theme/upgrade.txt

index ade6739..be1cb66 100644 (file)
@@ -64,7 +64,7 @@ class models_list implements \renderable, \templatable {
         $data = new \stdClass();
 
         $newmodelmenu = new \action_menu();
-        $newmodelmenu->set_menu_trigger(get_string('newmodel', 'tool_analytics'), 'btn btn-default');
+        $newmodelmenu->set_menu_trigger(get_string('newmodel', 'tool_analytics'), 'btn btn-secondary');
         $newmodelmenu->set_alignment(\action_menu::TL, \action_menu::BL);
 
         $newmodelmenu->add(new \action_menu_link(
index 9d77c13..7f4ce8e 100644 (file)
 {{/trainedexternally}}
 
 {{! Hidden by default if #trainedexternally as the default option is trainedmodel in this case.}}
-<div id="id-evaluation-timesplitting-container" class="m-t-1 {{#trainedexternally}}hidden{{/trainedexternally}}">
+<div id="id-evaluation-timesplitting-container" class="mt-3 {{#trainedexternally}}hidden{{/trainedexternally}}">
     {{#str}} selecttimesplittingforevaluation, tool_analytics {{/str}}
     <div>
-        <select id="id-evaluation-timesplitting" name="timesplitting" class="custom-select m-t-1">
+        <select id="id-evaluation-timesplitting" name="timesplitting" class="custom-select mt-3">
             {{#timesplittingmethods}}
                 <option value="{{id}}">{{text}}</option>
             {{/timesplittingmethods}}
index 34ebe94..c05550d 100644 (file)
@@ -39,7 +39,7 @@
     <input class="custom-control-input" type="radio" name="exportoption" id="id-mode-exportmodel" value="exportmodel" checked>
     <label class="custom-control-label" for="id-mode-exportmodel">{{#str}} exportmodel, tool_analytics {{/str}}</label>
 </div>
-<div class="custom-control custom-checkbox m-l-2" id="id-includeweights-container">
+<div class="custom-control custom-checkbox ml-5" id="id-includeweights-container">
   <input class="custom-control-input" type="checkbox" id="id-includeweights" value="1" checked>
   <label class="custom-control-label" for="id-includeweights">{{#str}} exportincludeweights, tool_analytics {{/str}}</label>
 </div>
index 62cbdac..400464c 100644 (file)
@@ -59,7 +59,7 @@
     <input type="hidden" name="sesskey" value="{{{ sesskey }}}">
     <input type="hidden" name="p" value="{{ currentpage }}">
 
-    <fieldset class="m-a-1 m-3">
+    <fieldset class="m-3">
         <button type="submit" name="savecontinue" class="btn btn-secondary">
             {{#str}}savecontinue, tool_customlang{{/str}}
         </button>
@@ -70,7 +70,7 @@
 
     <div class="list-group">
         <div class="container-fluid d-none d-md-block list-group-item border-bottom-0">
-            <div class="row-fluid">
+            <div class="row">
                 <div class="col-sm-4 col-md-2">
                     <strong>{{#str}}headingcomponent, tool_customlang{{/str}}</strong>
                 </div>
@@ -81,7 +81,7 @@
                     <strong>{{#str}}headingstandard, tool_customlang{{/str}}</strong>
                 </div>
                 <div class="col-sm-12 col-md-6">
-                    <span class="p-l-1 pl-3">
+                    <span class="pl-3">
                         <strong>{{#str}}headinglocal, tool_customlang{{/str}}</strong>
                     </span>
                 </div>
@@ -96,7 +96,7 @@
                 {{#outdated}}list-group-item-warning{{/outdated}}
                 {{#modified}}list-group-item-info{{/modified}}"
             >
-            <div class="row-fluid ">
+            <div class="row">
                 <div class="col-sm-4 col-md-2">
                     <div class="d-md-none">
                         <strong>{{#str}}headingcomponent, tool_customlang{{/str}}</strong>
     {{/strings}}
     </div>
 
-    <fieldset class="m-a-1 m-3">
+    <fieldset class="m-3">
         <button type="submit" name="savecontinue" class="btn btn-secondary">
             {{#str}}savecontinue, tool_customlang{{/str}}
         </button>
index 8d2bf1b..7130dbf 100644 (file)
     <hr />
     <div class="row">
         {{#compliant}}
-            <a class="component-expand p-l-2" data-component="{{raw_component}}" href='#'>
-            <h4 class=" d-inline p-l-2 " id="{{raw_component}}">{{#pix}}t/collapsed, moodle, {{#str}}expandplugin, tool_dataprivacy{{/str}}{{/pix}}{{component}}</h4>
+            <a class="component-expand pl-5" data-component="{{raw_component}}" href='#'>
+            <h4 class=" d-inline pl-5 " id="{{raw_component}}">{{#pix}}t/collapsed, moodle, {{#str}}expandplugin, tool_dataprivacy{{/str}}{{/pix}}{{component}}</h4>
             </a>
         {{/compliant}}
         {{^compliant}}
-            <h4 class="d-inline p-l-3 " id="{{raw_component}}">{{component}}</h4>
+            <h4 class="d-inline pl-6 " id="{{raw_component}}">{{component}}</h4>
             <span>{{#pix}}i/risk_xss, moodle, {{#str}}requiresattention, tool_dataprivacy{{/str}}{{/pix}}</span>
         {{/compliant}}
         {{#external}}
@@ -73,7 +73,7 @@
         <div class="hide" data-section="{{raw_component}}" aria-expanded="false" role="contentinfo">
             {{#metadata}}
                 <hr />
-                <div class="p-l-3">
+                <div class="pl-6">
                     <dl class="row">
                         <dt class="col-3">
                             {{#link}}
@@ -98,7 +98,7 @@
             {{/metadata}}
             {{#nullprovider}}
                 <hr />
-                <div class="p-l-3">
+                <div class="pl-6">
                     <div class="row">
                         <div class="col-12">
                             {{nullprovider}}
             {{/nullprovider}}
         </div>
     {{/compliant}}
-</div>
\ No newline at end of file
+</div>
index d77c7cf..501c5df 100644 (file)
@@ -54,7 +54,7 @@
 
     <div class="container-fluid mt-2">
         <div class="row">
-            <div class="col-md-4 p-l-0 nav-pills context-tree">
+            <div class="col-md-4 pl-0 nav-pills context-tree">
                 {{#tree}}
                     {{> tool_dataprivacy/context_tree_node}}
                 {{/tree}}
index c2231f3..ec41fc2 100644 (file)
@@ -59,7 +59,7 @@
             <h3 id="{{plugin_type_raw}}">{{#pix}}t/collapsed, moodle, {{#str}}expandplugintype, tool_dataprivacy{{/str}}{{/pix}}{{plugin_type}}</h3>
             </a>
         </div>
-        <div class="hide p-b-1" data-plugintarget="{{plugin_type_raw}}" aria-expanded="false" role="contentinfo">
+        <div class="hide pb-3" data-plugintarget="{{plugin_type_raw}}" aria-expanded="false" role="contentinfo">
             {{#plugins}}
                 {{> tool_dataprivacy/component_status}}
             {{/plugins}}
index dc1eb72..0053a31 100644 (file)
@@ -41,9 +41,9 @@
         "contextlevel": 70
     }
 }}
-<div class="row-fluid rtl-compatible mt-1 mb-1">
+<div class="row rtl-compatible mt-1 mb-1">
     <div class="col-md-9">
-        <div class="row-fluid rtl-compatible mt-1 mb-1">
+        <div class="row rtl-compatible mt-1 mb-1">
             <div class="col-md-3">
                 <strong>{{#str}}category, tool_dataprivacy{{/str}}</strong>
             </div>
@@ -51,7 +51,7 @@
                 {{category}}
             </div>
         </div>
-        <div class="row-fluid rtl-compatible mt-1 mb-1">
+        <div class="row rtl-compatible mt-1 mb-1">
             <div class="col-md-3">
                 <strong>{{#str}}purpose, tool_dataprivacy{{/str}}</strong>
             </div>
index 22c0221..a6be02e 100644 (file)
@@ -74,7 +74,7 @@
     {{#contexts}}
         <div class="card mb-3">
             <div class="card-header"><h3>{{contextname}}</h3></div>
-            <div class="card-body p-l-2 p-r-2">
+            <div class="card-body pl-5 pr-5">
 
                 {{#category.name}}
                 <h4>{{#str}}category, tool_dataprivacy{{/str}}</h4>
             </div>
         </div>
     {{/contexts}}
-</div>
\ No newline at end of file
+</div>
index 4b6b645..71a7515 100644 (file)
@@ -65,7 +65,7 @@
     }
 }}
 <div class="container-fluid langimport">
-    <div class="row row-fluid rtl-compatible">
+    <div class="row rtl-compatible">
         <div class="col-md-{{#caninstall}}6{{/caninstall}}{{^caninstall}}12{{/caninstall}} span{{#caninstall}}6{{/caninstall}}{{^caninstall}}12{{/caninstall}} mb-1">
             <form id="uninstallform" action="{{uninstallurl}}" method="post">
                 <fieldset>
index ccc67ba..1c2cd11 100644 (file)
@@ -46,7 +46,7 @@
 </h2>
 <div>{{{framework.description}}}</div>
     <h3>{{#str}}competencies, core_competency{{/str}}</h3>
-    <div class="row-fluid row">
+    <div class="row">
         <div class="col-lg-6">
             <p>
                 <form data-region="filtercompetencies" data-frameworkid="{{framework.id}}" class="form-inline">
index a6f0561..70d692b 100644 (file)
Binary files a/admin/tool/moodlenet/amd/build/instance_form.min.js and b/admin/tool/moodlenet/amd/build/instance_form.min.js differ
index 3e2853c..61f257e 100644 (file)
Binary files a/admin/tool/moodlenet/amd/build/instance_form.min.js.map and b/admin/tool/moodlenet/amd/build/instance_form.min.js.map differ
index a1443a0..cc0580e 100644 (file)
@@ -67,7 +67,7 @@ define(['tool_moodlenet/validator',
                             input.classList.remove('is-invalid'); // Just in case the class has been applied already.
                             input.classList.add('is-valid');
                             validationArea.innerText = result.message;
-                            validationArea.classList.remove('text-error');
+                            validationArea.classList.remove('text-danger');
                             validationArea.classList.add('text-success');
                             // Give the user some time to see their input is valid.
                             setTimeout(function() {
@@ -76,7 +76,7 @@ define(['tool_moodlenet/validator',
                         } else {
                             input.classList.add('is-invalid');
                             validationArea.innerText = result.message;
-                            validationArea.classList.add('text-error');
+                            validationArea.classList.add('text-danger');
                         }
                         return;
                 }).catch();
index 337b22a..f38cc0e 100644 (file)
@@ -53,7 +53,7 @@
 
             <input type="hidden" name="resourceurl" value="{{resourceurl}}">
             <input type="hidden" name="sesskey" value="{{sesskey}}">
-            <div class="box py-3 modal-header p-x-1">
+            <div class="box py-3 modal-header px-3">
                 <h4>{{#str}}confirm, core{{/str}}</h4>
             </div>
             <div class="box py-3 modal-body">
index 9dc42eb..f22566e 100644 (file)
@@ -58,7 +58,7 @@
             <input type="hidden" name="section" value="{{section}}">
             <input type="hidden" name="resourceurl" value="{{resourceurl}}">
             <input type="hidden" name="sesskey" value="{{sesskey}}">
-            <div class="box py-3 modal-header p-x-1">
+            <div class="box py-3 modal-header px-3">
                 <h4>{{#str}}importformatselectheader, tool_moodlenet{{/str}}</h4>
             </div>
             <div class="box py-3 modal-body">
index 6e66e8a..ed1d0e6 100644 (file)
@@ -43,7 +43,7 @@
 <br/>
 
 {{#actions}}
-    <a class="btn btn-outline-primary m-r-1 m-b-1 btn-insight" href="{{url}}">{{text}}</a><br/><br/>
+    <a class="btn btn-outline-primary mr-3 mb-3 btn-insight" href="{{url}}">{{text}}</a><br/><br/>
 {{/actions}}
 
 {{#usefulbuttons}}
index 5212364..4d5827f 100644 (file)
Binary files a/availability/condition/completion/yui/build/moodle-availability_completion-form/moodle-availability_completion-form-debug.js and b/availability/condition/completion/yui/build/moodle-availability_completion-form/moodle-availability_completion-form-debug.js differ
index 67acacb..3c31ebe 100644 (file)
Binary files a/availability/condition/completion/yui/build/moodle-availability_completion-form/moodle-availability_completion-form-min.js and b/availability/condition/completion/yui/build/moodle-availability_completion-form/moodle-availability_completion-form-min.js differ
index 5212364..4d5827f 100644 (file)
Binary files a/availability/condition/completion/yui/build/moodle-availability_completion-form/moodle-availability_completion-form.js and b/availability/condition/completion/yui/build/moodle-availability_completion-form/moodle-availability_completion-form.js differ
index 77c9cf1..2ccf97c 100644 (file)
@@ -23,7 +23,7 @@ M.availability_completion.form.initInner = function(cms) {
 
 M.availability_completion.form.getNode = function(json) {
     // Create HTML structure.
-    var html = '<span class="col-form-label p-r-1"> ' + M.util.get_string('title', 'availability_completion') + '</span>' +
+    var html = '<span class="col-form-label pr-3"> ' + M.util.get_string('title', 'availability_completion') + '</span>' +
                ' <span class="availability-group form-group"><label>' +
             '<span class="accesshide">' + M.util.get_string('label_cm', 'availability_completion') + ' </span>' +
             '<select class="custom-select" name="cm" title="' + M.util.get_string('label_cm', 'availability_completion') + '">' +
index 71cc687..c4eb06b 100644 (file)
Binary files a/availability/condition/date/yui/build/moodle-availability_date-form/moodle-availability_date-form-debug.js and b/availability/condition/date/yui/build/moodle-availability_date-form/moodle-availability_date-form-debug.js differ
index 42a4d65..4235144 100644 (file)
Binary files a/availability/condition/date/yui/build/moodle-availability_date-form/moodle-availability_date-form-min.js and b/availability/condition/date/yui/build/moodle-availability_date-form/moodle-availability_date-form-min.js differ
index 71cc687..c4eb06b 100644 (file)
Binary files a/availability/condition/date/yui/build/moodle-availability_date-form/moodle-availability_date-form.js and b/availability/condition/date/yui/build/moodle-availability_date-form/moodle-availability_date-form.js differ
index 30e36fe..1d1656c 100644 (file)
@@ -27,7 +27,7 @@ M.availability_date.form.initInner = function(html, defaultTime) {
 };
 
 M.availability_date.form.getNode = function(json) {
-    var html = '<span class="col-form-label p-r-1">' +
+    var html = '<span class="col-form-label pr-3">' +
                     M.util.get_string('direction_before', 'availability_date') + '</span> <span class="availability-group">' +
             '<label><span class="accesshide">' + M.util.get_string('direction_label', 'availability_date') + ' </span>' +
             '<select name="direction" class="custom-select">' +
index cc76dd5..8867dcc 100644 (file)
Binary files a/availability/condition/grade/yui/build/moodle-availability_grade-form/moodle-availability_grade-form-debug.js and b/availability/condition/grade/yui/build/moodle-availability_grade-form/moodle-availability_grade-form-debug.js differ
index 9f523aa..0e71a08 100644 (file)
Binary files a/availability/condition/grade/yui/build/moodle-availability_grade-form/moodle-availability_grade-form-min.js and b/availability/condition/grade/yui/build/moodle-availability_grade-form/moodle-availability_grade-form-min.js differ
index cc76dd5..8867dcc 100644 (file)
Binary files a/availability/condition/grade/yui/build/moodle-availability_grade-form/moodle-availability_grade-form.js and b/availability/condition/grade/yui/build/moodle-availability_grade-form/moodle-availability_grade-form.js differ
index 1957d9a..4927e6a 100644 (file)
@@ -35,7 +35,7 @@ M.availability_grade.form.getNode = function(json) {
     this.nodesSoFar++;
 
     // Create HTML structure.
-    var html = '<label class="form-group"><span class="p-r-1">' + M.util.get_string('title', 'availability_grade') + '</span> ' +
+    var html = '<label class="form-group"><span class="pr-3">' + M.util.get_string('title', 'availability_grade') + '</span> ' +
             '<span class="availability-group">' +
             '<select name="id" class="custom-select"><option value="0">' + M.util.get_string('choosedots', 'moodle') + '</option>';
     for (var i = 0; i < this.grades.length; i++) {
index e6272f9..0ce2ef3 100644 (file)
Binary files a/availability/condition/group/yui/build/moodle-availability_group-form/moodle-availability_group-form-debug.js and b/availability/condition/group/yui/build/moodle-availability_group-form/moodle-availability_group-form-debug.js differ
index bc86932..9f64223 100644 (file)
Binary files a/availability/condition/group/yui/build/moodle-availability_group-form/moodle-availability_group-form-min.js and b/availability/condition/group/yui/build/moodle-availability_group-form/moodle-availability_group-form-min.js differ
index e6272f9..0ce2ef3 100644 (file)
Binary files a/availability/condition/group/yui/build/moodle-availability_group-form/moodle-availability_group-form.js and b/availability/condition/group/yui/build/moodle-availability_group-form/moodle-availability_group-form.js differ
index 6c25361..d89ae08 100644 (file)
@@ -31,7 +31,7 @@ M.availability_group.form.initInner = function(groups) {
 
 M.availability_group.form.getNode = function(json) {
     // Create HTML structure.
-    var html = '<label><span class="p-r-1">' + M.util.get_string('title', 'availability_group') + '</span> ' +
+    var html = '<label><span class="pr-3">' + M.util.get_string('title', 'availability_group') + '</span> ' +
             '<span class="availability-group">' +
             '<select name="id" class="custom-select">' +
             '<option value="choose">' + M.util.get_string('choosedots', 'moodle') + '</option>' +
index 6dd1a72..1eb8f26 100644 (file)
Binary files a/availability/condition/grouping/yui/build/moodle-availability_grouping-form/moodle-availability_grouping-form-debug.js and b/availability/condition/grouping/yui/build/moodle-availability_grouping-form/moodle-availability_grouping-form-debug.js differ
index 4430bd6..1980203 100644 (file)
Binary files a/availability/condition/grouping/yui/build/moodle-availability_grouping-form/moodle-availability_grouping-form-min.js and b/availability/condition/grouping/yui/build/moodle-availability_grouping-form/moodle-availability_grouping-form-min.js differ
index 6dd1a72..1eb8f26 100644 (file)
Binary files a/availability/condition/grouping/yui/build/moodle-availability_grouping-form/moodle-availability_grouping-form.js and b/availability/condition/grouping/yui/build/moodle-availability_grouping-form/moodle-availability_grouping-form.js differ
index 4152385..f8e596f 100644 (file)
@@ -31,7 +31,7 @@ M.availability_grouping.form.initInner = function(groupings) {
 
 M.availability_grouping.form.getNode = function(json) {
     // Create HTML structure.
-    var html = '<label><span class="p-r-1">' + M.util.get_string('title', 'availability_grouping') + '</span> ' +
+    var html = '<label><span class="pr-3">' + M.util.get_string('title', 'availability_grouping') + '</span> ' +
             '<span class="availability-group">' +
             '<select name="id" class="custom-select">' +
             '<option value="choose">' + M.util.get_string('choosedots', 'moodle') + '</option>';
index f47ec11..c4fb5a4 100644 (file)
Binary files a/availability/condition/profile/yui/build/moodle-availability_profile-form/moodle-availability_profile-form-debug.js and b/availability/condition/profile/yui/build/moodle-availability_profile-form/moodle-availability_profile-form-debug.js differ
index 945137a..38bb84f 100644 (file)
Binary files a/availability/condition/profile/yui/build/moodle-availability_profile-form/moodle-availability_profile-form-min.js and b/availability/condition/profile/yui/build/moodle-availability_profile-form/moodle-availability_profile-form-min.js differ
index f47ec11..c4fb5a4 100644 (file)
Binary files a/availability/condition/profile/yui/build/moodle-availability_profile-form/moodle-availability_profile-form.js and b/availability/condition/profile/yui/build/moodle-availability_profile-form/moodle-availability_profile-form.js differ
index dcab53f..76f75e4 100644 (file)
@@ -33,7 +33,7 @@ M.availability_profile.form.initInner = function(standardFields, customFields) {
 
 M.availability_profile.form.getNode = function(json) {
     // Create HTML structure.
-    var html = '<span class="availability-group"><label><span class="p-r-1">' +
+    var html = '<span class="availability-group"><label><span class="pr-3">' +
             M.util.get_string('conditiontitle', 'availability_profile') + '</span> ' +
             '<select name="field" class="custom-select">' +
             '<option value="choose">' + M.util.get_string('choosedots', 'moodle') + '</option>';
index a98f863..9b61ed9 100644 (file)
Binary files a/availability/yui/build/moodle-core_availability-form/moodle-core_availability-form-debug.js and b/availability/yui/build/moodle-core_availability-form/moodle-core_availability-form-debug.js differ
index d2c2b71..5041b64 100644 (file)
Binary files a/availability/yui/build/moodle-core_availability-form/moodle-core_availability-form-min.js and b/availability/yui/build/moodle-core_availability-form/moodle-core_availability-form-min.js differ
index a98f863..9b61ed9 100644 (file)
Binary files a/availability/yui/build/moodle-core_availability-form/moodle-core_availability-form.js and b/availability/yui/build/moodle-core_availability-form/moodle-core_availability-form.js differ
index 9083dae..93a12d9 100644 (file)
@@ -372,7 +372,7 @@ M.core_availability.List = function(json, root, parentRoot) {
             '<option value="|">' + M.util.get_string('listheader_multi_or', 'availability') + '</option></select></label> ' +
             M.util.get_string('listheader_multi_after', 'availability') + '</span></div>' +
             '<div class="availability-children"></div>' +
-            '<div class="availability-none"><span class="p-x-1">' + M.util.get_string('none', 'moodle') + '</span></div>' +
+            '<div class="availability-none"><span class="px-3">' + M.util.get_string('none', 'moodle') + '</span></div>' +
             '<div class="clearfix mt-1"></div>' +
             '<div class="availability-button"></div></div><div class="clearfix"></div></div>');
     if (!root) {
@@ -1130,7 +1130,7 @@ M.core_availability.EyeIcon.prototype.isHidden = function() {
  * @param {M.core_availability.Item|M.core_availability.List} toDelete Thing to delete
  */
 M.core_availability.DeleteIcon = function(toDelete) {
-    this.span = Y.Node.create('<a class="d-inline-block col-form-label availability-delete p-x-1" href="#" title="' +
+    this.span = Y.Node.create('<a class="d-inline-block col-form-label availability-delete px-3" href="#" title="' +
             M.util.get_string('delete', 'moodle') + '" role="button">');
     var img = Y.Node.create('<img src="' + M.util.image_url('t/delete', 'core') +
             '" alt="' + M.util.get_string('delete', 'moodle') + '" />');
index f268bd7..28a182b 100644 (file)
@@ -626,7 +626,7 @@ class core_badges_renderer extends plugin_renderer_base {
                     get_string('downloadall'), 'POST', array('class' => 'activatebadge'));
         $downloadall = $this->output->box('', 'col-md-3');
         $downloadall .= $this->output->box($actionhtml, 'col-md-9');
-        $downloadall = $this->output->box($downloadall, 'row m-l-2');
+        $downloadall = $this->output->box($downloadall, 'row ml-5');
 
         // Local badges.
         $localhtml = html_writer::start_tag('div', array('id' => 'issued-badge-table', 'class' => 'generalbox'));
@@ -674,7 +674,7 @@ class core_badges_renderer extends plugin_renderer_base {
             $backpacksettings = html_writer::link(new moodle_url('/badges/mybackpack.php'), $label, $attr);
             $actionshtml = $this->output->box('', 'col-md-3');
             $actionshtml .= $this->output->box($backpacksettings, 'col-md-9');
-            $actionshtml = $this->output->box($actionshtml, 'row m-l-2');
+            $actionshtml = $this->output->box($actionshtml, 'row ml-5');
             $externalhtml .= $actionshtml;
         }
 
index f32e7e8..06a35f6 100644 (file)
@@ -41,7 +41,7 @@
     <li class="list-group-item course-listitem"
         data-region="course-content"
         data-course-id="{{{id}}}">
-        <div class="row-fluid">
+        <div class="row">
             <div class="{{#hasprogress}}col-md-6{{/hasprogress}}{{^hasprogress}}col-md-11 col-md-11{{/hasprogress}} d-flex align-items-center">
                 <div>
                     <div class="text-muted muted d-flex flex-wrap">
@@ -72,7 +72,7 @@
                     </a>
                     {{^visible}}
                         <div class="d-flex flex-wrap">
-                            <span class="tag tag-info">{{#str}} hiddenfromstudents {{/str}}</span>
+                            <span class="badge badge-info">{{#str}} hiddenfromstudents {{/str}}</span>
                         </div>
                     {{/visible}}
                 </div>
index 02dd284..aecd376 100644 (file)
                 </div>
                 {{^visible}}
                     <div class="d-flex flex-wrap">
-                        <span class="tag tag-info">{{#str}} hiddenfromstudents {{/str}}</span>
+                        <span class="badge badge-info">{{#str}} hiddenfromstudents {{/str}}</span>
                     </div>
                 {{/visible}}
                 <div class="summary">
                     <span class="sr-only">{{#str}}aria:coursesummary, block_myoverview{{/str}}</span>
                     {{{summary}}}
                 </div>
-                <div class="ml-auto mt-auto w-50 p-t-1">
+                <div class="ml-auto mt-auto w-50 pt-3">
                     {{#hasprogress}}
                         {{> block_myoverview/progress-bar}}
                     {{/hasprogress}}
index 067f8eb..cb0555a 100644 (file)
@@ -43,7 +43,7 @@
         "datepublished": "12 January 2016, 9:12 pm"
     }
 }}
-<li class="p-y-1">
+<li class="py-3">
     {{$title}}
         <div class="link">
             <a href="{{{link}}}" onclick='this.target="_blank"'>{{title}}</a>
index 6f30790..3920e03 100644 (file)
@@ -51,7 +51,7 @@
     }} data-type="event"{{!
     }} data-course-id="{{course.id}}"{{!
     }} data-event-id="{{id}}"{{!
-    }} class="event m-t-1"{{!
+    }} class="event mt-3"{{!
     }} data-event-component="{{component}}"{{!
     }} data-event-eventtype="{{eventtype}}"{{!
     }} data-eventtype-{{normalisedeventtype}}="1"{{!
index 3b51f67..64232e2 100644 (file)
@@ -33,7 +33,7 @@
     }
 }}
 {{#activities}}
-<div class="row mb-1 row-fluid">
+<div class="row mb-1">
     <div class="activityinstance col-6">
         <div class="mod-indent-outer"></div>
         <div>
@@ -48,7 +48,7 @@
         </div>
     </div>
     <div class="activity-completionstatus col-6" id="completionstatus_{{cmid}}">
-        <div class="col-sm-1  p-l-0">
+        <div class="col-sm-1  pl-0">
             {{#completionstatus.icon}}
                 {{{completionstatus.icon}}}
             {{/completionstatus.icon}}
@@ -56,7 +56,7 @@
                 <span class="mr-3"></span>
             {{/completionstatus.icon}}
         </div>
-        <div class="col-sm-11  p-l-0">
+        <div class="col-sm-11  pl-0">
             <span class="text-muted muted">{{{completionstatus.string}}}</span>
         </div>
     </div>
index 4a28026..8043be9 100644 (file)
@@ -62,7 +62,7 @@
     <div class="topics">
         {{#sections}}
                 <div class="mb-1">
-                    <div class="row mb-1 row-fluid">
+                    <div class="row mb-1">
                         <div class="col-sm-12">
                             <input type="checkbox" data-section-master="{{sectionnumber}}" class="mr-1" aria-label="{{#str}}checkallsection, completion, {{{name}}}{{/str}}">
                             <h3 class="d-inline-block">{{{name}}}</h3>
index b24636c..5e6c7fb 100644 (file)
@@ -66,7 +66,7 @@
                 </a>
                 {{^visible}}
                     <div class="d-flex flex-wrap">
-                        <span class="tag tag-info">{{#str}} hiddenfromstudents {{/str}}</span>
+                        <span class="badge badge-info">{{#str}} hiddenfromstudents {{/str}}</span>
                     </div>
                 {{/visible}}
             </div>
index dd2b39f..f76da9f 100644 (file)
@@ -60,7 +60,7 @@
         {{#modules}}
             {{#canmanage}}
              <div class="mb-1">
-                <div class="row mb-1 row-fluid">
+                <div class="row mb-1">
                     <div class="col-6">
                         <label class="accesshide" for="modtype_{{id}}">{{#str}}select, core_completion{{/str}} {{formattedname}}</label>
                         <input id="modtype_{{id}}" type="checkbox" class="mr-1" name="modids[]" value="{{id}}" aria-label="{{#str}}checkactivity, completion, {{{formattedname}}}{{/str}}">
@@ -68,7 +68,7 @@
                         <span>{{{formattedname}}}</span>
                     </div>
                     <div class="activity-completionstatus col-6">
-                        <div class="col-sm-1 p-l-0">
+                        <div class="col-sm-1 pl-0">
                             {{#completionstatus.icon}}
                                 {{{completionstatus.icon}}}
                             {{/completionstatus.icon}}
@@ -76,7 +76,7 @@
                                 <span class="mr-3"></span>
                             {{/completionstatus.icon}}
                         </div>
-                        <div class="col-sm-11 p-l-0">
+                        <div class="col-sm-11 pl-0">
                             <span class="text-muted muted">{{{completionstatus.string}}}</span>
                         </div>
                     </div>
@@ -127,4 +127,4 @@ require([
         }
     });
 });
-{{/js}}
\ No newline at end of file
+{{/js}}
index 082cef6..312eef2 100644 (file)
         <?php
         if (has_capability('moodle/grade:manageoutcomes', $context)) {
         ?>
-        <td class="p-l-1 p-r-1">
-            <div class="m-y-1">
+        <td class="pl-3 pr-3">
+            <div class="my-3">
                 <input name="add" class="btn btn-secondary" id="add" type="submit" value="<?php echo $OUTPUT->larrow() . ' ' .
                     get_string('add'); ?>" title="<?php print_string('add'); ?>" />
             </div>
-            <div class="m-y-1">
+            <div class="my-3">
                 <input name="remove" class="btn btn-secondary" id="remove" type="submit" value="<?php echo get_string('remove') .
                     ' ' . $OUTPUT->rarrow(); ?>" title="<?php print_string('remove'); ?>" />
             </div>
index e4914ff..30e6d92 100644 (file)
@@ -77,7 +77,7 @@
 }}
 <form id="groupeditform" action="index.php" method="post">
     <div class="container-fluid groupmanagementtable">
-        <div class="row row-fluid rtl-compatible">
+        <div class="row rtl-compatible">
             <div class="col-md-6 mb-1">
                 <input type="hidden" name="id" value="{{courseid}}">
                 <div class="form-group">
index 352a086..78228c0 100644 (file)
@@ -1232,7 +1232,7 @@ function badges_verify_backpack(int $backpackid) {
 
             $message = get_string('sitebackpackwarning', 'badges', ['url' => $backpackurl, 'warning' => $warning]);
             $icon = $OUTPUT->pix_icon('i/warning', get_string('warning', 'moodle'));
-            return $OUTPUT->container($icon . $message, 'text-error');
+            return $OUTPUT->container($icon . $message, 'text-danger');
         }
     }
 
index 8656f0e..a93deb0 100644 (file)
@@ -30,9 +30,9 @@
     margin: 0 0.5em;
 }
 
-.atto_image_button_text-top.img-responsive,
-.atto_image_button_middle.img-responsive,
-.atto_image_button_text-bottom.img-responsive {
+.atto_image_button_text-top.img-fluid,
+.atto_image_button_middle.img-fluid,
+.atto_image_button_text-bottom.img-fluid {
     /* If the image is display: block then linking the image to URLs won't work. */
     display: inline-block;
     max-width: calc(100% - 1em);
index e4465fd..606e57f 100644 (file)
Binary files a/lib/editor/atto/plugins/table/yui/build/moodle-atto_table-button/moodle-atto_table-button-debug.js and b/lib/editor/atto/plugins/table/yui/build/moodle-atto_table-button/moodle-atto_table-button-debug.js differ
index 8c75af1..4520cac 100644 (file)
Binary files a/lib/editor/atto/plugins/table/yui/build/moodle-atto_table-button/moodle-atto_table-button-min.js and b/lib/editor/atto/plugins/table/yui/build/moodle-atto_table-button/moodle-atto_table-button-min.js differ
index e4465fd..606e57f 100644 (file)
Binary files a/lib/editor/atto/plugins/table/yui/build/moodle-atto_table-button/moodle-atto_table-button.js and b/lib/editor/atto/plugins/table/yui/build/moodle-atto_table-button/moodle-atto_table-button.js differ
index 884e6bc..3b2d4d1 100644 (file)
@@ -41,14 +41,14 @@ var COMPONENT = 'atto_table',
     },
     TEMPLATE = '' +
         '<form class="{{CSS.FORM}}">' +
-            '<div class="mb-1 form-group row-fluid">' +
+            '<div class="mb-1 form-group row">' +
             '<div class="col-sm-4">' +
             '<label for="{{elementid}}_atto_table_caption">{{get_string "caption" component}}</label>' +
             '</div><div class="col-sm-8">' +
             '<input type="text" class="form-control {{CSS.CAPTION}}" id="{{elementid}}_atto_table_caption" required />' +
             '</div>' +
             '</div>' +
-            '<div class="mb-1 form-group row-fluid">' +
+            '<div class="mb-1 form-group row">' +
             '<div class="col-sm-4">' +
             '<label for="{{elementid}}_atto_table_captionposition">' +
             '{{get_string "captionposition" component}}</label>' +
@@ -60,7 +60,7 @@ var COMPONENT = 'atto_table',
             '</select>' +
             '</div>' +
             '</div>' +
-            '<div class="mb-1 form-group row-fluid">' +
+            '<div class="mb-1 form-group row">' +
             '<div class="col-sm-4">' +
             '<label for="{{elementid}}_atto_table_headers">{{get_string "headers" component}}</label>' +
             '</div><div class="col-sm-8">' +
@@ -72,7 +72,7 @@ var COMPONENT = 'atto_table',
             '</div>' +
             '</div>' +
             '{{#if nonedit}}' +
-                '<div class="mb-1 form-group row-fluid">' +
+                '<div class="mb-1 form-group row">' +
                 '<div class="col-sm-4">' +
                 '<label for="{{elementid}}_atto_table_rows">{{get_string "numberofrows" component}}</label>' +
                 '</div><div class="col-sm-8">' +
@@ -80,7 +80,7 @@ var COMPONENT = 'atto_table',
                 'id="{{elementid}}_atto_table_rows" size="8" min="1" max="50"/>' +
                 '</div>' +
                 '</div>' +
-                '<div class="mb-1 form-group row-fluid">' +
+                '<div class="mb-1 form-group row">' +
                 '<div class="col-sm-4">' +
                 '<label for="{{elementid}}_atto_table_columns" ' +
                 '>{{get_string "numberofcolumns" component}}</label>' +
@@ -95,7 +95,7 @@ var COMPONENT = 'atto_table',
                 '<fieldset>' +
                 '<legend class="mdl-align">{{get_string "appearance" component}}</legend>' +
                 '{{#if allowBorders}}' +
-                    '<div class="mb-1 form-group row-fluid">' +
+                    '<div class="mb-1 form-group row">' +
                     '<div class="col-sm-4">' +
                     '<label for="{{elementid}}_atto_table_borders">{{get_string "borders" component}}</label>' +
                     '</div><div class="col-sm-8">' +
@@ -106,7 +106,7 @@ var COMPONENT = 'atto_table',
                     '</select>' +
                     '</div>' +
                     '</div>' +
-                    '<div class="mb-1 form-group row-fluid">' +
+                    '<div class="mb-1 form-group row">' +
                     '<div class="col-sm-4">' +
                     '<label for="{{elementid}}_atto_table_borderstyle">' +
                     '{{get_string "borderstyles" component}}</label>' +
@@ -119,7 +119,7 @@ var COMPONENT = 'atto_table',
                     '</select>' +
                     '</div>' +
                     '</div>' +
-                    '<div class="mb-1 form-group row-fluid">' +
+                    '<div class="mb-1 form-group row">' +
                     '<div class="col-sm-4">' +
                     '<label for="{{elementid}}_atto_table_bordersize">' +
                     '{{get_string "bordersize" component}}</label>' +
@@ -132,7 +132,7 @@ var COMPONENT = 'atto_table',
                     '</div>' +
                     '</div>' +
                     '</div>' +
-                    '<div class="mb-1 form-group row-fluid">' +
+                    '<div class="mb-1 form-group row">' +
                     '<div class="col-sm-4">' +
                     '<label for="{{elementid}}_atto_table_bordercolour">' +
                     '{{get_string "bordercolour" component}}</label>' +
@@ -159,7 +159,7 @@ var COMPONENT = 'atto_table',
                     '</div>' +
                 '{{/if}}' +
                 '{{#if allowBackgroundColour}}' +
-                    '<div class="mb-1 form-group row-fluid">' +
+                    '<div class="mb-1 form-group row">' +
                     '<div class="col-sm-4">' +
                     '<label for="{{elementid}}_atto_table_backgroundcolour">' +
                     '{{get_string "backgroundcolour" component}}</label>' +
@@ -187,7 +187,7 @@ var COMPONENT = 'atto_table',
                     '</div>' +
                 '{{/if}}' +
                 '{{#if allowWidth}}' +
-                    '<div class="mb-1 form-group row-fluid">' +
+                    '<div class="mb-1 form-group row">' +
                     '<div class="col-sm-4">' +
                     '<label for="{{elementid}}_atto_table_width">' +
                     '{{get_string "width" component}}</label>' +
index 5fe7586..e766d16 100644 (file)
@@ -813,7 +813,7 @@ M.form_filemanager.init = function(Y, options) {
                         var message = '';
                         var confirmmsg = M.util.get_string('confirmrenamefile', 'repository', fileinfo.refcount);
                         dialog_options.message = message.concat('<p>', confirmmsg, '</p>',
-                            '<ul class="p-x-2">', warnings, '</ul>');
+                            '<ul class="px-5">', warnings, '</ul>');
                         this.show_confirm_dialog(dialog_options);
                         return;
                     }
index c813362..74e7c80 100644 (file)
@@ -788,7 +788,7 @@ class core_renderer extends renderer_base {
             $timeleft = $CFG->maintenance_later - time();
             // If timeleft less than 30 sec, set the class on block to error to highlight.
             $errorclass = ($timeleft < 30) ? 'alert-error alert-danger' : 'alert-warning';
-            $output .= $this->box_start($errorclass . ' moodle-has-zindex maintenancewarning m-a-1 alert');
+            $output .= $this->box_start($errorclass . ' moodle-has-zindex maintenancewarning m-3 alert');
             $a = new stdClass();
             $a->hour = (int)($timeleft / 3600);
             $a->min = (int)(($timeleft / 60) % 60);
@@ -1979,7 +1979,7 @@ class core_renderer extends renderer_base {
 
         $output = $this->box_start('generalbox modal modal-dialog modal-in-page show', 'notice', $attributes);
         $output .= $this->box_start('modal-content', 'modal-content');
-        $output .= $this->box_start('modal-header p-x-1', 'modal-header');
+        $output .= $this->box_start('modal-header px-3', 'modal-header');
         $output .= html_writer::tag('h4', get_string('confirm'));
         $output .= $this->box_end();
         $attributes = [
index 73bf40a..7ee6759 100644 (file)
@@ -43,7 +43,7 @@
                      <div class="card-title">
                         <h3>{{#str}}considereddigitalminor{{/str}}</h3>
                     </div>
-                    <div class="p-t-1 p-b-2">
+                    <div class="pt-3 pb-5">
                         <p>{{#str}}digitalminor_desc{{/str}}</p>
                         <p class="mb-0">{{{supportname}}}</p>
                         <p class="mb-0">{{{supportemail}}}</p>
index 7f01067..80b8e47 100644 (file)
@@ -28,7 +28,7 @@
             <div class="fp-formset">
                 <div class="fp-file form-group">
                     <label>{{#str}}attachment, repository{{/str}}</label>
-                    <div class="p-x-1">
+                    <div class="px-3">
                         <input  type="file"/>
                     </div>
                 </div>
index 4e81345..e3f44d6 100644 (file)
@@ -806,7 +806,7 @@ EXPECTED;
 
         $html = "<p>This is a test.</p><p><img src=\"${url1}\" alt=\"\" role=\"presentation\"></p>
                 <br>Test content.<p></p><p><img src=\"{$url2}\" alt=\"\" width=\"2048\" height=\"1536\"
-                role=\"presentation\" class=\"img-responsive atto_image_button_text-bottom\"><br></p>";
+                role=\"presentation\" class=\"img-fluid atto_image_button_text-bottom\"><br></p>";
         $draftareas = array(
             array(
                 'urlbase' => 'draftfile.php',
index 33e3ab6..8640609 100644 (file)
@@ -42,7 +42,7 @@
         role="region"
 >
     <div class="container-fluid">
-        <div class="row-fluid h-100 no-gutters">
+        <div class="row h-100 no-gutters">
             <div class="col-4 d-flex flex-column conversationcontainer">
                 <div class="border-right h-100">
                     <div class="panel-header-container" data-region="panel-header-container">
@@ -81,4 +81,4 @@
     var root = $('#message-index-{{uniqid}}');
     MessageDrawer.init(root, '{{uniqid}}', true, {{{route}}});
     });
-{{/js}}
\ No newline at end of file
+{{/js}}
index 52a63bd..88b9aaf 100644 (file)
@@ -65,7 +65,7 @@
         <th>{{displayname}}</th>
         <td class="align-bottom">
             <div class="container-fluid">
-                <div class="row-fluid">
+                <div class="row">
                     <div class="span6 col-6">
                         {{#str}} loggedin, message {{/str}}
                         {{#onlinehelphtml}}{{{.}}}{{/onlinehelphtml}}
index 2b5f08b..927e5e2 100644 (file)
@@ -68,7 +68,7 @@
             <div class="disabled-message">{{#str}} disabled, question {{/str}}</div>
             <form>
                 <div class="container-fluid">
-                    <div class="row-fluid">
+                    <div class="row">
                         <div class="span6 col-6">
                             {{#loggedin}}
                                 {{< core/hover_tooltip }}
index 2d9381e..0700fba 100644 (file)
@@ -72,7 +72,7 @@
     {{#processors}}
         <td class="align-bottom">
             <div class="container-fluid">
-                <div class="row-fluid">
+                <div class="row">
                     <div class="col-6">
                         {{#str}} loggedin, message {{/str}}
                         {{#onlinehelphtml}}{{{.}}}{{/onlinehelphtml}}
index 7770700..3318f08 100644 (file)
@@ -66,7 +66,7 @@
                 <div class="disabled-message">{{#str}} disabled, question {{/str}}</div>
                 <form>
                     <div class="container-fluid">
-                        <div class="row-fluid">
+                        <div class="row">
                             <div class="col-6">
                                 {{#loggedin}}
                                     {{< core/hover_tooltip }}
index 85a2b90..7084ce4 100644 (file)
@@ -123,7 +123,7 @@ class renderer extends plugin_renderer_base {
 
         $toc .= html_writer::tag('a', '', array('name' => 'toc')); // Representation of toc (HTML).
 
-        $toc .= html_writer::tag('h2', get_string('toc', 'mod_book'), ['class' => 'text-center p-b-2']);
+        $toc .= html_writer::tag('h2', get_string('toc', 'mod_book'), ['class' => 'text-center pb-5']);
         $toc .= html_writer::start_tag('ul');
         foreach ($chapters as $ch) {
             if (!$ch->hidden) {
@@ -189,12 +189,12 @@ class renderer extends plugin_renderer_base {
         $chaptervisible = $chapter->hidden ? false : true;
 
         $bookchapter = '';
-        $bookchapter .= html_writer::start_div('book_chapter p-t-1', ['id' => 'ch' . $chapter->id]);
+        $bookchapter .= html_writer::start_div('book_chapter pt-3', ['id' => 'ch' . $chapter->id]);
         if (!$book->customtitles) {
             if (!$chapter->subchapter) {
-                $bookchapter .= $this->output->heading($title, 2, 'text-center p-b-2');
+                $bookchapter .= $this->output->heading($title, 2, 'text-center pb-5');
             } else {
-                $bookchapter .= $this->output->heading($title, 3, 'text-center p-b-2');
+                $bookchapter .= $this->output->heading($title, 3, 'text-center pb-5');
             }
         }
 
index 66f7db9..4cf50b7 100644 (file)
 }}
 <div class="book p-4">
     <div class="text-right">{{{ printdialoglink }}}</div>
-    <div class="text-center p-b-1 book_title">{{{ booktitle }}}</div>
-    <div class="book_info w-100 p-t-3 d-inline-block">
+    <div class="text-center pb-3 book_title">{{{ booktitle }}}</div>
+    <div class="book_info w-100 pt-6 d-inline-block">
         <div class="w-50 float-left">
             <table>
                 <tr>
                     <td>
                         {{# str }} site {{/ str }}:
                     </td>
-                    <td class="p-l-1">
+                    <td class="pl-3">
                         {{{ sitelink }}}
                     </td>
                 </tr>
@@ -79,7 +79,7 @@
                     <td>
                         {{# str }} course {{/ str }}:
                     </td>
-                    <td class="p-l-1">
+                    <td class="pl-3">
                         {{{ coursename }}}
                     </td>
                 </tr>
@@ -87,7 +87,7 @@
                     <td>
                         {{# str }} modulename, mod_book {{/ str }}:
                     </td>
-                    <td class="p-l-1">
+                    <td class="pl-3">
                         {{{ modulename }}}
                     </td>
                 </tr>
@@ -99,7 +99,7 @@
                     <td>
                         {{# str }} printedby, booktool_print {{/ str }}:
                     </td>
-                    <td class="p-l-1">
+                    <td class="pl-3">
                         {{{ username }}}
                     </td>
                 </tr>
                     <td>
                         {{# str }} printdate, booktool_print {{/ str }}:
                     </td>
-                    <td class="p-l-1">
+                    <td class="pl-3">
                         {{{ printdate }}}
                     </td>
                 </tr>
     </div>
     {{#bookintro}}
     <div class="w-100 book_description">
-        <div class="p-b-2 p-t-2">
-            <h2 class="text-center p-b-2">{{#str}} description {{/str}}</h2>
+        <div class="py-5">
+            <h2 class="text-center pb-5">{{#str}} description {{/str}}</h2>
              <p class="book_summary">{{{ bookintro }}}</p>
         </div>
     </div>
     {{/bookintro}}
     <div class="w-100">
-        <div class="p-b-2 p-t-2">{{{ toc }}}</div>
+        <div class="py-5">{{{ toc }}}</div>
     </div>
     <div class="w-100">
      {{#chapters}}
         {{#visible }}
-            <div class="p-b-2">
+            <div class="pb-5">
             {{{ content }}}
             </div>
         {{/visible}}
index bfcc41d..6140acc 100644 (file)
@@ -44,7 +44,7 @@
 }}
 <div class="chapter col-12 p-4">
     <div class="text-right">{{{ printdialoglink }}}</div>
-    <div class="text-center p-b-2">{{{ booktitle }}}</div>
+    <div class="text-center pb-5">{{{ booktitle }}}</div>
     <div class="chapter">
         {{#parentchaptertitle}}
          <div class="text-center">
index 54ec58b..9159430 100644 (file)
@@ -167,7 +167,7 @@ if ($download) {
     \forumreport_summary\event\report_viewed::create($eventparams)->trigger();
 
     echo $OUTPUT->header();
-    echo $OUTPUT->heading(get_string('summarytitle', 'forumreport_summary', $title), 2, 'p-b-2');
+    echo $OUTPUT->heading(get_string('summarytitle', 'forumreport_summary', $title), 2, 'pb-5');
 
     if (!empty($filters['groups'])) {
         \core\notification::info(get_string('viewsdisclaimer', 'forumreport_summary'));
index b2a0e03..3f4ce7c 100644 (file)
@@ -53,7 +53,7 @@
 </div>
 
 {{! Groups filter popover }}
-<div id="filter-groups-popover" class="popover m-t-1 hidden" data-openfilter="false">
+<div id="filter-groups-popover" class="popover mt-3 hidden" data-openfilter="false">
     <h3 class="popover-header">{{# str}} filter:groupsname, forumreport_summary {{/ str}}</h3>
     <div class="popover-body" data-region="filter-groups">
         <div class="form-check filter-scrollable">
index da67f20..d63e483 100644 (file)
@@ -50,7 +50,7 @@
     {{{groupchangemenu}}}
 
 
-    <div class="p-t-1 p-b-1">
+    <div class="py-3">
         {{#forum.capabilities.create}}
             <a class="btn btn-primary" data-toggle="collapse" href="#collapseAddForm">
                 {{$discussion_create_text}}
@@ -60,7 +60,7 @@
         {{/forum.capabilities.create}}
         {{^forum.capabilities.create}}
             {{#forum.capabilities.selfenrol}}
-                <div class="p-t-1 p-b-1">
+                <div class="py-3">
                     <a class="btn btn-primary" href="{{forum.urls.create}}">
                         {{$discussion_create_text}}
                             {{#str}}addanewdiscussion, forum{{/str}}
@@ -81,7 +81,7 @@
         {{/forum.capabilities.grade}}
     </div>
     {{#forum.capabilities.create}}
-        <div class="collapse m-t-1 p-b-1" id="collapseAddForm">
+        <div class="collapse mt-3 pb-3" id="collapseAddForm">
             {{{newdiscussionhtml}}}
         </div>
     {{/forum.capabilities.create}}
                         <th scope="col">
                             <span class="accesshide">{{#str}}status{{/str}}</span>
                         </th>
-                        <th scope="col" class="p-l-0">
+                        <th scope="col" class="pl-0">
                             {{#state.sortorder.isdiscussiondesc}}
                                 <a href="{{{forum.urls.sortdiscussionasc}}}" aria-label="{{#str}}discussionlistsortbydiscussionasc, mod_forum{{/str}}">{{#str}}discussion, mod_forum{{/str}}</a> <span class="text-primary">{{#pix}}t/downlong, core, {{#str}}desc, core{{/str}}{{/pix}}</span>
                             {{/state.sortorder.isdiscussiondesc}}
                                 {{/discussion.pinned}}
                             </td>
                             <th scope="row" class="topic p-0 align-middle">
-                                <div class="p-3 p-l-0">
+                                <div class="p-3 pl-0">
                                     <a class="w-100 h-100 d-block" href="{{discussion.urls.view}}" title="{{discussion.name}}" aria-label="{{discussion.name}}">
                                         {{#shortentext}}100, {{{discussion.name}}}{{/shortentext}}
                                     </a>
index f423c8e..aebd5e2 100644 (file)
@@ -33,7 +33,7 @@
 <div id="discussion-container-{{uniqid}}" data-content="forum-discussion">
 {{#html}}
     {{#hasanyactions}}
-    <div class="d-flex flex-wrap flex-row-reverse m-b-1 text-right" data-container="discussion-tools">
+    <div class="d-flex flex-wrap flex-row-reverse mb-3 text-right" data-container="discussion-tools">
         <div class="pl-1">
             <div class="discussion-settings-menu">
                 {{> mod_forum/forum_action_menu}}
index 920556c..b6fca4b 100644 (file)
 }}
 <div class="container-fluid grade-display" data-region="view-grade">
     {{#grade}}
-        <div class="row-fluid px-3">
+        <div class="row px-3">
             <h5 class="font-weight-bold description">{{#str}}grade{{/str}}:</h5>
             <p class="ml-auto">{{usergrade}} / {{maxgrade}}</p>
         </div>
-        <div class="row-fluid px-3">
+        <div class="row px-3">
             <h5 class="font-weight-bold description">{{#str}}gradedby, forum{{/str}}:</h5>
             <p class="ml-auto">
                 {{#gradedby}}
                 {{/gradedby}}
             </p>
         </div>
-        <div class="row-fluid px-3">
+        <div class="row px-3">
             <h5 class="font-weight-bold description">{{#str}}date{{/str}}:</h5>
             <p class="ml-auto">{{#userdate}}{{timemodified}}, {{#str}} strftimedate, langconfig {{/str}}{{/userdate}}</p>
         </div>
     {{/grade}}
-    <div class="row-fluid px-3">
+    <div class="row px-3">
         <h5 class="font-weight-bold description">
             {{#str}}gradingstatus, forum{{/str}}
         </h5>
@@ -72,7 +72,7 @@
             {{/hasgrade}}
         </p>
     </div>
-    <div class="row-fluid p-3">
+    <div class="row p-3">
         <fieldset class="w-100" disabled="disabled">
             <div class="w-100" data-region="grade-template"></div>
         </fieldset>
index c7f4a44..9902a29 100644 (file)
@@ -1117,7 +1117,7 @@ class mod_forum_mail_testcase extends advanced_testcase {
         $newcase['forums'][0]['forumposts'][0]['name'] = 'HTML text and image';
         $newcase['forums'][0]['forumposts'][0]['message'] = '<p>Welcome to Moodle, '
             .'<img src="@@PLUGINFILE@@/Screen%20Shot%202016-03-22%20at%205.54.36%20AM%20%281%29.png"'
-            .' alt="" width="200" height="393" class="img-responsive" />!</p>';
+            .' alt="" width="200" height="393" class="img-fluid" />!</p>';
         $newcase['expectations'][0]['subject'] = '.*101.*HTML text and image';
         $newcase['expectations'][0]['contents'] = array(
             '~{\$a',
@@ -1127,7 +1127,7 @@ class mod_forum_mail_testcase extends advanced_testcase {
             '<p>Welcome to Moodle, '
             .'<img src="https://www.example.com/moodle/tokenpluginfile.php/[^/]*/\d+/mod_forum/post/\d+/'
                 .'Screen%20Shot%202016-03-22%20at%205\.54\.36%20AM%20%281%29\.png"'
-                .' alt="" width="200" height="393" class="img-responsive" />!</p>',
+                .' alt="" width="200" height="393" class="img-fluid" />!</p>',
             '>Love Moodle', '>1\d1');
         $htmlcases['HTML mail with text+image message i.e. @@PLUGINFILE@@ token handling'] = array('data' => $newcase);
 
index b1482f6..aae1cc0 100644 (file)
@@ -25,7 +25,7 @@ function glossary_show_entry_entrylist($course, $cm, $glossary, $entry, $mode=''
         }
         if (!empty($entry->rating)) {
             echo '<br />';
-            echo '<span class="ratings d-block p-t-1">';
+            echo '<span class="ratings d-block pt-3">';
             $return = glossary_print_entry_ratings($course, $entry);
             echo '</span>';
         }
index 66933cc..596660c 100644 (file)
@@ -1369,7 +1369,7 @@ function  glossary_print_entry_lower_section($course, $cm, $glossary, $entry, $m
             echo '<tr valign="top"><td class="icons">'.$icons.'</td></tr>';
         }
         if (!empty($entry->rating)) {
-            echo '<tr valign="top"><td class="ratings p-t-1">';
+            echo '<tr valign="top"><td class="ratings pt-3">';
             glossary_print_entry_ratings($course, $entry);
             echo '</td></tr>';
         }
index 9b1cb3a..5f001e1 100644 (file)
@@ -2317,7 +2317,7 @@ class lesson extends lesson_base {
                 if ($instancename) {
                     return html_writer::link(new moodle_url('/mod/'.$modname.'/view.php',
                         array('id' => $this->properties->activitylink)), get_string('activitylinkname',
-                        'lesson', $instancename), array('class' => 'centerpadded lessonbutton standardbutton p-r-1'));
+                        'lesson', $instancename), array('class' => 'centerpadded lessonbutton standardbutton pr-3'));
                 }
             }
         }
@@ -4261,7 +4261,7 @@ abstract class lesson_page extends lesson_base {
                 $options->attemptid = isset($attempt) ? $attempt->id : null;
 
                 $result->feedback .= $OUTPUT->box(format_text($this->get_contents(), $this->properties->contentsformat, $options),
-                        'generalbox boxaligncenter p-y-1');
+                        'generalbox boxaligncenter py-3');
                 $result->feedback .= '<div class="correctanswer generalbox"><em>'
                         . get_string("youranswer", "lesson").'</em> : <div class="studentanswer mt-2 mb-2">';
 
index 6b8cfb4..10066f9 100644 (file)
@@ -620,7 +620,8 @@ class mod_lesson_renderer extends plugin_renderer_base {
         $output .= $this->box_end(); // End of Lesson button to Continue.
 
         if ($data->reviewlesson !== false) {
-            $output .= html_writer::link($data->reviewlesson, get_string('reviewlesson', 'lesson'), array('class' => 'centerpadded lessonbutton standardbutton p-r-1'));
+            $output .= html_writer::link($data->reviewlesson, get_string('reviewlesson', 'lesson'),
+                array('class' => 'centerpadded lessonbutton standardbutton pr-3'));
         }
         if ($data->modattemptsnoteacher !== false) {
             $output .= $this->paragraph(get_string("modattemptsnoteacher", "lesson"), 'centerpadded');
@@ -632,13 +633,13 @@ class mod_lesson_renderer extends plugin_renderer_base {
 
         $url = new moodle_url('/course/view.php', array('id' => $course->id));
         $output .= html_writer::link($url, get_string('returnto', 'lesson', format_string($course->fullname, true)),
-                array('class' => 'centerpadded lessonbutton standardbutton p-r-1'));
+                array('class' => 'centerpadded lessonbutton standardbutton pr-3'));
 
         if (has_capability('gradereport/user:view', context_course::instance($course->id))
                 && $course->showgrades && $lesson->grade != 0 && !$lesson->practice) {
             $url = new moodle_url('/grade/index.php', array('id' => $course->id));
             $output .= html_writer::link($url, get_string('viewgrades', 'lesson'),
-                array('class' => 'centerpadded lessonbutton standardbutton p-r-1'));
+                array('class' => 'centerpadded lessonbutton standardbutton pr-3'));
         }
         return $output;
     }
index 8883d16..6d538c7 100644 (file)
         </li>
     </ul>
     <div class="tab-content" data-region="tab-content">
-        <div class="text-sm-center p-t-2" data-region="loading-container">
+        <div class="text-sm-center pt-5" data-region="loading-container">
             {{> core/loading }}
         </div>
-        <div class="tab-pane active p-t-1"
+        <div class="tab-pane active pt-3"
             id="existing-category-{{uniqid}}"
             role="tabpanel"
             data-region="existing-category-container">
         </div>
-        <div class="tab-pane p-t-1"
+        <div class="tab-pane pt-3"
             id="new-category-{{uniqid}}"
             role="tabpanel"
             data-region="new-category-container">
index d8218f3..10df50b 100644 (file)
@@ -76,7 +76,7 @@ Feature: Teachers can override the grade for any question
     And I click on "Save image" "button"
     # Editor is not inserting the html for the image correctly
     # when running under behat so line below manually inserts it.
-    And I set the field "Comment" to "<img src=\"@@PLUGINFILE@@/moodle_logo.jpg\" alt=\"It's the logo\" width=\"48\" height=\"48\" class=\"img-responsive atto_image_button_text-bottom\"><!-- File hash: a8e3ffba4ab315b3fb9187ebbf122fe9 -->"
+    And I set the field "Comment" to "<img src=\"@@PLUGINFILE@@/moodle_logo.jpg\" alt=\"It's the logo\" width=\"48\" height=\"48\" class=\"img-fluid atto_image_button_text-bottom\"><!-- File hash: a8e3ffba4ab315b3fb9187ebbf122fe9 -->"
     And I press "Save" and switch to main window
     And I switch to the main window
     And I should see "Commented: [It's the logo]" in the ".history table" "css_element"
index c7d348d..f1b4e1b 100644 (file)
@@ -70,7 +70,7 @@ class qtype_ddtoimage_renderer_base extends qtype_with_combined_feedback_rendere
         $output .= html_writer::start_div('ddarea');
         $output .= html_writer::start_div($dropareaclass);
         $output .= html_writer::img(self::get_url_for_image($qa, 'bgimage'), get_string('dropbackground', 'qtype_ddmarker'),
-                ['class' => 'dropbackground img-responsive img-fluid']);
+                ['class' => 'dropbackground img-fluid w-100']);
 
         $output .= html_writer::div('', 'dropzones');
         $output .= html_writer::end_div();
index 3b93673..e15f047 100644 (file)
@@ -39,10 +39,6 @@ form.mform fieldset#id_previewareaheader .dropbackground {
     max-width: none;
 }
 
-.que.ddimageortext .dropbackground.img-responsive.img-fluid {
-    width: 100%;
-}
-
 .que.ddimageortext .dropzone {
     display: none;
     position: absolute;
index 180faa5..6ea5278 100644 (file)
@@ -58,7 +58,7 @@ class qtype_ddmarker_renderer extends qtype_ddtoimage_renderer_base {
         $output .= html_writer::start_div('ddarea');
         $output .= html_writer::start_div($dropareaclass);
         $output .= html_writer::img(self::get_url_for_image($qa, 'bgimage'), get_string('dropbackground', 'qtype_ddmarker'),
-                ['class' => 'dropbackground img-responsive img-fluid']);
+                ['class' => 'dropbackground img-fluid w-100']);
 
         $output .= html_writer::div('', 'dropzones');
         $output .= html_writer::div('', 'markertexts');
index e51e60b..3b416f4 100644 (file)
@@ -64,10 +64,6 @@ form.mform fieldset#id_previewareaheader .dropbackground {
     max-width: none;
 }
 
-.que.ddmarker .dropbackground.img-responsive.img-fluid {
-    width: 100%;
-}
-
 .que.ddmarker div.dragitems div.draghome,
 .que.ddmarker div.dragitems div.dragitem,
 form.mform fieldset#id_previewareaheader div.draghome,
index 2671f7d..85538be 100644 (file)
@@ -34,7 +34,7 @@
     </p>
 {{/pushratingstouserplans}}
 </div>
-<div class="row-fluid">
+<div class="row">
 <span class="col-md-6">
     <table class="table table-bordered">
         <summary class="accesshide">
index ef7a617..c328f65 100644 (file)
@@ -366,7 +366,7 @@ if (!empty($instanceid) && !empty($roleid)) {
             echo $OUTPUT->render($checknos);
         }
         echo '</div>';
-        echo '<div class="p-y-1">';
+        echo '<div class="py-3">';
         echo html_writer::label(get_string('withselectedusers'), 'formactionid');
         $displaylist['#messageselect'] = get_string('messageselectadd');
         $withselectedparams = array(
index 7ec7033..d79ac1f 100644 (file)
@@ -1,13 +1,12 @@
 $breadcrumb-divider: "▶" !default;
 $breadcrumb-divider-rtl: "◀" !default;
-// Making BS4 Stable compatible with BS4 Alpha for moodle core sass
-@import "moodle/bs4alphacompat";
 
 // Specific overrides to make Bootstrap RTL.
 @import "moodle/bootstrap-rtl";
 
 // Old Moodle stuff from base theme.
 // Massive, needs broken up.
+@import "moodle/variables";
 @import "moodle/core";
 @import "moodle/icons";
 @import "moodle/admin";
@@ -38,7 +37,6 @@ $breadcrumb-divider-rtl: "◀" !default;
 @import "moodle/sticky-footer";
 @import "moodle/popover-region";
 @import "moodle/tool_usertours";
-@import "moodle/bs2-compat";
 @import "moodle/print";
 @import "moodle/modal";
 @import "moodle/layout";
index bbecc7e..b89ad6f 100644 (file)
 .environmenttable {
     .warn {
         background-color: $state-warning-bg;
-        color: $state-warning-text;
+        color: $warning;
     }
 
     .error {
         background-color: $state-danger-bg;
-        color: $state-danger-text;
+        color: $danger;
     }
 
     .ok {
         background-color: $state-success-bg;
-        color: $state-success-text;
+        color: $success;
     }
 }
 
     text-align: left;
     margin-left: auto;
     margin-right: auto;
-    margin-top: $spacer-y;
+    margin-top: $spacer;
 }
 
 #page-admin-roles-define .topfields {
 }
 
 #page-admin-roles-define .capdefault {
-    background-color: $table-bg-hover;
+    background-color: $table-hover-bg;
 }
 
 #page-filter-manage .backlink,
 
         .uninstall {
             a {
-                color: $state-danger-text;
+                color: $danger;
             }
         }
 
index 64dddd5..cedea64 100644 (file)
         width: 50%;
         display: inline-block;
         float: left;
-        padding: $table-sm-cell-padding;
+        padding: $table-cell-padding-sm;
     }
     .normal_setting {
         width: 50%;
         display: inline-block;
         float: left;
-        padding: $table-sm-cell-padding;
+        padding: $table-cell-padding-sm;
     }
 }
 
@@ -48,7 +48,7 @@
     .grouped_settings {
         /* Striped rows like a table */
         &:nth-of-type(odd) {
-            background-color: $table-bg-accent;
+            background-color: $table-accent-bg;
         }
         &:nth-of-type(even) {
             background-color: $card-bg;
 }
 
 .path-backup .notification.dependencies_enforced {
-    color: $state-danger-text;
+    color: $danger;
     font-weight: bold;
 }
 
 .path-backup .backup_progress {
-    margin-top: $spacer-y;
-    margin-bottom: $spacer-y;
+    margin-top: $spacer;
+    margin-bottom: $spacer;
 
     .backup_stage {
         color: $text-muted;
diff --git a/theme/boost/scss/moodle/bs2-compat.scss b/theme/boost/scss/moodle/bs2-compat.scss
deleted file mode 100644 (file)
index e8552a8..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-// Some - backwards compatibility for BS2. We may have plugins and user content targeted for BS2.
-
-// Well -> Panel -> Card. We skipped panel (BS3) so lets just support well and card.
-.well {
-    border: $border-width solid $border-color;
-    padding: $card-spacer-x;
-}
-
-// Some things just got renamed.
-.img-responsive {
-    @include img-fluid;
-}
-
-.text-error {
-    color: map-get($theme-colors, 'danger');
-}
-
-.btn-default {
-    @include button-variant(map-get($theme-colors, 'secondary'), map-get($theme-colors, 'secondary'));
-}
-
-.label {
-    display: inline-block;
-    padding: $badge-padding-y $badge-padding-x;
-    @include font-size($badge-font-size);
-    font-weight: $badge-font-weight;
-    line-height: 1;
-    text-align: center;
-    white-space: nowrap;
-    vertical-align: baseline;
-    @include border-radius($badge-border-radius);
-    @include transition($badge-transition);
-    @include badge-variant($tag-default-bg);
-}
-
-.label-success {
-    @include badge-variant($tag-success-bg);
-}
-
-.label-info {
-    @include badge-variant($tag-info-bg);
-}
-
-.label-warning {
-    @include badge-variant($tag-warning-bg);
-}
-
-.label-important {
-    @include badge-variant($tag-danger-bg);
-}
-
-// Floats.
-.pull-left {
-    @include pull-left();
-}
-
-.pull-right {
-    @include pull-right();
-}
diff --git a/theme/boost/scss/moodle/bs4alphacompat.scss b/theme/boost/scss/moodle/bs4alphacompat.scss
deleted file mode 100644 (file)
index 1bd88c4..0000000
+++ /dev/null
@@ -1,236 +0,0 @@
-$font-size-xs: ($font-size-base * .75) !default;
-$font-size-root: $font-size-base;
-
-$zindex-navbar-fixed: 1030 !default;
-$tag-padding-y: .25rem !default;
-
-/* stylelint-disable function-url-scheme-blacklist */
-$form-icon-success: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%235cb85c' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E") !default;
-$form-icon-warning: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f0ad4e' d='M4.4 5.324h-.8v-2.46h.8zm0 1.42h-.8V5.89h.8zM3.76.63L.04 7.075c-.115.2.016.425.26.426h7.397c.242 0 .372-.226.258-.426C6.726 4.924 5.47 2.79 4.253.63c-.113-.174-.39-.174-.494 0z'/%3E%3C/svg%3E") !default;
-$form-icon-danger: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23d9534f' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E") !default;
-/* stylelint-enable function-url-scheme-blacklist */
-
-$input-bg-disabled: $input-disabled-bg;
-$table-sm-cell-padding: $table-cell-padding-sm;
-$popover-arrow-outer-width: 11px !default;
-$modal-title-padding: $modal-header-padding;
-$pagination-hover-border: $pagination-hover-border-color;
-$pagination-active-border: $pagination-active-border-color;
-
-$primary: $blue !default;
-$secondary: $gray-600 !default;
-$success: $green !default;
-$info: $cyan !default;
-$warning: $yellow !default;
-$danger: $red !default;
-$light: $gray-100 !default;
-$dark: $gray-800 !default;
-
-$brand-primary: $primary;
-$brand-success: $success;
-$brand-info: $info;
-$brand-warning: $warning;
-$brand-danger: $danger;
-
-$spacer: 1rem !default;
-$spacer-x: $spacer !default;
-$spacer-y: $spacer !default;
-
-$gray-dark: $gray-900;
-$gray: $gray-700;
-$gray-light: $gray-600;
-$gray-lighter: $gray-300;
-$gray-lightest: $gray-100;
-
-$table-bg-hover: $table-hover-bg;
-$table-bg-accent: $table-accent-bg;
-
-$tag-default-bg: $gray-light !default;
-$tag-primary-bg: $brand-primary !default;
-$tag-success-bg: $brand-success !default;
-$tag-info-bg: $brand-info !default;
-$tag-warning-bg: $brand-warning !default;
-$tag-danger-bg: $brand-danger !default;
-
-$state-success-text: $success;
-$state-success-bg: theme-color-level("success", -10) !default;
-$state-success-border: theme-color-level("success", -9) !default;
-
-$state-info-text: $info;
-$state-info-bg: theme-color-level("info", -10) !default;
-$state-info-border: theme-color-level("info", -9) !default;
-
-$state-warning-text: $warning;
-$state-warning-bg: theme-color-level("warning", -10) !default;
-$state-warning-border: theme-color-level("warning", -10) !default;
-
-$state-danger-text: $danger;
-$state-danger-bg: theme-color-level("danger", -10) !default;
-$state-danger-border: theme-color-level("danger", -9) !default;
-
-@mixin form-control-validation($color) {
-    // Color the label and help text
-    .form-control-feedback,
-    .form-control-label,
-    .form-check-label,
-    .form-check-inline,
-    .custom-control {
-        color: $color;
-    }
-    // Set the border and box shadow on specific inputs to match
-    .form-control {
-        border-color: $color;
-    }
-
-    // Set validation states also for addons
-    .input-group-addon {
-        color: $color;
-        border-color: $color;
-        background-color: lighten($color, 40%);
-    }
-    // Optional feedback icon
-    .form-control-feedback {
-        color: $color;
-    }
-}
-
-$tag-padding-x: .4em !default;
-$tag-padding-y: .25em !default;
-$tag-font-size: 75% !default;
-$tag-color: #fff !default;
-$tag-font-weight: bold !default;
-
-.tag {
-    display: inline-block;
-    padding: $tag-padding-y $tag-padding-x;
-    font-size: $tag-font-size;
-    font-weight: $tag-font-weight;
-    line-height: 1;
-    color: $tag-color;
-    text-align: center;
-    white-space: nowrap;
-    vertical-align: baseline;
-    @include border-radius();
-
-    // Empty tags collapse automatically
-    &:empty {
-        display: none;
-    }
-}
-
-.form-control-success,
-.form-control-warning,
-.form-control-danger {
-    padding-right: ($input-padding-x * 3);
-    background-repeat: no-repeat;
-    background-position: center right ($input-height / 4);
-    background-size: ($input-height / 2) ($input-height / 2);
-}
-
-// .form-check-input {
-//     position: static;
-// }
-
-@mixin tag-variant($color) {
-    background-color: $color;
-
-    &[href] {
-        @include hover-focus {
-            background-color: darken($color, 10%);
-        }
-    }
-}
-
-.tag-default {
-    @include tag-variant($tag-default-bg);
-}
-
-.tag-primary {
-    @include tag-variant($tag-primary-bg);
-}
-
-.tag-success {
-    @include tag-variant($tag-success-bg);
-}
-
-.tag-info {
-    @include tag-variant($tag-info-bg);
-}
-
-.tag-warning {
-    @include tag-variant($tag-warning-bg);
-}
-
-.tag-danger {
-    @include tag-variant($tag-danger-bg);
-}
-
-@mixin pull-left() {
-    float: left !important; /* stylelint-disable-line declaration-no-important */
-}
-
-@mixin pull-right() {
-    float: right !important; /* stylelint-disable-line declaration-no-important */
-}
-
-.custom-select {
-    width: auto;
-}
-
-.fade.in {
-    opacity: 1;
-}
-
-// Adding compatibility for m-side-* classes.
-// stylelint-disable
-$spacer: 1rem !default;
-$bs4aspacers: () !default;
-$bs4aspacers: map-merge((
-  0: 0,
-  1: ($spacer * 1),
-  2: ($spacer * 2),
-  3: ($spacer * 3)
-), $bs4aspacers);
-
-@each $prop, $abbrev in (margin: m, padding: p) {
-  @each $size, $length in $bs4aspacers {
-
-    .#{$abbrev}-a-#{$size} { #{$prop}: $length !important; }
-    .#{$abbrev}-t-#{$size},
-    .#{$abbrev}-y-#{$size} {
-      #{$prop}-top: $length !important;
-    }
-    .#{$abbrev}-r-#{$size},
-    .#{$abbrev}-x-#{$size} {
-      #{$prop}-right: $length !important;
-    }
-    .#{$abbrev}-b-#{$size},
-    .#{$abbrev}-y-#{$size} {
-      #{$prop}-bottom: $length !important;
-    }
-    .#{$abbrev}-l-#{$size},
-    .#{$abbrev}-x-#{$size} {
-      #{$prop}-left: $length !important;
-    }
-  }
-}
-
-input[disabled] {
-    cursor: not-allowed;
-}
-
-.row-fluid {
-  @include make-row();
-}
-
-// These have been removed in BS4 Stable. Adding in so RTL dropdowns will work.
-/*rtl:raw:
-.dropdown-menu-right {
-    right: 0;
-    left: auto;
-}
-.dropdown-menu-left {
-    right: auto;
-    left: 0;
-}
-*/
index 53fdb52..e8977fd 100644 (file)
@@ -73,7 +73,7 @@ $calendarEventOtherColor: #ced4da !default; // Pale gray.
 
         .drop-target {
             box-sizing: border-box;
-            border: 1px dashed $brand-primary;
+            border: 1px dashed $primary;
         }
     }
 
index 00b1583..9bf6081 100644 (file)
@@ -5,6 +5,8 @@
 // want white default colour.
 $bg-inverse-link-color: #fff !default;
 
+$font-size-xs: ($font-size-base * .75) !default;
+
 #region-main {
     overflow-x: auto;
     overflow-y: visible;
@@ -577,7 +579,7 @@ a.skip:active {
 
 // My Moodle
 .path-my .coursebox {
-    margin: $spacer-y 0;
+    margin: $spacer 0;
     padding: 0;
 
     .overview {
@@ -1215,7 +1217,7 @@ body#page-lib-editor-tinymce-plugins-moodlemedia-preview {
 
 /* Moodle Dialogue Settings (moodle-core-dialogue)  */
 .moodle-dialogue-base .moodle-dialogue-lightbox {
-    background-color: $gray;
+    background-color: $gray-700;
 }
 
 // Prevent adding backdrops to popups in popups.
@@ -2345,7 +2347,7 @@ $footer-link-color: $bg-inverse-link-color !default;
 .sr-only-focusable {
     &:active,
     &:focus {
-        z-index: $zindex-navbar-fixed + 1;
+        z-index: 1031;
         position: fixed;
         background: #fff;
         padding: 7px;
@@ -2477,10 +2479,27 @@ body.h5p-embed {
 .float-left {
     float: left !important; /* stylelint-disable-line declaration-no-important */
 }
+
 .float-right {
     float: right !important; /* stylelint-disable-line declaration-no-important */
 }
 
+.img-responsive {
+    @include img-fluid();
+}
+
+input[disabled] {
+    cursor: not-allowed;
+}
+
+.custom-select {
+    width: auto;
+}
+
+.fade.in {
+    opacity: 1;
+}
+
 .clamp-2 {
     display: -webkit-box;
     -webkit-box-orient: vertical;
index 1349003..d273887 100644 (file)
@@ -225,7 +225,7 @@ body:not(.editing)  .sitetopic ul.section {
 
 .editing .section .activity:hover,
 .editing .section .activity.action-menu-shown {
-    background-color: $table-bg-accent;
+    background-color: $table-accent-bg;
 }
 
 .course-content .current {
@@ -234,7 +234,7 @@ body:not(.editing)  .sitetopic ul.section {
 
 .course-content .current::before {
     content: "";
-    border-left: $brand-primary 2px solid;
+    border-left: $primary 2px solid;
     position: absolute;
     left: -$card-spacer-x;
     top: 0;
@@ -538,7 +538,7 @@ span.editinstructions {
     font-size: $font-size-sm;
     padding: .1em .4em;
     background-color: $state-info-bg;
-    color: $state-info-text;
+    color: $info;
     text-decoration: none;
     z-index: 9999;
 
@@ -556,7 +556,7 @@ span.editinstructions {
     border: 1px solid $state-info-border;
     text-align: center;
     background: $state-info-bg;
-    color: $state-info-text;
+    color: $info;
     z-index: 1; // Required in order to have this above relatively positioned course content@mixin
 
     @include box-shadow(2px 2px 5px 1px #ccc);
@@ -712,12 +712,12 @@ span.editinstructions {
 
 .courses .coursebox {
     &.collapsed {
-        padding-top: $spacer-y / 2;
-        padding-bottom: $spacer-y / 2;
+        padding-top: $spacer / 2;
+        padding-bottom: $spacer / 2;
     }
 
     &.even {
-        background-color: $table-bg-accent;
+        background-color: $table-accent-bg;
     }
 }
 
@@ -948,7 +948,7 @@ span.editinstructions {
             > div,
             > div:hover,
             &[data-selected='1'] > div {
-                background-color: $table-bg-hover;
+                background-color: $table-hover-bg;
             }
         }
     }
index 8eae03e..e60306e 100644 (file)
@@ -69,7 +69,7 @@
 }
 
 #adminsettings .error {
-    color: $state-danger-text;
+    color: $danger;
 }
 
 .mform ul.file-list {
@@ -290,7 +290,7 @@ fieldset.coursesearchbox label {
 .form-autocomplete-suggestions {
     position: absolute;
     background-color: white;
-    border: 2px solid $gray-lighter;
+    border: 2px solid $gray-300;
     border-radius: 3px;
     min-width: 206px;
     max-height: 20em;
@@ -316,7 +316,7 @@ fieldset.coursesearchbox label {
 
 .form-autocomplete-suggestions li[aria-selected=true] {
     background-color: darken($dropdown-bg, 5%);
-    color: $gray;
+    color: $gray-700;
 }
 
 .form-autocomplete-downarrow {
@@ -411,9 +411,11 @@ textarea[data-auto-rows] {
 
 /** Atto fields do not have form-control because that would break the layout of the editor.
     So they need these extra styles to highlight the editor when there is a validation error. */
+/* stylelint-disable function-url-scheme-blacklist */
+$form-icon-danger: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23d9534f' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E") !default;
+/* stylelint-enable function-url-scheme-blacklist */
 .has-danger .editor_atto_content.form-control,
 .has-danger .editor_atto_content.form-control-danger {
-    @include form-control-validation($brand-danger);
     background-image: $form-icon-danger;
     padding-right: ($input-padding-x * 3);
     background-repeat: no-repeat;
index 04d6f61..a97af4d 100644 (file)
 
     &.generaltable {
         .levelodd {
-            background-color: $table-bg-accent;
+            background-color: $table-accent-bg;
         }
 
         .leveleven {
         .heading .cell,
         .cell.category,
         .avg .cell {
-            background-color: $gray-lightest;
+            background-color: $gray-100;
         }
 
         table .clickable {
 
     &.generaltable {
         .levelodd {
-            background-color: $table-bg-accent;
+            background-color: $table-accent-bg;
         }
 
         .leveleven {
index f146898..7458548 100644 (file)
@@ -967,10 +967,6 @@ $grading-content-show-content-button-padding-left: calc(#{map-get($spacers, 2) *
     margin-left: 4px;
 }
 
-.ie .row-fluid .desktop-first-column {
-    margin-left: 0;
-}
-
 .langmenu form {
     margin: 0;
 }
@@ -1049,7 +1045,7 @@ div#dock {
         }
 
         > tbody > tr:nth-of-type(even) {
-            background-color: $table-bg-accent;
+            background-color: $table-accent-bg;
         }
 
         .rblock label {
@@ -1187,8 +1183,8 @@ div#dock {
 
     span.qnbutton {
         cursor: default;
-        background-color: $input-bg-disabled;
-        color: $gray;
+        background-color: $input-disabled-bg;
+        color: $gray-700;
     }
 
     a.qnbutton:hover,
@@ -1234,28 +1230,28 @@ div#dock {
 
     .qnbutton.correct .trafficlight {
         background-image: url([[pix:theme|mod/quiz/checkmark]]);
-        background-color: $state-success-text;
+        background-color: $success;
     }
 
     .qnbutton.blocked .trafficlight {
         background-image: url([[pix:core|t/locked]]);
-        background-color: $input-bg-disabled;
+        background-color: $input-disabled-bg;
     }
 
     .qnbutton.notanswered .trafficlight,
     .qnbutton.incorrect .trafficlight {
-        background-color: $state-danger-text;
+        background-color: $danger;
     }
 
     .qnbutton.partiallycorrect .trafficlight {
         background-image: url([[pix:theme|mod/quiz/whitecircle]]);
-        background-color: $state-warning-text;
+        background-color: $warning;
     }
 
     .qnbutton.complete .trafficlight,
     .qnbutton.answersaved .trafficlight,
     .qnbutton.requiresgrading .trafficlight {
-        background-color: $gray-light;
+        background-color: $gray-600;
     }
 }
 
index 4ed5c9a..fc93c2b 100644 (file)
@@ -245,8 +245,8 @@ body.path-question-type {
     width: 7em;
     padding: 0.5em;
     margin-bottom: 1.8em;
-    background-color: $gray-lighter;
-    border: 1px solid darken($gray-lighter, 7%);
+    background-color: $gray-300;
+    border: 1px solid darken($gray-300, 7%);
 
     @include border-radius(2px);
 }
@@ -350,14 +350,14 @@ body.path-question-type {
 
 .que .correctness {
     &.correct {
-        background-color: $state-success-text;
+        background-color: $success;
     }
     &.partiallycorrect {
-        background-color: $state-warning-text;
+        background-color: $warning;
     }
     &.notanswered,
     &.incorrect {
-        background-color: $state-danger-text;
+        background-color: $danger;
     }
 }
 
index eebf19c..50e56eb 100644 (file)
@@ -46,7 +46,7 @@ span[data-flexitour="container"] {
     }
 
     div[data-role="arrow"] {
-        border-width: #{$popover-arrow-outer-width};
+        border-width: $popover-arrow-width;
     }
 
     div[data-role="arrow"],
@@ -87,9 +87,9 @@ span[data-flexitour="container"] {
         &[x-placement="#{$direction}-start"] {
             margin-#{$opposite}: #{$popover-arrow-width};
             div[data-role="arrow"] {
-                #{$opposite}: -#{$popover-arrow-outer-width};
+                #{$opposite}: -$popover-arrow-width;
                 #{$side}: 50%;
-                margin-#{$side}: -#{$popover-arrow-outer-width};
+                margin-#{$side}: -$popover-arrow-width;
                 border-#{$opposite}-width: 0;
                 border-#{$direction}-color: #{$popover-arrow-outer-color};
             }
diff --git a/theme/boost/scss/moodle/variables.scss b/theme/boost/scss/moodle/variables.scss
new file mode 100644 (file)
index 0000000..9b733cf
--- /dev/null
@@ -0,0 +1,20 @@
+/**
+ * Moodle variables
+ *
+ * Variables written for Moodle specific components
+ *
+ * Please do not override any Bootstrap variables here, custom Bootstrap variable should go in
+ * preset files instead.
+ */
+
+$state-success-bg: theme-color-level("success", -10) !default;
+$state-success-border: theme-color-level("success", -9) !default;
+
+$state-info-bg: theme-color-level("info", -10) !default;
+$state-info-border: theme-color-level("info", -9) !default;
+
+$state-warning-bg: theme-color-level("warning", -10) !default;
+$state-warning-border: theme-color-level("warning", -10) !default;
+
+$state-danger-bg: theme-color-level("danger", -10) !default;
+$state-danger-border: theme-color-level("danger", -9) !default;
\ No newline at end of file
index 280f192..bd0cf66 100644 (file)
@@ -82,6 +82,17 @@ $theme-colors: map-merge((
 ), $theme-colors);
 // stylelint-enable
 
+$spacer: 1rem !default;
+$spacers: (
+    0: 0,
+    1: ($spacer * .25),
+    2: ($spacer * .5),
+    3: $spacer,
+    4: ($spacer * 1.5),
+    5: ($spacer * 2),
+    6: ($spacer * 3)
+) !default;
+
 // Import FontAwesome.
 @import "fontawesome";
 
index 6420d42..cbdfb38 100644 (file)
@@ -7879,22 +7879,41 @@ button.bg-dark:focus {
   margin-left: 1.5rem !important; }
 
 .m-5 {
-  margin: 3rem !important; }
+  margin: 2rem !important; }
 
 .mt-5,
 .my-5 {
-  margin-top: 3rem !important; }
+  margin-top: 2rem !important; }
 
 .mr-5,
 .mx-5 {
-  margin-right: 3rem !important; }
+  margin-right: 2rem !important; }
 
 .mb-5,
 .my-5 {
-  margin-bottom: 3rem !important; }
+  margin-bottom: 2rem !important; }
 
 .ml-5,
 .mx-5 {
+  margin-left: 2rem !important; }
+
+.m-6 {
+  margin: 3rem !important; }
+
+.mt-6,
+.my-6 {
+  margin-top: 3rem !important; }
+
+.mr-6,
+.mx-6 {
+  margin-right: 3rem !important; }
+
+.mb-6,
+.my-6 {
+  margin-bottom: 3rem !important; }
+
+.ml-6,
+.mx-6 {
   margin-left: 3rem !important; }
 
 .p-0 {
@@ -7993,22 +8012,41 @@ button.bg-dark:focus {
   padding-left: 1.5rem !important; }
 
 .p-5 {
-  padding: 3rem !important; }
+  padding: 2rem !important; }
 
 .pt-5,
 .py-5 {
-  padding-top: 3rem !important; }
+  padding-top: 2rem !important; }
 
 .pr-5,
 .px-5 {
-  padding-right: 3rem !important; }
+  padding-right: 2rem !important; }
 
 .pb-5,
 .py-5 {
-  padding-bottom: 3rem !important; }
+  padding-bottom: 2rem !important; }
 
 .pl-5,
 .px-5 {
+  padding-left: 2rem !important; }
+
+.p-6 {
+  padding: 3rem !important; }
+
+.pt-6,
+.py-6 {
+  padding-top: 3rem !important; }
+
+.pr-6,
+.px-6 {
+  padding-right: 3rem !important; }
+
+.pb-6,
+.py-6 {
+  padding-bottom: 3rem !important; }
+
+.pl-6,
+.px-6 {
   padding-left: 3rem !important; }
 
 .m-n1 {
@@ -8088,22 +8126,41 @@ button.bg-dark:focus {
   margin-left: -1.5rem !important; }
 
 .m-n5 {
-  margin: -3rem !important; }
+  margin: -2rem !important; }
 
 .mt-n5,
 .my-n5 {
-  margin-top: -3rem !important; }
+  margin-top: -2rem !important; }
 
 .mr-n5,
 .mx-n5 {
-  margin-right: -3rem !important; }
+  margin-right: -2rem !important; }
 
 .mb-n5,
 .my-n5 {
-  margin-bottom: -3rem !important; }
+  margin-bottom: -2rem !important; }
 
 .ml-n5,
 .mx-n5 {
+  margin-left: -2rem !important; }
+
+.m-n6 {
+  margin: -3rem !important; }
+
+.mt-n6,
+.my-n6 {
+  margin-top: -3rem !important; }
+
+.mr-n6,
+.mx-n6 {
+  margin-right: -3rem !important; }
+
+.mb-n6,
+.my-n6 {
+  margin-bottom: -3rem !important; }
+
+.ml-n6,
+.mx-n6 {
   margin-left: -3rem !important; }
 
 .m-auto {
@@ -8197,18 +8254,32 @@ button.bg-dark:focus {
   .mx-sm-4 {
     margin-left: 1.5rem !important; }
   .m-sm-5 {
-    margin: 3rem !important; }
+    margin: 2rem !important; }
   .mt-sm-5,
   .my-sm-5 {
-    margin-top: 3rem !important; }
+    margin-top: 2rem !important; }
   .mr-sm-5,
   .mx-sm-5 {
-    margin-right: 3rem !important; }
+    margin-right: 2rem !important; }
   .mb-sm-5,
   .my-sm-5 {
-    margin-bottom: 3rem !important; }
+    margin-bottom: 2rem !important; }
   .ml-sm-5,
   .mx-sm-5 {
+    margin-left: 2rem !important; }
+  .m-sm-6 {
+    margin: 3rem !important; }
+  .mt-sm-6,
+  .my-sm-6 {
+    margin-top: 3rem !important; }
+  .mr-sm-6,
+  .mx-sm-6 {
+    margin-right: 3rem !important; }
+  .mb-sm-6,
+  .my-sm-6 {
+    margin-bottom: 3rem !important; }
+  .ml-sm-6,
+  .mx-sm-6 {
     margin-left: 3rem !important; }
   .p-sm-0 {
     padding: 0 !important; }
@@ -8281,18 +8352,32 @@ button.bg-dark:focus {
   .px-sm-4 {
     padding-left: 1.5rem !important; }
   .p-sm-5 {
-    padding: 3rem !important; }
+    padding: 2rem !important; }
   .pt-sm-5,
   .py-sm-5 {
-    padding-top: 3rem !important; }
+    padding-top: 2rem !important; }
   .pr-sm-5,
   .px-sm-5 {
-    padding-right: 3rem !important; }
+    padding-right: 2rem !important; }
   .pb-sm-5,
   .py-sm-5 {
-    padding-bottom: 3rem !important; }
+    padding-bottom: 2rem !important; }
   .pl-sm-5,
   .px-sm-5 {
+    padding-left: 2rem !important; }
+  .p-sm-6 {
+    padding: 3rem !important; }
+  .pt-sm-6,
+  .py-sm-6 {
+    padding-top: 3rem !important; }
+  .pr-sm-6,
+  .px-sm-6 {
+    padding-right: 3rem !important; }
+  .pb-sm-6,
+  .py-sm-6 {
+    padding-bottom: 3rem !important; }
+  .pl-sm-6,
+  .px-sm-6 {
     padding-left: 3rem !important; }
   .m-sm-n1 {
     margin: -0.25rem !important; }
@@ -8351,18 +8436,32 @@ button.bg-dark:focus {
   .mx-sm-n4 {
     margin-left: -1.5rem !important; }
   .m-sm-n5 {
-    margin: -3rem !important; }
+    margin: -2rem !important; }
   .mt-sm-n5,
   .my-sm-n5 {
-    margin-top: -3rem !important; }
+    margin-top: -2rem !important; }
   .mr-sm-n5,
   .mx-sm-n5 {
-    margin-right: -3rem !important; }
+    margin-right: -2rem !important; }
   .mb-sm-n5,
   .my-sm-n5 {
-    margin-bottom: -3rem !important; }
+    margin-bottom: -2rem !important; }
   .ml-sm-n5,
   .mx-sm-n5 {
+    margin-left: -2rem !important; }
+  .m-sm-n6 {
+    margin: -3rem !important; }
+  .mt-sm-n6,
+  .my-sm-n6 {
+    margin-top: -3rem !important; }
+  .mr-sm-n6,
+  .mx-sm-n6 {
+    margin-right: -3rem !important; }
+  .mb-sm-n6,
+  .my-sm-n6 {
+    margin-bottom: -3rem !important; }
+  .ml-sm-n6,
+  .mx-sm-n6 {
     margin-left: -3rem !important; }
   .m-sm-auto {
     margin: auto !important; }
@@ -8451,18 +8550,32 @@ button.bg-dark:focus {
   .mx-md-4 {
     margin-left: 1.5rem !important; }
   .m-md-5 {
-    margin: 3rem !important; }
+    margin: 2rem !important; }
   .mt-md-5,
   .my-md-5 {
-    margin-top: 3rem !important; }
+    margin-top: 2rem !important; }
   .mr-md-5,
   .mx-md-5 {
-    margin-right: 3rem !important; }
+    margin-right: 2rem !important; }
   .mb-md-5,
   .my-md-5 {
-    margin-bottom: 3rem !important; }
+    margin-bottom: 2rem !important; }
   .ml-md-5,
   .mx-md-5 {
+    margin-left: 2rem !important; }
+  .m-md-6 {
+    margin: 3rem !important; }
+  .mt-md-6,
+  .my-md-6 {
+    margin-top: 3rem !important; }
+  .mr-md-6,
+  .mx-md-6 {
+    margin-right: 3rem !important; }
+  .mb-md-6,
+  .my-md-6 {
+    margin-bottom: 3rem !important; }
+  .ml-md-6,
+  .mx-md-6 {
     margin-left: 3rem !important; }
   .p-md-0 {
     padding: 0 !important; }
@@ -8535,18 +8648,32 @@ button.bg-dark:focus {
   .px-md-4 {
     padding-left: 1.5rem !important; }
   .p-md-5 {
-    padding: 3rem !important; }
+    padding: 2rem !important; }
   .pt-md-5,
   .py-md-5 {
-    padding-top: 3rem !important; }
+    padding-top: 2rem !important; }
   .pr-md-5,
   .px-md-5 {
-    padding-right: 3rem !important; }
+    padding-right: 2rem !important; }
   .pb-md-5,
   .py-md-5 {
-    padding-bottom: 3rem !important; }
+    padding-bottom: 2rem !important; }
   .pl-md-5,
   .px-md-5 {
+    padding-left: 2rem !important; }
+  .p-md-6 {
+    padding: 3rem !important; }
+  .pt-md-6,
+  .py-md-6 {
+    padding-top: 3rem !important; }
+  .pr-md-6,
+  .px-md-6 {
+    padding-right: 3rem !important; }
+  .pb-md-6,
+  .py-md-6 {
+    padding-bottom: 3rem !important; }
+  .pl-md-6,
+  .px-md-6 {
     padding-left: 3rem !important; }
   .m-md-n1 {
     margin: -0.25rem !important; }
@@ -8605,18 +8732,32 @@ button.bg-dark:focus {
   .mx-md-n4 {
     margin-left: -1.5rem !important; }
   .m-md-n5 {
-    margin: -3rem !important; }
+    margin: -2rem !important; }
   .mt-md-n5,
   .my-md-n5 {
-    margin-top: -3rem !important; }
+    margin-top: -2rem !important; }
   .mr-md-n5,
   .mx-md-n5 {
-    margin-right: -3rem !important; }
+    margin-right: -2rem !important; }
   .mb-md-n5,
   .my-md-n5 {
-    margin-bottom: -3rem !important; }
+    margin-bottom: -2rem !important; }
   .ml-md-n5,
   .mx-md-n5 {
+    margin-left: -2rem !important; }
+  .m-md-n6 {
+    margin: -3rem !important; }
+  .mt-md-n6,
+  .my-md-n6 {
+    margin-top: -3rem !important; }
+  .mr-md-n6,
+  .mx-md-n6 {
+    margin-right: -3rem !important; }
+  .mb-md-n6,
+  .my-md-n6 {
+    margin-bottom: -3rem !important; }
+  .ml-md-n6,
+  .mx-md-n6 {
     margin-left: -3rem !important; }
   .m-md-auto {
     margin: auto !important; }
@@ -8705,18 +8846,32 @@ button.bg-dark:focus {
   .mx-lg-4 {
     margin-left: 1.5rem !important; }
   .m-lg-5 {
-    margin: 3rem !important; }
+    margin: 2rem !important; }
   .mt-lg-5,
   .my-lg-5 {
-    margin-top: 3rem !important; }
+    margin-top: 2rem !important; }
   .mr-lg-5,
   .mx-lg-5 {
-    margin-right: 3rem !important; }
+    margin-right: 2rem !important; }
   .mb-lg-5,
   .my-lg-5 {
-    margin-bottom: 3rem !important; }
+    margin-bottom: 2rem !important; }
   .ml-lg-5,
   .mx-lg-5 {
+    margin-left: 2rem !important; }
+  .m-lg-6 {
+    margin: 3rem !important; }
+  .mt-lg-6,
+  .my-lg-6 {
+    margin-top: 3rem !important; }
+  .mr-lg-6,
+  .mx-lg-6 {
+    margin-right: 3rem !important; }
+  .mb-lg-6,
+  .my-lg-6 {
+    margin-bottom: 3rem !important; }
+  .ml-lg-6,
+  .mx-lg-6 {
     margin-left: 3rem !important; }
   .p-lg-0 {
     padding: 0 !important; }
@@ -8789,18 +8944,32 @@ button.bg-dark:focus {
   .px-lg-4 {
     padding-left: 1.5rem !important; }
   .p-lg-5 {
-    padding: 3rem !important; }
+    padding: 2rem !important; }
   .pt-lg-5,
   .py-lg-5 {
-    padding-top: 3rem !important; }
+    padding-top: 2rem !important; }
   .pr-lg-5,
   .px-lg-5 {
-    padding-right: 3rem !important; }
+    padding-right: 2rem !important; }
   .pb-lg-5,
   .py-lg-5 {
-    padding-bottom: 3rem !important; }
+    padding-bottom: 2rem !important; }
   .pl-lg-5,
   .px-lg-5 {
+    padding-left: 2rem !important; }
+  .p-lg-6 {
+    padding: 3rem !important; }
+  .pt-lg-6,
+  .py-lg-6 {
+    padding-top: 3rem !important; }
+  .pr-lg-6,
+  .px-lg-6 {
+    padding-right: 3rem !important; }
+  .pb-lg-6,
+  .py-lg-6 {
+    padding-bottom: 3rem !important; }
+  .pl-lg-6,
+  .px-lg-6 {
     padding-left: 3rem !important; }
   .m-lg-n1 {
     margin: -0.25rem !important; }
@@ -8859,18 +9028,32 @@ button.bg-dark:focus {
   .mx-lg-n4 {
     margin-left: -1.5rem !important; }
   .m-lg-n5 {
-    margin: -3rem !important; }
+    margin: -2rem !important; }
   .mt-lg-n5,
   .my-lg-n5 {
-    margin-top: -3rem !important; }
+    margin-top: -2rem !important; }
   .mr-lg-n5,
   .mx-lg-n5 {
-    margin-right: -3rem !important; }
+    margin-right: -2rem !important; }
   .mb-lg-n5,
   .my-lg-n5 {
-    margin-bottom: -3rem !important; }
+    margin-bottom: -2rem !important; }
   .ml-lg-n5,
   .mx-lg-n5 {
+    margin-left: -2rem !important; }
+  .m-lg-n6 {
+    margin: -3rem !important; }
+  .mt-lg-n6,
+  .my-lg-n6 {
+    margin-top: -3rem !important; }
+  .mr-lg-n6,
+  .mx-lg-n6 {
+    margin-right: -3rem !important; }
+  .mb-lg-n6,
+  .my-lg-n6 {
+    margin-bottom: -3rem !important; }
+  .ml-lg-n6,
+  .mx-lg-n6 {
     margin-left: -3rem !important; }
   .m-lg-auto {
     margin: auto !important; }
@@ -8959,18 +9142,32 @@ button.bg-dark:focus {
   .mx-xl-4 {
     margin-left: 1.5rem !important; }
   .m-xl-5 {
-    margin: 3rem !important; }
+    margin: 2rem !important; }
   .mt-xl-5,
   .my-xl-5 {
-    margin-top: 3rem !important; }
+    margin-top: 2rem !important; }
   .mr-xl-5,
   .mx-xl-5 {
-    margin-right: 3rem !important; }
+    margin-right: 2rem !important; }
   .mb-xl-5,
   .my-xl-5 {
-    margin-bottom: 3rem !important; }
+    margin-bottom: 2rem !important; }
   .ml-xl-5,
   .mx-xl-5 {
+    margin-left: 2rem !important; }
+  .m-xl-6 {
+    margin: 3rem !important; }
+  .mt-xl-6,
+  .my-xl-6 {
+    margin-top: 3rem !important; }
+  .mr-xl-6,
+  .mx-xl-6 {
+    margin-right: 3rem !important; }
+  .mb-xl-6,
+  .my-xl-6 {
+    margin-bottom: 3rem !important; }
+  .ml-xl-6,
+  .mx-xl-6 {
     margin-left: 3rem !important; }
   .p-xl-0 {
     padding: 0 !important; }
@@ -9043,18 +9240,32 @@ button.bg-dark:focus {
   .px-xl-4 {
     padding-left: 1.5rem !important; }
   .p-xl-5 {
-    padding: 3rem !important; }
+    padding: 2rem !important; }
   .pt-xl-5,
   .py-xl-5 {
-    padding-top: 3rem !important; }
+    padding-top: 2rem !important; }
   .pr-xl-5,
   .px-xl-5 {
-    padding-right: 3rem !important; }
+    padding-right: 2rem !important; }
   .pb-xl-5,
   .py-xl-5 {
-    padding-bottom: 3rem !important; }
+    padding-bottom: 2rem !important; }
   .pl-xl-5,
   .px-xl-5 {
+    padding-left: 2rem !important; }
+  .p-xl-6 {
+    padding: 3rem !important; }
+  .pt-xl-6,
+  .py-xl-6 {
+    padding-top: 3rem !important; }
+  .pr-xl-6,
+  .px-xl-6 {
+    padding-right: 3rem !important; }
+  .pb-xl-6,
+  .py-xl-6 {
+    padding-bottom: 3rem !important; }
+  .pl-xl-6,
+  .px-xl-6 {
     padding-left: 3rem !important; }
   .m-xl-n1 {
     margin: -0.25rem !important; }
@@ -9113,18 +9324,32 @@ button.bg-dark:focus {
   .mx-xl-n4 {
     margin-left: -1.5rem !important; }
   .m-xl-n5 {
-    margin: -3rem !important; }
+    margin: -2rem !important; }
   .mt-xl-n5,
   .my-xl-n5 {
-    margin-top: -3rem !important; }
+    margin-top: -2rem !important; }
   .mr-xl-n5,
   .mx-xl-n5 {
-    margin-right: -3rem !important; }
+    margin-right: -2rem !important; }
   .mb-xl-n5,
   .my-xl-n5 {
-    margin-bottom: -3rem !important; }
+    margin-bottom: -2rem !important; }
   .ml-xl-n5,
   .mx-xl-n5 {
+    margin-left: -2rem !important; }
+  .m-xl-n6 {
+    margin: -3rem !important; }
+  .mt-xl-n6,
+  .my-xl-n6 {
+    margin-top: -3rem !important; }
+  .mr-xl-n6,
+  .mx-xl-n6 {
+    margin-right: -3rem !important; }
+  .mb-xl-n6,
+  .my-xl-n6 {
+    margin-bottom: -3rem !important; }
+  .ml-xl-n6,
+  .mx-xl-n6 {
     margin-left: -3rem !important; }
   .m-xl-auto {
     margin: auto !important; }
@@ -9378,236 +9603,6 @@ a.text-dark:hover, a.text-dark:focus {
     color: inherit;
     border-color: #dee2e6; } }
 
-/* stylelint-disable function-url-scheme-blacklist */
-/* stylelint-enable function-url-scheme-blacklist */
-.tag {
-  display: inline-block;
-  padding: 0.25rem 0.4em;
-  font-size: 75%;
-  font-weight: bold;
-  line-height: 1;
-  color: #fff;
-  text-align: center;
-  white-space: nowrap;
-  vertical-align: baseline; }
-  .tag:empty {
-    display: none; }
-
-.form-control-success,
-.form-control-warning,
-.form-control-danger {
-  padding-right: 2.25rem;
-  background-repeat: no-repeat;
-  background-position: center right calc(1.5em + 0.75rem + 2px)/4;
-  background-size: calc(1.5em + 0.75rem + 2px)/2 calc(1.5em + 0.75rem + 2px)/2; }
-
-.tag-default {
-  background-color: #6c757d; }
-  .tag-default[href]:hover, .tag-default[href]:focus {
-    background-color: #545b62; }
-
-.tag-primary {
-  background-color: #1177d1; }
-  .tag-primary[href]:hover, .tag-primary[href]:focus {
-    background-color: #0d5ca2; }
-
-.tag-success {
-  background-color: #398439; }
-  .tag-success[href]:hover, .tag-success[href]:focus {
-    background-color: #2a602a; }
-
-.tag-info {
-  background-color: #5bc0de; }
-  .tag-info[href]:hover, .tag-info[href]:focus {
-    background-color: #31b0d5; }
-
-.tag-warning {
-  background-color: #f0ad4e; }
-  .tag-warning[href]:hover, .tag-warning[href]:focus {
-    background-color: #ec971f; }
-
-.tag-danger {
-  background-color: #d43f3a; }
-  .tag-danger[href]:hover, .tag-danger[href]:focus {
-    background-color: #b42c27; }
-
-.custom-select {
-  width: auto; }
-
-.fade.in {
-  opacity: 1; }
-
-.m-a-0 {
-  margin: 0 !important; }
-
-.m-t-0,
-.m-y-0 {
-  margin-top: 0 !important; }
-
-.m-r-0,
-.m-x-0 {
-  margin-right: 0 !important; }
-
-.m-b-0,
-.m-y-0 {
-  margin-bottom: 0 !important; }
-
-.m-l-0,
-.m-x-0 {
-  margin-left: 0 !important; }
-
-.m-a-1 {
-  margin: 1rem !important; }
-
-.m-t-1,
-.m-y-1 {
-  margin-top: 1rem !important; }
-
-.m-r-1,
-.m-x-1 {
-  margin-right: 1rem !important; }
-
-.m-b-1,
-.m-y-1 {
-  margin-bottom: 1rem !important; }
-
-.m-l-1,
-.m-x-1 {
-  margin-left: 1rem !important; }
-
-.m-a-2 {
-  margin: 2rem !important; }
-
-.m-t-2,
-.m-y-2 {
-  margin-top: 2rem !important; }
-
-.m-r-2,
-.m-x-2 {
-  margin-right: 2rem !important; }
-
-.m-b-2,
-.m-y-2 {
-  margin-bottom: 2rem !important; }
-
-.m-l-2,
-.m-x-2 {
-  margin-left: 2rem !important; }
-
-.m-a-3 {
-  margin: 3rem !important; }
-
-.m-t-3,
-.m-y-3 {
-  margin-top: 3rem !important; }
-
-.m-r-3,
-.m-x-3 {
-  margin-right: 3rem !important; }
-
-.m-b-3,
-.m-y-3 {
-  margin-bottom: 3rem !important; }
-
-.m-l-3,
-.m-x-3 {
-  margin-left: 3rem !important; }
-
-.p-a-0 {
-  padding: 0 !important; }
-
-.p-t-0,
-.p-y-0 {
-  padding-top: 0 !important; }
-
-.p-r-0,
-.p-x-0 {
-  padding-right: 0 !important; }
-
-.p-b-0,
-.p-y-0 {
-  padding-bottom: 0 !important; }
-
-.p-l-0,
-.p-x-0 {
-  padding-left: 0 !important; }
-
-.p-a-1 {
-  padding: 1rem !important; }
-
-.p-t-1,
-.p-y-1 {
-  padding-top: 1rem !important; }
-
-.p-r-1,
-.p-x-1 {
-  padding-right: 1rem !important; }
-
-.p-b-1,
-.p-y-1 {
-  padding-bottom: 1rem !important; }
-
-.p-l-1,
-.p-x-1 {
-  padding-left: 1rem !important; }
-
-.p-a-2 {
-  padding: 2rem !important; }
-
-.p-t-2,
-.p-y-2 {
-  padding-top: 2rem !important; }
-
-.p-r-2,
-.p-x-2 {
-  padding-right: 2rem !important; }
-
-.p-b-2,
-.p-y-2 {
-  padding-bottom: 2rem !important; }
-
-.p-l-2,
-.p-x-2 {
-  padding-left: 2rem !important; }
-
-.p-a-3 {
-  padding: 3rem !important; }
-
-.p-t-3,
-.p-y-3 {
-  padding-top: 3rem !important; }
-
-.p-r-3,
-.p-x-3 {
-  padding-right: 3rem !important; }
-
-.p-b-3,
-.p-y-3 {
-  padding-bottom: 3rem !important; }
-
-.p-l-3,
-.p-x-3 {
-  padding-left: 3rem !important; }
-
-input[disabled] {
-  cursor: not-allowed; }
-
-.row-fluid {
-  display: flex;
-  flex-wrap: wrap;
-  margin-right: -15px;
-  margin-left: -15px; }
-
-/*rtl:raw:
-.dropdown-menu-right {
-    right: 0;
-    left: auto;
-}
-.dropdown-menu-left {
-    right: auto;
-    left: 0;
-}
-*/
 /**
  * Bootstrap overrides for RTL
  *
@@ -9630,6 +9625,14 @@ input[disabled] {
     text-align: right;
 }
 */
+/**
+ * Moodle variables
+ *
+ * Variables written for Moodle specific components
+ *
+ * Please do not override any Bootstrap variables here, custom Bootstrap variable should go in
+ * preset files instead.
+ */
 /* core.less */
 #region-main {
   overflow-x: auto;
@@ -11597,6 +11600,10 @@ div.editor_atto_toolbar button .icon {
   /* stylelint-disable-line declaration-no-important */ }
 
 .line-height-5 {
+  line-height: 2rem !important;
+  /* stylelint-disable-line declaration-no-important */ }
+
+.line-height-6 {
   line-height: 3rem !important;
   /* stylelint-disable-line declaration-no-important */ }
 
@@ -11654,6 +11661,19 @@ body.h5p-embed .h5pmessages {
   float: right !important;
   /* stylelint-disable-line declaration-no-important */ }
 
+.img-responsive {
+  max-width: 100%;
+  height: auto; }
+
+input[disabled] {
+  cursor: not-allowed; }
+
+.custom-select {
+  width: auto; }
+
+.fade.in {
+  opacity: 1; }
+
 .clamp-2 {
   display: -webkit-box;
   -webkit-box-orient: vertical;
@@ -16513,6 +16533,8 @@ textarea[data-auto-rows] {
 
 /** Atto fields do not have form-control because that would break the layout of the editor.
     So they need these extra styles to highlight the editor when there is a validation error. */
+/* stylelint-disable function-url-scheme-blacklist */
+/* stylelint-enable function-url-scheme-blacklist */
 .has-danger .editor_atto_content.form-control,
 .has-danger .editor_atto_content.form-control-danger {
   background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23d9534f' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E");
@@ -16520,28 +16542,6 @@ textarea[data-auto-rows] {
   background-repeat: no-repeat;
   background-position: center right 1rem;
   background-size: 1.5rem; }
-  .has-danger .editor_atto_content.form-control .form-control-feedback,
-  .has-danger .editor_atto_content.form-control .form-control-label,
-  .has-danger .editor_atto_content.form-control .form-check-label,
-  .has-danger .editor_atto_content.form-control .form-check-inline,
-  .has-danger .editor_atto_content.form-control .custom-control,
-  .has-danger .editor_atto_content.form-control-danger .form-control-feedback,
-  .has-danger .editor_atto_content.form-control-danger .form-control-label,
-  .has-danger .editor_atto_content.form-control-danger .form-check-label,
-  .has-danger .editor_atto_content.form-control-danger .form-check-inline,
-  .has-danger .editor_atto_content.form-control-danger .custom-control {
-    color: #d43f3a; }
-  .has-danger .editor_atto_content.form-control .form-control,
-  .has-danger .editor_atto_content.form-control-danger .form-control {
-    border-color: #d43f3a; }
-  .has-danger .editor_atto_content.form-control .input-group-addon,
-  .has-danger .editor_atto_content.form-control-danger .input-group-addon {
-    color: #d43f3a;
-    border-color: #d43f3a;
-    background-color: #f9e2e1; }
-  .has-danger .editor_atto_content.form-control .form-control-feedback,
-  .has-danger .editor_atto_content.form-control-danger .form-control-feedback {
-    color: #d43f3a; }
 
 [data-filetypesbrowserbody] [aria-expanded="false"] > [role="group"],
 [data-filetypesbrowserbody] [aria-expanded="false"] [data-filetypesbrowserfeature="hideifcollapsed"],
@@ -17257,9 +17257,6 @@ select {
   float: left;
   margin-left: 4px; }
 
-.ie .row-fluid .desktop-first-column {
-  margin-left: 0; }
-
 .langmenu form {
   margin: 0; }
 
@@ -18946,7 +18943,7 @@ span[data-flexitour="container"] .modal-dialog {
   margin: 0; }
 
 span[data-flexitour="container"] div[data-role="arrow"] {
-  border-width: 11px; }
+  border-width: 1rem; }
 
 span[data-flexitour="container"] div[data-role="arrow"],
 span[data-flexitour="container"] div[data-role="arrow"]:after {
@@ -18961,9 +18958,9 @@ span[data-flexitour="container"] div[data-role="arrow"]:after {
 span[data-flexitour="container"][x-placement="top"], span[data-flexitour="container"][x-placement="top-start"] {
   margin-bottom: 1rem; }
   span[data-flexitour="container"][x-placement="top"] div[data-role="arrow"], span[data-flexitour="container"][x-placement="top-start"] div[data-role="arrow"] {
-    bottom: -11px;
+    bottom: -1rem;
     left: 50%;
-    margin-left: -11px;
+    margin-left: -1rem;
     border-bottom-width: 0;
     border-top-color: rgba(0, 0, 0, 0.25); }
   span[data-flexitour="container"][x-placement="top"] div[data-role="arrow"]:after, span[data-flexitour="container"][x-placement="top-start"] div[data-role="arrow"]:after {
@@ -18976,9 +18973,9 @@ span[data-flexitour="container"][x-placement="top"], span[data-flexitour="contai
 span[data-flexitour="container"][x-placement="bottom"], span[data-flexitour="container"][x-placement="bottom-start"] {
   margin-top: 1rem; }
   span[data-flexitour="container"][x-placement="bottom"] div[data-role="arrow"], span[data-flexitour="container"][x-placement="bottom-start"] div[data-role="arrow"] {
-    top: -11px;
+    top: -1rem;
     left: 50%;
-    margin-left: -11px;
+    margin-left: -1rem;
     border-top-width: 0;
     border-bottom-color: rgba(0, 0, 0, 0.25); }
   span[data-flexitour="container"][x-placement="bottom"] div[data-role="arrow"]:after, span[data-flexitour="container"][x-placement="bottom-start"] div[data-role="arrow"]:after {
@@ -18991,9 +18988,9 @@ span[data-flexitour="container"][x-placement="bottom"], span[data-flexitour="con
 span[data-flexitour="container"][x-placement="left"], span[data-flexitour="container"][x-placement="left-start"] {
   margin-right: 1rem; }
   span[data-flexitour="container"][x-placement="left"] div[data-role="arrow"], span[data-flexitour="container"][x-placement="left-start"] div[data-role="arrow"] {
-    right: -11px;
+    right: -1rem;
     top: 50%;
-    margin-top: -11px;
+    margin-top: -1rem;
     border-right-width: 0;
     border-left-color: rgba(0, 0, 0, 0.25); }
   span[data-flexitour="container"][x-placement="left"] div[data-role="arrow"]:after, span[data-flexitour="container"][x-placement="left-start"] div[data-role="arrow"]:after {
@@ -19006,9 +19003,9 @@ span[data-flexitour="container"][x-placement="left"], span[data-flexitour="conta
 span[data-flexitour="container"][x-placement="right"], span[data-flexitour="container"][x-placement="right-start"] {
   margin-left: 1rem; }
   span[data-flexitour="container"][x-placement="right"] div[data-role="arrow"], span[data-flexitour="container"][x-placement="right-start"] div[data-role="arrow"] {
-    left: -11px;
+    left: -1rem;
     top: 50%;
-    margin-top: -11px;
+    margin-top: -1rem;
     border-left-width: 0;
     border-right-color: rgba(0, 0, 0, 0.25); }
   span[data-flexitour="container"][x-placement="right"] div[data-role="arrow"]:after, span[data-flexitour="container"][x-placement="right-start"] div[data-role="arrow"]:after {
@@ -19023,113 +19020,6 @@ span[data-flexitour="container"][x-placement="right"], span[data-flexitour="cont
   margin-left: -15px;
   width: 275px; }
 
-.well {
-  border: 1px solid #dee2e6;
-  padding: 1.25rem; }
-
-.img-responsive {
-  max-width: 100%;
-  height: auto; }
-
-.text-error {
-  color: #d43f3a; }
-
-.btn-default {
-  color: #212529;
-  background-color: #ced4da;
-  border-color: #ced4da; }
-  .btn-default:hover {
-    color: #212529;
-    background-color: #b8c1ca;
-    border-color: #b1bbc4; }
-  .btn-default:focus, .btn-default.focus {
-    color: #212529;
-    background-color: #b8c1ca;
-    border-color: #b1bbc4;
-    box-shadow: 0 0 0 0.2rem rgba(180, 186, 191, 0.5); }
-  .btn-default.disabled, .btn-default:disabled {
-    color: #212529;
-    background-color: #ced4da;
-    border-color: #ced4da; }
-  .btn-default:not(:disabled):not(.disabled):active, .btn-default:not(:disabled):not(.disabled).active,
-  .show > .btn-default.dropdown-toggle {
-    color: #212529;
-    background-color: #b1bbc4;
-    border-color: #aab4bf; }
-    .btn-default:not(:disabled):not(.disabled):active:focus, .btn-default:not(:disabled):not(.disabled).active:focus,
-    .show > .btn-default.dropdown-toggle:focus {
-      box-shadow: 0 0 0 0.2rem rgba(180, 186, 191, 0.5); }
-
-.label {
-  display: inline-block;
-  padding: 0.25em 0.4em;
-  font-size: 75%;
-  font-weight: 700;
-  line-height: 1;
-  text-align: center;
-  white-space: nowrap;
-  vertical-align: baseline;
-  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
-  color: #fff;
-  background-color: #6c757d; }
-  @media (prefers-reduced-motion: reduce) {
-    .label {
-      transition: none; } }
-  a.label:hover, a.label:focus {
-    color: #fff;
-    background-color: #545b62; }
-  a.label:focus, a.label.focus {
-    outline: 0;
-    box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); }
-
-.label-success {
-  color: #fff;
-  background-color: #398439; }
-  a.label-success:hover, a.label-success:focus {
-    color: #fff;
-    background-color: #2a602a; }
-  a.label-success:focus, a.label-success.focus {
-    outline: 0;
-    box-shadow: 0 0 0 0.2rem rgba(57, 132, 57, 0.5); }
-
-.label-info {
-  color: #212529;
-  background-color: #5bc0de; }
-  a.label-info:hover, a.label-info:focus {
-    color: #212529;
-    background-color: #31b0d5; }
-  a.label-info:focus, a.label-info.focus {
-    outline: 0;
-    box-shadow: 0 0 0 0.2rem rgba(91, 192, 222, 0.5); }
-
-.label-warning {
-  color: #212529;
-  background-color: #f0ad4e; }
-  a.label-warning:hover, a.label-warning:focus {
-    color: #212529;
-    background-color: #ec971f; }
-  a.label-warning:focus, a.label-warning.focus {
-    outline: 0;
-    box-shadow: 0 0 0 0.2rem rgba(240, 173, 78, 0.5); }
-
-.label-important {
-  color: #fff;
-  background-color: #d43f3a; }
-  a.label-important:hover, a.label-important:focus {
-    color: #fff;
-    background-color: #b42c27; }
-  a.label-important:focus, a.label-important.focus {
-    outline: 0;
-    box-shadow: 0 0 0 0.2rem rgba(212, 63, 58, 0.5); }
-
-.pull-left {
-  float: left !important;
-  /* stylelint-disable-line declaration-no-important */ }
-
-.pull-right {
-  float: right !important;
-  /* stylelint-disable-line declaration-no-important */ }
-
 @media print {
   body.drawer-open-left.jsenabled,
   body.drawer-open-right.jsenabled {
index c5f2517..c5a370d 100644 (file)
@@ -76,6 +76,17 @@ $theme-colors: map-merge((
 ), $theme-colors);
 // stylelint-enable
 
+$spacer: 1rem !default;
+$spacers: (
+    0: 0,
+    1: ($spacer * .25),
+    2: ($spacer * .5),
+    3: $spacer,
+    4: ($spacer * 1.5),
+    5: ($spacer * 2),
+    6: ($spacer * 3)
+) !default;
+
 // Import FontAwesome.
 @import "fontawesome";
 
index b64067e..d673dfc 100644 (file)
@@ -8082,22 +8082,41 @@ button.bg-dark:focus {
   margin-left: 1.5rem !important; }
 
 .m-5 {
-  margin: 3rem !important; }
+  margin: 2rem !important; }
 
 .mt-5,
 .my-5 {
-  margin-top: 3rem !important; }
+  margin-top: 2rem !important; }
 
 .mr-5,
 .mx-5 {
-  margin-right: 3rem !important; }
+  margin-right: 2rem !important; }
 
 .mb-5,
 .my-5 {
-  margin-bottom: 3rem !important; }
+  margin-bottom: 2rem !important; }
 
 .ml-5,
 .mx-5 {
+  margin-left: 2rem !important; }
+
+.m-6 {
+  margin: 3rem !important; }
+
+.mt-6,
+.my-6 {
+  margin-top: 3rem !important; }
+
+.mr-6,
+.mx-6 {
+  margin-right: 3rem !important; }
+
+.mb-6,
+.my-6 {
+  margin-bottom: 3rem !important; }
+
+.ml-6,
+.mx-6 {
   margin-left: 3rem !important; }
 
 .p-0 {
@@ -8196,22 +8215,41 @@ button.bg-dark:focus {
   padding-left: 1.5rem !important; }
 
 .p-5 {
-  padding: 3rem !important; }
+  padding: 2rem !important; }
 
 .pt-5,
 .py-5 {
-  padding-top: 3rem !important; }
+  padding-top: 2rem !important; }
 
 .pr-5,
 .px-5 {
-  padding-right: 3rem !important; }
+  padding-right: 2rem !important; }
 
 .pb-5,
 .py-5 {
-  padding-bottom: 3rem !important; }
+  padding-bottom: 2rem !important; }
 
 .pl-5,
 .px-5 {
+  padding-left: 2rem !important; }
+
+.p-6 {
+  padding: 3rem !important; }
+
+.pt-6,
+.py-6 {
+  padding-top: 3rem !important; }
+
+.pr-6,
+.px-6 {
+  padding-right: 3rem !important; }
+
+.pb-6,
+.py-6 {
+  padding-bottom: 3rem !important; }
+
+.pl-6,
+.px-6 {
   padding-left: 3rem !important; }
 
 .m-n1 {
@@ -8291,22 +8329,41 @@ button.bg-dark:focus {
   margin-left: -1.5rem !important; }
 
 .m-n5 {
-  margin: -3rem !important; }
+  margin: -2rem !important; }
 
 .mt-n5,
 .my-n5 {
-  margin-top: -3rem !important; }
+  margin-top: -2rem !important; }
 
 .mr-n5,
 .mx-n5 {
-  margin-right: -3rem !important; }
+  margin-right: -2rem !important; }
 
 .mb-n5,
 .my-n5 {
-  margin-bottom: -3rem !important; }
+  margin-bottom: -2rem !important; }
 
 .ml-n5,
 .mx-n5 {
+  margin-left: -2rem !important; }
+
+.m-n6 {
+  margin: -3rem !important; }
+
+.mt-n6,
+.my-n6 {
+  margin-top: -3rem !important; }
+
+.mr-n6,
+.mx-n6 {
+  margin-right: -3rem !important; }
+
+.mb-n6,
+.my-n6 {
+  margin-bottom: -3rem !important; }
+
+.ml-n6,
+.mx-n6 {
   margin-left: -3rem !important; }
 
 .m-auto {
@@ -8400,18 +8457,32 @@ button.bg-dark:focus {
   .mx-sm-4 {
     margin-left: 1.5rem !important; }
   .m-sm-5 {
-    margin: 3rem !important; }
+    margin: 2rem !important; }
   .mt-sm-5,
   .my-sm-5 {
-    margin-top: 3rem !important; }
+    margin-top: 2rem !important; }
   .mr-sm-5,
   .mx-sm-5 {
-    margin-right: 3rem !important; }
+    margin-right: 2rem !important; }
   .mb-sm-5,
   .my-sm-5 {
-    margin-bottom: 3rem !important; }
+    margin-bottom: 2rem !important; }
   .ml-sm-5,
   .mx-sm-5 {
+    margin-left: 2rem !important; }
+  .m-sm-6 {
+    margin: 3rem !important; }
+  .mt-sm-6,
+  .my-sm-6 {
+    margin-top: 3rem !important; }
+  .mr-sm-6,
+  .mx-sm-6 {
+    margin-right: 3rem !important; }
+  .mb-sm-6,
+  .my-sm-6 {
+    margin-bottom: 3rem !important; }
+  .ml-sm-6,
+  .mx-sm-6 {
     margin-left: 3rem !important; }
   .p-sm-0 {
     padding: 0 !important; }
@@ -8484,18 +8555,32 @@ button.bg-dark:focus {
   .px-sm-4 {
     padding-left: 1.5rem !important; }
   .p-sm-5 {
-    padding: 3rem !important; }
+    padding: 2rem !important; }
   .pt-sm-5,
   .py-sm-5 {
-    padding-top: 3rem !important; }
+    padding-top: 2rem !important; }
   .pr-sm-5,
   .px-sm-5 {
-    padding-right: 3rem !important; }
+    padding-right: 2rem !important; }
   .pb-sm-5,
   .py-sm-5 {
-    padding-bottom: 3rem !important; }
+    padding-bottom: 2rem !important; }
   .pl-sm-5,
   .px-sm-5 {
+    padding-left: 2rem !important; }
+  .p-sm-6 {
+    padding: 3rem !important; }
+  .pt-sm-6,
+  .py-sm-6 {
+    padding-top: 3rem !important; }
+  .pr-sm-6,
+  .px-sm-6 {
+    padding-right: 3rem !important; }
+  .pb-sm-6,
+  .py-sm-6 {
+    padding-bottom: 3rem !important; }
+  .pl-sm-6,
+  .px-sm-6 {
     padding-left: 3rem !important; }
   .m-sm-n1 {
     margin: -0.25rem !important; }
@@ -8554,18 +8639,32 @@ button.bg-dark:focus {
   .mx-sm-n4 {
     margin-left: -1.5rem !important; }
   .m-sm-n5 {
-    margin: -3rem !important; }
+    margin: -2rem !important; }
   .mt-sm-n5,
   .my-sm-n5 {
-    margin-top: -3rem !important; }
+    margin-top: -2rem !important; }
   .mr-sm-n5,
   .mx-sm-n5 {
-    margin-right: -3rem !important; }
+    margin-right: -2rem !important; }
   .mb-sm-n5,
   .my-sm-n5 {
-    margin-bottom: -3rem !important; }
+    margin-bottom: -2rem !important; }
   .ml-sm-n5,
   .mx-sm-n5 {
+    margin-left: -2rem !important; }
+  .m-sm-n6 {
+    margin: -3rem !important; }
+  .mt-sm-n6,
+  .my-sm-n6 {
+    margin-top: -3rem !important; }
+  .mr-sm-n6,
+  .mx-sm-n6 {
+    margin-right: -3rem !important; }
+  .mb-sm-n6,
+  .my-sm-n6 {
+    margin-bottom: -3rem !important; }
+  .ml-sm-n6,
+  .mx-sm-n6 {
     margin-left: -3rem !important; }
   .m-sm-auto {
     margin: auto !important; }
@@ -8654,18 +8753,32 @@ button.bg-dark:focus {
   .mx-md-4 {
     margin-left: 1.5rem !important; }
   .m-md-5 {
-    margin: 3rem !important; }
+    margin: 2rem !important; }
   .mt-md-5,
   .my-md-5 {
-    margin-top: 3rem !important; }
+    margin-top: 2rem !important; }
   .mr-md-5,
   .mx-md-5 {
-    margin-right: 3rem !important; }
+    margin-right: 2rem !important; }
   .mb-md-5,
   .my-md-5 {
-    margin-bottom: 3rem !important; }
+    margin-bottom: 2rem !important; }
   .ml-md-5,
   .mx-md-5 {
+    margin-left: 2rem !important; }
+  .m-md-6 {
+    margin: 3rem !important; }
+  .mt-md-6,
+  .my-md-6 {
+    margin-top: 3rem !important; }
+  .mr-md-6,
+  .mx-md-6 {
+    margin-right: 3rem !important; }
+  .mb-md-6,
+  .my-md-6 {
+    margin-bottom: 3rem !important; }
+  .ml-md-6,
+  .mx-md-6 {
     margin-left: 3rem !important; }
   .p-md-0 {
     padding: 0 !important; }
@@ -8738,18 +8851,32 @@ button.bg-dark:focus {
   .px-md-4 {
     padding-left: 1.5rem !important; }
   .p-md-5 {
-    padding: 3rem !important; }
+    padding: 2rem !important; }
   .pt-md-5,
   .py-md-5 {
-    padding-top: 3rem !important; }
+    padding-top: 2rem !important; }
   .pr-md-5,
   .px-md-5 {
-    padding-right: 3rem !important; }
+    padding-right: 2rem !important; }
   .pb-md-5,
   .py-md-5 {
-    padding-bottom: 3rem !important; }
+    padding-bottom: 2rem !important; }
   .pl-md-5,
   .px-md-5 {
+    padding-left: 2rem !important; }
+  .p-md-6 {
+    padding: 3rem !important; }
+  .pt-md-6,
+  .py-md-6 {
+    padding-top: 3rem !important; }
+  .pr-md-6,
+  .px-md-6 {
+    padding-right: 3rem !important; }
+  .pb-md-6,
+  .py-md-6 {
+    padding-bottom: 3rem !important; }
+  .pl-md-6,
+  .px-md-6 {
     padding-left: 3rem !important; }
   .m-md-n1 {
     margin: -0.25rem !important; }
@@ -8808,18 +8935,32 @@ button.bg-dark:focus {
   .mx-md-n4 {
     margin-left: -1.5rem !important; }
   .m-md-n5 {
-    margin: -3rem !important; }
+    margin: -2rem !important; }
   .mt-md-n5,
   .my-md-n5 {
-    margin-top: -3rem !important; }
+    margin-top: -2rem !important; }
   .mr-md-n5,
   .mx-md-n5 {
-    margin-right: -3rem !important; }
+    margin-right: -2rem !important; }
   .mb-md-n5,
   .my-md-n5 {
-    margin-bottom: -3rem !important; }
+    margin-bottom: -2rem !important; }
   .ml-md-n5,
   .mx-md-n5 {
+    margin-left: -2rem !important; }
+  .m-md-n6 {
+    margin: -3rem !important; }
+  .mt-md-n6,
+  .my-md-n6 {
+    margin-top: -3rem !important; }
+  .mr-md-n6,
+  .mx-md-n6 {
+    margin-right: -3rem !important; }
+  .mb-md-n6,
+  .my-md-n6 {
+    margin-bottom: -3rem !important; }
+  .ml-md-n6,
+  .mx-md-n6 {
     margin-left: -3rem !important; }
   .m-md-auto {
     margin: auto !important; }
@@ -8908,18 +9049,32 @@ button.bg-dark:focus {
   .mx-lg-4 {
     margin-left: 1.5rem !important; }
   .m-lg-5 {
-    margin: 3rem !important; }
+    margin: 2rem !important; }
   .mt-lg-5,
   .my-lg-5 {
-    margin-top: 3rem !important; }
+    margin-top: 2rem !important; }
   .mr-lg-5,
   .mx-lg-5 {
-    margin-right: 3rem !important; }
+    margin-right: 2rem !important; }
   .mb-lg-5,
   .my-lg-5 {
-    margin-bottom: 3rem !important; }
+    margin-bottom: 2rem !important; }
   .ml-lg-5,
   .mx-lg-5 {
+    margin-left: 2rem !important; }
+  .m-lg-6 {
+    margin: 3rem !important; }
+  .mt-lg-6,
+  .my-lg-6 {
+    margin-top: 3rem !important; }
+  .mr-lg-6,
+  .mx-lg-6 {
+    margin-right: 3rem !important; }
+  .mb-lg-6,
+  .my-lg-6 {
+    margin-bottom: 3rem !important; }
+  .ml-lg-6,
+  .mx-lg-6 {
     margin-left: 3rem !important; }
   .p-lg-0 {
     padding: 0 !important; }
@@ -8992,18 +9147,32 @@ button.bg-dark:focus {
   .px-lg-4 {
     padding-left: 1.5rem !important; }
   .p-lg-5 {
-    padding: 3rem !important; }
+    padding: 2rem !important; }
   .pt-lg-5,
   .py-lg-5 {
-    padding-top: 3rem !important; }
+    padding-top: 2rem !important; }
   .pr-lg-5,
   .px-lg-5 {
-    padding-right: 3rem !important; }
+    padding-right: 2rem !important; }
   .pb-lg-5,
   .py-lg-5 {
-    padding-bottom: 3rem !important; }
+    padding-bottom: 2rem !important; }
   .pl-lg-5,
   .px-lg-5 {
+    padding-left: 2rem !important; }
+  .p-lg-6 {
+    padding: 3rem !important; }
+  .pt-lg-6,
+  .py-lg-6 {
+    padding-top: 3rem !important; }
+  .pr-lg-6,
+  .px-lg-6 {
+    padding-right: 3rem !important; }
+  .pb-lg-6,
+  .py-lg-6 {
+    padding-bottom: 3rem !important; }
+  .pl-lg-6,
+  .px-lg-6 {
     padding-left: 3rem !important; }
   .m-lg-n1 {
     margin: -0.25rem !important; }
@@ -9062,18 +9231,32 @@ button.bg-dark:focus {
   .mx-lg-n4 {
     margin-left: -1.5rem !important; }
   .m-lg-n5 {
-    margin: -3rem !important; }
+    margin: -2rem !important; }
   .mt-lg-n5,
   .my-lg-n5 {
-    margin-top: -3rem !important; }
+    margin-top: -2rem !important; }
   .mr-lg-n5,
   .mx-lg-n5 {
-    margin-right: -3rem !important; }
+    margin-right: -2rem !important; }
   .mb-lg-n5,
   .my-lg-n5 {
-    margin-bottom: -3rem !important; }
+    margin-bottom: -2rem !important; }
   .ml-lg-n5,
   .mx-lg-n5 {
+    margin-left: -2rem !important; }
+  .m-lg-n6 {
+    margin: -3rem !important; }
+  .mt-lg-n6,
+  .my-lg-n6 {
+    margin-top: -3rem !important; }
+  .mr-lg-n6,
+  .mx-lg-n6 {
+    margin-right: -3rem !important; }
+  .mb-lg-n6,
+  .my-lg-n6 {
+    margin-bottom: -3rem !important; }
+  .ml-lg-n6,
+  .mx-lg-n6 {
     margin-left: -3rem !important; }
   .m-lg-auto {
     margin: auto !important; }
@@ -9162,18 +9345,32 @@ button.bg-dark:focus {
   .mx-xl-4 {
     margin-left: 1.5rem !important; }
   .m-xl-5 {
-    margin: 3rem !important; }
+    margin: 2rem !important; }
   .mt-xl-5,
   .my-xl-5 {
-    margin-top: 3rem !important; }
+    margin-top: 2rem !important; }
   .mr-xl-5,
   .mx-xl-5 {
-    margin-right: 3rem !important; }
+    margin-right: 2rem !important; }
   .mb-xl-5,
   .my-xl-5 {
-    margin-bottom: 3rem !important; }
+    margin-bottom: 2rem !important; }
   .ml-xl-5,
   .mx-xl-5 {
+    margin-left: 2rem !important; }
+  .m-xl-6 {
+    margin: 3rem !important; }
+  .mt-xl-6,
+  .my-xl-6 {
+    margin-top: 3rem !important; }
+  .mr-xl-6,
+  .mx-xl-6 {
+    margin-right: 3rem !important; }
+  .mb-xl-6,
+  .my-xl-6 {
+    margin-bottom: 3rem !important; }
+  .ml-xl-6,
+  .mx-xl-6 {
     margin-left: 3rem !important; }
   .p-xl-0 {
     padding: 0 !important; }
@@ -9246,18 +9443,32 @@ button.bg-dark:focus {
   .px-xl-4 {
     padding-left: 1.5rem !important; }
   .p-xl-5 {
-    padding: 3rem !important; }
+    padding: 2rem !important; }
   .pt-xl-5,
   .py-xl-5 {
-    padding-top: 3rem !important; }
+    padding-top: 2rem !important; }
   .pr-xl-5,
   .px-xl-5 {
-    padding-right: 3rem !important; }
+    padding-right: 2rem !important; }
   .pb-xl-5,
   .py-xl-5 {
-    padding-bottom: 3rem !important; }
+    padding-bottom: 2rem !important; }
   .pl-xl-5,
   .px-xl-5 {
+    padding-left: 2rem !important; }
+  .p-xl-6 {
+    padding: 3rem !important; }
+  .pt-xl-6,
+  .py-xl-6 {
+    padding-top: 3rem !important; }
+  .pr-xl-6,
+  .px-xl-6 {
+    padding-right: 3rem !important; }
+  .pb-xl-6,
+  .py-xl-6 {
+    padding-bottom: 3rem !important; }
+  .pl-xl-6,
+  .px-xl-6 {
     padding-left: 3rem !important; }
   .m-xl-n1 {
     margin: -0.25rem !important; }
@@ -9316,18 +9527,32 @@ button.bg-dark:focus {
   .mx-xl-n4 {
     margin-left: -1.5rem !important; }
   .m-xl-n5 {
-    margin: -3rem !important; }
+    margin: -2rem !important; }
   .mt-xl-n5,
   .my-xl-n5 {
-    margin-top: -3rem !important; }
+    margin-top: -2rem !important; }
   .mr-xl-n5,
   .mx-xl-n5 {
-    margin-right: -3rem !important; }
+    margin-right: -2rem !important; }
   .mb-xl-n5,
   .my-xl-n5 {
-    margin-bottom: -3rem !important; }
+    margin-bottom: -2rem !important; }
   .ml-xl-n5,
   .mx-xl-n5 {
+    margin-left: -2rem !important; }
+  .m-xl-n6 {
+    margin: -3rem !important; }
+  .mt-xl-n6,
+  .my-xl-n6 {
+    margin-top: -3rem !important; }
+  .mr-xl-n6,
+  .mx-xl-n6 {
+    margin-right: -3rem !important; }
+  .mb-xl-n6,
+  .my-xl-n6 {
+    margin-bottom: -3rem !important; }
+  .ml-xl-n6,
+  .mx-xl-n6 {
     margin-left: -3rem !important; }
   .m-xl-auto {
     margin: auto !important; }
@@ -9581,237 +9806,6 @@ a.text-dark:hover, a.text-dark:focus {
     color: inherit;
     border-color: #dee2e6; } }
 
-/* stylelint-disable function-url-scheme-blacklist */
-/* stylelint-enable function-url-scheme-blacklist */
-.tag {
-  display: inline-block;
-  padding: 0.25rem 0.4em;
-  font-size: 75%;
-  font-weight: bold;
-  line-height: 1;
-  color: #fff;
-  text-align: center;
-  white-space: nowrap;
-  vertical-align: baseline;
-  border-radius: 0.25rem; }
-  .tag:empty {
-    display: none; }
-
-.form-control-success,
-.form-control-warning,
-.form-control-danger {
-  padding-right: 2.25rem;
-  background-repeat: no-repeat;
-  background-position: center right calc(1.5em + 0.75rem + 2px)/4;
-  background-size: calc(1.5em + 0.75rem + 2px)/2 calc(1.5em + 0.75rem + 2px)/2; }
-
-.tag-default {
-  background-color: #6c757d; }
-  .tag-default[href]:hover, .tag-default[href]:focus {
-    background-color: #545b62; }
-
-.tag-primary {
-  background-color: #1177d1; }
-  .tag-primary[href]:hover, .tag-primary[href]:focus {
-    background-color: #0d5ca2; }
-
-.tag-success {
-  background-color: #398439; }
-  .tag-success[href]:hover, .tag-success[href]:focus {
-    background-color: #2a602a; }
-
-.tag-info {
-  background-color: #5bc0de; }
-  .tag-info[href]:hover, .tag-info[href]:focus {
-    background-color: #31b0d5; }
-
-.tag-warning {
-  background-color: #f0ad4e; }
-  .tag-warning[href]:hover, .tag-warning[href]:focus {
-    background-color: #ec971f; }
-
-.tag-danger {
-  background-color: #d43f3a; }
-  .tag-danger[href]:hover, .tag-danger[href]:focus {
-    background-color: #b42c27; }
-
-.custom-select {
-  width: auto; }
-
-.fade.in {
-  opacity: 1; }
-
-.m-a-0 {
-  margin: 0 !important; }
-
-.m-t-0,
-.m-y-0 {
-  margin-top: 0 !important; }
-
-.m-r-0,
-.m-x-0 {
-  margin-right: 0 !important; }
-
-.m-b-0,
-.m-y-0 {
-  margin-bottom: 0 !important; }
-
-.m-l-0,
-.m-x-0 {
-  margin-left: 0 !important; }
-
-.m-a-1 {
-  margin: 1rem !important; }
-
-.m-t-1,
-.m-y-1 {
-  margin-top: 1rem !important; }
-
-.m-r-1,
-.m-x-1 {
-  margin-right: 1rem !important; }
-
-.m-b-1,
-.m-y-1 {
-  margin-bottom: 1rem !important; }
-
-.m-l-1,
-.m-x-1 {
-  margin-left: 1rem !important; }
-
-.m-a-2 {
-  margin: 2rem !important; }
-
-.m-t-2,
-.m-y-2 {
-  margin-top: 2rem !important; }
-
-.m-r-2,
-.m-x-2 {
-  margin-right: 2rem !important; }
-
-.m-b-2,
-.m-y-2 {
-  margin-bottom: 2rem !important; }
-
-.m-l-2,
-.m-x-2 {
-  margin-left: 2rem !important; }
-
-.m-a-3 {
-  margin: 3rem !important; }
-
-.m-t-3,
-.m-y-3 {
-  margin-top: 3rem !important; }
-
-.m-r-3,
-.m-x-3 {
-  margin-right: 3rem !important; }
-
-.m-b-3,
-.m-y-3 {
-  margin-bottom: 3rem !important; }
-
-.m-l-3,
-.m-x-3 {
-  margin-left: 3rem !important; }
-
-.p-a-0 {
-  padding: 0 !important; }
-
-.p-t-0,
-.p-y-0 {
-  padding-top: 0 !important; }
-
-.p-r-0,
-.p-x-0 {
-  padding-right: 0 !important; }
-
-.p-b-0,
-.p-y-0 {
-  padding-bottom: 0 !important; }
-
-.p-l-0,
-.p-x-0 {
-  padding-left: 0 !important; }
-
-.p-a-1 {
-  padding: 1rem !important; }
-
-.p-t-1,
-.p-y-1 {
-  padding-top: 1rem !important; }
-
-.p-r-1,
-.p-x-1 {
-  padding-right: 1rem !important; }
-
-.p-b-1,
-.p-y-1 {
-  padding-bottom: 1rem !important; }
-
-.p-l-1,
-.p-x-1 {
-  padding-left: 1rem !important; }
-
-.p-a-2 {
-  padding: 2rem !important; }
-
-.p-t-2,
-.p-y-2 {
-  padding-top: 2rem !important; }
-
-.p-r-2,
-.p-x-2 {
-  padding-right: 2rem !important; }
-
-.p-b-2,
-.p-y-2 {
-  padding-bottom: 2rem !important; }
-
-.p-l-2,
-.p-x-2 {
-  padding-left: 2rem !important; }
-
-.p-a-3 {
-  padding: 3rem !important; }
-
-.p-t-3,
-.p-y-3 {
-  padding-top: 3rem !important; }
-
-.p-r-3,
-.p-x-3 {
-  padding-right: 3rem !important; }
-
-.p-b-3,
-.p-y-3 {
-  padding-bottom: 3rem !important; }
-
-.p-l-3,
-.p-x-3 {
-  padding-left: 3rem !important; }
-
-input[disabled] {
-  cursor: not-allowed; }
-
-.row-fluid {
-  display: flex;
-  flex-wrap: wrap;
-  margin-right: -15px;
-  margin-left: -15px; }
-
-/*rtl:raw:
-.dropdown-menu-right {
-    right: 0;
-    left: auto;
-}
-.dropdown-menu-left {
-    right: auto;
-    left: 0;
-}
-*/
 /**
  * Bootstrap overrides for RTL
  *
@@ -9834,6 +9828,14 @@ input[disabled] {
     text-align: right;
 }
 */
+/**
+ * Moodle variables
+ *
+ * Variables written for Moodle specific components
+ *
+ * Please do not override any Bootstrap variables here, custom Bootstrap variable should go in
+ * preset files instead.
+ */
 /* core.less */
 #region-main {
   overflow-x: auto;
@@ -11808,6 +11810,10 @@ div.editor_atto_toolbar button .icon {
   /* stylelint-disable-line declaration-no-important */ }
 
 .line-height-5 {
+  line-height: 2rem !important;
+  /* stylelint-disable-line declaration-no-important */ }
+
+.line-height-6 {
   line-height: 3rem !important;
   /* stylelint-disable-line declaration-no-important */ }
 
@@ -11865,6 +11871,19 @@ body.h5p-embed .h5pmessages {
   float: right !important;
   /* stylelint-disable-line declaration-no-important */ }
 
+.img-responsive {
+  max-width: 100%;
+  height: auto; }
+
+input[disabled] {
+  cursor: not-allowed; }
+
+.custom-select {
+  width: auto; }
+
+.fade.in {
+  opacity: 1; }
+
 .clamp-2 {
   display: -webkit-box;
   -webkit-box-orient: vertical;
@@ -16742,6 +16761,8 @@ textarea[data-auto-rows] {
 
 /** Atto fields do not have form-control because that would break the layout of the editor.
     So they need these extra styles to highlight the editor when there is a validation error. */
+/* stylelint-disable function-url-scheme-blacklist */
+/* stylelint-enable function-url-scheme-blacklist */
 .has-danger .editor_atto_content.form-control,
 .has-danger .editor_atto_content.form-control-danger {
   background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23d9534f' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E");
@@ -16749,28 +16770,6 @@ textarea[data-auto-rows] {
   background-repeat: no-repeat;
   background-position: center right 1rem;
   background-size: 1.5rem; }
-  .has-danger .editor_atto_content.form-control .form-control-feedback,
-  .has-danger .editor_atto_content.form-control .form-control-label,
-  .has-danger .editor_atto_content.form-control .form-check-label,
-  .has-danger .editor_atto_content.form-control .form-check-inline,
-  .has-danger .editor_atto_content.form-control .custom-control,
-  .has-danger .editor_atto_content.form-control-danger .form-control-feedback,
-  .has-danger .editor_atto_content.form-control-danger .form-control-label,
-  .has-danger .editor_atto_content.form-control-danger .form-check-label,
-  .has-danger .editor_atto_content.form-control-danger .form-check-inline,
-  .has-danger .editor_atto_content.form-control-danger .custom-control {
-    color: #d43f3a; }
-  .has-danger .editor_atto_content.form-control .form-control,
-  .has-danger .editor_atto_content.form-control-danger .form-control {
-    border-color: #d43f3a; }
-  .has-danger .editor_atto_content.form-control .input-group-addon,
-  .has-danger .editor_atto_content.form-control-danger .input-group-addon {
-    color: #d43f3a;
-    border-color: #d43f3a;
-    background-color: #f9e2e1; }
-  .has-danger .editor_atto_content.form-control .form-control-feedback,
-  .has-danger .editor_atto_content.form-control-danger .form-control-feedback {
-    color: #d43f3a; }
 
 [data-filetypesbrowserbody] [aria-expanded="false"] > [role="group"],
 [data-filetypesbrowserbody] [aria-expanded="false"] [data-filetypesbrowserfeature="hideifcollapsed"],
@@ -17486,9 +17485,6 @@ select {
   float: left;
   margin-left: 4px; }
 
-.ie .row-fluid .desktop-first-column {
-  margin-left: 0; }
-
 .langmenu form {
   margin: 0; }
 
@@ -19130,7 +19126,7 @@ span[data-flexitour="container"] .modal-dialog {
   margin: 0; }
 
 span[data-flexitour="container"] div[data-role="arrow"] {
-  border-width: 11px; }
+  border-width: 1rem; }
 
 span[data-flexitour="container"] div[data-role="arrow"],
 span[data-flexitour="container"] div[data-role="arrow"]:after {
@@ -19145,9 +19141,9 @@ span[data-flexitour="container"] div[data-role="arrow"]:after {
 span[data-flexitour="container"][x-placement="top"], span[data-flexitour="container"][x-placement="top-start"] {
   margin-bottom: 1rem; }
   span[data-flexitour="container"][x-placement="top"] div[data-role="arrow"], span[data-flexitour="container"][x-placement="top-start"] div[data-role="arrow"] {
-    bottom: -11px;
+    bottom: -1rem;
     left: 50%;
-    margin-left: -11px;
+    margin-left: -1rem;
     border-bottom-width: 0;
     border-top-color: rgba(0, 0, 0, 0.25); }
   span[data-flexitour="container"][x-placement="top"] div[data-role="arrow"]:after, span[data-flexitour="container"][x-placement="top-start"] div[data-role="arrow"]:after {
@@ -19160,9 +19156,9 @@ span[data-flexitour="container"][x-placement="top"], span[data-flexitour="contai
 span[data-flexitour="container"][x-placement="bottom"], span[data-flexitour="container"][x-placement="bottom-start"] {
   margin-top: 1rem; }
   span[data-flexitour="container"][x-placement="bottom"] div[data-role="arrow"], span[data-flexitour="container"][x-placement="bottom-start"] div[data-role="arrow"] {
-    top: -11px;
+    top: -1rem;
     left: 50%;
-    margin-left: -11px;
+    margin-left: -1rem;
     border-top-width: 0;
     border-bottom-color: rgba(0, 0, 0, 0.25); }
   span[data-flexitour="container"][x-placement="bottom"] div[data-role="arrow"]:after, span[data-flexitour="container"][x-placement="bottom-start"] div[data-role="arrow"]:after {
@@ -19175,9 +19171,9 @@ span[data-flexitour="container"][x-placement="bottom"], span[data-flexitour="con
 span[data-flexitour="container"][x-placement="left"], span[data-flexitour="container"][x-placement="left-start"] {
   margin-right: 1rem; }
   span[data-flexitour="container"][x-placement="left"] div[data-role="arrow"], span[data-flexitour="container"][x-placement="left-start"] div[data-role="arrow"] {
-    right: -11px;
+    right: -1rem;
     top: 50%;
-    margin-top: -11px;
+    margin-top: -1rem;
     border-right-width: 0;
     border-left-color: rgba(0, 0, 0, 0.25); }
   span[data-flexitour="container"][x-placement="left"] div[data-role="arrow"]:after, span[data-flexitour="container"][x-placement="left-start"] div[data-role="arrow"]:after {
@@ -19190,9 +19186,9 @@ span[data-flexitour="container"][x-placement="left"], span[data-flexitour="conta
 span[data-flexitour="container"][x-placement="right"], span[data-flexitour="container"][x-placement="right-start"] {
   margin-left: 1rem; }
   span[data-flexitour="container"][x-placement="right"] div[data-role="arrow"], span[data-flexitour="container"][x-placement="right-start"] div[data-role="arrow"] {
-    left: -11px;
+    left: -1rem;
     top: 50%;
-    margin-top: -11px;
+    margin-top: -1rem;
     border-left-width: 0;
     border-right-color: rgba(0, 0, 0, 0.25); }
   span[data-flexitour="container"][x-placement="right"] div[data-role="arrow"]:after, span[data-flexitour="container"][x-placement="right-start"] div[data-role="arrow"]:after {
@@ -19207,114 +19203,6 @@ span[data-flexitour="container"][x-placement="right"], span[data-flexitour="cont
   margin-left: -15px;
   width: 275px; }
 
-.well {
-  border: 1px solid #dee2e6;
-  padding: 1.25rem; }
-
-.img-responsive {
-  max-width: 100%;
-  height: auto; }
-
-.text-error {
-  color: #d43f3a; }
-
-.btn-default {
-  color: #212529;
-  background-color: #ced4da;
-  border-color: #ced4da; }
-  .btn-default:hover {
-    color: #212529;
-    background-color: #b8c1ca;
-    border-color: #b1bbc4; }
-  .btn-default:focus, .btn-default.focus {
-    color: #212529;
-    background-color: #b8c1ca;
-    border-color: #b1bbc4;
-    box-shadow: 0 0 0 0.2rem rgba(180, 186, 191, 0.5); }
-  .btn-default.disabled, .btn-default:disabled {
-    color: #212529;
-    background-color: #ced4da;
-    border-color: #ced4da; }
-  .btn-default:not(:disabled):not(.disabled):active, .btn-default:not(:disabled):not(.disabled).active,
-  .show > .btn-default.dropdown-toggle {
-    color: #212529;
-    background-color: #b1bbc4;
-    border-color: #aab4bf; }
-    .btn-default:not(:disabled):not(.disabled):active:focus, .btn-default:not(:disabled):not(.disabled).active:focus,
-    .show > .btn-default.dropdown-toggle:focus {
-      box-shadow: 0 0 0 0.2rem rgba(180, 186, 191, 0.5); }
-
-.label {
-  display: inline-block;
-  padding: 0.25em 0.4em;
-  font-size: 75%;
-  font-weight: 700;
-  line-height: 1;
-  text-align: center;
-  white-space: nowrap;
-  vertical-align: baseline;
-  border-radius: 0.25rem;
-  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
-  color: #fff;
-  background-color: #6c757d; }
-  @media (prefers-reduced-motion: reduce) {
-    .label {
-      transition: none; } }
-  a.label:hover, a.label:focus {
-    color: #fff;
-    background-color: #545b62; }
-  a.label:focus, a.label.focus {
-    outline: 0;
-    box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); }
-
-.label-success {
-  color: #fff;
-  background-color: #398439; }
-  a.label-success:hover, a.label-success:focus {
-    color: #fff;
-    background-color: #2a602a; }
-  a.label-success:focus, a.label-success.focus {
-    outline: 0;
-    box-shadow: 0 0 0 0.2rem rgba(57, 132, 57, 0.5); }
-
-.label-info {
-  color: #212529;
-  background-color: #5bc0de; }
-  a.label-info:hover, a.label-info:focus {
-    color: #212529;
-    background-color: #31b0d5; }
-  a.label-info:focus, a.label-info.focus {
-    outline: 0;
-    box-shadow: 0 0 0 0.2rem rgba(91, 192, 222, 0.5); }
-
-.label-warning {
-  color: #212529;
-  background-color: #f0ad4e; }
-  a.label-warning:hover, a.label-warning:focus {
-    color: #212529;
-    background-color: #ec971f; }
-  a.label-warning:focus, a.label-warning.focus {
-    outline: 0;
-    box-shadow: 0 0 0 0.2rem rgba(240, 173, 78, 0.5); }
-
-.label-important {
-  color: #fff;
-  background-color: #d43f3a; }
-  a.label-important:hover, a.label-important:focus {
-    color: #fff;
-    background-color: #b42c27; }
-  a.label-important:focus, a.label-important.focus {
-    outline: 0;
-    box-shadow: 0 0 0 0.2rem rgba(212, 63, 58, 0.5); }
-
-.pull-left {
-  float: left !important;
-  /* stylelint-disable-line declaration-no-important */ }
-
-.pull-right {
-  float: right !important;
-  /* stylelint-disable-line declaration-no-important */ }
-
 @media print {
   body.drawer-open-left.jsenabled,
   body.drawer-open-right.jsenabled {
index fd0f96f..0c8b879 100644 (file)
@@ -115,7 +115,7 @@ if (!empty($CFG->enabledevicedetection) && empty($device)) {
                 $screenshoturl = new moodle_url('/theme/image.php',
                     array('theme' => $themename, 'image' => 'screenshot', 'component' => 'theme'));
                 // Contents of the screenshot/preview cell.
-                $screenshotcell = html_writer::empty_tag('img', array('class' => 'img-responsive img-fluid',
+                $screenshotcell = html_writer::empty_tag('img', array('class' => 'img-fluid',
                     'src' => $screenshoturl, 'alt' => $strthemename));
                 // Show the name of the picked theme.
                 $headingthemename = $OUTPUT->heading($strthemename, 3);
@@ -209,7 +209,7 @@ if (!empty($CFG->enabledevicedetection) && empty($device)) {
         $screenshotpath = new moodle_url('/theme/image.php',
             array('theme' => $themename, 'image' => 'screenshot', 'component' => 'theme'));
         // Contents of the first screenshot/preview cell.
-        $row[] = html_writer::empty_tag('img', array('class' => 'img-responsive img-fluid',
+        $row[] = html_writer::empty_tag('img', array('class' => 'img-fluid',
             'src' => $screenshotpath, 'alt' => $strthemename));
         // Contents of the second cell.
         $infocell = $OUTPUT->heading($strthemename, 3);
index 8aa4d4d..22941d7 100644 (file)
@@ -1,6 +1,28 @@
 This files describes API changes in /theme/* themes,
 information provided here is intended especially for theme designer.
 
+=== 4.0 ===
+* The Bootstrap legacy css utilities from Bootstrap 2 and 4alpha have been removed. 
+The syntax for the new Bootstrap 4.5 utility classes is {property}{sides}-{breakpoint}-{size} for sm, md, lg, and xl.
+The size values are:
+1: 0.25rem
+2: 0.5rem
+3: 1rem
+4: 1.5rem
+5: 2rem
+6: 3rem
+
+In Bootstrap 4alpa a spacing utility class '.m-l-1' would mean margin-left 1rem. With the new spacing classes it should now be '.ml-3'
+
+These class names have changed:
+.row-fluid is now .row
+.text-error is now .text-danger
+
+These classes should no longer be used:
+.label .label-{type}, use .badge .badge-{type} instead
+.tag .tag-{type}, use .badge .badge-{type} instead
+.well, just set a border with .border and a background with .bg-light
+
 === 3.9 ===
 
 * Add class .d-print-block to #page, #page-wrapper and #page content to fix Firefox printing problems