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.
- checksums.yaml +5 -5
- data/README.md +263 -247
- data/app/assets/fonts/glyphicons-halflings-regular.eot +0 -0
- data/app/assets/fonts/glyphicons-halflings-regular.svg +273 -214
- data/app/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/app/assets/fonts/glyphicons-halflings-regular.woff +0 -0
- data/app/assets/fonts/glyphicons-halflings-regular.woff2 +0 -0
- data/app/assets/javascripts/twitter/bootstrap/affix.js +60 -35
- data/app/assets/javascripts/twitter/bootstrap/alert.js +15 -9
- data/app/assets/javascripts/twitter/bootstrap/button.js +33 -20
- data/app/assets/javascripts/twitter/bootstrap/carousel.js +79 -47
- data/app/assets/javascripts/twitter/bootstrap/collapse.js +84 -43
- data/app/assets/javascripts/twitter/bootstrap/dropdown.js +65 -47
- data/app/assets/javascripts/twitter/bootstrap/modal.js +138 -44
- data/app/assets/javascripts/twitter/bootstrap/popover.js +12 -14
- data/app/assets/javascripts/twitter/bootstrap/scrollspy.js +57 -38
- data/app/assets/javascripts/twitter/bootstrap/tab.js +54 -24
- data/app/assets/javascripts/twitter/bootstrap/tooltip.js +202 -87
- data/app/assets/javascripts/twitter/bootstrap/transition.js +19 -8
- data/app/assets/stylesheets/twitter-bootstrap-static/bootstrap.css.erb +1 -1
- data/app/assets/stylesheets/twitter-bootstrap-static/sprites.css.erb +1 -1
- data/app/helpers/bootstrap_flash_helper.rb +8 -3
- data/app/helpers/form_errors_helper.rb +11 -11
- data/app/helpers/glyph_helper.rb +7 -3
- data/app/helpers/modal_helper.rb +9 -13
- data/app/helpers/navbar_helper.rb +5 -2
- data/app/helpers/twitter_breadcrumbs_helper.rb +4 -1
- data/app/views/twitter-bootstrap/_breadcrumbs.html.erb +5 -5
- data/lib/generators/bootstrap/install/templates/bootstrap_and_overrides.css +3 -4
- data/lib/generators/bootstrap/install/templates/bootstrap_and_overrides.less +7 -15
- data/lib/generators/bootstrap/layout/templates/layout.html.erb +5 -5
- data/lib/generators/bootstrap/layout/templates/layout.html.haml +3 -3
- data/lib/generators/bootstrap/layout/templates/layout.html.slim +3 -5
- data/lib/generators/bootstrap/themed/templates/_form.html.erb +12 -9
- data/lib/generators/bootstrap/themed/templates/_form.html.haml +7 -5
- data/lib/generators/bootstrap/themed/templates/_form.html.slim +8 -6
- data/lib/generators/bootstrap/themed/templates/edit.html.slim +1 -1
- data/lib/generators/bootstrap/themed/templates/index.html.erb +2 -0
- data/lib/generators/bootstrap/themed/templates/index.html.haml +1 -0
- data/lib/generators/bootstrap/themed/templates/index.html.slim +4 -3
- data/lib/generators/bootstrap/themed/templates/new.html.slim +1 -1
- data/lib/generators/bootstrap/themed/templates/show.html.slim +1 -1
- data/lib/generators/bootstrap/themed/templates/simple_form/_form.html.haml +1 -1
- data/lib/twitter/bootstrap/rails/breadcrumbs.rb +24 -13
- data/lib/twitter/bootstrap/rails/engine.rb +17 -12
- data/lib/twitter/bootstrap/rails/version.rb +1 -1
- data/spec/lib/breadcrumbs_spec.rb +42 -17
- data/spec/lib/twitter_bootstrap_rails/badge_label_helper_spec.rb +10 -4
- data/spec/lib/twitter_bootstrap_rails/bootstrap_flash_helper_spec.rb +128 -0
- data/spec/lib/twitter_bootstrap_rails/form_errors_helper_spec.rb +148 -0
- data/spec/lib/twitter_bootstrap_rails/glyph_helper_spec.rb +24 -0
- data/spec/lib/twitter_bootstrap_rails/modal_helper_spec.rb +2 -2
- data/spec/lib/twitter_bootstrap_rails/navbar_helper_spec.rb +62 -12
- data/spec/spec_helper.rb +5 -1
- data/vendor/assets/stylesheets/twitter-bootstrap-static/bootstrap.css.erb +1 -3
- data/vendor/toolkit/twitter/bootstrap/alerts.less +5 -0
- data/vendor/toolkit/twitter/bootstrap/badges.less +14 -3
- data/vendor/toolkit/twitter/bootstrap/bootstrap.less +6 -1
- data/vendor/toolkit/twitter/bootstrap/breadcrumbs.less +0 -0
- data/vendor/toolkit/twitter/bootstrap/button-groups.less +13 -14
- data/vendor/toolkit/twitter/bootstrap/buttons.less +14 -7
- data/vendor/toolkit/twitter/bootstrap/carousel.less +34 -7
- data/vendor/toolkit/twitter/bootstrap/close.less +1 -0
- data/vendor/toolkit/twitter/bootstrap/code.less +0 -0
- data/vendor/toolkit/twitter/bootstrap/component-animations.less +3 -1
- data/vendor/toolkit/twitter/bootstrap/dropdowns.less +9 -8
- data/vendor/toolkit/twitter/bootstrap/forms.less +110 -41
- data/vendor/toolkit/twitter/bootstrap/glyphicons.less +75 -3
- data/vendor/toolkit/twitter/bootstrap/grid.less +0 -0
- data/vendor/toolkit/twitter/bootstrap/input-groups.less +8 -3
- data/vendor/toolkit/twitter/bootstrap/jumbotron.less +10 -4
- data/vendor/toolkit/twitter/bootstrap/labels.less +0 -0
- data/vendor/toolkit/twitter/bootstrap/list-group.less +11 -13
- data/vendor/toolkit/twitter/bootstrap/media.less +40 -30
- data/vendor/toolkit/twitter/bootstrap/mixins/alerts.less +0 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/background-variant.less +2 -1
- data/vendor/toolkit/twitter/bootstrap/mixins/border-radius.less +0 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/buttons.less +19 -6
- data/vendor/toolkit/twitter/bootstrap/mixins/center-block.less +0 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/clearfix.less +0 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/forms.less +0 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/gradients.less +0 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/grid-framework.less +4 -4
- data/vendor/toolkit/twitter/bootstrap/mixins/grid.less +4 -4
- data/vendor/toolkit/twitter/bootstrap/mixins/hide-text.less +2 -2
- data/vendor/toolkit/twitter/bootstrap/mixins/image.less +0 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/labels.less +1 -1
- data/vendor/toolkit/twitter/bootstrap/mixins/list-group.less +2 -1
- data/vendor/toolkit/twitter/bootstrap/mixins/nav-divider.less +0 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/nav-vertical-align.less +0 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/opacity.less +0 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/pagination.less +2 -1
- data/vendor/toolkit/twitter/bootstrap/mixins/panels.less +0 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/progress-bar.less +0 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/reset-filter.less +0 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/reset-text.less +18 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/resize.less +0 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/responsive-visibility.less +1 -1
- data/vendor/toolkit/twitter/bootstrap/mixins/size.less +0 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/tab-focus.less +0 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/table-row.less +0 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/text-emphasis.less +2 -1
- data/vendor/toolkit/twitter/bootstrap/mixins/text-overflow.less +0 -0
- data/vendor/toolkit/twitter/bootstrap/mixins/vendor-prefixes.less +8 -5
- data/vendor/toolkit/twitter/bootstrap/mixins.less +1 -0
- data/vendor/toolkit/twitter/bootstrap/modals.less +3 -3
- data/vendor/toolkit/twitter/bootstrap/navbar.less +6 -1
- data/vendor/toolkit/twitter/bootstrap/navs.less +1 -1
- data/vendor/toolkit/twitter/bootstrap/normalize.less +12 -13
- data/vendor/toolkit/twitter/bootstrap/pager.less +1 -2
- data/vendor/toolkit/twitter/bootstrap/pagination.less +5 -4
- data/vendor/toolkit/twitter/bootstrap/panels.less +27 -4
- data/vendor/toolkit/twitter/bootstrap/popovers.less +5 -7
- data/vendor/toolkit/twitter/bootstrap/print.less +96 -96
- data/vendor/toolkit/twitter/bootstrap/progress-bars.less +1 -14
- data/vendor/toolkit/twitter/bootstrap/responsive-embed.less +10 -9
- data/vendor/toolkit/twitter/bootstrap/responsive-utilities.less +0 -0
- data/vendor/toolkit/twitter/bootstrap/scaffolding.less +12 -1
- data/vendor/toolkit/twitter/bootstrap/tables.less +6 -5
- data/vendor/toolkit/twitter/bootstrap/theme.less +47 -16
- data/vendor/toolkit/twitter/bootstrap/thumbnails.less +1 -1
- data/vendor/toolkit/twitter/bootstrap/tooltip.less +13 -7
- data/vendor/toolkit/twitter/bootstrap/type.less +2 -8
- data/vendor/toolkit/twitter/bootstrap/utilities.less +0 -1
- data/vendor/toolkit/twitter/bootstrap/variables.less +36 -14
- data/vendor/toolkit/twitter/bootstrap/wells.less +0 -0
- metadata +76 -52
- data/app/assets/fonts/fontawesome-webfont.eot +0 -0
- data/app/assets/fonts/fontawesome-webfont.svg +0 -504
- data/app/assets/fonts/fontawesome-webfont.ttf +0 -0
- data/app/assets/fonts/fontawesome-webfont.woff +0 -0
- data/app/assets/images/twitter/bootstrap/glyphicons-halflings-white.png +0 -0
- data/app/assets/images/twitter/bootstrap/glyphicons-halflings.png +0 -0
- data/app/assets/stylesheets/twitter-bootstrap-static/fontawesome.css.erb +0 -4
- data/vendor/static-source/fontawesome.less +0 -8
- data/vendor/toolkit/fontawesome/bordered-pulled.less +0 -16
- data/vendor/toolkit/fontawesome/core.less +0 -12
- data/vendor/toolkit/fontawesome/fixed-width.less +0 -6
- data/vendor/toolkit/fontawesome/font-awesome.less +0 -17
- data/vendor/toolkit/fontawesome/icons.less +0 -506
- data/vendor/toolkit/fontawesome/larger.less +0 -13
- data/vendor/toolkit/fontawesome/list.less +0 -19
- data/vendor/toolkit/fontawesome/mixins.less +0 -20
- data/vendor/toolkit/fontawesome/path.less +0 -14
- data/vendor/toolkit/fontawesome/rotated-flipped.less +0 -9
- data/vendor/toolkit/fontawesome/spinning.less +0 -32
- data/vendor/toolkit/fontawesome/stacked.less +0 -20
- data/vendor/toolkit/fontawesome/variables.less +0 -515
data/README.md
CHANGED
@@ -1,41 +1,39 @@
|
|
1
|
-
# Twitter Bootstrap
|
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
|
-
|
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.
|
8
|
-
[![
|
9
|
-
[![
|
10
|
-
[![
|
11
|
-
[![
|
12
|
-
[![
|
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">
|
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,
|
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
|
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
|
-
```
|
134
|
-
|
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
|
-
|
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/
|
149
|
-
@import "twitter/bootstrap/
|
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
|
-
```
|
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
|
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
|
-
|
210
|
+
If you would like to restore the default Glyphicons, inside the generated `bootstrap_and_overrides.css.less` uncomment these lines:
|
180
211
|
|
181
|
-
```
|
182
|
-
//
|
183
|
-
@
|
184
|
-
@
|
185
|
-
@
|
186
|
-
@
|
187
|
-
@
|
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
|
-
|
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
|
-
|
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
|
-
|
206
|
-
|
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", :
|
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
|
-
|
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 :
|
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 :
|
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, :
|
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
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
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 :
|
326
|
-
|
337
|
+
```erb
|
338
|
+
<%= nav_bar fixed: :top %>
|
339
|
+
```
|
327
340
|
|
328
341
|
To render:
|
329
342
|
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
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 :
|
341
|
-
|
354
|
+
```erb
|
355
|
+
<%= nav_bar static: :top %>
|
356
|
+
```
|
342
357
|
|
343
358
|
To render:
|
344
359
|
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
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 :
|
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
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
</
|
367
|
-
|
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 :
|
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
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
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 :
|
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 :
|
438
|
+
<%= menu_group pull: :right do %>
|
421
439
|
<%= menu_item "Sign Up", registration_path %>
|
422
|
-
<%= form_for @user, :
|
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 :
|
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
|
-
|
494
|
+
```css
|
477
495
|
.navbar-form
|
478
|
-
|
496
|
+
```
|
479
497
|
To pull the form left or right, add either of these classes:
|
480
|
-
|
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
|
-
|
504
|
+
```css
|
487
505
|
.navbar-search
|
488
|
-
|
506
|
+
```
|
489
507
|
Instead of:
|
490
|
-
|
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 :
|
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 :
|
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 :
|
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
|
-
|
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
|
-
|
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
|
-
<%=
|
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, {:
|
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
|
-
|
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
|
-
|
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
|
-
|
677
|
-
|
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)
|
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.
|