Bootstrap SCSS version 2.0.1

This commit is contained in:
Radomir Dopieralski 2014-05-27 09:48:35 +02:00
commit d659698007
45 changed files with 5790 additions and 0 deletions

9
.gitignore vendored Normal file
View File

@ -0,0 +1,9 @@
*.pyc
*.sw?
*.sqlite3
.DS_STORE
*.egg-info
.venv
.tox
build
dist

8
MANIFEST.in Normal file
View File

@ -0,0 +1,8 @@
include README.txt
recursive-include xstatic/pkg/bootstrap_scss *
global-exclude *.pyc
global-exclude *.pyo
global-exclude *.orig
global-exclude *.rej

13
README.txt Normal file
View File

@ -0,0 +1,13 @@
XStatic-Bootstrap-SCSS
--------------
Bootstrap style library packaged for setuptools (easy_install) / pip.
This package is intended to be used by **any** project that needs these files.
It intentionally does **not** provide any extra code except some metadata
**nor** has any extra requirements. You MAY use some minimal support code from
the XStatic base package, if you like.
You can find more info about the xstatic packaging way in the package `XStatic`.

27
setup.py Normal file
View File

@ -0,0 +1,27 @@
from xstatic.pkg import bootstrap_scss as xs
# The README.txt file should be written in reST so that PyPI can use
# it to generate your project's PyPI page.
long_description = open('README.txt').read()
from setuptools import setup, find_packages
setup(
name=xs.PACKAGE_NAME,
version=xs.PACKAGE_VERSION,
description=xs.DESCRIPTION,
long_description=long_description,
classifiers=xs.CLASSIFIERS,
keywords=xs.KEYWORDS,
maintainer=xs.MAINTAINER,
maintainer_email=xs.MAINTAINER_EMAIL,
license=xs.LICENSE,
url=xs.HOMEPAGE,
platforms=xs.PLATFORMS,
packages=find_packages(),
namespace_packages=['xstatic', 'xstatic.pkg', ],
include_package_data=True,
zip_safe=False,
install_requires=[], # nothing! :)
# if you like, you MAY use the 'XStatic' package.
)

1
xstatic/__init__.py Normal file
View File

@ -0,0 +1 @@
__import__('pkg_resources').declare_namespace(__name__)

1
xstatic/pkg/__init__.py Normal file
View File

@ -0,0 +1 @@
__import__('pkg_resources').declare_namespace(__name__)

View File

@ -0,0 +1,49 @@
"""
XStatic resource package
See package 'XStatic' for documentation and basic tools.
"""
DISPLAY_NAME = 'Bootstrap-SCSS' # official name, upper/lowercase allowed, no spaces
PACKAGE_NAME = 'XStatic-%s' % DISPLAY_NAME # name used for PyPi
NAME = __name__.split('.')[-1] # package name (e.g. 'foo' or 'foo_bar')
# please use a all-lowercase valid python
# package name
VERSION = '2.0.1' # version of the packaged files, please use the upstream
# version number
BUILD = '1' # our package build number, so we can release new builds
# with fixes for xstatic stuff.
PACKAGE_VERSION = VERSION + '.' + BUILD # version used for PyPi
DESCRIPTION = "%s %s (XStatic packaging standard)" % (DISPLAY_NAME, VERSION)
PLATFORMS = 'any'
CLASSIFIERS = []
KEYWORDS = '%s xstatic' % NAME
# XStatic-* package maintainer:
MAINTAINER = 'Radomir Dopieralski'
MAINTAINER_EMAIL = 'openstack@sheep.art.pl'
# this refers to the project homepage of the stuff we packaged:
HOMEPAGE = 'http://getbootstrap.org/'
# this refers to all files:
LICENSE = '(same as %s)' % DISPLAY_NAME
from os.path import join, dirname
BASE_DIR = join(dirname(__file__), 'data')
# linux package maintainers just can point to their file locations like this:
#BASE_DIR = '/usr/share/javascript/bootstrap_scss'
LOCATIONS = {
# CDN locations (if no public CDN exists, use an empty dict)
# if value is a string, it is a base location, just append relative
# path/filename. if value is a dict, do another lookup using the
# relative path/filename you want.
# your relative path/filenames should usually be without version
# information, because either the base dir/url is exactly for this
# version or the mapping will care for accessing this version.
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,318 @@
/*!
* Bootstrap Responsive v2.0.1
*
* 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.
* Converted to SASS by Thomas McDonald
*/
// Responsive.css.scss
// For phone and tablet devices
// -------------------------------------------------------------
// REPEAT VARIABLES & MIXINS
// -------------------------
// Required since we compile the responsive stuff separately
@import "bootstrap/variables"; // Modify this for custom colors, font-sizes, etc
@import "bootstrap/mixins";
// RESPONSIVE CLASSES
// ------------------
// Hide from screenreaders and browsers
// Credit: HTML5 Boilerplate
.hidden {
display: none;
visibility: hidden;
}
// UP TO LANDSCAPE PHONE
// ---------------------
@media (max-width: 480px) {
// Smooth out the collapsing/expanding nav
.nav-collapse {
-webkit-transform: translate3d(0, 0, 0); // activate the GPU
}
// Block level the page header small tag for readability
.page-header h1 small {
display: block;
line-height: $baseLineHeight;
}
// Make span* classes full width
input[class*="span"], select[class*="span"], textarea[class*="span"], .uneditable-input {
display: block;
width: 100%;
min-height: 28px; /* Make inputs at least the height of their button counterpart */
/* Makes inputs behave like true block-level elements */
-webkit-box-sizing: border-box; /* Older Webkit */
-moz-box-sizing: border-box; /* Older FF */
-ms-box-sizing: border-box; /* IE8 */
box-sizing: border-box; /* CSS3 spec*/
}
// But don't let it screw up prepend/append inputs
.input-prepend input[class*="span"], .input-append input[class*="span"] {
width: auto;
}
// Update checkboxes for iOS
input[type="checkbox"], input[type="radio"] {
border: 1px solid #ccc;
}
// 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: 10px;
padding-right: 10px;
}
// Modals
.modal {
position: absolute;
top: 10px;
left: 10px;
right: 10px;
width: auto;
margin: 0;
&.fade.in { top: auto; }
}
.modal-header .close {
padding: 10px;
margin: -10px;
}
// Carousel
.carousel-caption {
position: static;
}
}
// LANDSCAPE PHONE TO SMALL DESKTOP & PORTRAIT TABLET
// --------------------------------------------------
@media (max-width: 767px) {
// GRID & CONTAINERS
// -----------------
// Remove width from containers
.container {
width: auto;
padding: 0 20px;
}
// Fluid rows
.row-fluid {
width: 100%;
}
// Undo negative margin on rows
.row {
margin-left: 0;
}
// Make all columns even
.row > [class*="span"], .row-fluid > [class*="span"] {
float: none;
display: block;
width: auto;
margin: 0;
}
}
// PORTRAIT TABLET TO DEFAULT DESKTOP
// ----------------------------------
@media (min-width: 768px) and (max-width: 979px) {
// Fixed grid
@include gridSystemGenerate(12, 42px, 20px);
// Fluid grid
@include fluidGridSystemGenerate(12, 5.801104972%, 2.762430939%);
// Input grid
@include inputGridSystemGenerate(12, 42px, 20px);
}
// TABLETS AND BELOW
// -----------------
@media (max-width: 979px) {
// UNFIX THE TOPBAR
// ----------------
// Remove any padding from the body
body {
padding-top: 0;
}
// Unfix the navbar
.navbar-fixed-top {
position: static;
margin-bottom: $baseLineHeight;
}
.navbar-fixed-top .navbar-inner {
padding: 5px;
}
.navbar .container {
width: auto;
padding: 0;
}
// Account for brand name
.navbar .brand {
padding-left: 10px;
padding-right: 10px;
margin: 0 0 0 -5px;
}
// Nav collapse clears brand
.navbar .nav-collapse {
clear: left;
}
// Block-level the nav
.navbar .nav {
float: none;
margin: 0 0 ($baseLineHeight / 2);
}
.navbar .nav > li {
float: none;
}
.navbar .nav > li > a {
margin-bottom: 2px;
}
.navbar .nav > .divider-vertical {
display: none;
}
.navbar .nav .nav-header {
color: $navbarText;
text-shadow: none;
}
// Nav and dropdown links in navbar
.navbar .nav > li > a, .navbar .dropdown-menu a {
padding: 6px 15px;
font-weight: bold;
color: $navbarLinkColor;
@include border-radius(3px);
}
.navbar .dropdown-menu li + li a {
margin-bottom: 2px;
}
.navbar .nav > li > a:hover, .navbar .dropdown-menu a:hover {
background-color: $navbarBackground;
}
// Dropdowns in the navbar
.navbar .dropdown-menu {
position: static;
top: auto;
left: auto;
float: none;
display: block;
max-width: none;
margin: 0 15px;
padding: 0;
background-color: transparent;
border: none;
@include border-radius(0);
@include box-shadow(none);
}
.navbar .dropdown-menu:before, .navbar .dropdown-menu:after {
display: none;
}
.navbar .dropdown-menu .divider {
display: none;
}
// Forms in navbar
.navbar-form, .navbar-search {
float: none;
padding: ($baseLineHeight / 2) 15px;
margin: ($baseLineHeight / 2) 0;
border-top: 1px solid $navbarBackground;
border-bottom: 1px solid $navbarBackground;
$shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);
@include box-shadow($shadow);
}
// Pull right (secondary) nav content
.navbar .nav.pull-right {
float: none;
margin-left: 0;
}
// Static navbar
.navbar-static .navbar-inner {
padding-left: 10px;
padding-right: 10px;
}
// Navbar button
.btn-navbar {
display: block;
}
// Hide everything in the navbar save .brand and toggle button */
.nav-collapse {
overflow: hidden;
height: 0;
}
}
// DEFAULT DESKTOP
// ---------------
@media (min-width: 980px) {
.nav-collapse.collapse {
height: auto !important;
}
}
// LARGE DESKTOP & UP
// ------------------
@media (min-width: 1200px) {
// Fixed grid
@include gridSystemGenerate(12, 70px, 30px);
// Fluid grid
@include fluidGridSystemGenerate(12, 5.982905983%, 2.564102564%);
// Input grid
@include inputGridSystemGenerate(12, 70px, 30px);
// Thumbnails
.thumbnails {
margin-left: -30px;
}
.thumbnails > li {
margin-left: 30px;
}
}

