Commit d771b549 authored by Mark Otto's avatar Mark Otto

Merge branch '3.0.0-wip' into gh-pages

parents 05a8efcc 38a0eb6f
...@@ -48,7 +48,7 @@ We only accept issues that are bug reports or feature requests. Bugs must be iso ...@@ -48,7 +48,7 @@ We only accept issues that are bug reports or feature requests. Bugs must be iso
- Multiple-line approach (one property and value per line) - Multiple-line approach (one property and value per line)
- Always a space after a property's colon (.e.g, `display: block;` and not `display:block;`) - Always a space after a property's colon (.e.g, `display: block;` and not `display:block;`)
- End all lines with a semi-colon - End all lines with a semi-colon
- For multiple, comma-separated selectors, place each selector on it's own line - For multiple, comma-separated selectors, place each selector on its own line
- Attribute selectors, like `input[type="text"]` should always wrap the attribute's value in double quotes, for consistency and safety (see this [blog post on unquoted attribute values](http://mathiasbynens.be/notes/unquoted-attribute-values) that can lead to XSS attacks). - Attribute selectors, like `input[type="text"]` should always wrap the attribute's value in double quotes, for consistency and safety (see this [blog post on unquoted attribute values](http://mathiasbynens.be/notes/unquoted-attribute-values) that can lead to XSS attacks).
### JS ### JS
......
/* jshint node: true */ /* jshint node: true */
module.exports = function(grunt) { module.exports = function(grunt) {
"use strict"; "use strict";
// Project configuration. // Project configuration.
grunt.initConfig({ grunt.initConfig({
// Metadata. // Metadata.
pkg: grunt.file.readJSON('package.json'), pkg: grunt.file.readJSON('package.json'),
banner: '/**\n' + banner: '/**\n' +
...@@ -12,20 +14,12 @@ module.exports = function(grunt) { ...@@ -12,20 +14,12 @@ module.exports = function(grunt) {
'* <%= _.pluck(pkg.licenses, "url").join(", ") %>\n' + '* <%= _.pluck(pkg.licenses, "url").join(", ") %>\n' +
'*/\n', '*/\n',
jqueryCheck: 'if (!jQuery) { throw new Error(\"Bootstrap requires jQuery\") }\n\n', jqueryCheck: 'if (!jQuery) { throw new Error(\"Bootstrap requires jQuery\") }\n\n',
// Task configuration. // Task configuration.
clean: { clean: {
dist: ['dist'] dist: ['dist']
}, },
concat: {
options: {
banner: '<%= banner %><%= jqueryCheck %>',
stripBanners: false
},
bootstrap: {
src: ['js/transition.js', 'js/alert.js', 'js/button.js', 'js/carousel.js', 'js/collapse.js', 'js/dropdown.js', 'js/modal.js', 'js/tooltip.js', 'js/popover.js', 'js/scrollspy.js', 'js/tab.js', 'js/affix.js'],
dest: 'dist/js/<%= pkg.name %>.js'
}
},
jshint: { jshint: {
options: { options: {
jshintrc: 'js/.jshintrc' jshintrc: 'js/.jshintrc'
...@@ -40,34 +34,56 @@ module.exports = function(grunt) { ...@@ -40,34 +34,56 @@ module.exports = function(grunt) {
src: ['js/tests/unit/*.js'] src: ['js/tests/unit/*.js']
} }
}, },
recess: { concat: {
options: { options: {
compile: true banner: '<%= banner %><%= jqueryCheck %>',
stripBanners: false
}, },
bootstrap: { bootstrap: {
files: { src: [
'dist/css/bootstrap.css': ['less/bootstrap.less'] 'js/transition.js',
'js/alert.js',
'js/button.js',
'js/carousel.js',
'js/collapse.js',
'js/dropdown.js',
'js/modal.js',
'js/tooltip.js',
'js/popover.js',
'js/scrollspy.js',
'js/tab.js',
'js/affix.js'
],
dest: 'dist/js/<%= pkg.name %>.js'
} }
}, },
min: { uglify: {
options: { options: {
compress: true banner: '<%= banner %>'
}, },
files: { bootstrap: {
'dist/css/bootstrap.min.css': ['less/bootstrap.less'] src: ['<%= concat.bootstrap.dest %>'],
} dest: 'dist/js/<%= pkg.name %>.min.js'
} }
}, },
uglify: {
recess: {
options: { options: {
banner: '<%= banner %>' compile: true
}, },
bootstrap: { bootstrap: {
files: { src: ['less/bootstrap.less'],
'dist/js/<%= pkg.name %>.min.js': ['<%= concat.bootstrap.dest %>'] dest: 'dist/css/<%= pkg.name %>.css'
} },
min: {
options: {
compress: true
},
src: ['less/bootstrap.less'],
dest: 'dist/css/<%= pkg.name %>.min.css'
} }
}, },
qunit: { qunit: {
options: { options: {
inject: 'js/tests/unit/phantom.js' inject: 'js/tests/unit/phantom.js'
...@@ -82,6 +98,7 @@ module.exports = function(grunt) { ...@@ -82,6 +98,7 @@ module.exports = function(grunt) {
} }
} }
}, },
watch: { watch: {
src: { src: {
files: '<%= jshint.src.src %>', files: '<%= jshint.src.src %>',
...@@ -100,12 +117,12 @@ module.exports = function(grunt) { ...@@ -100,12 +117,12 @@ module.exports = function(grunt) {
// These plugins provide necessary tasks. // These plugins provide necessary tasks.
grunt.loadNpmTasks('grunt-contrib-connect');
grunt.loadNpmTasks('grunt-contrib-clean'); grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-connect');
grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-qunit'); grunt.loadNpmTasks('grunt-contrib-qunit');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-recess'); grunt.loadNpmTasks('grunt-recess');
......
<div id="carbonads-container"><div class="carbonad"><div id="azcarbon"></div><script type="text/javascript">var z = document.createElement("script"); z.type = "text/javascript"; z.async = true; z.src = "http://engine.carbonads.com/z/32341/azcarbon_2_1_0_HORIZ"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(z, s);</script></div></div> <div id="carbonads-container"><div class="carbonad"><div id="azcarbon"></div><script>var z = document.createElement("script"); z.async = true; z.src = "http://engine.carbonads.com/z/32341/azcarbon_2_1_0_HORIZ"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(z, s);</script></div></div>
\ No newline at end of file
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<script src="{{ page.base_url }}assets/js/jquery.js"></script> <script src="{{ page.base_url }}assets/js/jquery.js"></script>
<script src="{{ page.base_url }}dist/js/bootstrap.js"></script> <script src="{{ page.base_url }}dist/js/bootstrap.js"></script>
<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script> <script src="http://platform.twitter.com/widgets.js"></script>
<script src="{{ page.base_url }}assets/js/holder.js"></script> <script src="{{ page.base_url }}assets/js/holder.js"></script>
<script src="{{ page.base_url }}assets/js/application.js"></script> <script src="{{ page.base_url }}assets/js/application.js"></script>
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
var _gauges = _gauges || []; var _gauges = _gauges || [];
(function() { (function() {
var t = document.createElement('script'); var t = document.createElement('script');
t.type = 'text/javascript';
t.async = true; t.async = true;
t.id = 'gauges-tracker'; t.id = 'gauges-tracker';
t.setAttribute('data-site-id', '4f0dc9fef5a1f55508000013'); t.setAttribute('data-site-id', '4f0dc9fef5a1f55508000013');
......
...@@ -31,12 +31,12 @@ ...@@ -31,12 +31,12 @@
<link rel="apple-touch-icon-precomposed" href="{{ page.base_url }}assets/ico/apple-touch-icon-57-precomposed.png"> <link rel="apple-touch-icon-precomposed" href="{{ page.base_url }}assets/ico/apple-touch-icon-57-precomposed.png">
<link rel="shortcut icon" href="{{ page.base_url }}assets/ico/favicon.png"> <link rel="shortcut icon" href="{{ page.base_url }}assets/ico/favicon.png">
<script type="text/javascript"> <script>
var _gaq = _gaq || []; var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-146052-10']); _gaq.push(['_setAccount', 'UA-146052-10']);
_gaq.push(['_trackPageview']); _gaq.push(['_trackPageview']);
(function() { (function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; var ga = document.createElement('script'); ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})(); })();
......
<div class="navbar navbar-inverse navbar-fixed-top bs-docs-nav"> <div class="navbar navbar-inverse navbar-fixed-top bs-docs-nav">
<div class="container"> <div class="container">
<a href="{{ page.base_url }}" class="navbar-brand">Bootstrap 3 RC1</a>
<button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bs-navbar-collapse"> <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bs-navbar-collapse">
<span class="icon-bar"></span> <span class="icon-bar"></span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
</button> </button>
<a href="{{ page.base_url }}" class="navbar-brand">Bootstrap 3 RC1</a>
<div class="nav-collapse collapse bs-navbar-collapse"> <div class="nav-collapse collapse bs-navbar-collapse">
<ul class="nav navbar-nav"> <ul class="nav navbar-nav">
<li{% if page.slug == "getting-started" %} class="active"{% endif %}> <li{% if page.slug == "getting-started" %} class="active"{% endif %}>
......
...@@ -878,7 +878,6 @@ input.focused { ...@@ -878,7 +878,6 @@ input.focused {
width: 330px !important; width: 330px !important;
min-height: 132px; min-height: 132px;
} }
} }
/* Large desktops and up */ /* Large desktops and up */
......
...@@ -20,14 +20,6 @@ ...@@ -20,14 +20,6 @@
e.preventDefault() e.preventDefault()
}) })
$body.on('click', '.bs-sidenav [href^=#]', function (e) {
var $target = $(this.getAttribute('href'))
e.preventDefault() // prevent browser scroll
$window.scrollTop($target.offset().top - navHeight + 5)
})
// back to top // back to top
setTimeout(function () { setTimeout(function () {
var $sideBar = $('.bs-sidebar') var $sideBar = $('.bs-sidebar')
......
...@@ -50,7 +50,7 @@ base_url: "../" ...@@ -50,7 +50,7 @@ base_url: "../"
{% endhighlight %} {% endhighlight %}
<h3 id="dropdowns-headers">Dropdown headers</h3> <h3 id="dropdowns-headers">Dropdown headers</h3>
<p>Add a header to break up label sections of actions in any dropdown menu.</p> <p>Add a header to label sections of actions in any dropdown menu.</p>
<div class="bs-example"> <div class="bs-example">
<div class="dropdown clearfix"> <div class="dropdown clearfix">
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu"> <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu">
...@@ -155,12 +155,11 @@ base_url: "../" ...@@ -155,12 +155,11 @@ base_url: "../"
{% endhighlight %} {% endhighlight %}
<h3 id="btn-groups-nested">Nested button groups</h3> <h3 id="btn-groups-nested">Nested button groups</h3>
<p>Place buttons groups within button groups when you want dropdown menus mixed with a series of buttons.</p> <p>Place a <code>.btn-group</code> within another <code>.btn-group</code> when you want dropdown menus mixed with a series of buttons.</p>
<div class="bs-example"> <div class="bs-example">
<div class="btn-group"> <div class="btn-group">
<button type="button" class="btn btn-default">1</button> <button type="button" class="btn btn-default">1</button>
<button type="button" class="btn btn-default">2</button> <button type="button" class="btn btn-default">2</button>
<button type="button" class="btn btn-default">3</button>
<div class="btn-group"> <div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"> <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
...@@ -170,11 +169,27 @@ base_url: "../" ...@@ -170,11 +169,27 @@ base_url: "../"
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li><a href="#">Dropdown link</a></li> <li><a href="#">Dropdown link</a></li>
<li><a href="#">Dropdown link</a></li> <li><a href="#">Dropdown link</a></li>
<li><a href="#">Dropdown link</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
{% highlight html %}
<div class="btn-group">
<button type="button" class="btn btn-default">1</button>
<button type="button" class="btn btn-default">2</button>
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
Dropdown
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a href="#">Dropdown link</a></li>
<li><a href="#">Dropdown link</a></li>
</ul>
</div>
</div>
{% endhighlight %}
<h3 id="btn-groups-vertical">Vertical button groups</h3> <h3 id="btn-groups-vertical">Vertical button groups</h3>
<p>Make a set of buttons appear vertically stacked rather than horizontally.</p> <p>Make a set of buttons appear vertically stacked rather than horizontally.</p>
...@@ -231,7 +246,7 @@ base_url: "../" ...@@ -231,7 +246,7 @@ base_url: "../"
</div> </div>
<h3 id="btn-dropdowns-single">Single button dropdowns</h3> <h3 id="btn-dropdowns-single">Single button dropdowns</h3>
<p>Turn a button into dropdown toggle with some basic markup changes.</p> <p>Turn a button into a dropdown toggle with some basic markup changes.</p>
<div class="bs-example"> <div class="bs-example">
<div class="btn-toolbar" style="margin-bottom: 10px;"> <div class="btn-toolbar" style="margin-bottom: 10px;">
<div class="btn-group"> <div class="btn-group">
...@@ -385,7 +400,7 @@ base_url: "../" ...@@ -385,7 +400,7 @@ base_url: "../"
<div class="bs-example"> <div class="bs-example">
<div class="btn-toolbar" style="margin: 0;"> <div class="btn-toolbar" style="margin: 0;">
<div class="btn-group"> <div class="btn-group">
<button class="btn btn-default btn-large dropdown-toggle" type="button" data-toggle="dropdown"> <button class="btn btn-default btn-lg dropdown-toggle" type="button" data-toggle="dropdown">
Large button <span class="caret"></span> Large button <span class="caret"></span>
</button> </button>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
...@@ -397,7 +412,7 @@ base_url: "../" ...@@ -397,7 +412,7 @@ base_url: "../"
</ul> </ul>
</div><!-- /btn-group --> </div><!-- /btn-group -->
<div class="btn-group"> <div class="btn-group">
<button class="btn btn-default btn-small dropdown-toggle" type="button" data-toggle="dropdown"> <button class="btn btn-default btn-sm dropdown-toggle" type="button" data-toggle="dropdown">
Small button <span class="caret"></span> Small button <span class="caret"></span>
</button> </button>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
...@@ -408,12 +423,24 @@ base_url: "../" ...@@ -408,12 +423,24 @@ base_url: "../"
<li><a href="#">Separated link</a></li> <li><a href="#">Separated link</a></li>
</ul> </ul>
</div><!-- /btn-group --> </div><!-- /btn-group -->
<div class="btn-group">
<button class="btn btn-default btn-xs dropdown-toggle" type="button" data-toggle="dropdown">
Extra small button <span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
</ul>
</div><!-- /btn-group -->
</div><!-- /btn-toolbar --> </div><!-- /btn-toolbar -->
</div><!-- /example --> </div><!-- /example -->
{% highlight html %} {% highlight html %}
<!-- Large button group --> <!-- Large button group -->
<div class="btn-group"> <div class="btn-group">
<button class="btn btn-default btn-large dropdown-toggle" type="button" data-toggle="dropdown"> <button class="btn btn-default btn-lg dropdown-toggle" type="button" data-toggle="dropdown">
Large button <span class="caret"></span> Large button <span class="caret"></span>
</button> </button>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
...@@ -423,13 +450,22 @@ base_url: "../" ...@@ -423,13 +450,22 @@ base_url: "../"
<!-- Small button group --> <!-- Small button group -->
<div class="btn-group"> <div class="btn-group">
<button class="btn btn-default btn-small dropdown-toggle" type="button" data-toggle="dropdown"> <button class="btn btn-default btn-sm dropdown-toggle" type="button" data-toggle="dropdown">
Small button <span class="caret"></span> Small button <span class="caret"></span>
</button> </button>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
... ...
</ul> </ul>
</div> </div>
<!-- Extra small button group -->
<div class="btn-group">
<button class="btn btn-default btn-xs dropdown-toggle" type="button" data-toggle="dropdown">
Extra small button <span class="caret"></span>
</button>
<ul class="dropdown-menu">
...
</ul>
</div> </div>
{% endhighlight %} {% endhighlight %}
...@@ -535,8 +571,8 @@ base_url: "../" ...@@ -535,8 +571,8 @@ base_url: "../"
<p>Add the relative form sizing classes to the <code>.input-group-addon</code>.</p> <p>Add the relative form sizing classes to the <code>.input-group-addon</code>.</p>
<form class="bs-example bs-example-form"> <form class="bs-example bs-example-form">
<div class="input-group"> <div class="input-group">
<span class="input-group-addon input-large">@</span> <span class="input-group-addon input-lg">@</span>
<input type="text" class="form-control input-large" placeholder="Username"> <input type="text" class="form-control input-lg" placeholder="Username">
</div> </div>
<br> <br>
<div class="input-group"> <div class="input-group">
...@@ -545,14 +581,14 @@ base_url: "../" ...@@ -545,14 +581,14 @@ base_url: "../"
</div> </div>
<br> <br>
<div class="input-group"> <div class="input-group">
<span class="input-group-addon input-small">@</span> <span class="input-group-addon input-sm">@</span>
<input type="text" class="form-control input-small" placeholder="Username"> <input type="text" class="form-control input-sm" placeholder="Username">
</div> </div>
</form> </form>
{% highlight html %} {% highlight html %}
<div class="input-group"> <div class="input-group">
<span class="input-group-addon input-large">@</span> <span class="input-group-addon input-lg">@</span>
<input type="text" class="form-control input-large" placeholder="Username"> <input type="text" class="form-control input-lg" placeholder="Username">
</div> </div>
<div class="input-group"> <div class="input-group">
...@@ -561,8 +597,8 @@ base_url: "../" ...@@ -561,8 +597,8 @@ base_url: "../"
</div> </div>
<div class="input-group"> <div class="input-group">
<span class="input-group-addon input-small">@</span> <span class="input-group-addon input-sm">@</span>
<input type="text" class="form-control input-small" placeholder="Username"> <input type="text" class="form-control input-sm" placeholder="Username">
</div> </div>
{% endhighlight %} {% endhighlight %}
...@@ -1446,10 +1482,10 @@ body { padding-bottom: 70px; } ...@@ -1446,10 +1482,10 @@ body { padding-bottom: 70px; }
<h3>Sizes</h3> <h3>Sizes</h3>
<p>Fancy larger or smaller pagination? Add <code>.pagination-large</code> or <code>.pagination-small</code> for additional sizes.</p> <p>Fancy larger or smaller pagination? Add <code>.pagination-lg</code> or <code>.pagination-sm</code> for additional sizes.</p>
<div class="bs-example"> <div class="bs-example">
<div> <div>
<ul class="pagination pagination-large"> <ul class="pagination pagination-lg">
<li><a href="#">&laquo;</a></li> <li><a href="#">&laquo;</a></li>
<li><a href="#">1</a></li> <li><a href="#">1</a></li>
<li><a href="#">2</a></li> <li><a href="#">2</a></li>
...@@ -1471,7 +1507,7 @@ body { padding-bottom: 70px; } ...@@ -1471,7 +1507,7 @@ body { padding-bottom: 70px; }
</ul> </ul>
</div> </div>
<div> <div>
<ul class="pagination pagination-small"> <ul class="pagination pagination-sm">
<li><a href="#">&laquo;</a></li> <li><a href="#">&laquo;</a></li>
<li><a href="#">1</a></li> <li><a href="#">1</a></li>
<li><a href="#">2</a></li> <li><a href="#">2</a></li>
...@@ -1483,9 +1519,9 @@ body { padding-bottom: 70px; } ...@@ -1483,9 +1519,9 @@ body { padding-bottom: 70px; }
</div> </div>
</div> </div>
{% highlight html %} {% highlight html %}
<ul class="pagination pagination-large">...</ul> <ul class="pagination pagination-lg">...</ul>
<ul class="pagination pagination">...</ul> <ul class="pagination pagination">...</ul>
<ul class="pagination pagination-small">...</ul> <ul class="pagination pagination-sm">...</ul>
{% endhighlight %} {% endhighlight %}
...@@ -1659,14 +1695,14 @@ body { padding-bottom: 70px; } ...@@ -1659,14 +1695,14 @@ body { padding-bottom: 70px; }
<div class="jumbotron"> <div class="jumbotron">
<h1>Hello, world!</h1> <h1>Hello, world!</h1>
<p>This is a simple hero unit, a simple jumbotron-style component for calling extra attention to featured content or information.</p> <p>This is a simple hero unit, a simple jumbotron-style component for calling extra attention to featured content or information.</p>
<p><a class="btn btn-primary btn-large">Learn more</a></p> <p><a class="btn btn-primary btn-lg">Learn more</a></p>
</div> </div>
</div> </div>
{% highlight html %} {% highlight html %}
<div class="jumbotron"> <div class="jumbotron">
<h1>Hello, world!</h1> <h1>Hello, world!</h1>
<p>...</p> <p>...</p>
<p><a class="btn btn-primary btn-large">Learn more</a></p> <p><a class="btn btn-primary btn-lg">Learn more</a></p>
</div> </div>
{% endhighlight %} {% endhighlight %}
...@@ -2402,20 +2438,20 @@ body { padding-bottom: 70px; } ...@@ -2402,20 +2438,20 @@ body { padding-bottom: 70px; }
<h3>Optional classes</h3> <h3>Optional classes</h3>
<p>Control padding and rounded corners with two optional modifier classes.</p> <p>Control padding and rounded corners with two optional modifier classes.</p>
<div class="bs-example"> <div class="bs-example">
<div class="well well-large"> <div class="well well-lg">
Look, I'm in a well! Look, I'm in a well!
</div> </div>
</div> </div>
{% highlight html %} {% highlight html %}
<div class="well well-large">...</div> <div class="well well-lg">...</div>
{% endhighlight %} {% endhighlight %}
<div class="bs-example"> <div class="bs-example">
<div class="well well-small"> <div class="well well-sm">
Look, I'm in a well! Look, I'm in a well!
</div> </div>
</div> </div>
{% highlight html %} {% highlight html %}
<div class="well well-small">...</div> <div class="well well-sm">...</div>
{% endhighlight %} {% endhighlight %}
</div> </div>
This diff is collapsed.
...@@ -486,7 +486,7 @@ base_url: "../" ...@@ -486,7 +486,7 @@ base_url: "../"
<p>Define the breakpoints at which your layout will change, adapting to different screen sizes.</p> <p>Define the breakpoints at which your layout will change, adapting to different screen sizes.</p>
<div class="row"> <div class="row">
<div class="col-lg-6"> <div class="col-lg-6">
<label>@screen-tiny</label> <label>@screen-xsmall</label>
<input type="text" class="form-control" placeholder="480px"> <input type="text" class="form-control" placeholder="480px">
<label>@screen-small</label> <label>@screen-small</label>
<input type="text" class="form-control" placeholder="768px"> <input type="text" class="form-control" placeholder="768px">
...@@ -710,6 +710,8 @@ base_url: "../" ...@@ -710,6 +710,8 @@ base_url: "../"
<input type="text" class="form-control" placeholder="#777"> <input type="text" class="form-control" placeholder="#777">
<label>@navbar-bg</label> <label>@navbar-bg</label>
<input type="text" class="form-control" placeholder="#eee"> <input type="text" class="form-control" placeholder="#eee">
<label>@navbar-border-radius</label>
<input type="text" class="form-control" placeholder="@border-radius-base">
<h4>Links</h4> <h4>Links</h4>
<label>@navbar-link-color</label> <label>@navbar-link-color</label>
<input type="text" class="form-control" placeholder="#777"> <input type="text" class="form-control" placeholder="#777">
...@@ -1439,7 +1441,7 @@ base_url: "../" ...@@ -1439,7 +1441,7 @@ base_url: "../"
</div> </div>
<p class="lead">Hooray! Your custom version of Bootstrap is now ready to be compiled. Just click the button below to finish the process.</p> <p class="lead">Hooray! Your custom version of Bootstrap is now ready to be compiled. Just click the button below to finish the process.</p>
<div class="bs-customize-download"> <div class="bs-customize-download">
<a class="btn btn-block btn-large btn-bs" href="#" onclick="_gaq.push(['_trackEvent', 'Customize', 'Download', 'Customize and Download']);">Customize and Download</a> <a class="btn btn-block btn-lg btn-bs" href="#" onclick="_gaq.push(['_trackEvent', 'Customize', 'Download', 'Customize and Download']);">Customize and Download</a>
</div> </div>
<div class="bs-callout bs-callout-danger"> <div class="bs-callout bs-callout-danger">
<h4>What's included?</h4> <h4>What's included?</h4>
......
...@@ -1469,10 +1469,10 @@ input[type="number"]::-webkit-inner-spin-button { ...@@ -1469,10 +1469,10 @@ input[type="number"]::-webkit-inner-spin-button {
} }
.form-control:focus { .form-control:focus {
border-color: rgba(82, 168, 236, 0.8); border-color: #66afe9;
outline: 0; outline: 0;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
} }
.form-control[disabled], .form-control[disabled],
...@@ -1537,7 +1537,7 @@ textarea.form-control { ...@@ -1537,7 +1537,7 @@ textarea.form-control {
margin-left: 10px; margin-left: 10px;
} }
.input-large { .input-lg {
height: 45px; height: 45px;
padding: 10px 16px; padding: 10px 16px;
font-size: 18px; font-size: 18px;
...@@ -1545,7 +1545,7 @@ textarea.form-control { ...@@ -1545,7 +1545,7 @@ textarea.form-control {
border-radius: 6px; border-radius: 6px;
} }
.input-small { .input-sm {
height: 30px; height: 30px;
padding: 5px 10px; padding: 5px 10px;
font-size: 12px; font-size: 12px;
...@@ -1553,18 +1553,18 @@ textarea.form-control { ...@@ -1553,18 +1553,18 @@ textarea.form-control {
border-radius: 3px; border-radius: 3px;
} }
select.input-large { select.input-lg {
height: 45px; height: 45px;
line-height: 45px; line-height: 45px;
} }
select.input-small { select.input-sm {
height: 30px; height: 30px;
line-height: 30px; line-height: 30px;
} }
textarea.input-large, textarea.input-lg,
textarea.input-small { textarea.input-sm {
height: auto; height: auto;
} }
...@@ -1574,7 +1574,6 @@ textarea.input-small { ...@@ -1574,7 +1574,6 @@ textarea.input-small {
} }
.has-warning .form-control { .has-warning .form-control {
padding-right: 32px;
border-color: #c09853; border-color: #c09853;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
...@@ -1598,7 +1597,6 @@ textarea.input-small { ...@@ -1598,7 +1597,6 @@ textarea.input-small {
} }
.has-error .form-control { .has-error .form-control {
padding-right: 32px;
border-color: #b94a48; border-color: #b94a48;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
...@@ -1622,7 +1620,6 @@ textarea.input-small { ...@@ -1622,7 +1620,6 @@ textarea.input-small {
} }
.has-success .form-control { .has-success .form-control {
padding-right: 32px;
border-color: #468847; border-color: #468847;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
...@@ -1989,22 +1986,22 @@ fieldset[disabled] .btn-link:focus { ...@@ -1989,22 +1986,22 @@ fieldset[disabled] .btn-link:focus {
text-decoration: none; text-decoration: none;
} }
.btn-large { .btn-lg {
padding: 10px 16px; padding: 10px 16px;
font-size: 18px; font-size: 18px;
line-height: 1.33; line-height: 1.33;
border-radius: 6px; border-radius: 6px;
} }
.btn-small, .btn-sm,
.btn-mini { .btn-xs {
padding: 5px 10px; padding: 5px 10px;
font-size: 12px; font-size: 12px;
line-height: 1.5; line-height: 1.5;
border-radius: 3px; border-radius: 3px;
} }
.btn-mini { .btn-xs {
padding: 3px 5px; padding: 3px 5px;
} }
...@@ -2101,15 +2098,17 @@ input[type="button"].btn-block { ...@@ -2101,15 +2098,17 @@ input[type="button"].btn-block {
box-sizing: border-box; box-sizing: border-box;
} }
.input-group-addon.input-small { .input-group-addon.input-sm {
padding: 5px 10px; padding: 5px 10px;
font-size: 12px; font-size: 12px;
line-height: 1.5;
border-radius: 3px; border-radius: 3px;
} }
.input-group-addon.input-large { .input-group-addon.input-lg {
padding: 10px 16px; padding: 10px 16px;
font-size: 18px; font-size: 18px;
line-height: 1.33;
border-radius: 6px; border-radius: 6px;
} }
...@@ -2419,6 +2418,10 @@ a.list-group-item.active .list-group-item-text { ...@@ -2419,6 +2418,10 @@ a.list-group-item.active .list-group-item-text {
font-weight: 500; font-weight: 500;
} }
.panel-title > a {
color: inherit;
}
.panel-footer { .panel-footer {
padding: 10px 15px; padding: 10px 15px;
margin: 15px -15px -15px; margin: 15px -15px -15px;
...@@ -2494,12 +2497,12 @@ a.list-group-item.active .list-group-item-text { ...@@ -2494,12 +2497,12 @@ a.list-group-item.active .list-group-item-text {
border-color: rgba(0, 0, 0, 0.15); border-color: rgba(0, 0, 0, 0.15);
} }
.well-large { .well-lg {
padding: 24px; padding: 24px;
border-radius: 6px; border-radius: 6px;
} }
.well-small { .well-sm {
padding: 9px; padding: 9px;
border-radius: 3px; border-radius: 3px;
} }
...@@ -2878,12 +2881,13 @@ button.close { ...@@ -2878,12 +2881,13 @@ button.close {
} }
.navbar-toggle { .navbar-toggle {
position: absolute; position: relative;
top: 9px; float: right;
right: 10px;
width: 48px; width: 48px;
height: 32px; height: 34px;
padding: 8px 12px; padding: 6px 12px;
margin-top: 8px;
margin-bottom: 8px;
background-color: transparent; background-color: transparent;
border: 1px solid #dddddd; border: 1px solid #dddddd;
border-radius: 4px; border-radius: 4px;
...@@ -3047,6 +3051,7 @@ button.close { ...@@ -3047,6 +3051,7 @@ button.close {
@media screen and (min-width: 768px) { @media screen and (min-width: 768px) {
.navbar-brand { .navbar-brand {
float: left; float: left;
max-width: none;
margin-right: 5px; margin-right: 5px;
margin-left: -15px; margin-left: -15px;
} }
...@@ -3131,7 +3136,9 @@ button.close { ...@@ -3131,7 +3136,9 @@ button.close {
.btn-group > .btn:focus, .btn-group > .btn:focus,
.btn-group-vertical > .btn:focus, .btn-group-vertical > .btn:focus,
.btn-group > .btn:active, .btn-group > .btn:active,
.btn-group-vertical > .btn:active { .btn-group-vertical > .btn:active,
.btn-group > .btn.active,
.btn-group-vertical > .btn.active {
z-index: 2; z-index: 2;
} }
...@@ -3218,7 +3225,7 @@ button.close { ...@@ -3218,7 +3225,7 @@ button.close {
padding-left: 8px; padding-left: 8px;
} }
.btn-group > .btn-large + .dropdown-toggle { .btn-group > .btn-lg + .dropdown-toggle {
padding-right: 12px; padding-right: 12px;
padding-left: 12px; padding-left: 12px;
} }
...@@ -3232,11 +3239,11 @@ button.close { ...@@ -3232,11 +3239,11 @@ button.close {
margin-left: 0; margin-left: 0;
} }
.btn-large .caret { .btn-lg .caret {
border-width: 5px; border-width: 5px;
} }
.dropup .btn-large .caret { .dropup .btn-lg .caret {
border-bottom-width: 5px; border-bottom-width: 5px;
} }
...@@ -3255,12 +3262,12 @@ button.close { ...@@ -3255,12 +3262,12 @@ button.close {
border-radius: 0; border-radius: 0;
} }
.btn-group-vertical .btn:first-child { .btn-group-vertical .btn:first-child:not(:last-child) {
border-bottom-right-radius: 0; border-bottom-right-radius: 0;
border-bottom-left-radius: 0; border-bottom-left-radius: 0;
} }
.btn-group-vertical .btn:last-child { .btn-group-vertical .btn:last-child:not(:first-child) {
border-top-right-radius: 0; border-top-right-radius: 0;
border-top-left-radius: 0; border-top-left-radius: 0;
} }
...@@ -3268,6 +3275,7 @@ button.close { ...@@ -3268,6 +3275,7 @@ button.close {
.btn-group-justified { .btn-group-justified {
display: table; display: table;
width: 100%; width: 100%;
table-layout: fixed;
} }
.btn-group-justified .btn { .btn-group-justified .btn {
...@@ -3317,7 +3325,7 @@ button.close { ...@@ -3317,7 +3325,7 @@ button.close {
.pagination > li > a, .pagination > li > a,
.pagination > li > span { .pagination > li > span {
float: left; float: left;
padding: 4px 12px; padding: 6px 12px;
line-height: 1.428571429; line-height: 1.428571429;
text-decoration: none; text-decoration: none;
background-color: #ffffff; background-color: #ffffff;
...@@ -3360,38 +3368,38 @@ button.close { ...@@ -3360,38 +3368,38 @@ button.close {
background-color: #ffffff; background-color: #ffffff;
} }
.pagination-large > li > a, .pagination-lg > li > a,
.pagination-large > li > span { .pagination-lg > li > span {
padding: 10px 16px; padding: 10px 16px;
font-size: 18px; font-size: 18px;
} }
.pagination-large > li:first-child > a, .pagination-lg > li:first-child > a,
.pagination-large > li:first-child > span { .pagination-lg > li:first-child > span {
border-bottom-left-radius: 6px; border-bottom-left-radius: 6px;
border-top-left-radius: 6px; border-top-left-radius: 6px;
} }
.pagination-large > li:last-child > a, .pagination-lg > li:last-child > a,
.pagination-large > li:last-child > span { .pagination-lg > li:last-child > span {
border-top-right-radius: 6px; border-top-right-radius: 6px;
border-bottom-right-radius: 6px; border-bottom-right-radius: 6px;
} }
.pagination-small > li > a, .pagination-sm > li > a,
.pagination-small > li > span { .pagination-sm > li > span {
padding: 5px 10px; padding: 5px 10px;
font-size: 12px; font-size: 12px;
} }
.pagination-small > li:first-child > a, .pagination-sm > li:first-child > a,
.pagination-small > li:first-child > span { .pagination-sm > li:first-child > span {
border-bottom-left-radius: 3px; border-bottom-left-radius: 3px;
border-top-left-radius: 3px; border-top-left-radius: 3px;
} }
.pagination-small > li:last-child > a, .pagination-sm > li:last-child > a,
.pagination-small > li:last-child > span { .pagination-sm > li:last-child > span {
border-top-right-radius: 3px; border-top-right-radius: 3px;
border-bottom-right-radius: 3px; border-bottom-right-radius: 3px;
} }
...@@ -3487,7 +3495,7 @@ button.close { ...@@ -3487,7 +3495,7 @@ button.close {
transition: transform 0.3s ease-out; transition: transform 0.3s ease-out;
} }
.modal.fade.in .modal-dialog { .modal.in .modal-dialog {
-webkit-transform: translate(0, 0); -webkit-transform: translate(0, 0);
-ms-transform: translate(0, 0); -ms-transform: translate(0, 0);
transform: translate(0, 0); transform: translate(0, 0);
...@@ -3528,7 +3536,7 @@ button.close { ...@@ -3528,7 +3536,7 @@ button.close {
filter: alpha(opacity=0); filter: alpha(opacity=0);
} }
.modal-backdrop.fade.in { .modal-backdrop.in {
opacity: 0.5; opacity: 0.5;
filter: alpha(opacity=50); filter: alpha(opacity=50);
} }
...@@ -4131,15 +4139,6 @@ a.list-group-item.active > .badge, ...@@ -4131,15 +4139,6 @@ a.list-group-item.active > .badge,
} }
} }
@-ms-keyframes progress-bar-stripes {
from {
background-position: 40px 0;
}
to {
background-position: 0 0;
}
}
@-o-keyframes progress-bar-stripes { @-o-keyframes progress-bar-stripes {
from { from {
background-position: 0 0; background-position: 0 0;
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -1245,12 +1245,9 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") } ...@@ -1245,12 +1245,9 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
.addClass(placement) .addClass(placement)
} }
var tp = placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } : var calculatedOffset = this.getCalcuatedOffset(placement, pos, actualWidth, actualHeight)
placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
/* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
this.applyPlacement(tp, placement) this.applyPlacement(calculatedOffset, placement)
this.$element.trigger('shown.bs.' + this.type) this.$element.trigger('shown.bs.' + this.type)
} }
} }
...@@ -1262,13 +1259,21 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") } ...@@ -1262,13 +1259,21 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
var height = $tip[0].offsetHeight var height = $tip[0].offsetHeight
// manually read margins because getBoundingClientRect includes difference // manually read margins because getBoundingClientRect includes difference
offset.top = offset.top + parseInt($tip.css('margin-top'), 10) var marginTop = parseInt($tip.css('margin-top'), 10)
offset.left = offset.left + parseInt($tip.css('margin-left'), 10) var marginLeft = parseInt($tip.css('margin-left'), 10)
// we must check for NaN for ie 8/9
if (isNaN(marginTop)) marginTop = 0
if (isNaN(marginLeft)) marginLeft = 0
offset.top = offset.top + marginTop
offset.left = offset.left + marginLeft
$tip $tip
.offset(offset) .offset(offset)
.addClass('in') .addClass('in')
// check to see if placing tip in new offset caused the tip to resize itself
var actualWidth = $tip[0].offsetWidth var actualWidth = $tip[0].offsetWidth
var actualHeight = $tip[0].offsetHeight var actualHeight = $tip[0].offsetHeight
...@@ -1277,10 +1282,10 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") } ...@@ -1277,10 +1282,10 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
offset.top = offset.top + height - actualHeight offset.top = offset.top + height - actualHeight
} }
if (placement == 'bottom' || placement == 'top') { if (/bottom|top/.test(placement)) {
var delta = 0 var delta = 0
if (offset.left < 0){ if (offset.left < 0) {
delta = offset.left * -2 delta = offset.left * -2
offset.left = 0 offset.left = 0
...@@ -1353,6 +1358,13 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") } ...@@ -1353,6 +1358,13 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
}, this.$element.offset()) }, this.$element.offset())
} }
Tooltip.prototype.getCalcuatedOffset = function (placement, pos, actualWidth, actualHeight) {
return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
/* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
}
Tooltip.prototype.getTitle = function () { Tooltip.prototype.getTitle = function () {
var title var title
var $e = this.$element var $e = this.$element
...@@ -1368,8 +1380,8 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") } ...@@ -1368,8 +1380,8 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
return this.$tip = this.$tip || $(this.options.template) return this.$tip = this.$tip || $(this.options.template)
} }
Tooltip.prototype.arrow =function(){ Tooltip.prototype.arrow = function () {
return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow") return this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')
} }
Tooltip.prototype.validate = function () { Tooltip.prototype.validate = function () {
...@@ -1508,6 +1520,10 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") } ...@@ -1508,6 +1520,10 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
o.content) o.content)
} }
Popover.prototype.arrow =function () {
return this.$arrow = this.$arrow || this.tip().find('.arrow')
}
Popover.prototype.tip = function () { Popover.prototype.tip = function () {
if (!this.$tip) this.$tip = $(this.options.template) if (!this.$tip) this.$tip = $(this.options.template)
return this.$tip return this.$tip
......
This diff is collapsed.
...@@ -17,9 +17,7 @@ base_url: "../" ...@@ -17,9 +17,7 @@ base_url: "../"
<h3>Download compiled CSS and JS</h3> <h3>Download compiled CSS and JS</h3>
<p class="lead">The fastest way to get started is to get the compiled and minified versions of our CSS and JavaScript. No documentation or original source files are included.</p> <p class="lead">The fastest way to get started is to get the compiled and minified versions of our CSS and JavaScript. No documentation or original source files are included.</p>
<p><a class="btn btn-large btn-primary" href="{{ site.download_dist }}" onclick="_gaq.push(['_trackEvent', 'Getting started', 'Download', 'Download compiled']);">Download Bootstrap</a></p> <p><a class="btn btn-lg btn-primary" href="{{ site.download_dist }}" onclick="_gaq.push(['_trackEvent', 'Getting started', 'Download', 'Download compiled']);">Download Bootstrap</a></p>
<hr>
<h3 id="download-options">More download options</h3> <h3 id="download-options">More download options</h3>
<div class="bs-docs-dl-options"> <div class="bs-docs-dl-options">
...@@ -38,8 +36,6 @@ base_url: "../" ...@@ -38,8 +36,6 @@ base_url: "../"
{% highlight bash %}$ bower install bootstrap{% endhighlight %} {% highlight bash %}$ bower install bootstrap{% endhighlight %}
</div> </div>
<hr>
<h3 id="download-cdn">Use the Bootstrap CDN</h3> <h3 id="download-cdn">Use the Bootstrap CDN</h3>
<p>The folks over at <a href="https://www.netdna.com/">NetDNA</a> have graciously provided CDN support for Bootstrap's CSS and JavaScript. To use, swap your local instances for the <a href="http://www.bootstrapcdn.com/">Bootstrap CDN</a> links listed below.</p> <p>The folks over at <a href="https://www.netdna.com/">NetDNA</a> have graciously provided CDN support for Bootstrap's CSS and JavaScript. To use, swap your local instances for the <a href="http://www.bootstrapcdn.com/">Bootstrap CDN</a> links listed below.</p>
{% highlight html linenos %} {% highlight html linenos %}
...@@ -77,7 +73,7 @@ bootstrap/ ...@@ -77,7 +73,7 @@ bootstrap/
│ ├── bootstrap.min.js │ ├── bootstrap.min.js
{% endhighlight %} {% endhighlight %}
<p>This is the most basic form of Bootstrap: compiled files for quick drop-in usage in nearly any web project. We provide compiled CSS and JS (<code>bootstrap.*</code>), as well as compiled and minified CSS and JS (<code>bootstrap.min.*</code>). The image files are compressed using <a href="http://imageoptim.com/">ImageOptim</a>, a Mac app for compressing PNGs.</p> <p>This is the most basic form of Bootstrap: compiled files for quick drop-in usage in nearly any web project. We provide compiled CSS and JS (<code>bootstrap.*</code>), as well as compiled and minified CSS and JS (<code>bootstrap.min.*</code>).</p>
<div class="bs-callout bs-callout-danger"> <div class="bs-callout bs-callout-danger">
<h4>jQuery required</h4> <h4>jQuery required</h4>
<p>Please note that <strong>all JavaScript plugins require jQuery</strong> to be included, as shown in the <a href="#template">starter template</a>.</p> <p>Please note that <strong>all JavaScript plugins require jQuery</strong> to be included, as shown in the <a href="#template">starter template</a>.</p>
...@@ -112,7 +108,7 @@ bootstrap/ ...@@ -112,7 +108,7 @@ bootstrap/
<!-- Include all compiled plugins (below), or include individual files as needed --> <!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="js/bootstrap.min.js"></script> <script src="js/bootstrap.min.js"></script>
<!-- Optionally enable responsive features in IE8. Respond.js can be obtained from https://github.com/scottjehl/Respond --> <!-- Enable responsive features in IE8 with Respond.js (https://github.com/scottjehl/Respond) -->
<script src="js/respond.js"></script> <script src="js/respond.js"></script>
</body> </body>
</html> </html>
......
...@@ -9,7 +9,7 @@ base_url: "./" ...@@ -9,7 +9,7 @@ base_url: "./"
<h1>Bootstrap 3</h1> <h1>Bootstrap 3</h1>
<p class="lead">Sleek, intuitive, and powerful mobile-first front-end framework for faster and easier web development.</p> <p class="lead">Sleek, intuitive, and powerful mobile-first front-end framework for faster and easier web development.</p>
<p> <p>
<a href="{{ site.download_dist }}" class="btn btn-outline btn-large" onclick="_gaq.push(['_trackEvent', 'Jumbotron actions', 'Download', 'Download 3.0.0 RC1']);">Download Bootstrap</a> <a href="{{ site.download_dist }}" class="btn btn-outline btn-lg" onclick="_gaq.push(['_trackEvent', 'Jumbotron actions', 'Download', 'Download 3.0.0 RC1']);">Download Bootstrap</a>
</p> </p>
</div> </div>
</div> </div>
...@@ -15,7 +15,7 @@ base_url: "../" ...@@ -15,7 +15,7 @@ base_url: "../"
</div> </div>
<h3 id="js-individual-compiled">Individual or compiled</h3> <h3 id="js-individual-compiled">Individual or compiled</h3>
<p>Plugins can be included individually (using bootstrap's individual <code>*.js</code> files, or all at once (using <code>bootstrap.js</code> or the minified <code>bootstrap.min.js</code>.</p> <p>Plugins can be included individually (using Bootstrap's individual <code>*.js</code> files, or all at once (using <code>bootstrap.js</code> or the minified <code>bootstrap.min.js</code>.</p>
<div class="bs-callout bs-callout-danger"> <div class="bs-callout bs-callout-danger">
<h4>Do not attempt to include both.</h4> <h4>Do not attempt to include both.</h4>
...@@ -28,7 +28,7 @@ base_url: "../" ...@@ -28,7 +28,7 @@ base_url: "../"
</div> </div>
<h3 id="js-data-attrs">Data attributes</h3> <h3 id="js-data-attrs">Data attributes</h3>
<p>You can use all Bootstrap plugins purely through the markup API without writing a single line of JavaScript. This is Bootstrap's first class API and should be your first consideration when using a plugin.</p> <p>You can use all Bootstrap plugins purely through the markup API without writing a single line of JavaScript. This is Bootstrap's first-class API and should be your first consideration when using a plugin.</p>
<p>That said, in some situations it may be desirable to turn this functionality off. Therefore, we also provide the ability to disable the data attribute API by unbinding all events on the document namespaced with <code>data-api</code>. This looks like this: <p>That said, in some situations it may be desirable to turn this functionality off. Therefore, we also provide the ability to disable the data attribute API by unbinding all events on the document namespaced with <code>data-api</code>. This looks like this:
{% highlight js %} {% highlight js %}
...@@ -59,12 +59,12 @@ $("#myModal").modal('show') // initializes and invokes show immed ...@@ -59,12 +59,12 @@ $("#myModal").modal('show') // initializes and invokes show immed
<p>Sometimes it is necessary to use Bootstrap plugins with other UI frameworks. In these circumstances, namespace collisions can occasionally occur. If this happens, you may call <code>.noConflict</code> on the plugin you wish to revert the value of.</p> <p>Sometimes it is necessary to use Bootstrap plugins with other UI frameworks. In these circumstances, namespace collisions can occasionally occur. If this happens, you may call <code>.noConflict</code> on the plugin you wish to revert the value of.</p>
{% highlight js %} {% highlight js %}
var bootstrapButton = $.fn.button.noConflict() // return $.fn.button to previously assigned value var bootstrapButton = $.fn.button.noConflict() // return $.fn.button to previously assigned value
$.fn.bootstrapBtn = bootstrapButton // give $().bootstrapBtn the bootstrap functionality $.fn.bootstrapBtn = bootstrapButton // give $().bootstrapBtn the Bootstrap functionality
{% endhighlight %} {% endhighlight %}
<h3 id="js-events">Events</h3> <h3 id="js-events">Events</h3>
<p>Bootstrap provides custom events for most plugin's unique actions. Generally, these come in an infinitive and past participle form - where the infinitive (ex. <code>show</code>) is triggered at the start of an event, and its past participle form (ex. <code>shown</code>) is trigger on the completion of an action.</p> <p>Bootstrap provides custom events for most plugin's unique actions. Generally, these come in an infinitive and past participle form - where the infinitive (ex. <code>show</code>) is triggered at the start of an event, and its past participle form (ex. <code>shown</code>) is trigger on the completion of an action.</p>
<p>As of 3.0.0, all bootstrap events are namespaced.</p> <p>As of 3.0.0, all Bootstrap events are namespaced.</p>
<p>All infinitive events provide <code>preventDefault</code> functionality. This provides the ability to stop the execution of an action before it starts.</p> <p>All infinitive events provide <code>preventDefault</code> functionality. This provides the ability to stop the execution of an action before it starts.</p>
{% highlight js %} {% highlight js %}
$('#myModal').on('show.bs.modal', function (e) { $('#myModal').on('show.bs.modal', function (e) {
...@@ -89,7 +89,7 @@ $('#myModal').on('show.bs.modal', function (e) { ...@@ -89,7 +89,7 @@ $('#myModal').on('show.bs.modal', function (e) {
<h3>About transitions</h3> <h3>About transitions</h3>
<p>For simple transition effects, include <code>transition.js</code> once alongside the other JS files. If you're using the compiled (or minified) <code>bootstrap.js</code>, there is no need to include this&mdash;it's already there.</p> <p>For simple transition effects, include <code>transition.js</code> once alongside the other JS files. If you're using the compiled (or minified) <code>bootstrap.js</code>, there is no need to include this&mdash;it's already there.</p>
<h3>What's inside</h3> <h3>What's inside</h3>
<p>Transition.js is a basic helper for transitionEnd events as well as a css transition emulator. It's used by the other plugins to check for css transition support and to catch hanging transitions.</p> <p>Transition.js is a basic helper for <code>transitionEnd</code> events as well as a CSS transition emulator. It's used by the other plugins to check for CSS transition support and to catch hanging transitions.</p>
</div> </div>
...@@ -189,11 +189,11 @@ $('#myModal').on('show.bs.modal', function (e) { ...@@ -189,11 +189,11 @@ $('#myModal').on('show.bs.modal', function (e) {
</div><!-- /.modal --> </div><!-- /.modal -->
<div class="bs-example" style="padding-bottom: 24px;"> <div class="bs-example" style="padding-bottom: 24px;">
<a data-toggle="modal" href="#myModal" class="btn btn-primary btn-large">Launch demo modal</a> <a data-toggle="modal" href="#myModal" class="btn btn-primary btn-lg">Launch demo modal</a>
</div><!-- /example --> </div><!-- /example -->
{% highlight html %} {% highlight html %}
<!-- Button trigger modal --> <!-- Button trigger modal -->
<a data-toggle="modal" href="#myModal" class="btn btn-primary btn-large">Launch demo modal</a> <a data-toggle="modal" href="#myModal" class="btn btn-primary btn-lg">Launch demo modal</a>
<!-- Modal --> <!-- Modal -->
<div class="modal fade" id="myModal"> <div class="modal fade" id="myModal">
...@@ -207,8 +207,8 @@ $('#myModal').on('show.bs.modal', function (e) { ...@@ -207,8 +207,8 @@ $('#myModal').on('show.bs.modal', function (e) {
... ...
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<a href="#" class="btn">Close</a> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<a href="#" class="btn btn-primary">Save changes</a> <button type="button" class="btn btn-primary">Save changes</button>
</div> </div>
</div><!-- /.modal-content --> </div><!-- /.modal-content -->
</div><!-- /.modal-dialog --> </div><!-- /.modal-dialog -->
...@@ -465,7 +465,7 @@ $('.dropdown-toggle').dropdown() ...@@ -465,7 +465,7 @@ $('.dropdown-toggle').dropdown()
<h3>Methods</h3> <h3>Methods</h3>
<h4>$().dropdown('toggle')</h4> <h4>$().dropdown('toggle')</h4>
<p>A programmatic api for toggling menus for a given navbar or tabbed navigation.</p> <p>Toggles the dropdown menu of a given navbar or tabbed navigation.</p>
</div> </div>
...@@ -957,7 +957,7 @@ $('#myTooltip').on('hidden.bs.tooltip', function () { ...@@ -957,7 +957,7 @@ $('#myTooltip').on('hidden.bs.tooltip', function () {
<h3>Live demo</h3> <h3>Live demo</h3>
<div class="bs-example" style="padding-bottom: 24px;"> <div class="bs-example" style="padding-bottom: 24px;">
<a href="#" class="btn btn-large btn-danger" data-toggle="popover" title="A Title" data-content="And here's some amazing content. It's very engaging. right?">Click to toggle popover</a> <a href="#" class="btn btn-lg btn-danger" data-toggle="popover" title="A Title" data-content="And here's some amazing content. It's very engaging. right?">Click to toggle popover</a>
</div> </div>
<h4>Four directions</h4> <h4>Four directions</h4>
...@@ -1794,7 +1794,7 @@ $('#myCarousel').on('slide.bs.carousel', function () { ...@@ -1794,7 +1794,7 @@ $('#myCarousel').on('slide.bs.carousel', function () {
<h4>Requires independent styling ;)</h4> <h4>Requires independent styling ;)</h4>
<p> <p>
Affix toggles between three states/classes: <code>affix</code>, <code>affix-top</code>, and <code>affix-bottom</code>. You must provide the styles for these classes yourself (independent of this plugin). Affix toggles between three states/classes: <code>affix</code>, <code>affix-top</code>, and <code>affix-bottom</code>. You must provide the styles for these classes yourself (independent of this plugin).
The <code>affix-top</code> class should be in the regular flow of the document. The <code>affix</code> class should be fixed to the page. And <code>affix-bottom</code> should be positioned absolute. Note, <code>affix-bottom</code> is special in that the plugin will place the element with js relative to the <code>offset: { bottom: number }</code> option you've provided. The <code>affix-top</code> class should be in the regular flow of the document. The <code>affix</code> class should be fixed to the page. And <code>affix-bottom</code> should be positioned absolute. Note, <code>affix-bottom</code> is special in that the plugin will place the element with JS relative to the <code>offset: { bottom: number }</code> option you've provided.
</p> </p>
</div> </div>
......
...@@ -75,6 +75,10 @@ ...@@ -75,6 +75,10 @@
o.content) o.content)
} }
Popover.prototype.arrow =function () {
return this.$arrow = this.$arrow || this.tip().find('.arrow')
}
Popover.prototype.tip = function () { Popover.prototype.tip = function () {
if (!this.$tip) this.$tip = $(this.options.template) if (!this.$tip) this.$tip = $(this.options.template)
return this.$tip return this.$tip
......
...@@ -179,12 +179,9 @@ ...@@ -179,12 +179,9 @@
.addClass(placement) .addClass(placement)
} }
var tp = placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } : var calculatedOffset = this.getCalcuatedOffset(placement, pos, actualWidth, actualHeight)
placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
/* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
this.applyPlacement(tp, placement) this.applyPlacement(calculatedOffset, placement)
this.$element.trigger('shown.bs.' + this.type) this.$element.trigger('shown.bs.' + this.type)
} }
} }
...@@ -196,13 +193,21 @@ ...@@ -196,13 +193,21 @@
var height = $tip[0].offsetHeight var height = $tip[0].offsetHeight
// manually read margins because getBoundingClientRect includes difference // manually read margins because getBoundingClientRect includes difference
offset.top = offset.top + parseInt($tip.css('margin-top'), 10) var marginTop = parseInt($tip.css('margin-top'), 10)
offset.left = offset.left + parseInt($tip.css('margin-left'), 10) var marginLeft = parseInt($tip.css('margin-left'), 10)
// we must check for NaN for ie 8/9
if (isNaN(marginTop)) marginTop = 0
if (isNaN(marginLeft)) marginLeft = 0
offset.top = offset.top + marginTop
offset.left = offset.left + marginLeft
$tip $tip
.offset(offset) .offset(offset)
.addClass('in') .addClass('in')
// check to see if placing tip in new offset caused the tip to resize itself
var actualWidth = $tip[0].offsetWidth var actualWidth = $tip[0].offsetWidth
var actualHeight = $tip[0].offsetHeight var actualHeight = $tip[0].offsetHeight
...@@ -211,10 +216,10 @@ ...@@ -211,10 +216,10 @@
offset.top = offset.top + height - actualHeight offset.top = offset.top + height - actualHeight
} }
if (placement == 'bottom' || placement == 'top') { if (/bottom|top/.test(placement)) {
var delta = 0 var delta = 0
if (offset.left < 0){ if (offset.left < 0) {
delta = offset.left * -2 delta = offset.left * -2
offset.left = 0 offset.left = 0
...@@ -287,6 +292,13 @@ ...@@ -287,6 +292,13 @@
}, this.$element.offset()) }, this.$element.offset())
} }
Tooltip.prototype.getCalcuatedOffset = function (placement, pos, actualWidth, actualHeight) {
return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
/* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
}
Tooltip.prototype.getTitle = function () { Tooltip.prototype.getTitle = function () {
var title var title
var $e = this.$element var $e = this.$element
...@@ -302,8 +314,8 @@ ...@@ -302,8 +314,8 @@
return this.$tip = this.$tip || $(this.options.template) return this.$tip = this.$tip || $(this.options.template)
} }
Tooltip.prototype.arrow =function(){ Tooltip.prototype.arrow = function () {
return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow") return this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')
} }
Tooltip.prototype.validate = function () { Tooltip.prototype.validate = function () {
......
...@@ -22,7 +22,8 @@ ...@@ -22,7 +22,8 @@
// Bring the "active" button to the front // Bring the "active" button to the front
&:hover, &:hover,
&:focus, &:focus,
&:active { &:active,
&.active {
z-index: 2; z-index: 2;
} }
} }
...@@ -100,7 +101,7 @@ ...@@ -100,7 +101,7 @@
padding-left: 8px; padding-left: 8px;
padding-right: 8px; padding-right: 8px;
} }
.btn-group > .btn-large + .dropdown-toggle { .btn-group > .btn-lg + .dropdown-toggle {
padding-left: 12px; padding-left: 12px;
padding-right: 12px; padding-right: 12px;
} }
...@@ -117,11 +118,11 @@ ...@@ -117,11 +118,11 @@
margin-left: 0; margin-left: 0;
} }
// Carets in other button sizes // Carets in other button sizes
.btn-large .caret { .btn-lg .caret {
border-width: 5px; border-width: 5px;
} }
// Upside down carets for .dropup // Upside down carets for .dropup
.dropup .btn-large .caret { .dropup .btn-lg .caret {
border-bottom-width: 5px; border-bottom-width: 5px;
} }
...@@ -142,10 +143,10 @@ ...@@ -142,10 +143,10 @@
&:not(:first-child):not(:last-child) { &:not(:first-child):not(:last-child) {
border-radius: 0; border-radius: 0;
} }
&:first-child { &:first-child:not(:last-child) {
.border-bottom-radius(0); .border-bottom-radius(0);
} }
&:last-child { &:last-child:not(:first-child) {
.border-top-radius(0); .border-top-radius(0);
} }
} }
...@@ -157,6 +158,7 @@ ...@@ -157,6 +158,7 @@
.btn-group-justified { .btn-group-justified {
display: table; display: table;
width: 100%; width: 100%;
table-layout: fixed;
.btn { .btn {
float: none; float: none;
display: table-cell; display: table-cell;
......
...@@ -120,20 +120,20 @@ ...@@ -120,20 +120,20 @@
// Button Sizes // Button Sizes
// -------------------------------------------------- // --------------------------------------------------
.btn-large { .btn-lg {
padding: @padding-large-vertical @padding-large-horizontal; padding: @padding-large-vertical @padding-large-horizontal;
font-size: @font-size-large; font-size: @font-size-large;
line-height: 1.33; // ensure even-numbered height of button next to large input line-height: @line-height-large; // ensure even-numbered height of button next to large input
border-radius: @border-radius-large; border-radius: @border-radius-large;
} }
.btn-small, .btn-sm,
.btn-mini { .btn-xs {
padding: @padding-small-vertical @padding-small-horizontal; padding: @padding-small-vertical @padding-small-horizontal;
font-size: @font-size-small; font-size: @font-size-small;
line-height: 1.5; // ensure proper height of button next to small input line-height: @line-height-small; // ensure proper height of button next to small input
border-radius: @border-radius-small; border-radius: @border-radius-small;
} }
.btn-mini { .btn-xs {
padding: 3px 5px; padding: 3px 5px;
} }
......
...@@ -129,11 +129,8 @@ input[type="number"] { ...@@ -129,11 +129,8 @@ input[type="number"] {
.box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
.transition(~"border-color ease-in-out .15s, box-shadow ease-in-out .15s"); .transition(~"border-color ease-in-out .15s, box-shadow ease-in-out .15s");
&:focus { // Customize the `:focus` state to imitate native WebKit styles.
border-color: rgba(82,168,236,.8); .form-control-focus();
outline: 0;
.box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6)");
}
// Disabled and read-only inputs // Disabled and read-only inputs
// Note: HTML5 says that inputs under a fieldset > legend:first-child won't be // Note: HTML5 says that inputs under a fieldset > legend:first-child won't be
...@@ -218,14 +215,14 @@ input[type="number"] { ...@@ -218,14 +215,14 @@ input[type="number"] {
// horizontal sizing, wrap controls in the predefined grid classes. `<select>` // horizontal sizing, wrap controls in the predefined grid classes. `<select>`
// element gets special love because it's special, and that's a fact! // element gets special love because it's special, and that's a fact!
.input-large { .input-lg {
height: @input-height-large; height: @input-height-large;
padding: @padding-large-vertical @padding-large-horizontal; padding: @padding-large-vertical @padding-large-horizontal;
font-size: @font-size-large; font-size: @font-size-large;
line-height: @line-height-large; line-height: @line-height-large;
border-radius: @border-radius-large; border-radius: @border-radius-large;
} }
.input-small { .input-sm {
height: @input-height-small; height: @input-height-small;
padding: @padding-small-vertical @padding-small-horizontal; padding: @padding-small-vertical @padding-small-horizontal;
font-size: @font-size-small; font-size: @font-size-small;
...@@ -234,18 +231,18 @@ input[type="number"] { ...@@ -234,18 +231,18 @@ input[type="number"] {
} }
select { select {
&.input-large { &.input-lg {
height: @input-height-large; height: @input-height-large;
line-height: @input-height-large; line-height: @input-height-large;
} }
&.input-small { &.input-sm {
height: @input-height-small; height: @input-height-small;
line-height: @input-height-small; line-height: @input-height-small;
} }
} }
textarea { textarea {
&.input-large, &.input-lg,
&.input-small { &.input-sm {
height: auto; height: auto;
} }
} }
......
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
// Container and grid column sizing // Container and grid column sizing
// //
// Tiny device columns (smartphones) // Extra small device columns (smartphones)
.col-1, .col-1,
.col-2, .col-2,
.col-3, .col-3,
......
...@@ -55,15 +55,17 @@ ...@@ -55,15 +55,17 @@
border-radius: @border-radius-base; border-radius: @border-radius-base;
// Sizing // Sizing
&.input-small { &.input-sm {
padding: @padding-small-vertical @padding-small-horizontal; padding: @padding-small-vertical @padding-small-horizontal;
font-size: @font-size-small; font-size: @font-size-small;
border-radius: @border-radius-small; border-radius: @border-radius-small;
line-height: @line-height-small;
} }
&.input-large { &.input-lg {
padding: @padding-large-vertical @padding-large-horizontal; padding: @padding-large-vertical @padding-large-horizontal;
font-size: @font-size-large; font-size: @font-size-large;
border-radius: @border-radius-large; border-radius: @border-radius-large;
line-height: @line-height-large;
} }
// Nuke default margins from checkboxes and radios to vertically center within. // Nuke default margins from checkboxes and radios to vertically center within.
......
...@@ -130,22 +130,22 @@ ...@@ -130,22 +130,22 @@
// Transformations // Transformations
.rotate(@degrees) { .rotate(@degrees) {
-webkit-transform: rotate(@degrees); -webkit-transform: rotate(@degrees);
-ms-transform: rotate(@degrees); -ms-transform: rotate(@degrees); // IE9+
transform: rotate(@degrees); transform: rotate(@degrees);
} }
.scale(@ratio) { .scale(@ratio) {
-webkit-transform: scale(@ratio); -webkit-transform: scale(@ratio);
-ms-transform: scale(@ratio); -ms-transform: scale(@ratio); // IE9+
transform: scale(@ratio); transform: scale(@ratio);
} }
.translate(@x; @y) { .translate(@x; @y) {
-webkit-transform: translate(@x, @y); -webkit-transform: translate(@x, @y);
-ms-transform: translate(@x, @y); -ms-transform: translate(@x, @y); // IE9+
transform: translate(@x, @y); transform: translate(@x, @y);
} }
.skew(@x; @y) { .skew(@x; @y) {
-webkit-transform: skew(@x, @y); -webkit-transform: skew(@x, @y);
-ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885 -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
transform: skew(@x, @y); transform: skew(@x, @y);
} }
.translate3d(@x; @y; @z) { .translate3d(@x; @y; @z) {
...@@ -185,7 +185,7 @@ ...@@ -185,7 +185,7 @@
.user-select(@select) { .user-select(@select) {
-webkit-user-select: @select; -webkit-user-select: @select;
-moz-user-select: @select; -moz-user-select: @select;
-ms-user-select: @select; -ms-user-select: @select; // IE10+
-o-user-select: @select; -o-user-select: @select;
user-select: @select; user-select: @select;
} }
...@@ -211,7 +211,7 @@ ...@@ -211,7 +211,7 @@
word-wrap: break-word; word-wrap: break-word;
-webkit-hyphens: @mode; -webkit-hyphens: @mode;
-moz-hyphens: @mode; -moz-hyphens: @mode;
-ms-hyphens: @mode; -ms-hyphens: @mode; // IE10+
-o-hyphens: @mode; -o-hyphens: @mode;
hyphens: @mode; hyphens: @mode;
} }
...@@ -528,7 +528,6 @@ ...@@ -528,7 +528,6 @@
} }
// Set the border and box shadow on specific inputs to match // Set the border and box shadow on specific inputs to match
.form-control { .form-control {
padding-right: 32px; // to account for the feedback icon
border-color: @border-color; border-color: @border-color;
.box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
&:focus { &:focus {
...@@ -544,3 +543,25 @@ ...@@ -544,3 +543,25 @@
background-color: @background-color; background-color: @background-color;
} }
} }
// Form control focus state
//
// Generate a customized focus state and for any input with the specified color,
// which defaults to the `@input-focus-border` variable.
//
// We highly encourage you to not customize the default value, but instead use
// this to tweak colors on an as-needed basis. This aesthetic change is based on
// WebKit's default styles, but applicable to a wider range of browsers. Its
// usability and accessibility should be taken into account with any change.
//
// Example usage: change the default blue border and shadow to white for better
// contrast against a dark gray background.
.form-control-focus(@color: @input-border-focus) {
@color-rgba: rgba(red(@color), green(@color), blue(@color), .6);
&:focus {
border-color: @color;
outline: 0;
.box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}");
}
}
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
.translate(0, -25%); .translate(0, -25%);
.transition-transform(~"0.3s ease-out"); .transition-transform(~"0.3s ease-out");
} }
&.fade.in .modal-dialog { .translate(0, 0)} &.in .modal-dialog { .translate(0, 0)}
} }
// Shell div to position the modal with bottom padding // Shell div to position the modal with bottom padding
...@@ -65,7 +65,7 @@ ...@@ -65,7 +65,7 @@
background-color: @modal-backdrop-bg; background-color: @modal-backdrop-bg;
// Fade for backdrop // Fade for backdrop
&.fade { .opacity(0); } &.fade { .opacity(0); }
&.fade.in { .opacity(.5); } &.in { .opacity(.5); }
} }
// Modal header // Modal header
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
padding-left: @navbar-padding-horizontal; padding-left: @navbar-padding-horizontal;
padding-right: @navbar-padding-horizontal; padding-right: @navbar-padding-horizontal;
background-color: @navbar-bg; background-color: @navbar-bg;
border-radius: @border-radius-base; border-radius: @navbar-border-radius;
// Prevent floats from breaking the navbar // Prevent floats from breaking the navbar
.clearfix(); .clearfix();
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
padding-top: ((@navbar-height - @line-height-computed) / 2); padding-top: ((@navbar-height - @line-height-computed) / 2);
padding-bottom: ((@navbar-height - @line-height-computed) / 2); padding-bottom: ((@navbar-height - @line-height-computed) / 2);
color: @navbar-link-color; color: @navbar-link-color;
line-height: 20px; line-height: @line-height-computed;
border-radius: @border-radius-base; border-radius: @border-radius-base;
&:hover, &:hover,
&:focus { &:focus {
...@@ -116,12 +116,12 @@ ...@@ -116,12 +116,12 @@
// Collapsible navbar toggle // Collapsible navbar toggle
.navbar-toggle { .navbar-toggle {
position: absolute; position: relative;
top: floor((@navbar-height - 32) / 2); float: right;
right: 10px; height: 34px;
width: 48px; width: 48px;
height: 32px; .navbar-vertical-align(34px);
padding: 8px 12px; padding: @padding-base-vertical @padding-base-horizontal;
background-color: transparent; background-color: transparent;
border: 1px solid @navbar-toggle-border-color; border: 1px solid @navbar-toggle-border-color;
border-radius: @border-radius-base; border-radius: @border-radius-base;
...@@ -302,6 +302,7 @@ ...@@ -302,6 +302,7 @@
float: left; float: left;
margin-left: -(@navbar-padding-horizontal); margin-left: -(@navbar-padding-horizontal);
margin-right: 5px; margin-right: 5px;
max-width: none; // Disables the default mobile setting
} }
.navbar-nav { .navbar-nav {
float: left; float: left;
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
> a, > a,
> span { > span {
float: left; // Collapse white-space float: left; // Collapse white-space
padding: 4px 12px; padding: @padding-base-vertical @padding-base-horizontal;
line-height: @line-height-base; line-height: @line-height-base;
text-decoration: none; text-decoration: none;
background-color: @pagination-bg; background-color: @pagination-bg;
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
// -------------------------------------------------- // --------------------------------------------------
// Large // Large
.pagination-large { .pagination-lg {
> li { > li {
> a, > a,
> span { > span {
...@@ -85,7 +85,7 @@ ...@@ -85,7 +85,7 @@
} }
// Small // Small
.pagination-small { .pagination-sm {
> li { > li {
> a, > a,
> span { > span {
......
...@@ -47,6 +47,9 @@ ...@@ -47,6 +47,9 @@
margin-bottom: 0; margin-bottom: 0;
font-size: (@font-size-base * 1.25); font-size: (@font-size-base * 1.25);
font-weight: 500; font-weight: 500;
> a {
color: inherit;
}
} }
// Optional footer (stays gray in every modifier class) // Optional footer (stays gray in every modifier class)
......
...@@ -18,19 +18,13 @@ ...@@ -18,19 +18,13 @@
to { background-position: 0 0; } to { background-position: 0 0; }
} }
// IE9
@-ms-keyframes progress-bar-stripes {
from { background-position: 40px 0; }
to { background-position: 0 0; }
}
// Opera // Opera
@-o-keyframes progress-bar-stripes { @-o-keyframes progress-bar-stripes {
from { background-position: 0 0; } from { background-position: 0 0; }
to { background-position: 40px 0; } to { background-position: 40px 0; }
} }
// Spec // Spec and IE10+
@keyframes progress-bar-stripes { @keyframes progress-bar-stripes {
from { background-position: 40px 0; } from { background-position: 40px 0; }
to { background-position: 0 0; } to { background-position: 0 0; }
......
...@@ -131,6 +131,7 @@ ...@@ -131,6 +131,7 @@
@input-border: #ccc; @input-border: #ccc;
@input-border-radius: @border-radius-base; @input-border-radius: @border-radius-base;
@input-border-focus: #66afe9;
@input-color-placeholder: @gray-light; @input-color-placeholder: @gray-light;
...@@ -180,9 +181,9 @@ ...@@ -180,9 +181,9 @@
// Media queries breakpoints // Media queries breakpoints
// -------------------------------------------------- // --------------------------------------------------
// Tiny screen / phone // Extra small screen / phone
@screen-tiny: 480px; @screen-xsmall: 480px;
@screen-phone: @screen-tiny; @screen-phone: @screen-xsmall;
// Small screen / tablet // Small screen / tablet
@screen-small: 768px; @screen-small: 768px;
...@@ -218,6 +219,7 @@ ...@@ -218,6 +219,7 @@
@navbar-height: 50px; @navbar-height: 50px;
@navbar-color: #777; @navbar-color: #777;
@navbar-bg: #eee; @navbar-bg: #eee;
@navbar-border-radius: @border-radius-base;
@navbar-padding-horizontal: floor(@grid-gutter-width / 2); // ~15px @navbar-padding-horizontal: floor(@grid-gutter-width / 2); // ~15px
@navbar-padding-vertical: ((@navbar-height - @line-height-computed) / 2); @navbar-padding-vertical: ((@navbar-height - @line-height-computed) / 2);
......
...@@ -19,11 +19,11 @@ ...@@ -19,11 +19,11 @@
} }
// Sizes // Sizes
.well-large { .well-lg {
padding: 24px; padding: 24px;
border-radius: @border-radius-large; border-radius: @border-radius-large;
} }
.well-small { .well-sm {
padding: 9px; padding: 9px;
border-radius: @border-radius-small; border-radius: @border-radius-small;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment