bootstrap-sass 3.0.2.1 → 3.0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of bootstrap-sass might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.travis.yml +1 -1
- data/Gemfile +9 -1
- data/README.md +49 -3
- data/Rakefile +1 -3
- data/lib/bootstrap-sass.rb +54 -43
- data/lib/bootstrap-sass/sass_functions.rb +45 -10
- data/lib/bootstrap-sass/version.rb +2 -2
- data/tasks/converter/less_conversion.rb +18 -12
- data/templates/project/manifest.rb +11 -2
- data/test/dummy/app/views/pages/root.html.slim +19 -3
- data/test/dummy_sass_only/Gemfile +4 -0
- data/test/dummy_sass_only/compile.rb +13 -0
- data/test/dummy_sass_only/import_all.sass +2 -0
- data/test/gemfiles/sass_3_2.gemfile +9 -1
- data/test/gemfiles/sass_head.gemfile +11 -2
- data/test/sass_test.rb +23 -0
- data/test/test_helper.rb +0 -1
- data/vendor/assets/javascripts/bootstrap/affix.js +1 -1
- data/vendor/assets/javascripts/bootstrap/alert.js +1 -1
- data/vendor/assets/javascripts/bootstrap/button.js +11 -5
- data/vendor/assets/javascripts/bootstrap/carousel.js +5 -5
- data/vendor/assets/javascripts/bootstrap/collapse.js +1 -1
- data/vendor/assets/javascripts/bootstrap/dropdown.js +5 -5
- data/vendor/assets/javascripts/bootstrap/modal.js +1 -1
- data/vendor/assets/javascripts/bootstrap/popover.js +1 -1
- data/vendor/assets/javascripts/bootstrap/scrollspy.js +2 -2
- data/vendor/assets/javascripts/bootstrap/tab.js +1 -1
- data/vendor/assets/javascripts/bootstrap/tooltip.js +1 -1
- data/vendor/assets/javascripts/bootstrap/transition.js +1 -1
- data/vendor/assets/stylesheets/bootstrap/_badges.scss +6 -6
- data/vendor/assets/stylesheets/bootstrap/_button-groups.scss +7 -33
- data/vendor/assets/stylesheets/bootstrap/_buttons.scss +2 -5
- data/vendor/assets/stylesheets/bootstrap/_carousel.scss +1 -0
- data/vendor/assets/stylesheets/bootstrap/_dropdowns.scss +3 -8
- data/vendor/assets/stylesheets/bootstrap/_forms.scss +11 -0
- data/vendor/assets/stylesheets/bootstrap/_glyphicons.scss +5 -5
- data/vendor/assets/stylesheets/bootstrap/_grid.scss +12 -26
- data/vendor/assets/stylesheets/bootstrap/_input-groups.scss +1 -1
- data/vendor/assets/stylesheets/bootstrap/_jumbotron.scss +8 -2
- data/vendor/assets/stylesheets/bootstrap/_labels.scss +6 -0
- data/vendor/assets/stylesheets/bootstrap/_mixins.scss +38 -51
- data/vendor/assets/stylesheets/bootstrap/_modals.scss +2 -5
- data/vendor/assets/stylesheets/bootstrap/_navbar.scss +41 -53
- data/vendor/assets/stylesheets/bootstrap/_navs.scss +0 -20
- data/vendor/assets/stylesheets/bootstrap/_panels.scss +11 -1
- data/vendor/assets/stylesheets/bootstrap/_progress-bars.scss +0 -12
- data/vendor/assets/stylesheets/bootstrap/_tables.scss +5 -18
- data/vendor/assets/stylesheets/bootstrap/_thumbnails.scss +9 -3
- data/vendor/assets/stylesheets/bootstrap/_type.scss +54 -52
- data/vendor/assets/stylesheets/bootstrap/_variables.scss +17 -10
- metadata +10 -3
- data/lib/bootstrap-sass/compass_functions.rb +0 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8ae9333af752fe5ef268cfe31b0552c618fdc5d4
|
4
|
+
data.tar.gz: 7dee8bca5ee78f5ebec85cc6874ca004c70d3ef8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2180967abbf038043dba58cae99e4eb1172e800ba90f1cab21392c3cbe2645d558bf254d2d9ec7a8a042ca11dd02f25179e90b0c6be92b20d46361784387e846
|
7
|
+
data.tar.gz: 6f9301b6bc8add8ec58c3cd67a031ec8ffbd1a3910419c15a1fd3551e53cbefd76f7e3271fb875e232f87e693ca4ced39730c6af91140205117befabf2593e55
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -16,7 +16,7 @@ In your Gemfile you need to add the `bootstrap-sass` gem, and ensure that the `s
|
|
16
16
|
|
17
17
|
```ruby
|
18
18
|
gem 'sass-rails', '>= 3.2' # sass-rails needs to be higher than 3.2
|
19
|
-
gem 'bootstrap-sass', '~> 3.0.
|
19
|
+
gem 'bootstrap-sass', '~> 3.0.3.0'
|
20
20
|
```
|
21
21
|
|
22
22
|
`bundle install` and restart your server to make the files available through the pipeline.
|
@@ -36,13 +36,13 @@ require 'bootstrap-sass'
|
|
36
36
|
```
|
37
37
|
|
38
38
|
```console
|
39
|
-
compass install bootstrap
|
39
|
+
bundle exec compass install bootstrap
|
40
40
|
```
|
41
41
|
|
42
42
|
If you are creating a new Compass project, you can generate it with bootstrap-sass support:
|
43
43
|
|
44
44
|
```console
|
45
|
-
compass create my-new-project -r bootstrap-sass --using bootstrap
|
45
|
+
bundle exec compass create my-new-project -r bootstrap-sass --using bootstrap
|
46
46
|
```
|
47
47
|
|
48
48
|
This will create a new Compass project with the following files in it:
|
@@ -51,6 +51,50 @@ This will create a new Compass project with the following files in it:
|
|
51
51
|
* [styles.scss](/templates/project/styles.scss) - main project SCSS file, import `variables` and `bootstrap`.
|
52
52
|
|
53
53
|
|
54
|
+
### c. Sass-only (no Compass, nor Rails)
|
55
|
+
|
56
|
+
Require the gem, and load paths and Sass helpers will be configured automatically:
|
57
|
+
|
58
|
+
```ruby
|
59
|
+
require 'bootstrap-sass'
|
60
|
+
```
|
61
|
+
|
62
|
+
When using outside ruby (e.g. as a bower package), disable ruby asset lookup helper:
|
63
|
+
|
64
|
+
```sass
|
65
|
+
$bootstrap-sass-asset-helper: false
|
66
|
+
```
|
67
|
+
|
68
|
+
|
69
|
+
#### JS and fonts
|
70
|
+
|
71
|
+
If you are using Rails or Sprockets, see Usage.
|
72
|
+
|
73
|
+
If none of Rails/Sprockets/Compass were detected the fonts will be referenced as:
|
74
|
+
|
75
|
+
```sass
|
76
|
+
"#{$icon-font-path}/#{$icon-font-name}.eot"
|
77
|
+
```
|
78
|
+
|
79
|
+
`$icon-font-path` defaults to `bootstrap/`.
|
80
|
+
|
81
|
+
When not using an asset pipeline, you have to copy fonts and javascripts from the gem.
|
82
|
+
|
83
|
+
```bash
|
84
|
+
mkdir public/fonts
|
85
|
+
cp -r $(bundle show bootstrap-sass)/vendor/assets/fonts/ public/fonts/
|
86
|
+
mkdir public/javascripts
|
87
|
+
cp -r $(bundle show bootstrap-sass)/vendor/assets/javascripts/ public/javascripts/
|
88
|
+
```
|
89
|
+
|
90
|
+
In ruby you can get the assets' location in the filesystem like this:
|
91
|
+
|
92
|
+
```ruby
|
93
|
+
Bootstrap.stylesheets_path
|
94
|
+
Bootstrap.fonts_path
|
95
|
+
Bootstrap.javascripts_path
|
96
|
+
```
|
97
|
+
|
54
98
|
## Usage
|
55
99
|
|
56
100
|
### Sass
|
@@ -111,6 +155,8 @@ You can also load individual modules, provided you also require any dependencies
|
|
111
155
|
//= require bootstrap/dropdown
|
112
156
|
```
|
113
157
|
|
158
|
+
---
|
159
|
+
|
114
160
|
## Development and Contributing
|
115
161
|
|
116
162
|
If you'd like to help with the development of bootstrap-sass itself, read this section.
|
data/Rakefile
CHANGED
@@ -8,9 +8,8 @@ end
|
|
8
8
|
desc 'Dumps output to a CSS file for testing'
|
9
9
|
task :debug do
|
10
10
|
require 'sass'
|
11
|
-
require './lib/bootstrap-sass/compass_functions'
|
12
11
|
require './lib/bootstrap-sass/sass_functions'
|
13
|
-
path =
|
12
|
+
path = Bootstrap.stylesheets_path
|
14
13
|
%w(bootstrap).each do |file|
|
15
14
|
engine = Sass::Engine.for_file("#{path}/#{file}.scss", syntax: :scss, load_paths: [path])
|
16
15
|
File.open("./#{file}.css", 'w') { |f| f.write(engine.render) }
|
@@ -29,7 +28,6 @@ task :compile, :css_path do |t, args|
|
|
29
28
|
lib_path = File.join(File.dirname(__FILE__), 'lib')
|
30
29
|
$:.unshift(lib_path) unless $:.include?(lib_path)
|
31
30
|
require 'sass'
|
32
|
-
require 'bootstrap-sass/compass_functions'
|
33
31
|
require 'bootstrap-sass/sass_functions'
|
34
32
|
require 'term/ansicolor'
|
35
33
|
|
data/lib/bootstrap-sass.rb
CHANGED
@@ -1,64 +1,75 @@
|
|
1
1
|
module Bootstrap
|
2
2
|
class FrameworkNotFound < StandardError; end
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
require 'bootstrap-sass/compass_functions'
|
8
|
-
register_compass_extension
|
9
|
-
elsif asset_pipeline?
|
4
|
+
class << self
|
5
|
+
# Inspired by Kaminari
|
6
|
+
def load!
|
10
7
|
require 'bootstrap-sass/sass_functions'
|
8
|
+
register_compass_extension if compass?
|
9
|
+
|
10
|
+
if rails?
|
11
|
+
require 'sass-rails'
|
12
|
+
register_rails_engine
|
13
|
+
end
|
14
|
+
|
15
|
+
configure_sass
|
11
16
|
end
|
12
17
|
|
13
|
-
|
14
|
-
|
15
|
-
|
18
|
+
# Paths
|
19
|
+
def gem_path
|
20
|
+
@gem_path ||= File.expand_path '..', File.dirname(__FILE__)
|
16
21
|
end
|
17
22
|
|
18
|
-
|
19
|
-
|
20
|
-
'bootstrap-sass requires either Rails > 3.1 or Compass, neither of which are loaded'
|
23
|
+
def stylesheets_path
|
24
|
+
File.join assets_path, 'stylesheets'
|
21
25
|
end
|
22
26
|
|
23
|
-
|
24
|
-
|
25
|
-
if ::Sass::Script::Number.precision < 10
|
26
|
-
# see https://github.com/thomas-mcdonald/bootstrap-sass/issues/409
|
27
|
-
::Sass::Script::Number.precision = 10
|
27
|
+
def fonts_path
|
28
|
+
File.join assets_path, 'fonts'
|
28
29
|
end
|
29
|
-
end
|
30
30
|
|
31
|
-
|
31
|
+
def javascripts_path
|
32
|
+
File.join assets_path, 'javascripts'
|
33
|
+
end
|
32
34
|
|
33
|
-
|
34
|
-
|
35
|
-
|
35
|
+
def assets_path
|
36
|
+
@assets_path ||= File.join gem_path, 'vendor', 'assets'
|
37
|
+
end
|
36
38
|
|
37
|
-
|
38
|
-
|
39
|
-
|
39
|
+
# Environment detection helpers
|
40
|
+
def asset_pipeline?
|
41
|
+
defined?(::Sprockets)
|
42
|
+
end
|
40
43
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
+
def compass?
|
45
|
+
defined?(::Compass)
|
46
|
+
end
|
44
47
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
+
def rails?
|
49
|
+
defined?(::Rails)
|
50
|
+
end
|
48
51
|
|
49
|
-
|
50
|
-
styles = File.join gem_path, 'vendor', 'assets', 'stylesheets'
|
51
|
-
templates = File.join gem_path, 'templates'
|
52
|
-
::Compass::Frameworks.register(
|
53
|
-
'bootstrap',
|
54
|
-
:path => gem_path,
|
55
|
-
:stylesheets_directory => styles,
|
56
|
-
:templates_directory => templates
|
57
|
-
)
|
58
|
-
end
|
52
|
+
private
|
59
53
|
|
60
|
-
|
61
|
-
|
54
|
+
def configure_sass
|
55
|
+
::Sass.load_paths << stylesheets_path
|
56
|
+
|
57
|
+
# bootstrap requires minimum precision of 10, see https://github.com/thomas-mcdonald/bootstrap-sass/issues/409
|
58
|
+
::Sass::Script::Number.precision = [10, ::Sass::Script::Number.precision].max
|
59
|
+
end
|
60
|
+
|
61
|
+
def register_compass_extension
|
62
|
+
::Compass::Frameworks.register(
|
63
|
+
'bootstrap',
|
64
|
+
:path => gem_path,
|
65
|
+
:stylesheets_directory => stylesheets_path,
|
66
|
+
:templates_directory => File.join(gem_path, 'templates')
|
67
|
+
)
|
68
|
+
end
|
69
|
+
|
70
|
+
def register_rails_engine
|
71
|
+
require 'bootstrap-sass/engine'
|
72
|
+
end
|
62
73
|
end
|
63
74
|
end
|
64
75
|
|
@@ -1,14 +1,49 @@
|
|
1
1
|
require 'sass'
|
2
|
+
require 'bootstrap-sass'
|
2
3
|
|
3
4
|
module Sass::Script::Functions
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
5
|
+
def twbs_font_path(source)
|
6
|
+
twbs_asset_path source, :font
|
7
|
+
end
|
8
|
+
declare :twbs_font_path, [:source]
|
9
|
+
|
10
|
+
def twbs_image_path(source)
|
11
|
+
twbs_asset_path source, :image
|
12
|
+
end
|
13
|
+
declare :twbs_image_path, [:source]
|
14
|
+
|
15
|
+
def twbs_asset_path(source, type)
|
16
|
+
url = if Bootstrap.asset_pipeline? && (context = sprockets_context)
|
17
|
+
context.send(:"#{type}_path", source.value)
|
18
|
+
elsif Bootstrap.compass?
|
19
|
+
send(:"#{type}_url", source, Sass::Script::Bool.new(true)).value
|
20
|
+
end
|
21
|
+
|
22
|
+
# sass-only
|
23
|
+
url ||= source.value.gsub('"', '')
|
24
|
+
Sass::Script::String.new(url, :string)
|
25
|
+
end
|
26
|
+
declare :twbs_asset_path, [:source]
|
27
|
+
|
28
|
+
unless Sass::Script::Functions.instance_methods.include?(:ie_hex_str)
|
29
|
+
# polyfill sass < 3.2.6 (taken from sass 3.2.12):
|
30
|
+
def ie_hex_str(color)
|
31
|
+
assert_type color, :Color, :color
|
32
|
+
alpha = (color.alpha * 255).round.to_s(16).rjust(2, '0')
|
33
|
+
Sass::Script::String.new("##{alpha}#{color.send(:hex_str)[1..-1]}".upcase)
|
34
|
+
end
|
35
|
+
declare :ie_hex_str, [:color]
|
36
|
+
end
|
37
|
+
|
38
|
+
protected
|
39
|
+
|
40
|
+
def sprockets_context
|
41
|
+
# Modern way to get context:
|
42
|
+
if options.key?(:sprockets)
|
43
|
+
options[:sprockets][:context]
|
44
|
+
# Compatibility with sprockets pre 2.10.0:
|
45
|
+
elsif (importer = options[:importer]) && importer.respond_to?(:context)
|
46
|
+
importer.context
|
47
|
+
end
|
48
|
+
end
|
14
49
|
end
|
@@ -3,7 +3,9 @@ require_relative 'char_string_scanner'
|
|
3
3
|
# This module transforms LESS into SCSS.
|
4
4
|
# It is implemented via lots of string manipulation: scanning back and forwards for regexps and doing substitions.
|
5
5
|
# Since it does not parse the LESS into an AST, bits of it may assume LESS to be formatted a certain way, and only limited,
|
6
|
-
# static analysis can be performed. This approach has so far been enough to automatically convert all of twbs/bootstrap.
|
6
|
+
# static analysis can be performed. This approach has so far been mostly enough to automatically convert most all of twbs/bootstrap.
|
7
|
+
# There is some bootstrap-specific to make up for lack of certain features in Sass 3.2 (recursion, mixin namespacing)
|
8
|
+
# and vice versa in LESS (vararg mixins).
|
7
9
|
class Converter
|
8
10
|
module LessConversion
|
9
11
|
# Some regexps for matching bits of SCSS:
|
@@ -31,7 +33,7 @@ class Converter
|
|
31
33
|
|
32
34
|
# These mixins will get vararg definitions in SCSS (not supported by LESS):
|
33
35
|
VARARG_MIXINS = %w(
|
34
|
-
transition transition-transform box-shadow
|
36
|
+
transition transition-duration transition-property transition-transform box-shadow
|
35
37
|
)
|
36
38
|
|
37
39
|
def process_stylesheet_assets
|
@@ -67,6 +69,10 @@ class Converter
|
|
67
69
|
file = replace_rules(file, ' @media') { |r| unindent(r, 2) }
|
68
70
|
when 'variables.less'
|
69
71
|
file = insert_default_vars(file)
|
72
|
+
file = <<-SCSS + file
|
73
|
+
// bootstrap specific variable. set to false if not using ruby + asset pipeline / compass.
|
74
|
+
$bootstrap-sass-asset-helper: true !default;
|
75
|
+
SCSS
|
70
76
|
file = replace_all file, /(\$icon-font-path:).*(!default)/, '\1 "bootstrap/" \2'
|
71
77
|
when 'close.less'
|
72
78
|
# extract .close { button& {...} } rule
|
@@ -83,9 +89,10 @@ class Converter
|
|
83
89
|
when 'thumbnails.less'
|
84
90
|
file = extract_nested_rule file, 'a&'
|
85
91
|
when 'glyphicons.less'
|
92
|
+
file = replace_all file, /\#\{(url\(.*?\))}/, '\1'
|
86
93
|
file = replace_rules(file, '@font-face') { |rule|
|
87
94
|
rule = replace_all rule, /(\$icon-font-\w+)/, '#{\1}'
|
88
|
-
|
95
|
+
replace_asset_url rule, :font
|
89
96
|
}
|
90
97
|
end
|
91
98
|
|
@@ -109,7 +116,6 @@ class Converter
|
|
109
116
|
file = replace_less_extend(file)
|
110
117
|
file = replace_spin(file)
|
111
118
|
file = replace_image_urls(file)
|
112
|
-
file = replace_image_paths(file)
|
113
119
|
file = replace_escaping(file)
|
114
120
|
file = convert_less_ampersand(file)
|
115
121
|
file = deinterpolate_vararg_mixins(file)
|
@@ -117,6 +123,10 @@ class Converter
|
|
117
123
|
file
|
118
124
|
end
|
119
125
|
|
126
|
+
def replace_asset_url(rule, type)
|
127
|
+
replace_all rule, /url\((.*?)\)/, "url(if($bootstrap-sass-asset-helper, twbs-#{type}-path(\\1), \\1))"
|
128
|
+
end
|
129
|
+
|
120
130
|
# convert grid mixins LESS when => SASS @if
|
121
131
|
def convert_grid_mixins(file)
|
122
132
|
file = replace_rules file, /@mixin make-grid-columns/, comments: false do |css, pos|
|
@@ -391,15 +401,11 @@ class Converter
|
|
391
401
|
end
|
392
402
|
|
393
403
|
def replace_image_urls(less)
|
394
|
-
less.gsub(/background-image: url\("?(.*?)"?\);/) { |s|
|
395
|
-
end
|
396
|
-
|
397
|
-
def replace_image_paths(less)
|
398
|
-
less.gsub('../img/', '')
|
404
|
+
less.gsub(/background-image: url\("?(.*?)"?\);/) { |s| replace_asset_url s, :image }
|
399
405
|
end
|
400
406
|
|
401
407
|
def replace_escaping(less)
|
402
|
-
less = less.gsub(
|
408
|
+
less = less.gsub(/~"([^"]+)"/, '#{\1}') # Get rid of ~"" escape
|
403
409
|
less.gsub!(/\$\{([^}]+)\}/, '$\1') # Get rid of @{} escape
|
404
410
|
less.gsub!(/"([^"\n]*)(\$[\w\-]+)([^"\n]*)"/, '"\1#{\2}\3"') # interpolate variable in string, e.g. url("$file-1x") => url("#{$file-1x}")
|
405
411
|
less.gsub(/(\W)e\(%\("?([^"]*)"?\)\)/, '\1\2') # Get rid of e(%("")) escape
|
@@ -415,7 +421,7 @@ class Converter
|
|
415
421
|
regx = /^\.badge\s*\{[\s\/\w\(\)]+(&{1}-{1})\w.*?^}$/m
|
416
422
|
|
417
423
|
tmp = ''
|
418
|
-
less.scan(/^(\s*&)(-[\w\[\]]+\s
|
424
|
+
less.scan(/^(\s*&)(-[\w\[\]]+\s*\{.+})$/) do |ampersand, css|
|
419
425
|
tmp << ".badge#{css}\n"
|
420
426
|
end
|
421
427
|
|
@@ -604,4 +610,4 @@ class Converter
|
|
604
610
|
text
|
605
611
|
end
|
606
612
|
end
|
607
|
-
end
|
613
|
+
end
|
@@ -4,13 +4,22 @@ description 'Bootstrap for Sass'
|
|
4
4
|
stylesheet 'styles.scss'
|
5
5
|
|
6
6
|
# SCSS:
|
7
|
-
|
7
|
+
|
8
|
+
assets = "../../vendor/assets"
|
9
|
+
|
10
|
+
bs_stylesheets = "#{assets}/stylesheets/bootstrap"
|
8
11
|
stylesheet '_variables.scss.erb', :to => '_variables.scss', :erb => true,
|
9
12
|
:bs_variables_path => File.expand_path("#{bs_stylesheets}/_variables.scss", File.dirname(__FILE__))
|
10
13
|
|
11
14
|
# JS:
|
12
|
-
bs_javascripts = "
|
15
|
+
bs_javascripts = "#{assets}/javascripts/bootstrap"
|
13
16
|
Dir.glob File.expand_path("#{bs_javascripts}/*.js", File.dirname(__FILE__)) do |path|
|
14
17
|
file = File.basename(path)
|
15
18
|
javascript "#{bs_javascripts}/#{file}", :to => "bootstrap/#{file}"
|
16
19
|
end
|
20
|
+
|
21
|
+
bs_fonts = "#{assets}/fonts/bootstrap"
|
22
|
+
Dir.glob File.expand_path("#{bs_fonts}/*", File.dirname(__FILE__)) do |path|
|
23
|
+
file = File.basename(path)
|
24
|
+
font "#{bs_fonts}/#{file}", :to => "bootstrap/#{file}"
|
25
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.container
|
2
2
|
.panel.panel-primary
|
3
|
-
h1 Dummy App
|
4
|
-
.row
|
3
|
+
.panel-heading: h1 Dummy App
|
4
|
+
.panel-body: .row
|
5
5
|
.col-sm-3
|
6
6
|
h2 3 columns
|
7
7
|
ul.list-group
|
@@ -11,9 +11,25 @@
|
|
11
11
|
.col-sm-3
|
12
12
|
h2 3 columns
|
13
13
|
button.btn.btn-primary type='button' Button
|
14
|
+
button.btn.btn-primary type='button' Button
|
15
|
+
h2 Icons
|
16
|
+
ul.list-inline
|
17
|
+
li: i.glyphicon.glyphicon-user
|
18
|
+
li: i.glyphicon.glyphicon-bullhorn
|
19
|
+
li: i.glyphicon.glyphicon-tint
|
14
20
|
.col-sm-6
|
15
21
|
h2 6 columns
|
16
|
-
.panel.panel-primary
|
22
|
+
.panel.panel-primary: .panel-body
|
17
23
|
.row
|
18
24
|
.col-xs-4.col-xs-push-4
|
19
25
|
.panel.panel-default: h3 This is col-xs-4 col-xs-push-4
|
26
|
+
|
27
|
+
form.form-inline
|
28
|
+
.form-group
|
29
|
+
input.sr-only for="exampleInputEmail2" Email address
|
30
|
+
input.form-control#exampleInputEmail2 type="email" placeholder="Enter email"
|
31
|
+
.checkbox
|
32
|
+
label
|
33
|
+
input type="checkbox"
|
34
|
+
| Remember me
|
35
|
+
button.btn.btn-default type="submit" Sign in
|