| 
									
										
										
										
											2025-08-28 12:14:59 +08:00
										 |  |  | @use "sass:map"; | 
					
						
							|  |  |  | @use "config" as *; | 
					
						
							|  |  |  | @use "variables" as *; | 
					
						
							|  |  |  | @use "mixins/border-radius" as *; | 
					
						
							|  |  |  | @use "mixins/box-shadow" as *; | 
					
						
							|  |  |  | @use "mixins/gradients" as *; | 
					
						
							|  |  |  | @use "mixins/transition" as *; | 
					
						
							|  |  |  | @use "mixins/color-mode" as *; | 
					
						
							|  |  |  | @use "mixins/deprecate" as *; | 
					
						
							|  |  |  | @use "vendor/rfs" as *; | 
					
						
							|  |  |  | @use "layout/breakpoints" as *; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-12-29 09:16:27 +08:00
										 |  |  | // Navbar
 | 
					
						
							| 
									
										
										
										
											2014-12-03 06:02:35 +08:00
										 |  |  | //
 | 
					
						
							|  |  |  | // Provide a static navbar from which we expand to create full-width, fixed, and
 | 
					
						
							|  |  |  | // other navbar variations.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-29 03:47:04 +08:00
										 |  |  | @layer components { | 
					
						
							|  |  |  |   .navbar { | 
					
						
							|  |  |  |     // scss-docs-start navbar-css-vars
 | 
					
						
							|  |  |  |     --#{$prefix}navbar-padding-x: #{if($navbar-padding-x == null, 0, $navbar-padding-x)}; | 
					
						
							|  |  |  |     --#{$prefix}navbar-padding-y: #{$navbar-padding-y}; | 
					
						
							|  |  |  |     --#{$prefix}navbar-color: #{$navbar-light-color}; | 
					
						
							|  |  |  |     --#{$prefix}navbar-hover-color: #{$navbar-light-hover-color}; | 
					
						
							|  |  |  |     --#{$prefix}navbar-disabled-color: #{$navbar-light-disabled-color}; | 
					
						
							|  |  |  |     --#{$prefix}navbar-active-color: #{$navbar-light-active-color}; | 
					
						
							|  |  |  |     --#{$prefix}navbar-brand-padding-y: #{$navbar-brand-padding-y}; | 
					
						
							|  |  |  |     --#{$prefix}navbar-brand-margin-end: #{$navbar-brand-margin-end}; | 
					
						
							|  |  |  |     --#{$prefix}navbar-brand-font-size: #{$navbar-brand-font-size}; | 
					
						
							|  |  |  |     --#{$prefix}navbar-brand-color: #{$navbar-light-brand-color}; | 
					
						
							|  |  |  |     --#{$prefix}navbar-brand-hover-color: #{$navbar-light-brand-hover-color}; | 
					
						
							|  |  |  |     --#{$prefix}navbar-nav-link-padding-x: #{$navbar-nav-link-padding-x}; | 
					
						
							|  |  |  |     --#{$prefix}navbar-toggler-padding-y: #{$navbar-toggler-padding-y}; | 
					
						
							|  |  |  |     --#{$prefix}navbar-toggler-padding-x: #{$navbar-toggler-padding-x}; | 
					
						
							|  |  |  |     --#{$prefix}navbar-toggler-font-size: #{$navbar-toggler-font-size}; | 
					
						
							|  |  |  |     --#{$prefix}navbar-toggler-icon-bg: #{escape-svg($navbar-light-toggler-icon-bg)}; | 
					
						
							|  |  |  |     --#{$prefix}navbar-toggler-border-color: #{$navbar-light-toggler-border-color}; | 
					
						
							|  |  |  |     --#{$prefix}navbar-toggler-border-radius: #{$navbar-toggler-border-radius}; | 
					
						
							|  |  |  |     --#{$prefix}navbar-toggler-focus-width: #{$navbar-toggler-focus-width}; | 
					
						
							|  |  |  |     --#{$prefix}navbar-toggler-transition: #{$navbar-toggler-transition}; | 
					
						
							|  |  |  |     // scss-docs-end navbar-css-vars
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     position: relative; | 
					
						
							| 
									
										
										
										
											2017-03-21 12:23:11 +08:00
										 |  |  |     display: flex; | 
					
						
							| 
									
										
										
										
											2025-08-29 03:47:04 +08:00
										 |  |  |     flex-wrap: wrap; // allow us to do the line break for collapsing content
 | 
					
						
							| 
									
										
										
										
											2017-04-08 18:57:45 +08:00
										 |  |  |     align-items: center; | 
					
						
							| 
									
										
										
										
											2025-08-29 03:47:04 +08:00
										 |  |  |     justify-content: space-between; // space out brand from logo
 | 
					
						
							|  |  |  |     padding: var(--#{$prefix}navbar-padding-y) var(--#{$prefix}navbar-padding-x); | 
					
						
							|  |  |  |     @include gradient-bg(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Because flex properties aren't inherited, we need to redeclare these first
 | 
					
						
							|  |  |  |     // few properties so that content nested within behave properly.
 | 
					
						
							|  |  |  |     // The `flex-wrap` property is inherited to simplify the expanded navbars
 | 
					
						
							|  |  |  |     %container-flex-properties { | 
					
						
							|  |  |  |       display: flex; | 
					
						
							|  |  |  |       flex-wrap: inherit; | 
					
						
							|  |  |  |       align-items: center; | 
					
						
							|  |  |  |       justify-content: space-between; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-08-06 03:12:16 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-29 03:47:04 +08:00
										 |  |  |     > .container, | 
					
						
							|  |  |  |     > .container-fluid { | 
					
						
							| 
									
										
										
										
											2019-08-06 03:12:16 +08:00
										 |  |  |       @extend %container-flex-properties; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2025-08-29 03:47:04 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     @each $breakpoint, $container-max-width in $container-max-widths { | 
					
						
							|  |  |  |       > .container#{breakpoint-infix($breakpoint, $container-max-widths)} { | 
					
						
							|  |  |  |         @extend %container-flex-properties; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-08-06 03:12:16 +08:00
										 |  |  |   } | 
					
						
							| 
									
										
										
										
											2014-12-03 06:02:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-12-21 16:40:31 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-29 03:47:04 +08:00
										 |  |  |   // Navbar brand
 | 
					
						
							|  |  |  |   //
 | 
					
						
							|  |  |  |   // Used for brand, project, or site names.
 | 
					
						
							| 
									
										
										
										
											2014-12-03 06:02:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-29 03:47:04 +08:00
										 |  |  |   .navbar-brand { | 
					
						
							|  |  |  |     padding-top: var(--#{$prefix}navbar-brand-padding-y); | 
					
						
							|  |  |  |     padding-bottom: var(--#{$prefix}navbar-brand-padding-y); | 
					
						
							|  |  |  |     margin-right: var(--#{$prefix}navbar-brand-margin-end); | 
					
						
							|  |  |  |     @include font-size(var(--#{$prefix}navbar-brand-font-size)); | 
					
						
							|  |  |  |     color: var(--#{$prefix}navbar-brand-color); | 
					
						
							|  |  |  |     text-decoration: if($link-decoration == none, null, none); | 
					
						
							|  |  |  |     white-space: nowrap; | 
					
						
							| 
									
										
										
										
											2015-08-18 15:59:44 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-29 03:47:04 +08:00
										 |  |  |     &:hover, | 
					
						
							|  |  |  |     &:focus { | 
					
						
							|  |  |  |       color: var(--#{$prefix}navbar-brand-hover-color); | 
					
						
							|  |  |  |       text-decoration: if($link-hover-decoration == underline, none, null); | 
					
						
							| 
									
										
										
										
											2023-02-20 20:08:55 +08:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2015-08-18 15:59:44 +08:00
										 |  |  |   } | 
					
						
							| 
									
										
										
										
											2017-05-22 22:20:58 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-29 03:47:04 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |   // Navbar nav
 | 
					
						
							|  |  |  |   //
 | 
					
						
							|  |  |  |   // Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   .navbar-nav { | 
					
						
							|  |  |  |     // scss-docs-start navbar-nav-css-vars
 | 
					
						
							|  |  |  |     --#{$prefix}nav-link-padding-x: 0; | 
					
						
							|  |  |  |     --#{$prefix}nav-link-padding-y: #{$nav-link-padding-y}; | 
					
						
							|  |  |  |     @include rfs($nav-link-font-size, --#{$prefix}nav-link-font-size); | 
					
						
							|  |  |  |     --#{$prefix}nav-link-font-weight: #{$nav-link-font-weight}; | 
					
						
							|  |  |  |     --#{$prefix}nav-link-color: var(--#{$prefix}navbar-color); | 
					
						
							|  |  |  |     --#{$prefix}nav-link-hover-color: var(--#{$prefix}navbar-hover-color); | 
					
						
							|  |  |  |     --#{$prefix}nav-link-disabled-color: var(--#{$prefix}navbar-disabled-color); | 
					
						
							|  |  |  |     // scss-docs-end navbar-nav-css-vars
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     display: flex; | 
					
						
							|  |  |  |     flex-direction: column; // cannot use `inherit` to get the `.navbar`s value
 | 
					
						
							|  |  |  |     padding-left: 0; | 
					
						
							|  |  |  |     margin-bottom: 0; | 
					
						
							|  |  |  |     list-style: none; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     .nav-link { | 
					
						
							|  |  |  |       &.active, | 
					
						
							|  |  |  |       &.show { | 
					
						
							|  |  |  |         color: var(--#{$prefix}navbar-active-color); | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     .dropdown-menu { | 
					
						
							|  |  |  |       position: static; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2017-05-22 22:20:58 +08:00
										 |  |  |   } | 
					
						
							| 
									
										
										
										
											2015-08-18 15:59:44 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-29 03:47:04 +08:00
										 |  |  |   // Navbar text
 | 
					
						
							|  |  |  |   //
 | 
					
						
							|  |  |  |   //
 | 
					
						
							| 
									
										
										
										
											2016-05-16 03:29:56 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-29 03:47:04 +08:00
										 |  |  |   .navbar-text { | 
					
						
							|  |  |  |     padding-top: $nav-link-padding-y; | 
					
						
							|  |  |  |     padding-bottom: $nav-link-padding-y; | 
					
						
							|  |  |  |     color: var(--#{$prefix}navbar-color); | 
					
						
							| 
									
										
										
										
											2021-07-07 10:34:12 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-29 03:47:04 +08:00
										 |  |  |     a, | 
					
						
							|  |  |  |     a:hover, | 
					
						
							|  |  |  |     a:focus  { | 
					
						
							|  |  |  |       color: var(--#{$prefix}navbar-active-color); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2021-07-07 10:34:12 +08:00
										 |  |  |   } | 
					
						
							| 
									
										
										
										
											2016-05-16 03:29:56 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-29 03:47:04 +08:00
										 |  |  |   // Responsive navbar
 | 
					
						
							|  |  |  |   //
 | 
					
						
							|  |  |  |   // Custom styles for responsive collapsing and toggling of navbar contents.
 | 
					
						
							|  |  |  |   // Powered by the collapse Bootstrap JavaScript plugin.
 | 
					
						
							| 
									
										
										
										
											2017-03-21 12:23:11 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-29 03:47:04 +08:00
										 |  |  |   // When collapsed, prevent the toggleable navbar contents from appearing in
 | 
					
						
							|  |  |  |   // the default flexbox row orientation. Requires the use of `flex-wrap: wrap`
 | 
					
						
							|  |  |  |   // on the `.navbar` parent.
 | 
					
						
							|  |  |  |   .navbar-collapse { | 
					
						
							|  |  |  |     flex-grow: 1; | 
					
						
							|  |  |  |     flex-basis: 100%; | 
					
						
							|  |  |  |     // For always expanded or extra full navbars, ensure content aligns itself
 | 
					
						
							|  |  |  |     // properly vertically. Can be easily overridden with flex utilities.
 | 
					
						
							|  |  |  |     align-items: center; | 
					
						
							| 
									
										
										
										
											2020-01-28 20:28:44 +08:00
										 |  |  |   } | 
					
						
							| 
									
										
										
										
											2014-12-03 06:02:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-29 03:47:04 +08:00
										 |  |  |   // Button for toggling the navbar when in its collapsed state
 | 
					
						
							|  |  |  |   .navbar-toggler { | 
					
						
							|  |  |  |     padding: var(--#{$prefix}navbar-toggler-padding-y) var(--#{$prefix}navbar-toggler-padding-x); | 
					
						
							|  |  |  |     @include font-size(var(--#{$prefix}navbar-toggler-font-size)); | 
					
						
							|  |  |  |     line-height: 1; | 
					
						
							|  |  |  |     color: var(--#{$prefix}navbar-color); | 
					
						
							|  |  |  |     background-color: transparent; // remove default button style
 | 
					
						
							|  |  |  |     border: var(--#{$prefix}border-width) solid var(--#{$prefix}navbar-toggler-border-color); // remove default button style
 | 
					
						
							|  |  |  |     @include border-radius(var(--#{$prefix}navbar-toggler-border-radius)); | 
					
						
							|  |  |  |     @include transition(var(--#{$prefix}navbar-toggler-transition)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     &:hover { | 
					
						
							|  |  |  |       text-decoration: none; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     &:focus { | 
					
						
							|  |  |  |       text-decoration: none; | 
					
						
							|  |  |  |       outline: 0; | 
					
						
							|  |  |  |       box-shadow: 0 0 0 var(--#{$prefix}navbar-toggler-focus-width); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2014-12-03 06:02:35 +08:00
										 |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-29 03:47:04 +08:00
										 |  |  |   // Keep as a separate element so folks can easily override it with another icon
 | 
					
						
							|  |  |  |   // or image file as needed.
 | 
					
						
							|  |  |  |   .navbar-toggler-icon { | 
					
						
							|  |  |  |     display: inline-block; | 
					
						
							|  |  |  |     width: 1.5em; | 
					
						
							|  |  |  |     height: 1.5em; | 
					
						
							|  |  |  |     vertical-align: middle; | 
					
						
							|  |  |  |     background-image: var(--#{$prefix}navbar-toggler-icon-bg); | 
					
						
							|  |  |  |     background-repeat: no-repeat; | 
					
						
							|  |  |  |     background-position: center; | 
					
						
							|  |  |  |     background-size: 100%; | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2016-12-22 14:10:44 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-29 03:47:04 +08:00
										 |  |  |   .navbar-nav-scroll { | 
					
						
							|  |  |  |     max-height: var(--#{$prefix}scroll-height, 75vh); | 
					
						
							|  |  |  |     overflow-y: auto; | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2021-01-19 13:32:18 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-29 03:47:04 +08:00
										 |  |  |   // scss-docs-start navbar-expand-loop
 | 
					
						
							|  |  |  |   // Generate series of `.navbar-expand-*` responsive classes for configuring
 | 
					
						
							|  |  |  |   // where your navbar collapses.
 | 
					
						
							|  |  |  |   .navbar-expand { | 
					
						
							|  |  |  |     @each $breakpoint in map.keys($grid-breakpoints) { | 
					
						
							|  |  |  |       $next: breakpoint-next($breakpoint, $grid-breakpoints); | 
					
						
							|  |  |  |       $infix: breakpoint-infix($next, $grid-breakpoints); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       // stylelint-disable-next-line scss/selector-no-union-class-name
 | 
					
						
							|  |  |  |       &#{$infix} { | 
					
						
							|  |  |  |         @include media-breakpoint-up($next) { | 
					
						
							|  |  |  |           flex-wrap: nowrap; | 
					
						
							|  |  |  |           justify-content: flex-start; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           .navbar-nav { | 
					
						
							|  |  |  |             flex-direction: row; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             .dropdown-menu { | 
					
						
							|  |  |  |               position: absolute; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             .nav-link { | 
					
						
							|  |  |  |               padding-right: var(--#{$prefix}navbar-nav-link-padding-x); | 
					
						
							|  |  |  |               padding-left: var(--#{$prefix}navbar-nav-link-padding-x); | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2017-06-04 23:56:51 +08:00
										 |  |  |           } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-29 03:47:04 +08:00
										 |  |  |           .navbar-nav-scroll { | 
					
						
							|  |  |  |             overflow: visible; | 
					
						
							| 
									
										
										
										
											2016-12-29 09:16:27 +08:00
										 |  |  |           } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-29 03:47:04 +08:00
										 |  |  |           .navbar-collapse { | 
					
						
							|  |  |  |             display: flex !important; // stylelint-disable-line declaration-no-important
 | 
					
						
							|  |  |  |             flex-basis: auto; | 
					
						
							|  |  |  |           } | 
					
						
							| 
									
										
										
										
											2021-04-02 01:24:17 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-29 03:47:04 +08:00
										 |  |  |           .navbar-toggler { | 
					
						
							| 
									
										
											  
											
												v5.2.0 design refresh, plus responsive offcanvas classes (#35736)
* Add responsive offcanvas classes
- Updates navbar-expand classes to de-dupe some styles—these shouldn't interfere now.
- Adds some JS to the offcanvas component to help with responsiveness
Co-Authored-By: GeoSot <geo.sotis@gmail.com>
* Redesign homepage, docs, and examples
Homepage:
- New Bootstrap purple navbar
- Redesigned masthead
- Rewrote and redesigned homepage content
- Replace Copy text with icons like Bootstrap Icons site across all ClipboardJS instances
- Fixed padding issues in site footer
- Match homepage button styles to examples page, use gap instead of tons of responsive margin utils
Docs:
- New navbar, no more subnav. Migrated search and version picker into the main navbar and refreshed the design of it all, including the responsive toggles.
- New sidebar navigation is always expanded, and now features Bootstrap Icons alongside section headings
- Sidebar navigation autoscrolls to active link for better usability
- Subnav and navbar padding issues ironed out
- Enhanced the version picker in anticipation of v5.2: we can now link right to the same page in the previous version.
- Redesign callouts to add more color to our pages
- Collapse table of contents on mobile
- Cleanup and redesign button styles with CSS variables
- Update design for subnav version dropdown
- Update highlight and example to be full-width until md
- Improve the Added In badges
- Turn the ToC into a well on mobile
- Redesign code snippets to better house two action buttons
Examples:
- Redesign Examples page layout
- Add new example for responsive offcanvases in navbars
* Convert offcanvas to CSS vars
* Feat: add resize handler to Offcanvas.js.
If we could use as default the `.offcanvas` class without modifiers, we then, could add a simplified selector
The selector itself, ignores the .offcanvas class as it doesn't have any responsive behavior
The `aria-modal` addon is to protect us, selection backdrop elements
* Separate examples code, Add some selectors, fix stackblitz btn
Co-authored-by: GeoSot <geo.sotis@gmail.com>
											
										 
											2022-04-18 13:17:50 +08:00
										 |  |  |             display: none; | 
					
						
							|  |  |  |           } | 
					
						
							| 
									
										
										
										
											2021-07-07 10:34:12 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-29 03:47:04 +08:00
										 |  |  |           .offcanvas { | 
					
						
							|  |  |  |             // stylelint-disable declaration-no-important
 | 
					
						
							|  |  |  |             position: static; | 
					
						
							|  |  |  |             z-index: auto; | 
					
						
							|  |  |  |             flex-grow: 1; | 
					
						
							|  |  |  |             width: auto !important; | 
					
						
							|  |  |  |             height: auto !important; | 
					
						
							|  |  |  |             visibility: visible !important; | 
					
						
							|  |  |  |             background-color: transparent !important; | 
					
						
							|  |  |  |             border: 0 !important; | 
					
						
							|  |  |  |             transform: none !important; | 
					
						
							|  |  |  |             @include box-shadow(none); | 
					
						
							|  |  |  |             @include transition(none); | 
					
						
							|  |  |  |             // stylelint-enable declaration-no-important
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             .offcanvas-header { | 
					
						
							|  |  |  |               display: none; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             .offcanvas-body { | 
					
						
							|  |  |  |               display: flex; | 
					
						
							|  |  |  |               flex-grow: 0; | 
					
						
							|  |  |  |               padding: 0; | 
					
						
							|  |  |  |               overflow-y: visible; | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
											  
											
												v5.2.0 design refresh, plus responsive offcanvas classes (#35736)
* Add responsive offcanvas classes
- Updates navbar-expand classes to de-dupe some styles—these shouldn't interfere now.
- Adds some JS to the offcanvas component to help with responsiveness
Co-Authored-By: GeoSot <geo.sotis@gmail.com>
* Redesign homepage, docs, and examples
Homepage:
- New Bootstrap purple navbar
- Redesigned masthead
- Rewrote and redesigned homepage content
- Replace Copy text with icons like Bootstrap Icons site across all ClipboardJS instances
- Fixed padding issues in site footer
- Match homepage button styles to examples page, use gap instead of tons of responsive margin utils
Docs:
- New navbar, no more subnav. Migrated search and version picker into the main navbar and refreshed the design of it all, including the responsive toggles.
- New sidebar navigation is always expanded, and now features Bootstrap Icons alongside section headings
- Sidebar navigation autoscrolls to active link for better usability
- Subnav and navbar padding issues ironed out
- Enhanced the version picker in anticipation of v5.2: we can now link right to the same page in the previous version.
- Redesign callouts to add more color to our pages
- Collapse table of contents on mobile
- Cleanup and redesign button styles with CSS variables
- Update design for subnav version dropdown
- Update highlight and example to be full-width until md
- Improve the Added In badges
- Turn the ToC into a well on mobile
- Redesign code snippets to better house two action buttons
Examples:
- Redesign Examples page layout
- Add new example for responsive offcanvases in navbars
* Convert offcanvas to CSS vars
* Feat: add resize handler to Offcanvas.js.
If we could use as default the `.offcanvas` class without modifiers, we then, could add a simplified selector
The selector itself, ignores the .offcanvas class as it doesn't have any responsive behavior
The `aria-modal` addon is to protect us, selection backdrop elements
* Separate examples code, Add some selectors, fix stackblitz btn
Co-authored-by: GeoSot <geo.sotis@gmail.com>
											
										 
											2022-04-18 13:17:50 +08:00
										 |  |  |           } | 
					
						
							| 
									
										
										
										
											2021-07-07 10:34:12 +08:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2016-12-29 09:16:27 +08:00
										 |  |  |       } | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2016-12-22 04:27:18 +08:00
										 |  |  |   } | 
					
						
							| 
									
										
										
										
											2025-08-29 03:47:04 +08:00
										 |  |  |   // scss-docs-end navbar-expand-loop
 | 
					
						
							| 
									
										
										
										
											2016-12-22 04:27:18 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-29 03:47:04 +08:00
										 |  |  |   // Navbar themes
 | 
					
						
							|  |  |  |   //
 | 
					
						
							|  |  |  |   // Styles for switching between navbars with light or dark background.
 | 
					
						
							| 
									
										
										
										
											2016-12-29 09:16:27 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-29 03:47:04 +08:00
										 |  |  |   .navbar-light { | 
					
						
							|  |  |  |     @include deprecate("`.navbar-light`", "v5.2.0", "v6.0.0", true); | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2021-07-20 12:13:39 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-29 03:47:04 +08:00
										 |  |  |   .navbar-dark, | 
					
						
							|  |  |  |   .navbar[data-bs-theme="dark"] { | 
					
						
							|  |  |  |     // scss-docs-start navbar-dark-css-vars
 | 
					
						
							|  |  |  |     --#{$prefix}navbar-color: #{$navbar-dark-color}; | 
					
						
							|  |  |  |     --#{$prefix}navbar-hover-color: #{$navbar-dark-hover-color}; | 
					
						
							|  |  |  |     --#{$prefix}navbar-disabled-color: #{$navbar-dark-disabled-color}; | 
					
						
							|  |  |  |     --#{$prefix}navbar-active-color: #{$navbar-dark-active-color}; | 
					
						
							|  |  |  |     --#{$prefix}navbar-brand-color: #{$navbar-dark-brand-color}; | 
					
						
							|  |  |  |     --#{$prefix}navbar-brand-hover-color: #{$navbar-dark-brand-hover-color}; | 
					
						
							|  |  |  |     --#{$prefix}navbar-toggler-border-color: #{$navbar-dark-toggler-border-color}; | 
					
						
							|  |  |  |     --#{$prefix}navbar-toggler-icon-bg: #{escape-svg($navbar-dark-toggler-icon-bg)}; | 
					
						
							|  |  |  |     // scss-docs-end navbar-dark-css-vars
 | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
											  
											
												Add dark mode support (#35857)
* Add dark mode to docs
* Minor fix: missing space indentation
* Minor fix: revert utilities/z-index added-in modification
* Remove prev: and next: from doc because extracted to another PR
* Use .bg-body-tertiary in all Utilities > Overflow examples
* fix example
* Fix up spacing examples
* Update box-shadow Sass variables and utilities to auto-adjust to color modes
* Remove unused docs class
* Refactor form styles to use CSS variable for background images on .form-check and .form-switch
* Fix docs selector
* Rename shortcut for clarity
* Heading consistency
* Reintroduce missing 4th grid item in Utilities > Spacing example
* Fix bundlewatch
* .bd-callout* rendering is OK so removing comments in the code
* Update scss/_utilities.scss
Co-authored-by: Julien Déramond <julien.deramond@orange.com>
* Fix gutters example styling
* Fix text colors on background utils docs
* redesign and fix up position marker example, which doesn't show nicely in darkmode but at least isn't broken
* fix some color utils examples
* Deprecate mixin notice
* Deprecate notice for list-group-item-variant() mixin
* Revamp new link CSS vars
* Use map-keys in some each Sass files
* Remove list-group-item-variant mixin ref in sass loop desc
* Display CSS vars scoped to our built-in dark mode
* Revert previous commit
* Fix list group variant link
* Fix typo
* Remove imports of alert/list-group mixins in scss/_mixins.scss
* Small formatting + comments removal in scss/_content.scss
* Fix alert links colors
* fix dropdown border-radius mixin
* fix link color and underline again, this time using CSS var override for color var and fallback value for the underline
* fix colors on docs navbar for dark mode
* remove two changes
* missing ref
* another link underline fix, just use sass vars for link decoration for now
* missing color bg docs, plus move dropdown override to scss
* more changes from review
* fix some examples, drop unused docs navbar styles, update docs navbar color mode to use mixin
* Few fixes around type
- Restored CSS variable for color on headings, this time with a fallback value
- In conjunction, restored and wrapped the default CSS var with a null value check
- Split headings and paragraphs docs in Reboot, elaborated on them
* Restyle custom details > summary element in docs
* Rewrite some migration docs
* fix form checks
* Fix up some navbar styling, tweak docs callout
* Fix select images, mostly for validation styling
* Clean up some migration notes, document some new form control CSS vars, mention new variables-dark in sass docs
* Update site/content/docs/5.2/components/scrollspy.md
Co-authored-by: Julien Déramond <julien.deramond@orange.com>
* Apply suggestions from code review
Co-authored-by: Julien Déramond <julien.deramond@orange.com>
* mention form control css vars in migration guide
* Tweak grid and flex docs background examples
* clarify some docs
* fix some more things
Co-authored-by: Julien Déramond <juderamond@gmail.com>
Co-authored-by: Julien Déramond <julien.deramond@orange.com>
											
										 
											2022-11-29 14:30:26 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-29 03:47:04 +08:00
										 |  |  |   @if $enable-dark-mode { | 
					
						
							|  |  |  |     @include color-mode(dark) { | 
					
						
							|  |  |  |       .navbar-toggler-icon { | 
					
						
							|  |  |  |         --#{$prefix}navbar-toggler-icon-bg: #{escape-svg($navbar-dark-toggler-icon-bg)}; | 
					
						
							|  |  |  |       } | 
					
						
							| 
									
										
											  
											
												Add dark mode support (#35857)
* Add dark mode to docs
* Minor fix: missing space indentation
* Minor fix: revert utilities/z-index added-in modification
* Remove prev: and next: from doc because extracted to another PR
* Use .bg-body-tertiary in all Utilities > Overflow examples
* fix example
* Fix up spacing examples
* Update box-shadow Sass variables and utilities to auto-adjust to color modes
* Remove unused docs class
* Refactor form styles to use CSS variable for background images on .form-check and .form-switch
* Fix docs selector
* Rename shortcut for clarity
* Heading consistency
* Reintroduce missing 4th grid item in Utilities > Spacing example
* Fix bundlewatch
* .bd-callout* rendering is OK so removing comments in the code
* Update scss/_utilities.scss
Co-authored-by: Julien Déramond <julien.deramond@orange.com>
* Fix gutters example styling
* Fix text colors on background utils docs
* redesign and fix up position marker example, which doesn't show nicely in darkmode but at least isn't broken
* fix some color utils examples
* Deprecate mixin notice
* Deprecate notice for list-group-item-variant() mixin
* Revamp new link CSS vars
* Use map-keys in some each Sass files
* Remove list-group-item-variant mixin ref in sass loop desc
* Display CSS vars scoped to our built-in dark mode
* Revert previous commit
* Fix list group variant link
* Fix typo
* Remove imports of alert/list-group mixins in scss/_mixins.scss
* Small formatting + comments removal in scss/_content.scss
* Fix alert links colors
* fix dropdown border-radius mixin
* fix link color and underline again, this time using CSS var override for color var and fallback value for the underline
* fix colors on docs navbar for dark mode
* remove two changes
* missing ref
* another link underline fix, just use sass vars for link decoration for now
* missing color bg docs, plus move dropdown override to scss
* more changes from review
* fix some examples, drop unused docs navbar styles, update docs navbar color mode to use mixin
* Few fixes around type
- Restored CSS variable for color on headings, this time with a fallback value
- In conjunction, restored and wrapped the default CSS var with a null value check
- Split headings and paragraphs docs in Reboot, elaborated on them
* Restyle custom details > summary element in docs
* Rewrite some migration docs
* fix form checks
* Fix up some navbar styling, tweak docs callout
* Fix select images, mostly for validation styling
* Clean up some migration notes, document some new form control CSS vars, mention new variables-dark in sass docs
* Update site/content/docs/5.2/components/scrollspy.md
Co-authored-by: Julien Déramond <julien.deramond@orange.com>
* Apply suggestions from code review
Co-authored-by: Julien Déramond <julien.deramond@orange.com>
* mention form control css vars in migration guide
* Tweak grid and flex docs background examples
* clarify some docs
* fix some more things
Co-authored-by: Julien Déramond <juderamond@gmail.com>
Co-authored-by: Julien Déramond <julien.deramond@orange.com>
											
										 
											2022-11-29 14:30:26 +08:00
										 |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } |