0
0
mirror of https://github.com/twbs/bootstrap.git synced 2024-11-28 10:24:19 +01:00

sync-commits erge branch 'v4-dev' into custom-checkboxes-radios-correct-color

This commit is contained in:
Sharrell Porter 2017-10-20 07:12:39 -04:00
commit 4f814fabd6
121 changed files with 833 additions and 568 deletions

View File

@ -12,6 +12,3 @@ trim_trailing_whitespace = true
[*.md]
trim_trailing_whitespace = false
[*.py]
indent_size = 4

2
CNAME
View File

@ -1 +1 @@
v4-alpha.getbootstrap.com
getbootstrap.com

View File

@ -38,11 +38,11 @@
Several quick start options are available:
- [Download the latest release.](https://github.com/twbs/bootstrap/archive/v4.0.0-beta.zip)
- [Download the latest release.](https://github.com/twbs/bootstrap/archive/v4.0.0-beta.2.zip)
- Clone the repo: `git clone https://github.com/twbs/bootstrap.git`
- Install with [npm](https://www.npmjs.com/): `npm install bootstrap@4.0.0-beta`
- Install with [yarn](https://yarnpkg.com/): `yarn add bootstrap@4.0.0-beta`
- Install with [Composer](https://getcomposer.org/): `composer require twbs/bootstrap:4.0.0-beta`
- Install with [npm](https://www.npmjs.com/): `npm install bootstrap@4.0.0-beta.2`
- Install with [yarn](https://yarnpkg.com/): `yarn add bootstrap@4.0.0-beta.2`
- Install with [Composer](https://getcomposer.org/): `composer require twbs/bootstrap:4.0.0-beta.2`
- Install with [NuGet](https://www.nuget.org/): CSS: `Install-Package bootstrap -Pre` Sass: `Install-Package bootstrap.sass -Pre` (`-Pre` is only required until Bootstrap v4 has a stable release).
Read the [Getting started page](https://getbootstrap.com/getting-started/) for information on the framework contents, templates and examples, and more.
@ -109,7 +109,7 @@ Documentation search is powered by [Algolia's DocSearch](https://community.algol
2. Run `npm install` to install Node.js dependencies.
3. Run `npm run test` (or a specific NPM script) to rebuild distributed CSS and JavaScript files, as well as our docs assets.
4. From the root `/bootstrap` directory, run `npm run docs-serve` in the command line.
5. Open <http://localhost:9001> in your browser, and voilà.
5. Open `http://localhost:9001` in your browser, and voilà.
Learn more about using Jekyll by reading its [documentation](https://jekyllrb.com/docs/home/).

View File

@ -49,25 +49,26 @@ social_image_path: /assets/brand/bootstrap-social.png
social_logo_path: /assets/brand/bootstrap-social-logo.png
# Custom variables
current_version: 4.0.0-beta
docs_version: 4.0
repo: "https://github.com/twbs/bootstrap"
slack: "https://bootstrap-slack.herokuapp.com"
blog: "https://blog.getbootstrap.com"
expo: "https://expo.getbootstrap.com"
jobs: "https://jobs.getbootstrap.com"
themes: "https://themes.getbootstrap.com"
current_version: 4.0.0-beta.2
current_ruby_version: 4.0.0.beta2
docs_version: 4.0
repo: "https://github.com/twbs/bootstrap"
slack: "https://bootstrap-slack.herokuapp.com"
blog: "https://blog.getbootstrap.com"
expo: "https://expo.getbootstrap.com"
jobs: "https://jobs.getbootstrap.com"
themes: "https://themes.getbootstrap.com"
download:
source: "https://github.com/twbs/bootstrap/archive/v4.0.0-beta.zip"
dist: "https://github.com/twbs/bootstrap/releases/download/v4.0.0-beta/bootstrap-4.0.0-beta-dist.zip"
source: "https://github.com/twbs/bootstrap/archive/v4.0.0-beta.2.zip"
dist: "https://github.com/twbs/bootstrap/releases/download/v4.0.0-beta.2/bootstrap-4.0.0-beta.2-dist.zip"
cdn:
# See https://www.srihash.org for info on how to generate the hashes
css: "https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css"
css_hash: "sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M"
js: "https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js"
js_hash: "sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1"
css: "https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css"
css_hash: "sha384-PsH8R72JQ3SOdhVi3uxftmaW6Vc51MKb0q5P2rRUpPvrszuE4W1povHYgTpBfshb"
js: "https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js"
js_hash: "sha384-alpBpkh1PFOepccYVYDB4do5UnbKysX5WZXm3XxPqe5iKTfUKjNkCk9SaVuEZflJ"
jquery: "https://code.jquery.com/jquery-3.2.1.slim.min.js"
jquery_hash: "sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN"
popper: "https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js"

View File

@ -37,7 +37,7 @@
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="bd-versions">
<a class="dropdown-item active" href="{{ site.baseurl }}/docs/{{ site.docs_version }}/">Latest (4.x)</a>
<a class="dropdown-item" href="https://v4-alpha.getbootstrap.com/">v4 Alpha 6</a>
<a class="dropdown-item" href="https://getbootstrap.com/3.3/">v3.3.7</a>
<a class="dropdown-item" href="https://getbootstrap.com/docs/3.3/">v3.3.7</a>
<a class="dropdown-item" href="https://getbootstrap.com/2.3.2/">v2.3.2</a>
</div>
</li>

View File

@ -3,7 +3,7 @@
<head>
{% include header.html %}
</head>
<body class="bd-docs" data-spy="scroll" data-target=".bd-sidenav-active">
<body>
<a id="skippy" class="sr-only sr-only-focusable" href="#content">
<div class="container">
<span class="skiplink-text">Skip to main content</span>

View File

@ -3,7 +3,7 @@
<head>
{% include header.html %}
</head>
<body class="bd-docs" data-spy="scroll" data-target=".bd-sidenav-active">
<body>
<a id="skippy" class="sr-only sr-only-focusable" href="#content">
<div class="container">
<span class="skiplink-text">Skip to main content</span>

View File

@ -3,7 +3,7 @@
<head>
{% include header.html %}
</head>
<body class="bd-home">
<body>
<a id="skippy" class="sr-only sr-only-focusable" href="#content">
<div class="container">
<span class="skiplink-text">Skip to main content</span>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -4,21 +4,21 @@
@each $color, $value in $colors {
.swatch-#{$color} {
color: color-yiq($value);
background-color: #{$value};
@include color-yiq($value);
}
}
@each $color, $value in $theme-colors {
.swatch-#{$color} {
color: color-yiq($value);
background-color: #{$value};
@include color-yiq($value);
}
}
@each $color, $value in $grays {
.swatch-#{$color} {
color: color-yiq($value);
background-color: #{$value};
@include color-yiq($value);
}
}

View File

@ -8,7 +8,7 @@
@supports (position: sticky) {
position: sticky;
top: 4rem;
max-height: calc(100vh - 4rem);
height: calc(100vh - 4rem);
overflow-y: auto;
}
order: 2;
@ -59,7 +59,7 @@
position: sticky;
top: 4rem;
z-index: 1000;
max-height: calc(100vh - 4rem);
height: calc(100vh - 4rem);
}
border-right: 1px solid rgba(0,0,0,.1);
}

View File

@ -2,9 +2,7 @@
$bd-purple: #563d7c;
$bd-purple-bright: lighten(saturate($bd-purple, 5%), 15%);
$bd-purple-light: #cdbfe3;
$bd-purple-lightest: #f5f2f9;
$bd-graphite: #2a2730;
$bd-graphite-light: lighten($bd-graphite, 40%);
$bd-yellow: #ffe484;
$bd-danger: #d9534f;
$bd-warning: #f0ad4e;

View File

@ -1,3 +1,9 @@
/*!
* Bootstrap Grid v4.0.0-beta.2 (https://getbootstrap.com)
* Copyright 2011-2017 The Bootstrap Authors
* Copyright 2011-2017 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
@-ms-viewport {
width: device-width;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,3 +1,10 @@
/*!
* Bootstrap Reboot v4.0.0-beta.2 (https://getbootstrap.com)
* Copyright 2011-2017 The Bootstrap Authors
* Copyright 2011-2017 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
*/
*,
*::before,
*::after {

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,8 @@
*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#868e96;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}
/*!
* Bootstrap Reboot v4.0.0-beta.2 (https://getbootstrap.com)
* Copyright 2011-2017 The Bootstrap Authors
* Copyright 2011-2017 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
*/*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#868e96;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}
/*# sourceMappingURL=bootstrap-reboot.min.css.map */

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
/*!
* Bootstrap v4.0.0-beta (https://getbootstrap.com)
* Bootstrap v4.0.0-beta.2 (https://getbootstrap.com)
* Copyright 2011-2017 The Bootstrap Authors
* Copyright 2011-2017 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
@ -433,7 +433,7 @@ h1, h2, h3, h4, h5, h6,
margin-bottom: 0.5rem;
font-family: inherit;
font-weight: 500;
line-height: 1.1;
line-height: 1.2;
color: inherit;
}
@ -469,25 +469,25 @@ h6, .h6 {
.display-1 {
font-size: 6rem;
font-weight: 300;
line-height: 1.1;
line-height: 1.2;
}
.display-2 {
font-size: 5.5rem;
font-weight: 300;
line-height: 1.1;
line-height: 1.2;
}
.display-3 {
font-size: 4.5rem;
font-weight: 300;
line-height: 1.1;
line-height: 1.2;
}
.display-4 {
font-size: 3.5rem;
font-weight: 300;
line-height: 1.1;
line-height: 1.2;
}
hr {
@ -1870,6 +1870,7 @@ pre code {
background-color: #fff;
border-color: #80bdff;
outline: none;
box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}
.form-control::-webkit-input-placeholder {
@ -1882,6 +1883,11 @@ pre code {
opacity: 1;
}
.form-control::-ms-input-placeholder {
color: #868e96;
opacity: 1;
}
.form-control::placeholder {
color: #868e96;
opacity: 1;
@ -2220,10 +2226,6 @@ select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.for
.form-inline .input-group {
width: auto;
}
.form-inline .form-control-label {
margin-bottom: 0;
vertical-align: middle;
}
.form-inline .form-check {
display: -ms-flexbox;
display: flex;
@ -2288,7 +2290,7 @@ select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.for
.btn:focus, .btn.focus {
outline: 0;
box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.25);
box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}
.btn.disabled, .btn:disabled {
@ -2317,7 +2319,7 @@ fieldset[disabled] a.btn {
}
.btn-primary:focus, .btn-primary.focus {
box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.5);
box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);
}
.btn-primary.disabled, .btn-primary:disabled {
@ -2327,9 +2329,10 @@ fieldset[disabled] a.btn {
.btn-primary:not([disabled]):not(.disabled):active, .btn-primary:not([disabled]):not(.disabled).active,
.show > .btn-primary.dropdown-toggle {
background-color: #0069d9;
background-image: none;
border-color: #0062cc;
color: #fff;
background-color: #0062cc;
border-color: #005cbf;
box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);
}
.btn-secondary {
@ -2345,7 +2348,7 @@ fieldset[disabled] a.btn {
}
.btn-secondary:focus, .btn-secondary.focus {
box-shadow: 0 0 0 3px rgba(134, 142, 150, 0.5);
box-shadow: 0 0 0 0.2rem rgba(134, 142, 150, 0.5);
}
.btn-secondary.disabled, .btn-secondary:disabled {
@ -2355,9 +2358,10 @@ fieldset[disabled] a.btn {
.btn-secondary:not([disabled]):not(.disabled):active, .btn-secondary:not([disabled]):not(.disabled).active,
.show > .btn-secondary.dropdown-toggle {
background-color: #727b84;
background-image: none;
border-color: #6c757d;
color: #fff;
background-color: #6c757d;
border-color: #666e76;
box-shadow: 0 0 0 0.2rem rgba(134, 142, 150, 0.5);
}
.btn-success {
@ -2373,7 +2377,7 @@ fieldset[disabled] a.btn {
}
.btn-success:focus, .btn-success.focus {
box-shadow: 0 0 0 3px rgba(40, 167, 69, 0.5);
box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
}
.btn-success.disabled, .btn-success:disabled {
@ -2383,9 +2387,10 @@ fieldset[disabled] a.btn {
.btn-success:not([disabled]):not(.disabled):active, .btn-success:not([disabled]):not(.disabled).active,
.show > .btn-success.dropdown-toggle {
background-color: #218838;
background-image: none;
border-color: #1e7e34;
color: #fff;
background-color: #1e7e34;
border-color: #1c7430;
box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
}
.btn-info {
@ -2401,7 +2406,7 @@ fieldset[disabled] a.btn {
}
.btn-info:focus, .btn-info.focus {
box-shadow: 0 0 0 3px rgba(23, 162, 184, 0.5);
box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
}
.btn-info.disabled, .btn-info:disabled {
@ -2411,9 +2416,10 @@ fieldset[disabled] a.btn {
.btn-info:not([disabled]):not(.disabled):active, .btn-info:not([disabled]):not(.disabled).active,
.show > .btn-info.dropdown-toggle {
background-color: #138496;
background-image: none;
border-color: #117a8b;
color: #fff;
background-color: #117a8b;
border-color: #10707f;
box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
}
.btn-warning {
@ -2429,7 +2435,7 @@ fieldset[disabled] a.btn {
}
.btn-warning:focus, .btn-warning.focus {
box-shadow: 0 0 0 3px rgba(255, 193, 7, 0.5);
box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
}
.btn-warning.disabled, .btn-warning:disabled {
@ -2439,9 +2445,10 @@ fieldset[disabled] a.btn {
.btn-warning:not([disabled]):not(.disabled):active, .btn-warning:not([disabled]):not(.disabled).active,
.show > .btn-warning.dropdown-toggle {
background-color: #e0a800;
background-image: none;
border-color: #d39e00;
color: #111;
background-color: #d39e00;
border-color: #c69500;
box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
}
.btn-danger {
@ -2457,7 +2464,7 @@ fieldset[disabled] a.btn {
}
.btn-danger:focus, .btn-danger.focus {
box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.5);
box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
}
.btn-danger.disabled, .btn-danger:disabled {
@ -2467,9 +2474,10 @@ fieldset[disabled] a.btn {
.btn-danger:not([disabled]):not(.disabled):active, .btn-danger:not([disabled]):not(.disabled).active,
.show > .btn-danger.dropdown-toggle {
background-color: #c82333;
background-image: none;
border-color: #bd2130;
color: #fff;
background-color: #bd2130;
border-color: #b21f2d;
box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
}
.btn-light {
@ -2485,7 +2493,7 @@ fieldset[disabled] a.btn {
}
.btn-light:focus, .btn-light.focus {
box-shadow: 0 0 0 3px rgba(248, 249, 250, 0.5);
box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
}
.btn-light.disabled, .btn-light:disabled {
@ -2495,9 +2503,10 @@ fieldset[disabled] a.btn {
.btn-light:not([disabled]):not(.disabled):active, .btn-light:not([disabled]):not(.disabled).active,
.show > .btn-light.dropdown-toggle {
background-color: #e2e6ea;
background-image: none;
border-color: #dae0e5;
color: #111;
background-color: #dae0e5;
border-color: #d3d9df;
box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
}
.btn-dark {
@ -2513,7 +2522,7 @@ fieldset[disabled] a.btn {
}
.btn-dark:focus, .btn-dark.focus {
box-shadow: 0 0 0 3px rgba(52, 58, 64, 0.5);
box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
}
.btn-dark.disabled, .btn-dark:disabled {
@ -2523,9 +2532,10 @@ fieldset[disabled] a.btn {
.btn-dark:not([disabled]):not(.disabled):active, .btn-dark:not([disabled]):not(.disabled).active,
.show > .btn-dark.dropdown-toggle {
background-color: #23272b;
background-image: none;
border-color: #1d2124;
color: #fff;
background-color: #1d2124;
border-color: #171a1d;
box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
}
.btn-outline-primary {
@ -2542,7 +2552,7 @@ fieldset[disabled] a.btn {
}
.btn-outline-primary:focus, .btn-outline-primary.focus {
box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.5);
box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);
}
.btn-outline-primary.disabled, .btn-outline-primary:disabled {
@ -2555,6 +2565,7 @@ fieldset[disabled] a.btn {
color: #fff;
background-color: #007bff;
border-color: #007bff;
box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);
}
.btn-outline-secondary {
@ -2571,7 +2582,7 @@ fieldset[disabled] a.btn {
}
.btn-outline-secondary:focus, .btn-outline-secondary.focus {
box-shadow: 0 0 0 3px rgba(134, 142, 150, 0.5);
box-shadow: 0 0 0 0.2rem rgba(134, 142, 150, 0.5);
}
.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {
@ -2584,6 +2595,7 @@ fieldset[disabled] a.btn {
color: #fff;
background-color: #868e96;
border-color: #868e96;
box-shadow: 0 0 0 0.2rem rgba(134, 142, 150, 0.5);
}
.btn-outline-success {
@ -2600,7 +2612,7 @@ fieldset[disabled] a.btn {
}
.btn-outline-success:focus, .btn-outline-success.focus {
box-shadow: 0 0 0 3px rgba(40, 167, 69, 0.5);
box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
}
.btn-outline-success.disabled, .btn-outline-success:disabled {
@ -2613,6 +2625,7 @@ fieldset[disabled] a.btn {
color: #fff;
background-color: #28a745;
border-color: #28a745;
box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
}
.btn-outline-info {
@ -2629,7 +2642,7 @@ fieldset[disabled] a.btn {
}
.btn-outline-info:focus, .btn-outline-info.focus {
box-shadow: 0 0 0 3px rgba(23, 162, 184, 0.5);
box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
}
.btn-outline-info.disabled, .btn-outline-info:disabled {
@ -2642,6 +2655,7 @@ fieldset[disabled] a.btn {
color: #fff;
background-color: #17a2b8;
border-color: #17a2b8;
box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
}
.btn-outline-warning {
@ -2658,7 +2672,7 @@ fieldset[disabled] a.btn {
}
.btn-outline-warning:focus, .btn-outline-warning.focus {
box-shadow: 0 0 0 3px rgba(255, 193, 7, 0.5);
box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
}
.btn-outline-warning.disabled, .btn-outline-warning:disabled {
@ -2671,6 +2685,7 @@ fieldset[disabled] a.btn {
color: #fff;
background-color: #ffc107;
border-color: #ffc107;
box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
}
.btn-outline-danger {
@ -2687,7 +2702,7 @@ fieldset[disabled] a.btn {
}
.btn-outline-danger:focus, .btn-outline-danger.focus {
box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.5);
box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
}
.btn-outline-danger.disabled, .btn-outline-danger:disabled {
@ -2700,6 +2715,7 @@ fieldset[disabled] a.btn {
color: #fff;
background-color: #dc3545;
border-color: #dc3545;
box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
}
.btn-outline-light {
@ -2716,7 +2732,7 @@ fieldset[disabled] a.btn {
}
.btn-outline-light:focus, .btn-outline-light.focus {
box-shadow: 0 0 0 3px rgba(248, 249, 250, 0.5);
box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
}
.btn-outline-light.disabled, .btn-outline-light:disabled {
@ -2729,6 +2745,7 @@ fieldset[disabled] a.btn {
color: #212529;
background-color: #f8f9fa;
border-color: #f8f9fa;
box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
}
.btn-outline-dark {
@ -2745,7 +2762,7 @@ fieldset[disabled] a.btn {
}
.btn-outline-dark:focus, .btn-outline-dark.focus {
box-shadow: 0 0 0 3px rgba(52, 58, 64, 0.5);
box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
}
.btn-outline-dark.disabled, .btn-outline-dark:disabled {
@ -2758,6 +2775,7 @@ fieldset[disabled] a.btn {
color: #fff;
background-color: #343a40;
border-color: #343a40;
box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
}
.btn-link {
@ -3299,7 +3317,7 @@ tbody.collapse.show {
}
.custom-control-input:focus ~ .custom-control-indicator {
box-shadow: 0 0 0 1px #fff, 0 0 0 3px #007bff;
box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}
.custom-control-input:active ~ .custom-control-indicator {
@ -4762,15 +4780,10 @@ tbody.collapse.show {
.list-group-flush .list-group-item {
border-right: 0;
border-bottom: 0;
border-left: 0;
border-radius: 0;
}
.list-group-flush .list-group-item:first-child {
border-top: 0;
}
.list-group-flush:first-child .list-group-item:first-child {
border-top: 0;
}
@ -5258,7 +5271,6 @@ button.close {
z-index: 1060;
display: block;
max-width: 276px;
padding: 1px;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
font-style: normal;
font-weight: 400;
@ -5284,8 +5296,8 @@ button.close {
.popover .arrow {
position: absolute;
display: block;
width: 10px;
height: 5px;
width: 0.8rem;
height: 0.4rem;
}
.popover .arrow::before,
@ -5298,16 +5310,16 @@ button.close {
.popover .arrow::before {
content: "";
border-width: 11px;
border-width: 0.8rem;
}
.popover .arrow::after {
content: "";
border-width: 11px;
border-width: 0.8rem;
}
.popover.bs-popover-top, .popover.bs-popover-auto[x-placement^="top"] {
margin-bottom: 10px;
margin-bottom: 0.8rem;
}
.popover.bs-popover-top .arrow, .popover.bs-popover-auto[x-placement^="top"] .arrow {
@ -5320,19 +5332,19 @@ button.close {
}
.popover.bs-popover-top .arrow::before, .popover.bs-popover-auto[x-placement^="top"] .arrow::before {
bottom: -11px;
margin-left: -6px;
bottom: -0.8rem;
margin-left: -0.8rem;
border-top-color: rgba(0, 0, 0, 0.25);
}
.popover.bs-popover-top .arrow::after, .popover.bs-popover-auto[x-placement^="top"] .arrow::after {
bottom: -10px;
margin-left: -6px;
bottom: calc((0.8rem - 1px) * -1);
margin-left: -0.8rem;
border-top-color: #fff;
}
.popover.bs-popover-right, .popover.bs-popover-auto[x-placement^="right"] {
margin-left: 10px;
margin-left: 0.8rem;
}
.popover.bs-popover-right .arrow, .popover.bs-popover-auto[x-placement^="right"] .arrow {
@ -5341,22 +5353,22 @@ button.close {
.popover.bs-popover-right .arrow::before, .popover.bs-popover-auto[x-placement^="right"] .arrow::before,
.popover.bs-popover-right .arrow::after, .popover.bs-popover-auto[x-placement^="right"] .arrow::after {
margin-top: -8px;
margin-top: -0.8rem;
border-left-width: 0;
}
.popover.bs-popover-right .arrow::before, .popover.bs-popover-auto[x-placement^="right"] .arrow::before {
left: -11px;
left: -0.8rem;
border-right-color: rgba(0, 0, 0, 0.25);
}
.popover.bs-popover-right .arrow::after, .popover.bs-popover-auto[x-placement^="right"] .arrow::after {
left: -10px;
left: calc((0.8rem - 1px) * -1);
border-right-color: #fff;
}
.popover.bs-popover-bottom, .popover.bs-popover-auto[x-placement^="bottom"] {
margin-top: 10px;
margin-top: 0.8rem;
}
.popover.bs-popover-bottom .arrow, .popover.bs-popover-auto[x-placement^="bottom"] .arrow {
@ -5365,17 +5377,17 @@ button.close {
.popover.bs-popover-bottom .arrow::before, .popover.bs-popover-auto[x-placement^="bottom"] .arrow::before,
.popover.bs-popover-bottom .arrow::after, .popover.bs-popover-auto[x-placement^="bottom"] .arrow::after {
margin-left: -7px;
margin-left: -0.8rem;
border-top-width: 0;
}
.popover.bs-popover-bottom .arrow::before, .popover.bs-popover-auto[x-placement^="bottom"] .arrow::before {
top: -11px;
top: -0.8rem;
border-bottom-color: rgba(0, 0, 0, 0.25);
}
.popover.bs-popover-bottom .arrow::after, .popover.bs-popover-auto[x-placement^="bottom"] .arrow::after {
top: -10px;
top: calc((0.8rem - 1px) * -1);
border-bottom-color: #fff;
}
@ -5391,7 +5403,7 @@ button.close {
}
.popover.bs-popover-left, .popover.bs-popover-auto[x-placement^="left"] {
margin-right: 10px;
margin-right: 0.8rem;
}
.popover.bs-popover-left .arrow, .popover.bs-popover-auto[x-placement^="left"] .arrow {
@ -5400,22 +5412,22 @@ button.close {
.popover.bs-popover-left .arrow::before, .popover.bs-popover-auto[x-placement^="left"] .arrow::before,
.popover.bs-popover-left .arrow::after, .popover.bs-popover-auto[x-placement^="left"] .arrow::after {
margin-top: -8px;
margin-top: -0.8rem;
border-right-width: 0;
}
.popover.bs-popover-left .arrow::before, .popover.bs-popover-auto[x-placement^="left"] .arrow::before {
right: -11px;
right: -0.8rem;
border-left-color: rgba(0, 0, 0, 0.25);
}
.popover.bs-popover-left .arrow::after, .popover.bs-popover-auto[x-placement^="left"] .arrow::after {
right: -10px;
right: calc((0.8rem - 1px) * -1);
border-left-color: #fff;
}
.popover-header {
padding: 8px 14px;
padding: 0.5rem 0.75rem;
margin-bottom: 0;
font-size: 1rem;
color: inherit;
@ -5430,7 +5442,7 @@ button.close {
}
.popover-body {
padding: 9px 14px;
padding: 0.5rem 0.75rem;
color: #212529;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
/*!
* Bootstrap v4.0.0-beta (https://getbootstrap.com)
* Bootstrap v4.0.0-beta.2 (https://getbootstrap.com)
* Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
@ -10,7 +10,7 @@ $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): util.js
* Bootstrap (v4.0.0-beta.2): util.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -179,7 +179,7 @@ var inheritsLoose = _inheritsLoose;
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): alert.js
* Bootstrap (v4.0.0-beta.2): alert.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -191,7 +191,7 @@ var Alert = function () {
* ------------------------------------------------------------------------
*/
var NAME = 'alert';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.alert';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -351,7 +351,7 @@ var Alert = function () {
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): button.js
* Bootstrap (v4.0.0-beta.2): button.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -363,7 +363,7 @@ var Button = function () {
* ------------------------------------------------------------------------
*/
var NAME = 'button';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.button';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -514,7 +514,7 @@ var Button = function () {
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): carousel.js
* Bootstrap (v4.0.0-beta.2): carousel.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -526,7 +526,7 @@ var Carousel = function () {
* ------------------------------------------------------------------------
*/
var NAME = 'carousel';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.carousel';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -1014,7 +1014,7 @@ var Carousel = function () {
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): collapse.js
* Bootstrap (v4.0.0-beta.2): collapse.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -1026,7 +1026,7 @@ var Collapse = function () {
* ------------------------------------------------------------------------
*/
var NAME = 'collapse';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.collapse';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -3819,7 +3819,7 @@ Popper.Defaults = Defaults;
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): dropdown.js
* Bootstrap (v4.0.0-beta.2): dropdown.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -3840,7 +3840,7 @@ var Dropdown = function () {
var NAME = 'dropdown';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.dropdown';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -4258,7 +4258,7 @@ var Dropdown = function () {
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): modal.js
* Bootstrap (v4.0.0-beta.2): modal.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -4270,7 +4270,7 @@ var Modal = function () {
* ------------------------------------------------------------------------
*/
var NAME = 'modal';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.modal';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -4834,7 +4834,7 @@ var Modal = function () {
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): tooltip.js
* Bootstrap (v4.0.0-beta.2): tooltip.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -4855,7 +4855,7 @@ var Tooltip = function () {
var NAME = 'tooltip';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.tooltip';
var EVENT_KEY = "." + DATA_KEY;
var JQUERY_NO_CONFLICT = $.fn[NAME];
@ -5495,7 +5495,7 @@ var Tooltip = function () {
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): popover.js
* Bootstrap (v4.0.0-beta.2): popover.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -5507,7 +5507,7 @@ var Popover = function () {
* ------------------------------------------------------------------------
*/
var NAME = 'popover';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.popover';
var EVENT_KEY = "." + DATA_KEY;
var JQUERY_NO_CONFLICT = $.fn[NAME];
@ -5681,7 +5681,7 @@ var Popover = function () {
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): scrollspy.js
* Bootstrap (v4.0.0-beta.2): scrollspy.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -5693,7 +5693,7 @@ var ScrollSpy = function () {
* ------------------------------------------------------------------------
*/
var NAME = 'scrollspy';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.scrollspy';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -5992,7 +5992,7 @@ var ScrollSpy = function () {
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): tab.js
* Bootstrap (v4.0.0-beta.2): tab.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -6004,7 +6004,7 @@ var Tab = function () {
* ------------------------------------------------------------------------
*/
var NAME = 'tab';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.tab';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -6258,11 +6258,14 @@ var Tab = function () {
}
var version = $.fn.jquery.split(' ')[0].split('.');
var min = 3;
var max = 4;
var minMajor = 1;
var ltMajor = 2;
var minMinor = 9;
var minPatch = 1;
var maxMajor = 4;
if (version[0] < min || version[0] >= max) {
throw new Error('Bootstrap\'s JavaScript requires at least jQuery v3.0.0 but less than v4.0.0');
if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
}
})($);
@ -6281,3 +6284,4 @@ exports.Tooltip = Tooltip;
return exports;
}({},$));
//# sourceMappingURL=bootstrap.bundle.js.map

1
dist/js/bootstrap.bundle.js.map vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
dist/js/bootstrap.bundle.min.js.map vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
/*!
* Bootstrap v4.0.0-beta (https://getbootstrap.com)
* Bootstrap v4.0.0-beta.2 (https://getbootstrap.com)
* Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
@ -11,7 +11,7 @@ Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): util.js
* Bootstrap (v4.0.0-beta.2): util.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -180,7 +180,7 @@ var inheritsLoose = _inheritsLoose;
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): alert.js
* Bootstrap (v4.0.0-beta.2): alert.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -192,7 +192,7 @@ var Alert = function () {
* ------------------------------------------------------------------------
*/
var NAME = 'alert';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.alert';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -352,7 +352,7 @@ var Alert = function () {
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): button.js
* Bootstrap (v4.0.0-beta.2): button.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -364,7 +364,7 @@ var Button = function () {
* ------------------------------------------------------------------------
*/
var NAME = 'button';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.button';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -515,7 +515,7 @@ var Button = function () {
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): carousel.js
* Bootstrap (v4.0.0-beta.2): carousel.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -527,7 +527,7 @@ var Carousel = function () {
* ------------------------------------------------------------------------
*/
var NAME = 'carousel';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.carousel';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -1015,7 +1015,7 @@ var Carousel = function () {
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): collapse.js
* Bootstrap (v4.0.0-beta.2): collapse.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -1027,7 +1027,7 @@ var Collapse = function () {
* ------------------------------------------------------------------------
*/
var NAME = 'collapse';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.collapse';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -1382,7 +1382,7 @@ var Collapse = function () {
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): dropdown.js
* Bootstrap (v4.0.0-beta.2): dropdown.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -1403,7 +1403,7 @@ var Dropdown = function () {
var NAME = 'dropdown';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.dropdown';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -1821,7 +1821,7 @@ var Dropdown = function () {
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): modal.js
* Bootstrap (v4.0.0-beta.2): modal.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -1833,7 +1833,7 @@ var Modal = function () {
* ------------------------------------------------------------------------
*/
var NAME = 'modal';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.modal';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -2397,7 +2397,7 @@ var Modal = function () {
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): tooltip.js
* Bootstrap (v4.0.0-beta.2): tooltip.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -2418,7 +2418,7 @@ var Tooltip = function () {
var NAME = 'tooltip';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.tooltip';
var EVENT_KEY = "." + DATA_KEY;
var JQUERY_NO_CONFLICT = $.fn[NAME];
@ -3058,7 +3058,7 @@ var Tooltip = function () {
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): popover.js
* Bootstrap (v4.0.0-beta.2): popover.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -3070,7 +3070,7 @@ var Popover = function () {
* ------------------------------------------------------------------------
*/
var NAME = 'popover';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.popover';
var EVENT_KEY = "." + DATA_KEY;
var JQUERY_NO_CONFLICT = $.fn[NAME];
@ -3244,7 +3244,7 @@ var Popover = function () {
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): scrollspy.js
* Bootstrap (v4.0.0-beta.2): scrollspy.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -3256,7 +3256,7 @@ var ScrollSpy = function () {
* ------------------------------------------------------------------------
*/
var NAME = 'scrollspy';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.scrollspy';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -3555,7 +3555,7 @@ var ScrollSpy = function () {
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): tab.js
* Bootstrap (v4.0.0-beta.2): tab.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -3567,7 +3567,7 @@ var Tab = function () {
* ------------------------------------------------------------------------
*/
var NAME = 'tab';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.tab';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -3821,11 +3821,14 @@ var Tab = function () {
}
var version = $.fn.jquery.split(' ')[0].split('.');
var min = 3;
var max = 4;
var minMajor = 1;
var ltMajor = 2;
var minMinor = 9;
var minPatch = 1;
var maxMajor = 4;
if (version[0] < min || version[0] >= max) {
throw new Error('Bootstrap\'s JavaScript requires at least jQuery v3.0.0 but less than v4.0.0');
if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
}
})($);
@ -3844,3 +3847,4 @@ exports.Tooltip = Tooltip;
return exports;
}({},$,Popper));
//# sourceMappingURL=bootstrap.js.map

1
dist/js/bootstrap.js.map vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
dist/js/bootstrap.min.js.map vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -50,7 +50,7 @@ Alerts can also contain additional HTML elements like headings, paragraphs and d
Using the alert JavaScript plugin, it's possible to dismiss any alert inline. Here's how:
- Be sure you've loaded the alert plugin, or the compiled Bootstrap JavaScript.
- If you're building our JS from source, it [requires `util.js`]({{ site.baseurl }}/docs/{{ site.docs_version }}/getting-started/javascript/#util). The compiled version includes this.
- If you're building our JavaScript from source, it [requires `util.js`]({{ site.baseurl }}/docs/{{ site.docs_version }}/getting-started/javascript/#util). The compiled version includes this.
- Add a dismiss button and the `.alert-dismissible` class, which adds extra padding to the right of the alert and positions the `.close` button.
- On the dismiss button, add the `data-dismiss="alert"` attribute, which triggers the JavaScript functionality. Be sure to use the `<button>` element with it for proper behavior across all devices.
- To animate alerts when dismissing them, be sure to add the `.fade` and `.show` classes.
@ -92,6 +92,7 @@ Note that closing an alert will remove it from the DOM.
| --- | --- |
| `$().alert()` | Makes an alert listen for click events on descendant elements which have the `data-dismiss="alert"` attribute. (Not necessary when using the data-api's auto-initialization.) |
| `$().alert('close')` | Closes an alert by removing it from the DOM. If the `.fade` and `.show` classes are present on the element, the alert will fade out before it is removed. |
| `$().alert('dispose')` | Destroys an element's alert. |
{% highlight js %}$(".alert").alert('close'){% endhighlight %}

View File

@ -70,7 +70,7 @@ Use the `.badge-pill` modifier class to make badges more rounded (with a larger
## Links
Using the `.badge` classes with the `<a>` element quickly provide _actionable_ badges with hover and focus states.
Using the contextual `.badge-*` classes on an `<a>` element quickly provide _actionable_ badges with hover and focus states.
{% example html %}
{% for color in site.data.theme-colors %}

View File

@ -154,4 +154,5 @@ Note that pre-checked buttons require you to manually add the `.active` class to
| Method | Description |
| --- | --- |
| `$().button('toggle')` |Toggles push state. Gives the button the appearance that it has been activated. |
| `$().button('toggle')` | Toggles push state. Gives the button the appearance that it has been activated. |
| `$().button('dispose')` | Destroys an element's button. |

View File

@ -90,6 +90,19 @@ Create lists of content in a card with a flush list group.
</div>
{% endexample %}
{% example html %}
<div class="card" style="width: 20rem;">
<div class="card-header">
Featured
</div>
<ul class="list-group list-group-flush">
<li class="list-group-item">Cras justo odio</li>
<li class="list-group-item">Dapibus ac facilisis in</li>
<li class="list-group-item">Vestibulum at eros</li>
</ul>
</div>
{% endexample %}
### Kitchen sink
Mix and match multiple content types to create the card you need, or throw everything in there. Shown below are image styles, blocks, text styles, and a list group—all wrapped in a fixed-width card.

View File

@ -14,7 +14,7 @@ In browsers where the [Page Visibility API](https://www.w3.org/TR/page-visibilit
Please be aware that nested carousels are not supported, and carousels are generally not compliant with accessibility standards.
Lastly, if you're building our JS from source, it [requires `util.js`]({{ site.baseurl }}/docs/{{ site.docs_version }}/getting-started/javascript/#util).
Lastly, if you're building our JavaScript from source, it [requires `util.js`]({{ site.baseurl }}/docs/{{ site.docs_version }}/getting-started/javascript/#util).
## Example
@ -263,6 +263,10 @@ Cycles to the previous item. **Returns to the caller before the previous item ha
Cycles to the next item. **Returns to the caller before the next item has been shown** (i.e. before the `slid.bs.carousel` event occurs).
### `.carousel('dispose')`
Destroys an element's carousel.
### Events
Bootstrap's carousel class exposes two events for hooking into carousel functionality. Both events have the following additional properties:

View File

@ -226,6 +226,10 @@ Shows a collapsible element. **Returns to the caller before the collapsible elem
Hides a collapsible element. **Returns to the caller before the collapsible element has actually been hidden** (i.e. before the `hidden.bs.collapse` event occurs).
### `.collapse('dispose')`
Destroys an element's collapse.
### Events
Bootstrap's collapse class exposes a few events for hooking into collapse functionality.

View File

@ -12,7 +12,7 @@ Dropdowns are toggleable, contextual overlays for displaying lists of links and
Dropdowns are built on a third party library, [Popper.js](https://popper.js.org/), which provides dynamic positioning and viewport detection. Be sure to include [popper.min.js]({{ site.cdn.popper }}) before Bootstrap's JavaScript or use `bootstrap.bundle.min.js` / `bootstrap.bundle.js` which contains Popper.js.
If you're building our JS from source, it [requires `util.js`]({{ site.baseurl }}/docs/{{ site.docs_version }}/getting-started/javascript/#util).
If you're building our JavaScript from source, it [requires `util.js`]({{ site.baseurl }}/docs/{{ site.docs_version }}/getting-started/javascript/#util).
## Accessibility
@ -607,6 +607,7 @@ Options can be passed via data attributes or JavaScript. For data attributes, ap
| --- | --- |
| `$().dropdown('toggle')` | Toggles the dropdown menu of a given navbar or tabbed navigation. |
| `$().dropdown('update')` | Updates the position of an element's dropdown. |
| `$().dropdown('dispose')` | Destroys an element's dropdown. |
### Events

View File

@ -264,11 +264,11 @@ The `.form-group` class is the easiest way to add some structure to forms. Its o
{% example html %}
<form>
<div class="form-group">
<label class="form-control-label" for="formGroupExampleInput">Example label</label>
<label class="col-form-label" for="formGroupExampleInput">Example label</label>
<input type="text" class="form-control" id="formGroupExampleInput" placeholder="Example input">
</div>
<div class="form-group">
<label class="form-control-label" for="formGroupExampleInput2">Another label</label>
<label class="col-form-label" for="formGroupExampleInput2">Another label</label>
<input type="text" class="form-control" id="formGroupExampleInput2" placeholder="Another input">
</div>
</form>
@ -314,36 +314,36 @@ More complex layouts can also be created with the grid system.
<form>
<div class="form-row">
<div class="form-group col-md-6">
<label for="inputEmail4" class="col-form-label">Email</label>
<label for="inputEmail4">Email</label>
<input type="email" class="form-control" id="inputEmail4" placeholder="Email">
</div>
<div class="form-group col-md-6">
<label for="inputPassword4" class="col-form-label">Password</label>
<label for="inputPassword4">Password</label>
<input type="password" class="form-control" id="inputPassword4" placeholder="Password">
</div>
</div>
<div class="form-group">
<label for="inputAddress" class="col-form-label">Address</label>
<label for="inputAddress">Address</label>
<input type="text" class="form-control" id="inputAddress" placeholder="1234 Main St">
</div>
<div class="form-group">
<label for="inputAddress2" class="col-form-label">Address 2</label>
<label for="inputAddress2">Address 2</label>
<input type="text" class="form-control" id="inputAddress2" placeholder="Apartment, studio, or floor">
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="inputCity" class="col-form-label">City</label>
<label for="inputCity">City</label>
<input type="text" class="form-control" id="inputCity">
</div>
<div class="form-group col-md-4">
<label for="inputState" class="col-form-label">State</label>
<label for="inputState">State</label>
<select id="inputState" class="form-control">
<option selected>Choose...</option>
<option>...</option>
</select>
</div>
<div class="form-group col-md-2">
<label for="inputZip" class="col-form-label">Zip</label>
<label for="inputZip">Zip</label>
<input type="text" class="form-control" id="inputZip">
</div>
</div>
@ -365,62 +365,87 @@ Create horizontal forms with the grid by adding the `.row` class to form groups
Be sure to add `.col-form-label` to your `<label>`s as well so they're vertically centered with their associated form controls. For `<legend>` elements, you can use `.col-form-legend` to make them appear similar to regular `<label>` elements.
{% example html %}
<div class="container">
<form>
<div class="form-group row">
<label for="inputEmail3" class="col-sm-2 col-form-label">Email</label>
<div class="col-sm-10">
<input type="email" class="form-control" id="inputEmail3" placeholder="Email">
</div>
<form>
<div class="form-group row">
<label for="inputEmail3" class="col-sm-2 col-form-label">Email</label>
<div class="col-sm-10">
<input type="email" class="form-control" id="inputEmail3" placeholder="Email">
</div>
<div class="form-group row">
<label for="inputPassword3" class="col-sm-2 col-form-label">Password</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="inputPassword3" placeholder="Password">
</div>
</div>
<div class="form-group row">
<label for="inputPassword3" class="col-sm-2 col-form-label">Password</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="inputPassword3" placeholder="Password">
</div>
<fieldset class="form-group">
<div class="row">
<legend class="col-form-legend col-sm-2">Radios</legend>
<div class="col-sm-10">
<div class="form-check">
<label class="form-check-label">
<input class="form-check-input" type="radio" name="gridRadios" id="gridRadios1" value="option1" checked>
Option one is this and that&mdash;be sure to include why it's great
</label>
</div>
<div class="form-check">
<label class="form-check-label">
<input class="form-check-input" type="radio" name="gridRadios" id="gridRadios2" value="option2">
Option two can be something else and selecting it will deselect option one
</label>
</div>
<div class="form-check disabled">
<label class="form-check-label">
<input class="form-check-input" type="radio" name="gridRadios" id="gridRadios3" value="option3" disabled>
Option three is disabled
</label>
</div>
</div>
</div>
</fieldset>
<div class="form-group row">
<div class="col-sm-2">Checkbox</div>
</div>
<fieldset class="form-group">
<div class="row">
<legend class="col-form-legend col-sm-2">Radios</legend>
<div class="col-sm-10">
<div class="form-check">
<label class="form-check-label">
<input class="form-check-input" type="checkbox"> Check me out
<input class="form-check-input" type="radio" name="gridRadios" id="gridRadios1" value="option1" checked>
Option one is this and that&mdash;be sure to include why it's great
</label>
</div>
<div class="form-check">
<label class="form-check-label">
<input class="form-check-input" type="radio" name="gridRadios" id="gridRadios2" value="option2">
Option two can be something else and selecting it will deselect option one
</label>
</div>
<div class="form-check disabled">
<label class="form-check-label">
<input class="form-check-input" type="radio" name="gridRadios" id="gridRadios3" value="option3" disabled>
Option three is disabled
</label>
</div>
</div>
</div>
<div class="form-group row">
<div class="col-sm-10">
<button type="submit" class="btn btn-primary">Sign in</button>
</fieldset>
<div class="form-group row">
<div class="col-sm-2">Checkbox</div>
<div class="col-sm-10">
<div class="form-check">
<label class="form-check-label">
<input class="form-check-input" type="checkbox"> Check me out
</label>
</div>
</div>
</form>
</div>
</div>
<div class="form-group row">
<div class="col-sm-10">
<button type="submit" class="btn btn-primary">Sign in</button>
</div>
</div>
</form>
{% endexample %}
##### Horizontal form label sizing
Be sure to use `.col-form-label-sm` or `.col-form-label-lg` to your `<label>`s to correctly follow the size of `.form-control-lg` and `.form-control-sm`.
{% example html %}
<form>
<div class="form-group row">
<label for="colFormLabelSm" class="col-sm-2 col-form-label col-form-label-sm">Email</label>
<div class="col-sm-10">
<input type="email" class="form-control form-control-sm" id="colFormLabelSm" placeholder="col-form-label-sm">
</div>
</div>
<div class="form-group row">
<label for="colFormLabel" class="col-sm-2 col-form-label">Email</label>
<div class="col-sm-10">
<input type="email" class="form-control" id="colFormLabel" placeholder="col-form-label">
</div>
</div>
<div class="form-group row">
<label for="colFormLabelLg" class="col-sm-2 col-form-label col-form-label-lg">Email</label>
<div class="col-sm-10">
<input type="email" class="form-control form-control-lg" id="colFormLabelLg" placeholder="col-form-label-lg">
</div>
</div>
</form>
{% endexample %}
#### Column sizing

View File

@ -359,11 +359,11 @@ Below is a live demo followed by example HTML and JavaScript. For more informati
<div class="modal-body">
<form>
<div class="form-group">
<label for="recipient-name" class="form-control-label">Recipient:</label>
<label for="recipient-name" class="col-form-label">Recipient:</label>
<input type="text" class="form-control" id="recipient-name">
</div>
<div class="form-group">
<label for="message-text" class="form-control-label">Message:</label>
<label for="message-text" class="col-form-label">Message:</label>
<textarea class="form-control" id="message-text"></textarea>
</div>
</form>
@ -575,6 +575,10 @@ Manually readjust the modal's position if the height of a modal changes while it
{% highlight js %}$('#myModal').modal('handleUpdate'){% endhighlight %}
### `.modal('dispose')`
Destroys an element's modal.
### Events
Bootstrap's modal class exposes a few events for hooking into modal functionality. All modal events are fired at the modal itself (i.e. at the `<div class="modal">`).

View File

@ -12,8 +12,9 @@ Here's what you need to know before getting started with the navbar:
- Navbars require a wrapping `.navbar` with `.navbar-expand{-sm|-md|-lg|-xl}` for responsive collapsing and [color scheme](#color-schemes) classes.
- Navbars and their contents are fluid by default. Use [optional containers](#containers) to limit their horizontal width.
- Navbars and their contents are built with flexbox, providing easy alignment options via utility classes.
- Use our [spacing]({{ site.baseurl }}/docs/{{ site.docs_version }}/utilities/spacing/) and [flex]({{ site.baseurl }}/docs/{{ site.docs_version }}/utilities/flex/) utility classes for controlling spacing and alignment within navbars.
- Navbars are responsive by default, but you can easily modify them to change that. Responsive behavior depends on our Collapse JavaScript plugin.
- Navbars are hidden by default when printing. Force them to be printed by adding `.d-print` to the `.navbar`. See the [display]({{ site.baseurl }}/docs/{{ site.docs_version }}/utilities/display/) utility class.
- Ensure accessibility by using a `<nav>` element or, if using a more generic element such as a `<div>`, add a `role="navigation"` to every navbar to explicitly identify it as a landmark region for users of assistive technologies.
Read on for an example and list of supported sub-components.
@ -46,6 +47,17 @@ Here's an example of all the sub-components included in a responsive light-theme
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
@ -58,6 +70,8 @@ Here's an example of all the sub-components included in a responsive light-theme
</nav>
{% endexample %}
This example uses [color]({{ site.baseurl }}/docs/{{ site.docs_version }}/utilities/colors/) (`bg-light`) and [spacing]({{ site.baseurl }}/docs/{{ site.docs_version }}/utilities/spacing/) (`my-2`, `my-lg-0`, `mr-sm-0`, `my-sm-0`) utility classes.
### Brand
The `.navbar-brand` can be applied to most elements, but an anchor works best as some elements might require utility classes or custom styles.
@ -395,11 +409,13 @@ When the container is within your navbar, its horizontal padding is removed at b
## Placement
Use our position utilities to place navbars in non-static positions. Choose from fixed to the top, fixed to the bottom, or stickied to the top. **Note that `position: sticky`, used for `.sticky-top`, [isn't fully supported in every browser](https://caniuse.com/#feat=css-sticky).**
Use our [position utilities]({{ site.baseurl }}/docs/{{ site.docs_version }}/utilities/position/) to place navbars in non-static positions. Choose from fixed to the top, fixed to the bottom, or stickied to the top (scrolls with the page until it reaches the top, then stays there). Fixed navbars use `position: fixed`, meaning they're pulled from the normal flow of the DOM and may require custom CSS (e.g., `padding-top` on the `<body>`) to prevent overlap with other elements.
Also note that **`.sticky-top` uses `position: sticky`, which [isn't fully supported in every browser](https://caniuse.com/#feat=css-sticky)**.
{% example html %}
<nav class="navbar navbar-light bg-light">
<a class="navbar-brand" href="#">Full width</a>
<a class="navbar-brand" href="#">Default</a>
</nav>
{% endexample %}

View File

@ -297,7 +297,7 @@ Add dropdown menus with a little extra HTML and the [dropdowns JavaScript plugin
Use the tab JavaScript plugin—include it individually or through the compiled `bootstrap.js` file—to extend our navigational tabs and pills to create tabbable panes of local content, even via dropdown menus.
If you're building our JS from source, it [requires `util.js`]({{ site.baseurl }}/docs/{{ site.docs_version }}/getting-started/javascript/#util).
If you're building our JavaScript from source, it [requires `util.js`]({{ site.baseurl }}/docs/{{ site.docs_version }}/getting-started/javascript/#util).
Dynamic tabbed interfaces, as described in the [<abbr title="Web Accessibility Initiative">WAI</abbr> <abbr title="Accessible Rich Internet Applications">ARIA</abbr> Authoring Practices](https://www.w3.org/TR/wai-aria-practices/#tabpanel), require `role="tablist"`, `role="tab"`, `role="tabpanel"`, and additional `aria-` attributes in order to convey their structure, functionality and current state to users of assistive technologies (such as screen readers).
@ -583,6 +583,10 @@ Selects the given tab and shows its associated pane. Any other tab that was prev
$('#someTab').tab('show')
{% endhighlight %}
### .tab('dispose')
Destroys an element's tab.
### Events
When showing a new tab, the events fire in the following order:

View File

@ -13,16 +13,16 @@ Things to know when using the popover plugin:
- Popovers rely on the 3rd party library [Popper.js](https://popper.js.org/) for positioning. You must include [popper.min.js]({{ site.cdn.popper }}) before bootstrap.js or use `bootstrap.bundle.min.js` / `bootstrap.bundle.js` which contains Popper.js in order for popovers to work!
- Popovers require the [tooltip plugin]({{ site.baseurl }}/docs/{{ site.docs_version }}/components/tooltips/) as a dependency.
- If building our JS from source, it [requires `util.js`]({{ site.baseurl }}/docs/{{ site.docs_version }}/getting-started/javascript/#util).
- If you're building our JavaScript from source, it [requires `util.js`]({{ site.baseurl }}/docs/{{ site.docs_version }}/getting-started/javascript/#util).
- Popovers are opt-in for performance reasons, so **you must initialize them yourself**.
- Zero-length `title` and `content` values will never show a popover.
- Specify `container: 'body'` to avoid rendering problems in more complex components (like our input groups, button groups, etc).
- Triggering popovers on hidden elements will not work.
- Popovers for `.disabled` or `disabled` elements must be triggered on a wrapper element.
- When triggered from hyperlinks that span multiple lines, popovers will be centered. Use `white-space: nowrap;` on your `<a>`s to avoid this behavior.
- When triggered from anchors that wrap across multiple lines, popovers will be centered between the anchors' overall width. Use `white-space: nowrap;` on your `<a>`s to avoid this behavior.
- Popovers must be hidden before their corresponding elements have been removed from the DOM.
Got all that? Great, let's see how they work with some examples.
Keep reading to see how popovers work with some examples.
## Example: Enable popovers everywhere
@ -132,7 +132,7 @@ sagittis lacus vel augue laoreet rutrum faucibus.">
### Dismiss on next click
Use the `focus` trigger to dismiss popovers on the next click that the user makes.
Use the `focus` trigger to dismiss popovers on the user's next click of a different element than the toggle element.
{% callout danger %}
#### Specific markup required for dismiss-on-next-click

View File

@ -10,8 +10,8 @@ toc: true
Scrollspy has a few requirements to function properly:
- If building our JS from source, it [requires `util.js`]({{ site.baseurl }}/docs/{{ site.docs_version }}/getting-started/javascript/#util).
- It must to be used on a Bootstrap [nav component]({{ site.baseurl }}/docs/{{ site.docs_version }}/components/navs/) or [list group]({{ site.baseurl }}/docs/{{ site.docs_version }}/components/list-group/).
- If you're building our JavaScript from source, it [requires `util.js`]({{ site.baseurl }}/docs/{{ site.docs_version }}/getting-started/javascript/#util).
- It must be used on a Bootstrap [nav component]({{ site.baseurl }}/docs/{{ site.docs_version }}/components/navs/) or [list group]({{ site.baseurl }}/docs/{{ site.docs_version }}/components/list-group/).
- Scrollspy requires `position: relative;` on the element you're spying on, usually the `<body>`.
- When spying on elements other than the `<body>`, be sure to have a `height` set and `overflow-y: scroll;` applied.
- Anchors (`<a>`) are required and must point to an element with that `id`.
@ -280,6 +280,9 @@ $('[data-spy="scroll"]').each(function () {
})
{% endhighlight %}
### `.scrollspy('dispose')`
Destroys an element's scrollspy.
### Options

View File

@ -11,7 +11,7 @@ toc: true
Things to know when using the tooltip plugin:
- Tooltips rely on the 3rd party library [Popper.js](https://popper.js.org/) for positioning. You must include [popper.min.js]({{ site.cdn.popper }}) before bootstrap.js or use `bootstrap.bundle.min.js` / `bootstrap.bundle.js` which contains Popper.js in order for tooltips to work!
- If building our JS from source, it [requires `util.js`]({{ site.baseurl }}/docs/{{ site.docs_version }}/getting-started/javascript/#util).
- If you're building our JavaScript from source, it [requires `util.js`]({{ site.baseurl }}/docs/{{ site.docs_version }}/getting-started/javascript/#util).
- Tooltips are opt-in for performance reasons, so **you must initialize them yourself**.
- Tooltips with zero-length titles are never displayed.
- Specify `container: 'body'` to avoid rendering problems in more complex components (like our input groups, button groups, etc).

View File

@ -579,11 +579,48 @@ Regular table background variants are not available with the dark table, however
{% capture callout-include %}{% include callout-warning-color-assistive-technologies.md %}{% endcapture %}
{{ callout-include | markdownify }}
## Captions
A `<caption>` functions like a heading for a table. It helps users with screen readers to find a table and understand what its about and decide if they want to read it.
{% example html %}
<table class="table">
<caption>List of users</caption>
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">First Name</th>
<th scope="col">Last Name</th>
<th scope="col">Username</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
</tr>
<tr>
<th scope="row">3</th>
<td>Larry</td>
<td>the Bird</td>
<td>@twitter</td>
</tr>
</tbody>
</table>
{% endexample %}
## Responsive tables
Create responsive tables by adding `.table-responsive{-sm|-md|-lg|-xl}` to any `.table` to make them scroll horizontally at each `max-width` breakpoint 575px, 767px, 991px, and 1199px, respectively.
For responsive tables that always scroll horizontally when the table is wider than its container, add the `.table-responsive` class on `.table`.
Responsive tables allow tables to be scrolled horizontally with ease. Make any table responsive across all viewports by adding `.table-responsive` class on `.table`. Or, pick a maximum breakpoint with which to have a responsive table up to by adding `.table-responsive{-sm|-md|-lg|-xl}`.
{% callout warning %}
#### Vertical clipping/truncation
@ -591,6 +628,8 @@ For responsive tables that always scroll horizontally when the table is wider th
Responsive tables make use of `overflow-y: hidden`, which clips off any content that goes beyond the bottom or top edges of the table. In particular, this can clip off dropdown menus and other third-party widgets.
{% endcallout %}
### Always responsive
<div class="bd-example">
<table class="table table-responsive">
<thead>
@ -697,41 +736,57 @@ Responsive tables make use of `overflow-y: hidden`, which clips off any content
</table>
{% endhighlight %}
### Breakpoint specific
## Captions
Use `.table-responsive{-sm|-md|-lg|-xl}` as needed to create responsive tables up to a particular breakpoint. From that breakpoint and up, the table will behave normally and not scroll horizontally.
A `<caption>` functions like a heading for a table. It helps users with screen readers to find a table and understand what its about and decide if they want to read it.
{% example html %}
<table class="table">
<caption>List of users</caption>
<div class="bd-example">
{% for bp in site.data.breakpoints %}{% unless bp.breakpoint == "xs" %}
<table class="table table-responsive{{ bp.abbr }}">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">First Name</th>
<th scope="col">Last Name</th>
<th scope="col">Username</th>
<th scope="col">Table heading</th>
<th scope="col">Table heading</th>
<th scope="col">Table heading</th>
<th scope="col">Table heading</th>
<th scope="col">Table heading</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
<td>Table cell</td>
<td>Table cell</td>
<td>Table cell</td>
<td>Table cell</td>
<td>Table cell</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
<td>Table cell</td>
<td>Table cell</td>
<td>Table cell</td>
<td>Table cell</td>
<td>Table cell</td>
</tr>
<tr>
<th scope="row">3</th>
<td>Larry</td>
<td>the Bird</td>
<td>@twitter</td>
<td>Table cell</td>
<td>Table cell</td>
<td>Table cell</td>
<td>Table cell</td>
<td>Table cell</td>
</tr>
</tbody>
</table>
{% endexample %}
{% endunless %}{% endfor %}
</div>
{% highlight html %}
{% for bp in site.data.breakpoints %}{% unless bp.breakpoint == "xs" %}
<table class="table table-responsive{{ bp.abbr }}">
...
</table>
{% endunless %}{% endfor %}
{% endhighlight %}

View File

@ -21,7 +21,7 @@
<a class="btn btn-lg btn-primary" href="../../components/navbar/" role="button">View navbar docs &raquo;</a>
</div>
</div>
<nav class="navbar fixed-bottom navbar-expand navbar-dark bg-dark">
<nav class="navbar fixed-bottom navbar-expand-sm navbar-dark bg-dark">
<a class="navbar-brand" href="#">Bottom navbar</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>

View File

@ -49,5 +49,5 @@ For visually hidden interactive controls, such as traditional "skip" links, `.sr
- [The A11Y Project](http://a11yproject.com/)
- [MDN accessibility documentation](https://developer.mozilla.org/en-US/docs/Web/Accessibility)
- [Tenon.io Accessibility Checker](https://tenon.io/)
- [Colour Contrast Analyser (CCA)](https://www.paciellogroup.com/resources/contrastanalyser/)
- [Colour Contrast Analyser (CCA)](https://developer.paciellogroup.com/resources/contrastanalyser/)
- ["HTML Codesniffer" bookmarklet for identifying accessibility issues](https://github.com/squizlabs/HTML_CodeSniffer)

View File

@ -46,7 +46,7 @@ Running our documentation locally requires the use of Jekyll, a decently flexibl
1. Run through the [tooling setup](#tooling-setup) above to install Jekyll (the site builder) and other Ruby dependencies with `bundle install`.
2. From the root `/bootstrap` directory, run `npm run docs-serve` in the command line.
3. Open <http://localhost:9001> in your browser, and voilà.
3. Open `http://localhost:9001` in your browser, and voilà.
Learn more about using Jekyll by reading its [documentation](https://jekyllrb.com/docs/home/).

View File

@ -68,13 +68,13 @@ Bootstrap's `package.json` contains some additional metadata under the following
Install Bootstrap in your Ruby apps using [Bundler](https://bundler.io/) (**recommended**) and [RubyGems](https://rubygems.org/) by adding the following line to your [`Gemfile`](https://bundler.io/gemfile.html):
{% highlight ruby %}
gem 'bootstrap', '~> 4.0.0.beta'
gem 'bootstrap', '~> {{ site.current_ruby_version }}'
{% endhighlight %}
Alternatively, if you're not using Bundler, you can install the gem by running this command:
{% highlight sh %}
gem install bootstrap -v 4.0.0.beta
gem install bootstrap -v {{ site.current_ruby_version }}
{% endhighlight %}
[See the gem's README](https://github.com/twbs/bootstrap-rubygem/blob/master/README.md) for further details.

View File

@ -120,6 +120,6 @@ Bootstrap's plugins don't fall back particularly gracefully when JavaScript is d
## Util
All Bootstrap's JavaScript files depend on `util.js` and it has to be included alongside the other JS files. If you're using the compiled (or minified) `bootstrap.js`, there is no need to include this—it's already there.
All Bootstrap's JavaScript files depend on `util.js` and it has to be included alongside the other JavaScript files. If you're using the compiled (or minified) `bootstrap.js`, there is no need to include this—it's already there.
`util.js` includes utility functions and a basic helper for `transitionEnd` events as well as a CSS transition emulator. It's used by the other plugins to check for CSS transition support and to catch hanging transitions.

View File

@ -11,7 +11,7 @@ redirect_from: "/docs/4.0/getting-started/options/"
In Bootstrap 3, theming was largely driven by variable overrides in LESS, custom CSS, and a separate theme stylesheet that we included in our `dist` files. With some effort, one could completely redesign the look of Bootstrap 3 without touching the core files. Bootstrap 4 provides a familiar, but slightly different approach.
Now, theming is accomplished by Sass variables, Sass maps, and custom CSS. There's no more dedicated theme stylesheet anymore; instead, you can enable the built-in theme to add gradients, shadows, and more.
Now, theming is accomplished by Sass variables, Sass maps, and custom CSS. There's no more dedicated theme stylesheet; instead, you can enable the built-in theme to add gradients, shadows, and more.
## Sass
@ -19,7 +19,7 @@ Utilize our source Sass files to take advantage of variables, maps, mixins, and
### File structure
Whenever possible, avoid modifying Bootstrap's core files. For Sass, that means creating your own stylesheet that imports Bootstrap so you can modify and extend it. Assuming you've downloaded our source files or are using package manager, you'll have a file structure that looks like this:
Whenever possible, avoid modifying Bootstrap's core files. For Sass, that means creating your own stylesheet that imports Bootstrap so you can modify and extend it. Assuming you've downloaded our source files or are using a package manager, you'll have a file structure that looks like this:
{% highlight plaintext %}
your-project/
@ -148,6 +148,36 @@ In practice, you'd call the function and pass in two parameters: the name of the
Additional functions could be added in the future or your own custom Sass to create level functions for additional Sass maps, or even a generic one if you wanted to be more verbose.
### Color contrast
One additional function we include in Bootstrap is the color contrast function, `color-yiq`. It utilizes the [YIQ color space](https://en.wikipedia.org/wiki/YIQ) to automatically return a light (`#fff`) or dark (`#111`) contrast color based on the specified base color. This function is especially useful for mixins or loops where you're generating multiple classes.
For example, to generate color swatches from our `$theme-colors` map:
{% highlight scss %}
@each $color, $value in $theme-colors {
.swatch-#{$color} {
color: color-yiq($value);
}
}
{% endhighlight %}
It can also be used for one-off contrast needs:
{% highlight scss %}
.custom-element {
color: color-yiq(#000); // returns `color: #fff`
}
{% endhighlight %}
You can also specify a base color with our color map functions:
{% highlight scss %}
.custom-element {
color: color-yiq(theme-color("dark")); // returns `color: #fff`
}
{% endhighlight %}
## Sass options
Customize Bootstrap 4 with our built-in custom variables file and easily toggle global CSS preferences with new `$enable-*` Sass variables. Override a variable's value and recompile with `npm run test` as needed.
@ -172,7 +202,7 @@ Many of Bootstrap's various components and utilities are built through a series
### All colors
All colors available in Bootstrap 4, available as Sass variables and a Sass map in our `scss/_variables.scss` file. This will be expanded upon in subsequent minor releases to add additional shades, much like the [grayscale palette](#grays) we already include.
All colors available in Bootstrap 4, are available as Sass variables and a Sass map in our `scss/_variables.scss` file. This will be expanded upon in subsequent minor releases to add additional shades, much like the [grayscale palette](#grays) we already include.
<div class="row">
{% for color in site.data.colors %}

View File

@ -163,8 +163,8 @@ We don't encourage customization of these values; should you change one, you lik
```scss
$zindex-dropdown: 1000 !default;
$zindex-sticky: 1020 !default;
$zindex-fixed: 1030 !default;
$zindex-sticky: 1030 !default;
$zindex-modal-backdrop: 1040 !default;
$zindex-modal: 1050 !default;
$zindex-popover: 1060 !default;
@ -172,3 +172,5 @@ $zindex-tooltip: 1070 !default;
```
Background elements—like the backdrops that allow click-dismissing—tend to reside on a lower `z-index`s, while navigation and popovers utilize higher `z-index`s to ensure they overlay surrounding content.
Additionally, the `button-group`, `input-group`, `list-group`, and `pagination` components make use of setting `z-index` to `1` or `2` in order to ensure that the borders of the _active_ element correctly appear "above" their sibling elements.

View File

@ -17,7 +17,9 @@ While in beta, we aim to have no breaking changes. However, things don't always
- Renamed `.table-inverse`, `.thead-inverse`, and `.thead-default` to `.*-dark` and `.*-light`, matching our color schemes used elsewhere.
- Responsive tables now generate classes for each grid breakpoint. This breaks from Beta 1 in that the `.table-responsive` you've been using is more like `.table-responsive-md`. You may now use `.table-responsive` or `.table-responsive-{sm,md,lg,xl}` as needed.
- Dropped Bower support as the package manager has been deprecated for alternatives (e.g., Yarn or npm). [See bower/bower#2298](https://github.com/bower/bower/issues/2298) for details.
- Bootstrap now requires jQuery 3.0.0 or higher.
- Bootstrap still requires jQuery 1.9.1 or higher, but you're advised to use version 3.x since v3.x's supported browsers are the ones Bootstrap supports plus v3.x has some security fixes.
- Removed the unused `.form-control-label` class. If you did make use of this class, it was duplicate of the `.col-form-label` class that vertically centered a `<label>` with it's associated input in horizontal form layouts.
- Changed the `color-yiq` from a mixin that included the `color` property to a function that returns a value, allowing you to use it for any CSS property. For example, instead of `color-yiq(#000)`, you'd write `color: color-yiq(#000);`.
### Highlights
@ -109,7 +111,7 @@ New to Bootstrap 4 is the [Reboot]({{ site.baseurl }}/docs/{{ site.docs_version
### Forms
- Moved element resets to the `_reboot.scss` file.
- Renamed `.control-label` to `.form-control-label`.
- Renamed `.control-label` to `.col-form-label`.
- Renamed `.input-lg` and `.input-sm` to `.form-control-lg` and `.form-control-sm`, respectively.
- Dropped `.form-group-*` classes for simplicity's sake. Use `.form-control-*` classes instead now.
- Dropped `.help-block` and replaced it with `.form-text` for block-level help text. For inline help text and other flexible options, use utility classes like `.text-muted`.
@ -118,7 +120,7 @@ New to Bootstrap 4 is the [Reboot]({{ site.baseurl }}/docs/{{ site.docs_version
- Horizontal forms overhauled:
- Dropped the `.form-horizontal` class requirement.
- `.form-group` no longer applies styles from the `.row` via mixin, so `.row` is now required for horizontal grid layouts (e.g., `<div class="form-group row">`).
- Added new `.form-control-label` class to vertically center labels with `.form-control`s.
- Added new `.col-form-label` class to vertically center labels with `.form-control`s.
- Added new `.form-row` for compact form layouts with the grid classes (swap your `.row` for a `.form-row` and go).
- Added custom forms support (for checkboxes, radios, selects, and file inputs).
- Replaced `.has-error`, `.has-warning`, and `.has-success` classes with HTML5 form validation via CSS's `:invalid` and `:valid` pseudo-classes.
@ -128,7 +130,7 @@ New to Bootstrap 4 is the [Reboot]({{ site.baseurl }}/docs/{{ site.docs_version
- Renamed `.btn-default` to `.btn-secondary`.
- Dropped the `.btn-xs` class entirely as `.btn-sm` is proportionally much smaller than v3's.
- The [stateful button]({{ site.baseurl }}/docs/3.3/javascript/#buttons-stateful) feature of the `button.js` jQuery plugin has been dropped. This includes the `$().button(string)` and `$().button('reset')` methods. We advise using a tiny bit of custom JavaScript instead, which will have the benefit of behaving exactly the way you want it to.
- The [stateful button]({{ site.url }}/docs/3.3/javascript/#buttons-stateful) feature of the `button.js` jQuery plugin has been dropped. This includes the `$().button(string)` and `$().button('reset')` methods. We advise using a tiny bit of custom JavaScript instead, which will have the benefit of behaving exactly the way you want it to.
- Note that the other features of the plugin (button checkboxes, button radios, single-toggle buttons) have been retained in v4.
- Change buttons' `[disabled]` to `:disabled` as IE9+ supports `:disabled`. However `fieldset[disabled]` is still necessary because [native disabled fieldsets are still buggy in IE11](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset#Browser_compatibility).

View File

@ -6,6 +6,8 @@ group: utilities
toc: true
---
## Color
{% example html %}
{% for color in site.data.theme-colors %}
<p class="text-{{ color.name }}{% if color.name == "light" %} bg-dark{% endif %}">.text-{{ color.name }}</p>{% endfor %}
@ -22,6 +24,8 @@ Contextual text classes also work well on anchors with the provided hover and fo
<p><a href="#" class="text-white bg-dark">White link</a></p>
{% endexample %}
## Background color
Similar to the contextual text color classes, easily set the background of an element to any contextual class. Anchor components will darken on hover, just like the text classes. Background utilities **do not set `color`**, so in some cases you'll want to use `.text-*` utilities.
{% example html %}
@ -30,6 +34,15 @@ Similar to the contextual text color classes, easily set the background of an el
<div class="p-3 mb-2 bg-white text-dark">.bg-white</div>
{% endexample %}
## Background gradient
When `$enable-gradients` is set to true, you'll be able to use `.bg-gradient-` utility classes. **By default, `$enable-gradients` is disabled and the example below is intentionally broken.** This is done for easier customization from the moment you start using Bootstrap. [Learn about our Sass options]({{ site.baseurl }}/docs/{{ site.docs_version }}/getting-started/theming/#sass-options) to enable these classes and more.
{% example html %}
{% for color in site.data.theme-colors %}
<div class="p-3 mb-2 bg-gradient-{{ color.name }} {% if color.name == "light" %}text-dark{% else %}text-white{% endif %}">.bg-gradient-{{ color.name }}</div>{% endfor %}
{% endexample %}
{% callout info %}
#### Dealing with specificity

View File

@ -215,20 +215,24 @@ Responsive variations also exist for `align-self`.
## Auto margins
Flexbox can do some pretty awesome things when you mix flex alignments with auto margins.
Flexbox can do some pretty awesome things when you mix flex alignments with auto margins. Shown below are three examples of controlling flex items via auto margins: default (no auto margin), pushing two items to the right (`.mr-auto`), and pushing two items to the left (`.ml-auto`).
### With justify-content
Easily move all flex items to one side, but keep another on the opposite end by mixing `justify-content` with `margin-right: auto` or `margin-left: auto`.
**Unfortunately, IE10 and IE11 do not properly support auto margins on flex items whose parent has a non-default `justify-content` value.** [See this StackOverflow answer](https://stackoverflow.com/a/37535548) for more details.
{% example html %}
<div class="d-flex justify-content-end bd-highlight mb-3">
<div class="d-flex bd-highlight mb-3">
<div class="p-2 bd-highlight">Flex item</div>
<div class="p-2 bd-highlight">Flex item</div>
<div class="p-2 bd-highlight">Flex item</div>
</div>
<div class="d-flex bd-highlight mb-3">
<div class="mr-auto p-2 bd-highlight">Flex item</div>
<div class="p-2 bd-highlight">Flex item</div>
<div class="p-2 bd-highlight">Flex item</div>
</div>
<div class="d-flex justify-content-start bd-highlight">
<div class="d-flex bd-highlight mb-3">
<div class="p-2 bd-highlight">Flex item</div>
<div class="p-2 bd-highlight">Flex item</div>
<div class="ml-auto p-2 bd-highlight">Flex item</div>
@ -237,7 +241,7 @@ Easily move all flex items to one side, but keep another on the opposite end by
### With align-items
Similarly, move one flex item to the top or bottom of a container by mixing `align-items`, `flex-direction: column`, and `margin-top: auto` or `margin-bottom: auto`.
Vertically move one flex item to the top or bottom of a container by mixing `align-items`, `flex-direction: column`, and `margin-top: auto` or `margin-bottom: auto`.
{% example html %}
<div class="d-flex align-items-start flex-column bd-highlight mb-3" style="height: 200px;">

View File

@ -41,7 +41,7 @@ npm install bootstrap@{{ site.current_version }}
{% endhighlight %}
{% highlight sh %}
gem install bootstrap -v 4.0.0.beta
gem install bootstrap -v {{ site.current_ruby_version }}
{% endhighlight %}
<hr class="half-rule">

4
js/dist/alert.js vendored
View File

@ -4,7 +4,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): alert.js
* Bootstrap (v4.0.0-beta.2): alert.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -15,7 +15,7 @@ var Alert = function () {
* ------------------------------------------------------------------------
*/
var NAME = 'alert';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.alert';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';

File diff suppressed because one or more lines are too long

4
js/dist/button.js vendored
View File

@ -4,7 +4,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): button.js
* Bootstrap (v4.0.0-beta.2): button.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -15,7 +15,7 @@ var Button = function () {
* ------------------------------------------------------------------------
*/
var NAME = 'button';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.button';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';

File diff suppressed because one or more lines are too long

4
js/dist/carousel.js vendored
View File

@ -4,7 +4,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): carousel.js
* Bootstrap (v4.0.0-beta.2): carousel.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -15,7 +15,7 @@ var Carousel = function () {
* ------------------------------------------------------------------------
*/
var NAME = 'carousel';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.carousel';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';

File diff suppressed because one or more lines are too long

4
js/dist/collapse.js vendored
View File

@ -4,7 +4,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): collapse.js
* Bootstrap (v4.0.0-beta.2): collapse.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -15,7 +15,7 @@ var Collapse = function () {
* ------------------------------------------------------------------------
*/
var NAME = 'collapse';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.collapse';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';

File diff suppressed because one or more lines are too long

4
js/dist/dropdown.js vendored
View File

@ -4,7 +4,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): dropdown.js
* Bootstrap (v4.0.0-beta.2): dropdown.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -24,7 +24,7 @@ var Dropdown = function () {
var NAME = 'dropdown';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.dropdown';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';

File diff suppressed because one or more lines are too long

11
js/dist/index.js vendored
View File

@ -10,11 +10,14 @@
}
var version = $.fn.jquery.split(' ')[0].split('.');
var min = 3;
var max = 4;
var minMajor = 1;
var ltMajor = 2;
var minMinor = 9;
var minPatch = 1;
var maxMajor = 4;
if (version[0] < min || version[0] >= max) {
throw new Error('Bootstrap\'s JavaScript requires at least jQuery v3.0.0 but less than v4.0.0');
if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
}
})($);
//# sourceMappingURL=index.js.map

View File

@ -1 +1 @@
{"version":3,"sources":["../src/index.js"],"names":["$","Error","version","fn","jquery","split","min","max"],"mappings":"AAaA;;;;;;AAOA,CAAC,YAAM;AACL,MAAI,OAAOA,CAAP,KAAa,WAAjB,EAA8B;AAC5B,UAAM,IAAIC,KAAJ,CAAU,kGAAV,CAAN;AACD;;AAED,MAAMC,UAAUF,EAAEG,EAAF,CAAKC,MAAL,CAAYC,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,EAA0BA,KAA1B,CAAgC,GAAhC,CAAhB;AACA,MAAMC,MAAM,CAAZ;AACA,MAAMC,MAAM,CAAZ;;AACA,MAAIL,QAAQ,CAAR,IAAaI,GAAb,IAAoBJ,QAAQ,CAAR,KAAcK,GAAtC,EAA2C;AACzC,UAAM,IAAIN,KAAJ,CAAU,8EAAV,CAAN;AACD;AACF,CAXD,EAWGD,CAXH","file":"index.js","sourcesContent":["import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(() => {\n if (typeof $ === 'undefined') {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const min = 3\n const max = 4\n if (version[0] < min || version[0] >= max) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v3.0.0 but less than v4.0.0')\n }\n})($)\n\nexport {\n Util,\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n Scrollspy,\n Tab,\n Tooltip\n}\n"]}
{"version":3,"sources":["../src/index.js"],"names":["$","Error","version","fn","jquery","split","minMajor","ltMajor","minMinor","minPatch","maxMajor"],"mappings":"AAaA;;;;;;AAOA,CAAC,YAAM;AACL,MAAI,OAAOA,CAAP,KAAa,WAAjB,EAA8B;AAC5B,UAAM,IAAIC,KAAJ,CAAU,kGAAV,CAAN;AACD;;AAED,MAAMC,UAAUF,EAAEG,EAAF,CAAKC,MAAL,CAAYC,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,EAA0BA,KAA1B,CAAgC,GAAhC,CAAhB;AACA,MAAMC,WAAW,CAAjB;AACA,MAAMC,UAAW,CAAjB;AACA,MAAMC,WAAW,CAAjB;AACA,MAAMC,WAAW,CAAjB;AACA,MAAMC,WAAW,CAAjB;;AAEA,MAAIR,QAAQ,CAAR,IAAaK,OAAb,IAAwBL,QAAQ,CAAR,IAAaM,QAArC,IAAiDN,QAAQ,CAAR,MAAeI,QAAf,IAA2BJ,QAAQ,CAAR,MAAeM,QAA1C,IAAsDN,QAAQ,CAAR,IAAaO,QAApH,IAAgIP,QAAQ,CAAR,KAAcQ,QAAlJ,EAA4J;AAC1J,UAAM,IAAIT,KAAJ,CAAU,8EAAV,CAAN;AACD;AACF,CAfD,EAeGD,CAfH","file":"index.js","sourcesContent":["import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(() => {\n if (typeof $ === 'undefined') {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n})($)\n\nexport {\n Util,\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n Scrollspy,\n Tab,\n Tooltip\n}\n"]}

4
js/dist/modal.js vendored
View File

@ -4,7 +4,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): modal.js
* Bootstrap (v4.0.0-beta.2): modal.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -15,7 +15,7 @@ var Modal = function () {
* ------------------------------------------------------------------------
*/
var NAME = 'modal';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.modal';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';

File diff suppressed because one or more lines are too long

4
js/dist/popover.js vendored
View File

@ -6,7 +6,7 @@ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.crea
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): popover.js
* Bootstrap (v4.0.0-beta.2): popover.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -17,7 +17,7 @@ var Popover = function () {
* ------------------------------------------------------------------------
*/
var NAME = 'popover';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.popover';
var EVENT_KEY = "." + DATA_KEY;
var JQUERY_NO_CONFLICT = $.fn[NAME];

File diff suppressed because one or more lines are too long

View File

@ -4,7 +4,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): scrollspy.js
* Bootstrap (v4.0.0-beta.2): scrollspy.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -15,7 +15,7 @@ var ScrollSpy = function () {
* ------------------------------------------------------------------------
*/
var NAME = 'scrollspy';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.scrollspy';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';

File diff suppressed because one or more lines are too long

4
js/dist/tab.js vendored
View File

@ -4,7 +4,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): tab.js
* Bootstrap (v4.0.0-beta.2): tab.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -15,7 +15,7 @@ var Tab = function () {
* ------------------------------------------------------------------------
*/
var NAME = 'tab';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.tab';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';

2
js/dist/tab.js.map vendored

File diff suppressed because one or more lines are too long

4
js/dist/tooltip.js vendored
View File

@ -4,7 +4,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): tooltip.js
* Bootstrap (v4.0.0-beta.2): tooltip.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -24,7 +24,7 @@ var Tooltip = function () {
var NAME = 'tooltip';
var VERSION = '4.0.0-beta';
var VERSION = '4.0.0-beta.2';
var DATA_KEY = 'bs.tooltip';
var EVENT_KEY = "." + DATA_KEY;
var JQUERY_NO_CONFLICT = $.fn[NAME];

File diff suppressed because one or more lines are too long

2
js/dist/util.js vendored
View File

@ -1,6 +1,6 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): util.js
* Bootstrap (v4.0.0-beta.2): util.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/

2
js/dist/util.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -4,7 +4,7 @@ import Util from './util'
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): alert.js
* Bootstrap (v4.0.0-beta.2): alert.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -19,7 +19,7 @@ const Alert = (() => {
*/
const NAME = 'alert'
const VERSION = '4.0.0-beta'
const VERSION = '4.0.0-beta.2'
const DATA_KEY = 'bs.alert'
const EVENT_KEY = `.${DATA_KEY}`
const DATA_API_KEY = '.data-api'

View File

@ -1,7 +1,7 @@
import $ from 'jquery'
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): button.js
* Bootstrap (v4.0.0-beta.2): button.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -16,7 +16,7 @@ const Button = (() => {
*/
const NAME = 'button'
const VERSION = '4.0.0-beta'
const VERSION = '4.0.0-beta.2'
const DATA_KEY = 'bs.button'
const EVENT_KEY = `.${DATA_KEY}`
const DATA_API_KEY = '.data-api'

View File

@ -4,7 +4,7 @@ import Util from './util'
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): carousel.js
* Bootstrap (v4.0.0-beta.2): carousel.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -19,7 +19,7 @@ const Carousel = (() => {
*/
const NAME = 'carousel'
const VERSION = '4.0.0-beta'
const VERSION = '4.0.0-beta.2'
const DATA_KEY = 'bs.carousel'
const EVENT_KEY = `.${DATA_KEY}`
const DATA_API_KEY = '.data-api'

View File

@ -4,7 +4,7 @@ import Util from './util'
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): collapse.js
* Bootstrap (v4.0.0-beta.2): collapse.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -19,7 +19,7 @@ const Collapse = (() => {
*/
const NAME = 'collapse'
const VERSION = '4.0.0-beta'
const VERSION = '4.0.0-beta.2'
const DATA_KEY = 'bs.collapse'
const EVENT_KEY = `.${DATA_KEY}`
const DATA_API_KEY = '.data-api'

View File

@ -5,7 +5,7 @@ import Util from './util'
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): dropdown.js
* Bootstrap (v4.0.0-beta.2): dropdown.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -27,7 +27,7 @@ const Dropdown = (() => {
*/
const NAME = 'dropdown'
const VERSION = '4.0.0-beta'
const VERSION = '4.0.0-beta.2'
const DATA_KEY = 'bs.dropdown'
const EVENT_KEY = `.${DATA_KEY}`
const DATA_API_KEY = '.data-api'

View File

@ -24,10 +24,14 @@ import Util from './util'
}
const version = $.fn.jquery.split(' ')[0].split('.')
const min = 3
const max = 4
if (version[0] < min || version[0] >= max) {
throw new Error('Bootstrap\'s JavaScript requires at least jQuery v3.0.0 but less than v4.0.0')
const minMajor = 1
const ltMajor = 2
const minMinor = 9
const minPatch = 1
const maxMajor = 4
if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')
}
})($)

View File

@ -4,7 +4,7 @@ import Util from './util'
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): modal.js
* Bootstrap (v4.0.0-beta.2): modal.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -19,7 +19,7 @@ const Modal = (() => {
*/
const NAME = 'modal'
const VERSION = '4.0.0-beta'
const VERSION = '4.0.0-beta.2'
const DATA_KEY = 'bs.modal'
const EVENT_KEY = `.${DATA_KEY}`
const DATA_API_KEY = '.data-api'

View File

@ -4,7 +4,7 @@ import Tooltip from './tooltip'
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): popover.js
* Bootstrap (v4.0.0-beta.2): popover.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -19,7 +19,7 @@ const Popover = (() => {
*/
const NAME = 'popover'
const VERSION = '4.0.0-beta'
const VERSION = '4.0.0-beta.2'
const DATA_KEY = 'bs.popover'
const EVENT_KEY = `.${DATA_KEY}`
const JQUERY_NO_CONFLICT = $.fn[NAME]

View File

@ -4,7 +4,7 @@ import Util from './util'
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): scrollspy.js
* Bootstrap (v4.0.0-beta.2): scrollspy.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -19,7 +19,7 @@ const ScrollSpy = (() => {
*/
const NAME = 'scrollspy'
const VERSION = '4.0.0-beta'
const VERSION = '4.0.0-beta.2'
const DATA_KEY = 'bs.scrollspy'
const EVENT_KEY = `.${DATA_KEY}`
const DATA_API_KEY = '.data-api'

View File

@ -4,7 +4,7 @@ import Util from './util'
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): tab.js
* Bootstrap (v4.0.0-beta.2): tab.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -19,7 +19,7 @@ const Tab = (() => {
*/
const NAME = 'tab'
const VERSION = '4.0.0-beta'
const VERSION = '4.0.0-beta.2'
const DATA_KEY = 'bs.tab'
const EVENT_KEY = `.${DATA_KEY}`
const DATA_API_KEY = '.data-api'

View File

@ -5,7 +5,7 @@ import Util from './util'
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): tooltip.js
* Bootstrap (v4.0.0-beta.2): tooltip.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
@ -28,7 +28,7 @@ const Tooltip = (() => {
*/
const NAME = 'tooltip'
const VERSION = '4.0.0-beta'
const VERSION = '4.0.0-beta.2'
const DATA_KEY = 'bs.tooltip'
const EVENT_KEY = `.${DATA_KEY}`
const JQUERY_NO_CONFLICT = $.fn[NAME]

View File

@ -2,7 +2,7 @@ import $ from 'jquery'
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.0.0-beta): util.js
* Bootstrap (v4.0.0-beta.2): util.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/

162
package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "bootstrap",
"version": "4.0.0-beta",
"version": "4.0.0-beta.2",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@ -243,7 +243,7 @@
"dev": true,
"requires": {
"browserslist": "2.5.1",
"caniuse-lite": "1.0.30000745",
"caniuse-lite": "1.0.30000746",
"normalize-range": "0.1.2",
"num2fraction": "1.2.2",
"postcss": "6.0.13",
@ -1245,8 +1245,8 @@
"integrity": "sha512-jAvM2ku7YDJ+leAq3bFH1DE0Ylw+F+EQDq4GkqZfgPEqpWYw9ofQH85uKSB9r3Tv7XDbfqVtE+sdvKJW7IlPJA==",
"dev": true,
"requires": {
"caniuse-lite": "1.0.30000745",
"electron-to-chromium": "1.3.24"
"caniuse-lite": "1.0.30000746",
"electron-to-chromium": "1.3.26"
}
},
"builtin-modules": {
@ -1265,9 +1265,9 @@
}
},
"bundlesize": {
"version": "0.15.2",
"resolved": "https://registry.npmjs.org/bundlesize/-/bundlesize-0.15.2.tgz",
"integrity": "sha512-qtn2xv9yd02nTSEzW/qWAEgzjrZhoqxb7v3uE0l0LyuCE3VbVjfxJ+ZmIiAN/Gxv4ystlFFSkOjNGTQDf+pCJA==",
"version": "0.15.3",
"resolved": "https://registry.npmjs.org/bundlesize/-/bundlesize-0.15.3.tgz",
"integrity": "sha512-CqLtaDKQFZVh9l53Py67lJOLOT//aNrmF9xT1v5cS080bbqyhOdTX5+LuoVI8LOKa351fUikGcxsQDYWQXfizg==",
"dev": true,
"requires": {
"axios": "0.16.2",
@ -1328,15 +1328,15 @@
}
},
"caniuse-db": {
"version": "1.0.30000745",
"resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000745.tgz",
"integrity": "sha1-slmmFzej5IxPtLaxvETt6yZM1CI=",
"version": "1.0.30000746",
"resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000746.tgz",
"integrity": "sha1-UBCYxm9fu/Y0wC8lUIsF6ICZEPQ=",
"dev": true
},
"caniuse-lite": {
"version": "1.0.30000745",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000745.tgz",
"integrity": "sha1-INb+3hFXpJNRM1ApRvx+DmuIDaU=",
"version": "1.0.30000746",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000746.tgz",
"integrity": "sha1-xk+Vo5Jc/TAgejCO12wa6W6gnqA=",
"dev": true
},
"capture-stack-trace": {
@ -1524,6 +1524,12 @@
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
"dev": true
},
"colors": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
"integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
"dev": true
},
"combined-stream": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
@ -1861,9 +1867,9 @@
}
},
"electron-to-chromium": {
"version": "1.3.24",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.24.tgz",
"integrity": "sha1-m3uIuwXOufoBahd4M8wt3jiPIbY=",
"version": "1.3.26",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.26.tgz",
"integrity": "sha1-mWQnKUhhp02cfIK5Jg6jAejALWY=",
"dev": true
},
"encoding": {
@ -1939,9 +1945,9 @@
"dev": true
},
"eslint": {
"version": "4.8.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-4.8.0.tgz",
"integrity": "sha1-Ip7w41Tg5h2DfHqA/fuoJeGZgV4=",
"version": "4.9.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-4.9.0.tgz",
"integrity": "sha1-doedJ0BoJhsZH+Dy9Wx0wvQgjos=",
"dev": true,
"requires": {
"ajv": "5.2.3",
@ -2063,7 +2069,7 @@
"requires": {
"babel-runtime": "6.26.0",
"browserslist": "2.5.1",
"caniuse-db": "1.0.30000745",
"caniuse-db": "1.0.30000746",
"requireindex": "1.1.0"
}
},
@ -2684,6 +2690,15 @@
"is-glob": "2.0.1"
}
},
"global-dirs": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.0.tgz",
"integrity": "sha1-ENNAOeDfBCcuJizyQiT3IJQ0308=",
"dev": true,
"requires": {
"ini": "1.3.4"
}
},
"global-modules": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz",
@ -3249,6 +3264,16 @@
"is-extglob": "1.0.0"
}
},
"is-installed-globally": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz",
"integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=",
"dev": true,
"requires": {
"global-dirs": "0.1.0",
"is-path-inside": "1.0.0"
}
},
"is-module": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
@ -3581,11 +3606,12 @@
}
},
"jsunitsaucelabs": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/jsunitsaucelabs/-/jsunitsaucelabs-1.2.1.tgz",
"integrity": "sha512-CvNOB5PFg1EMmBjd1EeLSDjq+YLhn6v6n2BUtqWnh0l/ivAbbbBGQQ0mxgz0TJdMQHJGhmtACLHIFXKPSKKg4A==",
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/jsunitsaucelabs/-/jsunitsaucelabs-1.3.0.tgz",
"integrity": "sha512-ouwtE+fwWuedkcnAV2ld3m3JQD/0P3ESzzg+AdOjCOY5rqFmeBrJ4gpn1c7r3gSOSvPkMC0Azo97/AvkgkARcg==",
"dev": true,
"requires": {
"colors": "1.1.2",
"sauce-tunnel": "2.5.0"
}
},
@ -4319,7 +4345,7 @@
"ps-tree": "1.1.0",
"touch": "3.1.0",
"undefsafe": "0.0.3",
"update-notifier": "2.2.0"
"update-notifier": "2.3.0"
},
"dependencies": {
"debug": {
@ -5413,9 +5439,9 @@
}
},
"private": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz",
"integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=",
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
"integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
"dev": true
},
"process-nextick-args": {
@ -5574,9 +5600,9 @@
}
},
"rc": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz",
"integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=",
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.2.tgz",
"integrity": "sha1-2M6ctX6NZNnHut2YdsfDTL48cHc=",
"dev": true,
"requires": {
"deep-extend": "0.4.2",
@ -5698,7 +5724,7 @@
"requires": {
"babel-runtime": "6.26.0",
"babel-types": "6.26.0",
"private": "0.1.7"
"private": "0.1.8"
},
"dependencies": {
"babel-types": {
@ -5750,7 +5776,7 @@
"integrity": "sha1-+w0yie4Nmtosu1KvXf5mywcNMAY=",
"dev": true,
"requires": {
"rc": "1.2.1",
"rc": "1.2.2",
"safe-buffer": "5.1.1"
}
},
@ -5760,7 +5786,7 @@
"integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
"dev": true,
"requires": {
"rc": "1.2.1"
"rc": "1.2.2"
}
},
"regjsgen": {
@ -6397,15 +6423,6 @@
"duplexer": "0.1.1"
}
},
"string_decoder": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
"integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
"dev": true,
"requires": {
"safe-buffer": "5.1.1"
}
},
"string-width": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
@ -6444,6 +6461,15 @@
"function-bind": "1.1.1"
}
},
"string_decoder": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
"integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
"dev": true,
"requires": {
"safe-buffer": "5.1.1"
}
},
"stringstream": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
@ -6838,21 +6864,13 @@
"dev": true
},
"uglify-js": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.1.3.tgz",
"integrity": "sha512-5ZUOgufCHjN2mBBLfz63UtWTP6va2sSzBpNCM+/iqI6RnPzEhANmB0EKiKBYdQbc3v7KeomXJ2DJx0Xq9gvUvA==",
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.1.4.tgz",
"integrity": "sha512-DcbkPg11Lw2lAWpwCmQDX+qoR4JiII6ypsQmF6tscZtlxGPFAmSRUGuMoVT3/0EHqypVik/TpkH4ITiMJeQqQA==",
"dev": true,
"requires": {
"commander": "2.11.0",
"source-map": "0.5.7"
},
"dependencies": {
"source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
"dev": true
}
"source-map": "0.6.1"
}
},
"unc-path-regex": {
@ -6923,46 +6941,20 @@
"dev": true
},
"update-notifier": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.2.0.tgz",
"integrity": "sha1-G1g3z5DAc22IYncytmHBOPht5y8=",
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.3.0.tgz",
"integrity": "sha1-TognpruRUUCrCTVZ1wFOPruDdFE=",
"dev": true,
"requires": {
"boxen": "1.2.1",
"chalk": "1.1.3",
"chalk": "2.1.0",
"configstore": "3.1.1",
"import-lazy": "2.1.0",
"is-installed-globally": "0.1.0",
"is-npm": "1.0.0",
"latest-version": "3.1.0",
"semver-diff": "2.1.0",
"xdg-basedir": "3.0.0"
},
"dependencies": {
"ansi-styles": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
"dev": true
},
"chalk": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"dev": true,
"requires": {
"ansi-styles": "2.2.1",
"escape-string-regexp": "1.0.5",
"has-ansi": "2.0.0",
"strip-ansi": "3.0.1",
"supports-color": "2.0.0"
}
},
"supports-color": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
"dev": true
}
}
},
"url-parse-lax": {

View File

@ -5,7 +5,7 @@
Package.describe({
name: 'twbs:bootstrap', // https://atmospherejs.com/twbs/bootstrap
summary: 'The most popular front-end framework for developing responsive, mobile first projects on the web.',
version: '4.0.0-beta',
version: '4.0.0-beta.2',
git: 'https://github.com/twbs/bootstrap.git'
});

View File

@ -1,7 +1,7 @@
{
"name": "bootstrap",
"description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
"version": "4.0.0-beta",
"version": "4.0.0-beta.2",
"keywords": [
"css",
"sass",
@ -36,12 +36,12 @@
"js-lint": "eslint js/ && eslint --config js/tests/.eslintrc.json --env node build/",
"js-lint-docs": "eslint --config js/tests/.eslintrc.json assets/js/ docs/ sw.js",
"js-compile": "npm-run-all --parallel js-compile-*",
"js-compile-standalone": "cross-env ROLLUP=true rollup --environment BUNDLE:false --config build/rollup.config.js",
"js-compile-bundle": "cross-env ROLLUP=true rollup --environment BUNDLE:true --config build/rollup.config.js",
"js-compile-standalone": "cross-env ROLLUP=true rollup --environment BUNDLE:false --config build/rollup.config.js --sourcemap",
"js-compile-bundle": "cross-env ROLLUP=true rollup --environment BUNDLE:true --config build/rollup.config.js --sourcemap",
"js-compile-plugins": "cross-env PLUGINS=true babel js/src/ --out-dir js/dist/ --source-maps",
"js-minify": "npm-run-all --parallel js-minify-*",
"js-minify-standalone": "uglifyjs --compress typeofs=false --mangle --comments \"/^!/\" --output dist/js/bootstrap.min.js dist/js/bootstrap.js",
"js-minify-bundle": "uglifyjs --compress typeofs=false --mangle --comments \"/^!/\" --output dist/js/bootstrap.bundle.min.js dist/js/bootstrap.bundle.js",
"js-minify-standalone": "uglifyjs --compress typeofs=false --mangle --comments \"/^!/\" --source-map \"content=dist/js/bootstrap.js.map,includeSources,url=bootstrap.min.js.map\" --output dist/js/bootstrap.min.js dist/js/bootstrap.js",
"js-minify-bundle": "uglifyjs --compress typeofs=false --mangle --comments \"/^!/\" --source-map \"content=dist/js/bootstrap.bundle.js.map,includeSources,url=bootstrap.bundle.min.js.map\" --output dist/js/bootstrap.bundle.min.js dist/js/bootstrap.bundle.js",
"js-minify-docs": "uglifyjs --mangle --comments \"/^!/\" --output assets/js/docs.min.js assets/js/vendor/anchor.min.js assets/js/vendor/clipboard.min.js assets/js/vendor/holder.min.js assets/js/src/application.js assets/js/src/pwa.js",
"js-test": "phantomjs ./node_modules/qunit-phantomjs-runner/runner.js js/tests/index.html 60",
"js-test-cloud": "ruby -r webrick -e \"s = WEBrick::HTTPServer.new(:Port => 3000, :DocumentRoot => Dir.pwd, :Logger => WEBrick::Log.new('/dev/null'), :AccessLog => []); trap('INT') { s.shutdown }; s.start\" & node build/saucelabs-unit-test.js",
@ -75,16 +75,16 @@
"license": "MIT",
"dependencies": {},
"peerDependencies": {
"jquery": "^3.0.0",
"jquery": "1.9.1 - 3",
"popper.js": "^1.12.3"
},
"devDependencies": {
"autoprefixer": "^7.1.2",
"babel-cli": "^7.0.0-beta.0",
"babel-cli": "7.0.0-beta.2",
"babel-eslint": "^8.0.0",
"babel-plugin-external-helpers": "^7.0.0-beta.0",
"babel-plugin-external-helpers": "7.0.0-beta.2",
"babel-plugin-transform-es2015-modules-strip": "^0.1.1",
"babel-preset-env": "^2.0.0-beta.0",
"babel-preset-env": "2.0.0-beta.2",
"bundlesize": "^0.15.2",
"clean-css-cli": "^4.1.6",
"cross-env": "^5.0.5",
@ -125,6 +125,7 @@
"build",
"js/.eslintrc.json",
"js/**/*.js",
"js/**/*.js.map",
"scss/**/*.scss"
],
"browserslist": [

View File

@ -14,12 +14,12 @@
// Bring the hover, focused, and "active" buttons to the front to overlay
// the borders properly
@include hover {
z-index: 2;
z-index: 1;
}
&:focus,
&:active,
&.active {
z-index: 2;
z-index: 1;
}
}

View File

@ -22,7 +22,7 @@
&:focus,
&.focus {
outline: 0;
box-shadow: $btn-focus-box-shadow;
box-shadow: $input-btn-focus-box-shadow;
}
// Disabled comes first so active can properly restyle
@ -35,7 +35,7 @@
&:not([disabled]):not(.disabled):active,
&:not([disabled]):not(.disabled).active {
background-image: none;
@include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);
@include box-shadow($input-btn-focus-box-shadow, $btn-active-box-shadow);
}
}

Some files were not shown because too many files have changed in this diff Show More