Détail du package

bootstrap-sass

twbs990.7kMIT3.4.3

bootstrap-sass is a Sass-powered version of Bootstrap 3, ready to drop right into your Sass powered applications.

bootstrap, sass, css, eyeglass-module

readme

Bootstrap 3 for Sass

Gem Version npm version Bower Version Build Status

bootstrap-sass is a Sass-powered version of Bootstrap 3, ready to drop right into your Sass powered applications.

This is Bootstrap 3. For Bootstrap 4 use the Bootstrap rubygem if you use Ruby, and the main repo otherwise.

Installation

Please see the appropriate guide for your environment of choice:

a. Ruby on Rails

bootstrap-sass is easy to drop into Rails with the asset pipeline.

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.

gem 'bootstrap-sass', '~> 3.4.1'
gem 'sassc-rails', '>= 2.1.0'

bundle install and restart your server to make the files available through the pipeline.

Import Bootstrap styles in app/assets/stylesheets/application.scss:

// "bootstrap-sprockets" must be imported before "bootstrap" and "bootstrap/variables"
@import "bootstrap-sprockets";
@import "bootstrap";

bootstrap-sprockets must be imported before bootstrap for the icon fonts to work.

Make sure the file has .scss extension (or .sass for Sass syntax). If you have just generated a new Rails app, it may come with a .css file instead. If this file exists, it will be served instead of Sass, so rename it:

$ mv app/assets/stylesheets/application.css app/assets/stylesheets/application.scss

Then, remove all the *= require_self and *= require_tree . statements from the sass file. Instead, use @import to import Sass files.

Do not use *= require in Sass or your other stylesheets will not be able to access the Bootstrap mixins or variables.

Bootstrap JavaScript depends on jQuery. If you're using Rails 5.1+, add the jquery-rails gem to your Gemfile:

gem 'jquery-rails'
$ bundle install

Require Bootstrap Javascripts in app/assets/javascripts/application.js:

//= require jquery
//= require bootstrap-sprockets

bootstrap-sprockets and bootstrap should not both be included in application.js.

bootstrap-sprockets provides individual Bootstrap Javascript files (alert.js or dropdown.js, for example), while bootstrap provides a concatenated file containing all Bootstrap Javascripts.

Bower with Rails

When using bootstrap-sass Bower package instead of the gem in Rails, configure assets in config/application.rb:

# Bower asset paths
root.join('vendor', 'assets', 'bower_components').to_s.tap do |bower_path|
  config.sass.load_paths << bower_path
  config.assets.paths << bower_path
end
# Precompile Bootstrap fonts
config.assets.precompile << %r(bootstrap-sass/assets/fonts/bootstrap/[\w-]+\.(?:eot|svg|ttf|woff2?)$)
# Minimum Sass number precision required by bootstrap-sass
::Sass::Script::Value::Number.precision = [8, ::Sass::Script::Value::Number.precision].max

Replace Bootstrap @import statements in application.scss with:

$icon-font-path: "bootstrap-sass/assets/fonts/bootstrap/";
@import "bootstrap-sass/assets/stylesheets/bootstrap-sprockets";
@import "bootstrap-sass/assets/stylesheets/bootstrap";

Replace Bootstrap require directive in application.js with:

//= require bootstrap-sass/assets/javascripts/bootstrap-sprockets

Rails 4.x

Please make sure sprockets-rails is at least v2.1.4.

Rails 3.2.x

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.

b. Bower

bootstrap-sass Bower package is compatible with node-sass 3.2.0+. You can install it with:

$ bower install bootstrap-sass

Sass, JS, and all other assets are located at assets.

By default, bower.json main field list only the main _bootstrap.scss and all the static assets (fonts and JS). This is compatible by default with asset managers such as wiredep.

Node.js Mincer

If you use mincer with node-sass, import Bootstrap like so:

In application.css.ejs.scss (NB .css.ejs.scss):

// Import mincer asset paths helper integration
@import "bootstrap-mincer";
@import "bootstrap";

In application.js:

//= require bootstrap-sprockets

See also this example manifest.js for mincer.

c. npm / Node.js

$ npm install bootstrap-sass

Configuration

Sass

By default all of Bootstrap is imported.

