From e034c9c07e5a6d37c2892c02ea313bded1b6ba03 Mon Sep 17 00:00:00 2001 From: Jacob Thornton Date: Thu, 16 Feb 2012 22:55:10 -0800 Subject: [PATCH] gh-pages --- assets/bootstrap.zip | Bin 52355 -> 53357 bytes assets/css/bootstrap-responsive.css | 72 +++-- assets/css/bootstrap.css | 261 ++++++++++++---- assets/css/docs.css | 26 +- assets/js/application.js | 3 +- assets/js/bootstrap-alert.js | 13 +- assets/js/bootstrap-button.js | 6 +- assets/js/bootstrap-carousel.js | 7 +- assets/js/bootstrap-collapse.js | 4 +- assets/js/bootstrap-dropdown.js | 4 +- assets/js/bootstrap-modal.js | 11 +- assets/js/bootstrap-popover.js | 4 +- assets/js/bootstrap-scrollspy.js | 4 +- assets/js/bootstrap-tab.js | 4 +- assets/js/bootstrap-tooltip.js | 4 +- assets/js/bootstrap-transition.js | 6 +- assets/js/bootstrap-typeahead.js | 4 +- base-css.html | 451 +++++++++++++++------------ components.html | 157 +++++++--- download.html | 12 +- examples.html | 10 +- examples/fluid.html | 11 +- examples/hero.html | 11 +- examples/starter-template.html | 11 +- index.html | 21 +- javascript.html | 61 ++-- less.html | 30 +- scaffolding.html | 154 +++++++-- templates/layout.mustache | 14 +- templates/pages/base-css.mustache | 441 +++++++++++++++----------- templates/pages/components.mustache | 147 ++++++--- templates/pages/download.mustache | 2 +- templates/pages/index.mustache | 15 +- templates/pages/javascript.mustache | 55 ++-- templates/pages/less.mustache | 32 +- templates/pages/scaffolding.mustache | 144 ++++++++- templates/pages/upgrading.mustache | 19 +- upgrading.html | 29 +- 38 files changed, 1471 insertions(+), 789 deletions(-) diff --git a/assets/bootstrap.zip b/assets/bootstrap.zip index 5b15c4d272632a342ed929907786e12c2e777334..f102cd9ee1780fb92600d7d52cfc49690f54c08d 100644 GIT binary patch delta 43740 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 delta 42854 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ⅈ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 [class*="span"]:first-child { margin-left: 0; } - .row-fluid .span1 { + .row-fluid > .span1 { width: 5.801104972%; } - .row-fluid .span2 { + .row-fluid > .span2 { width: 14.364640883%; } - .row-fluid .span3 { + .row-fluid > .span3 { width: 22.928176794%; } - .row-fluid .span4 { + .row-fluid > .span4 { width: 31.491712705%; } - .row-fluid .span5 { + .row-fluid > .span5 { width: 40.055248616%; } - .row-fluid .span6 { + .row-fluid > .span6 { width: 48.618784527%; } - .row-fluid .span7 { + .row-fluid > .span7 { width: 57.182320438000005%; } - .row-fluid .span8 { + .row-fluid > .span8 { width: 65.74585634900001%; } - .row-fluid .span9 { + .row-fluid > .span9 { width: 74.30939226%; } - .row-fluid .span10 { + .row-fluid > .span10 { width: 82.87292817100001%; } - .row-fluid .span11 { + .row-fluid > .span11 { width: 91.436464082%; } - .row-fluid .span12 { + .row-fluid > .span12 { width: 99.999999993%; } input.span1, textarea.span1, .uneditable-input.span1 { @@ -278,7 +288,7 @@ width: 714px; } } -@media (max-width: 980px) { +@media (max-width: 979px) { body { padding-top: 0; } @@ -314,6 +324,10 @@ .navbar .nav > .divider-vertical { display: none; } + .navbar .nav .nav-header { + color: #999999; + text-shadow: none; + } .navbar .nav > li > a, .navbar .dropdown-menu a { padding: 6px 15px; font-weight: bold; @@ -486,40 +500,40 @@ .row-fluid > [class*="span"]:first-child { margin-left: 0; } - .row-fluid .span1 { + .row-fluid > .span1 { width: 5.982905983%; } - .row-fluid .span2 { + .row-fluid > .span2 { width: 14.529914530000001%; } - .row-fluid .span3 { + .row-fluid > .span3 { width: 23.076923077%; } - .row-fluid .span4 { + .row-fluid > .span4 { width: 31.623931624%; } - .row-fluid .span5 { + .row-fluid > .span5 { width: 40.170940171000005%; } - .row-fluid .span6 { + .row-fluid > .span6 { width: 48.717948718%; } - .row-fluid .span7 { + .row-fluid > .span7 { width: 57.264957265%; } - .row-fluid .span8 { + .row-fluid > .span8 { width: 65.81196581200001%; } - .row-fluid .span9 { + .row-fluid > .span9 { width: 74.358974359%; } - .row-fluid .span10 { + .row-fluid > .span10 { width: 82.905982906%; } - .row-fluid .span11 { + .row-fluid > .span11 { width: 91.45299145300001%; } - .row-fluid .span12 { + .row-fluid > .span12 { width: 100%; } input.span1, textarea.span1, .uneditable-input.span1 { diff --git a/assets/css/bootstrap.css b/assets/css/bootstrap.css index a90e3193..c3e0c005 100644 --- a/assets/css/bootstrap.css +++ b/assets/css/bootstrap.css @@ -1,5 +1,5 @@ /*! - * Bootstrap v2.0.0 + * Bootstrap v2.0.1 * * Copyright 2012 Twitter, Inc * Licensed under the Apache License v2.0 @@ -33,7 +33,7 @@ html { -ms-text-size-adjust: 100%; } a:focus { - outline: thin dotted; + outline: thin dotted #333; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } @@ -94,6 +94,16 @@ textarea { overflow: auto; vertical-align: top; } +.clearfix { + *zoom: 1; +} +.clearfix:before, .clearfix:after { + display: table; + content: ""; +} +.clearfix:after { + clear: both; +} body { margin: 0; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; @@ -212,40 +222,40 @@ a:hover { .row-fluid > [class*="span"]:first-child { margin-left: 0; } -.row-fluid .span1 { +.row-fluid > .span1 { width: 6.382978723%; } -.row-fluid .span2 { +.row-fluid > .span2 { width: 14.89361702%; } -.row-fluid .span3 { +.row-fluid > .span3 { width: 23.404255317%; } -.row-fluid .span4 { +.row-fluid > .span4 { width: 31.914893614%; } -.row-fluid .span5 { +.row-fluid > .span5 { width: 40.425531911%; } -.row-fluid .span6 { +.row-fluid > .span6 { width: 48.93617020799999%; } -.row-fluid .span7 { +.row-fluid > .span7 { width: 57.446808505%; } -.row-fluid .span8 { +.row-fluid > .span8 { width: 65.95744680199999%; } -.row-fluid .span9 { +.row-fluid > .span9 { width: 74.468085099%; } -.row-fluid .span10 { +.row-fluid > .span10 { width: 82.97872339599999%; } -.row-fluid .span11 { +.row-fluid > .span11 { width: 91.489361693%; } -.row-fluid .span12 { +.row-fluid > .span12 { width: 99.99999998999999%; } .container { @@ -374,7 +384,7 @@ ol { li { line-height: 18px; } -ul.unstyled { +ul.unstyled, ol.unstyled { margin-left: 0; list-style: none; } @@ -393,7 +403,7 @@ dd { hr { margin: 18px 0; border: 0; - border-top: 1px solid #e5e5e5; + border-top: 1px solid #eeeeee; border-bottom: 1px solid #ffffff; } strong { @@ -488,13 +498,20 @@ pre { white-space: pre; white-space: pre-wrap; word-break: break-all; + word-wrap: break-word; } pre.prettyprint { margin-bottom: 18px; } pre code { padding: 0; + color: inherit; background-color: transparent; + border: 0; +} +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; } form { margin: 0 0 18px; @@ -515,16 +532,25 @@ legend { border: 0; border-bottom: 1px solid #eee; } +legend small { + font-size: 13.5px; + color: #999999; +} label, input, button, select, textarea { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 13px; font-weight: normal; line-height: 18px; } +input, +button, +select, +textarea { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} label { display: block; margin-bottom: 5px; @@ -563,13 +589,19 @@ input[type="image"], input[type="checkbox"], input[type="radio"] { /* IE7 */ line-height: normal; - border: 0; cursor: pointer; -webkit-border-radius: 0; -moz-border-radius: 0; border-radius: 0; + border: 0 \9; + /* IE9 and down */ + +} +input[type="image"] { + border: 0; } input[type="file"] { + width: auto; padding: initial; line-height: initial; border: initial; @@ -592,6 +624,9 @@ select, input[type="file"] { line-height: 28px; } +input[type="file"] { + line-height: 18px \9; +} select { width: 220px; background-color: #ffffff; @@ -622,15 +657,13 @@ input[type="hidden"] { } .radio.inline, .checkbox.inline { display: inline-block; + padding-top: 5px; margin-bottom: 0; vertical-align: middle; } .radio.inline + .radio.inline, .checkbox.inline + .checkbox.inline { margin-left: 10px; } -.controls > .radio.inline:first-child, .controls > .checkbox.inline:first-child { - padding-top: 0; -} input, textarea { -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); @@ -648,14 +681,17 @@ input:focus, textarea:focus { box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); outline: 0; outline: thin dotted \9; - /* IE6-8 */ + /* IE6-9 */ } -input[type="file"]:focus, input[type="checkbox"]:focus, select:focus { +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus, +select:focus { -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; - outline: thin dotted; + outline: thin dotted #333; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } @@ -817,6 +853,7 @@ input:focus:required:invalid:focus, textarea:focus:required:invalid:focus, selec color: #999999; } .help-block { + display: block; margin-top: 5px; margin-bottom: 0; color: #999999; @@ -898,6 +935,7 @@ input:focus:required:invalid:focus, textarea:focus:required:invalid:focus, selec border-radius: 3px 0 0 3px; } .input-append .uneditable-input { + border-left-color: #eee; border-right-color: #ccc; } .input-append .add-on { @@ -939,6 +977,9 @@ input:focus:required:invalid:focus, textarea:focus:required:invalid:focus, selec display: inline-block; margin-bottom: 0; } +.form-search .hide, .form-inline .hide, .form-horizontal .hide { + display: none; +} .form-search label, .form-inline label, .form-search .input-append, @@ -953,10 +994,17 @@ input:focus:required:invalid:focus, textarea:focus:required:invalid:focus, selec .form-inline .input-prepend .add-on { vertical-align: middle; } +.form-search .radio, +.form-inline .radio, +.form-search .checkbox, +.form-inline .checkbox { + margin-bottom: 0; + vertical-align: middle; +} .control-group { margin-bottom: 9px; } -.form-horizontal legend + .control-group { +legend + .control-group { margin-top: 18px; -webkit-margin-top-collapse: separate; } @@ -971,7 +1019,7 @@ input:focus:required:invalid:focus, textarea:focus:required:invalid:focus, selec .form-horizontal .control-group:after { clear: both; } -.form-horizontal .control-group > label { +.form-horizontal .control-label { float: left; width: 140px; padding-top: 5px; @@ -996,14 +1044,14 @@ table { padding: 8px; line-height: 18px; text-align: left; + vertical-align: top; border-top: 1px solid #ddd; } .table th { font-weight: bold; - vertical-align: bottom; } -.table td { - vertical-align: top; +.table thead th { + vertical-align: bottom; } .table thead:first-child tr th, .table thead:first-child tr td { border-top: 0; @@ -1054,6 +1102,9 @@ table { .table-striped tbody tr:nth-child(odd) td, .table-striped tbody tr:nth-child(odd) th { background-color: #f9f9f9; } +.table tbody tr:hover td, .table tbody tr:hover th { + background-color: #f5f5f5; +} table .span1 { float: none; width: 44px; @@ -1114,21 +1165,22 @@ table .span12 { width: 924px; margin-left: 0; } -[class^="icon-"] { +[class^="icon-"], [class*=" icon-"] { display: inline-block; width: 14px; height: 14px; + line-height: 14px; vertical-align: text-top; - background-image: url(../img/glyphicons-halflings.png); + background-image: url("../img/glyphicons-halflings.png"); background-position: 14px 14px; background-repeat: no-repeat; *margin-right: .3em; } -[class^="icon-"]:last-child { +[class^="icon-"]:last-child, [class*=" icon-"]:last-child { *margin-left: 0; } .icon-white { - background-image: url(../img/glyphicons-halflings-white.png); + background-image: url("../img/glyphicons-halflings-white.png"); } .icon-glass { background-position: 0 0; @@ -1529,7 +1581,6 @@ table .span12 { float: left; display: none; min-width: 160px; - max-width: 220px; _width: 160px; padding: 4px 0; margin: 0; @@ -1658,20 +1709,25 @@ table .span12 { .btn { display: inline-block; padding: 4px 10px 4px; + margin-bottom: 0; font-size: 13px; line-height: 18px; color: #333333; text-align: center; text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); - background-color: #fafafa; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6)); - background-image: -webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); - background-image: -moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6); - background-image: -ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); - background-image: -o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); - background-image: linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); - background-repeat: no-repeat; + vertical-align: middle; + background-color: #f5f5f5; + background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -ms-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); + background-image: linear-gradient(top, #ffffff, #e6e6e6); + background-repeat: repeat-x; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0); + border-color: #e6e6e6 #e6e6e6 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); border: 1px solid #ccc; border-bottom-color: #bbb; -webkit-border-radius: 4px; @@ -1681,8 +1737,19 @@ table .span12 { -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); cursor: pointer; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); *margin-left: .3em; } +.btn:hover, +.btn:active, +.btn.active, +.btn.disabled, +.btn[disabled] { + background-color: #e6e6e6; +} +.btn:active, .btn.active { + background-color: #cccccc \9; +} .btn:first-child { *margin-left: 0; } @@ -1698,7 +1765,7 @@ table .span12 { transition: background-position 0.1s linear; } .btn:focus { - outline: thin dotted; + outline: thin dotted #333; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } @@ -1709,7 +1776,6 @@ table .span12 { box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); background-color: #e6e6e6; background-color: #d9d9d9 \9; - color: rgba(0, 0, 0, 0.5); outline: 0; } .btn.disabled, .btn[disabled] { @@ -1730,7 +1796,7 @@ table .span12 { -moz-border-radius: 5px; border-radius: 5px; } -.btn-large .icon { +.btn-large [class^="icon-"] { margin-top: 1px; } .btn-small { @@ -1738,9 +1804,14 @@ table .span12 { font-size: 11px; line-height: 16px; } -.btn-small .icon { +.btn-small [class^="icon-"] { margin-top: -1px; } +.btn-mini { + padding: 2px 6px; + font-size: 11px; + line-height: 14px; +} .btn-primary, .btn-primary:hover, .btn-warning, @@ -1750,7 +1821,9 @@ table .span12 { .btn-success, .btn-success:hover, .btn-info, -.btn-info:hover { +.btn-info:hover, +.btn-inverse, +.btn-inverse:hover { text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); color: #ffffff; } @@ -1758,7 +1831,8 @@ table .span12 { .btn-warning.active, .btn-danger.active, .btn-success.active, -.btn-info.active { +.btn-info.active, +.btn-dark.active { color: rgba(255, 255, 255, 0.75); } .btn-primary { @@ -1881,6 +1955,30 @@ table .span12 { .btn-info:active, .btn-info.active { background-color: #24748c \9; } +.btn-inverse { + background-color: #393939; + background-image: -moz-linear-gradient(top, #454545, #262626); + background-image: -ms-linear-gradient(top, #454545, #262626); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#454545), to(#262626)); + background-image: -webkit-linear-gradient(top, #454545, #262626); + background-image: -o-linear-gradient(top, #454545, #262626); + background-image: linear-gradient(top, #454545, #262626); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#454545', endColorstr='#262626', GradientType=0); + border-color: #262626 #262626 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.btn-inverse:hover, +.btn-inverse:active, +.btn-inverse.active, +.btn-inverse.disabled, +.btn-inverse[disabled] { + background-color: #262626; +} +.btn-inverse:active, .btn-inverse.active { + background-color: #0c0c0c \9; +} button.btn, input[type="submit"].btn { *padding-top: 2px; *padding-bottom: 2px; @@ -2013,7 +2111,8 @@ button.btn.small, input[type="submit"].btn.small { .btn-primary .caret, .btn-danger .caret, .btn-info .caret, -.btn-success .caret { +.btn-success .caret, +.btn-inverse .caret { border-top-color: #ffffff; opacity: 0.75; filter: alpha(opacity=75); @@ -2086,27 +2185,31 @@ button.btn.small, input[type="submit"].btn.small { text-decoration: none; background-color: #eeeeee; } +.nav .nav-header { + display: block; + padding: 3px 15px; + font-size: 11px; + font-weight: bold; + line-height: 18px; + color: #999999; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + text-transform: uppercase; +} +.nav li + .nav-header { + margin-top: 9px; +} .nav-list { padding-left: 14px; padding-right: 14px; margin-bottom: 0; } .nav-list > li > a, .nav-list .nav-header { - display: block; - padding: 3px 15px; margin-left: -15px; margin-right: -15px; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); } -.nav-list .nav-header { - font-size: 11px; - font-weight: bold; - line-height: 18px; - color: #999999; - text-transform: uppercase; -} -.nav-list > li + .nav-header { - margin-top: 9px; +.nav-list > li > a { + padding: 3px 15px; } .nav-list .active > a, .nav-list .active > a:hover { color: #ffffff; @@ -2256,6 +2359,9 @@ button.btn.small, input[type="submit"].btn.small { .tabbable:after { clear: both; } +.tab-content { + overflow: hidden; +} .tabs-below .nav-tabs, .tabs-right .nav-tabs, .tabs-left .nav-tabs { border-bottom: 0; } @@ -2451,6 +2557,13 @@ button.btn.small, input[type="submit"].btn.small { .navbar-form input[type="image"], .navbar-form input[type="checkbox"], .navbar-form input[type="radio"] { margin-top: 3px; } +.navbar-form .input-append, .navbar-form .input-prepend { + margin-top: 6px; + white-space: nowrap; +} +.navbar-form .input-append input, .navbar-form .input-prepend input { + margin-top: 0; +} .navbar-search { position: relative; float: left; @@ -2544,7 +2657,6 @@ button.btn.small, input[type="submit"].btn.small { color: #ffffff; text-decoration: none; background-color: #222222; - background-color: rgba(0, 0, 0, 0.5); } .navbar .divider-vertical { height: 40px; @@ -2631,7 +2743,7 @@ button.btn.small, input[type="submit"].btn.small { box-shadow: inset 0 1px 0 #ffffff; } .breadcrumb li { - display: inline; + display: inline-block; text-shadow: 0 1px 0 #ffffff; } .breadcrumb .divider { @@ -2810,6 +2922,9 @@ button.btn.small, input[type="submit"].btn.small { .modal-body { padding: 15px; } +.modal-body .modal-form { + margin-bottom: 0; +} .modal-footer { padding: 14px 15px 15px; margin-bottom: 0; @@ -3045,28 +3160,44 @@ a.thumbnail:hover { padding: 9px; } .label { - padding: 1px 3px 2px; - font-size: 9.75px; + padding: 2px 4px 3px; + font-size: 11.049999999999999px; font-weight: bold; color: #ffffff; - text-transform: uppercase; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); background-color: #999999; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; } +.label:hover { + color: #ffffff; + text-decoration: none; +} .label-important { background-color: #b94a48; } +.label-important:hover { + background-color: #953b39; +} .label-warning { background-color: #f89406; } +.label-warning:hover { + background-color: #c67605; +} .label-success { background-color: #468847; } +.label-success:hover { + background-color: #356635; +} .label-info { background-color: #3a87ad; } +.label-info:hover { + background-color: #2d6987; +} @-webkit-keyframes progress-bar-stripes { from { background-position: 0 0; diff --git a/assets/css/docs.css b/assets/css/docs.css index c3a6848d..f6a388c2 100644 --- a/assets/css/docs.css +++ b/assets/css/docs.css @@ -181,7 +181,7 @@ hr.soften { top: 40px; left: 0; right: 0; - z-index: 1030; + z-index: 1020; /* 10 less than .navbar-fixed to prevent any overlap */ border-color: #d5d5d5; border-width: 0 0 1px; /* drop the border on the fixed edges */ -webkit-border-radius: 0; @@ -190,6 +190,7 @@ hr.soften { -webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 5px rgba(0,0,0,.1); -moz-box-shadow: inset 0 1px 0 #fff, 0 1px 5px rgba(0,0,0,.1); box-shadow: inset 0 1px 0 #fff, 0 1px 5px rgba(0,0,0,.1); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); /* IE6-9 */ } .subnav-fixed .nav { width: 938px; @@ -481,9 +482,6 @@ hr.soften { /* Misc -------------------------------------------------- */ -pre.prettyprint { - overflow: hidden; -} .browser-support { max-width: 100%; @@ -546,28 +544,12 @@ form.well { /* Icons ------------------------- */ .the-icons { - margin-bottom: 18px; -} -.the-icons i { - display: block; - margin-bottom: 5px; + margin-left: 0; + list-style: none; } .the-icons i:hover { background-color: rgba(255,0,0,.25); } -.the-icons i:after { - display: block; - content: attr(class); - font-style: normal; - margin-left: 20px; - width: 140px; -} -#javascript input[type=checkbox] { - position: relative; - top: -1px; - display: inline; - margin-left: 6px; -} /* Eaxmples page ------------------------- */ diff --git a/assets/js/application.js b/assets/js/application.js index b29b63ae..732bed45 100644 --- a/assets/js/application.js +++ b/assets/js/application.js @@ -135,8 +135,7 @@ , url: 'http://bootstrap.herokuapp.com' , dataType: 'jsonpi' , params: { - branch: '2.0-wip' - , js: js + js: js , css: css , vars: vars , img: img diff --git a/assets/js/bootstrap-alert.js b/assets/js/bootstrap-alert.js index 4a65b135..2242dddc 100644 --- a/assets/js/bootstrap-alert.js +++ b/assets/js/bootstrap-alert.js @@ -1,5 +1,5 @@ /* ========================================================== - * bootstrap-alert.js v2.0.0 + * bootstrap-alert.js v2.0.1 * http://twitter.github.com/bootstrap/javascript.html#alerts * ========================================================== * Copyright 2012 Twitter, Inc. @@ -51,11 +51,14 @@ $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent()) - $parent.removeClass('in') + $parent + .trigger('close') + .removeClass('in') function removeElement() { - $parent.remove() - $parent.trigger('closed') + $parent + .trigger('closed') + .remove() } $.support.transition && $parent.hasClass('fade') ? @@ -88,4 +91,4 @@ $('body').on('click.alert.data-api', dismiss, Alert.prototype.close) }) -}( window.jQuery ) +}( window.jQuery ); \ No newline at end of file diff --git a/assets/js/bootstrap-button.js b/assets/js/bootstrap-button.js index d85c8294..a0e05354 100644 --- a/assets/js/bootstrap-button.js +++ b/assets/js/bootstrap-button.js @@ -1,5 +1,5 @@ /* ============================================================ - * bootstrap-button.js v2.0.0 + * bootstrap-button.js v2.0.1 * http://twitter.github.com/bootstrap/javascript.html#buttons * ============================================================ * Copyright 2012 Twitter, Inc. @@ -91,8 +91,8 @@ $(function () { $('body').on('click.button.data-api', '[data-toggle^=button]', function ( e ) { - $(e.target).button('toggle') + $(e.currentTarget).button('toggle') }) }) -}( window.jQuery ) +}( window.jQuery ); \ No newline at end of file diff --git a/assets/js/bootstrap-carousel.js b/assets/js/bootstrap-carousel.js index 2f47edb8..810256e8 100644 --- a/assets/js/bootstrap-carousel.js +++ b/assets/js/bootstrap-carousel.js @@ -1,5 +1,5 @@ /* ========================================================== - * bootstrap-carousel.js v2.0.0 + * bootstrap-carousel.js v2.0.1 * http://twitter.github.com/bootstrap/javascript.html#carousel * ========================================================== * Copyright 2012 Twitter, Inc. @@ -61,6 +61,7 @@ , pause: function () { clearInterval(this.interval) + this.interval = null return this } @@ -82,6 +83,8 @@ , fallback = type == 'next' ? 'first' : 'last' , that = this + if (!$next.length) return + this.sliding = true isCycling && this.pause() @@ -151,4 +154,4 @@ }) }) -}( window.jQuery ) +}( window.jQuery ); \ No newline at end of file diff --git a/assets/js/bootstrap-collapse.js b/assets/js/bootstrap-collapse.js index 8134cc42..d195efc7 100644 --- a/assets/js/bootstrap-collapse.js +++ b/assets/js/bootstrap-collapse.js @@ -1,5 +1,5 @@ /* ============================================================= - * bootstrap-collapse.js v2.0.0 + * bootstrap-collapse.js v2.0.1 * http://twitter.github.com/bootstrap/javascript.html#collapse * ============================================================= * Copyright 2012 Twitter, Inc. @@ -133,4 +133,4 @@ }) }) -}( window.jQuery ) +}( window.jQuery ); \ No newline at end of file diff --git a/assets/js/bootstrap-dropdown.js b/assets/js/bootstrap-dropdown.js index 48d3ce0f..f1f6c33f 100644 --- a/assets/js/bootstrap-dropdown.js +++ b/assets/js/bootstrap-dropdown.js @@ -1,5 +1,5 @@ /* ============================================================ - * bootstrap-dropdown.js v2.0.0 + * bootstrap-dropdown.js v2.0.1 * http://twitter.github.com/bootstrap/javascript.html#dropdowns * ============================================================ * Copyright 2012 Twitter, Inc. @@ -89,4 +89,4 @@ $('body').on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle) }) -}( window.jQuery ) +}( window.jQuery ); \ No newline at end of file diff --git a/assets/js/bootstrap-modal.js b/assets/js/bootstrap-modal.js index ba64368b..bceb3035 100644 --- a/assets/js/bootstrap-modal.js +++ b/assets/js/bootstrap-modal.js @@ -1,5 +1,5 @@ /* ========================================================= - * bootstrap-modal.js v2.0.0 + * bootstrap-modal.js v2.0.1 * http://twitter.github.com/bootstrap/javascript.html#modals * ========================================================= * Copyright 2012 Twitter, Inc. @@ -26,7 +26,7 @@ * ====================== */ var Modal = function ( content, options ) { - this.options = $.extend({}, $.fn.modal.defaults, options) + this.options = options this.$element = $(content) .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this)) } @@ -177,16 +177,17 @@ return this.each(function () { var $this = $(this) , data = $this.data('modal') - , options = typeof option == 'object' && option + , options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option) if (!data) $this.data('modal', (data = new Modal(this, options))) if (typeof option == 'string') data[option]() - else data.show() + else if (options.show) data.show() }) } $.fn.modal.defaults = { backdrop: true , keyboard: true + , show: true } $.fn.modal.Constructor = Modal @@ -206,4 +207,4 @@ }) }) -}( window.jQuery ) +}( window.jQuery ); \ No newline at end of file diff --git a/assets/js/bootstrap-popover.js b/assets/js/bootstrap-popover.js index 35ff9d0a..924844e8 100644 --- a/assets/js/bootstrap-popover.js +++ b/assets/js/bootstrap-popover.js @@ -1,5 +1,5 @@ /* =========================================================== - * bootstrap-popover.js v2.0.0 + * bootstrap-popover.js v2.0.1 * http://twitter.github.com/bootstrap/javascript.html#popovers * =========================================================== * Copyright 2012 Twitter, Inc. @@ -92,4 +92,4 @@ , template: '

' }) -}( window.jQuery ) +}( window.jQuery ); \ No newline at end of file diff --git a/assets/js/bootstrap-scrollspy.js b/assets/js/bootstrap-scrollspy.js index e8bd0715..5f09cfe8 100644 --- a/assets/js/bootstrap-scrollspy.js +++ b/assets/js/bootstrap-scrollspy.js @@ -1,5 +1,5 @@ /* ============================================================= - * bootstrap-scrollspy.js v2.0.0 + * bootstrap-scrollspy.js v2.0.1 * http://twitter.github.com/bootstrap/javascript.html#scrollspy * ============================================================= * Copyright 2012 Twitter, Inc. @@ -122,4 +122,4 @@ }) }) -}( window.jQuery ) +}( window.jQuery ); \ No newline at end of file diff --git a/assets/js/bootstrap-tab.js b/assets/js/bootstrap-tab.js index f19db5da..26c9ece7 100644 --- a/assets/js/bootstrap-tab.js +++ b/assets/js/bootstrap-tab.js @@ -1,5 +1,5 @@ /* ======================================================== - * bootstrap-tab.js v2.0.0 + * bootstrap-tab.js v2.0.1 * http://twitter.github.com/bootstrap/javascript.html#tabs * ======================================================== * Copyright 2012 Twitter, Inc. @@ -127,4 +127,4 @@ }) }) -}( window.jQuery ) +}( window.jQuery ); \ No newline at end of file diff --git a/assets/js/bootstrap-tooltip.js b/assets/js/bootstrap-tooltip.js index 21f2311f..d76e51e8 100644 --- a/assets/js/bootstrap-tooltip.js +++ b/assets/js/bootstrap-tooltip.js @@ -1,5 +1,5 @@ /* =========================================================== - * bootstrap-tooltip.js v2.0.0 + * bootstrap-tooltip.js v2.0.1 * http://twitter.github.com/bootstrap/javascript.html#tooltips * Inspired by the original jQuery.tipsy by Jason Frame * =========================================================== @@ -267,4 +267,4 @@ , template: '
' } -}( window.jQuery ) +}( window.jQuery ); \ No newline at end of file diff --git a/assets/js/bootstrap-transition.js b/assets/js/bootstrap-transition.js index 956350bd..52196c40 100644 --- a/assets/js/bootstrap-transition.js +++ b/assets/js/bootstrap-transition.js @@ -1,5 +1,5 @@ /* =================================================== - * bootstrap-transition.js v2.0.0 + * bootstrap-transition.js v2.0.1 * http://twitter.github.com/bootstrap/javascript.html#transitions * =================================================== * Copyright 2012 Twitter, Inc. @@ -47,5 +47,5 @@ })() }) - -}( window.jQuery ) + +}( window.jQuery ); \ No newline at end of file diff --git a/assets/js/bootstrap-typeahead.js b/assets/js/bootstrap-typeahead.js index 1426185a..50315595 100644 --- a/assets/js/bootstrap-typeahead.js +++ b/assets/js/bootstrap-typeahead.js @@ -1,5 +1,5 @@ /* ============================================================= - * bootstrap-typeahead.js v2.0.0 + * bootstrap-typeahead.js v2.0.1 * http://twitter.github.com/bootstrap/javascript.html#typeahead * ============================================================= * Copyright 2012 Twitter, Inc. @@ -268,4 +268,4 @@ }) }) -}( window.jQuery ) +}( window.jQuery ); \ No newline at end of file diff --git a/base-css.html b/base-css.html index 5176c3ec..fcb73a7a 100644 --- a/base-css.html +++ b/base-css.html @@ -7,17 +7,17 @@ - - - + + + @@ -375,7 +375,7 @@ For example, <code>section</code> should be wrapped as inline.

Basic block

-

Use <pre> for multiple lines of code. Be sure to turn any carets into their unicode characters for proper rendering.

+

Use <pre> for multiple lines of code. Be sure to escape any angle brackets in the code for proper rendering.

 <p>Sample text here...</p>
 
@@ -385,6 +385,7 @@ For example, <code>section</code> should be wrapped as inline. </pre>

Note: Be sure to keep code within <pre> tags as close to the left as possible; it will render all tabs.

+

You may optionally add the .pre-scrollable class which will set a max-height of 350px and provide a y-axis scrollbar.

Google Prettify

@@ -530,7 +531,7 @@ For example, <code>section</code> should be wrapped as inline. .table-bordered - Rounds corners and adds outter border + Rounds corners and adds outer border Zebra-stripe @@ -852,9 +853,9 @@ For example, <code>section</code> should be wrapped as inline.

Example forms using just form controls, no extra markup

-

Basic form

+

Basic form

With v2.0, we have lighter and smarter defaults for form styles. No extra markup, just form controls.

@@ -866,11 +867,22 @@ For example, <code>section</code> should be wrapped as inline. +
+<form class="well">
+  <label>Label name</label>
+  <input type="text" class="span3" placeholder="Type something…">
+  <span class="help-inline">Associated help text!</span>
+  <label class="checkbox">
+    <input type="checkbox"> Check me out
+  </label>
+  <button type="submit" class="btn">Submit</button>
+</form>
+
-

Search form

+

Search form

Reflecting default WebKit styles, just add .form-search for extra rounded search fields.

@@ -878,19 +890,35 @@ For example, <code>section</code> should be wrapped as inline. +
+<form class="well form-search">
+  <input type="text" class="input-medium search-query">
+  <button type="submit" class="btn">Search</button>
+</form>
+
-

Inline form

+

Inline form

Inputs are block level to start. For .form-inline and .form-horizontal, we use inline-block.

- +
+<form class="well form-inline">
+  <input type="text" class="input-small" placeholder="Email">
+  <input type="password" class="input-small" placeholder="Password">
+  <button type="submit" class="btn">Go</button>
+</form>
+
@@ -956,10 +984,26 @@ For example, <code>section</code> should be wrapped as inline.
- +
+

Example markup

+

Given the above example form layout, here's the markup associated with the first input and control group. The .control-group, .control-label, and .controls classes are all required for styling.

+
+<form class="form-horizontal">
+  <fieldset>
+    <legend>Legend text</legend>
+    <div class="control-group">
+      <label class="control-label" for="input01">Text input</label>
+      <div class="controls">
+        <input type="text" class="input-xlarge" id="input01">
+        <p class="help-block">Supporting help text</p>
+      </div>
+    </div>
+  </fieldset>
+</form>
+

What's included

@@ -1014,9 +1058,9 @@ For example, <code>section</code> should be wrapped as inline.
- +
- + Something may have gone wrong
@@ -1028,9 +1072,9 @@ For example, <code>section</code> should be wrapped as inline.
- +
- + Woohoo!
@@ -1049,14 +1093,14 @@ For example, <code>section</code> should be wrapped as inline.
- +

Redesigned browser states

-

Bootstrap features styles for browser-supported focused and disabled states. We remove the default Webkit outline and apply a box-shadow in it's place for :focus.

+

Bootstrap features styles for browser-supported focused and disabled states. We remove the default Webkit outline and apply a box-shadow in its place for :focus.


Form validation

It also includes validation styles for errors, warnings, and success. To use, add the error class to the surrounding .control-group.

@@ -1077,7 +1121,7 @@ For example, <code>section</code> should be wrapped as inline.
Extending form controls
- +
@@ -1106,6 +1150,15 @@ For example, <code>section</code> should be wrapped as inline.

Use the same .span* classes from the grid system for input sizes.

+
+ +
+ + + +

You may also use static classes that don't map to the grid, adapt to the responsive CSS styles, or account for varying types of controls (e.g., input vs. select).

+
+
@@ -1173,7 +1226,7 @@ For example, <code>section</code> should be wrapped as inline.
- +
@@ -1213,34 +1266,39 @@ For example, <code>section</code> should be wrapped as inline. - Default + .btn Standard gray button with gradient - Primary + .btn-primary Provides extra visual weight and identifies the primary action in a set of buttons - Info + .btn-info Used as an alternate to the default styles - Success + .btn-success Indicates a successful or positive action - Warning + .btn-warning Indicates caution should be taken with this action - Danger + .btn-danger Indicates a dangerous or potentially negative action + + + + .btn-inverse + Alternate dark gray button, not tied to a semantic action or use @@ -1249,50 +1307,63 @@ For example, <code>section</code> should be wrapped as inline.

Buttons for actions

As a convention, buttons should only be used for actions while hyperlinks are to be used for objects. For instance, "Download" should be a button while "recent activity" should be a link.

+

Button styles can be applied to anything with the .btn class applied. However, typically you'll want to apply these to only <a> and <button> elements.

+

Cross browser compatibility

+

IE9 doesn't crop background gradients on rounded corners, so we remove it. Related, IE9 jankifies disabled button elements, rendering text gray with a nasty text-shadow that we cannot fix.

-
-

For anchors and forms

-

Button styles can be applied to anything with the .btn applied. However, typically you'll want to apply these to only <a> and <button> elements.

-
-
-

Note: All buttons must include the .btn class. Button styles should be applied to <button> and <a> elements for consistency.

-
-
- -

Multiple sizes

-

Fancy larger or smaller buttons? Have at it!

+

Fancy larger or smaller buttons? Add .btn-large, .btn-small, or .btn-mini for two additional sizes.

- Primary action - Action + +

- Primary action - Action + +

-
-
+

+ + +

+

Disabled state

-

For disabled buttons, use .btn-disabled for links and :disabled for <button> elements.

+

For disabled buttons, add the .disabled class to links and the disabled attribute for <button> elements.

- Primary action - Action + Primary link + Link +

+

+ +

- - + Heads up! + We use .disabled as a utility class here, similar to the common .active class, so no prefix is required.

-

Cross browser compatibility

-

In IE9, we drop the gradient on all buttons in favor of rounded corners as IE9 doesn't crop background gradients to the corners.

-

Related, IE9 jankifies disabled button elements, rendering text gray with a nasty text-shadow—unfortunately we can't fix this.

+

One class, multiple tags

+

Use the .btn class on an <a>, <button>, or <input> element.

+
+Link + + + +
+
+<a class="btn" href="">Link</a>
+<button class="btn" type="submit">
+  Button
+</button>
+<input class="btn" type="button"
+         value="Input">
+<input class="btn" type="submit"
+         value="Submit">
+
+

As a best practice, try to match the element for you context to ensure matching cross-browser rendering. If you have an input, use an <input type="submit"> for your button.

- -
- @@ -1305,148 +1376,144 @@ For example, <code>section</code> should be wrapped as inline.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
    +
  • icon-glass
  • +
  • icon-music
  • +
  • icon-search
  • +
  • icon-envelope
  • +
  • icon-heart
  • +
  • icon-star
  • +
  • icon-star-empty
  • +
  • icon-user
  • +
  • icon-film
  • +
  • icon-th-large
  • +
  • icon-th
  • +
  • icon-th-list
  • +
  • icon-ok
  • +
  • icon-remove
  • +
  • icon-zoom-in
  • +
  • icon-zoom-out
  • +
  • icon-off
  • +
  • icon-signal
  • +
  • icon-cog
  • +
  • icon-trash
  • +
  • icon-home
  • +
  • icon-file
  • +
  • icon-time
  • +
  • icon-road
  • +
  • icon-download-alt
  • +
  • icon-download
  • +
  • icon-upload
  • +
  • icon-inbox
  • +
  • icon-play-circle
  • +
  • icon-repeat
  • +
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
    +
  • icon-refresh
  • +
  • icon-list-alt
  • +
  • icon-lock
  • +
  • icon-flag
  • +
  • icon-headphones
  • +
  • icon-volume-off
  • +
  • icon-volume-down
  • +
  • icon-volume-up
  • +
  • icon-qrcode
  • +
  • icon-barcode
  • +
  • icon-tag
  • +
  • icon-tags
  • +
  • icon-book
  • +
  • icon-bookmark
  • +
  • icon-print
  • +
  • icon-camera
  • +
  • icon-font
  • +
  • icon-bold
  • +
  • icon-italic
  • +
  • icon-text-height
  • +
  • icon-text-width
  • +
  • icon-align-left
  • +
  • icon-align-center
  • +
  • icon-align-right
  • +
  • icon-align-justify
  • +
  • icon-list
  • +
  • icon-indent-left
  • +
  • icon-indent-right
  • +
  • icon-facetime-video
  • +
  • icon-picture
  • +
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
    +
  • icon-pencil
  • +
  • icon-map-marker
  • +
  • icon-adjust
  • +
  • icon-tint
  • +
  • icon-edit
  • +
  • icon-share
  • +
  • icon-check
  • +
  • icon-move
  • +
  • icon-step-backward
  • +
  • icon-fast-backward
  • +
  • icon-backward
  • +
  • icon-play
  • +
  • icon-pause
  • +
  • icon-stop
  • +
  • icon-forward
  • +
  • icon-fast-forward
  • +
  • icon-step-forward
  • +
  • icon-eject
  • +
  • icon-chevron-left
  • +
  • icon-chevron-right
  • +
  • icon-plus-sign
  • +
  • icon-minus-sign
  • +
  • icon-remove-sign
  • +
  • icon-ok-sign
  • +
  • icon-question-sign
  • +
  • icon-info-sign
  • +
  • icon-screenshot
  • +
  • icon-remove-circle
  • +
  • icon-ok-circle
  • +
  • icon-ban-circle
  • +
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
    +
  • icon-arrow-left
  • +
  • icon-arrow-right
  • +
  • icon-arrow-up
  • +
  • icon-arrow-down
  • +
  • icon-share-alt
  • +
  • icon-resize-full
  • +
  • icon-resize-small
  • +
  • icon-plus
  • +
  • icon-minus
  • +
  • icon-asterisk
  • +
  • icon-exclamation-sign
  • +
  • icon-gift
  • +
  • icon-leaf
  • +
  • icon-fire
  • +
  • icon-eye-open
  • +
  • icon-eye-close
  • +
  • icon-warning-sign
  • +
  • icon-plane
  • +
  • icon-calendar
  • +
  • icon-random
  • +
  • icon-comment
  • +
  • icon-magnet
  • +
  • icon-chevron-up
  • +
  • icon-chevron-down
  • +
  • icon-retweet
  • +
  • icon-shopping-cart
  • +
  • icon-folder-close
  • +
  • icon-folder-open
  • +
  • icon-resize-vertical
  • +
  • icon-resize-horizontal
  • +
- Heads up! Icon classes are echoed via CSS :after. In the docs, we show a light red background color on hover to hightlight the icon's size. + Heads up! Icon classes are echoed via CSS :after. In the docs, we show a light red background color on hover to highlight the icon's size.

@@ -1460,7 +1527,7 @@ For example, <code>section</code> should be wrapped as inline.

How to use

-

With v2.0.0, we have opted to use an <i> tag for all our icons, but they have no case class—only a shared prefix. To use, place the following code just about anywhere:

+

With v2.0.1, we have opted to use an <i> tag for all our icons, but they have no case class—only a shared prefix. To use, place the following code just about anywhere:

 <i class="icon-search"></i>
 
@@ -1495,7 +1562,7 @@ For example, <code>section</code> should be wrapped as inline.
- User + User
  • Labels
  • +
  • Typography
  • Thumbnails
  • Alerts
  • Progress bars
  • @@ -118,14 +119,34 @@

    Button groups

    Use button groups to join multiple buttons together as one composite component. Build them with a series of <a> or <button> elements.

    -

    You can also combine sets of <div class="btn-group"> into a <div class="btn-toolbar"> for more complex projects.

    -
    -
    +

    Best practices

    +

    We recommend the following guidelines for using button groups and toolbars:

    +
      +
    • Always use the same element in a single button group, <a> or <button>.
    • +
    • Don't mix buttons of different colors in the same button group.
    • +
    • Use icons in addition to or instead of text, but be sure include alt and title text where appropriate.
    • +
    +

    Related Button groups with dropdowns (see below) should be called out separately and always include a dropdown caret to indicate intended behavior.

    +
    +
    +

    Default example

    +

    Here's how the HTML looks for a standard button group built with anchor tag buttons:

    + +
    +<div class="btn-group">
    +  <a class="btn" href="#">1</a>
    +  <a class="btn" href="#">2</a>
    +  <a class="btn" href="#">3</a>
    +</div>
    +
    +

    Toolbar example

    +

    Combine sets of <div class="btn-group"> into a <div class="btn-toolbar"> for more complex components.

    1 @@ -142,18 +163,6 @@ 8
    -
    -
    -

    Example markup

    -

    Here's how the HTML looks for a standard button group built with anchor tag buttons:

    -
    -<div class="btn-group">
    -  <a class="btn" href="#">1</a>
    -  <a class="btn" href="#">2</a>
    -  <a class="btn" href="#">3</a>
    -</div>
    -
    -

    And with a toolbar for multiple groups:

     <div class="btn-toolbar">
       <div class="btn-group">
    @@ -239,7 +248,9 @@
                 
  • Separated link
  • -
    +
    +
    +

    Heads up! Button dropdowns require the Bootstrap dropdown plugin to function.

    Example markup

    @@ -354,9 +365,10 @@

    Powerful base class

    All nav components here—tabs, pills, and lists—share the same base markup and styles through the .nav class.

    -

    Why tabs and pills

    -

    Tabs and pills in Bootstrap are built on a <ul> with the same core HTML, a list of links. Swap between tabs or pills with only a class.

    -

    Both options are great for sub-sections of content or navigating between pages of related content.

    +

    When to use

    +

    Tabs and pills are great for sections of content or navigating between pages of related content.

    +

    Component alignment

    +

    To align nav links, use the .pull-left or .pull-right utility classes. Both classes will add a CSS float in the specified direction.

    Basic tabs

    @@ -762,7 +774,9 @@
  • Another action
  • Something else here
  • +
  • Separated link
  • +
  • One more separated link
  • @@ -801,12 +815,14 @@ </div> </div> -

    To make the navbar fixed to the top of the viewport, add .navbar-fixed-top to the outermost div, .navbar. In your CSS, you will also need to account for the overlap it causes by adding padding-top: 40px; to your <body>.

    +

    Fixed navbar

    +

    To make the navbar fixed to the top of the viewport, add .navbar-fixed-top to the outermost div, .navbar.

     <div class="navbar navbar-fixed-top">
       ...
     </div>
     
    +

    In your CSS, you will also need to account for the overlap it causes by adding 40px or more of padding to your <body>. Be sure to add this after the core Bootstrap CSS and before the optional responsive CSS.

    Brand name

    A simple link to show your brand or project name only requires an anchor tag.

    @@ -827,14 +843,14 @@
     <div class="navbar">
       <div class="navbar-inner">
         <div class="container">
    -      
    +
           <!-- .btn-navbar is used as the toggle for collapsed navbar content -->
           <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
             <span class="icon-bar"></span>
             <span class="icon-bar"></span>
             <span class="icon-bar"></span>
           </a>
    -      
    +
           <!-- Be sure to leave the brand out there if you want it shown -->
           <a class="brand" href="#">Project name</a>
     
    @@ -864,8 +880,18 @@
       <li><a href="#">Link</a></li>
     </ul>
     
    +

    You can easily add dividers to your nav links with an empty list item and a simple class. Just add this between links:

    +
    +<ul class="nav">
    +  ...
    +  <li class="divider-vertical"></li>
    +  ...
    +</ul>
    +
    +

    Component alignment

    +

    To align a nav, search form, or text, use the .pull-left or .pull-right utility classes. Both classes will add a CSS float in the specified direction.

    Adding dropdowns

    -

    Adding dropdowns to the nav is super simple, but does require the use of our javascript plugin.

    +

    Adding dropdowns to the nav is super simple, but does require the use of our javascript plugin.

     <ul class="nav">
       <li class="dropdown">
    @@ -881,7 +907,7 @@
       </li>
     </ul>
     
    -

    Get the javascript →

    +

    Get the javascript →

    @@ -1021,7 +1047,7 @@

    About pager

    -

    The pager component is a set of links for simple pagination implemenations with light markup and even lighter styles. It's great for simple sites like blogs or magazines.

    +

    The pager component is a set of links for simple pagination implementations with light markup and even lighter styles. It's great for simple sites like blogs or magazines.

    Default example

    @@ -1091,7 +1117,7 @@ Success - <span class="label label-success">New</span> + <span class="label label-success">Success</span> @@ -1124,6 +1150,55 @@ + +
    + +

    Hero unit

    +
    +
    +

    Bootstrap provides a lightweight, flexible component called a hero unit to showcase content on your site. It works well on marketing and content-heavy sites.

    +

    Markup

    +

    Wrap your content in a div like so:

    +
    +<div class="hero-unit">
    +  <h1>Heading</h1>
    +  <p>Tagline</p>
    +  <p>
    +    <a class="btn btn-primary btn-large">
    +      Learn more
    +    </a>
    +  </p>
    +</div>
    +
    +
    +
    +
    +

    Hello, world!

    +

    This is a simple hero unit, a simple jumbotron-style component for calling extra attention to featured content or information.

    +

    Learn more

    +
    +
    +
    +

    Page header

    +
    +
    +

    A simple shell for an h1 to appropratiely space out and segment sections of content on a page. It can utilize the h1's default small, element as well most other components (with additional styles).

    +
    +
    +
    +<div class="page-haeder">
    +  <h1>Example page header</h1>
    +</div>
    +
    +
    +
    +
    + + +
    @@ -1168,7 +1243,7 @@
    Thumbnail label

    Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.

    -

    Action Action

    +

    Action Action

    @@ -1178,7 +1253,7 @@
    Thumbnail label

    Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.

    -

    Action Action

    +

    Action Action

    @@ -1282,7 +1357,7 @@

    Rewritten base class

    -

    With Bootstrap 2, we've simplified the base class: .alert instead of .alert-message. We've also reduced the minimum required markup—no <p> is required by default, just the outter <div>.

    +

    With Bootstrap 2, we've simplified the base class: .alert instead of .alert-message. We've also reduced the minimum required markup—no <p> is required by default, just the outer <div>.

    Single alert message

    For a more durable component with less code, we've removed the differentiating look for block alerts, messages that come with more padding and typically more text. The class also has changed to .alert-block.


    @@ -1294,24 +1369,24 @@

    Example alerts

    Wrap your message and an optional close icon in a div with simple class.

    - × + × Warning! Best check yo self, you're not looking too good.
     <div class="alert">
    -  <a class="close">×</a>
    +  <a class="close" data-dismiss="alert">×</a>
       <strong>Warning!</strong> Best check yo self, you're not looking too good.
     </div>
     

    Easily extend the standard alert message with two optional classes: .alert-block for more padding and text controls and .alert-heading for a matching heading.

    - × + ×

    Warning!

    Best check yo self, you're not looking too good. Nulla vitae elit libero, a pharetra augue. Praesent commodo cursus magna, vel scelerisque nisl consectetur et.

     <div class="alert alert-block">
    -  <a class="close">×</a>
    +  <a class="close" data-dismiss="alert">×</a>
       <h4 class="alert-heading">Warning!</h4>
       Best check yo self, you're not...
     </div>
    @@ -1324,7 +1399,7 @@
         

    Error or danger

    - × + × Oh snap! Change a few things up and try submitting again.
    @@ -1336,7 +1411,7 @@
         

    Success

    - × + × Well done! You successfully read this important alert message.
    @@ -1348,7 +1423,7 @@
         

    Information

    - × + × Heads up! This alert needs your attention, but it's not super important.
    diff --git a/download.html b/download.html
    index 4e41341f..0475aac4 100644
    --- a/download.html
    +++ b/download.html
    @@ -7,17 +7,17 @@
         
         
     
    -    
    -    
    -
         
         
         
         
         
     
    +    
    +    
    +
         
         
         
    @@ -93,7 +93,7 @@
       
    diff --git a/examples.html b/examples.html
    index 92528767..680d4e79 100644
    --- a/examples.html
    +++ b/examples.html
    @@ -7,17 +7,17 @@
         
         
     
    -    
    -    
    -
         
         
         
         
         
     
    +    
    +    
    +
         
         
         
    diff --git a/examples/fluid.html b/examples/fluid.html
    index 7fe5df15..3c7059f9 100644
    --- a/examples/fluid.html
    +++ b/examples/fluid.html
    @@ -3,14 +3,10 @@
       
         
         Bootstrap, from Twitter
    +    
         
         
     
    -    
    -    
    -
         
         
         
         
     
    +    
    +    
    +
         
         
         
    diff --git a/examples/hero.html b/examples/hero.html
    index 7d60d1a4..ee64646f 100644
    --- a/examples/hero.html
    +++ b/examples/hero.html
    @@ -3,14 +3,10 @@
       
         
         Bootstrap, from Twitter
    +    
         
         
     
    -    
    -    
    -
         
         
         
         
     
    +    
    +    
    +
         
         
         
    diff --git a/examples/starter-template.html b/examples/starter-template.html
    index c8b2a09c..31cc57cf 100644
    --- a/examples/starter-template.html
    +++ b/examples/starter-template.html
    @@ -3,14 +3,10 @@
       
         
         Bootstrap, from Twitter
    +    
         
         
     
    -    
    -    
    -
         
         
         
         
     
    +    
    +    
    +
         
         
         
    diff --git a/index.html b/index.html
    index 01897334..73ef2f9c 100644
    --- a/index.html
    +++ b/index.html
    @@ -7,17 +7,17 @@
         
         
     
    -    
    -    
    -
         
         
         
         
         
     
    +    
    +    
    +
         
         
         
    @@ -89,18 +89,17 @@
       
    -<div class="modal">
    +<div class="modal" id="myModal">
       <div class="modal-header">
         <a class="close" data-dismiss="modal">×</a>
         <h3>Modal header</h3>
    @@ -624,11 +630,11 @@ $('#myModal').on('hidden', function () {
               

    Markup

    You can activate a tab or pill navigation without writing any javascript by simply specifying data-toggle="tab" or data-toggle="pill" on an element.

    -<ul class="tabs">
    +<ul class="nav nav-tabs">
       <li><a href="#home" data-toggle="tab">Home</a></li>
       <li><a href="#profile" data-toggle="tab">Profile</a></li>
       <li><a href="#messages" data-toggle="tab">Messages</a></li>
    -  <li><a href="#ettings" data-toggle="tab">Settings</a></li>
    +  <li><a href="#settings" data-toggle="tab">Settings</a></li>
     </ul>

    Methods

    $().tab

    @@ -636,7 +642,7 @@ $('#myModal').on('hidden', function () { Activates a tab element and content container. Tab should have either a `data-target` or an `href` targeting a container node in the dom.

    -<ul class="tabs">
    +<ul class="nav nav-tabs">
       <li class="active"><a href="#home">Home</a></li>
       <li><a href="#profile">Profile</a></li>
       <li><a href="#messages">Messages</a></li>
    @@ -694,14 +700,14 @@ $('a[data-toggle="tab"]').on('shown', function (e) {
           

    About Tooltips

    -

    Inspired by the excellent jQuery.tipsy plugin written by Jason Frame; Tooltips are an updated version, which don't rely on images, uss css3 for animations, and data-attributes for local title storage.

    +

    Inspired by the excellent jQuery.tipsy plugin written by Jason Frame; Tooltips are an updated version, which don't rely on images, use css3 for animations, and data-attributes for local title storage.

    Download file

    Example use of Tooltips

    Hover over the links below to see tooltips:

    -

    Tight pants next level keffiyeh you probably haven't heard of them. Photo booth beard raw denim letterpress vegan messenger bag stumptown. Farm-to-table seitan, mcsweeney's fixie sustainable quinoa 8-bit american apparel have a terry richardson vinyl chambray. Beard stumptown, cardigans banh mi lomo thundercats. Tofu biodiesel williamsburg marfa, four loko mcsweeney's cleanse vegan chambray. A really ironic artisan whatever keytar, scenester farm-to-table banksy Austin twitter handle freegan cred raw denim single-origin coffee viral. +

    Tight pants next level keffiyeh you probably haven't heard of them. Photo booth beard raw denim letterpress vegan messenger bag stumptown. Farm-to-table seitan, mcsweeney's fixie sustainable quinoa 8-bit american apparel have a terry richardson vinyl chambray. Beard stumptown, cardigans banh mi lomo thundercats. Tofu biodiesel williamsburg marfa, four loko mcsweeney's cleanse vegan chambray. A really ironic artisan whatever keytar, scenester farm-to-table banksy Austin twitter handle freegan cred raw denim single-origin coffee viral.


    @@ -727,7 +733,7 @@ $('a[data-toggle="tab"]').on('shown', function (e) { placement - string + string|function 'top' how to position the tooltip - top | bottom | left | right @@ -767,6 +773,9 @@ $('a[data-toggle="tab"]').on('shown', function (e) {

    Markup

    For performance reasons, the Tooltip and Popover data-apis are opt in. If you would like to use them just specify a selector option.

    +
    +<a href="#" rel="tooltip" title="first tooltip">hover over me</a>
    +

    Methods

    $().tooltip(options)

    Attaches a tooltip handler to an element collection.

    @@ -795,7 +804,7 @@ $('a[data-toggle="tab"]').on('shown', function (e) {

    About popovers

    Add small overlays of content, like those on the iPad, to any element for housing secondary information.

    -

    * Requires Tooltip to be included

    +

    * Requires Tooltip to be included

    Download file
    @@ -827,7 +836,7 @@ $('a[data-toggle="tab"]').on('shown', function (e) { placement - string + string|function 'right' how to position the popover - top | bottom | left | right @@ -917,13 +926,13 @@ $('a[data-toggle="tab"]').on('shown', function (e) {

    Oh snap! You got an error!

    Change this and that and try again. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum.

    - Take this action Or do this + Take this action Or do this


    -

    Using bootstrap-alerts.js

    +

    Using bootstrap-alert.js

    Enable dismissal of an alert via javascript:

    -
    $(".alert-message").alert()
    +
    $(".alert").alert()

    Markup

    Just add data-dismiss="alert" to your close button to automatically give an alert close functionality.

    <a class="close" data-dismiss="alert" href="#">&times;</a>
    @@ -932,7 +941,7 @@ $('a[data-toggle="tab"]').on('shown', function (e) {

    Wraps all alerts with close functionality. To have your alerts animate out when closed, make sure they have the .fade and .in class already applied to them.

    .alert('close')

    Closes an alert.

    -
    $(".alert-message").alert('close')
    +
    $(".alert").alert('close')

    Events

    Bootstrap's alert class exposes a few events for hooking into alert functionality.

    @@ -1042,7 +1051,7 @@ $('#my-alert').bind('closed', function () {

    Methods

    $().button('toggle')

    -

    Toggles push state. Gives btn the look that it's been activated.

    +

    Toggles push state. Gives btn the look that it hass been activated.

    Heads up! You can enable auto toggling of a button by using the data-toggle attribute. @@ -1145,7 +1154,7 @@ $('#my-alert').bind('closed', function () {
    - + @@ -1295,10 +1304,12 @@ $('#myCollapsible').on('hidden', function () {

    Markup

    Data attributes are integral to the carousel plugin. Check out the example code below for the various markup types.

    -<div class="carousel">
    +<div id="myCarousel" class="carousel">
       <!-- Carousel items -->
       <div class="carousel-inner">
    -    ...
    +    <div class="active item">…</div>
    +    <div class="item">…</div>
    +    <div class="item">…</div>
       </div>
       <!-- Carousel nav -->
       <a class="carousel-control left" href="#myCarousel" data-slide="prev">&lsaquo;</a>
    @@ -1339,7 +1350,7 @@ $('.myCarousel').carousel({
                  
    - +
    parent selector falseIf selector then all collapsible elements under the specified parent will be closed when this collasabile item is shown. (similar to traditional accordion behavior)If selector then all collapsible elements under the specified parent will be closed when this collapsible item is shown. (similar to traditional accordion behavior)
    toggle
    slidThis event is fired when the carousel has completed it's slide transition.This event is fired when the carousel has completed its slide transition.
    @@ -1422,7 +1433,7 @@ $('.myCarousel').carousel({

    Methods

    .typeahead(options)

    -

    Initializes an input with a typahead.

    +

    Initializes an input with a typeahead.

    diff --git a/less.html b/less.html index 739ebf2c..9f540dd0 100644 --- a/less.html +++ b/less.html @@ -7,17 +7,17 @@ - - - + + + @@ -100,7 +100,7 @@

    Why LESS?

    -

    Bootstrap is made with LESS at it's core, a dynamic stylesheet language created by our good friend, Alexis Sellier. It makes developing systems-based CSS faster, easier, and more fun.

    +

    Bootstrap is made with LESS at its core, a dynamic stylesheet language created by our good friend, Alexis Sellier. It makes developing systems-based CSS faster, easier, and more fun.

    What's included?

    @@ -123,7 +123,7 @@

    Operations

    -

    Make your grid, leading, and more super flexible by doing the math on the fly with operations. Multiple, divide, add, and subtract your way to CSS sanity.

    +

    Make your grid, leading, and more super flexible by doing the math on the fly with operations. Multiply, divide, add, and subtract your way to CSS sanity.

    @@ -348,13 +348,13 @@ @warningText - #f3edd2 - + #c09853 + @warningBackground - #c09853 - + #f3edd2 + @errorText @@ -604,7 +604,7 @@ .scale() @ratio - Scale an element to n times it's original size + Scale an element to n times its original size .translate() @@ -614,7 +614,7 @@ .background-clip() @clip - Crop the backgroud of an element (useful for border-radius) + Crop the background of an element (useful for border-radius) .background-size() @@ -717,8 +717,8 @@

    Node with makefile

    -

    Install the LESS command line compiler with npm by running the following command:

    -
    $ npm install less
    +

    Install the LESS command line compiler globally with npm by running the following command:

    +
    $ npm install -g less

    Once installed just run make from the root of your bootstrap directory and you're all set.

    Additionally, if you have watchr installed, you may run make watch to have bootstrap automatically rebuilt every time you edit a file in the bootstrap lib (this isn't required, just a convenience method).

    diff --git a/scaffolding.html b/scaffolding.html index cc89b593..f2a58a29 100644 --- a/scaffolding.html +++ b/scaffolding.html @@ -7,17 +7,17 @@ - - - + + + @@ -81,7 +81,9 @@

    Bootstrap is built on a responsive 12-column grid. We've also included fixed- and fluid-width layouts based on that system.

    + -

    Grid customization

    + + + +
    + + +

    Fluid columns

    +
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    +
    +
    4
    +
    4
    +
    4
    +
    +
    +
    4
    +
    8
    +
    +
    +
    6
    +
    6
    +
    +
    +
    12
    +
    + +
    +
    +

    Percents, not pixels

    +

    The fluid grid system uses percents for column widths instead of fixed pixels. It also has the same responsive variations as our fixed grid system, ensuring proper proportions for key screen resolutions and devices.

    +
    +
    +

    Fluid rows

    +

    Make any row fluid simply by changing .row to .row-fluid. The columns stay the exact same, making it super straightforward to flip between fixed and fluid layouts.

    +
    +
    +

    Markup

    +
    +<div class="row-fluid">
    +  <div class="span4">...</div>
    +  <div class="span8">...</div>
    +</div>
    +
    +
    +
    + +

    Fluid nesting

    +
    +
    +

    Nesting with fluid grids is a bit different: the number of nested columns doesn't need to match the parent. Instead, your columns are reset at each level because each row takes up 100% of the parent column.

    +
    +
    + Fluid 12 +
    +
    + Fluid 6 +
    +
    + Fluid 6 +
    +
    +
    +
    +
    +
    +
    +<div class="row-fluid">
    +  <div class="span12">
    +    Level 1 of column
    +    <div class="row-fluid">
    +      <div class="span6">Level 2</div>
    +      <div class="span6">Level 2</div>
    +    </div>
    +  </div>
    +</div>
    +
    +
    +
    + +
    + + + + +
    + @@ -242,7 +348,7 @@

    How to customize

    -

    Modifying the grid means changing the three @grid* variables and recompiling Bootstrap. Change the grid variables in variables.less and use one of the four ways documented to recompile. If you're adding more columns, be sure to add the CSS for those in grid.less.

    +

    Modifying the grid means changing the three @grid* variables and recompiling Bootstrap. Change the grid variables in variables.less and use one of the four ways documented to recompile. If you're adding more columns, be sure to add the CSS for those in grid.less.

    Staying responsive

    @@ -265,8 +371,8 @@

    Fixed layout

    The default and simple 940px-wide, centered layout for just about any website or page provided by a single <div class="container">.

    -
    -
    +
    +
     <body>
    @@ -279,9 +385,9 @@
         

    Fluid layout

    <div class="container-fluid"> gives flexible page structure, min- and max-widths, and a left-hand sidebar. It's great for apps and docs.

    -
    -
    -
    +
    +
    +
     <div class="container-fluid">
    @@ -315,7 +421,7 @@
         

    Supported devices

    -

    Bootstrap supports a handful of media queries to help make your projects more appropriate on different devices and screen resolutions. Here's what's included:

    +

    Bootstrap supports a handful of media queries in a single file to help make your projects more appropriate on different devices and screen resolutions. Here's what's included:

    @@ -338,8 +444,8 @@ - - + + @@ -357,6 +463,10 @@
    Landscape tablets768px to 980px44px768px to 979px42px 20px
    +

    Requires meta tag

    +

    To ensure devices display responsive pages properly, include the viewport meta tag.

    +
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    +

    What they do

    Media queries allow for custom CSS based on a number of conditions—ratios, widths, display type, etc—but usually focuses around min-width and max-width.

      @@ -377,7 +487,7 @@
      1. Use the compiled responsive version, bootstrap-responsive.css
      2. Add @import "responsive.less" and recompile Bootstrap
      3. -
      4. Modify and recompile responsive.less as a separate
      5. +
      6. Modify and recompile responsive.less as a separate file

      Why not just include it? Truth be told, not everything needs to be responsive. Instead of encouraging developers to remove this feature, we figure it best to enable it.

    diff --git a/templates/layout.mustache b/templates/layout.mustache index 98421b18..832983e1 100644 --- a/templates/layout.mustache +++ b/templates/layout.mustache @@ -2,22 +2,22 @@ - {{_i}}Bootstrap, from Twitter{{/i}} + Bootstrap, from Twitter - - - + + + @@ -38,7 +38,7 @@ - {{_i}}Bootstrap{{/i}} + Bootstrap

    Basic block

    -

    {{_i}}Use <pre> for multiple lines of code. Be sure to turn any carets into their unicode characters for proper rendering.{{/i}}

    +

    {{_i}}Use <pre> for multiple lines of code. Be sure to escape any angle brackets in the code for proper rendering.{{/i}}

     <p>{{_i}}Sample text here...{{/i}}</p>
     
    @@ -309,6 +309,7 @@ </pre>

    {{_i}}Note: Be sure to keep code within <pre> tags as close to the left as possible; it will render all tabs.{{/i}}

    +

    {{_i}}You may optionally add the .pre-scrollable class which will set a max-height of 350px and provide a y-axis scrollbar.{{/i}}

    Google Prettify

    @@ -454,7 +455,7 @@ .table-bordered - {{_i}}Rounds corners and adds outter border{{/i}} + {{_i}}Rounds corners and adds outer border{{/i}} {{_i}}Zebra-stripe{{/i}} @@ -776,9 +777,9 @@

    {{_i}}Example forms using just form controls, no extra markup{{/i}}

    -

    {{_i}}Basic form{{/i}}

    +

    {{_i}}Basic form{{/i}}

    {{_i}}With v2.0, we have lighter and smarter defaults for form styles. No extra markup, just form controls.{{/i}}

    @@ -790,11 +791,22 @@ +
    +<form class="well">
    +  <label>{{_i}}Label name{{/i}}</label>
    +  <input type="text" class="span3" placeholder="{{_i}}Type something…{{/i}}">
    +  <span class="help-inline">Associated help text!</span>
    +  <label class="checkbox">
    +    <input type="checkbox"> {{_i}}Check me out{{/i}}
    +  </label>
    +  <button type="submit" class="btn">{{_i}}Submit{{/i}}</button>
    +</form>
    +
    -

    {{_i}}Search form{{/i}}

    +

    {{_i}}Search form{{/i}}

    {{_i}}Reflecting default WebKit styles, just add .form-search for extra rounded search fields.{{/i}}

    @@ -802,19 +814,35 @@ +
    +<form class="well form-search">
    +  <input type="text" class="input-medium search-query">
    +  <button type="submit" class="btn">{{_i}}Search{{/i}}</button>
    +</form>
    +
    -

    {{_i}}Inline form{{/i}}

    +

    {{_i}}Inline form{{/i}}

    {{_i}}Inputs are block level to start. For .form-inline and .form-horizontal, we use inline-block.{{/i}}

    - +
    +<form class="well form-inline">
    +  <input type="text" class="input-small" placeholder="{{_i}}Email{{/i}}">
    +  <input type="password" class="input-small" placeholder="{{_i}}Password{{/i}}">
    +  <button type="submit" class="btn">{{_i}}Go{{/i}}</button>
    +</form>
    +
    @@ -880,10 +908,26 @@
    - +
    +

    {{_i}}Example markup{{/i}}

    +

    {{_i}}Given the above example form layout, here's the markup associated with the first input and control group. The .control-group, .control-label, and .controls classes are all required for styling.{{/i}}

    +
    +<form class="form-horizontal">
    +  <fieldset>
    +    <legend>{{_i}}Legend text{{/i}}</legend>
    +    <div class="control-group">
    +      <label class="control-label" for="input01">{{_i}}Text input{{/i}}</label>
    +      <div class="controls">
    +        <input type="text" class="input-xlarge" id="input01">
    +        <p class="help-block">{{_i}}Supporting help text{{/i}}</p>
    +      </div>
    +    </div>
    +  </fieldset>
    +</form>
    +

    {{_i}}What's included{{/i}}

    @@ -938,9 +982,9 @@
    - +
    - + {{_i}}Something may have gone wrong{{/i}}
    @@ -952,9 +996,9 @@
    - +
    - + {{_i}}Woohoo!{{/i}}
    @@ -973,14 +1017,14 @@
    - +

    {{_i}}Redesigned browser states{{/i}}

    -

    {{_i}}Bootstrap features styles for browser-supported focused and disabled states. We remove the default Webkit outline and apply a box-shadow in it's place for :focus.{{/i}}

    +

    {{_i}}Bootstrap features styles for browser-supported focused and disabled states. We remove the default Webkit outline and apply a box-shadow in its place for :focus.{{/i}}


    {{_i}}Form validation{{/i}}

    {{_i}}It also includes validation styles for errors, warnings, and success. To use, add the error class to the surrounding .control-group.{{/i}}

    @@ -1001,7 +1045,7 @@
    {{_i}}Extending form controls{{/i}}
    - +
    @@ -1030,6 +1074,15 @@

    {{_i}}Use the same .span* classes from the grid system for input sizes.{{/i}}

    +
    + +
    + + + +

    {{_i}}You may also use static classes that don't map to the grid, adapt to the responsive CSS styles, or account for varying types of controls (e.g., input vs. select).{{/i}}

    +
    +
    @@ -1097,7 +1150,7 @@
    - +
    @@ -1137,34 +1190,39 @@ - {{_i}}Default{{/i}} + .btn {{_i}}Standard gray button with gradient{{/i}} - {{_i}}Primary{{/i}} + .btn-primary {{_i}}Provides extra visual weight and identifies the primary action in a set of buttons{{/i}} - {{_i}}Info{{/i}} + .btn-info {{_i}}Used as an alternate to the default styles{{/i}} - {{_i}}Success{{/i}} + .btn-success {{_i}}Indicates a successful or positive action{{/i}} - {{_i}}Warning{{/i}} + .btn-warning {{_i}}Indicates caution should be taken with this action{{/i}} - {{_i}}Danger{{/i}} + .btn-danger {{_i}}Indicates a dangerous or potentially negative action{{/i}} + + + + .btn-inverse + {{_i}}Alternate dark gray button, not tied to a semantic action or use{{/i}} @@ -1173,50 +1231,63 @@

    {{_i}}Buttons for actions{{/i}}

    {{_i}}As a convention, buttons should only be used for actions while hyperlinks are to be used for objects. For instance, "Download" should be a button while "recent activity" should be a link.{{/i}}

    +

    {{_i}}Button styles can be applied to anything with the .btn class applied. However, typically you'll want to apply these to only <a> and <button> elements.{{/i}}

    +

    {{_i}}Cross browser compatibility{{/i}}

    +

    {{_i}}IE9 doesn't crop background gradients on rounded corners, so we remove it. Related, IE9 jankifies disabled button elements, rendering text gray with a nasty text-shadow that we cannot fix.{{/i}}

    -
    -

    {{_i}}For anchors and forms{{/i}}

    -

    {{_i}}Button styles can be applied to anything with the .btn applied. However, typically you'll want to apply these to only <a> and <button> elements.{{/i}}

    -
    -
    -

    {{_i}}Note: All buttons must include the .btn class. Button styles should be applied to <button> and <a> elements for consistency.{{/i}}

    -
    -
    - -

    {{_i}}Multiple sizes{{/i}}

    -

    {{_i}}Fancy larger or smaller buttons? Have at it!{{/i}}

    +

    {{_i}}Fancy larger or smaller buttons? Add .btn-large, .btn-small, or .btn-mini for two additional sizes.{{/i}}

    - {{_i}}Primary action{{/i}} - {{_i}}Action{{/i}} + +

    - {{_i}}Primary action{{/i}} - {{_i}}Action{{/i}} + +

    -
    -
    +

    + + +

    +

    {{_i}}Disabled state{{/i}}

    -

    {{_i}}For disabled buttons, use .btn-disabled for links and :disabled for <button> elements.{{/i}}

    +

    {{_i}}For disabled buttons, add the .disabled class to links and the disabled attribute for <button> elements.{{/i}}

    - {{_i}}Primary action{{/i}} - {{_i}}Action{{/i}} + {{_i}}Primary link{{/i}} + {{_i}}Link{{/i}} +

    +

    + +

    - - + {{_i}}Heads up!{{/i}} + {{_i}}We use .disabled as a utility class here, similar to the common .active class, so no prefix is required.{{/i}}

    -

    Cross browser compatibility

    -

    In IE9, we drop the gradient on all buttons in favor of rounded corners as IE9 doesn't crop background gradients to the corners.

    -

    Related, IE9 jankifies disabled button elements, rendering text gray with a nasty text-shadow—unfortunately we can't fix this.

    +

    {{_i}}One class, multiple tags{{/i}}

    +

    {{_i}}Use the .btn class on an <a>, <button>, or <input> element.{{/i}}

    +
    +{{_i}}Link{{/i}} + + + +
    +
    +<a class="btn" href="">{{_i}}Link{{/i}}</a>
    +<button class="btn" type="submit">
    +  {{_i}}Button{{/i}}
    +</button>
    +<input class="btn" type="button"
    +         value="{{_i}}Input{{/i}}">
    +<input class="btn" type="submit"
    +         value="{{_i}}Submit{{/i}}">
    +
    +

    {{_i}}As a best practice, try to match the element for you context to ensure matching cross-browser rendering. If you have an input, use an <input type="submit"> for your button.{{/i}}

    - -
    - @@ -1229,148 +1300,144 @@
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +
      +
    • icon-glass
    • +
    • icon-music
    • +
    • icon-search
    • +
    • icon-envelope
    • +
    • icon-heart
    • +
    • icon-star
    • +
    • icon-star-empty
    • +
    • icon-user
    • +
    • icon-film
    • +
    • icon-th-large
    • +
    • icon-th
    • +
    • icon-th-list
    • +
    • icon-ok
    • +
    • icon-remove
    • +
    • icon-zoom-in
    • +
    • icon-zoom-out
    • +
    • icon-off
    • +
    • icon-signal
    • +
    • icon-cog
    • +
    • icon-trash
    • +
    • icon-home
    • +
    • icon-file
    • +
    • icon-time
    • +
    • icon-road
    • +
    • icon-download-alt
    • +
    • icon-download
    • +
    • icon-upload
    • +
    • icon-inbox
    • +
    • icon-play-circle
    • +
    • icon-repeat
    • +
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +
      +
    • icon-refresh
    • +
    • icon-list-alt
    • +
    • icon-lock
    • +
    • icon-flag
    • +
    • icon-headphones
    • +
    • icon-volume-off
    • +
    • icon-volume-down
    • +
    • icon-volume-up
    • +
    • icon-qrcode
    • +
    • icon-barcode
    • +
    • icon-tag
    • +
    • icon-tags
    • +
    • icon-book
    • +
    • icon-bookmark
    • +
    • icon-print
    • +
    • icon-camera
    • +
    • icon-font
    • +
    • icon-bold
    • +
    • icon-italic
    • +
    • icon-text-height
    • +
    • icon-text-width
    • +
    • icon-align-left
    • +
    • icon-align-center
    • +
    • icon-align-right
    • +
    • icon-align-justify
    • +
    • icon-list
    • +
    • icon-indent-left
    • +
    • icon-indent-right
    • +
    • icon-facetime-video
    • +
    • icon-picture
    • +
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +
      +
    • icon-pencil
    • +
    • icon-map-marker
    • +
    • icon-adjust
    • +
    • icon-tint
    • +
    • icon-edit
    • +
    • icon-share
    • +
    • icon-check
    • +
    • icon-move
    • +
    • icon-step-backward
    • +
    • icon-fast-backward
    • +
    • icon-backward
    • +
    • icon-play
    • +
    • icon-pause
    • +
    • icon-stop
    • +
    • icon-forward
    • +
    • icon-fast-forward
    • +
    • icon-step-forward
    • +
    • icon-eject
    • +
    • icon-chevron-left
    • +
    • icon-chevron-right
    • +
    • icon-plus-sign
    • +
    • icon-minus-sign
    • +
    • icon-remove-sign
    • +
    • icon-ok-sign
    • +
    • icon-question-sign
    • +
    • icon-info-sign
    • +
    • icon-screenshot
    • +
    • icon-remove-circle
    • +
    • icon-ok-circle
    • +
    • icon-ban-circle
    • +
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    +
      +
    • icon-arrow-left
    • +
    • icon-arrow-right
    • +
    • icon-arrow-up
    • +
    • icon-arrow-down
    • +
    • icon-share-alt
    • +
    • icon-resize-full
    • +
    • icon-resize-small
    • +
    • icon-plus
    • +
    • icon-minus
    • +
    • icon-asterisk
    • +
    • icon-exclamation-sign
    • +
    • icon-gift
    • +
    • icon-leaf
    • +
    • icon-fire
    • +
    • icon-eye-open
    • +
    • icon-eye-close
    • +
    • icon-warning-sign
    • +
    • icon-plane
    • +
    • icon-calendar
    • +
    • icon-random
    • +
    • icon-comment
    • +
    • icon-magnet
    • +
    • icon-chevron-up
    • +
    • icon-chevron-down
    • +
    • icon-retweet
    • +
    • icon-shopping-cart
    • +
    • icon-folder-close
    • +
    • icon-folder-open
    • +
    • icon-resize-vertical
    • +
    • icon-resize-horizontal
    • +
    - {{_i}}Heads up! Icon classes are echoed via CSS :after. In the docs, we show a light red background color on hover to hightlight the icon's size.{{/i}} + {{_i}}Heads up! Icon classes are echoed via CSS :after. In the docs, we show a light red background color on hover to highlight the icon's size.{{/i}}

    @@ -1384,7 +1451,7 @@

    {{_i}}How to use{{/i}}

    -

    {{_i}}With v2.0.0, we have opted to use an <i> tag for all our icons, but they have no case class—only a shared prefix. To use, place the following code just about anywhere:{{/i}}

    +

    {{_i}}With v2.0.1, we have opted to use an <i> tag for all our icons, but they have no case class—only a shared prefix. To use, place the following code just about anywhere:{{/i}}

     <i class="icon-search"></i>
     
    @@ -1419,7 +1486,7 @@
    - {{_i}}User{{/i}} + {{_i}}User{{/i}}
  • {{_i}}Labels{{/i}}
  • +
  • {{_i}}Typography{{/i}}
  • {{_i}}Thumbnails{{/i}}
  • {{_i}}Alerts{{/i}}
  • {{_i}}Progress bars{{/i}}
  • @@ -42,14 +43,34 @@

    {{_i}}Button groups{{/i}}

    {{_i}}Use button groups to join multiple buttons together as one composite component. Build them with a series of <a> or <button> elements.{{/i}}

    -

    {{_i}}You can also combine sets of <div class="btn-group"> into a <div class="btn-toolbar"> for more complex projects.{{/i}}

    -
    -
    +

    {{_i}}Best practices{{/i}}

    +

    {{_i}}We recommend the following guidelines for using button groups and toolbars:{{/i}}

    +
      +
    • {{_i}}Always use the same element in a single button group, <a> or <button>.{{/i}}
    • +
    • {{_i}}Don't mix buttons of different colors in the same button group.{{/i}}
    • +
    • {{_i}}Use icons in addition to or instead of text, but be sure include alt and title text where appropriate.{{/i}}
    • +
    +

    {{_i}}Related Button groups with dropdowns (see below) should be called out separately and always include a dropdown caret to indicate intended behavior.{{/i}}

    +
    +
    +

    {{_i}}Default example{{/i}}

    +

    {{_i}}Here's how the HTML looks for a standard button group built with anchor tag buttons:{{/i}}

    + +
    +<div class="btn-group">
    +  <a class="btn" href="#">1</a>
    +  <a class="btn" href="#">2</a>
    +  <a class="btn" href="#">3</a>
    +</div>
    +
    +

    {{_i}}Toolbar example{{/i}}

    +

    {{_i}}Combine sets of <div class="btn-group"> into a <div class="btn-toolbar"> for more complex components.{{/i}}

    1 @@ -66,18 +87,6 @@ 8
    -
    -
    -

    {{_i}}Example markup{{/i}}

    -

    {{_i}}Here's how the HTML looks for a standard button group built with anchor tag buttons:{{/i}}

    -
    -<div class="btn-group">
    -  <a class="btn" href="#">1</a>
    -  <a class="btn" href="#">2</a>
    -  <a class="btn" href="#">3</a>
    -</div>
    -
    -

    {{_i}}And with a toolbar for multiple groups:{{/i}}

     <div class="btn-toolbar">
       <div class="btn-group">
    @@ -163,7 +172,9 @@
                 
  • {{_i}}Separated link{{/i}}
  • -
    +
    +
    +

    {{_i}}Heads up!{{/i}} {{_i}}Button dropdowns require the Bootstrap dropdown plugin to function.{{/i}}

    {{_i}}Example markup{{/i}}

    @@ -278,9 +289,10 @@

    {{_i}}Powerful base class{{/i}}

    {{_i}}All nav components here—tabs, pills, and lists—share the same base markup and styles through the .nav class.{{/i}}

    -

    {{_i}}Why tabs and pills{{/i}}

    -

    {{_i}}Tabs and pills in Bootstrap are built on a <ul> with the same core HTML, a list of links. Swap between tabs or pills with only a class.{{/i}}

    -

    {{_i}}Both options are great for sub-sections of content or navigating between pages of related content.{{/i}}

    +

    {{_i}}When to use{{/i}}

    +

    {{_i}}Tabs and pills are great for sections of content or navigating between pages of related content.{{/i}}

    +

    {{_i}}Component alignment{{/i}}

    +

    {{_i}}To align nav links, use the .pull-left or .pull-right utility classes. Both classes will add a CSS float in the specified direction.{{/i}}

    {{_i}}Basic tabs{{/i}}

    @@ -686,7 +698,9 @@
  • {{_i}}Another action{{/i}}
  • {{_i}}Something else here{{/i}}
  • +
  • {{_i}}Separated link{{/i}}
  • +
  • {{_i}}One more separated link{{/i}}
  • @@ -725,12 +739,14 @@ </div> </div> -

    {{_i}}To make the navbar fixed to the top of the viewport, add .navbar-fixed-top to the outermost div, .navbar. In your CSS, you will also need to account for the overlap it causes by adding padding-top: 40px; to your <body>.{{/i}}

    +

    {{_i}}Fixed navbar{{/i}}

    +

    {{_i}}To make the navbar fixed to the top of the viewport, add .navbar-fixed-top to the outermost div, .navbar.{{/i}}

     <div class="navbar navbar-fixed-top">
       ...
     </div>
     
    +

    {{_i}}In your CSS, you will also need to account for the overlap it causes by adding 40px or more of padding to your <body>. Be sure to add this after the core Bootstrap CSS and before the optional responsive CSS.{{/i}}

    {{_i}}Brand name{{/i}}

    {{_i}}A simple link to show your brand or project name only requires an anchor tag.{{/i}}

    @@ -751,14 +767,14 @@
     <div class="navbar">
       <div class="navbar-inner">
         <div class="container">
    -      
    +
           <!-- {{_i}}.btn-navbar is used as the toggle for collapsed navbar content{{/i}} -->
           <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
             <span class="icon-bar"></span>
             <span class="icon-bar"></span>
             <span class="icon-bar"></span>
           </a>
    -      
    +
           <!-- {{_i}}Be sure to leave the brand out there if you want it shown{{/i}} -->
           <a class="brand" href="#">{{_i}}Project name{{/i}}</a>
     
    @@ -788,8 +804,18 @@
       <li><a href="#">{{_i}}Link{{/i}}</a></li>
     </ul>
     
    +

    {{_i}}You can easily add dividers to your nav links with an empty list item and a simple class. Just add this between links:{{/i}}

    +
    +<ul class="nav">
    +  ...
    +  <li class="divider-vertical"></li>
    +  ...
    +</ul>
    +
    +

    {{_i}}Component alignment{{/i}}

    +

    {{_i}}To align a nav, search form, or text, use the .pull-left or .pull-right utility classes. Both classes will add a CSS float in the specified direction.{{/i}}

    {{_i}}Adding dropdowns{{/i}}

    -

    {{_i}}Adding dropdowns to the nav is super simple, but does require the use of our javascript plugin.{{/i}}

    +

    {{_i}}Adding dropdowns to the nav is super simple, but does require the use of our javascript plugin.{{/i}}

     <ul class="nav">
       <li class="dropdown">
    @@ -805,7 +831,7 @@
       </li>
     </ul>
     
    -

    {{_i}}Get the javascript →{{/i}}

    +

    {{_i}}Get the javascript →{{/i}}

    @@ -945,7 +971,7 @@

    {{_i}}About pager{{/i}}

    -

    {{_i}}The pager component is a set of links for simple pagination implemenations with light markup and even lighter styles. It's great for simple sites like blogs or magazines.{{/i}}

    +

    {{_i}}The pager component is a set of links for simple pagination implementations with light markup and even lighter styles. It's great for simple sites like blogs or magazines.{{/i}}

    {{_i}}Default example{{/i}}

    @@ -1015,7 +1041,7 @@ {{_i}}Success{{/i}} - <span class="label label-success">{{/_i}}New{{/i}}</span> + <span class="label label-success">{{/_i}}Success{{/i}}</span> @@ -1048,6 +1074,55 @@ + +
    + +

    {{_i}}Hero unit{{/i}}

    +
    +
    +

    {{_i}}Bootstrap provides a lightweight, flexible component called a hero unit to showcase content on your site. It works well on marketing and content-heavy sites.{{/i}}

    +

    {{_i}}Markup{{/i}}

    +

    {{_i}}Wrap your content in a div like so:{{/i}}

    +
    +<div class="hero-unit">
    +  <h1>{{_i}}Heading{{/i}}</h1>
    +  <p>{{_i}}Tagline{{/i}}</p>
    +  <p>
    +    <a class="btn btn-primary btn-large">
    +      {{_i}}Learn more{{/i}}
    +    </a>
    +  </p>
    +</div>
    +
    +
    +
    +
    +

    {{_i}}Hello, world!{{/i}}

    +

    {{_i}}This is a simple hero unit, a simple jumbotron-style component for calling extra attention to featured content or information.{{/i}}

    +

    {{_i}}Learn more{{/i}}

    +
    +
    +
    +

    {{_i}}Page header{{/i}}

    +
    +
    +

    {{_i}}A simple shell for an h1 to appropratiely space out and segment sections of content on a page. It can utilize the h1's default small, element as well most other components (with additional styles).{{/i}}

    +
    +
    +
    +<div class="page-haeder">
    +  <h1>{{_i}}Example page header{{/i}}</h1>
    +</div>
    +
    +
    +
    +
    + + +
    @@ -1092,7 +1167,7 @@
    {{_i}}Thumbnail label{{/i}}

    Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.

    -

    {{_i}}Action{{/i}} {{_i}}Action{{/i}}

    +

    {{_i}}Action{{/i}} {{_i}}Action{{/i}}

    @@ -1102,7 +1177,7 @@
    {{_i}}Thumbnail label{{/i}}

    Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.

    -

    {{_i}}Action{{/i}} {{_i}}Action{{/i}}

    +

    {{_i}}Action{{/i}} {{_i}}Action{{/i}}

    @@ -1206,7 +1281,7 @@

    {{_i}}Rewritten base class{{/i}}

    -

    {{_i}}With Bootstrap 2, we've simplified the base class: .alert instead of .alert-message. We've also reduced the minimum required markup—no <p> is required by default, just the outter <div>.{{/i}}

    +

    {{_i}}With Bootstrap 2, we've simplified the base class: .alert instead of .alert-message. We've also reduced the minimum required markup—no <p> is required by default, just the outer <div>.{{/i}}

    {{_i}}Single alert message{{/i}}

    {{_i}}For a more durable component with less code, we've removed the differentiating look for block alerts, messages that come with more padding and typically more text. The class also has changed to .alert-block.{{/i}}


    @@ -1218,24 +1293,24 @@

    {{_i}}Example alerts{{/i}}

    {{_i}}Wrap your message and an optional close icon in a div with simple class.{{/i}}

    - × + × {{_i}}Warning!{{/i}} {{_i}}Best check yo self, you're not looking too good.{{/i}}
     <div class="alert">
    -  <a class="close">×</a>
    +  <a class="close" data-dismiss="alert">×</a>
       <strong>{{_i}}Warning!{{/i}}</strong> {{_i}}Best check yo self, you're not looking too good.{{/i}}
     </div>
     

    {{_i}}Easily extend the standard alert message with two optional classes: .alert-block for more padding and text controls and .alert-heading for a matching heading.{{/i}}

    - × + ×

    {{_i}}Warning!{{/i}}

    {{_i}}Best check yo self, you're not looking too good.{{/i}} Nulla vitae elit libero, a pharetra augue. Praesent commodo cursus magna, vel scelerisque nisl consectetur et.

     <div class="alert alert-block">
    -  <a class="close">×</a>
    +  <a class="close" data-dismiss="alert">×</a>
       <h4 class="alert-heading">{{_i}}Warning!{{/i}}</h4>
       {{_i}}Best check yo self, you're not...{{/i}}
     </div>
    @@ -1248,7 +1323,7 @@
         

    {{_i}}Error or danger{{/i}}

    - × + × {{_i}}Oh snap!{{/i}} {{_i}}Change a few things up and try submitting again.{{/i}}
    @@ -1260,7 +1335,7 @@
         

    {{_i}}Success{{/i}}

    - × + × {{_i}}Well done!{{/i}} {{_i}}You successfully read this important alert message.{{/i}}
    @@ -1272,7 +1347,7 @@
         

    {{_i}}Information{{/i}}

    - × + × {{_i}}Heads up!{{/i}} {{_i}}This alert needs your attention, but it's not super important.{{/i}}
    diff --git a/templates/pages/download.mustache b/templates/pages/download.mustache
    index f6d319d6..fe38d145 100644
    --- a/templates/pages/download.mustache
    +++ b/templates/pages/download.mustache
    @@ -17,7 +17,7 @@
       
    diff --git a/templates/pages/index.mustache b/templates/pages/index.mustache
    index c8a11688..c95e8536 100644
    --- a/templates/pages/index.mustache
    +++ b/templates/pages/index.mustache
    @@ -13,21 +13,20 @@
       
     
    @@ -46,7 +45,7 @@
         

    {{_i}}For all skill levels{{/i}}

    -

    {{_i}}Bootstrap is designed to help people of all skill level—designer or developer, huge nerd or early beginner. Use it as a complete kit or use to start something more complex.{{/i}}

    +

    {{_i}}Bootstrap is designed to help people of all skill levels—designer or developer, huge nerd or early beginner. Use it as a complete kit or use to start something more complex.{{/i}}

    @@ -133,4 +132,4 @@ -
    +
    \ No newline at end of file diff --git a/templates/pages/javascript.mustache b/templates/pages/javascript.mustache index f5152cdf..ac989f3e 100644 --- a/templates/pages/javascript.mustache +++ b/templates/pages/javascript.mustache @@ -58,7 +58,7 @@
    @@ -197,6 +197,12 @@ {{_i}}true{{/i}} {{_i}}Closes the modal when escape key is pressed{{/i}} + + {{_i}}show{{/i}} + {{_i}}boolean{{/i}} + {{_i}}true{{/i}} + {{_i}}Shows the modal when initialized.{{/i}} +

    {{_i}}Markup{{/i}}

    @@ -207,7 +213,7 @@
    -<div class="modal">
    +<div class="modal" id="myModal">
       <div class="modal-header">
         <a class="close" data-dismiss="modal">×</a>
         <h3>Modal header</h3>
    @@ -548,11 +554,11 @@ $('#myModal').on('hidden', function () {
               

    {{_i}}Markup{{/i}}

    {{_i}}You can activate a tab or pill navigation without writing any javascript by simply specifying data-toggle="tab" or data-toggle="pill" on an element.{{/i}}

    -<ul class="tabs">
    +<ul class="nav nav-tabs">
       <li><a href="#home" data-toggle="tab">{{_i}}Home{{/i}}</a></li>
       <li><a href="#profile" data-toggle="tab">{{_i}}Profile{{/i}}</a></li>
       <li><a href="#messages" data-toggle="tab">{{_i}}Messages{{/i}}</a></li>
    -  <li><a href="#ettings" data-toggle="tab">{{_i}}Settings{{/i}}</a></li>
    +  <li><a href="#settings" data-toggle="tab">{{_i}}Settings{{/i}}</a></li>
     </ul>

    {{_i}}Methods{{/i}}

    $().tab

    @@ -560,7 +566,7 @@ $('#myModal').on('hidden', function () { {{_i}}Activates a tab element and content container. Tab should have either a `data-target` or an `href` targeting a container node in the dom.{{/i}}

    -<ul class="tabs">
    +<ul class="nav nav-tabs">
       <li class="active"><a href="#home">{{_i}}Home{{/i}}</a></li>
       <li><a href="#profile">{{_i}}Profile{{/i}}</a></li>
       <li><a href="#messages">{{_i}}Messages{{/i}}</a></li>
    @@ -618,14 +624,14 @@ $('a[data-toggle="tab"]').on('shown', function (e) {
           

    {{_i}}About Tooltips{{/i}}

    -

    {{_i}}Inspired by the excellent jQuery.tipsy plugin written by Jason Frame; Tooltips are an updated version, which don't rely on images, uss css3 for animations, and data-attributes for local title storage.{{/i}}

    +

    {{_i}}Inspired by the excellent jQuery.tipsy plugin written by Jason Frame; Tooltips are an updated version, which don't rely on images, use css3 for animations, and data-attributes for local title storage.{{/i}}

    {{_i}}Download file{{/i}}

    {{_i}}Example use of Tooltips{{/i}}

    {{_i}}Hover over the links below to see tooltips:{{/i}}

    -

    {{_i}}Tight pants next level keffiyeh you probably haven't heard of them. Photo booth beard raw denim letterpress vegan messenger bag stumptown. Farm-to-table seitan, mcsweeney's fixie sustainable quinoa 8-bit american apparel have a terry richardson vinyl chambray. Beard stumptown, cardigans banh mi lomo thundercats. Tofu biodiesel williamsburg marfa, four loko mcsweeney's cleanse vegan chambray. A really ironic artisan whatever keytar, scenester farm-to-table banksy Austin twitter handle freegan cred raw denim single-origin coffee viral.{{/i}} +

    {{_i}}Tight pants next level keffiyeh you probably haven't heard of them. Photo booth beard raw denim letterpress vegan messenger bag stumptown. Farm-to-table seitan, mcsweeney's fixie sustainable quinoa 8-bit american apparel have a terry richardson vinyl chambray. Beard stumptown, cardigans banh mi lomo thundercats. Tofu biodiesel williamsburg marfa, four loko mcsweeney's cleanse vegan chambray. A really ironic artisan whatever keytar, scenester farm-to-table banksy Austin twitter handle freegan cred raw denim single-origin coffee viral.{{/i}}


    @@ -651,7 +657,7 @@ $('a[data-toggle="tab"]').on('shown', function (e) { {{_i}}placement{{/i}} - {{_i}}string{{/i}} + {{_i}}string|function{{/i}} 'top' {{_i}}how to position the tooltip{{/i}} - top | bottom | left | right @@ -691,6 +697,9 @@ $('a[data-toggle="tab"]').on('shown', function (e) {

    {{_i}}Markup{{/i}}

    {{_i}}For performance reasons, the Tooltip and Popover data-apis are opt in. If you would like to use them just specify a selector option.{{/i}}

    +
    +<a href="#" rel="tooltip" title="{{_i}}first tooltip{{/i}}">{{_i}}hover over me{{/i}}</a>
    +

    {{_i}}Methods{{/i}}

    $().tooltip({{_i}}options{{/i}})

    {{_i}}Attaches a tooltip handler to an element collection.{{/i}}

    @@ -719,14 +728,14 @@ $('a[data-toggle="tab"]').on('shown', function (e) {

    {{_i}}About popovers{{/i}}

    {{_i}}Add small overlays of content, like those on the iPad, to any element for housing secondary information.{{/i}}

    -

    * {{_i}}Requires Tooltip to be included{{/i}}

    +

    * {{_i}}Requires Tooltip to be included{{/i}}

    {{_i}}Download file{{/i}}

    {{_i}}Example hover popover{{/i}}

    {{_i}}Hover over the button to trigger the popover.{{/i}}


    {{_i}}Using bootstrap-popover.js{{/i}}

    @@ -751,7 +760,7 @@ $('a[data-toggle="tab"]').on('shown', function (e) { {{_i}}placement{{/i}} - {{_i}}string{{/i}} + {{_i}}string|function{{/i}} 'right' {{_i}}how to position the popover{{/i}} - top | bottom | left | right @@ -841,13 +850,13 @@ $('a[data-toggle="tab"]').on('shown', function (e) {

    {{_i}}Oh snap! You got an error!{{/i}}

    {{_i}}Change this and that and try again. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum.{{/i}}

    - {{_i}}Take this action{{/i}} {{_i}}Or do this{{/i}} + {{_i}}Take this action{{/i}} {{_i}}Or do this{{/i}}


    -

    {{_i}}Using bootstrap-alerts.js{{/i}}

    +

    {{_i}}Using bootstrap-alert.js{{/i}}

    {{_i}}Enable dismissal of an alert via javascript:{{/i}}

    -
    $(".alert-message").alert()
    +
    $(".alert").alert()

    {{_i}}Markup{{/i}}

    {{_i}}Just add data-dismiss="alert" to your close button to automatically give an alert close functionality.{{/i}}

    <a class="close" data-dismiss="alert" href="#">&times;</a>
    @@ -856,7 +865,7 @@ $('a[data-toggle="tab"]').on('shown', function (e) {

    {{_i}}Wraps all alerts with close functionality. To have your alerts animate out when closed, make sure they have the .fade and .in class already applied to them.{{/i}}

    .alert('close')

    {{_i}}Closes an alert.{{/i}}

    -
    $(".alert-message").alert('close')
    +
    $(".alert").alert('close')

    {{_i}}Events{{/i}}

    {{_i}}Bootstrap's alert class exposes a few events for hooking into alert functionality.{{/i}}

    @@ -966,7 +975,7 @@ $('#my-alert').bind('closed', function () {

    {{_i}}Methods{{/i}}

    $().button('toggle')

    -

    {{_i}}Toggles push state. Gives btn the look that it's been activated.{{/i}}

    +

    {{_i}}Toggles push state. Gives btn the look that it hass been activated.{{/i}}

    {{_i}}Heads up!{{/i}} {{_i}}You can enable auto toggling of a button by using the data-toggle attribute.{{/i}} @@ -1069,7 +1078,7 @@ $('#my-alert').bind('closed', function () {
    - + @@ -1219,10 +1228,12 @@ $('#myCollapsible').on('hidden', function () {

    {{_i}}Markup{{/i}}

    {{_i}}Data attributes are integral to the carousel plugin. Check out the example code below for the various markup types.{{/i}}

    -<div class="carousel">
    +<div id="myCarousel" class="carousel">
       <!-- {{_i}}Carousel items{{/i}} -->
       <div class="carousel-inner">
    -    ...
    +    <div class="active item">…</div>
    +    <div class="item">…</div>
    +    <div class="item">…</div>
       </div>
       <!-- {{_i}}Carousel nav{{/i}} -->
       <a class="carousel-control left" href="#myCarousel" data-slide="prev">&lsaquo;</a>
    @@ -1263,7 +1274,7 @@ $('.myCarousel').carousel({
                  
    - +
    {{_i}}parent{{/i}} {{_i}}selector{{/i}} false{{_i}}If selector then all collapsible elements under the specified parent will be closed when this collasabile item is shown. (similar to traditional accordion behavior){{/i}}{{_i}}If selector then all collapsible elements under the specified parent will be closed when this collapsible item is shown. (similar to traditional accordion behavior){{/i}}
    {{_i}}toggle{{/i}}
    {{_i}}slid{{/i}}{{_i}}This event is fired when the carousel has completed it's slide transition.{{/i}}{{_i}}This event is fired when the carousel has completed its slide transition.{{/i}}
    @@ -1346,7 +1357,7 @@ $('.myCarousel').carousel({

    {{_i}}Methods{{/i}}

    .typeahead({{_i}}options{{/i}})

    -

    {{_i}}Initializes an input with a typahead.{{/i}}

    +

    {{_i}}Initializes an input with a typeahead.{{/i}}

    - + \ No newline at end of file diff --git a/templates/pages/less.mustache b/templates/pages/less.mustache index 0ae3db99..742b166d 100644 --- a/templates/pages/less.mustache +++ b/templates/pages/less.mustache @@ -24,7 +24,7 @@

    {{_i}}Why LESS?{{/i}}

    -

    {{_i}}Bootstrap is made with LESS at it's core, a dynamic stylesheet language created by our good friend, Alexis Sellier. It makes developing systems-based CSS faster, easier, and more fun.{{/i}}

    +

    {{_i}}Bootstrap is made with LESS at its core, a dynamic stylesheet language created by our good friend, Alexis Sellier. It makes developing systems-based CSS faster, easier, and more fun.{{/i}}

    {{_i}}What's included?{{/i}}

    @@ -47,7 +47,7 @@

    {{_i}}Operations{{/i}}

    -

    {{_i}}Make your grid, leading, and more super flexible by doing the math on the fly with operations. Multiple, divide, add, and subtract your way to CSS sanity.{{/i}}

    +

    {{_i}}Make your grid, leading, and more super flexible by doing the math on the fly with operations. Multiply, divide, add, and subtract your way to CSS sanity.{{/i}}

    @@ -210,7 +210,7 @@

    {{_i}}Components{{/i}}

    -

    Buttons

    +

    {{_i}}Buttons{{/i}}

    @@ -220,7 +220,7 @@
    -

    Forms

    +

    {{_i}}Forms{{/i}}

    @@ -230,7 +230,7 @@
    -

    Navbar

    +

    {{_i}}Navbar{{/i}}

    @@ -272,13 +272,13 @@ - - + + - - + + @@ -399,7 +399,7 @@
    @warningText#f3edd2#c09853
    @warningBackground#c09853#f3edd2
    @errorText
    -

    {{_i}}Forms{{/i}}

    +

    Forms

    @@ -416,7 +416,7 @@
    -

    {{_i}}Typography{{/i}}

    +

    Typography

    @@ -463,7 +463,7 @@
    -

    {{_i}}Grid system{{/i}}

    +

    Grid system

    @@ -528,7 +528,7 @@ - + @@ -538,7 +538,7 @@ - + @@ -641,8 +641,8 @@

    {{_i}}Node with makefile{{/i}}

    -

    {{_i}}Install the LESS command line compiler with npm by running the following command:{{/i}}

    -
    $ npm install less
    +

    {{_i}}Install the LESS command line compiler globally with npm by running the following command:{{/i}}

    +
    $ npm install -g less

    {{_i}}Once installed just run make from the root of your bootstrap directory and you're all set.{{/i}}

    {{_i}}Additionally, if you have watchr installed, you may run make watch to have bootstrap automatically rebuilt every time you edit a file in the bootstrap lib (this isn't required, just a convenience method).{{/i}}

    diff --git a/templates/pages/scaffolding.mustache b/templates/pages/scaffolding.mustache index 36df0973..50c776e2 100644 --- a/templates/pages/scaffolding.mustache +++ b/templates/pages/scaffolding.mustache @@ -5,7 +5,9 @@

    {{_i}}Bootstrap is built on a responsive 12-column grid. We've also included fixed- and fluid-width layouts based on that system.{{/i}}

    + -

    {{_i}}Grid customization{{/i}}

    + + + +
    + + +

    {{_i}}Fluid columns{{/i}}

    +
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    +
    +
    4
    +
    4
    +
    4
    +
    +
    +
    4
    +
    8
    +
    +
    +
    6
    +
    6
    +
    +
    +
    12
    +
    + +
    +
    +

    {{_i}}Percents, not pixels{{/i}}

    +

    {{_i}}The fluid grid system uses percents for column widths instead of fixed pixels. It also has the same responsive variations as our fixed grid system, ensuring proper proportions for key screen resolutions and devices.{{/i}}

    +
    +
    +

    {{_i}}Fluid rows{{/i}}

    +

    {{_i}}Make any row fluid simply by changing .row to .row-fluid. The columns stay the exact same, making it super straightforward to flip between fixed and fluid layouts.{{/i}}

    +
    +
    +

    {{_i}}Markup{{/i}}

    +
    +<div class="row-fluid">
    +  <div class="span4">...</div>
    +  <div class="span8">...</div>
    +</div>
    +
    +
    +
    + +

    {{_i}}Fluid nesting{{/i}}

    +
    +
    +

    {{_i}}Nesting with fluid grids is a bit different: the number of nested columns doesn't need to match the parent. Instead, your columns are reset at each level because each row takes up 100% of the parent column.{{/i}}

    +
    +
    + {{_i}}Fluid 12{{/i}} +
    +
    + {{_i}}Fluid 6{{/i}} +
    +
    + {{_i}}Fluid 6{{/i}} +
    +
    +
    +
    +
    +
    +
    +<div class="row-fluid">
    +  <div class="span12">
    +    {{_i}}Level 1 of column{{/i}}
    +    <div class="row-fluid">
    +      <div class="span6">{{_i}}Level 2{{/i}}</div>
    +      <div class="span6">{{_i}}Level 2{{/i}}</div>
    +    </div>
    +  </div>
    +</div>
    +
    +
    +
    + +
    + + + + +
    +
    .scale() @ratio{{_i}}Scale an element to n times it's original size{{/i}}{{_i}}Scale an element to n times its original size{{/i}}
    .translate()
    .background-clip() @clip{{_i}}Crop the backgroud of an element (useful for border-radius){{/i}}{{_i}}Crop the background of an element (useful for border-radius){{/i}}
    .background-size()
    @@ -166,7 +272,7 @@

    {{_i}}How to customize{{/i}}

    -

    {{_i}}Modifying the grid means changing the three @grid* variables and recompiling Bootstrap. Change the grid variables in variables.less and use one of the four ways documented to recompile. If you're adding more columns, be sure to add the CSS for those in grid.less.{{/i}}

    +

    {{_i}}Modifying the grid means changing the three @grid* variables and recompiling Bootstrap. Change the grid variables in variables.less and use one of the four ways documented to recompile. If you're adding more columns, be sure to add the CSS for those in grid.less.{{/i}}

    {{_i}}Staying responsive{{/i}}

    @@ -189,8 +295,8 @@

    {{_i}}Fixed layout{{/i}}

    {{_i}}The default and simple 940px-wide, centered layout for just about any website or page provided by a single <div class="container">.{{/i}}

    -
    -
    +
    +
     <body>
    @@ -203,9 +309,9 @@
         

    {{_i}}Fluid layout{{/i}}

    {{_i}}<div class="container-fluid"> gives flexible page structure, min- and max-widths, and a left-hand sidebar. It's great for apps and docs.{{/i}}

    -
    -
    -
    +
    +
    +
     <div class="container-fluid">
    @@ -239,7 +345,7 @@
         

    {{_i}}Supported devices{{/i}}

    -

    {{_i}}Bootstrap supports a handful of media queries to help make your projects more appropriate on different devices and screen resolutions. Here's what's included:{{/i}}

    +

    {{_i}}Bootstrap supports a handful of media queries in a single file to help make your projects more appropriate on different devices and screen resolutions. Here's what's included:{{/i}}

    @@ -262,8 +368,8 @@ - - + + @@ -281,6 +387,10 @@
    {{_i}}Landscape tablets{{/i}}768px to 980px44px768px to 979px42px 20px
    +

    {{_i}}Requires meta tag{{/i}}

    +

    {{_i}}To ensure devices display responsive pages properly, include the viewport meta tag.{{/i}}

    +
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    +

    {{_i}}What they do{{/i}}

    {{_i}}Media queries allow for custom CSS based on a number of conditions—ratios, widths, display type, etc—but usually focuses around min-width and max-width.{{/i}}

      @@ -301,7 +411,7 @@
      1. {{_i}}Use the compiled responsive version, bootstrap-responsive.css{{/i}}
      2. {{_i}}Add @import "responsive.less" and recompile Bootstrap{{/i}}
      3. -
      4. {{_i}}Modify and recompile responsive.less as a separate{{/i}}
      5. +
      6. {{_i}}Modify and recompile responsive.less as a separate file{{/i}}

      {{_i}}Why not just include it? Truth be told, not everything needs to be responsive. Instead of encouraging developers to remove this feature, we figure it best to enable it.{{/i}}

    diff --git a/templates/pages/upgrading.mustache b/templates/pages/upgrading.mustache index 02d1c7fe..5a82e2dc 100644 --- a/templates/pages/upgrading.mustache +++ b/templates/pages/upgrading.mustache @@ -39,7 +39,7 @@
    • {{_i}}Media queries added for basic support across mobile and tablet devices{{/i}}
    • {{_i}}Responsive CSS is compiled separately, as bootstrap-responsive.css{{/i}}
    • -
    + @@ -76,12 +76,14 @@
  • {{_i}}IE9: removed gradients and added rounded corners{{/i}}
  • {{_i}}Updated active state to make styling clearer in button groups (new) and look better with custom transition{{/i}}
  • {{_i}}New mixin, .buttonBackground, to set button gradients{{/i}}
  • +
  • {{_i}}The .secondary class was removed from modal examples in our docs as it never had associated styles.{{/i}}
  • {{_i}}Forms{{/i}}

    • {{_i}}Default form style is now vertical (stacked) to use less CSS and add greater flexibility{{/i}}
    • {{_i}}Form classes standardized with .form- required as a prefix{{/i}}
    • {{_i}}New built-in form defaults for search, inline, and horizontal forms{{/i}}
    • +
    • {{_i}}For horizontal forms, previous classes .clearfix and .input are equivalent to the new .control-group and .controls.{{/i}}
    • {{_i}}More flexible horizontal form markup with classes for all styling, including new optional class for the label{{/i}}
    • {{_i}}Form states: colors updated and customizable via new LESS variables{{/i}}
    @@ -109,7 +111,7 @@

    {{_i}}Navigation{{/i}}

      -
    • {{_i}}Tabs and pills now require the use of a new base class, .nav, on their <ul>{{/i}}
    • +
    • {{_i}}Tabs and pills now require the use of a new base class, .nav, on their <ul> and the class names are now .nav-pills and .nav-tabs.{{/i}}
    • {{_i}}New nav list variation added that uses the same base class, .nav{{/i}}
    • {{_i}}Vertical tabs and pills have been added—just add .nav-stacked to the <ul>{{/i}}
    • {{_i}}Pills were restyled to be less rounded by default{{/i}}
    • @@ -128,6 +130,7 @@
      • {{_i}}Updated the .dropdown-menu to tighten up spacing{{/i}}
      • {{_i}}Now requires you to add a <span class="caret"></span> to show the dropdown arrow{{/i}}
      • +
      • {{_i}}Now requires you to add a data-toggle="dropdown" attribute to obtain toggling behavior{{/i}}
      • {{_i}}The navbar (fixed topbar) has brand new dropdowns. Gone are the dark versions and in their place are the standard white ones with an additional caret at their tops for clarity of position.{{/i}}

      {{_i}}Labels{{/i}}

      @@ -144,7 +147,7 @@
      • {{_i}}New base class: .alert instead of .alert-message{{/i}}
      • {{_i}}Class names standardized for other options, now all starting with .alert-{{/i}}
      • -
      • {{_i}}Redesigned base alert styles to combine the deafult alerts and block-level alerts into one{{/i}}
      • +
      • {{_i}}Redesigned base alert styles to combine the default alerts and block-level alerts into one{{/i}}
      • {{_i}}Block level alert class changed: .alert-block instead of .block-message{{/i}}

      {{_i}}Progress bars{{/i}}

      @@ -167,11 +170,19 @@

      {{_i}}Javascript plugins{{/i}}

    - {{_i}}Heads up!{{/i}} {{_i}}We're rewritten just about everything for our plugins, so head on over to the Javascript page to learn more.{{/i}} + {{_i}}Heads up!{{/i}} {{_i}}We've rewritten just about everything for our plugins, so head on over to the Javascript page to learn more.{{/i}}
    +

    {{_i}}Tooltips{{/i}}

    +
      +
    • {{_i}}The plugin method has been renamed from twipsy() to tooltip(), and the class name changed from twipsy to tooltip.{{/i}}
    • +
    • {{_i}}The placement option value that was below is now bottom, and above is now top.{{/i}}
    • +
    • {{_i}}The animate option was renamed to animation.{{/i}}
    • +
    • {{_i}}The html option was removed, as the tooltips default to allowing HTML now.{{/i}}
    • +

    {{_i}}Popovers{{/i}}

    • {{_i}}Child elements now properly namespaced: .title to .popover-title, .inner to .popover-inner, and .content to .popover-content.{{/i}}
    • +
    • {{_i}}The placement option value that was below is now bottom, and above is now top.{{/i}}

    {{_i}}New plugins{{/i}}

      diff --git a/upgrading.html b/upgrading.html index 098bcbdc..a414eb75 100644 --- a/upgrading.html +++ b/upgrading.html @@ -7,17 +7,17 @@ - - - + + + @@ -115,7 +115,7 @@
      • Media queries added for basic support across mobile and tablet devices
      • Responsive CSS is compiled separately, as bootstrap-responsive.css
      • -
      +
    @@ -152,12 +152,14 @@
  • IE9: removed gradients and added rounded corners
  • Updated active state to make styling clearer in button groups (new) and look better with custom transition
  • New mixin, .buttonBackground, to set button gradients
  • +
  • The .secondary class was removed from modal examples in our docs as it never had associated styles.
  • Forms

    • Default form style is now vertical (stacked) to use less CSS and add greater flexibility
    • Form classes standardized with .form- required as a prefix
    • New built-in form defaults for search, inline, and horizontal forms
    • +
    • For horizontal forms, previous classes .clearfix and .input are equivalent to the new .control-group and .controls.
    • More flexible horizontal form markup with classes for all styling, including new optional class for the label
    • Form states: colors updated and customizable via new LESS variables
    @@ -185,7 +187,7 @@

    Navigation

      -
    • Tabs and pills now require the use of a new base class, .nav, on their <ul>
    • +
    • Tabs and pills now require the use of a new base class, .nav, on their <ul> and the class names are now .nav-pills and .nav-tabs.
    • New nav list variation added that uses the same base class, .nav
    • Vertical tabs and pills have been added—just add .nav-stacked to the <ul>
    • Pills were restyled to be less rounded by default
    • @@ -204,6 +206,7 @@
      • Updated the .dropdown-menu to tighten up spacing
      • Now requires you to add a <span class="caret"></span> to show the dropdown arrow
      • +
      • Now requires you to add a data-toggle="dropdown" attribute to obtain toggling behavior
      • The navbar (fixed topbar) has brand new dropdowns. Gone are the dark versions and in their place are the standard white ones with an additional caret at their tops for clarity of position.

      Labels

      @@ -220,7 +223,7 @@
      • New base class: .alert instead of .alert-message
      • Class names standardized for other options, now all starting with .alert-
      • -
      • Redesigned base alert styles to combine the deafult alerts and block-level alerts into one
      • +
      • Redesigned base alert styles to combine the default alerts and block-level alerts into one
      • Block level alert class changed: .alert-block instead of .block-message

      Progress bars

      @@ -243,11 +246,19 @@

      Javascript plugins

    - Heads up! We're rewritten just about everything for our plugins, so head on over to the Javascript page to learn more. + Heads up! We've rewritten just about everything for our plugins, so head on over to the Javascript page to learn more.
    +

    Tooltips

    +
      +
    • The plugin method has been renamed from twipsy() to tooltip(), and the class name changed from twipsy to tooltip.
    • +
    • The placement option value that was below is now bottom, and above is now top.
    • +
    • The animate option was renamed to animation.
    • +
    • The html option was removed, as the tooltips default to allowing HTML now.
    • +

    Popovers

    • Child elements now properly namespaced: .title to .popover-title, .inner to .popover-inner, and .content to .popover-content.
    • +
    • The placement option value that was below is now bottom, and above is now top.

    New plugins