diff options
author | Thomas Park <thomas@thomaspark.me> | 2013-08-06 15:19:12 -0400 |
---|---|---|
committer | Thomas Park <thomas@thomaspark.me> | 2013-08-06 15:19:12 -0400 |
commit | 4642156cbc6da4a9e25dce2168f2fb9b726de042 (patch) | |
tree | d62aec0ebf977e008d016d8af15e54e26d5089b4 /bower_components/bootstrap/less | |
parent | 20e2d90874a3e1116c76e1547210d191dd0159f4 (diff) |
unignore bower_components
Diffstat (limited to 'bower_components/bootstrap/less')
38 files changed, 5638 insertions, 0 deletions
diff --git a/bower_components/bootstrap/less/accordion.less b/bower_components/bootstrap/less/accordion.less new file mode 100644 index 00000000..c3023ac4 --- /dev/null +++ b/bower_components/bootstrap/less/accordion.less @@ -0,0 +1,31 @@ +// +// Accordion +// -------------------------------------------------- + + +// Parent container +.accordion { + margin-bottom: @line-height-computed; +} + +// Group == heading + body +.accordion-group { + margin-bottom: 2px; + border: 1px solid @accordion-border-color; + border-radius: @border-radius-base; +} +.accordion-heading { + border-bottom: 0; + + .accordion-toggle { + display: block; + padding: 8px 15px; + cursor: pointer; + } +} + +// Inner needs the styles because you can't animate properly with any styles on the element +.accordion-inner { + padding: 9px 15px; + border-top: 1px solid @accordion-border-color; +} diff --git a/bower_components/bootstrap/less/alerts.less b/bower_components/bootstrap/less/alerts.less new file mode 100644 index 00000000..66aa6cf2 --- /dev/null +++ b/bower_components/bootstrap/less/alerts.less @@ -0,0 +1,69 @@ +// +// Alerts +// -------------------------------------------------- + + +// Base styles +// ------------------------- + +.alert { + padding: 10px 35px 10px 15px; + margin-bottom: @line-height-computed; + color: @alert-text; + background-color: @alert-bg; + border: 1px solid @alert-border; + border-radius: @alert-border-radius; + + // Headings for larger alerts + h4 { + margin-top: 0; + // Specified for the h4 to prevent conflicts of changing @headingsColor + color: inherit; + } + // Match the hr to the border of the alert + hr { + border-top-color: darken(@alert-border, 5%); + } + // Provide class for links that match alerts + .alert-link { + font-weight: 500; + color: darken(@alert-text, 10%); + } + + // Adjust close link position + .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; + } +} + +// Alternate styles +// ------------------------- + +.alert-success { + .alert-variant(@alert-success-bg, @alert-success-border, @alert-success-text); +} +.alert-danger { + .alert-variant(@alert-danger-bg, @alert-danger-border, @alert-danger-text); +} +.alert-info { + .alert-variant(@alert-info-bg, @alert-info-border, @alert-info-text); +} + +// Block alerts +// ------------------------- + +.alert-block { + padding-top: 15px; + padding-bottom: 15px; + + > p, + > ul { + margin-bottom: 0; + } + p + p { + margin-top: 5px; + } +} diff --git a/bower_components/bootstrap/less/badges.less b/bower_components/bootstrap/less/badges.less new file mode 100644 index 00000000..216d6014 --- /dev/null +++ b/bower_components/bootstrap/less/badges.less @@ -0,0 +1,51 @@ +// +// Badges +// -------------------------------------------------- + + +// Base classes +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: @font-size-small; + font-weight: bold; + color: @badge-color; + line-height: 1; + vertical-align: middle; + white-space: nowrap; + text-align: center; + background-color: @badge-bg; + border-radius: 10px; + + // Empty labels/badges collapse + &:empty { + display: none; + } +} + +// Hover state, but only for links +a.badge { + &:hover, + &:focus { + color: @badge-link-hover-color; + text-decoration: none; + cursor: pointer; + } +} + +// Quick fix for labels/badges in buttons +.btn .badge { + position: relative; + top: -1px; +} + +// Account for counters in navs +a.list-group-item.active > .badge, +.nav-pills > .active > a > .badge { + color: @badge-active-color; + background-color: @badge-active-bg; +} +.nav-pills > li > a > .badge { + margin-left: 3px; +} diff --git a/bower_components/bootstrap/less/bootstrap.less b/bower_components/bootstrap/less/bootstrap.less new file mode 100644 index 00000000..307f72f4 --- /dev/null +++ b/bower_components/bootstrap/less/bootstrap.less @@ -0,0 +1,63 @@ +/*! + * Bootstrap v3.0.0 + * + * Copyright 2013 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world by @mdo and @fat. + */ + +// Core variables and mixins +@import "variables.less"; +@import "mixins.less"; + +// Reset +@import "normalize.less"; +@import "print.less"; + +// Core CSS +@import "scaffolding.less"; +@import "type.less"; +@import "code.less"; +@import "grid.less"; + +@import "tables.less"; +@import "forms.less"; +@import "buttons.less"; + +// Components: common +@import "component-animations.less"; +@import "dropdowns.less"; +@import "list-group.less"; +@import "panels.less"; +@import "wells.less"; +@import "close.less"; + +// Components: Nav +@import "navs.less"; +@import "navbar.less"; +@import "button-groups.less"; +@import "breadcrumbs.less"; +@import "pagination.less"; +@import "pager.less"; + +// Components: Popovers +@import "modals.less"; +@import "tooltip.less"; +@import "popovers.less"; + +// Components: Misc +@import "alerts.less"; +@import "thumbnails.less"; +@import "media.less"; +@import "labels.less"; +@import "badges.less"; +@import "progress-bars.less"; +@import "accordion.less"; +@import "carousel.less"; +@import "jumbotron.less"; + +// Utility classes +@import "utilities.less"; // Has to be last to override when necessary +@import "responsive-utilities.less"; diff --git a/bower_components/bootstrap/less/breadcrumbs.less b/bower_components/bootstrap/less/breadcrumbs.less new file mode 100644 index 00000000..92643d16 --- /dev/null +++ b/bower_components/bootstrap/less/breadcrumbs.less @@ -0,0 +1,23 @@ +// +// Breadcrumbs +// -------------------------------------------------- + + +.breadcrumb { + padding: 8px 15px; + margin-bottom: @line-height-computed; + list-style: none; + background-color: @breadcrumb-bg; + border-radius: @border-radius-base; + > li { + display: inline-block; + &+li:before { + content: "/\00a0"; // Unicode space added since inline-block means non-collapsing white-space + padding: 0 5px; + color: @breadcrumb-color; + } + } + > .active { + color: @breadcrumb-active-color; + } +} diff --git a/bower_components/bootstrap/less/button-groups.less b/bower_components/bootstrap/less/button-groups.less new file mode 100644 index 00000000..f345f4e1 --- /dev/null +++ b/bower_components/bootstrap/less/button-groups.less @@ -0,0 +1,171 @@ +// +// Button groups +// -------------------------------------------------- + +// Button carets +.btn .caret { + border-top-color: @btn-default-color; +} +.dropup .btn .caret { + border-bottom-color: @btn-default-color; +} + +// Make the div behave like a button +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; // match .btn alignment given font-size hack above + > .btn { + position: relative; + float: left; + // Bring the "active" button to the front + &:hover, + &:active { + z-index: 2; + } + } +} + +// Prevent double borders when buttons are next to each other +.btn-group .btn + .btn { + margin-left: -1px; +} + +// Optional: Group multiple button groups together for a toolbar +.btn-toolbar { + .clearfix(); + + .btn-group { + float: left; + } + // Space out series of button groups + > .btn, + > .btn-group { + + .btn, + + .btn-group { + margin-left: 5px; + } + } +} + +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} + +// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match +.btn-group > .btn:first-child { + margin-left: 0; + &:not(:last-child):not(.dropdown-toggle) { + .border-right-radius(0); + } +} +// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + .border-left-radius(0); +} + +// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group) +.btn-group > .btn-group { + float: left; +} +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group > .btn-group:first-child { + > .btn:last-child, + > .dropdown-toggle { + .border-right-radius(0); + } +} +.btn-group > .btn-group:last-child > .btn:first-child { + .border-left-radius(0); +} + +// On active and open, don't show outline +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + + + +// Split button dropdowns +// ---------------------- + +// Give the line between buttons some depth +.btn-group > .btn + .dropdown-toggle { + padding-left: 8px; + padding-right: 8px; +} +.btn-group > .btn-large + .dropdown-toggle { + padding-left: 12px; + padding-right: 12px; +} + +// The clickable button for toggling the menu +// Remove the gradient and set the same inset shadow as the :active state +.btn-group.open .dropdown-toggle { + .box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); +} + + +// Reposition the caret +.btn .caret { + margin-left: 0; +} +// Carets in other button sizes +.btn-large .caret { + border-width: 5px; +} +// Upside down carets for .dropup +.dropup .btn-large .caret { + border-bottom-width: 5px; +} + + +// Vertical button groups +// ---------------------- + +.btn-group-vertical > .btn { + display: block; + float: none; + width: 100%; + max-width: 100%; + + .btn { + margin-top: -1px; + } +} +.btn-group-vertical .btn { + &:not(:first-child):not(:last-child) { + border-radius: 0; + } + &:first-child { + .border-bottom-radius(0); + } + &:last-child { + .border-top-radius(0); + } +} + + +// Justified button groups +// ---------------------- + +.btn-group-justified { + display: table; + width: 100%; + .btn { + float: none; + display: table-cell; + width: 1%; + } +} + + +// Checkbox and radio options +.btn-group[data-toggle="buttons"] > .btn > input[type="radio"], +.btn-group[data-toggle="buttons"] > .btn > input[type="checkbox"] { + display: none; +} diff --git a/bower_components/bootstrap/less/buttons.less b/bower_components/bootstrap/less/buttons.less new file mode 100644 index 00000000..b8bbfc6c --- /dev/null +++ b/bower_components/bootstrap/less/buttons.less @@ -0,0 +1,157 @@ +// +// Buttons +// -------------------------------------------------- + + +// Base styles +// -------------------------------------------------- + +// Core styles +.btn { + display: inline-block; + padding: @padding-base-vertical @padding-base-horizontal; + margin-bottom: 0; // For input.btn + font-size: @font-size-base; + font-weight: 500; + line-height: @line-height-base; + text-align: center; + vertical-align: middle; + cursor: pointer; + border: 1px solid transparent; + border-radius: @border-radius-base; + white-space: nowrap; + + &:focus { + .tab-focus(); + } + + &:hover, + &:focus { + color: @btn-hover-color; + text-decoration: none; + } + + &:active, + &.active { + outline: 0; + .box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); + } + + &.disabled, + &[disabled], + fieldset[disabled] & { + cursor: default; + pointer-events: none; // Future-proof disabling of clicks + .opacity(.65); + .box-shadow(none); + } + +} + + +// Alternate buttons +// -------------------------------------------------- + +.btn-default { + .btn-pseudo-states(@btn-default-color, @btn-default-bg, @btn-default-border); +} +.btn-primary { + .btn-pseudo-states(@btn-primary-color, @btn-primary-bg, @btn-primary-border); +} +// Warning appears as orange +.btn-warning { + .btn-pseudo-states(@btn-warning-color, @btn-warning-bg, @btn-warning-border); +} +// Danger and error appear as red +.btn-danger { + .btn-pseudo-states(@btn-danger-color, @btn-danger-bg, @btn-danger-border); +} +// Success appears as green +.btn-success { + .btn-pseudo-states(@btn-success-color, @btn-success-bg, @btn-success-border); +} +// Info appears as blue-green +.btn-info { + .btn-pseudo-states(@btn-info-color, @btn-info-bg, @btn-info-border); +} + + +// Link buttons +// ------------------------- + +// Make a button look and behave like a link +.btn-link { + color: @link-color; + font-weight: normal; + cursor: pointer; + border-radius: 0; + + &, + &:active, + &[disabled], + fieldset[disabled] & { + background-color: transparent; + .box-shadow(none); + } + &, + &:hover, + &:focus, + &:active { + border-color: transparent; + } + &:hover, + &:focus { + color: @link-hover-color; + text-decoration: underline; + background-color: transparent; + } + &[disabled], + fieldset[disabled] & { + &:hover, + &:focus { + color: @gray-dark; + text-decoration: none; + } + } +} + + +// Button Sizes +// -------------------------------------------------- + +.btn-large { + padding: @padding-large-vertical @padding-large-horizontal; + font-size: @font-size-large; + border-radius: @border-radius-large; +} +.btn-small { + padding: @padding-small-vertical @padding-small-horizontal; + font-size: @font-size-small; + line-height: 1.5; // ensure proper height of button next to small input + border-radius: @border-radius-small; +} + + +// Block button +// -------------------------------------------------- + +.btn-block { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0; +} + +// Vertically space out multiple block buttons +.btn-block + .btn-block { + margin-top: 5px; +} + +// Specificity overrides +input[type="submit"], +input[type="reset"], +input[type="button"] { + &.btn-block { + width: 100%; + } +} diff --git a/bower_components/bootstrap/less/carousel.less b/bower_components/bootstrap/less/carousel.less new file mode 100644 index 00000000..3526089c --- /dev/null +++ b/bower_components/bootstrap/less/carousel.less @@ -0,0 +1,205 @@ +// +// Carousel +// -------------------------------------------------- + + +// Wrapper for the slide container and indicators +.carousel { + position: relative; +} + +.carousel-inner { + position: relative; + overflow: hidden; + width: 100%; + + > .item { + display: none; + position: relative; + .transition(.6s ease-in-out left); + + // Account for jankitude on images + > img, + > a > img { + .img-responsive(); + line-height: 1; + } + } + + > .active, + > .next, + > .prev { display: block; } + + > .active { + left: 0; + } + + > .next, + > .prev { + position: absolute; + top: 0; + width: 100%; + } + + > .next { + left: 100%; + } + > .prev { + left: -100%; + } + > .next.left, + > .prev.right { + left: 0; + } + + > .active.left { + left: -100%; + } + > .active.right { + left: 100%; + } + +} + +// Left/right controls for nav +// --------------------------- + +.carousel-control { + position: absolute; + top: 0; + left: 0; + bottom: 0; + width: 15%; + .opacity(.5); + font-size: 20px; + color: @carousel-control-color; + text-align: center; + text-shadow: @carousel-text-shadow; + // We can't have this transition here because webkit cancels the carousel + // animation if you trip this while in the middle of another animation. + + // Set gradients for backgrounds + &.left { + #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001)); + background-color: transparent; + } + &.right { + left: auto; + right: 0; + #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5)); + background-color: transparent; + } + + // Hover/focus state + &:hover, + &:focus { + color: @carousel-control-color; + text-decoration: none; + .opacity(.9); + } + + // Toggles + .glyphicon, + .icon-prev, + .icon-next { + position: absolute; + top: 50%; + left: 50%; + z-index: 5; + display: inline-block; + width: 20px; + height: 20px; + margin-top: -10px; + margin-left: -10px; + font-family: serif; + } + // Non-glyphicon toggles + .icon-prev { + &:before { + content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039) + } + } + .icon-next { + &:before { + content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A) + } + } +} + +// Optional indicator pips +// ----------------------------- +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 120px; + margin-left: -60px; + padding-left: 0; + list-style: none; + text-align: center; + + li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + border: 1px solid @carousel-indicator-border-color; + border-radius: 10px; + cursor: pointer; + } + .active { + margin: 0; + width: 12px; + height: 12px; + background-color: @carousel-indicator-active-bg; + } +} + +// Optional captions +// ----------------------------- +// Hidden by default for smaller viewports +.carousel-caption { + position: absolute; + left: 15%; + right: 15%; + bottom: 20px; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: @carousel-caption-color; + text-align: center; + text-shadow: @carousel-text-shadow; + & .btn { + text-shadow: none; // No shadow for button elements in carousel-caption + } +} + + +// Scale up controls for tablets and up +@media screen and (min-width: @screen-tablet) { + + // Scale up the controls a smidge + .carousel-control .glyphicon, + .carousel-control .icon-prev, + .carousel-control .icon-next { + width: 30px; + height: 30px; + margin-top: -15px; + margin-left: -15px; + font-size: 30px; + } + + // Show and left align the captions + .carousel-caption { + left: 20%; + right: 20%; + padding-bottom: 30px; + } + + // Move up the indicators + .carousel-indicators { + bottom: 20px; + } +} diff --git a/bower_components/bootstrap/less/close.less b/bower_components/bootstrap/less/close.less new file mode 100644 index 00000000..f915667e --- /dev/null +++ b/bower_components/bootstrap/less/close.less @@ -0,0 +1,33 @@ +// +// Close icons +// -------------------------------------------------- + + +.close { + float: right; + font-size: (@font-size-base * 1.5); + font-weight: bold; + line-height: 1; + color: @close-color; + text-shadow: @close-text-shadow; + .opacity(.2); + + &:hover, + &:focus { + color: @close-color; + text-decoration: none; + cursor: pointer; + .opacity(.5); + } + + // Additional properties for button version + // iOS requires the button element instead of an anchor tag. + // If you want the anchor version, it requires `href="#"`. + button& { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; + } +} diff --git a/bower_components/bootstrap/less/code.less b/bower_components/bootstrap/less/code.less new file mode 100644 index 00000000..cd613256 --- /dev/null +++ b/bower_components/bootstrap/less/code.less @@ -0,0 +1,55 @@ +// +// Code (inline and blocK) +// -------------------------------------------------- + + +// Inline and block code styles +code, +pre { + font-family: @font-family-monospace; +} + +// Inline code +code { + padding: 2px 4px; + font-size: 90%; + color: @code-color; + background-color: @code-bg; + white-space: nowrap; + border-radius: 4px; +} + +// Blocks of code +pre { + display: block; + padding: ((@line-height-computed - 1) / 2); + margin: 0 0 (@line-height-computed / 2); + font-size: (@font-size-base - 1); // 14px to 13px + line-height: @line-height-base; + word-break: break-all; + word-wrap: break-word; + color: @gray-dark; + background-color: @pre-bg; + border: 1px solid @pre-border-color; + border-radius: @border-radius-base; + + // Make prettyprint styles more spaced out for readability + &.prettyprint { + margin-bottom: @line-height-computed; + } + + // Account for some code outputs that place code tags in pre tags + code { + padding: 0; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border: 0; + } +} + +// Enable scrollable blocks of code +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} diff --git a/bower_components/bootstrap/less/component-animations.less b/bower_components/bootstrap/less/component-animations.less new file mode 100644 index 00000000..1efe45e2 --- /dev/null +++ b/bower_components/bootstrap/less/component-animations.less @@ -0,0 +1,29 @@ +// +// Component animations +// -------------------------------------------------- + +// Heads up! +// +// We don't use the `.opacity()` mixin here since it causes a bug with text +// fields in IE7-8. Source: https://github.com/twitter/bootstrap/pull/3552. + +.fade { + opacity: 0; + .transition(opacity .15s linear); + &.in { + opacity: 1; + } +} + +.collapse { + display: none; + &.in { + display: block; + } +} +.collapsing { + position: relative; + height: 0; + overflow: hidden; + .transition(height .35s ease); +} diff --git a/bower_components/bootstrap/less/dropdowns.less b/bower_components/bootstrap/less/dropdowns.less new file mode 100644 index 00000000..938e682f --- /dev/null +++ b/bower_components/bootstrap/less/dropdowns.less @@ -0,0 +1,171 @@ +// +// Dropdown menus +// -------------------------------------------------- + + +// Dropdown arrow/caret +// -------------------- +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px solid @dropdown-caret-color; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + content: ""; +} + +// The dropdown menu (ul) +// ---------------------- +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: @zindex-dropdown; + display: none; // none by default, but block on "open" of the menu + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; // override default ul + list-style: none; + background-color: @dropdown-bg; + border: 1px solid @dropdown-fallback-border; // IE8 fallback + border: 1px solid @dropdown-border; + border-radius: @border-radius-base; + .box-shadow(0 6px 12px rgba(0,0,0,.175)); + .background-clip(padding-box); + + // Aligns the dropdown menu to right + &.pull-right { + right: 0; + left: auto; + } + + // Dividers (basically an hr) within the dropdown + .divider { + .nav-divider(@dropdown-divider-bg); + } + + // Links within the dropdown menu + > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: @line-height-base; + color: @dropdown-link-color; + white-space: nowrap; // prevent links from randomly breaking onto new lines + } +} + +// Hover/Focus state +// ----------- +.dropdown-menu > li > a { + &:hover, + &:focus { + text-decoration: none; + color: @dropdown-link-hover-color; + #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%)); + } +} + +// Active state +// ------------ +.dropdown-menu > .active > a { + &, + &:hover, + &:focus { + color: @dropdown-link-active-color; + text-decoration: none; + outline: 0; + #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%)); + } +} + +// Disabled state +// -------------- +// Gray out text and ensure the hover/focus state remains gray +.dropdown-menu > .disabled > a { + &, + &:hover, + &:focus { + color: @gray-light; + } +} +// Nuke hover/focus effects +.dropdown-menu > .disabled > a { + &:hover, + &:focus { + text-decoration: none; + background-color: transparent; + background-image: none; // Remove CSS gradient + .reset-filter(); + cursor: not-allowed; + } +} + +// Open state for the dropdown +// --------------------------- +.open { + // Show the menu + > .dropdown-menu { + display: block; + } + + // Remove the outline when :focus is triggered + > a { + outline: 0; + } +} + +// Dropdown section headers +// --------------------------- +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: @font-size-small; + line-height: @line-height-base; + color: @gray-light; +} + + + +// Backdrop to catch body clicks on mobile, etc. +// --------------------------- +.dropdown-backdrop { + position: fixed; + left: 0; + right: 0; + bottom: 0; + top: 0; + z-index: @zindex-dropdown - 10; +} + +// Right aligned dropdowns +// --------------------------- +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +// 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 @dropdown-caret-color; + content: ""; + } + // Different positioning for bottom up menu + .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; + } +} diff --git a/bower_components/bootstrap/less/forms.less b/bower_components/bootstrap/less/forms.less new file mode 100644 index 00000000..60e45767 --- /dev/null +++ b/bower_components/bootstrap/less/forms.less @@ -0,0 +1,423 @@ +// +// Forms +// -------------------------------------------------- + + +// Normalize non-controls +// +// Restyle and baseline non-control form elements. + +fieldset { + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: @line-height-computed; + font-size: (@font-size-base * 1.5); + line-height: inherit; + color: @gray-dark; + border: 0; + border-bottom: 1px solid @legend-border-color; +} + +label { + display: inline-block; + margin-bottom: 5px; + font-weight: bold; +} + + +// Normalize form controls + +// Override content-box in Normalize (* isn't specific enough) +input[type="search"] { + .box-sizing(border-box); +} + +// Position radios and checkboxes better +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; /* IE8-9 */ + line-height: normal; +} + +// Set the height of select and file controls to match text inputs +input[type="file"] { + display: block; +} + +// Make multiple select elements height not fixed +select[multiple], +select[size] { + height: auto; +} + +// Fix optgroup Firefox bug per https://github.com/twbs/bootstrap/issues/7611 +select optgroup { + font-size: inherit; + font-style: inherit; + font-family: inherit; +} + +// Focus for select, file, radio, and checkbox +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + .tab-focus(); +} + +// Fix for Chrome number input +// Setting certain font-sizes causes the `I` bar to appear on hover of the bottom increment button. +// See https://github.com/twbs/bootstrap/issues/8350 for more. +input[type="number"] { + &::-webkit-outer-spin-button, + &::-webkit-inner-spin-button { + height: auto; + } +} + + +// Placeholder +// +// Placeholder text gets special styles because when browsers invalidate entire +// lines if it doesn't understand a selector/ +.form-control { + .placeholder(); +} + + +// Common form controls +// +// Shared size and type resets for form controls. Apply `.form-control` to any +// of the following form controls: +// +// select +// textarea +// input[type="text"] +// input[type="password"] +// input[type="datetime"] +// input[type="datetime-local"] +// input[type="date"] +// input[type="month"] +// input[type="time"] +// input[type="week"] +// input[type="number"] +// input[type="email"] +// input[type="url"] +// input[type="search"] +// input[type="tel"] +// input[type="color"] + +.form-control { + display: block; + width: 100%; + height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border) + padding: @padding-base-vertical @padding-base-horizontal; + font-size: @font-size-base; + line-height: @line-height-base; + color: @gray; + vertical-align: middle; + background-color: @input-bg; + border: 1px solid @input-border; + border-radius: @input-border-radius; + .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); + .transition(~"border-color ease-in-out .15s, box-shadow ease-in-out .15s"); + + &:focus { + border-color: rgba(82,168,236,.8); + outline: 0; + .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6)"); + } + + // Disabled and read-only inputs + // Note: HTML5 says that inputs under a fieldset > legend:first-child won't be + // disabled if the fieldset is disabled. Due to implementation difficulty, + // we don't honor that edge case; we style them as disabled anyway. + &[disabled], + &[readonly], + fieldset[disabled] & { + cursor: not-allowed; + background-color: @input-bg-disabled; + } + + // Reset height for `textarea`s + textarea& { + height: auto; + } +} + + +// Form groups +// +// Designed to help with the organization and spacing of vertical forms. For +// horizontal forms, use the predefined grid classes. + +.form-group { + margin-bottom: 15px; +} + + +// Checkboxes and radios +// +// Indent the labels to position radios/checkboxes as hanging controls. + +.radio, +.checkbox { + display: block; + min-height: @line-height-computed; // clear the floating input if there is no label text + margin-top: 10px; + margin-bottom: 10px; + padding-left: 20px; + vertical-align: middle; + label { + display: inline; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; + } +} +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { + float: left; + margin-left: -20px; +} +.radio + .radio, +.checkbox + .checkbox { + margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing +} + +// Radios and checkboxes on same line +.radio-inline, +.checkbox-inline { + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + vertical-align: middle; + font-weight: normal; + cursor: pointer; +} +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; // space out consecutive inline controls +} + + + +// Form control sizing +// +// Relative text size, padding, and border-radii changes for form controls. For +// horizontal sizing, wrap controls in the predefined grid classes. `<select>` +// element gets special love because it's special, and that's a fact! + +.form-control { + &.input-large { + height: @input-height-large; + padding: @padding-large-vertical @padding-large-horizontal; + font-size: @font-size-large; + border-radius: @border-radius-large; + } + &.input-small { + height: @input-height-small; + padding: @padding-small-vertical @padding-small-horizontal; + font-size: @font-size-small; + border-radius: @border-radius-small; + } +} +select { + &.input-large { + height: @input-height-large; + line-height: @input-height-large; + } + &.input-small { + height: @input-height-small; + line-height: @input-height-small; + } +} + + +// Form control feedback states +// +// Apply contextual and semantic states to individual form controls. + +// Warning +.has-warning { + .form-control-validation(@state-warning-text, @state-warning-text, @state-warning-bg); +} +// Error +.has-error { + .form-control-validation(@state-danger-text, @state-danger-text, @state-danger-bg); +} +// Success +.has-success { + .form-control-validation(@state-success-text, @state-success-text, @state-success-bg); +} + + +// Help text +// +// Apply to any element you wish to create light text for placement immediately +// below a form control. Use for general help, formatting, or instructional text. + +.help-block { + display: block; // account for any element using help-block + margin-top: 5px; + margin-bottom: 10px; + color: lighten(@text-color, 25%); // lighten the text some for contrast +} + + + +// Input groups +// -------------------------------------------------- + +// Base styles +// ------------------------- +.input-group { + display: table; + border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table + + // Undo padding and float of grid classes + &.col { + float: none; + padding-left: 0; + padding-right: 0; + } + + .form-control { + width: 100%; + margin-bottom: 0; + } +} + +// Display as table-cell +// ------------------------- +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: table-cell; + + &:not(:first-child):not(:last-child) { + border-radius: 0; + } +} +// Addon and addon wrapper for buttons +.input-group-addon, +.input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; // Match the inputs +} + +// Text input groups +// ------------------------- +.input-group-addon { + .box-sizing(border-box); + padding: @padding-base-vertical @padding-base-horizontal; + font-size: @font-size-base; + font-weight: normal; + line-height: @line-height-base; + text-align: center; + background-color: @gray-lighter; + border: 1px solid @input-group-addon-border-color; + border-radius: @border-radius-base; + + &.input-small { + padding: @padding-small-vertical @padding-small-horizontal; + font-size: @font-size-small; + border-radius: @border-radius-small; + } + &.input-large { + padding: @padding-large-vertical @padding-large-horizontal; + font-size: @font-size-large; + border-radius: @border-radius-large; + } +} + +// Reset rounded corners +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) { + .border-right-radius(0); +} +.input-group-addon:first-child { + border-right: 0; +} +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child) { + .border-left-radius(0); +} +.input-group-addon:last-child { + border-left: 0; +} + +// Button input groups +// ------------------------- +.input-group-btn { + position: relative; + white-space: nowrap; +} +.input-group-btn > .btn { + position: relative; + // Jankily prevent input button groups from wrapping + + .btn { + margin-left: -4px; + } + // Bring the "active" button to the front + &:hover, + &:active { + z-index: 2; + } +} + + +// Inline forms +// -------------------------------------------------- + +.form-inline { + .form-control, + .radio, + .checkbox { + display: inline-block; + } + .radio, + .checkbox { + margin-top: 0; + margin-bottom: 0; + } +} + + +// Horizontal forms +// -------------------------------------------------- +// Horizontal forms are built on grid classes. + +.form-horizontal .control-label { + padding-top: 6px; +} + +.form-horizontal { + .form-group { + .make-row(); + } +} + +// Only right align form labels here when the columns stop stacking +@media (min-width: @screen-tablet) { + .form-horizontal .control-label { + text-align: right; + } +} diff --git a/bower_components/bootstrap/less/grid.less b/bower_components/bootstrap/less/grid.less new file mode 100644 index 00000000..12803f39 --- /dev/null +++ b/bower_components/bootstrap/less/grid.less @@ -0,0 +1,204 @@ +// +// Grid system +// -------------------------------------------------- + +// Set the container width, and override it for fixed navbars in media queries +.container { + .container-fixed(); +} + +// Mobile-first defaults +.row { + .make-row(); +} + +// Common styles for small and large grid columns +.col-1, +.col-2, +.col-3, +.col-4, +.col-5, +.col-6, +.col-7, +.col-8, +.col-9, +.col-10, +.col-11, +.col-12, +.col-sm-1, +.col-sm-2, +.col-sm-3, +.col-sm-4, +.col-sm-5, +.col-sm-6, +.col-sm-7, +.col-sm-8, +.col-sm-9, +.col-sm-10, +.col-sm-11, +.col-sm-12, +.col-lg-1, +.col-lg-2, +.col-lg-3, +.col-lg-4, +.col-lg-5, +.col-lg-6, +.col-lg-7, +.col-lg-8, +.col-lg-9, +.col-lg-10, +.col-lg-11, +.col-lg-12 { + position: relative; + // Prevent columns from collapsing when empty + min-height: 1px; + // Inner gutter via padding + padding-left: (@grid-gutter-width / 2); + padding-right: (@grid-gutter-width / 2); +} + + + +// +// Container and grid column sizing +// + +// Tiny device columns (smartphones) +.col-1, +.col-2, +.col-3, +.col-4, +.col-5, +.col-6, +.col-7, +.col-8, +.col-9, +.col-10, +.col-11, +.col-12 { + float: left; +} +.col-1 { width: percentage((1 / @grid-columns)); } +.col-2 { width: percentage((2 / @grid-columns)); } +.col-3 { width: percentage((3 / @grid-columns)); } +.col-4 { width: percentage((4 / @grid-columns)); } +.col-5 { width: percentage((5 / @grid-columns)); } +.col-6 { width: percentage((6 / @grid-columns)); } +.col-7 { width: percentage((7 / @grid-columns)); } +.col-8 { width: percentage((8 / @grid-columns)); } +.col-9 { width: percentage((9 / @grid-columns)); } +.col-10 { width: percentage((10/ @grid-columns)); } +.col-11 { width: percentage((11/ @grid-columns)); } +.col-12 { width: 100%; } + +// Small device columns (phones to tablets) +@media (min-width: @screen-tablet) { + .container { + max-width: @container-tablet; + } + + .col-sm-1, + .col-sm-2, + .col-sm-3, + .col-sm-4, + .col-sm-5, + .col-sm-6, + .col-sm-7, + .col-sm-8, + .col-sm-9, + .col-sm-10, + .col-sm-11, + .col-sm-12 { + float: left; + } + .col-sm-1 { width: percentage((1 / @grid-columns)); } + .col-sm-2 { width: percentage((2 / @grid-columns)); } + .col-sm-3 { width: percentage((3 / @grid-columns)); } + .col-sm-4 { width: percentage((4 / @grid-columns)); } + .col-sm-5 { width: percentage((5 / @grid-columns)); } + .col-sm-6 { width: percentage((6 / @grid-columns)); } + .col-sm-7 { width: percentage((7 / @grid-columns)); } + .col-sm-8 { width: percentage((8 / @grid-columns)); } + .col-sm-9 { width: percentage((9 / @grid-columns)); } + .col-sm-10 { width: percentage((10/ @grid-columns)); } + .col-sm-11 { width: percentage((11/ @grid-columns)); } + .col-sm-12 { width: 100%; } + + // Push and pull columns for source order changes + .col-push-1 { left: percentage((1 / @grid-columns)); } + .col-push-2 { left: percentage((2 / @grid-columns)); } + .col-push-3 { left: percentage((3 / @grid-columns)); } + .col-push-4 { left: percentage((4 / @grid-columns)); } + .col-push-5 { left: percentage((5 / @grid-columns)); } + .col-push-6 { left: percentage((6 / @grid-columns)); } + .col-push-7 { left: percentage((7 / @grid-columns)); } + .col-push-8 { left: percentage((8 / @grid-columns)); } + .col-push-9 { left: percentage((9 / @grid-columns)); } + .col-push-10 { left: percentage((10/ @grid-columns)); } + .col-push-11 { left: percentage((11/ @grid-columns)); } + + .col-pull-1 { right: percentage((1 / @grid-columns)); } + .col-pull-2 { right: percentage((2 / @grid-columns)); } + .col-pull-3 { right: percentage((3 / @grid-columns)); } + .col-pull-4 { right: percentage((4 / @grid-columns)); } + .col-pull-5 { right: percentage((5 / @grid-columns)); } + .col-pull-6 { right: percentage((6 / @grid-columns)); } + .col-pull-7 { right: percentage((7 / @grid-columns)); } + .col-pull-8 { right: percentage((8 / @grid-columns)); } + .col-pull-9 { right: percentage((9 / @grid-columns)); } + .col-pull-10 { right: percentage((10/ @grid-columns)); } + .col-pull-11 { right: percentage((11/ @grid-columns)); } +} + +// Medium and large device columns (desktop and up) +@media (min-width: @screen-desktop) { + .container { + max-width: @container-desktop; + } + .col-lg-1, + .col-lg-2, + .col-lg-3, + .col-lg-4, + .col-lg-5, + .col-lg-6, + .col-lg-7, + .col-lg-8, + .col-lg-9, + .col-lg-10, + .col-lg-11, + .col-lg-12 { + float: left; + } + .col-lg-1 { width: percentage((1 / @grid-columns)); } + .col-lg-2 { width: percentage((2 / @grid-columns)); } + .col-lg-3 { width: percentage((3 / @grid-columns)); } + .col-lg-4 { width: percentage((4 / @grid-columns)); } + .col-lg-5 { width: percentage((5 / @grid-columns)); } + .col-lg-6 { width: percentage((6 / @grid-columns)); } + .col-lg-7 { width: percentage((7 / @grid-columns)); } + .col-lg-8 { width: percentage((8 / @grid-columns)); } + .col-lg-9 { width: percentage((9 / @grid-columns)); } + .col-lg-10 { width: percentage((10/ @grid-columns)); } + .col-lg-11 { width: percentage((11/ @grid-columns)); } + .col-lg-12 { width: 100%; } + + // Offsets + .col-offset-1 { margin-left: percentage((1 / @grid-columns)); } + .col-offset-2 { margin-left: percentage((2 / @grid-columns)); } + .col-offset-3 { margin-left: percentage((3 / @grid-columns)); } + .col-offset-4 { margin-left: percentage((4 / @grid-columns)); } + .col-offset-5 { margin-left: percentage((5 / @grid-columns)); } + .col-offset-6 { margin-left: percentage((6 / @grid-columns)); } + .col-offset-7 { margin-left: percentage((7 / @grid-columns)); } + .col-offset-8 { margin-left: percentage((8 / @grid-columns)); } + .col-offset-9 { margin-left: percentage((9 / @grid-columns)); } + .col-offset-10 { margin-left: percentage((10/ @grid-columns)); } + .col-offset-11 { margin-left: percentage((11/ @grid-columns)); } +} + +// Large desktops and up +@media (min-width: @screen-large-desktop) { + .container { + max-width: @container-large-desktop; + } +} diff --git a/bower_components/bootstrap/less/jumbotron.less b/bower_components/bootstrap/less/jumbotron.less new file mode 100644 index 00000000..ca51b481 --- /dev/null +++ b/bower_components/bootstrap/less/jumbotron.less @@ -0,0 +1,29 @@ +// +// Jumbotron +// -------------------------------------------------- + + +.jumbotron { + padding: 30px; + margin-bottom: 30px; + font-size: (@font-size-base * 1.5); + font-weight: 200; + line-height: (@line-height-base * 1.5); + color: @jumbotron-lead-color; + background-color: @jumbotron-bg; + h1 { + line-height: 1; + color: @jumbotron-heading-color; + } + p { + line-height: 1.4; + } + + @media screen and (min-width: @screen-tablet) { + padding: 50px 60px; + border-radius: @border-radius-large; // Only round corners at higher resolutions + h1 { + font-size: (@font-size-base * 4.5); + } + } +} diff --git a/bower_components/bootstrap/less/labels.less b/bower_components/bootstrap/less/labels.less new file mode 100644 index 00000000..7ee7ee68 --- /dev/null +++ b/bower_components/bootstrap/less/labels.less @@ -0,0 +1,46 @@ +// +// Labels +// -------------------------------------------------- + +.label { + display: inline; + padding: .25em .6em; + font-size: 75%; + font-weight: 500; + line-height: 1; + color: @label-color; + text-align: center; + white-space: nowrap; + vertical-align: middle; + background-color: @gray-light; + border-radius: .25em; + + // Add hover effects, but only for links + &[href] { + &:hover, + &:focus { + color: @label-link-hover-color; + text-decoration: none; + cursor: pointer; + background-color: darken(@gray-light, 10%); + } + } +} + +// Colors +// Contextual variations (linked labels get darker on :hover) +.label-danger { + .label-variant(@label-danger-bg); +} + +.label-success { + .label-variant(@label-success-bg); +} + +.label-warning { + .label-variant(@label-warning-bg); +} + +.label-info { + .label-variant(@label-info-bg); +} diff --git a/bower_components/bootstrap/less/list-group.less b/bower_components/bootstrap/less/list-group.less new file mode 100644 index 00000000..ad6ac96a --- /dev/null +++ b/bower_components/bootstrap/less/list-group.less @@ -0,0 +1,89 @@ +// +// List groups +// -------------------------------------------------- + +// Base class +// +// Easily usable on <ul>, <ol>, or <div>. +.list-group { + // No need to set list-style: none; since .list-group-item is block level + margin-bottom: 20px; + padding-left: 0; // reset padding because ul and ol + background-color: @list-group-bg; +} + +// Individual list items +// ------------------------- + +.list-group-item { + position: relative; + display: block; + padding: 10px 30px 10px 15px; + // Place the border on the list items and negative margin up for better styling + margin-bottom: -1px; + border: 1px solid @list-group-border; + + // Round the first and last items + &:first-child { + .border-top-radius(@border-radius-base); + } + &:last-child { + margin-bottom: 0; + .border-bottom-radius(@border-radius-base); + } + + // Align badges within list items + > .badge { + float: right; + margin-right: -15px; + } +} + +// Custom content options +// ------------------------- + +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} + +// Linked list items +// ------------------------- + +// Custom content within linked items +a.list-group-item { + // Colorize content accordingly + .list-group-item-heading { + color: @list-group-link-heading-color; + } + .list-group-item-text { + color: @list-group-link-color; + } + + // Hover state + &:hover, + &:focus { + text-decoration: none; + background-color: @list-group-hover-bg; + } + + // Active class on item itself, not parent + &.active { + z-index: 2; // Place active items above their siblings for proper border styling + color: @list-group-active-color; + background-color: @list-group-active-bg; + border-color: @list-group-active-border; + + // Force color to inherit for custom content + .list-group-item-heading { + color: inherit; + } + .list-group-item-text { + color: lighten(@list-group-active-bg, 40%); + } + } +} diff --git a/bower_components/bootstrap/less/media.less b/bower_components/bootstrap/less/media.less new file mode 100644 index 00000000..5ad22cd6 --- /dev/null +++ b/bower_components/bootstrap/less/media.less @@ -0,0 +1,56 @@ +// Media objects +// Source: http://stubbornella.org/content/?p=497 +// -------------------------------------------------- + + +// Common styles +// ------------------------- + +// Clear the floats +.media, +.media-body { + overflow: hidden; + zoom: 1; +} + +// Proper spacing between instances of .media +.media, +.media .media { + margin-top: 15px; +} +.media:first-child { + margin-top: 0; +} + +// For images and videos, set to block +.media-object { + display: block; +} + +// Reset margins on headings for tighter default spacing +.media-heading { + margin: 0 0 5px; +} + + +// Media image alignment +// ------------------------- + +.media { + > .pull-left { + margin-right: 10px; + } + > .pull-right { + margin-left: 10px; + } +} + + +// Media list variation +// ------------------------- + +// Undo default ul/ol styles +.media-list { + padding-left: 0; + list-style: none; +} diff --git a/bower_components/bootstrap/less/mixins.less b/bower_components/bootstrap/less/mixins.less new file mode 100644 index 00000000..2fb9a8ff --- /dev/null +++ b/bower_components/bootstrap/less/mixins.less @@ -0,0 +1,546 @@ +// +// Mixins +// -------------------------------------------------- + + +// Utilities +// ------------------------- + +// Clearfix +// Source: http://nicolasgallagher.com/micro-clearfix-hack/ +// +// For modern browsers +// 1. The space content is one way to avoid an Opera bug when the +// contenteditable attribute is included anywhere else in the document. +// Otherwise it causes space to appear at the top and bottom of elements +// that are clearfixed. +// 2. The use of `table` rather than `block` is only necessary if using +// `:before` to contain the top-margins of child elements. +.clearfix() { + &:before, + &:after { + content: " "; /* 1 */ + display: table; /* 2 */ + } + &:after { + clear: both; + } +} + +// Webkit-style focus +.tab-focus() { + // Default + outline: thin dotted #333; + // Webkit + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +// Center-align a block level element +.center-block() { + display: block; + margin-left: auto; + margin-right: auto; +} + +// Sizing shortcuts +.size(@width, @height) { + width: @width; + height: @height; +} +.square(@size) { + .size(@size, @size); +} + +// Placeholder text +.placeholder(@color: @input-color-placeholder) { + &:-moz-placeholder { color: @color; } // Firefox 4-18 + &::-moz-placeholder { color: @color; } // Firefox 19+ + &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+ + &::-webkit-input-placeholder { color: @color; } // Safari and Chrome +} + +// Text overflow +// Requires inline-block or block for proper styling +.text-overflow() { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +// CSS image replacement +// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757 +.hide-text() { + font: ~"0/0" a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + + + +// CSS3 PROPERTIES +// -------------------------------------------------- + +// Single side border-radius +.border-top-radius(@radius) { + border-top-right-radius: @radius; + border-top-left-radius: @radius; +} +.border-right-radius(@radius) { + border-bottom-right-radius: @radius; + border-top-right-radius: @radius; +} +.border-bottom-radius(@radius) { + border-bottom-right-radius: @radius; + border-bottom-left-radius: @radius; +} +.border-left-radius(@radius) { + border-bottom-left-radius: @radius; + border-top-left-radius: @radius; +} + +// Drop shadows +.box-shadow(@shadow) { + -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1 + box-shadow: @shadow; +} + +// Transitions +.transition(@transition) { + -webkit-transition: @transition; + transition: @transition; +} +.transition-delay(@transition-delay) { + -webkit-transition-delay: @transition-delay; + transition-delay: @transition-delay; +} +.transition-duration(@transition-duration) { + -webkit-transition-duration: @transition-duration; + transition-duration: @transition-duration; +} +.transition-transform(@transition) { + -webkit-transition: -webkit-transform @transition; + -moz-transition: -moz-transform @transition; + -o-transition: -o-transform @transition; + transition: transform @transition; +} + +// Transformations +.rotate(@degrees) { + -webkit-transform: rotate(@degrees); + -ms-transform: rotate(@degrees); + transform: rotate(@degrees); +} +.scale(@ratio) { + -webkit-transform: scale(@ratio); + -ms-transform: scale(@ratio); + transform: scale(@ratio); +} +.translate(@x, @y) { + -webkit-transform: translate(@x, @y); + -ms-transform: translate(@x, @y); + transform: translate(@x, @y); +} +.skew(@x, @y) { + -webkit-transform: skew(@x, @y); + -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885 + transform: skew(@x, @y); +} +.translate3d(@x, @y, @z) { + -webkit-transform: translate3d(@x, @y, @z); + transform: translate3d(@x, @y, @z); +} + +// Backface visibility +// Prevent browsers from flickering when using CSS 3D transforms. +// Default value is `visible`, but can be changed to `hidden` +// See git pull https://github.com/dannykeane/bootstrap.git backface-visibility for examples +.backface-visibility(@visibility){ + -webkit-backface-visibility: @visibility; + -moz-backface-visibility: @visibility; + backface-visibility: @visibility; +} + +// Background clipping +.background-clip(@clip) { + background-clip: @clip; +} + +// Background sizing +.background-size(@size) { + background-size: @size; +} + +// Box sizing +.box-sizing(@boxmodel) { + -webkit-box-sizing: @boxmodel; + -moz-box-sizing: @boxmodel; + box-sizing: @boxmodel; +} + +// User select +// For selecting text on the page +.user-select(@select) { + -webkit-user-select: @select; + -moz-user-select: @select; + -ms-user-select: @select; + -o-user-select: @select; + user-select: @select; +} + +// Resize anything +.resizable(@direction) { + resize: @direction; // Options: horizontal, vertical, both + overflow: auto; // Safari fix +} + +// CSS3 Content Columns +.content-columns(@column-count, @column-gap: @grid-gutter-width) { + -webkit-column-count: @column-count; + -moz-column-count: @column-count; + column-count: @column-count; + -webkit-column-gap: @column-gap; + -moz-column-gap: @column-gap; + column-gap: @column-gap; +} + +// Optional hyphenation +.hyphens(@mode: auto) { + word-wrap: break-word; + -webkit-hyphens: @mode; + -moz-hyphens: @mode; + -ms-hyphens: @mode; + -o-hyphens: @mode; + hyphens: @mode; +} + +// Opacity +.opacity(@opacity) { + opacity: @opacity; + // IE8 filter + @opacity-ie: (@opacity * 100); + filter: ~"alpha(opacity=@{opacity-ie})"; +} + + + +// GRADIENTS +// -------------------------------------------------- + +#gradient { + + // Horizontal gradient, from left to right + // + // Creates two color stops, start and end, by specifying a color and position for each color stop. + // Color stops are not available in IE9 and below. + .horizontal(@start-color: #555; @start-percent: 0%; @end-color: #333; @end-percent: 100%) { + background-color: @end-color; + background-image: -webkit-gradient(linear, @start-percent top, @end-percent top, from(@start-color), to(@end-color)); // Safari 4+, Chrome 2+ + background-image: -webkit-linear-gradient(left, color-stop(@start-color @start-percent), color-stop(@end-color @end-percent)); // Safari 5.1+, Chrome 10+ + background-image: -moz-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // FF 3.6+ + background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10 + background-repeat: repeat-x; + filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down + } + + // Vertical gradient, from top to bottom + // + // Creates two color stops, start and end, by specifying a color and position for each color stop. + // Color stops are not available in IE9 and below. + .vertical(@start-color: #555; @start-percent: 0%; @end-color: #333; @end-percent: 100%) { + background-color: @end-color; + background-image: -webkit-gradient(linear, left @start-percent, left @end-percent, from(@start-color), to(@end-color)); // Safari 4+, Chrome 2+ + background-image: -webkit-linear-gradient(top, @start-color, @start-percent, @end-color, @end-percent); // Safari 5.1+, Chrome 10+ + background-image: -moz-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // FF 3.6+ + background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10 + background-repeat: repeat-x; + filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down + } + + .directional(@start-color: #555, @end-color: #333, @deg: 45deg) { + background-color: @end-color; + background-repeat: repeat-x; + background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1+, Chrome 10+ + background-image: -moz-linear-gradient(@deg, @start-color, @end-color); // FF 3.6+ + background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10 + } + .horizontal-three-colors(@start-color: #00b3ee, @mid-color: #7a43b6, @color-stop: 50%, @end-color: #c3325f) { + background-color: mix(@mid-color, @end-color, 80%); + background-image: -webkit-gradient(left, linear, 0 0, 0 100%, from(@start-color), color-stop(@color-stop, @mid-color), to(@end-color)); + background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color); + background-image: -moz-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color); + background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color); + background-repeat: no-repeat; + filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback + } + + .vertical-three-colors(@start-color: #00b3ee, @mid-color: #7a43b6, @color-stop: 50%, @end-color: #c3325f) { + background-color: mix(@mid-color, @end-color, 80%); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@start-color), color-stop(@color-stop, @mid-color), to(@end-color)); + background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color); + background-image: -moz-linear-gradient(top, @start-color, @mid-color @color-stop, @end-color); + background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color); + background-repeat: no-repeat; + filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback + } + .radial(@inner-color: #555, @outer-color: #333) { + background-color: @outer-color; + background-image: -webkit-gradient(radial, center center, 0, center center, 460, from(@inner-color), to(@outer-color)); + background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color); + background-image: -moz-radial-gradient(circle, @inner-color, @outer-color); + background-image: radial-gradient(circle, @inner-color, @outer-color); + background-repeat: no-repeat; + } + .striped(@color: #555, @angle: 45deg) { + background-color: @color; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255,255,255,.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,.15)), color-stop(.75, rgba(255,255,255,.15)), color-stop(.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent); + } +} + +// Reset filters for IE +// +// When you need to remove a gradient background, don't forget to use this to reset +// the IE filter for IE9 and below. +.reset-filter() { + filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)")); +} + + + +// RETINA IMAGE SUPPORT +// -------------------------------------------------- + +// Short retina mixin for setting background-image and -size +.img-retina(@file-1x, @file-2x, @width-1x, @height-1x) { + background-image: url("@{file-1x}"); + + @media + only screen and (-webkit-min-device-pixel-ratio: 2), + only screen and ( min--moz-device-pixel-ratio: 2), + only screen and ( -o-min-device-pixel-ratio: 2/1), + only screen and ( min-device-pixel-ratio: 2), + only screen and ( min-resolution: 192dpi), + only screen and ( min-resolution: 2dppx) { + background-image: url("@{file-2x}"); + background-size: @width-1x @height-1x; + } +} + + +// COMPONENT MIXINS +// -------------------------------------------------- + +// Horizontal dividers +// ------------------------- +// Dividers (basically an hr) within dropdowns and nav lists +.nav-divider(@color: #e5e5e5) { + height: 1px; + margin: ((@line-height-computed / 2) - 1) 0; + overflow: hidden; + background-color: @color; +} + +// Alerts +// ------------------------- +.alert-variant(@background, @border, @text-color) { + background-color: @background; + border-color: @border; + color: @text-color; + hr { + border-top-color: darken(@border, 5%); + } + .alert-link { + color: darken(@text-color, 10%); + } +} + +// Button pseudo states +// ------------------------- +// Easily pump out default styles, as well as :hover, :focus, :active, +// and disabled options for all buttons +.btn-pseudo-states(@color, @background, @border) { + color: @color; + background-color: @background; + border-color: @border; + + &:hover, + &:focus, + &:active, + &.active { + background-color: darken(@background, 5%); + border-color: darken(@border, 10%); + } + + &.disabled, + &[disabled], + fieldset[disabled] & { + &, + &:hover, + &:focus, + &:active, + &.active { + background-color: @background; + border-color: @border + } + } +} + +// Labels +// ------------------------- +.label-variant(@color) { + background-color: @color; + &[href] { + &:hover, + &:focus { + background-color: darken(@color, 10%); + } + } +} + +// Navbar vertical align +// ------------------------- +// Vertically center elements in the navbar. +// Example: an element has a height of 30px, so write out `.navbarVerticalAlign(30px);` to calculate the appropriate top margin. +.navbar-vertical-align(@element-height) { + margin-top: ((@navbar-height - @element-height) / 2); + margin-bottom: ((@navbar-height - @element-height) / 2); +} + +// Progress bars +// ------------------------- +.progress-bar-variant(@color) { + background-color: @color; + .progress-striped & { + #gradient > .striped(@color); + } +} + +// Responsive utilities +// ------------------------- +// More easily include all the states for responsive-utilities.less. +.responsive-visibility() { + display: block !important; + tr& { display: table-row !important; } + th&, + td& { display: table-cell !important; } +} + +.responsive-invisibility() { + display: none !important; + tr& { display: none !important; } + th&, + td& { display: none !important; } +} + +// Grid System +// ----------- + +// Centered container element +.container-fixed() { + margin-right: auto; + margin-left: auto; + .clearfix(); +} + +// Creates a wrapper for a series of columns +.make-row() { + // Then clear the floated columns + .clearfix(); + + @media (min-width: @screen-small) { + margin-left: (@grid-gutter-width / -2); + margin-right: (@grid-gutter-width / -2); + } + + // Negative margin nested rows out to align the content of columns + .row { + margin-left: (@grid-gutter-width / -2); + margin-right: (@grid-gutter-width / -2); + } +} + +// Generate the columns +.make-column(@columns) { + position: relative; + // Prevent columns from collapsing when empty + min-height: 1px; + // Inner gutter via padding + padding-left: (@grid-gutter-width / 2); + padding-right: (@grid-gutter-width / 2); + + // Calculate width based on number of columns available + @media (min-width: @grid-float-breakpoint) { + float: left; + width: percentage((@columns / @grid-columns)); + } +} + +// Generate the column offsets +.make-column-offset(@columns) { + @media (min-width: @grid-float-breakpoint) { + margin-left: percentage((@columns / @grid-columns)); + } +} +.make-column-push(@columns) { + @media (min-width: @grid-float-breakpoint) { + left: percentage((@columns / @grid-columns)); + } +} +.make-column-pull(@columns) { + @media (min-width: @grid-float-breakpoint) { + right: percentage((@columns / @grid-columns)); + } +} + +// Generate the small columns +.make-small-column(@columns) { + position: relative; + float: left; + // Prevent columns from collapsing when empty + min-height: 1px; + // Inner gutter via padding + padding-left: (@grid-gutter-width / 2); + padding-right: (@grid-gutter-width / 2); + @max-width: (@grid-float-breakpoint - 1); + + // Calculate width based on number of columns available + @media (max-width: @max-width) { + width: percentage((@columns / @grid-columns)); + } +} + + +// Form validation states +// +// Used in forms.less to generate the form validation CSS for warnings, errors, +// and successes. + +.form-control-validation(@text-color: #555, @border-color: #ccc, @background-color: #f5f5f5) { + // Color the label and help text + .help-block, + .control-label { + color: @text-color; + } + // Set the border and box shadow on specific inputs to match + .form-control { + padding-right: 32px; // to account for the feedback icon + border-color: @border-color; + .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work + &:focus { + border-color: darken(@border-color, 10%); + @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%); + .box-shadow(@shadow); + } + } + // Set validation states also for addons + .input-group-addon { + color: @text-color; + border-color: @border-color; + background-color: @background-color; + } +} diff --git a/bower_components/bootstrap/less/modals.less b/bower_components/bootstrap/less/modals.less new file mode 100644 index 00000000..8b7349ce --- /dev/null +++ b/bower_components/bootstrap/less/modals.less @@ -0,0 +1,136 @@ +// +// Modals +// -------------------------------------------------- + +// .modal-open - body class for killing the scroll +// .modal - container to scroll within +// .modal-dialog - positioning shell for the actual modal +// .modal-content - actual modal w/ bg and corners and shit + +// Kill the scroll on the body +.modal-open { + overflow: hidden; +} + +// Container that the modal scrolls within +.modal { + display: none; + overflow: auto; + overflow-y: scroll; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: @zindex-modal-background; + + // When fading in the modal, animate it to slide down + &.fade .modal-dialog { + .translate(0, -25%); + .transition-transform(~"0.3s ease-out"); + } + &.fade.in .modal-dialog { .translate(0, 0)} +} + +// Shell div to position the modal with bottom padding +.modal-dialog { + position: relative; + top: 0; + left: 0; + right: 0; + width: auto; + padding: 10px; + z-index: (@zindex-modal-background + 10); +} + +// Actual modal +.modal-content { + position: relative; + background-color: @modal-content-bg; + border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc) + border: 1px solid @modal-content-border-color; + border-radius: @border-radius-large; + .box-shadow(0 3px 9px rgba(0,0,0,.5)); + .background-clip(padding-box); + // Remove focus outline from opened modal + outline: none; +} + +// Modal background +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: (@zindex-modal-background - 10); + background-color: @modal-backdrop-bg; + // Fade for backdrop + &.fade { .opacity(0); } + &.fade.in { .opacity(.5); } +} + +// Modal header +// Top section of the modal w/ title and dismiss +.modal-header { + padding: @modal-title-padding; + border-bottom: 1px solid @modal-header-border-color; + min-height: (@modal-title-padding + @modal-title-line-height); +} +// Close icon +.modal-header .close { + margin-top: -2px; +} + +// Title text within header +.modal-title { + margin: 0; + line-height: @modal-title-line-height; +} + +// Modal body +// Where all modal content resides (sibling of .modal-header and .modal-footer) +.modal-body { + position: relative; + padding: @modal-inner-padding; +} + +// Footer (for actions) +.modal-footer { + margin-top: 15px; + padding: (@modal-inner-padding - 1) @modal-inner-padding @modal-inner-padding; + text-align: right; // right align buttons + border-top: 1px solid @modal-footer-border-color; + .clearfix(); // clear it in case folks use .pull-* classes on buttons + + // Properly space out buttons + .btn + .btn { + margin-left: 5px; + margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs + } + // but override that for button groups + .btn-group .btn + .btn { + margin-left: -1px; + } + // and override it for block buttons as well + .btn-block + .btn-block { + margin-left: 0; + } +} + +// Scale up the modal +@media screen and (min-width: @screen-tablet) { + + .modal-dialog { + left: 50%; + right: auto; + width: 560px; + margin-left: -280px; + padding-top: 30px; + padding-bottom: 30px; + } + .modal-content { + .box-shadow(0 5px 15px rgba(0,0,0,.5)); + } + +} diff --git a/bower_components/bootstrap/less/navbar.less b/bower_components/bootstrap/less/navbar.less new file mode 100644 index 00000000..653a8d6d --- /dev/null +++ b/bower_components/bootstrap/less/navbar.less @@ -0,0 +1,380 @@ +// +// Navbars +// -------------------------------------------------- + +// Wrapper and base class +.navbar { + position: relative; + min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode) + margin-bottom: 20px; + padding-left: @navbar-padding-horizontal; + padding-right: @navbar-padding-horizontal; + background-color: @navbar-bg; + border-radius: @border-radius-base; + + // Prevent floats from breaking the navbar + .clearfix(); +} + +// Navbar nav links +// ------------------------- + +.navbar-nav { + // Space out from .navbar .brand and .btn-navbar when stacked in mobile views + margin-top: 10px; + margin-bottom: 15px; + + > li > a { + padding-top: ((@navbar-height - @line-height-computed) / 2); + padding-bottom: ((@navbar-height - @line-height-computed) / 2); + color: @navbar-link-color; + line-height: 20px; + border-radius: @border-radius-base; + &:hover, + &:focus { + color: @navbar-link-hover-color; + background-color: @navbar-link-hover-bg; + } + } + > .active > a { + &, + &:hover, + &:focus { + color: @navbar-link-active-color; + background-color: @navbar-link-active-bg; + } + } + > .disabled > a { + &, + &:hover, + &:focus { + color: @navbar-link-disabled-color; + background-color: @navbar-link-disabled-bg; + } + } + + // Right aligned contents + // Make them full width first so that they align properly on mobile + &.pull-right { + width: 100%; + } +} + + + +// +// Navbar alignment options +// -------------------------------------------------- + +// Static navbar +.navbar-static-top { + border-radius: 0; +} + +// Fix the top/bottom navbars when screen real estate supports it +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: @zindex-navbar-fixed; + border-radius: 0; +} +.navbar-fixed-top { + top: 0; +} +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; // override .navbar defaults +} + + + +// +// Navbar optional components +// -------------------------------------------------- + +// Brand/project name +.navbar-brand { + display: block; + max-width: 200px; + margin-left: auto; + margin-right: auto; + padding: @navbar-padding-vertical @navbar-padding-horizontal; + font-size: @font-size-large; + font-weight: 500; + line-height: @line-height-computed; + color: @navbar-brand-color; + text-align: center; + &:hover, + &:focus { + color: @navbar-brand-hover-color; + text-decoration: none; + background-color: @navbar-brand-hover-bg; + } +} + +// Collapsible navbar toggle +.navbar-toggle { + position: absolute; + top: floor((@navbar-height - 32) / 2); + right: 10px; + width: 48px; + height: 32px; + padding: 8px 12px; + background-color: transparent; + border: 1px solid @navbar-toggle-border-color; + border-radius: @border-radius-base; + + &:hover, + &:focus { + background-color: @navbar-toggle-hover-bg; + } + + // Bars + .icon-bar { + display: block; + width: 22px; + height: 2px; + background-color: @navbar-toggle-icon-bar-bg; + border-radius: 1px; + } + .icon-bar + .icon-bar { + margin-top: 4px; + } +} + +// Navbar form +.navbar-form { + .form-inline(); + .navbar-vertical-align(@input-height-base); // Vertically center in navbar +} + +// Dropdown menus + +// Menu position and menu carets +.navbar-nav > li > .dropdown-menu { + margin-top: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; +} +// Menu position and menu caret support for dropups via extra dropup class +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +// Dropdown menu items and carets +.navbar-nav { + // Caret should match text color on hover + > .dropdown > a:hover .caret, + > .dropdown > a:focus .caret { + border-top-color: @navbar-link-hover-color; + border-bottom-color: @navbar-link-hover-color; + } + + // Remove background color from open dropdown + > .open > a { + &, + &:hover, + &:focus { + background-color: @navbar-link-active-bg; + color: @navbar-link-active-color; + .caret { + border-top-color: @navbar-link-active-color; + border-bottom-color: @navbar-link-active-color; + } + } + } + > .dropdown > a .caret { + border-top-color: @navbar-link-color; + border-bottom-color: @navbar-link-color; + } +} + +// Right aligned menus need alt position +.navbar-nav.pull-right > li > .dropdown-menu, +.navbar-nav > li > .dropdown-menu.pull-right { + left: auto; + right: 0; +} + + + +// Inverse navbar +// -------------------------------------------------- + +.navbar-inverse { + background-color: @navbar-inverse-bg; + + .navbar-brand { + color: @navbar-inverse-brand-color; + &:hover, + &:focus { + color: @navbar-inverse-brand-hover-color; + background-color: @navbar-inverse-brand-hover-bg; + } + } + + .navbar-text { + color: @navbar-inverse-color; + } + + .navbar-nav { + > li > a { + color: @navbar-inverse-link-color; + + &:hover, + &:focus { + color: @navbar-inverse-link-hover-color; + background-color: @navbar-inverse-link-hover-bg; + } + } + > .active > a { + &, + &:hover, + &:focus { + color: @navbar-inverse-link-active-color; + background-color: @navbar-inverse-link-active-bg; + } + } + > .disabled > a { + &, + &:hover, + &:focus { + color: @navbar-inverse-link-disabled-color; + background-color: @navbar-inverse-link-disabled-bg; + } + } + } + + // Darken the responsive nav toggle + .navbar-toggle { + border-color: @navbar-inverse-toggle-border-color; + &:hover, + &:focus { + background-color: @navbar-inverse-toggle-hover-bg; + } + .icon-bar { + background-color: @navbar-inverse-toggle-icon-bar-bg; + } + } + + // Dropdowns + .navbar-nav { + > .open > a { + &, + &:hover, + &:focus { + background-color: @navbar-inverse-link-active-bg; + color: @navbar-inverse-link-active-color; + } + } + > .dropdown > a:hover .caret { + border-top-color: @navbar-inverse-link-hover-color; + border-bottom-color: @navbar-inverse-link-hover-color; + } + > .dropdown > a .caret { + border-top-color: @navbar-inverse-link-color; + border-bottom-color: @navbar-inverse-link-color; + } + > .open > a { + &, + &:hover, + &:focus { + .caret { + border-top-color: @navbar-inverse-link-active-color; + border-bottom-color: @navbar-inverse-link-active-color; + } + } + } + } +} + + + +// Responsive navbar +// -------------------------------------------------- + +@media screen and (min-width: @grid-float-breakpoint) { + + .navbar-brand { + float: left; + margin-left: -(@navbar-padding-horizontal); + margin-right: 5px; + } + .navbar-nav { + float: left; + // undo margin to make nav extend full height of navbar + margin-top: 0; + margin-bottom: 0; + + > li { + float: left; + > a { + border-radius: 0; + } + } + + &.pull-right { + float: right; + width: auto; + } + } + + // Required to make the collapsing navbar work on regular desktops + .navbar-toggle { + position: relative; + top: auto; + left: auto; + display: none; + } + .nav-collapse.collapse { + display: block !important; + height: auto !important; + overflow: visible !important; + } + +} + + + +// Buttons in navbars +// +// Vertically center a button within a navbar (when *not* in a form). + +.navbar-btn { + margin-top: ((@navbar-height - @input-height-base) / 2); +} + + + +// Text in navbars +// +// Add a class to make any element properly align itself vertically within the navbars. + +.navbar-text { + .navbar-vertical-align(@line-height-computed); +} + + + +// Links in navbars +// +// Add a class to ensure links outside the navbar nav are colored correctly. + +// Default navbar variables +.navbar-link { + color: @navbar-link-color; + &:hover { + color: @navbar-link-hover-color; + } +} + +// Use the inverse navbar variables +.navbar-inverse .navbar-link { + color: @navbar-inverse-link-color; + &:hover { + color: @navbar-inverse-link-hover-color; + } +} diff --git a/bower_components/bootstrap/less/navs.less b/bower_components/bootstrap/less/navs.less new file mode 100644 index 00000000..00b75377 --- /dev/null +++ b/bower_components/bootstrap/less/navs.less @@ -0,0 +1,237 @@ +// +// Navs +// -------------------------------------------------- + + +// Base class +// -------------------------------------------------- + +.nav { + margin-bottom: 0; + padding-left: 0; // Override default ul/ol + list-style: none; + .clearfix(); + + > li { + position: relative; + display: block; + + > a { + position: relative; + display: block; + padding: 10px 15px; + &:hover, + &:focus { + text-decoration: none; + background-color: @nav-link-hover-bg; + } + } + + // Disabled state sets text to gray and nukes hover/tab effects + &.disabled > a { + color: @nav-disabled-link-color; + + &:hover, + &:focus { + color: @nav-disabled-link-hover-color; + text-decoration: none; + background-color: transparent; + cursor: not-allowed; + } + } + + // Space the headers out when they follow another list item (link) + + .nav-header { + margin-top: 9px; + } + } + + // Open dropdowns + &.open > a { + &, + &:hover, + &:focus { + color: @nav-open-link-hover-color; + background-color: @link-color; + border-color: @link-color; + .caret { + border-top-color: @nav-open-caret-border-color; + border-bottom-color: @nav-open-caret-border-color; + } + } + } + + // Redeclare pull classes because of specificity + // Todo: consider making these utilities !important to avoid this bullshit + > .pull-right { + float: right; + } + + // Dividers (basically an hr) within the dropdown + .nav-divider { + .nav-divider(); + } +} + + + +// Nav variations +// -------------------------------------------------- + +// Tabs +// ------------------------- + +// Give the tabs something to sit on +.nav-tabs { + border-bottom: 1px solid @nav-tabs-border-color; + > li { + float: left; + // Make the list-items overlay the bottom border + margin-bottom: -1px; + + // Actual tabs (as links) + > a { + margin-right: 2px; + line-height: @line-height-base; + border: 1px solid transparent; + border-radius: @border-radius-base @border-radius-base 0 0; + &:hover { + border-color: @nav-tabs-link-hover-border-color; + } + } + + // Active state, and it's :hover to override normal :hover + &.active > a { + &, + &:hover, + &:focus { + color: @nav-tabs-active-link-hover-color; + background-color: @nav-tabs-active-link-hover-bg; + border: 1px solid @nav-tabs-active-link-hover-border-color; + border-bottom-color: transparent; + cursor: default; + } + } + } + // pulling this in mainly for less shorthand + &.nav-justified { + .nav-justified(); + .nav-tabs-justified(); + } +} + + +// Pills +// ------------------------- +.nav-pills { + > li { + float: left; + + // Links rendered as pills + > a { + border-radius: 5px; + } + + li { + margin-left: 2px; + } + + // Active state + &.active > a { + &, + &:hover, + &:focus { + color: @nav-pills-active-link-hover-color; + background-color: @nav-pills-active-link-hover-bg; + } + } + } +} + + +// Stacked pills +.nav-stacked { + > li { + float: none; + + li { + > a { + margin-top: 2px; + margin-left: 0; // no need for this gap between nav items + } + } + } +} + +// Justified nav links +// ------------------------- + +.nav-justified { + width: 100%; + > li { + float: none; + display: table-cell; + width: 1%; + > a { + text-align: center; + } + } +} + +// Move borders to anchors instead of bottom of list +.nav-tabs-justified { + border-bottom: 0; + > li > a { + border-bottom: 1px solid @nav-tabs-justified-link-border-color; + + // Override margin from .nav-tabs + margin-right: 0; + } + > .active > a { + border-bottom-color: @nav-tabs-justified-active-link-border-color; + } + +} + + + +// Tabbable tabs +// ------------------------- + +// Clear any floats +.tabbable { + .clearfix(); +} + +// Show/hide tabbable areas +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display: none; +} +.tab-content, +.pill-content { + > .active { + display: block; + } +} + + + +// Dropdowns +// ------------------------- + +// Make dropdown carets use link color in navs +.nav .caret { + border-top-color: @link-color; + border-bottom-color: @link-color; +} +.nav a:hover .caret { + border-top-color: @link-hover-color; + border-bottom-color: @link-hover-color; +} + +// Specific dropdowns +.nav-tabs .dropdown-menu { + // make dropdown border overlap tab border + margin-top: -1px; + // Remove the top rounded corners here since there is a hard edge above the menu + .border-top-radius(0); +} diff --git a/bower_components/bootstrap/less/normalize.less b/bower_components/bootstrap/less/normalize.less new file mode 100644 index 00000000..a2e9c648 --- /dev/null +++ b/bower_components/bootstrap/less/normalize.less @@ -0,0 +1,396 @@ +/*! normalize.css v2.1.0 | MIT License | git.io/normalize */ + +// ========================================================================== +// HTML5 display definitions +// ========================================================================== + +// +// Correct `block` display not defined in IE 8/9. +// + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} + +// +// Correct `inline-block` display not defined in IE 8/9. +// + +audio, +canvas, +video { + display: inline-block; +} + +// +// Prevent modern browsers from displaying `audio` without controls. +// Remove excess height in iOS 5 devices. +// + +audio:not([controls]) { + display: none; + height: 0; +} + +// +// Address styling not present in IE 8/9. +// + +[hidden] { + display: none; +} + +// ========================================================================== +// Base +// ========================================================================== + +// +// 1. Set default font family to sans-serif. +// 2. Prevent iOS text size adjust after orientation change, without disabling +// user zoom. +// + +html { + font-family: sans-serif; // 1 + -webkit-text-size-adjust: 100%; // 2 + -ms-text-size-adjust: 100%; // 2 +} + +// +// Remove default margin. +// + +body { + margin: 0; +} + +// ========================================================================== +// Links +// ========================================================================== + +// +// Address `outline` inconsistency between Chrome and other browsers. +// + +a:focus { + outline: thin dotted; +} + +// +// Improve readability when focused and also mouse hovered in all browsers. +// + +a:active, +a:hover { + outline: 0; +} + +// ========================================================================== +// Typography +// ========================================================================== + +// +// Address variable `h1` font-size and margin within `section` and `article` +// contexts in Firefox 4+, Safari 5, and Chrome. +// + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +// +// Address styling not present in IE 8/9, Safari 5, and Chrome. +// + +abbr[title] { + border-bottom: 1px dotted; +} + +// +// Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. +// + +b, +strong { + font-weight: bold; +} + +// +// Address styling not present in Safari 5 and Chrome. +// + +dfn { + font-style: italic; +} + +// +// Address differences between Firefox and other browsers. +// + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +// +// Address styling not present in IE 8/9. +// + +mark { + background: #ff0; + color: #000; +} + +// +// Correct font family set oddly in Safari 5 and Chrome. +// + +code, +kbd, +pre, +samp { + font-family: monospace, serif; + font-size: 1em; +} + +// +// Improve readability of pre-formatted text in all browsers. +// + +pre { + white-space: pre-wrap; +} + +// +// Set consistent quote types. +// + +q { + quotes: "\201C" "\201D" "\2018" "\2019"; +} + +// +// Address inconsistent and variable font size in all browsers. +// + +small { + font-size: 80%; +} + +// +// Prevent `sub` and `sup` affecting `line-height` in all browsers. +// + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +// ========================================================================== +// Embedded content +// ========================================================================== + +// +// Remove border when inside `a` element in IE 8/9. +// + +img { + border: 0; +} + +// +// Correct overflow displayed oddly in IE 9. +// + +svg:not(:root) { + overflow: hidden; +} + +// ========================================================================== +// Figures +// ========================================================================== + +// +// Address margin not present in IE 8/9 and Safari 5. +// + +figure { + margin: 0; +} + +// ========================================================================== +// Forms +// ========================================================================== + +// +// Define consistent border, margin, and padding. +// + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +// +// 1. Correct `color` not being inherited in IE 8/9. +// 2. Remove padding so people aren't caught out if they zero out fieldsets. +// + +legend { + border: 0; // 1 + padding: 0; // 2 +} + +// +// 1. Correct font family not being inherited in all browsers. +// 2. Correct font size not being inherited in all browsers. +// 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. +// + +button, +input, +select, +textarea { + font-family: inherit; // 1 + font-size: 100%; // 2 + margin: 0; // 3 +} + +// +// Address Firefox 4+ setting `line-height` on `input` using `!important` in +// the UA stylesheet. +// + +button, +input { + line-height: normal; +} + +// +// Address inconsistent `text-transform` inheritance for `button` and `select`. +// All other form control elements do not inherit `text-transform` values. +// Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. +// Correct `select` style inheritance in Firefox 4+ and Opera. +// + +button, +select { + text-transform: none; +} + +// +// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` +// and `video` controls. +// 2. Correct inability to style clickable `input` types in iOS. +// 3. Improve usability and consistency of cursor style between image-type +// `input` and others. +// + +button, +html input[type="button"], // 1 +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; // 2 + cursor: pointer; // 3 +} + +// +// Re-set default cursor for disabled elements. +// + +button[disabled], +html input[disabled] { + cursor: default; +} + +// +// 1. Address box sizing set to `content-box` in IE 8/9. +// 2. Remove excess padding in IE 8/9. +// + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; // 1 + padding: 0; // 2 +} + +// +// 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. +// 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome +// (include `-moz` to future-proof). +// + +input[type="search"] { + -webkit-appearance: textfield; // 1 + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; // 2 + box-sizing: content-box; +} + +// +// Remove inner padding and search cancel button in Safari 5 and Chrome +// on OS X. +// + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +// +// Remove inner padding and border in Firefox 4+. +// + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +// +// 1. Remove default vertical scrollbar in IE 8/9. +// 2. Improve readability and alignment in all browsers. +// + +textarea { + overflow: auto; // 1 + vertical-align: top; // 2 +} + +// ========================================================================== +// Tables +// ========================================================================== + +// +// Remove most spacing between table cells. +// + +table { + border-collapse: collapse; + border-spacing: 0; +} diff --git a/bower_components/bootstrap/less/pager.less b/bower_components/bootstrap/less/pager.less new file mode 100644 index 00000000..04585a3a --- /dev/null +++ b/bower_components/bootstrap/less/pager.less @@ -0,0 +1,55 @@ +// +// Pager pagination +// -------------------------------------------------- + + +.pager { + padding-left: 0; + margin: @line-height-computed 0; + list-style: none; + text-align: center; + .clearfix(); + li { + display: inline; + > a, + > span { + display: inline-block; + padding: 5px 14px; + background-color: @pagination-bg; + border: 1px solid @pagination-border; + border-radius: @pager-border-radius; + } + + > a:hover, + > a:focus { + text-decoration: none; + background-color: @pagination-active-bg; + } + } + + .next { + > a, + > span { + float: right; + } + } + + .previous { + > a, + > span { + float: left; + } + } + + .disabled { + > a, + > a:hover, + > a:focus, + > span { + color: @pager-disabled-color; + background-color: @pagination-bg; + cursor: not-allowed; + } + } + +} diff --git a/bower_components/bootstrap/less/pagination.less b/bower_components/bootstrap/less/pagination.less new file mode 100644 index 00000000..83b72e47 --- /dev/null +++ b/bower_components/bootstrap/less/pagination.less @@ -0,0 +1,108 @@ +// +// Pagination (multiple pages) +// -------------------------------------------------- +.pagination { + display: inline-block; + padding-left: 0; + margin: @line-height-computed 0; + border-radius: @border-radius-base; + + > li { + display: inline; // Remove list-style and block-level defaults + > a, + > span { + float: left; // Collapse white-space + padding: 4px 12px; + line-height: @line-height-base; + text-decoration: none; + background-color: @pagination-bg; + border: 1px solid @pagination-border; + border-left-width: 0; + } + &:first-child { + > a, + > span { + border-left-width: 1px; + .border-left-radius(@border-radius-base); + } + } + &:last-child { + > a, + > span { + .border-right-radius(@border-radius-base); + } + } + } + + > li > a:hover, + > li > a:focus, + > .active > a, + > .active > span { + background-color: @pagination-active-bg; + } + > .active > a, + > .active > span { + color: @pagination-active-color; + cursor: default; + } + + > .disabled { + > span, + > a, + > a:hover, + > a:focus { + color: @pagination-disabled-color; + background-color: @pagination-bg; + cursor: not-allowed; + } + } +} + +// Sizing +// -------------------------------------------------- + +// Large +.pagination-large { + > li { + > a, + > span { + padding: @padding-large-vertical @padding-large-horizontal; + font-size: @font-size-large; + } + &:first-child { + > a, + > span { + .border-left-radius(@border-radius-large); + } + } + &:last-child { + > a, + > span { + .border-right-radius(@border-radius-large); + } + } + } +} + +// Small +.pagination-small { + > li { + > a, + > span { + padding: @padding-small-vertical @padding-small-horizontal; + font-size: @font-size-small; + } + &:first-child { + > a, + > span { + .border-left-radius(@border-radius-small); + } + } + &:last-child { + > a, + > span { + .border-right-radius(@border-radius-small); + } + } + } +} diff --git a/bower_components/bootstrap/less/panels.less b/bower_components/bootstrap/less/panels.less new file mode 100644 index 00000000..691a1554 --- /dev/null +++ b/bower_components/bootstrap/less/panels.less @@ -0,0 +1,102 @@ +// +// Panels +// -------------------------------------------------- + + +// Base class +.panel { + padding: 15px; + margin-bottom: 20px; + background-color: @panel-bg; + border: 1px solid @panel-border; + border-radius: @panel-border-radius; + .box-shadow(0 1px 1px rgba(0,0,0,.05)); +} + +// Optional heading +.panel-heading { + margin: -15px -15px 15px; + padding: 10px 15px; + background-color: @panel-heading-bg; + border-bottom: 1px solid @panel-border; + border-top-left-radius: (@panel-border-radius - 1); + border-top-right-radius: (@panel-border-radius - 1); +} + +// Within heading, strip any `h*` tag of it's default margins for spacing. +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: (@font-size-base * 1.25); + font-weight: 500; +} + +// Optional footer (stays gray in every modifier class) +.panel-footer { + margin: 15px -15px -15px; + padding: 10px 15px; + background-color: @panel-footer-bg; + border-top: 1px solid @panel-border; + border-bottom-left-radius: (@panel-border-radius - 1); + border-bottom-right-radius: (@panel-border-radius - 1); +} + +// Contextual variations +.panel-primary { + border-color: @panel-primary-border; + .panel-heading { + color: @panel-primary-text; + background-color: @panel-primary-heading-bg; + border-color: @panel-primary-border; + } +} +.panel-success { + border-color: @panel-success-border; + .panel-heading { + color: @panel-success-text; + background-color: @panel-success-heading-bg; + border-color: @panel-success-border; + } +} +.panel-warning { + border-color: @panel-warning-border; + .panel-heading { + color: @panel-warning-text; + background-color: @panel-warning-heading-bg; + border-color: @panel-warning-border; + } +} +.panel-danger { + border-color: @panel-danger-border; + .panel-heading { + color: @panel-danger-text; + background-color: @panel-danger-heading-bg; + border-color: @panel-danger-border; + } +} +.panel-info { + border-color: @panel-info-border; + .panel-heading { + color: @panel-info-text; + background-color: @panel-info-heading-bg; + border-color: @panel-info-border; + } +} + +// List groups in panels +.list-group-flush { + margin: 15px -15px -15px; + + .list-group-item { + border-width: 1px 0; + + // Remove border radius for top one + &:first-child { + .border-top-radius(0); + } + // But keep it for the last one + &:last-child { + border-bottom: 0; + } + } +} diff --git a/bower_components/bootstrap/less/popovers.less b/bower_components/bootstrap/less/popovers.less new file mode 100644 index 00000000..c07350f9 --- /dev/null +++ b/bower_components/bootstrap/less/popovers.less @@ -0,0 +1,135 @@ +// +// Popovers +// -------------------------------------------------- + + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: @zindex-popover; + display: none; + max-width: @popover-max-width; + padding: 1px; + text-align: left; // Reset given new insertion method + background-color: @popover-bg; + -webkit-bg-clip: padding-box; + -moz-bg-clip: padding; + background-clip: padding-box; + border: 1px solid @popover-fallback-border-color; + border: 1px solid @popover-border-color; + border-radius: @border-radius-large; + .box-shadow(0 5px 10px rgba(0,0,0,.2)); + + // Overrides for proper insertion + white-space: normal; + + // Offset the popover to account for the popover arrow + &.top { margin-top: -10px; } + &.right { margin-left: 10px; } + &.bottom { margin-top: 10px; } + &.left { margin-left: -10px; } +} + +.popover-title { + margin: 0; // reset heading margin + padding: 8px 14px; + font-size: @font-size-base; + font-weight: normal; + line-height: 18px; + background-color: @popover-title-bg; + border-bottom: 1px solid darken(@popover-title-bg, 5%); + border-radius: 5px 5px 0 0; +} + +.popover-content { + padding: 9px 14px; +} + +// Arrows +// +// .arrow is outer, .arrow:after is inner + +.popover .arrow { + &, + &:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; + } +} +.popover .arrow { + border-width: @popover-arrow-outer-width; +} +.popover .arrow:after { + border-width: @popover-arrow-width; + content: ""; +} + +.popover { + &.top .arrow { + left: 50%; + margin-left: -@popover-arrow-outer-width; + border-bottom-width: 0; + border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback + border-top-color: @popover-arrow-outer-color; + bottom: -@popover-arrow-outer-width; + &:after { + content: " "; + bottom: 1px; + margin-left: -@popover-arrow-width; + border-bottom-width: 0; + border-top-color: @popover-arrow-color; + } + } + &.right .arrow { + top: 50%; + left: -@popover-arrow-outer-width; + margin-top: -@popover-arrow-outer-width; + border-left-width: 0; + border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback + border-right-color: @popover-arrow-outer-color; + &:after { + content: " "; + left: 1px; + bottom: -@popover-arrow-width; + border-left-width: 0; + border-right-color: @popover-arrow-color; + } + } + &.bottom .arrow { + left: 50%; + margin-left: -@popover-arrow-outer-width; + border-top-width: 0; + border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback + border-bottom-color: @popover-arrow-outer-color; + top: -@popover-arrow-outer-width; + &:after { + content: " "; + top: 1px; + margin-left: -@popover-arrow-width; + border-top-width: 0; + border-bottom-color: @popover-arrow-color; + } + } + + &.left .arrow { + top: 50%; + right: -@popover-arrow-outer-width; + margin-top: -@popover-arrow-outer-width; + border-right-width: 0; + border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback + border-left-color: @popover-arrow-outer-color; + &:after { + content: " "; + right: 1px; + border-right-width: 0; + border-left-color: @popover-arrow-color; + bottom: -@popover-arrow-width; + } + } + +} diff --git a/bower_components/bootstrap/less/print.less b/bower_components/bootstrap/less/print.less new file mode 100644 index 00000000..1e4bffe3 --- /dev/null +++ b/bower_components/bootstrap/less/print.less @@ -0,0 +1,100 @@ +// +// Basic print styles +// -------------------------------------------------- +// Source: https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css + +@media print { + + * { + text-shadow: none !important; + color: #000 !important; // Black prints faster: h5bp.com/s + background: transparent !important; + box-shadow: none !important; + } + + a, + a:visited { + text-decoration: underline; + } + + a[href]:after { + content: " (" attr(href) ")"; + } + + abbr[title]:after { + content: " (" attr(title) ")"; + } + + // Don't show links for images, or javascript/internal links + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + + thead { + display: table-header-group; // h5bp.com/t + } + + tr, + img { + page-break-inside: avoid; + } + + img { + max-width: 100% !important; + } + + @page { + margin: 2cm .5cm; + } + + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + + h2, + h3 { + page-break-after: avoid; + } + + // Bootstrap components + .navbar { + display: none; + } + .table { + td, + th { + background-color: #fff !important; + } + } + .btn, + .dropup > .btn { + > .caret { + border-top-color: #000 !important; + } + } + .label { + border: 1px solid #000; + } + + .table { + border-collapse: collapse !important; + } + .table-bordered { + th, + td { + border: 1px solid #ddd !important; + } + } + +} diff --git a/bower_components/bootstrap/less/progress-bars.less b/bower_components/bootstrap/less/progress-bars.less new file mode 100644 index 00000000..fe399abf --- /dev/null +++ b/bower_components/bootstrap/less/progress-bars.less @@ -0,0 +1,105 @@ +// +// Progress bars +// -------------------------------------------------- + + +// Bar animations +// ------------------------- + +// Webkit +@-webkit-keyframes progress-bar-stripes { + from { background-position: 40px 0; } + to { background-position: 0 0; } +} + +// Firefox +@-moz-keyframes progress-bar-stripes { + from { background-position: 40px 0; } + to { background-position: 0 0; } +} + +// IE9 +@-ms-keyframes progress-bar-stripes { + from { background-position: 40px 0; } + to { background-position: 0 0; } +} + +// Opera +@-o-keyframes progress-bar-stripes { + from { background-position: 0 0; } + to { background-position: 40px 0; } +} + +// Spec +@keyframes progress-bar-stripes { + from { background-position: 40px 0; } + to { background-position: 0 0; } +} + + + +// Bar itself +// ------------------------- + +// Outer container +.progress { + overflow: hidden; + height: @line-height-computed; + margin-bottom: @line-height-computed; + background-color: @progress-bg; + border-radius: @border-radius-base; + .box-shadow(inset 0 1px 2px rgba(0,0,0,.1)); +} + +// Bar of progress +.progress-bar { + float: left; + width: 0%; + height: 100%; + font-size: @font-size-small; + color: @progress-bar-color; + text-align: center; + background-color: @progress-bar-bg; + .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15)); + .transition(width .6s ease); +} + +// Striped bars +.progress-striped .progress-bar { + #gradient > .striped(@progress-bar-bg); + .background-size(40px 40px); +} + +// Call animation for the active one +.progress.active .progress-bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + -ms-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} + + + +// Variations +// ------------------------- + +// Danger (red) +.progress-bar-danger { + .progress-bar-variant(@progress-bar-danger-bg); +} + +// Success (green) +.progress-bar-success { + .progress-bar-variant(@progress-bar-success-bg); +} + +// Warning (orange) +.progress-bar-warning { + .progress-bar-variant(@progress-bar-warning-bg); +} + +// Info (teal) +.progress-bar-info { + .progress-bar-variant(@progress-bar-info-bg); +} diff --git a/bower_components/bootstrap/less/responsive-utilities.less b/bower_components/bootstrap/less/responsive-utilities.less new file mode 100644 index 00000000..38dd9639 --- /dev/null +++ b/bower_components/bootstrap/less/responsive-utilities.less @@ -0,0 +1,119 @@ +// +// Responsive: Utility classes +// -------------------------------------------------- + + +// IE10 Metro responsive +// Required for Windows 8 Metro split-screen snapping with IE10 +// +// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/ +@-ms-viewport{ + width: device-width; +} + +// IE10 on Windows Phone 8 +// IE10 on WP8 doesn't report CSS pixels, but actual device pixels. In +// other words, say on a Lumia, you'll get 768px as the device width, +// meaning users will see the tablet styles and not phone styles. +// +// Alternatively you can override this with JS (see source below), but +// we won't be doing that here given our limited scope. +// +// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/ +@media screen and (max-width: 400px) { + @-ms-viewport{ + width: 320px; + } +} + +// Hide from screenreaders and browsers +// Credit: HTML5 Boilerplate +.hidden { + display: none !important; + visibility: hidden !important; +} + +// Visibility utilities + +// For Phones +.visible-sm { + .responsive-visibility(); +} +.visible-md { + .responsive-invisibility(); +} +.visible-lg { + .responsive-invisibility(); +} + +.hidden-sm { + .responsive-invisibility(); +} +.hidden-md { + .responsive-visibility(); +} +.hidden-lg { + .responsive-visibility(); +} + + +// Tablets & small desktops only +@media (min-width: @screen-tablet) and (max-width: @screen-tablet-max) { + .visible-sm { + .responsive-invisibility(); + } + .visible-md { + .responsive-visibility(); + } + .visible-lg { + .responsive-invisibility(); + } + + .hidden-sm { + .responsive-visibility(); + } + .hidden-md { + .responsive-invisibility(); + } + .hidden-lg { + .responsive-visibility(); + } +} + +// For desktops +@media (min-width: @screen-desktop) { + .visible-sm { + .responsive-invisibility(); + } + .visible-md { + .responsive-invisibility(); + } + .visible-lg { + .responsive-visibility(); + } + + .hidden-sm { + .responsive-visibility(); + } + .hidden-md { + .responsive-visibility(); + } + .hidden-lg { + .responsive-invisibility(); + } +} + +// Print utilities +.visible-print { + .responsive-invisibility(); +} +.hidden-print { } + +@media print { + .visible-print { + .responsive-visibility(); + } + .hidden-print { + .responsive-invisibility(); + } +} diff --git a/bower_components/bootstrap/less/scaffolding.less b/bower_components/bootstrap/less/scaffolding.less new file mode 100644 index 00000000..b6128dc5 --- /dev/null +++ b/bower_components/bootstrap/less/scaffolding.less @@ -0,0 +1,95 @@ +// +// Scaffolding +// -------------------------------------------------- + + +// Reset the box-sizing +// ------------------------- + +* { + .box-sizing(border-box); +} + + +// Body reset +// ------------------------- + +html { + font-size: 62.5%; + -webkit-tap-highlight-color: rgba(0,0,0,0); +} + +body { + font-family: @font-family-base; + font-size: @font-size-base; + line-height: @line-height-base; + color: @text-color; + background-color: @body-bg; +} + +// Reset fonts for relevant elements +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + + +// Links +// ------------------------- + +a { + color: @link-color; + text-decoration: none; +} +a:hover, +a:focus { + color: @link-hover-color; + text-decoration: underline; +} +a:focus { + .tab-focus(); +} + + +// Images +// ------------------------- + +img { + vertical-align: middle; +} + +// Responsive images (ensure images don't scale beyond their parents) +.img-responsive { + display: inline-block; + max-width: 100%; // Part 1: Set a maximum relative to the parent + height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching +} + +// Rounded corners +.img-rounded { + border-radius: @border-radius-large; +} + +// Image thumbnails +// See thumbnails.less for `.img-thumbnail` + +// Perfect circle +.img-circle { + border-radius: 500px; // crank the border-radius so it works with most reasonably sized images +} + + +// Horizontal rules +// ------------------------- + +hr { + margin-top: @line-height-computed; + margin-bottom: @line-height-computed; + border: 0; + border-top: 1px solid @hr-border; +} + diff --git a/bower_components/bootstrap/less/tables.less b/bower_components/bootstrap/less/tables.less new file mode 100644 index 00000000..68e33dcc --- /dev/null +++ b/bower_components/bootstrap/less/tables.less @@ -0,0 +1,211 @@ +// +// Tables +// -------------------------------------------------- + + +table { + max-width: 100%; + background-color: @table-bg; +} +th { + text-align: left; +} + + +// Baseline styles +// --------------- + +.table { + width: 100%; + margin-bottom: @line-height-computed; + // Cells + thead, + tbody, + tfoot { + > tr { + > th, + > td { + padding: @table-cell-padding; + line-height: @line-height-base; + vertical-align: top; + border-top: 1px solid @table-border-color; + } + } + } + // Bottom align for column headings + thead > tr > th { + vertical-align: bottom; + } + // Remove top border from thead by default + caption + thead, + colgroup + thead, + thead:first-child { + tr:first-child { + th, td { + border-top: 0; + } + } + } + // Account for multiple tbody instances + tbody + tbody { + border-top: 2px solid @table-border-color; + } + + // Nesting + .table { + background-color: @body-bg; + } +} + + + +// Condensed table w/ half padding +// ------------------------------- + +.table-condensed { + thead, + tbody, + tfoot { + > tr { + > th, + > td { + padding: @table-condensed-cell-padding; + } + } + } +} + + + +// Bordered version +// ---------------- + +.table-bordered { + border: 1px solid @table-border-color; + > thead, + > tbody, + > tfoot { + > tr { + > th, + > td { + border: 1px solid @table-border-color; + } + } + } +} + + + +// Zebra-striping +// -------------- + +// Default zebra-stripe styles (alternating gray and transparent backgrounds) +.table-striped { + > tbody { + > tr:nth-child(odd) { + > td, + > th { + background-color: @table-bg-accent; + } + } + } +} + + + +// Hover effect +// ------------ + +// Placed here since it has to come after the potential zebra striping +.table-hover { + > tbody { + > tr:hover { + > td, + > th { + background-color: @table-bg-hover; + } + } + } +} + + + +// Table cell sizing +// ----------------- + +// Reset default table behavior +table col[class^="col-"] { + float: none; + display: table-column; +} +table { + td, + th { + &[class^="col-"] { + float: none; + display: table-cell; + } + } +} + + + +// Table backgrounds +// ----------------- +// Exact selectors below required to override `.table-striped` and prevent +// inheritance to nested tables. + +.table > thead > tr, +.table > tbody > tr, +.table > tfoot > tr { + > td.active, + > th.active, + &.active > td, + &.active > th { + background-color: @table-bg-hover; + } + > td.success, + > th.success, + &.success > td, + &.success > th { + background-color: @state-success-bg; + border-color: @state-success-border; + } + > td.danger, + > th.danger, + &.danger > td, + &.danger > th { + background-color: @state-danger-bg; + border-color: @state-danger-border; + } + > td.warning, + > th.warning, + &.warning > td, + &.warning > th { + background-color: @state-warning-bg; + border-color: @state-warning-border; + } +} + +// Hover states for `.table-hover` +// Note: this is not available for cells or rows within `thead` or `tfoot`. +.table-hover > tbody > tr { + > td.success:hover, + > th.success:hover, + &.success:hover > td { + background-color: darken(@state-success-bg, 5%); + border-color: darken(@state-success-border, 5%); + } + > td.danger:hover, + > th.danger:hover, + &.danger:hover > td { + background-color: darken(@state-danger-bg, 5%); + border-color: darken(@state-danger-border, 5%); + } + > td.warning:hover, + > th.warning:hover, + &.warning:hover > td { + background-color: darken(@state-warning-bg, 5%); + border-color: darken(@state-warning-border, 5%); + } +} diff --git a/bower_components/bootstrap/less/thumbnails.less b/bower_components/bootstrap/less/thumbnails.less new file mode 100644 index 00000000..1f896708 --- /dev/null +++ b/bower_components/bootstrap/less/thumbnails.less @@ -0,0 +1,42 @@ +// +// Thumbnails +// -------------------------------------------------- + + +// Base classes +// For thumbnail block-level composite components and simple image styles + +// The actual thumbnailed element +// Can be `a`, `div`, or `img` +.thumbnail, +.img-thumbnail { + padding: 4px; + line-height: @line-height-base; + background-color: @thumbnail-bg; + border: 1px solid @thumbnail-border; + border-radius: @thumbnail-border-radius; + .transition(all .2s ease-in-out); +} +.thumbnail { + display: block; +} +.thumbnail > img, +.img-thumbnail { + .img-responsive(); +} + +// Add a hover state for linked versions only +a.thumbnail:hover, +a.thumbnail:focus { + border-color: @link-color; +} + +// Images and captions +.thumbnail > img { + margin-left: auto; + margin-right: auto; +} +.thumbnail .caption { + padding: 9px; + color: @thumbnail-caption-color; +} diff --git a/bower_components/bootstrap/less/tooltip.less b/bower_components/bootstrap/less/tooltip.less new file mode 100644 index 00000000..819b9dff --- /dev/null +++ b/bower_components/bootstrap/less/tooltip.less @@ -0,0 +1,95 @@ +// +// Tooltips +// -------------------------------------------------- + + +// Base class +.tooltip { + position: absolute; + z-index: @zindex-tooltip; + display: block; + visibility: visible; + font-size: @font-size-small; + line-height: 1.4; + .opacity(0); + + &.in { .opacity(1); } + &.top { margin-top: -3px; padding: 5px 0; } + &.right { margin-left: 3px; padding: 0 5px; } + &.bottom { margin-top: 3px; padding: 5px 0; } + &.left { margin-left: -3px; padding: 0 5px; } +} + +// Wrapper for the tooltip content +.tooltip-inner { + max-width: @tooltip-max-width; + padding: 3px 8px; + color: @tooltip-color; + text-align: center; + text-decoration: none; + background-color: @tooltip-bg; + border-radius: @border-radius-base; +} + +// Arrows +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.tooltip { + &.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -@tooltip-arrow-width; + border-width: @tooltip-arrow-width @tooltip-arrow-width 0; + border-top-color: @tooltip-arrow-color; + } + &.top-left .tooltip-arrow { + bottom: 0; + left: 5px; + border-width: @tooltip-arrow-width @tooltip-arrow-width 0; + border-top-color: @tooltip-arrow-color; + } + &.top-right .tooltip-arrow { + bottom: 0; + right: 5px; + border-width: @tooltip-arrow-width @tooltip-arrow-width 0; + border-top-color: @tooltip-arrow-color; + } + &.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -@tooltip-arrow-width; + border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0; + border-right-color: @tooltip-arrow-color; + } + &.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -@tooltip-arrow-width; + border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width; + border-left-color: @tooltip-arrow-color; + } + &.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -@tooltip-arrow-width; + border-width: 0 @tooltip-arrow-width @tooltip-arrow-width; + border-bottom-color: @tooltip-arrow-color; + } + &.bottom-left .tooltip-arrow { + top: 0; + left: 5px; + border-width: 0 @tooltip-arrow-width @tooltip-arrow-width; + border-bottom-color: @tooltip-arrow-color; + } + &.bottom-right .tooltip-arrow { + top: 0; + right: 5px; + border-width: 0 @tooltip-arrow-width @tooltip-arrow-width; + border-bottom-color: @tooltip-arrow-color; + } +} diff --git a/bower_components/bootstrap/less/type.less b/bower_components/bootstrap/less/type.less new file mode 100644 index 00000000..0acb7f35 --- /dev/null +++ b/bower_components/bootstrap/less/type.less @@ -0,0 +1,232 @@ +// +// Typography +// -------------------------------------------------- + + +// Body text +// ------------------------- + +p { + margin: 0 0 (@line-height-computed / 2); +} +.lead { + margin-bottom: @line-height-computed; + font-size: (@font-size-base * 1.15); + font-weight: 200; + line-height: 1.4; + + @media (min-width: 768px) { + font-size: (@font-size-base * 1.5); + } +} + + +// Emphasis & misc +// ------------------------- + +// Ex: 14px base font * 85% = about 12px +small { font-size: 85%; } + +// Undo browser default styling +cite { font-style: normal; } + +// Contextual emphasis +.text-muted { color: @text-muted; } +.text-primary { color: @brand-primary; } +.text-warning { color: @state-warning-text; } +.text-danger { color: @state-danger-text; } +.text-success { color: @state-success-text; } +.text-info { color: @state-info-text; } + +// Alignment +.text-left { text-align: left; } +.text-right { text-align: right; } +.text-center { text-align: center; } + + +// Headings +// ------------------------- + +h1, h2, h3, h4, h5, h6, +.h1, .h2, .h3, .h4, .h5, .h6 { + font-family: @headings-font-family; + font-weight: @headings-font-weight; + line-height: @headings-line-height; + small { + font-weight: normal; + line-height: 1; + color: @headings-small-color; + } +} + +h1, +h2, +h3 { + margin-top: @line-height-computed; + margin-bottom: (@line-height-computed / 2); +} +h4, +h5, +h6 { + margin-top: (@line-height-computed / 2); + margin-bottom: (@line-height-computed / 2); +} + +h1, .h1 { font-size: ceil(@font-size-base * 2.70); } // ~38px +h2, .h2 { font-size: ceil(@font-size-base * 2.25); } // ~32px +h3, .h3 { font-size: ceil(@font-size-base * 1.70); } // ~24px +h4, .h4 { font-size: ceil(@font-size-base * 1.25); } // ~18px +h5, .h5 { font-size: @font-size-base; } +h6, .h6 { font-size: ceil(@font-size-base * 0.85); } // ~12px + +h1 small, .h1 small { font-size: ceil(@font-size-base * 1.70); } // ~24px +h2 small, .h2 small { font-size: ceil(@font-size-base * 1.25); } // ~18px +h3 small, .h3 small, +h4 small, .h4 small { font-size: @font-size-base; } + + +// Page header +// ------------------------- + +.page-header { + padding-bottom: ((@line-height-computed / 2) - 1); + margin: (@line-height-computed * 2) 0 @line-height-computed; + border-bottom: 1px solid @page-header-border-color; +} + + + +// Lists +// -------------------------------------------------- + +// Unordered and Ordered lists +ul, +ol { + margin-top: 0; + margin-bottom: (@line-height-computed / 2); + ul, + ol{ + margin-bottom: 0; + } +} + +// List options + +// Unstyled keeps list items block level, just removes default browser padding and list-style +.list-unstyled { + padding-left: 0; + list-style: none; +} +// Inline turns list items into inline-block +.list-inline { + .list-unstyled(); + > li { + display: inline-block; + padding-left: 5px; + padding-right: 5px; + } +} + +// Description Lists +dl { + margin-bottom: @line-height-computed; +} +dt, +dd { + line-height: @line-height-base; +} +dt { + font-weight: bold; +} +dd { + margin-left: 0; // Undo browser default +} +// Horizontal layout (like forms) +.dl-horizontal { + dt { + float: left; + width: (@component-offset-horizontal - 20); + clear: left; + text-align: right; + .text-overflow(); + } + dd { + .clearfix(); // Clear the floated `dt` if an empty `dd` is present + margin-left: @component-offset-horizontal; + } +} + +// MISC +// ---- + +// Abbreviations and acronyms +abbr[title], +// Added data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257 +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted @abbr-border-color; +} +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} + +// Blockquotes +blockquote { + padding: (@line-height-computed / 2) @line-height-computed; + margin: 0 0 @line-height-computed; + border-left: 5px solid @blockquote-border-color; + p { + font-size: (@font-size-base * 1.25); + font-weight: 300; + line-height: 1.25; + } + p:last-child { + margin-bottom: 0; + } + small { + display: block; + line-height: @line-height-base; + color: @blockquote-small-color; + &:before { + content: '\2014 \00A0';// EM DASH, NBSP + } + } + + // Float right with text-align: right + &.pull-right { + float: right; + padding-right: 15px; + padding-left: 0; + border-right: 5px solid @blockquote-border-color; + border-left: 0; + p, + small { + text-align: right; + } + small { + &:before { + content: ''; + } + &:after { + content: '\00A0 \2014';// NBSP, EM DASH + } + } + } +} + +// Quotes +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} + +// Addresses +address { + display: block; + margin-bottom: @line-height-computed; + font-style: normal; + line-height: @line-height-base; +} diff --git a/bower_components/bootstrap/less/utilities.less b/bower_components/bootstrap/less/utilities.less new file mode 100644 index 00000000..d296b32c --- /dev/null +++ b/bower_components/bootstrap/less/utilities.less @@ -0,0 +1,42 @@ +// +// Utility classes +// -------------------------------------------------- + + +// Floats +// ------------------------- + +.clearfix { + .clearfix(); +} +.pull-right { + float: right; +} +.pull-left { + float: left; +} + + +// Toggling content +// ------------------------- + +.hide { + display: none !important; +} +.show { + display: block !important; +} +.invisible { + visibility: hidden; +} +.text-hide { + .hide-text(); +} + + +// For Affix plugin +// ------------------------- + +.affix { + position: fixed; +} diff --git a/bower_components/bootstrap/less/variables.less b/bower_components/bootstrap/less/variables.less new file mode 100644 index 00000000..878725f6 --- /dev/null +++ b/bower_components/bootstrap/less/variables.less @@ -0,0 +1,568 @@ +// +// Variables +// -------------------------------------------------- + + +// Global values +// -------------------------------------------------- + +// Grays +// ------------------------- + +@gray-darker: lighten(#000, 13.5%); // #222 +@gray-dark: lighten(#000, 20%); // #333 +@gray: lighten(#000, 33.5%); // #555 +@gray-light: lighten(#000, 60%); // #999 +@gray-lighter: lighten(#000, 93.5%); // #eee + +// Brand colors +// ------------------------- + +@brand-primary: #428bca; +@brand-success: #5cb85c; +@brand-warning: #f0ad4e; +@brand-danger: #d9534f; +@brand-info: #5bc0de; + +// Scaffolding +// ------------------------- + +@body-bg: #fff; +@text-color: @gray-dark; + +// Links +// ------------------------- + +@link-color: @brand-primary; +@link-hover-color: darken(@link-color, 15%); + +// Typography +// ------------------------- + +@font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif; +@font-family-serif: Georgia, "Times New Roman", Times, serif; +@font-family-monospace: Monaco, Menlo, Consolas, "Courier New", monospace; +@font-family-base: @font-family-sans-serif; + +@font-size-base: 14px; +@font-size-large: ceil(@font-size-base * 1.25); // ~18px +@font-size-small: ceil(@font-size-base * 0.85); // ~12px + +@line-height-base: 1.428571429; // 20/14 +@line-height-computed: floor(@font-size-base * @line-height-base); // ~20px + +@headings-font-family: @font-family-base; +@headings-font-weight: 500; +@headings-line-height: 1.1; + + +// Components +// ------------------------- +// Based on 14px font-size and 1.428 line-height (~20px to start) + +@padding-base-vertical: 8px; +@padding-base-horizontal: 12px; + +@padding-large-vertical: 14px; +@padding-large-horizontal: 16px; + +@padding-small-vertical: 5px; +@padding-small-horizontal: 10px; + +@border-radius-base: 4px; +@border-radius-large: 6px; +@border-radius-small: 3px; + +@component-active-bg: @brand-primary; + + +// Tables +// ------------------------- + +@table-cell-padding: 8px; +@table-condensed-cell-padding: 5px; + +@table-bg: transparent; // overall background-color +@table-bg-accent: #f9f9f9; // for striping +@table-bg-hover: #f5f5f5; +@table-bg-active: @table-bg-hover; + +@table-border-color: #ddd; // table and cell border + + +// Buttons +// ------------------------- + +@btn-default-color: #fff; +@btn-default-bg: #474949; +@btn-default-border: @btn-default-bg; + +@btn-primary-color: @btn-default-color; +@btn-primary-bg: @brand-primary; +@btn-primary-border: @btn-primary-bg; + +@btn-success-color: @btn-default-color; +@btn-success-bg: @brand-success; +@btn-success-border: @btn-success-bg; + +@btn-warning-color: @btn-default-color; +@btn-warning-bg: @brand-warning; +@btn-warning-border: @btn-warning-bg; + +@btn-danger-color: @btn-default-color; +@btn-danger-bg: @brand-danger; +@btn-danger-border: @btn-danger-bg; + +@btn-info-color: @btn-default-color; +@btn-info-bg: @brand-info; +@btn-info-border: @btn-info-bg; + +@btn-hover-color: @btn-default-color; + + +// Forms +// ------------------------- + +@input-bg: #fff; +@input-bg-disabled: @gray-lighter; + +@input-border: #ccc; +@input-border-radius: @border-radius-base; + +@input-color-placeholder: @gray-light; + +@input-height-base: (@line-height-computed + (@padding-base-vertical * 2) + 2); +@input-height-large: (ceil(@font-size-large * @line-height-base) + (@padding-large-vertical * 2) + 2); +@input-height-small: (ceil(@font-size-small * @line-height-base) + (@padding-small-vertical * 2) + 2); + +@legend-border-color: #e5e5e5; + +@input-group-addon-border-color: @input-border; + + +// Dropdowns +// ------------------------- + +@dropdown-bg: #fff; +@dropdown-border: rgba(0,0,0,.15); +@dropdown-fallback-border: #ccc; +@dropdown-divider-bg: #e5e5e5; + +@dropdown-link-active-color: #fff; +@dropdown-link-active-bg: @component-active-bg; + +@dropdown-link-color: @gray-dark; +@dropdown-link-hover-color: #fff; +@dropdown-link-hover-bg: @dropdown-link-active-bg; + +@dropdown-caret-color: #000; + + +// 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 :) + +@zindex-dropdown: 1000; +@zindex-popover: 1010; +@zindex-tooltip: 1030; +@zindex-navbar-fixed: 1030; +@zindex-modal-background: 1040; +@zindex-modal: 1050; + + +// Navbar +// ------------------------- + +// Basics of a navbar +@navbar-height: 50px; +@navbar-color: #777; +@navbar-bg: #eee; +@navbar-padding-horizontal: floor(@grid-gutter-width / 2); // ~15px +@navbar-padding-vertical: ((@navbar-height - @line-height-computed) / 2); + +// Navbar links +@navbar-link-color: #777; +@navbar-link-hover-color: #333; +@navbar-link-hover-bg: transparent; +@navbar-link-active-color: #555; +@navbar-link-active-bg: darken(@navbar-bg, 10%); +@navbar-link-disabled-color: #ccc; +@navbar-link-disabled-bg: transparent; + +// Navbar brand label +@navbar-brand-color: @navbar-link-color; +@navbar-brand-hover-color: darken(@navbar-link-color, 10%); +@navbar-brand-hover-bg: transparent; + +// Navbar toggle +@navbar-toggle-hover-bg: #ddd; +@navbar-toggle-icon-bar-bg: #ccc; +@navbar-toggle-border-color: #ddd; + + +// Inverted navbar +// +// Reset inverted navbar basics +@navbar-inverse-color: @gray-light; +@navbar-inverse-bg: #222; + +// Inverted navbar links +@navbar-inverse-link-color: @gray-light; +@navbar-inverse-link-hover-color: #fff; +@navbar-inverse-link-hover-bg: transparent; +@navbar-inverse-link-active-color: @navbar-inverse-link-hover-color; +@navbar-inverse-link-active-bg: darken(@navbar-inverse-bg, 10%); +@navbar-inverse-link-disabled-color: #444; +@navbar-inverse-link-disabled-bg: transparent; + +// Inverted navbar brand label +@navbar-inverse-brand-color: @navbar-inverse-link-color; +@navbar-inverse-brand-hover-color: #fff; +@navbar-inverse-brand-hover-bg: transparent; + +// Inverted navbar search +// Normal navbar needs no special styles or vars +@navbar-inverse-search-bg: lighten(@navbar-inverse-bg, 25%); +@navbar-inverse-search-bg-focus: #fff; +@navbar-inverse-search-border: @navbar-inverse-bg; +@navbar-inverse-search-placeholder-color: #ccc; + +// Inverted navbar toggle +@navbar-inverse-toggle-hover-bg: #333; +@navbar-inverse-toggle-icon-bar-bg: #fff; +@navbar-inverse-toggle-border-color: #333; + + +// Navs +// ------------------------- + +@nav-link-hover-bg: @gray-lighter; + +@nav-disabled-link-color: @gray-light; +@nav-disabled-link-hover-color: @gray-light; + +@nav-open-link-hover-color: #fff; +@nav-open-caret-border-color: #fff; + +// Tabs +@nav-tabs-border-color: #ddd; + +@nav-tabs-link-hover-border-color: @gray-lighter; + +@nav-tabs-active-link-hover-bg: @body-bg; +@nav-tabs-active-link-hover-color: @gray; +@nav-tabs-active-link-hover-border-color: #ddd; + +@nav-tabs-justified-link-border-color: #ddd; +@nav-tabs-justified-active-link-border-color: @body-bg; + +// Pills +@nav-pills-active-link-hover-bg: @component-active-bg; +@nav-pills-active-link-hover-color: #fff; + + +// Pagination +// ------------------------- + +@pagination-bg: #fff; +@pagination-border: #ddd; +@pagination-active-bg: #f5f5f5; +@pagination-active-color: @gray-light; +@pagination-disabled-color: @gray-light; + +// Pager +// ------------------------- + +@pager-border-radius: 15px; +@pager-disabled-color: @gray-light; + + +// Jumbotron +// ------------------------- + +@jumbotron-bg: @gray-lighter; +@jumbotron-heading-color: inherit; +@jumbotron-lead-color: inherit; + + +// Form states and alerts +// ------------------------- + +@state-warning-text: #c09853; +@state-warning-bg: #fcf8e3; +@state-warning-border: darken(spin(@state-warning-bg, -10), 3%); + +@state-danger-text: #b94a48; +@state-danger-bg: #f2dede; +@state-danger-border: darken(spin(@state-danger-bg, -10), 3%); + +@state-success-text: #468847; +@state-success-bg: #dff0d8; +@state-success-border: darken(spin(@state-success-bg, -10), 5%); + +@state-info-text: #3a87ad; +@state-info-bg: #d9edf7; +@state-info-border: darken(spin(@state-info-bg, -10), 7%); + + +// Tooltips +// ------------------------- +@tooltip-max-width: 200px; +@tooltip-color: #fff; +@tooltip-bg: rgba(0,0,0,.9); + +@tooltip-arrow-width: 5px; +@tooltip-arrow-color: @tooltip-bg; + + +// Popovers +// ------------------------- +@popover-bg: #fff; +@popover-max-width: 276px; +@popover-border-color: rgba(0,0,0,.2); +@popover-fallback-border-color: #ccc; + +@popover-title-bg: darken(@popover-bg, 3%); + +@popover-arrow-width: 10px; +@popover-arrow-color: #fff; + +@popover-arrow-outer-width: (@popover-arrow-width + 1); +@popover-arrow-outer-color: rgba(0,0,0,.25); +@popover-arrow-outer-fallback-color: #999; + + +// Labels +// ------------------------- +@label-success-bg: @brand-success; +@label-info-bg: @brand-info; +@label-warning-bg: @brand-warning; +@label-danger-bg: @brand-danger; + +@label-color: #fff; +@label-link-hover-color: #fff; + + +// Modals +// ------------------------- +@modal-inner-padding: 20px; + +@modal-title-padding: 15px; +@modal-title-line-height: @line-height-base; + +@modal-content-bg: #fff; +@modal-content-border-color: rgba(0,0,0,.2); +@modal-content-fallback-border-color: #999; + +@modal-backdrop-bg: #000; +@modal-header-border-color: #e5e5e5; +@modal-footer-border-color: @modal-header-border-color; + + +// Alerts +// ------------------------- +@alert-bg: @state-warning-bg; +@alert-text: @state-warning-text; +@alert-border: @state-warning-border; +@alert-border-radius: @border-radius-base; + +@alert-success-bg: @state-success-bg; +@alert-success-text: @state-success-text; +@alert-success-border: @state-success-border; + +@alert-danger-bg: @state-danger-bg; +@alert-danger-text: @state-danger-text; +@alert-danger-border: @state-danger-border; + +@alert-info-bg: @state-info-bg; +@alert-info-text: @state-info-text; +@alert-info-border: @state-info-border; + + +// Progress bars +// ------------------------- +@progress-bg: #f5f5f5; +@progress-bar-color: #fff; + +@progress-bar-bg: @brand-primary; +@progress-bar-success-bg: @brand-success; +@progress-bar-warning-bg: @brand-warning; +@progress-bar-danger-bg: @brand-danger; +@progress-bar-info-bg: @brand-info; + + +// List group +// ------------------------- +@list-group-bg: #fff; +@list-group-border: #ddd; +@list-group-border-radius: @border-radius-base; + +@list-group-hover-bg: #f5f5f5; +@list-group-active-color: #fff; +@list-group-active-bg: @component-active-bg; +@list-group-active-border: @list-group-active-bg; + +@list-group-link-color: #555; +@list-group-link-heading-color: #333; + + +// Panels +// ------------------------- +@panel-bg: #fff; +@panel-border: #ddd; +@panel-border-radius: @border-radius-base; +@panel-heading-bg: #f5f5f5; +@panel-footer-bg: #f5f5f5; + +@panel-primary-text: #fff; +@panel-primary-border: @brand-primary; +@panel-primary-heading-bg: @brand-primary; + +@panel-success-text: @state-success-text; +@panel-success-border: @state-success-border; +@panel-success-heading-bg: @state-success-bg; + +@panel-warning-text: @state-warning-text; +@panel-warning-border: @state-warning-border; +@panel-warning-heading-bg: @state-warning-bg; + +@panel-danger-text: @state-danger-text; +@panel-danger-border: @state-danger-border; +@panel-danger-heading-bg: @state-danger-bg; + +@panel-info-text: @state-info-text; +@panel-info-border: @state-info-border; +@panel-info-heading-bg: @state-info-bg; + + +// Thumbnails +// ------------------------- +@thumbnail-caption-color: @text-color; +@thumbnail-bg: @body-bg; +@thumbnail-border: #ddd; +@thumbnail-border-radius: @border-radius-base; + + +// Wells +// ------------------------- +@well-bg: #f5f5f5; + + +// Accordion +// ------------------------- +@accordion-border-color: #e5e5e5; + + +// Badges +// ------------------------- +@badge-color: #fff; +@badge-link-hover-color: #fff; + +@badge-bg: @gray-light; +@badge-active-color: @link-color; +@badge-active-bg: #fff; + + +// Breadcrumbs +// ------------------------- +@breadcrumb-bg: #f5f5f5; +@breadcrumb-color: #ccc; +@breadcrumb-active-color: @gray-light; + + +// Carousel +// ------------------------ +@carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6); + +@carousel-control-color: #fff; + +@carousel-indicator-border-color: #fff; +@carousel-indicator-active-bg: #fff; + +@carousel-caption-color: #fff; + + +// Close +// ------------------------ +@close-color: #000; +@close-text-shadow: 0 1px 0 #fff; + + +// Code +// ------------------------ +@code-color: #c7254e; +@code-bg: #f9f2f4; + +@pre-bg: #f5f5f5; +@pre-border-color: #ccc; + +// Type +// ------------------------ +@text-muted: @gray-light; +@abbr-border-color: @gray-light; +@headings-small-color: @gray-light; +@blockquote-small-color: @gray-light; +@blockquote-border-color: @gray-lighter; +@page-header-border-color: @gray-lighter; + +// Miscellaneous +// ------------------------- + +// Hr border color +@hr-border: @gray-lighter; + +// Horizontal forms & lists +@component-offset-horizontal: 180px; + + +// Media queries breakpoints +// -------------------------------------------------- + +// Tiny screen / phone +@screen-tiny: 480px; +@screen-phone: @screen-tiny; + +// Small screen / tablet +@screen-small: 768px; +@screen-tablet: @screen-small; + +// Medium screen / desktop +@screen-medium: 992px; +@screen-desktop: @screen-medium; + +// So media queries don't overlap when required, provide a maximum +@screen-small-max: (@screen-medium - 1); +@screen-tablet-max: @screen-small-max; + +// Large screen / wide desktop +@screen-large: 1200px; +@screen-large-desktop: @screen-large; + + +// Container sizes +// -------------------------------------------------- + +// Small screen / tablet +@container-tablet: 728px; + +// Medium screen / desktop +@container-desktop: 940px; + +// Large screen / wide desktop +@container-large-desktop: 1170px; + + +// Grid system +// -------------------------------------------------- + +// Number of columns in the grid system +@grid-columns: 12; +// Padding, to be divided by two and applied to the left and right of all columns +@grid-gutter-width: 30px; +// Point at which the navbar stops collapsing +@grid-float-breakpoint: @screen-tablet; diff --git a/bower_components/bootstrap/less/wells.less b/bower_components/bootstrap/less/wells.less new file mode 100644 index 00000000..6a909f44 --- /dev/null +++ b/bower_components/bootstrap/less/wells.less @@ -0,0 +1,29 @@ +// +// Wells +// -------------------------------------------------- + + +// Base class +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: @well-bg; + border: 1px solid darken(@well-bg, 7%); + border-radius: @border-radius-base; + .box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); + blockquote { + border-color: #ddd; + border-color: rgba(0,0,0,.15); + } +} + +// Sizes +.well-large { + padding: 24px; + border-radius: @border-radius-large; +} +.well-small { + padding: 9px; + border-radius: @border-radius-small; +} |