Migrating to v5

Track and review changes to the Boosted source files, documentation, and components to help you migrate from v4 to v5.

v5.3.3


Boosted v5.3.3 has landed also including specific Boosted content as usual.

If you need more details about the changes, please refer to the v5.3.3 release.

Dark mode!

Bootstrap introduced the inner color modes mechanism in v5.3.0. The dark mode was not yet available in the Orange Design System specifications at this time, but is now available since v5.3.3!

Learn more by reading the new color modes documentation.

This change has an impact on how you should use Boosted. Please read carefully the following notes.

From a general point of view, the dark mode is optional on Orange websites. However, a new concept has been introduced and replaces our dark variants for components. It is referred to as “contextual dark mode” and is based on the data-bs-theme="dark" attribute. It is used to switch a component or a container to dark mode, independently of the global color mode. It implies that all the .{component}-dark classes have been removed from Boosted and that ${component}-*-inverted Sass variables have been deprecated.

Please note that data-bs-theme (default, light or dark) automatically sets the color and background-color CSS properties to inherit on the element it is applied to. This means that some of our components have been adapted to this new behavior by setting their default colors and background colors differently (some of them are not transparent). Please double-check that it doesn’t break your design. And more generally, please check carefully that this new version doesn’t break your design even if you didn’t use the dark variants before.

The use of colors have been revamped to be more consistent and easier to use. During the process, some colors have been modified in light mode to be darker and ensure a better contrast: primary, success and info.

All our helpers and utilities have also been adapted to the new color modes mechanism and automatically switch their colors and background colors depending on the current color mode. As a result, you should for instance now rather use .text-bg-{color} classes instead of .bg-{color} classes when possible for automatic contrast.

Retrieve our color palette in the new color palette documentation.

Retrieve our color theme in the new color theme documentation that gathers the useful CSS variables switching between light and dark mode.

Components

  • Accordion

    • Breaking The dark variant of the accordion (.accordion-dark) has been replaced by using the contextual dark mode with data-bs-theme="dark".
  • Alerts

    • Breaking The dark variant of the alerts have been replaced by using the contextual dark mode with data-bs-theme="dark".
  • Badge

    • Warning It has been fixed in several places in the documentation that badge background and text colors should be handled by using .text-bg-{color} classes and not only .bg-{color} classes. Please reflect these modifications into your websites.
  • Back to top

    • Breaking Its markup has been changed where .btn-secondary has been replaced by .btn-outline-secondary. Please reflect this modification into your websites.
  • Breadcrumb

    • Breaking The dark variant of the breadcrumb (.breadcrumb-dark) has been replaced by using the contextual dark mode with data-bs-theme="dark".
  • Buttons

    • Breaking The rendering of the secondary button has changed:
      • if you were using the secondary button as an outline button and want to keep the same rendering, please use the new .btn-outline-secondary class instead of .btn-secondary. All the secondary buttons in the documentation, components and examples have been updated to use this new class. Please reflect this modification into your websites.
      • if you were using a black button with .btn-info or .btn-dark, please now use .btn-secondary instead.
    • Breaking The dark variant of the buttons (.btn-inverse) has been replaced by using the contextual dark mode with data-bs-theme="dark".
  • Button group

    • Breaking The variants using secondary buttons have changed their markup by replacing .btn-secondary by .btn-outline-secondary. Please reflect this modification into your websites.
    • Breaking Checkbox and radio button groups have changed their markup by replacing .btn-primary by .btn-toggle. Please reflect this modification into your websites.
  • Close button

    • Breaking The dark variant of the breadcrumb (.btn-close-white) has been replaced by using the contextual dark mode with data-bs-theme="dark".
  • Dropdown

    • New Rendering has been updated based on the new design specifications for the hover and actives states of dropdown menu items.
    • Breaking Dropdown markup has changed by replacing .btn-secondary by .btn-dropdown class. Please reflect this modification into your websites.
    • Breaking The dark variant of the dropdown (.dropdown-menu-dark) has been replaced by using the contextual dark mode with data-bs-theme="dark".
    • Breaking The variants using secondary buttons have changed their markup by replacing .btn-secondary by .btn-outline-secondary. Please reflect this modification into your websites.
  • Footer

    • Breaking Footer has changed its markup:

      • .navbar-dark.bg-dark classes have been replaced by using the .navbar class and the contextual dark mode with data-bs-theme="dark" on the <footer>.
      • .accordion-dark class has been removed.
      • if an input was present in your footer, there is no need anymore to add background, color and border utilities to it.
      • if a button was present in your footer, remove its .btn-inverse class. If it was a secondary button, transform it into an outline secondary.

      All examples using a Footer have of course been updated to use this new markup. Make sure to incorporate these changes into your websites.

  • List group

    • Breaking The dark variant of the list group (.list-group-dark) has been replaced by using the contextual dark mode with data-bs-theme="dark".
    • New The list group variants using contextual classes are now branded correctly. Please check that it doesn’t break your design.
    • New List group with badges has been added to Orange Design System specifications and can now be used in your websites.
    • Warning List group font weight is now bold by default. Please check that it doesn’t break your design.
  • Local navigation

    • New Rendering has been updated based on the new design specifications for the hover state of navigation items.
    • Breaking The dark variant of the local navigation (.local-nav-dark) has been replaced by using the contextual dark mode with data-bs-theme="dark".
  • Modal

    • Breaking The variants using secondary buttons have changed their markup by replacing .btn-secondary by .btn-outline-secondary. Please reflect this modification into your websites.
  • Navbar

    • New A new automatic rendering has been added to the navbar’s dropdowns containing texts or SVG icons.
    • Warning Navbars are not supposed to be used as is in an Orange website. Anyway, all the variants are not dark by default but white.
  • Offcanvas

    • Breaking The dark variant of the offcanvas has been replaced by using the contextual dark mode with data-bs-theme="dark".
  • Orange navbar

    • New A new Orange navbar with mode selector variant is now available.

    • Breaking Orange navbars have changed their markup (including supra bars):

      • .navbar-dark.bg-dark classes have been replaced by using the contextual dark mode with data-bs-theme="dark" on the <header>.
      • if an input was present in your navbar, there is no need anymore to add background, color and border utilities to it.
      • if a notification badge was present in your navbar, the notification text doesn’t need .text-white anymore. It’ll be automatically set to white in dark mode and black in light mode.

      All examples using an Orange navbar have of course been updated to use this new markup. Make sure to incorporate these changes into your websites.

  • Pagination

    • New Rendering has been updated based on the new design specifications for the hover state of page items.
    • Breaking The dark variant of the pagination (.pagination-dark) has been replaced by using the contextual dark mode with data-bs-theme="dark".
  • Progress

    • Warning Thanks to the automatic contrast mechanism, some progress bars variants with texts have been modified to avoid using text utilities that are set automatically. However the default progress bar and the warning ones still need a .text-dark. Please reflect these modifications into your websites.
  • Stepped Process

    • Breaking The dark variant of the stepped process (.stepped-process-dark) has been replaced by using the contextual dark mode with data-bs-theme="dark".
  • Tags

    • Breaking The dark variant of the tags (.tag-dark) has been replaced by using the contextual dark mode with data-bs-theme="dark".
  • Title bar

    • Breaking The variants with background colors have been modified to apply the right data-bs-theme attribute. And the .bg-dark, .bg-black, and .bg-white classes have been removed since they don’t make sense anymore. Please reflect these modifications into your websites.
  • Toasts

    • Breaking The dark variant of the toast has been modified by using the contextual dark mode with data-bs-theme="dark". Please reflect this modification into your websites.

Contents

  • Warning The .lead class has been updated to reflect the new letter-spacing value for desktop breakpoint, and the line-height values for tablet and mobile breakpoints. Please check that it doesn’t break your design.

  • Breaking Table dark variant has been replaced by using the contextual dark mode with data-bs-theme="dark".

  • Warning Striped table background color has changed to adapt to the new color modes mechanism.

Forms

  • Checks & Radios

    • Breaking Toggle buttons have changed their markup by removing any .btn-primary or .btn-secondary, and by adding the new .btn-toggle class. Please reflect this modification into your websites.
  • Input group

    • Breaking The variants using secondary buttons have changed their markup by replacing .btn-secondary by .btn-outline-secondary. Please reflect this modification into your websites.
  • Quantity Selector

    • New Rendering has been updated to ensure a proper visible focus state.

    • Breaking The markup has been changed:

      • .input-group class has been removed
      • .btn-secondary class has been replaced by .btn-outline-secondary

      Make sure to incorporate these changes into your websites.

  • Star rating

    • Breaking The dark variant of the star rating (.star-rating-dark) has been replaced by using the contextual dark mode with data-bs-theme="dark".

Utilities

  • New Orange supporting background (.bg-supporting-orange) has been added.

Examples

All the examples have a mode selector on the bottom right corner to switch between light and dark mode to help you check the rendering. These mode selectors are not part of the examples themselves and shouldn’t be included in your websites. Please note that these mode selectors are not rendered in the examples that already contain a mode selector in their navbars.

  • Warning Cards and Cards RTL examples have been simplified to remove the dark variants that can be achieved with a contextual dark mode.

  • Warning Download page example has been slightly modified to use the new markup of Orange navbar, and footer, but also to change its usage of text and background utilities to work with the new color modes mechanism. The navbar now includes a mode selector. Please reflect these modifications if you have a similar rendering in your websites.

  • Warning Form example has been slightly modified to use the new markup of Orange navbar, title bar and footer. The navbar now includes a mode selector. Please reflect these modifications if you have a similar rendering in your websites.

  • New A navbar mode selector has been added to the examples to render a single navbar with a mode selector to switch between light and dark mode.

  • Warning Masonry example has been slightly modified to change its usage of text and background utilities to work with the new color modes mechanism. Please reflect these modifications if you have a similar rendering in your websites.

  • Warning Title bars example has been slightly modified to drop a .bg-body and use data-bs-theme="light" in combination with .bg-supporting-blue and .bg-supporting-pink. Make sure to incorporate these changes into your websites.

