twitter-bootstrap-rails 2.2.8 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of twitter-bootstrap-rails might be problematic. Click here for more details.

Files changed (185) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +229 -322
  3. data/Rakefile +4 -6
  4. data/app/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  5. data/app/assets/fonts/glyphicons-halflings-regular.svg +288 -0
  6. data/app/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  7. data/app/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  8. data/app/assets/fonts/glyphicons-halflings-regular.woff2 +0 -0
  9. data/app/assets/javascripts/twitter/bootstrap.js +12 -13
  10. data/app/assets/javascripts/twitter/bootstrap/affix.js +162 -0
  11. data/app/assets/javascripts/twitter/bootstrap/alert.js +94 -0
  12. data/app/assets/javascripts/twitter/bootstrap/button.js +120 -0
  13. data/app/assets/javascripts/twitter/bootstrap/carousel.js +237 -0
  14. data/app/assets/javascripts/twitter/bootstrap/collapse.js +211 -0
  15. data/app/assets/javascripts/twitter/bootstrap/dropdown.js +165 -0
  16. data/app/assets/javascripts/twitter/bootstrap/modal.js +337 -0
  17. data/app/assets/javascripts/twitter/bootstrap/popover.js +108 -0
  18. data/app/assets/javascripts/twitter/bootstrap/scrollspy.js +172 -0
  19. data/app/assets/javascripts/twitter/bootstrap/tab.js +155 -0
  20. data/app/assets/javascripts/twitter/bootstrap/tooltip.js +514 -0
  21. data/app/assets/javascripts/twitter/bootstrap/transition.js +59 -0
  22. data/app/assets/stylesheets/twitter-bootstrap-static/bootstrap.css.erb +1 -890
  23. data/app/assets/stylesheets/twitter-bootstrap-static/sprites.css.erb +1 -146
  24. data/app/helpers/bootstrap_flash_helper.rb +14 -7
  25. data/app/helpers/form_errors_helper.rb +22 -0
  26. data/app/helpers/glyph_helper.rb +12 -6
  27. data/app/helpers/modal_helper.rb +26 -22
  28. data/app/helpers/navbar_helper.rb +47 -32
  29. data/app/helpers/twitter_breadcrumbs_helper.rb +6 -2
  30. data/app/views/twitter-bootstrap/_breadcrumbs.html.erb +8 -8
  31. data/lib/generators/bootstrap/install/install_generator.rb +3 -2
  32. data/lib/generators/bootstrap/install/templates/bootstrap_and_overrides.css +3 -4
  33. data/lib/generators/bootstrap/install/templates/bootstrap_and_overrides.less +9 -18
  34. data/lib/generators/bootstrap/install/templates/en.bootstrap.yml +5 -0
  35. data/lib/generators/bootstrap/layout/layout_generator.rb +1 -4
  36. data/lib/generators/bootstrap/layout/templates/layout.html.erb +27 -48
  37. data/lib/generators/bootstrap/layout/templates/layout.html.haml +19 -34
  38. data/lib/generators/bootstrap/layout/templates/layout.html.slim +13 -30
  39. data/lib/generators/bootstrap/partial/templates/_login.html.erb +2 -3
  40. data/lib/generators/bootstrap/themed/templates/_form.html.erb +30 -10
  41. data/lib/generators/bootstrap/themed/templates/_form.html.haml +10 -8
  42. data/lib/generators/bootstrap/themed/templates/_form.html.slim +11 -9
  43. data/lib/generators/bootstrap/themed/templates/edit.html.slim +1 -1
  44. data/lib/generators/bootstrap/themed/templates/index.html.erb +4 -2
  45. data/lib/generators/bootstrap/themed/templates/index.html.haml +3 -2
  46. data/lib/generators/bootstrap/themed/templates/index.html.slim +6 -5
  47. data/lib/generators/bootstrap/themed/templates/new.html.slim +1 -1
  48. data/lib/generators/bootstrap/themed/templates/show.html.erb +5 -7
  49. data/lib/generators/bootstrap/themed/templates/show.html.haml +4 -4
  50. data/lib/generators/bootstrap/themed/templates/show.html.slim +6 -7
  51. data/lib/generators/bootstrap/themed/templates/simple_form/_form.html.erb +5 -5
  52. data/lib/generators/bootstrap/themed/templates/simple_form/_form.html.haml +3 -3
  53. data/lib/generators/bootstrap/themed/templates/simple_form/_form.html.slim +4 -4
  54. data/lib/generators/bootstrap/themed/themed_generator.rb +2 -2
  55. data/lib/twitter/bootstrap/rails/breadcrumbs.rb +69 -0
  56. data/lib/twitter/bootstrap/rails/engine.rb +17 -10
  57. data/lib/twitter/bootstrap/rails/version.rb +2 -2
  58. data/spec/lib/breadcrumbs_spec.rb +99 -0
  59. data/spec/lib/twitter_bootstrap_rails/badge_label_helper_spec.rb +12 -4
  60. data/spec/lib/twitter_bootstrap_rails/bootstrap_flash_helper_spec.rb +128 -0
  61. data/spec/lib/twitter_bootstrap_rails/form_errors_helper_spec.rb +148 -0
  62. data/spec/lib/twitter_bootstrap_rails/glyph_helper_spec.rb +24 -0
  63. data/spec/lib/twitter_bootstrap_rails/modal_helper_spec.rb +15 -15
  64. data/spec/lib/twitter_bootstrap_rails/navbar_helper_spec.rb +207 -173
  65. data/spec/lib/twitter_bootstrap_rails/uri_state_spec.rb +18 -16
  66. data/spec/spec_helper.rb +11 -1
  67. data/vendor/assets/stylesheets/twitter-bootstrap-static/bootstrap.css.erb +5796 -1
  68. data/vendor/static-source/bootstrap.less +0 -1
  69. data/vendor/static-source/sprites.less +1 -1
  70. data/vendor/toolkit/twitter/bootstrap/alerts.less +51 -57
  71. data/vendor/toolkit/twitter/bootstrap/badges.less +66 -0
  72. data/vendor/toolkit/twitter/bootstrap/bootstrap.less +29 -36
  73. data/vendor/toolkit/twitter/bootstrap/breadcrumbs.less +11 -9
  74. data/vendor/toolkit/twitter/bootstrap/button-groups.less +167 -152
  75. data/vendor/toolkit/twitter/bootstrap/buttons.less +107 -169
  76. data/vendor/toolkit/twitter/bootstrap/carousel.less +177 -65
  77. data/vendor/toolkit/twitter/bootstrap/close.less +21 -19
  78. data/vendor/toolkit/twitter/bootstrap/code.less +38 -30
  79. data/vendor/toolkit/twitter/bootstrap/component-animations.less +15 -4
  80. data/vendor/toolkit/twitter/bootstrap/dropdowns.less +120 -152
  81. data/vendor/toolkit/twitter/bootstrap/forms.less +470 -547
  82. data/vendor/toolkit/twitter/bootstrap/glyphicons.less +305 -0
  83. data/vendor/toolkit/twitter/bootstrap/grid.less +74 -11
  84. data/vendor/toolkit/twitter/bootstrap/input-groups.less +171 -0
  85. data/vendor/toolkit/twitter/bootstrap/jumbotron.less +54 -0
  86. data/vendor/toolkit/twitter/bootstrap/labels.less +64 -0
  87. data/vendor/toolkit/twitter/bootstrap/list-group.less +130 -0
  88. data/vendor/toolkit/twitter/bootstrap/media.less +40 -29
  89. data/vendor/toolkit/twitter/bootstrap/mixins.less +37 -699
  90. data/vendor/toolkit/twitter/bootstrap/mixins/alerts.less +14 -0
  91. data/vendor/toolkit/twitter/bootstrap/mixins/background-variant.less +9 -0
  92. data/vendor/toolkit/twitter/bootstrap/mixins/border-radius.less +18 -0
  93. data/vendor/toolkit/twitter/bootstrap/mixins/buttons.less +65 -0
  94. data/vendor/toolkit/twitter/bootstrap/mixins/center-block.less +7 -0
  95. data/vendor/toolkit/twitter/bootstrap/mixins/clearfix.less +22 -0
  96. data/vendor/toolkit/twitter/bootstrap/mixins/forms.less +85 -0
  97. data/vendor/toolkit/twitter/bootstrap/mixins/gradients.less +59 -0
  98. data/vendor/toolkit/twitter/bootstrap/mixins/grid-framework.less +91 -0
  99. data/vendor/toolkit/twitter/bootstrap/mixins/grid.less +122 -0
  100. data/vendor/toolkit/twitter/bootstrap/mixins/hide-text.less +21 -0
  101. data/vendor/toolkit/twitter/bootstrap/mixins/image.less +33 -0
  102. data/vendor/toolkit/twitter/bootstrap/mixins/labels.less +12 -0
  103. data/vendor/toolkit/twitter/bootstrap/mixins/list-group.less +30 -0
  104. data/vendor/toolkit/twitter/bootstrap/mixins/nav-divider.less +10 -0
  105. data/vendor/toolkit/twitter/bootstrap/mixins/nav-vertical-align.less +9 -0
  106. data/vendor/toolkit/twitter/bootstrap/mixins/opacity.less +8 -0
  107. data/vendor/toolkit/twitter/bootstrap/mixins/pagination.less +24 -0
  108. data/vendor/toolkit/twitter/bootstrap/mixins/panels.less +24 -0
  109. data/vendor/toolkit/twitter/bootstrap/mixins/progress-bar.less +10 -0
  110. data/vendor/toolkit/twitter/bootstrap/mixins/reset-filter.less +8 -0
  111. data/vendor/toolkit/twitter/bootstrap/mixins/reset-text.less +18 -0
  112. data/vendor/toolkit/twitter/bootstrap/mixins/resize.less +6 -0
  113. data/vendor/toolkit/twitter/bootstrap/mixins/responsive-visibility.less +15 -0
  114. data/vendor/toolkit/twitter/bootstrap/mixins/size.less +10 -0
  115. data/vendor/toolkit/twitter/bootstrap/mixins/tab-focus.less +9 -0
  116. data/vendor/toolkit/twitter/bootstrap/mixins/table-row.less +28 -0
  117. data/vendor/toolkit/twitter/bootstrap/mixins/text-emphasis.less +9 -0
  118. data/vendor/toolkit/twitter/bootstrap/mixins/text-overflow.less +8 -0
  119. data/vendor/toolkit/twitter/bootstrap/mixins/vendor-prefixes.less +227 -0
  120. data/vendor/toolkit/twitter/bootstrap/modals.less +109 -54
  121. data/vendor/toolkit/twitter/bootstrap/navbar.less +547 -384
  122. data/vendor/toolkit/twitter/bootstrap/navs.less +192 -359
  123. data/vendor/toolkit/twitter/bootstrap/normalize.less +424 -0
  124. data/vendor/toolkit/twitter/bootstrap/pager.less +45 -34
  125. data/vendor/toolkit/twitter/bootstrap/pagination.less +71 -105
  126. data/vendor/toolkit/twitter/bootstrap/panels.less +271 -0
  127. data/vendor/toolkit/twitter/bootstrap/popovers.less +66 -68
  128. data/vendor/toolkit/twitter/bootstrap/print.less +101 -0
  129. data/vendor/toolkit/twitter/bootstrap/progress-bars.less +40 -75
  130. data/vendor/toolkit/twitter/bootstrap/responsive-embed.less +35 -0
  131. data/vendor/toolkit/twitter/bootstrap/responsive-utilities.less +177 -42
  132. data/vendor/toolkit/twitter/bootstrap/scaffolding.less +131 -23
  133. data/vendor/toolkit/twitter/bootstrap/tables.less +172 -182
  134. data/vendor/toolkit/twitter/bootstrap/theme.less +291 -0
  135. data/vendor/toolkit/twitter/bootstrap/thumbnails.less +27 -44
  136. data/vendor/toolkit/twitter/bootstrap/tooltip.less +58 -27
  137. data/vendor/toolkit/twitter/bootstrap/type.less +209 -154
  138. data/vendor/toolkit/twitter/bootstrap/utilities.less +32 -7
  139. data/vendor/toolkit/twitter/bootstrap/variables.less +784 -216
  140. data/vendor/toolkit/twitter/bootstrap/wells.less +7 -7
  141. metadata +156 -141
  142. data/app/assets/fonts/fontawesome-webfont.eot +0 -0
  143. data/app/assets/fonts/fontawesome-webfont.svg +0 -399
  144. data/app/assets/fonts/fontawesome-webfont.ttf +0 -0
  145. data/app/assets/fonts/fontawesome-webfont.woff +0 -0
  146. data/app/assets/images/twitter/bootstrap/glyphicons-halflings-white.png +0 -0
  147. data/app/assets/images/twitter/bootstrap/glyphicons-halflings.png +0 -0
  148. data/app/assets/javascripts/twitter/bootstrap/bootstrap-affix.js +0 -117
  149. data/app/assets/javascripts/twitter/bootstrap/bootstrap-alert.js +0 -99
  150. data/app/assets/javascripts/twitter/bootstrap/bootstrap-button.js +0 -105
  151. data/app/assets/javascripts/twitter/bootstrap/bootstrap-carousel.js +0 -207
  152. data/app/assets/javascripts/twitter/bootstrap/bootstrap-collapse.js +0 -167
  153. data/app/assets/javascripts/twitter/bootstrap/bootstrap-dropdown.js +0 -169
  154. data/app/assets/javascripts/twitter/bootstrap/bootstrap-modal.js +0 -247
  155. data/app/assets/javascripts/twitter/bootstrap/bootstrap-popover.js +0 -114
  156. data/app/assets/javascripts/twitter/bootstrap/bootstrap-scrollspy.js +0 -162
  157. data/app/assets/javascripts/twitter/bootstrap/bootstrap-tab.js +0 -144
  158. data/app/assets/javascripts/twitter/bootstrap/bootstrap-tooltip.js +0 -361
  159. data/app/assets/javascripts/twitter/bootstrap/bootstrap-transition.js +0 -60
  160. data/app/assets/javascripts/twitter/bootstrap/bootstrap-typeahead.js +0 -335
  161. data/app/assets/stylesheets/twitter-bootstrap-static/fontawesome.css.erb +0 -787
  162. data/lib/twitter/bootstrap/rails/twitter-bootstrap-breadcrumbs.rb +0 -42
  163. data/test/lib/breadcrumbs_test.rb +0 -75
  164. data/test/test_helper.rb +0 -11
  165. data/vendor/static-source/fontawesome.less +0 -9
  166. data/vendor/toolkit/fontawesome/bootstrap.less +0 -84
  167. data/vendor/toolkit/fontawesome/core.less +0 -129
  168. data/vendor/toolkit/fontawesome/extras.less +0 -93
  169. data/vendor/toolkit/fontawesome/font-awesome-ie7.less +0 -1953
  170. data/vendor/toolkit/fontawesome/font-awesome.less +0 -33
  171. data/vendor/toolkit/fontawesome/icons.less +0 -381
  172. data/vendor/toolkit/fontawesome/mixins.less +0 -48
  173. data/vendor/toolkit/fontawesome/path.less +0 -14
  174. data/vendor/toolkit/fontawesome/variables.less +0 -735
  175. data/vendor/toolkit/twitter/bootstrap/accordion.less +0 -34
  176. data/vendor/toolkit/twitter/bootstrap/hero-unit.less +0 -25
  177. data/vendor/toolkit/twitter/bootstrap/labels-badges.less +0 -84
  178. data/vendor/toolkit/twitter/bootstrap/layouts.less +0 -16
  179. data/vendor/toolkit/twitter/bootstrap/reset.less +0 -216
  180. data/vendor/toolkit/twitter/bootstrap/responsive-1200px-min.less +0 -28
  181. data/vendor/toolkit/twitter/bootstrap/responsive-767px-max.less +0 -193
  182. data/vendor/toolkit/twitter/bootstrap/responsive-768px-979px.less +0 -19
  183. data/vendor/toolkit/twitter/bootstrap/responsive-navbar.less +0 -189
  184. data/vendor/toolkit/twitter/bootstrap/responsive.less +0 -48
  185. data/vendor/toolkit/twitter/bootstrap/sprites.less +0 -197
