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
@@ -6,109 +6,149 @@
6
6
  // Base styles
7
7
  // --------------------------------------------------
8
8
 
9
- // Core
10
9
  .btn {
11
10
  display: inline-block;
12
- .ie7-inline-block();
13
- padding: 4px 12px;
14
11
  margin-bottom: 0; // For input.btn
15
- font-size: @baseFontSize;
16
- line-height: @baseLineHeight;
12
+ font-weight: @btn-font-weight;
17
13
  text-align: center;
18
14
  vertical-align: middle;
15
+ touch-action: manipulation;
19
16
  cursor: pointer;
20
- .buttonBackground(@btnBackground, @btnBackgroundHighlight, @grayDark, 0 1px 1px rgba(255,255,255,.75));
21
- border: 1px solid @btnBorder;
22
- *border: 0; // Remove the border to prevent IE7's black border on input:focus
23
- border-bottom-color: darken(@btnBorder, 10%);
24
- .border-radius(@baseBorderRadius);
25
- .ie7-restore-left-whitespace(); // Give IE7 some love
26
- .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)");
27
-
28
- // Hover/focus state
29
- &:hover,
30
- &:focus {
31
- color: @grayDark;
32
- text-decoration: none;
33
- background-position: 0 -15px;
34
-
35
- // transition is only when going to hover/focus, otherwise the background
36
- // behind the gradient (there for IE<=9 fallback) gets mismatched
37
- .transition(background-position .1s linear);
17
+ background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
18
+ border: 1px solid transparent;
19
+ white-space: nowrap;
20
+ .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @btn-border-radius-base);
21
+ .user-select(none);
22
+
23
+ &,
24
+ &:active,
25
+ &.active {
26
+ &:focus,
27
+ &.focus {
28
+ .tab-focus();
29
+ }
38
30
  }
39
31
 
40
- // Focus state for keyboard and accessibility
41
- &:focus {
42
- .tab-focus();
32
+ &:hover,
33
+ &:focus,
34
+ &.focus {
35
+ color: @btn-default-color;
36
+ text-decoration: none;
43
37
  }
44
38
 
45
- // Active state
46
- &.active,
47
- &:active {
48
- background-image: none;
39
+ &:active,
40
+ &.active {
49
41
  outline: 0;
50
- .box-shadow(~"inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05)");
42
+ background-image: none;
43
+ .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
51
44
  }
52
45
 
53
- // Disabled state
54
46
  &.disabled,
55
- &[disabled] {
56
- cursor: default;
57
- background-image: none;
58
- .opacity(65);
47
+ &[disabled],
48
+ fieldset[disabled] & {
49
+ cursor: @cursor-disabled;
50
+ .opacity(.65);
59
51
  .box-shadow(none);
60
52
  }
61
53
 
54
+ a& {
55
+ &.disabled,
56
+ fieldset[disabled] & {
57
+ pointer-events: none; // Future-proof disabling of clicks on `<a>` elements
58
+ }
59
+ }
62
60
  }
63
61
 
64
62
 
65
-
66
- // Button Sizes
63
+ // Alternate buttons
67
64
  // --------------------------------------------------
68
65
 
69
- // Large
70
- .btn-large {
71
- padding: @paddingLarge;
72
- font-size: @fontSizeLarge;
73
- .border-radius(@borderRadiusLarge);
66
+ .btn-default {
67
+ .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border);
74
68
  }
75
- .btn-large [class^="icon-"],
76
- .btn-large [class*=" icon-"] {
77
- margin-top: 4px;
69
+ .btn-primary {
70
+ .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border);
78
71
  }
79
-
80
- // Small
81
- .btn-small {
82
- padding: @paddingSmall;
83
- font-size: @fontSizeSmall;
84
- .border-radius(@borderRadiusSmall);
72
+ // Success appears as green
73
+ .btn-success {
74
+ .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border);
75
+ }
76
+ // Info appears as blue-green
77
+ .btn-info {
78
+ .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border);
85
79
  }
86
- .btn-small [class^="icon-"],
87
- .btn-small [class*=" icon-"] {
88
- margin-top: 0;
80
+ // Warning appears as orange
81
+ .btn-warning {
82
+ .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border);
89
83
  }
90
- .btn-mini [class^="icon-"],
91
- .btn-mini [class*=" icon-"] {
92
- margin-top: -1px;
84
+ // Danger and error appear as red
85
+ .btn-danger {
86
+ .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border);
93
87
  }
94
88
 
95
- // Mini
96
- .btn-mini {
97
- padding: @paddingMini;
98
- font-size: @fontSizeMini;
99
- .border-radius(@borderRadiusSmall);
89
+
90
+ // Link buttons
91
+ // -------------------------
92
+
93
+ // Make a button look and behave like a link
94
+ .btn-link {
95
+ color: @link-color;
96
+ font-weight: normal;
97
+ border-radius: 0;
98
+
99
+ &,
100
+ &:active,
101
+ &.active,
102
+ &[disabled],
103
+ fieldset[disabled] & {
104
+ background-color: transparent;
105
+ .box-shadow(none);
106
+ }
107
+ &,
108
+ &:hover,
109
+ &:focus,
110
+ &:active {
111
+ border-color: transparent;
112
+ }
113
+ &:hover,
114
+ &:focus {
115
+ color: @link-hover-color;
116
+ text-decoration: @link-hover-decoration;
117
+ background-color: transparent;
118
+ }
119
+ &[disabled],
120
+ fieldset[disabled] & {
121
+ &:hover,
122
+ &:focus {
123
+ color: @btn-link-disabled-color;
124
+ text-decoration: none;
125
+ }
126
+ }
127
+ }
128
+
129
+
130
+ // Button Sizes
131
+ // --------------------------------------------------
132
+
133
+ .btn-lg {
134
+ // line-height: ensure even-numbered height of button next to large input
135
+ .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @btn-border-radius-large);
136
+ }
137
+ .btn-sm {
138
+ // line-height: ensure proper height of button next to small input
139
+ .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);
140
+ }
141
+ .btn-xs {
142
+ .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);
100
143
  }