CSS and Sass variables

  • New A new scss/_color-palette.scss file has been added to provide Sass variables representing the color palette. It is automatically imported in scss/_variables.scss which uses these variables instead of hex values.

  • New A new button-outline-variant() mixin has been added.

  • Breaking The button-variant() mixin has removed its last argument.

  • Breaking $accessible-orange and $brand-orange Sass variables have been removed. Please refer to the new color theme documentation and the new color palette documentation for more details about the new color modes mechanism.

  • New CSS variables:
    • --bs-back-to-top-link-bg
    • --bs-border-color-subtle
    • --bs-breadcrumb-divider-filter
    • --bs-disabled-color
    • --bs-form-check-filter
    • --bs-form-check-input-disabled-color
    • --bs-form-color-disabled-filter
    • --bs-form-select-disabled-indicator
    • --bs-form-select-indicator
    • --bs-form-switch-square-bg
    • --bs-footer-color
    • --bs-gray-950
    • --bs-list-group-font-weight
    • --bs-list-group-item-icon-margin-x
    • --bs-list-group-item-icon-size
    • --bs-navbar-bg
    • --bs-navbar-toggler-icon-color
    • --bs-navbar-toggler-icon-hover-color
    • --bs-stepped-process-bg
    • --bs-sticker-color
    • --bs-tab-content-border-color
    • --bs-table-active-bg-factor
    • --bs-table-hover-bg-factor
    • --bs-table-striped-bg-factor
    • --bs-tag-bg
    • --bs-tag-color
    • --bs-tertiary-active-bg
    • --bs-title-bar-bg
    • --bs-title-bar-color
  • New Sass variables:
    • $back-to-top-bg
    • $back-to-top-title-color
    • $border-color-subtle
    • $border-color-subtle-dark
    • $breadcrumb-divider-filter
    • $breadcrumb-divider-filter-dark
    • $btn-default-active-bg
    • $btn-default-active-border
    • $btn-default-active-color
    • $btn-default-disabled-bg
    • $btn-default-disabled-border
    • $btn-default-disabled-color
    • $btn-default-hover-bg
    • $btn-default-hover-border
    • $btn-default-hover-color
    • $btn-hover-color
    • $btn-outline-default-active-bg
    • $btn-outline-default-active-border
    • $btn-outline-default-active-color
    • $btn-outline-default-disabled-bg
    • $btn-outline-default-disabled-border
    • $btn-outline-default-disabled-color
    • $btn-outline-default-hover-bg
    • $btn-outline-default-hover-border
    • $btn-outline-default-hover-color
    • $carousel-caption-bg
    • $carousel-control-icon-color
    • $danger-dark
    • $danger-icon-dark
    • $dark-dark
    • $disabled-color
    • $disabled-color-dark
    • $focus-ring-color-dark
    • $focus-visible-inner-color-dark
    • $focus-visible-outer-color-dark
    • $footer-color
    • $form-check-filter
    • $form-check-filter-dark
    • $form-check-input-disabled-color-dark
    • $form-check-input-disabled-filter
    • $form-color-border-color
    • $form-color-disabled-bg-color
    • $form-color-disabled-filter
    • $form-color-disabled-filter-dark
    • $form-color-hover-bg-color
    • $form-feedback-color
    • $form-helper-bg
    • $form-helper-color
    • $form-helper-icon
    • $form-label-required-color
    • $form-select-disabled-indicator-dark
    • $form-select-indicator-dark
    • $form-star-rating-disabled-color
    • $form-switch-bg
    • $form-switch-border-color
    • $form-switch-checked-bg
    • $form-switch-checked-border-color
    • $form-switch-checked-filter
    • $form-switch-checked-focus-inner
    • $form-switch-checked-focus-outer
    • $form-switch-checked-square-bg
    • $form-switch-filter
    • $form-switch-focus-visible-inner
    • $form-switch-focus-visible-outer
    • $form-switch-square-bg
    • $form-switch-square-bg-dark
    • $functional-blue-dark
    • $functional-green-dark
    • $functional-red-dark
    • $functional-yellow-dark
    • $info-dark
    • $list-group-divider-size
    • $list-group-font-weight
    • $list-group-icons
    • $list-group-item-icon-margin-x
    • $list-group-item-icon-size
    • $list-group-numbered-item-margin-end
    • $nav-tabs-link-hover-bg
    • $nav-tabs-link-hover-color
    • $navbar-light-bg
    • $navbar-light-icon-color
    • $navbar-light-icon-hover-color
    • $ods-black-900
    • $ods-blue-100
    • $ods-blue-200
    • $ods-blue-300
    • $ods-blue-400
    • $ods-blue-500
    • $ods-blue-600
    • $ods-fire-100
    • $ods-fire-200
    • $ods-forest-100
    • $ods-forest-200
    • $ods-gray-200
    • $ods-gray-300
    • $ods-gray-400
    • $ods-gray-500
    • $ods-gray-600
    • $ods-gray-700
    • $ods-gray-800
    • $ods-gray-900
    • $ods-green-100
    • $ods-green-200
    • $ods-green-300
    • $ods-green-400
    • $ods-green-500
    • $ods-green-600
    • $ods-orange-100
    • $ods-orange-200
    • $ods-pink-100
    • $ods-pink-200
    • $ods-pink-300
    • $ods-pink-400
    • $ods-pink-500
    • $ods-pink-600
    • $ods-purple-200
    • $ods-purple-300
    • $ods-purple-400
    • $ods-purple-500
    • $ods-purple-600
    • $ods-sun-100
    • $ods-sun-200
    • $ods-water-100
    • $ods-water-200
    • $ods-white-100
    • $ods-yellow-200
    • $ods-yellow-300
    • $ods-yellow-400
    • $ods-yellow-500
    • $ods-yellow-600
    • $light-dark
    • $primary-dark
    • $quantity-selector-btn-bg
    • $quantity-selector-btn-border
    • $quantity-selector-disabled-bg
    • $quantity-selector-disabled-color
    • $secondary-dark
    • $spinner-color
    • $stepped-process-bg
    • $sticker-background-color
    • $sticker-color
    • $sticker-font-weight
    • $success-dark
    • $success-icon-dark
    • $supporting-orange
    • $table-active-bg-factor-dark
    • $table-bg-scale
    • $table-hover-bg-factor-dark
    • $table-striped-bg-factor-dark
    • $tag-bg
    • $tag-color
    • $tertiary-active-bg
    • $tertiary-active-bg-dark
    • $title-bar-color
    • $title-bar-bg
    • $warning-dark
    • $warning-icon-filled
  • New Sass maps:
    • $svg-as-custom-props-dark
    • $theme-colors-dark
    • $theme-colors-rgb-dark
  • Breaking Deprecated CSS variables:
    • --bs-back-to-top-link-icon-margin-left
    • --bs-pagination-focus-bg
    • --bs-pagination-focus-box-shadow
    • --bs-pagination-focus-color
    • --bs-primary-text-rgb
    • --bs-table-striped-hover-bg
    • --bs-table-striped-hover-color
  • Breaking Deprecated Sass variables:
    • $accessible-orange
    • $accordion-dark-bg
    • $accordion-dark-border-color
    • $accordion-dark-button-active-color
    • $accordion-dark-button-bg
    • $accordion-dark-button-color
    • $accordion-dark-button-hover-bg
    • $accordion-dark-color
    • $background-colors
    • $brand-orange
    • $breadcrumb-dark-color
    • $breadcrumb-dark-bg
    • $breadcrumb-dark-divider-color
    • $breadcrumb-dark-active-color
    • $btn-close-white-active-border-color
    • $btn-close-white-active-color
    • $btn-close-white-bg
    • $btn-close-white-border-color
    • $btn-close-white-color
    • $btn-close-white-disabled-color
    • $btn-close-white-hover-color
    • $code-color-inverted
    • $dropdown-dark-bg
    • $dropdown-dark-box-shadow
    • $dropdown-dark-border-color
    • $dropdown-dark-divider-bg
    • $dropdown-dark-color
    • $dropdown-dark-header-color
    • $dropdown-dark-link-active-bg
    • $dropdown-dark-link-active-color
    • $dropdown-dark-link-disabled-color
    • $dropdown-dark-link-hover-bg
    • $dropdown-dark-link-hover-color
    • $dropdown-dark-link-color
    • $focus-visible-inner-color-inverted
    • $focus-visible-outer-color-inverted
    • $form-star-rating-dark-checked-color
    • $form-star-rating-dark-hover-color
    • $form-star-rating-dark-unchecked-color
    • $kbd-bg-inverted
    • $kbd-color-inverted
    • $link-color-inverted
    • $link-hover-color-inverted
    • $list-group-dark-active-bg
    • $list-group-dark-active-border-color
    • $list-group-dark-active-color
    • $list-group-dark-action-active-bg
    • $list-group-dark-action-active-color
    • $list-group-dark-action-color
    • $list-group-dark-action-hover-color
    • $list-group-dark-bg
    • $list-group-dark-border-color
    • $list-group-dark-color
    • $list-group-dark-disabled-bg
    • $list-group-dark-disabled-color
    • $list-group-dark-hover-bg
    • $local-nav-dark-active-bg
    • $local-nav-dark-active-color
    • $local-nav-dark-bg
    • $local-nav-dark-border-color
    • $local-nav-dark-color
    • $local-nav-dark-hover-bg
    • $local-nav-dark-hover-color
    • $mark-bg-inverted
    • $mark-color-inverted
    • $navbar-dark-active-color
    • $navbar-dark-border-color
    • $navbar-dark-brand-color
    • $navbar-dark-brand-hover-color
    • $navbar-dark-color
    • $navbar-dark-disabled-color
    • $navbar-dark-hover-color
    • $navbar-dark-toggler-border-color
    • $orange-filter
    • $pagination-dark-active-bg
    • $pagination-dark-active-border-color
    • $pagination-dark-active-color
    • $pagination-dark-active-item-bg
    • $pagination-dark-active-item-border-color
    • $pagination-dark-active-item-color
    • $pagination-dark-bg
    • $pagination-dark-border-color
    • $pagination-dark-color
    • $pagination-dark-disabled-bg
    • $pagination-dark-disabled-border-color
    • $pagination-dark-disabled-color
    • $pagination-dark-focus-bg
    • $pagination-dark-focus-color
    • $pagination-dark-hover-bg
    • $pagination-dark-hover-border-color
    • $pagination-dark-hover-color
    • $pagination-focus-bg
    • $pagination-focus-box-shadow
    • $pagination-focus-color
    • $pagination-focus-outline
    • $pre-color-inverted
    • $step-item-dark-active-bg
    • $step-item-dark-bg
    • $step-item-dark-drop-shadow
    • $step-item-dark-next-bg
    • $step-link-dark-active-color
    • $step-link-dark-color
    • $step-link-dark-next-color
    • $table-caption-color-inverted
    • $table-striped-hover-bg
    • $table-striped-hover-bg-factor
    • $table-striped-hover-color
    • $tag-active-color-dark
    • $tag-active-decoration-color-dark
    • $tag-border-color-dark
    • $tag-disabled-color-dark
    • $title-bar-border-color-dark

Docs

  • Removed Customize > Color page has been removed.

  • New Customize > Color palette page has been added.

  • New Customize > Color theme page has been added.

  • Warning Extend > Icons page has been refactored to reflect our recommendation to use Solaris icons in Orange projects.

  • Warning If you were using our #check2 icon, please note that its content has been changed.

v5.3.2


Boosted v5.3.2 has landed also including specific Boosted content as usual.

If you need more details about the changes, please refer to the v5.3.2 release.

Color modes!

  • New colors available. We introduced the following variables based on brand introduction.
    • $gray-950: #141414, a darker gray. Use as body background (dark): .bg-body.

Components

  • Accordion

    • Warning Accordion rendering has been improved for better accessibility. Although it is transparent for basic usage, you might want to check the rendering of your custom components if they are composed of an accordion.
  • Local navigation

    • New Added Local Navigation as a new component.
  • Orange navbar

    • Warning The minimizing behavior with .header-minimized is applied to the <header> instead of one of its children directly.

Forms

  • New In order to improve accessibility for people suffering from any form of color blindness, we added a visual cue to form elements on error when focused so information does not rely exclusively on color anymore. Although is has no direct impact, you might want to apply this same modification within your custom form controls if you have any.

  • New Labels related to mandatory form fields have been improved for better accessibility. A <span class="visually-hidden"> (required)</span> element has been added to ensure correct restitution by assistive technologies like screen readers. Please reflect these modifications into your websites.

  • New Star rating now has a readonly state.

  • Warning Star rating has been slightly changed for accessibility purpose; a visually hidden span matching the title attribute was added and color contrast of inactive stars has been updated. Please reflect this modification into your websites.

    -    <label for="excellent" title="Excellent"></label>
    +    <label for="excellent" title="Excellent"><span class="visually-hidden">Excellent</span></label>
    
  • Deprecated The form-star-rating() mixin is now deprecated. We now use a mask-image CSS property to display the stars in this form element.