You can also import components explicitly. To start with a full list of modules copy _bootstrap.scss file into your assets as _bootstrap-custom.scss. Then comment out components you do not want from _bootstrap-custom. In the application Sass file, replace @import 'bootstrap' with:

@import 'bootstrap-custom';

Sass: Number Precision

bootstrap-sass requires minimum Sass number precision of 8 (default is 5).

Precision is set for Ruby automatically when using the sassc-rails gem. When using the npm or Bower version with Ruby, you can set it with:

::Sass::Script::Value::Number.precision = [8, ::Sass::Script::Value::Number.precision].max

Sass: Autoprefixer

Bootstrap requires the use of Autoprefixer. Autoprefixer adds vendor prefixes to CSS rules using values from Can I Use.

To match upstream Bootstrap's level of browser compatibility, set Autoprefixer's browsers option to:

[
  "Android 2.3",
  "Android >= 4",
  "Chrome >= 20",
  "Firefox >= 24",
  "Explorer >= 8",
  "iOS >= 6",
  "Opera >= 12",
  "Safari >= 6"
]

JavaScript

assets/javascripts/bootstrap.js contains all of Bootstrap's JavaScript, concatenated in the correct order.

JavaScript with Sprockets or Mincer

If you use Sprockets or Mincer, you can require bootstrap-sprockets instead to load the individual modules:

// Load all Bootstrap JavaScript
//= require bootstrap-sprockets

You can also load individual modules, provided you also require any dependencies. You can check dependencies in the Bootstrap JS documentation.

//= require bootstrap/scrollspy
//= require bootstrap/modal
//= require bootstrap/dropdown

Fonts

The fonts are referenced as:

"#{$icon-font-path}#{$icon-font-name}.eot"

$icon-font-path defaults to bootstrap/ if asset path helpers are used, and ../fonts/bootstrap/ otherwise.

When using bootstrap-sass with Compass, Sprockets, or Mincer, you must import the relevant path helpers before Bootstrap itself, for example:

@import "bootstrap-compass";
@import "bootstrap";

Usage

Sass

Import Bootstrap into a Sass file (for example, application.scss) to get all of Bootstrap's styles, mixins and variables!

@import "bootstrap";

You can also include optional Bootstrap theme:

@import "bootstrap/theme";

The full list of Bootstrap variables can be found here. You can override these by simply redefining the variable before the @import directive, e.g.:

$navbar-default-bg: #312312;
$light-orange: #ff8c00;
$navbar-default-color: $light-orange;

@import "bootstrap";

Eyeglass

Bootstrap is available as an Eyeglass module. After installing Bootstrap via NPM you can import the Bootstrap library via:

@import "bootstrap-sass/bootstrap"

or import only the parts of Bootstrap you need:

@import "bootstrap-sass/bootstrap/variables";
@import "bootstrap-sass/bootstrap/mixins";
@import "bootstrap-sass/bootstrap/carousel";

Version

Bootstrap for Sass version may differ from the upstream version in the last number, known as PATCH. The patch version may be ahead of the corresponding upstream minor. This happens when we need to release Sass-specific changes.

Before v3.3.2, Bootstrap for Sass version used to reflect the upstream version, with an additional number for Sass-specific changes. This was changed due to Bower and npm compatibility issues.

The upstream versions vs the Bootstrap for Sass versions are:

Upstream Sass
3.3.4+ same
3.3.2 3.3.3
<= 3.3.1 3.3.1.x

Always refer to CHANGELOG.md when upgrading.


Development and Contributing

If you'd like to help with the development of bootstrap-sass itself, read this section.

Upstream Converter

Keeping bootstrap-sass in sync with upstream changes from Bootstrap used to be an error prone and time consuming manual process. With Bootstrap 3 we have introduced a converter that automates this.

Note: if you're just looking to use Bootstrap 3, see the installation section above.

Upstream changes to the Bootstrap project can now be pulled in using the convert rake task.

Here's an example run that would pull down the master branch from the main twbs/bootstrap repo:

rake convert

This will convert the latest LESS to Sass and update to the latest JS. To convert a specific branch or version, pass the branch name or the commit hash as the first task argument:

rake convert[e8a1df5f060bf7e6631554648e0abde150aedbe4]

