diff --git a/README.md b/README.md index b0f35480da..d492cd96f3 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 ca2768c6e3..2041e410bc 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 c8c6302964..d01791cc5c 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 1f2aae23e1..57c30ab63c 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 a532d0819d..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; diff --git a/docs/base-css.html b/docs/base-css.html index 845f0460e1..d67d1bd554 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 cb41c736ed..d0b5de632d 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 c385046dd4..9159787d09 100644 --- a/docs/download.html +++ b/docs/download.html @@ -15,7 +15,7 @@ diff --git a/docs/examples.html b/docs/examples.html index aabd65b46f..76eb4b59a9 100644 --- a/docs/examples.html +++ b/docs/examples.html @@ -15,7 +15,7 @@ diff --git a/docs/index.html b/docs/index.html index 95661da41a..a914f677fe 100644 --- a/docs/index.html +++ b/docs/index.html @@ -15,7 +15,7 @@ diff --git a/docs/javascript.html b/docs/javascript.html index c30282f283..4ab4f5af3b 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 0d1527fb35..97847cc9d4 100644 --- a/docs/less.html +++ b/docs/less.html @@ -15,7 +15,7 @@ diff --git a/docs/scaffolding.html b/docs/scaffolding.html index 58bf88b24e..18ec5fb422 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 a885b25beb..832983e16a 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 04d2c7c074..4b2f379c58 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 62a7083b61..0b55e60f04 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 553913d21d..c072e306bd 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 74b824d9ca..cc3cceea78 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 5416b99876..0c9ab1673c 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 4b0523df29..a04220a9a6 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 0dc9e374bb..292e046267 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 81833b0646..be9dbfaa9c 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 fffb6c1ceb..93bb229b51 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 aa14675ede..d1e06dc261 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 3ad2a0743f..16553c1ff3 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 0d37ea388e..06219fa62d 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 1e3bf371cc..c55af02369 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 ced64d7cd6..3d448ab212 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;