mirror of
https://github.com/twbs/bootstrap.git
synced 2025-11-22 00:11:09 -05:00
Merge branch 'master' into pr/11412
Conflicts: dist/js/bootstrap.min.js
This commit is contained in:
commit
4876cbeef8
1
.gitignore
vendored
1
.gitignore
vendored
@ -39,3 +39,4 @@ validation-report.json
|
|||||||
|
|
||||||
# Folders to ignore
|
# Folders to ignore
|
||||||
node_modules
|
node_modules
|
||||||
|
bower_components
|
||||||
|
|||||||
@ -17,7 +17,7 @@ We only accept issues that are bug reports or feature requests. Bugs must be iso
|
|||||||
|
|
||||||
## Pull requests
|
## Pull requests
|
||||||
|
|
||||||
- CSS changes must be done in `.less` files first, never just the compiled `.css` files
|
- CSS changes must be done in `.less` files first, never just in the compiled `.css` files
|
||||||
- If modifying the `.less` files, always recompile and commit the compiled files `bootstrap.css` and `bootstrap.min.css`
|
- If modifying the `.less` files, always recompile and commit the compiled files `bootstrap.css` and `bootstrap.min.css`
|
||||||
- Try not to pollute your pull request with unintended changes--keep them simple and small
|
- Try not to pollute your pull request with unintended changes--keep them simple and small
|
||||||
- Try to share which browsers your code has been tested in before submitting a pull request
|
- Try to share which browsers your code has been tested in before submitting a pull request
|
||||||
@ -59,3 +59,21 @@ We only accept issues that are bug reports or feature requests. Bugs must be iso
|
|||||||
With v3.1, we're moving from the Apache 2 to the MIT license for the Bootstrap code (not the docs). We're in the process of collecting permissions from all Bootstrap contributors with code still part of the project to make this happen. For details, please see [#2054](https://github.com/twbs/bootstrap/issues/2054).
|
With v3.1, we're moving from the Apache 2 to the MIT license for the Bootstrap code (not the docs). We're in the process of collecting permissions from all Bootstrap contributors with code still part of the project to make this happen. For details, please see [#2054](https://github.com/twbs/bootstrap/issues/2054).
|
||||||
|
|
||||||
By contributing your code, you agree to dual-license your contribution under the [Apache 2](https://github.com/twbs/bootstrap/blob/master/LICENSE) and [MIT](https://github.com/twbs/bootstrap/blob/master/MIT) licenses.
|
By contributing your code, you agree to dual-license your contribution under the [Apache 2](https://github.com/twbs/bootstrap/blob/master/LICENSE) and [MIT](https://github.com/twbs/bootstrap/blob/master/MIT) licenses.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Release checklist
|
||||||
|
|
||||||
|
1. Close ship list issue for the release.
|
||||||
|
2. Close the milestone for the release.
|
||||||
|
3. Open new release issue that includes this checklist.
|
||||||
|
4. Ping folks to coordinate release (mainly @jdorfman for BootstrapCDN).
|
||||||
|
5. Update version numbers using `grunt change-version-number --oldver=A.B.C --newver=X.Y.Z`. Review the changes and stage them manually.
|
||||||
|
6. Run `grunt` one last time.
|
||||||
|
7. Push to `master` branch.
|
||||||
|
8. Merge `master` into `gh-pages`.
|
||||||
|
9. Generate `bootstrap-X.Y.Z-dist.zip` file for release.
|
||||||
|
10. Create release on GitHub with `/dist/` folder and release notes.
|
||||||
|
11. Push `gh-pages`.
|
||||||
|
12. Publish blog post.
|
||||||
|
13. Tweet tweet.
|
||||||
|
|||||||
@ -11,11 +11,9 @@ module.exports = function(grunt) {
|
|||||||
// Metadata.
|
// Metadata.
|
||||||
pkg: grunt.file.readJSON('package.json'),
|
pkg: grunt.file.readJSON('package.json'),
|
||||||
banner: '/*!\n' +
|
banner: '/*!\n' +
|
||||||
' * Bootstrap v<%= pkg.version %> by @fat and @mdo\n' +
|
' * Bootstrap v<%= pkg.version %> (<%= pkg.homepage %>)\n' +
|
||||||
' * Copyright <%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' +
|
' * Copyright <%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' +
|
||||||
' * Licensed under <%= _.pluck(pkg.licenses, "url").join(", ") %>\n' +
|
' * Licensed under <%= _.pluck(pkg.licenses, "url").join(", ") %>\n' +
|
||||||
' *\n' +
|
|
||||||
' * Designed and built with all the love in the world by @mdo and @fat.\n' +
|
|
||||||
' */\n\n',
|
' */\n\n',
|
||||||
jqueryCheck: 'if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery") }\n\n',
|
jqueryCheck: 'if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery") }\n\n',
|
||||||
|
|
||||||
@ -135,8 +133,8 @@ module.exports = function(grunt) {
|
|||||||
options: {
|
options: {
|
||||||
reset: true,
|
reset: true,
|
||||||
relaxerror: [
|
relaxerror: [
|
||||||
"Bad value X-UA-Compatible for attribute http-equiv on element meta.",
|
"Bad value X-UA-Compatible for attribute http-equiv on element meta.",
|
||||||
"Element img is missing required attribute src."
|
"Element img is missing required attribute src."
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
files: {
|
files: {
|
||||||
|
|||||||
@ -10,7 +10,7 @@ To get started, check out <http://getbootstrap.com>!
|
|||||||
|
|
||||||
Three quick start options are available:
|
Three quick start options are available:
|
||||||
|
|
||||||
* [Download the latest release](https://github.com/twbs/bootstrap/archive/v3.0.2.zip).
|
* [Download the latest release](https://github.com/twbs/bootstrap/archive/v3.0.3.zip).
|
||||||
* Clone the repo: `git clone https://github.com/twbs/bootstrap.git`.
|
* Clone the repo: `git clone https://github.com/twbs/bootstrap.git`.
|
||||||
* Install with [Bower](http://bower.io): `bower install bootstrap`.
|
* Install with [Bower](http://bower.io): `bower install bootstrap`.
|
||||||
|
|
||||||
|
|||||||
12
_config.yml
12
_config.yml
@ -11,15 +11,15 @@ exclude: [".editorconfig", ".gitignore", "bower.json", "composer.json",
|
|||||||
port: 9001
|
port: 9001
|
||||||
|
|
||||||
# Custom vars
|
# Custom vars
|
||||||
current_version: 3.0.2
|
current_version: 3.0.3
|
||||||
repo: https://github.com/twbs/bootstrap
|
repo: https://github.com/twbs/bootstrap
|
||||||
|
|
||||||
download_source: https://github.com/twbs/bootstrap/archive/v3.0.2.zip
|
download_source: https://github.com/twbs/bootstrap/archive/v3.0.3.zip
|
||||||
download_dist: https://github.com/twbs/bootstrap/releases/download/v3.0.2/bootstrap-3.0.2-dist.zip
|
download_dist: https://github.com/twbs/bootstrap/releases/download/v3.0.3/bootstrap-3.0.3-dist.zip
|
||||||
|
|
||||||
blog: http://blog.getbootstrap.com
|
blog: http://blog.getbootstrap.com
|
||||||
expo: http://expo.getbootstrap.com
|
expo: http://expo.getbootstrap.com
|
||||||
|
|
||||||
cdn_css: //netdna.bootstrapcdn.com/bootstrap/3.0.2/css/bootstrap.min.css
|
cdn_css: //netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css
|
||||||
cdn_theme_css: //netdna.bootstrapcdn.com/bootstrap/3.0.2/css/bootstrap-theme.min.css
|
cdn_theme_css: //netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap-theme.min.css
|
||||||
cdn_js: //netdna.bootstrapcdn.com/bootstrap/3.0.2/js/bootstrap.min.js
|
cdn_js: //netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js
|
||||||
|
|||||||
@ -1,10 +1,9 @@
|
|||||||
<!-- Bootstrap core JavaScript
|
<!-- Bootstrap core JavaScript
|
||||||
================================================== -->
|
================================================== -->
|
||||||
<!-- Placed at the end of the document so the pages load faster -->
|
<!-- Placed at the end of the document so the pages load faster -->
|
||||||
<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
|
||||||
<script src="{{ page.base_url }}dist/js/bootstrap.js"></script>
|
<script src="{{ page.base_url }}dist/js/bootstrap.js"></script>
|
||||||
|
|
||||||
<script src="http://platform.twitter.com/widgets.js"></script>
|
|
||||||
<script src="{{ page.base_url }}docs-assets/js/holder.js"></script>
|
<script src="{{ page.base_url }}docs-assets/js/holder.js"></script>
|
||||||
|
|
||||||
<script src="{{ page.base_url }}docs-assets/js/application.js"></script>
|
<script src="{{ page.base_url }}docs-assets/js/application.js"></script>
|
||||||
@ -18,6 +17,21 @@
|
|||||||
<script src="{{ page.base_url }}docs-assets/js/customizer.js"></script>
|
<script src="{{ page.base_url }}docs-assets/js/customizer.js"></script>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{% comment %}
|
||||||
|
Inject Twitter widgets asynchronously. Snippet snipped from Twitter's
|
||||||
|
JS interface site: https://dev.twitter.com/docs/tfw-javascript
|
||||||
|
|
||||||
|
* "js.async=1;" added to add async attribute to the generated script tag.
|
||||||
|
{% endcomment %}
|
||||||
|
<script>
|
||||||
|
window.twttr = (function (d,s,id) {
|
||||||
|
var t, js, fjs = d.getElementsByTagName(s)[0];
|
||||||
|
if (d.getElementById(id)) return; js=d.createElement(s); js.id=id; js.async=1;
|
||||||
|
js.src="https://platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs);
|
||||||
|
return window.twttr || (t = { _e: [], ready: function(f){ t._e.push(f) } });
|
||||||
|
}(document, "script", "twitter-wjs"));
|
||||||
|
</script>
|
||||||
|
|
||||||
<!-- Analytics
|
<!-- Analytics
|
||||||
================================================== -->
|
================================================== -->
|
||||||
<script>
|
<script>
|
||||||
|
|||||||
@ -8,6 +8,10 @@
|
|||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="#whats-included">What's included</a>
|
<a href="#whats-included">What's included</a>
|
||||||
|
<ul class="nav">
|
||||||
|
<li><a href="#whats-included-precompiled">Precompiled</a></li>
|
||||||
|
<li><a href="#whats-included-source">Source code</a></li>
|
||||||
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="#template">Basic template</a>
|
<a href="#template">Basic template</a>
|
||||||
|
|||||||
25
bower.json
25
bower.json
@ -1,9 +1,28 @@
|
|||||||
{
|
{
|
||||||
"name": "bootstrap",
|
"name": "bootstrap",
|
||||||
"version": "3.0.2",
|
"version": "3.0.3",
|
||||||
"main": ["./dist/js/bootstrap.js", "./dist/css/bootstrap.css", "./dist/fonts/*"],
|
"main": [
|
||||||
|
"./dist/js/bootstrap.js",
|
||||||
|
"./dist/css/bootstrap.css",
|
||||||
|
"./dist/fonts/glyphicons-halflings-regular.eot",
|
||||||
|
"./dist/fonts/glyphicons-halflings-regular.svg",
|
||||||
|
"./dist/fonts/glyphicons-halflings-regular.ttf",
|
||||||
|
"./dist/fonts/glyphicons-halflings-regular.woff"
|
||||||
|
],
|
||||||
"ignore": [
|
"ignore": [
|
||||||
"**/.*"
|
"**/.*",
|
||||||
|
"_*",
|
||||||
|
"docs-assets",
|
||||||
|
"examples",
|
||||||
|
"/fonts",
|
||||||
|
"js/tests",
|
||||||
|
"CNAME",
|
||||||
|
"CONTRIBUTING.md",
|
||||||
|
"Gruntfile.js",
|
||||||
|
"browserstack.json",
|
||||||
|
"composer.json",
|
||||||
|
"package.json",
|
||||||
|
"*.html"
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"jquery": ">= 1.9.0"
|
"jquery": ">= 1.9.0"
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
"username": "--secure--",
|
"username": "--secure--",
|
||||||
"key": "--secure--",
|
"key": "--secure--",
|
||||||
"test_path": "js/tests/index.html",
|
"test_path": "js/tests/index.html",
|
||||||
"browsers": [
|
"browsers": [
|
||||||
{
|
{
|
||||||
"browser": "firefox",
|
"browser": "firefox",
|
||||||
"browser_version": "latest",
|
"browser_version": "latest",
|
||||||
|
|||||||
445
components.html
445
components.html
File diff suppressed because it is too large
Load Diff
@ -19,7 +19,7 @@
|
|||||||
, "license": "Apache-2.0"
|
, "license": "Apache-2.0"
|
||||||
, "extra": {
|
, "extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-master": "3.0.x-dev"
|
"dev-master": "3.0.x-dev"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
6
css.html
6
css.html
@ -871,7 +871,7 @@ base_url: "../"
|
|||||||
<p>Style and content changes for simple variations on a standard <code><blockquote></code>.</p>
|
<p>Style and content changes for simple variations on a standard <code><blockquote></code>.</p>
|
||||||
|
|
||||||
<h4>Naming a source</h4>
|
<h4>Naming a source</h4>
|
||||||
<p>Add <code><small></code> tag for identifying the source. Wrap the name of the source work in <code><cite></code>.</p>
|
<p>Add <code><small></code> tag or <code>.small</code> class for identifying the source. Wrap the name of the source work in <code><cite></code>.</p>
|
||||||
<div class="bs-example">
|
<div class="bs-example">
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
|
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
|
||||||
@ -1567,7 +1567,7 @@ For example, <code><section></code> should be wrapped as inline.
|
|||||||
|
|
||||||
|
|
||||||
<h2 id="forms-inline">Inline form</h2>
|
<h2 id="forms-inline">Inline form</h2>
|
||||||
<p>Add <code>.form-inline</code> for left-aligned and inline-block controls for a compact layout.</p>
|
<p>Add <code>.form-inline</code> to your <code><form></code> for left-aligned and inline-block controls. <strong>This only applies to forms within viewports that are at least 768px wide.</strong></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>
|
||||||
<p>Inputs, selects, and textareas are 100% wide by default in Bootstrap. To use the inline form, you'll have to set a width on the form controls used within.</p>
|
<p>Inputs, selects, and textareas are 100% wide by default in Bootstrap. To use the inline form, you'll have to set a width on the form controls used within.</p>
|
||||||
@ -1617,7 +1617,7 @@ For example, <code><section></code> should be wrapped as inline.
|
|||||||
<h2 id="forms-horizontal">Horizontal form</h2>
|
<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>
|
||||||
<div class="bs-example">
|
<div class="bs-example">
|
||||||
<form class="form-horizontal">
|
<form class="form-horizontal" role="form">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="inputEmail3" class="col-sm-2 control-label">Email</label>
|
<label for="inputEmail3" class="col-sm-2 control-label">Email</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
|
|||||||
@ -399,7 +399,7 @@ base_url: "../"
|
|||||||
<input type="text" class="form-control" placeholder="Georgia, 'Times New Roman', Times, serif" data-var="@font-family-serif">
|
<input type="text" class="form-control" placeholder="Georgia, 'Times New Roman', Times, serif" data-var="@font-family-serif">
|
||||||
<p class="help-block">Default serif fonts.</p>
|
<p class="help-block">Default serif fonts.</p>
|
||||||
<label>@font-family-monospace</label>
|
<label>@font-family-monospace</label>
|
||||||
<input type="text" class="form-control" placeholder="Monaco, Menlo, Consolas, 'Courier New', monospace" data-var="@font-family-monospace">
|
<input type="text" class="form-control" placeholder="Menlo, Monaco, Consolas, 'Courier New', monospace" data-var="@font-family-monospace">
|
||||||
<p class="help-block">Default monospace fonts for <code><code></code> and <code><pre></code>.</p>
|
<p class="help-block">Default monospace fonts for <code><code></code> and <code><pre></code>.</p>
|
||||||
|
|
||||||
<h4>Base type styes</h4>
|
<h4>Base type styes</h4>
|
||||||
|
|||||||
4
dist/css/bootstrap-theme.css
vendored
4
dist/css/bootstrap-theme.css
vendored
@ -1,9 +1,7 @@
|
|||||||
/*!
|
/*!
|
||||||
* Bootstrap v3.0.2 by @fat and @mdo
|
* Bootstrap v3.0.3 (http://getbootstrap.com)
|
||||||
* Copyright 2013 Twitter, Inc.
|
* Copyright 2013 Twitter, Inc.
|
||||||
* Licensed under http://www.apache.org/licenses/LICENSE-2.0
|
* Licensed under http://www.apache.org/licenses/LICENSE-2.0
|
||||||
*
|
|
||||||
* Designed and built with all the love in the world by @mdo and @fat.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.btn-default,
|
.btn-default,
|
||||||
|
|||||||
4
dist/css/bootstrap-theme.min.css
vendored
4
dist/css/bootstrap-theme.min.css
vendored
File diff suppressed because one or more lines are too long
686
dist/css/bootstrap.css
vendored
686
dist/css/bootstrap.css
vendored
File diff suppressed because it is too large
Load Diff
6
dist/css/bootstrap.min.css
vendored
6
dist/css/bootstrap.min.css
vendored
File diff suppressed because one or more lines are too long
58
dist/js/bootstrap.js
vendored
58
dist/js/bootstrap.js
vendored
@ -1,15 +1,13 @@
|
|||||||
/*!
|
/*!
|
||||||
* Bootstrap v3.0.2 by @fat and @mdo
|
* Bootstrap v3.0.3 (http://getbootstrap.com)
|
||||||
* Copyright 2013 Twitter, Inc.
|
* Copyright 2013 Twitter, Inc.
|
||||||
* Licensed under http://www.apache.org/licenses/LICENSE-2.0
|
* Licensed under http://www.apache.org/licenses/LICENSE-2.0
|
||||||
*
|
|
||||||
* Designed and built with all the love in the world by @mdo and @fat.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery") }
|
if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery") }
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: transition.js v3.0.2
|
* Bootstrap: transition.js v3.0.3
|
||||||
* http://getbootstrap.com/javascript/#transitions
|
* http://getbootstrap.com/javascript/#transitions
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2013 Twitter, Inc.
|
* Copyright 2013 Twitter, Inc.
|
||||||
@ -66,7 +64,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: alert.js v3.0.2
|
* Bootstrap: alert.js v3.0.3
|
||||||
* http://getbootstrap.com/javascript/#alerts
|
* http://getbootstrap.com/javascript/#alerts
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2013 Twitter, Inc.
|
* Copyright 2013 Twitter, Inc.
|
||||||
@ -165,7 +163,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: button.js v3.0.2
|
* Bootstrap: button.js v3.0.3
|
||||||
* http://getbootstrap.com/javascript/#buttons
|
* http://getbootstrap.com/javascript/#buttons
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2013 Twitter, Inc.
|
* Copyright 2013 Twitter, Inc.
|
||||||
@ -220,15 +218,21 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|||||||
|
|
||||||
Button.prototype.toggle = function () {
|
Button.prototype.toggle = function () {
|
||||||
var $parent = this.$element.closest('[data-toggle="buttons"]')
|
var $parent = this.$element.closest('[data-toggle="buttons"]')
|
||||||
|
var changed = true
|
||||||
|
|
||||||
if ($parent.length) {
|
if ($parent.length) {
|
||||||
var $input = this.$element.find('input')
|
var $input = this.$element.find('input')
|
||||||
.prop('checked', !this.$element.hasClass('active'))
|
if ($input.prop('type') === 'radio') {
|
||||||
.trigger('change')
|
// see if clicking on current one
|
||||||
if ($input.prop('type') === 'radio') $parent.find('.active').removeClass('active')
|
if ($input.prop('checked') && this.$element.hasClass('active'))
|
||||||
|
changed = false
|
||||||
|
else
|
||||||
|
$parent.find('.active').removeClass('active')
|
||||||
|
}
|
||||||
|
if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change')
|
||||||
}
|
}
|
||||||
|
|
||||||
this.$element.toggleClass('active')
|
if (changed) this.$element.toggleClass('active')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -275,7 +279,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: carousel.js v3.0.2
|
* Bootstrap: carousel.js v3.0.3
|
||||||
* http://getbootstrap.com/javascript/#carousel
|
* http://getbootstrap.com/javascript/#carousel
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2013 Twitter, Inc.
|
* Copyright 2013 Twitter, Inc.
|
||||||
@ -345,7 +349,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|||||||
|
|
||||||
if (pos > (this.$items.length - 1) || pos < 0) return
|
if (pos > (this.$items.length - 1) || pos < 0) return
|
||||||
|
|
||||||
if (this.sliding) return this.$element.one('slid', function () { that.to(pos) })
|
if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) })
|
||||||
if (activeIndex == pos) return this.pause().cycle()
|
if (activeIndex == pos) return this.pause().cycle()
|
||||||
|
|
||||||
return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
|
return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
|
||||||
@ -397,7 +401,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|||||||
|
|
||||||
if (this.$indicators.length) {
|
if (this.$indicators.length) {
|
||||||
this.$indicators.find('.active').removeClass('active')
|
this.$indicators.find('.active').removeClass('active')
|
||||||
this.$element.one('slid', function () {
|
this.$element.one('slid.bs.carousel', function () {
|
||||||
var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
|
var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
|
||||||
$nextIndicator && $nextIndicator.addClass('active')
|
$nextIndicator && $nextIndicator.addClass('active')
|
||||||
})
|
})
|
||||||
@ -415,7 +419,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|||||||
$next.removeClass([type, direction].join(' ')).addClass('active')
|
$next.removeClass([type, direction].join(' ')).addClass('active')
|
||||||
$active.removeClass(['active', direction].join(' '))
|
$active.removeClass(['active', direction].join(' '))
|
||||||
that.sliding = false
|
that.sliding = false
|
||||||
setTimeout(function () { that.$element.trigger('slid') }, 0)
|
setTimeout(function () { that.$element.trigger('slid.bs.carousel') }, 0)
|
||||||
})
|
})
|
||||||
.emulateTransitionEnd(600)
|
.emulateTransitionEnd(600)
|
||||||
} else {
|
} else {
|
||||||
@ -424,7 +428,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|||||||
$active.removeClass('active')
|
$active.removeClass('active')
|
||||||
$next.addClass('active')
|
$next.addClass('active')
|
||||||
this.sliding = false
|
this.sliding = false
|
||||||
this.$element.trigger('slid')
|
this.$element.trigger('slid.bs.carousel')
|
||||||
}
|
}
|
||||||
|
|
||||||
isCycling && this.cycle()
|
isCycling && this.cycle()
|
||||||
@ -493,7 +497,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: collapse.js v3.0.2
|
* Bootstrap: collapse.js v3.0.3
|
||||||
* http://getbootstrap.com/javascript/#collapse
|
* http://getbootstrap.com/javascript/#collapse
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2013 Twitter, Inc.
|
* Copyright 2013 Twitter, Inc.
|
||||||
@ -673,7 +677,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: dropdown.js v3.0.2
|
* Bootstrap: dropdown.js v3.0.3
|
||||||
* http://getbootstrap.com/javascript/#dropdowns
|
* http://getbootstrap.com/javascript/#dropdowns
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2013 Twitter, Inc.
|
* Copyright 2013 Twitter, Inc.
|
||||||
@ -715,7 +719,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|||||||
|
|
||||||
if (!isActive) {
|
if (!isActive) {
|
||||||
if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
|
if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
|
||||||
// if mobile we we use a backdrop because click events don't delegate
|
// if mobile we use a backdrop because click events don't delegate
|
||||||
$('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click', clearMenus)
|
$('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click', clearMenus)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -797,9 +801,9 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|||||||
$.fn.dropdown = function (option) {
|
$.fn.dropdown = function (option) {
|
||||||
return this.each(function () {
|
return this.each(function () {
|
||||||
var $this = $(this)
|
var $this = $(this)
|
||||||
var data = $this.data('dropdown')
|
var data = $this.data('bs.dropdown')
|
||||||
|
|
||||||
if (!data) $this.data('dropdown', (data = new Dropdown(this)))
|
if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
|
||||||
if (typeof option == 'string') data[option].call($this)
|
if (typeof option == 'string') data[option].call($this)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -828,7 +832,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: modal.js v3.0.2
|
* Bootstrap: modal.js v3.0.3
|
||||||
* http://getbootstrap.com/javascript/#modals
|
* http://getbootstrap.com/javascript/#modals
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2013 Twitter, Inc.
|
* Copyright 2013 Twitter, Inc.
|
||||||
@ -1075,7 +1079,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: tooltip.js v3.0.2
|
* Bootstrap: tooltip.js v3.0.3
|
||||||
* http://getbootstrap.com/javascript/#tooltip
|
* http://getbootstrap.com/javascript/#tooltip
|
||||||
* Inspired by the original jQuery.tipsy by Jason Frame
|
* Inspired by the original jQuery.tipsy by Jason Frame
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
@ -1462,7 +1466,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: popover.js v3.0.2
|
* Bootstrap: popover.js v3.0.3
|
||||||
* http://getbootstrap.com/javascript/#popovers
|
* http://getbootstrap.com/javascript/#popovers
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2013 Twitter, Inc.
|
* Copyright 2013 Twitter, Inc.
|
||||||
@ -1580,7 +1584,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: scrollspy.js v3.0.2
|
* Bootstrap: scrollspy.js v3.0.3
|
||||||
* http://getbootstrap.com/javascript/#scrollspy
|
* http://getbootstrap.com/javascript/#scrollspy
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2013 Twitter, Inc.
|
* Copyright 2013 Twitter, Inc.
|
||||||
@ -1694,7 +1698,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|||||||
.addClass('active')
|
.addClass('active')
|
||||||
}
|
}
|
||||||
|
|
||||||
active.trigger('activate')
|
active.trigger('activate.bs.scrollspy')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1739,7 +1743,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: tab.js v3.0.2
|
* Bootstrap: tab.js v3.0.3
|
||||||
* http://getbootstrap.com/javascript/#tabs
|
* http://getbootstrap.com/javascript/#tabs
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2013 Twitter, Inc.
|
* Copyright 2013 Twitter, Inc.
|
||||||
@ -1875,7 +1879,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: affix.js v3.0.2
|
* Bootstrap: affix.js v3.0.3
|
||||||
* http://getbootstrap.com/javascript/#affix
|
* http://getbootstrap.com/javascript/#affix
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2013 Twitter, Inc.
|
* Copyright 2013 Twitter, Inc.
|
||||||
|
|||||||
6
dist/js/bootstrap.min.js
vendored
6
dist/js/bootstrap.min.js
vendored
File diff suppressed because one or more lines are too long
@ -586,14 +586,14 @@ h1[id] {
|
|||||||
border-color: #faebcc;
|
border-color: #faebcc;
|
||||||
}
|
}
|
||||||
.bs-callout-warning h4 {
|
.bs-callout-warning h4 {
|
||||||
color: #c09853;
|
color: #8a6d3b;
|
||||||
}
|
}
|
||||||
.bs-callout-info {
|
.bs-callout-info {
|
||||||
background-color: #f4f8fa;
|
background-color: #f4f8fa;
|
||||||
border-color: #bce8f1;
|
border-color: #bce8f1;
|
||||||
}
|
}
|
||||||
.bs-callout-info h4 {
|
.bs-callout-info h4 {
|
||||||
color: #3a87ad;
|
color: #34789a;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -100,4 +100,4 @@
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
}(window.jQuery)
|
}(jQuery)
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
|
|
||||||
window.onload = function () { // wait for load in a dumb way because B-0
|
window.onload = function () { // wait for load in a dumb way because B-0
|
||||||
var cw = '/*!\n * Bootstrap v3.0.2\n *\n * Copyright 2013 Twitter, Inc\n * Licensed under the Apache License v2.0\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Designed and built with all the love in the world @twitter by @mdo and @fat.\n */\n\n'
|
var cw = '/*!\n * Bootstrap v3.0.3\n *\n * Copyright 2013 Twitter, Inc\n * Licensed under the Apache License v2.0\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Designed and built with all the love in the world @twitter by @mdo and @fat.\n */\n\n'
|
||||||
|
|
||||||
function showError(msg, err) {
|
function showError(msg, err) {
|
||||||
$('<div id="bsCustomizerAlert" class="bs-customizer-alert">\
|
$('<div id="bsCustomizerAlert" class="bs-customizer-alert">\
|
||||||
@ -231,7 +231,7 @@ window.onload = function () { // wait for load in a dumb way because B-0
|
|||||||
}
|
}
|
||||||
result = {
|
result = {
|
||||||
'bootstrap.css' : cw + tree.toCSS(),
|
'bootstrap.css' : cw + tree.toCSS(),
|
||||||
'bootstrap.min.css' : cw + tree.toCSS({ compress: true })
|
'bootstrap.min.css' : cw + tree.toCSS({ compress: true }).replace(/\n/g, '')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -40,7 +40,7 @@
|
|||||||
<a class="navbar-brand" href="#">Project name</a>
|
<a class="navbar-brand" href="#">Project name</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="navbar-collapse collapse">
|
<div class="navbar-collapse collapse">
|
||||||
<form class="navbar-form navbar-right">
|
<form class="navbar-form navbar-right" role="form">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<input type="text" placeholder="Email" class="form-control">
|
<input type="text" placeholder="Email" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -52,7 +52,8 @@
|
|||||||
<!-- Example row of columns -->
|
<!-- Example row of columns -->
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-4">
|
<div class="col-lg-4">
|
||||||
<h2>Heading</h2>
|
<h2>Safari bug warning!</h2>
|
||||||
|
<p class="text-danger">Safari exhibits a bug in which resizing your browser horizontally causes rendering errors in the justified nav that are cleared upon refreshing.</p>
|
||||||
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
|
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
|
||||||
<p><a class="btn btn-primary" href="#" role="button">View details »</a></p>
|
<p><a class="btn btn-primary" href="#" role="button">View details »</a></p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -8,6 +8,7 @@
|
|||||||
body {
|
body {
|
||||||
padding-top: 70px;
|
padding-top: 70px;
|
||||||
padding-bottom: 30px;
|
padding-bottom: 30px;
|
||||||
|
min-width: 970px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Finesse the page header spacing */
|
/* Finesse the page header spacing */
|
||||||
@ -63,6 +64,9 @@ body {
|
|||||||
.navbar-toggle {
|
.navbar-toggle {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
.navbar-collapse {
|
||||||
|
border-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
.navbar-brand {
|
.navbar-brand {
|
||||||
margin-left: -15px;
|
margin-left: -15px;
|
||||||
@ -86,7 +90,7 @@ body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Undo custom dropdowns */
|
/* Undo custom dropdowns */
|
||||||
.navbar .open .dropdown-menu {
|
.navbar .navbar-nav .open .dropdown-menu {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
float: left;
|
float: left;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
@ -97,20 +101,20 @@ body {
|
|||||||
-webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
|
-webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
|
||||||
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
|
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
|
||||||
}
|
}
|
||||||
.navbar .open .dropdown-menu > li > a {
|
.navbar-default .navbar-nav .open .dropdown-menu > li > a {
|
||||||
color: #333;
|
color: #333;
|
||||||
}
|
}
|
||||||
.navbar .open .dropdown-menu > li > a:hover,
|
.navbar .navbar-nav .open .dropdown-menu > li > a:hover,
|
||||||
.navbar .open .dropdown-menu > li > a:focus,
|
.navbar .navbar-nav .open .dropdown-menu > li > a:focus,
|
||||||
.navbar .open .dropdown-menu > .active > a,
|
.navbar .navbar-nav .open .dropdown-menu > .active > a,
|
||||||
.navbar .open .dropdown-menu > .active > a:hover,
|
.navbar .navbar-nav .open .dropdown-menu > .active > a:hover,
|
||||||
.navbar .open .dropdown-menu > .active > a:focus {
|
.navbar .navbar-nav .open .dropdown-menu > .active > a:focus {
|
||||||
color: #fff !important;
|
color: #fff !important;
|
||||||
background-color: #428bca !important;
|
background-color: #428bca !important;
|
||||||
}
|
}
|
||||||
.navbar .open .dropdown-menu > .disabled > a,
|
.navbar .navbar-nav .open .dropdown-menu > .disabled > a,
|
||||||
.navbar .open .dropdown-menu > .disabled > a:hover,
|
.navbar .navbar-nav .open .dropdown-menu > .disabled > a:hover,
|
||||||
.navbar .open .dropdown-menu > .disabled > a:focus {
|
.navbar .navbar-nav .open .dropdown-menu > .disabled > a:focus {
|
||||||
color: #999 !important;
|
color: #999 !important;
|
||||||
background-color: transparent !important;
|
background-color: transparent !important;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,8 @@
|
|||||||
* Style tweaks
|
* Style tweaks
|
||||||
* --------------------------------------------------
|
* --------------------------------------------------
|
||||||
*/
|
*/
|
||||||
html {
|
html,
|
||||||
|
body {
|
||||||
overflow-x: hidden; /* Prevent scroll on narrow devices */
|
overflow-x: hidden; /* Prevent scroll on narrow devices */
|
||||||
}
|
}
|
||||||
body {
|
body {
|
||||||
|
|||||||
@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
|
|
||||||
<form class="form-signin">
|
<form class="form-signin" role="form">
|
||||||
<h2 class="form-signin-heading">Please sign in</h2>
|
<h2 class="form-signin-heading">Please sign in</h2>
|
||||||
<input type="text" class="form-control" placeholder="Email address" required autofocus>
|
<input type="text" class="form-control" placeholder="Email address" required autofocus>
|
||||||
<input type="password" class="form-control" placeholder="Password" required>
|
<input type="password" class="form-control" placeholder="Password" required>
|
||||||
|
|||||||
@ -77,7 +77,7 @@
|
|||||||
|
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<p class="text-muted credit">Example courtesy <a href="http://martinbean.co.uk">Martin Bean</a> and <a href="http://ryanfait.com/sticky-footer/">Ryan Fait</a>.</p>
|
<p class="text-muted">Place sticky footer content here.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@ -31,7 +31,7 @@ body {
|
|||||||
#wrap > .container {
|
#wrap > .container {
|
||||||
padding: 60px 15px 0;
|
padding: 60px 15px 0;
|
||||||
}
|
}
|
||||||
.container .credit {
|
.container .text-muted {
|
||||||
margin: 20px 0;
|
margin: 20px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -43,7 +43,7 @@
|
|||||||
|
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<p class="text-muted credit">Example courtesy <a href="http://martinbean.co.uk">Martin Bean</a> and <a href="http://ryanfait.com/sticky-footer/">Ryan Fait</a>.</p>
|
<p class="text-muted">Place sticky footer content here.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@ -33,6 +33,6 @@ body {
|
|||||||
max-width: 680px;
|
max-width: 680px;
|
||||||
padding: 0 15px;
|
padding: 0 15px;
|
||||||
}
|
}
|
||||||
.container .credit {
|
.container .text-muted {
|
||||||
margin: 20px 0;
|
margin: 20px 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -62,9 +62,15 @@ base_url: "../"
|
|||||||
<div class="page-header">
|
<div class="page-header">
|
||||||
<h1 id="whats-included">What's included</h1>
|
<h1 id="whats-included">What's included</h1>
|
||||||
</div>
|
</div>
|
||||||
<p class="lead">Within the download you'll find the following directories and files, logically grouping common resources and providing both compiled and minified variations.</p>
|
<p class="lead">Bootstrap is downloadable in two forms, within which you'll find the following directories and files, logically grouping common resources and providing both compiled and minified variations.</p>
|
||||||
<p>Once downloaded, unzip the compressed folder to see the structure of (the compiled) Bootstrap. You'll see something like this:</p>
|
|
||||||
|
|
||||||
|
<div class="bs-callout bs-callout-warning" id="jquery-required">
|
||||||
|
<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>. <a href="{{ site.repo }}/blob/v{{ site.current_version }}/bower.json">Consult our <code>bower.json</code></a> to see which versions of jQuery are supported.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2 id="whats-included-precompiled">Precompiled Bootstrap</h2>
|
||||||
|
<p>Once downloaded, unzip the compressed folder to see the structure of (the compiled) Bootstrap. You'll see something like this:</p>
|
||||||
<!-- NOTE: This info is intentionally duplicated in the README.
|
<!-- NOTE: This info is intentionally duplicated in the README.
|
||||||
Copy any changes made here over to the README too. -->
|
Copy any changes made here over to the README too. -->
|
||||||
{% highlight bash %}
|
{% highlight bash %}
|
||||||
@ -85,11 +91,24 @@ bootstrap/
|
|||||||
{% endhighlight %}
|
{% endhighlight %}
|
||||||
|
|
||||||
<p>This is the most basic form of Bootstrap: precompiled 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>). Fonts from Glyphicons are included, as is the optional Bootstrap theme.</p>
|
<p>This is the most basic form of Bootstrap: precompiled 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>). Fonts from Glyphicons are included, as is the optional Bootstrap theme.</p>
|
||||||
<div class="bs-callout bs-callout-danger" id="jquery-required">
|
|
||||||
<h4>jQuery required</h4>
|
<h2 id="whats-included-source">Bootstrap source code</h2>
|
||||||
<p>Please note that <strong>all JavaScript plugins require jQuery</strong> to be included, as shown in the <a href="#template">starter template</a>. <a href="{{ site.repo }}/blob/v{{ site.current_version }}/bower.json">Consult our <code>bower.json</code></a> to see which versions of jQuery are supported.</p>
|
<p>The Bootstrap source code download includes the precompiled CSS, JavaScript, and font assets, along with source LESS, JavaScript, and documentation. More specifically, it includes the following and more:</p>
|
||||||
</div>
|
{% highlight bash %}
|
||||||
|
bootstrap/
|
||||||
|
├── less/
|
||||||
|
├── js/
|
||||||
|
├── fonts/
|
||||||
|
├── dist/
|
||||||
|
│ ├── css/
|
||||||
|
│ ├── js/
|
||||||
|
│ └── fonts/
|
||||||
|
├── docs-assets/
|
||||||
|
├── examples/
|
||||||
|
└── *.html
|
||||||
|
{% endhighlight %}
|
||||||
</div>
|
</div>
|
||||||
|
<p>The <code>less/</code>, <code>js/</code>, and <code>fonts/</code> are the source code for our CSS, JS, and icon fonts (respectively). The <code>dist/</code> folder includes everything listed in the precompiled download section above. <code>docs-assets/</code>, <code>examples/</code>, and all <code>*.html</code> files are for our documentation. Beyond that, any other included file provides support for packages, license information, and development.</p>
|
||||||
|
|
||||||
|
|
||||||
<!-- Template
|
<!-- Template
|
||||||
@ -379,7 +398,7 @@ bootstrap/
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>.visible-desktop</code></td>
|
<td><code>.visible-desktop</code></td>
|
||||||
<td><code>.visible-md</code></td>
|
<td>Split into <code>.visible-md .visible-lg</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>.hidden-phone</code></td>
|
<td><code>.hidden-phone</code></td>
|
||||||
@ -391,7 +410,7 @@ bootstrap/
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>.hidden-desktop</code></td>
|
<td><code>.hidden-desktop</code></td>
|
||||||
<td><code>.hidden-md</code></td>
|
<td>Split into <code>.hidden-md .hidden-lg</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>.input-small</code></td>
|
<td><code>.input-small</code></td>
|
||||||
@ -405,6 +424,10 @@ bootstrap/
|
|||||||
<td><code>.control-group</code></td>
|
<td><code>.control-group</code></td>
|
||||||
<td><code>.form-group</code></td>
|
<td><code>.form-group</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><code>.control-group.warning .control-group.error .control-group.success</code></td>
|
||||||
|
<td><code>.form-group.has-*</code></td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>.checkbox.inline</code> <code>.radio.inline</code></td>
|
<td><code>.checkbox.inline</code> <code>.radio.inline</code></td>
|
||||||
<td><code>.checkbox-inline</code> <code>.radio-inline</code></td>
|
<td><code>.checkbox-inline</code> <code>.radio-inline</code></td>
|
||||||
@ -611,6 +634,11 @@ bootstrap/
|
|||||||
<td><code>.form-search</code></td>
|
<td><code>.form-search</code></td>
|
||||||
<td class="text-muted">N/A</td>
|
<td class="text-muted">N/A</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Form group with info</td>
|
||||||
|
<td><code>.control-group.info</code></td>
|
||||||
|
<td class="text-muted">N/A</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Fluid container</td>
|
<td>Fluid container</td>
|
||||||
<td><code>.container-fluid</code></td>
|
<td><code>.container-fluid</code></td>
|
||||||
@ -674,7 +702,7 @@ bootstrap/
|
|||||||
<li>Typeahead has been dropped, in favor of using <a href="http://twitter.github.io/typeahead.js/">Twitter Typeahead</a>.</li>
|
<li>Typeahead has been dropped, in favor of using <a href="http://twitter.github.io/typeahead.js/">Twitter Typeahead</a>.</li>
|
||||||
<li>Modal markup has changed significantly. The <code>.modal-header</code>, <code>.modal-body</code>, and <code>.modal-footer</code> sections are now wrapped in <code>.modal-content</code> and <code>.modal-dialog</code> for better mobile styling and behavior.</li>
|
<li>Modal markup has changed significantly. The <code>.modal-header</code>, <code>.modal-body</code>, and <code>.modal-footer</code> sections are now wrapped in <code>.modal-content</code> and <code>.modal-dialog</code> for better mobile styling and behavior.</li>
|
||||||
<li>The HTML loaded by the <code>remote</code> modal option is now injected into the <code>.modal</code> instead of into the <code>.modal-body</code>. This allows you to also easily vary the header and footer of the modal, not just the modal body.</li>
|
<li>The HTML loaded by the <code>remote</code> modal option is now injected into the <code>.modal</code> instead of into the <code>.modal-body</code>. This allows you to also easily vary the header and footer of the modal, not just the modal body.</li>
|
||||||
<li>JavaScript events are namespaced. For example, to handle the modal "show" event, use <code>'show.bs.modal'</code>. For tabs "shown" use <code>'shown.bs.tab'</code>, etc..</li>
|
<li>JavaScript events are namespaced. For example, to handle the modal "show" event, use <code>'show.bs.modal'</code>. For tabs "shown" use <code>'shown.bs.tab'</code>, etc.</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>For more information on upgrading to v3.0, and code snippets from the community, see <a href="http://bootply.com/">Bootply</a>.</p>
|
<p>For more information on upgrading to v3.0, and code snippets from the community, see <a href="http://bootply.com/">Bootply</a>.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -304,15 +304,15 @@ $('#myModal').modal({
|
|||||||
{% endhighlight %}
|
{% endhighlight %}
|
||||||
|
|
||||||
<h4>.modal('toggle')</h4>
|
<h4>.modal('toggle')</h4>
|
||||||
<p>Manually toggles a modal.</p>
|
<p>Manually toggles a modal. <strong>Returns to the caller before the modal has actually been shown or hidden</strong> (i.e. before the <code>shown.bs.modal</code> or <code>hidden.bs.modal</code> event occurs).</p>
|
||||||
{% highlight js %}$('#myModal').modal('toggle'){% endhighlight %}
|
{% highlight js %}$('#myModal').modal('toggle'){% endhighlight %}
|
||||||
|
|
||||||
<h4>.modal('show')</h4>
|
<h4>.modal('show')</h4>
|
||||||
<p>Manually opens a modal.</p>
|
<p>Manually opens a modal. <strong>Returns to the caller before the modal has actually been shown</strong> (i.e. before the <code>shown.bs.modal</code> event occurs).</p>
|
||||||
{% highlight js %}$('#myModal').modal('show'){% endhighlight %}
|
{% highlight js %}$('#myModal').modal('show'){% endhighlight %}
|
||||||
|
|
||||||
<h4>.modal('hide')</h4>
|
<h4>.modal('hide')</h4>
|
||||||
<p>Manually hides a modal.</p>
|
<p>Manually hides a modal. <strong>Returns to the caller before the modal has actually been hidden</strong> (i.e. before the <code>hidden.bs.modal</code> event occurs).</p>
|
||||||
{% highlight js %}$('#myModal').modal('hide'){% endhighlight %}
|
{% highlight js %}$('#myModal').modal('hide'){% endhighlight %}
|
||||||
|
|
||||||
<h3>Events</h3>
|
<h3>Events</h3>
|
||||||
@ -328,11 +328,11 @@ $('#myModal').modal({
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td>show.bs.modal</td>
|
<td>show.bs.modal</td>
|
||||||
<td>This event fires immediately when the <code>show</code> instance method is called.</td>
|
<td>This event fires immediately when the <code>show</code> instance method is called. If caused by a click, the clicked element is available as the <code>relatedTarget</code> property of the event.</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>shown.bs.modal</td>
|
<td>shown.bs.modal</td>
|
||||||
<td>This event is fired when the modal has been made visible to the user (will wait for CSS transitions to complete).</td>
|
<td>This event is fired when the modal has been made visible to the user (will wait for CSS transitions to complete). If caused by a click, the clicked element is available as the <code>relatedTarget</code> property of the event.</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>hide.bs.modal</td>
|
<td>hide.bs.modal</td>
|
||||||
@ -346,8 +346,8 @@ $('#myModal').modal({
|
|||||||
</table>
|
</table>
|
||||||
</div><!-- /.table-responsive -->
|
</div><!-- /.table-responsive -->
|
||||||
{% highlight js %}
|
{% highlight js %}
|
||||||
$('#myModal').on('hidden.bs.modal', function () {
|
$('#myModal').on('hidden.bs.modal', function (e) {
|
||||||
// do something…
|
// do something...
|
||||||
})
|
})
|
||||||
{% endhighlight %}
|
{% endhighlight %}
|
||||||
</div>
|
</div>
|
||||||
@ -529,6 +529,7 @@ $('#myDropdown').on('show.bs.dropdown', function () {
|
|||||||
{% endhighlight %}
|
{% endhighlight %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- ScrollSpy
|
<!-- ScrollSpy
|
||||||
================================================== -->
|
================================================== -->
|
||||||
<div class="bs-docs-section">
|
<div class="bs-docs-section">
|
||||||
@ -588,7 +589,13 @@ $('#myDropdown').on('show.bs.dropdown', function () {
|
|||||||
<h3>Via data attributes</h3>
|
<h3>Via data attributes</h3>
|
||||||
<p>To easily add scrollspy behavior to your topbar navigation, add <code>data-spy="scroll"</code> to the element you want to spy on (most typically this would be the <code><body></code>). Then add the <code>data-target</code> attribute with the ID or class of the parent element of any Bootstrap <code>.nav</code> component.</p>
|
<p>To easily add scrollspy behavior to your topbar navigation, add <code>data-spy="scroll"</code> to the element you want to spy on (most typically this would be the <code><body></code>). Then add the <code>data-target</code> attribute with the ID or class of the parent element of any Bootstrap <code>.nav</code> component.</p>
|
||||||
{% highlight html %}
|
{% highlight html %}
|
||||||
<body data-spy="scroll" data-target="#navbar-example">
|
<body data-spy="scroll" data-target=".navbar-example">
|
||||||
|
...
|
||||||
|
<div class="navbar-example">
|
||||||
|
<ul class="nav nav-tabs">
|
||||||
|
...
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
...
|
...
|
||||||
</body>
|
</body>
|
||||||
{% endhighlight %}
|
{% endhighlight %}
|
||||||
@ -596,7 +603,7 @@ $('#myDropdown').on('show.bs.dropdown', function () {
|
|||||||
<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 %}
|
||||||
$('body').scrollspy({ target: '#navbar-example' })
|
$('body').scrollspy({ target: '.navbar-example' })
|
||||||
{% endhighlight %}
|
{% endhighlight %}
|
||||||
|
|
||||||
<div class="bs-callout bs-callout-danger">
|
<div class="bs-callout bs-callout-danger">
|
||||||
@ -1408,7 +1415,7 @@ $('#my-alert').bind('closed.bs.alert', function () {
|
|||||||
<h2 id="buttons-usage">Usage</h2>
|
<h2 id="buttons-usage">Usage</h2>
|
||||||
<p>Enable buttons via JavaScript:</p>
|
<p>Enable buttons via JavaScript:</p>
|
||||||
{% highlight js %}
|
{% highlight js %}
|
||||||
$('.btn-group').button()
|
$('.btn').button()
|
||||||
{% endhighlight %}
|
{% endhighlight %}
|
||||||
|
|
||||||
<h3>Markup</h3>
|
<h3>Markup</h3>
|
||||||
@ -1926,22 +1933,27 @@ $('#myCarousel').on('slide.bs.carousel', function () {
|
|||||||
<hr class="bs-docs-separator">
|
<hr class="bs-docs-separator">
|
||||||
|
|
||||||
<h2 id="affix-usage">Usage</h2>
|
<h2 id="affix-usage">Usage</h2>
|
||||||
|
<p>Use the affix plugin via data attributes or manually with your own JavaScript. <strong>In both situations, you must provide CSS for the positioning of your content.</strong></p>
|
||||||
|
|
||||||
|
<h3>Positioning via CSS</h3>
|
||||||
|
<p>The affix plugin toggles between three classes, each representing a particular state: <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) to handle the actual positions.</p>
|
||||||
|
<p>Here's how the affix plugin works:</p>
|
||||||
|
<ol>
|
||||||
|
<li>To start, the plugin adds <code>.affix-top</code> to indicate the element is in it's top-most position. At this point no CSS positioning is required.</li>
|
||||||
|
<li>Scrolling past the element you want affixed should trigger the actual affixing. This is where <code>.affix</code> replaces <code>.affix-top</code> and sets <code>position: fixed;</code> (provided by Bootstrap's code CSS).</li>
|
||||||
|
<li>If a bottom offset is defined, scrolling past that should replace <code>.affix</code> with <code>.affix-bottom</code>. Since offsets are optional, setting one requires you to set the appropriate CSS. In this case, add <code>position: absolute;</code> when necessary. The plugin uses the data attribute or JavaScript option to determine where to position the elemtn from there.</li>
|
||||||
|
</ol>
|
||||||
|
<p>Follow the above steps to set your CSS for either of the usage options below.</p>
|
||||||
|
|
||||||
<h3>Via data attributes</h3>
|
<h3>Via data attributes</h3>
|
||||||
<p>To easily add affix behavior to any element, just add <code>data-spy="affix"</code> to the element you want to spy on. Then use offsets to define when to toggle the pinning of an element on and off.</p>
|
<p>To easily add affix behavior to any element, just add <code>data-spy="affix"</code> to the element you want to spy on. Use offsets to define when to toggle the pinning of an element.</p>
|
||||||
|
|
||||||
{% highlight html %}
|
{% highlight html %}
|
||||||
<div data-spy="affix" data-offset-top="200">...</div>
|
<div data-spy="affix" data-offset-top="60" data-offset-bottom="200">
|
||||||
|
...
|
||||||
|
</div>
|
||||||
{% endhighlight %}
|
{% endhighlight %}
|
||||||
|
|
||||||
<div class="bs-callout bs-callout-warning">
|
|
||||||
<h4>Requires independent styling ;)</h4>
|
|
||||||
<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).
|
|
||||||
The <code>.affix-top</code> class should be in the regular flow of the document. The <code>.affix</code> class should be <code>position: fixed</code>. And <code>.affix-bottom</code> should be <code>position: absolute</code>. 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>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h3>Via JavaScript</h3>
|
<h3>Via JavaScript</h3>
|
||||||
<p>Call the affix plugin via JavaScript:</p>
|
<p>Call the affix plugin via JavaScript:</p>
|
||||||
{% highlight js %}
|
{% highlight js %}
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: affix.js v3.0.2
|
* Bootstrap: affix.js v3.0.3
|
||||||
* http://getbootstrap.com/javascript/#affix
|
* http://getbootstrap.com/javascript/#affix
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2013 Twitter, Inc.
|
* Copyright 2013 Twitter, Inc.
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: alert.js v3.0.2
|
* Bootstrap: alert.js v3.0.3
|
||||||
* http://getbootstrap.com/javascript/#alerts
|
* http://getbootstrap.com/javascript/#alerts
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2013 Twitter, Inc.
|
* Copyright 2013 Twitter, Inc.
|
||||||
|
|||||||
16
js/button.js
16
js/button.js
@ -1,5 +1,5 @@
|
|||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: button.js v3.0.2
|
* Bootstrap: button.js v3.0.3
|
||||||
* http://getbootstrap.com/javascript/#buttons
|
* http://getbootstrap.com/javascript/#buttons
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2013 Twitter, Inc.
|
* Copyright 2013 Twitter, Inc.
|
||||||
@ -54,15 +54,21 @@
|
|||||||
|
|
||||||
Button.prototype.toggle = function () {
|
Button.prototype.toggle = function () {
|
||||||
var $parent = this.$element.closest('[data-toggle="buttons"]')
|
var $parent = this.$element.closest('[data-toggle="buttons"]')
|
||||||
|
var changed = true
|
||||||
|
|
||||||
if ($parent.length) {
|
if ($parent.length) {
|
||||||
var $input = this.$element.find('input')
|
var $input = this.$element.find('input')
|
||||||
.prop('checked', !this.$element.hasClass('active'))
|
if ($input.prop('type') === 'radio') {
|
||||||
.trigger('change')
|
// see if clicking on current one
|
||||||
if ($input.prop('type') === 'radio') $parent.find('.active').removeClass('active')
|
if ($input.prop('checked') && this.$element.hasClass('active'))
|
||||||
|
changed = false
|
||||||
|
else
|
||||||
|
$parent.find('.active').removeClass('active')
|
||||||
|
}
|
||||||
|
if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change')
|
||||||
}
|
}
|
||||||
|
|
||||||
this.$element.toggleClass('active')
|
if (changed) this.$element.toggleClass('active')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: carousel.js v3.0.2
|
* Bootstrap: carousel.js v3.0.3
|
||||||
* http://getbootstrap.com/javascript/#carousel
|
* http://getbootstrap.com/javascript/#carousel
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2013 Twitter, Inc.
|
* Copyright 2013 Twitter, Inc.
|
||||||
@ -69,7 +69,7 @@
|
|||||||
|
|
||||||
if (pos > (this.$items.length - 1) || pos < 0) return
|
if (pos > (this.$items.length - 1) || pos < 0) return
|
||||||
|
|
||||||
if (this.sliding) return this.$element.one('slid', function () { that.to(pos) })
|
if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) })
|
||||||
if (activeIndex == pos) return this.pause().cycle()
|
if (activeIndex == pos) return this.pause().cycle()
|
||||||
|
|
||||||
return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
|
return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
|
||||||
@ -121,7 +121,7 @@
|
|||||||
|
|
||||||
if (this.$indicators.length) {
|
if (this.$indicators.length) {
|
||||||
this.$indicators.find('.active').removeClass('active')
|
this.$indicators.find('.active').removeClass('active')
|
||||||
this.$element.one('slid', function () {
|
this.$element.one('slid.bs.carousel', function () {
|
||||||
var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
|
var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
|
||||||
$nextIndicator && $nextIndicator.addClass('active')
|
$nextIndicator && $nextIndicator.addClass('active')
|
||||||
})
|
})
|
||||||
@ -139,7 +139,7 @@
|
|||||||
$next.removeClass([type, direction].join(' ')).addClass('active')
|
$next.removeClass([type, direction].join(' ')).addClass('active')
|
||||||
$active.removeClass(['active', direction].join(' '))
|
$active.removeClass(['active', direction].join(' '))
|
||||||
that.sliding = false
|
that.sliding = false
|
||||||
setTimeout(function () { that.$element.trigger('slid') }, 0)
|
setTimeout(function () { that.$element.trigger('slid.bs.carousel') }, 0)
|
||||||
})
|
})
|
||||||
.emulateTransitionEnd(600)
|
.emulateTransitionEnd(600)
|
||||||
} else {
|
} else {
|
||||||
@ -148,7 +148,7 @@
|
|||||||
$active.removeClass('active')
|
$active.removeClass('active')
|
||||||
$next.addClass('active')
|
$next.addClass('active')
|
||||||
this.sliding = false
|
this.sliding = false
|
||||||
this.$element.trigger('slid')
|
this.$element.trigger('slid.bs.carousel')
|
||||||
}
|
}
|
||||||
|
|
||||||
isCycling && this.cycle()
|
isCycling && this.cycle()
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: collapse.js v3.0.2
|
* Bootstrap: collapse.js v3.0.3
|
||||||
* http://getbootstrap.com/javascript/#collapse
|
* http://getbootstrap.com/javascript/#collapse
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2013 Twitter, Inc.
|
* Copyright 2013 Twitter, Inc.
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: dropdown.js v3.0.2
|
* Bootstrap: dropdown.js v3.0.3
|
||||||
* http://getbootstrap.com/javascript/#dropdowns
|
* http://getbootstrap.com/javascript/#dropdowns
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2013 Twitter, Inc.
|
* Copyright 2013 Twitter, Inc.
|
||||||
@ -41,7 +41,7 @@
|
|||||||
|
|
||||||
if (!isActive) {
|
if (!isActive) {
|
||||||
if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
|
if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
|
||||||
// if mobile we we use a backdrop because click events don't delegate
|
// if mobile we use a backdrop because click events don't delegate
|
||||||
$('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click', clearMenus)
|
$('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click', clearMenus)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -123,9 +123,9 @@
|
|||||||
$.fn.dropdown = function (option) {
|
$.fn.dropdown = function (option) {
|
||||||
return this.each(function () {
|
return this.each(function () {
|
||||||
var $this = $(this)
|
var $this = $(this)
|
||||||
var data = $this.data('dropdown')
|
var data = $this.data('bs.dropdown')
|
||||||
|
|
||||||
if (!data) $this.data('dropdown', (data = new Dropdown(this)))
|
if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
|
||||||
if (typeof option == 'string') data[option].call($this)
|
if (typeof option == 'string') data[option].call($this)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: modal.js v3.0.2
|
* Bootstrap: modal.js v3.0.3
|
||||||
* http://getbootstrap.com/javascript/#modals
|
* http://getbootstrap.com/javascript/#modals
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2013 Twitter, Inc.
|
* Copyright 2013 Twitter, Inc.
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: popover.js v3.0.2
|
* Bootstrap: popover.js v3.0.3
|
||||||
* http://getbootstrap.com/javascript/#popovers
|
* http://getbootstrap.com/javascript/#popovers
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2013 Twitter, Inc.
|
* Copyright 2013 Twitter, Inc.
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: scrollspy.js v3.0.2
|
* Bootstrap: scrollspy.js v3.0.3
|
||||||
* http://getbootstrap.com/javascript/#scrollspy
|
* http://getbootstrap.com/javascript/#scrollspy
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2013 Twitter, Inc.
|
* Copyright 2013 Twitter, Inc.
|
||||||
@ -113,7 +113,7 @@
|
|||||||
.addClass('active')
|
.addClass('active')
|
||||||
}
|
}
|
||||||
|
|
||||||
active.trigger('activate')
|
active.trigger('activate.bs.scrollspy')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: tab.js v3.0.2
|
* Bootstrap: tab.js v3.0.3
|
||||||
* http://getbootstrap.com/javascript/#tabs
|
* http://getbootstrap.com/javascript/#tabs
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2013 Twitter, Inc.
|
* Copyright 2013 Twitter, Inc.
|
||||||
|
|||||||
@ -111,6 +111,12 @@ $(function () {
|
|||||||
ok(!btn1.find('input').prop('checked'), 'btn1 is checked')
|
ok(!btn1.find('input').prop('checked'), 'btn1 is checked')
|
||||||
ok(btn2.hasClass('active'), 'btn2 has active class')
|
ok(btn2.hasClass('active'), 'btn2 has active class')
|
||||||
ok(btn2.find('input').prop('checked'), 'btn2 is checked')
|
ok(btn2.find('input').prop('checked'), 'btn2 is checked')
|
||||||
|
|
||||||
|
btn2.find('input').click() /* clicking an already checked radio should not un-check it */
|
||||||
|
ok(!btn1.hasClass('active'), 'btn1 does not have active class')
|
||||||
|
ok(!btn1.find('input').prop('checked'), 'btn1 is checked')
|
||||||
|
ok(btn2.hasClass('active'), 'btn2 has active class')
|
||||||
|
ok(btn2.find('input').prop('checked'), 'btn2 is checked')
|
||||||
})
|
})
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: tooltip.js v3.0.2
|
* Bootstrap: tooltip.js v3.0.3
|
||||||
* http://getbootstrap.com/javascript/#tooltip
|
* http://getbootstrap.com/javascript/#tooltip
|
||||||
* Inspired by the original jQuery.tipsy by Jason Frame
|
* Inspired by the original jQuery.tipsy by Jason Frame
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: transition.js v3.0.2
|
* Bootstrap: transition.js v3.0.3
|
||||||
* http://getbootstrap.com/javascript/#transitions
|
* http://getbootstrap.com/javascript/#transitions
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2013 Twitter, Inc.
|
* Copyright 2013 Twitter, Inc.
|
||||||
|
|||||||
@ -22,6 +22,12 @@
|
|||||||
&:empty {
|
&:empty {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Quick fix for badges in buttons
|
||||||
|
.btn & {
|
||||||
|
position: relative;
|
||||||
|
top: -1px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hover state, but only for links
|
// Hover state, but only for links
|
||||||
@ -34,12 +40,6 @@ a.badge {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Quick fix for labels/badges in buttons
|
|
||||||
.btn .badge {
|
|
||||||
position: relative;
|
|
||||||
top: -1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Account for counters in navs
|
// Account for counters in navs
|
||||||
a.list-group-item.active > .badge,
|
a.list-group-item.active > .badge,
|
||||||
.nav-pills > .active > a > .badge {
|
.nav-pills > .active > a > .badge {
|
||||||
|
|||||||
@ -2,37 +2,6 @@
|
|||||||
// Button groups
|
// Button groups
|
||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
|
|
||||||
// Button carets
|
|
||||||
//
|
|
||||||
// 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-default .caret {
|
|
||||||
border-bottom-color: @btn-default-color;
|
|
||||||
}
|
|
||||||
.btn-primary,
|
|
||||||
.btn-success,
|
|
||||||
.btn-warning,
|
|
||||||
.btn-danger,
|
|
||||||
.btn-info {
|
|
||||||
.caret {
|
|
||||||
border-bottom-color: #fff;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Make the div behave like a button
|
// Make the div behave like a button
|
||||||
.btn-group,
|
.btn-group,
|
||||||
.btn-group-vertical {
|
.btn-group-vertical {
|
||||||
@ -178,7 +147,8 @@
|
|||||||
|
|
||||||
.btn-group-vertical {
|
.btn-group-vertical {
|
||||||
> .btn,
|
> .btn,
|
||||||
> .btn-group {
|
> .btn-group,
|
||||||
|
> .btn-group > .btn {
|
||||||
display: block;
|
display: block;
|
||||||
float: none;
|
float: none;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -238,11 +208,15 @@
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
table-layout: fixed;
|
table-layout: fixed;
|
||||||
border-collapse: separate;
|
border-collapse: separate;
|
||||||
.btn {
|
> .btn,
|
||||||
|
> .btn-group {
|
||||||
float: none;
|
float: none;
|
||||||
display: table-cell;
|
display: table-cell;
|
||||||
width: 1%;
|
width: 1%;
|
||||||
}
|
}
|
||||||
|
> .btn-group .btn {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -91,6 +91,7 @@
|
|||||||
// Hover/focus state
|
// Hover/focus state
|
||||||
&:hover,
|
&:hover,
|
||||||
&:focus {
|
&:focus {
|
||||||
|
outline: none;
|
||||||
color: @carousel-control-color;
|
color: @carousel-control-color;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
.opacity(.9);
|
.opacity(.9);
|
||||||
|
|||||||
@ -10,12 +10,9 @@
|
|||||||
height: 0;
|
height: 0;
|
||||||
margin-left: 2px;
|
margin-left: 2px;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
border-top: @caret-width-base solid @dropdown-caret-color;
|
border-top: @caret-width-base solid;
|
||||||
border-right: @caret-width-base solid transparent;
|
border-right: @caret-width-base solid transparent;
|
||||||
border-left: @caret-width-base solid transparent;
|
border-left: @caret-width-base solid transparent;
|
||||||
// Firefox fix for https://github.com/twbs/bootstrap/issues/9538. Once fixed,
|
|
||||||
// we can just straight up remove this.
|
|
||||||
border-bottom: 0 dotted;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// The dropdown wrapper (div)
|
// The dropdown wrapper (div)
|
||||||
@ -163,10 +160,8 @@
|
|||||||
.navbar-fixed-bottom .dropdown {
|
.navbar-fixed-bottom .dropdown {
|
||||||
// Reverse the caret
|
// Reverse the caret
|
||||||
.caret {
|
.caret {
|
||||||
// Firefox fix for https://github.com/twbs/bootstrap/issues/9538. Once this
|
border-top: 0;
|
||||||
// gets fixed, restore `border-top: 0;`.
|
border-bottom: @caret-width-base solid;
|
||||||
border-top: 0 dotted;
|
|
||||||
border-bottom: @caret-width-base solid @dropdown-caret-color;
|
|
||||||
content: "";
|
content: "";
|
||||||
}
|
}
|
||||||
// Different positioning for bottom up menu
|
// Different positioning for bottom up menu
|
||||||
|
|||||||
@ -309,6 +309,11 @@ input[type="checkbox"],
|
|||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Override `width: 100%;` when not within a `.form-group`
|
||||||
|
select.form-control {
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
// Remove default margin on radios/checkboxes that were used for stacking, and
|
// 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
|
// then undo the floating of radios and checkboxes to match (which also avoids
|
||||||
// a bug in WebKit: https://github.com/twbs/bootstrap/issues/1969).
|
// a bug in WebKit: https://github.com/twbs/bootstrap/issues/1969).
|
||||||
@ -345,6 +350,12 @@ input[type="checkbox"],
|
|||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
padding-top: (@padding-base-vertical + 1); // Default padding plus a border
|
padding-top: (@padding-base-vertical + 1); // Default padding plus a border
|
||||||
}
|
}
|
||||||
|
// Account for padding we're adding to ensure the alignment and of help text
|
||||||
|
// and other content below items
|
||||||
|
.radio,
|
||||||
|
.checkbox {
|
||||||
|
min-height: @line-height-computed + (@padding-base-vertical + 1);
|
||||||
|
}
|
||||||
|
|
||||||
// Make form groups behave like rows
|
// Make form groups behave like rows
|
||||||
.form-group {
|
.form-group {
|
||||||
|
|||||||
@ -10,11 +10,11 @@
|
|||||||
// Import the fonts
|
// Import the fonts
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Glyphicons Halflings';
|
font-family: 'Glyphicons Halflings';
|
||||||
src: url('@{icon-font-path}@{icon-font-name}.eot');
|
src: ~"url('@{icon-font-path}@{icon-font-name}.eot')";
|
||||||
src: url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype'),
|
src: ~"url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype')",
|
||||||
url('@{icon-font-path}@{icon-font-name}.woff') format('woff'),
|
~"url('@{icon-font-path}@{icon-font-name}.woff') format('woff')",
|
||||||
url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype'),
|
~"url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype')",
|
||||||
url('@{icon-font-path}@{icon-font-name}.svg#glyphicons_halflingsregular') format('svg');
|
~"url('@{icon-font-path}@{icon-font-name}.svg#glyphicons-halflingsregular') format('svg')";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Catchall baseclass
|
// Catchall baseclass
|
||||||
|
|||||||
@ -5,6 +5,16 @@
|
|||||||
// Set the container width, and override it for fixed navbars in media queries
|
// Set the container width, and override it for fixed navbars in media queries
|
||||||
.container {
|
.container {
|
||||||
.container-fixed();
|
.container-fixed();
|
||||||
|
|
||||||
|
@media (min-width: @screen-sm) {
|
||||||
|
width: @container-sm;
|
||||||
|
}
|
||||||
|
@media (min-width: @screen-md) {
|
||||||
|
width: @container-md;
|
||||||
|
}
|
||||||
|
@media (min-width: @screen-lg-min) {
|
||||||
|
width: @container-lg;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// mobile first defaults
|
// mobile first defaults
|
||||||
@ -18,11 +28,8 @@
|
|||||||
|
|
||||||
// Extra small grid
|
// Extra small grid
|
||||||
//
|
//
|
||||||
// Grid classes for extra small devices like smartphones. No offset, push, or
|
// Columns, offsets, pushes, and pulls for extra small devices like
|
||||||
// pull classes are present here due to the size of the target.
|
// smartphones.
|
||||||
//
|
|
||||||
// Note that `.col-xs-12` doesn't get floated on purpose--there's no need since
|
|
||||||
// it's full-width.
|
|
||||||
|
|
||||||
.make-grid-columns-float(xs);
|
.make-grid-columns-float(xs);
|
||||||
.make-grid(@grid-columns, xs, width);
|
.make-grid(@grid-columns, xs, width);
|
||||||
@ -35,15 +42,8 @@
|
|||||||
//
|
//
|
||||||
// Columns, offsets, pushes, and pulls for the small device range, from phones
|
// Columns, offsets, pushes, and pulls for the small device range, from phones
|
||||||
// to tablets.
|
// to tablets.
|
||||||
//
|
|
||||||
// Note that `.col-sm-12` doesn't get floated on purpose--there's no need since
|
|
||||||
// it's full-width.
|
|
||||||
|
|
||||||
@media (min-width: @screen-sm-min) {
|
@media (min-width: @screen-sm-min) {
|
||||||
.container {
|
|
||||||
width: @container-sm;
|
|
||||||
}
|
|
||||||
|
|
||||||
.make-grid-columns-float(sm);
|
.make-grid-columns-float(sm);
|
||||||
.make-grid(@grid-columns, sm, width);
|
.make-grid(@grid-columns, sm, width);
|
||||||
.make-grid(@grid-columns, sm, pull);
|
.make-grid(@grid-columns, sm, pull);
|
||||||
@ -55,15 +55,8 @@
|
|||||||
// Medium grid
|
// Medium grid
|
||||||
//
|
//
|
||||||
// Columns, offsets, pushes, and pulls for the desktop device range.
|
// Columns, offsets, pushes, and pulls for the desktop device range.
|
||||||
//
|
|
||||||
// Note that `.col-md-12` doesn't get floated on purpose--there's no need since
|
|
||||||
// it's full-width.
|
|
||||||
|
|
||||||
@media (min-width: @screen-md-min) {
|
@media (min-width: @screen-md-min) {
|
||||||
.container {
|
|
||||||
width: @container-md;
|
|
||||||
}
|
|
||||||
|
|
||||||
.make-grid-columns-float(md);
|
.make-grid-columns-float(md);
|
||||||
.make-grid(@grid-columns, md, width);
|
.make-grid(@grid-columns, md, width);
|
||||||
.make-grid(@grid-columns, md, pull);
|
.make-grid(@grid-columns, md, pull);
|
||||||
@ -75,15 +68,8 @@
|
|||||||
// Large grid
|
// Large grid
|
||||||
//
|
//
|
||||||
// Columns, offsets, pushes, and pulls for the large desktop device range.
|
// Columns, offsets, pushes, and pulls for the large desktop device range.
|
||||||
//
|
|
||||||
// Note that `.col-lg-12` doesn't get floated on purpose--there's no need since
|
|
||||||
// it's full-width.
|
|
||||||
|
|
||||||
@media (min-width: @screen-lg-min) {
|
@media (min-width: @screen-lg-min) {
|
||||||
.container {
|
|
||||||
width: @container-lg;
|
|
||||||
}
|
|
||||||
|
|
||||||
.make-grid-columns-float(lg);
|
.make-grid-columns-float(lg);
|
||||||
.make-grid(@grid-columns, lg, width);
|
.make-grid(@grid-columns, lg, width);
|
||||||
.make-grid(@grid-columns, lg, pull);
|
.make-grid(@grid-columns, lg, pull);
|
||||||
|
|||||||
@ -10,7 +10,7 @@
|
|||||||
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
|
||||||
|
|
||||||
// Undo padding and float of grid classes
|
// Undo padding and float of grid classes
|
||||||
&.col {
|
&[class*="col-"] {
|
||||||
float: none;
|
float: none;
|
||||||
padding-left: 0;
|
padding-left: 0;
|
||||||
padding-right: 0;
|
padding-right: 0;
|
||||||
|
|||||||
@ -12,7 +12,8 @@
|
|||||||
color: @jumbotron-color;
|
color: @jumbotron-color;
|
||||||
background-color: @jumbotron-bg;
|
background-color: @jumbotron-bg;
|
||||||
|
|
||||||
h1 {
|
h1,
|
||||||
|
.h1 {
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
color: @jumbotron-heading-color;
|
color: @jumbotron-heading-color;
|
||||||
}
|
}
|
||||||
@ -24,6 +25,10 @@
|
|||||||
border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container
|
border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
@media screen and (min-width: @screen-sm-min) {
|
@media screen and (min-width: @screen-sm-min) {
|
||||||
padding-top: (@jumbotron-padding * 1.6);
|
padding-top: (@jumbotron-padding * 1.6);
|
||||||
padding-bottom: (@jumbotron-padding * 1.6);
|
padding-bottom: (@jumbotron-padding * 1.6);
|
||||||
@ -33,7 +38,8 @@
|
|||||||
padding-right: (@jumbotron-padding * 2);
|
padding-right: (@jumbotron-padding * 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
h1 {
|
h1,
|
||||||
|
.h1 {
|
||||||
font-size: (@font-size-base * 4.5);
|
font-size: (@font-size-base * 4.5);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -28,6 +28,12 @@
|
|||||||
&:empty {
|
&:empty {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Quick fix for labels in buttons
|
||||||
|
.btn & {
|
||||||
|
position: relative;
|
||||||
|
top: -1px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Colors
|
// Colors
|
||||||
|
|||||||
@ -19,8 +19,8 @@
|
|||||||
.clearfix() {
|
.clearfix() {
|
||||||
&:before,
|
&:before,
|
||||||
&:after {
|
&:after {
|
||||||
content: " "; /* 1 */
|
content: " "; // 1
|
||||||
display: table; /* 2 */
|
display: table; // 2
|
||||||
}
|
}
|
||||||
&:after {
|
&:after {
|
||||||
clear: both;
|
clear: both;
|
||||||
@ -30,8 +30,8 @@
|
|||||||
// WebKit-style focus
|
// WebKit-style focus
|
||||||
.tab-focus() {
|
.tab-focus() {
|
||||||
// Default
|
// Default
|
||||||
outline: thin dotted #333;
|
outline: thin dotted;
|
||||||
// WebKit
|
//Webkit
|
||||||
outline: 5px auto -webkit-focus-ring-color;
|
outline: 5px auto -webkit-focus-ring-color;
|
||||||
outline-offset: -2px;
|
outline-offset: -2px;
|
||||||
}
|
}
|
||||||
@ -55,7 +55,8 @@
|
|||||||
// Placeholder text
|
// Placeholder text
|
||||||
.placeholder(@color: @input-color-placeholder) {
|
.placeholder(@color: @input-color-placeholder) {
|
||||||
&:-moz-placeholder { color: @color; } // Firefox 4-18
|
&:-moz-placeholder { color: @color; } // Firefox 4-18
|
||||||
&::-moz-placeholder { color: @color; } // Firefox 19+
|
&::-moz-placeholder { color: @color; // Firefox 19+
|
||||||
|
opacity: 1; } // See https://github.com/twbs/bootstrap/pull/11526
|
||||||
&:-ms-input-placeholder { color: @color; } // Internet Explorer 10+
|
&:-ms-input-placeholder { color: @color; } // Internet Explorer 10+
|
||||||
&::-webkit-input-placeholder { color: @color; } // Safari and Chrome
|
&::-webkit-input-placeholder { color: @color; } // Safari and Chrome
|
||||||
}
|
}
|
||||||
@ -87,11 +88,7 @@
|
|||||||
}
|
}
|
||||||
// New mixin to use as of v3.0.1
|
// New mixin to use as of v3.0.1
|
||||||
.text-hide() {
|
.text-hide() {
|
||||||
font: ~"0/0" a;
|
.hide-text();
|
||||||
color: transparent;
|
|
||||||
text-shadow: none;
|
|
||||||
background-color: transparent;
|
|
||||||
border: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -391,7 +388,7 @@
|
|||||||
|
|
||||||
// Panels
|
// Panels
|
||||||
// -------------------------
|
// -------------------------
|
||||||
.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border;) {
|
.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {
|
||||||
border-color: @border;
|
border-color: @border;
|
||||||
|
|
||||||
& > .panel-heading {
|
& > .panel-heading {
|
||||||
@ -402,9 +399,6 @@
|
|||||||
+ .panel-collapse .panel-body {
|
+ .panel-collapse .panel-body {
|
||||||
border-top-color: @border;
|
border-top-color: @border;
|
||||||
}
|
}
|
||||||
& > .dropdown .caret {
|
|
||||||
border-color: @heading-text-color transparent;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
& > .panel-footer {
|
& > .panel-footer {
|
||||||
+ .panel-collapse .panel-body {
|
+ .panel-collapse .panel-body {
|
||||||
@ -430,27 +424,27 @@
|
|||||||
|
|
||||||
// Tables
|
// Tables
|
||||||
// -------------------------
|
// -------------------------
|
||||||
.table-row-variant(@state; @background; @border) {
|
.table-row-variant(@state; @background) {
|
||||||
// Exact selectors below required to override `.table-striped` and prevent
|
// Exact selectors below required to override `.table-striped` and prevent
|
||||||
// inheritance to nested tables.
|
// inheritance to nested tables.
|
||||||
.table > thead > tr,
|
.table {
|
||||||
.table > tbody > tr,
|
> thead,
|
||||||
.table > tfoot > tr {
|
> tbody,
|
||||||
> td.@{state},
|
> tfoot {
|
||||||
> th.@{state},
|
> tr > .@{state},
|
||||||
&.@{state} > td,
|
> .@{state} > td,
|
||||||
&.@{state} > th {
|
> .@{state} > th {
|
||||||
background-color: @background;
|
background-color: @background;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hover states for `.table-hover`
|
// Hover states for `.table-hover`
|
||||||
// Note: this is not available for cells or rows within `thead` or `tfoot`.
|
// Note: this is not available for cells or rows within `thead` or `tfoot`.
|
||||||
.table-hover > tbody > tr {
|
.table-hover > tbody {
|
||||||
> td.@{state}:hover,
|
> tr > .@{state}:hover,
|
||||||
> th.@{state}:hover,
|
> .@{state}:hover > td,
|
||||||
&.@{state}:hover > td,
|
> .@{state}:hover > th {
|
||||||
&.@{state}:hover > th {
|
|
||||||
background-color: darken(@background, 5%);
|
background-color: darken(@background, 5%);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -491,6 +485,11 @@
|
|||||||
border-color: @border;
|
border-color: @border;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.badge {
|
||||||
|
color: @background;
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Button sizes
|
// Button sizes
|
||||||
@ -738,11 +737,11 @@
|
|||||||
@item: ~".col-@{class}-@{index}";
|
@item: ~".col-@{class}-@{index}";
|
||||||
.col(@index + 1, @item);
|
.col(@index + 1, @item);
|
||||||
}
|
}
|
||||||
.col(@index, @list) when (@index < @grid-columns) { // general
|
.col(@index, @list) when (@index =< @grid-columns) { // general
|
||||||
@item: ~".col-@{class}-@{index}";
|
@item: ~".col-@{class}-@{index}";
|
||||||
.col(@index + 1, ~"@{list}, @{item}");
|
.col(@index + 1, ~"@{list}, @{item}");
|
||||||
}
|
}
|
||||||
.col(@index, @list) when (@index = @grid-columns) { // terminal
|
.col(@index, @list) when (@index > @grid-columns) { // terminal
|
||||||
@{list} {
|
@{list} {
|
||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -35,10 +35,8 @@
|
|||||||
// Shell div to position the modal with bottom padding
|
// Shell div to position the modal with bottom padding
|
||||||
.modal-dialog {
|
.modal-dialog {
|
||||||
position: relative;
|
position: relative;
|
||||||
margin-left: auto;
|
|
||||||
margin-right: auto;
|
|
||||||
width: auto;
|
width: auto;
|
||||||
padding: 10px;
|
margin: 10px;
|
||||||
z-index: (@zindex-modal-background + 10);
|
z-index: (@zindex-modal-background + 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -122,8 +120,7 @@
|
|||||||
|
|
||||||
.modal-dialog {
|
.modal-dialog {
|
||||||
width: 600px;
|
width: 600px;
|
||||||
padding-top: 30px;
|
margin: 30px auto;
|
||||||
padding-bottom: 30px;
|
|
||||||
}
|
}
|
||||||
.modal-content {
|
.modal-content {
|
||||||
.box-shadow(0 5px 15px rgba(0,0,0,.5));
|
.box-shadow(0 5px 15px rgba(0,0,0,.5));
|
||||||
|
|||||||
@ -74,18 +74,16 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
&.in {
|
&.in {
|
||||||
overflow-y: auto;
|
overflow-y: visible;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Account for first and last children spacing
|
// Undo the collapse side padding for navbars with containers to ensure
|
||||||
.navbar-nav.navbar-left:first-child {
|
// alignment of right-aligned contents.
|
||||||
margin-left: -@navbar-padding-horizontal;
|
.navbar-fixed-top &,
|
||||||
}
|
.navbar-static-top &,
|
||||||
.navbar-nav.navbar-right:last-child {
|
.navbar-fixed-bottom & {
|
||||||
margin-right: -@navbar-padding-horizontal;
|
padding-left: 0;
|
||||||
}
|
padding-right: 0;
|
||||||
.navbar-text:last-child {
|
|
||||||
margin-right: 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -180,6 +178,7 @@
|
|||||||
padding: 9px 10px;
|
padding: 9px 10px;
|
||||||
.navbar-vertical-align(34px);
|
.navbar-vertical-align(34px);
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
|
background-image: none; // Fix for at least Firefox on Android, per #11468
|
||||||
border: 1px solid transparent;
|
border: 1px solid transparent;
|
||||||
border-radius: @border-radius-base;
|
border-radius: @border-radius-base;
|
||||||
|
|
||||||
@ -246,12 +245,15 @@
|
|||||||
> li {
|
> li {
|
||||||
float: left;
|
float: left;
|
||||||
> a {
|
> a {
|
||||||
padding-top: ((@navbar-height - @line-height-computed) / 2);
|
padding-top: @navbar-padding-vertical;
|
||||||
padding-bottom: ((@navbar-height - @line-height-computed) / 2);
|
padding-bottom: @navbar-padding-vertical;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
&.navbar-right:last-child {
|
||||||
|
margin-right: -@navbar-padding-horizontal;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -302,6 +304,11 @@
|
|||||||
padding-top: 0;
|
padding-top: 0;
|
||||||
padding-bottom: 0;
|
padding-bottom: 0;
|
||||||
.box-shadow(none);
|
.box-shadow(none);
|
||||||
|
|
||||||
|
// Outdent the form if last child to line up with content down the page
|
||||||
|
&.navbar-right:last-child {
|
||||||
|
margin-right: -@navbar-padding-horizontal;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -332,6 +339,13 @@
|
|||||||
|
|
||||||
.navbar-btn {
|
.navbar-btn {
|
||||||
.navbar-vertical-align(@input-height-base);
|
.navbar-vertical-align(@input-height-base);
|
||||||
|
|
||||||
|
&.btn-sm {
|
||||||
|
.navbar-vertical-align(@input-height-small);
|
||||||
|
}
|
||||||
|
&.btn-xs {
|
||||||
|
.navbar-vertical-align(22);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -340,12 +354,17 @@
|
|||||||
// 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;
|
|
||||||
.navbar-vertical-align(@line-height-computed);
|
.navbar-vertical-align(@line-height-computed);
|
||||||
|
|
||||||
@media (min-width: @grid-float-breakpoint) {
|
@media (min-width: @grid-float-breakpoint) {
|
||||||
|
float: left;
|
||||||
margin-left: @navbar-padding-horizontal;
|
margin-left: @navbar-padding-horizontal;
|
||||||
margin-right: @navbar-padding-horizontal;
|
margin-right: @navbar-padding-horizontal;
|
||||||
|
|
||||||
|
// Outdent the form if last child to line up with content down the page
|
||||||
|
&.navbar-right:last-child {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -414,15 +433,8 @@
|
|||||||
border-color: @navbar-default-border;
|
border-color: @navbar-default-border;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Dropdown menu items and carets
|
// Dropdown menu items
|
||||||
.navbar-nav {
|
.navbar-nav {
|
||||||
// Caret should match text color on hover
|
|
||||||
> .dropdown > a:hover .caret,
|
|
||||||
> .dropdown > a:focus .caret {
|
|
||||||
border-top-color: @navbar-default-link-hover-color;
|
|
||||||
border-bottom-color: @navbar-default-link-hover-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Remove background color from open dropdown
|
// Remove background color from open dropdown
|
||||||
> .open > a {
|
> .open > a {
|
||||||
&,
|
&,
|
||||||
@ -430,17 +442,8 @@
|
|||||||
&:focus {
|
&:focus {
|
||||||
background-color: @navbar-default-link-active-bg;
|
background-color: @navbar-default-link-active-bg;
|
||||||
color: @navbar-default-link-active-color;
|
color: @navbar-default-link-active-color;
|
||||||
.caret {
|
|
||||||
border-top-color: @navbar-default-link-active-color;
|
|
||||||
border-bottom-color: @navbar-default-link-active-color;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
> .dropdown > a .caret {
|
|
||||||
border-top-color: @navbar-default-link-color;
|
|
||||||
border-bottom-color: @navbar-default-link-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@media (max-width: @screen-xs-max) {
|
@media (max-width: @screen-xs-max) {
|
||||||
// Dropdowns get custom display when collapsed
|
// Dropdowns get custom display when collapsed
|
||||||
@ -561,24 +564,6 @@
|
|||||||
color: @navbar-inverse-link-active-color;
|
color: @navbar-inverse-link-active-color;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
> .dropdown > a:hover .caret {
|
|
||||||
border-top-color: @navbar-inverse-link-hover-color;
|
|
||||||
border-bottom-color: @navbar-inverse-link-hover-color;
|
|
||||||
}
|
|
||||||
> .dropdown > a .caret {
|
|
||||||
border-top-color: @navbar-inverse-link-color;
|
|
||||||
border-bottom-color: @navbar-inverse-link-color;
|
|
||||||
}
|
|
||||||
> .open > a {
|
|
||||||
&,
|
|
||||||
&:hover,
|
|
||||||
&:focus {
|
|
||||||
.caret {
|
|
||||||
border-top-color: @navbar-inverse-link-active-color;
|
|
||||||
border-bottom-color: @navbar-inverse-link-active-color;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: @screen-xs-max) {
|
@media (max-width: @screen-xs-max) {
|
||||||
// Dropdowns get custom display
|
// Dropdowns get custom display
|
||||||
@ -586,6 +571,9 @@
|
|||||||
> .dropdown-header {
|
> .dropdown-header {
|
||||||
border-color: @navbar-inverse-border;
|
border-color: @navbar-inverse-border;
|
||||||
}
|
}
|
||||||
|
.divider {
|
||||||
|
background-color: @navbar-inverse-border;
|
||||||
|
}
|
||||||
> li > a {
|
> li > a {
|
||||||
color: @navbar-inverse-link-color;
|
color: @navbar-inverse-link-color;
|
||||||
&:hover,
|
&:hover,
|
||||||
|
|||||||
@ -48,11 +48,6 @@
|
|||||||
&:focus {
|
&:focus {
|
||||||
background-color: @nav-link-hover-bg;
|
background-color: @nav-link-hover-bg;
|
||||||
border-color: @link-color;
|
border-color: @link-color;
|
||||||
|
|
||||||
.caret {
|
|
||||||
border-top-color: @link-hover-color;
|
|
||||||
border-bottom-color: @link-hover-color;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -138,11 +133,6 @@
|
|||||||
&:focus {
|
&:focus {
|
||||||
color: @nav-pills-active-link-hover-color;
|
color: @nav-pills-active-link-hover-color;
|
||||||
background-color: @nav-pills-active-link-hover-bg;
|
background-color: @nav-pills-active-link-hover-bg;
|
||||||
|
|
||||||
.caret {
|
|
||||||
border-top-color: @nav-pills-active-link-hover-color;
|
|
||||||
border-bottom-color: @nav-pills-active-link-hover-color;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -243,16 +233,6 @@
|
|||||||
// Dropdowns
|
// Dropdowns
|
||||||
// -------------------------
|
// -------------------------
|
||||||
|
|
||||||
// Make dropdown carets use link color in navs
|
|
||||||
.nav .caret {
|
|
||||||
border-top-color: @link-color;
|
|
||||||
border-bottom-color: @link-color;
|
|
||||||
}
|
|
||||||
.nav a:hover .caret {
|
|
||||||
border-top-color: @link-hover-color;
|
|
||||||
border-bottom-color: @link-hover-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Specific dropdowns
|
// Specific dropdowns
|
||||||
.nav-tabs .dropdown-menu {
|
.nav-tabs .dropdown-menu {
|
||||||
// make dropdown border overlap tab border
|
// make dropdown border overlap tab border
|
||||||
|
|||||||
@ -57,13 +57,17 @@
|
|||||||
|
|
||||||
.panel {
|
.panel {
|
||||||
> .table,
|
> .table,
|
||||||
> .table-responsive {
|
> .table-responsive > .table {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
> .panel-body + .table,
|
> .panel-body + .table,
|
||||||
> .panel-body + .table-responsive {
|
> .panel-body + .table-responsive {
|
||||||
border-top: 1px solid @table-border-color;
|
border-top: 1px solid @table-border-color;
|
||||||
}
|
}
|
||||||
|
> .table > tbody:first-child th,
|
||||||
|
> .table > tbody:first-child td {
|
||||||
|
border-top: 0;
|
||||||
|
}
|
||||||
> .table-bordered,
|
> .table-bordered,
|
||||||
> .table-responsive > .table-bordered {
|
> .table-responsive > .table-bordered {
|
||||||
border: 0;
|
border: 0;
|
||||||
@ -106,6 +110,8 @@
|
|||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
font-size: ceil((@font-size-base * 1.125));
|
font-size: ceil((@font-size-base * 1.125));
|
||||||
|
color: inherit;
|
||||||
|
|
||||||
> a {
|
> a {
|
||||||
color: inherit;
|
color: inherit;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,18 +12,6 @@
|
|||||||
to { background-position: 0 0; }
|
to { background-position: 0 0; }
|
||||||
}
|
}
|
||||||
|
|
||||||
// Firefox
|
|
||||||
@-moz-keyframes progress-bar-stripes {
|
|
||||||
from { background-position: 40px 0; }
|
|
||||||
to { background-position: 0 0; }
|
|
||||||
}
|
|
||||||
|
|
||||||
// Opera
|
|
||||||
@-o-keyframes progress-bar-stripes {
|
|
||||||
from { background-position: 0 0; }
|
|
||||||
to { background-position: 40px 0; }
|
|
||||||
}
|
|
||||||
|
|
||||||
// Spec and IE10+
|
// Spec and IE10+
|
||||||
@keyframes progress-bar-stripes {
|
@keyframes progress-bar-stripes {
|
||||||
from { background-position: 40px 0; }
|
from { background-position: 40px 0; }
|
||||||
|
|||||||
@ -133,6 +133,7 @@ th {
|
|||||||
// Reset default table behavior
|
// Reset default table behavior
|
||||||
|
|
||||||
table col[class*="col-"] {
|
table col[class*="col-"] {
|
||||||
|
position: static; // Prevent border hiding in Firefox and IE9/10 (see https://github.com/twbs/bootstrap/issues/11623)
|
||||||
float: none;
|
float: none;
|
||||||
display: table-column;
|
display: table-column;
|
||||||
}
|
}
|
||||||
@ -152,25 +153,11 @@ table {
|
|||||||
// Exact selectors below required to override `.table-striped` and prevent
|
// Exact selectors below required to override `.table-striped` and prevent
|
||||||
// inheritance to nested tables.
|
// inheritance to nested tables.
|
||||||
|
|
||||||
.table {
|
|
||||||
> thead,
|
|
||||||
> tbody,
|
|
||||||
> tfoot {
|
|
||||||
> tr {
|
|
||||||
> td.active,
|
|
||||||
> th.active,
|
|
||||||
&.active > td,
|
|
||||||
&.active > th {
|
|
||||||
background-color: @table-bg-active;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Generate the contextual variants
|
// Generate the contextual variants
|
||||||
.table-row-variant(success; @state-success-bg; @state-success-border);
|
.table-row-variant(active; @table-bg-active);
|
||||||
.table-row-variant(danger; @state-danger-bg; @state-danger-border);
|
.table-row-variant(success; @state-success-bg);
|
||||||
.table-row-variant(warning; @state-warning-bg; @state-warning-border);
|
.table-row-variant(danger; @state-danger-bg);
|
||||||
|
.table-row-variant(warning; @state-warning-bg);
|
||||||
|
|
||||||
|
|
||||||
// Responsive tables
|
// Responsive tables
|
||||||
|
|||||||
@ -5,9 +5,14 @@
|
|||||||
|
|
||||||
// Mixin and adjust the regular image class
|
// Mixin and adjust the regular image class
|
||||||
.thumbnail {
|
.thumbnail {
|
||||||
.img-thumbnail();
|
display: block;
|
||||||
display: block; // Override the inline-block from `.img-thumbnail`
|
padding: @thumbnail-padding;
|
||||||
margin-bottom: @line-height-computed;
|
margin-bottom: @line-height-computed;
|
||||||
|
line-height: @line-height-base;
|
||||||
|
background-color: @thumbnail-bg;
|
||||||
|
border: 1px solid @thumbnail-border;
|
||||||
|
border-radius: @thumbnail-border-radius;
|
||||||
|
.transition(all .2s ease-in-out);
|
||||||
|
|
||||||
> img {
|
> img {
|
||||||
.img-responsive();
|
.img-responsive();
|
||||||
|
|||||||
106
less/type.less
106
less/type.less
@ -3,12 +3,62 @@
|
|||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
// Headings
|
||||||
|
// -------------------------
|
||||||
|
|
||||||
|
h1, h2, h3, h4, h5, h6,
|
||||||
|
.h1, .h2, .h3, .h4, .h5, .h6 {
|
||||||
|
font-family: @headings-font-family;
|
||||||
|
font-weight: @headings-font-weight;
|
||||||
|
line-height: @headings-line-height;
|
||||||
|
color: @headings-color;
|
||||||
|
|
||||||
|
small,
|
||||||
|
.small {
|
||||||
|
font-weight: normal;
|
||||||
|
line-height: 1;
|
||||||
|
color: @headings-small-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3 {
|
||||||
|
margin-top: @line-height-computed;
|
||||||
|
margin-bottom: (@line-height-computed / 2);
|
||||||
|
|
||||||
|
small,
|
||||||
|
.small {
|
||||||
|
font-size: 65%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6 {
|
||||||
|
margin-top: (@line-height-computed / 2);
|
||||||
|
margin-bottom: (@line-height-computed / 2);
|
||||||
|
|
||||||
|
small,
|
||||||
|
.small {
|
||||||
|
font-size: 75%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h1, .h1 { font-size: @font-size-h1; }
|
||||||
|
h2, .h2 { font-size: @font-size-h2; }
|
||||||
|
h3, .h3 { font-size: @font-size-h3; }
|
||||||
|
h4, .h4 { font-size: @font-size-h4; }
|
||||||
|
h5, .h5 { font-size: @font-size-h5; }
|
||||||
|
h6, .h6 { font-size: @font-size-h6; }
|
||||||
|
|
||||||
|
|
||||||
// Body text
|
// Body text
|
||||||
// -------------------------
|
// -------------------------
|
||||||
|
|
||||||
p {
|
p {
|
||||||
margin: 0 0 (@line-height-computed / 2);
|
margin: 0 0 (@line-height-computed / 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
.lead {
|
.lead {
|
||||||
margin-bottom: @line-height-computed;
|
margin-bottom: @line-height-computed;
|
||||||
font-size: floor(@font-size-base * 1.15);
|
font-size: floor(@font-size-base * 1.15);
|
||||||
@ -72,55 +122,6 @@ cite { font-style: normal; }
|
|||||||
.text-center { text-align: center; }
|
.text-center { text-align: center; }
|
||||||
|
|
||||||
|
|
||||||
// Headings
|
|
||||||
// -------------------------
|
|
||||||
|
|
||||||
h1, h2, h3, h4, h5, h6,
|
|
||||||
.h1, .h2, .h3, .h4, .h5, .h6 {
|
|
||||||
font-family: @headings-font-family;
|
|
||||||
font-weight: @headings-font-weight;
|
|
||||||
line-height: @headings-line-height;
|
|
||||||
color: @headings-color;
|
|
||||||
|
|
||||||
small,
|
|
||||||
.small {
|
|
||||||
font-weight: normal;
|
|
||||||
line-height: 1;
|
|
||||||
color: @headings-small-color;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
h1,
|
|
||||||
h2,
|
|
||||||
h3 {
|
|
||||||
margin-top: @line-height-computed;
|
|
||||||
margin-bottom: (@line-height-computed / 2);
|
|
||||||
|
|
||||||
small,
|
|
||||||
.small {
|
|
||||||
font-size: 65%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
h4,
|
|
||||||
h5,
|
|
||||||
h6 {
|
|
||||||
margin-top: (@line-height-computed / 2);
|
|
||||||
margin-bottom: (@line-height-computed / 2);
|
|
||||||
|
|
||||||
small,
|
|
||||||
.small {
|
|
||||||
font-size: 75%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
h1, .h1 { font-size: @font-size-h1; }
|
|
||||||
h2, .h2 { font-size: @font-size-h2; }
|
|
||||||
h3, .h3 { font-size: @font-size-h3; }
|
|
||||||
h4, .h4 { font-size: @font-size-h4; }
|
|
||||||
h5, .h5 { font-size: @font-size-h5; }
|
|
||||||
h6, .h6 { font-size: @font-size-h6; }
|
|
||||||
|
|
||||||
|
|
||||||
// Page header
|
// Page header
|
||||||
// -------------------------
|
// -------------------------
|
||||||
|
|
||||||
@ -131,7 +132,6 @@ h6, .h6 { font-size: @font-size-h6; }
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Lists
|
// Lists
|
||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
|
|
||||||
@ -171,6 +171,7 @@ ol {
|
|||||||
|
|
||||||
// Description Lists
|
// Description Lists
|
||||||
dl {
|
dl {
|
||||||
|
margin-top: 0; // Remove browser default
|
||||||
margin-bottom: @line-height-computed;
|
margin-bottom: @line-height-computed;
|
||||||
}
|
}
|
||||||
dt,
|
dt,
|
||||||
@ -215,7 +216,7 @@ abbr[data-original-title] {
|
|||||||
cursor: help;
|
cursor: help;
|
||||||
border-bottom: 1px dotted @abbr-border-color;
|
border-bottom: 1px dotted @abbr-border-color;
|
||||||
}
|
}
|
||||||
abbr.initialism {
|
.initialism {
|
||||||
font-size: 90%;
|
font-size: 90%;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
}
|
}
|
||||||
@ -233,7 +234,8 @@ blockquote {
|
|||||||
p:last-child {
|
p:last-child {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
small {
|
small,
|
||||||
|
.small {
|
||||||
display: block;
|
display: block;
|
||||||
line-height: @line-height-base;
|
line-height: @line-height-base;
|
||||||
color: @blockquote-small-color;
|
color: @blockquote-small-color;
|
||||||
|
|||||||
@ -41,7 +41,7 @@
|
|||||||
|
|
||||||
@font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
@font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
@font-family-serif: Georgia, "Times New Roman", Times, serif;
|
@font-family-serif: Georgia, "Times New Roman", Times, serif;
|
||||||
@font-family-monospace: Monaco, Menlo, Consolas, "Courier New", monospace;
|
@font-family-monospace: Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||||
@font-family-base: @font-family-sans-serif;
|
@font-family-base: @font-family-sans-serif;
|
||||||
|
|
||||||
@font-size-base: 14px;
|
@font-size-base: 14px;
|
||||||
@ -157,7 +157,7 @@
|
|||||||
@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: (floor(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2);
|
@input-height-large: (ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2);
|
||||||
@input-height-small: (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2);
|
@input-height-small: (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2);
|
||||||
|
|
||||||
@legend-color: @gray-dark;
|
@legend-color: @gray-dark;
|
||||||
@ -186,8 +186,6 @@
|
|||||||
|
|
||||||
@dropdown-header-color: @gray-light;
|
@dropdown-header-color: @gray-light;
|
||||||
|
|
||||||
@dropdown-caret-color: #000;
|
|
||||||
|
|
||||||
|
|
||||||
// COMPONENT VARIABLES
|
// COMPONENT VARIABLES
|
||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
@ -321,7 +319,6 @@
|
|||||||
@nav-disabled-link-hover-color: @gray-light;
|
@nav-disabled-link-hover-color: @gray-light;
|
||||||
|
|
||||||
@nav-open-link-hover-color: #fff;
|
@nav-open-link-hover-color: #fff;
|
||||||
@nav-open-caret-border-color: #fff;
|
|
||||||
|
|
||||||
// Tabs
|
// Tabs
|
||||||
@nav-tabs-border-color: #ddd;
|
@nav-tabs-border-color: #ddd;
|
||||||
@ -375,19 +372,19 @@
|
|||||||
// Form states and alerts
|
// Form states and alerts
|
||||||
// -------------------------
|
// -------------------------
|
||||||
|
|
||||||
@state-success-text: #468847;
|
@state-success-text: #3c763d;
|
||||||
@state-success-bg: #dff0d8;
|
@state-success-bg: #dff0d8;
|
||||||
@state-success-border: darken(spin(@state-success-bg, -10), 5%);
|
@state-success-border: darken(spin(@state-success-bg, -10), 5%);
|
||||||
|
|
||||||
@state-info-text: #3a87ad;
|
@state-info-text: #31708f;
|
||||||
@state-info-bg: #d9edf7;
|
@state-info-bg: #d9edf7;
|
||||||
@state-info-border: darken(spin(@state-info-bg, -10), 7%);
|
@state-info-border: darken(spin(@state-info-bg, -10), 7%);
|
||||||
|
|
||||||
@state-warning-text: #c09853;
|
@state-warning-text: #8a6d3b;
|
||||||
@state-warning-bg: #fcf8e3;
|
@state-warning-bg: #fcf8e3;
|
||||||
@state-warning-border: darken(spin(@state-warning-bg, -10), 5%);
|
@state-warning-border: darken(spin(@state-warning-bg, -10), 5%);
|
||||||
|
|
||||||
@state-danger-text: #b94a48;
|
@state-danger-text: #a94442;
|
||||||
@state-danger-bg: #f2dede;
|
@state-danger-bg: #f2dede;
|
||||||
@state-danger-border: darken(spin(@state-danger-bg, -10), 5%);
|
@state-danger-border: darken(spin(@state-danger-bg, -10), 5%);
|
||||||
|
|
||||||
|
|||||||
15
package.json
15
package.json
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "bootstrap"
|
"name": "bootstrap"
|
||||||
, "description": "Sleek, intuitive, and powerful front-end framework for faster and easier web development."
|
, "description": "Sleek, intuitive, and powerful front-end framework for faster and easier web development."
|
||||||
, "version": "3.0.2"
|
, "version": "3.0.3"
|
||||||
, "keywords": ["bootstrap", "css"]
|
, "keywords": ["bootstrap", "css"]
|
||||||
, "homepage": "http://getbootstrap.com"
|
, "homepage": "http://getbootstrap.com"
|
||||||
, "author": "Twitter, Inc."
|
, "author": "Twitter, Inc."
|
||||||
@ -33,8 +33,19 @@
|
|||||||
, "grunt-contrib-watch": "~0.5.3"
|
, "grunt-contrib-watch": "~0.5.3"
|
||||||
, "grunt-html-validation": "~0.1.6"
|
, "grunt-html-validation": "~0.1.6"
|
||||||
, "grunt-jekyll": "~0.4.0"
|
, "grunt-jekyll": "~0.4.0"
|
||||||
, "grunt-recess": "~0.4.0"
|
, "grunt-recess": "~0.5.0"
|
||||||
, "grunt-sed": "~0.1.1"
|
, "grunt-sed": "~0.1.1"
|
||||||
, "regexp-quote": "~0.0.0"
|
, "regexp-quote": "~0.0.0"
|
||||||
}
|
}
|
||||||
|
, "jspm": {
|
||||||
|
"main": "js/bootstrap"
|
||||||
|
, "directories": { "lib": "dist" }
|
||||||
|
, "shim": {
|
||||||
|
"js/bootstrap": {
|
||||||
|
"imports": "jquery"
|
||||||
|
, "exports": "$"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
, "buildConfig": { "uglify": true }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user