mirror of
https://github.com/jasny/bootstrap.git
synced 2026-02-04 02:55:28 -05:00
moving structure around + more work on builder...
This commit is contained in:
30
less/accordion.less
Normal file
30
less/accordion.less
Normal file
@@ -0,0 +1,30 @@
|
||||
// ACCORDION
|
||||
// ---------
|
||||
|
||||
|
||||
// Parent container
|
||||
.accordion {
|
||||
margin-bottom: @baseLineHeight;
|
||||
}
|
||||
|
||||
// Group == heading + body
|
||||
.accordion-group {
|
||||
background-color: #f5f5f5;
|
||||
.border-radius(4px);
|
||||
}
|
||||
.accordion-heading {
|
||||
border-bottom: 0;
|
||||
}
|
||||
.accordion-heading .accordion-toggle {
|
||||
display: block;
|
||||
padding: 8px 15px;
|
||||
}
|
||||
.accordion-body {
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
// 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 #e5e5e5;
|
||||
}
|
||||
69
less/alerts.less
Normal file
69
less/alerts.less
Normal file
@@ -0,0 +1,69 @@
|
||||
// ALERT STYLES
|
||||
// ------------
|
||||
|
||||
// Base alert styles
|
||||
.alert {
|
||||
padding: 8px 35px 8px 14px;
|
||||
margin-bottom: @baseLineHeight;
|
||||
text-shadow: 0 1px 0 rgba(255,255,255,.5);
|
||||
background-color: @warningBackground;
|
||||
border: 1px solid @warningBorder;
|
||||
.border-radius(4px);
|
||||
}
|
||||
.alert,
|
||||
.alert-heading {
|
||||
color: @warningText;
|
||||
}
|
||||
|
||||
// Adjust close link position
|
||||
.alert .close {
|
||||
position: relative;
|
||||
right: -21px;
|
||||
line-height: 18px;
|
||||
}
|
||||
|
||||
// Alternate styles
|
||||
// ----------------
|
||||
|
||||
.alert-success {
|
||||
background-color: @successBackground;
|
||||
border-color: @successBorder;
|
||||
}
|
||||
.alert-success,
|
||||
.alert-success .alert-heading {
|
||||
color: @successText;
|
||||
}
|
||||
.alert-danger,
|
||||
.alert-error {
|
||||
background-color: @errorBackground;
|
||||
border-color: @errorBorder;
|
||||
}
|
||||
.alert-danger,
|
||||
.alert-error,
|
||||
.alert-danger .alert-heading,
|
||||
.alert-error .alert-heading {
|
||||
color: @errorText;
|
||||
}
|
||||
.alert-info {
|
||||
background-color: @infoBackground;
|
||||
border-color: @infoBorder;
|
||||
}
|
||||
.alert-info,
|
||||
.alert-info .alert-heading {
|
||||
color: @infoText;
|
||||
}
|
||||
|
||||
|
||||
// Block alerts
|
||||
// ------------------------
|
||||
.alert-block {
|
||||
padding-top: 14px;
|
||||
padding-bottom: 14px;
|
||||
}
|
||||
.alert-block > p,
|
||||
.alert-block > ul {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.alert-block p + p {
|
||||
margin-top: 5px;
|
||||
}
|
||||
63
less/bootstrap.less
vendored
Normal file
63
less/bootstrap.less
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
/*!
|
||||
* Bootstrap @VERSION
|
||||
*
|
||||
* Copyright 2012 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 @twitter by @mdo and @fat.
|
||||
* Date: @DATE
|
||||
*/
|
||||
|
||||
// CSS Reset
|
||||
@import "reset.less";
|
||||
|
||||
// Core variables and mixins
|
||||
@import "variables.less"; // Modify this for custom colors, font-sizes, etc
|
||||
@import "mixins.less";
|
||||
|
||||
// Grid system and page structure
|
||||
@import "scaffolding.less";
|
||||
@import "grid.less";
|
||||
@import "layouts.less";
|
||||
|
||||
// Base CSS
|
||||
@import "type.less";
|
||||
@import "code.less";
|
||||
@import "forms.less";
|
||||
@import "tables.less";
|
||||
|
||||
// Components: common
|
||||
@import "sprites.less";
|
||||
@import "dropdowns.less";
|
||||
@import "wells.less";
|
||||
@import "component-animations.less";
|
||||
@import "close.less";
|
||||
|
||||
// Components: Nav
|
||||
@import "navs.less";
|
||||
@import "navbar.less";
|
||||
@import "breadcrumbs.less";
|
||||
@import "pagination.less";
|
||||
@import "pager.less";
|
||||
|
||||
// Components: Popovers
|
||||
@import "modals.less";
|
||||
@import "tooltip.less";
|
||||
@import "popovers.less";
|
||||
|
||||
// Components: Buttons & Alerts
|
||||
@import "buttons.less";
|
||||
@import "button-groups.less";
|
||||
@import "alerts.less"; // Note: alerts share common CSS with buttons and thus have styles in buttons.less
|
||||
|
||||
// Components: Misc
|
||||
@import "thumbnails.less";
|
||||
@import "labels.less";
|
||||
@import "progress-bars.less";
|
||||
@import "accordion.less";
|
||||
@import "carousel.less";
|
||||
@import "hero-unit.less";
|
||||
|
||||
// Utility classes
|
||||
@import "utilities.less"; // Has to be last to override when necessary
|
||||
22
less/breadcrumbs.less
Normal file
22
less/breadcrumbs.less
Normal file
@@ -0,0 +1,22 @@
|
||||
// BREADCRUMBS
|
||||
// -----------
|
||||
|
||||
.breadcrumb {
|
||||
padding: 7px 14px;
|
||||
margin: 0 0 @baseLineHeight;
|
||||
#gradient > .vertical(@white, #f5f5f5);
|
||||
border: 1px solid #ddd;
|
||||
.border-radius(3px);
|
||||
.box-shadow(inset 0 1px 0 @white);
|
||||
li {
|
||||
display: inline;
|
||||
text-shadow: 0 1px 0 @white;
|
||||
}
|
||||
.divider {
|
||||
padding: 0 5px;
|
||||
color: @grayLight;
|
||||
}
|
||||
.active a {
|
||||
color: @grayDark;
|
||||
}
|
||||
}
|
||||
121
less/button-groups.less
Normal file
121
less/button-groups.less
Normal file
@@ -0,0 +1,121 @@
|
||||
// BUTTON GROUPS
|
||||
// -------------
|
||||
|
||||
|
||||
// Make the div behave like a button
|
||||
.btn-group {
|
||||
position: relative;
|
||||
.clearfix(); // clears the floated buttons
|
||||
}
|
||||
|
||||
// Space out series of button groups
|
||||
.btn-group + .btn-group {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
// Optional: Group multiple button groups together for a toolbar
|
||||
.btn-toolbar {
|
||||
.btn-group {
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
|
||||
// Float them, remove border radius, then re-add to first and last elements
|
||||
.btn-group .btn {
|
||||
position: relative;
|
||||
float: left;
|
||||
margin-left: -1px;
|
||||
.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;
|
||||
-webkit-border-top-left-radius: 4px;
|
||||
-moz-border-radius-topleft: 4px;
|
||||
border-top-left-radius: 4px;
|
||||
-webkit-border-bottom-left-radius: 4px;
|
||||
-moz-border-radius-bottomleft: 4px;
|
||||
border-bottom-left-radius: 4px;
|
||||
}
|
||||
.btn-group .btn:last-child,
|
||||
.btn-group .dropdown-toggle {
|
||||
-webkit-border-top-right-radius: 4px;
|
||||
-moz-border-radius-topright: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
-webkit-border-bottom-right-radius: 4px;
|
||||
-moz-border-radius-bottomright: 4px;
|
||||
border-bottom-right-radius: 4px;
|
||||
}
|
||||
// Reset corners for large buttons
|
||||
.btn-group .btn.large:first-child {
|
||||
margin-left: 0;
|
||||
-webkit-border-top-left-radius: 6px;
|
||||
-moz-border-radius-topleft: 6px;
|
||||
border-top-left-radius: 6px;
|
||||
-webkit-border-bottom-left-radius: 6px;
|
||||
-moz-border-radius-bottomleft: 6px;
|
||||
border-bottom-left-radius: 6px;
|
||||
}
|
||||
.btn-group .btn.large:last-child,
|
||||
.btn-group .large.dropdown-toggle {
|
||||
-webkit-border-top-right-radius: 6px;
|
||||
-moz-border-radius-topright: 6px;
|
||||
border-top-right-radius: 6px;
|
||||
-webkit-border-bottom-right-radius: 6px;
|
||||
-moz-border-radius-bottomright: 6px;
|
||||
border-bottom-right-radius: 6px;
|
||||
}
|
||||
|
||||
// On hover/focus/active, bring the proper btn to front
|
||||
.btn-group .btn:hover,
|
||||
.btn-group .btn:focus,
|
||||
.btn-group .btn:active {
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
|
||||
// Split button dropdowns
|
||||
// ----------------------
|
||||
|
||||
// Give the line between buttons some depth
|
||||
.btn-group .dropdown-toggle {
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
@shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
|
||||
.box-shadow(@shadow);
|
||||
}
|
||||
|
||||
// Reposition menu on open and round all corners
|
||||
.btn-group.open .dropdown-menu {
|
||||
display: block;
|
||||
margin-top: 1px;
|
||||
.border-radius(5px);
|
||||
}
|
||||
.btn-group.open .dropdown-toggle {
|
||||
background-image: none;
|
||||
@shadow: inset 0 1px 6px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
|
||||
.box-shadow(@shadow);
|
||||
}
|
||||
|
||||
// Reposition the caret
|
||||
.btn .caret {
|
||||
margin-top: 6px;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
// Account for other colors
|
||||
.primary,
|
||||
.danger,
|
||||
.info,
|
||||
.success {
|
||||
.caret {
|
||||
border-top-color: @white;
|
||||
.opacity(75);
|
||||
}
|
||||
}
|
||||
|
||||
// Small button dropdowns
|
||||
.btn.small .caret {
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
151
less/buttons.less
Normal file
151
less/buttons.less
Normal file
@@ -0,0 +1,151 @@
|
||||
// BUTTON STYLES
|
||||
// -------------
|
||||
|
||||
|
||||
// Colors
|
||||
// ------
|
||||
|
||||
.btn {
|
||||
// Set text color
|
||||
&.primary,
|
||||
&.primary:hover,
|
||||
&.danger,
|
||||
&.danger:hover,
|
||||
&.success,
|
||||
&.success:hover,
|
||||
&.info,
|
||||
&.info:hover {
|
||||
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
|
||||
color: @white
|
||||
}
|
||||
&.primary {
|
||||
.buttonBackground(@primaryButtonBackground, spin(@primaryButtonBackground, 15));
|
||||
}
|
||||
// Danger and error appear as red
|
||||
&.danger {
|
||||
.buttonBackground(#ee5f5b, #c43c35);
|
||||
}
|
||||
// Success appears as green
|
||||
&.success {
|
||||
.buttonBackground(#62c462, #57a957);
|
||||
}
|
||||
// Info appears as a neutral blue
|
||||
&.info {
|
||||
.buttonBackground(#5bc0de, #339bb9);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Mixin for generating button backgrounds
|
||||
// ---------------------------------------
|
||||
.buttonBackground(@startColor, @endColor) {
|
||||
// gradientBar will set the background to a pleasing blend of these, to support IE<=9
|
||||
.gradientBar(@startColor, @endColor);
|
||||
|
||||
// in these cases the gradient won't cover the background, so we override
|
||||
&:hover, &:active, &.active, &.disabled {
|
||||
background-color: @endColor;
|
||||
}
|
||||
|
||||
// called out separately because IE8 would ignore otherwise
|
||||
&[disabled] {
|
||||
background-color: @endColor;
|
||||
}
|
||||
|
||||
// IE 7 + 8 can't handle box-shadow to show active, so we darken a bit ourselves
|
||||
&:active,
|
||||
&.active {
|
||||
background-color: darken(@endColor, 10%) e("\9");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Base styles
|
||||
// -----------
|
||||
|
||||
.btn {
|
||||
// Button Base
|
||||
display: inline-block;
|
||||
padding: 4px 10px 4px;
|
||||
font-size: @baseFontSize;
|
||||
line-height: @baseLineHeight;
|
||||
color: @grayDark;
|
||||
text-shadow: 0 1px 1px rgba(255,255,255,.75);
|
||||
#gradient > .vertical-three-colors(@white, @white, 25%, darken(@white, 10%)); // Don't use .gradientbar() here since it does a three-color gradient
|
||||
border: 1px solid #ccc;
|
||||
border-bottom-color: #bbb;
|
||||
.border-radius(4px);
|
||||
@shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
|
||||
.box-shadow(@shadow);
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
color: @grayDark;
|
||||
text-decoration: none;
|
||||
background-color: darken(@white, 10%);
|
||||
background-position: 0 -15px;
|
||||
|
||||
// transition is only when going to hover, otherwise the background
|
||||
// behind the gradient (there for IE<=9 fallback) gets mismatched
|
||||
.transition(background-position .1s linear);
|
||||
}
|
||||
|
||||
// Focus state for keyboard and accessibility
|
||||
&:focus {
|
||||
outline: 1px dotted #666;
|
||||
}
|
||||
|
||||
// Active and Disabled states
|
||||
&.active,
|
||||
&:active {
|
||||
background-image: none;
|
||||
@shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
|
||||
.box-shadow(@shadow);
|
||||
background-color: darken(@white, 10%);
|
||||
background-color: darken(@white, 15%) e("\9");
|
||||
}
|
||||
&.disabled {
|
||||
cursor: default;
|
||||
background-image: none;
|
||||
background-color: darken(@white, 10%);
|
||||
.opacity(65);
|
||||
.box-shadow(none);
|
||||
}
|
||||
&[disabled] {
|
||||
// disabled pseudo can't be included with .disabled
|
||||
// def because IE8 and below will drop it ;_;
|
||||
cursor: default;
|
||||
background-image: none;
|
||||
background-color: darken(@white, 10%);
|
||||
.opacity(65);
|
||||
.box-shadow(none);
|
||||
}
|
||||
|
||||
// Button Sizes
|
||||
&.large {
|
||||
padding: 9px 14px 9px;
|
||||
font-size: @baseFontSize + 2px;
|
||||
line-height: normal;
|
||||
.border-radius(5px);
|
||||
}
|
||||
&.large .icon {
|
||||
margin-top: 1px;
|
||||
}
|
||||
&.small {
|
||||
padding: 5px 9px 5px;
|
||||
font-size: @baseFontSize - 2px;
|
||||
line-height: @baseLineHeight - 2px;
|
||||
}
|
||||
&.small .icon {
|
||||
margin-top: -2px;
|
||||
}
|
||||
}
|
||||
|
||||
// Help Firefox not be a jerk about adding extra padding to buttons
|
||||
button.btn,
|
||||
input[type=submit].btn {
|
||||
&::-moz-focus-inner {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
}
|
||||
114
less/carousel.less
Normal file
114
less/carousel.less
Normal file
@@ -0,0 +1,114 @@
|
||||
// CAROUSEL
|
||||
// --------
|
||||
|
||||
.carousel {
|
||||
position: relative;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.carousel-inner {
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.carousel {
|
||||
|
||||
.item {
|
||||
display: none;
|
||||
position: relative;
|
||||
.transition(.6s ease-in-out left);
|
||||
}
|
||||
|
||||
// Account for jankitude on images
|
||||
.item > img {
|
||||
display: block;
|
||||
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: 40%;
|
||||
left: 15px;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
margin-top: -20px;
|
||||
font-size: 60px;
|
||||
font-weight: 100;
|
||||
line-height: 30px;
|
||||
color: @white;
|
||||
text-align: center;
|
||||
background: @grayDarker;
|
||||
border: 3px solid @white;
|
||||
.border-radius(23px);
|
||||
.opacity(50);
|
||||
.transition(all .2s linear);
|
||||
|
||||
// Reposition the right one
|
||||
&.right {
|
||||
left: auto;
|
||||
right: 15px;
|
||||
}
|
||||
|
||||
// Hover state
|
||||
&:hover {
|
||||
color: @white;
|
||||
text-decoration: none;
|
||||
.opacity(90);
|
||||
}
|
||||
}
|
||||
|
||||
// Caption for text below images
|
||||
// -----------------------------
|
||||
|
||||
.carousel-caption {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
padding: 10px 15px 5px;
|
||||
background: @grayDark;
|
||||
background: rgba(0,0,0,.75);
|
||||
}
|
||||
.carousel-caption h4,
|
||||
.carousel-caption p {
|
||||
color: @white;
|
||||
}
|
||||
18
less/close.less
Normal file
18
less/close.less
Normal file
@@ -0,0 +1,18 @@
|
||||
// CLOSE ICONS
|
||||
// -----------
|
||||
|
||||
.close {
|
||||
float: right;
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
line-height: @baseLineHeight;
|
||||
color: @black;
|
||||
text-shadow: 0 1px 0 rgba(255,255,255,1);
|
||||
.opacity(20);
|
||||
&:hover {
|
||||
color: @black;
|
||||
text-decoration: none;
|
||||
.opacity(40);
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
44
less/code.less
Normal file
44
less/code.less
Normal file
@@ -0,0 +1,44 @@
|
||||
// Code.less
|
||||
// Code typography styles for the <code> and <pre> elements
|
||||
// --------------------------------------------------------
|
||||
|
||||
// Inline and block code styles
|
||||
code,
|
||||
pre {
|
||||
padding: 0 3px 2px;
|
||||
#font > #family > .monospace;
|
||||
font-size: @baseFontSize - 1;
|
||||
color: @grayDark;
|
||||
.border-radius(3px);
|
||||
}
|
||||
code {
|
||||
padding: 3px 4px;
|
||||
color: #d14;
|
||||
background-color: #f7f7f9;
|
||||
border: 1px solid #e1e1e8;
|
||||
}
|
||||
pre {
|
||||
display: block;
|
||||
padding: (@baseLineHeight - 1) / 2;
|
||||
margin: 0 0 @baseLineHeight / 2;
|
||||
font-size: 12px;
|
||||
line-height: @baseLineHeight;
|
||||
background-color: #f5f5f5;
|
||||
border: 1px solid #ccc; // fallback for IE7-8
|
||||
border: 1px solid rgba(0,0,0,.15);
|
||||
.border-radius(4px);
|
||||
white-space: pre;
|
||||
white-space: pre-wrap;
|
||||
word-break: break-all;
|
||||
|
||||
// Make prettyprint styles more spaced out for readability
|
||||
&.prettyprint {
|
||||
margin-bottom: @baseLineHeight;
|
||||
}
|
||||
|
||||
// Account for some code outputs that place code tags in pre tags
|
||||
code {
|
||||
padding: 0;
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
18
less/component-animations.less
Normal file
18
less/component-animations.less
Normal file
@@ -0,0 +1,18 @@
|
||||
// COMPONENT ANIMATIONS
|
||||
// --------------------
|
||||
|
||||
.fade {
|
||||
.transition(opacity .15s linear);
|
||||
opacity: 0;
|
||||
&.in {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.collapse {
|
||||
.transition(height .35s ease);
|
||||
position:relative;
|
||||
overflow:hidden;
|
||||
height: 0;
|
||||
&.in { height: auto; }
|
||||
}
|
||||
110
less/dropdowns.less
Normal file
110
less/dropdowns.less
Normal file
@@ -0,0 +1,110 @@
|
||||
// DROPDOWN MENUS
|
||||
// --------------
|
||||
|
||||
// Use the .menu class on any <li> element within the topbar or ul.tabs and you'll get some superfancy dropdowns
|
||||
.dropdown {
|
||||
position: relative;
|
||||
}
|
||||
// Dropdown arrow/caret
|
||||
.caret {
|
||||
display: inline-block;
|
||||
width: 0;
|
||||
height: 0;
|
||||
text-indent: -99999px;
|
||||
vertical-align: top;
|
||||
border-left: 4px solid transparent;
|
||||
border-right: 4px solid transparent;
|
||||
border-top: 4px solid @black;
|
||||
.opacity(30);
|
||||
content: "\2193";
|
||||
}
|
||||
.dropdown .caret {
|
||||
margin-top: 8px;
|
||||
margin-left: 2px;
|
||||
*margin-top: 7px;
|
||||
}
|
||||
.dropdown:hover .caret,
|
||||
.open.dropdown .caret {
|
||||
.opacity(100);
|
||||
}
|
||||
// The dropdown menu (ul)
|
||||
.dropdown-menu {
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
z-index: @zindexDropdown;
|
||||
float: left;
|
||||
display: none; // none by default, but block on "open" of the menu
|
||||
min-width: 160px;
|
||||
max-width: 220px;
|
||||
_width: 160px;
|
||||
padding: 4px 0;
|
||||
margin: 0; // override default ul
|
||||
list-style: none;
|
||||
background-color: @white;
|
||||
border-color: #ccc;
|
||||
border-color: rgba(0,0,0,.2);
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
.border-radius(0 0 5px 5px);
|
||||
.box-shadow(0 5px 10px rgba(0,0,0,.2));
|
||||
-webkit-background-clip: padding-box;
|
||||
-moz-background-clip: padding;
|
||||
background-clip: padding-box;
|
||||
zoom: 1; // do we need this?
|
||||
*border-right-width: 2px;
|
||||
*border-bottom-width: 2px;
|
||||
|
||||
// Allow for dropdowns to go bottom up (aka, dropup-menu)
|
||||
&.bottom-up {
|
||||
top: auto;
|
||||
bottom: 100%;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
// Dividers (basically an hr) within the dropdown
|
||||
.divider {
|
||||
height: 1px;
|
||||
margin: 5px 1px;
|
||||
overflow: hidden;
|
||||
background-color: #e5e5e5;
|
||||
border-bottom: 1px solid @white;
|
||||
}
|
||||
|
||||
// Links within the dropdown menu
|
||||
a {
|
||||
display: block;
|
||||
padding: 3px 15px;
|
||||
clear: both;
|
||||
font-weight: normal;
|
||||
line-height: 18px;
|
||||
color: @gray;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
|
||||
// Hover state
|
||||
.dropdown-menu li > a:hover,
|
||||
.dropdown-menu .active > a,
|
||||
.dropdown-menu .active > a:hover {
|
||||
color: @white;
|
||||
text-decoration: none;
|
||||
background-color: @linkColor;
|
||||
}
|
||||
|
||||
// Open state for the dropdown
|
||||
.dropdown.open {
|
||||
.dropdown-toggle {
|
||||
color: @white;
|
||||
background: #ccc;
|
||||
background: rgba(0,0,0,.3);
|
||||
}
|
||||
.dropdown-menu {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
// Typeahead
|
||||
.typeahead {
|
||||
margin-top: 2px; // give it some space to breathe
|
||||
.border-radius(4px);
|
||||
}
|
||||
514
less/forms.less
Normal file
514
less/forms.less
Normal file
@@ -0,0 +1,514 @@
|
||||
// Forms.less
|
||||
// Base styles for various input types, form layouts, and states
|
||||
// -------------------------------------------------------------
|
||||
|
||||
|
||||
// GENERAL STYLES
|
||||
// --------------
|
||||
|
||||
// Make all forms have space below them
|
||||
form {
|
||||
margin: 0 0 @baseLineHeight;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
// Groups of fields with labels on top (legends)
|
||||
legend {
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
margin-bottom: @baseLineHeight * 1.5;
|
||||
font-size: @baseFontSize * 1.5;
|
||||
line-height: @baseLineHeight * 2;
|
||||
color: @grayDark;
|
||||
border: 0;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
// Set font for forms
|
||||
label,
|
||||
input,
|
||||
button,
|
||||
select,
|
||||
textarea {
|
||||
#font > .sans-serif(@baseFontSize,normal,@baseLineHeight);
|
||||
}
|
||||
|
||||
// Identify controls by their labels
|
||||
label {
|
||||
display: block;
|
||||
margin-bottom: 5px;
|
||||
color: @grayDark;
|
||||
}
|
||||
|
||||
// Inputs, Textareas, Selects
|
||||
input,
|
||||
textarea,
|
||||
select,
|
||||
.uneditable-input {
|
||||
display: inline-block;
|
||||
width: 210px;
|
||||
height: @baseLineHeight;
|
||||
padding: 4px;
|
||||
margin-bottom: 9px;
|
||||
font-size: @baseFontSize;
|
||||
line-height: @baseLineHeight;
|
||||
color: @gray;
|
||||
border: 1px solid #ccc;
|
||||
.border-radius(3px);
|
||||
}
|
||||
.uneditable-textarea {
|
||||
width: auto;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
// Inputs within a label
|
||||
label input,
|
||||
label textarea,
|
||||
label select {
|
||||
display: block;
|
||||
}
|
||||
|
||||
// Mini reset for unique input types
|
||||
input[type=image],
|
||||
input[type=checkbox],
|
||||
input[type=radio] {
|
||||
width: auto;
|
||||
height: auto;
|
||||
padding: 0;
|
||||
margin: 3px 0;
|
||||
*margin-top: 0; /* IE7 */
|
||||
line-height: normal;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
.border-radius(0);
|
||||
}
|
||||
|
||||
// Reset the file input to browser defaults
|
||||
input[type=file] {
|
||||
padding: initial;
|
||||
line-height: initial;
|
||||
border: initial;
|
||||
background-color: @white;
|
||||
background-color: initial;
|
||||
.box-shadow(none);
|
||||
}
|
||||
|
||||
// Help out input buttons
|
||||
input[type=button],
|
||||
input[type=reset],
|
||||
input[type=submit] {
|
||||
width: auto;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
// Set the height of select and file controls to match text inputs
|
||||
select,
|
||||
input[type=file] {
|
||||
height: 28px; /* In IE7, the height of the select element cannot be changed by height, only font-size */
|
||||
*margin-top: 4px; /* For IE7, add top margin to align select with labels */
|
||||
line-height: 28px;
|
||||
}
|
||||
|
||||
// Chrome on Linux and Mobile Safari need background-color
|
||||
select {
|
||||
width: 220px; // default input width + 10px of padding that doesn't get applied
|
||||
background-color: @white;
|
||||
}
|
||||
|
||||
// Make multiple select elements height not fixed
|
||||
select[multiple],
|
||||
select[size] {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
// Remove shadow from image inputs
|
||||
input[type=image] {
|
||||
.box-shadow(none);
|
||||
}
|
||||
|
||||
// Make textarea height behave
|
||||
textarea {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
// Hidden inputs
|
||||
input[type=hidden] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// CHECKBOXES & RADIOS
|
||||
// -------------------
|
||||
|
||||
// Indent the labels to position radios/checkboxes as hanging
|
||||
.radio,
|
||||
.checkbox {
|
||||
padding-left: 18px;
|
||||
}
|
||||
.radio input[type=radio],
|
||||
.checkbox input[type=checkbox] {
|
||||
float: left;
|
||||
margin-left: -18px;
|
||||
}
|
||||
|
||||
// Move the options list down to align with labels
|
||||
.controls > .radio:first-child,
|
||||
.controls > .checkbox:first-child {
|
||||
padding-top: 5px; // has to be padding because margin collaspes
|
||||
}
|
||||
|
||||
// Radios and checkboxes on same line
|
||||
.radio.inline,
|
||||
.checkbox.inline {
|
||||
display: inline-block;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.radio.inline + .radio.inline,
|
||||
.checkbox.inline + .checkbox.inline {
|
||||
margin-left: 10px; // space out consecutive inline controls
|
||||
}
|
||||
|
||||
|
||||
|
||||
// FOCUS STATE
|
||||
// -----------
|
||||
|
||||
input,
|
||||
textarea {
|
||||
.box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
|
||||
@transition: border linear .2s, box-shadow linear .2s;
|
||||
.transition(@transition);
|
||||
}
|
||||
input:focus,
|
||||
textarea:focus {
|
||||
border-color: rgba(82,168,236,.8);
|
||||
@shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
|
||||
.box-shadow(@shadow);
|
||||
outline: 0;
|
||||
}
|
||||
input[type=file]:focus,
|
||||
input[type=checkbox]:focus,
|
||||
select:focus {
|
||||
.box-shadow(none); // override for file inputs
|
||||
outline: 1px dotted #666; // Selet elements don't get box-shadow styles, so instead we do outline
|
||||
}
|
||||
|
||||
|
||||
|
||||
// INPUT SIZES
|
||||
// -----------
|
||||
|
||||
// General classes for quick sizes
|
||||
.input-mini { width: 60px; }
|
||||
.input-small { width: 90px; }
|
||||
.input-medium { width: 150px; }
|
||||
.input-large { width: 210px; }
|
||||
.input-xlarge { width: 270px; }
|
||||
.input-xxlarge { width: 530px; }
|
||||
|
||||
// Grid style input sizes
|
||||
input[class*="span"],
|
||||
select[class*="span"],
|
||||
textarea[class*="span"],
|
||||
.uneditable-input {
|
||||
float: none;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
// This is a duplication of the main grid .columns() mixin, but subtracts 10px to account for input padding and border
|
||||
.inputColumns(@columnSpan: 1) {
|
||||
width: ((@gridColumnWidth) * @columnSpan) + (@gridGutterWidth * (@columnSpan - 1)) - 10;
|
||||
}
|
||||
input,
|
||||
textarea,
|
||||
.uneditable-input {
|
||||
// Default columns
|
||||
&.span1 { .inputColumns(1); }
|
||||
&.span2 { .inputColumns(2); }
|
||||
&.span3 { .inputColumns(3); }
|
||||
&.span4 { .inputColumns(4); }
|
||||
&.span5 { .inputColumns(5); }
|
||||
&.span6 { .inputColumns(6); }
|
||||
&.span7 { .inputColumns(7); }
|
||||
&.span8 { .inputColumns(8); }
|
||||
&.span9 { .inputColumns(9); }
|
||||
&.span10 { .inputColumns(10); }
|
||||
&.span11 { .inputColumns(11); }
|
||||
&.span12 { .inputColumns(12); }
|
||||
}
|
||||
|
||||
.selectColumns(@columnSpan: 1) {
|
||||
width: ((@gridColumnWidth) * @columnSpan) + (@gridGutterWidth * (@columnSpan - 1)) + 10;
|
||||
}
|
||||
select {
|
||||
&.span1 { .selectColumns(1); }
|
||||
&.span2 { .selectColumns(2); }
|
||||
&.span3 { .selectColumns(3); }
|
||||
&.span4 { .selectColumns(4); }
|
||||
&.span5 { .selectColumns(5); }
|
||||
&.span6 { .selectColumns(6); }
|
||||
&.span7 { .selectColumns(7); }
|
||||
&.span8 { .selectColumns(8); }
|
||||
&.span9 { .selectColumns(9); }
|
||||
&.span10 { .selectColumns(10); }
|
||||
&.span11 { .selectColumns(11); }
|
||||
&.span12 { .selectColumns(12); }
|
||||
}
|
||||
|
||||
|
||||
|
||||
// DISABLED STATE
|
||||
// --------------
|
||||
|
||||
// Disabled and read-only inputs
|
||||
input[disabled],
|
||||
select[disabled],
|
||||
textarea[disabled],
|
||||
input[readonly],
|
||||
select[readonly],
|
||||
textarea[readonly] {
|
||||
background-color: #f5f5f5;
|
||||
border-color: #ddd;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// FORM FIELD FEEDBACK STATES
|
||||
// --------------------------
|
||||
|
||||
// Mixin for form field states
|
||||
.formFieldState(@textColor: #555, @borderColor: #ccc, @backgroundColor: #f5f5f5) {
|
||||
// Set the text color
|
||||
> label,
|
||||
.help-block,
|
||||
.help-inline {
|
||||
color: @textColor;
|
||||
}
|
||||
// Style inputs accordingly
|
||||
input,
|
||||
select,
|
||||
textarea {
|
||||
color: @textColor;
|
||||
border-color: @borderColor;
|
||||
&:focus {
|
||||
border-color: darken(@borderColor, 10%);
|
||||
.box-shadow(0 0 6px lighten(@borderColor, 20%));
|
||||
}
|
||||
}
|
||||
// Give a small background color for input-prepend/-append
|
||||
.input-prepend .add-on,
|
||||
.input-append .add-on {
|
||||
color: @textColor;
|
||||
background-color: @backgroundColor;
|
||||
border-color: @textColor;
|
||||
}
|
||||
}
|
||||
// Warning
|
||||
.control-group.warning {
|
||||
.formFieldState(@warningText, @warningText, @warningBackground);
|
||||
}
|
||||
// Error
|
||||
.control-group.error {
|
||||
.formFieldState(@errorText, @errorText, @errorBackground);
|
||||
}
|
||||
// Success
|
||||
.control-group.success {
|
||||
.formFieldState(@successText, @successText, @successBackground);
|
||||
}
|
||||
|
||||
// HTML5 invalid states
|
||||
// Shares styles with the .control-group.error above
|
||||
input:focus:required:invalid,
|
||||
textarea:focus:required:invalid,
|
||||
select:focus:required:invalid {
|
||||
color: #b94a48;
|
||||
border-color: #ee5f5b;
|
||||
&:focus {
|
||||
border-color: darken(#ee5f5b, 10%);
|
||||
.box-shadow(0 0 6px lighten(#ee5f5b, 20%));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// FORM ACTIONS
|
||||
// ------------
|
||||
|
||||
.form-actions {
|
||||
padding: (@baseLineHeight - 1) 20px @baseLineHeight;
|
||||
margin-top: @baseLineHeight;
|
||||
margin-bottom: @baseLineHeight;
|
||||
background-color: #f5f5f5;
|
||||
border-top: 1px solid #ddd;
|
||||
}
|
||||
|
||||
// For text that needs to appear as an input but should not be an input
|
||||
.uneditable-input {
|
||||
display: block;
|
||||
background-color: @white;
|
||||
border-color: #eee;
|
||||
.box-shadow(inset 0 1px 2px rgba(0,0,0,.025));
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
// Placeholder text gets special styles; can't be bundled together though for some reason
|
||||
.placeholder(@grayLight);
|
||||
|
||||
|
||||
|
||||
// HELP TEXT
|
||||
// ---------
|
||||
|
||||
.help-block {
|
||||
margin-top: 5px;
|
||||
margin-bottom: 0;
|
||||
color: @grayLight;
|
||||
}
|
||||
|
||||
.help-inline {
|
||||
display: inline-block;
|
||||
margin-bottom: 9px;
|
||||
vertical-align: middle;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// INPUT GROUPS
|
||||
// ------------
|
||||
|
||||
// Allow us to put symbols and text within the input field for a cleaner look
|
||||
.input-prepend,
|
||||
.input-append {
|
||||
margin-bottom: 5px;
|
||||
.clearfix(); // Clear the float to prevent wrapping
|
||||
input,
|
||||
.uneditable-input {
|
||||
.border-radius(0 3px 3px 0);
|
||||
}
|
||||
.uneditable-input {
|
||||
border-left-color: #ccc;
|
||||
}
|
||||
.add-on {
|
||||
float: left;
|
||||
display: block;
|
||||
width: auto;
|
||||
min-width: 16px;
|
||||
height: @baseLineHeight;
|
||||
margin-right: -1px;
|
||||
padding: 4px 4px 4px 5px;
|
||||
font-weight: normal;
|
||||
line-height: @baseLineHeight;
|
||||
color: @grayLight;
|
||||
text-align: center;
|
||||
text-shadow: 0 1px 0 @white;
|
||||
background-color: #f5f5f5;
|
||||
border: 1px solid #ccc;
|
||||
.border-radius(3px 0 0 3px);
|
||||
}
|
||||
.active {
|
||||
background-color: lighten(@green, 30);
|
||||
border-color: @green;
|
||||
}
|
||||
}
|
||||
.input-prepend {
|
||||
.add-on {
|
||||
*margin-top: 1px; /* IE6-7 */
|
||||
}
|
||||
}
|
||||
.input-append {
|
||||
input,
|
||||
.uneditable-input {
|
||||
float: left;
|
||||
.border-radius(3px 0 0 3px);
|
||||
}
|
||||
.uneditable-input {
|
||||
border-right-color: #ccc;
|
||||
}
|
||||
.add-on {
|
||||
margin-right: 0;
|
||||
margin-left: -1px;
|
||||
.border-radius(0 3px 3px 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// SEARCH FORM
|
||||
// -----------
|
||||
|
||||
.search-query {
|
||||
padding-left: 14px;
|
||||
padding-right: 14px;
|
||||
margin-bottom: 0; // remove the default margin on all inputs
|
||||
.border-radius(14px);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// HORIZONTAL & VERTICAL FORMS
|
||||
// ---------------------------
|
||||
|
||||
// Common properties
|
||||
// -----------------
|
||||
|
||||
.form-search,
|
||||
.form-inline,
|
||||
.form-horizontal {
|
||||
input,
|
||||
textarea,
|
||||
select,
|
||||
.help-inline,
|
||||
.uneditable-input {
|
||||
display: inline-block;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
.form-search label,
|
||||
.form-inline label {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
// Margin to space out fieldsets
|
||||
.control-group {
|
||||
margin-bottom: @baseLineHeight / 2;
|
||||
}
|
||||
|
||||
// Horizontal-specific styles
|
||||
// --------------------------
|
||||
|
||||
.form-horizontal {
|
||||
// Legend collapses margin, so we're relegated to padding
|
||||
legend + .control-group {
|
||||
margin-top: @baseLineHeight;
|
||||
-webkit-margin-top-collapse: separate;
|
||||
}
|
||||
// Increase spacing between groups
|
||||
.control-group {
|
||||
margin-bottom: @baseLineHeight;
|
||||
}
|
||||
// Float the labels left
|
||||
.control-group > label {
|
||||
float: left;
|
||||
width: 140px;
|
||||
padding-top: 5px;
|
||||
text-align: right;
|
||||
}
|
||||
// Move over all input controls and content
|
||||
.controls {
|
||||
margin-left: 160px;
|
||||
}
|
||||
// Move over buttons in .form-actions to align with .controls
|
||||
.form-actions {
|
||||
padding-left: 160px;
|
||||
}
|
||||
}
|
||||
41
less/grid.less
Normal file
41
less/grid.less
Normal file
@@ -0,0 +1,41 @@
|
||||
// GRID SYSTEM
|
||||
// -----------
|
||||
// To customize the grid system, bring up the variables.less file and change the column count, size, and gutter there
|
||||
.row {
|
||||
margin-left: @gridGutterWidth * -1;
|
||||
.clearfix();
|
||||
}
|
||||
|
||||
// Find all .span# classes within .row and give them the necessary properties for grid columns
|
||||
// (supported by all browsers back to IE7)
|
||||
// Credit to @dhg for the idea
|
||||
[class*="span"] {
|
||||
.gridColumn();
|
||||
}
|
||||
|
||||
// Default columns
|
||||
.span1 { .columns(1); }
|
||||
.span2 { .columns(2); }
|
||||
.span3 { .columns(3); }
|
||||
.span4 { .columns(4); }
|
||||
.span5 { .columns(5); }
|
||||
.span6 { .columns(6); }
|
||||
.span7 { .columns(7); }
|
||||
.span8 { .columns(8); }
|
||||
.span9 { .columns(9); }
|
||||
.span10 { .columns(10); }
|
||||
.span11 { .columns(11); }
|
||||
.span12 { .columns(12); }
|
||||
|
||||
// Offset column options
|
||||
.offset1 { .offset(1); }
|
||||
.offset2 { .offset(2); }
|
||||
.offset3 { .offset(3); }
|
||||
.offset4 { .offset(4); }
|
||||
.offset5 { .offset(5); }
|
||||
.offset6 { .offset(6); }
|
||||
.offset7 { .offset(7); }
|
||||
.offset8 { .offset(8); }
|
||||
.offset9 { .offset(9); }
|
||||
.offset10 { .offset(10); }
|
||||
.offset11 { .offset(11); }
|
||||
20
less/hero-unit.less
Normal file
20
less/hero-unit.less
Normal file
@@ -0,0 +1,20 @@
|
||||
// HERO UNIT
|
||||
// ---------
|
||||
|
||||
.hero-unit {
|
||||
padding: 60px;
|
||||
margin-bottom: 30px;
|
||||
background-color: #f5f5f5;
|
||||
.border-radius(6px);
|
||||
h1 {
|
||||
margin-bottom: 0;
|
||||
font-size: 60px;
|
||||
line-height: 1;
|
||||
letter-spacing: -1px;
|
||||
}
|
||||
p {
|
||||
font-size: 18px;
|
||||
font-weight: 200;
|
||||
line-height: @baseLineHeight * 1.5;
|
||||
}
|
||||
}
|
||||
16
less/labels.less
Normal file
16
less/labels.less
Normal file
@@ -0,0 +1,16 @@
|
||||
// LABELS
|
||||
// ------
|
||||
|
||||
.label {
|
||||
padding: 1px 3px 2px;
|
||||
font-size: @baseFontSize * .75;
|
||||
font-weight: bold;
|
||||
color: @white;
|
||||
text-transform: uppercase;
|
||||
background-color: @grayLight;
|
||||
.border-radius(3px);
|
||||
&.important { background-color: @errorText; }
|
||||
&.warning { background-color: @orange; }
|
||||
&.success { background-color: @successText; }
|
||||
&.info { background-color: @infoText; }
|
||||
}
|
||||
43
less/layouts.less
Normal file
43
less/layouts.less
Normal file
@@ -0,0 +1,43 @@
|
||||
//
|
||||
// Layouts
|
||||
// Fixed-width and fluid (with sidebar) layouts
|
||||
// --------------------------------------------
|
||||
|
||||
|
||||
// Container (centered, fixed-width layouts)
|
||||
.container {
|
||||
.container-fixed();
|
||||
}
|
||||
|
||||
// Fluid layouts (left aligned, with sidebar, min- & max-width content)
|
||||
.fluid-container {
|
||||
position: relative;
|
||||
min-width: @siteWidth;
|
||||
padding-left: @gridGutterWidth;
|
||||
padding-right: @gridGutterWidth;
|
||||
.clearfix();
|
||||
}
|
||||
|
||||
// Sidebars (left and right options)
|
||||
.fluid-sidebar {
|
||||
width: @fluidSidebarWidth;
|
||||
margin: 0 20px 18px;
|
||||
}
|
||||
.sidebar-left { padding-left: @fluidSidebarWidth + @gridGutterWidth * 2; }
|
||||
.sidebar-right { padding-right: @fluidSidebarWidth + @gridGutterWidth * 2; }
|
||||
|
||||
// Float the sidebars accordingly
|
||||
.sidebar-left .fluid-sidebar {
|
||||
float: left;
|
||||
margin-left: (@fluidSidebarWidth + @gridGutterWidth) * -1;
|
||||
}
|
||||
.sidebar-right .fluid-sidebar {
|
||||
float: right;
|
||||
margin-right: (@fluidSidebarWidth + @gridGutterWidth) * -1;
|
||||
}
|
||||
|
||||
// The main content area
|
||||
.fluid-content {
|
||||
float: left;
|
||||
width: 100%;
|
||||
}
|
||||
360
less/mixins.less
Normal file
360
less/mixins.less
Normal file
@@ -0,0 +1,360 @@
|
||||
// Mixins.less
|
||||
// Snippets of reusable CSS to develop faster and keep code readable
|
||||
// -----------------------------------------------------------------
|
||||
|
||||
|
||||
// UTILITY MIXINS
|
||||
// --------------------------------------------------
|
||||
|
||||
// Clearfix
|
||||
// -------------------------
|
||||
// For clearing floats like a boss h5bp.com/q
|
||||
.clearfix() {
|
||||
*zoom: 1;
|
||||
&:before,
|
||||
&:after {
|
||||
display: table;
|
||||
content: "";
|
||||
}
|
||||
&:after {
|
||||
clear: both;
|
||||
}
|
||||
}
|
||||
|
||||
// Center-align a block level element
|
||||
// -------------------------
|
||||
.center-block() {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
// IE7 inline-block
|
||||
// -------------------------
|
||||
.ie7-inline-block() {
|
||||
*display: inline; /* IE7 inline-block hack */
|
||||
*zoom: 1;
|
||||
}
|
||||
|
||||
// Sizing shortcuts
|
||||
// -------------------------
|
||||
.size(@height: 5px, @width: 5px) {
|
||||
width: @width;
|
||||
height: @height;
|
||||
}
|
||||
.square(@size: 5px) {
|
||||
.size(@size, @size);
|
||||
}
|
||||
|
||||
// Placeholder text
|
||||
// -------------------------
|
||||
.placeholder(@color: @placeholderText) {
|
||||
:-moz-placeholder {
|
||||
color: @color;
|
||||
}
|
||||
::-webkit-input-placeholder {
|
||||
color: @color;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// FONTS
|
||||
// --------------------------------------------------
|
||||
|
||||
#font {
|
||||
#family {
|
||||
.serif() {
|
||||
font-family: Georgia, "Times New Roman", Times, serif;
|
||||
}
|
||||
.sans-serif() {
|
||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
}
|
||||
.monospace() {
|
||||
font-family: Menlo, Monaco, "Courier New", monospace;
|
||||
}
|
||||
}
|
||||
.shorthand(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
|
||||
font-size: @size;
|
||||
font-weight: @weight;
|
||||
line-height: @lineHeight;
|
||||
}
|
||||
.serif(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
|
||||
#font > #family > .serif;
|
||||
#font > .shorthand(@size, @weight, @lineHeight);
|
||||
}
|
||||
.sans-serif(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
|
||||
#font > #family > .sans-serif;
|
||||
#font > .shorthand(@size, @weight, @lineHeight);
|
||||
}
|
||||
.monospace(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
|
||||
#font > #family > .monospace;
|
||||
#font > .shorthand(@size, @weight, @lineHeight);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// GRID SYSTEM
|
||||
// --------------------------------------------------
|
||||
|
||||
// Site container
|
||||
// -------------------------
|
||||
.container-fixed() {
|
||||
width: @siteWidth;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
.clearfix();
|
||||
}
|
||||
|
||||
// Columns and offseting
|
||||
// -------------------------
|
||||
.columns(@columns: 1) {
|
||||
width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1));
|
||||
}
|
||||
.offset(@columns: 1) {
|
||||
margin-left: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1)) + (@gridGutterWidth * 2);
|
||||
}
|
||||
// Necessary grid styles for every column to make them appear next to each other horizontally
|
||||
.gridColumn() {
|
||||
float: left;
|
||||
margin-left: @gridGutterWidth;
|
||||
}
|
||||
// makeColumn can be used to mark any element (e.g., .content-primary) as a column without changing markup to .span something
|
||||
.makeColumn(@columnSpan: 1) {
|
||||
.gridColumn();
|
||||
.columns(@columnSpan);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// CSS3 PROPERTIES
|
||||
// --------------------------------------------------
|
||||
|
||||
// Border Radius
|
||||
.border-radius(@radius: 5px) {
|
||||
-webkit-border-radius: @radius;
|
||||
-moz-border-radius: @radius;
|
||||
border-radius: @radius;
|
||||
}
|
||||
|
||||
// Drop shadows
|
||||
.box-shadow(@shadow: 0 1px 3px rgba(0,0,0,.25)) {
|
||||
-webkit-box-shadow: @shadow;
|
||||
-moz-box-shadow: @shadow;
|
||||
box-shadow: @shadow;
|
||||
}
|
||||
|
||||
// Transitions
|
||||
.transition(@transition) {
|
||||
-webkit-transition: @transition;
|
||||
-moz-transition: @transition;
|
||||
-ms-transition: @transition;
|
||||
-o-transition: @transition;
|
||||
transition: @transition;
|
||||
}
|
||||
|
||||
// Transformations
|
||||
.rotate(@degrees) {
|
||||
-webkit-transform: rotate(@degrees);
|
||||
-moz-transform: rotate(@degrees);
|
||||
-ms-transform: rotate(@degrees);
|
||||
-o-transform: rotate(@degrees);
|
||||
transform: rotate(@degrees);
|
||||
}
|
||||
.scale(@ratio) {
|
||||
-webkit-transform: scale(@ratio);
|
||||
-moz-transform: scale(@ratio);
|
||||
-ms-transform: scale(@ratio);
|
||||
-o-transform: scale(@ratio);
|
||||
transform: scale(@ratio);
|
||||
}
|
||||
.translate(@x: 0, @y: 0) {
|
||||
-webkit-transform: translate(@x, @y);
|
||||
-moz-transform: translate(@x, @y);
|
||||
-ms-transform: translate(@x, @y);
|
||||
-o-transform: translate(@x, @y);
|
||||
transform: translate(@x, @y);
|
||||
}
|
||||
|
||||
// Background clipping
|
||||
// Heads up: FF 3.6 and under need "padding" instead of "padding-box"
|
||||
.background-clip(@clip) {
|
||||
-webkit-background-clip: @clip;
|
||||
-moz-background-clip: @clip;
|
||||
background-clip: @clip;
|
||||
}
|
||||
|
||||
// Background sizing
|
||||
.background-size(@size){
|
||||
-webkit-background-size: @size;
|
||||
-moz-background-size: @size;
|
||||
-o-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;
|
||||
-o-user-select: @select;
|
||||
user-select: @select;
|
||||
}
|
||||
|
||||
// Resize anything
|
||||
.resizable(@direction: both) {
|
||||
resize: @direction; // Options: horizontal, vertical, both
|
||||
overflow: auto; // Safari fix
|
||||
}
|
||||
|
||||
// CSS3 Content Columns
|
||||
.content-columns(@columnCount, @columnGap: @gridColumnGutter) {
|
||||
-webkit-column-count: @columnCount;
|
||||
-moz-column-count: @columnCount;
|
||||
column-count: @columnCount;
|
||||
-webkit-column-gap: @columnGap;
|
||||
-moz-column-gap: @columnGap;
|
||||
column-gap: @columnGap;
|
||||
}
|
||||
|
||||
// Opacity
|
||||
.opacity(@opacity: 100) {
|
||||
opacity: @opacity / 100;
|
||||
filter: e(%("alpha(opacity=%d)", @opacity));
|
||||
}
|
||||
|
||||
|
||||
|
||||
// BACKGROUNDS
|
||||
// --------------------------------------------------
|
||||
|
||||
// Add an alphatransparency value to any background or border color (via Elyse Holladay)
|
||||
#translucent {
|
||||
.background(@color: @white, @alpha: 1) {
|
||||
background-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);
|
||||
}
|
||||
.border(@color: @white, @alpha: 1) {
|
||||
border-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);
|
||||
.background-clip(padding-box);
|
||||
}
|
||||
}
|
||||
|
||||
// Gradient Bar Colors for buttons and alerts
|
||||
.gradientBar(@primaryColor, @secondaryColor) {
|
||||
#gradient > .vertical(@primaryColor, @secondaryColor);
|
||||
border-color: @secondaryColor @secondaryColor darken(@secondaryColor, 15%);
|
||||
border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) fadein(rgba(0,0,0,.1), 15%);
|
||||
}
|
||||
|
||||
// Gradients
|
||||
#gradient {
|
||||
.horizontal(@startColor: #555, @endColor: #333) {
|
||||
background-color: @endColor;
|
||||
background-image: -moz-linear-gradient(left, @startColor, @endColor); // FF 3.6+
|
||||
background-image: -ms-linear-gradient(left, @startColor, @endColor); // IE10
|
||||
background-image: -webkit-gradient(linear, 0 0, 100% 0, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+
|
||||
background-image: -webkit-linear-gradient(left, @startColor, @endColor); // Safari 5.1+, Chrome 10+
|
||||
background-image: -o-linear-gradient(left, @startColor, @endColor); // Opera 11.10
|
||||
background-image: linear-gradient(left, @startColor, @endColor); // Le standard
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.vertical(@startColor: #555, @endColor: #333) {
|
||||
background-color: mix(@startColor, @endColor, 60%);
|
||||
background-image: -moz-linear-gradient(top, @startColor, @endColor); // FF 3.6+
|
||||
background-image: -ms-linear-gradient(top, @startColor, @endColor); // IE10
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+
|
||||
background-image: -webkit-linear-gradient(top, @startColor, @endColor); // Safari 5.1+, Chrome 10+
|
||||
background-image: -o-linear-gradient(top, @startColor, @endColor); // Opera 11.10
|
||||
background-image: linear-gradient(top, @startColor, @endColor); // The standard
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.directional(@startColor: #555, @endColor: #333, @deg: 45deg) {
|
||||
background-color: @endColor;
|
||||
background-repeat: repeat-x;
|
||||
background-image: -moz-linear-gradient(@deg, @startColor, @endColor); // FF 3.6+
|
||||
background-image: -ms-linear-gradient(@deg, @startColor, @endColor); // IE10
|
||||
background-image: -webkit-linear-gradient(@deg, @startColor, @endColor); // Safari 5.1+, Chrome 10+
|
||||
background-image: -o-linear-gradient(@deg, @startColor, @endColor); // Opera 11.10
|
||||
background-image: linear-gradient(@deg, @startColor, @endColor); // The standard
|
||||
}
|
||||
.vertical-three-colors(@startColor: #00b3ee, @midColor: #7a43b6, @colorStop: 50%, @endColor: #c3325f) {
|
||||
background-color: mix(@midColor, @endColor, 80%);
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), color-stop(@colorStop, @midColor), to(@endColor));
|
||||
background-image: -webkit-linear-gradient(@startColor, @midColor @colorStop, @endColor);
|
||||
background-image: -moz-linear-gradient(top, @startColor, @midColor @colorStop, @endColor);
|
||||
background-image: -ms-linear-gradient(@startColor, @midColor @colorStop, @endColor);
|
||||
background-image: -o-linear-gradient(@startColor, @midColor @colorStop, @endColor);
|
||||
background-image: linear-gradient(@startColor, @midColor @colorStop, @endColor);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.radial(@innerColor: #555, @outerColor: #333) {
|
||||
background-color: @outsideColor;
|
||||
background-image: -webkit-gradient(radial, center center, 0, center center, 460, from(@centerColor), to(@outsideColor));
|
||||
background-image: -webkit-radial-gradient(circle, @centerColor, @outsideColor);
|
||||
background-image: -moz-radial-gradient(circle, @centerColor, @outsideColor);
|
||||
background-image: -ms-radial-gradient(circle, @centerColor, @outsideColor);
|
||||
background-repeat: no-repeat;
|
||||
// Opera cannot do radial gradients yet
|
||||
}
|
||||
.striped(@color, @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: -ms-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: -o-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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// COMPONENT MIXINS
|
||||
// --------------------------------------------------
|
||||
|
||||
// POPOVER ARROWS
|
||||
// -------------------------
|
||||
// For tipsies and popovers
|
||||
#popoverArrow {
|
||||
.top(@arrowWidth: 5px) {
|
||||
bottom: 0;
|
||||
left: 50%;
|
||||
margin-left: -@arrowWidth;
|
||||
border-left: @arrowWidth solid transparent;
|
||||
border-right: @arrowWidth solid transparent;
|
||||
border-top: @arrowWidth solid @black;
|
||||
}
|
||||
.left(@arrowWidth: 5px) {
|
||||
top: 50%;
|
||||
right: 0;
|
||||
margin-top: -@arrowWidth;
|
||||
border-top: @arrowWidth solid transparent;
|
||||
border-bottom: @arrowWidth solid transparent;
|
||||
border-left: @arrowWidth solid @black;
|
||||
}
|
||||
.bottom(@arrowWidth: 5px) {
|
||||
top: 0;
|
||||
left: 50%;
|
||||
margin-left: -@arrowWidth;
|
||||
border-left: @arrowWidth solid transparent;
|
||||
border-right: @arrowWidth solid transparent;
|
||||
border-bottom: @arrowWidth solid @black;
|
||||
}
|
||||
.right(@arrowWidth: 5px) {
|
||||
top: 50%;
|
||||
left: 0;
|
||||
margin-top: -@arrowWidth;
|
||||
border-top: @arrowWidth solid transparent;
|
||||
border-bottom: @arrowWidth solid transparent;
|
||||
border-right: @arrowWidth solid @black;
|
||||
}
|
||||
}
|
||||
65
less/modals.less
Normal file
65
less/modals.less
Normal file
@@ -0,0 +1,65 @@
|
||||
// MODALS
|
||||
// ------
|
||||
|
||||
.modal-backdrop {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
z-index: @zindexModalBackdrop;
|
||||
background-color: @black;
|
||||
// Fade for backdrop
|
||||
&.fade { opacity: 0; }
|
||||
}
|
||||
|
||||
.modal-backdrop,
|
||||
.modal-backdrop.fade.in {
|
||||
.opacity(80);
|
||||
}
|
||||
|
||||
.modal {
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
z-index: @zindexModal;
|
||||
max-height: 500px;
|
||||
overflow: auto;
|
||||
width: 560px;
|
||||
margin: -250px 0 0 -280px;
|
||||
background-color: @white;
|
||||
border: 1px solid #999;
|
||||
border: 1px solid rgba(0,0,0,.3);
|
||||
*border: 1px solid #999; /* IE6-7 */
|
||||
.border-radius(6px);
|
||||
.box-shadow(0 3px 7px rgba(0,0,0,0.3));
|
||||
.background-clip(padding-box);
|
||||
&.fade {
|
||||
.transition(e('opacity .3s linear, top .3s ease-out'));
|
||||
top: -25%;
|
||||
}
|
||||
&.fade.in { top: 50%; }
|
||||
}
|
||||
.modal-header {
|
||||
padding: 5px 15px;
|
||||
border-bottom: 1px solid #eee;
|
||||
// Close icon
|
||||
.close { margin-top: 2px; }
|
||||
}
|
||||
.modal-body {
|
||||
padding: 15px;
|
||||
}
|
||||
.modal-footer {
|
||||
padding: 14px 15px 15px;
|
||||
margin-bottom: 0;
|
||||
background-color: #f5f5f5;
|
||||
border-top: 1px solid #ddd;
|
||||
.border-radius(0 0 6px 6px);
|
||||
.box-shadow(inset 0 1px 0 @white);
|
||||
.clearfix();
|
||||
.btn {
|
||||
float: right;
|
||||
margin-left: 5px;
|
||||
margin-bottom: 0; // account for input[type=submit] which gets the bottom margin like all other inputs
|
||||
}
|
||||
}
|
||||
251
less/navbar.less
Normal file
251
less/navbar.less
Normal file
@@ -0,0 +1,251 @@
|
||||
// NAVBAR (FIXED AND STATIC)
|
||||
// -------------------------
|
||||
|
||||
|
||||
// COMMON STYLES
|
||||
// -------------
|
||||
|
||||
.navbar {
|
||||
overflow: visible;
|
||||
}
|
||||
// gradient is applied to it's own element because overflow visible is not honored by IE when filter is present
|
||||
.navbar-inner {
|
||||
background-color: @navbarBackground;
|
||||
#gradient > .vertical(@navbarBackgroundHighlight, @navbarBackground);
|
||||
@shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);
|
||||
.box-shadow(@shadow);
|
||||
}
|
||||
|
||||
// Text and links
|
||||
.navbar {
|
||||
// Hover and active states
|
||||
.brand:hover {
|
||||
color: @white;
|
||||
text-decoration: none;
|
||||
}
|
||||
// Website or project name
|
||||
.brand {
|
||||
float: left;
|
||||
display: block;
|
||||
padding: 8px 20px 12px;
|
||||
margin-left: -20px; // negative indent to left-align the text down the page
|
||||
font-size: 20px;
|
||||
font-weight: 200;
|
||||
line-height: 1;
|
||||
color: @white;
|
||||
}
|
||||
// Plain text in topbar
|
||||
p {
|
||||
margin: 0;
|
||||
line-height: 40px;
|
||||
a:hover {
|
||||
color: @white;
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
// Buttons in navbar
|
||||
.btn,
|
||||
.btn-group {
|
||||
margin-top: 5px; // make buttons vertically centered in navbar
|
||||
}
|
||||
.btn-group .btn {
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Navbar forms
|
||||
.navbar-form {
|
||||
margin-bottom: 0; // remove default bottom margin
|
||||
input,
|
||||
select {
|
||||
display: inline-block;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Navbar search
|
||||
.navbar-search {
|
||||
position: relative;
|
||||
float: left;
|
||||
margin-top: 6px;
|
||||
margin-bottom: 0;
|
||||
.search-query {
|
||||
padding: 4px 9px;
|
||||
#font > .sans-serif(13px, normal, 1);
|
||||
color: @white;
|
||||
color: rgba(255,255,255,.75);
|
||||
background: #444;
|
||||
background: rgba(255,255,255,.3);
|
||||
border: 1px solid #111;
|
||||
@shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0px rgba(255,255,255,.15);
|
||||
.box-shadow(@shadow);
|
||||
.transition(none);
|
||||
|
||||
// Placeholder text gets special styles; can't be bundled together though for some reason
|
||||
.placeholder(@grayLighter);
|
||||
|
||||
// Hover states
|
||||
&:hover {
|
||||
color: @white;
|
||||
background-color: @grayLight;
|
||||
background-color: rgba(255,255,255,.5);
|
||||
}
|
||||
// Focus states (we use .focused since IE8 and down doesn't support :focus)
|
||||
&:focus,
|
||||
&.focused {
|
||||
padding: 5px 10px;
|
||||
color: @grayDark;
|
||||
text-shadow: 0 1px 0 @white;
|
||||
background-color: @white;
|
||||
border: 0;
|
||||
.box-shadow(0 0 3px rgba(0,0,0,.15));
|
||||
outline: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Static navbar
|
||||
.navbar-static {
|
||||
margin-bottom: @baseLineHeight;
|
||||
}
|
||||
.navbar-static .navbar-inner {
|
||||
padding-left: 20px;
|
||||
padding-right: 20px;
|
||||
.border-radius(4px);
|
||||
}
|
||||
|
||||
// Fixed navbar
|
||||
.navbar-fixed {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
z-index: @zindexFixedNavbar;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// NAVIGATION
|
||||
// ----------
|
||||
|
||||
.navbar .nav {
|
||||
position: relative;
|
||||
left: 0;
|
||||
display: block;
|
||||
float: left;
|
||||
margin: 0 10px 0 0;
|
||||
}
|
||||
.navbar .nav.pull-right {
|
||||
float: right; // redeclare due to specificity
|
||||
}
|
||||
.navbar .nav > li {
|
||||
display: block;
|
||||
float: left;
|
||||
}
|
||||
|
||||
// Links
|
||||
.navbar .nav > li > a {
|
||||
float: none;
|
||||
padding: 10px 10px 11px;
|
||||
line-height: 19px;
|
||||
color: @grayLight;
|
||||
text-decoration: none;
|
||||
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
|
||||
}
|
||||
// Hover
|
||||
.navbar .nav > li > a:hover {
|
||||
background-color: transparent;
|
||||
color: @white;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
// Active nav items
|
||||
.navbar .nav .active > a {
|
||||
color: @white;
|
||||
text-decoration: none;
|
||||
background-color: @grayDarker;
|
||||
background-color: rgba(0,0,0,.5);
|
||||
}
|
||||
|
||||
// Dividers (basically a vertical hr)
|
||||
.navbar .vertical-divider {
|
||||
height: 40px;
|
||||
width: 1px;
|
||||
margin: 0 5px;
|
||||
overflow: hidden;
|
||||
background-color: @grayDarker;
|
||||
border-right: 1px solid #444;
|
||||
}
|
||||
|
||||
// Secondary (floated right) nav in topbar
|
||||
.navbar .nav.pull-right {
|
||||
margin-left: 10px;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Dropdown menus
|
||||
// --------------
|
||||
|
||||
// Menu position and menu carets
|
||||
.navbar .dropdown-menu {
|
||||
margin-top: 1px;
|
||||
.border-radius(4px);
|
||||
&:before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
border-left: 7px solid transparent;
|
||||
border-right: 7px solid transparent;
|
||||
border-bottom: 7px solid #ccc;
|
||||
border-bottom-color: rgba(0,0,0,.2);
|
||||
position: absolute;
|
||||
top: -7px;
|
||||
left: 9px;
|
||||
}
|
||||
&:after {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
border-left: 6px solid transparent;
|
||||
border-right: 6px solid transparent;
|
||||
border-bottom: 6px solid @white;
|
||||
position: absolute;
|
||||
top: -6px;
|
||||
left: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
// Dropdown toggle caret
|
||||
.navbar .nav .dropdown-toggle .caret,
|
||||
.navbar .nav .open.dropdown .caret {
|
||||
border-top-color: @white;
|
||||
}
|
||||
.navbar .nav .active .caret {
|
||||
.opacity(100);
|
||||
}
|
||||
|
||||
// Remove background color from open dropdown
|
||||
.navbar .nav .open > .dropdown-toggle,
|
||||
.navbar .nav .active > .dropdown-toggle,
|
||||
.navbar .nav .open.active > .dropdown-toggle {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
// Dropdown link on hover
|
||||
.navbar .nav .active > .dropdown-toggle:hover {
|
||||
color: @white;
|
||||
}
|
||||
|
||||
// Right aligned menus need alt position
|
||||
.navbar .nav.pull-right .dropdown-menu {
|
||||
right: 0;
|
||||
&:before {
|
||||
left: auto;
|
||||
right: 12px;
|
||||
}
|
||||
&:after {
|
||||
left: auto;
|
||||
right: 13px;
|
||||
}
|
||||
}
|
||||
338
less/navs.less
Normal file
338
less/navs.less
Normal file
@@ -0,0 +1,338 @@
|
||||
// NAVIGATIONS
|
||||
// -----------
|
||||
|
||||
|
||||
|
||||
// BASE CLASS
|
||||
// ----------
|
||||
|
||||
.nav {
|
||||
margin-left: 0;
|
||||
margin-bottom: @baseLineHeight;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
// Make links block level
|
||||
.nav > li > a {
|
||||
display: block;
|
||||
}
|
||||
.nav > li > a:hover {
|
||||
text-decoration: none;
|
||||
background-color: @grayLighter;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// NAV LIST
|
||||
// --------
|
||||
|
||||
.nav.list {
|
||||
padding-left: 14px;
|
||||
padding-right: 14px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.nav.list > li > a,
|
||||
.nav.list .nav-header {
|
||||
display: block;
|
||||
padding: 3px 15px;
|
||||
margin-left: -15px;
|
||||
margin-right: -15px;
|
||||
text-shadow: 0 1px 0 rgba(255,255,255,.5);
|
||||
}
|
||||
.nav.list .nav-header {
|
||||
font-size: 11px;
|
||||
font-weight: bold;
|
||||
line-height: @baseLineHeight;
|
||||
color: @grayLight;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.nav.list > li + .nav-header {
|
||||
margin-top: 9px;
|
||||
}
|
||||
.nav.list .active > a {
|
||||
color: @white;
|
||||
text-shadow: 0 -1px 0 rgba(0,0,0,.2);
|
||||
background-color: @linkColor;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// TABS AND PILLS
|
||||
// -------------
|
||||
|
||||
// Common styles
|
||||
.tabs,
|
||||
.pills {
|
||||
.clearfix();
|
||||
}
|
||||
.tabs > li,
|
||||
.pills > li {
|
||||
float: left;
|
||||
}
|
||||
.tabs > li > a,
|
||||
.pills > li > a {
|
||||
padding-right: 12px;
|
||||
padding-left: 12px;
|
||||
margin-right: 2px;
|
||||
line-height: 14px; // keeps the overall height an even number
|
||||
}
|
||||
|
||||
// TABS
|
||||
// ----
|
||||
|
||||
// Give the tabs something to sit on
|
||||
.tabs {
|
||||
border-bottom: 1px solid #ddd;
|
||||
}
|
||||
|
||||
// Make the list-items overlay the bottom border
|
||||
.tabs > li {
|
||||
margin-bottom: -1px;
|
||||
}
|
||||
|
||||
// Actual tabs (as links)
|
||||
.tabs > li > a {
|
||||
padding-top: 9px;
|
||||
padding-bottom: 9px;
|
||||
border: 1px solid transparent;
|
||||
.border-radius(4px 4px 0 0);
|
||||
&:hover {
|
||||
border-color: @grayLighter @grayLighter #ddd;
|
||||
}
|
||||
}
|
||||
// Active state, and it's :hover to override normal :hover
|
||||
.tabs > .active > a,
|
||||
.tabs > .active > a:hover {
|
||||
color: @gray;
|
||||
background-color: @white;
|
||||
border: 1px solid #ddd;
|
||||
border-bottom-color: transparent;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
// PILLS
|
||||
// -----
|
||||
|
||||
// Links rendered as pills
|
||||
.pills > li > a {
|
||||
padding-top: 8px;
|
||||
padding-bottom: 8px;
|
||||
margin-top: 2px;
|
||||
margin-bottom: 2px;
|
||||
.border-radius(5px);
|
||||
}
|
||||
|
||||
// Active state
|
||||
.pills .active > a,
|
||||
.pills .active > a:hover {
|
||||
color: @white;
|
||||
background-color: @linkColor;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// STACKED NAV
|
||||
// -----------
|
||||
|
||||
// Stacked tabs and pills
|
||||
.nav.stacked > li {
|
||||
float: none;
|
||||
}
|
||||
.nav.stacked > li > a {
|
||||
margin-right: 0; // no need for the gap between nav items
|
||||
}
|
||||
|
||||
// Tabs
|
||||
.tabs.stacked {
|
||||
border-bottom: 0;
|
||||
}
|
||||
.tabs.stacked > li > a {
|
||||
border: 1px solid #ddd;
|
||||
.border-radius(0);
|
||||
}
|
||||
.tabs.stacked > li:first-child > a {
|
||||
.border-radius(4px 4px 0 0);
|
||||
}
|
||||
.tabs.stacked > li:last-child > a {
|
||||
.border-radius(0 0 4px 4px);
|
||||
}
|
||||
.tabs.stacked > li > a:hover {
|
||||
border-color: #ddd;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
// Pills
|
||||
.pills.stacked > li > a {
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
.pills.stacked > li:last-child > a {
|
||||
margin-bottom: 1px; // decrease margin to match sizing of stacked tabs
|
||||
}
|
||||
|
||||
|
||||
|
||||
// DROPDOWNS
|
||||
// ---------
|
||||
|
||||
// Position the menu
|
||||
.pills .dropdown-menu,
|
||||
.tabs .dropdown-menu {
|
||||
margin-top: 1px;
|
||||
border-width: 1px;
|
||||
}
|
||||
.pills .dropdown-menu {
|
||||
.border-radius(4px);
|
||||
}
|
||||
|
||||
// Default dropdown links
|
||||
// -------------------------
|
||||
// Make carets use linkColor to start
|
||||
.tabs .dropdown-toggle .caret,
|
||||
.pills .dropdown-toggle .caret {
|
||||
border-top-color: @linkColor;
|
||||
margin-top: 6px;
|
||||
}
|
||||
.tabs .dropdown-toggle:hover .caret,
|
||||
.pills .dropdown-toggle:hover .caret {
|
||||
border-top-color: @linkColorHover;
|
||||
}
|
||||
|
||||
// Active dropdown links
|
||||
// -------------------------
|
||||
.tabs .active .dropdown-toggle .caret,
|
||||
.pills .active .dropdown-toggle .caret {
|
||||
border-top-color: @grayDark;
|
||||
}
|
||||
|
||||
// Active:hover dropdown links
|
||||
// -------------------------
|
||||
.nav > .dropdown.active > a:hover {
|
||||
color: @black;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
// Open dropdowns
|
||||
// -------------------------
|
||||
.tabs .open .dropdown-toggle,
|
||||
.pills .open .dropdown-toggle,
|
||||
.nav > .open.active > a:hover {
|
||||
color: @white;
|
||||
background-color: @grayLight;
|
||||
border-color: @grayLight;
|
||||
}
|
||||
.nav .open .caret,
|
||||
.nav .open.active .caret,
|
||||
.nav .open a:hover .caret {
|
||||
border-top-color: @white;
|
||||
.opacity(100);
|
||||
}
|
||||
|
||||
// Dropdowns in stacked tabs
|
||||
.tabs.stacked .open > a:hover {
|
||||
border-color: @grayLight;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// TABBABLE
|
||||
// --------
|
||||
|
||||
|
||||
// COMMON STYLES
|
||||
// -------------
|
||||
|
||||
// Clear any floats
|
||||
.tabbable {
|
||||
.clearfix();
|
||||
}
|
||||
|
||||
// Remove border on bottom, left, right
|
||||
.tabs-below .tabs,
|
||||
.tabs-right .tabs,
|
||||
.tabs-left .tabs {
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
// Show/hide tabbable areas
|
||||
.tab-content > .tab-pane,
|
||||
.pill-content > .pill-pane {
|
||||
display: none;
|
||||
}
|
||||
.tab-content > .active,
|
||||
.pill-content > .active {
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
||||
// BOTTOM
|
||||
// ------
|
||||
|
||||
.tabs-below .tabs {
|
||||
border-top: 1px solid #ddd;
|
||||
}
|
||||
.tabs-below .tabs > li {
|
||||
margin-top: -1px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.tabs-below .tabs > li > a {
|
||||
.border-radius(0 0 4px 4px);
|
||||
&:hover {
|
||||
border-bottom-color: transparent;
|
||||
border-top-color: #ddd;
|
||||
}
|
||||
}
|
||||
.tabs-below .tabs .active > a,
|
||||
.tabs-below .tabs .active > a:hover {
|
||||
border-color: transparent #ddd #ddd #ddd;
|
||||
}
|
||||
|
||||
// LEFT & RIGHT
|
||||
// ------------
|
||||
|
||||
// Common styles
|
||||
.tabs-left .tabs > li,
|
||||
.tabs-right .tabs > li {
|
||||
float: none;
|
||||
}
|
||||
.tabs-left .tabs > li > a,
|
||||
.tabs-right .tabs > li > a {
|
||||
min-width: 74px;
|
||||
margin-right: 0;
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
|
||||
// Tabs on the left
|
||||
.tabs-left .tabs {
|
||||
float: left;
|
||||
margin-right: 19px;
|
||||
border-right: 1px solid #ddd;
|
||||
}
|
||||
.tabs-left .tabs > li > a {
|
||||
margin-right: -1px;
|
||||
.border-radius(4px 0 0 4px);
|
||||
}
|
||||
.tabs-left .tabs > li > a:hover {
|
||||
border-color: @grayLighter #ddd @grayLighter @grayLighter;
|
||||
}
|
||||
.tabs-left .tabs .active > a,
|
||||
.tabs-left .tabs .active > a:hover {
|
||||
border-color: #ddd transparent #ddd #ddd;
|
||||
}
|
||||
|
||||
// Tabs on the right
|
||||
.tabs-right .tabs {
|
||||
float: right;
|
||||
margin-left: 19px;
|
||||
border-left: 1px solid #ddd;
|
||||
}
|
||||
.tabs-right .tabs > li > a {
|
||||
margin-left: -1px;
|
||||
.border-radius(0 4px 4px 0);
|
||||
}
|
||||
.tabs-right .tabs > li > a:hover {
|
||||
border-color: @grayLighter @grayLighter @grayLighter #ddd;
|
||||
}
|
||||
.tabs-right .tabs .active > a,
|
||||
.tabs-right .tabs .active > a:hover {
|
||||
border-color: #ddd #ddd #ddd transparent;
|
||||
}
|
||||
25
less/pager.less
Normal file
25
less/pager.less
Normal file
@@ -0,0 +1,25 @@
|
||||
// PAGER
|
||||
// -----
|
||||
|
||||
.pager {
|
||||
margin-left: 0;
|
||||
margin-bottom: @baseLineHeight;
|
||||
list-style: none;
|
||||
text-align: center;
|
||||
.clearfix();
|
||||
}
|
||||
.pager li {
|
||||
display: inline;
|
||||
}
|
||||
.pager a {
|
||||
display: inline-block;
|
||||
padding: 6px 15px;
|
||||
background-color: #f5f5f5;
|
||||
.border-radius(15px);
|
||||
}
|
||||
.pager .next a {
|
||||
float: right;
|
||||
}
|
||||
.pager .previous a {
|
||||
float: left;
|
||||
}
|
||||
54
less/pagination.less
Normal file
54
less/pagination.less
Normal file
@@ -0,0 +1,54 @@
|
||||
// PAGINATION
|
||||
// ----------
|
||||
|
||||
.pagination {
|
||||
height: @baseLineHeight * 2;
|
||||
margin: @baseLineHeight 0;
|
||||
}
|
||||
.pagination ul {
|
||||
display: inline-block;
|
||||
.ie7-inline-block();
|
||||
margin-left: 0;
|
||||
margin-bottom: 0;
|
||||
.border-radius(3px);
|
||||
.box-shadow(0 1px 2px rgba(0,0,0,.05));
|
||||
}
|
||||
.pagination li {
|
||||
display: inline;
|
||||
}
|
||||
.pagination a {
|
||||
float: left;
|
||||
padding: 0 14px;
|
||||
line-height: (@baseLineHeight * 2) - 2;
|
||||
text-decoration: none;
|
||||
border: 1px solid #ddd;
|
||||
border-left-width: 0;
|
||||
}
|
||||
.pagination a:hover,
|
||||
.pagination .active a {
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
.pagination .active a {
|
||||
color: @grayLight;
|
||||
}
|
||||
.pagination .disabled a,
|
||||
.pagination .disabled a:hover {
|
||||
color: @grayLight;
|
||||
background-color: transparent;
|
||||
cursor: default;
|
||||
}
|
||||
.pagination li:first-child a {
|
||||
border-left-width: 1px;
|
||||
.border-radius(3px 0 0 3px);
|
||||
}
|
||||
.pagination li:last-child a {
|
||||
.border-radius(0 3px 3px 0);
|
||||
}
|
||||
|
||||
// Centered
|
||||
.pagination-centered {
|
||||
text-align: center;
|
||||
}
|
||||
.pagination-right {
|
||||
text-align: right;
|
||||
}
|
||||
13
less/patterns.less
Normal file
13
less/patterns.less
Normal file
@@ -0,0 +1,13 @@
|
||||
// Patterns.less
|
||||
// Repeatable UI elements outside the base styles provided from the scaffolding
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
|
||||
// PAGE HEADERS
|
||||
// ------------
|
||||
|
||||
footer {
|
||||
padding-top: @baseLineHeight - 1;
|
||||
margin-top: @baseLineHeight - 1;
|
||||
border-top: 1px solid #eee;
|
||||
}
|
||||
49
less/popovers.less
Normal file
49
less/popovers.less
Normal file
@@ -0,0 +1,49 @@
|
||||
// POPOVERS
|
||||
// --------
|
||||
|
||||
.popover {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: @zindexPopover;
|
||||
display: none;
|
||||
padding: 5px;
|
||||
&.top { margin-top: -5px; }
|
||||
&.right { margin-left: 5px; }
|
||||
&.bottom { margin-top: 5px; }
|
||||
&.left { margin-left: -5px; }
|
||||
&.top .arrow { #popoverArrow > .top(); }
|
||||
&.right .arrow { #popoverArrow > .right(); }
|
||||
&.bottom .arrow { #popoverArrow > .bottom(); }
|
||||
&.left .arrow { #popoverArrow > .left(); }
|
||||
.arrow {
|
||||
position: absolute;
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
.inner {
|
||||
padding: 3px;
|
||||
width: 280px;
|
||||
overflow: hidden;
|
||||
background: @black; // has to be full background declaration for IE fallback
|
||||
background: rgba(0,0,0,.8);
|
||||
.border-radius(6px);
|
||||
.box-shadow(0 3px 7px rgba(0,0,0,0.3));
|
||||
}
|
||||
.title {
|
||||
padding: 9px 15px;
|
||||
line-height: 1;
|
||||
background-color: #f5f5f5;
|
||||
border-bottom:1px solid #eee;
|
||||
.border-radius(3px 3px 0 0);
|
||||
}
|
||||
.content {
|
||||
padding: 14px;
|
||||
background-color: @white;
|
||||
.border-radius(0 0 3px 3px);
|
||||
.background-clip(padding-box);
|
||||
p, ul, ol {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
18
less/print.less
Normal file
18
less/print.less
Normal file
@@ -0,0 +1,18 @@
|
||||
/*!
|
||||
* Bootstrap @VERSION for Print
|
||||
*
|
||||
* Copyright 2012 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 @twitter by @mdo and @fat.
|
||||
* Date: @DATE
|
||||
*/
|
||||
|
||||
|
||||
// HIDE UNECESSARY COMPONENTS
|
||||
// --------------------------
|
||||
|
||||
.navbar-fixed {
|
||||
display: none;
|
||||
}
|
||||
99
less/progress-bars.less
Normal file
99
less/progress-bars.less
Normal file
@@ -0,0 +1,99 @@
|
||||
// PROGRESS BARS
|
||||
// -------------
|
||||
|
||||
|
||||
// ANIMATIONS
|
||||
// ----------
|
||||
|
||||
// Webkit
|
||||
@-webkit-keyframes progress-bar-stripes {
|
||||
from { background-position: 0 0; }
|
||||
to { background-position: 40px 0; }
|
||||
}
|
||||
|
||||
// Temporarily commented out since LESS won't compile with this
|
||||
// @-moz-keyframes progress-bar-stripes {
|
||||
// from { background-position: 0 0; }
|
||||
// to { background-position: 40px 0; }
|
||||
// }
|
||||
|
||||
// Spec
|
||||
@keyframes progress-bar-stripes {
|
||||
from { background-position: 0 0; }
|
||||
to { background-position: 40px 0; }
|
||||
}
|
||||
|
||||
|
||||
|
||||
// THE BARS
|
||||
// --------
|
||||
|
||||
// Common styles
|
||||
.progress,
|
||||
.progress .bar {
|
||||
.border-radius(4px);
|
||||
}
|
||||
|
||||
// Outer container
|
||||
.progress {
|
||||
height: 18px;
|
||||
margin-bottom: 18px;
|
||||
#gradient > .vertical(#f5f5f5, #f9f9f9);
|
||||
.box-shadow(inset 0 1px 2px rgba(0,0,0,.1));
|
||||
}
|
||||
|
||||
// Bar of progress
|
||||
.progress .bar {
|
||||
width: 0%;
|
||||
height: 18px;
|
||||
color: @white;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
|
||||
#gradient > .vertical(#149bdf, #0480be);
|
||||
.box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
|
||||
.box-sizing(border-box);
|
||||
.transition(width .6s ease);
|
||||
}
|
||||
|
||||
// Striped bars
|
||||
.progress.striped .bar {
|
||||
#gradient > .striped(#62c462);
|
||||
.background-size(40px 40px);
|
||||
}
|
||||
|
||||
// Call animation for the active one
|
||||
.progress.active .bar {
|
||||
-webkit-animation: progress-bar-stripes 2s linear infinite;
|
||||
-moz-animation: progress-bar-stripes 2s linear infinite;
|
||||
animation: progress-bar-stripes 2s linear infinite;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// COLORS
|
||||
// ------
|
||||
|
||||
// Danger (red)
|
||||
.progress.danger .bar {
|
||||
#gradient > .vertical(#ee5f5b, #c43c35);
|
||||
}
|
||||
.progress.danger.striped .bar {
|
||||
#gradient > .striped(#ee5f5b);
|
||||
}
|
||||
|
||||
// Success (green)
|
||||
.progress.success .bar {
|
||||
#gradient > .vertical(#62c462, #57a957);
|
||||
}
|
||||
.progress.success.striped .bar {
|
||||
#gradient > .striped(#62c462);
|
||||
}
|
||||
|
||||
// Info (teal)
|
||||
.progress.info .bar {
|
||||
#gradient > .vertical(#5bc0de, #339bb9);
|
||||
}
|
||||
.progress.info.striped .bar {
|
||||
#gradient > .striped(#5bc0de);
|
||||
}
|
||||
126
less/reset.less
Normal file
126
less/reset.less
Normal file
@@ -0,0 +1,126 @@
|
||||
// Reset.less
|
||||
// Adapted from Normalize.css http://github.com/necolas/normalize.css
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
// Display in IE6-9 and FF3
|
||||
// -------------------------
|
||||
|
||||
article,
|
||||
aside,
|
||||
details,
|
||||
figcaption,
|
||||
figure,
|
||||
footer,
|
||||
header,
|
||||
hgroup,
|
||||
nav,
|
||||
section {
|
||||
display: block;
|
||||
}
|
||||
|
||||
// Display block in IE6-9 and FF3
|
||||
// -------------------------
|
||||
|
||||
audio,
|
||||
canvas,
|
||||
video {
|
||||
display: inline-block;
|
||||
*display: inline;
|
||||
*zoom: 1;
|
||||
}
|
||||
|
||||
// Prevents modern browsers from displaying 'audio' without controls
|
||||
// -------------------------
|
||||
|
||||
audio:not([controls]) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
// Base settings
|
||||
// -------------------------
|
||||
|
||||
html {
|
||||
font-size: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-ms-text-size-adjust: 100%;
|
||||
}
|
||||
// Focus states
|
||||
a:focus {
|
||||
outline: thin dotted;
|
||||
}
|
||||
// Hover & Active
|
||||
a:hover,
|
||||
a:active {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
// Prevents sub and sup affecting line-height in all browsers
|
||||
// -------------------------
|
||||
|
||||
sub,
|
||||
sup {
|
||||
position: relative;
|
||||
font-size: 75%;
|
||||
line-height: 0;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
sup {
|
||||
top: -0.5em;
|
||||
}
|
||||
sub {
|
||||
bottom: -0.25em;
|
||||
}
|
||||
|
||||
// Img border in a's and image quality
|
||||
// -------------------------
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
border: 0;
|
||||
-ms-interpolation-mode: bicubic;
|
||||
}
|
||||
|
||||
// Forms
|
||||
// -------------------------
|
||||
|
||||
// Font size in all browsers, margin changes, misc consistency
|
||||
button,
|
||||
input,
|
||||
select,
|
||||
textarea {
|
||||
margin: 0;
|
||||
font-size: 100%;
|
||||
vertical-align: middle;
|
||||
}
|
||||
button,
|
||||
input {
|
||||
*overflow: visible; // Inner spacing ie IE6/7
|
||||
line-height: normal; // FF3/4 have !important on line-height in UA stylesheet
|
||||
}
|
||||
button::-moz-focus-inner,
|
||||
input::-moz-focus-inner { // Inner padding and border oddities in FF3/4
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
button,
|
||||
input[type="button"],
|
||||
input[type="reset"],
|
||||
input[type="submit"] {
|
||||
cursor: pointer; // Cursors on all buttons applied consistently
|
||||
-webkit-appearance: button; // Style clicable inputs in iOS
|
||||
}
|
||||
input[type="search"] { // Appearance in Safari/Chrome
|
||||
-webkit-appearance: textfield;
|
||||
-webkit-box-sizing: content-box;
|
||||
-moz-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
input[type="search"]::-webkit-search-decoration,
|
||||
input[type="search"]::-webkit-search-cancel-button {
|
||||
-webkit-appearance: none; // Inner-padding issues in Chrome OSX, Safari 5
|
||||
}
|
||||
textarea {
|
||||
overflow: auto; // Remove vertical scrollbar in IE6-9
|
||||
vertical-align: top; // Readability and alignment cross-browser
|
||||
}
|
||||
268
less/responsive.less
Normal file
268
less/responsive.less
Normal file
@@ -0,0 +1,268 @@
|
||||
// Responsive.less
|
||||
// For phone and tablet devices
|
||||
// -------------------------------------------------------------
|
||||
|
||||
|
||||
// REPEAT VARIABLES & MIXINS
|
||||
// -------------------------
|
||||
// Required since we compile the responsive stuff separately
|
||||
|
||||
@import "variables.less"; // Modify this for custom colors, font-sizes, etc
|
||||
@import "mixins.less";
|
||||
|
||||
|
||||
// RESPONSIVE CLASSES
|
||||
// ------------------
|
||||
|
||||
// Hide from screenreaders and browsers
|
||||
// Credit: HTML5BP
|
||||
.hidden {
|
||||
display: none;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
|
||||
// UP TO LANDSCAPE PHONE
|
||||
// ---------------------
|
||||
|
||||
@media (max-width: 480px) {
|
||||
|
||||
// Make the nav work for small devices
|
||||
.navbar {
|
||||
.nav {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 180px;
|
||||
padding-top: 40px;
|
||||
list-style: none;
|
||||
}
|
||||
.nav,
|
||||
.nav > li:last-child a {
|
||||
.border-radius(0 0 4px 0);
|
||||
}
|
||||
.nav > li {
|
||||
float: none;
|
||||
display: none;
|
||||
}
|
||||
.nav > li > a {
|
||||
float: none;
|
||||
background-color: #222;
|
||||
}
|
||||
.nav > .active {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
.nav > .active > a {
|
||||
background-color: transparent;
|
||||
}
|
||||
.nav > .active > a:hover {
|
||||
background-color: #333;
|
||||
}
|
||||
.nav > .active > a:after {
|
||||
display: inline-block;
|
||||
width: 0;
|
||||
height: 0;
|
||||
margin-top: 8px;
|
||||
margin-left: 6px;
|
||||
text-indent: -99999px;
|
||||
vertical-align: top;
|
||||
border-left: 4px solid transparent;
|
||||
border-right: 4px solid transparent;
|
||||
border-top: 4px solid @white;
|
||||
.opacity(100);
|
||||
content: "↓";
|
||||
}
|
||||
.nav:hover > li {
|
||||
display: block;
|
||||
}
|
||||
.nav:hover > li > a:hover {
|
||||
background-color: #333;
|
||||
}
|
||||
}
|
||||
|
||||
// Remove the horizontal form styles
|
||||
.form-horizontal .control-group > label {
|
||||
float: none;
|
||||
width: auto;
|
||||
padding-top: 0;
|
||||
text-align: left;
|
||||
}
|
||||
// Move over all input controls and content
|
||||
.form-horizontal .controls {
|
||||
margin-left: 0;
|
||||
}
|
||||
// Move the options list down to align with labels
|
||||
.form-horizontal .control-list {
|
||||
padding-top: 0; // has to be padding because margin collaspes
|
||||
}
|
||||
// Move over buttons in .form-actions to align with .controls
|
||||
.form-horizontal .form-actions {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
// Modals
|
||||
.modal {
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
left: 20px;
|
||||
right: 20px;
|
||||
width: auto;
|
||||
margin: 0;
|
||||
&.fade.in { top: auto; }
|
||||
}
|
||||
.modal-header .close {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// LANDSCAPE PHONE TO SMALL DESKTOP & PORTRAIT TABLET
|
||||
// --------------------------------------------------
|
||||
|
||||
@media (max-width: 768px) {
|
||||
|
||||
// Unfix the navbar
|
||||
.navbar-fixed {
|
||||
position: absolute;
|
||||
}
|
||||
.navbar-fixed .nav {
|
||||
float: none;
|
||||
}
|
||||
|
||||
// Remove width from containers
|
||||
.container {
|
||||
width: auto;
|
||||
padding: 0 20px;
|
||||
}
|
||||
// Undo negative margin on rows
|
||||
.row {
|
||||
margin-left: 0;
|
||||
}
|
||||
// Make all columns even
|
||||
.row > [class*="span"] {
|
||||
float: none;
|
||||
display: block;
|
||||
width: auto;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// PORTRAIT TABLET TO DEFAULT DESKTOP
|
||||
// ----------------------------------
|
||||
|
||||
@media (min-width: 768px) and (max-width: 940px) {
|
||||
|
||||
// Reset grid variables
|
||||
@gridColumns: 16;
|
||||
@gridColumnWidth: 44px;
|
||||
@gridGutterWidth: 20px;
|
||||
@siteWidth: 748px;
|
||||
|
||||
// Bring grid mixins to recalculate widths
|
||||
.columns(@columns: 1) {
|
||||
width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1));
|
||||
}
|
||||
.offset(@columns: 1) {
|
||||
margin-left: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1)) + (@gridGutterWidth * 2);
|
||||
}
|
||||
|
||||
// 16cols at 30px wide with 16px gutters
|
||||
.container {
|
||||
width: @siteWidth;
|
||||
}
|
||||
|
||||
// Default columns
|
||||
.span1 { .columns(1); }
|
||||
.span2 { .columns(2); }
|
||||
.span3 { .columns(3); }
|
||||
.span4 { .columns(4); }
|
||||
.span5 { .columns(5); }
|
||||
.span6 { .columns(6); }
|
||||
.span7 { .columns(7); }
|
||||
.span8 { .columns(8); }
|
||||
.span9 { .columns(9); }
|
||||
.span10 { .columns(10); }
|
||||
.span11 { .columns(11); }
|
||||
.span12 { .columns(12); }
|
||||
|
||||
// Offset column options
|
||||
.offset1 { .offset(1); }
|
||||
.offset2 { .offset(2); }
|
||||
.offset3 { .offset(3); }
|
||||
.offset4 { .offset(4); }
|
||||
.offset5 { .offset(5); }
|
||||
.offset6 { .offset(6); }
|
||||
.offset7 { .offset(7); }
|
||||
.offset8 { .offset(8); }
|
||||
.offset9 { .offset(9); }
|
||||
.offset10 { .offset(10); }
|
||||
.offset11 { .offset(11); }
|
||||
.offset12 { .offset(12); }
|
||||
|
||||
}
|
||||
|
||||
// LARGE DESKTOP & UP
|
||||
// ------------------
|
||||
/*
|
||||
@media (min-width: 1210px) {
|
||||
|
||||
// Reset grid variables
|
||||
@gridColumns: 12;
|
||||
@gridColumnWidth: 70px;
|
||||
@gridGutterWidth: 30px;
|
||||
@siteWidth: 1170px;
|
||||
|
||||
// Bring grid mixins to recalculate widths
|
||||
.columns(@columns: 1) {
|
||||
width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1));
|
||||
}
|
||||
.offset(@columns: 1) {
|
||||
margin-left: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1)) + (@gridGutterWidth * 2);
|
||||
}
|
||||
|
||||
.container {
|
||||
width: @siteWidth;
|
||||
}
|
||||
.row {
|
||||
margin-left: @gridGutterWidth * -1;
|
||||
}
|
||||
[class*="span"] {
|
||||
margin-left: @gridGutterWidth;
|
||||
}
|
||||
|
||||
// Default columns
|
||||
.span1 { .columns(1); }
|
||||
.span2 { .columns(2); }
|
||||
.span3 { .columns(3); }
|
||||
.span4 { .columns(4); }
|
||||
.span5 { .columns(5); }
|
||||
.span6 { .columns(6); }
|
||||
.span7 { .columns(7); }
|
||||
.span8 { .columns(8); }
|
||||
.span9 { .columns(9); }
|
||||
.span10 { .columns(10); }
|
||||
.span11 { .columns(11); }
|
||||
.span12 { .columns(12); }
|
||||
|
||||
// Offset column options
|
||||
.offset1 { .offset(1); }
|
||||
.offset2 { .offset(2); }
|
||||
.offset3 { .offset(3); }
|
||||
.offset4 { .offset(4); }
|
||||
.offset5 { .offset(5); }
|
||||
.offset6 { .offset(6); }
|
||||
.offset7 { .offset(7); }
|
||||
.offset8 { .offset(8); }
|
||||
.offset9 { .offset(9); }
|
||||
.offset10 { .offset(10); }
|
||||
.offset11 { .offset(11); }
|
||||
.offset12 { .offset(12); }
|
||||
|
||||
}
|
||||
*/
|
||||
29
less/scaffolding.less
Normal file
29
less/scaffolding.less
Normal file
@@ -0,0 +1,29 @@
|
||||
// Scaffolding
|
||||
// Basic and global styles for generating a grid system, structural layout, and page templates
|
||||
// -------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
// STRUCTURAL LAYOUT
|
||||
// -----------------
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: @baseFontFamily;
|
||||
font-size: @baseFontSize;
|
||||
line-height: @baseLineHeight;
|
||||
color: @gray;
|
||||
background-color: @white;
|
||||
}
|
||||
|
||||
|
||||
// LINKS
|
||||
// -----
|
||||
|
||||
a {
|
||||
color: @linkColor;
|
||||
text-decoration: none;
|
||||
&:hover {
|
||||
color: @linkColorHover;
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
121
less/sprites.less
Normal file
121
less/sprites.less
Normal file
@@ -0,0 +1,121 @@
|
||||
// SPRITES
|
||||
// Glyphs and icons for buttons, nav, and more
|
||||
// -------------------------------------------
|
||||
|
||||
|
||||
// ICONS
|
||||
// -----
|
||||
|
||||
// As of v2.0.0, the <i> tag is reserved for icons from the Glyphicons set.
|
||||
// All icons receive the styles of the <i> tag and are then given a unique
|
||||
// class to add width, height, and background-position. Your resulting HTML
|
||||
// will look like <i class="inbox"></i>.
|
||||
|
||||
.icon {
|
||||
background-image: url(img/glyphicons-halflings-sprite.png);
|
||||
background-position: 0 0;
|
||||
background-repeat: no-repeat;
|
||||
display: inline-block;
|
||||
vertical-align: text-top;
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
}
|
||||
.icon.white {
|
||||
background-image: url(img/glyphicons-halflings-sprite-white.png);
|
||||
}
|
||||
|
||||
.icon.glass { background-position: 0 0; }
|
||||
.icon.music { background-position: -24px 0; }
|
||||
.icon.search { background-position: -48px 0; }
|
||||
.icon.envelope { background-position: -72px 0; }
|
||||
.icon.heart { background-position: -96px 0; }
|
||||
.icon.star { background-position: -120px 0; }
|
||||
.icon.star-empty { background-position: -144px 0; }
|
||||
.icon.user { background-position: -168px 0; }
|
||||
.icon.film { background-position: -192px 0; }
|
||||
.icon.th-large { background-position: -216px 0; }
|
||||
.icon.th { background-position: -240px 0; }
|
||||
.icon.th-list { background-position: -264px 0; }
|
||||
.icon.ok { background-position: -288px 0; }
|
||||
.icon.remove { background-position: -312px 0; }
|
||||
.icon.zoom-in { background-position: -336px 0; }
|
||||
.icon.zoom-out { background-position: -360px 0; }
|
||||
.icon.off { background-position: -384px 0; }
|
||||
.icon.signal { background-position: -408px 0; }
|
||||
.icon.cog { background-position: -432px 0; }
|
||||
.icon.trash { background-position: -456px 0; }
|
||||
|
||||
.icon.home { background-position: 0 -24px; }
|
||||
.icon.file { background-position: -24px -24px; }
|
||||
.icon.time { background-position: -48px -24px; }
|
||||
.icon.road { background-position: -72px -24px; }
|
||||
.icon.download-alt { background-position: -96px -24px; }
|
||||
.icon.download { background-position: -120px -24px; }
|
||||
.icon.upload { background-position: -144px -24px; }
|
||||
.icon.inbox { background-position: -168px -24px; }
|
||||
.icon.play-circle { background-position: -192px -24px; }
|
||||
.icon.repeat { background-position: -216px -24px; }
|
||||
.icon.refresh { background-position: -240px -24px; }
|
||||
.icon.calendar { background-position: -264px -24px; }
|
||||
.icon.lock { background-position: -288px -24px; }
|
||||
.icon.flag { background-position: -312px -24px; }
|
||||
.icon.headphones { background-position: -336px -24px; }
|
||||
.icon.volume-off { background-position: -360px -24px; }
|
||||
.icon.volume-down { background-position: -384px -24px; }
|
||||
.icon.volume-up { background-position: -408px -24px; }
|
||||
.icon.qrcode { background-position: -432px -24px; }
|
||||
.icon.barcode { background-position: -456px -24px; }
|
||||
|
||||
.icon.tag { background-position: 0 -48px; }
|
||||
.icon.tags { background-position: -24px -48px; }
|
||||
.icon.book { background-position: -48px -48px; }
|
||||
.icon.bookmark { background-position: -72px -48px; }
|
||||
.icon.print { background-position: -96px -48px; }
|
||||
.icon.camera { background-position: -120px -48px; }
|
||||
.icon.font { background-position: -144px -48px; }
|
||||
.icon.bold { background-position: -168px -48px; }
|
||||
.icon.italic { background-position: -192px -48px; }
|
||||
.icon.text-height { background-position: -216px -48px; }
|
||||
.icon.text-width { background-position: -240px -48px; }
|
||||
.icon.align-left { background-position: -264px -48px; }
|
||||
.icon.align-center { background-position: -288px -48px; }
|
||||
.icon.align-right { background-position: -312px -48px; }
|
||||
.icon.align-justify { background-position: -336px -48px; }
|
||||
.icon.list { background-position: -360px -48px; }
|
||||
.icon.indent-left { background-position: -384px -48px; }
|
||||
.icon.indent-right { background-position: -408px -48px; }
|
||||
.icon.facetime-video { background-position: -432px -48px; }
|
||||
.icon.picture { background-position: -456px -48px; }
|
||||
|
||||
.icon.pencil { background-position: 0 -72px; }
|
||||
.icon.map-marker { background-position: -24px -72px; }
|
||||
.icon.adjust { background-position: -48px -72px; }
|
||||
.icon.tint { background-position: -72px -72px; }
|
||||
.icon.edit { background-position: -96px -72px; }
|
||||
.icon.share { background-position: -120px -72px; }
|
||||
.icon.check { background-position: -144px -72px; }
|
||||
.icon.move { background-position: -168px -72px; }
|
||||
.icon.step-backward { background-position: -192px -72px; }
|
||||
.icon.fast-backward { background-position: -216px -72px; }
|
||||
.icon.backward { background-position: -240px -72px; }
|
||||
.icon.play { background-position: -264px -72px; }
|
||||
.icon.pause { background-position: -288px -72px; }
|
||||
.icon.stop { background-position: -312px -72px; }
|
||||
.icon.forward { background-position: -336px -72px; }
|
||||
.icon.fast-forward { background-position: -360px -72px; }
|
||||
.icon.step-forward { background-position: -384px -72px; }
|
||||
.icon.eject { background-position: -408px -72px; }
|
||||
.icon.chevron-left { background-position: -432px -72px; }
|
||||
.icon.chevron-right { background-position: -456px -72px; }
|
||||
|
||||
.icon.arrow-left { background-position: -240px -96px; }
|
||||
.icon.arrow-right { background-position: -264px -96px; }
|
||||
.icon.arrow-up { background-position: -288px -96px; }
|
||||
.icon.arrow-down { background-position: -312px -96px; }
|
||||
.icon.share-alt { background-position: -336px -96px; }
|
||||
.icon.resize-full { background-position: -360px -96px; }
|
||||
.icon.resize-small { background-position: -384px -96px; }
|
||||
.icon.plus { background-position: -408px -96px; }
|
||||
.icon.minus { background-position: -432px -96px; }
|
||||
.icon.asterisk { background-position: -456px -96px; }
|
||||
|
||||
138
less/tables.less
Normal file
138
less/tables.less
Normal file
@@ -0,0 +1,138 @@
|
||||
//
|
||||
// Tables.less
|
||||
// Tables for, you guessed it, tabular data
|
||||
// ----------------------------------------
|
||||
|
||||
|
||||
// BASE TABLES
|
||||
// -----------------
|
||||
|
||||
table {
|
||||
max-width: 100%;
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
// BASELINE STYLES
|
||||
// ---------------
|
||||
|
||||
.table {
|
||||
width: 100%;
|
||||
margin-bottom: @baseLineHeight;
|
||||
// Cells
|
||||
th,
|
||||
td {
|
||||
padding: 8px;
|
||||
line-height: @baseLineHeight;
|
||||
text-align: left;
|
||||
border-top: 1px solid #ddd;
|
||||
}
|
||||
th {
|
||||
font-weight: bold;
|
||||
vertical-align: bottom;
|
||||
}
|
||||
td {
|
||||
vertical-align: top;
|
||||
}
|
||||
// Remove top border from thead by default
|
||||
thead:first-child tr th,
|
||||
thead:first-child tr td {
|
||||
border-top: 0;
|
||||
}
|
||||
// Account for multiple tbody instances
|
||||
tbody + tbody {
|
||||
border-top: 2px solid #ddd;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// CONDENSED TABLE W/ HALF PADDING
|
||||
// -------------------------------
|
||||
|
||||
.table-condensed {
|
||||
th,
|
||||
td {
|
||||
padding: 4px 5px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// BORDERED VERSION
|
||||
// ----------------
|
||||
|
||||
.table-bordered {
|
||||
border: 1px solid #ddd;
|
||||
border-collapse: separate; // Done so we can round those corners!
|
||||
.border-radius(4px);
|
||||
th + th,
|
||||
td + td,
|
||||
th + td,
|
||||
td + th {
|
||||
border-left: 1px solid #ddd;
|
||||
}
|
||||
// Prevent a double border
|
||||
thead:first-child tr:first-child th,
|
||||
tbody:first-child tr:first-child th,
|
||||
tbody:first-child tr:first-child td {
|
||||
border-top: 0;
|
||||
}
|
||||
// For first th or td in the first row in the first thead or tbody
|
||||
thead:first-child tr:first-child th:first-child,
|
||||
tbody:first-child tr:first-child td:first-child {
|
||||
.border-radius(4px 0 0 0);
|
||||
}
|
||||
thead:first-child tr:first-child th:last-child,
|
||||
tbody:first-child tr:first-child td:last-child {
|
||||
.border-radius(0 4px 0 0);
|
||||
}
|
||||
// For first th or td in the first row in the first thead or tbody
|
||||
thead:last-child tr:last-child th:first-child,
|
||||
tbody:last-child tr:last-child td:first-child {
|
||||
.border-radius(0 0 0 4px);
|
||||
}
|
||||
thead:last-child tr:last-child th:last-child,
|
||||
tbody:last-child tr:last-child td:last-child {
|
||||
.border-radius(0 0 4px 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ZEBRA-STRIPING
|
||||
// --------------
|
||||
|
||||
// Default zebra-stripe styles (alternating gray and transparent backgrounds)
|
||||
.table-striped {
|
||||
tbody {
|
||||
tr:nth-child(odd) td,
|
||||
tr:nth-child(odd) th {
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// TABLE CELL SIZING
|
||||
// -----------------
|
||||
|
||||
// Change the columns
|
||||
.tableColumns(@columnSpan: 1) {
|
||||
float: none;
|
||||
width: ((@gridColumnWidth) * @columnSpan) + (@gridGutterWidth * (@columnSpan - 1)) - 16;
|
||||
margin-left: 0;
|
||||
}
|
||||
table {
|
||||
.span1 { .tableColumns(1); }
|
||||
.span2 { .tableColumns(2); }
|
||||
.span3 { .tableColumns(3); }
|
||||
.span4 { .tableColumns(4); }
|
||||
.span5 { .tableColumns(5); }
|
||||
.span6 { .tableColumns(6); }
|
||||
.span7 { .tableColumns(7); }
|
||||
.span8 { .tableColumns(8); }
|
||||
.span9 { .tableColumns(9); }
|
||||
.span10 { .tableColumns(10); }
|
||||
.span11 { .tableColumns(11); }
|
||||
.span12 { .tableColumns(12); }
|
||||
}
|
||||
33
less/thumbnails.less
Normal file
33
less/thumbnails.less
Normal file
@@ -0,0 +1,33 @@
|
||||
// THUMBNAILS
|
||||
// ----------
|
||||
|
||||
.thumbnails {
|
||||
margin-left: -20px;
|
||||
list-style: none;
|
||||
.clearfix();
|
||||
}
|
||||
.thumbnails > li {
|
||||
float: left;
|
||||
margin: 0 0 @baseLineHeight 20px;
|
||||
}
|
||||
.thumbnail {
|
||||
display: block;
|
||||
padding: 4px;
|
||||
line-height: 1;
|
||||
border: 1px solid #ddd;
|
||||
.border-radius(4px);
|
||||
.box-shadow(0 1px 1px rgba(0,0,0,.075));
|
||||
}
|
||||
// Add a hover state for linked versions only
|
||||
a.thumbnail:hover {
|
||||
border-color: @linkColor;
|
||||
.box-shadow(0 1px 4px rgba(0,105,214,.25));
|
||||
}
|
||||
// Images and captions
|
||||
.thumbnail > img {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
}
|
||||
.thumbnail .caption {
|
||||
padding: 9px;
|
||||
}
|
||||
35
less/tooltip.less
Normal file
35
less/tooltip.less
Normal file
@@ -0,0 +1,35 @@
|
||||
// TOOLTIP
|
||||
// ------=
|
||||
|
||||
.tooltip {
|
||||
position: absolute;
|
||||
z-index: @zindexTooltip;
|
||||
display: block;
|
||||
visibility: visible;
|
||||
padding: 5px;
|
||||
font-size: 11px;
|
||||
.opacity(0);
|
||||
&.in { .opacity(80); }
|
||||
&.top { margin-top: -2px; }
|
||||
&.right { margin-left: 2px; }
|
||||
&.bottom { margin-top: 2px; }
|
||||
&.left { margin-left: -2px; }
|
||||
&.top .tooltip-arrow { #popoverArrow > .top(); }
|
||||
&.left .tooltip-arrow { #popoverArrow > .left(); }
|
||||
&.bottom .tooltip-arrow { #popoverArrow > .bottom(); }
|
||||
&.right .tooltip-arrow { #popoverArrow > .right(); }
|
||||
}
|
||||
.tooltip-inner {
|
||||
max-width: 200px;
|
||||
padding: 3px 8px;
|
||||
color: @white;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
background-color: @black;
|
||||
.border-radius(4px);
|
||||
}
|
||||
.tooltip-arrow {
|
||||
position: absolute;
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
206
less/type.less
Normal file
206
less/type.less
Normal file
@@ -0,0 +1,206 @@
|
||||
// Typography.less
|
||||
// Headings, body text, lists, code, and more for a versatile and durable typography system
|
||||
// ----------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
// BODY TEXT
|
||||
// ---------
|
||||
|
||||
p {
|
||||
margin: 0 0 @baseLineHeight / 2;
|
||||
font-family: @baseFontFamily;
|
||||
font-size: @baseFontSize;
|
||||
line-height: @baseLineHeight;
|
||||
small {
|
||||
font-size: @baseFontSize - 2;
|
||||
color: @grayLight;
|
||||
}
|
||||
}
|
||||
.lead {
|
||||
margin-bottom: @baseLineHeight;
|
||||
font-size: 20px;
|
||||
font-weight: 200;
|
||||
line-height: @baseLineHeight * 1.5;
|
||||
}
|
||||
|
||||
// HEADINGS
|
||||
// --------
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
margin: 0;
|
||||
font-weight: bold;
|
||||
color: @grayDark;
|
||||
text-rendering: optimizelegibility; // Fix the character spacing for headings
|
||||
small {
|
||||
font-weight: normal;
|
||||
color: @grayLight;
|
||||
}
|
||||
}
|
||||
h1 {
|
||||
font-size: 30px;
|
||||
line-height: @baseLineHeight * 2;
|
||||
small {
|
||||
font-size: 18px;
|
||||
}
|
||||
}
|
||||
h2 {
|
||||
font-size: 24px;
|
||||
line-height: @baseLineHeight * 2;
|
||||
small {
|
||||
font-size: 18px;
|
||||
}
|
||||
}
|
||||
h3 {
|
||||
line-height: @baseLineHeight * 1.5;
|
||||
font-size: 18px;
|
||||
small {
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
h4, h5, h6 {
|
||||
line-height: @baseLineHeight;
|
||||
}
|
||||
h4 {
|
||||
font-size: 14px;
|
||||
small {
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
h5 {
|
||||
font-size: 12px;
|
||||
}
|
||||
h6 {
|
||||
font-size: 11px;
|
||||
color: @grayLight;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
|
||||
// LISTS
|
||||
// -----
|
||||
|
||||
// Unordered and Ordered lists
|
||||
ul, ol {
|
||||
padding: 0;
|
||||
margin: 0 0 @baseLineHeight / 2 25px;
|
||||
}
|
||||
ul ul,
|
||||
ul ol,
|
||||
ol ol,
|
||||
ol ul {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
ul {
|
||||
list-style: disc;
|
||||
}
|
||||
ol {
|
||||
list-style: decimal;
|
||||
}
|
||||
li {
|
||||
line-height: @baseLineHeight;
|
||||
}
|
||||
ul.unstyled {
|
||||
margin-left: 0;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
// Description Lists
|
||||
dl {
|
||||
margin-bottom: @baseLineHeight;
|
||||
}
|
||||
dt,
|
||||
dd {
|
||||
line-height: @baseLineHeight;
|
||||
}
|
||||
dt {
|
||||
font-weight: bold;
|
||||
}
|
||||
dd {
|
||||
margin-left: @baseLineHeight / 2;
|
||||
}
|
||||
|
||||
// MISC
|
||||
// ----
|
||||
|
||||
// Horizontal rules
|
||||
hr {
|
||||
margin: @baseLineHeight 0;
|
||||
border: 0;
|
||||
border-top: 1px solid #e5e5e5;
|
||||
border-bottom: 1px solid @white;
|
||||
}
|
||||
|
||||
// Emphasis
|
||||
strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
em {
|
||||
font-style: italic;
|
||||
}
|
||||
.muted {
|
||||
color: @grayLight;
|
||||
}
|
||||
|
||||
// Abbreviations and acronyms
|
||||
abbr {
|
||||
font-size: 90%;
|
||||
text-transform: uppercase;
|
||||
border-bottom: 1px dotted #ddd;
|
||||
cursor: help;
|
||||
}
|
||||
|
||||
// Blockquotes
|
||||
blockquote {
|
||||
padding: 0 0 0 15px;
|
||||
margin: 0 0 @baseLineHeight;
|
||||
border-left: 5px solid @grayLighter;
|
||||
p {
|
||||
margin-bottom: 0;
|
||||
#font > .shorthand(16px,300,@baseLineHeight * 1.25);
|
||||
}
|
||||
small {
|
||||
display: block;
|
||||
line-height: @baseLineHeight;
|
||||
color: @grayLight;
|
||||
&:before {
|
||||
content: '\2014 \00A0';
|
||||
}
|
||||
}
|
||||
|
||||
// Float right with text-align: right
|
||||
&.pull-right {
|
||||
float: right;
|
||||
padding-left: 0;
|
||||
padding-right: 15px;
|
||||
border-left: 0;
|
||||
border-right: 5px solid @grayLighter;
|
||||
p,
|
||||
small {
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Quotes
|
||||
q:before,
|
||||
q:after,
|
||||
blockquote:before,
|
||||
blockquote:after {
|
||||
content: "";
|
||||
}
|
||||
|
||||
// Addresses
|
||||
address {
|
||||
display: block;
|
||||
margin-bottom: @baseLineHeight;
|
||||
line-height: @baseLineHeight;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
// Misc
|
||||
small {
|
||||
font-size: 100%;
|
||||
}
|
||||
cite {
|
||||
font-style: normal;
|
||||
}
|
||||
23
less/utilities.less
Normal file
23
less/utilities.less
Normal file
@@ -0,0 +1,23 @@
|
||||
// UTILITY CLASSES
|
||||
// ---------------
|
||||
|
||||
// Quick floats
|
||||
.pull-right {
|
||||
float: right;
|
||||
}
|
||||
.pull-left {
|
||||
float: left;
|
||||
}
|
||||
|
||||
// Toggling content
|
||||
.hide {
|
||||
display: none;
|
||||
}
|
||||
.show {
|
||||
display: block;
|
||||
}
|
||||
|
||||
// Visibility
|
||||
.invisible {
|
||||
visibility: hidden;
|
||||
}
|
||||
90
less/variables.less
Normal file
90
less/variables.less
Normal file
@@ -0,0 +1,90 @@
|
||||
// Variables.less
|
||||
// Variables to customize the look and feel of Bootstrap
|
||||
// -----------------------------------------------------
|
||||
|
||||
|
||||
|
||||
// GLOBAL VALUES
|
||||
// --------------------------------------------------
|
||||
|
||||
// Links
|
||||
@linkColor: #08c;
|
||||
@linkColorHover: darken(@linkColor, 15%);
|
||||
|
||||
// Grays
|
||||
@black: #000;
|
||||
@grayDarker: #222;
|
||||
@grayDark: #333;
|
||||
@gray: #555;
|
||||
@grayLight: #999;
|
||||
@grayLighter: #eee;
|
||||
@white: #fff;
|
||||
|
||||
// Accent colors
|
||||
@blue: #049cdb;
|
||||
@blueDark: #0064cd;
|
||||
@green: #46a546;
|
||||
@red: #9d261d;
|
||||
@yellow: #ffc40d;
|
||||
@orange: #f89406;
|
||||
@pink: #c3325f;
|
||||
@purple: #7a43b6;
|
||||
|
||||
// Grid system
|
||||
// Modify the grid styles in mixins.less
|
||||
@gridColumns: 12;
|
||||
@gridColumnWidth: 60px;
|
||||
@gridGutterWidth: 20px;
|
||||
@siteWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1));
|
||||
// Fluid width sidebar
|
||||
@fluidSidebarWidth: 220px;
|
||||
|
||||
// Typography
|
||||
@baseFontSize: 13px;
|
||||
@baseFontFamily: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
@baseLineHeight: 18px;
|
||||
|
||||
// Buttons
|
||||
@primaryButtonBackground: @linkColor;
|
||||
|
||||
|
||||
|
||||
// COMPONENT VARIABLES
|
||||
// --------------------------------------------------
|
||||
|
||||
// Z-index master list
|
||||
// Used for a bird's eye view of components dependent on the z-axis
|
||||
// Try to avoid customizing these :)
|
||||
@zindexDropdown: 1000;
|
||||
@zindexPopover: 1010;
|
||||
@zindexTooltip: 1020;
|
||||
@zindexFixedNavbar: 1030;
|
||||
@zindexModalBackdrop: 1040;
|
||||
@zindexModal: 1050;
|
||||
|
||||
// Input placeholder text color
|
||||
@placeholderText: @grayLight;
|
||||
|
||||
// Navbar
|
||||
@navbarHeight: 40px;
|
||||
@navbarBackground: @grayDarker;
|
||||
@navbarBackgroundHighlight: @grayDark;
|
||||
|
||||
// Form states and alerts
|
||||
@warningText: #c09853;
|
||||
@warningBackground: #fcf8e3;
|
||||
@warningBorder: #f3edd2;
|
||||
|
||||
@errorText: #b94a48;
|
||||
@errorBackground: #f2dede;
|
||||
@errorBorder: #e9c7c7;
|
||||
|
||||
@successText: #468847;
|
||||
@successBackground: #dff0d8;
|
||||
@successBorder: #cfe8c4;
|
||||
|
||||
@infoText: #3a87ad;
|
||||
@infoBackground: #d9edf7;
|
||||
@infoBorder: #bfe1f2;
|
||||
|
||||
|
||||
17
less/wells.less
Normal file
17
less/wells.less
Normal file
@@ -0,0 +1,17 @@
|
||||
// WELLS
|
||||
// -----
|
||||
|
||||
.well {
|
||||
min-height: 20px;
|
||||
padding: 19px;
|
||||
margin-bottom: 20px;
|
||||
background-color: #f5f5f5;
|
||||
border: 1px solid #eee;
|
||||
border: 1px solid rgba(0,0,0,.05);
|
||||
.border-radius(4px);
|
||||
.box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
|
||||
blockquote {
|
||||
border-color: #ddd;
|
||||
border-color: rgba(0,0,0,.15);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user