View File

@ -0,0 +1,63 @@
/*!
* Bootstrap 2.0.1
*
* 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.
* Converted to SASS by Thomas McDonald
*/
// Core variables and mixins
@import "bootstrap/variables"; // Modify this for custom colors, font-sizes, etc
@import "bootstrap/mixins";
// CSS Reset
@import "bootstrap/reset";
// Grid system and page structure
@import "bootstrap/scaffolding";
@import "bootstrap/grid";
@import "bootstrap/layouts";
// Base CSS
@import "bootstrap/type";
@import "bootstrap/code";
@import "bootstrap/forms";
@import "bootstrap/tables";
// Components: common
@import "bootstrap/sprites";
@import "bootstrap/dropdowns";
@import "bootstrap/wells";
@import "bootstrap/component-animations";
@import "bootstrap/close";
// Components: Buttons & Alerts
@import "bootstrap/buttons";
@import "bootstrap/button-groups";
@import "bootstrap/alerts"; // Note: alerts share common CSS with buttons and thus have styles in buttons.less
// Components: Nav
@import "bootstrap/navs";
@import "bootstrap/navbar";
@import "bootstrap/breadcrumbs";
@import "bootstrap/pagination";
@import "bootstrap/pager";
// Components: Popovers
@import "bootstrap/modals";
@import "bootstrap/tooltip";
@import "bootstrap/popovers";
// Components: Misc
@import "bootstrap/thumbnails";
@import "bootstrap/labels";
@import "bootstrap/progress-bars";
@import "bootstrap/accordion";
@import "bootstrap/carousel";
@import "bootstrap/hero-unit";
// Utility classes
@import "bootstrap/utilities"; // Has to be last to override when necessary

View File

@ -0,0 +1,28 @@
// ACCORDION
// ---------
// Parent container
.accordion {
margin-bottom: $baseLineHeight;
}
// Group == heading + body
.accordion-group {
margin-bottom: 2px;
border: 1px solid #e5e5e5;
@include border-radius(4px);
}
.accordion-heading {
border-bottom: 0;
}
.accordion-heading .accordion-toggle {
display: block;
padding: 8px 15px;
}
// 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;
}

View File

@ -0,0 +1,62 @@
// 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;
@include border-radius(4px);
}
.alert, .alert-heading {
color: $warningText;
}
// Adjust close link position
.alert .close {
position: relative;
top: -2px;
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;
}

View File

@ -0,0 +1,22 @@
// BREADCRUMBS
// -----------
.breadcrumb {
padding: 7px 14px;
margin: 0 0 $baseLineHeight;
@include gradient-vertical($white, #f5f5f5);
border: 1px solid #ddd;
@include border-radius(3px);
@include box-shadow(inset 0 1px 0 $white);
li {
display: inline-block;
text-shadow: 0 1px 0 $white;
}
.divider {
padding: 0 5px;
color: $grayLight;
}
.active a {
color: $grayDark;
}
}

View File

@ -0,0 +1,136 @@
// BUTTON GROUPS
// -------------
// Make the div behave like a button
.btn-group {
position: relative;
@include clearfix(); // clears the floated buttons
@include ie7-restore-left-whitespace();
}
// Space out series of button groups
.btn-group + .btn-group {
margin-left: 5px;
}
// Optional: Group multiple button groups together for a toolbar
.btn-toolbar {
margin-top: $baseLineHeight / 2;
margin-bottom: $baseLineHeight / 2;
.btn-group {
display: inline-block;
@include ie7-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;
@include 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, .btn-group .btn.active {
z-index: 2;
}
// On active and open, don't show outline
.btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle {
outline: 0;
}
// Split button dropdowns
// ----------------------
// Give the line between buttons some depth
.btn-group .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);
@include box-shadow($shadow);
*padding-top: 5px;
*padding-bottom: 5px;
}
.btn-group.open {
// IE7's z-index only goes to the nearest positioned ancestor, which would
// make the menu appear below buttons that appeared later on the page
*z-index: $zindexDropdown;
// Reposition menu on open and round all corners
.dropdown-menu {
display: block;
margin-top: 1px;
@include border-radius(5px);
}
.dropdown-toggle {
background-image: none;
$shadow: inset 0 1px 6px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
@include box-shadow($shadow);
}
}
// Reposition the caret
.btn .caret {
margin-top: 7px;
margin-left: 0;
}
.btn:hover .caret, .open.btn-group .caret {
@include opacity(1);
}
// Account for other colors
.btn-primary, .btn-danger, .btn-info, .btn-success, .btn-inverse {
.caret {
border-top-color: $white;
@include opacity(0.75);
}
}
// Small button dropdowns
.btn-small .caret {
margin-top: 4px;
}

View File

@ -0,0 +1,163 @@
// BUTTON STYLES
// -------------
// Base styles
// --------------------------------------------------
// Core
.btn {
display: inline-block;
padding: 4px 10px 4px;
margin-bottom: 0; // For input.btn
font-size: $baseFontSize;
line-height: $baseLineHeight;
color: $grayDark;
text-align: center;
text-shadow: 0 1px 1px rgba(255,255,255,.75);
vertical-align: middle;
@include buttonBackground($white, darken($white, 10%));
border: 1px solid #ccc;
border-bottom-color: #bbb;
@include border-radius(4px);
$shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
@include box-shadow($shadow);
cursor: pointer;
// Give IE7 some love
@include reset-filter();
@include ie7-restore-left-whitespace();
}
// Hover state
.btn: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
@include transition(background-position .1s linear);
}
// Focus state for keyboard and accessibility
.btn:focus {
@include tab-focus();
}
// Active state
.btn.active, .btn:active {
background-image: none;
$shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
@include box-shadow($shadow);
background-color: darken($white, 10%);
background-color: darken($white, 15%) \9;
outline: 0;
}
// Disabled state
.btn.disabled, .btn[disabled] {
cursor: default;
background-image: none;
background-color: darken($white, 10%);
@include opacity(0.65);
@include box-shadow(none);
}
// Button Sizes
// --------------------------------------------------
// Large
.btn-large {
padding: 9px 14px;
font-size: $baseFontSize + 2px;
line-height: normal;
@include border-radius(5px);
}
.btn-large [class^="icon-"] {
margin-top: 1px;
}
// Small
.btn-small {
padding: 5px 9px;
font-size: $baseFontSize - 2px;
line-height: $baseLineHeight - 2px;
}
.btn-small [class^="icon-"] {
margin-top: -1px;
}
// Mini
.btn-mini {
padding: 2px 6px;
font-size: $baseFontSize - 2px;
line-height: $baseLineHeight - 4px;
}
// Alternate buttons
// --------------------------------------------------
// Set text color
// -------------------------
.btn-primary, .btn-primary:hover, .btn-warning, .btn-warning:hover, .btn-danger, .btn-danger:hover, .btn-success, .btn-success:hover, .btn-info, .btn-info:hover, .btn-inverse, .btn-inverse:hover {
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
color: $white;
}
// Provide *some* extra contrast for those who can get it
.btn-primary.active, .btn-warning.active, .btn-danger.active, .btn-success.active, .btn-info.active, .btn-inverse.active {
color: rgba(255,255,255,.75);
}
// Set the backgrounds
// -------------------------
.btn-primary {
@include buttonBackground($primaryButtonBackground, adjust-hue($primaryButtonBackground, 20));
}
// Warning appears are orange
.btn-warning {
@include buttonBackground(lighten($orange, 15%), $orange);
}
// Danger and error appear as red
.btn-danger {
@include buttonBackground(#ee5f5b, #bd362f);
}
// Success appears as green
.btn-success {
@include buttonBackground(#62c462, #51a351);
}
// Info appears as a neutral blue
.btn-info {
@include buttonBackground(#5bc0de, #2f96b4);
}
.btn-inverse {
@include buttonBackground(#454545, #262626);
}
// Cross-browser Jank
// --------------------------------------------------
button.btn, input[type="submit"].btn {
// Firefox 3.6 only I believe
&::-moz-focus-inner {
padding: 0;
border: 0;
}
// IE7 has some default padding on button controls
*padding-top: 2px;
*padding-bottom: 2px;
&.large {
*padding-top: 7px;
*padding-bottom: 7px;
}
&.small {
*padding-top: 3px;
*padding-bottom: 3px;
}
}

View File

@ -0,0 +1,116 @@
// CAROUSEL
// --------
.carousel {
position: relative;
margin-bottom: $baseLineHeight;
line-height: 1;
}
.carousel-inner {
overflow: hidden;
width: 100%;
position: relative;
}
.carousel {
.item {
display: none;
position: relative;
@include 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;
@include border-radius(23px);
@include opacity(0.5);
// we can't have this transition here
// because webkit cancels the carousel
// animation if you trip this while
// in the middle of another animation
// ;_;
// @include transition(opacity .2s linear);
// Reposition the right one
&.right {
left: auto;
right: 15px;
}
// Hover state
&:hover {
color: $white;
text-decoration: none;
@include opacity(0.9);
}
}
// 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;
}

View 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);
@include opacity(0.2);
&:hover {
color: $black;
text-decoration: none;
@include opacity(0.4);
cursor: pointer;
}
}

View File

@ -0,0 +1,56 @@
// Code.css.scss
// Code typography styles for the <code> and <pre> elements
// --------------------------------------------------------
// Inline and block code styles
code, pre {
padding: 0 3px 2px;
@include font-family-monospace();
font-size: $baseFontSize - 1;
color: $grayDark;
@include border-radius(3px);
}
// Inline code
code {
padding: 3px 4px;
color: #d14;
background-color: #f7f7f9;
border: 1px solid #e1e1e8;
}
// Blocks of code
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);
@include border-radius(4px);
white-space: pre;
white-space: pre-wrap;
word-break: break-all;
word-wrap: break-word;
// 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;
color: inherit;
background-color: transparent;
border: 0;
}
}
// Enable scrollable blocks of code
.pre-scrollable {
max-height: 340px;
overflow-y: scroll;
}

