diff --git a/docs/assets/bootstrap.zip b/docs/assets/bootstrap.zip index eccddc363634..142b61377563 100644 Binary files a/docs/assets/bootstrap.zip and b/docs/assets/bootstrap.zip differ diff --git a/docs/assets/css/bootstrap.css b/docs/assets/css/bootstrap.css index 41eeea9fa460..55e9728b9137 100644 --- a/docs/assets/css/bootstrap.css +++ b/docs/assets/css/bootstrap.css @@ -1087,20 +1087,19 @@ table { } .table-bordered { border: 1px solid #ddd; + border-left: 0; border-collapse: separate; *border-collapse: collapsed; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; } -.table-bordered th + th, -.table-bordered td + td, -.table-bordered th + td, -.table-bordered td + th { +.table-bordered th, .table-bordered td { border-left: 1px solid #ddd; } .table-bordered thead:first-child tr:first-child th, .table-bordered tbody:first-child tr:first-child th, .table-bordered tbody:first-child tr:first-child td { border-top: 0; + border-bottom: 1px solid #ddd; } .table-bordered thead:first-child tr:first-child th:first-child, .table-bordered tbody:first-child tr:first-child td:first-child { -webkit-border-radius: 4px 0 0 0; @@ -1684,10 +1683,9 @@ table .span24 { *border-right-width: 2px; *border-bottom-width: 2px; } -.dropdown-menu.bottom-up { - top: auto; - bottom: 100%; - margin-bottom: 2px; +.dropdown-menu.pull-right { + right: 0; + left: auto; } .dropdown-menu .divider { height: 1px; @@ -1727,6 +1725,16 @@ table .span24 { left: auto; right: 0; } +.dropup .caret, .navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 4px solid #000000; + content: "\2191"; +} +.dropup .dropdown-menu, .navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} .typeahead { margin-top: 2px; -webkit-border-radius: 4px; @@ -2199,6 +2207,7 @@ button.btn.btn-small, input[type="submit"].btn.btn-small { .btn-success .caret, .btn-inverse .caret { border-top-color: #ffffff; + border-bottom-color: #ffffff; opacity: 0.75; filter: alpha(opacity=75); } @@ -2410,13 +2419,16 @@ button.btn.btn-small, input[type="submit"].btn.btn-small { } .nav-tabs .dropdown-toggle .caret, .nav-pills .dropdown-toggle .caret { border-top-color: #0088cc; + border-bottom-color: #0088cc; margin-top: 6px; } .nav-tabs .dropdown-toggle:hover .caret, .nav-pills .dropdown-toggle:hover .caret { border-top-color: #005580; + border-bottom-color: #005580; } .nav-tabs .active .dropdown-toggle .caret, .nav-pills .active .dropdown-toggle .caret { border-top-color: #333333; + border-bottom-color: #333333; } .nav > .dropdown.active > a:hover { color: #000000; @@ -2429,6 +2441,7 @@ button.btn.btn-small, input[type="submit"].btn.btn-small { } .nav .open .caret, .nav .open.active .caret, .nav .open a:hover .caret { border-top-color: #ffffff; + border-bottom-color: #ffffff; opacity: 1; filter: alpha(opacity=100); } @@ -2544,6 +2557,9 @@ button.btn.btn-small, input[type="submit"].btn.btn-small { -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); } +.navbar .container { + width: auto; +} .btn-navbar { display: none; float: right; @@ -2699,20 +2715,26 @@ button.btn.btn-small, input[type="submit"].btn.btn-small { box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); outline: 0; } -.navbar-fixed-top { +.navbar-fixed-top, .navbar-fixed-bottom { position: fixed; - top: 0; right: 0; left: 0; z-index: 1030; + margin-bottom: 0; } -.navbar-fixed-top .navbar-inner { +.navbar-fixed-top .navbar-inner, .navbar-fixed-bottom .navbar-inner { padding-left: 0; padding-right: 0; -webkit-border-radius: 0; -moz-border-radius: 0; border-radius: 0; } +.navbar-fixed-top { + top: 0; +} +.navbar-fixed-bottom { + bottom: 0; +} .navbar .nav { position: relative; left: 0; @@ -2784,8 +2806,22 @@ button.btn.btn-small, input[type="submit"].btn.btn-small { top: -6px; left: 10px; } +.navbar-fixed-bottom .dropdown-menu:before { + border-top: 7px solid #ccc; + border-top-color: rgba(0, 0, 0, 0.2); + border-bottom: 0; + bottom: -7px; + top: auto; +} +.navbar-fixed-bottom .dropdown-menu:after { + border-top: 6px solid #ffffff; + border-bottom: 0; + bottom: -6px; + top: auto; +} .navbar .nav .dropdown-toggle .caret, .navbar .nav .open.dropdown .caret { border-top-color: #ffffff; + border-bottom-color: #ffffff; } .navbar .nav .active .caret { opacity: 1; @@ -2797,11 +2833,15 @@ button.btn.btn-small, input[type="submit"].btn.btn-small { .navbar .nav .active > .dropdown-toggle:hover { color: #ffffff; } -.navbar .nav.pull-right .dropdown-menu:before { +.navbar .nav.pull-right .dropdown-menu, .navbar .nav .dropdown-menu.pull-right { + left: auto; + right: 0; +} +.navbar .nav.pull-right .dropdown-menu:before, .navbar .nav .dropdown-menu.pull-right:before { left: auto; right: 12px; } -.navbar .nav.pull-right .dropdown-menu:after { +.navbar .nav.pull-right .dropdown-menu:after, .navbar .nav .dropdown-menu.pull-right:after { left: auto; right: 13px; } diff --git a/docs/base-css.html b/docs/base-css.html index 79ea2ac55ad6..3a6494ddc1d6 100644 --- a/docs/base-css.html +++ b/docs/base-css.html @@ -571,7 +571,7 @@

1. Default table styles

# First Name Last Name - Language + Username @@ -579,19 +579,19 @@

1. Default table styles

1 Mark Otto - CSS + @mdo 2 Jacob Thornton - Javascript + @fat 3 - Stu - Dent - HTML + Larry + the Bird + @twitter @@ -616,7 +616,7 @@

2. Striped table

# First Name Last Name - Language + Username @@ -624,19 +624,19 @@

2. Striped table

1 Mark Otto - CSS + @mdo 2 Jacob Thornton - Javascript + @fat 3 - Stu - Dent - HTML + Larry + the Bird + @twitter @@ -660,31 +660,31 @@

3. Bordered table

# First Name Last Name - Language + Username - 1 - Mark Otto - CSS + 1 + Mark + Otto + @mdo + + + Mark + Otto + @TwBootstrap 2 Jacob Thornton - Javascript - - - 3 - Stu - Dent + @fat 3 - Brosef - Stalin - HTML + Larry the Bird + @twitter @@ -708,7 +708,7 @@

4. Condensed table

# First Name Last Name - Language + Username @@ -716,19 +716,18 @@

4. Condensed table

1 Mark Otto - CSS + @mdo 2 Jacob Thornton - Javascript + @fat 3 - Stu - Dent - HTML + Larry the Bird + @twitter @@ -749,37 +748,36 @@

5. Combine them all!

+ + + + + - - - + + + + - + - + - - - - - - - - - + +
Full name
#First NameLast NameLanguageFirst NameLast NameUsername
1 Mark OttoCSS@mdo
2 Jacob ThorntonJavascript@fat
3StuDentHTML
4BrosefStalinHTMLLarry the Bird@twitter
diff --git a/docs/components.html b/docs/components.html index 172fbcf20d7e..8b1a67553e90 100644 --- a/docs/components.html +++ b/docs/components.html @@ -188,12 +188,13 @@

Dropdowns in button groups

================================================== -->
+

Button dropdowns

-

Button dropdowns

+

Overview and examples

Use any button to trigger a dropdown menu by placing it within a .btn-group and providing the proper menu markup.

@@ -278,10 +279,14 @@

Example markup

+
+ Heads up! In some cases—like mobile—dropdown menus will extend outside the viewport. You need to resolve the alignment manually or with custom javascript. +
+

Split button dropdowns

-

Split button dropdowns

+

Overview and examples

Building on the button group styles and markup, we can easily create a split button. Split buttons feature a standard action on the left and a dropdown toggle on the right with contextual links.

@@ -352,7 +357,30 @@

Split button dropdowns

  • Separated link
  • -
    +
    +

    Right aligned menus

    +

    Add .pull-right to the .dropdown-menu of any button dropdown for right aligned menus.

    + +
    +<div class="btn-group">
    +  ...
    +  <ul class="dropdown-menu pull-right">
    +    <!-- dropdown menu links -->
    +  </ul>
    +</div>
    +

    Example markup

    @@ -368,6 +396,44 @@

    Example markup

    </ul> </div> +

    Dropup menus

    +

    Dropdown menus can also be toggled from the bottom up by adding a single class to the immediate parent of .dropdown-menu. It will flip the direction of the .caret and reposition the menu itself to move from the bottom up instead of top down.

    + +
    +<div class="btn-group dropup">
    +  <a class="btn" href="#">Dropup</a>
    +  <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
    +    <span class="caret"></span>
    +  </a>
    +  <ul class="dropdown-menu">
    +    <!-- dropdown menu links -->
    +  </ul>
    +</div>
    +
    +
    @@ -474,7 +540,7 @@

    Rich menus made easy

    Tabs with dropdowns

     <ul class="nav nav-tabs">
    @@ -506,7 +582,7 @@ 

    Tabs with dropdowns

    Pills with dropdowns

     <ul class="nav nav-pills">
    @@ -787,7 +873,7 @@ 

    Static navbar example

    An example of a static (not fixed to the top) navbar with project name, navigation, and search form.

    Fixed navbar

    -

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

    +

    Fix the navbar to the top or bottom of the viewport with an additional class on 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.

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

    When you affix the navbar, remember to account for the hidden area underneath. Add 40px or more of apdding to the <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.

    @@ -929,8 +1026,8 @@ 

    Nav links

    Component alignment

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

    -

    Adding dropdowns

    -

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

    +

    Adding dropdown menus

    +

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

     <ul class="nav">
       <li class="dropdown">
    diff --git a/docs/scaffolding.html b/docs/scaffolding.html
    index a35012e9c8b0..ea95796d546f 100644
    --- a/docs/scaffolding.html
    +++ b/docs/scaffolding.html
    @@ -486,13 +486,13 @@ 

    Supported devices

    Fluid columns, no fixed widths - Portrait tablets - 480px to 768px + Smartphones to tablets + 767px and below Fluid columns, no fixed widths - Landscape tablets - 768px to 979px + Portrait tablets + 768px and above 42px 20px diff --git a/docs/templates/pages/base-css.mustache b/docs/templates/pages/base-css.mustache index 72b09c271808..fde1e002ef3e 100644 --- a/docs/templates/pages/base-css.mustache +++ b/docs/templates/pages/base-css.mustache @@ -495,7 +495,7 @@ # {{_i}}First Name{{/i}} {{_i}}Last Name{{/i}} - {{_i}}Language{{/i}} + {{_i}}Username{{/i}} @@ -503,19 +503,19 @@ 1 Mark Otto - CSS + @mdo 2 Jacob Thornton - Javascript + @fat 3 - Stu - Dent - HTML + Larry + the Bird + @twitter @@ -540,7 +540,7 @@ # {{_i}}First Name{{/i}} {{_i}}Last Name{{/i}} - {{_i}}Language{{/i}} + {{_i}}Username{{/i}} @@ -548,19 +548,19 @@ 1 Mark Otto - CSS + @mdo 2 Jacob Thornton - Javascript + @fat 3 - Stu - Dent - HTML + Larry + the Bird + @twitter @@ -584,31 +584,31 @@ # {{_i}}First Name{{/i}} {{_i}}Last Name{{/i}} - {{_i}}Language{{/i}} + {{_i}}Username{{/i}} - 1 - Mark Otto - CSS + 1 + Mark + Otto + @mdo + + + Mark + Otto + @TwBootstrap 2 Jacob Thornton - Javascript - - - 3 - Stu - Dent + @fat 3 - Brosef - Stalin - HTML + Larry the Bird + @twitter @@ -632,7 +632,7 @@ # {{_i}}First Name{{/i}} {{_i}}Last Name{{/i}} - {{_i}}Language{{/i}} + {{_i}}Username{{/i}} @@ -640,19 +640,18 @@ 1 Mark Otto - CSS + @mdo 2 Jacob Thornton - Javascript + @fat 3 - Stu - Dent - HTML + Larry the Bird + @twitter @@ -673,37 +672,36 @@
    + + + + + - - - + + + + - + - + - - - - - - - - - + +
    {{_i}}Full name{{/i}}
    #{{_i}}First Name{{/i}}{{_i}}Last Name{{/i}}{{_i}}Language{{/i}}{{_i}}First Name{{/i}}{{_i}}Last Name{{/i}}{{_i}}Username{{/i}}
    1 Mark OttoCSS@mdo
    2 Jacob ThorntonJavascript@fat
    3StuDentHTML
    4BrosefStalinHTMLLarry the Bird@twitter
    diff --git a/docs/templates/pages/components.mustache b/docs/templates/pages/components.mustache index 3a176fa446ac..24ff341b6c1f 100644 --- a/docs/templates/pages/components.mustache +++ b/docs/templates/pages/components.mustache @@ -112,12 +112,13 @@ ================================================== -->
    +

    {{_i}}Button dropdowns{{/i}}

    -

    {{_i}}Button dropdowns{{/i}}

    +

    {{_i}}Overview and examples{{/i}}

    {{_i}}Use any button to trigger a dropdown menu by placing it within a .btn-group and providing the proper menu markup.{{/i}}

    @@ -202,10 +203,14 @@
    +
    + {{_i}}Heads up!{{/i}} {{_i}}In some cases—like mobile—dropdown menus will extend outside the viewport. You need to resolve the alignment manually or with custom javascript.{{/i}} +
    +

    {{_i}}Split button dropdowns{{/i}}

    -

    {{_i}}Split button dropdowns{{/i}}

    +

    {{_i}}Overview and examples{{/i}}

    {{_i}}Building on the button group styles and markup, we can easily create a split button. Split buttons feature a standard action on the left and a dropdown toggle on the right with contextual links.{{/i}}

    @@ -276,7 +281,30 @@
  • {{_i}}Separated link{{/i}}
  • -
    +
    +

    {{_i}}Right aligned menus{{/i}}

    +

    {{_i}}Add .pull-right to the .dropdown-menu of any button dropdown for right aligned menus.{{/i}}

    +
    + +
    +
    +<div class="btn-group">
    +  ...
    +  <ul class="dropdown-menu pull-right">
    +    <!-- {{_i}}dropdown menu links{{/i}} -->
    +  </ul>
    +</div>
    +

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

    @@ -292,6 +320,44 @@ </ul> </div> +

    {{_i}}Dropup menus{{/i}}

    +

    {{_i}}Dropdown menus can also be toggled from the bottom up by adding a single class to the immediate parent of .dropdown-menu. It will flip the direction of the .caret and reposition the menu itself to move from the bottom up instead of top down.{{/i}}

    +
    + + +
    +
    +<div class="btn-group dropup">
    +  <a class="btn" href="#">{{_i}}Dropup{{/i}}</a>
    +  <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
    +    <span class="caret"></span>
    +  </a>
    +  <ul class="dropdown-menu">
    +    <!-- {{_i}}dropdown menu links{{/i}} -->
    +  </ul>
    +</div>
    +
    +
    @@ -398,7 +464,7 @@

    {{_i}}Tabs with dropdowns{{/i}}

     <ul class="nav nav-tabs">
    @@ -430,7 +506,7 @@
           

    {{_i}}Pills with dropdowns{{/i}}

     <ul class="nav nav-pills">
    @@ -711,7 +797,7 @@
       

    {{_i}}An example of a static (not fixed to the top) navbar with project name, navigation, and search form.{{/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}}

    +

    {{_i}}Fix the navbar to the top or bottom of the viewport with an additional class on 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}}

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

    {{_i}}When you affix the navbar, remember to account for the hidden area underneath. Add 40px or more of apdding to the <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}}

    @@ -853,8 +950,8 @@
     

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

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

    -

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

    -

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

    +

    {{_i}}Adding dropdown menus{{/i}}

    +

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

     <ul class="nav">
       <li class="dropdown">
    diff --git a/docs/templates/pages/scaffolding.mustache b/docs/templates/pages/scaffolding.mustache
    index fff47d438380..d9a2f50d19f4 100644
    --- a/docs/templates/pages/scaffolding.mustache
    +++ b/docs/templates/pages/scaffolding.mustache
    @@ -410,13 +410,13 @@
                 {{_i}}Fluid columns, no fixed widths{{/i}}
               
               
    -            {{_i}}Portrait tablets{{/i}}
    -            480px to 768px
    +            {{_i}}Smartphones to tablets{{/i}}
    +            767px and below
                 {{_i}}Fluid columns, no fixed widths{{/i}}
               
               
    -            {{_i}}Landscape tablets{{/i}}
    -            768px to 979px
    +            {{_i}}Portrait tablets{{/i}}
    +            768px and above
                 42px
                 20px
               
    diff --git a/less/button-groups.less b/less/button-groups.less
    index a04220a9a62b..cfb25f1409eb 100644
    --- a/less/button-groups.less
    +++ b/less/button-groups.less
    @@ -137,6 +137,7 @@
     .btn-inverse {
       .caret {
         border-top-color: @white;
    +    border-bottom-color: @white;
         .opacity(75);
       }
     }
    diff --git a/less/dropdowns.less b/less/dropdowns.less
    index fa46e288b1c7..12ce7c2e507d 100644
    --- a/less/dropdowns.less
    +++ b/less/dropdowns.less
    @@ -13,7 +13,9 @@
     .open .dropdown-toggle {
       outline: 0;
     }
    +
     // Dropdown arrow/caret
    +// --------------------
     .caret {
       display: inline-block;
       width: 0;
    @@ -29,6 +31,7 @@
       .opacity(30);
       content: "\2193";
     }
    +
     .dropdown .caret {
       margin-top: 8px;
       margin-left: 2px;
    @@ -37,7 +40,9 @@
     .open.dropdown .caret {
       .opacity(100);
     }
    +
     // The dropdown menu (ul)
    +// ----------------------
     .dropdown-menu {
       position: absolute;
       top: 100%;
    @@ -62,11 +67,10 @@
       *border-right-width: 2px;
       *border-bottom-width: 2px;
     
    -  // Allow for dropdowns to go bottom up (aka, dropup-menu)
    -  &.bottom-up {
    -    top: auto;
    -    bottom: 100%;
    -    margin-bottom: 2px;
    +  // Aligns the dropdown menu to right
    +  &.pull-right {
    +    right: 0;
    +    left: auto;
       }
     
       // Dividers (basically an hr) within the dropdown
    @@ -87,6 +91,7 @@
     }
     
     // Hover state
    +// -----------
     .dropdown-menu li > a:hover,
     .dropdown-menu .active > a,
     .dropdown-menu .active > a:hover {
    @@ -96,6 +101,7 @@
     }
     
     // Open state for the dropdown
    +// ---------------------------
     .dropdown.open {
       // IE7's z-index only goes to the nearest positioned ancestor, which would
       // make the menu appear below buttons that appeared later on the page
    @@ -117,7 +123,28 @@
       right: 0;
     }
     
    +// Allow for dropdowns to go bottom up (aka, dropup-menu)
    +// ------------------------------------------------------
    +// Just add .dropup after the standard .dropdown class and you're set, bro.
    +// TODO: abstract this so that the navbar fixed styles are not placed here?
    +.dropup,
    +.navbar-fixed-bottom .dropdown {
    +  // Reverse the caret
    +  .caret {
    +    border-top: 0;
    +    border-bottom: 4px solid @black;
    +    content: "\2191";
    +  }
    +  // Different positioning for bottom up menu
    +  .dropdown-menu {
    +    top: auto;
    +    bottom: 100%;
    +    margin-bottom: 1px;
    +  }
    +}
    +
     // Typeahead
    +// ---------
     .typeahead {
       margin-top: 2px; // give it some space to breathe
       .border-radius(4px);
    diff --git a/less/mixins.less b/less/mixins.less
    index 2a184aaba9c2..2cd916707103 100644
    --- a/less/mixins.less
    +++ b/less/mixins.less
    @@ -589,4 +589,4 @@
     
       }
     
    -}
    \ No newline at end of file
    +}
    diff --git a/less/navbar.less b/less/navbar.less
    index 87f260699e47..1bc6b185b95c 100644
    --- a/less/navbar.less
    +++ b/less/navbar.less
    @@ -20,6 +20,12 @@
       .box-shadow(@shadow);
     }
     
    +// Set width to auto for default container
    +// We then reset it for fixed navbars in the #gridSystem mixin
    +.navbar .container {
    +  width: auto;
    +}
    +
     // Navbar button for toggling navbar items in responsive layouts
     .btn-navbar {
       display: none;
    @@ -153,22 +159,37 @@
     }
     
     
    +
     // FIXED NAVBAR
     // ------------
     
    -.navbar-fixed-top {
    +// Shared (top/bottom) styles
    +.navbar-fixed-top,
    +.navbar-fixed-bottom {
       position: fixed;
    -  top: 0;
       right: 0;
       left: 0;
       z-index: @zindexFixedNavbar;
    +  margin-bottom: 0; // remove 18px margin for static navbar
     }
    -.navbar-fixed-top .navbar-inner {
    +.navbar-fixed-top .navbar-inner,
    +.navbar-fixed-bottom .navbar-inner {
       padding-left:  0;
       padding-right: 0;
       .border-radius(0);
     }
     
    +// Fixed to top
    +.navbar-fixed-top {
    +  top: 0;
    +}
    +
    +// Fixed to bottom
    +.navbar-fixed-bottom {
    +  bottom: 0;
    +}
    +
    +
     
     // NAVIGATION
     // ----------
    @@ -259,11 +280,27 @@
         left: 10px;
       }
     }
    -
    +// Menu position and menu caret support for dropups via extra bottom-up class
    +.navbar-fixed-bottom .dropdown-menu {
    +  &:before {
    +    border-top: 7px solid #ccc;
    +    border-top-color: rgba(0, 0, 0, 0.2);
    +    border-bottom: 0;
    +    bottom: -7px;
    +    top: auto;
    +  }
    +  &:after {
    +    border-top: 6px solid #ffffff;
    +    border-bottom: 0;
    +    bottom: -6px;
    +    top: auto;
    +  }
    +}
     // Dropdown toggle caret
     .navbar .nav .dropdown-toggle .caret,
     .navbar .nav .open.dropdown .caret {
       border-top-color: @white;
    +  border-bottom-color: @white;
     }
     .navbar .nav .active .caret {
       .opacity(100);
    @@ -282,7 +319,11 @@
     }
     
     // Right aligned menus need alt position
    -.navbar .nav.pull-right .dropdown-menu {
    +// TODO: rejigger this at some point to simplify the selectors
    +.navbar .nav.pull-right .dropdown-menu, 
    +.navbar .nav .dropdown-menu.pull-right {
    +  left: auto;
    +  right: 0;
       &:before {
         left: auto;
         right: 12px;
    diff --git a/less/navs.less b/less/navs.less
    index a940cc13ca0a..e00bffe5f8a9 100644
    --- a/less/navs.less
    +++ b/less/navs.less
    @@ -204,11 +204,13 @@
     .nav-tabs .dropdown-toggle .caret,
     .nav-pills .dropdown-toggle .caret {
       border-top-color: @linkColor;
    +  border-bottom-color: @linkColor;
       margin-top: 6px;
     }
     .nav-tabs .dropdown-toggle:hover .caret,
     .nav-pills .dropdown-toggle:hover .caret {
       border-top-color: @linkColorHover;
    +  border-bottom-color: @linkColorHover;
     }
     
     // Active dropdown links
    @@ -216,6 +218,7 @@
     .nav-tabs .active .dropdown-toggle .caret,
     .nav-pills .active .dropdown-toggle .caret {
       border-top-color: @grayDark;
    +  border-bottom-color: @grayDark;
     }
     
     // Active:hover dropdown links
    @@ -238,6 +241,7 @@
     .nav .open.active .caret,
     .nav .open a:hover .caret {
       border-top-color: @white;
    +  border-bottom-color: @white;
       .opacity(100);
     }
     
    diff --git a/less/tables.less b/less/tables.less
    index 1342de2ff658..d8bce582f0c7 100644
    --- a/less/tables.less
    +++ b/less/tables.less
    @@ -64,13 +64,12 @@ table {
     
     .table-bordered {
       border: 1px solid #ddd;
    +  border-left: 0;
       border-collapse: separate; // Done so we can round those corners!
       *border-collapse: collapsed; // IE7 can't round corners anyway
       .border-radius(4px);
    -  th + th,
    -  td + td,
    -  th + td,
    -  td + th {
    +  th,
    +  td {
         border-left: 1px solid #ddd;
       }
       // Prevent a double border
    @@ -78,6 +77,7 @@ table {
       tbody:first-child tr:first-child th,
       tbody:first-child tr:first-child td {
         border-top: 0;
    +    border-bottom: 1px solid #ddd;
       }
       // For first th or td in the first row in the first thead or tbody
       thead:first-child tr:first-child th:first-child,