Adds theme Amelia, and a select to switch themes in Calf.
authorSalvatore Iovene <salvatore.iovene@intel.com>
Tue, 30 Oct 2012 08:54:55 +0000 (10:54 +0200)
committerSalvatore Iovene <salvatore.iovene@intel.com>
Tue, 30 Oct 2012 09:09:02 +0000 (11:09 +0200)
examples/calf/index.html
examples/calf/javascripts/calf.js
grunt.js
src/javascripts/cowhide-core.js
src/less/cowhide-amelia.less [new file with mode: 0644]
src/themes/amelia-theme.less [new file with mode: 0644]
src/themes/amelia-variables.less [new file with mode: 0644]

index 70388c0..b171641 100644 (file)
         <small>An HTML5 framework built on top of Twitter Bootstrap.</small>
       </h1>
 
-      <div class="well">
+      <div class="well" style="overflow: hidden">
         <button id="night-mode-toggle" class="btn btn-primary" data-toggle="button">Night mode</button>
         <button id="driving-mode-toggle" class="btn btn-primary" data-toggle="button" data-ignore-driving-mode="true">Driving mode</button>
 
         <div class="pull-right">
-          <form class="form-inline" id="font-size-test">
+          <form class="form-inline" id="controls">
             <div class="control-group">
               <div class="input-append">
                 <input type="text"
                 <button class="btn" type="button">Apply</button>
               </div>
             </div>
+
+            <div class="control-group">
+              <select type="text" id="theme-selector">
+                <option value="0">Select theme:</option>
+                <option value="default">Default</option>
+                <option value="amelia">Amelia</option>
+              </select>
+            </div>
         </div>
       </div>
 
index ec80e07..d3b7d82 100644 (file)
@@ -11,11 +11,17 @@ $(function() {
         $.cowhide.toggleDrivingMode();
     });
 
-    $('form#font-size-test button').click(function() {
+    $('form#controls button').click(function() {
         var $form = $(this).closest('form');
         var $input = $form.find('input');
         var val = $input.val();
 
         $('.btn').css('font-size', val + 'px');
-    })
+    });
+
+    $('form#controls select#theme-selector').change(function() {
+        var value = $(this).find('option:selected').val();
+        if (value !== '0')
+            $.cowhide.setTheme(value);
+    });
 });
index e490c62..43056a7 100644 (file)
--- a/grunt.js
+++ b/grunt.js
@@ -62,6 +62,11 @@ module.exports = function(grunt) {
         files: {
           'dist/cowhide-default-night.css': 'src/less/cowhide-default-night.less'
         }
+      },
+      amelia_theme: {
+        files: {
+          'dist/cowhide-amelia.css': 'src/less/cowhide-amelia.less'
+        }
       }
     },
     concat: {
@@ -110,6 +115,12 @@ module.exports = function(grunt) {
           'dist/cowhide-default-night.css',
           'lib/jquery.ui.slider.css'
         ], dest: 'dist/cowhide-default-night.css'
+      },
+      css_amelia: {
+        src: [
+          'dist/cowhide-amelia.css',
+          'lib/jquery.ui.slider.css'
+        ], dest: 'dist/cowhide-amelia.css'
       }
     },
     min: {
@@ -130,6 +141,10 @@ module.exports = function(grunt) {
       default_night_theme: {
         src: ['dist/cowhide-default-night.css'],
         dest: 'dist/cowhide-default-night.min.css'
+      },
+      amelia_theme: {
+        src: ['dist/cowhide-amelia.css'],
+        dest: 'dist/cowhide-amelia.min.css'
       }
     },
     copy: {
index cf6d45e..ecb8813 100644 (file)
         },
 
         setTheme: function(name, nightMode) {
+            if (name === this.currentTheme && nightMode != this.nightMode) {
+                return;
+            }
+
             varĀ $link = $('link#cowhide-theme');
             var theme =
                 this.themeEngineOptions.path +
                 $link.attr('href', theme);
                 $backdrop.remove();
             }, 200);
