Subversion Repositories Integrator Subversion

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 espaco 1
//
2
// Navbars
3
// --------------------------------------------------
4
 
5
 
6
// Wrapper and base class
7
//
8
// Provide a static navbar from which we expand to create full-width, fixed, and
9
// other navbar variations.
10
 
11
.navbar {
12
  position: relative;
13
  min-height: $navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)
14
  margin-bottom: $navbar-margin-bottom;
15
  border: 1px solid transparent;
16
 
17
  // Prevent floats from breaking the navbar
18
  @include clearfix;
19
 
20
  @media (min-width: $grid-float-breakpoint) {
21
    border-radius: $navbar-border-radius;
22
  }
23
}
24
 
25
 
26
// Navbar heading
27
//
28
// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy
29
// styling of responsive aspects.
30
 
31
.navbar-header {
32
  @include clearfix;
33
 
34
  @media (min-width: $grid-float-breakpoint) {
35
    float: left;
36
  }
37
}
38
 
39
 
40
// Navbar collapse (body)
41
//
42
// Group your navbar content into this for easy collapsing and expanding across
43
// various device sizes. By default, this content is collapsed when <768px, but
44
// will expand past that for a horizontal display.
45
//
46
// To start (on mobile devices) the navbar links, forms, and buttons are stacked
47
// vertically and include a `max-height` to overflow in case you have too much
48
// content for the user's viewport.
49
 
50
.navbar-collapse {
51
  overflow-x: visible;
52
  padding-right: $navbar-padding-horizontal;
53
  padding-left:  $navbar-padding-horizontal;
54
  border-top: 1px solid transparent;
55
  box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
56
  @include clearfix;
57
  -webkit-overflow-scrolling: touch;
58
 
59
  &.in {
60
    overflow-y: auto;
61
  }
62
 
63
  @media (min-width: $grid-float-breakpoint) {
64
    width: auto;
65
    border-top: 0;
66
    box-shadow: none;
67
 
68
    &.collapse {
69
      display: block !important;
70
      height: auto !important;
71
      padding-bottom: 0; // Override default setting
72
      overflow: visible !important;
73
    }
74
 
75
    &.in {
76
      overflow-y: visible;
77
    }
78
 
79
    // Undo the collapse side padding for navbars with containers to ensure
80
    // alignment of right-aligned contents.
81
    .navbar-fixed-top &,
82
    .navbar-static-top &,
83
    .navbar-fixed-bottom & {
84
      padding-left: 0;
85
      padding-right: 0;
86
    }
87
  }
88
}
89
 
90
.navbar-fixed-top,
91
.navbar-fixed-bottom {
92
  .navbar-collapse {
93
    max-height: $navbar-collapse-max-height;
94
 
95
    @media (max-device-width: $screen-xs-min) and (orientation: landscape) {
96
      max-height: 200px;
97
    }
98
  }
99
}
100
 
101
 
102
// Both navbar header and collapse
103
//
104
// When a container is present, change the behavior of the header and collapse.
105
 
106
.container,
107
.container-fluid {
108
  > .navbar-header,
109
  > .navbar-collapse {
110
    margin-right: -$navbar-padding-horizontal;
111
    margin-left:  -$navbar-padding-horizontal;
112
 
113
    @media (min-width: $grid-float-breakpoint) {
114
      margin-right: 0;
115
      margin-left:  0;
116
    }
117
  }
118
}
119
 
120
 
121
//
122
// Navbar alignment options
123
//
124
// Display the navbar across the entirety of the page or fixed it to the top or
125
// bottom of the page.
126
 
127
// Static top (unfixed, but 100% wide) navbar
128
.navbar-static-top {
129
  z-index: $zindex-navbar;
130
  border-width: 0 0 1px;
131
 
132
  @media (min-width: $grid-float-breakpoint) {
133
    border-radius: 0;
134
  }
135
}
136
 
137
// Fix the top/bottom navbars when screen real estate supports it
138
.navbar-fixed-top,
139
.navbar-fixed-bottom {
140
  position: fixed;
141
  right: 0;
142
  left: 0;
143
  z-index: $zindex-navbar-fixed;
144
 
145
  // Undo the rounded corners
146
  @media (min-width: $grid-float-breakpoint) {
147
    border-radius: 0;
148
  }
149
}
150
.navbar-fixed-top {
151
  top: 0;
152
  border-width: 0 0 1px;
153
}
154
.navbar-fixed-bottom {
155
  bottom: 0;
156
  margin-bottom: 0; // override .navbar defaults
157
  border-width: 1px 0 0;
158
}
159
 
160
 
161
// Brand/project name
162
 