View File

@ -0,0 +1,18 @@
// COMPONENT ANIMATIONS
// --------------------
.fade {
@include transition(opacity .15s linear);
opacity: 0;
&.in {
opacity: 1;
}
}
.collapse {
@include transition(height .35s ease);
position:relative;
overflow:hidden;
height: 0;
&.in { height: auto; }
}

View File

@ -0,0 +1,126 @@
// 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-toggle {
// The caret makes the toggle a bit too tall in IE7
*margin-bottom: -3px;
}
.dropdown-toggle:active, .open .dropdown-toggle {
outline: 0;
}
// Dropdown arrow/caret
.caret {
display: inline-block;
width: 0;
height: 0;
text-indent: -99999px;
// IE7 won't do the border trick if there's a text indent, but it doesn't
// do the content that text-indent is hiding, either, so we're ok.
*text-indent: 0;
vertical-align: top;
border-left: 4px solid transparent;
border-right: 4px solid transparent;
border-top: 4px solid $black;
@include opacity(0.3);
content: "\2193";
}
.dropdown .caret {
margin-top: 8px;
margin-left: 2px;
}
.dropdown:hover .caret, .open.dropdown .caret {
@include opacity(1);
}
// The dropdown menu (ul)
.dropdown-menu {
position: absolute;
top: 100%;
left: 0;
z-index: $zindexDropdown;
float: left;
display: none; // none by default, but block on "open" of the menu
min-width: 160px;
_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;
@include border-radius(0 0 5px 5px);
@include box-shadow(0 5px 10px rgba(0,0,0,.2));
-webkit-background-clip: padding-box;
-moz-background-clip: padding;
background-clip: padding-box;
*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;
// IE7 needs a set width since we gave a height. Restricting just
// to IE7 to keep the 1px left/right space in other browsers.
// It is unclear where IE is getting the extra space that we need
// to negative-margin away, but so it goes.
*width: 100%;
*margin: -5px 0 5px;
}
// Links within the dropdown menu
a {
display: block;
padding: 3px 15px;
clear: both;
font-weight: normal;
line-height: $baseLineHeight;
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 {
// IE7's z-index only goes to the nearest positioned ancestor, which would
// make the menu appear below buttons that appeared later on the page
*z-index: $zindexDropdown;
.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
@include border-radius(4px);
}

View File

@ -0,0 +1,463 @@
// 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;
// Small
small {
font-size: $baseLineHeight * .75;
color: $grayLight;
}
}
// Set font for forms
label, input, button, select, textarea {
@include font-shorthand($baseFontSize, normal, $baseLineHeight); // Set size, weight, line-height here
}
input, button, select, textarea {
@include font-family-sans-serif(); // And only set font-family here for those that need it (note the missing label element)
}
// 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;
@include 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;
cursor: pointer;
@include border-radius(0);
border: 0 \9; /* IE9 and down */
}
input[type="image"] {
border: 0;
}
// Reset the file input to browser defaults
input[type="file"] {
width: auto;
padding: initial;
line-height: initial;
border: initial;
background-color: $white;
background-color: initial;
@include 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;
}
// Reset line-height for IE
input[type="file"] {
line-height: 18px \9;
}
// 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"] {
@include 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
// TODO v3: Convert .inline to .control-inline
.radio.inline, .checkbox.inline {
display: inline-block;
padding-top: 5px;
margin-bottom: 0;
vertical-align: middle;
}
.radio.inline + .radio.inline, .checkbox.inline + .checkbox.inline {
margin-left: 10px; // space out consecutive inline controls
}
// FOCUS STATE
// -----------
input, textarea {
@include box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
$transition: border linear .2s, box-shadow linear .2s;
@include 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);
@include box-shadow($shadow);
outline: 0;
outline: thin dotted \9; /* IE6-9 */
}
input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus, select:focus {
@include box-shadow(none); // override for file inputs
@include tab-focus();
}
// 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;
}
// GRID SIZING FOR INPUTS
// ----------------------
@include inputGridSystemGenerate($gridColumns, $gridColumnWidth, $gridGutterWidth);
// 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
// --------------------------
// Warning
.control-group.warning {
@include formFieldState($warningText, $warningText, $warningBackground);
}
// Error
.control-group.error {
@include formFieldState($errorText, $errorText, $errorBackground);
}
// Success
.control-group.success {
@include 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%);
@include 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;
@include 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
@include placeholder($grayLight);
// HELP TEXT
// ---------
.help-block {
display: block; // account for any element using help-block
margin-top: 5px;
margin-bottom: 0;
color: $grayLight;
}
.help-inline {
display: inline-block;
@include ie7-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;
@include clearfix(); // Clear the float to prevent wrapping
input, .uneditable-input {
@include border-radius(0 3px 3px 0);
&:focus {
position: relative;
z-index: 2;
}
}
.uneditable-input {
border-left-color: #eee;
border-right-color: #ccc;
}
.add-on {
float: left;
display: block;
width: auto;
min-width: 16px;
height: $baseLineHeight;
margin-right: -1px;
padding: 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;
@include 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;
@include border-radius(3px 0 0 3px);
}
.uneditable-input {
border-right-color: #ccc;
}
.add-on {
margin-right: 0;
margin-left: -1px;
@include border-radius(0 3px 3px 0);
}
input:first-child {
// In IE7, having a hasLayout container (from clearfix's zoom:1) can make the first input
// inherit the sum of its ancestors' margins.
*margin-left: -160px;
&+.add-on {
*margin-left: -21px;
}
}
}
// SEARCH FORM
// -----------
.search-query {
padding-left: 14px;
padding-right: 14px;
margin-bottom: 0; // remove the default margin on all inputs
@include 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;
}
// Re-hide elemnts due to specifity
.hide { display: none; }
}
.form-search label, .form-inline label, .form-search .input-append, .form-inline .input-append, .form-search .input-prepend, .form-inline .input-prepend {
display: inline-block;
}
// Make the prepend and append add-on vertical-align: middle;
.form-search .input-append .add-on, .form-inline .input-prepend .add-on, .form-search .input-append .add-on, .form-inline .input-prepend .add-on {
vertical-align: middle;
}
// Inline checkbox/radio labels
.form-search .radio, .form-inline .radio, .form-search .checkbox, .form-inline .checkbox {
margin-bottom: 0;
vertical-align: middle;
}
// Margin to space out fieldsets
.control-group {
margin-bottom: $baseLineHeight / 2;
}
// Legend collapses margin, so next elements is responsible for spacing
legend + .control-group {
margin-top: $baseLineHeight;
-webkit-margin-top-collapse: separate;
}
// Horizontal-specific styles
// --------------------------
.form-horizontal {
// Increase spacing between groups
.control-group {
margin-bottom: $baseLineHeight;
@include clearfix();
}
// Float the labels left
.control-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;
}
}

