diff --git a/README.md b/README.md index b0f35480d..d492cd96f 100644 --- a/README.md +++ b/README.md @@ -54,12 +54,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 ca2768c6e..2041e410b 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 c8c630296..d01791cc5 100644 --- a/docs/assets/css/bootstrap-responsive.css +++ b/docs/assets/css/bootstrap-responsive.css @@ -205,40 +205,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 { @@ -314,6 +314,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 +490,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 1f2aae23e..57c30ab63 100644 --- a/docs/assets/css/bootstrap.css +++ b/docs/assets/css/bootstrap.css @@ -212,40 +212,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 { @@ -530,11 +530,16 @@ 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; @@ -832,6 +837,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; @@ -913,6 +919,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 { @@ -1693,15 +1700,18 @@ table .span12 { text-align: center; text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); vertical-align: middle; - 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; + 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; @@ -1711,8 +1721,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; } @@ -1779,7 +1800,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; } @@ -1787,7 +1810,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 { @@ -1910,6 +1934,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; @@ -2042,7 +2090,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); @@ -2115,27 +2164,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; @@ -2483,6 +2536,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; @@ -2841,6 +2901,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; diff --git a/docs/assets/css/docs.css b/docs/assets/css/docs.css index a532d0819..f6a388c23 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; diff --git a/docs/base-css.html b/docs/base-css.html index 845f0460e..d67d1bd55 100644 --- a/docs/base-css.html +++ b/docs/base-css.html @@ -15,7 +15,7 @@ @@ -1121,7 +1121,7 @@ For example, <code>section</code> should be wrapped as inline.
Extending form controls
- +
@@ -1150,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).