163
.navbar-brand {
164
  float: left;
165
  padding: $navbar-padding-vertical $navbar-padding-horizontal;
166
  font-size: $font-size-large;
167
  line-height: $line-height-computed;
168
  height: $navbar-height;
169
 
170
  &:hover,
171
  &:focus {
172
    text-decoration: none;
173
  }
174
 
175
  > img {
176
    display: block;
177
  }
178
 
179
  @media (min-width: $grid-float-breakpoint) {
180
    .navbar > .container &,
181
    .navbar > .container-fluid & {
182
      margin-left: -$navbar-padding-horizontal;
183
    }
184
  }
185
}
186
 
187
 
188
// Navbar toggle
189
//
190
// Custom button for toggling the `.navbar-collapse`, powered by the collapse
191
// JavaScript plugin.
192
 
193
.navbar-toggle {
194
  position: relative;
195
  float: right;
196
  margin-right: $navbar-padding-horizontal;
197
  padding: 9px 10px;
198
  @include navbar-vertical-align(34px);
199
  background-color: transparent;
200
  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
201
  border: 1px solid transparent;
202
  border-radius: $border-radius-base;
203
 
204
  // We remove the `outline` here, but later compensate by attaching `:hover`
205
  // styles to `:focus`.
206
  &:focus {
207
    outline: 0;
208
  }
209
 
210
  // Bars
211
  .icon-bar {
212
    display: block;
213
    width: 22px;
214
    height: 2px;
215
    border-radius: 1px;
216
  }
217
  .icon-bar + .icon-bar {
218
    margin-top: 4px;
219
  }
220
 
221
  @media (min-width: $grid-float-breakpoint) {
222
    display: none;
223
  }
224
}
225
 
226
 
227
// Navbar nav links
228
//
229
// Builds on top of the `.nav` components with its own modifier class to make
230
// the nav the full height of the horizontal nav (above 768px).
231
 
232
.navbar-nav {
233
  margin: ($navbar-padding-vertical / 2) (-$navbar-padding-horizontal);
234
 
235
  > li > a {
236
    padding-top:    10px;
237
    padding-bottom: 10px;
238
    line-height: $line-height-computed;
239
  }
240
 
241
  @media (max-width: $grid-float-breakpoint-max) {
242
    // Dropdowns get custom display when collapsed
243
    .open .dropdown-menu {
244
      position: static;
245
      float: none;
246
      width: auto;
247
      margin-top: 0;
248
      background-color: transparent;
249
      border: 0;
250
      box-shadow: none;
251
      > li > a,
252
      .dropdown-header {
253
        padding: 5px 15px 5px 25px;
254
      }
255
      > li > a {
256
        line-height: $line-height-computed;
257
        &:hover,
258
        &:focus {
259
          background-image: none;
260
        }
261
      }
262
    }
263
  }
264
 
265
  // Uncollapse the nav
266
  @media (min-width: $grid-float-breakpoint) {
267
    float: left;
268
    margin: 0;
269
 
270
    > li {
271
      float: left;
272
      > a {
273
        padding-top:    $navbar-padding-vertical;
274
        padding-bottom: $navbar-padding-vertical;
275
      }
276
    }
277
  }
278
}
279
 
280
 
281
// Navbar form
282
//
283
// Extension of the `.form-inline` with some extra flavor for optimum display in
284
// our navbars.
285
 
286
.navbar-form {
287
  margin-left: -$navbar-padding-horizontal;
288
  margin-right: -$navbar-padding-horizontal;
289
  padding: 10px $navbar-padding-horizontal;
290
  border-top: 1px solid transparent;
291
  border-bottom: 1px solid transparent;
292
  $shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);
293
  @include box-shadow($shadow);
294
 
295
  // Mixin behavior for optimum display
296
  @include form-inline;
297
 
298
  .form-group {
299
    @media (max-width: $grid-float-breakpoint-max) {
300
      margin-bottom: 5px;
301
 
302
      &:last-child {
303
        margin-bottom: 0;
304
      }
305
    }
306
  }
307
 
308
  // Vertically center in expanded, horizontal navbar
309
  @include navbar-vertical-align($input-height-base);
310
 
311
  // Undo 100% width for pull classes
312
  @media (min-width: $grid-float-breakpoint) {
313
    width: auto;
314
    border: 0;
315
    margin-left: 0;
316
    margin-right: 0;
317
    padding-top: 0;
318
    padding-bottom: 0;
319
    @include box-shadow(none);
320
  }
321
}
322
 
323
 
324
// Dropdown menus
325
 
326
// Menu position and menu carets
327
.navbar-nav > li > .dropdown-menu {
328
  margin-top: 0;
329
  @include border-top-radius(0);
330
}
331
// Menu position and menu caret support for dropups via extra dropup class
332
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
333
  margin-bottom: 0;