View File

@ -0,0 +1,8 @@
// GRID SYSTEM
// -----------
// Fixed (940px)
@include gridSystemGenerate($gridColumns, $gridColumnWidth, $gridGutterWidth);
// Fluid (940px)
@include fluidGridSystemGenerate($gridColumns, $fluidGridColumnWidth, $fluidGridGutterWidth);

View File

@ -0,0 +1,20 @@
// HERO UNIT
// ---------
.hero-unit {
padding: 60px;
margin-bottom: 30px;
background-color: #f5f5f5;
@include 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;
}
}

View File

@ -0,0 +1,32 @@
// LABELS
// ------
// Base
.label {
padding: 2px 4px 3px;
font-size: $baseFontSize * .85;
font-weight: bold;
color: $white;
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
background-color: $grayLight;
@include border-radius(3px);
}
// Hover state
.label:hover {
color: $white;
text-decoration: none;
}
// Colors
.label-important { background-color: $errorText; }
.label-important:hover { background-color: darken($errorText, 10%); }
.label-warning { background-color: $orange; }
.label-warning:hover { background-color: darken($orange, 10%); }
.label-success { background-color: $successText; }
.label-success:hover { background-color: darken($successText, 10%); }
.label-info { background-color: $infoText; }
.label-info:hover { background-color: darken($infoText, 10%); }

View File

@ -0,0 +1,17 @@
//
// Layouts
// Fixed-width and fluid (with sidebar) layouts
// --------------------------------------------
// Container (centered, fixed-width layouts)
.container {
@include container-fixed();
}
// Fluid layouts (left aligned, with sidebar, min- & max-width content)
.container-fluid {
padding-left: $gridGutterWidth;
padding-right: $gridGutterWidth;
@include clearfix();
}

View File