+
+
@@ -1285,6 +1294,11 @@ For example, <code>section</code> should be wrapped as inline. Danger .btn-danger Indicates a dangerous or potentially negative action + + + Inverse + .btn-inverse + Alternate dark gray button, not tied to a semantic action or use diff --git a/docs/components.html b/docs/components.html index cb41c736e..d0b5de632 100644 --- a/docs/components.html +++ b/docs/components.html @@ -15,7 +15,7 @@ @@ -98,6 +98,7 @@
  • Labels
  • +
  • Typography
  • Thumbnails
  • Alerts
  • Progress bars
  • @@ -247,7 +248,9 @@
  • Separated link
  • -
    + +
    +

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

    Example markup

    @@ -771,7 +774,9 @@
  • Another action
  • Something else here
  • +
  • Separated link
  • +
  • One more separated link
  • @@ -810,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.

    @@ -1135,6 +1142,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>
    +
    +
    +
    +
    + + +
    diff --git a/docs/download.html b/docs/download.html index c385046dd..9159787d0 100644 --- a/docs/download.html +++ b/docs/download.html @@ -15,7 +15,7 @@ diff --git a/docs/examples.html b/docs/examples.html index aabd65b46..76eb4b59a 100644 --- a/docs/examples.html +++ b/docs/examples.html @@ -15,7 +15,7 @@ diff --git a/docs/index.html b/docs/index.html index 95661da41..a914f677f 100644 --- a/docs/index.html +++ b/docs/index.html @@ -15,7 +15,7 @@ diff --git a/docs/javascript.html b/docs/javascript.html index c30282f28..4ab4f5af3 100644 --- a/docs/javascript.html +++ b/docs/javascript.html @@ -15,7 +15,7 @@ @@ -930,7 +930,7 @@ $('a[data-toggle="tab"]').on('shown', function (e) {


    -

    Using bootstrap-alerts.js

    +

    Using bootstrap-alert.js

    Enable dismissal of an alert via javascript:

    $(".alert").alert()

    Markup

    diff --git a/docs/less.html b/docs/less.html index 0d1527fb3..97847cc9d 100644 --- a/docs/less.html +++ b/docs/less.html @@ -15,7 +15,7 @@ diff --git a/docs/scaffolding.html b/docs/scaffolding.html index 58bf88b24..18ec5fb42 100644 --- a/docs/scaffolding.html +++ b/docs/scaffolding.html @@ -15,7 +15,7 @@ @@ -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.

    -

    Fluid example

    + +
    +
    +<div class="row">
    +  <div class="span12">
    +    Level 1 of column
    +    <div class="row">
    +      <div class="span6">Level 2</div>
    +      <div class="span6">Level 2</div>
    +    </div>
    +  </div>
    +</div>
    +
    +
    + + + + + + +
    + + +

    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.

    @@ -206,10 +287,10 @@
    -<div class="row">
    +<div class="row-fluid">
       <div class="span12">
         Level 1 of column
    -    <div class="row">
    +    <div class="row-fluid">
           <div class="span6">Level 2</div>
           <div class="span6">Level 2</div>
         </div>
    @@ -219,7 +300,16 @@
         
    -

    Grid customization

    +
    + + + + +
    + @@ -281,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>
    @@ -295,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">
    diff --git a/docs/templates/layout.mustache b/docs/templates/layout.mustache
    index a885b25be..832983e16 100644
    --- a/docs/templates/layout.mustache
    +++ b/docs/templates/layout.mustache
    @@ -15,7 +15,7 @@
     
         
         
     
         
    diff --git a/docs/templates/pages/base-css.mustache b/docs/templates/pages/base-css.mustache
    index 04d2c7c07..4b2f379c5 100644
    --- a/docs/templates/pages/base-css.mustache
    +++ b/docs/templates/pages/base-css.mustache
    @@ -1045,7 +1045,7 @@
             
    {{_i}}Extending form controls{{/i}}
    - +
    @@ -1074,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}}

    +
    +
    @@ -1209,6 +1218,11 @@
    + + + + +
    {{_i}}Danger{{/i}} .btn-danger {{_i}}Indicates a dangerous or potentially negative action{{/i}}
    {{_i}}Inverse{{/i}}.btn-inverse{{_i}}Alternate dark gray button, not tied to a semantic action or use{{/i}}
    diff --git a/docs/templates/pages/components.mustache b/docs/templates/pages/components.mustache index 62a7083b6..0b55e60f0 100644 --- a/docs/templates/pages/components.mustache +++ b/docs/templates/pages/components.mustache @@ -22,6 +22,7 @@
  • {{_i}}Labels{{/i}}
  • +
  • {{_i}}Typography{{/i}}
  • {{_i}}Thumbnails{{/i}}
  • {{_i}}Alerts{{/i}}
  • {{_i}}Progress bars{{/i}}
  • @@ -171,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}}

    @@ -695,7 +698,9 @@
  • {{_i}}Another action{{/i}}
  • {{_i}}Something else here{{/i}}
  • +
  • {{_i}}Separated link{{/i}}
  • +
  • {{_i}}One more separated link{{/i}}
  • @@ -734,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}}

    @@ -1059,6 +1066,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>
    +
    +
    +
    +
    + + +
    diff --git a/docs/templates/pages/javascript.mustache b/docs/templates/pages/javascript.mustache index 553913d21..c072e306b 100644 --- a/docs/templates/pages/javascript.mustache +++ b/docs/templates/pages/javascript.mustache @@ -854,7 +854,7 @@ $('a[data-toggle="tab"]').on('shown', function (e) {


    -

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

    +

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

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

    $(".alert").alert()

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

    diff --git a/docs/templates/pages/scaffolding.mustache b/docs/templates/pages/scaffolding.mustache index 74b824d9c..cc3cceea7 100644 --- a/docs/templates/pages/scaffolding.mustache +++ b/docs/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}}Fluid example{{/i}}

    + +
    +
    +<div class="row">
    +  <div class="span12">
    +    {{_i}}Level 1 of column{{/i}}
    +    <div class="row">
    +      <div class="span6">{{_i}}Level 2{{/i}}</div>
    +      <div class="span6">{{_i}}Level 2{{/i}}</div>
    +    </div>
    +  </div>
    +</div>
    +
    +
    + +
    + + + + +
    + + +

    {{_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}}

    @@ -130,10 +211,10 @@
    -<div class="row">
    +<div class="row-fluid">
       <div class="span12">
         {{_i}}Level 1 of column{{/i}}
    -    <div class="row">
    +    <div class="row-fluid">
           <div class="span6">{{_i}}Level 2{{/i}}</div>
           <div class="span6">{{_i}}Level 2{{/i}}</div>
         </div>
    @@ -143,7 +224,16 @@
         
    -

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

    +
    + + + + +
    + @@ -205,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>
    @@ -219,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">
    diff --git a/docs/upgrading.html b/docs/upgrading.html
    index 5416b9987..0c9ab1673 100644
    --- a/docs/upgrading.html
    +++ b/docs/upgrading.html
    @@ -15,7 +15,7 @@
     
         
         
     
         
    diff --git a/less/button-groups.less b/less/button-groups.less
    index 4b0523df2..a04220a9a 100644
    --- a/less/button-groups.less
    +++ b/less/button-groups.less
    @@ -133,7 +133,8 @@
     .btn-primary,
     .btn-danger,
     .btn-info,
    -.btn-success {
    +.btn-success,
    +.btn-inverse {
       .caret {
         border-top-color: @white;
         .opacity(75);
    diff --git a/less/buttons.less b/less/buttons.less
    index 0dc9e374b..292e04626 100644
    --- a/less/buttons.less
    +++ b/less/buttons.less
    @@ -16,7 +16,7 @@
       text-align: center;
       text-shadow: 0 1px 1px rgba(255,255,255,.75);
       vertical-align: middle;
    -  #gradient > .vertical-three-colors(@white, @white, 25%, darken(@white, 10%)); // Don't use .gradientbar() here since it does a three-color gradient
    +  .buttonBackground(@white, darken(@white, 10%));
       border: 1px solid #ccc;
       border-bottom-color: #bbb;
       .border-radius(4px);
    @@ -25,6 +25,7 @@
       cursor: pointer;
     
       // Give IE7 some love
    +  .reset-filter();
       .ie7-restore-left-whitespace();
     }
     
    @@ -106,7 +107,9 @@
     .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,.25);
       color: @white;
     }
    @@ -115,7 +118,8 @@
     .btn-warning.active,
     .btn-danger.active,
     .btn-success.active,
    -.btn-info.active {
    +.btn-info.active,
    +.btn-dark.active {
       color: rgba(255,255,255,.75);
     }
     
    @@ -140,6 +144,10 @@
     .btn-info {
       .buttonBackground(#5bc0de, #2f96b4);
     }
    +// Inverse appears as dark gray
    +.btn-inverse {
    +  .buttonBackground(#454545, #262626);
    +}
     
     
     // Cross-browser Jank
    @@ -147,6 +155,8 @@
     
     button.btn,
     input[type="submit"].btn {
    +
    +  // Firefox 3.6 only I believe
       &::-moz-focus-inner {
         padding: 0;
         border: 0;
    diff --git a/less/forms.less b/less/forms.less
    index 81833b064..be9dbfaa9 100644
    --- a/less/forms.less
    +++ b/less/forms.less
    @@ -42,7 +42,13 @@ input,
     button,
     select,
     textarea {
    -  #font > .sans-serif(@baseFontSize,normal,@baseLineHeight);
    +  #font > .shorthand(@baseFontSize,normal,@baseLineHeight); // Set size, weight, line-height here
    +}
    +input,
    +button,
    +select,
    +textarea {
    +  #font > #family > .sans-serif(); // And only set font-family here for those that need it (note the missing label element)
     }
     
     // Identify controls by their labels
    @@ -327,6 +333,7 @@ select:focus:required:invalid {
     // ---------
     
     .help-block {
    +  display: block; // account for any element using help-block
       margin-top: 5px;
       margin-bottom: 0;
       color: @grayLight;
    @@ -395,6 +402,7 @@ select:focus:required:invalid {
         .border-radius(3px 0 0 3px);
       }
       .uneditable-input {
    +    border-left-color: #eee;
         border-right-color: #ccc;    
       }
       .add-on {
    diff --git a/less/mixins.less b/less/mixins.less
    index fffb6c1ce..93bb229b5 100644
    --- a/less/mixins.less
    +++ b/less/mixins.less
    @@ -208,13 +208,13 @@
       // Setup the mixins to be used
       .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, @columns) {
         width: 1% * (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1));
    -  } 
    +  }
       .gridColumn(@fluidGridGutterWidth) {
         float: left;
         margin-left: @fluidGridGutterWidth;
       }
       // Take these values and mixins, and make 'em do their thang
    -  .generate(@gridColumns, @fluidGridColumnWidth, @fluidGridGutterWidth) {      
    +  .generate(@gridColumns, @fluidGridColumnWidth, @fluidGridGutterWidth) {
         // Row surrounds the columns
         .row-fluid {
           width: 100%;
    @@ -228,18 +228,18 @@
             margin-left: 0;
           }
           // Default columns
    -      .span1     { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 1); }
    -      .span2     { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 2); }
    -      .span3     { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 3); }
    -      .span4     { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 4); }
    -      .span5     { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 5); }
    -      .span6     { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 6); }
    -      .span7     { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 7); }
    -      .span8     { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 8); }
    -      .span9     { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 9); }
    -      .span10    { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 10); }
    -      .span11    { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 11); }
    -      .span12    { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 12); }
    +      > .span1     { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 1); }
    +      > .span2     { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 2); }
    +      > .span3     { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 3); }
    +      > .span4     { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 4); }
    +      > .span5     { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 5); }
    +      > .span6     { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 6); }
    +      > .span7     { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 7); }
    +      > .span8     { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 8); }
    +      > .span9     { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 9); }
    +      > .span10    { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 10); }
    +      > .span11    { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 11); }
    +      > .span12    { #fluidGridSystem > .columns(@fluidGridGutterWidth, @fluidGridColumnWidth, 12); }
         }
       }
     }
    @@ -270,6 +270,19 @@
       }
     }
     
    +// Make a Grid
    +// -------------------------
    +// Use .makeRow and .makeColumn to assign semantic layouts grid system behavior
    +.makeRow() {
    +  margin-left: @gridGutterWidth * -1;
    +  .clearfix();
    +}
    +.makeColumn(@columns: 1) {
    +  float: left;
    +  margin-left: @gridGutterWidth;
    +  width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1));
    +}
    +
     
     
     // Form field states (used in forms.less)
    diff --git a/less/modals.less b/less/modals.less
    index aa14675ed..d1e06dc26 100644
    --- a/less/modals.less
    +++ b/less/modals.less
    @@ -1,6 +1,7 @@
     // MODALS
     // ------
     
    +// Recalculate z-index where appropriate
     .modal-open {
       .dropdown-menu {  z-index: @zindexDropdown + @zindexModal; }
       .dropdown.open { *z-index: @zindexDropdown + @zindexModal; }
    @@ -8,6 +9,7 @@
       .tooltip       {  z-index: @zindexTooltip  + @zindexModal; }
     }
     
    +// Background
     .modal-backdrop {
       position: fixed;
       top: 0;
    @@ -25,6 +27,7 @@
       .opacity(80);
     }
     
    +// Base modal
     .modal {
       position: fixed;
       top: 50%;
    @@ -53,9 +56,17 @@
       // Close icon
       .close { margin-top: 2px; }
     }
    +
    +// Body (where all modal content resises)
     .modal-body {
       padding: 15px;
     }
    +// Remove bottom margin if need be
    +.modal-body .modal-form {
    +  margin-bottom: 0;
    +}
    +
    +// Footer (for actions)
     .modal-footer {
       padding: 14px 15px 15px;
       margin-bottom: 0;
    diff --git a/less/navbar.less b/less/navbar.less
    index 3ad2a0743..16553c1ff 100644
    --- a/less/navbar.less
    +++ b/less/navbar.less
    @@ -81,7 +81,7 @@
         margin-top: 5px; // make buttons vertically centered in navbar
       }
       .btn-group .btn {
    -    margin-top: 0;
    +    margin-top: 0; // then undo the margin here so we don't accidentally double it
       }
     }
     
    @@ -104,6 +104,14 @@
       input[type="radio"] {
         margin-top: 3px;
       }
    +  .input-append,
    +  .input-prepend {
    +    margin-top: 6px;
    +    white-space: nowrap; // preven two  items from separating within a .navbar-form that has .pull-left
    +    input {
    +      margin-top: 0; // remove the margin on top since it's on the parent
    +    }
    +  }
     }
     
     // Navbar search
    @@ -133,7 +141,7 @@
           background-color: @grayLight;
           background-color: rgba(255,255,255,.5);
         }
    -    // Focus states (we use .focused since IE8 and down doesn't support :focus)
    +    // Focus states (we use .focused since IE7-8 and down doesn't support :focus)
         &:focus,
         &.focused {
           padding: 5px 10px;
    @@ -194,7 +202,7 @@
     }
     // Hover
     .navbar .nav > li > a:hover {
    -  background-color: transparent;
    +  background-color: @navbarLinkBackgroundHover; // "transparent" is default to differentiate :hover from .active
       color: @navbarLinkColorHover;
       text-decoration: none;
     }
    diff --git a/less/navs.less b/less/navs.less
    index 0d37ea388..06219fa62 100644
    --- a/less/navs.less
    +++ b/less/navs.less
    @@ -21,6 +21,21 @@
       background-color: @grayLighter;
     }
     
    +// Nav headers (for dropdowns and lists)
    +.nav .nav-header {
    +  display: block;
    +  padding: 3px 15px;
    +  font-size: 11px;
    +  font-weight: bold;
    +  line-height: @baseLineHeight;
    +  color: @grayLight;
    +  text-shadow: 0 1px 0 rgba(255,255,255,.5);
    +  text-transform: uppercase;
    +}
    +// Space them out when they follow another list item (link)
    +.nav li + .nav-header {
    +  margin-top: 9px;
    +}
     
     
     // NAV LIST
    @@ -33,21 +48,12 @@
     }
     .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,.5);
     }
    -.nav-list .nav-header {
    -  font-size: 11px;
    -  font-weight: bold;
    -  line-height: @baseLineHeight;
    -  color: @grayLight;
    -  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 {
    diff --git a/less/responsive.less b/less/responsive.less
    index 1e3bf371c..c55af0236 100644
    --- a/less/responsive.less
    +++ b/less/responsive.less
    @@ -215,6 +215,10 @@
       .navbar .nav > .divider-vertical {
         display: none;
       }
    +  .navbar .nav .nav-header {
    +    color: @navbarText;
    +    text-shadow: none;
    +  }
       // Nav and dropdown links in navbar
       .navbar .nav > li > a,
       .navbar .dropdown-menu a {
    diff --git a/less/variables.less b/less/variables.less
    index ced64d7cd..3d448ab21 100644
    --- a/less/variables.less
    +++ b/less/variables.less
    @@ -68,6 +68,7 @@
     @navbarHeight:                    40px;
     @navbarBackground:                @grayDarker;
     @navbarBackgroundHighlight:       @grayDark;
    +@navbarLinkBackgroundHover:       transparent;
     
     @navbarText:                      @grayLight;
     @navbarLinkColor:                 @grayLight;