334
  @include border-top-radius($navbar-border-radius);
335
  @include border-bottom-radius(0);
336
}
337
 
338
 
339
// Buttons in navbars
340
//
341
// Vertically center a button within a navbar (when *not* in a form).
342
 
343
.navbar-btn {
344
  @include navbar-vertical-align($input-height-base);
345
 
346
  &.btn-sm {
347
    @include navbar-vertical-align($input-height-small);
348
  }
349
  &.btn-xs {
350
    @include navbar-vertical-align(22);
351
  }
352
}
353
 
354
 
355
// Text in navbars
356
//
357
// Add a class to make any element properly align itself vertically within the navbars.
358
 
359
.navbar-text {
360
  @include navbar-vertical-align($line-height-computed);
361
 
362
  @media (min-width: $grid-float-breakpoint) {
363
    float: left;
364
    margin-left: $navbar-padding-horizontal;
365
    margin-right: $navbar-padding-horizontal;
366
  }
367
}
368
 
369
 
370
// Component alignment
371
//
372
// Repurpose the pull utilities as their own navbar utilities to avoid specificity
373
// issues with parents and chaining. Only do this when the navbar is uncollapsed
374
// though so that navbar contents properly stack and align in mobile.
375
//
376
// Declared after the navbar components to ensure more specificity on the margins.
377
 
378
@media (min-width: $grid-float-breakpoint) {
379
  .navbar-left {
380
    float: left !important;
381
  }
382
  .navbar-right {
383
    float: right !important;
384
  margin-right: -$navbar-padding-horizontal;
385
 
386
    ~ .navbar-right {
387
      margin-right: 0;
388
    }
389
  }
390
}
391
 
392
 
393
// Alternate navbars
394
// --------------------------------------------------
395
 
396
// Default navbar
397
.navbar-default {
398
  background-color: $navbar-default-bg;
399
  border-color: $navbar-default-border;
400
 
401
  .navbar-brand {
402
    color: $navbar-default-brand-color;
403
    &:hover,
404
    &:focus {
405
      color: $navbar-default-brand-hover-color;
406
      background-color: $navbar-default-brand-hover-bg;
407
    }
408
  }
409
 
410
  .navbar-text {
411
    color: $navbar-default-color;
412
  }
413
 
414
  .navbar-nav {
415
    > li > a {
416
      color: $navbar-default-link-color;
417
 
418
      &:hover,
419
      &:focus {
420
        color: $navbar-default-link-hover-color;
421
        background-color: $navbar-default-link-hover-bg;
422
      }
423
    }
424
    > .active > a {
425
      &,
426
      &:hover,
427
      &:focus {
428
        color: $navbar-default-link-active-color;
429
        background-color: $navbar-default-link-active-bg;
430
      }
431
    }
432
    > .disabled > a {
433
      &,
434
      &:hover,
435
      &:focus {
436
        color: $navbar-default-link-disabled-color;
437
        background-color: $navbar-default-link-disabled-bg;
438
      }
439
    }
440
  }
441
 
442
  .navbar-toggle {
443
    border-color: $navbar-default-toggle-border-color;
444
    &:hover,
445
    &:focus {
446
      background-color: $navbar-default-toggle-hover-bg;
447
    }
448
    .icon-bar {
449
      background-color: $navbar-default-toggle-icon-bar-bg;
450
    }
451
  }
452
 
453
  .navbar-collapse,
454
  .navbar-form {
455
    border-color: $navbar-default-border;
456
  }
457
 
458
  // Dropdown menu items
459
  .navbar-nav {
460
    // Remove background color from open dropdown
461
    > .open > a {
462
      &,
463
      &:hover,
464
      &:focus {
465
        background-color: $navbar-default-link-active-bg;
466
        color: $navbar-default-link-active-color;
467
      }
468
    }
469
 
470
    @media (max-width: $grid-float-breakpoint-max) {
471
      // Dropdowns get custom display when collapsed
472
      .open .dropdown-menu {
473
        > li > a {
474
          color: $navbar-default-link-color;
475
          &:hover,
476
          &:focus {
477
            color: $navbar-default-link-hover-color;
478
            background-color: $navbar-default-link-hover-bg;
479
          }
480
        }
481
        > .active > a {
482
          &,
483
          &:hover,
484
          &:focus {
485
            color: $navbar-default-link-active-color;
486
            background-color: $navbar-default-link-active-bg;
487
          }
488
        }
489
        > .disabled > a {
490
          &,
491
          &:hover,
492
          &:focus {
493
            color: $navbar-default-link-disabled-color;
494
            background-color: $navbar-default-link-disabled-bg;
495
          }
496
        }
497
      }
498
    }
499
  }
500
 
501
 
502
  // Links in navbars
503
  //
504
  // Add a class to ensure links outside the navbar nav are colored correctly.
505
 
506
  .navbar-link {
507
    color: $navbar-default-link-color;
508
    &:hover {
509
      color: $navbar-default-link-hover-color;
510
    }
511
  }
512
 
513
  .btn-link {
514
    color: $navbar-default-link-color;
515
    &:hover,
516
    &:focus {
517
      color: $navbar-default-link-hover-color;
518
    }
519
    &[disabled],
520
    fieldset[disabled] & {
521
      &:hover,
522
      &:focus {
523
        color: $navbar-default-link-disabled-color;
524
      }
525
    }
526
  }
527
}
528
 