@ -0,0 +1,530 @@
// 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
@mixin clearfix() {
*zoom: 1;
&:before,
&:after {
display: table;
content: "";
}
&:after {
clear: both;
}
}
.clearfix { @include clearfix(); }
// Webkit-style focus
// ------------------
@mixin tab-focus() {
// Default
outline: thin dotted #333;
// Webkit
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
// Center-align a block level element
// ----------------------------------
@mixin center-block() {
display: block;
margin-left: auto;
margin-right: auto;
}
// IE7 inline-block
// ----------------
@mixin ie7-inline-block() {
*display: inline; /* IE7 inline-block hack */
*zoom: 1;
}
// IE7 likes to collapse whitespace on either side of the inline-block elements.
// Ems because we're attempting to match the width of a space character. Left
// version is for form buttons, which typically come after other elements, and
// right version is for icons, which come before. Applying both is ok, but it will
// mean that space between those elements will be .6em (~2 space characters) in IE7,
// instead of the 1 space in other browsers.
@mixin ie7-restore-left-whitespace() {
*margin-left: .3em;
&:first-child {
*margin-left: 0;
}
}
@mixin ie7-restore-right-whitespace() {
*margin-right: .3em;
&:last-child {
*margin-left: 0;
}
}
// Sizing shortcuts
// -------------------------
@mixin size($height: 5px, $width: 5px) {
width: $width;
height: $height;
}
@mixin square($size: 5px) {
@include size($size, $size);
}
// Placeholder text
// -------------------------
@mixin placeholder($color: $placeholderText) {
:-moz-placeholder {
color: $color;
}
::-webkit-input-placeholder {
color: $color;
}
}
// Text overflow
// ------------------------
@mixin text-overflow() {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
// FONTS
// --------------------------------------------------
@mixin font-family-serif() {
font-family: Georgia, "Times New Roman", Times, serif;
}
@mixin font-family-sans-serif() {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
@mixin font-family-monospace() {
font-family: Menlo, Monaco, "Courier New", monospace;
}
@mixin font-shorthand($size: $baseFontSize, $weight: normal, $lineHeight: $baseLineHeight) {
font-size: $size;
font-weight: $weight;
line-height: $lineHeight;
}
@mixin font-serif($size: $baseFontSize, $weight: normal, $lineHeight: $baseLineHeight) {
@include font-family-serif();
@include font-shorthand($size, $weight, $lineHeight);
}
@mixin font-sans-serif($size: $baseFontSize, $weight: normal, $lineHeight: $baseLineHeight) {
@include font-family-sans-serif();
@include font-shorthand($size, $weight, $lineHeight);
}
@mixin font-monospace($size: $baseFontSize, $weight: normal, $lineHeight: $baseLineHeight) {
@include font-family-monospace();
@include font-shorthand($size, $weight, $lineHeight);
}
// GRID SYSTEM
// --------------------------------------------------
// Site container
// -------------------------
@mixin container-fixed() {
width: $gridRowWidth;
margin-left: auto;
margin-right: auto;
@include clearfix();
}
// Le grid system
// -------------------------
// Setup the mixins to be used
@mixin gridSystemColumns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, $columns) {
width: ($gridColumnWidth * $columns) + ($gridGutterWidth * ($columns - 1));
}
@mixin gridSystemOffset($gridColumnWidth, $gridGutterWidth, $columns) {
margin-left: ($gridColumnWidth * $columns) + ($gridGutterWidth * ($columns - 1)) + ($gridGutterWidth * 2);
}
@mixin gridSystemGridColumn($gridGutterWidth) {
float: left;
margin-left: $gridGutterWidth;
}
// Take these values and mixins, and make 'em do their thang
@mixin gridSystemGenerate($gridColumns, $gridColumnWidth, $gridGutterWidth) {
// Row surrounds the columns
.row {
margin-left: $gridGutterWidth * -1;
@include clearfix();
}
// Find all .span# classes within .row and give them the necessary properties for grid columns (supported by all browsers back to IE7, thanks @dhg)
[class*="span"] {
@include gridSystemGridColumn($gridGutterWidth);
}
// Default columns
@for $i from 1 through $gridColumns {
.span#{$i} { @include gridSystemColumns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, $i) }
}
.container { @include gridSystemColumns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, $gridColumns) }
// Offset column options
@for $i from 1 through $gridColumns - 1 {
.offset#{$i} { @include gridSystemOffset($gridColumnWidth, $gridGutterWidth, $i) }
}
}
// Fluid grid system
// -------------------------
@mixin fluidGridSystemColumns($fluidGridGutterWidth, $fluidGridColumnWidth, $columns) {
width: ($fluidGridColumnWidth * $columns) + ($fluidGridGutterWidth * ($columns - 1));
}
@mixin fluidGridSystemGridColumn($fluidGridGutterWidth) {
float: left;
margin-left: $fluidGridGutterWidth;
}
// Take these values and mixins, and make 'em do their thang
@mixin fluidGridSystemGenerate($gridColumns, $fluidGridColumnWidth, $fluidGridGutterWidth) {
// Row surrounds the columns
.row-fluid {
width: 100%;
@include clearfix();
// Find all .span# classes within .row and give them the necessary properties for grid columns (supported by all browsers back to IE7, thanks @dhg)
> [class*="span"] {
@include fluidGridSystemGridColumn($fluidGridGutterWidth);
}
> [class*="span"]:first-child {
margin-left: 0;
}
// Default columns
@for $i from 1 through $gridColumns {
> .span#{$i} { @include fluidGridSystemColumns($fluidGridGutterWidth, $fluidGridColumnWidth, $i); }
}
}
}
// Input grid system
// -------------------------
@mixin inputGridSystemInputColumns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, $columns) {
width: (($gridColumnWidth) * $columns) + ($gridGutterWidth * ($columns - 1)) - 10;
}
@mixin inputGridSystemGenerate($gridColumns, $gridColumnWidth, $gridGutterWidth) {
input, textarea, .uneditable-input {
@for $i from 1 through $gridColumns {
&.span#{$i} { @include inputGridSystemInputColumns($gridGutterWidth, $gridColumnWidth, $gridRowWidth, $i); }
}
}
}
// Make a grid
// -------------------------
// Use makeRow() and makeColumn() to assign semantic layouts grid system behaviour
@mixin makeRow() {
margin-left: $gridGutterWidth * -1;
@include clearfix();
}
@mixin makeColumn($columns: 1) {
float: left;
margin-left: $gridGutterWidth;
width: ($gridColumnWidth * $columns) + ($gridGutterWidth * ($columns - 1));
}
// Form field states (used in forms.less)
// --------------------------------------------------
// Mixin for form field states
@mixin 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%);
@include 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;
}
}
// CSS3 PROPERTIES
// --------------------------------------------------
// Border Radius
@mixin border-radius($radius: 5px) {
-webkit-border-radius: $radius;
-moz-border-radius: $radius;
border-radius: $radius;
}
// Drop shadows
@mixin box-shadow($shadow: 0 1px 3px rgba(0,0,0,.25)) {
-webkit-box-shadow: $shadow;
-moz-box-shadow: $shadow;
box-shadow: $shadow;
}
// Transitions
@mixin transition($transition) {
-webkit-transition: $transition;
-moz-transition: $transition;
-ms-transition: $transition;
-o-transition: $transition;
transition: $transition;
}
// Transformations
@mixin rotate($degrees) {
-webkit-transform: rotate($degrees);
-moz-transform: rotate($degrees);
-ms-transform: rotate($degrees);
-o-transform: rotate($degrees);
transform: rotate($degrees);
}
@mixin scale($ratio) {
-webkit-transform: scale($ratio);
-moz-transform: scale($ratio);
-ms-transform: scale($ratio);
-o-transform: scale($ratio);
transform: scale($ratio);
}
@mixin 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);
}
@mixin skew($x: 0, $y: 0) {
-webkit-transform: skew($x, $y);
-moz-transform: skew($x, $y);
-ms-transform: skew($x, $y);
-o-transform: skew($x, $y);
transform: skew($x, $y);
}
@mixin translate3d($x: 0, $y: 0, $z: 0) {
-webkit-transform: translate($x, $y, $z);
-moz-transform: translate($x, $y, $z);
-ms-transform: translate($x, $y, $z);
-o-transform: translate($x, $y, $z);
transform: translate($x, $y, $z);
}
// Background clipping
// Heads up: FF 3.6 and under need "padding" instead of "padding-box"
@mixin background-clip($clip) {
-webkit-background-clip: $clip;
-moz-background-clip: $clip;
background-clip: $clip;
}
// Background sizing
@mixin background-size($size){
-webkit-background-size: $size;
-moz-background-size: $size;
-o-background-size: $size;
background-size: $size;
}
// Box sizing
@mixin box-sizing($boxmodel) {
-webkit-box-sizing: $boxmodel;
-moz-box-sizing: $boxmodel;
box-sizing: $boxmodel;
}
// User select
// For selecting text on the page
@mixin user-select($select) {
-webkit-user-select: $select;
-moz-user-select: $select;
-o-user-select: $select;
user-select: $select;
}
// Resize anything
@mixin resizable($direction: both) {
resize: $direction; // Options: horizontal, vertical, both
overflow: auto; // Safari fix
}
// CSS3 Content Columns
@mixin 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
@mixin opacity($opacity: 1) {
opacity: $opacity;
filter: alpha(opacity=$opacity * 100);
}
// BACKGROUNDS
// --------------------------------------------------
// Add an alphatransparency value to any background or border color (via Elyse Holladay)
@mixin translucent-background($color: $white, $alpha: 1) {
background-color: hsla(hue($color), saturation($color), lightness($color), $alpha);
}
@mixin translucent-border($color: $white, $alpha: 1) {
border-color: hsla(hue($color), saturation($color), lightness($color), $alpha);
@include background-clip(padding-box);
}
// Gradient Bar Colors for buttons and alerts
@mixin gradientBar($primaryColor, $secondaryColor) {
@include 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
@mixin 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;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($startColor)}', endColorstr='#{ie-hex-str($endColor)}', GradientType=1); // IE9 and down
}
@mixin gradient-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;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($startColor)}', endColorstr='#{ie-hex-str($endColor)}', GradientType=0); // IE9 and down
}
@mixin gradient-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
}
@mixin gradient-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;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($startColor)}', endColorstr='#{ie-hex-str($endColor)}', GradientType=0); // IE9 and down, gets no color-stop at all for proper fallback
}
@mixin gradient-radial($innerColor: #555, $outerColor: #333) {
background-color: $outerColor;
background-image: -webkit-gradient(radial, center center, 0, center center, 460, from($innerColor), to($outerColor));
background-image: -webkit-radial-gradient(circle, $innerColor, $outerColor);
background-image: -moz-radial-gradient(circle, $innerColor, $outerColor);
background-image: -ms-radial-gradient(circle, $innerColor, $outerColor);
background-repeat: no-repeat;
// Opera cannot do radial gradients yet
}
@mixin gradient-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%, rgba(255,255,255,0) 25%, rgba(255,255,255,0) 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, rgba(255,255,255,0) 75%, rgba(255,255,255,0));
}
// Reset filters for IE
@mixin reset-filter() {
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
}
// Mixin for generating button backgrounds
// ---------------------------------------
@mixin buttonBackground($startColor, $endColor) {
// gradientBar will set the background to a pleasing blend of these, to support IE<=9
@include gradientBar($startColor, $endColor);
@include reset-filter();
// in these cases the gradient won't cover the background, so we override
&:hover, &:active, &.active, &.disabled, &[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%) \9;
}
}
// COMPONENT MIXINS
// --------------------------------------------------
// POPOVER ARROWS
// -------------------------
// For tipsies and popovers
@mixin popoverArrowTop($arrowWidth: 5px) {
bottom: 0;
left: 50%;
margin-left: -$arrowWidth;
border-left: $arrowWidth solid transparent;
border-right: $arrowWidth solid transparent;
border-top: $arrowWidth solid $black;
}
@mixin popoverArrowLeft($arrowWidth: 5px) {
top: 50%;
right: 0;
margin-top: -$arrowWidth;
border-top: $arrowWidth solid transparent;
border-bottom: $arrowWidth solid transparent;
border-left: $arrowWidth solid $black;
}
@mixin popoverArrowBottom($arrowWidth: 5px) {
top: 0;
left: 50%;
margin-left: -$arrowWidth;
border-left: $arrowWidth solid transparent;
border-right: $arrowWidth solid transparent;
border-bottom: $arrowWidth solid $black;
}
@mixin popoverArrowRight($arrowWidth: 5px) {
top: 50%;
left: 0;
margin-top: -$arrowWidth;
border-top: $arrowWidth solid transparent;
border-bottom: $arrowWidth solid transparent;
border-right: $arrowWidth solid $black;
}

View File