101
144
 
102
145
 
103
146
  // Block button
104
- // -------------------------
147
+ // --------------------------------------------------
105
148
 
106
149
  .btn-block {
107
150
  display: block;
108
151
  width: 100%;
109
- padding-left: 0;
110
- padding-right: 0;
111
- .box-sizing(border-box);
112
152
  }
113
153
 
114
154
  // Vertically space out multiple block buttons
@@ -124,105 +164,3 @@ input[type="button"] {
124
164
  width: 100%;
125
165
  }
126
166
  }
127
-
128
-
129
-
130
- // Alternate buttons
131
- // --------------------------------------------------
132
-
133
- // Provide *some* extra contrast for those who can get it
134
- .btn-primary.active,
135
- .btn-warning.active,
136
- .btn-danger.active,
137
- .btn-success.active,
138
- .btn-info.active,
139
- .btn-inverse.active {
140
- color: rgba(255,255,255,.75);
141
- }
142
-
143
- // Set the backgrounds
144
- // -------------------------
145
- .btn-primary {
146
- .buttonBackground(@btnPrimaryBackground, @btnPrimaryBackgroundHighlight);
147
- }
148
- // Warning appears are orange
149
- .btn-warning {
150
- .buttonBackground(@btnWarningBackground, @btnWarningBackgroundHighlight);
151
- }
152
- // Danger and error appear as red
153
- .btn-danger {
154
- .buttonBackground(@btnDangerBackground, @btnDangerBackgroundHighlight);
155
- }
156
- // Success appears as green
157
- .btn-success {
158
- .buttonBackground(@btnSuccessBackground, @btnSuccessBackgroundHighlight);
159
- }
160
- // Info appears as a neutral blue
161
- .btn-info {
162
- .buttonBackground(@btnInfoBackground, @btnInfoBackgroundHighlight);
163
- }
164
- // Inverse appears as dark gray
165
- .btn-inverse {
166
- .buttonBackground(@btnInverseBackground, @btnInverseBackgroundHighlight);
167
- }
168
-
169
-
170
- // Cross-browser Jank
171
- // --------------------------------------------------
172
-
173
- button.btn,
174
- input[type="submit"].btn {
175
-
176
- // Firefox 3.6 only I believe
177
- &::-moz-focus-inner {
178
- padding: 0;
179
- border: 0;
180
- }
181
-
182
- // IE7 has some default padding on button controls
183
- *padding-top: 3px;
184
- *padding-bottom: 3px;
185
-
186
- &.btn-large {
187
- *padding-top: 7px;
188
- *padding-bottom: 7px;
189
- }
190
- &.btn-small {
191
- *padding-top: 3px;
192
- *padding-bottom: 3px;
193
- }
194
- &.btn-mini {
195
- *padding-top: 1px;
196
- *padding-bottom: 1px;
197
- }
198
- }
199
-
200
-
201
- // Link buttons
202
- // --------------------------------------------------
203
-
204
- // Make a button look and behave like a link
205
- .btn-link,
206
- .btn-link:active,
207
- .btn-link[disabled] {
208
- background-color: transparent;
209
- background-image: none;
210
- .box-shadow(none);
211
- }
212
- .btn-link {
213
- border-color: transparent;
214
- cursor: pointer;
215
- color: @linkColor;
216
- .border-radius(0);
217
- }
218
- .btn-link:hover,
219
- .btn-link:focus {
220
- color: @linkColorHover;
221
- text-decoration: underline;
222
- background-color: transparent;
223
- }
224
- .btn-link[disabled]:hover,
225
- .btn-link[disabled]:focus {
226
- color: @grayDark;
227
- text-decoration: none;
228
- }
@@ -3,19 +3,15 @@
3
3
  // --------------------------------------------------
