_nav.scss 2.33 KB
Newer Older
1
// Base class
2
//
3
// Kickstart any navigation component with a set of style resets. Works with
4
// `<nav>`s, `<ul>`s or `<ol>`s.
5

Mark Otto's avatar
Mark Otto committed
6
.nav {
Mark Otto's avatar
Mark Otto committed
7
  display: flex;
8
  flex-wrap: wrap;
9
  padding-left: 0;
Mark Otto's avatar
Mark Otto committed
10
  margin-bottom: 0;
11
  list-style: none;
Mark Otto's avatar
Mark Otto committed
12
13
14
}

.nav-link {
Mark Otto's avatar
Mark Otto committed
15
  display: block;
16
  padding: $nav-link-padding-y $nav-link-padding-x;
Mark Otto's avatar
Mark Otto committed
17
18
19
  @include font-size($nav-link-font-size);
  font-weight: $nav-link-font-weight;
  color: $nav-link-color;
20
  text-decoration: if($link-decoration == none, null, none);
21
  @include transition($nav-link-transition);
Mark Otto's avatar
Mark Otto committed
22

Mark Otto's avatar
Mark Otto committed
23
24
  &:hover,
  &:focus {
Mark Otto's avatar
Mark Otto committed
25
    color: $nav-link-hover-color;
26
    text-decoration: if($link-hover-decoration == underline, none, null);
Mark Otto's avatar
Mark Otto committed
27
28
  }

29
  // Disabled state lightens text
30
  &.disabled {
31
    color: $nav-link-disabled-color;
32
33
    pointer-events: none;
    cursor: default;
Mark Otto's avatar
Mark Otto committed
34
35
36
  }
}

37
//
Mark Otto's avatar
Mark Otto committed
38
// Tabs
39
//
40

41
.nav-tabs {
42
  border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;
43
44

  .nav-link {
45
    margin-bottom: -$nav-tabs-border-width;
46
    border: $nav-tabs-border-width solid transparent;
47
    @include border-top-radius($nav-tabs-border-radius);
Artur Kwiatkowski's avatar
Artur Kwiatkowski committed
48

Mark Otto's avatar
Mark Otto committed
49
50
    &:hover,
    &:focus {
51
      border-color: $nav-tabs-link-hover-border-color;
Artur Kwiatkowski's avatar
Artur Kwiatkowski committed
52
    }
53
54

    &.disabled {
55
      color: $nav-link-disabled-color;
56
57
      background-color: transparent;
      border-color: transparent;
58
    }
59
  }
Artur Kwiatkowski's avatar
Artur Kwiatkowski committed
60

61
  .nav-link.active,
62
  .nav-item.show .nav-link {
63
64
    color: $nav-tabs-link-active-color;
    background-color: $nav-tabs-link-active-bg;
65
    border-color: $nav-tabs-link-active-border-color;
Artur Kwiatkowski's avatar
Artur Kwiatkowski committed
66
  }
67
68
69
70
71
72
73

  .dropdown-menu {
    // Make dropdown border overlap tab border
    margin-top: -$nav-tabs-border-width;
    // Remove the top rounded corners here since there is a hard edge above the menu
    @include border-top-radius(0);
  }
74
75
}

76

77
78
79
//
// Pills
//
80

81
82
.nav-pills {
  .nav-link {
Mark Otto's avatar
Mark Otto committed
83
    @include border-radius($nav-pills-border-radius);
84
  }
85

86
87
88
  .nav-link.active,
  .show > .nav-link {
    color: $nav-pills-link-active-color;
Martijn Cuppens's avatar
Martijn Cuppens committed
89
    @include gradient-bg($nav-pills-link-active-bg);
90
  }
91
92
}

93
94
95
96
97
98

//
// Justified variants
//

.nav-fill {
99
  > .nav-link,
100
  .nav-item {
101
102
103
104
    flex: 1 1 auto;
    text-align: center;
  }
}
Mark Otto's avatar
Mark Otto committed
105

106
.nav-justified {
107
  > .nav-link,
108
  .nav-item {
109
    flex-basis: 0;
Mark Otto's avatar
Mark Otto committed
110
    flex-grow: 1;
111
    text-align: center;
112
113
114
115
  }
}


116
// Tabbable tabs
117
//
118
// Hide tabbable panes to start, show them when `.active`
119

120
121
122
123
.tab-content {
  > .tab-pane {
    display: none;
  }
Chris Rebert's avatar
Chris Rebert committed
124
125
126
  > .active {
    display: block;
  }
127
}