The latest converter script is located here and does the following:

  • Converts upstream Bootstrap LESS files to its matching SCSS file.
  • 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.
  • Copies all upstream font files into assets/fonts/bootstrap.
  • Sets Bootstrap::BOOTSTRAP_SHA in version.rb to the branch sha.

This converter fully converts original LESS to SCSS. Conversion is automatic but requires instructions for certain transformations (see converter output). Please submit GitHub issues tagged with conversion.

Credits

bootstrap-sass has a number of major contributors:

and a significant number of other contributors.

You're in good company

bootstrap-sass is used to build some awesome projects all over the web, including Diaspora, rails_admin, Michael Hartl's Rails Tutorial, gitlabhq and kandan.

changelog

Changelog

3.4.3 (non-ruby only)

  • Fix malformed math.div expressions. #1225

3.4.2 (non-ruby only)

  • Compatibility with Sass 1.33. #1221

3.4.0

  • Bootstrap rubygem now depends on SassC instead of Sass.
  • Compass no longer supported.

3.3.7

  • Allows jQuery 3.x in bower.json. #1048
  • Adds the style and sass fields to package.json. #1045
  • Adds Eyeglass support. #1007

3.3.6

  • Bumps Sass dependency to 3.3.4+ to avoid compatibility issues with @at-root.
  • Bumps node-sass dependency to ~3.4.2 for Node.js v5 compatibility. #986
  • Fixes breadcrumb content issues on libsass. #919
  • Fixes a Rails 5 compatibility issue. #965

Framework version: Bootstrap v3.3.6

3.3.5

Fix for standalone Compass extension compatibility. #914

Framework version: Bootstrap v3.3.5

3.3.4

No Sass-specific changes.

Framework version: Bootstrap v3.3.4

3.3.3

This is a re-packaged release of 3.3.2.1 (v3.3.2+1).

Versions are now strictly semver. The PATCH version may be ahead of the upstream.

Framework version: Bootstrap v3.3.2.

3.3.2.1

  • Fix glyphicons regression (revert 443d5b49eac84aec1cb2f8ea173554327bfc8c14)

3.3.2.0

  • Autoprefixer is now required, and autoprefixer-rails is now a dependency for the ruby gem. #824
  • Minimum precision reduced from 10 to 8 #821
  • Requiring bootstrap JS from npm now works #812
  • Fix Sass 3.4.x + IE10 compatibility issue #803
  • Provide minified JS bundle #777
  • Bower package is now at bootstrap-sass #813

3.3.1.0

  • Variables override template at templates/project/_bootstrap-variables.sass
  • Readme: Bower + Rails configuration

3.3.0.1

  • Fix loading issue with the ruby gem version

3.3.0

  • Improve libsass compatibility
  • Support using Bower package with Rails

3.2.0.2

Main bootstrap file is now a partial (_bootstrap.scss), for compatibility with Compass 1+.

Fixed a number of bugs. Issues closed in v3.2.0.2.

3.2.0.1

Fixed a number of bugs: Issues closed in v3.2.0.1.

3.2.0.0

  • Assets (Sass, JS, fonts) moved from vendor/assets to assets. bootstrap.js now contains concatenated JS.
  • Compass generator now copies JS and fonts, and provides a better default styles.sass.
  • Compass, Sprockets, and Mincer asset path helpers are now provided in pure Sass: bootstrap-compass, bootstrap-sprockets, and bootstrap-mincer. Asset path helpers must be imported before bootstrap, more in Readme.
  • Sprockets / Mincer JS manifest has been moved to bootstrap-sprockets.js. It can be required without adding Bootstrap JS directory to load path, as it now uses relative paths.
  • Sprockets: depend_on_asset (glyphicons.scss) has been changed to depend_on to work around an issue with depend_on_asset. More information.

3.1.1.0

  • Updated Bower docs

3.1.0.2

  • 523: Rails 3.2 compatibility

  • Bugfixes from upstream up to 7eb532262fbd1112215b5a547b9285794b5360ab.

3.1.0.1

  • 518: scale mixin Sass compatibility issue

3.1.0.0

  • compiles with libsass master

3.0.2.1

  • fix vendor paths for compass

