twitter-bootstrap-rails 3.2.0 → 5.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 (148) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +263 -247
  3. data/app/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  4. data/app/assets/fonts/glyphicons-halflings-regular.svg +273 -214
  5. data/app/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  6. data/app/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  7. data/app/assets/fonts/glyphicons-halflings-regular.woff2 +0 -0
  8. data/app/assets/javascripts/twitter/bootstrap/affix.js +60 -35
  9. data/app/assets/javascripts/twitter/bootstrap/alert.js +15 -9
  10. data/app/assets/javascripts/twitter/bootstrap/button.js +33 -20
  11. data/app/assets/javascripts/twitter/bootstrap/carousel.js +79 -47
  12. data/app/assets/javascripts/twitter/bootstrap/collapse.js +84 -43
  13. data/app/assets/javascripts/twitter/bootstrap/dropdown.js +65 -47
  14. data/app/assets/javascripts/twitter/bootstrap/modal.js +138 -44
  15. data/app/assets/javascripts/twitter/bootstrap/popover.js +12 -14
  16. data/app/assets/javascripts/twitter/bootstrap/scrollspy.js +57 -38
  17. data/app/assets/javascripts/twitter/bootstrap/tab.js +54 -24
  18. data/app/assets/javascripts/twitter/bootstrap/tooltip.js +202 -87
  19. data/app/assets/javascripts/twitter/bootstrap/transition.js +19 -8
  20. data/app/assets/stylesheets/twitter-bootstrap-static/bootstrap.css.erb +1 -1
  21. data/app/assets/stylesheets/twitter-bootstrap-static/sprites.css.erb +1 -1
  22. data/app/helpers/bootstrap_flash_helper.rb +8 -3
  23. data/app/helpers/form_errors_helper.rb +11 -11
  24. data/app/helpers/glyph_helper.rb +7 -3
  25. data/app/helpers/modal_helper.rb +9 -13
  26. data/app/helpers/navbar_helper.rb +5 -2
  27. data/app/helpers/twitter_breadcrumbs_helper.rb +4 -1
  28. data/app/views/twitter-bootstrap/_breadcrumbs.html.erb +5 -5
  29. data/lib/generators/bootstrap/install/templates/bootstrap_and_overrides.css +3 -4
  30. data/lib/generators/bootstrap/install/templates/bootstrap_and_overrides.less +7 -15
  31. data/lib/generators/bootstrap/layout/templates/layout.html.erb +5 -5
  32. data/lib/generators/bootstrap/layout/templates/layout.html.haml +3 -3
  33. data/lib/generators/bootstrap/layout/templates/layout.html.slim +3 -5
  34. data/lib/generators/bootstrap/themed/templates/_form.html.erb +12 -9
  35. data/lib/generators/bootstrap/themed/templates/_form.html.haml +7 -5
  36. data/lib/generators/bootstrap/themed/templates/_form.html.slim +8 -6
  37. data/lib/generators/bootstrap/themed/templates/edit.html.slim +1 -1
  38. data/lib/generators/bootstrap/themed/templates/index.html.erb +2 -0
  39. data/lib/generators/bootstrap/themed/templates/index.html.haml +1 -0
  40. data/lib/generators/bootstrap/themed/templates/index.html.slim +4 -3
  41. data/lib/generators/bootstrap/themed/templates/new.html.slim +1 -1
  42. data/lib/generators/bootstrap/themed/templates/show.html.slim +1 -1
  43. data/lib/generators/bootstrap/themed/templates/simple_form/_form.html.haml +1 -1
  44. data/lib/twitter/bootstrap/rails/breadcrumbs.rb +24 -13
  45. data/lib/twitter/bootstrap/rails/engine.rb +17 -12
  46. data/lib/twitter/bootstrap/rails/version.rb +1 -1
  47. data/spec/lib/breadcrumbs_spec.rb +42 -17
  48. data/spec/lib/twitter_bootstrap_rails/badge_label_helper_spec.rb +10 -4
  49. data/spec/lib/twitter_bootstrap_rails/bootstrap_flash_helper_spec.rb +128 -0
  50. data/spec/lib/twitter_bootstrap_rails/form_errors_helper_spec.rb +148 -0
  51. data/spec/lib/twitter_bootstrap_rails/glyph_helper_spec.rb +24 -0
  52. data/spec/lib/twitter_bootstrap_rails/modal_helper_spec.rb +2 -2
  53. data/spec/lib/twitter_bootstrap_rails/navbar_helper_spec.rb +62 -12
  54. data/spec/spec_helper.rb +5 -1
  55. data/vendor/assets/stylesheets/twitter-bootstrap-static/bootstrap.css.erb +1 -3
  56. data/vendor/toolkit/twitter/bootstrap/alerts.less +5 -0
  57. data/vendor/toolkit/twitter/bootstrap/badges.less +14 -3
  58. data/vendor/toolkit/twitter/bootstrap/bootstrap.less +6 -1
  59. data/vendor/toolkit/twitter/bootstrap/breadcrumbs.less +0 -0
  60. data/vendor/toolkit/twitter/bootstrap/button-groups.less +13 -14
  61. data/vendor/toolkit/twitter/bootstrap/buttons.less +14 -7
  62. data/vendor/toolkit/twitter/bootstrap/carousel.less +34 -7
  63. data/vendor/toolkit/twitter/bootstrap/close.less +1 -0
  64. data/vendor/toolkit/twitter/bootstrap/code.less +0 -0
  65. data/vendor/toolkit/twitter/bootstrap/component-animations.less +3 -1
  66. data/vendor/toolkit/twitter/bootstrap/dropdowns.less +9 -8
  67. data/vendor/toolkit/twitter/bootstrap/forms.less +110 -41
  68. data/vendor/toolkit/twitter/bootstrap/glyphicons.less +75 -3
  69. data/vendor/toolkit/twitter/bootstrap/grid.less +0 -0
  70. data/vendor/toolkit/twitter/bootstrap/input-groups.less +8 -3
  71. data/vendor/toolkit/twitter/bootstrap/jumbotron.less +10 -4
  72. data/vendor/toolkit/twitter/bootstrap/labels.less +0 -0
  73. data/vendor/toolkit/twitter/bootstrap/list-group.less +11 -13
  74. data/vendor/toolkit/twitter/bootstrap/media.less +40 -30
  75. data/vendor/toolkit/twitter/bootstrap/mixins/alerts.less +0 -0
  76. data/vendor/toolkit/twitter/bootstrap/mixins/background-variant.less +2 -1
  77. data/vendor/toolkit/twitter/bootstrap/mixins/border-radius.less +0 -0
  78. data/vendor/toolkit/twitter/bootstrap/mixins/buttons.less +19 -6
  79. data/vendor/toolkit/twitter/bootstrap/mixins/center-block.less +0 -0
  80. data/vendor/toolkit/twitter/bootstrap/mixins/clearfix.less +0 -0
  81. data/vendor/toolkit/twitter/bootstrap/mixins/forms.less +0 -0
  82. data/vendor/toolkit/twitter/bootstrap/mixins/gradients.less +0 -0
  83. data/vendor/toolkit/twitter/bootstrap/mixins/grid-framework.less +4 -4
  84. data/vendor/toolkit/twitter/bootstrap/mixins/grid.less +4 -4
  85. data/vendor/toolkit/twitter/bootstrap/mixins/hide-text.less +2 -2
  86. data/vendor/toolkit/twitter/bootstrap/mixins/image.less +0 -0
  87. data/vendor/toolkit/twitter/bootstrap/mixins/labels.less +1 -1
  88. data/vendor/toolkit/twitter/bootstrap/mixins/list-group.less +2 -1
  89. data/vendor/toolkit/twitter/bootstrap/mixins/nav-divider.less +0 -0
  90. data/vendor/toolkit/twitter/bootstrap/mixins/nav-vertical-align.less +0 -0
  91. data/vendor/toolkit/twitter/bootstrap/mixins/opacity.less +0 -0
  92. data/vendor/toolkit/twitter/bootstrap/mixins/pagination.less +2 -1
  93. data/vendor/toolkit/twitter/bootstrap/mixins/panels.less +0 -0
  94. data/vendor/toolkit/twitter/bootstrap/mixins/progress-bar.less +0 -0
  95. data/vendor/toolkit/twitter/bootstrap/mixins/reset-filter.less +0 -0
  96. data/vendor/toolkit/twitter/bootstrap/mixins/reset-text.less +18 -0
  97. data/vendor/toolkit/twitter/bootstrap/mixins/resize.less +0 -0
  98. data/vendor/toolkit/twitter/bootstrap/mixins/responsive-visibility.less +1 -1
  99. data/vendor/toolkit/twitter/bootstrap/mixins/size.less +0 -0
  100. data/vendor/toolkit/twitter/bootstrap/mixins/tab-focus.less +0 -0
  101. data/vendor/toolkit/twitter/bootstrap/mixins/table-row.less +0 -0
  102. data/vendor/toolkit/twitter/bootstrap/mixins/text-emphasis.less +2 -1
  103. data/vendor/toolkit/twitter/bootstrap/mixins/text-overflow.less +0 -0
  104. data/vendor/toolkit/twitter/bootstrap/mixins/vendor-prefixes.less +8 -5
  105. data/vendor/toolkit/twitter/bootstrap/mixins.less +1 -0
  106. data/vendor/toolkit/twitter/bootstrap/modals.less +3 -3
  107. data/vendor/toolkit/twitter/bootstrap/navbar.less +6 -1
  108. data/vendor/toolkit/twitter/bootstrap/navs.less +1 -1
  109. data/vendor/toolkit/twitter/bootstrap/normalize.less +12 -13
  110. data/vendor/toolkit/twitter/bootstrap/pager.less +1 -2
  111. data/vendor/toolkit/twitter/bootstrap/pagination.less +5 -4
  112. data/vendor/toolkit/twitter/bootstrap/panels.less +27 -4
  113. data/vendor/toolkit/twitter/bootstrap/popovers.less +5 -7
  114. data/vendor/toolkit/twitter/bootstrap/print.less +96 -96
  115. data/vendor/toolkit/twitter/bootstrap/progress-bars.less +1 -14
  116. data/vendor/toolkit/twitter/bootstrap/responsive-embed.less +10 -9
  117. data/vendor/toolkit/twitter/bootstrap/responsive-utilities.less +0 -0
  118. data/vendor/toolkit/twitter/bootstrap/scaffolding.less +12 -1
  119. data/vendor/toolkit/twitter/bootstrap/tables.less +6 -5
  120. data/vendor/toolkit/twitter/bootstrap/theme.less +47 -16
  121. data/vendor/toolkit/twitter/bootstrap/thumbnails.less +1 -1
  122. data/vendor/toolkit/twitter/bootstrap/tooltip.less +13 -7
  123. data/vendor/toolkit/twitter/bootstrap/type.less +2 -8
  124. data/vendor/toolkit/twitter/bootstrap/utilities.less +0 -1
  125. data/vendor/toolkit/twitter/bootstrap/variables.less +36 -14
  126. data/vendor/toolkit/twitter/bootstrap/wells.less +0 -0
  127. metadata +76 -52
  128. data/app/assets/fonts/fontawesome-webfont.eot +0 -0
  129. data/app/assets/fonts/fontawesome-webfont.svg +0 -504
  130. data/app/assets/fonts/fontawesome-webfont.ttf +0 -0
  131. data/app/assets/fonts/fontawesome-webfont.woff +0 -0
  132. data/app/assets/images/twitter/bootstrap/glyphicons-halflings-white.png +0 -0
  133. data/app/assets/images/twitter/bootstrap/glyphicons-halflings.png +0 -0
  134. data/app/assets/stylesheets/twitter-bootstrap-static/fontawesome.css.erb +0 -4
  135. data/vendor/static-source/fontawesome.less +0 -8
  136. data/vendor/toolkit/fontawesome/bordered-pulled.less +0 -16
  137. data/vendor/toolkit/fontawesome/core.less +0 -12
  138. data/vendor/toolkit/fontawesome/fixed-width.less +0 -6
  139. data/vendor/toolkit/fontawesome/font-awesome.less +0 -17
  140. data/vendor/toolkit/fontawesome/icons.less +0 -506
  141. data/vendor/toolkit/fontawesome/larger.less +0 -13
  142. data/vendor/toolkit/fontawesome/list.less +0 -19
  143. data/vendor/toolkit/fontawesome/mixins.less +0 -20
  144. data/vendor/toolkit/fontawesome/path.less +0 -14
  145. data/vendor/toolkit/fontawesome/rotated-flipped.less +0 -9
  146. data/vendor/toolkit/fontawesome/spinning.less +0 -32
  147. data/vendor/toolkit/fontawesome/stacked.less +0 -20
  148. data/vendor/toolkit/fontawesome/variables.less +0 -515
