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—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