Commit 402dbfb6 authored by Mark Otto's avatar Mark Otto

Merge branch '3.0.0-wip' into bs3_theme

Conflicts:
	dist/css/bootstrap.min.css
parents 7e19b6b0 41bdd1a4
...@@ -2,4 +2,8 @@ language: node_js ...@@ -2,4 +2,8 @@ language: node_js
node_js: node_js:
- 0.8 - 0.8
before_script: before_script:
- npm install -g grunt-cli - npm install -g grunt-cli
\ No newline at end of file env:
global:
- secure: Besg41eyU+2mfxrywQ4ydOShMdc34ImaO0S0ENP+aCOBuyNBIgP59wy5tBMmyai2/8eInYeVps4Td96mWInMMxzTe3Bar7eTLG5tWVKRSr/wc4NBPZ/ppoPAmCEsz9Y+VptRH9/FO8n7hsL9EFZ+xBKbG+C0SccGoyBDpA5j7/w=
- secure: Ptiv7phCImFP3ALIz+sMQzrZg8k7C1gLZbFBhWxjnQr3g06wIfX3Ls5y9OHvxid+lOZZjISui3wzBVgpVHqwHUYf96+r0mo6/mJ+F4ffUmShZANVaIMD/JRTnXhUQJbvntGLvxn1EYWPdNM+2IHJrMipnjHxU9tkgAnlel4Zdew=
...@@ -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.
pkg: grunt.file.readJSON('package.json'), // Metadata.
banner: '/**\n' + pkg: grunt.file.readJSON('package.json'),
'* <%= pkg.name %>.js v<%= pkg.version %> by @fat and @mdo\n' + banner: '/**\n' +
'* Copyright <%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' + '* <%= pkg.name %>.js v<%= pkg.version %> by @fat and @mdo\n' +
'* <%= _.pluck(pkg.licenses, "url").join(", ") %>\n' + '* Copyright <%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' +
'*/\n', '* <%= _.pluck(pkg.licenses, "url").join(", ") %>\n' +
jqueryCheck: 'if (!jQuery) { throw new Error(\"Bootstrap requires jQuery\") }\n\n', '*/\n',
// Task configuration. jqueryCheck: 'if (!jQuery) { throw new Error(\"Bootstrap requires jQuery\") }\n\n',
clean: {
dist: ['dist'] // Task configuration.
}, clean: {
concat: { dist: ['dist']
options: { },
banner: '<%= banner %><%= jqueryCheck %>',
stripBanners: false jshint: {
}, options: {
bootstrap: { jshintrc: 'js/.jshintrc'
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' gruntfile: {
} src: 'Gruntfile.js'
}, },
jshint: { src: {
options: { src: ['js/*.js']
jshintrc: 'js/.jshintrc' },
}, test: {
gruntfile: { src: ['js/tests/unit/*.js']
src: 'Gruntfile.js' }
}, },
src: { concat: {
src: ['js/*.js'] options: {
}, banner: '<%= banner %><%= jqueryCheck %>',
test: { stripBanners: false
src: ['js/tests/unit/*.js'] },
} bootstrap: {
}, src: [
recess: { 'js/transition.js',
options: { 'js/alert.js',
compile: true 'js/button.js',
}, 'js/carousel.js',
bootstrap: { 'js/collapse.js',
files: { 'js/dropdown.js',
'dist/css/bootstrap.css': ['less/bootstrap.less'] 'js/modal.js',
} 'js/tooltip.js',
}, 'js/popover.js',
min: { 'js/scrollspy.js',
options: { 'js/tab.js',
compress: true 'js/affix.js'
}, ],
files: { dest: 'dist/js/<%= pkg.name %>.js'
'dist/css/bootstrap.min.css': ['less/bootstrap.less'] }
} },
} uglify: {
}, options: {
uglify: { banner: '<%= banner %>'
options: { },
banner: '<%= banner %>' bootstrap: {
}, src: ['<%= concat.bootstrap.dest %>'],
bootstrap: { dest: 'dist/js/<%= pkg.name %>.min.js'
files: { }
'dist/js/<%= pkg.name %>.min.js': ['<%= concat.bootstrap.dest %>'] },
}
} recess: {
}, options: {
qunit: { compile: true
options: { },
inject: 'js/tests/unit/phantom.js' bootstrap: {
}, src: ['less/bootstrap.less'],
files: ['js/tests/*.html'] dest: 'dist/css/<%= pkg.name %>.css'
}, },
connect: { min: {
server: { options: {
options: { compress: true
port: 3000,
base: '.'
}
}
}, },
watch: { src: ['less/bootstrap.less'],
src: { dest: 'dist/css/<%= pkg.name %>.min.css'
files: '<%= jshint.src.src %>', }
tasks: ['jshint:src', 'qunit'] },
},
test: { qunit: {
files: '<%= jshint.test.src %>', options: {
tasks: ['jshint:test', 'qunit'] inject: 'js/tests/unit/phantom.js'
}, },
recess: { files: ['js/tests/*.html']
files: 'less/*.less', },
tasks: ['recess'] connect: {
} server: {
options: {
port: 3000,
base: '.'
} }
}); }
},
watch: {
src: {
files: '<%= jshint.src.src %>',
tasks: ['jshint:src', 'qunit']
},
test: {
files: '<%= jshint.test.src %>',
tasks: ['jshint:test', 'qunit']
},
recess: {
files: 'less/*.less',
tasks: ['recess']
}
}
});
// 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');
grunt.loadNpmTasks('browserstack-runner');
// Test task. // Test task.
grunt.registerTask('test', ['jshint', 'qunit']); var testSubtasks = ['jshint', 'qunit'];
if (process.env.TRAVIS) {
testSubtasks.push('browserstack_runner');
}
grunt.registerTask('test', testSubtasks);
// JS distribution task. // JS distribution task.
grunt.registerTask('dist-js', ['concat', 'uglify']); grunt.registerTask('dist-js', ['concat', 'uglify']);
// CSS distribution task. // CSS distribution task.
grunt.registerTask('dist-css', ['recess']); grunt.registerTask('dist-css', ['recess']);
// Full distribution task. // Full distribution task.
grunt.registerTask('dist', ['clean', 'dist-css', 'dist-js']); grunt.registerTask('dist', ['clean', 'dist-css', 'dist-js']);
// Default task. // Default task.
grunt.registerTask('default', ['test', 'dist']); grunt.registerTask('default', ['test', 'dist']);
}; };
...@@ -63,13 +63,13 @@ When completed, you'll be able to run the various Grunt commands provided from t ...@@ -63,13 +63,13 @@ When completed, you'll be able to run the various Grunt commands provided from t
### Available Grunt commands ### Available Grunt commands
#### Build - `grunt` #### Build - `grunt`
Run `grunt` to run tests locally and compile the CSS and JavaScript into `/dist`. **Requires recess and uglify-js.** Run `grunt` to run tests locally and compile the CSS and JavaScript into `/dist`. **Requires [recess](https://github.com/twitter/recess) and [uglify-js](https://github.com/mishoo/UglifyJS).**
#### Only compile CSS and JavaScript - `grunt dist` #### Only compile CSS and JavaScript - `grunt dist`
`grunt dist` creates the `/dist` directory with compiled files. **Requires recess and uglify-js.** `grunt dist` creates the `/dist` directory with compiled files. **Requires [recess](https://github.com/twitter/recess) and [uglify-js](https://github.com/mishoo/UglifyJS).**
#### Tests - `grunt test` #### Tests - `grunt test`
Runs jshint and qunit tests headlessly in [phantomjs](http://code.google.com/p/phantomjs/) (used for ci). **Requires phantomjs.** Runs jshint and qunit tests headlessly in [phantomjs](https://github.com/ariya/phantomjs/) (used for CI). **Requires [phantomjs](https://github.com/ariya/phantomjs/).**
#### Watch - `grunt watch` #### Watch - `grunt watch`
This is a convenience method for watching just Less files and automatically building them whenever you save. This is a convenience method for watching just Less files and automatically building them whenever you save.
......
<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);
})(); })();
......
...@@ -61,6 +61,8 @@ ...@@ -61,6 +61,8 @@
<li><a href="#navbar-fixed-bottom">Fixed bottom navbar</a></li> <li><a href="#navbar-fixed-bottom">Fixed bottom navbar</a></li>
<li><a href="#navbar-static-top">Static top navbar</a></li> <li><a href="#navbar-static-top">Static top navbar</a></li>
<li><a href="#navbar-responsive">Responsive navbar</a></li> <li><a href="#navbar-responsive">Responsive navbar</a></li>
<li><a href="#navbar-scrollable">Scrollable responsive navbar</a></li>
<li><a href="#navbar-inverted">Inverted navbar</a></li>
</ul> </ul>
</li> </li>
<li><a href="#breadcrumbs">Breadcrumbs</a></li> <li><a href="#breadcrumbs">Breadcrumbs</a></li>
...@@ -80,12 +82,17 @@ ...@@ -80,12 +82,17 @@
<li><a href="#type-components-page-header">Page header</a></li> <li><a href="#type-components-page-header">Page header</a></li>
</ul> </ul>
</li> </li>
<li><a href="#thumbnails">Thumbnails</a></li> <li>
<a href="#thumbnails">Thumbnails</a>
<ul class="nav">
<li><a href="#thumbnails-default">Default thumbnails</a></li>
<li><a href="#thumbnails-custom-content">Custom content</a></li>
</ul>
</li>
<li> <li>
<a href="#alerts">Alerts</a> <a href="#alerts">Alerts</a>
<ul class="nav"> <ul class="nav">
<li><a href="#alerts-default">Default alert</a></li> <li><a href="#alerts-default">Default alert</a></li>
<li><a href="#alerts-block">Block alerts</a></li>
<li><a href="#alerts-alternatives">Contextual alternatives</a></li> <li><a href="#alerts-alternatives">Contextual alternatives</a></li>
<li><a href="#alerts-links">Links in alerts</a></li> <li><a href="#alerts-links">Links in alerts</a></li>
</ul> </ul>
...@@ -100,7 +107,13 @@ ...@@ -100,7 +107,13 @@
<li><a href="#progress-stacked">Stacked</a></li> <li><a href="#progress-stacked">Stacked</a></li>
</ul> </ul>
</li> </li>
<li><a href="#media">Media object</a></li> <li>
<a href="#media">Media object</a>
<ul class="nav">
<li><a href="#media-default">Default media</a></li>
<li><a href="#media-list">Media list</a></li>
</ul>
</li>
<li> <li>
<a href="#list-group">List group</a> <a href="#list-group">List group</a>
<ul class="nav"> <ul class="nav">
......
...@@ -56,6 +56,7 @@ ...@@ -56,6 +56,7 @@
<li><a href="#forms-inline">Inline variation</a></li> <li><a href="#forms-inline">Inline variation</a></li>
<li><a href="#forms-horizontal">Horizontal variation</a></li> <li><a href="#forms-horizontal">Horizontal variation</a></li>
<li><a href="#forms-controls">Supported controls</a></li> <li><a href="#forms-controls">Supported controls</a></li>
<li><a href="#forms-controls-static">Static form control</a></li>
<li><a href="#forms-control-states">Control states</a></li> <li><a href="#forms-control-states">Control states</a></li>
<li><a href="#forms-control-sizes">Control sizing</a></li> <li><a href="#forms-control-sizes">Control sizing</a></li>
<li><a href="#forms-help-text">Help text</a></li> <li><a href="#forms-help-text">Help text</a></li>
......
...@@ -14,9 +14,12 @@ ...@@ -14,9 +14,12 @@
<li> <li>
<a href="#browsers">Browser support</a> <a href="#browsers">Browser support</a>
</li> </li>
<li>
<a href="#third-parties">Third party support</a>
</li>
<li> <li>
<a href="#license-faqs">License FAQs</a> <a href="#license-faqs">License FAQs</a>
</li> </li>
<li> <li>
<a href="#customizing">Customizing Bootstrap</a> <a href="#customizing">Customizing Bootstrap</a>
</li> </li>
\ No newline at end of file
<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 %}>
......
...@@ -123,8 +123,8 @@ body { ...@@ -123,8 +123,8 @@ body {
/* Download button */ /* Download button */
.bs-masthead .btn-outline { .bs-masthead .btn-outline {
margin-top: 5px; margin-top: 20px;
margin-bottom: 5px; margin-bottom: 20px;
padding: 18px 24px; padding: 18px 24px;
font-size: 21px; font-size: 21px;
} }
...@@ -208,8 +208,8 @@ body { ...@@ -208,8 +208,8 @@ body {
position: relative; position: relative;
} }
.bs-docs-section + .bs-docs-section { .bs-docs-section h1[id] {
margin-top: 80px; padding-top: 80px;
} }
/* Ads in page headers */ /* Ads in page headers */
...@@ -833,7 +833,7 @@ input.focused { ...@@ -833,7 +833,7 @@ input.focused {
.bs-masthead h1 { .bs-masthead h1 {
font-size: 100px; font-size: 100px;
} }
.bs-masthead p { .bs-masthead .lead {
margin-left: 15%; margin-left: 15%;
margin-right: 15%; margin-right: 15%;
font-size: 30px; font-size: 30px;
...@@ -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')
......
{
"username": "--secure--",
"key": "--secure--",
"test_path": "js/tests/index.html",
"browsers": [
{
"browser": "firefox",
"browser_version": "latest",
"os": "OS X",
"os_version": "Mountain Lion"
},
{
"browser": "safari",
"browser_version": "latest",
"os": "OS X",
"os_version": "Mountain Lion"
},
{
"browser": "chrome",
"browser_version": "latest",
"os": "OS X",
"os_version": "Mountain Lion"
},
{
"browser": "firefox",
"browser_version": "latest",
"os": "Windows",
"os_version": "7"
},
{
"browser": "chrome",
"browser_version": "latest",
"os": "Windows",
"os_version": "7"
}
]
}
...@@ -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 %}
...@@ -1276,7 +1312,7 @@ body { padding-bottom: 70px; } ...@@ -1276,7 +1312,7 @@ body { padding-bottom: 70px; }
<!-- Be sure to leave the brand out there if you want it shown --> <!-- Be sure to leave the brand out there if you want it shown -->
<a class="navbar-brand" href="#">Title</a> <a class="navbar-brand" href="#">Title</a>
<!-- Place everything within .navbar-collapse to hide it until above 768px --> <!-- Place everything within .nav-collapse to hide it until above 768px -->
<div class="nav-collapse collapse navbar-responsive-collapse"> <div class="nav-collapse collapse navbar-responsive-collapse">
... ...
</div><!-- /.nav-collapse --> </div><!-- /.nav-collapse -->
...@@ -1290,7 +1326,49 @@ body { padding-bottom: 70px; } ...@@ -1290,7 +1326,49 @@ body { padding-bottom: 70px; }
</div> </div>
<h2>Inverted variation</h2> <h2 id="navbar-scrollable">Scrollable responsive navbar</h2>
<p>For instances where you have too many items in your navbar to fight within the viewport of a small device, add <code>.nav-collapse-scrollable</code> to your navbar's <code>.nav-collapse</code> to set a <code>max-height</code> and smooth scrolling.</p>
<div class="bs-example">
<div class="navbar">
<div class="container">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".bs-navbar-scroll-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">Title</a>
<div class="collapse nav-collapse nav-collapse-scrollable bs-navbar-scroll-collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Home</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
</ul>
<form class="navbar-form pull-left" action="">
<input type="text" class="form-control col-lg-8" placeholder="Search">
</form>
</div><!-- /.nav-collapse -->
</div><!-- /.container -->
</div><!-- /.navbar -->
</div><!-- /example -->
{% highlight html %}
<div class="navbar">
<div class="container">
...
<div class="collapse nav-collapse nav-collapse-scrollable">
...
</div><!-- /.nav-collapse -->
</div><!-- /.container -->
</div><!-- /.navbar -->
{% endhighlight %}
<h2 id="navbar-inverted">Inverted variation</h2>
<p>Modify the look of the navbar by adding <code>.navbar-inverse</code>.</p> <p>Modify the look of the navbar by adding <code>.navbar-inverse</code>.</p>
<div class="bs-example"> <div class="bs-example">
<div class="navbar navbar-inverse"> <div class="navbar navbar-inverse">
...@@ -1446,10 +1524,10 @@ body { padding-bottom: 70px; } ...@@ -1446,10 +1524,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 +1549,7 @@ body { padding-bottom: 70px; } ...@@ -1471,7 +1549,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 +1561,9 @@ body { padding-bottom: 70px; } ...@@ -1483,9 +1561,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">...</ul>
<ul class="pagination pagination-small">...</ul> <ul class="pagination pagination-sm">...</ul>
{% endhighlight %} {% endhighlight %}
...@@ -1551,28 +1629,28 @@ body { padding-bottom: 70px; } ...@@ -1551,28 +1629,28 @@ body { padding-bottom: 70px; }
<h3>Example</h3> <h3>Example</h3>
<div class="bs-example"> <div class="bs-example">
<h1>Example heading <span class="label">New</span></h1> <h1>Example heading <span class="label label-default">New</span></h1>
<h2>Example heading <span class="label">New</span></h2> <h2>Example heading <span class="label label-default">New</span></h2>
<h3>Example heading <span class="label">New</span></h3> <h3>Example heading <span class="label label-default">New</span></h3>
<h4>Example heading <span class="label">New</span></h4> <h4>Example heading <span class="label label-default">New</span></h4>
<h5>Example heading <span class="label">New</span></h5> <h5>Example heading <span class="label label-default">New</span></h5>
<h6>Example heading <span class="label">New</span></h6> <h6>Example heading <span class="label label-default">New</span></h6>
</div> </div>
{% highlight html %} {% highlight html %}
<h3>Example heading <span class="label">New</span></h3> <h3>Example heading <span class="label label-default">New</span></h3>
{% endhighlight %} {% endhighlight %}
<h3>Available variations</h3> <h3>Available variations</h3>
<p>Add any of the below mentioned modifier classes to change the appearance of a label.</p> <p>Add any of the below mentioned modifier classes to change the appearance of a label.</p>
<div class="bs-example"> <div class="bs-example">
<span class="label">Default</span> <span class="label label-default">Default</span>
<span class="label label-success">Success</span> <span class="label label-success">Success</span>
<span class="label label-warning">Warning</span> <span class="label label-warning">Warning</span>
<span class="label label-danger">Danger</span> <span class="label label-danger">Danger</span>
<span class="label label-info">Info</span> <span class="label label-info">Info</span>
</div> </div>
{% highlight html %} {% highlight html %}
<span class="label">Default</span> <span class="label label-default">Default</span>
<span class="label label-success">Success</span> <span class="label label-success">Success</span>
<span class="label label-warning">Warning</span> <span class="label label-warning">Warning</span>
<span class="label label-danger">Danger</span> <span class="label label-danger">Danger</span>
...@@ -1659,14 +1737,14 @@ body { padding-bottom: 70px; } ...@@ -1659,14 +1737,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 %}
...@@ -1694,7 +1772,7 @@ body { padding-bottom: 70px; } ...@@ -1694,7 +1772,7 @@ body { padding-bottom: 70px; }
</div> </div>
<p class="lead">Extend Bootstrap's <a href="../css/#grid">grid system</a> with the thumbnail component to easily display grids of images, videos, text, and more.</p> <p class="lead">Extend Bootstrap's <a href="../css/#grid">grid system</a> with the thumbnail component to easily display grids of images, videos, text, and more.</p>
<h3>Default thumbnails</h3> <h3 id="thumbnails-default">Default thumbnails</h3>
<p>By default, Bootstrap's thumbnails are designed to showcase linked images with minimal required markup.</p> <p>By default, Bootstrap's thumbnails are designed to showcase linked images with minimal required markup.</p>
<div class="bs-example"> <div class="bs-example">
<div class="row"> <div class="row">
...@@ -1731,7 +1809,7 @@ body { padding-bottom: 70px; } ...@@ -1731,7 +1809,7 @@ body { padding-bottom: 70px; }
</div> </div>
{% endhighlight %} {% endhighlight %}
<h3>Custom content thumbnails</h3> <h3 id="thumbnails-custom-content">Custom content thumbnails</h3>
<p>With a bit of extra markup, it's possible to add any kind of HTML content like headings, paragraphs, or buttons into thumbnails.</p> <p>With a bit of extra markup, it's possible to add any kind of HTML content like headings, paragraphs, or buttons into thumbnails.</p>
<div class="bs-example"> <div class="bs-example">
<div class="row"> <div class="row">
...@@ -1813,23 +1891,6 @@ body { padding-bottom: 70px; } ...@@ -1813,23 +1891,6 @@ body { padding-bottom: 70px; }
<button type="button" class="close" data-dismiss="alert">&times;</button> <button type="button" class="close" data-dismiss="alert">&times;</button>
<strong>Warning!</strong> Best check yo self, you're not looking too good. <strong>Warning!</strong> Best check yo self, you're not looking too good.
</div> </div>
{% endhighlight %}
<h3 id="alerts-block">Block alerts</h3>
<p>For longer messages, increase the padding on the top and bottom of the alert wrapper by adding <code>.alert-block</code>.</p>
<div class="bs-example">
<div class="alert alert-block">
<button type="button" class="close" data-dismiss="alert">&times;</button>
<h4>Warning!</h4>
<p>Best check yo self, you're not looking too good. Nulla vitae elit libero, a pharetra augue. Praesent commodo cursus magna, vel scelerisque nisl consectetur et.</p>
</div>
</div>
{% highlight html %}
<div class="alert alert-block">
<button type="button" class="close" data-dismiss="alert">&times;</button>
<h4>Warning!</h4>
<p>...</p>
</div>
{% endhighlight %} {% endhighlight %}
<h3 id="alerts-alternatives">Contextual alternatives</h3> <h3 id="alerts-alternatives">Contextual alternatives</h3>
...@@ -2016,7 +2077,7 @@ body { padding-bottom: 70px; } ...@@ -2016,7 +2077,7 @@ body { padding-bottom: 70px; }
</div> </div>
<p class="lead">Abstract object styles for building various types of components (like blog comments, Tweets, etc) that feature a left- or right-aligned image alongside textual content.</p> <p class="lead">Abstract object styles for building various types of components (like blog comments, Tweets, etc) that feature a left- or right-aligned image alongside textual content.</p>
<h3>Default example</h3> <h3 id="media-default">Default media</h3>
<p>The default media allow to float a media object (images, video, audio) to the left or right of a content block.</p> <p>The default media allow to float a media object (images, video, audio) to the left or right of a content block.</p>
<div class="bs-example"> <div class="bs-example">
<div class="media"> <div class="media">
...@@ -2059,7 +2120,7 @@ body { padding-bottom: 70px; } ...@@ -2059,7 +2120,7 @@ body { padding-bottom: 70px; }
</div> </div>
{% endhighlight %} {% endhighlight %}
<h3>Media list</h3> <h3 id="media-list">Media list</h3>
<p>With a bit of extra markup, you can use media inside list (useful for comment threads or articles lists).</p> <p>With a bit of extra markup, you can use media inside list (useful for comment threads or articles lists).</p>
<div class="bs-example"> <div class="bs-example">
<ul class="media-list"> <ul class="media-list">
...@@ -2367,7 +2428,7 @@ body { padding-bottom: 70px; } ...@@ -2367,7 +2428,7 @@ body { padding-bottom: 70px; }
<p>Some default panel content here. Nulla vitae elit libero, a pharetra augue. Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nullam id dolor id nibh ultricies vehicula ut id elit.</p> <p>Some default panel content here. Nulla vitae elit libero, a pharetra augue. Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nullam id dolor id nibh ultricies vehicula ut id elit.</p>
<!-- List group --> <!-- List group -->
<ul class="list-group list-group-flush"> <ul class="list-group">
<li class="list-group-item">Cras justo odio</li> <li class="list-group-item">Cras justo odio</li>
<li class="list-group-item">Dapibus ac facilisis in</li> <li class="list-group-item">Dapibus ac facilisis in</li>
<li class="list-group-item">Morbi leo risus</li> <li class="list-group-item">Morbi leo risus</li>
...@@ -2383,7 +2444,7 @@ body { padding-bottom: 70px; } ...@@ -2383,7 +2444,7 @@ body { padding-bottom: 70px; }
<p>...</p> <p>...</p>
<!-- List group --> <!-- List group -->
<ul class="list-group list-group-flush"> <ul class="list-group">
<li class="list-group-item">Cras justo odio</li> <li class="list-group-item">Cras justo odio</li>
<li class="list-group-item">Dapibus ac facilisis in</li> <li class="list-group-item">Dapibus ac facilisis in</li>
<li class="list-group-item">Morbi leo risus</li> <li class="list-group-item">Morbi leo risus</li>
...@@ -2419,20 +2480,20 @@ body { padding-bottom: 70px; } ...@@ -2419,20 +2480,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>
...@@ -34,7 +34,7 @@ base_url: "../" ...@@ -34,7 +34,7 @@ base_url: "../"
<h3 id="overview-responsive-images">Responsive images</h3> <h3 id="overview-responsive-images">Responsive images</h3>
<p>Images in Bootstrap 3 can be made responsive-friendly via the addition of the <code>.img-responsive</code> class. This applies <code>max-width: 100%;</code> and <code>height: auto;</code> to the image so that it scales nicely to the parent element.</p> <p>Images in Bootstrap 3 can be made responsive-friendly via the addition of the <code>.img-responsive</code> class. This applies <code>max-width: 100%;</code> and <code>height: auto;</code> to the image so that it scales nicely to the parent element.</p>
{% highlight html %} {% highlight html %}
<img src="..." class="img-responsive" alt="Reponsive image"> <img src="..." class="img-responsive" alt="Responsive image">
{% endhighlight %} {% endhighlight %}
<h3 id="overview-type-links">Typography and links</h3> <h3 id="overview-type-links">Typography and links</h3>
...@@ -69,7 +69,7 @@ base_url: "../" ...@@ -69,7 +69,7 @@ base_url: "../"
</div> </div>
<p class="lead">With the launch of Bootstrap 3, icons have been moved to a <a href="https://github.com/twbs/bootstrap-glyphicons">separate repository</a>. This keeps the primary project as lean as possible, makes it easier for folks to swap icon libraries, and makes Glyphicons icon fonts more readily available to more people outside Bootstrap.</p> <p class="lead">With the launch of Bootstrap 3, icons have been moved to a <a href="https://github.com/twbs/bootstrap-glyphicons">separate repository</a>. This keeps the primary project as lean as possible, makes it easier for folks to swap icon libraries, and makes Glyphicons icon fonts more readily available to more people outside Bootstrap.</p>
<p class="lead"> <p class="lead">
<a href="http://glyphicons.getbootstrap.com/" class="btn btn-default btn-large">Visit Glyphicons for Bootstrap</a> or <a href="https://github.com/twbs/bootstrap-glyphicons">download from GitHub</a> <a href="http://glyphicons.getbootstrap.com/" class="btn btn-default btn-lg">Visit Glyphicons for Bootstrap</a> or <a href="https://github.com/twbs/bootstrap-glyphicons">download from GitHub</a>
</p> </p>
</div> </div>
...@@ -91,7 +91,7 @@ base_url: "../" ...@@ -91,7 +91,7 @@ base_url: "../"
<tr> <tr>
<th></th> <th></th>
<th> <th>
Tiny devices Extra small devices
<small>Phones (&lt;768px)</small> <small>Phones (&lt;768px)</small>
</th> </th>
<th> <th>
...@@ -148,8 +148,8 @@ base_url: "../" ...@@ -148,8 +148,8 @@ base_url: "../"
</tr> </tr>
<tr> <tr>
<th>Offsets</th> <th>Offsets</th>
<td colspan="2" class="text-muted">N/A</td> <td colspan="1" class="text-muted">N/A</td>
<td colspan="2">Yes</td> <td colspan="3">Yes</td>
</tr> </tr>
<tr> <tr>
<th>Column ordering</th> <th>Column ordering</th>
...@@ -263,32 +263,32 @@ base_url: "../" ...@@ -263,32 +263,32 @@ base_url: "../"
<p>Build on the previous example by creating even more dynamic and powerful layouts with tablet <code>.col-sm-*</code> classes.</p> <p>Build on the previous example by creating even more dynamic and powerful layouts with tablet <code>.col-sm-*</code> classes.</p>
<div class="bs-docs-grid"> <div class="bs-docs-grid">
<div class="row show-grid"> <div class="row show-grid">
<div class="col-12 col-sm-8 col-lg-8">.col-12 .col-lg-8</div> <div class="col-12 col-sm-8 col-lg-8">.col-12 .col-sm-8 .col-lg-8</div>
<div class="col-6 col-sm-4 col-lg-4">.col-6 .col-lg-4</div> <div class="col-6 col-sm-4 col-lg-4">.col-6 .col-sm-4 .col-lg-4</div>
</div> </div>
<div class="row show-grid"> <div class="row show-grid">
<div class="col-6 col-sm-4 col-lg-4">.col-6 .col-lg-4</div> <div class="col-6 col-sm-4 col-lg-4">.col-6 .col-sm-4 .col-lg-4</div>
<div class="col-6 col-sm-4 col-lg-4">.col-6 .col-lg-4</div> <div class="col-6 col-sm-4 col-lg-4">.col-6 .col-sm-4 .col-lg-4</div>
<div class="col-6 col-sm-4 col-lg-4">.col-6 .col-lg-4</div> <div class="col-6 col-sm-4 col-lg-4">.col-6 .col-sm-4 .col-lg-4</div>
</div> </div>
<div class="row show-grid"> <div class="row show-grid">
<div class="col-6 col-sm-6 col-lg-6">.col-6 .col-lg-6</div> <div class="col-6 col-sm-6 col-lg-6">.col-6 .col-sm-6 .col-lg-6</div>
<div class="col-6 col-sm-6 col-lg-6">.col-6 .col-lg-6</div> <div class="col-6 col-sm-6 col-lg-6">.col-6 .col-sm-6 .col-lg-6</div>
</div> </div>
</div> </div>
{% highlight html %} {% highlight html %}
<div class="row"> <div class="row">
<div class="col-12 col-sm-8 col-lg-8">.col-12 .col-lg-8</div> <div class="col-12 col-sm-8 col-lg-8">.col-12 .col-sm-8 .col-lg-8</div>
<div class="col-6 col-sm-4 col-lg-4">.col-6 .col-lg-4</div> <div class="col-6 col-sm-4 col-lg-4">.col-6 .col-sm-4 .col-lg-4</div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-6 col-sm-4 col-lg-4">.col-6 .col-lg-4</div> <div class="col-6 col-sm-4 col-lg-4">.col-6 .col-sm-4 .col-lg-4</div>
<div class="col-6 col-sm-4 col-lg-4">.col-6 .col-lg-4</div> <div class="col-6 col-sm-4 col-lg-4">.col-6 .col-sm-4 .col-lg-4</div>
<div class="col-6 col-sm-4 col-lg-4">.col-6 .col-lg-4</div> <div class="col-6 col-sm-4 col-lg-4">.col-6 .col-sm-4 .col-lg-4</div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-6 col-sm-6 col-lg-6">.col-6 .col-lg-6</div> <div class="col-6 col-sm-6 col-lg-6">.col-6 .col-sm-6 .col-lg-6</div>
<div class="col-6 col-sm-6 col-lg-6">.col-6 .col-lg-6</div> <div class="col-6 col-sm-6 col-lg-6">.col-6 .col-sm-6 .col-lg-6</div>
</div> </div>
{% endhighlight %} {% endhighlight %}
...@@ -299,31 +299,31 @@ base_url: "../" ...@@ -299,31 +299,31 @@ base_url: "../"
</div> </div>
<h3 id="grid-offsetting">Offsetting columns</h3> <h3 id="grid-offsetting">Offsetting columns</h3>
<p>Move columns to the right using <code>.col-offset-*</code> classes. These classes increase the left margin of a column by <code>*</code> columns. For example, <code>.col-offset-4</code> moves <code>.col-lg-4</code> over four columns.</p> <p>Move columns to the right using <code>.col-lg-offset-*</code> classes. These classes increase the left margin of a column by <code>*</code> columns. For example, <code>.col-lg-offset-4</code> moves <code>.col-lg-4</code> over four columns.</p>
<div class="bs-docs-grid"> <div class="bs-docs-grid">
<div class="row show-grid"> <div class="row show-grid">
<div class="col-lg-4">4</div> <div class="col-lg-4">4</div>
<div class="col-lg-4 col-offset-4">4 offset 4</div> <div class="col-lg-4 col-lg-offset-4">4 offset 4</div>
</div><!-- /row --> </div><!-- /row -->
<div class="row show-grid"> <div class="row show-grid">
<div class="col-lg-3 col-offset-3">3 offset 3</div> <div class="col-lg-3 col-lg-offset-3">3 offset 3</div>
<div class="col-lg-3 col-offset-3">3 offset 3</div> <div class="col-lg-3 col-lg-offset-3">3 offset 3</div>
</div><!-- /row --> </div><!-- /row -->
<div class="row show-grid"> <div class="row show-grid">
<div class="col-lg-6 col-offset-3">6 offset 3</div> <div class="col-lg-6 col-lg-offset-3">6 offset 3</div>
</div><!-- /row --> </div><!-- /row -->
</div> </div>
{% highlight html %} {% highlight html %}
<div class="row"> <div class="row">
<div class="col-lg-4">...</div> <div class="col-lg-4">...</div>
<div class="col-lg-4 col-offset-4">...</div> <div class="col-lg-4 col-lg-offset-4">...</div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-lg-3 col-offset-3">3 offset 3</div> <div class="col-lg-3 col-lg-offset-3">3 offset 3</div>
<div class="col-lg-3 col-offset-3">3 offset 3</div> <div class="col-lg-3 col-lg-offset-3">3 offset 3</div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-lg-6 col-offset-3">...</div> <div class="col-lg-6 col-lg-offset-3">...</div>
</div> </div>
{% endhighlight %} {% endhighlight %}
...@@ -360,16 +360,16 @@ base_url: "../" ...@@ -360,16 +360,16 @@ base_url: "../"
{% endhighlight %} {% endhighlight %}
<h3 id="grid-column-ordering">Column ordering</h3> <h3 id="grid-column-ordering">Column ordering</h3>
<p>Easily change the order of our built-in grid columns with <code>.col-push-*</code> and <code>.col-pull-*</code> modifier classes.</p> <p>Easily change the order of our built-in grid columns with <code>.col-lg-push-*</code> and <code>.col-lg-pull-*</code> modifier classes.</p>
<div class="row show-grid"> <div class="row show-grid">
<div class="col-lg-9 col-push-3">9</div> <div class="col-lg-9 col-lg-push-3">9</div>
<div class="col-lg-3 col-pull-9">3</div> <div class="col-lg-3 col-lg-pull-9">3</div>
</div> </div>
{% highlight html %} {% highlight html %}
<div class="row"> <div class="row">
<div class="col-lg-9 col-push-3">9</div> <div class="col-lg-9 col-lg-push-3">9</div>
<div class="col-lg-3 col-pull-9">3</div> <div class="col-lg-3 col-lg-pull-9">3</div>
</div> </div>
{% endhighlight %} {% endhighlight %}
...@@ -807,7 +807,7 @@ base_url: "../" ...@@ -807,7 +807,7 @@ base_url: "../"
{% endhighlight %} {% endhighlight %}
<h4>Horizontal description</h4> <h4>Horizontal description</h4>
<p>Make terms and descriptions in <code>&lt;dl&gt;</code> line up side-by-side.</p> <p>Make terms and descriptions in <code>&lt;dl&gt;</code> line up side-by-side. Starts off stacked like default <code>&lt;dl&gt;</code>s, but when the navbar expands, so do these.</p>
<div class="bs-example"> <div class="bs-example">
<dl class="dl-horizontal"> <dl class="dl-horizontal">
<dt>Description lists</dt> <dt>Description lists</dt>
...@@ -1257,10 +1257,7 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline. ...@@ -1257,10 +1257,7 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline.
{% endhighlight %} {% endhighlight %}
<h2>Optional layouts</h2> <h3 id="forms-inline">Inline form</h2>
<p>Included with Bootstrap are optional form layouts for common use cases.</p>
<h3 id="forms-inline">Inline form</h3>
<p>Add <code>.form-inline</code> for left-aligned and inline-block controls for a compact layout.</p> <p>Add <code>.form-inline</code> for left-aligned and inline-block controls for a compact layout.</p>
<div class="bs-callout bs-callout-danger"> <div class="bs-callout bs-callout-danger">
<h4>Requires custom widths</h4> <h4>Requires custom widths</h4>
...@@ -1289,7 +1286,7 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline. ...@@ -1289,7 +1286,7 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline.
</form> </form>
{% endhighlight %} {% endhighlight %}
<h3 id="forms-horizontal">Horizontal form</h3> <h2 id="forms-horizontal">Horizontal form</h2>
<p>Use Bootstrap's predefined grid classes to align labels and groups of form controls in a horizontal layout by adding <code>.form-horizontal</code> to the form. Doing so changes <code>.form-group</code>s to behave as grid rows, so no need for <code>.row</code>.</p> <p>Use Bootstrap's predefined grid classes to align labels and groups of form controls in a horizontal layout by adding <code>.form-horizontal</code> to the form. Doing so changes <code>.form-group</code>s to behave as grid rows, so no need for <code>.row</code>.</p>
<form class="bs-example form-horizontal"> <form class="bs-example form-horizontal">
<div class="form-group"> <div class="form-group">
...@@ -1302,11 +1299,19 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline. ...@@ -1302,11 +1299,19 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline.
<label for="inputPassword" class="col-lg-2 control-label">Password</label> <label for="inputPassword" class="col-lg-2 control-label">Password</label>
<div class="col-lg-10"> <div class="col-lg-10">
<input type="password" class="form-control" id="inputPassword" placeholder="Password"> <input type="password" class="form-control" id="inputPassword" placeholder="Password">
</div>
</div>
<div class="form-group">
<div class="col-lg-offset-2 col-lg-10">
<div class="checkbox"> <div class="checkbox">
<label> <label>
<input type="checkbox"> Remember me <input type="checkbox"> Remember me
</label> </label>
</div> </div>
</div>
</div>
<div class="form-group">
<div class="col-lg-offset-2 col-lg-10">
<button type="submit" class="btn btn-default">Sign in</button> <button type="submit" class="btn btn-default">Sign in</button>
</div> </div>
</div> </div>
...@@ -1323,11 +1328,19 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline. ...@@ -1323,11 +1328,19 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline.
<label for="inputPassword" class="col-lg-2 control-label">Password</label> <label for="inputPassword" class="col-lg-2 control-label">Password</label>
<div class="col-lg-10"> <div class="col-lg-10">
<input type="password" class="form-control" id="inputPassword" placeholder="Password"> <input type="password" class="form-control" id="inputPassword" placeholder="Password">
</div>
</div>
<div class="form-group">
<div class="col-lg-offset-2 col-lg-10">
<div class="checkbox"> <div class="checkbox">
<label> <label>
<input type="checkbox"> Remember me <input type="checkbox"> Remember me
</label> </label>
</div> </div>
</div>
</div>
<div class="form-group">
<div class="col-lg-offset-2 col-lg-10">
<button type="submit" class="btn btn-default">Sign in</button> <button type="submit" class="btn btn-default">Sign in</button>
</div> </div>
</div> </div>
...@@ -1469,6 +1482,39 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline. ...@@ -1469,6 +1482,39 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline.
{% endhighlight %} {% endhighlight %}
<h2 id="forms-controls-static">Static text in horizontal forms</h2>
<p>When you need to place regular, static text next to a form label within a horizontal form, use the <code>.form-control-static</code> class on a <code>&lt;p&gt;</code>.</p>
<form class="bs-example form-horizontal">
<div class="form-group">
<label for="inputEmail" class="col-lg-2 control-label">Email</label>
<div class="col-lg-10">
<p class="form-control-static">email@example.com</p>
</div>
</div>
<div class="form-group">
<label for="inputPassword" class="col-lg-2 control-label">Password</label>
<div class="col-lg-10">
<input type="password" class="form-control" id="inputPassword" placeholder="Password">
</div>
</div>
</form>
{% highlight html %}
<form class="form-horizontal">
<div class="form-group">
<label for="inputEmail2" class="col-lg-2 control-label">Email</label>
<div class="col-lg-10">
<p class="form-control-static">email@example.com</p>
</div>
</div>
<div class="form-group">
<label for="inputPassword2" class="col-lg-2 control-label">Password</label>
<div class="col-lg-10">
<input type="password" class="form-control" id="inputPassword2" placeholder="Password">
</div>
</div>
</form>
{% endhighlight %}
<h2 id="forms-control-states">Form control states</h2> <h2 id="forms-control-states">Form control states</h2>
<p>Provide feedback to users or visitors with basic feedback states on form controls and labels.</p> <p>Provide feedback to users or visitors with basic feedback states on form controls and labels.</p>
...@@ -1504,12 +1550,18 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline. ...@@ -1504,12 +1550,18 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline.
<p>While Bootstrap will apply these styles in all browsers, Internet Explorer 9 and below don't actually support the <code>disabled</code> attribute on a <code>&lt;fieldset&gt;</code>. Use custom JavaScript to disable the fieldset in these browsers.</p> <p>While Bootstrap will apply these styles in all browsers, Internet Explorer 9 and below don't actually support the <code>disabled</code> attribute on a <code>&lt;fieldset&gt;</code>. Use custom JavaScript to disable the fieldset in these browsers.</p>
</div> </div>
<form class="bs-example form-inline"> <form class="bs-example">
<fieldset disabled> <fieldset disabled>
<input type="text" class="form-control" placeholder="Disabled input"> <div class="form-group">
<select class="form-control"> <label for="disabledInput">Disabled input</label>
<option>Disabled select</option> <input type="text" id="disabledInput" class="form-control" placeholder="Disabled input">
</select> </div>
<div class="form-group">
<label for="disabledInput">Disabled select menu</label>
<select id="disabledSelect" class="form-control">
<option>Disabled select</option>
</select>
</div>
<div class="checkbox"> <div class="checkbox">
<label> <label>
<input type="checkbox"> Can't check this <input type="checkbox"> Can't check this
...@@ -1521,10 +1573,16 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline. ...@@ -1521,10 +1573,16 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline.
{% highlight html %} {% highlight html %}
<form class="form-inline"> <form class="form-inline">
<fieldset disabled> <fieldset disabled>
<input type="text" class="form-control" placeholder="Disabled input"> <div class="form-group">
<select class="form-control"> <label for="disabledInput">Disabled input</label>
<option>Disabled select</option> <input type="text" id="disabledInput" class="form-control" placeholder="Disabled input">
</select> </div>
<div class="form-group">
<label for="disabledInput">Disabled select menu</label>
<select id="disabledSelect" class="form-control">
<option>Disabled select</option>
</select>
</div>
<div class="checkbox"> <div class="checkbox">
<label> <label>
<input type="checkbox"> Can't check this <input type="checkbox"> Can't check this
...@@ -1536,7 +1594,7 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline. ...@@ -1536,7 +1594,7 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline.
{% endhighlight %} {% endhighlight %}
<h3 id="forms-validation">Validation states</h3> <h3 id="forms-validation">Validation states</h3>
<p>Bootstrap includes validation styles for error, warning, and success states on from controls. To use, add <code>.has-warning</code>, <code>.has-error</code>, or <code>.has-success</code> to the parent element. Any <code>.control-label</code>, <code>.form-control</code>, and <code>.help-block</code> within that element will receive the validation styles.</li> <p>Bootstrap includes validation styles for error, warning, and success states on form controls. To use, add <code>.has-warning</code>, <code>.has-error</code>, or <code>.has-success</code> to the parent element. Any <code>.control-label</code>, <code>.form-control</code>, and <code>.help-block</code> within that element will receive the validation styles.</li>
<form class="bs-example"> <form class="bs-example">
<div class="form-group has-warning"> <div class="form-group has-warning">
...@@ -1569,35 +1627,35 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline. ...@@ -1569,35 +1627,35 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline.
<h2 id="forms-control-sizes">Control sizing</h2> <h2 id="forms-control-sizes">Control sizing</h2>
<p>Set heights using classes like <code>.input-large</code>, and set widths using grid column classes like <code>.col-lg-*</code>.</p> <p>Set heights using classes like <code>.input-lg</code>, and set widths using grid column classes like <code>.col-lg-*</code>.</p>
<h3>Height sizing</h3> <h3>Height sizing</h3>
<p>Create larger or smaller form controls that match button sizes.</p> <p>Create larger or smaller form controls that match button sizes.</p>
<form class="bs-example bs-example-control-sizing"> <form class="bs-example bs-example-control-sizing">
<div class="controls docs-input-sizes"> <div class="controls docs-input-sizes">
<input class="form-control input-large" type="text" placeholder=".input-large"> <input class="form-control input-lg" type="text" placeholder=".input-lg">
<input type="text" class="form-control" placeholder="Default input"> <input type="text" class="form-control" placeholder="Default input">
<input class="form-control input-small" type="text" placeholder=".input-small"> <input class="form-control input-sm" type="text" placeholder=".input-sm">
<select class="form-control input-large"> <select class="form-control input-lg">
<option value="">.input-large</option> <option value="">.input-lg</option>
</select> </select>
<select class="form-control"> <select class="form-control">
<option value="">Default select</option> <option value="">Default select</option>
</select> </select>
<select class="form-control input-small"> <select class="form-control input-sm">
<option value="">.input-small</option> <option value="">.input-sm</option>
</select> </select>
</div> </div>
</form> </form>
{% highlight html %} {% highlight html %}
<input class="form-control input-large" type="text" placeholder=".input-large"> <input class="form-control input-lg" type="text" placeholder=".input-lg">
<input class="form-control" type="text" placeholder="Default input"> <input class="form-control" type="text" placeholder="Default input">
<input class="form-control input-small" type="text" placeholder=".input-small"> <input class="form-control input-sm" type="text" placeholder=".input-sm">
<select class="form-control input-large">...</select> <select class="form-control input-lg">...</select>
<select class="form-control">...</select> <select class="form-control">...</select>
<select class="form-control input-small">...</select> <select class="form-control input-sm">...</select>
{% endhighlight %} {% endhighlight %}
<h3>Column sizing</h3> <h3>Column sizing</h3>
...@@ -1633,10 +1691,10 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline. ...@@ -1633,10 +1691,10 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline.
<p>Block level help text for form controls.</p> <p>Block level help text for form controls.</p>
<form class="bs-example"> <form class="bs-example">
<input type="text" class="form-control"> <input type="text" class="form-control">
<span class="help-block">A longer block of help text that breaks onto a new line and may extend beyond one line.</span> <span class="help-block">A block of help text that breaks onto a new line and may extend beyond one line.</span>
</form> </form>
{% highlight html %} {% highlight html %}
<span class="help-block">A longer block of help text that breaks onto a new line and may extend beyond one line.</span> <span class="help-block">A block of help text that breaks onto a new line and may extend beyond one line.</span>
{% endhighlight %} {% endhighlight %}
</div> </div>
...@@ -1685,54 +1743,54 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline. ...@@ -1685,54 +1743,54 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline.
{% endhighlight %} {% endhighlight %}
<h2 id="buttons-sizes">Button sizes</h2> <h2 id="buttons-sizes">Button sizes</h2>
<p>Fancy larger or smaller buttons? Add <code>.btn-large</code> or <code>.btn-small</code> for additional sizes.</p> <p>Fancy larger or smaller buttons? Add <code>.btn-lg</code>, <code>.btn-sm</code>, or <code>.btn-xs</code> for additional sizes.</p>
<div class="bs-example"> <div class="bs-example">
<p> <p>
<button type="button" class="btn btn-primary btn-large">Large button</button> <button type="button" class="btn btn-primary btn-lg">Large button</button>
<button type="button" class="btn btn-default btn-large">Large button</button> <button type="button" class="btn btn-default btn-lg">Large button</button>
</p> </p>
<p> <p>
<button type="button" class="btn btn-primary">Default button</button> <button type="button" class="btn btn-primary">Default button</button>
<button type="button" class="btn btn-default">Default button</button> <button type="button" class="btn btn-default">Default button</button>
</p> </p>
<p> <p>
<button type="button" class="btn btn-primary btn-small">Small button</button> <button type="button" class="btn btn-primary btn-sm">Small button</button>
<button type="button" class="btn btn-default btn-small">Small button</button> <button type="button" class="btn btn-default btn-sm">Small button</button>
</p> </p>
<p> <p>
<button type="button" class="btn btn-primary btn-mini">Mini button</button> <button type="button" class="btn btn-primary btn-xs">Extra small button</button>
<button type="button" class="btn btn-default btn-mini">Mini button</button> <button type="button" class="btn btn-default btn-xs">Extra small button</button>
</p> </p>
</div> </div>
{% highlight html %} {% highlight html %}
<p> <p>
<button type="button" class="btn btn-primary btn-large">Large button</button> <button type="button" class="btn btn-primary btn-lg">Large button</button>
<button type="button" class="btn btn-default btn-large">Large button</button> <button type="button" class="btn btn-default btn-lg">Large button</button>
</p> </p>
<p> <p>
<button type="button" class="btn btn-primary">Default button</button> <button type="button" class="btn btn-primary">Default button</button>
<button type="button" class="btn btn-default">Default button</button> <button type="button" class="btn btn-default">Default button</button>
</p> </p>
<p> <p>
<button type="button" class="btn btn-primary btn-small">Small button</button> <button type="button" class="btn btn-primary btn-sm">Small button</button>
<button type="button" class="btn btn-default btn-small">Small button</button> <button type="button" class="btn btn-default btn-sm">Small button</button>
</p> </p>
<p> <p>
<button type="button" class="btn btn-primary btn-mini">Mini button</button> <button type="button" class="btn btn-primary btn-xs">Extra small button</button>
<button type="button" class="btn btn-default btn-mini">Mini button</button> <button type="button" class="btn btn-default btn-xs">Extra small button</button>
</p> </p>
{% endhighlight %} {% endhighlight %}
<p>Create block level buttons&mdash;those that span the full width of a parent&mdash; by adding <code>.btn-block</code>.</p> <p>Create block level buttons&mdash;those that span the full width of a parent&mdash; by adding <code>.btn-block</code>.</p>
<div class="bs-example"> <div class="bs-example">
<div class="well" style="max-width: 400px; margin: 0 auto 10px;"> <div class="well" style="max-width: 400px; margin: 0 auto 10px;">
<button type="button" class="btn btn-primary btn-large btn-block">Block level button</button> <button type="button" class="btn btn-primary btn-lg btn-block">Block level button</button>
<button type="button" class="btn btn-default btn-large btn-block">Block level button</button> <button type="button" class="btn btn-default btn-lg btn-block">Block level button</button>
</div> </div>
</div> </div>
{% highlight html %} {% highlight html %}
<button type="button" class="btn btn-primary btn-large btn-block">Block level button</button> <button type="button" class="btn btn-primary btn-lg btn-block">Block level button</button>
<button type="button" class="btn btn-default btn-large btn-block">Block level button</button> <button type="button" class="btn btn-default btn-lg btn-block">Block level button</button>
{% endhighlight %} {% endhighlight %}
...@@ -1742,12 +1800,12 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline. ...@@ -1742,12 +1800,12 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline.
<h3>Button element</h3> <h3>Button element</h3>
<p>Add the <code>disabled</code> attribute to <code>&lt;button&gt;</code> buttons.</p> <p>Add the <code>disabled</code> attribute to <code>&lt;button&gt;</code> buttons.</p>
<p class="bs-example"> <p class="bs-example">
<button type="button" class="btn btn-primary btn-large" disabled="disabled">Primary button</button> <button type="button" class="btn btn-primary btn-lg" disabled="disabled">Primary button</button>
<button type="button" class="btn btn-default btn-large" disabled="disabled">Button</button> <button type="button" class="btn btn-default btn-lg" disabled="disabled">Button</button>
</p> </p>
{% highlight html %} {% highlight html %}
<button type="button" class="btn btn-large btn-primary" disabled="disabled">Primary button</button> <button type="button" class="btn btn-lg btn-primary" disabled="disabled">Primary button</button>
<button type="button" class="btn btn-default btn-large" disabled="disabled">Button</button> <button type="button" class="btn btn-default btn-lg" disabled="disabled">Button</button>
{% endhighlight %} {% endhighlight %}
<div class="bs-callout bs-callout-danger"> <div class="bs-callout bs-callout-danger">
...@@ -1758,12 +1816,12 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline. ...@@ -1758,12 +1816,12 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline.
<h3>Anchor element</h3> <h3>Anchor element</h3>
<p>Add the <code>.disabled</code> class to <code>&lt;a&gt;</code> buttons.</p> <p>Add the <code>.disabled</code> class to <code>&lt;a&gt;</code> buttons.</p>
<p class="bs-example"> <p class="bs-example">
<a href="#" class="btn btn-primary btn-large disabled">Primary link</a> <a href="#" class="btn btn-primary btn-lg disabled">Primary link</a>
<a href="#" class="btn btn-default btn-large disabled">Link</a> <a href="#" class="btn btn-default btn-lg disabled">Link</a>
</p> </p>
{% highlight html %} {% highlight html %}
<a href="#" class="btn btn-primary btn-large disabled">Primary link</a> <a href="#" class="btn btn-primary btn-lg disabled">Primary link</a>
<a href="#" class="btn btn-default btn-large disabled">Link</a> <a href="#" class="btn btn-default btn-lg disabled">Link</a>
{% endhighlight %} {% endhighlight %}
<p> <p>
We use <code>.disabled</code> as a utility class here, similar to the common <code>.active</code> class, so no prefix is required. We use <code>.disabled</code> as a utility class here, similar to the common <code>.active</code> class, so no prefix is required.
...@@ -1908,8 +1966,8 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline. ...@@ -1908,8 +1966,8 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline.
<tr> <tr>
<th>Class</th> <th>Class</th>
<th>Small devices <small>Up to 768px</small></th> <th>Small devices <small>Up to 768px</small></th>
<th>Medium devices <small>768px to 979px</small></th> <th>Medium devices <small>768px to 991px</small></th>
<th>Large devices <small>980px and up</small></th> <th>Large devices <small>992px and up</small></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
......
...@@ -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">
...@@ -660,12 +660,21 @@ base_url: "../" ...@@ -660,12 +660,21 @@ base_url: "../"
</div> </div>
<h2 id="variables-alerts">Alerts</h2> <h2 id="variables-alerts">Alerts</h2>
<p>Define alert colors and border radius.</p> <p>Define alert colors, border radius, and padding.</p>
<h4>Border radius</h4> <h4>Border radius</h4>
<label>@alert-padding</label>
<input type="text" class="form-control" placeholder="15px">
<label>@alert-border-radius</label> <label>@alert-border-radius</label>
<input type="text" class="form-control" placeholder="@border-radius-base"> <input type="text" class="form-control" placeholder="@border-radius-base">
<div class="row"> <div class="row">
<div class="col-lg-6"> <div class="col-lg-6">
<h4>Default (Warning)</h4>
<label>@alert-text</label>
<input type="text" class="form-control" placeholder="@state-warning-text">
<label>@alert-bg</label>
<input type="text" class="form-control" placeholder="@state-warning-bg">
<label>@alert-border</label>
<input type="text" class="form-control" placeholder="@state-warning-border">
<h4>Success</h4> <h4>Success</h4>
<label>@alert-success-text</label> <label>@alert-success-text</label>
<input type="text" class="form-control" placeholder="@state-success-text"> <input type="text" class="form-control" placeholder="@state-success-text">
...@@ -673,13 +682,6 @@ base_url: "../" ...@@ -673,13 +682,6 @@ base_url: "../"
<input type="text" class="form-control" placeholder="@state-success-bg"> <input type="text" class="form-control" placeholder="@state-success-bg">
<label>@alert-success-border</label> <label>@alert-success-border</label>
<input type="text" class="form-control" placeholder="@state-success-border"> <input type="text" class="form-control" placeholder="@state-success-border">
<h4>Warning</h4>
<label>@alert-warning-text</label>
<input type="text" class="form-control" placeholder="@state-warning-text">
<label>@alert-warning-bg</label>
<input type="text" class="form-control" placeholder="@state-warning-bg">
<label>@alert-warning-border</label>
<input type="text" class="form-control" placeholder="@state-warning-border">
</div> </div>
<div class="col-lg-6"> <div class="col-lg-6">
<h4>Danger</h4> <h4>Danger</h4>
...@@ -710,6 +712,8 @@ base_url: "../" ...@@ -710,6 +712,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 +1443,7 @@ base_url: "../" ...@@ -1439,7 +1443,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>
......
...@@ -564,38 +564,35 @@ dd { ...@@ -564,38 +564,35 @@ dd {
margin-left: 0; margin-left: 0;
} }
.dl-horizontal dt { @media (min-width: 768px) {
float: left; .dl-horizontal dt {
width: 160px; float: left;
overflow: hidden; width: 160px;
clear: left; overflow: hidden;
text-align: right; clear: left;
text-overflow: ellipsis; text-align: right;
white-space: nowrap; text-overflow: ellipsis;
} white-space: nowrap;
}
.dl-horizontal dd { .dl-horizontal dd {
margin-left: 180px; margin-left: 180px;
} }
.dl-horizontal dd:before,
.dl-horizontal dd:before, .dl-horizontal dd:after {
.dl-horizontal dd:after { display: table;
display: table; content: " ";
content: " "; }
} .dl-horizontal dd:after {
clear: both;
.dl-horizontal dd:after { }
clear: both; .dl-horizontal dd:before,
} .dl-horizontal dd:after {
display: table;
.dl-horizontal dd:before, content: " ";
.dl-horizontal dd:after { }
display: table; .dl-horizontal dd:after {
content: " "; clear: both;
} }
.dl-horizontal dd:after {
clear: both;
} }
abbr[title], abbr[title],
...@@ -636,7 +633,6 @@ blockquote small:before { ...@@ -636,7 +633,6 @@ blockquote small:before {
} }
blockquote.pull-right { blockquote.pull-right {
float: right;
padding-right: 15px; padding-right: 15px;
padding-left: 0; padding-left: 0;
border-right: 5px solid #eeeeee; border-right: 5px solid #eeeeee;
...@@ -877,7 +873,7 @@ pre code { ...@@ -877,7 +873,7 @@ pre code {
width: 100%; width: 100%;
} }
@media (min-width: 768px) { @media (min-width: 768px) and (max-width: 991px) {
.container { .container {
max-width: 728px; max-width: 728px;
} }
...@@ -931,72 +927,105 @@ pre code { ...@@ -931,72 +927,105 @@ pre code {
.col-sm-12 { .col-sm-12 {
width: 100%; width: 100%;
} }
.col-push-1 { .col-sm-push-1 {
left: 8.333333333333332%; left: 8.333333333333332%;
} }
.col-push-2 { .col-sm-push-2 {
left: 16.666666666666664%; left: 16.666666666666664%;
} }
.col-push-3 { .col-sm-push-3 {
left: 25%; left: 25%;
} }
.col-push-4 { .col-sm-push-4 {
left: 33.33333333333333%; left: 33.33333333333333%;
} }
.col-push-5 { .col-sm-push-5 {
left: 41.66666666666667%; left: 41.66666666666667%;
} }
.col-push-6 { .col-sm-push-6 {
left: 50%; left: 50%;
} }
.col-push-7 { .col-sm-push-7 {
left: 58.333333333333336%; left: 58.333333333333336%;
} }
.col-push-8 { .col-sm-push-8 {
left: 66.66666666666666%; left: 66.66666666666666%;
} }
.col-push-9 { .col-sm-push-9 {
left: 75%; left: 75%;
} }
.col-push-10 { .col-sm-push-10 {
left: 83.33333333333334%; left: 83.33333333333334%;
} }
.col-push-11 { .col-sm-push-11 {
left: 91.66666666666666%; left: 91.66666666666666%;
} }
.col-pull-1 { .col-sm-pull-1 {
right: 8.333333333333332%; right: 8.333333333333332%;
} }
.col-pull-2 { .col-sm-pull-2 {
right: 16.666666666666664%; right: 16.666666666666664%;
} }
.col-pull-3 { .col-sm-pull-3 {
right: 25%; right: 25%;
} }
.col-pull-4 { .col-sm-pull-4 {
right: 33.33333333333333%; right: 33.33333333333333%;
} }
.col-pull-5 { .col-sm-pull-5 {
right: 41.66666666666667%; right: 41.66666666666667%;
} }
.col-pull-6 { .col-sm-pull-6 {
right: 50%; right: 50%;
} }
.col-pull-7 { .col-sm-pull-7 {
right: 58.333333333333336%; right: 58.333333333333336%;
} }
.col-pull-8 { .col-sm-pull-8 {
right: 66.66666666666666%; right: 66.66666666666666%;
} }
.col-pull-9 { .col-sm-pull-9 {
right: 75%; right: 75%;
} }
.col-pull-10 { .col-sm-pull-10 {
right: 83.33333333333334%; right: 83.33333333333334%;
} }
.col-pull-11 { .col-sm-pull-11 {
right: 91.66666666666666%; right: 91.66666666666666%;
} }
.col-sm-offset-1 {
margin-left: 8.333333333333332%;
}
.col-sm-offset-2 {
margin-left: 16.666666666666664%;
}
.col-sm-offset-3 {
margin-left: 25%;
}
.col-sm-offset-4 {
margin-left: 33.33333333333333%;
}
.col-sm-offset-5 {
margin-left: 41.66666666666667%;
}
.col-sm-offset-6 {
margin-left: 50%;
}
.col-sm-offset-7 {
margin-left: 58.333333333333336%;
}
.col-sm-offset-8 {
margin-left: 66.66666666666666%;
}
.col-sm-offset-9 {
margin-left: 75%;
}
.col-sm-offset-10 {
margin-left: 83.33333333333334%;
}
.col-sm-offset-11 {
margin-left: 91.66666666666666%;
}
} }
@media (min-width: 992px) { @media (min-width: 992px) {
...@@ -1053,37 +1082,103 @@ pre code { ...@@ -1053,37 +1082,103 @@ pre code {
.col-lg-12 { .col-lg-12 {
width: 100%; width: 100%;
} }
.col-offset-1 { .col-lg-push-1 {
left: 8.333333333333332%;
}
.col-lg-push-2 {
left: 16.666666666666664%;
}
.col-lg-push-3 {
left: 25%;
}
.col-lg-push-4 {
left: 33.33333333333333%;
}
.col-lg-push-5 {
left: 41.66666666666667%;
}
.col-lg-push-6 {
left: 50%;
}
.col-lg-push-7 {
left: 58.333333333333336%;
}
.col-lg-push-8 {
left: 66.66666666666666%;
}
.col-lg-push-9 {
left: 75%;
}
.col-lg-push-10 {
left: 83.33333333333334%;
}
.col-lg-push-11 {
left: 91.66666666666666%;
}
.col-lg-pull-1 {
right: 8.333333333333332%;
}
.col-lg-pull-2 {
right: 16.666666666666664%;
}
.col-lg-pull-3 {
right: 25%;
}
.col-lg-pull-4 {
right: 33.33333333333333%;
}
.col-lg-pull-5 {
right: 41.66666666666667%;
}
.col-lg-pull-6 {
right: 50%;
}
.col-lg-pull-7 {
right: 58.333333333333336%;
}
.col-lg-pull-8 {
right: 66.66666666666666%;
}
.col-lg-pull-9 {
right: 75%;
}
.col-lg-pull-10 {
right: 83.33333333333334%;
}
.col-lg-pull-11 {
right: 91.66666666666666%;
}
.col-lg-offset-1 {
margin-left: 8.333333333333332%; margin-left: 8.333333333333332%;
} }
.col-offset-2 { .col-lg-offset-2 {
margin-left: 16.666666666666664%; margin-left: 16.666666666666664%;
} }
.col-offset-3 { .col-lg-offset-3 {
margin-left: 25%; margin-left: 25%;
} }
.col-offset-4 { .col-lg-offset-4 {
margin-left: 33.33333333333333%; margin-left: 33.33333333333333%;
} }
.col-offset-5 { .col-lg-offset-5 {
margin-left: 41.66666666666667%; margin-left: 41.66666666666667%;
} }
.col-offset-6 { .col-lg-offset-6 {
margin-left: 50%; margin-left: 50%;
} }
.col-offset-7 { .col-lg-offset-7 {
margin-left: 58.333333333333336%; margin-left: 58.333333333333336%;
} }
.col-offset-8 { .col-lg-offset-8 {
margin-left: 66.66666666666666%; margin-left: 66.66666666666666%;
} }
.col-offset-9 { .col-lg-offset-9 {
margin-left: 75%; margin-left: 75%;
} }
.col-offset-10 { .col-lg-offset-10 {
margin-left: 83.33333333333334%; margin-left: 83.33333333333334%;
} }
.col-offset-11 { .col-lg-offset-11 {
margin-left: 91.66666666666666%; margin-left: 91.66666666666666%;
} }
} }
...@@ -1354,8 +1449,8 @@ input[type="number"]::-webkit-inner-spin-button { ...@@ -1354,8 +1449,8 @@ input[type="number"]::-webkit-inner-spin-button {
.form-control { .form-control {
display: block; display: block;
width: 100%; width: 100%;
height: 38px; height: 34px;
padding: 8px 12px; padding: 6px 12px;
font-size: 14px; font-size: 14px;
line-height: 1.428571429; line-height: 1.428571429;
color: #555555; color: #555555;
...@@ -1370,10 +1465,10 @@ input[type="number"]::-webkit-inner-spin-button { ...@@ -1370,10 +1465,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],
...@@ -1438,32 +1533,34 @@ textarea.form-control { ...@@ -1438,32 +1533,34 @@ textarea.form-control {
margin-left: 10px; margin-left: 10px;
} }
.input-large { .input-lg {
height: 56px; height: 45px;
padding: 14px 16px; padding: 10px 16px;
font-size: 18px; font-size: 18px;
line-height: 1.33;
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;
line-height: 1.5;
border-radius: 3px; border-radius: 3px;
} }
select.input-large { select.input-lg {
height: 56px; height: 45px;
line-height: 56px; 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;
} }
...@@ -1473,7 +1570,6 @@ textarea.input-small { ...@@ -1473,7 +1570,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);
...@@ -1497,7 +1593,6 @@ textarea.input-small { ...@@ -1497,7 +1593,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);
...@@ -1521,7 +1616,6 @@ textarea.input-small { ...@@ -1521,7 +1616,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);
...@@ -1539,6 +1633,11 @@ textarea.input-small { ...@@ -1539,6 +1633,11 @@ textarea.input-small {
border-color: #468847; border-color: #468847;
} }
.form-control-static {
padding-top: 6px;
margin-bottom: 0;
}
.help-block { .help-block {
display: block; display: block;
margin-top: 5px; margin-top: 5px;
...@@ -1546,12 +1645,75 @@ textarea.input-small { ...@@ -1546,12 +1645,75 @@ textarea.input-small {
color: #737373; color: #737373;
} }
.form-inline .form-control,
.form-inline .radio,
.form-inline .checkbox {
display: inline-block;
}
.form-inline .radio,
.form-inline .checkbox {
padding-left: 0;
margin-top: 0;
margin-bottom: 0;
}
.form-inline .radio input[type="radio"],
.form-inline .checkbox input[type="checkbox"] {
float: none;
margin-left: 0;
}
.form-horizontal .control-label,
.form-horizontal .radio-inline,
.form-horizontal .checkbox-inline {
padding-top: 6px;
}
.form-horizontal .form-group:before,
.form-horizontal .form-group:after {
display: table;
content: " ";
}
.form-horizontal .form-group:after {
clear: both;
}
.form-horizontal .form-group:before,
.form-horizontal .form-group:after {
display: table;
content: " ";
}
.form-horizontal .form-group:after {
clear: both;
}
@media (min-width: 768px) {
.form-horizontal .form-group {
margin-right: -15px;
margin-left: -15px;
}
}
.form-horizontal .form-group .row {
margin-right: -15px;
margin-left: -15px;
}
@media (min-width: 768px) {
.form-horizontal .control-label {
text-align: right;
}
}
.btn { .btn {
display: inline-block; display: inline-block;
padding: 8px 12px; padding: 6px 12px;
margin-bottom: 0; margin-bottom: 0;
font-size: 14px; font-size: 14px;
font-weight: 500; font-weight: bold;
line-height: 1.428571429; line-height: 1.428571429;
text-align: center; text-align: center;
white-space: nowrap; white-space: nowrap;
...@@ -1574,7 +1736,7 @@ textarea.input-small { ...@@ -1574,7 +1736,7 @@ textarea.input-small {
.btn:hover, .btn:hover,
.btn:focus { .btn:focus {
color: #ffffff; color: #333333;
text-decoration: none; text-decoration: none;
} }
...@@ -1597,17 +1759,18 @@ fieldset[disabled] .btn { ...@@ -1597,17 +1759,18 @@ fieldset[disabled] .btn {
} }
.btn-default { .btn-default {
color: #ffffff; color: #333333;
background-color: #474949; background-color: #ffffff;
border-color: #474949; border-color: #cccccc;
} }
.btn-default:hover, .btn-default:hover,
.btn-default:focus, .btn-default:focus,
.btn-default:active, .btn-default:active,
.btn-default.active { .btn-default.active {
background-color: #3a3c3c; color: #333333;
border-color: #2e2f2f; background-color: #ebebeb;
border-color: #adadad;
} }
.btn-default.disabled, .btn-default.disabled,
...@@ -1625,22 +1788,23 @@ fieldset[disabled] .btn-default:active, ...@@ -1625,22 +1788,23 @@ fieldset[disabled] .btn-default:active,
.btn-default.disabled.active, .btn-default.disabled.active,
.btn-default[disabled].active, .btn-default[disabled].active,
fieldset[disabled] .btn-default.active { fieldset[disabled] .btn-default.active {
background-color: #474949; background-color: #ffffff;
border-color: #474949; border-color: #cccccc;
} }
.btn-primary { .btn-primary {
color: #ffffff; color: #ffffff;
background-color: #428bca; background-color: #428bca;
border-color: #428bca; border-color: #357ebd;
} }
.btn-primary:hover, .btn-primary:hover,
.btn-primary:focus, .btn-primary:focus,
.btn-primary:active, .btn-primary:active,
.btn-primary.active { .btn-primary.active {
background-color: #357ebd; color: #ffffff;
border-color: #3071a9; background-color: #3276b1;
border-color: #285e8e;
} }
.btn-primary.disabled, .btn-primary.disabled,
...@@ -1659,21 +1823,22 @@ fieldset[disabled] .btn-primary:active, ...@@ -1659,21 +1823,22 @@ fieldset[disabled] .btn-primary:active,
.btn-primary[disabled].active, .btn-primary[disabled].active,
fieldset[disabled] .btn-primary.active { fieldset[disabled] .btn-primary.active {
background-color: #428bca; background-color: #428bca;
border-color: #428bca; border-color: #357ebd;
} }
.btn-warning { .btn-warning {
color: #ffffff; color: #ffffff;
background-color: #f0ad4e; background-color: #f0ad4e;
border-color: #f0ad4e; border-color: #eea236;
} }
.btn-warning:hover, .btn-warning:hover,
.btn-warning:focus, .btn-warning:focus,
.btn-warning:active, .btn-warning:active,
.btn-warning.active { .btn-warning.active {
background-color: #eea236; color: #ffffff;
border-color: #ec971f; background-color: #ed9c28;
border-color: #d58512;
} }
.btn-warning.disabled, .btn-warning.disabled,
...@@ -1692,21 +1857,22 @@ fieldset[disabled] .btn-warning:active, ...@@ -1692,21 +1857,22 @@ fieldset[disabled] .btn-warning:active,
.btn-warning[disabled].active, .btn-warning[disabled].active,
fieldset[disabled] .btn-warning.active { fieldset[disabled] .btn-warning.active {
background-color: #f0ad4e; background-color: #f0ad4e;
border-color: #f0ad4e; border-color: #eea236;
} }
.btn-danger { .btn-danger {
color: #ffffff; color: #ffffff;
background-color: #d9534f; background-color: #d9534f;
border-color: #d9534f; border-color: #d43f3a;
} }
.btn-danger:hover, .btn-danger:hover,
.btn-danger:focus, .btn-danger:focus,
.btn-danger:active, .btn-danger:active,
.btn-danger.active { .btn-danger.active {
background-color: #d43f3a; color: #ffffff;
border-color: #c9302c; background-color: #d2322d;
border-color: #ac2925;
} }
.btn-danger.disabled, .btn-danger.disabled,
...@@ -1725,21 +1891,22 @@ fieldset[disabled] .btn-danger:active, ...@@ -1725,21 +1891,22 @@ fieldset[disabled] .btn-danger:active,
.btn-danger[disabled].active, .btn-danger[disabled].active,
fieldset[disabled] .btn-danger.active { fieldset[disabled] .btn-danger.active {
background-color: #d9534f; background-color: #d9534f;
border-color: #d9534f; border-color: #d43f3a;
} }
.btn-success { .btn-success {
color: #ffffff; color: #ffffff;
background-color: #5cb85c; background-color: #5cb85c;
border-color: #5cb85c; border-color: #4cae4c;
} }
.btn-success:hover, .btn-success:hover,
.btn-success:focus, .btn-success:focus,
.btn-success:active, .btn-success:active,
.btn-success.active { .btn-success.active {
background-color: #4cae4c; color: #ffffff;
border-color: #449d44; background-color: #47a447;
border-color: #398439;
} }
.btn-success.disabled, .btn-success.disabled,
...@@ -1758,21 +1925,22 @@ fieldset[disabled] .btn-success:active, ...@@ -1758,21 +1925,22 @@ fieldset[disabled] .btn-success:active,
.btn-success[disabled].active, .btn-success[disabled].active,
fieldset[disabled] .btn-success.active { fieldset[disabled] .btn-success.active {
background-color: #5cb85c; background-color: #5cb85c;
border-color: #5cb85c; border-color: #4cae4c;
} }
.btn-info { .btn-info {
color: #ffffff; color: #ffffff;
background-color: #5bc0de; background-color: #5bc0de;
border-color: #5bc0de; border-color: #46b8da;
} }
.btn-info:hover, .btn-info:hover,
.btn-info:focus, .btn-info:focus,
.btn-info:active, .btn-info:active,
.btn-info.active { .btn-info.active {
background-color: #46b8da; color: #ffffff;
border-color: #31b0d5; background-color: #39b3d7;
border-color: #269abc;
} }
.btn-info.disabled, .btn-info.disabled,
...@@ -1791,7 +1959,7 @@ fieldset[disabled] .btn-info:active, ...@@ -1791,7 +1959,7 @@ fieldset[disabled] .btn-info:active,
.btn-info[disabled].active, .btn-info[disabled].active,
fieldset[disabled] .btn-info.active { fieldset[disabled] .btn-info.active {
background-color: #5bc0de; background-color: #5bc0de;
border-color: #5bc0de; border-color: #46b8da;
} }
.btn-link { .btn-link {
...@@ -1828,25 +1996,26 @@ fieldset[disabled] .btn-link { ...@@ -1828,25 +1996,26 @@ fieldset[disabled] .btn-link {
fieldset[disabled] .btn-link:hover, fieldset[disabled] .btn-link:hover,
.btn-link[disabled]:focus, .btn-link[disabled]:focus,
fieldset[disabled] .btn-link:focus { fieldset[disabled] .btn-link:focus {
color: #333333; color: #999999;
text-decoration: none; text-decoration: none;
} }
.btn-large { .btn-lg {
padding: 14px 16px; padding: 10px 16px;
font-size: 18px; font-size: 18px;
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;
} }
...@@ -1894,6 +2063,7 @@ input[type="button"].btn-block { ...@@ -1894,6 +2063,7 @@ input[type="button"].btn-block {
} }
.input-group { .input-group {
position: relative;
display: table; display: table;
border-collapse: separate; border-collapse: separate;
} }
...@@ -1929,27 +2099,24 @@ input[type="button"].btn-block { ...@@ -1929,27 +2099,24 @@ input[type="button"].btn-block {
} }
.input-group-addon { .input-group-addon {
padding: 8px 12px; padding: 6px 12px;
font-size: 14px; font-size: 14px;
font-weight: normal; font-weight: normal;
line-height: 1.428571429; line-height: 1;
text-align: center; text-align: center;
background-color: #eeeeee; background-color: #eeeeee;
border: 1px solid #cccccc; border: 1px solid #cccccc;
border-radius: 4px; border-radius: 4px;
-webkit-box-sizing: border-box;
-moz-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;
border-radius: 3px; border-radius: 3px;
} }
.input-group-addon.input-large { .input-group-addon.input-lg {
padding: 14px 16px; padding: 10px 16px;
font-size: 18px; font-size: 18px;
border-radius: 6px; border-radius: 6px;
} }
...@@ -2003,60 +2170,6 @@ input[type="button"].btn-block { ...@@ -2003,60 +2170,6 @@ input[type="button"].btn-block {
z-index: 2; z-index: 2;
} }
.form-inline .form-control,
.form-inline .radio,
.form-inline .checkbox {
display: inline-block;
}
.form-inline .radio,
.form-inline .checkbox {
margin-top: 0;
margin-bottom: 0;
}
.form-horizontal .control-label {
padding-top: 9px;
}
.form-horizontal .form-group:before,
.form-horizontal .form-group:after {
display: table;
content: " ";
}
.form-horizontal .form-group:after {
clear: both;
}
.form-horizontal .form-group:before,
.form-horizontal .form-group:after {
display: table;
content: " ";
}
.form-horizontal .form-group:after {
clear: both;
}
@media (min-width: 768px) {
.form-horizontal .form-group {
margin-right: -15px;
margin-left: -15px;
}
}
.form-horizontal .form-group .row {
margin-right: -15px;
margin-left: -15px;
}
@media (min-width: 768px) {
.form-horizontal .control-label {
text-align: right;
}
}
.caret { .caret {
display: inline-block; display: inline-block;
width: 0; width: 0;
...@@ -2069,6 +2182,10 @@ input[type="button"].btn-block { ...@@ -2069,6 +2182,10 @@ input[type="button"].btn-block {
content: ""; content: "";
} }
.dropdown {
position: relative;
}
.dropdown-menu { .dropdown-menu {
position: absolute; position: absolute;
top: 100%; top: 100%;
...@@ -2228,6 +2345,10 @@ input[type="button"].btn-block { ...@@ -2228,6 +2345,10 @@ input[type="button"].btn-block {
margin-right: -15px; margin-right: -15px;
} }
.list-group-item > .badge + .badge {
margin-right: 0;
}
.list-group-item-heading { .list-group-item-heading {
margin-top: 0; margin-top: 0;
margin-bottom: 5px; margin-bottom: 5px;
...@@ -2277,6 +2398,23 @@ a.list-group-item.active .list-group-item-text { ...@@ -2277,6 +2398,23 @@ a.list-group-item.active .list-group-item-text {
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
} }
.panel .list-group {
margin: 15px -15px -15px;
}
.panel .list-group .list-group-item {
border-width: 1px 0;
}
.panel .list-group .list-group-item:first-child {
border-top-right-radius: 0;
border-top-left-radius: 0;
}
.panel .list-group .list-group-item:last-child {
border-bottom: 0;
}
.panel-heading { .panel-heading {
padding: 10px 15px; padding: 10px 15px;
margin: -15px -15px 15px; margin: -15px -15px 15px;
...@@ -2293,6 +2431,10 @@ a.list-group-item.active .list-group-item-text { ...@@ -2293,6 +2431,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;
...@@ -2352,23 +2494,6 @@ a.list-group-item.active .list-group-item-text { ...@@ -2352,23 +2494,6 @@ a.list-group-item.active .list-group-item-text {
border-color: #bce8f1; border-color: #bce8f1;
} }
.list-group-flush {
margin: 15px -15px -15px;
}
.list-group-flush .list-group-item {
border-width: 1px 0;
}
.list-group-flush .list-group-item:first-child {
border-top-right-radius: 0;
border-top-left-radius: 0;
}
.list-group-flush .list-group-item:last-child {
border-bottom: 0;
}
.well { .well {
min-height: 20px; min-height: 20px;
padding: 19px; padding: 19px;
...@@ -2385,12 +2510,12 @@ a.list-group-item.active .list-group-item-text { ...@@ -2385,12 +2510,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;
} }
...@@ -2493,10 +2618,6 @@ button.close { ...@@ -2493,10 +2618,6 @@ button.close {
border-bottom-color: #ffffff; border-bottom-color: #ffffff;
} }
.nav > .pull-right {
float: right;
}
.nav .nav-divider { .nav .nav-divider {
height: 1px; height: 1px;
margin: 9px 0; margin: 9px 0;
...@@ -2504,33 +2625,6 @@ button.close { ...@@ -2504,33 +2625,6 @@ button.close {
background-color: #e5e5e5; background-color: #e5e5e5;
} }
.nav-justified {
width: 100%;
}
.nav-justified > li {
display: table-cell;
float: none;
width: 1%;
}
.nav-justified > li > a {
text-align: center;
}
.nav-tabs-justified {
border-bottom: 0;
}
.nav-tabs-justified > li > a {
margin-right: 0;
border-bottom: 1px solid #dddddd;
}
.nav-tabs-justified > .active > a {
border-bottom-color: #ffffff;
}
.nav-tabs { .nav-tabs {
border-bottom: 1px solid #dddddd; border-bottom: 1px solid #dddddd;
} }
...@@ -2613,6 +2707,33 @@ button.close { ...@@ -2613,6 +2707,33 @@ button.close {
margin-left: 0; margin-left: 0;
} }
.nav-justified {
width: 100%;
}
.nav-justified > li {
display: table-cell;
float: none;
width: 1%;
}
.nav-justified > li > a {
text-align: center;
}
.nav-tabs-justified {
border-bottom: 0;
}
.nav-tabs-justified > li > a {
margin-right: 0;
border-bottom: 1px solid #dddddd;
}
.nav-tabs-justified > .active > a {
border-bottom-color: #ffffff;
}
.tabbable:before, .tabbable:before,
.tabbable:after { .tabbable:after {
display: table; display: table;
...@@ -2690,7 +2811,6 @@ button.close { ...@@ -2690,7 +2811,6 @@ button.close {
} }
.navbar-nav { .navbar-nav {
margin-top: 10px;
margin-bottom: 15px; margin-bottom: 15px;
} }
...@@ -2748,6 +2868,44 @@ button.close { ...@@ -2748,6 +2868,44 @@ button.close {
margin-bottom: 0; margin-bottom: 0;
} }
.nav-collapse {
padding-bottom: 15px;
}
.nav-collapse:before,
.nav-collapse:after {
display: table;
content: " ";
}
.nav-collapse:after {
clear: both;
}
.nav-collapse:before,
.nav-collapse:after {
display: table;
content: " ";
}
.nav-collapse:after {
clear: both;
}
.navbar-toggle + .nav-collapse {
width: 100%;
margin-top: 50px;
}
@media (max-width: 768px) {
.nav-collapse-scrollable {
max-height: 360px;
margin-bottom: 15px;
overflow-y: scroll;
-webkit-overflow-scrolling: touch;
}
}
.navbar-brand { .navbar-brand {
display: block; display: block;
max-width: 200px; max-width: 200px;
...@@ -2769,12 +2927,13 @@ button.close { ...@@ -2769,12 +2927,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;
...@@ -2798,8 +2957,8 @@ button.close { ...@@ -2798,8 +2957,8 @@ button.close {
} }
.navbar-form { .navbar-form {
margin-top: 6px; margin-top: 8px;
margin-bottom: 6px; margin-bottom: 8px;
} }
.navbar-form .form-control, .navbar-form .form-control,
...@@ -2810,10 +2969,17 @@ button.close { ...@@ -2810,10 +2969,17 @@ button.close {
.navbar-form .radio, .navbar-form .radio,
.navbar-form .checkbox { .navbar-form .checkbox {
padding-left: 0;
margin-top: 0; margin-top: 0;
margin-bottom: 0; margin-bottom: 0;
} }
.navbar-form .radio input[type="radio"],
.navbar-form .checkbox input[type="checkbox"] {
float: none;
margin-left: 0;
}
.navbar-nav > li > .dropdown-menu { .navbar-nav > li > .dropdown-menu {
margin-top: 0; margin-top: 0;
border-top-right-radius: 0; border-top-right-radius: 0;
...@@ -2938,6 +3104,7 @@ button.close { ...@@ -2938,6 +3104,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;
} }
...@@ -2953,7 +3120,6 @@ button.close { ...@@ -2953,7 +3120,6 @@ button.close {
border-radius: 0; border-radius: 0;
} }
.navbar-nav.pull-right { .navbar-nav.pull-right {
float: right;
width: auto; width: auto;
} }
.navbar-toggle { .navbar-toggle {
...@@ -2965,15 +3131,18 @@ button.close { ...@@ -2965,15 +3131,18 @@ button.close {
.nav-collapse.collapse { .nav-collapse.collapse {
display: block !important; display: block !important;
height: auto !important; height: auto !important;
padding-bottom: 0;
overflow: visible !important; overflow: visible !important;
} }
} }
.navbar-btn { .navbar-btn {
margin-top: 6px; margin-top: 8px;
} }
.navbar-text { .navbar-text {
float: left;
padding: 0 15px;
margin-top: 15px; margin-top: 15px;
margin-bottom: 15px; margin-bottom: 15px;
} }
...@@ -2994,12 +3163,28 @@ button.close { ...@@ -2994,12 +3163,28 @@ button.close {
color: #ffffff; color: #ffffff;
} }
.btn .caret { .btn-default .caret {
border-top-color: #ffffff; border-top-color: #333333;
} }
.dropup .btn .caret { .btn-primary .caret,
border-bottom-color: #ffffff; .btn-success .caret,
.btn-warning .caret,
.btn-danger .caret,
.btn-info .caret {
border-top-color: #fff;
}
.btn-default .dropup .caret {
border-bottom-color: #333333;
}
.btn-primary .dropup .caret,
.btn-success .dropup .caret,
.btn-warning .dropup .caret,
.btn-danger .dropup .caret,
.btn-info .dropup .caret {
border-bottom-color: #fff;
} }
.btn-group, .btn-group,
...@@ -3020,10 +3205,17 @@ button.close { ...@@ -3020,10 +3205,17 @@ 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;
} }
.btn-group > .btn:focus,
.btn-group-vertical > .btn:focus {
outline: none;
}
.btn-group .btn + .btn { .btn-group .btn + .btn {
margin-left: -1px; margin-left: -1px;
} }
...@@ -3107,7 +3299,7 @@ button.close { ...@@ -3107,7 +3299,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;
} }
...@@ -3121,11 +3313,11 @@ button.close { ...@@ -3121,11 +3313,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;
} }
...@@ -3144,12 +3336,12 @@ button.close { ...@@ -3144,12 +3336,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;
} }
...@@ -3157,6 +3349,7 @@ button.close { ...@@ -3157,6 +3349,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 {
...@@ -3206,7 +3399,7 @@ button.close { ...@@ -3206,7 +3399,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;
...@@ -3249,38 +3442,38 @@ button.close { ...@@ -3249,38 +3442,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: 14px 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;
} }
...@@ -3376,7 +3569,7 @@ button.close { ...@@ -3376,7 +3569,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);
...@@ -3417,7 +3610,7 @@ button.close { ...@@ -3417,7 +3610,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);
} }
...@@ -3508,8 +3701,8 @@ button.close { ...@@ -3508,8 +3701,8 @@ button.close {
} }
.tooltip.in { .tooltip.in {
opacity: 1; opacity: 0.9;
filter: alpha(opacity=100); filter: alpha(opacity=90);
} }
.tooltip.top { .tooltip.top {
...@@ -3538,7 +3731,7 @@ button.close { ...@@ -3538,7 +3731,7 @@ button.close {
color: #ffffff; color: #ffffff;
text-align: center; text-align: center;
text-decoration: none; text-decoration: none;
background-color: rgba(0, 0, 0, 0.9); background-color: #000000;
border-radius: 4px; border-radius: 4px;
} }
...@@ -3554,21 +3747,21 @@ button.close { ...@@ -3554,21 +3747,21 @@ button.close {
bottom: 0; bottom: 0;
left: 50%; left: 50%;
margin-left: -5px; margin-left: -5px;
border-top-color: rgba(0, 0, 0, 0.9); border-top-color: #000000;
border-width: 5px 5px 0; border-width: 5px 5px 0;
} }
.tooltip.top-left .tooltip-arrow { .tooltip.top-left .tooltip-arrow {
bottom: 0; bottom: 0;
left: 5px; left: 5px;
border-top-color: rgba(0, 0, 0, 0.9); border-top-color: #000000;
border-width: 5px 5px 0; border-width: 5px 5px 0;
} }
.tooltip.top-right .tooltip-arrow { .tooltip.top-right .tooltip-arrow {
right: 5px; right: 5px;
bottom: 0; bottom: 0;
border-top-color: rgba(0, 0, 0, 0.9); border-top-color: #000000;
border-width: 5px 5px 0; border-width: 5px 5px 0;
} }
...@@ -3576,7 +3769,7 @@ button.close { ...@@ -3576,7 +3769,7 @@ button.close {
top: 50%; top: 50%;
left: 0; left: 0;
margin-top: -5px; margin-top: -5px;
border-right-color: rgba(0, 0, 0, 0.9); border-right-color: #000000;
border-width: 5px 5px 5px 0; border-width: 5px 5px 5px 0;
} }
...@@ -3584,7 +3777,7 @@ button.close { ...@@ -3584,7 +3777,7 @@ button.close {
top: 50%; top: 50%;
right: 0; right: 0;
margin-top: -5px; margin-top: -5px;
border-left-color: rgba(0, 0, 0, 0.9); border-left-color: #000000;
border-width: 5px 0 5px 5px; border-width: 5px 0 5px 5px;
} }
...@@ -3592,21 +3785,21 @@ button.close { ...@@ -3592,21 +3785,21 @@ button.close {
top: 0; top: 0;
left: 50%; left: 50%;
margin-left: -5px; margin-left: -5px;
border-bottom-color: rgba(0, 0, 0, 0.9); border-bottom-color: #000000;
border-width: 0 5px 5px; border-width: 0 5px 5px;
} }
.tooltip.bottom-left .tooltip-arrow { .tooltip.bottom-left .tooltip-arrow {
top: 0; top: 0;
left: 5px; left: 5px;
border-bottom-color: rgba(0, 0, 0, 0.9); border-bottom-color: #000000;
border-width: 0 5px 5px; border-width: 0 5px 5px;
} }
.tooltip.bottom-right .tooltip-arrow { .tooltip.bottom-right .tooltip-arrow {
top: 0; top: 0;
right: 5px; right: 5px;
border-bottom-color: rgba(0, 0, 0, 0.9); border-bottom-color: #000000;
border-width: 0 5px 5px; border-width: 0 5px 5px;
} }
...@@ -3750,7 +3943,7 @@ button.close { ...@@ -3750,7 +3943,7 @@ button.close {
} }
.alert { .alert {
padding: 10px 35px 10px 15px; padding: 15px 35px 15px 15px;
margin-bottom: 20px; margin-bottom: 20px;
color: #c09853; color: #c09853;
background-color: #fcf8e3; background-color: #fcf8e3;
...@@ -3768,7 +3961,7 @@ button.close { ...@@ -3768,7 +3961,7 @@ button.close {
} }
.alert .alert-link { .alert .alert-link {
font-weight: 500; font-weight: bold;
color: #a47e3c; color: #a47e3c;
} }
...@@ -3779,6 +3972,15 @@ button.close { ...@@ -3779,6 +3972,15 @@ button.close {
color: inherit; color: inherit;
} }
.alert > p,
.alert > ul {
margin-bottom: 0;
}
.alert > p + p {
margin-top: 5px;
}
.alert-success { .alert-success {
color: #468847; color: #468847;
background-color: #dff0d8; background-color: #dff0d8;
...@@ -3821,20 +4023,6 @@ button.close { ...@@ -3821,20 +4023,6 @@ button.close {
color: #2d6987; color: #2d6987;
} }
.alert-block {
padding-top: 15px;
padding-bottom: 15px;
}
.alert-block > p,
.alert-block > ul {
margin-bottom: 0;
}
.alert-block p + p {
margin-top: 5px;
}
.thumbnail, .thumbnail,
.img-thumbnail { .img-thumbnail {
padding: 4px; padding: 4px;
...@@ -3918,7 +4106,6 @@ a.thumbnail:focus { ...@@ -3918,7 +4106,6 @@ a.thumbnail:focus {
text-align: center; text-align: center;
white-space: nowrap; white-space: nowrap;
vertical-align: baseline; vertical-align: baseline;
background-color: #999999;
border-radius: .25em; border-radius: .25em;
} }
...@@ -3927,6 +4114,14 @@ a.thumbnail:focus { ...@@ -3927,6 +4114,14 @@ a.thumbnail:focus {
color: #ffffff; color: #ffffff;
text-decoration: none; text-decoration: none;
cursor: pointer; cursor: pointer;
}
.label-default {
background-color: #999999;
}
.label-default[href]:hover,
.label-default[href]:focus {
background-color: #808080; background-color: #808080;
} }
...@@ -4025,15 +4220,6 @@ a.list-group-item.active > .badge, ...@@ -4025,15 +4220,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;
...@@ -4077,7 +4263,6 @@ a.list-group-item.active > .badge, ...@@ -4077,7 +4263,6 @@ a.list-group-item.active > .badge,
} }
.progress-striped .progress-bar { .progress-striped .progress-bar {
background-color: #428bca;
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
...@@ -4098,7 +4283,6 @@ a.list-group-item.active > .badge, ...@@ -4098,7 +4283,6 @@ a.list-group-item.active > .badge,
} }
.progress-striped .progress-bar-danger { .progress-striped .progress-bar-danger {
background-color: #d9534f;
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
...@@ -4110,7 +4294,6 @@ a.list-group-item.active > .badge, ...@@ -4110,7 +4294,6 @@ a.list-group-item.active > .badge,
} }
.progress-striped .progress-bar-success { .progress-striped .progress-bar-success {
background-color: #5cb85c;
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
...@@ -4122,7 +4305,6 @@ a.list-group-item.active > .badge, ...@@ -4122,7 +4305,6 @@ a.list-group-item.active > .badge,
} }
.progress-striped .progress-bar-warning { .progress-striped .progress-bar-warning {
background-color: #f0ad4e;
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
...@@ -4134,7 +4316,6 @@ a.list-group-item.active > .badge, ...@@ -4134,7 +4316,6 @@ a.list-group-item.active > .badge,
} }
.progress-striped .progress-bar-info { .progress-striped .progress-bar-info {
background-color: #5bc0de;
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
...@@ -4244,8 +4425,6 @@ a.list-group-item.active > .badge, ...@@ -4244,8 +4425,6 @@ a.list-group-item.active > .badge,
} }
.carousel-control.left { .carousel-control.left {
background-color: rgba(0, 0, 0, 0.0001);
background-color: transparent;
background-image: -webkit-gradient(linear, 0 top, 100% top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001))); background-image: -webkit-gradient(linear, 0 top, 100% top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001)));
background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0), color-stop(rgba(0, 0, 0, 0.0001) 100%)); background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0), color-stop(rgba(0, 0, 0, 0.0001) 100%));
background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%); background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%);
...@@ -4257,8 +4436,6 @@ a.list-group-item.active > .badge, ...@@ -4257,8 +4436,6 @@ a.list-group-item.active > .badge,
.carousel-control.right { .carousel-control.right {
right: 0; right: 0;
left: auto; left: auto;
background-color: rgba(0, 0, 0, 0.5);
background-color: transparent;
background-image: -webkit-gradient(linear, 0 top, 100% top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5))); background-image: -webkit-gradient(linear, 0 top, 100% top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5)));
background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0), color-stop(rgba(0, 0, 0, 0.5) 100%)); background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0), color-stop(rgba(0, 0, 0, 0.5) 100%));
background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%); background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%);
...@@ -4303,9 +4480,9 @@ a.list-group-item.active > .badge, ...@@ -4303,9 +4480,9 @@ a.list-group-item.active > .badge,
bottom: 10px; bottom: 10px;
left: 50%; left: 50%;
z-index: 15; z-index: 15;
width: 120px; width: 60%;
padding-left: 0; padding-left: 0;
margin-left: -60px; margin-left: -30%;
text-align: center; text-align: center;
list-style: none; list-style: none;
} }
...@@ -4405,11 +4582,11 @@ a.list-group-item.active > .badge, ...@@ -4405,11 +4582,11 @@ a.list-group-item.active > .badge,
} }
.pull-right { .pull-right {
float: right; float: right !important;
} }
.pull-left { .pull-left {
float: left; float: left !important;
} }
.hide { .hide {
...@@ -4698,29 +4875,27 @@ td.visible-print { ...@@ -4698,29 +4875,27 @@ td.visible-print {
.btn-default { .btn-default {
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
background-color: #2e2f2f; background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#e6e6e6));
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#474949), to(#2e2f2f)); background-image: -webkit-linear-gradient(top, #ffffff, 0%, #e6e6e6, 100%);
background-image: -webkit-linear-gradient(top, #474949, 0%, #2e2f2f, 100%); background-image: -moz-linear-gradient(top, #ffffff 0%, #e6e6e6 100%);
background-image: -moz-linear-gradient(top, #474949 0%, #2e2f2f 100%); background-image: linear-gradient(to bottom, #ffffff 0%, #e6e6e6 100%);
background-image: linear-gradient(to bottom, #474949 0%, #2e2f2f 100%);
background-repeat: repeat-x; background-repeat: repeat-x;
border-color: #292a2a; border-color: #e0e0e0;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff474949', endColorstr='#ff2e2f2f', GradientType=0); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
} }
.btn-default:active, .btn-default:active,
.btn-default.active { .btn-default.active {
background-color: #2e2f2f; background-color: #e6e6e6;
border-color: #292a2a; border-color: #e0e0e0;
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
} }
.btn-primary { .btn-primary {
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
background-color: #3071a9;
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#3071a9)); background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#3071a9));
background-image: -webkit-linear-gradient(top, #428bca, 0%, #3071a9, 100%); background-image: -webkit-linear-gradient(top, #428bca, 0%, #3071a9, 100%);
background-image: -moz-linear-gradient(top, #428bca 0%, #3071a9 100%); background-image: -moz-linear-gradient(top, #428bca 0%, #3071a9 100%);
...@@ -4742,7 +4917,6 @@ td.visible-print { ...@@ -4742,7 +4917,6 @@ td.visible-print {
.btn-success { .btn-success {
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
background-color: #449d44;
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5cb85c), to(#449d44)); background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5cb85c), to(#449d44));
background-image: -webkit-linear-gradient(top, #5cb85c, 0%, #449d44, 100%); background-image: -webkit-linear-gradient(top, #5cb85c, 0%, #449d44, 100%);
background-image: -moz-linear-gradient(top, #5cb85c 0%, #449d44 100%); background-image: -moz-linear-gradient(top, #5cb85c 0%, #449d44 100%);
...@@ -4764,7 +4938,6 @@ td.visible-print { ...@@ -4764,7 +4938,6 @@ td.visible-print {
.btn-warning { .btn-warning {
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
background-color: #ec971f;
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f0ad4e), to(#ec971f)); background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f0ad4e), to(#ec971f));
background-image: -webkit-linear-gradient(top, #f0ad4e, 0%, #ec971f, 100%); background-image: -webkit-linear-gradient(top, #f0ad4e, 0%, #ec971f, 100%);
background-image: -moz-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); background-image: -moz-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
...@@ -4786,7 +4959,6 @@ td.visible-print { ...@@ -4786,7 +4959,6 @@ td.visible-print {
.btn-danger { .btn-danger {
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
background-color: #c9302c;
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9534f), to(#c9302c)); background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9534f), to(#c9302c));
background-image: -webkit-linear-gradient(top, #d9534f, 0%, #c9302c, 100%); background-image: -webkit-linear-gradient(top, #d9534f, 0%, #c9302c, 100%);
background-image: -moz-linear-gradient(top, #d9534f 0%, #c9302c 100%); background-image: -moz-linear-gradient(top, #d9534f 0%, #c9302c 100%);
...@@ -4808,7 +4980,6 @@ td.visible-print { ...@@ -4808,7 +4980,6 @@ td.visible-print {
.btn-info { .btn-info {
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
background-color: #31b0d5;
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5bc0de), to(#31b0d5)); background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5bc0de), to(#31b0d5));
background-image: -webkit-linear-gradient(top, #5bc0de, 0%, #31b0d5, 100%); background-image: -webkit-linear-gradient(top, #5bc0de, 0%, #31b0d5, 100%);
background-image: -moz-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); background-image: -moz-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
...@@ -4829,7 +5000,6 @@ td.visible-print { ...@@ -4829,7 +5000,6 @@ td.visible-print {
} }
.navbar { .navbar {
background-color: #eeeeee;
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#eeeeee)); background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#eeeeee));
background-image: -webkit-linear-gradient(top, #ffffff, 0%, #eeeeee, 100%); background-image: -webkit-linear-gradient(top, #ffffff, 0%, #eeeeee, 100%);
background-image: -moz-linear-gradient(top, #ffffff 0%, #eeeeee 100%); background-image: -moz-linear-gradient(top, #ffffff 0%, #eeeeee 100%);
...@@ -4839,7 +5009,6 @@ td.visible-print { ...@@ -4839,7 +5009,6 @@ td.visible-print {
} }
.navbar-inverse { .navbar-inverse {
background-color: #222222;
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#3c3c3c), to(#222222)); background-image: -webkit-gradient(linear, left 0%, left 100%, from(#3c3c3c), to(#222222));
background-image: -webkit-linear-gradient(top, #3c3c3c, 0%, #222222, 100%); background-image: -webkit-linear-gradient(top, #3c3c3c, 0%, #222222, 100%);
background-image: -moz-linear-gradient(top, #3c3c3c 0%, #222222 100%); background-image: -moz-linear-gradient(top, #3c3c3c 0%, #222222 100%);
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -219,7 +219,9 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") } ...@@ -219,7 +219,9 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
var $parent = this.$element.closest('[data-toggle="buttons"]') var $parent = this.$element.closest('[data-toggle="buttons"]')
if ($parent.length) { if ($parent.length) {
var $input = this.$element.find('input').prop('checked', !this.$element.hasClass('active')) var $input = this.$element.find('input')
.prop('checked', !this.$element.hasClass('active'))
.trigger('change')
if ($input.prop('type') === 'radio') $parent.find('.active').removeClass('active') if ($input.prop('type') === 'radio') $parent.find('.active').removeClass('active')
} }
...@@ -533,7 +535,7 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") } ...@@ -533,7 +535,7 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
this.$element.trigger(startEvent) this.$element.trigger(startEvent)
if (startEvent.isDefaultPrevented()) return if (startEvent.isDefaultPrevented()) return
var actives = this.$parent && this.$parent.find('> .accordion-group > .in') var actives = this.$parent && this.$parent.find('> .accordion-group > .in')
if (actives && actives.length) { if (actives && actives.length) {
var hasData = actives.data('bs.collapse') var hasData = actives.data('bs.collapse')
...@@ -1243,12 +1245,9 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") } ...@@ -1243,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)
} }
} }
...@@ -1260,25 +1259,33 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") } ...@@ -1260,25 +1259,33 @@ 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
if (placement == 'top' && actualHeight != height) { if (placement == 'top' && actualHeight != height) {
replace = true replace = true
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
...@@ -1313,6 +1320,8 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") } ...@@ -1313,6 +1320,8 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
var $tip = this.tip() var $tip = this.tip()
var e = $.Event('hide.bs.' + this.type) var e = $.Event('hide.bs.' + this.type)
function complete() { $tip.detach() }
this.$element.trigger(e) this.$element.trigger(e)
if (e.isDefaultPrevented()) return if (e.isDefaultPrevented()) return
...@@ -1321,9 +1330,9 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") } ...@@ -1321,9 +1330,9 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
$.support.transition && this.$tip.hasClass('fade') ? $.support.transition && this.$tip.hasClass('fade') ?
$tip $tip
.one($.support.transition.end, $tip.detach) .one($.support.transition.end, complete)
.emulateTransitionEnd(150) : .emulateTransitionEnd(150) :
$tip.detach() complete()
this.$element.trigger('hidden.bs.' + this.type) this.$element.trigger('hidden.bs.' + this.type)
...@@ -1349,6 +1358,13 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") } ...@@ -1349,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
...@@ -1364,8 +1380,8 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") } ...@@ -1364,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 () {
...@@ -1487,7 +1503,13 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") } ...@@ -1487,7 +1503,13 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
$tip.removeClass('fade top bottom left right in') $tip.removeClass('fade top bottom left right in')
$tip.find('.popover-title:empty').hide() // Hide empty titles
//
// IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
// this manually by checking the contents.
if ($tip.find('.popover-title').html() === '') {
$tip.find('.popover-title').hide();
}
} }
Popover.prototype.hasContent = function () { Popover.prototype.hasContent = function () {
...@@ -1504,6 +1526,10 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") } ...@@ -1504,6 +1526,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
......
...@@ -3,4 +3,4 @@ ...@@ -3,4 +3,4 @@
* Copyright 2013 Twitter Inc. * Copyright 2013 Twitter Inc.
* http://www.apache.org/licenses/LICENSE-2.0 * http://www.apache.org/licenses/LICENSE-2.0
*/ */
if(!jQuery)throw new Error("Bootstrap requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]}}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(window.jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d)};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.is("input")?"val":"html",e=c.data();a+="Text",e.resetText||c.data("resetText",c[d]()),c[d](e[a]||this.options[a]),setTimeout(function(){"loadingText"==a?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons"]');if(a.length){var b=this.$element.find("input").prop("checked",!this.$element.hasClass("active"));"radio"===b.prop("type")&&a.find(".active").removeClass("active")}this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(window.jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover"},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;this.sliding=!0,f&&this.pause(),e=e.length?e:this.$element.find(".item")[h]();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(!e.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(j),j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(j),j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .accordion-group > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?(this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350),void 0):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find("[data-toggle=collapse][data-parent="+i+"]").not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(window.jQuery),+function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b),f.trigger(d=a.Event("show.bs.dropdown")),d.isDefaultPrevented())return;f.toggleClass("open").trigger("shown.bs.dropdown")}return e.focus(),!1}},f.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var f=c(d),g=f.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&f.find(e).focus(),d.click();var h=a("[role=menu] li:not(.divider):visible a",f);if(h.length){var i=h.index(h.filter(":focus"));38==b.keyCode&&i>0&&i--,40==b.keyCode&&i<h.length-1&&i++,~i||(i=0),h.eq(i).focus()}}}};var g=a.fn.dropdown;a.fn.dropdown=function(b){return this.each(function(){var c=a(this),d=c.data("dropdown");d||c.data("dropdown",d=new f(this)),"string"==typeof b&&d[b].call(c)})},a.fn.dropdown.Constructor=f,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=g,this},a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",e,f.prototype.toggle).on("keydown.bs.dropdown.data-api",e+", [role=menu]",f.prototype.keydown)}(window.jQuery),+function(a){"use strict";var b=function(b,c){this.options=c,this.$element=a(b).on("click.dismiss.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$backdrop=this.isShown=null,this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};b.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},b.prototype.toggle=function(){return this[this.isShown?"hide":"show"]()},b.prototype.show=function(){var b=this,c=a.Event("show.bs.modal");this.$element.trigger(c),this.isShown||c.isDefaultPrevented()||(this.isShown=!0,this.escape(),this.backdrop(function(){var c=a.support.transition&&b.$element.hasClass("fade");b.$element.parent().length||b.$element.appendTo(document.body),b.$element.show(),c&&b.$element[0].offsetWidth,b.$element.addClass("in").attr("aria-hidden",!1),b.enforceFocus(),c?b.$element.one(a.support.transition.end,function(){b.$element.focus().trigger("shown.bs.modal")}).emulateTransitionEnd(300):b.$element.focus().trigger("shown.bs.modal")}))},b.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),a.support.transition&&this.$element.hasClass("fade")?this.$element.one(a.support.transition.end,a.proxy(this.hideModal,this)).emulateTransitionEnd(300):this.hideModal())},b.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.focus()},this))},b.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keyup.dismiss.bs.modal")},b.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.removeBackdrop(),a.$element.trigger("hidden.bs.modal")})},b.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},b.prototype.backdrop=function(b){var c=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var d=a.support.transition&&c;if(this.$backdrop=a('<div class="modal-backdrop '+c+'" />').appendTo(document.body),this.$element.on("click",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),d&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;d?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()):b&&b()};var c=a.fn.modal;a.fn.modal=function(c){return this.each(function(){var d=a(this),e=d.data("bs.modal"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.modal",e=new b(this,f)),"string"==typeof c?e[c]():f.show&&e.show()})},a.fn.modal.Constructor=b,a.fn.modal.noConflict=function(){return a.fn.modal=c,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());b.preventDefault(),e.modal(f).one("hide",function(){c.is(":visible")&&c.focus()})}),a(function(){var b=a(document.body).on("shown.bs.modal",".modal",function(){b.addClass("modal-open")}).on("hidden.bs.modal",".modal",function(){b.removeClass("modal-open")})})}(window.jQuery),+function(a){"use strict";var b=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};b.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},b.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focus",i="hover"==g?"mouseleave":"blur";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},b.prototype.enter=function(b){var c=this.getDefaults(),d={};this._options&&a.each(this._options,function(a,b){c[a]!=b&&(d[a]=b)});var e=b instanceof this.constructor?b:a(b.currentTarget)[this.type](d).data("bs."+this.type);return clearTimeout(e.timeout),e.options.delay&&e.options.delay.show?(e.hoverState="in",e.timeout=setTimeout(function(){"in"==e.hoverState&&e.show()},e.options.delay.show),void 0):e.show()},b.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this._options).data("bs."+this.type);return clearTimeout(c.timeout),c.options.delay&&c.options.delay.hide?(c.hoverState="out",c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide),void 0):c.hide()},b.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){if(this.$element.trigger(b),b.isDefaultPrevented())return;var c=this.tip();this.setContent(),this.options.animation&&c.addClass("fade");var d="function"==typeof this.options.placement?this.options.placement.call(this,c[0],this.$element[0]):this.options.placement,e=/\s?auto?\s?/i,f=e.test(d);f&&(d=d.replace(e,"")||"top"),c.detach().css({top:0,left:0,display:"block"}).addClass(d),this.options.container?c.appendTo(this.options.container):c.insertAfter(this.$element);var g=this.getPosition(),h=c[0].offsetWidth,i=c[0].offsetHeight;if(f){var j=this.$element.parent(),k=d,l=document.documentElement.scrollTop||document.body.scrollTop,m="body"==this.options.container?window.innerWidth:j.outerWidth(),n="body"==this.options.container?window.innerHeight:j.outerHeight(),o="body"==this.options.container?0:j.offset().left;d="bottom"==d&&g.top+g.height+i-l>n?"top":"top"==d&&g.top-l-i<0?"bottom":"right"==d&&g.right+h>m?"left":"left"==d&&g.left-h<o?"right":d,c.removeClass(k).addClass(d)}var p="bottom"==d?{top:g.top+g.height,left:g.left+g.width/2-h/2}:"top"==d?{top:g.top-i,left:g.left+g.width/2-h/2}:"left"==d?{top:g.top+g.height/2-i/2,left:g.left-h}:{top:g.top+g.height/2-i/2,left:g.left+g.width};this.applyPlacement(p,d),this.$element.trigger("shown.bs."+this.type)}},b.prototype.applyPlacement=function(a,b){var c,d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight;a.top=a.top+parseInt(d.css("margin-top"),10),a.left=a.left+parseInt(d.css("margin-left"),10),d.offset(a).addClass("in");var g=d[0].offsetWidth,h=d[0].offsetHeight;if("top"==b&&h!=f&&(c=!0,a.top=a.top+f-h),"bottom"==b||"top"==b){var i=0;a.left<0&&(i=-2*a.left,a.left=0,d.offset(a),g=d[0].offsetWidth,h=d[0].offsetHeight),this.replaceArrow(i-e+g,g,"left")}else this.replaceArrow(h-f,h,"top");c&&d.offset(a)},b.prototype.replaceArrow=function(a,b,c){this.arrow().css(c,a?50*(1-a/b)+"%":"")},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},b.prototype.hide=function(){var b=this.tip(),c=a.Event("hide.bs."+this.type);return this.$element.trigger(c),c.isDefaultPrevented()?void 0:(b.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?b.one(a.support.transition.end,b.detach).emulateTransitionEnd(150):b.detach(),this.$element.trigger("hidden.bs."+this.type),this)},b.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},b.prototype.hasContent=function(){return this.getTitle()},b.prototype.getPosition=function(){var b=this.$element[0];return a.extend({},"function"==typeof b.getBoundingClientRect?b.getBoundingClientRect():{width:b.offsetWidth,height:b.offsetHeight},this.$element.offset())},b.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},b.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},b.prototype.validate=function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},b.prototype.enable=function(){this.enabled=!0},b.prototype.disable=function(){this.enabled=!1},b.prototype.toggleEnabled=function(){this.enabled=!this.enabled},b.prototype.toggle=function(b){var c=b?a(b.currentTarget)[this.type](this._options).data("bs."+this.type):this;c.tip().hasClass("in")?c.leave(c):c.enter(c)},b.prototype.destroy=function(){this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var c=a.fn.tooltip;a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof c&&c;e||d.data("bs.tooltip",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.tooltip.Constructor=b,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=c,this}}(window.jQuery),+function(a){"use strict";var b=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");b.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title:empty").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(window.jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.attr("data-target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top()),"function"==typeof h&&(h=f.bottom());var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;this.affixed!==i&&(this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin="bottom"==i?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),"bottom"==i&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()}))}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(window.jQuery); if(!jQuery)throw new Error("Bootstrap requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]}}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(window.jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d)};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.is("input")?"val":"html",e=c.data();a+="Text",e.resetText||c.data("resetText",c[d]()),c[d](e[a]||this.options[a]),setTimeout(function(){"loadingText"==a?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons"]');if(a.length){var b=this.$element.find("input").prop("checked",!this.$element.hasClass("active")).trigger("change");"radio"===b.prop("type")&&a.find(".active").removeClass("active")}this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(window.jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover"},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;this.sliding=!0,f&&this.pause(),e=e.length?e:this.$element.find(".item")[h]();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(!e.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(j),j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(j),j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .accordion-group > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?(this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350),void 0):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find("[data-toggle=collapse][data-parent="+i+"]").not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(window.jQuery),+function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b),f.trigger(d=a.Event("show.bs.dropdown")),d.isDefaultPrevented())return;f.toggleClass("open").trigger("shown.bs.dropdown")}return e.focus(),!1}},f.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var f=c(d),g=f.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&f.find(e).focus(),d.click();var h=a("[role=menu] li:not(.divider):visible a",f);if(h.length){var i=h.index(h.filter(":focus"));38==b.keyCode&&i>0&&i--,40==b.keyCode&&i<h.length-1&&i++,~i||(i=0),h.eq(i).focus()}}}};var g=a.fn.dropdown;a.fn.dropdown=function(b){return this.each(function(){var c=a(this),d=c.data("dropdown");d||c.data("dropdown",d=new f(this)),"string"==typeof b&&d[b].call(c)})},a.fn.dropdown.Constructor=f,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=g,this},a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",e,f.prototype.toggle).on("keydown.bs.dropdown.data-api",e+", [role=menu]",f.prototype.keydown)}(window.jQuery),+function(a){"use strict";var b=function(b,c){this.options=c,this.$element=a(b).on("click.dismiss.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$backdrop=this.isShown=null,this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};b.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},b.prototype.toggle=function(){return this[this.isShown?"hide":"show"]()},b.prototype.show=function(){var b=this,c=a.Event("show.bs.modal");this.$element.trigger(c),this.isShown||c.isDefaultPrevented()||(this.isShown=!0,this.escape(),this.backdrop(function(){var c=a.support.transition&&b.$element.hasClass("fade");b.$element.parent().length||b.$element.appendTo(document.body),b.$element.show(),c&&b.$element[0].offsetWidth,b.$element.addClass("in").attr("aria-hidden",!1),b.enforceFocus(),c?b.$element.one(a.support.transition.end,function(){b.$element.focus().trigger("shown.bs.modal")}).emulateTransitionEnd(300):b.$element.focus().trigger("shown.bs.modal")}))},b.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),a.support.transition&&this.$element.hasClass("fade")?this.$element.one(a.support.transition.end,a.proxy(this.hideModal,this)).emulateTransitionEnd(300):this.hideModal())},b.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.focus()},this))},b.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keyup.dismiss.bs.modal")},b.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.removeBackdrop(),a.$element.trigger("hidden.bs.modal")})},b.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},b.prototype.backdrop=function(b){var c=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var d=a.support.transition&&c;if(this.$backdrop=a('<div class="modal-backdrop '+c+'" />').appendTo(document.body),this.$element.on("click",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),d&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;d?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()):b&&b()};var c=a.fn.modal;a.fn.modal=function(c){return this.each(function(){var d=a(this),e=d.data("bs.modal"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.modal",e=new b(this,f)),"string"==typeof c?e[c]():f.show&&e.show()})},a.fn.modal.Constructor=b,a.fn.modal.noConflict=function(){return a.fn.modal=c,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());b.preventDefault(),e.modal(f).one("hide",function(){c.is(":visible")&&c.focus()})}),a(function(){var b=a(document.body).on("shown.bs.modal",".modal",function(){b.addClass("modal-open")}).on("hidden.bs.modal",".modal",function(){b.removeClass("modal-open")})})}(window.jQuery),+function(a){"use strict";var b=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};b.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},b.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focus",i="hover"==g?"mouseleave":"blur";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},b.prototype.enter=function(b){var c=this.getDefaults(),d={};this._options&&a.each(this._options,function(a,b){c[a]!=b&&(d[a]=b)});var e=b instanceof this.constructor?b:a(b.currentTarget)[this.type](d).data("bs."+this.type);return clearTimeout(e.timeout),e.options.delay&&e.options.delay.show?(e.hoverState="in",e.timeout=setTimeout(function(){"in"==e.hoverState&&e.show()},e.options.delay.show),void 0):e.show()},b.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this._options).data("bs."+this.type);return clearTimeout(c.timeout),c.options.delay&&c.options.delay.hide?(c.hoverState="out",c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide),void 0):c.hide()},b.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){if(this.$element.trigger(b),b.isDefaultPrevented())return;var c=this.tip();this.setContent(),this.options.animation&&c.addClass("fade");var d="function"==typeof this.options.placement?this.options.placement.call(this,c[0],this.$element[0]):this.options.placement,e=/\s?auto?\s?/i,f=e.test(d);f&&(d=d.replace(e,"")||"top"),c.detach().css({top:0,left:0,display:"block"}).addClass(d),this.options.container?c.appendTo(this.options.container):c.insertAfter(this.$element);var g=this.getPosition(),h=c[0].offsetWidth,i=c[0].offsetHeight;if(f){var j=this.$element.parent(),k=d,l=document.documentElement.scrollTop||document.body.scrollTop,m="body"==this.options.container?window.innerWidth:j.outerWidth(),n="body"==this.options.container?window.innerHeight:j.outerHeight(),o="body"==this.options.container?0:j.offset().left;d="bottom"==d&&g.top+g.height+i-l>n?"top":"top"==d&&g.top-l-i<0?"bottom":"right"==d&&g.right+h>m?"left":"left"==d&&g.left-h<o?"right":d,c.removeClass(k).addClass(d)}var p=this.getCalcuatedOffset(d,g,h,i);this.applyPlacement(p,d),this.$element.trigger("shown.bs."+this.type)}},b.prototype.applyPlacement=function(a,b){var c,d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),a.top=a.top+g,a.left=a.left+h,d.offset(a).addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;if("top"==b&&j!=f&&(c=!0,a.top=a.top+f-j),/bottom|top/.test(b)){var k=0;a.left<0&&(k=-2*a.left,a.left=0,d.offset(a),i=d[0].offsetWidth,j=d[0].offsetHeight),this.replaceArrow(k-e+i,i,"left")}else this.replaceArrow(j-f,j,"top");c&&d.offset(a)},b.prototype.replaceArrow=function(a,b,c){this.arrow().css(c,a?50*(1-a/b)+"%":"")},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},b.prototype.hide=function(){function b(){c.detach()}var c=this.tip(),d=a.Event("hide.bs."+this.type);return this.$element.trigger(d),d.isDefaultPrevented()?void 0:(c.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?c.one(a.support.transition.end,b).emulateTransitionEnd(150):b(),this.$element.trigger("hidden.bs."+this.type),this)},b.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},b.prototype.hasContent=function(){return this.getTitle()},b.prototype.getPosition=function(){var b=this.$element[0];return a.extend({},"function"==typeof b.getBoundingClientRect?b.getBoundingClientRect():{width:b.offsetWidth,height:b.offsetHeight},this.$element.offset())},b.prototype.getCalcuatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},b.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},b.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},b.prototype.validate=function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},b.prototype.enable=function(){this.enabled=!0},b.prototype.disable=function(){this.enabled=!1},b.prototype.toggleEnabled=function(){this.enabled=!this.enabled},b.prototype.toggle=function(b){var c=b?a(b.currentTarget)[this.type](this._options).data("bs."+this.type):this;c.tip().hasClass("in")?c.leave(c):c.enter(c)},b.prototype.destroy=function(){this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var c=a.fn.tooltip;a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof c&&c;e||d.data("bs.tooltip",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.tooltip.Constructor=b,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=c,this}}(window.jQuery),+function(a){"use strict";var b=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");b.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),""===a.find(".popover-title").html()&&a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(window.jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.attr("data-target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top()),"function"==typeof h&&(h=f.bottom());var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;this.affixed!==i&&(this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin="bottom"==i?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),"bottom"==i&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()}))}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(window.jQuery);
\ No newline at end of file \ No newline at end of file
...@@ -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 --> <!-- 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>
...@@ -124,11 +120,11 @@ bootstrap/ ...@@ -124,11 +120,11 @@ bootstrap/
<!-- Browser compatibility <!-- Browser support
================================================== --> ================================================== -->
<div class="bs-docs-section"> <div class="bs-docs-section">
<div class="page-header"> <div class="page-header">
<h1 id="browsers">Browser compatibility</h1> <h1 id="browsers">Browser support</h1>
</div> </div>
<p class="lead">Bootstrap is built to work best in the latest desktop and mobile browsers, meaning older and less advanced browsers might receive a less stylized, though fully functional, version of certain components.</p> <p class="lead">Bootstrap is built to work best in the latest desktop and mobile browsers, meaning older and less advanced browsers might receive a less stylized, though fully functional, version of certain components.</p>
...@@ -153,10 +149,64 @@ bootstrap/ ...@@ -153,10 +149,64 @@ bootstrap/
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
{% endhighlight %} {% endhighlight %}
<p>See <a href="http://stackoverflow.com/questions/6771258/whats-the-difference-if-meta-http-equiv-x-ua-compatible-content-ie-edge">this StackOverflow question</a> for more information.</p> <p>See <a href="http://stackoverflow.com/questions/6771258/whats-the-difference-if-meta-http-equiv-x-ua-compatible-content-ie-edge">this StackOverflow question</a> for more information.</p>
<h3>Windows Phone 8 and Internet Explorer 10</h3>
<p>Internet Explorer 10 doesn't differentiate device width from viewport width, and thus doesn't properly apply the media queries in Bootstrap's CSS. To address this, you can optionally include the following CSS and JavaScript to work around this problem until Microsoft issues a fix.</p>
{% highlight css %}
@-webkit-viewport { width: device-width; }
@-moz-viewport { width: device-width; }
@-ms-viewport { width: device-width; }
@-o-viewport { width: device-width; }
@viewport { width: device-width; }
{% endhighlight %}
{% highlight js %}
if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
var msViewportStyle = document.createElement("style");
msViewportStyle.appendChild(
document.createTextNode(
"@-ms-viewport{width:auto!important}"
)
);
document.getElementsByTagName("head")[0].appendChild(msViewportStyle);
}
{% endhighlight %}
<p>For more information and usage guidelines, read <a href="http://timkadlec.com/2013/01/windows-phone-8-and-device-width/">Windows Phone 8 and Device-Width</a>.</p>
</div>
<!-- Third party support
================================================== -->
<div class="bs-docs-section">
<div class="page-header">
<h1 id="third-parties">Third party support</h1>
</div>
<p class="lead">While we don't officially support any third party plugins or add-ons, we do offer some helpful advice to help avoid potential issues in your projects.</p>
<h3>Google Maps</h3>
<p>If you're using Google Maps on a Bootstrapped project, you might run into some display problems due to our use of <code>* { box-sizing: border-box; }</code>. Previously, you may have also ran into issues with the use of <code>max-width</code> on images. The following snippet should avoid all those problems.</p>
{% highlight css %}
/* Fix Google Maps canvas
*
* Wrap your Google Maps embed in a `.google-map-canvas` to reset Bootstrap's
* global `box-sizing` changes. You may optionally need to reset the `max-width`
* on images in case you've applied that anywhere else. (That shouldn't be as
* necessary with Bootstrap 3 though as that behavior is relegated to the
* `.img-responsive` class.)
*/
.google-map-canvas,
.google-map-canvas * { .box-sizing(content-box); }
/* Optional responsive image override */
img { max-width: none; }
{% endhighlight %}
</div> </div>
<!-- License FAQs <!-- License FAQs
================================================== --> ================================================== -->
<div class="bs-docs-section"> <div class="bs-docs-section">
......
...@@ -9,7 +9,8 @@ base_url: "./" ...@@ -9,7 +9,8 @@ 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 }}" class="btn btn-outline btn-lg" onclick="_gaq.push(['_trackEvent', 'Jumbotron actions', 'Download', 'Download 3.0.0 RC1']);">Download latest BS3</a>
</p> </p>
<p><strong>Heads up!</strong> Downloads are pulled directly from the latest commited code on GitHub, and as a result our docs may at times be out of sync.</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>
...@@ -24,11 +24,11 @@ base_url: "../" ...@@ -24,11 +24,11 @@ base_url: "../"
<div class="bs-callout bs-callout-danger"> <div class="bs-callout bs-callout-danger">
<h4>Plugin dependencies</h4> <h4>Plugin dependencies</h4>
<p>Some plugins and CSS components depend on other plugins. If you include plugins individually, make sure to check for these dependencies in the docs.</p> <p>Some plugins and CSS components depend on other plugins. If you include plugins individually, make sure to check for these dependencies in the docs. Also note that all plugins depend on jQuery (this means jQuery must be included <strong>before</strong> the plugin files).</p>
</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 -->
...@@ -262,7 +262,7 @@ $('#myModal').on('show.bs.modal', function (e) { ...@@ -262,7 +262,7 @@ $('#myModal').on('show.bs.modal', function (e) {
<td>remote</td> <td>remote</td>
<td>path</td> <td>path</td>
<td>false</td> <td>false</td>
<td><p>If a remote URL is provided, content will be loaded via jQuery's <code>load</code> method and injected into the <code>.modal-body</code>. If you're using the data api, you may alternatively use the <code>href</code> tag to specify the remote source. An example of this is shown below:</p> <td><p>If a remote URL is provided, content will be loaded via jQuery's <code>load</code> method and injected into the <code>.modal-body</code>. If you're using the data api, you may alternatively use the <code>href</code> attribute to specify the remote source. An example of this is shown below:</p>
{% highlight html %} {% highlight html %}
<a data-toggle="modal" href="remote.html" data-target="#modal">Click me</a> <a data-toggle="modal" href="remote.html" data-target="#modal">Click me</a>
{% endhighlight %} {% endhighlight %}
...@@ -397,7 +397,7 @@ $('#myModal').on('hidden.bs.modal', function () { ...@@ -397,7 +397,7 @@ $('#myModal').on('hidden.bs.modal', function () {
<ul class="nav nav-pills"> <ul class="nav nav-pills">
<li class="active"><a href="#">Regular link</a></li> <li class="active"><a href="#">Regular link</a></li>
<li class="dropdown"> <li class="dropdown">
<a class="dropdown-toggle" id="drop4" role="button" data-toggle="dropdown" href="#">Dropdown <b class="caret"></b></a> <a id="drop4" role="button" data-toggle="dropdown" href="#">Dropdown <b class="caret"></b></a>
<ul id="menu1" class="dropdown-menu" role="menu" aria-labelledby="drop4"> <ul id="menu1" class="dropdown-menu" role="menu" aria-labelledby="drop4">
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Action</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Another action</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Another action</a></li>
...@@ -407,7 +407,7 @@ $('#myModal').on('hidden.bs.modal', function () { ...@@ -407,7 +407,7 @@ $('#myModal').on('hidden.bs.modal', function () {
</ul> </ul>
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a class="dropdown-toggle" id="drop5" role="button" data-toggle="dropdown" href="#">Dropdown 2 <b class="caret"></b></a> <a id="drop5" role="button" data-toggle="dropdown" href="#">Dropdown 2 <b class="caret"></b></a>
<ul id="menu2" class="dropdown-menu" role="menu" aria-labelledby="drop5"> <ul id="menu2" class="dropdown-menu" role="menu" aria-labelledby="drop5">
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Action</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Another action</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Another action</a></li>
...@@ -417,7 +417,7 @@ $('#myModal').on('hidden.bs.modal', function () { ...@@ -417,7 +417,7 @@ $('#myModal').on('hidden.bs.modal', function () {
</ul> </ul>
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a class="dropdown-toggle" id="drop6" role="button" data-toggle="dropdown" href="#">Dropdown 3 <b class="caret"></b></a> <a id="drop6" role="button" data-toggle="dropdown" href="#">Dropdown 3 <b class="caret"></b></a>
<ul id="menu3" class="dropdown-menu" role="menu" aria-labelledby="drop6"> <ul id="menu3" class="dropdown-menu" role="menu" aria-labelledby="drop6">
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Action</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Another action</a></li> <li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Another action</a></li>
...@@ -436,7 +436,7 @@ $('#myModal').on('hidden.bs.modal', function () { ...@@ -436,7 +436,7 @@ $('#myModal').on('hidden.bs.modal', function () {
<p>Add <code>data-toggle="dropdown"</code> to a link or button to toggle a dropdown.</p> <p>Add <code>data-toggle="dropdown"</code> to a link or button to toggle a dropdown.</p>
{% highlight html %} {% highlight html %}
<div class="dropdown"> <div class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">Dropdown trigger</a> <a data-toggle="dropdown" href="#">Dropdown trigger</a>
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel"> <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
... ...
</ul> </ul>
...@@ -445,7 +445,7 @@ $('#myModal').on('hidden.bs.modal', function () { ...@@ -445,7 +445,7 @@ $('#myModal').on('hidden.bs.modal', function () {
<p>To keep URLs intact, use the <code>data-target</code> attribute instead of <code>href="#"</code>.</p> <p>To keep URLs intact, use the <code>data-target</code> attribute instead of <code>href="#"</code>.</p>
{% highlight html %} {% highlight html %}
<div class="dropdown"> <div class="dropdown">
<a class="dropdown-toggle" id="dLabel" role="button" data-toggle="dropdown" data-target="#" href="/page.html"> <a id="dLabel" role="button" data-toggle="dropdown" data-target="#" href="/page.html">
Dropdown <span class="caret"></span> Dropdown <span class="caret"></span>
</a> </a>
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel"> <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
...@@ -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>
...@@ -531,7 +531,7 @@ $('.dropdown-toggle').dropdown() ...@@ -531,7 +531,7 @@ $('.dropdown-toggle').dropdown()
<h3>Via JavaScript</h3> <h3>Via JavaScript</h3>
<p>Call the scrollspy via JavaScript:</p> <p>Call the scrollspy via JavaScript:</p>
{% highlight js %} {% highlight js %}
$('#navbar-example').scrollspy(options) $('body').scrollspy({ target: '#navbar-example' })
{% endhighlight %} {% endhighlight %}
<div class="bs-callout bs-callout-danger"> <div class="bs-callout bs-callout-danger">
...@@ -802,7 +802,7 @@ $('#example').tooltip(options) ...@@ -802,7 +802,7 @@ $('#example').tooltip(options)
<td>title</td> <td>title</td>
<td>string | function</td> <td>string | function</td>
<td>''</td> <td>''</td>
<td>default title value if <code>title</code> tag isn't present</td> <td>default title value if <code>title</code> attribute isn't present</td>
</tr> </tr>
<tr> <tr>
<td>trigger</td> <td>trigger</td>
...@@ -957,22 +957,22 @@ $('#myTooltip').on('hidden.bs.tooltip', function () { ...@@ -957,22 +957,22 @@ $('#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>
<div class="bs-example tooltip-demo"> <div class="bs-example tooltip-demo">
<div class="bs-example-tooltips"> <div class="bs-example-tooltips">
<button type="button" class="btn btn-default" data-toggle="popover" data-placement="left" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus."> <button type="button" class="btn btn-default" data-container="body" data-toggle="popover" data-placement="left" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
Popover on left Popover on left
</button> </button>
<button type="button" class="btn btn-default" data-toggle="popover" data-placement="top" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus."> <button type="button" class="btn btn-default" data-container="body" data-toggle="popover" data-placement="top" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
Popover on top Popover on top
</button> </button>
<button type="button" class="btn btn-default" data-toggle="popover" data-placement="bottom" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus."> <button type="button" class="btn btn-default" data-container="body" data-toggle="popover" data-placement="bottom" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
Popover on bottom Popover on bottom
</button> </button>
<button type="button" class="btn btn-default" data-toggle="popover" data-placement="right" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus."> <button type="button" class="btn btn-default" data-container="body" data-toggle="popover" data-placement="right" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
Popover on right Popover on right
</button> </button>
</div> </div>
...@@ -1480,7 +1480,7 @@ $(".collapse").collapse() ...@@ -1480,7 +1480,7 @@ $(".collapse").collapse()
<td>parent</td> <td>parent</td>
<td>selector</td> <td>selector</td>
<td>false</td> <td>false</td>
<td>If selector then all collapsible elements under the specified parent will be closed when this collapsible item is shown. (similar to traditional accordion behavior)</td> <td>If selector then all collapsible elements under the specified parent will be closed when this collapsible item is shown. (similar to traditional accordion behavior - this dependent on the <code>accordion-group</code> class)</td>
</tr> </tr>
<tr> <tr>
<td>toggle</td> <td>toggle</td>
...@@ -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>
......
...@@ -56,7 +56,9 @@ ...@@ -56,7 +56,9 @@
var $parent = this.$element.closest('[data-toggle="buttons"]') var $parent = this.$element.closest('[data-toggle="buttons"]')
if ($parent.length) { if ($parent.length) {
var $input = this.$element.find('input').prop('checked', !this.$element.hasClass('active')) var $input = this.$element.find('input')
.prop('checked', !this.$element.hasClass('active'))
.trigger('change')
if ($input.prop('type') === 'radio') $parent.find('.active').removeClass('active') if ($input.prop('type') === 'radio') $parent.find('.active').removeClass('active')
} }
......
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
this.$element.trigger(startEvent) this.$element.trigger(startEvent)
if (startEvent.isDefaultPrevented()) return if (startEvent.isDefaultPrevented()) return
var actives = this.$parent && this.$parent.find('> .accordion-group > .in') var actives = this.$parent && this.$parent.find('> .accordion-group > .in')
if (actives && actives.length) { if (actives && actives.length) {
var hasData = actives.data('bs.collapse') var hasData = actives.data('bs.collapse')
......
...@@ -58,7 +58,13 @@ ...@@ -58,7 +58,13 @@
$tip.removeClass('fade top bottom left right in') $tip.removeClass('fade top bottom left right in')
$tip.find('.popover-title:empty').hide() // Hide empty titles
//
// IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
// this manually by checking the contents.
if ($tip.find('.popover-title').html() === '') {
$tip.find('.popover-title').hide();
}
} }
Popover.prototype.hasContent = function () { Popover.prototype.hasContent = function () {
...@@ -75,6 +81,10 @@ ...@@ -75,6 +81,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,25 +193,33 @@ ...@@ -196,25 +193,33 @@
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
if (placement == 'top' && actualHeight != height) { if (placement == 'top' && actualHeight != height) {
replace = true replace = true
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
...@@ -249,6 +254,8 @@ ...@@ -249,6 +254,8 @@
var $tip = this.tip() var $tip = this.tip()
var e = $.Event('hide.bs.' + this.type) var e = $.Event('hide.bs.' + this.type)
function complete() { $tip.detach() }
this.$element.trigger(e) this.$element.trigger(e)
if (e.isDefaultPrevented()) return if (e.isDefaultPrevented()) return
...@@ -257,9 +264,9 @@ ...@@ -257,9 +264,9 @@
$.support.transition && this.$tip.hasClass('fade') ? $.support.transition && this.$tip.hasClass('fade') ?
$tip $tip
.one($.support.transition.end, $tip.detach) .one($.support.transition.end, complete)
.emulateTransitionEnd(150) : .emulateTransitionEnd(150) :
$tip.detach() complete()
this.$element.trigger('hidden.bs.' + this.type) this.$element.trigger('hidden.bs.' + this.type)
...@@ -285,6 +292,13 @@ ...@@ -285,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
...@@ -300,8 +314,8 @@ ...@@ -300,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 () {
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
// ------------------------- // -------------------------
.alert { .alert {
padding: 10px 35px 10px 15px; padding: @alert-padding (@alert-padding + 20) @alert-padding @alert-padding;
margin-bottom: @line-height-computed; margin-bottom: @line-height-computed;
color: @alert-text; color: @alert-text;
background-color: @alert-bg; background-color: @alert-bg;
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
} }
// Provide class for links that match alerts // Provide class for links that match alerts
.alert-link { .alert-link {
font-weight: 500; font-weight: @alert-link-font-weight;
color: darken(@alert-text, 10%); color: darken(@alert-text, 10%);
} }
...@@ -37,33 +37,26 @@ ...@@ -37,33 +37,26 @@
right: -21px; right: -21px;
color: inherit; color: inherit;
} }
// Improve alignment and spacing of inner content
> p,
> ul {
margin-bottom: 0;
}
> p + p {
margin-top: 5px;
}
} }
// Alternate styles // Alternate styles
// ------------------------- // -------------------------
.alert-success { .alert-success {
.alert-variant(@alert-success-bg, @alert-success-border, @alert-success-text); .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text);
} }
.alert-danger { .alert-danger {
.alert-variant(@alert-danger-bg, @alert-danger-border, @alert-danger-text); .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text);
} }
.alert-info { .alert-info {
.alert-variant(@alert-info-bg, @alert-info-border, @alert-info-text); .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text);
}
// Block alerts
// -------------------------
.alert-block {
padding-top: 15px;
padding-bottom: 15px;
> p,
> ul {
margin-bottom: 0;
}
p + p {
margin-top: 5px;
}
} }
...@@ -9,14 +9,14 @@ ...@@ -9,14 +9,14 @@
min-width: 10px; min-width: 10px;
padding: 3px 7px; padding: 3px 7px;
font-size: @font-size-small; font-size: @font-size-small;
font-weight: bold; font-weight: @badge-font-weight;
color: @badge-color; color: @badge-color;
line-height: 1; line-height: @badge-line-height;
vertical-align: baseline; vertical-align: baseline;
white-space: nowrap; white-space: nowrap;
text-align: center; text-align: center;
background-color: @badge-bg; background-color: @badge-bg;
border-radius: 10px; border-radius: @badge-border-radius;
// Empty labels/badges collapse // Empty labels/badges collapse
&:empty { &:empty {
......
...@@ -3,11 +3,32 @@ ...@@ -3,11 +3,32 @@
// -------------------------------------------------- // --------------------------------------------------
// Button carets // Button carets
.btn .caret { //
border-top-color: @btn-default-color; // Match the button text color to the arrow/caret for indicating dropdown-ness.
.caret {
.btn-default & {
border-top-color: @btn-default-color;
}
.btn-primary &,
.btn-success &,
.btn-warning &,
.btn-danger &,
.btn-info & {
border-top-color: #fff;
}
} }
.dropup .btn .caret { .dropup .caret {
border-bottom-color: @btn-default-color; .btn-default & {
border-bottom-color: @btn-default-color;
}
.btn-primary &,
.btn-success &,
.btn-warning &,
.btn-danger &,
.btn-info & {
border-bottom-color: #fff;
}
} }
// Make the div behave like a button // Make the div behave like a button
...@@ -22,9 +43,14 @@ ...@@ -22,9 +43,14 @@
// 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;
} }
&:focus {
// Remove focus outline when dropdown JS adds it after closing the menu
outline: none;
}
} }
} }
...@@ -100,7 +126,7 @@ ...@@ -100,7 +126,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,12 +143,12 @@ ...@@ -117,12 +143,12 @@
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: @caret-width-large;
} }
// 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: @caret-width-large;
} }
...@@ -142,10 +168,10 @@ ...@@ -142,10 +168,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 +183,7 @@ ...@@ -157,6 +183,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;
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
padding: @padding-base-vertical @padding-base-horizontal; padding: @padding-base-vertical @padding-base-horizontal;
margin-bottom: 0; // For input.btn margin-bottom: 0; // For input.btn
font-size: @font-size-base; font-size: @font-size-base;
font-weight: 500; font-weight: @btn-font-weight;
line-height: @line-height-base; line-height: @line-height-base;
text-align: center; text-align: center;
vertical-align: middle; vertical-align: middle;
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
&:hover, &:hover,
&:focus { &:focus {
color: @btn-hover-color; color: @btn-default-color;
text-decoration: none; text-decoration: none;
} }
...@@ -54,26 +54,26 @@ ...@@ -54,26 +54,26 @@
// -------------------------------------------------- // --------------------------------------------------
.btn-default { .btn-default {
.btn-pseudo-states(@btn-default-color, @btn-default-bg, @btn-default-border); .btn-pseudo-states(@btn-default-color; @btn-default-bg; @btn-default-border);
} }
.btn-primary { .btn-primary {
.btn-pseudo-states(@btn-primary-color, @btn-primary-bg, @btn-primary-border); .btn-pseudo-states(@btn-primary-color; @btn-primary-bg; @btn-primary-border);
} }
// Warning appears as orange // Warning appears as orange
.btn-warning { .btn-warning {
.btn-pseudo-states(@btn-warning-color, @btn-warning-bg, @btn-warning-border); .btn-pseudo-states(@btn-warning-color; @btn-warning-bg; @btn-warning-border);
} }
// Danger and error appear as red // Danger and error appear as red
.btn-danger { .btn-danger {
.btn-pseudo-states(@btn-danger-color, @btn-danger-bg, @btn-danger-border); .btn-pseudo-states(@btn-danger-color; @btn-danger-bg; @btn-danger-border);
} }
// Success appears as green // Success appears as green
.btn-success { .btn-success {
.btn-pseudo-states(@btn-success-color, @btn-success-bg, @btn-success-border); .btn-pseudo-states(@btn-success-color; @btn-success-bg; @btn-success-border);
} }
// Info appears as blue-green // Info appears as blue-green
.btn-info { .btn-info {
.btn-pseudo-states(@btn-info-color, @btn-info-bg, @btn-info-border); .btn-pseudo-states(@btn-info-color; @btn-info-bg; @btn-info-border);
} }
...@@ -110,7 +110,7 @@ ...@@ -110,7 +110,7 @@
fieldset[disabled] & { fieldset[disabled] & {
&:hover, &:hover,
&:focus { &:focus {
color: @gray-dark; color: @btn-link-disabled-color;
text-decoration: none; text-decoration: none;
} }
} }
...@@ -120,19 +120,20 @@ ...@@ -120,19 +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: @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;
} }
......
...@@ -69,9 +69,9 @@ ...@@ -69,9 +69,9 @@
top: 0; top: 0;
left: 0; left: 0;
bottom: 0; bottom: 0;
width: 15%; width: @carousel-control-width;
.opacity(.5); .opacity(@carousel-control-opacity);
font-size: 20px; font-size: @carousel-control-font-size;
color: @carousel-control-color; color: @carousel-control-color;
text-align: center; text-align: center;
text-shadow: @carousel-text-shadow; text-shadow: @carousel-text-shadow;
...@@ -81,13 +81,11 @@ ...@@ -81,13 +81,11 @@
// Set gradients for backgrounds // Set gradients for backgrounds
&.left { &.left {
#gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001)); #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001));
background-color: transparent;
} }
&.right { &.right {
left: auto; left: auto;
right: 0; right: 0;
#gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5)); #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5));
background-color: transparent;
} }
// Hover/focus state // Hover/focus state
...@@ -127,14 +125,17 @@ ...@@ -127,14 +125,17 @@
} }
// Optional indicator pips // Optional indicator pips
// ----------------------------- //
// Add an unordered list with the following class and add a list item for each
// slide your carousel holds.
.carousel-indicators { .carousel-indicators {
position: absolute; position: absolute;
bottom: 10px; bottom: 10px;
left: 50%; left: 50%;
z-index: 15; z-index: 15;
width: 120px; width: 60%;
margin-left: -60px; margin-left: -30%;
padding-left: 0; padding-left: 0;
list-style: none; list-style: none;
text-align: center; text-align: center;
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
.close { .close {
float: right; float: right;
font-size: (@font-size-base * 1.5); font-size: (@font-size-base * 1.5);
font-weight: bold; font-weight: @close-font-weight;
line-height: 1; line-height: 1;
color: @close-color; color: @close-color;
text-shadow: @close-text-shadow; text-shadow: @close-text-shadow;
......
...@@ -11,12 +11,18 @@ ...@@ -11,12 +11,18 @@
height: 0; height: 0;
margin-left: 2px; margin-left: 2px;
vertical-align: middle; vertical-align: middle;
border-top: 4px solid @dropdown-caret-color; border-top: @caret-width-base solid @dropdown-caret-color;
border-right: 4px solid transparent; border-right: @caret-width-base solid transparent;
border-left: 4px solid transparent; border-left: @caret-width-base solid transparent;
content: ""; content: "";
} }
// The dropdown wrapper (div)
// --------------------------
.dropdown {
position: relative;
}
// The dropdown menu (ul) // The dropdown menu (ul)
// ---------------------- // ----------------------
.dropdown-menu { .dropdown-menu {
...@@ -68,6 +74,7 @@ ...@@ -68,6 +74,7 @@
text-decoration: none; text-decoration: none;
color: @dropdown-link-hover-color; color: @dropdown-link-hover-color;
#gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%)); #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));
background-color: darken(@dropdown-link-hover-bg, 5%);
} }
} }
...@@ -81,6 +88,7 @@ ...@@ -81,6 +88,7 @@
text-decoration: none; text-decoration: none;
outline: 0; outline: 0;
#gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%)); #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));
background-color: darken(@dropdown-link-active-bg, 5%);
} }
} }
......
...@@ -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,32 +215,34 @@ input[type="number"] { ...@@ -218,32 +215,34 @@ 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;
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;
line-height: @line-height-small;
border-radius: @border-radius-small; border-radius: @border-radius-small;
} }
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;
} }
} }
...@@ -255,15 +254,26 @@ textarea { ...@@ -255,15 +254,26 @@ textarea {
// Warning // Warning
.has-warning { .has-warning {
.form-control-validation(@state-warning-text, @state-warning-text, @state-warning-bg); .form-control-validation(@state-warning-text; @state-warning-text; @state-warning-bg);
} }
// Error // Error
.has-error { .has-error {
.form-control-validation(@state-danger-text, @state-danger-text, @state-danger-bg); .form-control-validation(@state-danger-text; @state-danger-text; @state-danger-bg);
} }
// Success // Success
.has-success { .has-success {
.form-control-validation(@state-success-text, @state-success-text, @state-success-bg); .form-control-validation(@state-success-text; @state-success-text; @state-success-bg);
}
// Static form control text
//
// Apply class to a `p` element to make any string of text align with labels in
// a horizontal form layout.
.form-control-static {
margin-bottom: 0; // Remove default margin from `p`
padding-top: @padding-base-vertical;
} }
...@@ -278,3 +288,57 @@ textarea { ...@@ -278,3 +288,57 @@ textarea {
margin-bottom: 10px; margin-bottom: 10px;
color: lighten(@text-color, 25%); // lighten the text some for contrast color: lighten(@text-color, 25%); // lighten the text some for contrast
} }
// Inline forms
//
// Make forms appear inline(-block).
.form-inline {
.form-control,
.radio,
.checkbox {
display: inline-block;
}
// Remove default margin on radios/checkboxes that were used for stacking, and
// then undo the floating of radios and checkboxes to match (which also avoids
// a bug in WebKit: https://github.com/twbs/bootstrap/issues/1969).
.radio,
.checkbox {
margin-top: 0;
margin-bottom: 0;
padding-left: 0;
}
.radio input[type="radio"],
.checkbox input[type="checkbox"] {
float: none;
margin-left: 0;
}
}
// Horizontal forms
//
// Horizontal forms are built on grid classes and allow you to create forms with
// labels on the left and inputs on the right.
.form-horizontal .control-label,
.form-horizontal .radio-inline,
.form-horizontal .checkbox-inline {
padding-top: @padding-base-vertical;
}
.form-horizontal {
.form-group {
.make-row();
}
}
// Only right align form labels here when the columns stop stacking
@media (min-width: @screen-tablet) {
.form-horizontal .control-label {
text-align: right;
}
}
...@@ -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,
...@@ -92,7 +92,7 @@ ...@@ -92,7 +92,7 @@
.col-12 { width: 100%; } .col-12 { width: 100%; }
// Small device columns (phones to tablets) // Small device columns (phones to tablets)
@media (min-width: @screen-tablet) { @media (min-width: @screen-tablet) and (max-width: @screen-tablet-max) {
.container { .container {
max-width: @container-tablet; max-width: @container-tablet;
} }
...@@ -125,29 +125,42 @@ ...@@ -125,29 +125,42 @@
.col-sm-12 { width: 100%; } .col-sm-12 { width: 100%; }
// Push and pull columns for source order changes // Push and pull columns for source order changes
.col-push-1 { left: percentage((1 / @grid-columns)); } .col-sm-push-1 { left: percentage((1 / @grid-columns)); }
.col-push-2 { left: percentage((2 / @grid-columns)); } .col-sm-push-2 { left: percentage((2 / @grid-columns)); }
.col-push-3 { left: percentage((3 / @grid-columns)); } .col-sm-push-3 { left: percentage((3 / @grid-columns)); }
.col-push-4 { left: percentage((4 / @grid-columns)); } .col-sm-push-4 { left: percentage((4 / @grid-columns)); }
.col-push-5 { left: percentage((5 / @grid-columns)); } .col-sm-push-5 { left: percentage((5 / @grid-columns)); }
.col-push-6 { left: percentage((6 / @grid-columns)); } .col-sm-push-6 { left: percentage((6 / @grid-columns)); }
.col-push-7 { left: percentage((7 / @grid-columns)); } .col-sm-push-7 { left: percentage((7 / @grid-columns)); }
.col-push-8 { left: percentage((8 / @grid-columns)); } .col-sm-push-8 { left: percentage((8 / @grid-columns)); }
.col-push-9 { left: percentage((9 / @grid-columns)); } .col-sm-push-9 { left: percentage((9 / @grid-columns)); }
.col-push-10 { left: percentage((10/ @grid-columns)); } .col-sm-push-10 { left: percentage((10/ @grid-columns)); }
.col-push-11 { left: percentage((11/ @grid-columns)); } .col-sm-push-11 { left: percentage((11/ @grid-columns)); }
.col-pull-1 { right: percentage((1 / @grid-columns)); } .col-sm-pull-1 { right: percentage((1 / @grid-columns)); }
.col-pull-2 { right: percentage((2 / @grid-columns)); } .col-sm-pull-2 { right: percentage((2 / @grid-columns)); }
.col-pull-3 { right: percentage((3 / @grid-columns)); } .col-sm-pull-3 { right: percentage((3 / @grid-columns)); }
.col-pull-4 { right: percentage((4 / @grid-columns)); } .col-sm-pull-4 { right: percentage((4 / @grid-columns)); }
.col-pull-5 { right: percentage((5 / @grid-columns)); } .col-sm-pull-5 { right: percentage((5 / @grid-columns)); }
.col-pull-6 { right: percentage((6 / @grid-columns)); } .col-sm-pull-6 { right: percentage((6 / @grid-columns)); }
.col-pull-7 { right: percentage((7 / @grid-columns)); } .col-sm-pull-7 { right: percentage((7 / @grid-columns)); }
.col-pull-8 { right: percentage((8 / @grid-columns)); } .col-sm-pull-8 { right: percentage((8 / @grid-columns)); }
.col-pull-9 { right: percentage((9 / @grid-columns)); } .col-sm-pull-9 { right: percentage((9 / @grid-columns)); }
.col-pull-10 { right: percentage((10/ @grid-columns)); } .col-sm-pull-10 { right: percentage((10/ @grid-columns)); }
.col-pull-11 { right: percentage((11/ @grid-columns)); } .col-sm-pull-11 { right: percentage((11/ @grid-columns)); }
// Offsets
.col-sm-offset-1 { margin-left: percentage((1 / @grid-columns)); }
.col-sm-offset-2 { margin-left: percentage((2 / @grid-columns)); }
.col-sm-offset-3 { margin-left: percentage((3 / @grid-columns)); }
.col-sm-offset-4 { margin-left: percentage((4 / @grid-columns)); }
.col-sm-offset-5 { margin-left: percentage((5 / @grid-columns)); }
.col-sm-offset-6 { margin-left: percentage((6 / @grid-columns)); }
.col-sm-offset-7 { margin-left: percentage((7 / @grid-columns)); }
.col-sm-offset-8 { margin-left: percentage((8 / @grid-columns)); }
.col-sm-offset-9 { margin-left: percentage((9 / @grid-columns)); }
.col-sm-offset-10 { margin-left: percentage((10/ @grid-columns)); }
.col-sm-offset-11 { margin-left: percentage((11/ @grid-columns)); }
} }
// Medium and large device columns (desktop and up) // Medium and large device columns (desktop and up)
...@@ -182,18 +195,43 @@ ...@@ -182,18 +195,43 @@
.col-lg-11 { width: percentage((11/ @grid-columns)); } .col-lg-11 { width: percentage((11/ @grid-columns)); }
.col-lg-12 { width: 100%; } .col-lg-12 { width: 100%; }
// Push and pull columns for source order changes
.col-lg-push-1 { left: percentage((1 / @grid-columns)); }
.col-lg-push-2 { left: percentage((2 / @grid-columns)); }
.col-lg-push-3 { left: percentage((3 / @grid-columns)); }
.col-lg-push-4 { left: percentage((4 / @grid-columns)); }
.col-lg-push-5 { left: percentage((5 / @grid-columns)); }
.col-lg-push-6 { left: percentage((6 / @grid-columns)); }
.col-lg-push-7 { left: percentage((7 / @grid-columns)); }
.col-lg-push-8 { left: percentage((8 / @grid-columns)); }
.col-lg-push-9 { left: percentage((9 / @grid-columns)); }
.col-lg-push-10 { left: percentage((10/ @grid-columns)); }
.col-lg-push-11 { left: percentage((11/ @grid-columns)); }
.col-lg-pull-1 { right: percentage((1 / @grid-columns)); }
.col-lg-pull-2 { right: percentage((2 / @grid-columns)); }
.col-lg-pull-3 { right: percentage((3 / @grid-columns)); }
.col-lg-pull-4 { right: percentage((4 / @grid-columns)); }
.col-lg-pull-5 { right: percentage((5 / @grid-columns)); }
.col-lg-pull-6 { right: percentage((6 / @grid-columns)); }
.col-lg-pull-7 { right: percentage((7 / @grid-columns)); }
.col-lg-pull-8 { right: percentage((8 / @grid-columns)); }
.col-lg-pull-9 { right: percentage((9 / @grid-columns)); }
.col-lg-pull-10 { right: percentage((10/ @grid-columns)); }
.col-lg-pull-11 { right: percentage((11/ @grid-columns)); }
// Offsets // Offsets
.col-offset-1 { margin-left: percentage((1 / @grid-columns)); } .col-lg-offset-1 { margin-left: percentage((1 / @grid-columns)); }
.col-offset-2 { margin-left: percentage((2 / @grid-columns)); } .col-lg-offset-2 { margin-left: percentage((2 / @grid-columns)); }
.col-offset-3 { margin-left: percentage((3 / @grid-columns)); } .col-lg-offset-3 { margin-left: percentage((3 / @grid-columns)); }
.col-offset-4 { margin-left: percentage((4 / @grid-columns)); } .col-lg-offset-4 { margin-left: percentage((4 / @grid-columns)); }
.col-offset-5 { margin-left: percentage((5 / @grid-columns)); } .col-lg-offset-5 { margin-left: percentage((5 / @grid-columns)); }
.col-offset-6 { margin-left: percentage((6 / @grid-columns)); } .col-lg-offset-6 { margin-left: percentage((6 / @grid-columns)); }
.col-offset-7 { margin-left: percentage((7 / @grid-columns)); } .col-lg-offset-7 { margin-left: percentage((7 / @grid-columns)); }
.col-offset-8 { margin-left: percentage((8 / @grid-columns)); } .col-lg-offset-8 { margin-left: percentage((8 / @grid-columns)); }
.col-offset-9 { margin-left: percentage((9 / @grid-columns)); } .col-lg-offset-9 { margin-left: percentage((9 / @grid-columns)); }
.col-offset-10 { margin-left: percentage((10/ @grid-columns)); } .col-lg-offset-10 { margin-left: percentage((10/ @grid-columns)); }
.col-offset-11 { margin-left: percentage((11/ @grid-columns)); } .col-lg-offset-11 { margin-left: percentage((11/ @grid-columns)); }
} }
// Large desktops and up // Large desktops and up
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
// Base styles // Base styles
// ------------------------- // -------------------------
.input-group { .input-group {
position: relative; // For dropdowns
display: table; display: table;
border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table
...@@ -43,23 +44,22 @@ ...@@ -43,23 +44,22 @@
// Text input groups // Text input groups
// ------------------------- // -------------------------
.input-group-addon { .input-group-addon {
.box-sizing(border-box);
padding: @padding-base-vertical @padding-base-horizontal; padding: @padding-base-vertical @padding-base-horizontal;
font-size: @font-size-base; font-size: @font-size-base;
font-weight: normal; font-weight: normal;
line-height: @line-height-base; line-height: 1;
text-align: center; text-align: center;
background-color: @gray-lighter; background-color: @gray-lighter;
border: 1px solid @input-group-addon-border-color; border: 1px solid @input-group-addon-border-color;
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;
} }
&.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;
...@@ -112,42 +112,3 @@ ...@@ -112,42 +112,3 @@
z-index: 2; z-index: 2;
} }
} }
// Inline forms
// --------------------------------------------------
.form-inline {
.form-control,
.radio,
.checkbox {
display: inline-block;
}
.radio,
.checkbox {
margin-top: 0;
margin-bottom: 0;
}
}
// Horizontal forms
// --------------------------------------------------
// Horizontal forms are built on grid classes.
.form-horizontal .control-label {
padding-top: 9px;
}
.form-horizontal {
.form-group {
.make-row();
}
}
// Only right align form labels here when the columns stop stacking
@media (min-width: @screen-tablet) {
.form-horizontal .control-label {
text-align: right;
}
}
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
text-align: center; text-align: center;
white-space: nowrap; white-space: nowrap;
vertical-align: baseline; vertical-align: baseline;
background-color: @gray-light;
border-radius: .25em; border-radius: .25em;
// Add hover effects, but only for links // Add hover effects, but only for links
...@@ -22,13 +21,17 @@ ...@@ -22,13 +21,17 @@
color: @label-link-hover-color; color: @label-link-hover-color;
text-decoration: none; text-decoration: none;
cursor: pointer; cursor: pointer;
background-color: darken(@gray-light, 10%);
} }
} }
} }
// Colors // Colors
// Contextual variations (linked labels get darker on :hover) // Contextual variations (linked labels get darker on :hover)
.label-default {
.label-variant(@label-default-bg);
}
.label-danger { .label-danger {
.label-variant(@label-danger-bg); .label-variant(@label-danger-bg);
} }
......
...@@ -37,6 +37,9 @@ ...@@ -37,6 +37,9 @@
float: right; float: right;
margin-right: -15px; margin-right: -15px;
} }
> .badge + .badge {
margin-right: 0;
}
} }
// Custom content options // Custom content options
......
...@@ -44,12 +44,12 @@ ...@@ -44,12 +44,12 @@
} }
// Sizing shortcuts // Sizing shortcuts
.size(@width, @height) { .size(@width; @height) {
width: @width; width: @width;
height: @height; height: @height;
} }
.square(@size) { .square(@size) {
.size(@size, @size); .size(@size; @size);
} }
// Placeholder text // Placeholder text
...@@ -130,25 +130,25 @@ ...@@ -130,25 +130,25 @@
// 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) {
-webkit-transform: translate3d(@x, @y, @z); -webkit-transform: translate3d(@x, @y, @z);
transform: translate3d(@x, @y, @z); transform: translate3d(@x, @y, @z);
} }
...@@ -165,12 +165,12 @@ ...@@ -165,12 +165,12 @@
// Background clipping // Background clipping
.background-clip(@clip) { .background-clip(@clip) {
background-clip: @clip; background-clip: @clip;
} }
// Background sizing // Background sizing
.background-size(@size) { .background-size(@size) {
background-size: @size; background-size: @size;
} }
// Box sizing // Box sizing
...@@ -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;
} }
...@@ -197,7 +197,7 @@ ...@@ -197,7 +197,7 @@
} }
// CSS3 Content Columns // CSS3 Content Columns
.content-columns(@column-count, @column-gap: @grid-gutter-width) { .content-columns(@column-count; @column-gap: @grid-gutter-width) {
-webkit-column-count: @column-count; -webkit-column-count: @column-count;
-moz-column-count: @column-count; -moz-column-count: @column-count;
column-count: @column-count; column-count: @column-count;
...@@ -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;
} }
...@@ -235,8 +235,7 @@ ...@@ -235,8 +235,7 @@
// //
// Creates two color stops, start and end, by specifying a color and position for each color stop. // Creates two color stops, start and end, by specifying a color and position for each color stop.
// Color stops are not available in IE9 and below. // Color stops are not available in IE9 and below.
.horizontal(@start-color: #555; @start-percent: 0%; @end-color: #333; @end-percent: 100%) { .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
background-color: @end-color;
background-image: -webkit-gradient(linear, @start-percent top, @end-percent top, from(@start-color), to(@end-color)); // Safari 4+, Chrome 2+ background-image: -webkit-gradient(linear, @start-percent top, @end-percent top, from(@start-color), to(@end-color)); // Safari 4+, Chrome 2+
background-image: -webkit-linear-gradient(left, color-stop(@start-color @start-percent), color-stop(@end-color @end-percent)); // Safari 5.1+, Chrome 10+ background-image: -webkit-linear-gradient(left, color-stop(@start-color @start-percent), color-stop(@end-color @end-percent)); // Safari 5.1+, Chrome 10+
background-image: -moz-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // FF 3.6+ background-image: -moz-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // FF 3.6+
...@@ -249,8 +248,7 @@ ...@@ -249,8 +248,7 @@
// //
// Creates two color stops, start and end, by specifying a color and position for each color stop. // Creates two color stops, start and end, by specifying a color and position for each color stop.
// Color stops are not available in IE9 and below. // Color stops are not available in IE9 and below.
.vertical(@start-color: #555; @start-percent: 0%; @end-color: #333; @end-percent: 100%) { .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
background-color: @end-color;
background-image: -webkit-gradient(linear, left @start-percent, left @end-percent, from(@start-color), to(@end-color)); // Safari 4+, Chrome 2+ background-image: -webkit-gradient(linear, left @start-percent, left @end-percent, from(@start-color), to(@end-color)); // Safari 4+, Chrome 2+
background-image: -webkit-linear-gradient(top, @start-color, @start-percent, @end-color, @end-percent); // Safari 5.1+, Chrome 10+ background-image: -webkit-linear-gradient(top, @start-color, @start-percent, @end-color, @end-percent); // Safari 5.1+, Chrome 10+
background-image: -moz-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // FF 3.6+ background-image: -moz-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // FF 3.6+
...@@ -259,15 +257,13 @@ ...@@ -259,15 +257,13 @@
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down
} }
.directional(@start-color: #555, @end-color: #333, @deg: 45deg) { .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {
background-color: @end-color;
background-repeat: repeat-x; background-repeat: repeat-x;
background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1+, Chrome 10+ background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1+, Chrome 10+
background-image: -moz-linear-gradient(@deg, @start-color, @end-color); // FF 3.6+ background-image: -moz-linear-gradient(@deg, @start-color, @end-color); // FF 3.6+
background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10 background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10
} }
.horizontal-three-colors(@start-color: #00b3ee, @mid-color: #7a43b6, @color-stop: 50%, @end-color: #c3325f) { .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
background-color: mix(@mid-color, @end-color, 80%);
background-image: -webkit-gradient(left, linear, 0 0, 0 100%, from(@start-color), color-stop(@color-stop, @mid-color), to(@end-color)); background-image: -webkit-gradient(left, linear, 0 0, 0 100%, from(@start-color), color-stop(@color-stop, @mid-color), to(@end-color));
background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color); background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
background-image: -moz-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color); background-image: -moz-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
...@@ -275,9 +271,7 @@ ...@@ -275,9 +271,7 @@
background-repeat: no-repeat; background-repeat: no-repeat;
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
} }
.vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
.vertical-three-colors(@start-color: #00b3ee, @mid-color: #7a43b6, @color-stop: 50%, @end-color: #c3325f) {
background-color: mix(@mid-color, @end-color, 80%);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@start-color), color-stop(@color-stop, @mid-color), to(@end-color)); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@start-color), color-stop(@color-stop, @mid-color), to(@end-color));
background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color); background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
background-image: -moz-linear-gradient(top, @start-color, @mid-color @color-stop, @end-color); background-image: -moz-linear-gradient(top, @start-color, @mid-color @color-stop, @end-color);
...@@ -285,16 +279,14 @@ ...@@ -285,16 +279,14 @@
background-repeat: no-repeat; background-repeat: no-repeat;
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
} }
.radial(@inner-color: #555, @outer-color: #333) { .radial(@inner-color: #555; @outer-color: #333) {
background-color: @outer-color;
background-image: -webkit-gradient(radial, center center, 0, center center, 460, from(@inner-color), to(@outer-color)); background-image: -webkit-gradient(radial, center center, 0, center center, 460, from(@inner-color), to(@outer-color));
background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color); background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);
background-image: -moz-radial-gradient(circle, @inner-color, @outer-color); background-image: -moz-radial-gradient(circle, @inner-color, @outer-color);
background-image: radial-gradient(circle, @inner-color, @outer-color); background-image: radial-gradient(circle, @inner-color, @outer-color);
background-repeat: no-repeat; background-repeat: no-repeat;
} }
.striped(@color: #555, @angle: 45deg) { .striped(@color: #555; @angle: 45deg) {
background-color: @color;
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255,255,255,.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,.15)), color-stop(.75, rgba(255,255,255,.15)), color-stop(.75, transparent), to(transparent)); background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255,255,255,.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,.15)), color-stop(.75, rgba(255,255,255,.15)), color-stop(.75, transparent), to(transparent));
background-image: -webkit-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent); background-image: -webkit-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
background-image: -moz-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent); background-image: -moz-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
...@@ -316,7 +308,7 @@ ...@@ -316,7 +308,7 @@
// -------------------------------------------------- // --------------------------------------------------
// Short retina mixin for setting background-image and -size // Short retina mixin for setting background-image and -size
.img-retina(@file-1x, @file-2x, @width-1x, @height-1x) { .img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {
background-image: url("@{file-1x}"); background-image: url("@{file-1x}");
@media @media
...@@ -347,7 +339,7 @@ ...@@ -347,7 +339,7 @@
// Alerts // Alerts
// ------------------------- // -------------------------
.alert-variant(@background, @border, @text-color) { .alert-variant(@background; @border; @text-color) {
background-color: @background; background-color: @background;
border-color: @border; border-color: @border;
color: @text-color; color: @text-color;
...@@ -363,7 +355,7 @@ ...@@ -363,7 +355,7 @@
// ------------------------- // -------------------------
// Easily pump out default styles, as well as :hover, :focus, :active, // Easily pump out default styles, as well as :hover, :focus, :active,
// and disabled options for all buttons // and disabled options for all buttons
.btn-pseudo-states(@color, @background, @border) { .btn-pseudo-states(@color; @background; @border) {
color: @color; color: @color;
background-color: @background; background-color: @background;
border-color: @border; border-color: @border;
...@@ -372,8 +364,9 @@ ...@@ -372,8 +364,9 @@
&:focus, &:focus,
&:active, &:active,
&.active { &.active {
background-color: darken(@background, 5%); color: @color;
border-color: darken(@border, 10%); background-color: darken(@background, 8%);
border-color: darken(@border, 12%);
} }
&.disabled, &.disabled,
...@@ -405,7 +398,7 @@ ...@@ -405,7 +398,7 @@
// Navbar vertical align // Navbar vertical align
// ------------------------- // -------------------------
// Vertically center elements in the navbar. // Vertically center elements in the navbar.
// Example: an element has a height of 30px, so write out `.navbarVerticalAlign(30px);` to calculate the appropriate top margin. // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.
.navbar-vertical-align(@element-height) { .navbar-vertical-align(@element-height) {
margin-top: ((@navbar-height - @element-height) / 2); margin-top: ((@navbar-height - @element-height) / 2);
margin-bottom: ((@navbar-height - @element-height) / 2); margin-bottom: ((@navbar-height - @element-height) / 2);
...@@ -520,7 +513,7 @@ ...@@ -520,7 +513,7 @@
// Used in forms.less to generate the form validation CSS for warnings, errors, // Used in forms.less to generate the form validation CSS for warnings, errors,
// and successes. // and successes.
.form-control-validation(@text-color: #555, @border-color: #ccc, @background-color: #f5f5f5) { .form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {
// Color the label and help text // Color the label and help text
.help-block, .help-block,
.control-label { .control-label {
...@@ -528,7 +521,6 @@ ...@@ -528,7 +521,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 +536,25 @@ ...@@ -544,3 +536,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();
...@@ -20,15 +20,13 @@ ...@@ -20,15 +20,13 @@
// ------------------------- // -------------------------
.navbar-nav { .navbar-nav {
// Space out from .navbar .brand and .btn-navbar when stacked in mobile views
margin-top: 10px;
margin-bottom: 15px; margin-bottom: 15px;
> li > a { > li > a {
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 {
...@@ -88,6 +86,39 @@ ...@@ -88,6 +86,39 @@
margin-bottom: 0; // override .navbar defaults margin-bottom: 0; // override .navbar defaults
} }
.nav-collapse {
// Space out collapsed contents within the mobile navbar
padding-bottom: @navbar-padding-vertical;
// Clear floated elements and prevent collapsing of padding
.clearfix();
// When there is no `.navbar-brand` present (which normally sits between the
// navbar brand and toggle), prevent the nav from overlapping the toggle.
.navbar-toggle + & {
width: 100%;
margin-top: @navbar-height;
}
}
// Scrollable navbar navigation
//
// Sometimes you might have too many links in your fixed navbar and you need to
// maintain access to all that content. To help, add `.nav-collapse-scrollable`
// to your `.nav-collapse` to prevent the the content from flowing past the max-
// height of your browser.
//
// This is not automatically added to the `.navbar-fixed-top` because it causes
// z-index bugs in iOS7 (possibly earlier).
@media (max-width: @screen-small) {
.nav-collapse-scrollable {
margin-bottom: @navbar-padding-vertical;
max-height: 360px;
overflow-y: scroll;
-webkit-overflow-scrolling: touch;
}
}
// //
...@@ -116,12 +147,12 @@ ...@@ -116,12 +147,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 +333,7 @@ ...@@ -302,6 +333,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;
...@@ -317,7 +349,6 @@ ...@@ -317,7 +349,6 @@
} }
&.pull-right { &.pull-right {
float: right;
width: auto; width: auto;
} }
} }
...@@ -332,6 +363,7 @@ ...@@ -332,6 +363,7 @@
.nav-collapse.collapse { .nav-collapse.collapse {
display: block !important; display: block !important;
height: auto !important; height: auto !important;
padding-bottom: 0; // Override default setting
overflow: visible !important; overflow: visible !important;
} }
...@@ -354,6 +386,8 @@ ...@@ -354,6 +386,8 @@
// Add a class to make any element properly align itself vertically within the navbars. // Add a class to make any element properly align itself vertically within the navbars.
.navbar-text { .navbar-text {
float: left;
padding: 0 @navbar-padding-horizontal;
.navbar-vertical-align(@line-height-computed); .navbar-vertical-align(@line-height-computed);
} }
......
...@@ -56,12 +56,6 @@ ...@@ -56,12 +56,6 @@
} }
} }
// Redeclare pull classes because of specificity
// Todo: consider making these utilities !important to avoid this bullshit
> .pull-right {
float: right;
}
// Dividers (basically an hr) within the dropdown // Dividers (basically an hr) within the dropdown
.nav-divider { .nav-divider {
.nav-divider(); .nav-divider();
...@@ -69,40 +63,6 @@ ...@@ -69,40 +63,6 @@
} }
// Nav variations
// --------------------------------------------------
// Justified nav links
// -------------------------
.nav-justified {
width: 100%;
> li {
float: none;
display: table-cell;
width: 1%;
> a {
text-align: center;
}
}
}
// Move borders to anchors instead of bottom of list
.nav-tabs-justified {
border-bottom: 0;
> li > a {
border-bottom: 1px solid @nav-tabs-justified-link-border-color;
// Override margin from .nav-tabs
margin-right: 0;
}
> .active > a {
border-bottom-color: @nav-tabs-justified-active-link-border-color;
}
}
// Tabs // Tabs
// ------------------------- // -------------------------
...@@ -185,6 +145,39 @@ ...@@ -185,6 +145,39 @@
} }
// Nav variations
// --------------------------------------------------
// Justified nav links
// -------------------------
.nav-justified {
width: 100%;
> li {
float: none;
display: table-cell;
width: 1%;
> a {
text-align: center;
}
}
}
// Move borders to anchors instead of bottom of list
.nav-tabs-justified {
border-bottom: 0;
> li > a {
border-bottom: 1px solid @nav-tabs-justified-link-border-color;
// Override margin from .nav-tabs
margin-right: 0;
}
> .active > a {
border-bottom-color: @nav-tabs-justified-active-link-border-color;
}
}
// Tabbable tabs // Tabbable tabs
// ------------------------- // -------------------------
......
...@@ -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 {
......
...@@ -11,6 +11,24 @@ ...@@ -11,6 +11,24 @@
border: 1px solid @panel-border; border: 1px solid @panel-border;
border-radius: @panel-border-radius; border-radius: @panel-border-radius;
.box-shadow(0 1px 1px rgba(0,0,0,.05)); .box-shadow(0 1px 1px rgba(0,0,0,.05));
// List groups in panels
.list-group {
margin: 15px -15px -15px;
.list-group-item {
border-width: 1px 0;
// Remove border radius for top one
&:first-child {
.border-top-radius(0);
}
// But keep it for the last one
&:last-child {
border-bottom: 0;
}
}
}
} }
// Optional heading // Optional heading
...@@ -29,6 +47,9 @@ ...@@ -29,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)
...@@ -82,21 +103,3 @@ ...@@ -82,21 +103,3 @@
border-color: @panel-info-border; border-color: @panel-info-border;
} }
} }
// List groups in panels
.list-group-flush {
margin: 15px -15px -15px;
.list-group-item {
border-width: 1px 0;
// Remove border radius for top one
&:first-child {
.border-top-radius(0);
}
// But keep it for the last one
&:last-child {
border-bottom: 0;
}
}
}
...@@ -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; }
......
...@@ -162,7 +162,7 @@ table { ...@@ -162,7 +162,7 @@ table {
> th.active, > th.active,
&.active > td, &.active > td,
&.active > th { &.active > th {
background-color: @table-bg-hover; background-color: @table-bg-active;
} }
> td.success, > td.success,
> th.success, > th.success,
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
line-height: 1.4; line-height: 1.4;
.opacity(0); .opacity(0);
&.in { .opacity(1); } &.in { .opacity(.9); }
&.top { margin-top: -3px; padding: 5px 0; } &.top { margin-top: -3px; padding: 5px 0; }
&.right { margin-left: 3px; padding: 0 5px; } &.right { margin-left: 3px; padding: 0 5px; }
&.bottom { margin-top: 3px; padding: 5px 0; } &.bottom { margin-top: 3px; padding: 5px 0; }
......
...@@ -141,18 +141,25 @@ dt { ...@@ -141,18 +141,25 @@ dt {
dd { dd {
margin-left: 0; // Undo browser default margin-left: 0; // Undo browser default
} }
// Horizontal layout (like forms)
.dl-horizontal { // Horizontal description lists
dt { //
float: left; // Defaults to being stacked without any of the below styles applied, until the
width: (@component-offset-horizontal - 20); // grid breakpoint is reached (default of ~768px).
clear: left;
text-align: right; @media (min-width: @grid-float-breakpoint) {
.text-overflow(); .dl-horizontal {
} dt {
dd { float: left;
.clearfix(); // Clear the floated `dt` if an empty `dd` is present width: (@component-offset-horizontal - 20);
margin-left: @component-offset-horizontal; clear: left;
text-align: right;
.text-overflow();
}
dd {
margin-left: @component-offset-horizontal;
.clearfix(); // Clear the floated `dt` if an empty `dd` is present
}
} }
} }
...@@ -195,7 +202,6 @@ blockquote { ...@@ -195,7 +202,6 @@ blockquote {
// Float right with text-align: right // Float right with text-align: right
&.pull-right { &.pull-right {
float: right;
padding-right: 15px; padding-right: 15px;
padding-left: 0; padding-left: 0;
border-right: 5px solid @blockquote-border-color; border-right: 5px solid @blockquote-border-color;
......
...@@ -10,10 +10,10 @@ ...@@ -10,10 +10,10 @@
.clearfix(); .clearfix();
} }
.pull-right { .pull-right {
float: right; float: right !important;
} }
.pull-left { .pull-left {
float: left; float: left !important;
} }
......
...@@ -60,21 +60,26 @@ ...@@ -60,21 +60,26 @@
// ------------------------- // -------------------------
// Based on 14px font-size and 1.428 line-height (~20px to start) // Based on 14px font-size and 1.428 line-height (~20px to start)
@padding-base-vertical: 8px; @padding-base-vertical: 6px;
@padding-base-horizontal: 12px; @padding-base-horizontal: 12px;
@padding-large-vertical: 14px; @padding-large-vertical: 10px;
@padding-large-horizontal: 16px; @padding-large-horizontal: 16px;
@padding-small-vertical: 5px; @padding-small-vertical: 5px;
@padding-small-horizontal: 10px; @padding-small-horizontal: 10px;
@line-height-large: 1.33;
@line-height-small: 1.5;
@border-radius-base: 4px; @border-radius-base: 4px;
@border-radius-large: 6px; @border-radius-large: 6px;
@border-radius-small: 3px; @border-radius-small: 3px;
@component-active-bg: @brand-primary; @component-active-bg: @brand-primary;
@caret-width-base: 4px;
@caret-width-large: 5px;
// Tables // Tables
// ------------------------- // -------------------------
...@@ -93,31 +98,33 @@ ...@@ -93,31 +98,33 @@
// Buttons // Buttons
// ------------------------- // -------------------------
@btn-default-color: #fff; @btn-font-weight: bold;
@btn-default-bg: #474949;
@btn-default-border: @btn-default-bg; @btn-default-color: #333;
@btn-default-bg: #fff;
@btn-default-border: #ccc;
@btn-primary-color: @btn-default-color; @btn-primary-color: #fff;
@btn-primary-bg: @brand-primary; @btn-primary-bg: @brand-primary;
@btn-primary-border: @btn-primary-bg; @btn-primary-border: darken(@btn-primary-bg, 5%);
@btn-success-color: @btn-default-color; @btn-success-color: #fff;
@btn-success-bg: @brand-success; @btn-success-bg: @brand-success;
@btn-success-border: @btn-success-bg; @btn-success-border: darken(@btn-success-bg, 5%);
@btn-warning-color: @btn-default-color; @btn-warning-color: #fff;
@btn-warning-bg: @brand-warning; @btn-warning-bg: @brand-warning;
@btn-warning-border: @btn-warning-bg; @btn-warning-border: darken(@btn-warning-bg, 5%);
@btn-danger-color: @btn-default-color; @btn-danger-color: #fff;
@btn-danger-bg: @brand-danger; @btn-danger-bg: @brand-danger;
@btn-danger-border: @btn-danger-bg; @btn-danger-border: darken(@btn-danger-bg, 5%);
@btn-info-color: @btn-default-color; @btn-info-color: #fff;
@btn-info-bg: @brand-info; @btn-info-bg: @brand-info;
@btn-info-border: @btn-info-bg; @btn-info-border: darken(@btn-info-bg, 5%);
@btn-hover-color: @btn-default-color; @btn-link-disabled-color: @gray-light;
// Forms // Forms
...@@ -128,12 +135,13 @@ ...@@ -128,12 +135,13 @@
@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;
@input-height-base: (@line-height-computed + (@padding-base-vertical * 2) + 2); @input-height-base: (@line-height-computed + (@padding-base-vertical * 2) + 2);
@input-height-large: (ceil(@font-size-large * @line-height-base) + (@padding-large-vertical * 2) + 2); @input-height-large: (floor(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2);
@input-height-small: (ceil(@font-size-small * @line-height-base) + (@padding-small-vertical * 2) + 2); @input-height-small: (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2);
@legend-border-color: #e5e5e5; @legend-border-color: #e5e5e5;
...@@ -177,9 +185,9 @@ ...@@ -177,9 +185,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;
...@@ -189,14 +197,16 @@ ...@@ -189,14 +197,16 @@
@screen-medium: 992px; @screen-medium: 992px;
@screen-desktop: @screen-medium; @screen-desktop: @screen-medium;
// So media queries don't overlap when required, provide a maximum
@screen-small-max: (@screen-medium - 1);
@screen-tablet-max: @screen-small-max;
// Large screen / wide desktop // Large screen / wide desktop
@screen-large: 1200px; @screen-large: 1200px;
@screen-large-desktop: @screen-large; @screen-large-desktop: @screen-large;
// So media queries don't overlap when required, provide a maximum
@screen-small-max: (@screen-medium - 1);
@screen-tablet-max: (@screen-desktop - 1);
@screen-desktop-max: (@screen-large-desktop - 1);
// Grid system // Grid system
// -------------------------------------------------- // --------------------------------------------------
...@@ -215,6 +225,7 @@ ...@@ -215,6 +225,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);
...@@ -347,7 +358,7 @@ ...@@ -347,7 +358,7 @@
// ------------------------- // -------------------------
@tooltip-max-width: 200px; @tooltip-max-width: 200px;
@tooltip-color: #fff; @tooltip-color: #fff;
@tooltip-bg: rgba(0,0,0,.9); @tooltip-bg: #000;
@tooltip-arrow-width: 5px; @tooltip-arrow-width: 5px;
@tooltip-arrow-color: @tooltip-bg; @tooltip-arrow-color: @tooltip-bg;
...@@ -372,6 +383,8 @@ ...@@ -372,6 +383,8 @@
// Labels // Labels
// ------------------------- // -------------------------
@label-default-bg: @gray-light;
@label-success-bg: @brand-success; @label-success-bg: @brand-success;
@label-info-bg: @brand-info; @label-info-bg: @brand-info;
@label-warning-bg: @brand-warning; @label-warning-bg: @brand-warning;
...@@ -399,10 +412,13 @@ ...@@ -399,10 +412,13 @@
// Alerts // Alerts
// ------------------------- // -------------------------
@alert-padding: 15px;
@alert-border-radius: @border-radius-base;
@alert-link-font-weight: bold;
@alert-bg: @state-warning-bg; @alert-bg: @state-warning-bg;
@alert-text: @state-warning-text; @alert-text: @state-warning-text;
@alert-border: @state-warning-border; @alert-border: @state-warning-border;
@alert-border-radius: @border-radius-base;
@alert-success-bg: @state-success-bg; @alert-success-bg: @state-success-bg;
@alert-success-text: @state-success-text; @alert-success-text: @state-success-text;
...@@ -495,11 +511,15 @@ ...@@ -495,11 +511,15 @@
// ------------------------- // -------------------------
@badge-color: #fff; @badge-color: #fff;
@badge-link-hover-color: #fff; @badge-link-hover-color: #fff;
@badge-bg: @gray-light; @badge-bg: @gray-light;
@badge-active-color: @link-color; @badge-active-color: @link-color;
@badge-active-bg: #fff; @badge-active-bg: #fff;
@badge-font-weight: bold;
@badge-line-height: 1;
@badge-border-radius: 10px;
// Breadcrumbs // Breadcrumbs
// ------------------------- // -------------------------
...@@ -510,12 +530,16 @@ ...@@ -510,12 +530,16 @@
// Carousel // Carousel
// ------------------------ // ------------------------
@carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6); @carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6);
@carousel-control-color: #fff; @carousel-control-color: #fff;
@carousel-control-width: 15%;
@carousel-control-opacity: .5;
@carousel-control-font-size: 20px;
@carousel-indicator-border-color: #fff;
@carousel-indicator-active-bg: #fff; @carousel-indicator-active-bg: #fff;
@carousel-indicator-border-color: #fff;
@carousel-caption-color: #fff; @carousel-caption-color: #fff;
...@@ -523,6 +547,7 @@ ...@@ -523,6 +547,7 @@
// Close // Close
// ------------------------ // ------------------------
@close-color: #000; @close-color: #000;
@close-font-weight: bold;
@close-text-shadow: 0 1px 0 #fff; @close-text-shadow: 0 1px 0 #fff;
......
...@@ -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