CSS and Sass variables

  • New CSS variables:
    • --bs-accordion-btn-hover-bg
    • --bs-local-nav-active-bg
    • --bs-local-nav-active-color
    • --bs-local-nav-active-marker-width
    • --bs-local-nav-bg
    • --bs-local-nav-border-color
    • --bs-local-nav-border-width
    • --bs-local-nav-color
    • --bs-local-nav-hover-bg
    • --bs-local-nav-hover-color
    • --bs-local-nav-padding-y
  • New Sass variables:
    • $accordion-button-hover-bg
    • $accordion-dark-button-hover-bg
    • $footer-accordion-active-color
    • $footer-accordion-btn-hover-bg
    • $form-star-rating-checked-color
    • $form-star-rating-checked-icon
    • $form-star-rating-dark-checked-color
    • $form-star-rating-dark-hover-color
    • $form-star-rating-dark-unchecked-color
    • $form-star-rating-hover-color
    • $form-star-rating-sm-checked-icon
    • $form-star-rating-sm-unchecked-icon
    • $form-star-rating-unchecked-color
    • $form-star-rating-unchecked-icon
    • $local-nav-active-bg
    • $local-nav-active-color
    • $local-nav-active-marker-width
    • $local-nav-bg
    • $local-nav-border-color
    • $local-nav-border-width
    • $local-nav-color
    • $local-nav-dark-bg
    • $local-nav-dark-color
    • $local-nav-dark-hover-bg
    • $local-nav-dark-hover-color
    • $local-nav-dark-active-bg
    • $local-nav-dark-active-color
    • $local-nav-dark-border-color
    • $local-nav-hover-bg
    • $local-nav-hover-color
    • $local-nav-padding-y
    • $mark-bg-dark
    • $mark-color-dark

v5.3.1


Boosted v5.3.1 has landed also including specific Boosted content as usual.

If you need more details about the changes, please refer to the v5.3.1 release.

Components

  • Nav and tabs

    • New Added support for JavaScript Tabs’ Home and End keys.
  • Spinner

    <button class="btn btn-primary" type="button">
    -  <span class="spinner-border me-2" role="status" aria-hidden="true"></span>
    -  Loading...
    +  <span class="spinner-border me-2" aria-hidden="true"></span>
    +  <span role="status">Loading...</span>
    </button>
    

Forms

  • Warning Form text examples have been modified to add some precisions about accessibility. Please apply this modification in your websites if needed.

CSS and Sass variables

  • New Sass variables:
    • $vr-border-width

Docs

  • Added missing aria-disabled="true" for links having only a .disabled class in cards, dropdowns, list groups, navbars, nav and tabs, and placeholders. Please apply this modification in your websites.

v5.3.0


Boosted v5.3.0 has landed also including specific Boosted content as usual.

If you need more details about the changes, please refer to the v5.3.0 release.

Color modes!

Learn more by reading the new color modes documentation.

Color mode mechanism coming from Bootstrap is available from Boosted v5.3.0. However, the dark mode was not yet available in the Orange Design System specifications at this time. Please use at least Boosted v5.3.3 to have the dark mode available.
  • Global support for light (default) and dark color modes. Set color mode globally on the :root element, on groups of elements and components with a wrapper class, or directly on components, with data-bs-theme="light|dark". Also included is a new color-mode() mixin that can output a ruleset with the data-bs-theme selector or a media query, depending on your preference.

  • New extended color system. We’ve added new theme colors (but not in $theme-colors) for a more nuanced, system-wide color palette with new secondary, tertiary, and emphasis colors for color and background-color. These new colors are available as Sass variables, CSS variables, and utilities.

  • We’ve also expanded our theme color Sass variables, CSS variables, and utilities to include text emphasis, subtle background colors, and subtle border colors. These are available as Sass variables, CSS variables, and utilities.

  • Adds new _variables-dark.scss stylesheet to house dark-mode specific overrides. This stylesheet should be imported immediately after the existing _variables.scss file in your import stack.

    diff --git a/scss/boosted.scss b/scss/boosted.scss
    index 8f8296def..449d70487 100644
    --- a/scss/boosted.scss
    +++ b/scss/boosted.scss
    @@ -6,6 +6,7 @@
     // Configuration
     @import "functions";
     @import "variables";
    +@import "variables-dark";
     @import "maps";
     @import "mixins";
     @import "utilities";
    

Components

  • Accordion

    • Warning For accessibility reasons, having a aria-labelledby on the collapse element in accordions is not necessary. Please reflect these modifications into your websites.

      More info
      - <h2 class="accordion-header" id="heading">...</h2>
      - <div id="collapse" class="accordion-collapse collapse" data-bs-parent="#accordion" aria-labelledby="heading">
      + <h2 class="accordion-header">...</h2>
      + <div id="collapse" class="accordion-collapse collapse" data-bs-parent="#accordion">
      
  • Alert

    • Alert variants are now styled via CSS variables.
    • Deprecated The alert-variant() mixin is now deprecated. We now use a Sass loop directly to modify the component’s default CSS variables for each variant.
    • New A tooltip was added on close buttons of alerts. Please add this tooltip in your websites, by adding the attributes data-bs-toggle, data-bs-placement and data-bs-title.
  • Buttons

    • New Outlined button .btn-outline-secondary is now provided. It is basically .btn-secondary with default transparent background.
    • New TikTok social button.
  • Cards

    • Cards now have a color set on them to improve rendering across color modes.
  • Carousel

    • The examples in our docs are now explicitly initialized and mostly don’t use anymore data-bs-ride. Depending on how carousels are used in your project, it might need some updates.
    • Breaking The pause/play button is now included within the carousel for a better rendering but still respecting accessibility guidelines; it is now placed on the left-hand side of the indicators. The HTML markup has changed, please use this new version on your websites.
  • Close button

    • New A tooltip was added on close buttons. Please add this tooltip in your websites, by adding the attributes data-bs-toggle, data-bs-placement and data-bs-title.
    • New Added an eco-design variant.
  • Footer

    • Warning For accessibility reasons, having a aria-labelledby on the collapse element in the accordions used in footer is not necessary and can be removed. Be careful to not remove the corresponding id if used for other purposes. Please reflect these modifications into your websites.
    • New An active link selector has been added for accessibility purpose. It might be a useful modification to propagate into your websites if you have this same kind of footer navigation.
    • Warning Coverage checker icon has been changed from ic_Signal to ic_Mobile_Network_Coverage. Please download the right Solaris icon and update your websites.
  • List group

    • List group item variants are now styled via CSS variables.

    • Deprecated The list-group-item-variant() mixin is now deprecated. We now use a Sass loop directly to modify the component’s default CSS variables for each variant.

  • Modal

    • New A tooltip was added on close buttons of modals. Please add this tooltip in your websites, by adding the attributes data-bs-toggle, data-bs-placement and data-bs-title.
  • Navbar

    • New A tooltip was added on close buttons of offcanvas navbars. Please add this tooltip in your websites, by adding the attributes data-bs-toggle, data-bs-placement and data-bs-title.
  • Navs and tabs

    • Breaking Based on Bootstrap, we’ve replaced “Tabs light” variant by “Underline” variant. It means that .nav-tabs-light is deprecated and doesn’t exist anymore and so that the following modification must be done in your websites:

      - <ul class="nav nav-tabs nav-tabs-light">
      + <ul class="nav nav-underline">
      

      It also means that the “Nested tabs” variant has been slightly modified to use this new class rather than .nav-tabs combined to .nav-tabs-light.

  • Offcanvas

    • New A tooltip was added on close buttons of offcanvases. Please add this tooltip in your websites, by adding the attributes data-bs-toggle, data-bs-placement and data-bs-title.
  • Progress bars

    • The markup for progress bars has been updated in v5.3.0. Due to the placement of role and various aria- attributes on the inner .progress-bar element, some screen readers were not announcing zero value progress bars. Now, role="progressbar" and the relevant aria-* attributes are on the outer .progress element, leaving the .progress-bar purely for the visual presentation of the bar and optional label.

      While we recommend adopting the new markup for improved compatibility with all screen readers, note that the legacy progress bar structure will continue to work as before.

      <!-- Previous markup -->
      <div class="progress">
        <div class="progress-bar" role="progressbar" aria-label="Basic example" style="width: 25%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
      </div>
      
      <!-- New markup -->
      <div class="progress" role="progressbar" aria-label="Basic example" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100">
        <div class="progress-bar" style="width: 25%"></div>
      </div>
      

      We’ve also introduced a new .progress-stacked class to more logically wrap multiple progress bars into a single stacked progress bar.

      <!-- Previous markup -->
      <div class="progress">
        <div class="progress-bar" role="progressbar" aria-label="Segment one" style="width: 15%" aria-valuenow="15" aria-valuemin="0" aria-valuemax="100"></div>
        <div class="progress-bar bg-success" role="progressbar" aria-label="Segment two" style="width: 30%" aria-valuenow="30" aria-valuemin="0" aria-valuemax="100"></div>
        <div class="progress-bar bg-info" role="progressbar" aria-label="Segment three" style="width: 20%" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100"></div>
      </div>
      
      <!-- New markup -->
      <div class="progress-stacked">
        <div class="progress" role="progressbar" aria-label="Segment one" aria-valuenow="15" aria-valuemin="0" aria-valuemax="100" style="width: 15%">
          <div class="progress-bar"></div>
        </div>
        <div class="progress" role="progressbar" aria-label="Segment two" aria-valuenow="30" aria-valuemin="0" aria-valuemax="100" style="width: 30%">
          <div class="progress-bar bg-success"></div>
        </div>
        <div class="progress" role="progressbar" aria-label="Segment three" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" style="width: 20%">
          <div class="progress-bar bg-info"></div>
        </div>
      </div>
      
    • Breaking Since we restored all Bootstrap text color utilities, you now have to use .text-white on red progress bar, to have white font and ensure contrast.

  • Popovers

    • Warning The paddings have been increased so from now popovers and tooltips will no longer have the same rendering. It can have an impact on the existing design, please check this modification in your websites.
  • Spinners

    • Breaking Since we restored all Bootstrap text color utilities, you now have to use .text-white to have a white spinner on a dark background.
  • Stickers

    • Breaking Due to the changes in headings font size values, we updated our stickers to use specific non-responsive typography classes which are not introduced in the framework. Please read the updated documentation and check out our stickers examples to adapt your websites.
  • Toasts

    • New A tooltip was added on close buttons of toasts. Please add this tooltip in your websites, by adding the attributes data-bs-toggle, data-bs-placement and data-bs-title.

Contents

  • Typography
    • We no longer set a color for $headings-color-dark or --bs-heading-color for dark mode. To avoid several problems of headings within components appearing the wrong color, we’ve set the Sass variable to null and added a null check like we use on the default light mode.
    • Breaking Some headings font size values have been changed to be compliant with the design guidelines. Please check it has no impact on your websites.
      • <h3> values are now 24px for tablet breakpoint and 18px for mobile breakpoint.
      • <h5> value is now 18px for tablet breakpoint.
      • <h6> value is now 18px for desktop and tablet breakpoints.

