_navbar.scss 5.29 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
// Contents
//
// Navbar
// Navbar brand
// Navbar nav
// Navbar text
// Navbar divider
// Responsive navbar
// Navbar position
// Navbar themes


// Navbar
Mark Otto's avatar
Mark Otto committed
14
15
16
17
18
19
//
// Provide a static navbar from which we expand to create full-width, fixed, and
// other navbar variations.

.navbar {
  position: relative;
20
  display: flex;
21
  flex-direction: column;
Mark Otto's avatar
Mark Otto committed
22
  padding: $navbar-padding-y $navbar-padding-x;
23
24
25
26
27
28
29

  @include media-breakpoint-down(nth(map-keys($grid-breakpoints), 1)) {
    > .container {
      margin-right: 0;
      margin-left: 0;
    }
  }
Mark Otto's avatar
Mark Otto committed
30
31
}

32

33
// Navbar brand
Mark Otto's avatar
Mark Otto committed
34
//
35
// Used for brand, project, or site names.
Mark Otto's avatar
Mark Otto committed
36
37

.navbar-brand {
38
  display: inline-block;
39
  align-self: flex-start;
Mark Otto's avatar
Mark Otto committed
40
41
  padding-top: .25rem;
  padding-bottom: .25rem;
Mark Otto's avatar
Mark Otto committed
42
  margin-right: $navbar-padding-x;
Mark Otto's avatar
Mark Otto committed
43
  font-size: $font-size-lg;
44
  line-height: inherit;
Mark Otto's avatar
Mark Otto committed
45
  white-space: nowrap;
Mark Otto's avatar
Mark Otto committed
46

Mark Otto's avatar
Mark Otto committed
47
48
  @include hover-focus {
    text-decoration: none;
Mark Otto's avatar
Mark Otto committed
49
  }
50
}
Mark Otto's avatar
Mark Otto committed
51

Mark Otto's avatar
Mark Otto committed
52

53
54
55
56
57
58
59
60
61
62
63
64
65
// Navbar nav
//
// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).

.navbar-nav {
  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 {
    padding-right: 0;
Mark Otto's avatar
linting    
Mark Otto committed
66
    padding-left: 0;
Mark Otto's avatar
Mark Otto committed
67
68
69
70
  }
}


71
72
73
74
75
76
77
78
79
80
81
// Navbar text
//
//

.navbar-text {
  display: inline-block;
  padding-top:    .425rem;
  padding-bottom: .425rem;
}


82
// Responsive navbar
Mark Otto's avatar
Mark Otto committed
83
//
84
85
// Custom styles for responsive collapsing and toggling of navbar contents.
// Powered by the collapse Bootstrap JavaScript plugin.
Mark Otto's avatar
Mark Otto committed
86

Quy's avatar
Quy committed
87
// Button for toggling the navbar when in its collapsed state
Mark Otto's avatar
Mark Otto committed
88
.navbar-toggler {
89
  align-self: flex-start; // Prevent toggler from growing to full width when it's the only visible navbar child
Mark Otto's avatar
Mark Otto committed
90
  padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;
Mark Otto's avatar
Mark Otto committed
91
  font-size: $navbar-toggler-font-size;
Mark Otto's avatar
Mark Otto committed
92
  line-height: 1;
Mark Otto's avatar
Mark Otto committed
93
94
  background: transparent; // remove default button style
  border: $border-width solid transparent; // remove default button style
Mark Otto's avatar
Mark Otto committed
95
  @include border-radius($navbar-toggler-border-radius);
Mark Otto's avatar
Mark Otto committed
96

97
  @include hover-focus {
Mark Otto's avatar
Mark Otto committed
98
99
100
101
    text-decoration: none;
  }
}

Mark Otto's avatar
Mark Otto committed
102
103
104
105
106
107
108
// 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;
Mark Otto's avatar
linting    
Mark Otto committed
109
  content: "";
Mark Otto's avatar
Mark Otto committed
110
111
112
113
  background: no-repeat center center;
  background-size: 100% 100%;
}