4
4
 
5
5
 
6
+ // Wrapper for the slide container and indicators
6
7
  .carousel {
7
8
  position: relative;
8
- margin-bottom: @baseLineHeight;
9
- line-height: 1;
10
9
  }
11
10
 
12
11
  .carousel-inner {
12
+ position: relative;
13
13
  overflow: hidden;
14
14
  width: 100%;
15
- position: relative;
16
- }
17
-
18
- .carousel-inner {
19
15
 
20
16
  > .item {
21
17
  display: none;
@@ -25,14 +21,40 @@
25
21
  // Account for jankitude on images
26
22
  > img,
27
23
  > a > img {
28
- display: block;
24
+ &:extend(.img-responsive);
29
25
  line-height: 1;
30
26
  }
27
+
28
+ // WebKit CSS3 transforms for supported devices
29
+ @media all and (transform-3d), (-webkit-transform-3d) {
30
+ .transition-transform(~'0.6s ease-in-out');
31
+ .backface-visibility(~'hidden');
32
+ .perspective(1000px);
33
+
34
+ &.next,
35
+ &.active.right {
36
+ .translate3d(100%, 0, 0);
37
+ left: 0;
38
+ }
39
+ &.prev,
40
+ &.active.left {
41
+ .translate3d(-100%, 0, 0);
42
+ left: 0;
43
+ }
44
+ &.next.left,
45
+ &.prev.right,
46
+ &.active {
47
+ .translate3d(0, 0, 0);
48
+ left: 0;
49
+ }
50
+ }
31
51
  }
32
52
 
33
53
  > .active,
34
54
  > .next,
35
- > .prev { display: block; }
55
+ > .prev {
56
+ display: block;
57
+ }
36
58
 
37
59
  > .active {
38
60
  left: 0;
@@ -70,89 +92,179 @@
70
92
 
71
93
  .carousel-control {
72
94
  position: absolute;
73
- top: 40%;
74
- left: 15px;
75
- width: 40px;
76
- height: 40px;
77
- margin-top: -20px;
78
- font-size: 60px;
79
- font-weight: 100;
80
- line-height: 30px;
81
- color: @white;
95
+ top: 0;
96
+ left: 0;
97
+ bottom: 0;
98
+ width: @carousel-control-width;
99
+ .opacity(@carousel-control-opacity);
100
+ font-size: @carousel-control-font-size;
101
+ color: @carousel-control-color;
82
102
  text-align: center;
83
- background: @grayDarker;
84
- border: 3px solid @white;
85
- .border-radius(23px);
86
- .opacity(50);
87
-
88
- // we can't have this transition here
89
- // because webkit cancels the carousel
90
- // animation if you trip this while
91
- // in the middle of another animation
92
- // ;_;
93
- // .transition(opacity .2s linear);
94
-
95
- // Reposition the right one
103
+ text-shadow: @carousel-text-shadow;
104
+ background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug
105
+ // We can't have this transition here because WebKit cancels the carousel
106
+ // animation if you trip this while in the middle of another animation.
107
+
108
+ // Set gradients for backgrounds
109
+ &.left {
110
+ #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001));
111
+ }
96
112
  &.right {
97
113
  left: auto;
98
- right: 15px;
114
+ right: 0;
115
+ #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5));
99
116
  }
100
117
 
101
118
  // Hover/focus state
102
119
  &:hover,
103
120
  &:focus {
104
- color: @white;
121
+ outline: 0;
122
+ color: @carousel-control-color;
105
123
  text-decoration: none;
106
- .opacity(90);
124
+ .opacity(.9);
125
+ }
126
+
127
+ // Toggles
128
+ .icon-prev,
129
+ .icon-next,
130
+ .glyphicon-chevron-left,
131
+ .glyphicon-chevron-right {
132
+ position: absolute;
133
+ top: 50%;
134
+ margin-top: -10px;
135
+ z-index: 5;
136
+ display: inline-block;
137
+ }
138
+ .icon-prev,
139
+ .glyphicon-chevron-left {
140
+ left: 50%;
141
+ margin-left: -10px;
142
+ }
143
+ .icon-next,
144
+ .glyphicon-chevron-right {
145
+ right: 50%;
146
+ margin-right: -10px;
147
+ }
148
+ .icon-prev,
149
+ .icon-next {
150
+ width: 20px;
151
+ height: 20px;
152
+ line-height: 1;
153
+ font-family: serif;
154
+ }
155
+
156
+
157
+ .icon-prev {
158
+ &:before {
159
+ content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)
160
+ }
161
+ }
162
+ .icon-next {
163
+ &:before {
164
+ content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)
165
+ }
107
166
  }
108
167
  }
