diff --git a/README.md b/README.md index 912de4d5cf..0395568580 100644 --- a/README.md +++ b/README.md @@ -62,12 +62,10 @@ Developers We have included a makefile with convenience methods for working with the Bootstrap library. + **build** - `make` -This will run the less compiler on the bootstrap lib and regenerate the docs dir. -The lessc compiler is required for this command to run. +Runs the LESS compiler to rebuild the `/less` files and compiles the docs pages. Requires lessc and uglify-js. Read more in our docs » + **watch** - `make watch` -This is a convenience method for watching your less files and automatically building them whenever you save. -Watchr is required for this command to run. +This is a convenience method for watching just Less files and automatically building them whenever you save. Requires the Watchr gem. Authors diff --git a/docs/assets/bootstrap.zip b/docs/assets/bootstrap.zip index e5a1d8b427..622ad01177 100644 Binary files a/docs/assets/bootstrap.zip and b/docs/assets/bootstrap.zip differ diff --git a/docs/assets/css/bootstrap-responsive.css b/docs/assets/css/bootstrap-responsive.css index 4b032cdb55..780719e650 100644 --- a/docs/assets/css/bootstrap-responsive.css +++ b/docs/assets/css/bootstrap-responsive.css @@ -7,6 +7,16 @@ * * Designed and built with all the love in the world @twitter by @mdo and @fat. */ +.clearfix { + *zoom: 1; +} +.clearfix:before, .clearfix:after { + display: table; + content: ""; +} +.clearfix:after { + clear: both; +} .hidden { display: none; visibility: hidden; @@ -25,7 +35,7 @@ .uneditable-input { display: block; width: 100%; - height: 28px; + min-height: 28px; /* Make inputs at least the height of their button counterpart */ /* Makes inputs behave like true block-level elements */ @@ -84,7 +94,7 @@ position: static; } } -@media (max-width: 768px) { +@media (max-width: 767px) { .container { width: auto; padding: 0 20px; @@ -102,7 +112,7 @@ margin: 0; } } -@media (min-width: 768px) and (max-width: 980px) { +@media (min-width: 768px) and (max-width: 979px) { .row { margin-left: -20px; *zoom: 1; @@ -205,40 +215,40 @@ .row-fluid > [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/docs/assets/css/bootstrap.css b/docs/assets/css/bootstrap.css index a90e31930b..ed32b339f0 100644 --- a/docs/assets/css/bootstrap.css +++ b/docs/assets/css/bootstrap.css @@ -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/docs/assets/css/docs.css b/docs/assets/css/docs.css index c3a6848d74..f6a388c236 100644 --- a/docs/assets/css/docs.css +++ b/docs/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/docs/assets/js/bootstrap-alert.js b/docs/assets/js/bootstrap-alert.js index 4a65b135ab..1d69c5f533 100644 --- a/docs/assets/js/bootstrap-alert.js +++ b/docs/assets/js/bootstrap-alert.js @@ -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/docs/assets/js/bootstrap-button.js b/docs/assets/js/bootstrap-button.js index d85c82947a..89101ed7be 100644 --- a/docs/assets/js/bootstrap-button.js +++ b/docs/assets/js/bootstrap-button.js @@ -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/docs/assets/js/bootstrap-carousel.js b/docs/assets/js/bootstrap-carousel.js index 2f47edb8dc..bad4f46f46 100644 --- a/docs/assets/js/bootstrap-carousel.js +++ b/docs/assets/js/bootstrap-carousel.js @@ -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/docs/assets/js/bootstrap-collapse.js b/docs/assets/js/bootstrap-collapse.js index 8134cc42ff..53bcd7c40f 100644 --- a/docs/assets/js/bootstrap-collapse.js +++ b/docs/assets/js/bootstrap-collapse.js @@ -133,4 +133,4 @@ }) }) -}( window.jQuery ) +}( window.jQuery ); \ No newline at end of file diff --git a/docs/assets/js/bootstrap-dropdown.js b/docs/assets/js/bootstrap-dropdown.js index 48d3ce0f85..ce65aa3b54 100644 --- a/docs/assets/js/bootstrap-dropdown.js +++ b/docs/assets/js/bootstrap-dropdown.js @@ -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/docs/assets/js/bootstrap-modal.js b/docs/assets/js/bootstrap-modal.js index 180f0b64d9..0a69b6a2f8 100644 --- a/docs/assets/js/bootstrap-modal.js +++ b/docs/assets/js/bootstrap-modal.js @@ -177,7 +177,7 @@ return this.each(function () { var $this = $(this) , data = $this.data('modal') - , options = $.extend({}, $.fn.modal.defaults, 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 if (options.show) data.show() @@ -207,4 +207,4 @@ }) }) -}( window.jQuery ) +}( window.jQuery ); \ No newline at end of file diff --git a/docs/assets/js/bootstrap-popover.js b/docs/assets/js/bootstrap-popover.js index 35ff9d0ab6..4df81fee94 100644 --- a/docs/assets/js/bootstrap-popover.js +++ b/docs/assets/js/bootstrap-popover.js @@ -92,4 +92,4 @@ , template: '
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.
.table-bordered
With v2.0, we have lighter and smarter defaults for form styles. No extra markup, just form controls.
+<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> +
Reflecting default WebKit styles, just add .form-search
for extra rounded search fields.
+<form class="well form-search"> + <input type="text" class="input-medium search-query"> + <button type="submit" class="btn">Search</button> +</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> +
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> +
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
.
It also includes validation styles for errors, warnings, and success. To use, add the error class to the surrounding .control-group
.
: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.
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.
Heads up! Button dropdowns require the Bootstrap dropdown plugin to function.
All nav components here—tabs, pills, and lists—share the same base markup and styles through the .nav
class.
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.
+Tabs and pills are great for sections of content or navigating between pages of related content.
+To align nav links, use the .pull-left
or .pull-right
utility classes. Both classes will add a CSS float in the specified direction.
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>
.
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.
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> ++
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 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>- +
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.
<span class="label label-success">New</span>
+ <span class="label label-success">Success</span>
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.
+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> ++
This is a simple hero unit, a simple jumbotron-style component for calling extra attention to featured content or information.
+ +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> ++
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.
- +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.
- +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>
.
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
.
Wrap your message and an optional close icon in a div with simple class.
<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.
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
@@ -1336,7 +1411,7 @@Success
@@ -1348,7 +1423,7 @@Information
diff --git a/docs/download.html b/docs/download.html index 1765b8a7d1..9159787d09 100644 --- a/docs/download.html +++ b/docs/download.html @@ -7,17 +7,17 @@ - - - + + + @@ -93,7 +93,7 @@Toggle alldiff --git a/docs/examples.html b/docs/examples.html index 42faf93c0a..76eb4b59a9 100644 --- a/docs/examples.html +++ b/docs/examples.html @@ -7,17 +7,17 @@ - - - + + + diff --git a/docs/examples/fluid.html b/docs/examples/fluid.html index f6f7fceff1..3c7059f9d2 100644 --- a/docs/examples/fluid.html +++ b/docs/examples/fluid.html @@ -7,11 +7,6 @@ - - - + + + diff --git a/docs/examples/hero.html b/docs/examples/hero.html index bfcd803448..ee64646f38 100644 --- a/docs/examples/hero.html +++ b/docs/examples/hero.html @@ -7,11 +7,6 @@ - - - + + + diff --git a/docs/examples/starter-template.html b/docs/examples/starter-template.html index 75249d7117..31cc57cf81 100644 --- a/docs/examples/starter-template.html +++ b/docs/examples/starter-template.html @@ -7,11 +7,6 @@ - - - + + + diff --git a/docs/index.html b/docs/index.html index dcf39a7929..a914f677fe 100644 --- a/docs/index.html +++ b/docs/index.html @@ -7,17 +7,17 @@ - - - + + + @@ -89,18 +89,17 @@- 1. Chose components + 1. Choose components Get just the CSS you need
- Upgrading from 1.4
- Issues
-- Roadmap
-- Changelog
+- Roadmap & changelog
- ·
- - +
- - +
- ·
- - Follow @twbootstrap + Follow @twbootstrap
- Tweet @@ -122,7 +121,7 @@
![]()
For all skill levels
-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.
+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.
diff --git a/docs/javascript.html b/docs/javascript.html index 7960a29e39..612724c798 100644 --- a/docs/javascript.html +++ b/docs/javascript.html @@ -7,17 +7,17 @@ - - - + + + @@ -134,7 +134,7 @@
@@ -289,7 +289,7 @@-<div class="modal"> +<div class="modal" id="myModal"> <div class="modal-header"> <a class="close" data-dismiss="modal">×</a> <h3>Modal header</h3> @@ -630,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"
ordata-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
@@ -642,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> @@ -700,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 fileExample 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.
@@ -733,7 +733,7 @@ $('a[data-toggle="tab"]').on('shown', function (e) {
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> +
Attaches a tooltip handler to an element collection.
@@ -801,7 +804,7 @@ $('a[data-toggle="tab"]').on('shown', function (e) {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 fileChange 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.
Enable dismissal of an alert via javascript:
$(".alert").alert()
Toggles push state. Gives btn the look that it's been activated.
+Toggles push state. Gives btn the look that it hass been activated.
data-toggle
attribute.
@@ -1151,7 +1154,7 @@ $('#my-alert').bind('closed', function () {
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">‹</a> @@ -1345,7 +1350,7 @@ $('.myCarousel').carousel({
Initializes an input with a typahead.
+Initializes an input with a typeahead.
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.
@warningText
@warningBackground
@errorText
.scale()
@ratio
.translate()
.background-clip()
@clip
border-radius
)border-radius
).background-size()
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).
Bootstrap is built on a responsive 12-column grid. We've also included fixed- and fluid-width layouts based on that system.
+ -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.
+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.
+<div class="row-fluid"> + <div class="span4">...</div> + <div class="span8">...</div> +</div> ++
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.
++<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> ++
Landscape tablets | -768px to 980px | -44px | +768px to 979px | +42px | 20px |
To ensure devices display responsive pages properly, include the viewport meta tag.
+<meta name="viewport" content="width=device-width, initial-scale=1.0">+
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
.
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}}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}}
.table-bordered
{{_i}}With v2.0, we have lighter and smarter defaults for form styles. No extra markup, just form controls.{{/i}}
+<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}}Reflecting default WebKit styles, just add .form-search
for extra rounded search fields.{{/i}}
+<form class="well form-search"> + <input type="text" class="input-medium search-query"> + <button type="submit" class="btn">{{_i}}Search{{/i}}</button> +</form> +
{{_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> +
{{_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}}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}}It also includes validation styles for errors, warnings, and success. To use, add the error class to the surrounding .control-group
.{{/i}}
.btn
.btn-primary
.btn-info
.btn-success
.btn-warning
.btn-danger
.btn-inverse
{{_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}}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}}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}}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}}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}}
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}}Use the .btn
class on an <a>
, <button>
, or <input>
element.{{/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}}
: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}}
{{_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}}Heads up!{{/i}} {{_i}}Button dropdowns require the Bootstrap dropdown plugin to function.{{/i}}
{{_i}}All nav components here—tabs, pills, and lists—share the same base markup and styles through the .nav
class.{{/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}}Tabs and pills are great for sections of content or navigating between pages of related content.{{/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}}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}}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}}A simple link to show your brand or project name only requires an anchor tag.{{/i}}
@@ -751,18 +767,18 @@ <div class="navbar"> <div class="navbar-inner"> <div class="container"> - - <!-- .btn-navbar is used as the toggle for collapsed navbar content --> + + <!-- {{_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> - - <!-- Be sure to leave the brand out there if you want it shown --> + + <!-- {{_i}}Be sure to leave the brand out there if you want it shown{{/i}} --> <a class="brand" href="#">{{_i}}Project name{{/i}}</a> - <!-- Everything you want hidden at 940px or less, place within here --> + <!-- {{_i}}Everything you want hidden at 940px or less, place within here{{/i}} --> <div class="nav-collapse"> <!-- .nav, .navbar-search, .navbar-form, etc --> </div> @@ -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}}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 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}}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}}
<span class="label label-success">{{/_i}}New{{/i}}</span>
+ <span class="label label-success">{{/_i}}Success{{/i}}</span>
{{_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}}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}}This is a simple hero unit, a simple jumbotron-style component for calling extra attention to featured content or information.{{/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> ++
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.
- +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}}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}}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}}
{{_i}}Wrap your message and an optional close icon in a div with simple class.{{/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}}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}}
@@ -1260,7 +1335,7 @@{{_i}}Success{{/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/docs/templates/pages/download.mustache b/docs/templates/pages/download.mustache index f6d319d6ad..fe38d1450e 100644 --- a/docs/templates/pages/download.mustache +++ b/docs/templates/pages/download.mustache @@ -17,7 +17,7 @@{{_i}}Toggle all{{/i}}diff --git a/docs/templates/pages/index.mustache b/docs/templates/pages/index.mustache index f7cadc0814..c95e85362c 100644 --- a/docs/templates/pages/index.mustache +++ b/docs/templates/pages/index.mustache @@ -3,7 +3,7 @@- {{_i}}1. Chose components{{/i}} + {{_i}}1. Choose components{{/i}} {{_i}}Get just the CSS you need{{/i}}
{{_i}}Bootstrap, from Twitter{{/i}}
-Simple and flexible HTML, CSS, and Javascript for popular user interface components and interactions.
+{{_i}}Simple and flexible HTML, CSS, and Javascript for popular user interface components and interactions.{{/i}}
{{_i}}View project on GitHub{{/i}} {{_i}}Download Bootstrap{{/i}} @@ -11,20 +11,19 @@
-
- Upgrading from 1.4
+- {{_i}}Upgrading from 1.4{{/i}}
- {{_i}}Issues{{/i}}
-- {{_i}}Roadmap{{/i}}
-- {{_i}}Changelog{{/i}}
+- {{_i}}Roadmap & changelog{{/i}}
- ·
- - +
- - +
- ·
- - {{_i}}Follow @twbootstrap{{/i}} + {{_i}}Follow @twbootstrap{{/i}}
- Tweet @@ -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}}
diff --git a/docs/templates/pages/javascript.mustache b/docs/templates/pages/javascript.mustache index 57cb4eac42..ac989f3ed7 100644 --- a/docs/templates/pages/javascript.mustache +++ b/docs/templates/pages/javascript.mustache @@ -58,7 +58,7 @@
@@ -213,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> @@ -554,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"
ordata-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
@@ -566,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> @@ -624,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}}
@@ -657,7 +657,7 @@ $('a[data-toggle="tab"]').on('shown', function (e) {
{{_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}}Attaches a tooltip handler to an element collection.{{/i}}
@@ -725,7 +728,7 @@ $('a[data-toggle="tab"]').on('shown', function (e) {{{_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}}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}}Enable dismissal of an alert via javascript:{{/i}}
$(".alert").alert()
{{_i}}Data attributes are integral to the button plugin. Check out the example code below for the various markup types.{{/i}}
-<!-- Add data-toggle="button" to activate toggling on a single button --> +<!-- {{_i}}Add data-toggle="button" to activate toggling on a single button{{/i}} --> <button class="btn" data-toggle="button">Single Toggle</button> -<!-- Add data-toggle="buttons-checkbox" for checkbox style toggling on btn-group --> +<!-- {{_i}}Add data-toggle="buttons-checkbox" for checkbox style toggling on btn-group{{/i}} --> <div class="btn-group" data-toggle="buttons-checkbox"> <button class="btn">Left</button> <button class="btn">Middle</button> <button class="btn">Right</button> </div> -<!-- Add data-toggle="buttons-radio" for radio style toggling on btn-group --> +<!-- {{_i}}Add data-toggle="buttons-radio" for radio style toggling on btn-group{{/i}} --> <div class="btn-group" data-toggle="buttons-radio"> <button class="btn">Left</button> <button class="btn">Middle</button> @@ -972,7 +975,7 @@ $('#my-alert').bind('closed', function () {
{{_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}}
data-toggle
attribute.{{/i}}
@@ -1058,7 +1061,7 @@ $('#my-alert').bind('closed', function () {
Enable via javascript:
+{{_i}}Enable via javascript:{{/i}}
$(".collapse").collapse()
{{_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}} | @@ -1225,12 +1228,14 @@ $('#myCollapsible').on('hidden', function () {||
{{_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}} |
{{_i}}Initializes an input with a typahead.{{/i}}
+{{_i}}Initializes an input with a typeahead.{{/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}}
@warningText |
- #f3edd2 | -+ | #c09853 | +|
@warningBackground |
- #c09853 | -+ | #f3edd2 | +|
@errorText |
@@ -495,7 +495,7 @@
.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() |
@@ -538,7 +538,7 @@
|||
.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() |
@@ -567,7 +567,7 @@