@@ -3,407 +3,240 @@
3
3
  // --------------------------------------------------
4
4
 
5
5
 
6
- // BASE CLASS
7
- // ----------
6
+ // Base class
7
+ // --------------------------------------------------
8
8
 
9
9
  .nav {
10
- margin-left: 0;
11
- margin-bottom: @baseLineHeight;
10
+ margin-bottom: 0;
11
+ padding-left: 0; // Override default ul/ol
12
12
  list-style: none;
13
- }
14
-
15
- // Make links block level
16
- .nav > li > a {
17
- display: block;
18
- }
19
- .nav > li > a:hover,
20
- .nav > li > a:focus {
21
- text-decoration: none;
22
- background-color: @grayLighter;
23
- }
24
-
25
- // Prevent IE8 from misplacing imgs
26
- // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989
27
- .nav > li > a > img {
28
- max-width: none;
29
- }
30
-
31
- // Redeclare pull classes because of specifity
32
- .nav > .pull-right {
33
- float: right;
34
- }
35
-
36
- // Nav headers (for dropdowns and lists)
37
- .nav-header {
38
- display: block;
39
- padding: 3px 15px;
40
- font-size: 11px;
41
- font-weight: bold;
42
- line-height: @baseLineHeight;
43
- color: @grayLight;
44
- text-shadow: 0 1px 0 rgba(255,255,255,.5);
45
- text-transform: uppercase;
46
- }
47
- // Space them out when they follow another list item (link)
48
- .nav li + .nav-header {
49
- margin-top: 9px;
50
- }
51
-
13
+ &:extend(.clearfix all);
14
+
15
+ > li {
16
+ position: relative;
17
+ display: block;
18
+
19
+ > a {
20
+ position: relative;
21
+ display: block;
22
+ padding: @nav-link-padding;
23
+ &:hover,
24
+ &:focus {
25
+ text-decoration: none;
26
+ background-color: @nav-link-hover-bg;
27
+ }
28
+ }
29
+
30
+ // Disabled state sets text to gray and nukes hover/tab effects
31
+ &.disabled > a {
32
+ color: @nav-disabled-link-color;
33
+
34
+ &:hover,
35
+ &:focus {
36
+ color: @nav-disabled-link-hover-color;
37
+ text-decoration: none;
38
+ background-color: transparent;
39
+ cursor: @cursor-disabled;
40
+ }
41
+ }
42
+ }
52
43
 
