1/* CSS behind nav_spacer() */
2@mixin nav-spacer() {
3  .nav {
4    /* Make sure nav container is flexbox (they aren't in BS3) */
5    display: flex !important;
6    display: -webkit-flex !important;
7    // Logic for horizontal nav (e.g., navs_tab(), etc)
8    &:not(.nav-stacked):not(.flex-column) {
9      float: none !important;
10      > .bslib-nav-spacer {
11        margin-left: auto !important;
12      }
13      /* .form-inline doesn't vertically align in BS3? */
14      > .form-inline {
15        margin-top: auto;
16        margin-bottom: auto;
17      }
18    }
19    // Logic for vertical nav (e.g., navs_pill_list())
20    &.nav-stacked {
21      flex-direction: column;
22      -webkit-flex-direction: column;
23      height: 100%;
24      > .bslib-nav-spacer {
25        margin-top: auto !important;
26      }
27    }
28  }
29}
30
31/* BS4+ uses this mixin for configurable breakpoints */
32@if mixin-exists("media-breakpoint-up") {
33  @include media-breakpoint-up(sm) {
34    @include nav-spacer();
35  }
36} @else {
37  /* BS3 default navbar breakpoint */
38  @media (min-width: 768px) {
39    @include nav-spacer();
40  }
41}
42