From 1fb98bed91977b710ae321443d0819939a1a8cc7 Mon Sep 17 00:00:00 2001
From: Mark Otto <mark.otto@twitter.com>
Date: Sat, 12 Nov 2011 00:46:02 -0800
Subject: [PATCH] updated docs pages (still wip), adding misc css classes,
 added form styles from 1.4, added github buttons to homepage

---
 bootstrap.css                       |  80 +++++++++++++++++++---------
 bootstrap.min.css                   |  14 +++--
 docs/assets/css/docs.css            |   7 +--
 docs/assets/img/less-logo-large.png | Bin 0 -> 13831 bytes
 docs/less.html                      |  73 ++++++++++++++++++++++++-
 lib/forms.less                      |  72 ++++++++++++-------------
 lib/mixins.less                     |   2 +-
 lib/patterns.less                   |  10 ++++
 8 files changed, 190 insertions(+), 68 deletions(-)
 create mode 100644 docs/assets/img/less-logo-large.png

diff --git a/bootstrap.css b/bootstrap.css
index 2c35362d00..71712829f0 100644
--- a/bootstrap.css
+++ b/bootstrap.css
@@ -6,7 +6,7 @@
  * http://www.apache.org/licenses/LICENSE-2.0
  *
  * Designed and built with all the love in the world @twitter by @mdo and @fat.
- * Date: Mon Oct 31 21:46:38 PDT 2011
+ * Date: Mon Nov  7 21:14:04 PST 2011
  */
 /* Reset.less
  * Props to Eric Meyer (meyerweb.com) for his CSS reset file. We're using an adapted version here that cuts out some of the reset HTML elements we will never need here (i.e., dfn, samp, etc).
@@ -763,33 +763,59 @@ textarea[readonly] {
   border-color: #ddd;
   cursor: not-allowed;
 }
-.has-error {
-  background: #f8dcda;
-  padding: 9px 0;
-  margin: -10px 0 10px;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
+form .clearfix.error > label, form .clearfix.error .help-block, form .clearfix.error .help-inline {
+  color: #b94a48;
 }
-.has-error > label, .has-error span.help-inline, .has-error span.help-block {
-  color: #9d261d;
+form .clearfix.error input, form .clearfix.error textarea {
+  color: #b94a48;
+  border-color: #ee5f5b;
+}
+form .clearfix.error input:focus, form .clearfix.error textarea:focus {
+  border-color: #e9322d;
+  -webkit-box-shadow: 0 0 6px #f8b9b7;
+  -moz-box-shadow: 0 0 6px #f8b9b7;
+  box-shadow: 0 0 6px #f8b9b7;
+}
+form .clearfix.error .input-prepend .add-on, form .clearfix.error .input-append .add-on {
+  color: #b94a48;
+  background-color: #fce6e6;
+  border-color: #b94a48;
+}
+form .clearfix.warning > label, form .clearfix.warning .help-block, form .clearfix.warning .help-inline {
+  color: #c09853;
+}
+form .clearfix.warning input, form .clearfix.warning textarea {
+  color: #c09853;
+  border-color: #ccae64;
+}
+form .clearfix.warning input:focus, form .clearfix.warning textarea:focus {
+  border-color: #be9a3f;
+  -webkit-box-shadow: 0 0 6px #e5d6b1;
+  -moz-box-shadow: 0 0 6px #e5d6b1;
+  box-shadow: 0 0 6px #e5d6b1;
 }
-.has-error input, .has-error textarea, .has-error select {
-  border-color: #c87872;
-  -webkit-box-shadow: 0 0 3px rgba(171, 41, 32, 0.25);
-  -moz-box-shadow: 0 0 3px rgba(171, 41, 32, 0.25);
-  box-shadow: 0 0 3px rgba(171, 41, 32, 0.25);
+form .clearfix.warning .input-prepend .add-on, form .clearfix.warning .input-append .add-on {
+  color: #c09853;
+  background-color: #d2b877;
+  border-color: #c09853;
 }
-.has-error input:focus, .has-error textarea:focus, .has-error select:focus {
-  border-color: #b9554d;
-  -webkit-box-shadow: 0 0 6px rgba(171, 41, 32, 0.5);
-  -moz-box-shadow: 0 0 6px rgba(171, 41, 32, 0.5);
-  box-shadow: 0 0 6px rgba(171, 41, 32, 0.5);
+form .clearfix.success > label, form .clearfix.success .help-block, form .clearfix.success .help-inline {
+  color: #468847;
 }
-.has-error .input-prepend span.add-on, .has-error .input-append span.add-on {
-  background: #f4c8c5;
-  border-color: #c87872;
-  color: #b9554d;
+form .clearfix.success input, form .clearfix.success textarea {
+  color: #468847;
+  border-color: #57a957;
+}
+form .clearfix.success input:focus, form .clearfix.success textarea:focus {
+  border-color: #458845;
+  -webkit-box-shadow: 0 0 6px #9acc9a;
+  -moz-box-shadow: 0 0 6px #9acc9a;
+  box-shadow: 0 0 6px #9acc9a;
+}
+form .clearfix.success .input-prepend .add-on, form .clearfix.success .input-append .add-on {
+  color: #468847;
+  background-color: #bcddbc;
+  border-color: #468847;
 }
 .form-actions {
   padding: 17px 20px 18px;
@@ -2377,6 +2403,12 @@ button.btn::-moz-focus-inner, input[type=submit].btn::-moz-focus-inner {
   -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
   box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
 }
+.pull-right {
+  float: right;
+}
+.pull-left {
+  float: left;
+}
 /* Responsive.less
  * For phone and tablet devices
  * ------------------------------------------------------------- */
