bootstrap-sass/README.md

229 строки
7.5 KiB
Markdown
Исходник Обычный вид История

2012-03-28 17:13:39 +04:00
# Bootstrap for Sass
2013-12-20 18:40:04 +04:00
[![Build Status](https://secure.travis-ci.org/twbs/bootstrap-sass.png?branch=master)](http://travis-ci.org/twbs/bootstrap-sass)
2012-05-11 17:38:25 +04:00
2013-11-08 10:05:13 +04:00
`bootstrap-sass` is a Sass-powered version of [Bootstrap](http://github.com/twbs/bootstrap), ready to drop right into your Sass powered applications.
2013-10-16 23:24:42 +04:00
## Installation
2013-10-16 23:24:42 +04:00
Please see the appropriate guide for your environment of choice:
2014-02-04 06:39:51 +04:00
### 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.
```ruby
gem 'sass-rails', '>= 3.2' # sass-rails needs to be higher than 3.2
2014-01-30 20:51:50 +04:00
gem 'bootstrap-sass', '~> 3.1.0'
```
`bundle install` and restart your server to make the files available through the pipeline.
#### Rails 3.2.x
For Rails 3.2.x, make sure that all the gems are moved out of the `:assets` group, and `config.assets.initialize_on_precompile` is set to `true`.
2014-02-04 06:39:51 +04:00
### b. Compass without Rails
2013-10-16 23:24:42 +04:00
Install the gem
2013-11-09 01:47:43 +04:00
```sh
gem install bootstrap-sass
2013-10-16 23:24:42 +04:00
```
If you have an existing Compass project:
```ruby
# config.rb:
require 'bootstrap-sass'
```
```console
2013-11-14 21:26:08 +04:00
bundle exec compass install bootstrap
2013-10-16 23:24:42 +04:00
```
If you are creating a new Compass project, you can generate it with bootstrap-sass support:
```console
2013-11-14 21:26:08 +04:00
bundle exec compass create my-new-project -r bootstrap-sass --using bootstrap
2013-10-16 23:24:42 +04:00
```
This will create a new Compass project with the following files in it:
2013-10-17 03:51:49 +04:00
* [_variables.scss](/templates/project/_variables.scss.erb) - all of bootstrap variables (override them here).
2013-10-16 23:29:06 +04:00
* [styles.scss](/templates/project/styles.scss) - main project SCSS file, import `variables` and `bootstrap`.
2013-10-16 23:24:42 +04:00
Some bootstrap-sass mixins may conflict with the Compass ones.
If this happens, change the import order so that Compass mixins are loaded later.
2013-10-16 23:24:42 +04:00
2014-02-04 06:39:51 +04:00
### c. Ruby without Compass / Rails
2013-11-14 21:26:08 +04:00
Require the gem, and load paths and Sass helpers will be configured automatically:
```ruby
require 'bootstrap-sass'
```
2014-02-04 06:39:51 +04:00
### d. Bower
Using bootstrap-sass as a Bower package is still being tested and requires libsass master. You can install it with:
2013-12-21 00:04:23 +04:00
```bash
bower install git://github.com/twbs/bootstrap-sass.git
2013-12-21 00:04:23 +04:00
```
2014-02-04 06:39:51 +04:00
`bootstrap-sass` is taken so make sure you use the Git URL above.
Sass, JS, and all other assets are located at [vendor/assets](/vendor/assets).
2013-11-14 21:26:08 +04:00
#### JS and fonts
If you are using Rails or Sprockets, see Usage.
If none of Rails/Sprockets/Compass were detected the fonts will be referenced as:
```sass
"#{$icon-font-path}/#{$icon-font-name}.eot"
```
`$icon-font-path` defaults to `bootstrap/`.
When not using an asset pipeline, you have to copy fonts and javascripts from the gem.
```bash
mkdir public/fonts
cp -r $(bundle show bootstrap-sass)/vendor/assets/fonts/ public/fonts/
mkdir public/javascripts
cp -r $(bundle show bootstrap-sass)/vendor/assets/javascripts/ public/javascripts/
```
In ruby you can get the assets' location in the filesystem like this:
```ruby
Bootstrap.stylesheets_path
Bootstrap.fonts_path
Bootstrap.javascripts_path
```
2013-10-16 23:29:06 +04:00
## Usage
2013-11-08 10:05:13 +04:00
### Sass
2013-11-08 09:27:51 +04:00
2013-11-08 10:05:13 +04:00
Import Bootstrap into a Sass file (for example, `application.css.scss`) to get all of Bootstrap's styles, mixins and variables!
We recommend against using `//= require` directives, since none of your other stylesheets will be [able to access][antirequire] the Bootstrap mixins or variables.
2013-11-04 23:00:12 +04:00
```scss
@import "bootstrap";
```
You can also include optional bootstrap theme:
2013-11-04 23:00:12 +04:00
```scss
@import "bootstrap/theme";
```
2013-12-11 14:49:28 +04:00
The full list of bootstrap variables can be found [here](http://getbootstrap.com/customize/#less-variables). You can override these by simply redefining the variable before the `@import` directive, e.g.:
2013-11-04 23:00:12 +04:00
```scss
$navbar-default-bg: #312312;
$light-orange: #ff8c00;
$navbar-default-color: $light-orange;
@import "bootstrap";
```
2013-11-08 10:05:13 +04:00
You can also import components explicitly. To start with a full list of modules copy this file from the gem:
2013-10-27 21:07:32 +04:00
```bash
2013-12-24 20:17:37 +04:00
# copy and prepend "bootstrap/" to the @import paths:
sed 's/@import "/@import "bootstrap\//' \
$(bundle show bootstrap-sass)/vendor/assets/stylesheets/bootstrap.scss > \
2013-12-24 20:17:37 +04:00
app/assets/stylesheets/bootstrap-custom.scss
```
2013-12-24 20:17:37 +04:00
Comment out components you do not want from `bootstrap-custom`.
In `application.sass`, replace `@import 'bootstrap'` with:
2013-10-27 21:07:32 +04:00
```scss
@import 'bootstrap-custom';
```
2013-10-16 23:29:06 +04:00
### Javascript
2013-10-17 00:04:41 +04:00
We have a helper that includes all Bootstrap javascripts. If you use Rails (or Sprockets separately),
put this in your Javascript manifest (usually in `application.js`) to load the files in the [correct order](/vendor/assets/javascripts/bootstrap.js):
```js
// Loads all Bootstrap javascripts
//= require bootstrap
```
You can also load individual modules, provided you also require any dependencies. You can check dependencies in the [Bootstrap JS documentation][jsdocs].
```js
//= require bootstrap/scrollspy
//= require bootstrap/modal
//= require bootstrap/dropdown
```
2013-11-18 17:31:19 +04:00
---
## Development and Contributing
If you'd like to help with the development of bootstrap-sass itself, read this section.
### Upstream Converter
2011-09-20 02:02:29 +04:00
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](#installation) section above.**
Upstream changes to the Bootstrap project can now be pulled in using the `convert` rake task.
2011-09-07 03:25:14 +04:00
2013-10-17 00:09:18 +04:00
Here's an example run that would pull down the master branch from the main [twbs/bootstrap](https://github.com/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][converter] and does the following:
* Converts upstream bootstrap LESS files to its matching SCSS file.
* Copies all upstream JavaScript into `vendor/assets/javascripts/bootstrap`
* Generates a javascript manifest at `vendor/assets/javascripts/bootstrap.js`
2013-08-21 20:30:32 +04:00
* Copies all upstream font files into `vendor/assets/fonts/bootstrap`
* Sets `Bootstrap::BOOTSTRAP_SHA` in [version.rb][version] to the branch sha.
2013-08-22 21:11:02 +04:00
This converter fully converts original LESS to SCSS. Conversion is automatic but requires instructions for certain transformations (see converter output).
2013-08-22 21:08:29 +04:00
Please submit GitHub issues tagged with `conversion`.
2011-09-20 02:02:29 +04:00
## Credits
bootstrap-sass has a number of major contributors:
<!-- feel free to make these link wherever you wish -->
* [Thomas McDonald](https://twitter.com/thomasmcdonald_)
* [Tristan Harward](http://www.trisweb.com)
* Peter Gumeson
* [Gleb Mazovetskiy](https://github.com/glebm)
2011-09-20 02:02:29 +04:00
and a [significant number of other contributors][contrib].
## You're in good company
bootstrap-sass is used to build some awesome projects all over the web, including
[Diaspora](http://diasporaproject.org/), [rails_admin](https://github.com/sferik/rails_admin),
Michael Hartl's [Rails Tutorial](http://railstutorial.org/), [gitlabhq](http://gitlabhq.com/) and
[kandan](http://kandanapp.com/).
2014-02-04 05:30:52 +04:00
[converter]: https://github.com/twbs/bootstrap-sass/blob/master/tasks/converter/less_conversion.rb
[version]: https://github.com/twbs/bootstrap-sass/blob/master/lib/bootstrap-sass/version.rb
2013-12-20 18:40:04 +04:00
[contrib]: https://github.com/twbs/bootstrap-sass/graphs/contributors
[antirequire]: https://github.com/twbs/bootstrap-sass/issues/79#issuecomment-4428595
2013-10-16 23:29:06 +04:00
[jsdocs]: http://getbootstrap.com/javascript/#transitions