44
+ // Open dropdowns
45
+ .open > a {
46
+ &,
47
+ &:hover,
48
+ &:focus {
49
+ background-color: @nav-link-hover-bg;
50
+ border-color: @link-color;
51
+ }
52
+ }
53
53
 
54
- // NAV LIST
55
- // --------
54
+ // Nav dividers (deprecated with v3.0.1)
55
+ //
56
+ // This should have been removed in v3 with the dropping of `.nav-list`, but
57
+ // we missed it. We don't currently support this anywhere, but in the interest
58
+ // of maintaining backward compatibility in case you use it, it's deprecated.
59
+ .nav-divider {
60
+ .nav-divider();
61
+ }
56
62
 
57
- .nav-list {
58
- padding-left: 15px;
59
- padding-right: 15px;
60
- margin-bottom: 0;
61
- }
62
- .nav-list > li > a,
63
- .nav-list .nav-header {
64
- margin-left: -15px;
65
- margin-right: -15px;
66
- text-shadow: 0 1px 0 rgba(255,255,255,.5);
67
- }
68
- .nav-list > li > a {
69
- padding: 3px 15px;
70
- }
71
- .nav-list > .active > a,
72
- .nav-list > .active > a:hover,
73
- .nav-list > .active > a:focus {
74
- color: @white;
75
- text-shadow: 0 -1px 0 rgba(0,0,0,.2);
76
- background-color: @linkColor;
77
- }
78
- .nav-list [class^="icon-"],
79
- .nav-list [class*=" icon-"] {
80
- margin-right: 2px;
81
- }
82
- // Dividers (basically an hr) within the dropdown
83
- .nav-list .divider {
84
- .nav-divider();
63
+ // Prevent IE8 from misplacing imgs
64
+ //
65
+ // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989
66
+ > li > a > img {
67
+ max-width: none;
68
+ }
85
69
  }
86
70
 
87
71
 
88
-
89
- // TABS AND PILLS
90
- // -------------
91
-
92
- // Common styles
93
- .nav-tabs,
94
- .nav-pills {
95
- .clearfix();
96
- }
97
- .nav-tabs > li,
98
- .nav-pills > li {
99
- float: left;
100
- }
101
- .nav-tabs > li > a,
102
- .nav-pills > li > a {
103
- padding-right: 12px;
104
- padding-left: 12px;
105
- margin-right: 2px;
106
- line-height: 14px; // keeps the overall height an even number
107
- }
108
-
109
- // TABS
110
- // ----
72
+ // Tabs
73
+ // -------------------------
111
74
 
112
75
  // Give the tabs something to sit on
113
76
  .nav-tabs {
114
- border-bottom: 1px solid #ddd;
115
- }
116
- // Make the list-items overlay the bottom border
117
- .nav-tabs > li {
118
- margin-bottom: -1px;
119
- }
120
- // Actual tabs (as links)
121
- .nav-tabs > li > a {
122
- padding-top: 8px;
123
- padding-bottom: 8px;
124
- line-height: @baseLineHeight;
125
- border: 1px solid transparent;
126
- .border-radius(4px 4px 0 0);
127
- &:hover,
128
- &:focus {
129
- border-color: @grayLighter @grayLighter #ddd;
77
+ border-bottom: 1px solid @nav-tabs-border-color;
78
+ > li {
79
+ float: left;
80
+ // Make the list-items overlay the bottom border
81
+ margin-bottom: -1px;
82
+
83
+ // Actual tabs (as links)
84
+ > a {
85
+ margin-right: 2px;
86
+ line-height: @line-height-base;
87
+ border: 1px solid transparent;
88
+ border-radius: @border-radius-base @border-radius-base 0 0;
89
+ &:hover {
90
+ border-color: @nav-tabs-link-hover-border-color @nav-tabs-link-hover-border-color @nav-tabs-border-color;
91
+ }
92
+ }
93
+
94
+ // Active state, and its :hover to override normal :hover
95
+ &.active > a {
96
+ &,
97
+ &:hover,
98
+ &:focus {
99
+ color: @nav-tabs-active-link-hover-color;
100
+ background-color: @nav-tabs-active-link-hover-bg;
101
+ border: 1px solid @nav-tabs-active-link-hover-border-color;
102
+ border-bottom-color: transparent;
103
+ cursor: default;
104
+ }
105
+ }
106
+ }
107
+ // pulling this in mainly for less shorthand
108
+ &.nav-justified {
109
+ .nav-justified();
110
+ .nav-tabs-justified();
130
111
  }
131
- }
132
- // Active state, and it's :hover/:focus to override normal :hover/:focus
133
- .nav-tabs > .active > a,
134
- .nav-tabs > .active > a:hover,
135
- .nav-tabs > .active > a:focus {
136
- color: @gray;
137
- background-color: @bodyBackground;
138
- border: 1px solid #ddd;
139
- border-bottom-color: transparent;
140
- cursor: default;
141
- }
142
-
143
-
144
- // PILLS
145
- // -----
146
-
147
- // Links rendered as pills
148
- .nav-pills > li > a {
149
- padding-top: 8px;
150
- padding-bottom: 8px;
151
- margin-top: 2px;
152
- margin-bottom: 2px;
153
- .border-radius(5px);
154
- }
155
-
156
- // Active state
157
- .nav-pills > .active > a,
158
- .nav-pills > .active > a:hover,
159
- .nav-pills > .active > a:focus {
160
- color: @white;
161
- background-color: @linkColor;
162
- }
163
-
164
-
165
-
166
- // STACKED NAV
167
- // -----------
168
-
169
- // Stacked tabs and pills
170
- .nav-stacked > li {
171
- float: none;
172
- }
173
- .nav-stacked > li > a {
174
- margin-right: 0; // no need for the gap between nav items
175
112
  }
176
113
 
177
- // Tabs
178
- .nav-tabs.nav-stacked {
179
- border-bottom: 0;
180
- }
181
- .nav-tabs.nav-stacked > li > a {
182
- border: 1px solid #ddd;
183
- .border-radius(0);
184
- }
185
- .nav-tabs.nav-stacked > li:first-child > a {
186
- .border-top-radius(4px);
187
- }
188
- .nav-tabs.nav-stacked > li:last-child > a {
189
- .border-bottom-radius(4px);
190
- }
191
- .nav-tabs.nav-stacked > li > a:hover,
192
- .nav-tabs.nav-stacked > li > a:focus {
193
- border-color: #ddd;
194
- z-index: 2;
195
- }
196
114
 
197
115
  // Pills
198
- .nav-pills.nav-stacked > li > a {
199
- margin-bottom: 3px;
200
- }
201
- .nav-pills.nav-stacked > li:last-child > a {
202
- margin-bottom: 1px; // decrease margin to match sizing of stacked tabs
203
- }
204
-
205
-
206
-
207
- // DROPDOWNS
208
- // ---------
209
-
210
- .nav-tabs .dropdown-menu {
211
- .border-radius(0 0 6px 6px); // remove the top rounded corners here since there is a hard edge above the menu
212
- }
213
- .nav-pills .dropdown-menu {
214
- .border-radius(6px); // make rounded corners match the pills
215
- }
216
-
217
- // Default dropdown links
218
116
  // -------------------------
219
- // Make carets use linkColor to start
220
- .nav .dropdown-toggle .caret {
221
- border-top-color: @linkColor;
222
- border-bottom-color: @linkColor;
223
- margin-top: 6px;
224
- }
225
- .nav .dropdown-toggle:hover .caret,
226
- .nav .dropdown-toggle:focus .caret {
227
- border-top-color: @linkColorHover;
228
- border-bottom-color: @linkColorHover;
229
- }
230
- /* move down carets for tabs */
231
- .nav-tabs .dropdown-toggle .caret {
232
- margin-top: 8px;
233
- }
234
-
235
- // Active dropdown links
236
- // -------------------------
237
- .nav .active .dropdown-toggle .caret {
238
- border-top-color: #fff;
239
- border-bottom-color: #fff;
240
- }
241
- .nav-tabs .active .dropdown-toggle .caret {
242
- border-top-color: @gray;
243
- border-bottom-color: @gray;
117
+ .nav-pills {
118
+ > li {
119
+ float: left;
120
+
121
+ // Links rendered as pills
122
+ > a {
123
+ border-radius: @nav-pills-border-radius;
124
+ }
125
+ + li {
126
+ margin-left: 2px;
127
+ }
128
+
129
+ // Active state
130
+ &.active > a {
131
+ &,
132
+ &:hover,
133
+ &:focus {
134
+ color: @nav-pills-active-link-hover-color;
135
+ background-color: @nav-pills-active-link-hover-bg;
136
+ }
137
+ }
138
+ }
244
139
  }
245
140
 
246
- // Active:hover/:focus dropdown links
247
- // -------------------------
248
- .nav > .dropdown.active > a:hover,
249
- .nav > .dropdown.active > a:focus {
250
- cursor: pointer;
251
- }
252
141
 
253
- // Open dropdowns
254
- // -------------------------
255
- .nav-tabs .open .dropdown-toggle,
256
- .nav-pills .open .dropdown-toggle,
257
- .nav > li.dropdown.open.active > a:hover,
258
- .nav > li.dropdown.open.active > a:focus {
259
- color: @white;
260
- background-color: @grayLight;
261
- border-color: @grayLight;
262
- }
263
- .nav li.dropdown.open .caret,
264
- .nav li.dropdown.open.active .caret,
265
- .nav li.dropdown.open a:hover .caret,
266
- .nav li.dropdown.open a:focus .caret {
267
- border-top-color: @white;
268
- border-bottom-color: @white;
269
- .opacity(100);
142
+ // Stacked pills
143
+ .nav-stacked {
144
+ > li {
145
+ float: none;
146
+ + li {
147
+ margin-top: 2px;
148
+ margin-left: 0; // no need for this gap between nav items
149
+ }
150
+ }
270
151
  }
271
152
 
272
- // Dropdowns in stacked tabs
273
- .tabs-stacked .open > a:hover,
274
- .tabs-stacked .open > a:focus {
275
- border-color: @grayLight;
276
- }
277
153
 
154
+ // Nav variations
155
+ // --------------------------------------------------
278
156
 
157
+ // Justified nav links
158
+ // -------------------------
279
159
 
280
- // TABBABLE
281
- // --------
160
+ .nav-justified {
161
+ width: 100%;
282
162
 
163
+ > li {
164
+ float: none;
165
+ > a {
166
+ text-align: center;
167
+ margin-bottom: 5px;
168
+ }
169
+ }
283
170
 
284
- // COMMON STYLES
285
- // -------------
171
+ > .dropdown .dropdown-menu {
172
+ top: auto;
173
+ left: auto;
174
+ }
286
175
 
287
- // Clear any floats
288
- .tabbable {
289
- .clearfix();
290
- }
291
- .tab-content {
292
- overflow: auto; // prevent content from running below tabs
176
+ @media (min-width: @screen-sm-min) {
177
+ > li {
178
+ display: table-cell;
179
+ width: 1%;
180
+ > a {
181
+ margin-bottom: 0;
182
+ }
183
+ }
184
+ }
293
185
  }
294
186
 
295
- // Remove border on bottom, left, right
296
- .tabs-below > .nav-tabs,
297
- .tabs-right > .nav-tabs,
298
- .tabs-left > .nav-tabs {
187
+ // Move borders to anchors instead of bottom of list
188
+ //
189
+ // Mixin for adding on top the shared `.nav-justified` styles for our tabs
190
+ .nav-tabs-justified {
299
191
  border-bottom: 0;
300
- }
301
-
302
- // Show/hide tabbable areas
303
- .tab-content > .tab-pane,
304
- .pill-content > .pill-pane {
305
- display: none;
306
- }
307
- .tab-content > .active,
308
- .pill-content > .active {
309
- display: block;
310
- }
311
192
 
193
+ > li > a {
194
+ // Override margin from .nav-tabs
195
+ margin-right: 0;
196
+ border-radius: @border-radius-base;
197
+ }
312
198
 
313
- // BOTTOM
314
- // ------
199
+ > .active > a,
200
+ > .active > a:hover,
201
+ > .active > a:focus {
202
+ border: 1px solid @nav-tabs-justified-link-border-color;
203
+ }
315
204
 
316
- .tabs-below > .nav-tabs {
317
- border-top: 1px solid #ddd;
318
- }
319
- .tabs-below > .nav-tabs > li {
320
- margin-top: -1px;
321
- margin-bottom: 0;
322
- }
323
- .tabs-below > .nav-tabs > li > a {
324
- .border-radius(0 0 4px 4px);
325
- &:hover,
326
- &:focus {
327
- border-bottom-color: transparent;
328
- border-top-color: #ddd;
205
+ @media (min-width: @screen-sm-min) {
206
+ > li > a {
207
+ border-bottom: 1px solid @nav-tabs-justified-link-border-color;
208
+ border-radius: @border-radius-base @border-radius-base 0 0;
209
+ }
210
+ > .active > a,
211
+ > .active > a:hover,
212
+ > .active > a:focus {
213
+ border-bottom-color: @nav-tabs-justified-active-link-border-color;
214
+ }
329
215
  }
330
216
  }
331
- .tabs-below > .nav-tabs > .active > a,
332
- .tabs-below > .nav-tabs > .active > a:hover,
333
- .tabs-below > .nav-tabs > .active > a:focus {
334
- border-color: transparent #ddd #ddd #ddd;
335
- }
336
217
 
337
- // LEFT & RIGHT
338
- // ------------
339
218
 
340
- // Common styles
341
- .tabs-left > .nav-tabs > li,
342
- .tabs-right > .nav-tabs > li {
343
- float: none;
344
- }
345
- .tabs-left > .nav-tabs > li > a,
346
- .tabs-right > .nav-tabs > li > a {
347
- min-width: 74px;
348
- margin-right: 0;
349
- margin-bottom: 3px;
350
- }
351
-
352
- // Tabs on the left
353
- .tabs-left > .nav-tabs {
354
- float: left;
355
- margin-right: 19px;
356
- border-right: 1px solid #ddd;
357
- }
358
- .tabs-left > .nav-tabs > li > a {
359
- margin-right: -1px;
360
- .border-radius(4px 0 0 4px);
361
- }
362
- .tabs-left > .nav-tabs > li > a:hover,
363
- .tabs-left > .nav-tabs > li > a:focus {
364
- border-color: @grayLighter #ddd @grayLighter @grayLighter;
365
- }
366
- .tabs-left > .nav-tabs .active > a,
367
- .tabs-left > .nav-tabs .active > a:hover,
368
- .tabs-left > .nav-tabs .active > a:focus {
369
- border-color: #ddd transparent #ddd #ddd;
370
- *border-right-color: @white;
371
- }
219
+ // Tabbable tabs
220
+ // -------------------------
372
221
 
373
- // Tabs on the right
374
- .tabs-right > .nav-tabs {
375
- float: right;
376
- margin-left: 19px;
377
- border-left: 1px solid #ddd;
378
- }
379
- .tabs-right > .nav-tabs > li > a {
380
- margin-left: -1px;
381
- .border-radius(0 4px 4px 0);
382
- }
383
- .tabs-right > .nav-tabs > li > a:hover,
384
- .tabs-right > .nav-tabs > li > a:focus {
385
- border-color: @grayLighter @grayLighter @grayLighter #ddd;
386
- }
387
- .tabs-right > .nav-tabs .active > a,
388
- .tabs-right > .nav-tabs .active > a:hover,
389
- .tabs-right > .nav-tabs .active > a:focus {
390
- border-color: #ddd #ddd #ddd transparent;
391
- *border-left-color: @white;
222
+ // Hide tabbable panes to start, show them when `.active`
223
+ .tab-content {
224
+ > .tab-pane {
225
+ display: none;
226
+ }
227
+ > .active {
228
+ display: block;
229
+ }
392
230
  }
393
231
 
394
232
 
233
+ // Dropdowns
234
+ // -------------------------
395
235
 
396
- // DISABLED STATES
397
- // ---------------
398
-
399
- // Gray out text
400
- .nav > .disabled > a {
401
- color: @grayLight;
402
- }
403
- // Nuke hover/focus effects
404
- .nav > .disabled > a:hover,
405
- .nav > .disabled > a:focus {
406
- text-decoration: none;
407
- background-color: transparent;
408
- cursor: default;
236
+ // Specific dropdowns
237
+ .nav-tabs .dropdown-menu {
238
+ // make dropdown border overlap tab border
239
+ margin-top: -1px;
240
+ // Remove the top rounded corners here since there is a hard edge above the menu
241
+ .border-top-radius(0);
409
242
  }