+
+            this.currentTheme = name;
+            if (nightMode !== undefined) {
+                this.nightMode = nightMode;
+            }
         },
 
         toggleNightMode: function() {
-            this.nightMode = !this.nightMode;
-            this.setTheme(this.currentTheme, this.nightMode);
+            this.setTheme(this.currentTheme, !this.nightMode);
         },
 
         toggleDrivingMode: function() {
diff --git a/src/less/cowhide-amelia.less b/src/less/cowhide-amelia.less
new file mode 100644 (file)
index 0000000..7ba6e76
--- /dev/null
@@ -0,0 +1,7 @@
+@import "../bootstrap/less/bootstrap.less";
+
+@import "../themes/amelia-variables.less";
+@import "../themes/amelia-theme.less";
+
+// TODO: customize for amelia theme.
+@import "cowhide-seat-selector.less";
diff --git a/src/themes/amelia-theme.less b/src/themes/amelia-theme.less
new file mode 100644 (file)
index 0000000..8065f75
--- /dev/null
@@ -0,0 +1,738 @@
+// Bootswatch.less
+// Swatch: Amelia
+// Version: 2.1.1
+// -----------------------------------------------------
+
+// TYPOGRAPHY
+// -----------------------------------------------------
+
+@import url('https://fonts.googleapis.com/css?family=Lobster');
+@import url('https://fonts.googleapis.com/css?family=Cabin:400,700');
+
+h6 {
+       color: @textColor;
+}
+
+h1 small, h2 small, h3 small, h4 small, h5 small, h6 small {
+       font-family: @baseFontFamily;
+       color: @textColor;
+}
+
+code, pre {
+       background-color: rgba(255, 255, 255, 0.3);
+       padding: 2px;
+}
+
+blockquote {
+
+       border-left-color: lighten(#147E88, 12%);
+
+       &.pull-right {
+               border-right-color: lighten(#147E88, 12%);
+       }
+
+       small {
+               color: rgba(255, 255, 255, 0.6);
+       }
+}
+
+.muted {
+       color: rgba(255, 255, 255, 0.5);
+}
+
+// SCAFFOLDING
+// -----------------------------------------------------
+
+body {
+       #gradient > .radial(lighten(#0F8790, 7%), #0F8790);
+}
+
+hr {
+       border-bottom: 1px solid rgba(255, 255, 255, 0.3);
+}
+
+.page-header {
+       margin: 30px 0 15px;
+       border-bottom: 0px solid transparent;
+}
+
+// NAVBAR
+// -----------------------------------------------------
+
+.navbar {
+
+       .navbar-inner {
+               .border-radius(0);
+       }
+
+       .brand {
+               padding: 15px 20px 14px;
+               font-family: @headingsFontFamily;
+               font-size: 24px;
+               font-weight: normal;
+       }
+
+       .nav > li > a {
+               padding-top: 17px;
+               padding-bottom: 14px;
+               text-shadow: none;
+       }
+
+       .nav > .active > a,
+       .nav > .active > a:hover,
+       .navbar .nav > .active > a:focus {
+               .box-shadow(none);
+       }
+
+       .navbar-search {
+               margin-top: 10px;
+       }
+
+       .navbar-search .search-query {
+               .border-radius(0);
+               padding-top: 5px;
+               padding-bottom: 5px;
+       }
+
+       .navbar-text {
+               margin: 17px 15px 14px;
+               line-height: 20px;
+       }
+
+       .btn,
+       .btn-group {
+               padding: 4px;
+       }
+
+       &-inverse {
+
+               .dropdown-menu li > a:hover,
+               .dropdown-menu li > a:focus,
+               .dropdown-submenu:hover > a {
+                       background-image: none;
+                       background-color: @yellow;
+               }
+       }
+}
+
+@media (max-width: @navbarCollapseWidth) {
+
+       .navbar .nav-collapse {
+
+               .nav li > a {
+
+                       color: @textColor;
+                       .border-radius(0);
+
+                       &:hover {
+                               background-color: lighten(@navbarBackground, 10%);
+                       }
+               }
+
+               .dropdown-menu li > a:hover,
+               .dropdown-menu li > a:focus,
+               .dropdown-submenu:hover > a {
+                       background-image: none;
+               }
+
+               .navbar-form,
+               .navbar-search {
+                       .box-shadow(none);
+                       border: none;
+               }
+
+               .navbar-search .search-query {
+                       border: 2px solid @textColor;
+               }
+
+               .nav-header {
+                       color: rgba(255, 255, 255, 0.5);
+               }
+       }
+
+       .navbar-inverse .nav-collapse {
+
+               .nav li > a:hover,
+               .dropdown-menu a:hover {
+                       background-color: lighten(@navbarInverseBackground, 10%) !important;
+               }
+       }
+}
+
+div.subnav {
+
+       background-color: rgba(42, 99, 105, 0.9);
+       background-image: none;
+       border: 0px solid transparent;
+       .border-radius(0);
+       .box-shadow(none);
+
+       .nav > li.open > a {
+               border-color: transparent;
+               background-color: rgba(255, 255, 255, 0.4);
+       }
+
+       .nav > li > a {
+               color: @textColor;
+               border-color: transparent;
+       }
+
+       .nav > li:first-child > a,
+       .nav > li:first-child > a:hover {
+               .border-radius(0);
+       }
+
+       .nav > .active > a {
+               background-color: transparent;
+               border-color: transparent;
+               color: @textColor;
+               .box-shadow(none);
+       }
+
+       .nav > .active > a:hover,
+       .nav > li > a:hover,
+       .nav > li.active > a:hover, {
+               border-right-color: transparent;
+               background-color: rgba(255, 255, 255, 0.4);
+               color: @textColor;
+       }
+
+       .nav > li:first-child > a:hover {
+               border-left-color: rgba(255, 255, 255, 0.4);
+               border-left-width: 1px;
+       }
+
+       &-fixed {
+               top: 50px;
+       }
+}
+
+// NAV
+// -----------------------------------------------------
+
+.nav-tabs li.open > .dropdown-toggle,
+.nav-pills li.open > .dropdown-toggle {
+       background-color: #8AD5DC;
+       color: @linkColor;
+       border-color: transparent;
+}
+
+.nav-tabs, .nav-pills {
+       border-color: transparent;
+
+       li > a {
+               border-color: transparent;
+               .border-radius(0);
+               .box-shadow(0);
+       }
+
+       li.active > a,
+       li:active > a,
+       li.active > a:hover,
+       li:active > a:hover {
+               color: @textColor;
+       }
+
+       li.active > a,
+       li:active > a,
+       li > a:hover,
+       li.active > a:hover,
+       li:active > a:hover {
+               background-color: #8AD5DC;
+               border-color: transparent;
+               text-shadow: none;
+       }
+}
+
+.nav-tabs, .nav-tabs > li > a {
+       border-bottom: 1px solid rgba(255, 255, 255, 0.5);
+}
+
+.nav-tabs > li > a {
+       background-color: #3CB9C6;
+}
+
+.nav-tabs.nav-stacked {
+
+       li > a:first-child,
+       li > a:last-child {
+               .border-radius(0);
+       }
+
+       li > a,
+       li > a:hover,
+       li.active > a,
+       li:active > a,
+       li.active > a:hover,
+       li:active > a:hover {
+               border-color: transparent;
+       }
+}
+
+.nav-list {
+       .nav-header {
+               text-shadow: none;
+               color: @textColor;
+       }
+
+       li > a {
+               text-shadow: none;
+       }
+
+       li.active > a,
+       li:active > a,
+       li > a:hover,
+       li.active > a:hover,
+       li:active > a:hover {
+               background-color: #8AD5DC;
+               text-shadow: none;
+       }
+
+       .divider {
+               background-color: rgba(255, 255, 255, 0.3);
+               border-bottom: none;
+       }
+}
+
+.breadcrumb, .pager > li > a {
+       border-color: transparent;
+       .border-radius(0);
+       .box-shadow(none);
+       text-shadow: none;
+}
+
+.breadcrumb {
+       background-color: #3CB9C6;
+       background-image: none;
+
+       li {
+               text-shadow: none;
+       }
+
+       .active {
+               color: @white;
+       }
+
+       .divider {
+               color: @linkColor;
+       }
+}
+
+.pagination {
+
+       ul  {
+               background-color: @paginationBackground;
+               background-image: none;
+               .border-radius(0);
+       }
+
+       ul > li > a:hover {
+               background-color: rgba(255, 255, 255, 0.4);
+               color: @linkColor;
+       }
+
+       ul > li:first-child > a,
+       ul > li:last-child > a {
+               .border-radius(0);
+       }
+
+       ul > .disabled > a,
+       ul > .disabled > a:hover,
+       ul > .disabled > span,
+       ul > .disabled > span:hover {
+               color: @textColor;
+       }
+
+       ul > .active > a,
+       ul > .active > a:hover,
+       ul > .active > span,
+       ul > .active > span:hover {
+               background-color: rgba(255, 255, 255, 0.4);
+               color: @textColor;
+       }
+}
+
+.pager {
+
+       li > a {
+               background-color: #3CB9C6;
+
+               &:hover {
+                       background-color: #8AD5DC;
+               }
+       }
+
+       .disabled a,
+       .disabled a:hover {
+               background-color: #3CB9C6;
+               color: @white;
+       }
+}
+
+// BUTTONS
+// -----------------------------------------------------
+
+.buttonBackgroundCustom(@color) {
+
+  background-color: @color;
+  border-color: transparent;
+
+  &:hover, &:active, &.active, &.disabled, &[disabled] {
+    background-color: darken(@color, 5%);
+       text-shadow: none;
+  }
+
+  &:active, &.active {
+    background-color: darken(@color, 15%);
+       .box-shadow(none);
+  }
+
+  // IE 7 + 8 can't handle box-shadow to show active, so we darken a bit ourselves
+  &:active,
+  &.active {
+    background-color: darken(@color, 15%) e("\9");
+  }
+}
+
+.btn {
+       padding: 12px 16px;
+       .border-radius(0);
+       background-image: none;
+       text-shadow: none;
+       .box-shadow(none);
+       .buttonBackgroundCustom(@btnBackground)
+}
+
+.btn-group .btn:first-child {
+       margin-left: 0;
+       .border-radius(0);
+}
+
+.btn-group .btn:last-child,
+.btn-group .dropdown-toggle {
+     .border-radius(0);
+}
+
+.btn-group .dropdown-toggle,
+.btn-group.open .dropdown-toggle,
+.btn.open .dropdown-toggle {
+       .box-shadow(none);
+}
+
+.btn-primary {
+  .buttonBackgroundCustom(@btnPrimaryBackground);
+}
+
+.btn-info {
+  .buttonBackgroundCustom(@btnInfoBackground);
+}
+
+.btn-success {
+  .buttonBackgroundCustom(@btnSuccessBackground);
+}
+
+.btn-warning {
+  .buttonBackgroundCustom(@btnWarningBackground);
+}
+
+.btn-danger {
+  .buttonBackgroundCustom(@btnDangerBackground);
+}
+
+.btn-inverse {
+  .buttonBackgroundCustom(@btnInverseBackground);
+}
+
+.btn-link {
+       .buttonBackgroundCustom(@btnPrimaryBackground);
+}
+
+.btn-large {
+       padding: 20px 24px;
+}
+
+.btn-small {
+       padding: 8px 12px;
+}
+
+.btn-mini {
+       padding: 4px 8px;
+}
+
+[class^="icon-"], [class*=" icon-"] {
+       margin-top: 2px;
+       margin-right: 8px;
+}
+
+.btn-small [class^="icon-"] {
+       margin-top: 1px;
+}
+
+.add-on [class^="icon-"] {
+       margin-left: 5px;
+}
+
+// TABLES
+// -----------------------------------------------------
+
+.table th, .table td,
+.table tbody + tbody {
+       border-top: 0px solid transparent;
+}
+
+.table-bordered {
+       .border-radius(0);
+}
+
+.table tbody {
+
+       tr.success td {
+               background-color: @green;
+       }
+
+       tr.error td {
+               background-color: @red;
+       }
+
+       tr.info td {
+               background-color: @blue;
+       }
+}
+
+// FORMS
+// -----------------------------------------------------
+
+legend {
+       font-family: @headingsFontFamily;
+}
+
+legend, label, .help-block, .input-file {
+       color: @textColor;
+       border: 0px solid transparent;
+}
+
+input, textarea, .uneditable-input {
+       border: 0px solid transparent;
+       padding: 10px;
+}
+
+.uneditable-input {
+       padding-bottom: 30px;
+}
+
+select {
+       border: 0px solid transparent;
+}
+
+button {
+       margin-left: 12px;
+}
+
+input, textarea, .search-query, .uneditable-input,
+.input-append input, .input-append .uneditable-input,
+.input-prepend input, .input-prepend .uneditable-input {
+       border-color: transparent;
+       .box-shadow(none);
+}
+
+.form-actions {
+       border-top: 0px solid transparent;
+}
+
+.control-group.warning > label,
+.control-group.warning .help-inline {
+       color: lighten(@orange, 30%);
+}
+
+.control-group.error > label,
+.control-group.error .help-inline {
+       color: lighten(@linkColor, 10%);
+}
+
+.control-group.success > label,
+.control-group.success .help-inline {
+       color: lighten(@green, 20%);
+}
+
+.input-prepend .add-on,
+.input-append .add-on {
+       height: 20px;
+       padding-top: 4px;
+       background-color: @grayLighter;
+       border-color: transparent;
+       .border-radius(0);
+       color: @gray;
+       text-shadow: none;
+}
+
+.input-append .btn,
+.input-prepend .btn {
+       padding: 4px 10px;
+}
+
+// ALERTS, LABELS, BADGES
+// -----------------------------------------------------
+
+.alert, .label {
+       border-color: transparent;
+       .border-radius(0);
+       .box-shadow(none);
+       text-shadow: none;
+}
+
+.alert-heading {
+       color: @textColor;
+}
+
+.label, .label:hover {
+       background-color: @grayLighter;
+       text-shadow: none;
+       color: @grayDark;
+}
+
+.label-warning, .label-warning:hover, .alert {
+       background-color: @orange;
+       color: @textColor;
+}
+
+.label-important, .label-important:hover, .alert-error {
+       background-color: darken(@yellow, 3%);
+       color: @textColor;
+}
+
+.label-success, .label-success:hover, .alert-success {
+       background-color: @green;
+       color: @textColor;
+}
+
+.label-info, .label-info:hover, .alert-info {
+       background-color: @purple;
+       color: @textColor;
+}
+
+// MISCELLANEOUS
+// -----------------------------------------------------
+
+.progress, .well, pre, code {
+       border-color: transparent;
+       .border-radius(0);
+       .box-shadow(none);
+       text-shadow: none;
+}
+
+.well {
+       background-image: none;
+}
+
+.hero-unit {
+       .border-radius(0);
+}
+
+.thumbnail {
+       border: 0 solid transparent;
+       .border-radius(0);
+       .box-shadow(none);
+}
+
+.progress {
+
+       background-image: none;
+       background-color: #27666D;
+
+       .bar {
+
+               .box-shadow(none);
+               background-image: none;
+               background-color: @yellow;
+
+               &-success {
+                       background-color: @green;
+               }
+
+               &-warning {
+                       background-color: @orange;
+               }
+
+               &-error {
+                       background-color: @red;
+               }
+       }
+}
+
+.progress-danger .bar {
+       background-image: none;
+       background-color: #AD1D28;
+}
+
+.progress-danger.progress-striped .bar {
+       #gradient > .striped(#AD1D28);
+}
+
+.progress-success .bar {
+       background-image: none;
+       background-color: @green;
+}
+
+.progress-success.progress-striped .bar {
+       #gradient > .striped(@green);
+}
+
+.progress-info .bar {
+       background-image: none;
+       background-color: @blue;
+}
+
+.progress-info.progress-striped .bar {
+       #gradient > .striped(@blue);
+}
+
+.modal {
+
+       .border-radius(0);
+
+       &-header {
+               background-color: @navbarBackground;
+               color: @white;
+       }
+
+       &-body {
+               
+               color: @grayDark;
+
+               h1, h2, h3, h4, h5, h6,
+               legend {
+                       color: @red;
+               }
+
+               label,
+               .input-file {
+                       color: @grayDark;
+               }
+
+               .help-block,
+               .help-inline {
+                       color: @grayLight;
+               }
+
+               textarea,
+               input,
+               .uneditable-input {
+                       border: 1px solid @grayLight;
+               }
+       }
+}
+
+.popover {
+       
+       padding: 0;
+       .border-radius(0);
+       color: @grayDark;
+
+       .popover-title {
+               .border-radius(0);
+               color: @white;
+       }
+}
+
+// MEDIA QUERIES
+// -----------------------------------------------------
diff --git a/src/themes/amelia-variables.less b/src/themes/amelia-variables.less
new file mode 100644 (file)
index 0000000..730e442
--- /dev/null
@@ -0,0 +1,279 @@
+// Variables
+// Swatch: Amelia
+// Version: 2.1.1
+// --------------------------------------------------
+
+// Global values
+// --------------------------------------------------
+
+
+// Grays
+// -------------------------
+@black:                 #000;
+@grayDarker:            #111;
+@grayDark:              #444;
+@gray:                  #555;
+@grayLight:             #aaa;
+@grayLighter:           #ddd;
+@white:                 #fff;
+
+
+// Accent colors
+// -------------------------
+@blue:                  #00BCE1;
+@blueDark:              #1269B0;
+@green:                 #48CA3B;
+@red:                   #AD1D28;
+@yellow:                #DEBB27;
+@orange:                #DF6E1E;
+@pink:                  #FFBCB9;
+@purple:                #4D3A7D;
+
+
+// Scaffolding
+// -------------------------
+@bodyBackground:        #003F4D;
+@textColor:             rgba(255, 255, 255, 0.9);
+
+
+// Links
+// -------------------------
+@linkColor:             lighten(@yellow, 15%);
+@linkColorHover:        @linkColor;
+
+
+// Typography
+// -------------------------
+@sansFontFamily:        'Cabin', Verdana, sans-serif;
+@serifFontFamily:       Georgia, "Times New Roman", Times, serif;
+@monoFontFamily:        Menlo, Monaco, Consolas, "Courier New", monospace;
+
+@baseFontSize:          14px;
+@baseFontFamily:        @sansFontFamily;
+@baseLineHeight:        20px;
+@altFontFamily:         @serifFontFamily;
+
+@headingsFontFamily:    'Lobster', cursive; // empty to use BS default, @baseFontFamily
+@headingsFontWeight:    normal;    // instead of browser default, bold
+@headingsColor:         inherit; // empty to use BS default, @textColor
+
+// Tables
+// -------------------------
+@tableBackground:                   lighten(#147E88, 10%); // overall background-color
+@tableBackgroundAccent:             lighten(#147E88, 15%); // for striping
+@tableBackgroundHover:              rgba(255, 255, 255, 0.4); // for hover
+@tableBorder:                       lighten(#147E88, 12%); // table and cell border
+
+// Buttons
+// -------------------------
+@btnBackground:                     @grayLighter;
+@btnBackgroundHighlight:            @grayLighter;
+@btnBorder:                         rgba(0, 0, 0, 0);
+
+@btnPrimaryBackground:              @navbarBackground;
+@btnPrimaryBackgroundHighlight:     @navbarBackground;
+
+@btnInfoBackground:                 @purple;
+@btnInfoBackgroundHighlight:        @purple;
+
+@btnSuccessBackground:              @green;
+@btnSuccessBackgroundHighlight:     @green;
+
+@btnWarningBackground:              @orange;
+@btnWarningBackgroundHighlight:     @orange;
+
+@btnDangerBackground:               @yellow;
+@btnDangerBackgroundHighlight:      @yellow;
+
+@btnInverseBackground:              #27666D;
+@btnInverseBackgroundHighlight:     #27666D;
+
+
+// Forms
+// -------------------------
+@inputBackground:               @white;
+@inputBorder:                   transparent;
+@inputBorderRadius:             0;
+@inputDisabledBackground:       @grayLighter;
+@formActionsBackground:         transparent;
+
+// Dropdowns
+// -------------------------
+@dropdownBackground:            @white;
+@dropdownBorder:                rgba(0,0,0,.2);
+@dropdownDividerTop:            #e5e5e5;
+@dropdownDividerBottom:         @white;
+
+@dropdownLinkColor:             @grayDark;
+@dropdownLinkColorHover:        @white;
+@dropdownLinkColorActive:       @dropdownLinkColor;
+
+@dropdownLinkBackgroundActive:  @red;
+@dropdownLinkBackgroundHover:   @red;
+
+
+
+// COMPONENT VARIABLES
+// --------------------------------------------------
+
+// Z-index master list
+// -------------------------
+// Used for a bird's eye view of components dependent on the z-axis
+// Try to avoid customizing these :)
+@zindexDropdown:          1000;
+@zindexPopover:           1010;
+@zindexTooltip:           1020;
+@zindexFixedNavbar:       1030;
+@zindexModalBackdrop:     1040;
+@zindexModal:             1050;
+
+
+// Sprite icons path
+// -------------------------
+@iconSpritePath:          "images/glyphicons-halflings.png";
+@iconWhiteSpritePath:     "images/glyphicons-halflings-white.png";
+
+
+// Input placeholder text color
+// -------------------------
+@placeholderText:         @grayLight;
+
+
+// Hr border color
+// -------------------------
+@hrBorder:                transparent;
+
+
+// Horizontal forms & lists
+// -------------------------
+@horizontalComponentOffset:       180px;
+
+
+// Wells
+// -------------------------
+@wellBackground:                  #3CB9C6;
+
+
+// Navbar
+// -------------------------
+@navbarCollapseWidth:             979px;
+
+@navbarHeight:                    50px;
+@navbarBackgroundHighlight:       @red;
+@navbarBackground:                @red;
+@navbarBorder:                    darken(@navbarBackground, 12%);
+
+@navbarText:                      @white;
+@navbarLinkColor:                 @white;
+@navbarLinkColorHover:            @white;
+@navbarLinkColorActive:           @navbarLinkColorHover;
+@navbarLinkBackgroundHover:       lighten(@navbarBackground, 10%);
+@navbarLinkBackgroundActive:      lighten(@navbarBackground, 10%);
+
+@navbarBrandColor:                @navbarLinkColor;
+
+// Inverted navbar
+@navbarInverseBackground:                @yellow;
+@navbarInverseBackgroundHighlight:       @yellow;
+@navbarInverseBorder:                    rgba(0, 0, 0, 0.1);
+
+@navbarInverseText:                      @white;
+@navbarInverseLinkColor:                 @white;
+@navbarInverseLinkColorHover:            @white;
+@navbarInverseLinkColorActive:           @white;
+@navbarInverseLinkBackgroundHover:       rgba(255, 255, 255, 0.2);
+@navbarInverseLinkBackgroundActive:      rgba(255, 255, 255, 0.2);
+
+@navbarInverseSearchBackground:          lighten(@navbarInverseBackground, 25%);
+@navbarInverseSearchBackgroundFocus:     @white;
+@navbarInverseSearchBorder:              @navbarInverseBackground;
+@navbarInverseSearchPlaceholderColor:    @white;
+
+@navbarInverseBrandColor:                @navbarInverseLinkColor;
+
+
+// Pagination
+// -------------------------
+@paginationBackground:                #3CB9C6;
+@paginationBorder:                    transparent;
+@paginationActiveBackground:          rgba(255, 255, 255, 0.4);
+
+
+// Hero unit
+// -------------------------
+@heroUnitBackground:              #3CB9C6;
+@heroUnitHeadingColor:            inherit;
+@heroUnitLeadColor:               inherit;
+
+
+// Form states and alerts
+// -------------------------
+@warningText:             #c09853;
+@warningBackground:       #fcf8e3;
+@warningBorder:           darken(spin(@warningBackground, -10), 3%);
+
+@errorText:               #b94a48;
+@errorBackground:         #f2dede;
+@errorBorder:             darken(spin(@errorBackground, -10), 3%);
+
+@successText:             #468847;
+@successBackground:       #dff0d8;
+@successBorder:           darken(spin(@successBackground, -10), 5%);
+
+@infoText:                #3a87ad;
+@infoBackground:          #d9edf7;
+@infoBorder:              darken(spin(@infoBackground, -10), 7%);
+
+
+// Tooltips and popovers
+// -------------------------
+@tooltipColor:            #fff;
+@tooltipBackground:       #000;
+@tooltipArrowWidth:       5px;
+@tooltipArrowColor:       @tooltipBackground;
+
+@popoverBackground:       #fff;
+@popoverArrowWidth:       10px;
+@popoverArrowColor:       #fff;
+@popoverTitleBackground:  @navbarBackground;
+
+// Special enhancement for popovers
+@popoverArrowOuterWidth:  @popoverArrowWidth + 1;
+@popoverArrowOuterColor:  rgba(0,0,0,.25);
+
+
+
+// GRID
+// --------------------------------------------------
+
+
+// Default 940px grid
+// -------------------------
+@gridColumns:             12;
+@gridColumnWidth:         60px;
+@gridGutterWidth:         20px;
+@gridRowWidth:            (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1));
+
+// 1200px min
+@gridColumnWidth1200:     70px;
+@gridGutterWidth1200:     30px;
+@gridRowWidth1200:        (@gridColumns * @gridColumnWidth1200) + (@gridGutterWidth1200 * (@gridColumns - 1));
+
+// 768px-979px
+@gridColumnWidth768:      42px;
+@gridGutterWidth768:      20px;
+@gridRowWidth768:         (@gridColumns * @gridColumnWidth768) + (@gridGutterWidth768 * (@gridColumns - 1));
+
+
+// Fluid grid
+// -------------------------
+@fluidGridColumnWidth:    percentage(@gridColumnWidth/@gridRowWidth);
+@fluidGridGutterWidth:    percentage(@gridGutterWidth/@gridRowWidth);
+
+// 1200px min
+@fluidGridColumnWidth1200:     percentage(@gridColumnWidth1200/@gridRowWidth1200);
+@fluidGridGutterWidth1200:     percentage(@gridGutterWidth1200/@gridRowWidth1200);
+
+// 768px-979px
+@fluidGridColumnWidth768:      percentage(@gridColumnWidth768/@gridRowWidth768);
+@fluidGridGutterWidth768:      percentage(@gridGutterWidth768/@gridRowWidth768);