@ -0,0 +1,83 @@
// MODALS
// ------
// Recalculate z-index where appropriate
.modal-open {
.dropdown-menu { z-index: $zindexDropdown + $zindexModal; }
.dropdown.open { *z-index: $zindexDropdown + $zindexModal; }
.popover { z-index: $zindexPopover + $zindexModal; }
.tooltip { z-index: $zindexTooltip + $zindexModal; }
}
// Background
.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 {
@include opacity(0.8);
}
// Base modal
.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 */
@include border-radius(6px);
@include box-shadow(0 3px 7px rgba(0,0,0,0.3));
@include background-clip(padding-box);
&.fade {
$transition: opacity .3s linear, top .3s ease-out;
@include transition($transition);
top: -25%;
}
&.fade.in { top: 50%; }
}
.modal-header {
padding: 9px 15px;
border-bottom: 1px solid #eee;
// Close icon
.close { margin-top: 2px; }
}
// Body (where all modal content resides)
.modal-body {
padding: 15px;
}
// Remove bottom margin if need be
.modal-body .modal-form {
margin-bottom: 0;
}
// Footer (for actions)
.modal-footer {
padding: 14px 15px 15px;
margin-bottom: 0;
background-color: #f5f5f5;
border-top: 1px solid #ddd;
@include border-radius(0 0 6px 6px);
@include box-shadow(inset 0 1px 0 $white);
@include clearfix();
.btn {
float: right;
margin-left: 5px;
margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs
}
}

View File

@ -0,0 +1,288 @@
// NAVBAR (FIXED AND STATIC)
// -------------------------
// COMMON STYLES
// -------------
.navbar {
overflow: visible;
margin-bottom: $baseLineHeight;
}
// Gradient is applied to it's own element because overflow visible is not honored by IE when filter is present
.navbar-inner {
padding-left: 20px;
padding-right: 20px;
@include gradient-vertical($navbarBackgroundHighlight, $navbarBackground);
@include border-radius(4px);
$shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);
@include box-shadow($shadow);
}
// Navbar button for toggling navbar items in responsive layouts
.btn-navbar {
display: none;
float: right;
padding: 7px 10px;
margin-left: 5px;
margin-right: 5px;
@include buttonBackground($navbarBackgroundHighlight, $navbarBackground);
$shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);
@include box-shadow($shadow);
}
.btn-navbar .icon-bar {
display: block;
width: 18px;
height: 2px;
background-color: #f5f5f5;
@include border-radius(1px);
@include box-shadow(0 1px 0 rgba(0,0,0,.25));
}
.btn-navbar .icon-bar + .icon-bar {
margin-top: 3px;
}
// Override the default collapsed state
.nav-collapse.collapse {
height: auto;
}
// Brand, links, text, and buttons
.navbar {
// Hover and active states
.brand:hover {
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
.navbar-text {
margin-bottom: 0;
line-height: 40px;
color: $navbarText;
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; // then undo the margin here so we don't accidentally double it
}
}
// Navbar forms
.navbar-form {
margin-bottom: 0; // remove default bottom margin
@include clearfix();
input, select {
display: inline-block;
margin-top: 5px;
margin-bottom: 0;
}
.radio, .checkbox {
margin-top: 5px;
}
input[type="image"], input[type="checkbox"], input[type="radio"] {
margin-top: 3px;
}
.input-append, .input-prepend {
margin-top: 6px;
white-space: nowrap; // prevents two items from separating within a .navbar-form that has .pull-left
input {
margin-top: 0; //remove the margin on top since it's on parent
}
}
}
// Navbar search
.navbar-search {
position: relative;
float: left;
margin-top: 6px;
margin-bottom: 0;
.search-query {
padding: 4px 9px;
@include font-sans-serif(13px, normal, 1);
color: $white;
color: rgba(255,255,255,.75);
background: #666;
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);
@include box-shadow($shadow);
@include transition(none);
// Placeholder text gets special styles; can't be bundled together though for some reason
@include placeholder($grayLighter);
// Hover states
&:hover {
color: $white;
background-color: $grayLight;
background-color: rgba(255,255,255,.5);
}
// Focus states (we use .focused since IE7-8 and down doesn't support :focus)
&:focus, &.focused {
padding: 5px 10px;
color: $grayDark;
text-shadow: 0 1px 0 $white;
background-color: $white;
border: 0;
@include box-shadow(0 0 3px rgba(0,0,0,.15));
outline: 0;
}
}
}
// FIXED NAVBAR
// ------------
.navbar-fixed-top {
position: fixed;
top: 0;
right: 0;
left: 0;
z-index: $zindexFixedNavbar;
}
.navbar-fixed-top .navbar-inner {
padding-left: 0;
padding-right: 0;
@include border-radius(0);
}
// 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: $navbarLinkColor;
text-decoration: none;
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
}
// Hover
.navbar .nav > li > a:hover {
background-color: $navbarLinkBackgroundHover; // "transparent" is default to differentiate :hover from :active
color: $navbarLinkColorHover;
text-decoration: none;
}
// Active nav items
.navbar .nav .active > a, .navbar .nav .active > a:hover {
color: $navbarLinkColorHover;
text-decoration: none;
background-color: $navbarBackground;
}
// Dividers (basically a vertical hr)
.navbar .divider-vertical {
height: $navbarHeight;
width: 1px;
margin: 0 9px;
overflow: hidden;
background-color: $navbarBackground;
border-right: 1px solid $navbarBackgroundHighlight;
}
// 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;
@include 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 {
@include opacity(1);
}
// 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 {
left: auto;
right: 0;
&:before {
left: auto;
right: 12px;
}
&:after {
left: auto;
right: 13px;
}
}

View File

