This file describes API changes in /theme/boost information provided here is intended especially for theme designers. === 4.0 === * Following the adopted standards, breadcrumbs have been removed for pages that reside on the 1st level within a course e.g. participants, grades, settings, reports. * Any custom complex node structures added to the nav tree will now be displayed as a flattened structure within the corresponding secondary navigation. It is dependent on what the first url for the construct. Refer to secondary_test.php:test_add_external_nodes_to_secondary for examples. * New function addblockbutton in the renderer, which generates the new 'Add a block' button. Call this and output it into your templates. * In order to view additional custom nodes, leverage the 'get_overflow_menu_data' which returns url_select if there are nodes available. * In order for existing themes to leverage the changes in the Boost theme, it is recommended to follow the guidelines in the 4.0 docs https://docs.moodle.org/dev/Moodle_4.0_developer_update === 3.7 === * Templates and renderers moved to core. * Behat override steps moved to core. Form element template --------------------- A 'wrapperid' has been added to 'templates/core_form/element-template.mustache' to restore unique ids on Boost form element wrappers. This restores the same unique element ids seen on elements in BS2 themes, which were mistakenly dropped when introducing the Boost theme. === 3.5 === The Boost theme now uses Bootstrap 4 Stable (BS4S). We are trying to use as much BS4S classes in MDL Templates to reduce the amount of Moodle CSS. The biggest changes are: JavaScript ---------- * All Bootstrap javascript has been updated. Sass ---- * A number of variables are no longer available in Bootstrap 4 Stable. For now a bs4alpha compatibility file has been added, see scss/bs4alphacompat.scss which translates veriable names from the Alpha version to the stable version. * m-t-* and other spacing utilities should be replaced with mt-*. The units that were used for margins have changed too m-t-1 is now mt-3 m-t-2 is now mt-4 m-t-3 is now mt-5 Grid and Flexbox ---------------- The Boostrap grid uses CSS's flexbox grid to build layouts. New breakpoints for grids have been added: .col-* <576px .col-sm-* >= 576px .col-md-* >= 768px .col-lg-* >= 992px .col-xl-* >= 1200px All usage of '*-xs-*' have been dropped. So what used to be col-xs-6 should now be written as col-6. *-md-* has become *-lg-*, and *-lg-* has become *-xl-*. Typography ---------- Boostrap 4 uses a native font stack that selects the best font-family for each OS and device. For font sizing the browser default root font-size (typically 16px) is used. this variable can be changed using the variable '$font-size-base'. In the default Boost preset we use: "0.9375rem" which computes to 15px on most browser. Presets ------- The structure of preset files have changed. The new structure of a preset file is: // Space to set variables. $font-size-base: 0.9375rem // Import FontAwesome. @import "fontawesome"; // Import All of Bootstrap. @import "bootstrap"; // Import Core moodle CSS. @import "moodle"; // Space to use Bootstrap mixins and extends. .navbar { @include shadow(); } Bootswatches ------------ Bootstrap 4 bootswatches can be imported using the theme/boost/cli/import-bootswatch.php script. Generated bootswatches can be added in the theme boost settings page. Changed Components ------------------ Cards need this structure class='card' class='card-body' This used to be 'card-block' The header.mustache template has been replace by a navbar.mustache template for name consistancy with Bootstrap A new header.mustache template has been created served from core/core_renderer.php. This should be move to core at some point. === 3.4 === * For improved accessibility, the footer links for boost have been changed to use $bg-inverse-link-color (defaults to white) and now have an underline text-decoration. To override the link colour simply set $bg-inverse-link-color in your preset file or theme scss. * To match the new primary colour we are switching to using the UX pallette, which uses a purple colour for info. To override, set $brand-info in your preset file or theme scss.