data/README.md CHANGED
@@ -1,41 +1,39 @@
1
- # Twitter Bootstrap 3.2 for Rails 4 Asset Pipeline
2
- Bootstrap is a toolkit from Twitter designed to kickstart development of webapps and sites. It includes base CSS and HTML for typography, forms, buttons, tables, grids, navigation, and more.
1
+ # Twitter Bootstrap for Rails 6, 5 and 4 Asset Pipeline
3
2
 
4
- twitter-bootstrap-rails project integrates Bootstrap CSS toolkit for Rails Asset Pipeline (Rails 4, 3.1, 3.2 are supported)
3
+ Bootstrap is a toolkit from Twitter designed to kickstart development of web apps and sites. It includes base CSS and HTML for typography, forms, buttons, tables, grids, navigation, and more.
5
4
 
5
+ twitter-bootstrap-rails project integrates Bootstrap CSS toolkit for Rails Asset Pipeline (Rails 6, Rails 5 and Rails 3.x versions are supported)
6
6
 
7
- [![Gem Version](https://badge.fury.io/rb/twitter-bootstrap-rails.png)](https://badge.fury.io/rb/twitter-bootstrap-rails.png]
8
- [![Build Status](https://secure.travis-ci.org/seyhunak/twitter-bootstrap-rails.png?branch=master)][travis]
9
- [![Dependency Status](https://gemnasium.com/seyhunak/twitter-bootstrap-rails.png?travis)][gemnasium]
10
- [![Code Climate](https://codeclimate.com/github/seyhunak/twitter-bootstrap-rails.png)][codeclimate]
11
- [![Coverage Status](https://coveralls.io/repos/seyhunak/twitter-bootstrap-rails/badge.png?branch=master)][coveralls]
12
- [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/seyhunak/twitter-bootstrap-rails/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
7
+ [![Gem Version](https://badge.fury.io/rb/twitter-bootstrap-rails.svg)](http://badge.fury.io/rb/twitter-bootstrap-rails)
8
+ [![Dependency Status](https://gemnasium.com/seyhunak/twitter-bootstrap-rails.svg?travis)](https://gemnasium.com/seyhunak/twitter-bootstrap-rails?travis)
9
+ [![Code Climate](https://codeclimate.com/github/seyhunak/twitter-bootstrap-rails/badges/gpa.svg)](https://codeclimate.com/github/seyhunak/twitter-bootstrap-rails?branch=master)
10
+ [![Coverage Status](https://coveralls.io/repos/seyhunak/twitter-bootstrap-rails/badge.svg?branch=master)](https://coveralls.io/repos/seyhunak/twitter-bootstrap-rails/badge.svg?branch=master)
11
+ [![GitHub stars](https://img.shields.io/github/stars/seyhunak/twitter-bootstrap-rails.svg)](https://github.com/seyhunak/twitter-bootstrap-rails/stargazers)
12
+ [![GitHub forks](https://img.shields.io/github/forks/seyhunak/twitter-bootstrap-rails.svg)](https://github.com/seyhunak/twitter-bootstrap-rails/network)
13
+ [![GitHub issues](https://img.shields.io/github/issues/seyhunak/twitter-bootstrap-rails.svg)](https://github.com/seyhunak/twitter-bootstrap-rails/issues)
14
+
15
+ [![OpenCollective](https://opencollective.com/twitter-bootstrap-rails/backers/badge.svg)](#backers)
16
+ [![OpenCollective](https://opencollective.com/twitter-bootstrap-rails/sponsors/badge.svg)](#sponsors)
13
17
 
14
18
  ## Screencasts
15
19
  #### Installing twitter-bootstrap-rails, generators, usage and more
16
- <img width="180" height="35" src="http://oi49.tinypic.com/s5wn05.jpg"></img>
17
20
 
18
- Screencasts provided by <a href="http://railscasts.com">Railscasts</a> (Ryan Bates)
21
+ Screencasts provided by <a href="http://railscasts.com">RailsCasts</a> (Ryan Bates)
19
22
 
20
23
  [Twitter Bootstrap Basics](http://railscasts.com/episodes/328-twitter-bootstrap-basics "Twitter Bootstrap Basics")
21
24
  in this episode you will learn how to include Bootstrap into Rails application with the twitter-bootstrap-rails gem.
22
25
 
23
26
  [More on Twitter Bootstrap](http://railscasts.com/episodes/329-more-on-twitter-bootstrap "More on Twitter Bootstrap")
24
- in this episode continues on the Bootstrap project showing how to display flash messages, add form validations with SimpleForm, customize layout with variables, and switch to using Sass.
27
+ in this episode continues on the Bootstrap project showing how to display flash messages, add form validations with SimpleForm, customise layout with variables, and switch to using Sass.
25
28
  (Note: This episode is pro episode)
26
29
 
27
-
28
- ## Example Application
29
- An example application is available at [toadkicker/teststrap](https://github.com/toadkicker/teststrap). You can view it running on heroku [here.](http://teststrap.herokuapp.com/) Contributions welcome.
30
-
31
-
32
30
  ## Installing the Gem
33
31
 
34
32
  The [Twitter Bootstrap Rails gem](http://rubygems.org/gems/twitter-bootstrap-rails) can provide the Bootstrap stylesheets in two ways.
35
33
 
36
34
  The plain CSS way is how Bootstrap is provided on [the official website](http://twbs.github.io/bootstrap/).
37
35
 
38
- The [Less](http://lesscss.org/) way provides more customization options, like changing theme colors, and provides useful Less mixins for your code, but requires the
36
+ The [Less](http://lesscss.org/) way provides more customisation options, like changing theme colors and provides useful Less mixins for your code, but requires the
39
37
  Less gem and the Ruby Racer Javascript runtime (not available on Microsoft Windows).
40
38
 
41
39
  ### Installing the Less stylesheets
@@ -80,6 +78,8 @@ After running `bundle install`, run the generator:
80
78
 
81
79
  rails generate bootstrap:install static
82
80
 
81
+ If your Rails server is running, make sure to restart it.
82
+
83
83
  ## Generating layouts and views
84
84
 
85
85
  You can run following generators to get started with Bootstrap quickly.
@@ -130,31 +130,64 @@ You have to require Bootstrap LESS (bootstrap_and_overrides.css.less) in your ap
130
130
 
131
131
  To use individual components from bootstrap, your bootstrap_and_overrides.less could look like this:
132
132
 
133
- ```css
134
- @import "twitter/bootstrap/reset.less";
133
+ ```less
134
+ // Core variables and mixins
135
135
  @import "twitter/bootstrap/variables.less";
136
136
  @import "twitter/bootstrap/mixins.less";
137
+
138
+ // Reset and dependencies
139
+ @import "twitter/bootstrap/normalize.less";
140
+ @import "twitter/bootstrap/print.less";
141
+ //@import "twitter/bootstrap/glyphicons.less"; // Excludes glyphicons
142
+
143
+ // Core CSS
137
144
  @import "twitter/bootstrap/scaffolding.less";
138
- @import "twitter/bootstrap/grid.less";
139
- @import "twitter/bootstrap/layouts.less";
140
145
  @import "twitter/bootstrap/type.less";
146
+ @import "twitter/bootstrap/code.less";
147
+ @import "twitter/bootstrap/grid.less";
148
+ @import "twitter/bootstrap/tables.less";
141
149
  @import "twitter/bootstrap/forms.less";
142
- @import "twitter/bootstrap/wells.less";
143
- @import "twitter/bootstrap/component-animations.less";
144
150
  @import "twitter/bootstrap/buttons.less";
145
- @import "twitter/bootstrap/close.less";
151
+
152
+ // Components
153
+ @import "twitter/bootstrap/component-animations.less";
154
+ @import "twitter/bootstrap/dropdowns.less";
155
+ @import "twitter/bootstrap/button-groups.less";
156
+ @import "twitter/bootstrap/input-groups.less";
146
157
  @import "twitter/bootstrap/navs.less";
147
158
  @import "twitter/bootstrap/navbar.less";
148
- @import "twitter/bootstrap/labels-badges.less";
149
- @import "twitter/bootstrap/hero-unit.less";
159
+ @import "twitter/bootstrap/breadcrumbs.less";
160
+ @import "twitter/bootstrap/pagination.less";
161
+ @import "twitter/bootstrap/pager.less";
162
+ @import "twitter/bootstrap/labels.less";
163
+ @import "twitter/bootstrap/badges.less";
164
+ @import "twitter/bootstrap/jumbotron.less";
165
+ @import "twitter/bootstrap/thumbnails.less";
166
+ @import "twitter/bootstrap/alerts.less";
167
+ @import "twitter/bootstrap/progress-bars.less";
168
+ @import "twitter/bootstrap/media.less";
169
+ @import "twitter/bootstrap/list-group.less";
170
+ @import "twitter/bootstrap/panels.less";
171
+ @import "twitter/bootstrap/responsive-embed.less";
172
+ @import "twitter/bootstrap/wells.less";
173
+ @import "twitter/bootstrap/close.less";
174
+
175
+ // Components w/ JavaScript
176
+ @import "twitter/bootstrap/modals.less";
177
+ @import "twitter/bootstrap/tooltip.less";
178
+ @import "twitter/bootstrap/popovers.less";
179
+ @import "twitter/bootstrap/carousel.less";
180
+
181
+ // Utility classes
150
182
  @import "twitter/bootstrap/utilities.less";
183
+ @import "twitter/bootstrap/responsive-utilities.less";
151
184
  ```
152
185
 
153
186
  If you'd like to alter Bootstrap's own variables, or define your LESS
154
187
  styles inheriting Bootstrap's mixins, you can do so inside bootstrap_and_overrides.css.less:
155
188
 
156
189
 
157
- ```css
190
+ ```less
158
191
  @link-color: #ff0000;
159
192
  ```
160
193
 
@@ -172,48 +205,26 @@ If this is the case, you **must** use @import instead of `*=` in your manifest f
172
205
 
173
206
  ### Icons
174
207
 
175
- By default, this gem overrides standard Bootstraps's Glyphicons with Font Awesome (http://fortawesome.github.com/Font-Awesome/).
176
-
177
- This should appear inside _bootstrap_and_overrides *(based on you twitter-bootstrap-rails version)*
208
+ By default, this gem (when using less generator) won't enable standard Bootstraps's Glyphicons.
178
209
 
179
- **From 2.2.7**
210
+ If you would like to restore the default Glyphicons, inside the generated `bootstrap_and_overrides.css.less` uncomment these lines:
180
211
 
181
- ```css
182
- // Font Awesome
183
- @fontAwesomeEotPath: asset-url("fontawesome-webfont.eot");
184
- @fontAwesomeEotPath_iefix: asset-url("fontawesome-webfont.eot?#iefix");
185
- @fontAwesomeWoffPath: asset-url("fontawesome-webfont.woff");
186
- @fontAwesomeTtfPath: asset-url("fontawesome-webfont.ttf");
187
- @fontAwesomeSvgPath: asset-url("fontawesome-webfont.svg#fontawesomeregular");
188
- @import "fontawesome/font-awesome";
189
- ```
190
-
191
- **Before 2.2.7**
212
+ ```less
213
+ // Glyphicons are not required by default, uncomment the following lines to enable them.
214
+ @glyphiconsEotPath: font-url("glyphicons-halflings-regular.eot");
215
+ @glyphiconsEotPath_iefix: font-url("glyphicons-halflings-regular.eot?#iefix");
216
+ @glyphiconsWoffPath: font-url("glyphicons-halflings-regular.woff");
217
+ @glyphiconsTtfPath: font-url("glyphicons-halflings-regular.ttf");
218
+ @glyphiconsSvgPath: font-url("glyphicons-halflings-regular.svg#glyphicons_halflingsregular");
192
219
 
193
- ```css
194
- // Font Awesome
195
- @fontAwesomeEotPath: "/assets/fontawesome-webfont.eot";
196
- @fontAwesomeEotPath_iefix: "/assets/fontawesome-webfont.eot?#iefix";
197
- @fontAwesomeWoffPath: "/assets/fontawesome-webfont.woff";
198
- @fontAwesomeTtfPath: "/assets/fontawesome-webfont.ttf";
199
- @fontAwesomeSvgPath: "/assets/fontawesome-webfont.svg#fontawesomeregular";
200
- @import "fontawesome";
220
+ @import "twitter/bootstrap/glyphicons.less";
201
221
  ```
202
222
 
203
- If you would like to restore the default Glyphicons, inside the _bootstrap_and_overrides.css.less_ remove the FontAwesome declaration and uncomment the line:
223
+ This gem was used to bundle the excellent [Font-Awesome](http://fortawesome.github.io/Font-Awesome/) library.
224
+ However that was another maintenance effort that is not worth to do here.
204
225
 
205
- ```less
206
- // Font Awesome
207
- // @fontAwesomeEotPath: asset-url("fontawesome-webfont.eot");
208
- // @fontAwesomeEotPath_iefix: asset-url("fontawesome-webfont.eot?#iefix");
209
- // @fontAwesomeWoffPath: asset-url("fontawesome-webfont.woff");
210
- // @fontAwesomeTtfPath: asset-url("fontawesome-webfont.ttf");
211
- // @fontAwesomeSvgPath: asset-url("fontawesome-webfont.svg#fontawesomeregular");
212
- // @import "fontawesome/font-awesome";
213
-
214
- // Glyphicons
215
- @import "twitter/bootstrap/glyphicons.less";
216
- ```
226
+ For Rails projects that need it there is the [font-awesome-rails gem](https://github.com/bokmann/font-awesome-rails) that
227
+ provides same functionality that this gems was used to provide and it also have some other interesting features (e.g. view helpers).
217
228
 
218
229
  ## Using JavaScript
219
230
 
@@ -259,20 +270,21 @@ jQuery ->
259
270
  You can create modals easily using the following example. The header, body, and footer all accept content_tag or plain html.
260
271
  The href of the button to launch the modal must match the id of the modal dialog. It also accepts a block for the header, body, and footer. If you are getting a complaint about the modal_helper unable to merge a hash it is due to this.
261
272
 
262
- ````
263
- <%= content_tag :a, "Modal", :href => "#modal", :class => 'btn', :data => {:toggle => 'modal'} %>
273
+ ```erb
274
+ <%= content_tag :a, "Modal", href: "#modal", class: 'btn', data: {toggle: 'modal'} %>
275
+
276
+ <%= modal_dialog id: "modal",
277
+ header: { show_close: true, dismiss: 'modal', title: 'Modal header' },
278
+ body: { content: 'This is the body' },
279
+ footer: { content: content_tag(:button, 'Save', class: 'btn') } %>
264
280
 
265
- <%= modal_dialog :id => "modal",
266
- :header => { :show_close => true, :dismiss => 'modal', :title => 'Modal header' },
267
- :body => { :content => 'This is the body' },
268
- :footer => { :content => content_tag(:button, 'Save', :class => 'btn') } %>
269
- ````
281
+ ```
270
282
 
271
283
  ### Navbar Helper
272
284
  It should let you write things like:
273
285
 
274
- ````
275
- <%= nav_bar :fixed => :top, :brand => "Fashionable Clicheizr 2.0", :responsive => true do %>
286
+ ```erb
287
+ <%= nav_bar fixed: :top, brand: "Fashionable Clicheizr 2.0", responsive: true do %>
276
288
  <%= menu_group do %>
277
289
  <%= menu_item "Home", root_path %>
278
290
  <%= menu_divider %>
@@ -287,11 +299,11 @@ It should let you write things like:
287
299
  <%= menu_item "About Us", about_us_path %>
288
300
  <%= menu_item "Contact", contact_path %>
289
301
  <% end %>
290
- <%= menu_group :pull => :right do %>
302
+ <%= menu_group pull: :right do %>
291
303
  <% if current_user %>
292
304
  <%= menu_item "Log Out", log_out_path %>
293
305
  <% else %>
294
- <%= form_for @user, :url => session_path(:user), html => {:class=> "navbar-form pull-right"} do |f| -%>
306
+ <%= form_for @user, url: session_path(:user), html => {class: "navbar-form pull-right"} do |f| -%>
295
307
  <p><%= f.text_field :email %></p>
296
308
  <p><%= f.password_field :password %></p>
297
309
  <p><%= f.submit "Sign in" %></p>
@@ -299,99 +311,105 @@ It should let you write things like:
299
311
  <% end %>
300
312
  <% end %>
301
313
  <% end %>
302
- ````
314
+ ```
303
315
 
304
316
  ### Navbar scaffolding
305
317
 
306
318
  In your view file (most likely application.html.erb) to get a basic navbar set up you need to do this:
307
319
 
308
- ````
309
- <%= nav_bar %>
310
- ````
320
+ ```erb
321
+ <%= nav_bar %>
322
+ ```
311
323
 
312
324
  Which will render:
313
325
 
314
- <div class="navbar">
315
- <div class="container">
316
- </div>
317
- </div>
318
-
326
+ ```html
327
+ <div class="navbar">
328
+ <div class="container">
329
+ </div>
330
+ </div>
331
+ ```
319
332
 
320
333
  ### Fixed navbar
321
334
 
322
335
  If you want the navbar to stick to the top of the screen, pass in the option like this:
323
336
 
324
- ````
325
- <%= nav_bar :fixed => :top %>
326
- ````
337
+ ```erb
338
+ <%= nav_bar fixed: :top %>
339
+ ```
327
340
 
328
341
  To render:
329
342
 
330
- <div class="navbar navbar-fixed-top">
331
- <div class="container">
332
- </div>
333
- </div>
343
+ ```html
344
+ <div class="navbar navbar-fixed-top">
345
+ <div class="container">
346
+ </div>
347
+ </div>
348
+ ```
334
349
 
335
350
  ### Static navbar
336
351
 
337
352
  If you want a full-width navbar that scrolls away with the page, pass in the option like this:
338
353
 
339
- ````
340
- <%= nav_bar :static => :top %>
341
- ````
354
+ ```erb
355
+ <%= nav_bar static: :top %>
356
+ ```
342
357
 
343
358
  To render:
344
359
 
345
- <div class="navbar navbar-static-top">
346
- <div class="container">
347
- </div>
348
- </div>
349
-
360
+ ```html
361
+ <div class="navbar navbar-static-top">
362
+ <div class="container">
363
+ </div>
364
+ </div>
365
+ ```
350
366
 
351
367
  ### Brand name
352
368
 
353
369
  Add the name of your site on the left hand edge of the navbar. By default, it will link to root_url. Passing a brand_link option will set the url to whatever you want.
354
370
 
355
- ````
356
- <%= nav_bar :brand => "We're sooo web 2.0alizr", :brand_link => account_dashboard_path %>
357
- ````
371
+ ```erb
372
+ <%= nav_bar brand: "We're sooo web 2.0alizr", brand_link: account_dashboard_path %>
373
+ ```
358
374
 
359
375
  Which will render:
360
376
 
361
- <div class="navbar">
362
- <div class="container">
363
- <a class="navbar-brand" href="/accounts/dashboard">
364
- We're sooo web 2.0alizr
365
- </a>
366
- </div>
367
- </div>
368
-
377
+ ```html
378
+ <div class="navbar">
379
+ <div class="container">
380
+ <a class="navbar-brand" href="/accounts/dashboard">
381
+ We're sooo web 2.0alizr
382
+ </a>
383
+ </div>
384
+ </div>
385
+ ```
369
386
 
370
387
  ### Optional responsive variation
371
388
 
372
389
  If you want the responsive version of the navbar to work (One that shrinks down on mobile devices etc.), you need to pass this option:
373
390
 
374
- ````
375
- <%= nav_bar :responsive => true %>
376
- ````
377
- Which renders the html quite differently:
391
+ ```erb
392
+ <%= nav_bar responsive: true %>
393
+ ```
378
394
 
395
+ Which renders the html quite differently:
379
396
 
380
- <div class="navbar">
381
- <div class="container">
382
- <!-- .navbar-toggle is used as the toggle for collapsed navbar content -->
383
- <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
384
- <span class="icon-bar"></span>
385
- <span class="icon-bar"></span>
386
- <span class="icon-bar"></span>
387
- </button>
388
- <!-- Everything in here gets hidden at 940px or less -->
389
- <div class="navbar-collapse collapse">
390
- <!-- menu items gets rendered here instead -->
391
- </div>
392
- </div>
397
+ ```html
398
+ <div class="navbar">
399
+ <div class="container">
400
+ <!-- .navbar-toggle is used as the toggle for collapsed navbar content -->
401
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
402
+ <span class="icon-bar"></span>
403
+ <span class="icon-bar"></span>
404
+ <span class="icon-bar"></span>
405
+ </button>
406
+ <!-- Everything in here gets hidden at 940px or less -->
407
+ <div class="navbar-collapse collapse">
408
+ <!-- menu items gets rendered here instead -->
393
409
  </div>
394
-
410
+ </div>
411
+ </div>
412
+ ```
395
413
 
396
414
  ### Nav links
397
415
 
@@ -407,8 +425,8 @@ menu_group only takes one argument - :pull - this moves the group left or right
407
425
 
408
426
  menu_item generates a link wrapped in an li tag. It takes two arguments and an options hash. The first argument is the name (the text that will appear in the menu), and the path (which defaults to "#" if left blank). The rest of the options are passed straight through to the link_to helper, so that you can add classes, ids, methods or data tags etc.
409
427
 
410
- ````
411
- <%= nav_bar :fixed => :top, :brand => "Ninety Ten" do %>
428
+ ```erb
429
+ <%= nav_bar fixed: :top, brand: "Ninety Ten" do %>
412
430
  <%= menu_group do %>
413
431
  <%= menu_item "Home", root_path %>
414
432
  <%= menu_item "About Us", about_us_path %>
@@ -417,9 +435,9 @@ menu_item generates a link wrapped in an li tag. It takes two arguments and an o
417
435
  <% if current_user %>
418
436
  <%= menu_item "Log Out", log_out_path %>
419
437
  <% else %>
420
- <%= menu_group :pull => :right do %>
438
+ <%= menu_group pull: :right do %>
421
439
  <%= menu_item "Sign Up", registration_path %>
422
- <%= form_for @user, :url => session_path(:user) do |f| -%>
440
+ <%= form_for @user, url: session_path(:user) do |f| -%>
423
441
  <p><%= f.text_field :email %></p>
424
442
  <p><%= f.password_field :password %></p>
425
443
  <p><%= f.submit "Sign in" %></p>
@@ -427,13 +445,13 @@ menu_item generates a link wrapped in an li tag. It takes two arguments and an o
427
445
  <% end %>
428
446
  <% end %>
429
447
  <% end %>
430
- ````
448
+ ```
431
449
 
432
450
  ### Dropdown menus
433
451
 
434
452
  For multi-level list options, where it makes logical sense to group menu items, or simply to save space if you have a lot of pages, you can group menu items into drop down lists like this:
435
453
 
436
- ````
454
+ ```erb
437
455
  <%= nav_bar do %>
438
456
  <%= menu_item "Home", root_path %>
439
457
 
@@ -447,14 +465,14 @@ For multi-level list options, where it makes logical sense to group menu items,
447
465
  <%= menu_item "About Us", about_us_path %>
448
466
  <%= menu_item "Contact", contact_path %>
449
467
  <% end %>
450
- ````
468
+ ```
451
469
 
452
470
  ### Dividers
453
471
 
454
472
  Dividers are just vertical bars that visually separate logically disparate groups of menu items
455
473
 
456
- ````
457
- <%= nav_bar :fixed => :bottom do %>
474
+ ```erb
475
+ <%= nav_bar fixed: :bottom do %>
458
476
  <%= menu_item "Home", root_path %>
459
477
  <%= menu_item "About Us", about_us_path %>
460
478
  <%= menu_item "Contact", contact_path %>
@@ -465,7 +483,7 @@ Dividers are just vertical bars that visually separate logically disparate group
465
483
  <%= menu_item "Account Settings", edit_user_account_path(current_user, @account) %>
466
484
  <%= menu_item "Log Out", log_out_path %>
467
485
  <% end %>
468
- ````
486
+ ```
469
487
 
470
488
  ### Forms in navbar
471
489
 
@@ -473,23 +491,23 @@ At the moment - this is just a how to...
473
491
 
474
492
  You need to add this class to the form itself (Different form builders do this in different ways - please check out the relevant docs)
475
493
 
476
- ````css
494
+ ```css
477
495
  .navbar-form
478
- ````
496
+ ```
479
497
  To pull the form left or right, add either of these classes:
480
- ````css
498
+ ```css
481
499
  .pull-left
482
500
  .pull-right
483
- ````
501
+ ```
484
502
 
485
503
  If you want the Bootstrap search box (I think it just rounds the corners), use:
486
- ````css
504
+ ```css
487
505
  .navbar-search
488
- ````
506
+ ```
489
507
  Instead of:
490
- ````css
508
+ ```css
491
509
  .navbar-form
492
- ````
510
+ ```
493
511
 
494
512
  To change the size of the form fields, use .span2 (or however many span widths you want) to the input itself.
495
513
 
@@ -497,50 +515,58 @@ To change the size of the form fields, use .span2 (or however many span widths y
497
515
 
498
516
  You can shift things to the left or the right across the nav bar. It's easiest to do this on grouped menu items:
499
517
 
500
- ````
501
- <%= nav_bar :fixed => :bottom do %>
518
+ ```erb
519
+ <%= nav_bar fixed: :bottom do %>
502
520
  <% menu_group do %>
503
521
  <%= menu_item "Home", root_path %>
504
522
  <%= menu_item "About Us", about_us_path %>
505
523
  <%= menu_item "Contact", contact_path %>
506
524
  <% end %>
507
- <% menu_group :pull => :right do %>
525
+ <% menu_group pull: :right do %>
508
526
  <%= menu_item "Edit Profile", edit_user_path(current_user) %>
509
527
  <%= menu_item "Account Settings", edit_user_account_path(current_user, @account) %>
510
528
  <%= menu_item "Log Out", log_out_path %>
511
529
  <% end %>
512
530
  <% end %>
513
- ````
531
+ ```
514
532
 
515
533
  ### Text in the navbar
516
534
 
517
535
  If you want to put regular plain text in the navbar anywhere, you do it like this:
518
536
 
519
- ````
520
- <%= nav_bar :brand => "Apple" do %>
537
+ ```erb
538
+ <%= nav_bar brand: "Apple" do %>
521
539
  <%= menu_text "We make shiny things" %>
522
540
  <%= menu_item "Home", root_path %>
523
541
  <%= menu_item "About Us", about_us_path %>
524
542
  <% end %>
525
- ````
526
- It also takes the :pull option to drag it to the left or right.
543
+ ```
527
544
 
545
+ It also takes the :pull option to drag it to the left or right.
528
546
 
529
547
  ### Flash helper
530
548
 
531
- Add flash helper `<%= bootstrap_flash %>` to your layout (built-in with layout generator)
549
+ Add flash helper `<%= bootstrap_flash %>` to your layout (built-in with layout generator).
550
+ You can pass the attributes you want to add to the main div returned: `<%= bootstrap_flash(class: "extra-class", id: "your-id") %>`
551
+
532
552
 
533
553
  ### Breadcrumbs Helpers
534
554
 
535
- *Notice* If your application is using [breadcrumbs-on-rails](https://github.com/weppos/breadcrumbs_on_rails) you will have a namespace collision with the add_breadcrumb method.
536
- You do not need to use these breadcrumb gems since this gem provides the same functionality out of the box without the additional dependency.
555
+ *Notice* If your application is using [breadcrumbs-on-rails](https://github.com/weppos/breadcrumbs_on_rails) you will have a namespace collision with the add_breadcrumb method. For this reason if breadcrumbs-on-rails is detected in `Gemfile` gem methods will be accessible using `boostrap` prefix, i.e. `render_bootstrap_breadcrumbs` and `add_bootstrap_breadcrumb`
556
+
557
+ Usually you do not need to use these breadcrumb gems since this gem provides the same functionality out of the box without the additional dependency.
558
+
559
+ However if there are some `breadcrumbs-on-rails` features you need to keep you can still use them and use this gem with the prefixes explained above.
537
560
 
538
561
  Add breadcrumbs helper `<%= render_breadcrumbs %>` to your layout.
539
562
  You can also specify a divider for it like this: `<%= render_breadcrumbs('>') %>` (default divider is `/`).
563
+ If you do not need dividers at all you can use `nil`: `<%= render_breadcrumbs(nil) %>`.
540
564
 
541
565
  Full example:
542
566
  ```ruby
543
- render_breadcrumbs(" / ", { :class => '', :item_class => '', :divider_class => '', :active_class => 'active' })
567
+
568
+ render_breadcrumbs(" / ", { class: '', item_class: '', divider_class: '', active_class: 'active' })
569
+
544
570
  ```
545
571
 
546
572
  ```ruby
@@ -572,17 +598,19 @@ Badge:
572
598
 
573
599
  Label:
574
600
  ```erb
575
- <%= label('Gut!', :success) %> <span class="badge badge-success">Gut!</span>
601
+ <%= tag_label('Gut!', :success) %> <span class="label label-success">Gut!</span>
576
602
  ```
577
603
 
578
604
  Glyph:
579
605
  ```erb
580
606
  <%= glyph(:pencil) %> <i class="icon-pencil"></i>
581
607
 
582
- <%= glyph(:pencil, {:tag => :span}) %> <span class="icon-pencil"></span>
608
+ <%= glyph(:pencil, {tag: :span}) %> <span class="icon-pencil"></span>
609
+
610
+ <%= glyph(:pencil, {class: 'foo'}) %> <i class="icon-pencil foo"></i>
583
611
  ```
584
612
 
585
- ###I18n Internationalization Support
613
+ ### I18n Internationalization Support
586
614
  The installer creates an English translation file for you and copies it to config/locales/en.bootstrap.yml
587
615
 
588
616
 
@@ -590,104 +618,92 @@ NOTE: If you are using Devise in your project, you must have a devise locale fil
590
618
  for handling flash messages, even if those messages are blank. See https://github.com/plataformatec/devise/wiki/I18n
591
619
 
592
620
  ## Changelog
593
- <ul>
594
- <li>Version 0.0.5 deprecated</li>
595
- <li>Asset files updated to latest and removed version numbers</li>
596
- <li>Implemented Less::Rails Railtie to use with LESS</li>
597
- <li>Fixed railtie to only initialize Less when installed</li>
598
- <li>New branch for the static version of Bootstrap (w/o Less) - check static branch</li>
599
- <li>Added path to support heroku deploy</li>
600
- <li>Rake precompile issue fixed</li>
601
- <li>Updated asset files to 1.4.0</li>
602
- <li>Updated dependency less-rails (now requires 2.1.0)</li>
603
- <li>Added generators</li>
604
- <li>Fixed generators</li>
605
- <li>Fixed class name conflicts from (bootstrap.js.coffee)</li>
606
- <li>Fixed jquery-rails gem version dependency</li>
607
- <li>Updated asset files</li>
608
- <li>Added new generators (install, layout and themed)</li>
609
- <li>Compatibility to Rails 3.2</li>
610
- <li>Transitioning to 2.0</li>
611
- <li>Released gem v.2.0rc0</li>
612
- <li>Added Haml and Slim support</li>
613
- <li>Added Responsive layout support</li>
614
- <li>Fixes and release 2.0.0</li>
615
- <li>Updated to v2.0.1, versioned v2.0.1.0</li>
616
- <li>Released gem v.2.0.3</li>
617
- <li>Released gem v.2.0.4</li>
618
- <li>Released gem v.2.0.5</li>
619
- <li>Added SimpleForm support</li>
620
- <li>Added FontAwesome support</li>
621
- <li>Released gem v.2.0.6</li>
622
- <li>Released gem v.2.0.7</li>
623
- <li>Released gem v.2.0.8</li>
624
- <li>Released gem v.2.0.9 (Bootstrap 2.0.4 and FontAwesome 2.0 support)</li>
625
- <li>Released gem v.2.1.0 (JRuby support)</li>
626
- <li>Released gem v.2.1.1 (minor fixes)</li>
627
- <li>Flash block message helper added</li>
628
- <li>Released gem v.2.1.2 (minor fixes and updated to Twitter Bootstrap 2.1.0)</li>
629
- <li>Released gem v.2.1.3 (minor fixes and updated to Twitter Bootstrap 2.1.1)</li>
630
- <li>Released gem v.2.1.4 (minor fixes)</li>
631
- <li>Released gem v.2.1.5 (minor fixes, install generator detects JavaScript template engine, updated to Twitter Bootstrap 2.2.1)</li>
632
- <li>Released gem v.2.1.6 (minor fixes)</li>
633
- <li>Added static stylesheets support</li>
634
- <li>Released gem v.2.1.8 and updated to Twitter Bootstrap 2.2.2</li>
635
- <li>Released gem v.2.1.9</li>
636
- <li>Released gem v.2.2.0 (Font Awesome 3)</li>
637
- <li>Released gem v.2.2.1 (minor fixes and updates)</li>
638
- <li>Released gem v.2.2.2 (Bootstrap 2.3.0)</li>
639
- <li>Released gem v.2.2.3 (Minor fixes)</li>
640
- <li>Released gem v.2.2.4 (Minor fixes)</li>
641
- <li>Released gem v.2.2.5 (Bootstrap 2.3.1)</li>
642
- <li>Released gem v.2.2.6</li>
643
- <li>Released gem v.2.2.7 (Fixes)</li>
644
- <li>Releases gem v.2.2.8</li>
645
- </ul>
646
-
621
+ Please see CHANGELOG.md for more details
647
622
 
648
623
  ## Contributors & Patches & Forks
649
- <ul>
650
- <li>Ben Lovell</li>
651
- <li>Daniel Morris</li>
652
- <li>Bradly Feeley</li>
653
- <li>Guilherme Moreira</li>
654
- <li>Alex Behar</li>
655
- <li>Brandon Keene</li>
656
- <li>Anthony Corcutt</li>
657
- <li>Colin Warren</li>
658
- <li>Giovanni Cappellotto</li>
659
- <li>Masakuni Kato</li>
660
- <li>Gudleik Rasch</li>
661
- <li>Thomas Volkmar Worm</li>
662
- <li>Thiago Almeida</li>
663
- <li>Sébastien Grosjean</li>
664
- <li>Nick DeSteffen</li>
665
- <li>Christian Joudrey</li>
666
- <li>Todd Baur</li>
667
- <li>Leonid Shevtsov</li>
668
- </ul>
669
-
670
- ### Contribute and Earn Bitcoin
671
- Make commits and get tips for it
672
- [![tip for next commit](http://tip4commit.com/projects/13.svg)](http://tip4commit.com/projects/13)
673
-
624
+ Please see CONTRIBUTERS.md for contributors list
674
625
 
675
626
  ## About Me
676
- CTO / Senior Developer / Programmer
677
- @useful (Usefulideas) Istanbul / Turkey
678
-
679
-
680
- ### Contact me
681
- Seyhun Akyürek - seyhunak [at] gmail com
627
+ Senior Software Developer Istanbul / Turkey
628
+ seyhunak [at] gmail com
682
629
 
630
+ ## Hire Me
631
+ [![Hire Me !](https://img.shields.io/badge/Hire%20Me-for%20your%20project%20on%20PPH-red?s?style=social&logo=ios&logoColor=blue&labelColor=black&color=blue)](http://pph.me/seyhunak)
683
632
 
684
633
  ## Thanks
685
634
  Bootstrap and all twitter-bootstrap-rails contributors
686
635
  http://twbs.github.io/bootstrap
687
636
 
637
+ ## Backers
638
+ Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/twitter-bootstrap-rails#backer)]
639
+
640
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/0/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/0/avatar.svg"></a>
641
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/1/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/1/avatar.svg"></a>
642
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/2/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/2/avatar.svg"></a>
643
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/3/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/3/avatar.svg"></a>
644
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/4/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/4/avatar.svg"></a>
645
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/5/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/5/avatar.svg"></a>
646
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/6/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/6/avatar.svg"></a>
647
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/7/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/7/avatar.svg"></a>
648
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/8/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/8/avatar.svg"></a>
649
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/9/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/9/avatar.svg"></a>
650
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/10/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/10/avatar.svg"></a>
651
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/11/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/11/avatar.svg"></a>
652
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/12/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/12/avatar.svg"></a>
653
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/13/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/13/avatar.svg"></a>
654
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/14/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/14/avatar.svg"></a>
655
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/15/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/15/avatar.svg"></a>
656
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/16/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/16/avatar.svg"></a>
657
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/17/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/17/avatar.svg"></a>
658
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/18/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/18/avatar.svg"></a>
659
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/19/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/19/avatar.svg"></a>
660
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/20/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/20/avatar.svg"></a>
661
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/21/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/21/avatar.svg"></a>
662
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/22/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/22/avatar.svg"></a>
663
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/23/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/23/avatar.svg"></a>
664
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/24/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/24/avatar.svg"></a>
665
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/25/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/25/avatar.svg"></a>
666
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/26/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/26/avatar.svg"></a>
667
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/27/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/27/avatar.svg"></a>
668
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/28/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/28/avatar.svg"></a>
669
+ <a href="https://opencollective.com/twitter-bootstrap-rails/backer/29/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/backer/29/avatar.svg"></a>
670
+
671
+ ## Sponsors
672
+ Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/twitter-bootstrap-rails#sponsor)]
673
+
674
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/0/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/0/avatar.svg"></a>
675
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/1/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/1/avatar.svg"></a>
676
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/2/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/2/avatar.svg"></a>
677
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/3/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/3/avatar.svg"></a>
678
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/4/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/4/avatar.svg"></a>
679
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/5/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/5/avatar.svg"></a>
680
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/6/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/6/avatar.svg"></a>
681
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/7/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/7/avatar.svg"></a>
682
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/8/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/8/avatar.svg"></a>
683
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/9/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/9/avatar.svg"></a>
684
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/10/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/10/avatar.svg"></a>
685
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/11/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/11/avatar.svg"></a>
686
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/12/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/12/avatar.svg"></a>
687
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/13/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/13/avatar.svg"></a>
688
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/14/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/14/avatar.svg"></a>
689
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/15/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/15/avatar.svg"></a>
690
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/16/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/16/avatar.svg"></a>
691
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/17/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/17/avatar.svg"></a>
692
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/18/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/18/avatar.svg"></a>
693
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/19/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/19/avatar.svg"></a>
694
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/20/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/20/avatar.svg"></a>
695
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/21/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/21/avatar.svg"></a>
696
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/22/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/22/avatar.svg"></a>
697
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/23/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/23/avatar.svg"></a>
698
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/24/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/24/avatar.svg"></a>
699
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/25/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/25/avatar.svg"></a>
700
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/26/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/26/avatar.svg"></a>
701
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/27/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/27/avatar.svg"></a>
702
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/28/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/28/avatar.svg"></a>
703
+ <a href="https://opencollective.com/twitter-bootstrap-rails/sponsor/29/website" target="_blank"><img src="https://opencollective.com/twitter-bootstrap-rails/sponsor/29/avatar.svg"></a>
688
704
 
689
705
  ## License
690
- Copyright (c) 2014 Seyhun Akyürek
706
+ Copyright (c) 2017 (since 2012) by Seyhun Akyürek
691
707
 
692
708
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
693
709
  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.