Forms

  • .form-control is now styled with CSS variables to support color modes. This includes the addition of two new root CSS variables for the default and disabled form control backgrounds.

  • .form-check and .form-switch components are now built with CSS variables for setting the background-image. The usage here differs from other components in that the various focus, active, etc states for each component aren’t set on the base class. Instead, the states override one variable (e.g., --bs-form-switch-bg).

  • Warning Form text examples have been modified to add some precisions about accessibility. Please apply this modification in your websites if needed.

  • Form validation border-color and text color states now respond to dark mode, thanks to new Sass and CSS variables.

  • New Our range documentation now provides an example which displays the current selected value for better usability, but with some extra JavaScript code.

Helpers and utilities

  • New .border-{color}-subtle.

  • New .text-black, .text-body-secondary, and .text-body-tertiary.

  • New Added new .link-body-emphasis helper alongside our colored links. This creates a colored link using our color mode responsive emphasis color.

  • New .text-{color}-emphasis.

  • New .bg-body-secondary and .bg-body-tertiary.

  • New .bg-{color}-subtle.

  • New .fw-medium is added to the font-weight utilities.

  • New border dividers utilities:

    • .rounded-{top|end|bottom|start}-{0|5}
    • .rounded-{top|end|bottom|start}-circle
    • .rounded-{top|end|bottom|start}-pill.
    • Warning We had some HTML markups in our docs that contained some .rounded-* classes (coming from Bootstrap) that weren’t doing anything. But now, they would add probably unwanted rounded corners. So please double-check that it won’t add any regressions in your websites.
  • New overflow utilities: .overflow-{x|y}-{auto|hidden|visible|scroll}.

  • New object fit utilities: .object-fit-{value} and .object-fit-{breakpoint}-{value}. The object-fit property is used to specify how an <img> or <video> should be resized to fit its container, giving us a responsive alternative to using background-image for a resizable fill/fit image.

  • New Added new .z-* utilities for z-index.

  • New gap utilities: .row-gap-{index} and .column-gap-{index} to set horizontal or vertical space between children items in the specified container.

  • Deprecated .text-muted will be replaced by .text-body-secondary in v6.

    With the addition of the expanded theme colors and variables, the .text-muted variables and utility have been deprecated with v5.3.0. Its default value has also been reassigned to the new --bs-secondary-color CSS variable to better support color modes. It will be removed in v6.0.0.

  • Box shadow utilities (and Sass variables) have been updated for dark mode. They now use --bs-body-color-rgb to generate the rgba() color values, allowing them to easily adapt to color modes based on the specified foreground color.

  • New Added new focus ring helper for removing the default outline and setting a custom box-shadow focus ring associated to .focus-ring and .focus-ring-{color} classes.

  • New Added new link utilities for link color opacity, underline offset, underline color, and underline opacity associated to .link-opacity-*, .link-opacity-*-hover, .link-offset-*, .link-underline-* and .link-underline-opacity-*. Explore the new links utilities.

  • New Added new .icon-link helper associated to .icon-link and .link-hover to quickly place and align icons alongside a textual link. Icon links support our new link utilities, too.

  • Warning For advanced Sass users, .link-chevron is no more defined within scss/_type.scss but in scss/helpers/_chevron-link.scss. Depending on your needs, it may be imported either from scss/helpers/_chevron-links.scss directly or from scss/helpers/_icon-link.scss for the complete icon link bundle.

  • New Added new .border-black utility to match our .text-black and .bg-black utilities.

  • CSS variable based border-width utilities have been reverted to set their property directly (as was done prior to v5.2.0). This avoids inheritance issues across nested elements, including tables.

  • Deprecated Deprecated the .text-muted utility and $text-muted Sass variable. It’s been replaced by .text-body-secondary and $body-secondary-color.

  • New Added new .d-inline-grid display utility.

  • Warning We slightly changed the values for .lh-sm, .lh-base and .lh-lg to provide some more usable values. Please check that it doesn’t break your design. Otherwise, it could still be reverted by setting the value directly in _utilities.scss.

  • Breaking We restored all Bootstrap text color utilities and removed automatic corresponding backgrounds. Please note that you must now check for sufficient contrast yourself when using text color utilities. Guidance on this has been added in Orange’s color utilities.

Examples

  • Cards/Cards RTL

    • Warning Semantics have been changed for the row containing icons and the actions footer containing secondary buttons in order to be more accessible. Please reflect these modifications into your websites.
  • Form page

    • Warning JavaScript has been updated to force the data-focus-visible-added attribute on the focused element on first error.
  • New A download app page is now available.

CSS and Sass variables

  • Adds additional variables for alerts, .btn-close, and .offcanvas.

  • The --bs-heading-color variable is back with an update and dark mode support. First, we now check for a null value on the associated Sass variable, $headings-color, before trying to output the CSS variable, so by default it’s not present in our compiled CSS. Second, we use the CSS variable with a fallback value, inherit, allowing the original behavior to persist, but also allowing for overrides.

  • Converts links to use CSS variables for styling color, but not text-decoration. Colors are now set with --bs-link-color-rgb and --bs-link-opacity as rgba() color, allowing you to customize the translucency with ease. The a:hover pseudo-class now overrides --bs-link-color-rgb instead of explicitly setting the color property.

  • --bs-border-width is now being used in more components for greater control over default global styling.

  • Adds new root CSS variables for our box-shadows, including --bs-box-shadow, --bs-box-shadow-sm, --bs-box-shadow-lg, and --bs-box-shadow-inset.

  • Restores CSS variables for breakpoints, though we don’t use them in our media queries as they’re not supported. However, these can be useful in JS-specific contexts.

  • Per the color modes update, we’ve added new utilities for new Sass CSS variables secondary and tertiary text and background colors, plus {color}-bg-subtle, {color}-border-subtle, and {color}-text-emphasis for our theme colors. These new colors are available through Sass and CSS variables (but not our color maps) with the express goal of making it easier to customize across multiple colors modes like light and dark.

  • @mixin caret() has a new interface including a new optional parameters.

  • Breaking Deprecated $boosted-prefix in favor of $prefix. Please check and replace all occurrences of $boosted-prefix or --o- and replace them respectively by $prefix or --bs- in your code.
    - $boosted-prefix // or `--o-`
    + $prefix // or `--bs-`
    
  • Breaking Because of the dark mode we've renamed our dark variant Sass variables; $*-dark in $*-inverted
    • $code-color-dark$code-color-inverted
    • $focus-visible-inner-color-dark$focus-visible-inner-color-inverted
    • $focus-visible-outer-color-dark$focus-visible-outer-color-inverted
    • $kbd-bg-dark$kbd-bg-inverted
    • $kbd-color-dark$kbd-color-inverted
    • $link-color-dark$link-color-inverted
    • $link-hover-color-dark -> $link-hover-color-inverted
    • $mark-bg-dark$mark-bg-inverted
    • $mark-color-dark$mark-color-inverted
    • $pre-color-dark$pre-color-inverted
    • $table-caption-color-dark$table-caption-color-inverted
  • Breaking Deprecated CSS variables:
    • --bs-border-radius-2xl
    • --bs-offcanvas-transition-duration
    • --o-caption-color
    • --o-carousel-interval
    • --o-check-icon
    • --o-chevron-icon
    • --o-close-icon
    • --o-control-bg
    • --o-error-icon
    • --o-icon-spacing
    • --o-kbd-bg
    • --o-kbd-color
    • --o-network-color
    • --o-network-logo
    • --o-pre-color
    • --o-success-icon
    • --o-switch-gradient
  • Breaking Deprecated Sass variables:
    • $boosted-prefix
    • $border-radius-2xl
    • $code-color-dark
    • $focus-visible-inner-color-dark
    • $focus-visible-outer-color-dark
    • $kbd-bg-dark
    • $kbd-color-dark
    • $link-color-dark
    • $link-hover-color-dark
    • $mark-bg-dark
    • $mark-color-dark
    • $pre-color-dark
    • $table-caption-color-dark
  • New CSS variables:
    • --bs-body-bg-rgb
    • --bs-border-radius-xxl
    • --bs-box-shadow-inset
    • --bs-box-shadow-lg
    • --bs-box-shadow-sm
    • --bs-box-shadow
    • --bs-breakpoint-lg
    • --bs-breakpoint-md
    • --bs-breakpoint-sm
    • --bs-breakpoint-xl
    • --bs-breakpoint-xs
    • --bs-breakpoint-xxl
    • --bs-caption-color
    • --bs-card-subtitle-color
    • --bs-card-title-color
    • --bs-carousel-interval
    • --bs-check-icon
    • --bs-chevron-icon
    • --bs-close-icon
    • --bs-control-bg
    • --bs-danger-bg-subtle
    • --bs-danger-border-subtle
    • --bs-danger-text-emphasis
    • --bs-dark-bg-subtle
    • --bs-dark-border-subtle
    • --bs-dark-text-emphasis
    • --bs-emphasis-color-rgb
    • --bs-emphasis-color
    • --bs-emphasis-color
    • --bs-error-icon
    • --bs-focus-ring-box-shadow
    • --bs-focus-ring-color
    • --bs-focus-ring-opacity
    • --bs-focus-ring-width
    • --bs-form-check-bg
    • --bs-form-control-bg
    • --bs-form-control-disabled-bg
    • --bs-form-invalid-border-color
    • --bs-form-invalid-color
    • --bs-form-select-bg-img
    • --bs-form-switch-bg
    • --bs-form-valid-border-color
    • --bs-form-valid-color
    • --bs-heading-color
    • --bs-icon-spacing
    • --bs-info-bg-subtle
    • --bs-info-border-subtle
    • --bs-info-text-emphasis
    • --bs-kbd-bg
    • --bs-kbd-color
    • --bs-light-bg-subtle
    • --bs-light-border-subtle
    • --bs-light-text-emphasis
    • --bs-link-color-rgb
    • --bs-link-decoration
    • --bs-link-hover-color-rgb
    • --bs-link-hover-decoration
    • --bs-modal-footer-margin-top
    • --bs-nav-underline-border-color
    • --bs-nav-underline-border-radius
    • --bs-nav-underline-border-width
    • --bs-nav-underline-gap
    • --bs-nav-underline-link-active-bg
    • --bs-nav-underline-link-active-border-color
    • --bs-nav-underline-link-active-color
    • --bs-nav-underline-link-border-width
    • --bs-nav-underline-link-hover-border-color
    • --bs-nav-underline-link-hover-bg
    • --bs-nav-underline-link-hover-color
    • --bs-nav-underline-link-padding-x
    • --bs-network-color
    • --bs-network-logo
    • --bs-offcanvas-transition
    • --bs-popover-body-padding-bottom
    • --bs-popover-body-padding-top
    • --bs-popover-header-line-height
    • --bs-popover-header-padding-bottom
    • --bs-popover-header-padding-top
    • --bs-popover-line-height
    • --bs-pre-color
    • --bs-primary-bg-subtle
    • --bs-primary-border-subtle
    • --bs-primary-text-emphasis
    • --bs-secondary-bg-rgb
    • --bs-secondary-bg-subtle
    • --bs-secondary-bg
    • --bs-secondary-border-subtle
    • --bs-secondary-color-rgb
    • --bs-secondary-color
    • --bs-secondary-text-emphasis
    • --bs-success-bg-subtle
    • --bs-success-border-subtle
    • --bs-success-icon
    • --bs-success-text-emphasis
    • --bs-switch-gradient
    • --bs-table-bg-state
    • --bs-table-bg-type
    • --bs-table-color-state
    • --bs-table-color-type
    • --bs-tertiary-bg-rgb
    • --bs-tertiary-bg
    • --bs-tertiary-color-rgb
    • --bs-tertiary-color
    • --bs-tooltip-arrow-border
    • --bs-tooltip-border-color
    • --bs-tooltip-border-width
    • --bs-tooltip-line-height
    • --bs-warning-bg-subtle
    • --bs-warning-border-subtle
    • --bs-warning-text-emphasis
  • New Sass variables:
    • $body-bg-dark
    • $body-color-dark
    • $body-emphasis-color-dark
    • $body-emphasis-color
    • $body-secondary-bg-dark
    • $body-secondary-bg
    • $body-secondary-color-dark
    • $body-secondary-color
    • $body-tertiary-bg-dark
    • $body-tertiary-bg
    • $body-tertiary-color-dark
    • $body-tertiary-color
    • $border-color-dark
    • $border-color-translucent-dark
    • $border-radius-xxl
    • $btn-color
    • $card-subtitle-color
    • $card-title-color
    • $carousel-control-pause-button-size
    • $carousel-control-pause-indicators-spacing
    • $carousel-indicators-margin-bottom
    • $code-color-dark
    • $code-color-inverted
    • $color-mode-type
    • $danger-bg-subtle-dark
    • $danger-bg-subtle
    • $danger-border-subtle-dark
    • $danger-border-subtle
    • $danger-text-emphasis-dark
    • $danger-text-emphasis
    • $dark-bg-subtle-dark
    • $dark-bg-subtle
    • $dark-border-subtle-dark
    • $dark-border-subtle
    • $dark-text-emphasis-dark
    • $dark-text-emphasis
    • $enable-dark-mode
    • $focus-ring-box-shadow
    • $focus-ring-color
    • $focus-ring-opacity
    • $focus-ring-width
    • $focus-visible-inner-color-inverted
    • $focus-visible-outer-color-inverted
    • $font-weight-medium
    • $form-color-disabled-background-swatch
    • $form-color-disabled-border-color
    • $form-invalid-border-color
    • $form-invalid-border-color-dark
    • $form-invalid-color
    • $form-invalid-color-dark
    • $form-range-thumb-hover-bg
    • $form-text-line-height
    • $form-valid-border-color
    • $form-valid-border-color-dark
    • $form-valid-color
    • $form-valid-color-dark
    • $headings-color-dark
    • $icon-link-gap
    • $icon-link-underline-offset
    • $icon-link-icon-size
    • $icon-link-icon-transition
    • $icon-link-icon-transform
    • $info-bg-subtle-dark
    • $info-bg-subtle
    • $info-border-subtle-dark
    • $info-border-subtle
    • $info-text-emphasis-dark
    • $info-text-emphasis
    • $kbd-bg-inverted
    • $kbd-color-inverted
    • $light-bg-subtle-dark
    • $light-bg-subtle
    • $light-border-subtle-dark
    • $light-border-subtle
    • $light-text-emphasis-dark
    • $light-text-emphasis
    • $link-color-dark
    • $link-color-inverted
    • $link-hover-color-dark
    • $link-hover-color-inverted
    • $list-group-hover-bg
    • $mark-bg-inverted
    • $mark-color-inverted
    • $nav-underline-border-color
    • $nav-underline-border-radius
    • $nav-underline-border-width
    • $nav-underline-gap
    • $nav-underline-gap-lg
    • $nav-underline-link-active-bg
    • $nav-underline-link-active-border-color
    • $nav-underline-link-active-color
    • $nav-underline-link-border-width
    • $nav-underline-link-hover-color
    • $nav-underline-link-padding-x
    • $modal-footer-margin-top
    • $modal-footer-margin-top-sm
    • $modal-scrollable-footer-margin-top
    • $popover-body-padding-bottom
    • $popover-body-padding-top
    • $popover-header-line-height
    • $popover-header-padding-bottom
    • $popover-header-padding-top
    • $popover-line-height
    • $popover-padding-y
    • $pre-color-inverted
    • $primary-bg-subtle-dark
    • $primary-bg-subtle
    • $primary-border-subtle-dark
    • $primary-border-subtle
    • $primary-text-emphasis-dark
    • $primary-text-emphasis
    • $secondary-bg-subtle-dark
    • $secondary-bg-subtle
    • $secondary-border-subtle-dark
    • $secondary-border-subtle
    • $secondary-text-emphasis-dark
    • $secondary-text-emphasis
    • $success-bg-subtle-dark
    • $success-bg-subtle
    • $success-border-subtle-dark
    • $success-border-subtle
    • $success-text-emphasis-dark
    • $success-text-emphasis
    • $table-caption-color-inverted
    • $table-cell-icon-margin-bottom
    • $table-cell-icon-margin-top
    • $tooltip-border-color
    • $tooltip-border-width
    • $tooltip-line-height
    • $utilities-links-underline
    • $warning-bg-subtle-dark
    • $warning-bg-subtle
    • $warning-border-subtle-dark
    • $warning-border-subtle
    • $warning-text-emphasis-dark
    • $warning-text-emphasis
  • New Sass maps:
    • $theme-colors-bg-subtle
    • $theme-colors-border-subtle
    • $theme-colors-text