529
// Inverse navbar
530
 
531
.navbar-inverse {
532
  background-color: $navbar-inverse-bg;
533
  border-color: $navbar-inverse-border;
534
 
535
  .navbar-brand {
536
    color: $navbar-inverse-brand-color;
537
    &:hover,
538
    &:focus {
539
      color: $navbar-inverse-brand-hover-color;
540
      background-color: $navbar-inverse-brand-hover-bg;
541
    }
542
  }
543
 
544
  .navbar-text {
545
    color: $navbar-inverse-color;
546
  }
547
 
548
  .navbar-nav {
549
    > li > a {
550
      color: $navbar-inverse-link-color;
551
 
552
      &:hover,
553
      &:focus {
554
        color: $navbar-inverse-link-hover-color;
555
        background-color: $navbar-inverse-link-hover-bg;
556
      }
557
    }
558
    > .active > a {
559
      &,
560
      &:hover,
561
      &:focus {
562
        color: $navbar-inverse-link-active-color;
563
        background-color: $navbar-inverse-link-active-bg;
564
      }
565
    }
566
    > .disabled > a {
567
      &,
568
      &:hover,
569
      &:focus {
570
        color: $navbar-inverse-link-disabled-color;
571
        background-color: $navbar-inverse-link-disabled-bg;
572
      }
573
    }
574
  }
575
 
576
  // Darken the responsive nav toggle
577
  .navbar-toggle {
578
    border-color: $navbar-inverse-toggle-border-color;
579
    &:hover,
580
    &:focus {
581
      background-color: $navbar-inverse-toggle-hover-bg;
582
    }
583
    .icon-bar {
584
      background-color: $navbar-inverse-toggle-icon-bar-bg;
585
    }
586
  }
587
 
588
  .navbar-collapse,
589
  .navbar-form {
590
    border-color: darken($navbar-inverse-bg, 7%);
591
  }
592
 
593
  // Dropdowns
594
  .navbar-nav {
595
    > .open > a {
596
      &,
597
      &:hover,
598
      &:focus {
599
        background-color: $navbar-inverse-link-active-bg;
600
        color: $navbar-inverse-link-active-color;
601
      }
602
    }
603
 
604
    @media (max-width: $grid-float-breakpoint-max) {
605
      // Dropdowns get custom display
606
      .open .dropdown-menu {
607
        > .dropdown-header {
608
          border-color: $navbar-inverse-border;
609
        }
610
        .divider {
611
          background-color: $navbar-inverse-border;
612
        }
613
        > li > a {
614
          color: $navbar-inverse-link-color;
615
          &:hover,
616
          &:focus {
617
            color: $navbar-inverse-link-hover-color;
618
            background-color: $navbar-inverse-link-hover-bg;
619
          }
620
        }
621
        > .active > a {
622
          &,
623
          &:hover,
624
          &:focus {
625
            color: $navbar-inverse-link-active-color;
626
            background-color: $navbar-inverse-link-active-bg;
627
          }
628
        }
629
        > .disabled > a {
630
          &,
631
          &:hover,
632
          &:focus {
633
            color: $navbar-inverse-link-disabled-color;
634
            background-color: $navbar-inverse-link-disabled-bg;
635
          }
636
        }
637
      }
638
    }
639
  }
640
 
641
  .navbar-link {
642
    color: $navbar-inverse-link-color;
643
    &:hover {
644
      color: $navbar-inverse-link-hover-color;
645
    }
646
  }
647
 
648
  .btn-link {
649
    color: $navbar-inverse-link-color;
650
    &:hover,
651
    &:focus {
652
      color: $navbar-inverse-link-hover-color;
653
    }
654
    &[disabled],
655
    fieldset[disabled] & {
656
      &:hover,
657
      &:focus {
658
        color: $navbar-inverse-link-disabled-color;
659
      }
660
    }
661
  }
662
}