109
168
 
110
- // Carousel indicator pips
111
- // -----------------------------
169
+ // Optional indicator pips
170
+ //
171
+ // Add an unordered list with the following class and add a list item for each
172
+ // slide your carousel holds.
173
+
112
174
  .carousel-indicators {
113
175
  position: absolute;
114
- top: 15px;
115
- right: 15px;
116
- z-index: 5;
117
- margin: 0;
176
+ bottom: 10px;
177
+ left: 50%;
178
+ z-index: 15;
179
+ width: 60%;
180
+ margin-left: -30%;
181
+ padding-left: 0;
118
182
  list-style: none;
183
+ text-align: center;
119
184
 
120
185
  li {
121
- display: block;
122
- float: left;
123
- width: 10px;
186
+ display: inline-block;
187
+ width: 10px;
124
188
  height: 10px;
125
- margin-left: 5px;
189
+ margin: 1px;
126
190
  text-indent: -999px;
127
- background-color: #ccc;
128
- background-color: rgba(255,255,255,.25);
129
- border-radius: 5px;
191
+ border: 1px solid @carousel-indicator-border-color;
192
+ border-radius: 10px;
193
+ cursor: pointer;
194
+
195
+ // IE8-9 hack for event handling
196
+ //
197
+ // Internet Explorer 8-9 does not support clicks on elements without a set
198
+ // `background-color`. We cannot use `filter` since that's not viewed as a
199
+ // background color by the browser. Thus, a hack is needed.
200
+ // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer
201
+ //
202
+ // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we
203
+ // set alpha transparency for the best results possible.
204
+ background-color: #000 \9; // IE8
205
+ background-color: rgba(0,0,0,0); // IE9
130
206
  }
131
207
  .active {
132
- background-color: #fff;
208
+ margin: 0;
209
+ width: 12px;
210
+ height: 12px;
211
+ background-color: @carousel-indicator-active-bg;
133
212
  }
134
213
  }
135
214
 
136
- // Caption for text below images
215
+ // Optional captions
137
216
  // -----------------------------
138
-
217
+ // Hidden by default for smaller viewports
139
218
  .carousel-caption {
140
219
  position: absolute;
141
- left: 0;
142
- right: 0;
143
- bottom: 0;
144
- padding: 15px;
145
- background: @grayDark;
146
- background: rgba(0,0,0,.75);
147
- }
148
- .carousel-caption h4,
149
- .carousel-caption p {
150
- color: @white;
151
- line-height: @baseLineHeight;
152
- }
153
- .carousel-caption h4 {
154
- margin: 0 0 5px;
220
+ left: 15%;
221
+ right: 15%;
222
+ bottom: 20px;
223
+ z-index: 10;
224
+ padding-top: 20px;
225
+ padding-bottom: 20px;
226
+ color: @carousel-caption-color;
227
+ text-align: center;
228
+ text-shadow: @carousel-text-shadow;
229
+ & .btn {
230
+ text-shadow: none; // No shadow for button elements in carousel-caption
231
+ }
155
232
  }
156
- .carousel-caption p {
157
- margin-bottom: 0;
233
+
234
+
235
+ // Scale up controls for tablets and up
236
+ @media screen and (min-width: @screen-sm-min) {
237
+
238
+ // Scale up the controls a smidge
239
+ .carousel-control {
240
+ .glyphicon-chevron-left,
241
+ .glyphicon-chevron-right,
242
+ .icon-prev,
243
+ .icon-next {
244
+ width: (@carousel-control-font-size * 1.5);
245
+ height: (@carousel-control-font-size * 1.5);
246
+ margin-top: (@carousel-control-font-size / -2);
247
+ font-size: (@carousel-control-font-size * 1.5);
248
+ }
249
+ .glyphicon-chevron-left,
250
+ .icon-prev {
251
+ margin-left: (@carousel-control-font-size / -2);
252
+ }
253
+ .glyphicon-chevron-right,
254
+ .icon-next {
255
+ margin-right: (@carousel-control-font-size / -2);
256
+ }
257
+ }
258
+
259
+ // Show and left align the captions
260
+ .carousel-caption {
261
+ left: 20%;
262
+ right: 20%;
263
+ padding-bottom: 30px;
264
+ }
265
+
266
+ // Move up the indicators
267
+ .carousel-indicators {
268
+ bottom: 20px;
269
+ }
158
270
  }