Docs

  • Improved included JavaScript for live Toast demo.

  • Added twbs/examples repo contents to the top of the Examples page.

Tooling

  • Bootstrap replaced instances of bootstrap-npm-starter project with the newer and more complete twbs/examples repo.

v5.2.3


Boosted v5.2.3 has landed with a handful of urgent bug fixes from Bootstrap and with specific Boosted content.

If you need more details about the changes, please refer to the v5.2.3 release.

Accessibility

  • Focus visible

    • Warning We completely refactored our focus visible management.

    A focus-visible() mixin is provided to ensure a proper visible focus state. This visible focus state is defined by an outer outline and an inner box shadow. On light background, the outer outline is black and the inner box shadow is white. The latter will be invisible most of the time but is here to ensure a security on light background but that aren’t white. On dark background, these colors are inverted.

    We also removed the :focus style of our components that was mirroring the :hover state, as well as the transition animation.

    Even if the generic case will be transparent for your project, please check this new behavior in your websites.

Components

  • Card

    • Warning We now apply font styles on our .card-title and .card-subtitle, so you can use any <h*> following your semantic structure inside a card. Please check and reflect if necessary this modification into your websites.

      More info
      - <h4 class="card-title">Title</h4>
      + <h3 class="card-title">Title</h3>
      
    • Warning We now apply .fw-bold on some .card-text when there is an image in the card to follow the design guidelines. Please check and reflect if necessary this modification into your websites.

      More info
      - <p class="card-text">Description</p>
      + <p class="card-text fw-bold">Description</p>
      
  • Dropdowns

    • Warning Dropdown menus y offset has slightly changed from 2px to 0. Please reflect this modification into your websites by changing each data-bs-offset or by adding them if needed and set it to 0.
    - <button type="button" class="btn btn-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false" data-bs-offset="0,y">
    + <button type="button" class="btn btn-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false" data-bs-offset="0,0">
    
  • Footer

    • Warning Each footer accordion now uses an aria-labelledby attribute to be consistent with our accordion component. Please reflect these modifications into your websites.

      More info
      - <div id="collapse" class="accordion-collapse collapse" data-bs-parent="#accordion">
      + <div id="collapse" class="accordion-collapse collapse" data-bs-parent="#accordion" aria-labelledby="heading">
      
  • Navs & Tabs

    • Breaking Nested tabs variant changed its markup to ensure a greater accessibility and consistency over the documentation. Please reflect these modifications into your websites.

      More info
      • Ensure that the root element of the tablist is a <ul>.
      • Ensure that the role="tablist" is set on <ul>.
      • Ensure that the role="tablist" has an aria-owns set too with all the ids it owns.
      • Ensure that the role="presentation" is set on each <li> inside a role="tablist".
      • Ensure that the role="tabpanel" is set on each child of .tab-content.
      • Ensure that the disabled links only miss the [href] attribute.
  • Stepped Process

    • Current step has been slightly changed for accessibility purpose; the link to this step has been converted to plain text. Please reflect this modification into your websites.
    -        <a class="stepped-process-link" href="#" title="2. Review" aria-current="step">Review</a>
    +        <a class="stepped-process-link" title="2. Review" aria-current="step">Review</a>
    

Contents

  • Tables
    • Warning Every table now has a caption with .visually-hidden on it. Please reflect this modification into your websites.

    • New Tables now fully support striped rows and columns.

Forms

  • New Form helpers icon buttons will help you to provide extra help information with the .form-helper utility class.

  • New Small size form controls are now available. Small inputs are defined by their .form-control-sm, small selects by their .form-select-sm. They can be associated with .col-form-label-sm to correctly follow their size if needed. .input-group-sm can also be used depending on the context.

Examples

  • Cards and Cards RTL

    • Warning We now use correctly <button> instead of <a>. We now apply font style on our .card-title so these examples have been modified to follow the right semantic header hierarchy. Furthermore, we dropped unnecessary .card-footer and notice that size of icons has slightly changed. Please check and reflect if necessary this modification into your websites.

      Example
        <div class="card">
          <img src="..." alt="..."/>
          <div class="card-body">
      -     <h4 class="card-title">Title</h4>
      +     <h3 class="card-title">Title</h3>
      -     <h6 class="card-text">Caption</h6>
      +     <p class="card-text fw-bold mb-4">Caption</p>
      -   </div>
      -   <div class="card-footer pt-2">
      -     <a class="btn btn-secondary" aria-label="Button description" title="Button description">Button</a>
      +     <button class="btn btn-secondary" aria-label="Button description" title="Button description">Button</button>
          </div>
        </div>
      
  • Pages

    • New A new section called ‘Pages’ has been added where you will find complete and reusable pages that can be found in the Design Guidelines.
    • New A form page example is now available.

CSS and Sass variables

  • Breaking Deprecated CSS variables:
    • --bs-accordion-body-padding-x
    • --bs-accordion-body-padding-y
    • --bs-card-spacer-y
    • --bs-dropdown-toggle-bg
    • --bs-dropdown-toggle-border-color
    • --bs-dropdown-toggle-color
    • --bs-dropdown-toggle-hover-border-color
    • --bs-dropdown-toggle-padding-x
    • --bs-tag-outline-color
  • New CSS variables:
    • --bs-accordion-body-padding-bottom
    • --bs-accordion-body-padding-end
    • --bs-accordion-body-padding-start
    • --bs-accordion-body-padding-top
    • --bs-card-spacer-bottom
    • --bs-card-spacer-top
    • --bs-dropdown-line-height
    • --bs-focus-visible-inner-color
    • --bs-focus-visible-outer-color
    • --bs-table-accent-bg
    • --bs-table-striped-bg
    • --bs-table-striped-color
    • --bs-table-striped-hover-bg
    • --bs-table-striped-hover-color
  • Breaking Deprecated Sass variables:
    • $accordion-body-padding-x
    • $accordion-body-padding-y
    • $btn-close-focus-shadow
    • $card-spacer-y
    • $form-star-focus-box-shadow
    • $form-star-focus-color
    • $form-star-focus-color-dark
    • $form-star-focus-outline
    • $form-star-focus-outline-dark
    • $outline-offset
    • $outline-width
  • New Sass variables:
    • $accordion-body-padding-bottom
    • $accordion-body-padding-end
    • $accordion-body-padding-start
    • $accordion-body-padding-top
    • $card-spacer-bottom
    • $card-spacer-top
    • $focus-visible-inner-color
    • $focus-visible-inner-color-dark
    • $focus-visible-inner-width
    • $focus-visible-outer-color
    • $focus-visible-outer-color-dark
    • $focus-visible-outer-offset
    • $focus-visible-outer-width
    • $focus-visible-zindex
    • $form-helper-label-margin-bottom
    • $form-helper-size
    • $form-select-border-radius-sm
    • $form-select-font-size-sm
    • $form-select-padding-x-sm
    • $form-select-padding-y-sm
    • $helper-icon
    • $input-border-radius-sm
    • $input-font-size-sm
    • $step-link-active-outline
    • $table-accent-bg
    • $table-striped-bg
    • $table-striped-bg-factor
    • $table-striped-color
    • $table-striped-columns-order
    • $table-striped-hover-bg
    • $table-striped-hover-bg-factor
    • $table-striped-hover-color
    • $table-striped-order
    • $table-variant-active-bg-factor
    • $table-variant-hover-bg-factor
    • $table-variant-striped-hover-bg
    • $table-variant-striped-hover-bg-factor

