twitter-bootstrap-rails 2.2.3 → 3.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +460 -185
  3. data/Rakefile +7 -1
  4. data/app/assets/fonts/fontawesome-webfont.eot +0 -0
  5. data/app/assets/fonts/fontawesome-webfont.svg +640 -0
  6. data/app/assets/fonts/fontawesome-webfont.ttf +0 -0
  7. data/app/assets/fonts/fontawesome-webfont.woff +0 -0
  8. data/app/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  9. data/app/assets/fonts/glyphicons-halflings-regular.svg +229 -0
  10. data/app/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  11. data/app/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  12. data/app/assets/javascripts/twitter/bootstrap.js +12 -0
  13. data/app/assets/javascripts/twitter/bootstrap/affix.js +142 -0
  14. data/app/assets/javascripts/twitter/bootstrap/alert.js +92 -0
  15. data/app/assets/javascripts/twitter/bootstrap/button.js +110 -0
  16. data/app/assets/javascripts/twitter/bootstrap/carousel.js +223 -0
  17. data/app/assets/javascripts/twitter/bootstrap/collapse.js +170 -0
  18. data/app/assets/javascripts/twitter/bootstrap/dropdown.js +151 -0
  19. data/app/assets/javascripts/twitter/bootstrap/modal.js +280 -0
  20. data/app/assets/javascripts/twitter/bootstrap/popover.js +113 -0
  21. data/app/assets/javascripts/twitter/bootstrap/scrollspy.js +170 -0
  22. data/app/assets/javascripts/twitter/bootstrap/tab.js +128 -0
  23. data/app/assets/javascripts/twitter/bootstrap/tooltip.js +457 -0
  24. data/app/assets/javascripts/twitter/bootstrap/transition.js +59 -0
  25. data/{vendor → app}/assets/javascripts/twitter/bootstrap_ujs.js +0 -0
  26. data/app/assets/stylesheets/twitter-bootstrap-static/bootstrap.css.erb +1 -0
  27. data/app/assets/stylesheets/twitter-bootstrap-static/fontawesome.css.erb +2026 -0
  28. data/app/assets/stylesheets/twitter-bootstrap-static/sprites.css.erb +1 -0
  29. data/app/helpers/badge_label_helper.rb +16 -0
  30. data/app/helpers/bootstrap_flash_helper.rb +20 -6
  31. data/app/helpers/form_errors_helper.rb +22 -0
  32. data/app/helpers/glyph_helper.rb +13 -5
  33. data/app/helpers/modal_helper.rb +37 -20
  34. data/app/helpers/navbar_helper.rb +209 -0
  35. data/app/helpers/twitter_breadcrumbs_helper.rb +11 -2
  36. data/app/views/twitter-bootstrap/_breadcrumbs.html.erb +9 -9
  37. data/lib/generators/bootstrap/install/install_generator.rb +13 -8
  38. data/lib/generators/bootstrap/install/templates/bootstrap.coffee +2 -3
  39. data/lib/generators/bootstrap/install/templates/bootstrap.js +2 -3
  40. data/lib/generators/bootstrap/install/templates/bootstrap_and_overrides.less +14 -13
  41. data/lib/generators/bootstrap/install/templates/en.bootstrap.yml +11 -5
  42. data/lib/generators/bootstrap/layout/layout_generator.rb +1 -4
  43. data/lib/generators/bootstrap/layout/templates/layout.html.erb +34 -58
  44. data/lib/generators/bootstrap/layout/templates/layout.html.haml +25 -44
  45. data/lib/generators/bootstrap/layout/templates/layout.html.slim +20 -39
  46. data/lib/generators/bootstrap/partial/templates/_login.html.erb +2 -3
  47. data/lib/generators/bootstrap/themed/templates/_form.html.erb +30 -10
  48. data/lib/generators/bootstrap/themed/templates/_form.html.haml +10 -8
  49. data/lib/generators/bootstrap/themed/templates/_form.html.slim +11 -9
  50. data/lib/generators/bootstrap/themed/templates/edit.html.erb +1 -2
  51. data/lib/generators/bootstrap/themed/templates/edit.html.haml +1 -1
  52. data/lib/generators/bootstrap/themed/templates/edit.html.slim +2 -2
  53. data/lib/generators/bootstrap/themed/templates/index.html.erb +3 -3
  54. data/lib/generators/bootstrap/themed/templates/index.html.haml +3 -3
  55. data/lib/generators/bootstrap/themed/templates/index.html.slim +5 -6
  56. data/lib/generators/bootstrap/themed/templates/new.html.erb +1 -2
  57. data/lib/generators/bootstrap/themed/templates/new.html.haml +1 -1
  58. data/lib/generators/bootstrap/themed/templates/new.html.slim +2 -2
  59. data/lib/generators/bootstrap/themed/templates/show.html.erb +6 -8
  60. data/lib/generators/bootstrap/themed/templates/show.html.haml +5 -5
  61. data/lib/generators/bootstrap/themed/templates/show.html.slim +7 -8
  62. data/lib/generators/bootstrap/themed/templates/simple_form/_form.html.erb +5 -5
  63. data/lib/generators/bootstrap/themed/templates/simple_form/_form.html.haml +3 -3
  64. data/lib/generators/bootstrap/themed/templates/simple_form/_form.html.slim +4 -4
  65. data/lib/generators/bootstrap/themed/themed_generator.rb +4 -4
  66. data/lib/twitter-bootstrap-rails.rb +4 -4
  67. data/lib/twitter/bootstrap/rails/breadcrumbs.rb +69 -0
  68. data/lib/twitter/bootstrap/rails/engine.rb +17 -7
  69. data/lib/twitter/bootstrap/rails/version.rb +1 -1
  70. data/spec/lib/breadcrumbs_spec.rb +99 -0
  71. data/spec/lib/twitter_bootstrap_rails/badge_label_helper_spec.rb +30 -0
  72. data/spec/lib/twitter_bootstrap_rails/bootstrap_flash_helper_spec.rb +128 -0
  73. data/spec/lib/twitter_bootstrap_rails/form_errors_helper_spec.rb +148 -0
  74. data/spec/lib/twitter_bootstrap_rails/glyph_helper_spec.rb +24 -0
  75. data/spec/lib/twitter_bootstrap_rails/modal_helper_spec.rb +62 -0
  76. data/spec/lib/twitter_bootstrap_rails/navbar_helper_spec.rb +396 -0
  77. data/spec/lib/twitter_bootstrap_rails/uri_state_spec.rb +49 -0
  78. data/spec/spec_helper.rb +21 -0
  79. data/vendor/assets/stylesheets/twitter-bootstrap-static/bootstrap.css.erb +5990 -195
  80. data/vendor/static-source/bootstrap.less +0 -1
  81. data/vendor/static-source/fontawesome.less +7 -6
  82. data/vendor/static-source/sprites.less +3 -3
  83. data/vendor/toolkit/fontawesome/bordered-pulled.less +16 -0
  84. data/vendor/toolkit/fontawesome/core.less +11 -0
  85. data/vendor/toolkit/fontawesome/fixed-width.less +6 -0
  86. data/vendor/toolkit/fontawesome/font-awesome.less +17 -0
  87. data/vendor/toolkit/fontawesome/icons.less +552 -0
  88. data/vendor/toolkit/fontawesome/larger.less +13 -0
  89. data/vendor/toolkit/fontawesome/list.less +19 -0
  90. data/vendor/toolkit/fontawesome/mixins.less +25 -0
  91. data/vendor/toolkit/fontawesome/path.less +14 -0
  92. data/vendor/toolkit/fontawesome/rotated-flipped.less +20 -0
  93. data/vendor/toolkit/fontawesome/spinning.less +29 -0
  94. data/vendor/toolkit/fontawesome/stacked.less +20 -0
  95. data/vendor/toolkit/fontawesome/variables.less +561 -0
  96. data/vendor/toolkit/twitter/bootstrap/alerts.less +47 -58
  97. data/vendor/toolkit/twitter/bootstrap/badges.less +55 -0
  98. data/vendor/toolkit/twitter/bootstrap/bootstrap.less +26 -39
  99. data/vendor/toolkit/twitter/bootstrap/breadcrumbs.less +11 -9
  100. data/vendor/toolkit/twitter/bootstrap/button-groups.less +168 -152
  101. data/vendor/toolkit/twitter/bootstrap/buttons.less +101 -170
  102. data/vendor/toolkit/twitter/bootstrap/carousel.less +150 -65
  103. data/vendor/toolkit/twitter/bootstrap/close.less +20 -19
  104. data/vendor/toolkit/twitter/bootstrap/code.less +38 -30
  105. data/vendor/toolkit/twitter/bootstrap/component-animations.less +12 -3
  106. data/vendor/toolkit/twitter/bootstrap/dropdowns.less +124 -146
  107. data/vendor/toolkit/twitter/bootstrap/forms.less +401 -547
  108. data/vendor/toolkit/twitter/bootstrap/glyphicons.less +234 -0
  109. data/vendor/toolkit/twitter/bootstrap/grid.less +74 -11
  110. data/vendor/toolkit/twitter/bootstrap/input-groups.less +166 -0
  111. data/vendor/toolkit/twitter/bootstrap/jumbotron.less +48 -0
  112. data/vendor/toolkit/twitter/bootstrap/labels.less +64 -0
  113. data/vendor/toolkit/twitter/bootstrap/list-group.less +132 -0
  114. data/vendor/toolkit/twitter/bootstrap/media.less +8 -7
  115. data/vendor/toolkit/twitter/bootstrap/mixins.less +36 -699
  116. data/vendor/toolkit/twitter/bootstrap/mixins/alerts.less +14 -0
  117. data/vendor/toolkit/twitter/bootstrap/mixins/background-variant.less +8 -0
  118. data/vendor/toolkit/twitter/bootstrap/mixins/border-radius.less +18 -0
  119. data/vendor/toolkit/twitter/bootstrap/mixins/buttons.less +52 -0
  120. data/vendor/toolkit/twitter/bootstrap/mixins/center-block.less +7 -0
  121. data/vendor/toolkit/twitter/bootstrap/mixins/clearfix.less +22 -0
  122. data/vendor/toolkit/twitter/bootstrap/mixins/forms.less +85 -0
  123. data/vendor/toolkit/twitter/bootstrap/mixins/gradients.less +59 -0
  124. data/vendor/toolkit/twitter/bootstrap/mixins/grid-framework.less +91 -0
  125. data/vendor/toolkit/twitter/bootstrap/mixins/grid.less +122 -0
  126. data/vendor/toolkit/twitter/bootstrap/mixins/hide-text.less +21 -0
  127. data/vendor/toolkit/twitter/bootstrap/mixins/image.less +33 -0
  128. data/vendor/toolkit/twitter/bootstrap/mixins/labels.less +12 -0
  129. data/vendor/toolkit/twitter/bootstrap/mixins/list-group.less +29 -0
  130. data/vendor/toolkit/twitter/bootstrap/mixins/nav-divider.less +10 -0
  131. data/vendor/toolkit/twitter/bootstrap/mixins/nav-vertical-align.less +9 -0
  132. data/vendor/toolkit/twitter/bootstrap/mixins/opacity.less +8 -0
  133. data/vendor/toolkit/twitter/bootstrap/mixins/pagination.less +23 -0
  134. data/vendor/toolkit/twitter/bootstrap/mixins/panels.less +24 -0
  135. data/vendor/toolkit/twitter/bootstrap/mixins/progress-bar.less +10 -0
  136. data/vendor/toolkit/twitter/bootstrap/mixins/reset-filter.less +8 -0
  137. data/vendor/toolkit/twitter/bootstrap/mixins/resize.less +6 -0
  138. data/vendor/toolkit/twitter/bootstrap/mixins/responsive-visibility.less +15 -0
  139. data/vendor/toolkit/twitter/bootstrap/mixins/size.less +10 -0
  140. data/vendor/toolkit/twitter/bootstrap/mixins/tab-focus.less +9 -0
  141. data/vendor/toolkit/twitter/bootstrap/mixins/table-row.less +28 -0
  142. data/vendor/toolkit/twitter/bootstrap/mixins/text-emphasis.less +8 -0
  143. data/vendor/toolkit/twitter/bootstrap/mixins/text-overflow.less +8 -0
  144. data/vendor/toolkit/twitter/bootstrap/mixins/vendor-prefixes.less +224 -0
  145. data/vendor/toolkit/twitter/bootstrap/modals.less +109 -54
  146. data/vendor/toolkit/twitter/bootstrap/navbar.less +542 -384
  147. data/vendor/toolkit/twitter/bootstrap/navs.less +192 -359
  148. data/vendor/toolkit/twitter/bootstrap/normalize.less +425 -0
  149. data/vendor/toolkit/twitter/bootstrap/pager.less +46 -34
  150. data/vendor/toolkit/twitter/bootstrap/pagination.less +70 -105
  151. data/vendor/toolkit/twitter/bootstrap/panels.less +248 -0
  152. data/vendor/toolkit/twitter/bootstrap/popovers.less +61 -61
  153. data/vendor/toolkit/twitter/bootstrap/print.less +101 -0
  154. data/vendor/toolkit/twitter/bootstrap/progress-bars.less +51 -73
  155. data/vendor/toolkit/twitter/bootstrap/responsive-embed.less +34 -0
  156. data/vendor/toolkit/twitter/bootstrap/responsive-utilities.less +177 -42
  157. data/vendor/toolkit/twitter/bootstrap/scaffolding.less +120 -23
  158. data/vendor/toolkit/twitter/bootstrap/tables.less +171 -182
  159. data/vendor/toolkit/twitter/bootstrap/theme.less +260 -0
  160. data/vendor/toolkit/twitter/bootstrap/thumbnails.less +26 -43
  161. data/vendor/toolkit/twitter/bootstrap/tooltip.less +49 -24
  162. data/vendor/toolkit/twitter/bootstrap/type.less +208 -147
  163. data/vendor/toolkit/twitter/bootstrap/utilities.less +33 -7
  164. data/vendor/toolkit/twitter/bootstrap/variables.less +761 -215
  165. data/vendor/toolkit/twitter/bootstrap/wells.less +7 -7
  166. metadata +199 -92
  167. data/lib/generators/bootstrap/partial/templates/_navbar.html.erb +0 -13
  168. data/lib/twitter/bootstrap/rails/twitter-bootstrap-breadcrumbs.rb +0 -42
  169. data/test/lib/breadcrumbs_test.rb +0 -75
  170. data/test/test_helper.rb +0 -8
  171. data/vendor/assets/fonts/fontawesome-webfont.eot +0 -0
  172. data/vendor/assets/fonts/fontawesome-webfont.ttf +0 -0
  173. data/vendor/assets/fonts/fontawesome-webfont.woff +0 -0
  174. data/vendor/assets/images/twitter/bootstrap/glyphicons-halflings-white.png +0 -0
  175. data/vendor/assets/images/twitter/bootstrap/glyphicons-halflings.png +0 -0
  176. data/vendor/assets/javascripts/twitter/bootstrap.js +0 -13
  177. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-affix.js +0 -117
  178. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-alert.js +0 -99
  179. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-button.js +0 -105
  180. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-carousel.js +0 -207
  181. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-collapse.js +0 -167
  182. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-dropdown.js +0 -165
  183. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-modal.js +0 -247
  184. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-popover.js +0 -114
  185. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-scrollspy.js +0 -162
  186. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-tab.js +0 -144
  187. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-tooltip.js +0 -353
  188. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-transition.js +0 -60
  189. data/vendor/assets/javascripts/twitter/bootstrap/bootstrap-typeahead.js +0 -335
  190. data/vendor/assets/stylesheets/twitter-bootstrap-static/fontawesome.css.erb +0 -531
  191. data/vendor/assets/stylesheets/twitter-bootstrap-static/sprites.css.erb +0 -146
  192. data/vendor/toolkit/fontawesome-ie7.less +0 -350
  193. data/vendor/toolkit/fontawesome.less +0 -532
  194. data/vendor/toolkit/twitter/bootstrap/accordion.less +0 -34
  195. data/vendor/toolkit/twitter/bootstrap/hero-unit.less +0 -25
  196. data/vendor/toolkit/twitter/bootstrap/labels-badges.less +0 -84
  197. data/vendor/toolkit/twitter/bootstrap/layouts.less +0 -16
  198. data/vendor/toolkit/twitter/bootstrap/reset.less +0 -216
  199. data/vendor/toolkit/twitter/bootstrap/responsive-1200px-min.less +0 -28
  200. data/vendor/toolkit/twitter/bootstrap/responsive-767px-max.less +0 -193
  201. data/vendor/toolkit/twitter/bootstrap/responsive-768px-979px.less +0 -19
  202. data/vendor/toolkit/twitter/bootstrap/responsive-navbar.less +0 -189
  203. data/vendor/toolkit/twitter/bootstrap/responsive.less +0 -48
  204. 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: not-allowed;
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
  }