diff --git a/scss/_mixins.scss b/scss/_mixins.scss index eec085789..af1f74f72 100644 --- a/scss/_mixins.scss +++ b/scss/_mixins.scss @@ -22,6 +22,7 @@ // Components @import "mixins/alert"; +@import "mixins/backdrop"; @import "mixins/buttons"; @import "mixins/caret"; @import "mixins/pagination"; diff --git a/scss/_modal.scss b/scss/_modal.scss index 77473085c..21e1258f5 100644 --- a/scss/_modal.scss +++ b/scss/_modal.scss @@ -85,17 +85,7 @@ // Modal background .modal-backdrop { - position: fixed; - top: 0; - left: 0; - z-index: $zindex-modal-backdrop; - width: 100vw; - height: 100vh; - background-color: $modal-backdrop-bg; - - // Fade for backdrop - &.fade { opacity: 0; } - &.show { opacity: $modal-backdrop-opacity; } + @include overlay-backdrop($zindex-modal-backdrop, $modal-backdrop-bg, $modal-backdrop-opacity); } // Modal header diff --git a/scss/_offcanvas.scss b/scss/_offcanvas.scss index 91db68643..2ac723282 100644 --- a/scss/_offcanvas.scss +++ b/scss/_offcanvas.scss @@ -14,6 +14,10 @@ @include transition(transform $offcanvas-transition-duration ease-in-out); } +.offcanvas-backdrop { + @include overlay-backdrop($zindex-offcanvas, $offcanvas-backdrop-bg, $offcanvas-backdrop-opacity); +} + .offcanvas-header { display: flex; align-items: center; diff --git a/scss/_variables.scss b/scss/_variables.scss index 8abd75032..d8a65193e 100644 --- a/scss/_variables.scss +++ b/scss/_variables.scss @@ -1453,6 +1453,8 @@ $offcanvas-title-line-height: $modal-title-line-height !default; $offcanvas-bg-color: $modal-content-bg !default; $offcanvas-color: $modal-content-color !default; $offcanvas-box-shadow: $modal-content-box-shadow-xs !default; +$offcanvas-backdrop-bg: $modal-backdrop-bg !default; +$offcanvas-backdrop-opacity: $modal-backdrop-opacity !default; // scss-docs-end offcanvas-variables // Code diff --git a/scss/mixins/_backdrop.scss b/scss/mixins/_backdrop.scss new file mode 100644 index 000000000..ab57d4961 --- /dev/null +++ b/scss/mixins/_backdrop.scss @@ -0,0 +1,14 @@ +// Shared between modals and offcanvases +@mixin overlay-backdrop($zindex, $backdrop-bg, $backdrop-opacity) { + position: fixed; + top: 0; + left: 0; + z-index: $zindex-modal-backdrop; + width: 100vw; + height: 100vh; + background-color: $modal-backdrop-bg; + + // Fade for backdrop + &.fade { opacity: 0; } + &.show { opacity: $modal-backdrop-opacity; } +}