v5.2.2


Boosted v5.2.2 has landed with new bug fixes and documentation updates including a new RTL section in our examples.

If you need more details about the changes, please refer to the v5.2.2 release.

Components

  • Modals

    • Warning Modals markups have changed to show that a modal dialog represents its own separate document/context, so most of the .modal-titles are now <h1>s associated with a .h*. Please reflect this modification into your websites by choosing the right header level.
  • Orange navbar

    • Languages selection’s aria-labels have been slightly changed in some supra bars examples for accessibility purpose; visible name must be included in the accessible name. It might be a useful modification to propagate into your websites if you have this same kind of languages selection.
    -        <li class="nav-item"><a class="nav-link active" href="#" aria-label="English version">EN</a></li>
    +        <li class="nav-item"><a class="nav-link active" href="#" aria-label="EN English version">EN</a></li>
    

Forms

  • Warning All forms examples have been modified to add a .mt-2 to all submit buttons in order to always have 30px between the last form control and the button. Please reflect this modification into your websites.

Contents

  • Tables
    • Warning Reintroduction of .has-checkbox from v4 to correct spacing of first column when having row selection.

Examples

  • New There is a new RTL section in the examples.

  • RTL

    • New Cards RTL example is now available.

CSS and Sass variables

  • @mixin button-size() has a new interface including a new optional parameter for button letter spacing.

  • New CSS variables:
    • --bs-btn-letter-spacing
    • --bs-primary-text-rgb
  • New Sass variables:
    • $btn-letter-spacing
    • $btn-letter-spacing-lg
    • $btn-letter-spacing-sm
    • $form-feedback-line-height

v5.2.1


Boosted v5.2.1 is here with fixes from our latest minor release, v5.2. These changes include bug fixes, documentation updates, and some dependency updates, but also a new Tags component and a lot of new dark variants for our components.

If you need more details about the changes, please refer to the v5.2.1 release.

Components

  • Back to top

    • Breaking Back to top ‘Label inside’ variant was removed because not compliant with Orange Design System.
  • Breadcrumb

    • New Breadcrumb now has a dark variant.
  • Footer

    • Warning All footers examples have been modified to use the “Terms and conditions” wording instead of “Terms & Conditions”. Please reflect this modification into your websites.
  • List group

    • New List group now has a dark variant.
  • Pagination

    • New Pagination now has a dark variant.
  • Scrollspy

    • New Scrollspy has a new data-bs-threshold data attribute.
  • Stepped process

    • New Stepped process now has a dark variant.
  • Tags

    • New Tags are now a component.
  • Toasts

    • Warning Changed the markup for Toasts with a custom content (toast message and close button). Please reflect this modification into your websites.
      More info
      <div class="toast align-items-center" role="alert" aria-live="assertive" aria-atomic="true">
        <div class="d-flex">
      -   <div class="toast-body">
      +   <div class="toast-body my-auto">
            Hello, world! This is a toast message.
          </div>
      -   <button type="button" class="btn-close me-2 m-auto" data-bs-dismiss="toast"><span class="visually-hidden">Close</span></button>
      +   <button type="button" class="btn-close ms-auto" data-bs-dismiss="toast"><span class="visually-hidden">Close</span></button>
        </div>
      </div>
      

Contents

  • Warning Changed the rendering of <mark> (and so .mark). Depending on your usage it may worth checking the impact in your websites.

  • Warning Tooltips examples applied on SVGs have been updated to use focusable="false" and aria-hidden="true" because SVGs do not carry any specific information so they should not be readable by screen readers. Please reflect this modification in your websites. By the way please check all the SVGs in your websites in order to apply this same modification if needed.

    More info
    <a href="#" class="d-inline-block" data-bs-toggle="tooltip" data-bs-title="Default tooltip" aria-label="Default tooltip">
    - <svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="0 0 100 100">
    + <svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="0 0 100 100" focusable="false" aria-hidden="true">
        <rect width="100%" height="100%" fill="#563d7c"/>
        <circle cx="50" cy="50" r="30" fill="#007bff"/>
      </svg>
    </a>
    
  • The close icon SVG rendering has changed in modals, offcanvases and close buttons. Although is has no direct impact, you might want to apply this same modification within your websites.

Helpers and utilities

  • New .img-thumbnail is now officially supported.

CSS and Sass variables

  • Breaking --bs-pagination-margin-start and --bs-pagination-focus-outline are now deprecated.

  • Warning $accordion-color was announced a deprecated in v5.2.0 but is finally not removed.

  • New CSS variables:
    • --bs-alert-btn-close-offset
    • --bs-alert-dismissible-padding-right
    • --bs-alert-heading-font-weight
    • --bs-alert-icon-margin-y
    • --bs-alert-icon-size
    • --bs-alert-line-height
    • --bs-alert-link-font-weight
    • --bs-alert-logo-size
    • --bs-breadcrumb-color
    • --bs-btn-close-active-border-color
    • --bs-btn-close-active-color
    • --bs-btn-close-bg
    • --bs-btn-close-border-color
    • --bs-btn-close-border-width
    • --bs-btn-close-color
    • --bs-btn-close-disabled-color
    • --bs-btn-close-hover-color
    • --bs-btn-close-padding
    • --bs-btn-hover-border-color
    • --bs-dropdown-zindex
    • --bs-highlight-color
    • --bs-pagination-active-item-color
    • --bs-pagination-padding-end
    • --bs-tab-content-border-width
    • --bs-tab-content-padding-x
    • --bs-tab-content-padding-y
    • --bs-nav-tabs-link-border-width
    • --bs-nav-tabs-link-hover-bg
    • --bs-nav-tabs-link-hover-color
    • --bs-nav-tabs-link-padding-x
    • --bs-navbar-font-weight
    • --bs-navbar-toggler-icon-filter
    • --bs-stepped-process-link-next-color
    • --bs-toast-zindex
  • New Sass variables:
    • $alert-heading-font-weight
    • $alert-icon-size-sm
    • $breadcrumb-color
    • $breadcrumb-dark-active-color
    • $breadcrumb-dark-bg
    • $breadcrumb-dark-color
    • $breadcrumb-dark-divider-color
    • $btn-close-active-border-color
    • $btn-close-active-color
    • $btn-close-border-color
    • $btn-close-border-width
    • $btn-close-disabled-color
    • $btn-close-hover-color
    • $btn-close-white-active-border-color
    • $btn-close-white-active-color
    • $btn-close-white-bg
    • $btn-close-white-border-color
    • $btn-close-white-color
    • $btn-close-white-disabled-color
    • $btn-close-white-hover-color
    • $list-group-dark-action-active-bg
    • $list-group-dark-action-active-color
    • $list-group-dark-action-color
    • $list-group-dark-action-hover-color
    • $list-group-dark-active-bg
    • $list-group-dark-active-border-color
    • $list-group-dark-active-color
    • $list-group-dark-bg
    • $list-group-dark-border-color
    • $list-group-dark-color
    • $list-group-dark-disabled-bg
    • $list-group-dark-disabled-color
    • $mark-bg-dark
    • $mark-color
    • $mark-color-dark
    • $navbar-dark-border-color
    • $navbar-font-weight
    • $pagination-active-item-color
    • $pagination-dark-active-bg
    • $pagination-dark-active-border-color
    • $pagination-dark-active-color
    • $pagination-dark-active-item-bg
    • $pagination-dark-active-item-border-color
    • $pagination-dark-active-item-color
    • $pagination-dark-bg
    • $pagination-dark-border-color
    • $pagination-dark-color
    • $pagination-dark-disabled-bg
    • $pagination-dark-disabled-border-color
    • $pagination-dark-disabled-color
    • $pagination-dark-focus-bg
    • $pagination-dark-focus-color
    • $pagination-dark-hover-bg
    • $pagination-dark-hover-border-color
    • $pagination-dark-hover-color
    • $step-item-dark-active-bg
    • $step-item-dark-bg
    • $step-item-dark-drop-shadow
    • $step-item-dark-next-bg
    • $step-link-dark-active-color
    • $step-link-dark-color
    • $step-link-dark-next-color
    • $step-link-next-color
  • Dark text variants handling is now explained in Customize > CSS variables > Dark text rule.

v5.2.0


Refreshed design

Boosted v5.2.0 features a subtle design update for a handful of components and properties across the project, most notably through refined border-radius values on buttons and form controls. Our documentation also has been updated with a new homepage and a simpler docs layout that no longer collapses sections of the sidebar.

More CSS variables

We’ve updated all our components to use CSS variables. While Sass still underpins everything, each component has been updated to include CSS variables on the component base classes (e.g., .btn), allowing for more real-time customization of Bootstrap. In subsequent releases, we’ll continue to expand our use of CSS variables into our layout, forms, helpers, and utilities. Read more about CSS variables in each component on their respective documentation pages.

Our CSS variable usage will be somewhat incomplete until Boosted 6. While we’d love to fully implement these across the board, they do run the risk of causing breaking changes. For example, setting $alert-border-width: var(--bs-border-width) in our source code breaks potential Sass in your own code if you were doing $alert-border-width * 2 for some reason.

As such, wherever possible, we will continue to push towards more CSS variables, but please recognize our implementation may be slightly limited in v5.

New _maps.scss

Boosted v5.2.0 introduced a new Sass file with _maps.scss. It pulls out several Sass maps from _variables.scss to fix an issue where updates to an original map were not applied to secondary maps that extend them. For example, updates to $theme-colors were not being applied to other theme maps that relied on $theme-colors, breaking key customization workflows. In short, Sass has a limitation where once a default variable or map has been used, it cannot be updated. There’s a similar shortcoming with CSS variables when they’re used to compose other CSS variables.

This is why variable customizations in Boosted have to come after @import "functions", but before @import "variables" and the rest of our import stack. The same applies to Sass maps—you must override the defaults before they get used. The following maps have been moved to the new _maps.scss:

  • $theme-colors-rgb
  • $utilities-colors
  • $utilities-text
  • $utilities-text-colors
  • $utilities-bg
  • $utilities-bg-colors
  • $negative-spacers
  • $gutters

Your custom Boosted CSS builds should now look something like this with a separate maps import.

  // Functions come first
  @import "functions";

  // Optional variable overrides here
+ $custom-color: #df711b;
+ $custom-theme-colors: (
+   "custom": $custom-color
+ );

  // Variables come next
  @import "variables";

+ // Optional Sass map overrides here
+ $theme-colors: map-merge($theme-colors, $custom-theme-colors);
+
+ // Followed by our default maps
+ @import "maps";
+
  // Rest of our imports
  @import "mixins";
  @import "utilities";
  @import "root";
  @import "reboot";
  // etc

New utilities

Additional changes

  • Introduced new $enable-container-classes option. — Now when opting into the experimental CSS Grid layout, .container-* classes will still be compiled, unless this option is set to false. Containers also now keep their gutter values.

  • Offcanvas component now has responsive variations. The original .offcanvas class remains unchanged—it hides content across all viewports. To make it responsive, change that .offcanvas class to any .offcanvas-{sm|md|lg|xl|xxl} class.

  • Thicker table dividers are now opt-in. — We’ve removed the thicker and more difficult to override border between table groups and moved it to an optional class you can apply, .table-group-divider. See the table docs for an example.

  • Scrollspy has been rewritten to use the Intersection Observer API, which means you no longer need relative parent wrappers, deprecates offset config, and more. Look for your Scrollspy implementations to be more accurate and consistent in their nav highlighting.

  • Popovers and tooltips now use CSS variables. Some CSS variables have been updated from their Sass counterparts to reduce the number of variables. As a result, three variables have been deprecated in this release: $popover-arrow-color, $popover-arrow-outer-color, and $tooltip-arrow-color.

  • Added new .text-bg-{color} helpers. Instead of setting individual .text-* and .bg-* utilities, you can now use the .text-bg-* helpers to set a background-color with contrasting foreground color.

  • Added .form-check-reverse modifier to flip the order of labels and associated checkboxes/radios.

  • Added striped columns support to tables via the new .table-striped-columns class.

  • Breaking Changed data-o-label to data-bs-label in Back to top component.

  • Breaking Re-introduced footer component by tweaking a bit the classes: replaced .o-footer-* by .footer-*.

For a complete list of changes, see the v5.2.0 project on GitHub.

v5.1.0


  • Breaking Changed the behavior of .bg-success, .bg-danger, .bg-warning and .bg-info. You may prefer to use .bg-supporting-green, .bg-supporting-pink, .bg-supporting-yellow and .bg-supporting-blue instead (apart from badges). $supporting-colors is replaced by $background-colors.

  • Added experimental support for CSS Grid layout. — This is a work in progress, and is not yet ready for production use, but you can opt into the new feature via Sass. To enable it, disable the default grid, by setting $enable-grid-classes: false and enable the CSS Grid by setting $enable-cssgrid: true.

  • Updated navbars to support offcanvas. — Add offcanvas drawers in any navbar with the responsive .navbar-expand-* classes and some offcanvas markup.

  • Added new placeholder component. — Our newest component, a way to provide temporary blocks in lieu of real content to help indicate that something is still loading in your site or app.

  • Collapse plugin now supports horizontal collapsing. — Add .collapse-horizontal to your .collapse to collapse the width instead of the height. Avoid browser repainting by setting a min-height or height.

  • Added new stack and vertical rule helpers. — Quickly apply multiple flexbox properties to quickly create custom layouts with stacks. Choose from horizontal (.hstack) and vertical (.vstack) stacks. Add vertical dividers similar to <hr> elements with the new .vr helpers.

  • Added new global :root CSS variables. — Added several new CSS variables to the :root level for controlling <body> styles. More are in the works, including across our utilities and components, but for now read up CSS variables in the Customize section.

  • Overhauled color and background utilities to use CSS variables, and added new text opacity and background opacity utilities. — .text-* and .bg-* utilities are now built with CSS variables and rgba() color values, allowing you to easily customize any utility with new opacity utilities.

  • Added new snippet examples based to show how to customize our components. — Pull ready to use customized components and other common design patterns with our new Snippets examples.

  • Removed unused positioning styles from popovers and tooltips as these are handled solely by Popper. $tooltip-margin has been deprecated and set to null in the process.

Want more information? Read the v5.1.0 blog post.

v5.0.0


Hey there! Changes to our first major release of Boosted 5, v5.0.0, are documented below. They don’t reflect the additional changes shown above.

Dependencies

  • Dropped jQuery.
  • Upgraded from Popper v1.x to Popper v2.x.
  • Replaced Libsass with Dart Sass as our Sass compiler given Libsass was deprecated.
  • Migrated from Jekyll to Hugo for building our documentation

Browser support

  • Dropped Internet Explorer 10 and 11
  • Dropped Microsoft Edge < 16 (Legacy Edge)
  • Dropped Firefox < 60
  • Dropped Safari < 12
  • Dropped iOS Safari < 12
  • Dropped Chrome < 60

Documentation changes

  • Redesigned homepage, docs layout, and footer.
  • Added new Parcel guide.
  • Added new Customize section, replacing v4’s Theming page, with new details on Sass, global configuration options, color schemes, CSS variables, and more.
  • Reorganized all form documentation into new Forms section, breaking apart the content into more focused pages.
  • Similarly, updated the Layout section, to flesh out grid content more clearly.
  • Renamed “Navs” component page to “Navs & Tabs”.
  • Renamed “Checks” page to “Checks & radios”.
  • Redesigned the navbar and added a new subnav to make it easier to get around our sites and docs versions.
  • Added new keyboard shortcut for the search field: Ctrl + /.

Sass

  • We’ve ditched the default Sass map merges to make it easier to remove redundant values. Keep in mind you now have to define all values in the Sass maps like $theme-colors. Check out how to deal with Sass maps.

  • Breaking Renamed $orange-2 to $accessible-orange.

  • Breaking Removed $container-fluid-margin-widths. Please use $container-fluid-margin instead.

  • Breaking Renamed color-yiq() function and related variables to color-contrast() as it’s no longer related to YIQ color space. See #30168.

    • $yiq-contrasted-threshold is renamed to $min-contrast-ratio.
    • $yiq-text-dark and $yiq-text-light are respectively renamed to $color-contrast-dark and $color-contrast-light.
  • Breaking Media query mixins parameters have changed for a more logical approach.

    • media-breakpoint-down() uses the breakpoint itself instead of the next breakpoint (e.g., media-breakpoint-down(lg) instead of media-breakpoint-down(md) targets viewports smaller than lg).
    • Similarly, the second parameter in media-breakpoint-between() also uses the breakpoint itself instead of the next breakpoint (e.g., media-breakpoint-between(sm, lg) instead of media-breakpoint-between(sm, md) targets viewports between sm and lg).
  • Breaking Removed print styles and $enable-print-styles variable. Print display classes are still around. See #28339.

  • Breaking Dropped color(), theme-color(), and gray() functions in favor of variables. See #29083.

  • Breaking Renamed theme-color-level() function to color-level() and now accepts any color you want instead of only $theme-color colors. See #29083 Watch out: color-level() was later on dropped in v5.0.0-alpha3.

  • Breaking Renamed $enable-prefers-reduced-motion-media-query and $enable-pointer-cursor-for-buttons to $enable-reduced-motion and $enable-button-pointers for brevity.

  • Breaking Removed the bg-gradient-variant() mixin. Use the .bg-gradient class to add gradients to elements instead of the generated .bg-gradient-* classes.

  • Breaking Removed previously deprecated mixins:

    • hover, hover-focus, plain-hover-focus, and hover-focus-active
    • float()
    • form-control-mixin()
    • nav-divider()
    • retina-img()
    • text-hide() (also dropped the associated utility class, .text-hide)
    • visibility()
    • form-control-focus()
  • Breaking Renamed scale-color() function to shift-color() to avoid collision with Sass’s own color scaling function.

  • box-shadow mixins now allow null values and drop none from multiple arguments. See #30394.

  • The border-radius() mixin now has a default value.

Color system

  • The color system which worked with color-level() and $theme-color-interval was removed in favor of a new color system. All lighten() and darken() functions in our codebase are replaced by tint-color() and shade-color(). These functions will mix the color with either white or black instead of changing its lightness by a fixed amount. The shift-color() will either tint or shade a color depending on whether its weight parameter is positive or negative. See #30622 for more details.

  • Added new tints and shades for every color, providing nine separate colors for each base color, as new Sass variables.

  • Improved color contrast. Bumped color contrast ratio from 3:1 to 4.5:1 and updated blue, green, cyan, and pink colors to ensure WCAG 2.1 AA contrast. Also changed our color contrast color from $gray-900 to $black.

  • To support our color system, we’ve added new custom tint-color() and shade-color() functions to mix our colors appropriately.

Grid updates

  • New breakpoint! Added new xxl breakpoint for 1400px and up. No changes to all other breakpoints.

  • Improved gutters. Gutters are now set in rems, and are narrower than v4 (1.5rem, or about 24px, down from 30px). This aligns our grid system’s gutters with our spacing utilities.

    • Added new gutter class (.g-*, .gx-*, and .gy-*) to control horizontal/vertical gutters, horizontal gutters, and vertical gutters.
    • Breaking Renamed .no-gutters to .g-0 to match new gutter utilities.
  • Columns no longer have position: relative applied, so you may have to add .position-relative to some elements to restore that behavior.

  • Breaking Dropped several .order-* classes that often went unused. We now only provide .order-1 to .order-5 out of the box.

  • Breaking Dropped the .media component as it can be easily replicated with utilities. See #28265 and the flex utilities page for an example.

  • Breaking boosted-grid.css now only applies box-sizing: border-box to the column instead of resetting the global box-sizing. This way, our grid styles can be used in more places without interference.

  • $enable-grid-classes no longer disables the generation of container classes anymore. See #29146.

  • Updated the make-col mixin to default to equal columns without a specified size.

Content, Reboot, etc

  • Breaking Orange Helvetica CSS file names changed from orangeHelvetica.*.css to orange-helvetica.*.css.

  • RFS is now enabled by default. Headings using the font-size() mixin will automatically adjust their font-size to scale with the viewport. This feature was previously opt-in with v4.

  • Breaking Overhauled our display typography to replace our $display-* variables and with a $display-font-sizes Sass map. Also removed the individual $display-*-weight variables for a single $display-font-weight and adjusted font-sizes.

  • Added two new .display-* heading sizes, .display-5 and .display-6.

  • Links are underlined by default (not just on hover), unless they’re part of specific components.

  • Breaking .o-link-arrow is renamed to .link-chevron. .o-link-arrow.back has been dropped.

  • Redesigned tables to refresh their styles and rebuild them with CSS variables for more control over styling.

  • Breaking Nested tables do not inherit styles anymore.

  • Breaking .thead-light and .thead-dark are dropped in favor of the .table-* variant classes which can be used for all table elements (thead, tbody, tfoot, tr, th and td).

  • Breaking The table-row-variant() mixin is renamed to table-variant() and accepts only 2 parameters: $color (color name) and $value (color code). The border color and accent colors are automatically calculated based on the table factor variables.

  • Split table cell padding variables into -y and -x.

  • Breaking Dropped .pre-scrollable class. See #29135

  • Breaking .text-* utilities do not add hover and focus states to links anymore. .link-* helper classes can be used instead. See #29267

  • Breaking Dropped .text-justify class. See #29793

  • Breaking <hr> elements now use height instead of border to better support the size attribute. This also enables use of padding utilities to create thicker dividers (e.g., <hr class="py-1">).

  • Reset default horizontal padding-left on <ul> and <ol> elements from browser default 40px to 2rem.

  • Added $enable-smooth-scroll, which applies scroll-behavior: smooth globally—except for users asking for reduced motion through prefers-reduced-motion media query. See #31877

RTL

  • Horizontal direction specific variables, utilities, and mixins have all been renamed to use logical properties like those found in flexbox layouts—e.g., start and end in lieu of left and right.