114
115
116
117
// Generate series of `.navbar-toggleable-*` responsive classes for configuring
// where your navbar collapses.
.navbar-toggleable {
  @each $breakpoint in map-keys($grid-breakpoints) {
118
119
    $next: breakpoint-next($breakpoint, $grid-breakpoints);
    $infix: breakpoint-infix($next, $grid-breakpoints);
Mark Otto's avatar
Mark Otto committed
120

121
    &#{$infix} {
122
      @include media-breakpoint-down($breakpoint) {
123
124
125
126
127
128
129
130
131
132
133
134
135
        .navbar-nav {
          .dropdown-menu {
            position: static;
            float: none;
          }
        }

        > .container {
          padding-right: 0;
          padding-left: 0;
        }
      }

136
      @include media-breakpoint-up($next) {
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;

        .navbar-nav {
          flex-direction: row;

          .nav-link {
            padding-right: .5rem;
            padding-left: .5rem;
          }
        }

        // For nesting containers, have to redeclare for alignment purposes
        > .container {
          display: flex;
          flex-wrap: nowrap;
          align-items: center;
        }

        // scss-lint:disable ImportantRule
        .navbar-collapse {
          display: flex !important;
          width: 100%;
        }
        // scss-lint:enable ImportantRule

        .navbar-toggler {
          display: none;
        }
      }
    }
Mark Otto's avatar
Mark Otto committed
169
170
171
  }
}

172
173
174
175
176

// Navbar themes
//
// Styles for switching between navbars with light or dark background.

177
178
// Dark links against a light background
.navbar-light {
179
180
  .navbar-brand,
  .navbar-toggler {
181
    color: $navbar-light-active-color;
Chris Rebert's avatar
Chris Rebert committed
182

183
    @include hover-focus {
184
      color: $navbar-light-active-color;
Mark Otto's avatar
Mark Otto committed
185
186
187
    }
  }

188
189
190
  .navbar-nav {
    .nav-link {
      color: $navbar-light-color;
Mark Otto's avatar
Mark Otto committed
191

192
193
194
      @include hover-focus {
        color: $navbar-light-hover-color;
      }
195
196
197
198

      &.disabled {
        color: $navbar-light-disabled-color;
      }
199
    }
Mark Otto's avatar
Mark Otto committed
200

201
202
203
204
    .open > .nav-link,
    .active > .nav-link,
    .nav-link.open,
    .nav-link.active {
205
      color: $navbar-light-active-color;
206
207
    }
  }
Mark Otto's avatar
Mark Otto committed
208

209
  .navbar-toggler {
210
    border-color: $navbar-light-toggler-border;
211
212
  }

Mark Otto's avatar
Mark Otto committed
213
214
215
216
  .navbar-toggler-icon {
    background-image: $navbar-light-toggler-bg;
  }

217
218
219
  .navbar-text {
    color: $navbar-light-color;
  }
220
221
222
}

// White links against a dark background
223
.navbar-inverse {
224
225
  .navbar-brand,
  .navbar-toggler {
226
    color: $navbar-inverse-active-color;
Mark Otto's avatar
Mark Otto committed
227

228
    @include hover-focus {
229
      color: $navbar-inverse-active-color;
Mark Otto's avatar
Mark Otto committed
230
231
232
233
    }
  }

  .navbar-nav {
Mark Otto's avatar
Mark Otto committed
234
    .nav-link {
235
      color: $navbar-inverse-color;
Mark Otto's avatar
Mark Otto committed
236

237
      @include hover-focus {
238
        color: $navbar-inverse-hover-color;
Mark Otto's avatar
Mark Otto committed
239
      }
240
241

      &.disabled {
242
        color: $navbar-inverse-disabled-color;
243
      }
Mark Otto's avatar
Mark Otto committed
244
    }
Mark Otto's avatar
Mark Otto committed
245

Mark Otto's avatar
Mark Otto committed
246
247
248
249
    .open > .nav-link,
    .active > .nav-link,
    .nav-link.open,
    .nav-link.active {
250
      color: $navbar-inverse-active-color;
Mark Otto's avatar
Mark Otto committed
251
252
    }
  }
Mark Otto's avatar
Mark Otto committed
253

254
  .navbar-toggler {
255
    border-color: $navbar-inverse-toggler-border;
256
257
  }

Mark Otto's avatar
Mark Otto committed
258
259
260
261
  .navbar-toggler-icon {
    background-image: $navbar-inverse-toggler-bg;
  }

262
  .navbar-text {
263
    color: $navbar-inverse-color;
264
  }
Mark Otto's avatar
Mark Otto committed
265
}