3.0.0.0

  • Fully automated (lots of string juggling) LESS -> Sass conversion. - Gleb Mazovetskiy
  • Ported rake task from vwall/compass-twitter-bootstrap to convert Bootstrap upstream - Peter Gumeson
  • Moved javascripts to us bootstrap-component.js to bootstrap/component.js - Peter Gumeson

2.3.2.2

  • Allow sass-rails >= 3.2 - Thomas McDonald

2.3.2.1

2.3.2.0

  • Update to Bootstrap 2.3.2 - Dan Allen

2.3.1.3

  • Find the correct Sprockets context for the image_path function - Tristan Harward, Gleb Mazovetskiy

2.3.1.2

  • Fix changes to image url - Gleb Mazovetskiy
  • Copy _variables into project on Compass install - Phil Thompson
  • Add bootstrap-affix to the Compass template file - brief

2.3.1.1 (yanked)

  • Change how image_url is handled internally - Tristan Harward
  • Fix some font variables not having !default - Thomas McDonald

2.3.0.0

  • [#290] Update to Bootstrap 2.3.0 - Tristan Harward
  • Fix rake:debug with new file locations - Thomas McDonald
  • Add draft contributing document - Thomas McDonald
  • [#260] Add our load path to the global Sass load path - Tristan Harward
  • [#275] Use GitHub notation in Sass head testing gemfile - Timo Schilling
  • [#279, #283] Readme improvements - theverything, Philip Arndt

2.2.2.0

  • [#270] Update to Bootstrap 2.2.2 - Tristan Harward
  • [#266] Add license to gemspec - Peter Marsh

2.2.1.1

  • [#258] Use bootstrap prefix for @importing files in bootstrap/bootstrap.scss - Umair Siddique

2.2.1.0

  • [#246] Update to Bootstrap 2.2.1 - Tristan Harward
  • [#246] Pull Bootstrap updates from jlong/sass-twitter-bootstrap - Tristan Harward

2.1.1.0

  • Update to Bootstrap 2.1.1
  • [#222] Remove 100% multiplier in vertical-three-colours
  • [#227] Fix IE component animation collapse
  • [#228] Fix variables documentation link
  • [#231] Made .input-block-level a class as well as mixin

2.1.0.1

  • [#219] Fix expected a color. Got: transparent.
  • [#207] Add missing warning style for table row highlighting
  • [#208] Use grid-input-span for input spans

2.1.0.0

  • Updated to Bootstrap 2.1
  • Changed some mixin names to be more consistent. Nested mixins in Less are separated by a - when they are flattened in Sass.

2.0.4.1

  • Fix .row-fluid > spanX nesting
  • Small Javascript fixes for those staying on the 2.0.4 release
  • Add !default to z-index variables.

2.0.4.0

  • Updated to Bootstrap 2.0.4
  • Switched to Bootstrap 2.0.3+'s method of separating responsive files
  • [#149, #150] Fix off by one error introduced with manual revert of media query breakpoints
  • rake debug and rake test both compile bootstrap & bootstrap-responsive

2.0.3.1

  • [#145, #146] Fix button alignment in collapsing navbar as a result of an incorrect variable

2.0.3

  • Updated to Bootstrap 2.0.3
  • [#106] Support for Rails < 3.1 through Compass
  • [#132] Add CI testing
  • [#106] Support Rails w/Compass
  • [#134] Fix support for Rails w/Compass

2.0.2

  • [#86] Updated to Bootstrap 2.0.2 Things of note: static navbars now have full width. (to be fixed in 2.0.3) .navbar-inner > .container { width:940px; } seems to work in the meanwhile
  • [#62] Fixed asset compilation taking a very long time.
  • [#69, #79, #80] (Hopefully) clarified README. Now with less cat humour.
  • [#91] Removed doubled up Sass extensions for Rails.
  • [#63, #73] Allow for overriding of image-path
  • [SO] Added makeFluidColumn mixin for defining fluid columns. Fluid rows must use @extend .row-fluid, and any column inside it can use @include makeFluidColumn(num), where num is the number of columns. Unfortunately, there is a rather major limitation to this: margins on first-child elements must be overriden. See the attached Stack Overflow answer for more information.

2.0.1

  • Updated to Bootstrap 2.0.1
  • Modified @mixin opacity() to take an argument 0...1 rather than 0...100 to be consistent with Compass.

2.0.0

  • Updated to Bootstrap 2.0.0