Forms

  • Breaking Consolidated native and custom form elements. Checkboxes, radios, selects, and other inputs that had native and custom classes in v4 have been consolidated. Now nearly all our form elements are entirely custom, most without the need for custom HTML.

    • .custom-control.custom-checkbox is now .form-check.
    • .custom-control.custom-radio is now .form-check.
    • .custom-control.custom-switch is now .form-check.form-switch.
    • .custom-select is now .form-select.
    • .custom-file and .form-control-file have been replaced by custom styles on top of .form-control.
    • .custom-range is now .form-range.
    • Dropped native .form-control-file and .form-control-range.
  • Breaking Dropped .input-group-append and .input-group-prepend. You can now just add buttons and .input-group-text as direct children of the input groups.

  • The longstanding Missing border radius on input group with validation feedback bug is finally fixed by adding an additional .has-validation class to input groups with validation.

  • Breaking Dropped form-specific layout classes for our grid system. Use our grid and utilities instead of .form-group, .form-row, or .form-inline.

  • Breaking Form labels now require .form-label.

  • Breaking .form-text no longer sets display, allowing you to create inline or block help text as you wish just by changing the HTML element.

  • Form controls no longer used fixed height when possible, instead deferring to min-height to improve customization and compatibility with other components.

  • Validation icons are no longer applied to <select>s with multiple.

  • Rearranged source Sass files under scss/forms/, including input group styles.


Components

  • Unified padding values for alerts, breadcrumbs, cards, dropdowns, list groups, modals, popovers, and tooltips to be based on our $spacer variable. See #30564.

Accordion

Alerts

  • Alerts now have examples with icons.

  • Removed custom styles for <hr>s in each alert since they already use currentColor.

Back to top

  • Breaking Dropped .o-scroll-up, use the .back-to-top class instead. Please check our Back to top page to use it properly. Back to top component doesn’t use JavaScript anymore.

Badges

  • Breaking Dropped all .badge-* color classes for background utilities (e.g., use .bg-primary instead of .badge-primary).

  • Breaking Dropped .badge-pill—use the .rounded-pill utility instead.

  • Breaking Removed hover and focus styles for <a> and <button> elements.

  • Increased default padding for badges from .25em/.5em to .35em/.65em.

  • Simplified the default appearance of breadcrumbs by removing padding, background-color, and border-radius.

  • Added new CSS custom property --bs-breadcrumb-divider for easy customization without needing to recompile CSS.

Buttons

  • Breaking Toggle buttons, with checkboxes or radios, no longer require JavaScript and have new markup. We no longer require a wrapping element, add .btn-check to the <input>, and pair it with any .btn classes on the <label>. See #30650. The docs for this has moved from our Buttons page to the new Forms section.

  • Breaking Dropped .btn-block for utilities. Instead of using .btn-block on the .btn, wrap your buttons with .d-grid and a .gap-* utility to space them as needed. Switch to responsive classes for even more control over them. Read the docs for some examples.

  • Breaking Social buttons now need an extra .btn-icon.

  • Updated our button-variant() and button-outline-variant() mixins to support additional parameters.

  • Updated buttons to ensure increased contrast on hover and active states.

  • Disabled buttons now have pointer-events: none;.

Card

  • Breaking Dropped .card-deck in favor of our grid. Wrap your cards in column classes and add a parent .row-cols-* container to recreate card decks (but with more control over responsive alignment).

  • #31035: Added new null variables for font-size, font-weight, color, and :hover color to the .nav-link class.

  • Breaking Replaced the .card based accordion with a new Accordion component.

  • Added new .carousel-dark variant for dark text, controls, and indicators (great for lighter backgrounds).

  • Replaced chevron icons for carousel controls with new SVGs from Solaris.

Close button

  • Breaking Renamed .close to .btn-close for a less generic name.

  • Close buttons now use a background-image (embedded SVG) instead of a &times; in the HTML, allowing for easier customization without the need to touch your markup.

  • Added new .btn-close-white variant that uses filter: invert(1) to enable higher contrast dismiss icons against darker backgrounds.

Collapse

  • Removed scroll anchoring for accordions.
  • Added new .dropdown-menu-dark variant and associated variables for on-demand dark dropdowns.

  • Added new variable for $dropdown-padding-x.

  • Darkened the dropdown divider for improved contrast.

  • Breaking All the events for the dropdown are now triggered on the dropdown toggle button and then bubbled up to the parent element.

  • Dropdown menus now have a data-bs-popper="static" attribute set when the positioning of the dropdown is static, or dropdown is in the navbar. This is added by our JavaScript and helps us use custom position styles without interfering with Popper’s positioning.

  • Breaking Dropped flip option for dropdown plugin in favor of native Popper configuration. You can now disable the flipping behavior by passing an empty array for fallbackPlacements option in flip modifier.

  • Dropdown menus can now be clickable with a new autoClose option to handle the auto close behavior. You can use this option to accept the click inside or outside the dropdown menu to make it interactive.

  • Dropdowns now support .dropdown-items wrapped in <li>s.

  • Breaking Footers’ HTML structure changed a lot as it works now with sub-components. They don’t require .o-footer-* classes anymore, they need .footer-* classes.

Jumbotron

  • Breaking Dropped the jumbotron component as it can be replicated with utilities.

List group

  • Added new null variables for font-size, font-weight, color, and :hover color to the .nav-link class.
  • Breaking Navbars now require a container within (to drastically simplify spacing requirements and CSS required).
  • Breaking The .active class can no longer be applied to .nav-items, it must be applied directly on .nav-links.

Offcanvas

Orange navbar

  • Breaking Supra bars now require a .bg-dark class.

  • Removed the .global class for the instantiation of global headers. You just need to declare your navbar with default .navbar-* classes.

  • Changed the handling of the minimizing on scroll behavior. Initialize it on your <header> element by adding the .sticky-top class.

  • Classes to handle titles in the bars have been added: use .title for a title on a single line, or .two-lined for, as its name suggests, a title on two lines.

Pagination

  • Breaking Dropped .has-label support.

  • Pagination links now have customizable margin-left that are dynamically rounded on all corners when separated from one another.

  • Added transitions to pagination links.

Popovers

  • Breaking Renamed .arrow to .popover-arrow in our default popover template.

  • Renamed whiteList option to allowList.

Spinners

  • Spinners now honor prefers-reduced-motion: reduce by slowing down animations. See #31882.

  • Improved spinner vertical alignment.

Stepped process

  • Breaking Dropped .o-stepbar, use .stepped-process instead. All other classes using .stepbar-* should be replaced by .stepped-process-*.

  • Breaking Renamed respectively $o-stepbar-margin-rand $o-stepbar-arrow-width to $step-item-margin-end and $step-item-arrow-width.

  • Breaking Dropped $o-stepbar-height and lots of new variables were added.

Toasts

  • Toasts can now be positioned in a .toast-container with the help of positioning utilities.

  • Changed default toast duration to 5 seconds.

  • Removed overflow: hidden from toasts and replaced with proper border-radiuss with calc() functions.

Tooltips

  • Breaking Renamed .arrow to .tooltip-arrow in our default tooltip template.

  • Breaking The default value for the fallbackPlacements is changed to ['top', 'right', 'bottom', 'left'] for better placement of popper elements.

  • Breaking Renamed whiteList option to allowList.

Utilities

  • Breaking Renamed several utilities to use logical property names instead of directional names with the addition of RTL support:

    • Renamed .float-left and .float-right to .float-start and .float-end.
    • Renamed .border-left and .border-right to .border-start and .border-end.
    • Renamed .rounded-left and .rounded-right to .rounded-start and .rounded-end.
    • Renamed .ml-* and .mr-* to .ms-* and .me-*.
    • Renamed .pl-* and .pr-* to .ps-* and .pe-*.
    • Renamed .text-*-left and .text-*-right to .text-*-start and .text-*-end.
  • Breaking Disabled negative margins by default.

  • Added new .bg-body class for quickly setting the <body>’s background to additional elements.

  • Added new position utilities for top, right, bottom, and left. Values include 0, 50%, and 100% for each property.

  • Added new .translate-middle-x & .translate-middle-y utilities to horizontally or vertically center absolute/fixed positioned elements.

  • Added new border-width utilities.

  • Breaking Renamed .text-monospace to .font-monospace.

  • Breaking Dropped .rounded, .rounded-top, .rounded-right, .rounded-bottom, .rounded-left, .rounded-0, .rounded-sm and .rounded-lg to reduce bundle size since we shouldn’t use those classes in Boosted.

  • Breaking Removed .text-hide as it’s an antiquated method for hiding text that shouldn’t be used anymore.

  • Added .fs-* utilities for font-size utilities (with RFS enabled). These use the same scale as HTML’s default headings (1-6, large to small), and can be modified via Sass map.

  • Breaking Renamed .font-weight-* utilities as .fw-* for brevity and consistency.

  • Breaking Renamed .font-italic utility to .fst-italic for brevity and consistency with new .fst-normal utility.

  • Added .d-grid to display utilities and new gap utilities (.gap) for CSS Grid and flexbox layouts.

  • Breaking Removed .rounded-sm and rounded-lg, and introduced a new scale of classes, .rounded-0 to .rounded-3. See #31687.

  • Added new line-height utilities: .lh-1, .lh-sm, .lh-base and .lh-lg. See here.

  • Moved the .d-none utility in our CSS to give it more weight over other display utilities.

  • Extended the .visually-hidden-focusable helper to also work on containers, using :focus-within.

Helpers

  • Breaking Responsive embed helpers have been renamed to ratio helpers with new class names and improved behaviors, as well as a helpful CSS variable.

    • Classes have been renamed to change by to x in the aspect ratio. For example, .ratio-16by9 is now .ratio-16x9.
    • We’ve dropped the .embed-responsive-item and element group selector in favor of a simpler .ratio > * selector. No more class is needed, and the ratio helper now works with any HTML element.
    • The $embed-responsive-aspect-ratios Sass map has been renamed to $aspect-ratios and its values have been simplified to include the class name and the percentage as the key: value pair.
    • CSS variables are now generated and included for each value in the Sass map. Modify the --bs-aspect-ratio variable on the .ratio to create any custom aspect ratio.
  • Breaking “Screen reader” classes are now “visually hidden” classes.

    • Changed the Sass file from scss/helpers/_screenreaders.scss to scss/helpers/_visually-hidden.scss
    • Renamed .sr-only and .sr-only-focusable to .visually-hidden and .visually-hidden-focusable
    • Renamed sr-only() and sr-only-focusable() mixins to visually-hidden() and visually-hidden-focusable().
  • boosted-utilities.css now also includes our helpers. Helpers don’t need to be imported in custom builds anymore.

JavaScript

  • Dropped jQuery dependency and rewrote plugins to be in regular JavaScript.

  • Breaking Data attributes for all JavaScript plugins are now namespaced to help distinguish Boosted functionality from third parties and your own code. For example, we use data-bs-toggle instead of data-toggle.

  • All plugins can now accept a CSS selector as the first argument. You can either pass a DOM element or any valid CSS selector to create a new instance of the plugin:

    const modal = new boosted.Modal('#myModal')
    const dropdown = new boosted.Dropdown('[data-bs-toggle="dropdown"]')
    
  • popperConfig can be passed as a function that accepts the Boosted’s default Popper config as an argument, so that you can merge this default configuration in your way. Applies to dropdowns, popovers, and tooltips.

  • The default value for the fallbackPlacements is changed to ['top', 'right', 'bottom', 'left'] for better placement of Popper elements. Applies to dropdowns, popovers, and tooltips.

  • Removed underscore from public static methods like _getInstance()getInstance().