bootstrap-sass 3.3.0.1 → 3.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.gitignore +1 -0
- data/.travis.yml +8 -14
- data/CHANGELOG.md +64 -0
- data/CONTRIBUTING.md +8 -1
- data/Gemfile +1 -4
- data/LICENSE +2 -1
- data/README.md +135 -114
- data/Rakefile +58 -12
- data/assets/fonts/bootstrap/glyphicons-halflings-regular.eot +0 -0
- data/assets/fonts/bootstrap/glyphicons-halflings-regular.svg +273 -214
- data/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
- data/assets/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
- data/assets/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
- data/assets/javascripts/bootstrap/affix.js +11 -9
- data/assets/javascripts/bootstrap/alert.js +6 -5
- data/assets/javascripts/bootstrap/button.js +25 -16
- data/assets/javascripts/bootstrap/carousel.js +25 -18
- data/assets/javascripts/bootstrap/collapse.js +13 -12
- data/assets/javascripts/bootstrap/dropdown.js +51 -47
- data/assets/javascripts/bootstrap/modal.js +112 -35
- data/assets/javascripts/bootstrap/popover.js +31 -27
- data/assets/javascripts/bootstrap/scrollspy.js +19 -22
- data/assets/javascripts/bootstrap/tab.js +14 -12
- data/assets/javascripts/bootstrap/tooltip.js +255 -56
- data/assets/javascripts/bootstrap/transition.js +5 -5
- data/assets/javascripts/bootstrap-sprockets.js +2 -2
- data/assets/javascripts/bootstrap.js +1282 -962
- data/assets/javascripts/bootstrap.min.js +6 -0
- data/assets/stylesheets/_bootstrap-compass.scss +2 -0
- data/assets/stylesheets/_bootstrap-mincer.scss +4 -2
- data/assets/stylesheets/_bootstrap-sprockets.scss +2 -0
- data/assets/stylesheets/_bootstrap.scss +6 -0
- data/assets/stylesheets/bootstrap/_alerts.scss +8 -3
- data/assets/stylesheets/bootstrap/_badges.scss +16 -5
- data/assets/stylesheets/bootstrap/_breadcrumbs.scss +3 -1
- data/assets/stylesheets/bootstrap/_button-groups.scss +11 -14
- data/assets/stylesheets/bootstrap/_buttons.scss +18 -10
- data/assets/stylesheets/bootstrap/_carousel.scss +40 -36
- data/assets/stylesheets/bootstrap/_close.scss +2 -0
- data/assets/stylesheets/bootstrap/_code.scss +3 -3
- data/assets/stylesheets/bootstrap/_component-animations.scss +2 -2
- data/assets/stylesheets/bootstrap/_dropdowns.scss +24 -24
- data/assets/stylesheets/bootstrap/_forms.scss +149 -103
- data/assets/stylesheets/bootstrap/_glyphicons.scss +85 -12
- data/assets/stylesheets/bootstrap/_grid.scss +10 -0
- data/assets/stylesheets/bootstrap/_input-groups.scss +10 -5
- data/assets/stylesheets/bootstrap/_jumbotron.scss +11 -5
- data/assets/stylesheets/bootstrap/_labels.scss +1 -1
- data/assets/stylesheets/bootstrap/_list-group.scss +30 -34
- data/assets/stylesheets/bootstrap/_media.scss +19 -0
- data/assets/stylesheets/bootstrap/_mixins.scss +1 -0
- data/assets/stylesheets/bootstrap/_modals.scss +9 -8
- data/assets/stylesheets/bootstrap/_navbar.scss +77 -82
- data/assets/stylesheets/bootstrap/_navs.scss +4 -6
- data/assets/stylesheets/bootstrap/_normalize.scss +13 -13
- data/assets/stylesheets/bootstrap/_pager.scss +2 -2
- data/assets/stylesheets/bootstrap/_pagination.scss +15 -17
- data/assets/stylesheets/bootstrap/_panels.scss +16 -6
- data/assets/stylesheets/bootstrap/_popovers.scss +50 -58
- data/assets/stylesheets/bootstrap/_print.scss +90 -98
- data/assets/stylesheets/bootstrap/_progress-bars.scss +3 -3
- data/assets/stylesheets/bootstrap/_responsive-embed.scss +10 -10
- data/assets/stylesheets/bootstrap/_responsive-utilities.scss +11 -6
- data/assets/stylesheets/bootstrap/_scaffolding.scss +18 -7
- data/assets/stylesheets/bootstrap/_tables.scss +24 -24
- data/assets/stylesheets/bootstrap/_theme.scss +57 -22
- data/assets/stylesheets/bootstrap/_thumbnails.scss +1 -1
- data/assets/stylesheets/bootstrap/_tooltip.scss +49 -32
- data/assets/stylesheets/bootstrap/_type.scss +12 -12
- data/assets/stylesheets/bootstrap/_utilities.scss +0 -1
- data/assets/stylesheets/bootstrap/_variables.scss +27 -17
- data/assets/stylesheets/bootstrap/_wells.scss +2 -2
- data/assets/stylesheets/bootstrap/mixins/_alerts.scss +2 -1
- data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +2 -1
- data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +4 -4
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +20 -11
- data/assets/stylesheets/bootstrap/mixins/_center-block.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +4 -4
- data/assets/stylesheets/bootstrap/mixins/_gradients.scss +6 -8
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +2 -2
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +8 -8
- data/assets/stylesheets/bootstrap/mixins/_hide-text.scss +3 -3
- data/assets/stylesheets/bootstrap/mixins/_image.scss +5 -10
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +3 -2
- data/assets/stylesheets/bootstrap/mixins/_opacity.scss +2 -3
- data/assets/stylesheets/bootstrap/mixins/_pagination.scss +2 -1
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +18 -0
- data/assets/stylesheets/bootstrap/mixins/_resize.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss +1 -5
- data/assets/stylesheets/bootstrap/mixins/_tab-focus.scss +3 -3
- data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +2 -1
- data/assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss +4 -4
- data/bootstrap-sass.gemspec +10 -9
- data/bower.json +6 -20
- data/composer.json +2 -2
- data/eyeglass-exports.js +7 -0
- data/lib/bootstrap-sass/engine.rb +6 -1
- data/lib/bootstrap-sass/version.rb +2 -2
- data/lib/bootstrap-sass.rb +32 -13
- data/package-lock.json +1611 -0
- data/package.json +21 -7
- data/sache.json +1 -1
- data/tasks/bower.rake +2 -5
- data/tasks/converter/fonts_conversion.rb +1 -1
- data/tasks/converter/js_conversion.rb +7 -5
- data/tasks/converter/less_conversion.rb +48 -37
- data/tasks/converter/network.rb +12 -7
- data/tasks/converter.rb +1 -1
- data/templates/project/_bootstrap-variables.sass +27 -18
- data/templates/project/styles.sass +3 -0
- data/test/compilation_test.rb +24 -12
- data/test/dummy_rails/app/assets/stylesheets/{application.css.sass → application.sass} +0 -0
- data/test/dummy_rails/app/views/pages/root.html.slim +43 -0
- data/test/dummy_rails/config/application.rb +2 -1
- data/test/dummy_rails/config/boot.rb +1 -1
- data/test/dummy_rails/config/environments/development.rb +0 -3
- data/test/dummy_rails/config/environments/production.rb +7 -1
- data/test/dummy_rails/config/environments/test.rb +9 -1
- data/test/dummy_sass_only/Gemfile +1 -1
- data/test/dummy_sass_only/compile.rb +14 -7
- data/test/dummy_sass_only/import_all.scss +2 -0
- data/test/gemfiles/default.gemfile +3 -0
- data/test/node_mincer_test.rb +2 -3
- data/test/node_sass_compile_test.sh +4 -3
- data/test/sass_test.rb +10 -7
- data/test/sprockets_rails_test.rb +12 -8
- data/test/support/dummy_rails_integration.rb +1 -1
- data/test/support/reporting.rb +10 -0
- data/test/test_helper.rb +3 -2
- metadata +56 -46
- data/test/compass_test.rb +0 -9
- data/test/dummy_rails/log/development.log +0 -0
- data/test/dummy_sass_only/import_all.sass +0 -2
- data/test/gemfiles/sass_3_2.gemfile +0 -6
- data/test/gemfiles/sass_3_3.gemfile +0 -6
- data/test/gemfiles/sass_3_4.gemfile +0 -7
- data/test/gemfiles/sass_head.gemfile +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 58feea8410ac26aa16a8887d49c39915f01053fac4d547549f22ad09cca903a2
|
4
|
+
data.tar.gz: ab2888314daa99c23c67034bb52e89cab7ad5c80fc94cafa2aa000964e6ac4a6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 524b345c929bbd2013145b9d0efff1e9a9ae40dd92bf10084bbed4d00f1cd4a629258d337d497131be7d386badf3a512951a82670a6e6e1fc82ff34a1d6002ca
|
7
|
+
data.tar.gz: cf05215a71378dcd0f25293cd32095d947b7b748113c3e89c1d65c6f5030dc50ad6b5ecc2817695f8d530ba0ec7ef388e819c4b232c68ad2d03a564718896051
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -1,25 +1,19 @@
|
|
1
|
+
dist: xenial
|
1
2
|
language: ruby
|
3
|
+
cache: bundler
|
4
|
+
bundler_args: --path ../../vendor/bundle --without debug
|
2
5
|
rvm:
|
3
|
-
- 2.1
|
4
|
-
- jruby
|
5
|
-
- rbx-2
|
6
|
+
- 2.5.1
|
6
7
|
gemfile:
|
7
|
-
- test/gemfiles/
|
8
|
-
- test/gemfiles/sass_3_3.gemfile
|
9
|
-
- test/gemfiles/sass_3_4.gemfile
|
10
|
-
- test/gemfiles/sass_head.gemfile
|
8
|
+
- test/gemfiles/default.gemfile
|
11
9
|
before_install:
|
10
|
+
- "nvm install stable"
|
12
11
|
- "npm install"
|
13
|
-
matrix:
|
14
|
-
allow_failures:
|
15
|
-
# rbx has issues https://github.com/rubinius/rubinius/issues/3060
|
16
|
-
- rvm: rbx-2
|
17
|
-
- gemfile: test/gemfiles/sass_head.gemfile
|
18
12
|
notifications:
|
19
13
|
slack: heybb:3n88HHilXn76ji9vV4gL819Y
|
20
14
|
env:
|
21
15
|
global:
|
22
16
|
- VERBOSE=1
|
23
17
|
script:
|
24
|
-
|
25
|
-
|
18
|
+
bundle exec rake && bash test/*.sh
|
19
|
+
sudo: false
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,69 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 3.4.0
|
4
|
+
|
5
|
+
* Bootstrap rubygem now depends on SassC instead of Sass.
|
6
|
+
* Compass no longer supported.
|
7
|
+
|
8
|
+
## 3.3.7
|
9
|
+
|
10
|
+
* Allows jQuery 3.x in bower.json. [#1048](https://github.com/twbs/bootstrap-sass/issues/1048)
|
11
|
+
* Adds the `style` and `sass` fields to package.json. [#1045](https://github.com/twbs/bootstrap-sass/issues/1045)
|
12
|
+
* Adds Eyeglass support. [#1007](https://github.com/twbs/bootstrap-sass/pull/1007)
|
13
|
+
|
14
|
+
## 3.3.6
|
15
|
+
|
16
|
+
* Bumps Sass dependency to 3.3.4+ to avoid compatibility issues with @at-root.
|
17
|
+
* Bumps node-sass dependency to ~3.4.2 for Node.js v5 compatibility. [#986](https://github.com/twbs/bootstrap-sass/issues/986)
|
18
|
+
* Fixes breadcrumb content issues on libsass. [#919](https://github.com/twbs/bootstrap-sass/issues/919)
|
19
|
+
* Fixes a Rails 5 compatibility issue. [#965](https://github.com/twbs/bootstrap-sass/pull/965)
|
20
|
+
|
21
|
+
Framework version: Bootstrap **v3.3.6**
|
22
|
+
|
23
|
+
## 3.3.5
|
24
|
+
|
25
|
+
Fix for standalone Compass extension compatibility. [#914](https://github.com/twbs/bootstrap-sass/issues/914)
|
26
|
+
|
27
|
+
Framework version: Bootstrap **v3.3.5**
|
28
|
+
|
29
|
+
## 3.3.4
|
30
|
+
|
31
|
+
No Sass-specific changes.
|
32
|
+
|
33
|
+
Framework version: Bootstrap **v3.3.4**
|
34
|
+
|
35
|
+
## 3.3.3
|
36
|
+
|
37
|
+
This is a re-packaged release of 3.3.2.1 (v3.3.2+1).
|
38
|
+
|
39
|
+
Versions are now strictly semver.
|
40
|
+
The PATCH version may be ahead of the upstream.
|
41
|
+
|
42
|
+
Framework version: Bootstrap **v3.3.2**.
|
43
|
+
|
44
|
+
## 3.3.2.1
|
45
|
+
|
46
|
+
* Fix glyphicons regression (revert 443d5b49eac84aec1cb2f8ea173554327bfc8c14)
|
47
|
+
|
48
|
+
## 3.3.2.0
|
49
|
+
|
50
|
+
* Autoprefixer is now required, and `autoprefixer-rails` is now a dependency for the ruby gem. [#824](https://github.com/twbs/bootstrap-sass/issues/824)
|
51
|
+
* Minimum precision reduced from 10 to 8 [#821](https://github.com/twbs/bootstrap-sass/issues/821)
|
52
|
+
* Requiring bootstrap JS from npm now works [#812](https://github.com/twbs/bootstrap-sass/issues/812)
|
53
|
+
* Fix Sass 3.4.x + IE10 compatibility issue [#803](https://github.com/twbs/bootstrap-sass/issues/803)
|
54
|
+
* Provide minified JS bundle [#777](https://github.com/twbs/bootstrap-sass/issues/777)
|
55
|
+
* Bower package is now at bootstrap-sass [#813](https://github.com/twbs/bootstrap-sass/issues/813)
|
56
|
+
|
57
|
+
|
58
|
+
## 3.3.1.0
|
59
|
+
|
60
|
+
* Variables override template at templates/project/_bootstrap-variables.sass
|
61
|
+
* Readme: Bower + Rails configuration
|
62
|
+
|
63
|
+
## 3.3.0.1
|
64
|
+
|
65
|
+
* Fix loading issue with the ruby gem version
|
66
|
+
|
3
67
|
## 3.3.0
|
4
68
|
|
5
69
|
* Improve libsass compatibility
|
data/CONTRIBUTING.md
CHANGED
@@ -57,7 +57,11 @@ Example:
|
|
57
57
|
|
58
58
|
**We will not accept pull requests that modify the SCSS beyond fixing bugs caused by *our* code!**
|
59
59
|
|
60
|
-
|
60
|
+
We use a [converter script][converter-readme] to automatically convert upstream bootstrap, written in LESS, to Sass.
|
61
|
+
|
62
|
+
Issues related to styles or javascript but unrelated to the conversion process should go to [twbs/bootstrap][upstream].
|
63
|
+
|
64
|
+
Pull requests that fix bugs caused by our code should not modify the SCSS directly, but should patch the converter instead.
|
61
65
|
|
62
66
|
Good pull requests - patches, improvements, new features - are a fantastic
|
63
67
|
help. They should remain focused in scope and avoid containing unrelated
|
@@ -77,3 +81,6 @@ Please **do not** derail or troll issues. Keep the
|
|
77
81
|
discussion on topic and respect the opinions of others.
|
78
82
|
|
79
83
|
*props [html5-boilerplate](https://github.com/h5bp/html5-boilerplate/blob/master/CONTRIBUTING.md)*
|
84
|
+
|
85
|
+
[upstream]: https://github.com/twbs/bootstrap
|
86
|
+
[converter-readme]: https://github.com/twbs/bootstrap-sass/blob/master/README.md#upstream-converter
|
data/Gemfile
CHANGED
data/LICENSE
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
The MIT License (MIT)
|
2
2
|
|
3
|
-
Copyright (c)
|
3
|
+
Copyright (c) 2011-2016 Twitter, Inc
|
4
|
+
Copyright (c) 2011-2016 The Bootstrap Authors
|
4
5
|
|
5
6
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
7
|
of this software and associated documentation files (the "Software"), to deal
|
data/README.md
CHANGED
@@ -1,14 +1,20 @@
|
|
1
|
-
# Bootstrap for Sass
|
1
|
+
# Bootstrap 3 for Sass
|
2
|
+
[![Gem Version](https://badge.fury.io/rb/bootstrap-sass.svg)](http://badge.fury.io/rb/bootstrap-sass)
|
3
|
+
[![npm version](https://img.shields.io/npm/v/bootstrap-sass.svg?style=flat)](https://www.npmjs.com/package/bootstrap-sass)
|
4
|
+
[![Bower Version](https://badge.fury.io/bo/bootstrap-sass.svg)](http://badge.fury.io/bo/bootstrap-sass)
|
5
|
+
[![Build Status](https://img.shields.io/travis/twbs/bootstrap-sass.svg)](https://travis-ci.org/twbs/bootstrap-sass)
|
2
6
|
|
3
|
-
`bootstrap-sass` is a Sass-powered version of [Bootstrap](
|
7
|
+
`bootstrap-sass` is a Sass-powered version of [Bootstrap](https://github.com/twbs/bootstrap) 3, ready to drop right into your Sass powered applications.
|
8
|
+
|
9
|
+
This is Bootstrap **3**. For Bootstrap **4** use the [Bootstrap rubygem](https://github.com/twbs/bootstrap-rubygem) if you use Ruby, and the [main repo](https://github.com/twbs/bootstrap) otherwise.
|
4
10
|
|
5
11
|
## Installation
|
6
12
|
|
7
13
|
Please see the appropriate guide for your environment of choice:
|
8
14
|
|
9
15
|
* [Ruby on Rails](#a-ruby-on-rails).
|
10
|
-
* [
|
11
|
-
* [
|
16
|
+
* [Bower](#b-bower).
|
17
|
+
* [npm / Node.js](#c-npm--nodejs).
|
12
18
|
|
13
19
|
### a. Ruby on Rails
|
14
20
|
|
@@ -17,20 +23,13 @@ Please see the appropriate guide for your environment of choice:
|
|
17
23
|
In your Gemfile you need to add the `bootstrap-sass` gem, and ensure that the `sass-rails` gem is present - it is added to new Rails applications by default.
|
18
24
|
|
19
25
|
```ruby
|
20
|
-
gem 'bootstrap-sass', '~> 3.
|
21
|
-
gem '
|
22
|
-
```
|
23
|
-
|
24
|
-
It is also recommended to use [Autoprefixer](https://github.com/ai/autoprefixer-rails) with Bootstrap
|
25
|
-
to add browser vendor prefixes automatically. Simply add the gem:
|
26
|
-
|
27
|
-
```ruby
|
28
|
-
gem 'autoprefixer-rails'
|
26
|
+
gem 'bootstrap-sass', '~> 3.4.1'
|
27
|
+
gem 'sassc-rails', '>= 2.1.0'
|
29
28
|
```
|
30
29
|
|
31
30
|
`bundle install` and restart your server to make the files available through the pipeline.
|
32
31
|
|
33
|
-
Import Bootstrap styles in `app/assets/stylesheets/application.
|
32
|
+
Import Bootstrap styles in `app/assets/stylesheets/application.scss`:
|
34
33
|
|
35
34
|
```scss
|
36
35
|
// "bootstrap-sprockets" must be imported before "bootstrap" and "bootstrap/variables"
|
@@ -40,119 +39,96 @@ Import Bootstrap styles in `app/assets/stylesheets/application.css.scss`:
|
|
40
39
|
|
41
40
|
`bootstrap-sprockets` must be imported before `bootstrap` for the icon fonts to work.
|
42
41
|
|
43
|
-
Make sure the file has `.
|
44
|
-
it may come with a `.css` file instead. If this file exists, it will be served instead of Sass, so
|
42
|
+
Make sure the file has `.scss` extension (or `.sass` for Sass syntax). If you have just generated a new Rails app,
|
43
|
+
it may come with a `.css` file instead. If this file exists, it will be served instead of Sass, so rename it:
|
45
44
|
|
46
45
|
```console
|
47
|
-
$
|
46
|
+
$ mv app/assets/stylesheets/application.css app/assets/stylesheets/application.scss
|
48
47
|
```
|
49
48
|
|
50
|
-
|
49
|
+
Then, remove all the `*= require_self` and `*= require_tree .` statements from the sass file. Instead, use `@import` to import Sass files.
|
51
50
|
|
52
|
-
|
51
|
+
Do not use `*= require` in Sass or your other stylesheets will not be [able to access][antirequire] the Bootstrap mixins or variables.
|
53
52
|
|
54
|
-
|
55
|
-
|
56
|
-
//= require bootstrap-sprockets
|
57
|
-
```
|
58
|
-
|
59
|
-
#### Bower with Rails
|
60
|
-
|
61
|
-
When using [bootstrap-sass Bower package](#c-bower) instead of the gem in Rails, add Bootstrap asset paths:
|
53
|
+
Bootstrap JavaScript depends on jQuery.
|
54
|
+
If you're using Rails 5.1+, add the `jquery-rails` gem to your Gemfile:
|
62
55
|
|
63
56
|
```ruby
|
64
|
-
|
65
|
-
# bootstrap-sass asset paths
|
66
|
-
root.join('vendor/assets/bower_components/bootstrap-sass/assets').tap do |path|
|
67
|
-
config.sass.load_paths << path.join('stylesheets')
|
68
|
-
config.assets.paths += %w(javascripts fonts images).map(&path.method(:join))
|
69
|
-
end
|
57
|
+
gem 'jquery-rails'
|
70
58
|
```
|
71
59
|
|
72
|
-
|
73
|
-
|
74
|
-
```ruby
|
75
|
-
# config/initializers/sass.rb
|
76
|
-
# Minimum precision required by bootstrap-sass
|
77
|
-
::Sass::Script::Number.precision = [10, ::Sass::Script::Number.precision].max
|
60
|
+
```console
|
61
|
+
$ bundle install
|
78
62
|
```
|
79
63
|
|
80
|
-
|
81
|
-
|
82
|
-
Please make sure `sprockets-rails` is at least v2.1.4.
|
83
|
-
|
84
|
-
#### Rails 3.2.x
|
85
|
-
|
86
|
-
Rails 3.2 is [no longer maintained for bugfixes](http://guides.rubyonrails.org/maintenance_policy.html), and you should upgrade as soon as possible.
|
87
|
-
|
88
|
-
Starting with bootstrap-sass v3.1.1.1, due to the structural changes from upstream you will need these
|
89
|
-
backported asset pipeline gems on Rails 3.2. There is more on why this is necessary in
|
90
|
-
https://github.com/twbs/bootstrap-sass/issues/523 and https://github.com/twbs/bootstrap-sass/issues/578.
|
64
|
+
Require Bootstrap Javascripts in `app/assets/javascripts/application.js`:
|
91
65
|
|
92
|
-
```
|
93
|
-
|
94
|
-
|
95
|
-
gem 'sass-rails', github: 'guilleiguaran/sass-rails', branch: 'backport'
|
66
|
+
```js
|
67
|
+
//= require jquery
|
68
|
+
//= require bootstrap-sprockets
|
96
69
|
```
|
97
70
|
|
98
|
-
|
71
|
+
`bootstrap-sprockets` and `bootstrap` [should not both be included](https://github.com/twbs/bootstrap-sass/issues/829#issuecomment-75153827) in `application.js`.
|
99
72
|
|
100
|
-
|
101
|
-
|
102
|
-
gem install bootstrap-sass
|
103
|
-
```
|
73
|
+
`bootstrap-sprockets` provides individual Bootstrap Javascript files (`alert.js` or `dropdown.js`, for example), while
|
74
|
+
`bootstrap` provides a concatenated file containing all Bootstrap Javascripts.
|
104
75
|
|
105
|
-
|
76
|
+
#### Bower with Rails
|
106
77
|
|
107
|
-
|
108
|
-
# config.rb:
|
109
|
-
require 'bootstrap-sass'
|
110
|
-
```
|
78
|
+
When using [bootstrap-sass Bower package](#c-bower) instead of the gem in Rails, configure assets in `config/application.rb`:
|
111
79
|
|
112
|
-
```
|
113
|
-
|
80
|
+
```ruby
|
81
|
+
# Bower asset paths
|
82
|
+
root.join('vendor', 'assets', 'bower_components').to_s.tap do |bower_path|
|
83
|
+
config.sass.load_paths << bower_path
|
84
|
+
config.assets.paths << bower_path
|
85
|
+
end
|
86
|
+
# Precompile Bootstrap fonts
|
87
|
+
config.assets.precompile << %r(bootstrap-sass/assets/fonts/bootstrap/[\w-]+\.(?:eot|svg|ttf|woff2?)$)
|
88
|
+
# Minimum Sass number precision required by bootstrap-sass
|
89
|
+
::Sass::Script::Value::Number.precision = [8, ::Sass::Script::Value::Number.precision].max
|
114
90
|
```
|
115
91
|
|
116
|
-
|
92
|
+
Replace Bootstrap `@import` statements in `application.scss` with:
|
117
93
|
|
118
|
-
```
|
119
|
-
$
|
94
|
+
```scss
|
95
|
+
$icon-font-path: "bootstrap-sass/assets/fonts/bootstrap/";
|
96
|
+
@import "bootstrap-sass/assets/stylesheets/bootstrap-sprockets";
|
97
|
+
@import "bootstrap-sass/assets/stylesheets/bootstrap";
|
120
98
|
```
|
121
99
|
|
122
|
-
|
100
|
+
Replace Bootstrap `require` directive in `application.js` with:
|
123
101
|
|
124
|
-
```
|
125
|
-
|
102
|
+
```js
|
103
|
+
//= require bootstrap-sass/assets/javascripts/bootstrap-sprockets
|
126
104
|
```
|
127
105
|
|
128
|
-
|
106
|
+
#### Rails 4.x
|
107
|
+
|
108
|
+
Please make sure `sprockets-rails` is at least v2.1.4.
|
129
109
|
|
130
|
-
|
131
|
-
* [_bootstrap-variables.sass](/templates/project/_bootstrap-variables.sass.erb) - all of Bootstrap variables, override them here.
|
110
|
+
#### Rails 3.2.x
|
132
111
|
|
133
|
-
|
134
|
-
If this happens, change the import order so that Compass mixins are loaded later.
|
112
|
+
bootstrap-sass is no longer compatible with Rails 3. The latest version of bootstrap-sass compatible with Rails 3.2 is v3.1.1.0.
|
135
113
|
|
136
|
-
###
|
114
|
+
### b. Bower
|
137
115
|
|
138
|
-
|
116
|
+
bootstrap-sass Bower package is compatible with node-sass 3.2.0+. You can install it with:
|
139
117
|
|
140
118
|
```console
|
141
|
-
$ bower install bootstrap-sass
|
119
|
+
$ bower install bootstrap-sass
|
142
120
|
```
|
143
121
|
|
144
|
-
`bootstrap-sass` is taken so make sure you use the command above.
|
145
|
-
|
146
122
|
Sass, JS, and all other assets are located at [assets](/assets).
|
147
123
|
|
148
|
-
By default, `bower.json` main field list only the main `
|
124
|
+
By default, `bower.json` main field list only the main `_bootstrap.scss` and all the static assets (fonts and JS).
|
149
125
|
This is compatible by default with asset managers such as [wiredep](https://github.com/taptapship/wiredep).
|
150
126
|
|
151
127
|
#### Node.js Mincer
|
152
128
|
|
153
|
-
If you use [mincer][mincer] with node-sass, import
|
129
|
+
If you use [mincer][mincer] with node-sass, import Bootstrap like so:
|
154
130
|
|
155
|
-
In `application.css.ejs.scss` (NB **.css.ejs.
|
131
|
+
In `application.css.ejs.scss` (NB **.css.ejs.scss**):
|
156
132
|
|
157
133
|
```scss
|
158
134
|
// Import mincer asset paths helper integration
|
@@ -168,10 +144,15 @@ In `application.js`:
|
|
168
144
|
|
169
145
|
See also this [example manifest.js](/test/dummy_node_mincer/manifest.js) for mincer.
|
170
146
|
|
147
|
+
### c. npm / Node.js
|
148
|
+
```console
|
149
|
+
$ npm install bootstrap-sass
|
150
|
+
```
|
171
151
|
|
172
|
-
### Configuration
|
173
152
|
|
174
|
-
|
153
|
+
## Configuration
|
154
|
+
|
155
|
+
### Sass
|
175
156
|
|
176
157
|
By default all of Bootstrap is imported.
|
177
158
|
|
@@ -184,28 +165,39 @@ In the application Sass file, replace `@import 'bootstrap'` with:
|
|
184
165
|
@import 'bootstrap-custom';
|
185
166
|
```
|
186
167
|
|
187
|
-
|
168
|
+
### Sass: Number Precision
|
188
169
|
|
189
|
-
bootstrap-sass [requires](https://github.com/twbs/bootstrap-sass/issues/409) minimum [Sass number precision][sass-precision] of
|
170
|
+
bootstrap-sass [requires](https://github.com/twbs/bootstrap-sass/issues/409) minimum [Sass number precision][sass-precision] of 8 (default is 5).
|
190
171
|
|
191
|
-
Precision is set for
|
192
|
-
When using
|
172
|
+
Precision is set for Ruby automatically when using the `sassc-rails` gem.
|
173
|
+
When using the npm or Bower version with Ruby, you can set it with:
|
193
174
|
|
194
175
|
```ruby
|
195
|
-
::Sass::Script::Number.precision = [
|
176
|
+
::Sass::Script::Value::Number.precision = [8, ::Sass::Script::Value::Number.precision].max
|
196
177
|
```
|
197
178
|
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
179
|
+
### Sass: Autoprefixer
|
180
|
+
|
181
|
+
Bootstrap requires the use of [Autoprefixer][autoprefixer].
|
182
|
+
[Autoprefixer][autoprefixer] adds vendor prefixes to CSS rules using values from [Can I Use](https://caniuse.com/).
|
183
|
+
|
184
|
+
To match [upstream Bootstrap's level of browser compatibility](https://getbootstrap.com/getting-started/#support), set Autoprefixer's `browsers` option to:
|
185
|
+
```json
|
186
|
+
[
|
187
|
+
"Android 2.3",
|
188
|
+
"Android >= 4",
|
189
|
+
"Chrome >= 20",
|
190
|
+
"Firefox >= 24",
|
191
|
+
"Explorer >= 8",
|
192
|
+
"iOS >= 6",
|
193
|
+
"Opera >= 12",
|
194
|
+
"Safari >= 6"
|
195
|
+
]
|
196
|
+
```
|
205
197
|
|
206
|
-
|
198
|
+
### JavaScript
|
207
199
|
|
208
|
-
[`assets/javascripts/bootstrap.js`](/assets/javascripts/bootstrap.js) contains all of Bootstrap JavaScript,
|
200
|
+
[`assets/javascripts/bootstrap.js`](/assets/javascripts/bootstrap.js) contains all of Bootstrap's JavaScript,
|
209
201
|
concatenated in the [correct order](/assets/javascripts/bootstrap-sprockets.js).
|
210
202
|
|
211
203
|
|
@@ -227,7 +219,7 @@ You can check dependencies in the [Bootstrap JS documentation][jsdocs].
|
|
227
219
|
//= require bootstrap/dropdown
|
228
220
|
```
|
229
221
|
|
230
|
-
|
222
|
+
### Fonts
|
231
223
|
|
232
224
|
The fonts are referenced as:
|
233
225
|
|
@@ -248,19 +240,19 @@ When using bootstrap-sass with Compass, Sprockets, or Mincer, you **must** impor
|
|
248
240
|
|
249
241
|
### Sass
|
250
242
|
|
251
|
-
Import Bootstrap into a Sass file (for example, application.
|
243
|
+
Import Bootstrap into a Sass file (for example, `application.scss`) to get all of Bootstrap's styles, mixins and variables!
|
252
244
|
|
253
245
|
```scss
|
254
246
|
@import "bootstrap";
|
255
247
|
```
|
256
248
|
|
257
|
-
You can also include optional
|
249
|
+
You can also include optional Bootstrap theme:
|
258
250
|
|
259
251
|
```scss
|
260
252
|
@import "bootstrap/theme";
|
261
253
|
```
|
262
254
|
|
263
|
-
The full list of
|
255
|
+
The full list of Bootstrap variables can be found [here](https://getbootstrap.com/customize/#less-variables). You can override these by simply redefining the variable before the `@import` directive, e.g.:
|
264
256
|
|
265
257
|
```scss
|
266
258
|
$navbar-default-bg: #312312;
|
@@ -270,9 +262,38 @@ $navbar-default-color: $light-orange;
|
|
270
262
|
@import "bootstrap";
|
271
263
|
```
|
272
264
|
|
265
|
+
### Eyeglass
|
266
|
+
|
267
|
+
Bootstrap is available as an [Eyeglass](https://github.com/sass-eyeglass/eyeglass) module. After installing Bootstrap via NPM you can import the Bootstrap library via:
|
268
|
+
|
269
|
+
```scss
|
270
|
+
@import "bootstrap-sass/bootstrap"
|
271
|
+
```
|
272
|
+
|
273
|
+
or import only the parts of Bootstrap you need:
|
274
|
+
|
275
|
+
```scss
|
276
|
+
@import "bootstrap-sass/bootstrap/variables";
|
277
|
+
@import "bootstrap-sass/bootstrap/mixins";
|
278
|
+
@import "bootstrap-sass/bootstrap/carousel";
|
279
|
+
```
|
280
|
+
|
273
281
|
## Version
|
274
282
|
|
275
|
-
|
283
|
+
Bootstrap for Sass version may differ from the upstream version in the last number, known as
|
284
|
+
[PATCH](https://semver.org/spec/v2.0.0.html). The patch version may be ahead of the corresponding upstream minor.
|
285
|
+
This happens when we need to release Sass-specific changes.
|
286
|
+
|
287
|
+
Before v3.3.2, Bootstrap for Sass version used to reflect the upstream version, with an additional number for
|
288
|
+
Sass-specific changes. This was changed due to Bower and npm compatibility issues.
|
289
|
+
|
290
|
+
The upstream versions vs the Bootstrap for Sass versions are:
|
291
|
+
|
292
|
+
| Upstream | Sass |
|
293
|
+
|---------:|--------:|
|
294
|
+
| 3.3.4+ | same |
|
295
|
+
| 3.3.2 | 3.3.3 |
|
296
|
+
| <= 3.3.1 | 3.3.1.x |
|
276
297
|
|
277
298
|
Always refer to [CHANGELOG.md](/CHANGELOG.md) when upgrading.
|
278
299
|
|
@@ -301,8 +322,8 @@ To convert a specific branch or version, pass the branch name or the commit hash
|
|
301
322
|
|
302
323
|
The latest converter script is located [here][converter] and does the following:
|
303
324
|
|
304
|
-
* Converts upstream
|
305
|
-
* Copies all upstream JavaScript into `assets/javascripts/bootstrap`,
|
325
|
+
* Converts upstream Bootstrap LESS files to its matching SCSS file.
|
326
|
+
* Copies all upstream JavaScript into `assets/javascripts/bootstrap`, a Sprockets manifest at `assets/javascripts/bootstrap-sprockets.js`, and a concatenation at `assets/javascripts/bootstrap.js`.
|
306
327
|
* Copies all upstream font files into `assets/fonts/bootstrap`.
|
307
328
|
* Sets `Bootstrap::BOOTSTRAP_SHA` in [version.rb][version] to the branch sha.
|
308
329
|
|
@@ -323,15 +344,15 @@ and a [significant number of other contributors][contrib].
|
|
323
344
|
|
324
345
|
## You're in good company
|
325
346
|
bootstrap-sass is used to build some awesome projects all over the web, including
|
326
|
-
[Diaspora](
|
327
|
-
Michael Hartl's [Rails Tutorial](
|
328
|
-
[kandan](http://
|
347
|
+
[Diaspora](https://diasporafoundation.org/), [rails_admin](https://github.com/sferik/rails_admin),
|
348
|
+
Michael Hartl's [Rails Tutorial](https://www.railstutorial.org/), [gitlabhq](http://gitlabhq.com/) and
|
349
|
+
[kandan](http://getkandan.com/).
|
329
350
|
|
330
351
|
[converter]: https://github.com/twbs/bootstrap-sass/blob/master/tasks/converter/less_conversion.rb
|
331
352
|
[version]: https://github.com/twbs/bootstrap-sass/blob/master/lib/bootstrap-sass/version.rb
|
332
353
|
[contrib]: https://github.com/twbs/bootstrap-sass/graphs/contributors
|
333
354
|
[antirequire]: https://github.com/twbs/bootstrap-sass/issues/79#issuecomment-4428595
|
334
|
-
[jsdocs]:
|
335
|
-
[sass-precision]: http://sass-lang.com/documentation/Sass/Script/Number.html#precision-class_method
|
355
|
+
[jsdocs]: https://getbootstrap.com/javascript/#transitions
|
356
|
+
[sass-precision]: http://sass-lang.com/documentation/Sass/Script/Value/Number.html#precision%3D-class_method
|
336
357
|
[mincer]: https://github.com/nodeca/mincer
|
337
|
-
[autoprefixer]: https://github.com/
|
358
|
+
[autoprefixer]: https://github.com/postcss/autoprefixer
|
data/Rakefile
CHANGED
@@ -1,21 +1,55 @@
|
|
1
|
-
|
1
|
+
require 'bundler/gem_tasks'
|
2
|
+
|
3
|
+
lib_path = File.join(__dir__, 'lib')
|
2
4
|
$:.unshift(lib_path) unless $:.include?(lib_path)
|
3
5
|
|
4
6
|
load './tasks/bower.rake'
|
5
7
|
|
6
8
|
require 'rake/testtask'
|
7
|
-
|
8
|
-
|
9
|
-
|
9
|
+
Rake::TestTask.new do |t|
|
10
|
+
t.libs << 'test'
|
11
|
+
t.test_files = FileList['test/**/*_test.rb']
|
12
|
+
t.verbose = true
|
13
|
+
end
|
14
|
+
|
15
|
+
desc 'Test all Gemfiles from test/*.gemfile'
|
16
|
+
task :test_all_gemfiles do
|
17
|
+
require 'term/ansicolor'
|
18
|
+
require 'pty'
|
19
|
+
require 'shellwords'
|
20
|
+
cmd = 'bundle install --quiet && bundle exec rake --trace'
|
21
|
+
statuses = Dir.glob('./test/gemfiles/*{[!.lock]}').map do |gemfile|
|
22
|
+
env = {'BUNDLE_GEMFILE' => gemfile}
|
23
|
+
cmd_with_env = " (#{env.map { |k, v| "export #{k}=#{Shellwords.escape v}" } * ' '}; #{cmd})"
|
24
|
+
$stderr.puts Term::ANSIColor.cyan("Testing\n#{cmd_with_env}")
|
25
|
+
PTY.spawn(env, cmd) do |r, _w, pid|
|
26
|
+
begin
|
27
|
+
r.each_line { |l| puts l }
|
28
|
+
rescue Errno::EIO
|
29
|
+
# Errno:EIO error means that the process has finished giving output.
|
30
|
+
ensure
|
31
|
+
::Process.wait pid
|
32
|
+
end
|
33
|
+
end
|
34
|
+
[$? && $?.exitstatus == 0, cmd_with_env]
|
35
|
+
end
|
36
|
+
failed_cmds = statuses.reject(&:first).map { |(_status, cmd_with_env)| cmd_with_env }
|
37
|
+
if failed_cmds.empty?
|
38
|
+
$stderr.puts Term::ANSIColor.green('Tests pass with all gemfiles')
|
39
|
+
else
|
40
|
+
$stderr.puts Term::ANSIColor.red("Failing (#{failed_cmds.size} / #{statuses.size})\n#{failed_cmds * "\n"}")
|
41
|
+
exit 1
|
42
|
+
end
|
10
43
|
end
|
11
44
|
|
12
45
|
desc 'Dumps output to a CSS file for testing'
|
13
46
|
task :debug do
|
14
|
-
require '
|
47
|
+
require 'sassc'
|
48
|
+
require 'bootstrap-sass'
|
15
49
|
path = Bootstrap.stylesheets_path
|
16
|
-
%w(
|
17
|
-
engine =
|
18
|
-
File.open("
|
50
|
+
%w(_bootstrap).each do |file|
|
51
|
+
engine = SassC::Engine.new(File.read("#{path}/#{file}.scss"), syntax: :scss, load_paths: ['.', path])
|
52
|
+
File.open("tmp/#{file}.css", 'w') { |f| f.write(engine.render) }
|
19
53
|
end
|
20
54
|
end
|
21
55
|
|
@@ -33,20 +67,32 @@ end
|
|
33
67
|
|
34
68
|
desc 'Compile bootstrap-sass to tmp/ (or first arg)'
|
35
69
|
task :compile, :css_path do |t, args|
|
36
|
-
require '
|
70
|
+
require 'sassc'
|
71
|
+
require 'bootstrap-sass'
|
37
72
|
require 'term/ansicolor'
|
38
73
|
|
39
74
|
path = 'assets/stylesheets'
|
40
75
|
css_path = args.with_defaults(css_path: 'tmp')[:css_path]
|
41
76
|
puts Term::ANSIColor.bold "Compiling SCSS in #{path}"
|
42
77
|
Dir.mkdir(css_path) unless File.directory?(css_path)
|
43
|
-
%w(
|
78
|
+
%w(_bootstrap bootstrap/_theme).each do |file|
|
44
79
|
save_path = "#{css_path}/#{file.sub(/(^|\/)?_+/, '\1').sub('/', '-')}.css"
|
45
80
|
puts Term::ANSIColor.cyan(" #{save_path}") + '...'
|
46
|
-
engine
|
47
|
-
css
|
81
|
+
engine = SassC::Engine.new(File.read("#{path}/#{file}.scss"), syntax: :scss, load_paths: ['.', path])
|
82
|
+
css = engine.render
|
48
83
|
File.open(save_path, 'w') { |f| f.write css }
|
49
84
|
end
|
50
85
|
end
|
51
86
|
|
87
|
+
desc 'Start a dummy (test) Rails app server'
|
88
|
+
task :dummy_rails do
|
89
|
+
require 'rack'
|
90
|
+
require 'term/ansicolor'
|
91
|
+
port = ENV['PORT'] || 9292
|
92
|
+
puts %Q(Starting on #{Term::ANSIColor.cyan "http://localhost:#{port}"})
|
93
|
+
Rack::Server.start(
|
94
|
+
config: 'test/dummy_rails/config.ru',
|
95
|
+
Port: port)
|
96
|
+
end
|
97
|
+
|
52
98
|
task default: :test
|
Binary file
|