@ -0,0 +1,329 @@
// 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 headers (for dropdowns and lists)
.nav .nav-header {
display: block;
padding: 3px 15px;
font-size: 11px;
font-weight: bold;
line-height: $baseLineHeight;
color: $grayLight;
text-shadow: 0 1px 0 rgba(255,255,255,.5);
text-transform: uppercase;
}
// Space them out when they follow another list item (link)
.nav li + .nav-header {
margin-top: 9px;
}
// NAV LIST
// --------
.nav-list {
padding-left: 14px;
padding-right: 14px;
margin-bottom: 0;
}
.nav-list > li > a, .nav-list .nav-header {
margin-left: -15px;
margin-right: -15px;
text-shadow: 0 1px 0 rgba(255,255,255,.5);
}
.nav-list > li > a {
padding: 3px 15px;
}
.nav-list .active > a, .nav-list .active > a:hover {
color: $white;
text-shadow: 0 -1px 0 rgba(0,0,0,.2);
background-color: $linkColor;
}
.nav-list [class^="icon-"] {
margin-right: 2px;
}
// TABS AND PILLS
// -------------
// Common styles
.nav-tabs, .nav-pills {
@include clearfix();
}
.nav-tabs > li, .nav-pills > li {
float: left;
}
.nav-tabs > li > a, .nav-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
.nav-tabs {
border-bottom: 1px solid #ddd;
}
// Make the list-items overlay the bottom border
.nav-tabs > li {
margin-bottom: -1px;
}
// Actual tabs (as links)
.nav-tabs > li > a {
padding-top: 9px;
padding-bottom: 9px;
border: 1px solid transparent;
@include border-radius(4px 4px 0 0);
&:hover {
border-color: $grayLighter $grayLighter #ddd;
}
}
// Active state, and it's :hover to override normal :hover
.nav-tabs > .active > a, .nav-tabs > .active > a:hover {
color: $gray;
background-color: $white;
border: 1px solid #ddd;
border-bottom-color: transparent;
cursor: default;
}
// PILLS
// -----
// Links rendered as pills
.nav-pills > li > a {
padding-top: 8px;
padding-bottom: 8px;
margin-top: 2px;
margin-bottom: 2px;
@include border-radius(5px);
}
// Active state
.nav-pills .active > a, .nav-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
.nav-tabs.nav-stacked {
border-bottom: 0;
}
.nav-tabs.nav-stacked > li > a {
border: 1px solid #ddd;
@include border-radius(0);
}
.nav-tabs.nav-stacked > li:first-child > a {
@include border-radius(4px 4px 0 0);
}
.nav-tabs.nav-stacked > li:last-child > a {
@include border-radius(0 0 4px 4px);
}
.nav-tabs.nav-stacked > li > a:hover {
border-color: #ddd;
z-index: 2;
}
// Pills
.nav-pills.nav-stacked > li > a {
margin-bottom: 3px;
}
.nav-pills.nav-stacked > li:last-child > a {
margin-bottom: 1px; // decrease margin to match sizing of stacked tabs
}
// DROPDOWNS
// ---------
// Position the menu
.nav-tabs .dropdown-menu, .nav-pills .dropdown-menu {
margin-top: 1px;
border-width: 1px;
}
.nav-pills .dropdown-menu {
@include border-radius(4px);
}
// Default dropdown links
// -------------------------
// Make carets use linkColor to start
.nav-tabs .dropdown-toggle .caret, .nav-pills .dropdown-toggle .caret {
border-top-color: $linkColor;
margin-top: 6px;
}
.nav-tabs .dropdown-toggle:hover .caret, .nav-pills .dropdown-toggle:hover .caret {
border-top-color: $linkColorHover;
}
// Active dropdown links
// -------------------------
.nav-tabs .active .dropdown-toggle .caret, .nav-pills .active .dropdown-toggle .caret {
border-top-color: $grayDark;
}
// Active:hover dropdown links
// -------------------------
.nav > .dropdown.active > a:hover {
color: $black;
cursor: pointer;
}
// Open dropdowns
// -------------------------
.nav-tabs .open .dropdown-toggle, .nav-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;
@include opacity(1);
}
// Dropdowns in stacked tabs
.tabs-stacked .open > a:hover {
border-color: $grayLight;
}
// TABBABLE
// --------
// COMMON STYLES
// -------------
// Clear any floats
.tabbable {
@include clearfix();
}
.tab-content {
overflow: hidden; // prevent content from running below tabs
}
// Remove border on bottom, left, right
.tabs-below .nav-tabs, .tabs-right .nav-tabs, .tabs-left .nav-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 .nav-tabs {
border-top: 1px solid #ddd;
}
.tabs-below .nav-tabs > li {
margin-top: -1px;
margin-bottom: 0;
}
.tabs-below .nav-tabs > li > a {
@include border-radius(0 0 4px 4px);
&:hover {
border-bottom-color: transparent;
border-top-color: #ddd;
}
}
.tabs-below .nav-tabs .active > a, .tabs-below .nav-tabs .active > a:hover {
border-color: transparent #ddd #ddd #ddd;
}
// LEFT & RIGHT
// ------------
// Common styles
.tabs-left .nav-tabs > li, .tabs-right .nav-tabs > li {
float: none;
}
.tabs-left .nav-tabs > li > a, .tabs-right .nav-tabs > li > a {
min-width: 74px;
margin-right: 0;
margin-bottom: 3px;
}
// Tabs on the left
.tabs-left .nav-tabs {
float: left;
margin-right: 19px;
border-right: 1px solid #ddd;
}
.tabs-left .nav-tabs > li > a {
margin-right: -1px;
@include border-radius(4px 0 0 4px);
}
.tabs-left .nav-tabs > li > a:hover {
border-color: $grayLighter #ddd $grayLighter $grayLighter;
}
.tabs-left .nav-tabs .active > a, .tabs-left .nav-tabs .active > a:hover {
border-color: #ddd transparent #ddd #ddd;
*border-right-color: $white;
}
// Tabs on the right
.tabs-right .nav-tabs {
float: right;
margin-left: 19px;
border-left: 1px solid #ddd;
}
.tabs-right .nav-tabs > li > a {
margin-left: -1px;
@include border-radius(0 4px 4px 0);
}
.tabs-right .nav-tabs > li > a:hover {
border-color: $grayLighter $grayLighter $grayLighter #ddd;
}
.tabs-right .nav-tabs .active > a, .tabs-right .nav-tabs .active > a:hover {
border-color: #ddd #ddd #ddd transparent;
*border-left-color: $white;
}

View File

@ -0,0 +1,30 @@
// PAGER
// -----
.pager {
margin-left: 0;
margin-bottom: $baseLineHeight;
list-style: none;
text-align: center;
@include clearfix();
}
.pager li {
display: inline;
}
.pager a {
display: inline-block;
padding: 5px 14px;
background-color: #fff;
border: 1px solid #ddd;
@include border-radius(15px);
}
.pager a:hover {
text-decoration: none;
background-color: #f5f5f5;
}
.pager .next a {
float: right;
}
.pager .previous a {
float: left;
}

View File

@ -0,0 +1,53 @@
// PAGINATION
// ----------
.pagination {
height: $baseLineHeight * 2;
margin: $baseLineHeight 0;
}
.pagination ul {
display: inline-block;
@include ie7-inline-block();
margin-left: 0;
margin-bottom: 0;
@include border-radius(3px);
@include 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;
cursor: default;
}
.pagination .disabled a, .pagination .disabled a:hover {
color: $grayLight;
background-color: transparent;
cursor: default;
}
.pagination li:first-child a {
border-left-width: 1px;
@include border-radius(3px 0 0 3px);
}
.pagination li:last-child a {
@include border-radius(0 3px 3px 0);
}
// Centered
.pagination-centered {
text-align: center;
}
.pagination-right {
text-align: right;
}

View 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 { @include popoverArrowTop(); }
&.right .arrow { @include popoverArrowRight(); }
&.bottom .arrow { @include popoverArrowBottom(); }
&.left .arrow { @include popoverArrowLeft(); }
.arrow {
position: absolute;
width: 0;
height: 0;
}
}
.popover-inner {
padding: 3px;
width: 280px;
overflow: hidden;
background: $black; // has to be full background declaration for IE fallback
background: rgba(0,0,0,.8);
@include border-radius(6px);
@include box-shadow(0 3px 7px rgba(0,0,0,0.3));
}
.popover-title {
padding: 9px 15px;
line-height: 1;
background-color: #f5f5f5;
border-bottom:1px solid #eee;
@include border-radius(3px 3px 0 0);
}
.popover-content {
padding: 14px;
background-color: $white;
@include border-radius(0 0 3px 3px);
@include background-clip(padding-box);
p, ul, ol {
margin-bottom: 0;
}
}

View File