diff --git a/bootstrap.min.css b/bootstrap.min.css
index 9e45659050..04badb14ec 100644
--- a/bootstrap.min.css
+++ b/bootstrap.min.css
@@ -127,9 +127,15 @@ input.span14,textarea.span14,select.span14{display:inline-block;float:none;width
 input.span15,textarea.span15,select.span15{display:inline-block;float:none;width:1450px;margin-left:0;}
 input.span16,textarea.span16,select.span16{display:inline-block;float:none;width:1550px;margin-left:0;}
 input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{background-color:#f5f5f5;border-color:#ddd;cursor:not-allowed;}
-.has-error{background:#f8dcda;padding:9px 0;margin:-10px 0 10px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.has-error>label,.has-error span.help-inline,.has-error span.help-block{color:#9d261d;}
-.has-error input,.has-error textarea,.has-error select{border-color:#c87872;-webkit-box-shadow:0 0 3px rgba(171, 41, 32, 0.25);-moz-box-shadow:0 0 3px rgba(171, 41, 32, 0.25);box-shadow:0 0 3px rgba(171, 41, 32, 0.25);}.has-error input:focus,.has-error textarea:focus,.has-error select:focus{border-color:#b9554d;-webkit-box-shadow:0 0 6px rgba(171, 41, 32, 0.5);-moz-box-shadow:0 0 6px rgba(171, 41, 32, 0.5);box-shadow:0 0 6px rgba(171, 41, 32, 0.5);}
-.has-error .input-prepend span.add-on,.has-error .input-append span.add-on{background:#f4c8c5;border-color:#c87872;color:#b9554d;}
+form .clearfix.error>label,form .clearfix.error .help-block,form .clearfix.error .help-inline{color:#b94a48;}
+form .clearfix.error input,form .clearfix.error textarea{color:#b94a48;border-color:#ee5f5b;}form .clearfix.error input:focus,form .clearfix.error textarea:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7;}
+form .clearfix.error .input-prepend .add-on,form .clearfix.error .input-append .add-on{color:#b94a48;background-color:#fce6e6;border-color:#b94a48;}
+form .clearfix.warning>label,form .clearfix.warning .help-block,form .clearfix.warning .help-inline{color:#c09853;}
+form .clearfix.warning input,form .clearfix.warning textarea{color:#c09853;border-color:#ccae64;}form .clearfix.warning input:focus,form .clearfix.warning textarea:focus{border-color:#be9a3f;-webkit-box-shadow:0 0 6px #e5d6b1;-moz-box-shadow:0 0 6px #e5d6b1;box-shadow:0 0 6px #e5d6b1;}
+form .clearfix.warning .input-prepend .add-on,form .clearfix.warning .input-append .add-on{color:#c09853;background-color:#d2b877;border-color:#c09853;}
+form .clearfix.success>label,form .clearfix.success .help-block,form .clearfix.success .help-inline{color:#468847;}
+form .clearfix.success input,form .clearfix.success textarea{color:#468847;border-color:#57a957;}form .clearfix.success input:focus,form .clearfix.success textarea:focus{border-color:#458845;-webkit-box-shadow:0 0 6px #9acc9a;-moz-box-shadow:0 0 6px #9acc9a;box-shadow:0 0 6px #9acc9a;}
+form .clearfix.success .input-prepend .add-on,form .clearfix.success .input-append .add-on{color:#468847;background-color:#bcddbc;border-color:#468847;}
 .form-actions{padding:17px 20px 18px;margin-top:18px;margin-bottom:18px;background-color:#f5f5f5;border-top:1px solid #ddd;}
 .uneditable-input{background-color:#ffffff;display:block;border-color:#eee;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);cursor:not-allowed;}
 :-moz-placeholder{color:#bfbfbf;}
@@ -343,4 +349,6 @@ button.btn::-moz-focus-inner,input[type=submit].btn::-moz-focus-inner{padding:0;
 .media-grid li{display:inline;}
 .media-grid a{float:left;padding:4px;margin:0 0 20px 20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);}.media-grid a img{display:block;}
 .media-grid a:hover{border-color:#0069d6;-webkit-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);-moz-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);}
+.pull-right{float:right;}
+.pull-left{float:left;}
 @media (max-width: 480px){.container{width:auto;padding:0 15px;} .row{margin-left:0;} [class*="span"]{float:none;display:block;width:auto;margin:0;} .modal{width:auto;margin:0;} .form-horizontal .control-group>label{float:none;width:auto;padding-top:0;text-align:left;} .form-horizontal .controls{margin-left:0;} .form-horizontal .control-list{padding-top:0;} .form-horizontal .form-actions{padding-left:0;}}@media (min-width: 480px) and (max-width: 768px){.container{width:auto;padding:0 10px;} .row{margin-left:0;} [class*="span"]{float:none;display:block;width:auto;margin:0;}}@media (min-width: 768px) and (max-width: 940px){.container{width:748px;} .span1{width:44px;} .span2{width:108px;} .span3{width:172px;} .span4{width:236px;} .span5{width:300px;} .span6{width:364px;} .span7{width:428px;} .span8{width:492px;} .span9{width:556px;} .span10{width:620px;} .span11{width:684px;} .span12{width:748px;} .offset1{margin-left:64px;} .offset2{margin-left:128px;} .offset3{margin-left:192px;} .offset4{margin-left:256px;} .offset5{margin-left:320px;} .offset6{margin-left:384px;} .offset7{margin-left:448px;} .offset8{margin-left:512px;} .offset9{margin-left:576px;} .offset10{margin-left:640px;} .offset11{margin-left:704px;} .offset12{margin-left:768px;}}
diff --git a/docs/assets/css/docs.css b/docs/assets/css/docs.css
index 2dde6a452e..b503c23e43 100644
--- a/docs/assets/css/docs.css
+++ b/docs/assets/css/docs.css
@@ -54,9 +54,10 @@ body > .navbar-fixed .brand:hover {
   float: left;
   padding: 1px 5px 1px 4px;
   font-size: 11px;
-  font-weight: normal;
+  font-weight: bold;
   line-height: 16px;
-  color: #555;
+  color: #666;
+  text-shadow: 0 1px 0 #fff;
   -webkit-border-radius: 3px;
      -moz-border-radius: 3px;
           border-radius: 3px;
@@ -67,7 +68,7 @@ body > .navbar-fixed .brand:hover {
 .github-btn .github-ico {
   float: left;
   margin-right: 4px;
-  opacity: .75;
+  opacity: .65;
 }
 .github-btn .count {
   display: inline-block;
diff --git a/docs/assets/img/less-logo-large.png b/docs/assets/img/less-logo-large.png
new file mode 100644
index 0000000000000000000000000000000000000000..1a739b3e9903d8c023ade58af038277b60719d5a
GIT binary patch
literal 13831
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
JPDHLkV1g`~`5XWM

literal 0
HcmV?d00001

diff --git a/docs/less.html b/docs/less.html
index 4fa0f0bdd2..108ec35df6 100644
--- a/docs/less.html
+++ b/docs/less.html
@@ -48,11 +48,82 @@
       <!-- Masthead
       ================================================== -->
       <header class="jumbotron subhead" id="overview">
-        <h1>Using LESS</h1>
+        <h1>Using LESS with Bootstrap</h1>
         <p class="lead">Be a boss and use Bootstrap's built-in variables, mixins, and more via LESS</p>
       </header>
 
 
+
+      <!-- BUILT WITH LESS
+      ================================================== -->
+      <div class="page-header">
+        <h1>Built with LESS</h1>
+      </div>
+      <div class="row">
+        <div class="span4">
+          <h3>Why LESS?</h3>
+          <p>Bootstrap is made with LESS at it's core, a dynamic stylesheet language created by Alexis Sellier. It makes developing systems-based CSS faster, easier, and more fun.</p>
+        </div>
+        <div class="span4">
+          <h3>What's included?</h3>
+          <p>As an extension of CSS, LESS includes variables, mixins for reusable snippets of code, operations for simple math, nesting, and even color functions.</p>
+        </div>
+        <div class="span4">
+          <h3>Learn more</h3>
+          <img style="float: right; height: 36px;" src="assets/img/less-logo-large.png" alt="LESS CSS">
+          <p>Visit the official website at http://lesscss.org to learn more.</p>
+        </div>
+      </div>
+      <div class="row">
+        <div class="span4">
+          <h3>Variables</h3>
+          <p>Managing colors and pixel values in CSS can be a bit of a pain, usually full of copy and paste. Not with LESS though&mdash;assign colors or pixel values as variables and change them once.</p>
+        </div>
+        <div class="span4">
+          <h3>Mixins</h3>
+          <p>Those three border-radius declarations you need to make in regular ol' CSS? Now they're down to one line with the help of mixins, snippets of code you can reuse anywhere.</p>
+        </div>
+        <div class="span4">
+          <h3>Operations</h3>
+          <p>Make your grid, leading, and more super flexible by doing the math on the fly with operations. Multiple, divide, add, and subtract your way to CSS sanity.</p>
+        </div>
+      </div>
+
+
+
+      <!-- VARIABLES
+      ================================================== -->
+      <div class="page-header" id="variables">
+        <h1>Variables</h1>
+      </div>
+
+
+
+      <!-- MIXINS
+      ================================================== -->
+      <div class="page-header" id="mixins">
+        <h1>Mixins</h1>
+      </div>
+
+
+
+      <!-- OPERATIONS
+      ================================================== -->
+      <div class="page-header" id="operations">
+        <h1>Operations</h1>
+      </div>
+
+
+
+      <!-- COMPILING LESS AND BOOTSTRAP
+      ================================================== -->
+      <div class="page-header" id="compiling">
+        <h1>Compiling LESS and Bootstrap</h1>
+      </div>
+
+
+
+
 <!-- Using Bootstrap w/ Less
 ================================================== -->
 <section id="less">
diff --git a/lib/forms.less b/lib/forms.less
index 6edf29e536..b7eb150059 100644
--- a/lib/forms.less
+++ b/lib/forms.less
@@ -3,6 +3,7 @@
  * ------------------------------------------------------------- */
 
 
+
 // GENERAL STYLES
 // --------------
 
@@ -84,6 +85,7 @@ input[type=submit] {
   height: auto;
 }
 
+// Set the height of select and file controls to match text inputs
 select,
 input[type=file] {
   height: @baseLineHeight * 1.5; // In IE7, the height of the select element cannot be changed by height, only font-size
@@ -188,42 +190,47 @@ textarea[readonly] {
 
 
 
-// ERROR STATE
-// -----------
-
-// Set color of error text
-@error-text: desaturate(lighten(@red, 25%), 25%);
+// FORM FIELD FEEDBACK STATES
+// --------------------------
 
-// Style the background of control-groups with errors
-.has-error {
-  background: lighten(@red, 55%);
-  padding: (@baseLineHeight / 2) 0;
-  margin: -10px 0 10px;
-  .border-radius(4px);
+// Mixin for form field states
+.formFieldState(@textColor: #555, @borderColor: #ccc, @backgroundColor: #f5f5f5) {
+  // Set the text color
   > label,
-  span.help-inline,
-  span.help-block {
-    color: @red;
+  .help-block,
+  .help-inline {
+    color: @textColor;
   }
+  // Style inputs accordingly
   input,
-  textarea,
-  select {
-    border-color: @error-text;
-    .box-shadow(0 0 3px rgba(171,41,32,.25));
+  textarea {
+    color: @textColor;
+    border-color: @borderColor;
     &:focus {
-      border-color: darken(@error-text, 10%);
-      .box-shadow(0 0 6px rgba(171,41,32,.5));
+      border-color: darken(@borderColor, 10%);
+      .box-shadow(0 0 6px lighten(@borderColor, 20%);
     }
   }
-  .input-prepend,
-  .input-append {
-    span.add-on {
-      background: lighten(@red, 50%);
-      border-color: @error-text;
-      color: darken(@error-text, 10%);
-    }
+  // Give a small background color for input-prepend/-append
+  .input-prepend .add-on,
+  .input-append .add-on {
+    color: @textColor;
+    background-color: @backgroundColor;
+    border-color: @textColor;
   }
 }
+// Error
+form .clearfix.error {
+  .formFieldState(#b94a48, #ee5f5b, lighten(#ee5f5b, 30%));
+}
+// Warning
+form .clearfix.warning {
+  .formFieldState(#c09853, #ccae64, lighten(#CCAE64, 5%));
+}
+// Success
+form .clearfix.success {
+  .formFieldState(#468847, #57a957, lighten(#57a957, 30%));
+}
 
 
 
@@ -238,7 +245,6 @@ textarea[readonly] {
   border-top: 1px solid #ddd;
 }
 
-
 // For text that needs to appear as an input but should not be an input
 .uneditable-input {
   background-color: @white;
@@ -281,6 +287,7 @@ textarea[readonly] {
 }
 
 
+
 // INLINE FIELDS
 // -------------
 
@@ -301,6 +308,7 @@ textarea[readonly] {
 }
 
 
+
 // INPUT GROUPS
 // ------------
 
@@ -353,7 +361,6 @@ textarea[readonly] {
 
 
 
-
 // SEARCH FORM
 // -----------
 
@@ -366,7 +373,6 @@ textarea[readonly] {
 // HORIZONTAL & VERTICAL FORMS
 // ---------------------------
 
-
 // Common properties
 // -----------------
 
@@ -374,17 +380,11 @@ textarea[readonly] {
 .control-group {
   margin-bottom: @baseLineHeight;
 }
-
 // Bold the labels so they stand out
 .control-group > label {
   font-weight: bold;
 }
 
-// Lists of controls (checkboxes and radios)
-.control-list {
-}
-
-
 // Horizontal-specific styles
 // --------------------------
 
diff --git a/lib/mixins.less b/lib/mixins.less
index 6d034cbcc6..1d2c68856e 100644
--- a/lib/mixins.less
+++ b/lib/mixins.less
@@ -139,7 +139,7 @@
 
 // Transform for scale and rotate
 // translate, rotate, scale -- need to finalize
-.rotation(@degrees: 5deg) {
+.rotate(@degrees: 5deg) {
   -webkit-transform: rotate(@degrees);
      -moz-transform: rotate(@degrees);
       -ms-transform: rotate(@degrees);
diff --git a/lib/patterns.less b/lib/patterns.less
index 367347e270..618b90840f 100644
--- a/lib/patterns.less
+++ b/lib/patterns.less
@@ -1151,3 +1151,13 @@ input[type=submit].btn {
     }
   }
 }
+
+
+// MISC
+// ----
+.pull-right {
+  float: right;
+}
+.pull-left {
+  float: left;
+}
\ No newline at end of file
-- 
GitLab