@ -0,0 +1,95 @@
// PROGRESS BARS
// -------------
// ANIMATIONS
// ----------
// Webkit
@-webkit-keyframes progress-bar-stripes {
from { background-position: 0 0; }
to { background-position: 40px 0; }
}
// Firefox
@-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
// --------
// Outer container
.progress {
overflow: hidden;
height: 18px;
margin-bottom: 18px;
@include gradient-vertical(#f5f5f5, #f9f9f9);
@include box-shadow(inset 0 1px 2px rgba(0,0,0,.1));
@include border-radius(4px);
}
// 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);
@include gradient-vertical(#149bdf, #0480be);
@include box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
@include box-sizing(border-box);
@include transition(width .6s ease);
}
// Striped bars
.progress-striped .bar {
@include gradient-striped(#62c462);
@include 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 {
@include gradient-vertical(#ee5f5b, #c43c35);
}
.progress-danger.progress-striped .bar {
@include gradient-striped(#ee5f5b);
}
// Success (green)
.progress-success .bar {
@include gradient-vertical(#62c462, #57a957);
}
.progress-success.progress-striped .bar {
@include gradient-striped(#62c462);
}
// Info (teal)
.progress-info .bar {
@include gradient-vertical(#5bc0de, #339bb9);
}
.progress-info.progress-striped .bar {
@include gradient-striped(#5bc0de);
}

View File

@ -0,0 +1,105 @@
// Reset.css.scss
// 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 {
@include tab-focus();
}
// 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 clickable 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
}

View 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: $textColor;
background-color: $white;
}
// LINKS
// -----
a {
color: $linkColor;
text-decoration: none;
}
a:hover {
color: $linkColorHover;
text-decoration: underline;
}

View File

@ -0,0 +1,157 @@
// SPRITES
// Glyphs and icons for buttons, nav, and more
// -------------------------------------------
// ICONS
// -----
// All icons receive the styles of the <i> tag with a base class
// of .i and are then given a unique class to add width, height,
// and background-position. Your resulting HTML will look like
// <i class="icon-inbox"></i>.
// For the white version of the icons, just add the .icon-white class:
// <i class="icon-inbox icon-white"></i>
[class^="icon-"], [class*=" icon-"] {
display: inline-block;
width: 14px;
height: 14px;
line-height: 14px;
vertical-align: text-top;
background-image: asset-url("glyphicons-halflings.png", image);
background-position: 14px 14px;
background-repeat: no-repeat;
@include ie7-restore-right-whitespace();
}
.icon-white {
background-image: asset-url("glyphicons-halflings-white.png", image);
}
.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-list-alt { background-position: -264px -24px; }
.icon-lock { background-position: -287px -24px; } // 1px off
.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: -25px -48px; } // 1px off
.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: -167px -48px; } // 1px off
.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-plus-sign { background-position: 0 -96px; }
.icon-minus-sign { background-position: -24px -96px; }
.icon-remove-sign { background-position: -48px -96px; }
.icon-ok-sign { background-position: -72px -96px; }
.icon-question-sign { background-position: -96px -96px; }
.icon-info-sign { background-position: -120px -96px; }
.icon-screenshot { background-position: -144px -96px; }
.icon-remove-circle { background-position: -168px -96px; }
.icon-ok-circle { background-position: -192px -96px; }
.icon-ban-circle { background-position: -216px -96px; }
.icon-arrow-left { background-position: -240px -96px; }
.icon-arrow-right { background-position: -264px -96px; }
.icon-arrow-up { background-position: -289px -96px; } // 1px off
.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: -433px -96px; }
.icon-asterisk { background-position: -456px -96px; }
.icon-exclamation-sign { background-position: 0 -120px; }
.icon-gift { background-position: -24px -120px; }
.icon-leaf { background-position: -48px -120px; }
.icon-fire { background-position: -72px -120px; }
.icon-eye-open { background-position: -96px -120px; }
.icon-eye-close { background-position: -120px -120px; }
.icon-warning-sign { background-position: -144px -120px; }
.icon-plane { background-position: -168px -120px; }
.icon-calendar { background-position: -192px -120px; }
.icon-random { background-position: -216px -120px; }
.icon-comment { background-position: -240px -120px; }
.icon-magnet { background-position: -264px -120px; }
.icon-chevron-up { background-position: -288px -120px; }
.icon-chevron-down { background-position: -313px -119px; } // 1px off
.icon-retweet { background-position: -336px -120px; }
.icon-shopping-cart { background-position: -360px -120px; }
.icon-folder-close { background-position: -384px -120px; }
.icon-folder-open { background-position: -408px -120px; }
.icon-resize-vertical { background-position: -432px -119px; }
.icon-resize-horizontal { background-position: -456px -118px; }

View File

@ -0,0 +1,126 @@
//
// 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;
vertical-align: top;
border-top: 1px solid #ddd;
}
th {
font-weight: bold;
}
// Bottom align for column headings
thead th {
vertical-align: bottom;
}
// 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-collapse: collapsed; // IE7 can't round corners anyway
@include 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 {
@include border-radius(4px 0 0 0);
}
thead:first-child tr:first-child th:last-child, tbody:first-child tr:first-child td:last-child {
@include 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 {
@include border-radius(0 0 0 4px);
}
thead:last-child tr:last-child th:last-child, tbody:last-child tr:last-child td:last-child {
@include 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;
}
}
}
// HOVER EFFECT
// ------------
// Placed here since it has to come after the potential zebra striping
.table {
tbody tr:hover td, tbody tr:hover th {
background-color: #f5f5f5;
}
}
// TABLE CELL SIZING
// -----------------
// Change the columns
@mixin tableColumns($columnSpan: 1) {
float: none;
width: (($gridColumnWidth) * $columnSpan) + ($gridGutterWidth * ($columnSpan - 1)) - 16;
margin-left: 0;
}
table {
@for $i from 1 through $gridColumns {
.span#{$i} { @include tableColumns($i); }
}
}

View File

@ -0,0 +1,35 @@
// THUMBNAILS
// ----------
.thumbnails {
margin-left: -$gridGutterWidth;
list-style: none;
@include clearfix();
}
.thumbnails > li {
float: left;
margin: 0 0 $baseLineHeight $gridGutterWidth;
}
.thumbnail {
display: block;
padding: 4px;
line-height: 1;
border: 1px solid #ddd;
@include border-radius(4px);
@include box-shadow(0 1px 1px rgba(0,0,0,.075));
}
// Add a hover state for linked versions only
a.thumbnail:hover {
border-color: $linkColor;
@include box-shadow(0 1px 4px rgba(0,105,214,.25));
}
// Images and captions
.thumbnail > img {
display: block;
max-width: 100%;
margin-left: auto;
margin-right: auto;
}
.thumbnail .caption {
padding: 9px;
}

View File

@ -0,0 +1,35 @@
// TOOLTIP
// ------=
.tooltip {
position: absolute;
z-index: $zindexTooltip;
display: block;
visibility: visible;
padding: 5px;
font-size: 11px;
@include opacity(0);
&.in { @include opacity(0.8); }
&.top { margin-top: -2px; }
&.right { margin-left: 2px; }
&.bottom { margin-top: 2px; }
&.left { margin-left: -2px; }
&.top .tooltip-arrow { @include popoverArrowTop(); }
&.left .tooltip-arrow { @include popoverArrowLeft(); }
&.bottom .tooltip-arrow { @include popoverArrowBottom(); }
&.right .tooltip-arrow { @include popoverArrowRight(); }
}
.tooltip-inner {
max-width: 200px;
padding: 3px 8px;
color: $white;
text-align: center;
text-decoration: none;
background-color: $black;
@include border-radius(4px);
}
.tooltip-arrow {
position: absolute;
width: 0;
height: 0;
}

View File

@ -0,0 +1,209 @@
// 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;
}
// Page header
.page-header {
padding-bottom: $baseLineHeight - 1;
margin: $baseLineHeight 0;
border-bottom: 1px solid $grayLighter;
}
.page-header h1 {
line-height: 1;
}
// 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, ol.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 $hrBorder;
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;
@include 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;
}

View 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;
}

View File

@ -0,0 +1,103 @@
// Variables.less
// Variables to customize the look and feel of Bootstrap
// -----------------------------------------------------
// GLOBAL VALUES
// --------------------------------------------------
// Links
$linkColor: #08c !default;
$linkColorHover: darken($linkColor, 15%) !default;
// Grays
$black: #000 !default;
$grayDarker: #222 !default;
$grayDark: #333 !default;
$gray: #555 !default;
$grayLight: #999 !default;
$grayLighter: #eee !default;
$white: #fff !default;
// Accent colors
$blue: #049cdb !default;
$blueDark: #0064cd !default;
$green: #46a546 !default;
$red: #9d261d !default;
$yellow: #ffc40d !default;
$orange: #f89406 !default;
$pink: #c3325f !default;
$purple: #7a43b6 !default;
// Typography
$baseFontSize: 13px !default;
$baseFontFamily: "Helvetica Neue", Helvetica, Arial, sans-serif !default;
$baseLineHeight: 18px !default;
$textColor: $grayDark !default;
// Buttons
$primaryButtonBackground: $linkColor !default;
// 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 !default;
// HR border color
$hrBorder: $grayLighter !default;
// Navbar
$navbarHeight: 40px !default;
$navbarBackground: $grayDarker !default;
$navbarBackgroundHighlight: $grayDark !default;
$navbarLinkBackgroundHover: transparent !default;
$navbarText: $grayLight !default;
$navbarLinkColor: $grayLight !default;
$navbarLinkColorHover: $white !default;
// Form states and alerts
$warningText: #c09853 !default;
$warningBackground: #fcf8e3 !default;
$warningBorder: darken(adjust-hue($warningBackground, -10), 3%) !default;
$errorText: #b94a48 !default;
$errorBackground: #f2dede !default;
$errorBorder: darken(adjust-hue($errorBackground, -10), 3%) !default;
$successText: #468847 !default;
$successBackground: #dff0d8 !default;
$successBorder: darken(adjust-hue($successBackground, -10), 5%) !default;
$infoText: #3a87ad !default;
$infoBackground: #d9edf7 !default;
$infoBorder: darken(adjust-hue($infoBackground, -10), 7%) !default;
// GRID
// --------------------------------------------------
// Default 940px grid
$gridColumns: 12 !default;
$gridColumnWidth: 60px !default;
$gridGutterWidth: 20px !default;
$gridRowWidth: ($gridColumns * $gridColumnWidth) + ($gridGutterWidth * ($gridColumns - 1)) !default;
// Fluid grid
$fluidGridColumnWidth: 6.382978723% !default;
$fluidGridGutterWidth: 2.127659574% !default;

View 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);
@include border-radius(4px);
@include box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
blockquote {
border-color: #ddd;
border-color: rgba(0,0,0,.15);
}
}