Upgrade to Bootstrap 3.1

This commit is contained in:
Sahat Yalkabov
2014-01-30 20:23:56 -05:00
parent 6557f72d99
commit 275be06fa3
35 changed files with 1810 additions and 1287 deletions

View File

@ -22,6 +22,16 @@
&:empty { &:empty {
display: none; display: none;
} }
// Quick fix for badges in buttons
.btn & {
position: relative;
top: -1px;
}
.btn-xs & {
top: 0;
padding: 1px 5px;
}
} }
// Hover state, but only for links // Hover state, but only for links
@ -34,12 +44,6 @@ a.badge {
} }
} }
// Quick fix for labels/badges in buttons
.btn .badge {
position: relative;
top: -1px;
}
// Account for counters in navs // Account for counters in navs
a.list-group-item.active > .badge, a.list-group-item.active > .badge,
.nav-pills > .active > a > .badge { .nav-pills > .active > a > .badge {

View File

@ -1,48 +1,49 @@
// Core variables and mixins // Core variables and mixins
@import "variables"; @import "variables.less";
@import "mixins"; @import "mixins.less";
// Reset // Reset
@import "normalize"; @import "normalize.less";
@import "print"; @import "print.less";
// Core CSS // Core CSS
@import "scaffolding"; @import "scaffolding.less";
@import "type"; @import "type.less";
@import "code"; @import "code.less";
@import "grid"; @import "grid.less";
@import "tables"; @import "tables.less";
@import "forms"; @import "forms.less";
@import "buttons"; @import "buttons.less";
// Components // Components
@import "component-animations"; @import "component-animations.less";
@import "dropdowns"; @import "glyphicons.less";
@import "button-groups"; @import "dropdowns.less";
@import "input-groups"; @import "button-groups.less";
@import "navs"; @import "input-groups.less";
@import "navbar"; @import "navs.less";
@import "breadcrumbs"; @import "navbar.less";
@import "pagination"; @import "breadcrumbs.less";
@import "pager"; @import "pagination.less";
@import "labels"; @import "pager.less";
@import "badges"; @import "labels.less";
@import "jumbotron"; @import "badges.less";
@import "thumbnails"; @import "jumbotron.less";
@import "alerts"; @import "thumbnails.less";
@import "progress-bars"; @import "alerts.less";
@import "media"; @import "progress-bars.less";
@import "list-group"; @import "media.less";
@import "panels"; @import "list-group.less";
@import "wells"; @import "panels.less";
@import "close"; @import "wells.less";
@import "close.less";
// Components w/ JavaScript // Components w/ JavaScript
@import "modals"; @import "modals.less";
@import "tooltip"; @import "tooltip.less";
@import "popovers"; @import "popovers.less";
@import "carousel"; @import "carousel.less";
// Utility classes // Utility classes
@import "utilities"; @import "utilities.less";
@import "responsive-utilities"; @import "responsive-utilities.less";

View File

@ -4,19 +4,22 @@
.breadcrumb { .breadcrumb {
padding: 8px 15px; padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;
margin-bottom: @line-height-computed; margin-bottom: @line-height-computed;
list-style: none; list-style: none;
background-color: @breadcrumb-bg; background-color: @breadcrumb-bg;
border-radius: @border-radius-base; border-radius: @border-radius-base;
> li { > li {
display: inline-block; display: inline-block;
+ li:before { + li:before {
content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space
padding: 0 5px; padding: 0 5px;
color: @breadcrumb-color; color: @breadcrumb-color;
} }
} }
> .active { > .active {
color: @breadcrumb-active-color; color: @breadcrumb-active-color;
} }

View File

@ -2,37 +2,6 @@
// Button groups // Button groups
// -------------------------------------------------- // --------------------------------------------------
// Button carets
//
// Match the button text color to the arrow/caret for indicating dropdown-ness.
.caret {
.btn-default & {
border-top-color: @btn-default-color;
}
.btn-primary &,
.btn-success &,
.btn-warning &,
.btn-danger &,
.btn-info & {
border-top-color: #fff;
}
}
.dropup {
.btn-default .caret {
border-bottom-color: @btn-default-color;
}
.btn-primary,
.btn-success,
.btn-warning,
.btn-danger,
.btn-info {
.caret {
border-bottom-color: #fff;
}
}
}
// Make the div behave like a button // Make the div behave like a button
.btn-group, .btn-group,
.btn-group-vertical { .btn-group-vertical {
@ -68,18 +37,17 @@
// Optional: Group multiple button groups together for a toolbar // Optional: Group multiple button groups together for a toolbar
.btn-toolbar { .btn-toolbar {
.clearfix(); margin-left: -5px; // Offset the first child's margin
&:extend(.clearfix all);
.btn-group { .btn-group,
.input-group {
float: left; float: left;
} }
// Space out series of button groups
> .btn, > .btn,
> .btn-group { > .btn-group,
+ .btn, > .input-group {
+ .btn-group { margin-left: 5px;
margin-left: 5px;
}
} }
} }
@ -178,7 +146,8 @@
.btn-group-vertical { .btn-group-vertical {
> .btn, > .btn,
> .btn-group { > .btn-group,
> .btn-group > .btn {
display: block; display: block;
float: none; float: none;
width: 100%; width: 100%;
@ -187,7 +156,7 @@
// Clear floats so dropdown menus can be properly placed // Clear floats so dropdown menus can be properly placed
> .btn-group { > .btn-group {
.clearfix(); &:extend(.clearfix all);
> .btn { > .btn {
float: none; float: none;
} }
@ -218,13 +187,13 @@
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
border-radius: 0; border-radius: 0;
} }
.btn-group-vertical > .btn-group:first-child { .btn-group-vertical > .btn-group:first-child:not(:last-child) {
> .btn:last-child, > .btn:last-child,
> .dropdown-toggle { > .dropdown-toggle {
.border-bottom-radius(0); .border-bottom-radius(0);
} }
} }
.btn-group-vertical > .btn-group:last-child > .btn:first-child { .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
.border-top-radius(0); .border-top-radius(0);
} }
@ -238,11 +207,15 @@
width: 100%; width: 100%;
table-layout: fixed; table-layout: fixed;
border-collapse: separate; border-collapse: separate;
.btn { > .btn,
> .btn-group {
float: none; float: none;
display: table-cell; display: table-cell;
width: 1%; width: 1%;
} }
> .btn-group .btn {
width: 100%;
}
} }

View File

@ -6,7 +6,6 @@
// Base styles // Base styles
// -------------------------------------------------- // --------------------------------------------------
// Core styles
.btn { .btn {
display: inline-block; display: inline-block;
margin-bottom: 0; // For input.btn margin-bottom: 0; // For input.btn
@ -45,7 +44,6 @@
.opacity(.65); .opacity(.65);
.box-shadow(none); .box-shadow(none);
} }
} }
@ -58,14 +56,6 @@
.btn-primary { .btn-primary {
.button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border); .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border);
} }
// Warning appears as orange
.btn-warning {
.button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border);
}
// Danger and error appear as red
.btn-danger {
.button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border);
}
// Success appears as green // Success appears as green
.btn-success { .btn-success {
.button-variant(@btn-success-color; @btn-success-bg; @btn-success-border); .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border);
@ -74,6 +64,14 @@
.btn-info { .btn-info {
.button-variant(@btn-info-color; @btn-info-bg; @btn-info-border); .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border);
} }
// Warning appears as orange
.btn-warning {
.button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border);
}
// Danger and error appear as red
.btn-danger {
.button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border);
}
// Link buttons // Link buttons
@ -123,13 +121,12 @@
// line-height: ensure even-numbered height of button next to large input // line-height: ensure even-numbered height of button next to large input
.button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large); .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);
} }
.btn-sm, .btn-sm {
.btn-xs {
// line-height: ensure proper height of button next to small input // line-height: ensure proper height of button next to small input
.button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small); .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);
} }
.btn-xs { .btn-xs {
padding: 1px 5px; .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @border-radius-small);
} }

View File

@ -91,6 +91,7 @@
// Hover/focus state // Hover/focus state
&:hover, &:hover,
&:focus { &:focus {
outline: none;
color: @carousel-control-color; color: @carousel-control-color;
text-decoration: none; text-decoration: none;
.opacity(.9); .opacity(.9);

View File

@ -21,6 +21,16 @@ code {
border-radius: @border-radius-base; border-radius: @border-radius-base;
} }
// User input typically entered via keyboard
kbd {
padding: 2px 4px;
font-size: 90%;
color: @kbd-color;
background-color: @kbd-bg;
border-radius: @border-radius-small;
box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
}
// Blocks of code // Blocks of code
pre { pre {
display: block; display: block;

View File

@ -10,12 +10,9 @@
height: 0; height: 0;
margin-left: 2px; margin-left: 2px;
vertical-align: middle; vertical-align: middle;
border-top: @caret-width-base solid @dropdown-caret-color; border-top: @caret-width-base solid;
border-right: @caret-width-base solid transparent; border-right: @caret-width-base solid transparent;
border-left: @caret-width-base solid transparent; border-left: @caret-width-base solid transparent;
// Firefox fix for https://github.com/twbs/bootstrap/issues/9538. Once fixed,
// we can just straight up remove this.
border-bottom: 0 dotted;
} }
// The dropdown wrapper (div) // The dropdown wrapper (div)
@ -49,6 +46,8 @@
background-clip: padding-box; background-clip: padding-box;
// Aligns the dropdown menu to right // Aligns the dropdown menu to right
//
// Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`
&.pull-right { &.pull-right {
right: 0; right: 0;
left: auto; left: auto;
@ -129,6 +128,25 @@
} }
} }
// Menu positioning
//
// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown
// menu with the parent.
.dropdown-menu-right {
left: auto; // Reset the default from `.dropdown-menu`
right: 0;
}
// With v3, we enabled auto-flipping if you have a dropdown within a right
// aligned nav component. To enable the undoing of that, we provide an override
// to restore the default dropdown menu alignment.
//
// This is only for left-aligning a dropdown menu within a `.navbar-right` or
// `.pull-right` nav component.
.dropdown-menu-left {
left: 0;
right: auto;
}
// Dropdown section headers // Dropdown section headers
.dropdown-header { .dropdown-header {
display: block; display: block;
@ -145,7 +163,7 @@
right: 0; right: 0;
bottom: 0; bottom: 0;
top: 0; top: 0;
z-index: @zindex-dropdown - 10; z-index: (@zindex-dropdown - 10);
} }
// Right aligned dropdowns // Right aligned dropdowns
@ -163,10 +181,8 @@
.navbar-fixed-bottom .dropdown { .navbar-fixed-bottom .dropdown {
// Reverse the caret // Reverse the caret
.caret { .caret {
// Firefox fix for https://github.com/twbs/bootstrap/issues/9538. Once this border-top: 0;
// gets fixed, restore `border-top: 0;`. border-bottom: @caret-width-base solid;
border-top: 0 dotted;
border-bottom: @caret-width-base solid @dropdown-caret-color;
content: ""; content: "";
} }
// Different positioning for bottom up menu // Different positioning for bottom up menu
@ -185,7 +201,12 @@
@media (min-width: @grid-float-breakpoint) { @media (min-width: @grid-float-breakpoint) {
.navbar-right { .navbar-right {
.dropdown-menu { .dropdown-menu {
.pull-right > .dropdown-menu(); .dropdown-menu-right();
}
// Necessary for overrides of the default right aligned menu.
// Will remove come v4 in all likelihood.
.dropdown-menu-left {
.dropdown-menu-left();
} }
} }
} }

View File

@ -11,6 +11,10 @@ fieldset {
padding: 0; padding: 0;
margin: 0; margin: 0;
border: 0; border: 0;
// Chrome and Firefox set a `min-width: -webkit-min-content;` on fieldsets,
// so we reset that to ensure it behaves more like a standard block element.
// See https://github.com/twbs/bootstrap/issues/12359.
min-width: 0;
} }
legend { legend {
@ -33,6 +37,10 @@ label {
// Normalize form controls // Normalize form controls
//
// While most of our form styles require extra classes, some basic normalization
// is required to ensure optimum display with or without those classes to better
// address browser inconsistencies.
// Override content-box in Normalize (* isn't specific enough) // Override content-box in Normalize (* isn't specific enough)
input[type="search"] { input[type="search"] {
@ -47,41 +55,30 @@ input[type="checkbox"] {
line-height: normal; line-height: normal;
} }
// Set the height of select and file controls to match text inputs // Set the height of file controls to match text inputs
input[type="file"] { input[type="file"] {
display: block; display: block;
} }
// Make range inputs behave like textual form controls
input[type="range"] {
display: block;
width: 100%;
}
// Make multiple select elements height not fixed // Make multiple select elements height not fixed
select[multiple], select[multiple],
select[size] { select[size] {
height: auto; height: auto;
} }
// Fix optgroup Firefox bug per https://github.com/twbs/bootstrap/issues/7611 // Focus for file, radio, and checkbox
select optgroup {
font-size: inherit;
font-style: inherit;
font-family: inherit;
}
// Focus for select, file, radio, and checkbox
input[type="file"]:focus, input[type="file"]:focus,
input[type="radio"]:focus, input[type="radio"]:focus,
input[type="checkbox"]:focus { input[type="checkbox"]:focus {
.tab-focus(); .tab-focus();
} }
// Fix for Chrome number input
// Setting certain font-sizes causes the `I` bar to appear on hover of the bottom increment button.
// See https://github.com/twbs/bootstrap/issues/8350 for more.
input[type="number"] {
&::-webkit-outer-spin-button,
&::-webkit-inner-spin-button {
height: auto;
}
}
// Adjust output element // Adjust output element
output { output {
display: block; display: block;
@ -89,7 +86,6 @@ output {
font-size: @font-size-base; font-size: @font-size-base;
line-height: @line-height-base; line-height: @line-height-base;
color: @input-color; color: @input-color;
vertical-align: middle;
} }
@ -123,7 +119,6 @@ output {
font-size: @font-size-base; font-size: @font-size-base;
line-height: @line-height-base; line-height: @line-height-base;
color: @input-color; color: @input-color;
vertical-align: middle;
background-color: @input-bg; background-color: @input-bg;
background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
border: 1px solid @input-border; border: 1px solid @input-border;
@ -135,9 +130,6 @@ output {
.form-control-focus(); .form-control-focus();
// Placeholder // Placeholder
//
// Placeholder text gets special styles because when browsers invalidate entire
// lines if it doesn't understand a selector/
.placeholder(); .placeholder();
// Disabled and read-only inputs // Disabled and read-only inputs
@ -149,6 +141,7 @@ output {
fieldset[disabled] & { fieldset[disabled] & {
cursor: not-allowed; cursor: not-allowed;
background-color: @input-bg-disabled; background-color: @input-bg-disabled;
opacity: 1; // iOS fix for unreadable disabled content
} }
// Reset height for `textarea`s // Reset height for `textarea`s
@ -157,6 +150,14 @@ output {
} }
} }
// Special styles for iOS date input
//
// In Mobile Safari, date inputs require a pixel line-height that matches the
// given height of the input.
input[type="date"] {
line-height: @input-height-base;
}
// Form groups // Form groups
// //
@ -179,10 +180,8 @@ output {
margin-top: 10px; margin-top: 10px;
margin-bottom: 10px; margin-bottom: 10px;
padding-left: 20px; padding-left: 20px;
vertical-align: middle;
label { label {
display: inline; display: inline;
margin-bottom: 0;
font-weight: normal; font-weight: normal;
cursor: pointer; cursor: pointer;
} }
@ -230,7 +229,12 @@ input[type="checkbox"],
} }
} }
// Form control sizing // Form control sizing
//
// Build on `.form-control` with modifier classes to decrease or increase the
// height and font-size of form controls.
.input-sm { .input-sm {
.input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small); .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);
} }
@ -244,18 +248,38 @@ input[type="checkbox"],
// //
// Apply contextual and semantic states to individual form controls. // Apply contextual and semantic states to individual form controls.
// Warning .has-feedback {
// Enable absolute positioning
position: relative;
// Ensure icons don't overlap text
.form-control {
padding-right: (@input-height-base * 1.25);
}
// Feedback icon (requires .glyphicon classes)
.form-control-feedback {
position: absolute;
top: (@line-height-computed + 5); // Height of the `label` and its margin
right: 0;
display: block;
width: @input-height-base;
height: @input-height-base;
line-height: @input-height-base;
text-align: center;
}
}
// Feedback states
.has-success {
.form-control-validation(@state-success-text; @state-success-text; @state-success-bg);
}
.has-warning { .has-warning {
.form-control-validation(@state-warning-text; @state-warning-text; @state-warning-bg); .form-control-validation(@state-warning-text; @state-warning-text; @state-warning-bg);
} }
// Error
.has-error { .has-error {
.form-control-validation(@state-danger-text; @state-danger-text; @state-danger-bg); .form-control-validation(@state-danger-text; @state-danger-text; @state-danger-bg);
} }
// Success
.has-success {
.form-control-validation(@state-success-text; @state-success-text; @state-success-bg);
}
// Static form control text // Static form control text
@ -296,9 +320,9 @@ input[type="checkbox"],
.form-inline { .form-inline {
// Kick in the inline // Kick in the inline
@media (min-width: @screen-sm) { @media (min-width: @screen-sm-min) {
// Inline-block all the things for "inline" // Inline-block all the things for "inline"
.form-group { .form-group {
display: inline-block; display: inline-block;
margin-bottom: 0; margin-bottom: 0;
vertical-align: middle; vertical-align: middle;
@ -307,6 +331,13 @@ input[type="checkbox"],
// In navbar-form, allow folks to *not* use `.form-group` // In navbar-form, allow folks to *not* use `.form-group`
.form-control { .form-control {
display: inline-block; display: inline-block;
width: auto; // Prevent labels from stacking above inputs in `.form-group`
vertical-align: middle;
}
.control-label {
margin-bottom: 0;
vertical-align: middle;
} }
// Remove default margin on radios/checkboxes that were used for stacking, and // Remove default margin on radios/checkboxes that were used for stacking, and
@ -318,12 +349,21 @@ input[type="checkbox"],
margin-top: 0; margin-top: 0;
margin-bottom: 0; margin-bottom: 0;
padding-left: 0; padding-left: 0;
vertical-align: middle;
} }
.radio input[type="radio"], .radio input[type="radio"],
.checkbox input[type="checkbox"] { .checkbox input[type="checkbox"] {
float: none; float: none;
margin-left: 0; margin-left: 0;
} }
// Validation states
//
// Reposition the icon because it's now within a grid column and columns have
// `position: relative;` on them. Also accounts for the grid gutter padding.
.has-feedback .form-control-feedback {
top: 0;
}
} }
} }
@ -345,6 +385,12 @@ input[type="checkbox"],
margin-bottom: 0; margin-bottom: 0;
padding-top: (@padding-base-vertical + 1); // Default padding plus a border padding-top: (@padding-base-vertical + 1); // Default padding plus a border
} }
// Account for padding we're adding to ensure the alignment and of help text
// and other content below items
.radio,
.checkbox {
min-height: (@line-height-computed + (@padding-base-vertical + 1));
}
// Make form groups behave like rows // Make form groups behave like rows
.form-group { .form-group {
@ -361,4 +407,13 @@ input[type="checkbox"],
text-align: right; text-align: right;
} }
} }
// Validation states
//
// Reposition the icon because it's now within a grid column and columns have
// `position: relative;` on them. Also accounts for the grid gutter padding.
.has-feedback .form-control-feedback {
top: 0;
right: (@grid-gutter-width / 2);
}
} }

View File

@ -0,0 +1,233 @@
//
// Glyphicons for Bootstrap
//
// Since icons are fonts, they can be placed anywhere text is placed and are
// thus automatically sized to match the surrounding child. To use, create an
// inline element with the appropriate classes, like so:
//
// <a href="#"><span class="glyphicon glyphicon-star"></span> Star</a>
// Import the fonts
@font-face {
font-family: 'Glyphicons Halflings';
src: ~"url('@{icon-font-path}@{icon-font-name}.eot')";
src: ~"url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype')",
~"url('@{icon-font-path}@{icon-font-name}.woff') format('woff')",
~"url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype')",
~"url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg')";
}
// Catchall baseclass
.glyphicon {
position: relative;
top: 1px;
display: inline-block;
font-family: 'Glyphicons Halflings';
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
// Individual icons
.glyphicon-asterisk { &:before { content: "\2a"; } }
.glyphicon-plus { &:before { content: "\2b"; } }
.glyphicon-euro { &:before { content: "\20ac"; } }
.glyphicon-minus { &:before { content: "\2212"; } }
.glyphicon-cloud { &:before { content: "\2601"; } }
.glyphicon-envelope { &:before { content: "\2709"; } }
.glyphicon-pencil { &:before { content: "\270f"; } }
.glyphicon-glass { &:before { content: "\e001"; } }
.glyphicon-music { &:before { content: "\e002"; } }
.glyphicon-search { &:before { content: "\e003"; } }
.glyphicon-heart { &:before { content: "\e005"; } }
.glyphicon-star { &:before { content: "\e006"; } }
.glyphicon-star-empty { &:before { content: "\e007"; } }
.glyphicon-user { &:before { content: "\e008"; } }
.glyphicon-film { &:before { content: "\e009"; } }
.glyphicon-th-large { &:before { content: "\e010"; } }
.glyphicon-th { &:before { content: "\e011"; } }
.glyphicon-th-list { &:before { content: "\e012"; } }
.glyphicon-ok { &:before { content: "\e013"; } }
.glyphicon-remove { &:before { content: "\e014"; } }
.glyphicon-zoom-in { &:before { content: "\e015"; } }
.glyphicon-zoom-out { &:before { content: "\e016"; } }
.glyphicon-off { &:before { content: "\e017"; } }
.glyphicon-signal { &:before { content: "\e018"; } }
.glyphicon-cog { &:before { content: "\e019"; } }
.glyphicon-trash { &:before { content: "\e020"; } }
.glyphicon-home { &:before { content: "\e021"; } }
.glyphicon-file { &:before { content: "\e022"; } }
.glyphicon-time { &:before { content: "\e023"; } }
.glyphicon-road { &:before { content: "\e024"; } }
.glyphicon-download-alt { &:before { content: "\e025"; } }
.glyphicon-download { &:before { content: "\e026"; } }
.glyphicon-upload { &:before { content: "\e027"; } }
.glyphicon-inbox { &:before { content: "\e028"; } }
.glyphicon-play-circle { &:before { content: "\e029"; } }
.glyphicon-repeat { &:before { content: "\e030"; } }
.glyphicon-refresh { &:before { content: "\e031"; } }
.glyphicon-list-alt { &:before { content: "\e032"; } }
.glyphicon-lock { &:before { content: "\e033"; } }
.glyphicon-flag { &:before { content: "\e034"; } }
.glyphicon-headphones { &:before { content: "\e035"; } }
.glyphicon-volume-off { &:before { content: "\e036"; } }
.glyphicon-volume-down { &:before { content: "\e037"; } }
.glyphicon-volume-up { &:before { content: "\e038"; } }
.glyphicon-qrcode { &:before { content: "\e039"; } }
.glyphicon-barcode { &:before { content: "\e040"; } }
.glyphicon-tag { &:before { content: "\e041"; } }
.glyphicon-tags { &:before { content: "\e042"; } }
.glyphicon-book { &:before { content: "\e043"; } }
.glyphicon-bookmark { &:before { content: "\e044"; } }
.glyphicon-print { &:before { content: "\e045"; } }
.glyphicon-camera { &:before { content: "\e046"; } }
.glyphicon-font { &:before { content: "\e047"; } }
.glyphicon-bold { &:before { content: "\e048"; } }
.glyphicon-italic { &:before { content: "\e049"; } }
.glyphicon-text-height { &:before { content: "\e050"; } }
.glyphicon-text-width { &:before { content: "\e051"; } }
.glyphicon-align-left { &:before { content: "\e052"; } }
.glyphicon-align-center { &:before { content: "\e053"; } }
.glyphicon-align-right { &:before { content: "\e054"; } }
.glyphicon-align-justify { &:before { content: "\e055"; } }
.glyphicon-list { &:before { content: "\e056"; } }
.glyphicon-indent-left { &:before { content: "\e057"; } }
.glyphicon-indent-right { &:before { content: "\e058"; } }
.glyphicon-facetime-video { &:before { content: "\e059"; } }
.glyphicon-picture { &:before { content: "\e060"; } }
.glyphicon-map-marker { &:before { content: "\e062"; } }
.glyphicon-adjust { &:before { content: "\e063"; } }
.glyphicon-tint { &:before { content: "\e064"; } }
.glyphicon-edit { &:before { content: "\e065"; } }
.glyphicon-share { &:before { content: "\e066"; } }
.glyphicon-check { &:before { content: "\e067"; } }
.glyphicon-move { &:before { content: "\e068"; } }
.glyphicon-step-backward { &:before { content: "\e069"; } }
.glyphicon-fast-backward { &:before { content: "\e070"; } }
.glyphicon-backward { &:before { content: "\e071"; } }
.glyphicon-play { &:before { content: "\e072"; } }
.glyphicon-pause { &:before { content: "\e073"; } }
.glyphicon-stop { &:before { content: "\e074"; } }
.glyphicon-forward { &:before { content: "\e075"; } }
.glyphicon-fast-forward { &:before { content: "\e076"; } }
.glyphicon-step-forward { &:before { content: "\e077"; } }
.glyphicon-eject { &:before { content: "\e078"; } }
.glyphicon-chevron-left { &:before { content: "\e079"; } }
.glyphicon-chevron-right { &:before { content: "\e080"; } }
.glyphicon-plus-sign { &:before { content: "\e081"; } }
.glyphicon-minus-sign { &:before { content: "\e082"; } }
.glyphicon-remove-sign { &:before { content: "\e083"; } }
.glyphicon-ok-sign { &:before { content: "\e084"; } }
.glyphicon-question-sign { &:before { content: "\e085"; } }
.glyphicon-info-sign { &:before { content: "\e086"; } }
.glyphicon-screenshot { &:before { content: "\e087"; } }
.glyphicon-remove-circle { &:before { content: "\e088"; } }
.glyphicon-ok-circle { &:before { content: "\e089"; } }
.glyphicon-ban-circle { &:before { content: "\e090"; } }
.glyphicon-arrow-left { &:before { content: "\e091"; } }
.glyphicon-arrow-right { &:before { content: "\e092"; } }
.glyphicon-arrow-up { &:before { content: "\e093"; } }
.glyphicon-arrow-down { &:before { content: "\e094"; } }
.glyphicon-share-alt { &:before { content: "\e095"; } }
.glyphicon-resize-full { &:before { content: "\e096"; } }
.glyphicon-resize-small { &:before { content: "\e097"; } }
.glyphicon-exclamation-sign { &:before { content: "\e101"; } }
.glyphicon-gift { &:before { content: "\e102"; } }
.glyphicon-leaf { &:before { content: "\e103"; } }
.glyphicon-fire { &:before { content: "\e104"; } }
.glyphicon-eye-open { &:before { content: "\e105"; } }
.glyphicon-eye-close { &:before { content: "\e106"; } }
.glyphicon-warning-sign { &:before { content: "\e107"; } }
.glyphicon-plane { &:before { content: "\e108"; } }
.glyphicon-calendar { &:before { content: "\e109"; } }
.glyphicon-random { &:before { content: "\e110"; } }
.glyphicon-comment { &:before { content: "\e111"; } }
.glyphicon-magnet { &:before { content: "\e112"; } }
.glyphicon-chevron-up { &:before { content: "\e113"; } }
.glyphicon-chevron-down { &:before { content: "\e114"; } }
.glyphicon-retweet { &:before { content: "\e115"; } }
.glyphicon-shopping-cart { &:before { content: "\e116"; } }
.glyphicon-folder-close { &:before { content: "\e117"; } }
.glyphicon-folder-open { &:before { content: "\e118"; } }
.glyphicon-resize-vertical { &:before { content: "\e119"; } }
.glyphicon-resize-horizontal { &:before { content: "\e120"; } }
.glyphicon-hdd { &:before { content: "\e121"; } }
.glyphicon-bullhorn { &:before { content: "\e122"; } }
.glyphicon-bell { &:before { content: "\e123"; } }
.glyphicon-certificate { &:before { content: "\e124"; } }
.glyphicon-thumbs-up { &:before { content: "\e125"; } }
.glyphicon-thumbs-down { &:before { content: "\e126"; } }
.glyphicon-hand-right { &:before { content: "\e127"; } }
.glyphicon-hand-left { &:before { content: "\e128"; } }
.glyphicon-hand-up { &:before { content: "\e129"; } }
.glyphicon-hand-down { &:before { content: "\e130"; } }
.glyphicon-circle-arrow-right { &:before { content: "\e131"; } }
.glyphicon-circle-arrow-left { &:before { content: "\e132"; } }
.glyphicon-circle-arrow-up { &:before { content: "\e133"; } }
.glyphicon-circle-arrow-down { &:before { content: "\e134"; } }
.glyphicon-globe { &:before { content: "\e135"; } }
.glyphicon-wrench { &:before { content: "\e136"; } }
.glyphicon-tasks { &:before { content: "\e137"; } }
.glyphicon-filter { &:before { content: "\e138"; } }
.glyphicon-briefcase { &:before { content: "\e139"; } }
.glyphicon-fullscreen { &:before { content: "\e140"; } }
.glyphicon-dashboard { &:before { content: "\e141"; } }
.glyphicon-paperclip { &:before { content: "\e142"; } }
.glyphicon-heart-empty { &:before { content: "\e143"; } }
.glyphicon-link { &:before { content: "\e144"; } }
.glyphicon-phone { &:before { content: "\e145"; } }
.glyphicon-pushpin { &:before { content: "\e146"; } }
.glyphicon-usd { &:before { content: "\e148"; } }
.glyphicon-gbp { &:before { content: "\e149"; } }
.glyphicon-sort { &:before { content: "\e150"; } }
.glyphicon-sort-by-alphabet { &:before { content: "\e151"; } }
.glyphicon-sort-by-alphabet-alt { &:before { content: "\e152"; } }
.glyphicon-sort-by-order { &:before { content: "\e153"; } }
.glyphicon-sort-by-order-alt { &:before { content: "\e154"; } }
.glyphicon-sort-by-attributes { &:before { content: "\e155"; } }
.glyphicon-sort-by-attributes-alt { &:before { content: "\e156"; } }
.glyphicon-unchecked { &:before { content: "\e157"; } }
.glyphicon-expand { &:before { content: "\e158"; } }
.glyphicon-collapse-down { &:before { content: "\e159"; } }
.glyphicon-collapse-up { &:before { content: "\e160"; } }
.glyphicon-log-in { &:before { content: "\e161"; } }
.glyphicon-flash { &:before { content: "\e162"; } }
.glyphicon-log-out { &:before { content: "\e163"; } }
.glyphicon-new-window { &:before { content: "\e164"; } }
.glyphicon-record { &:before { content: "\e165"; } }
.glyphicon-save { &:before { content: "\e166"; } }
.glyphicon-open { &:before { content: "\e167"; } }
.glyphicon-saved { &:before { content: "\e168"; } }
.glyphicon-import { &:before { content: "\e169"; } }
.glyphicon-export { &:before { content: "\e170"; } }
.glyphicon-send { &:before { content: "\e171"; } }
.glyphicon-floppy-disk { &:before { content: "\e172"; } }
.glyphicon-floppy-saved { &:before { content: "\e173"; } }
.glyphicon-floppy-remove { &:before { content: "\e174"; } }
.glyphicon-floppy-save { &:before { content: "\e175"; } }
.glyphicon-floppy-open { &:before { content: "\e176"; } }
.glyphicon-credit-card { &:before { content: "\e177"; } }
.glyphicon-transfer { &:before { content: "\e178"; } }
.glyphicon-cutlery { &:before { content: "\e179"; } }
.glyphicon-header { &:before { content: "\e180"; } }
.glyphicon-compressed { &:before { content: "\e181"; } }
.glyphicon-earphone { &:before { content: "\e182"; } }
.glyphicon-phone-alt { &:before { content: "\e183"; } }
.glyphicon-tower { &:before { content: "\e184"; } }
.glyphicon-stats { &:before { content: "\e185"; } }
.glyphicon-sd-video { &:before { content: "\e186"; } }
.glyphicon-hd-video { &:before { content: "\e187"; } }
.glyphicon-subtitles { &:before { content: "\e188"; } }
.glyphicon-sound-stereo { &:before { content: "\e189"; } }
.glyphicon-sound-dolby { &:before { content: "\e190"; } }
.glyphicon-sound-5-1 { &:before { content: "\e191"; } }
.glyphicon-sound-6-1 { &:before { content: "\e192"; } }
.glyphicon-sound-7-1 { &:before { content: "\e193"; } }
.glyphicon-copyright-mark { &:before { content: "\e194"; } }
.glyphicon-registration-mark { &:before { content: "\e195"; } }
.glyphicon-cloud-download { &:before { content: "\e197"; } }
.glyphicon-cloud-upload { &:before { content: "\e198"; } }
.glyphicon-tree-conifer { &:before { content: "\e199"; } }
.glyphicon-tree-deciduous { &:before { content: "\e200"; } }

View File

@ -2,27 +2,56 @@
// Grid system // Grid system
// -------------------------------------------------- // --------------------------------------------------
// Set the container width, and override it for fixed navbars in media queries
// Container widths
//
// Set the container width, and override it for fixed navbars in media queries.
.container { .container {
.container-fixed(); .container-fixed();
@media (min-width: @screen-sm-min) {
width: @container-sm;
}
@media (min-width: @screen-md-min) {
width: @container-md;
}
@media (min-width: @screen-lg-min) {
width: @container-lg;
}
}
// Fluid container
//
// Utilizes the mixin meant for fixed width containers, but without any defined
// width for fluid, full width layouts.
.container-fluid {
.container-fixed();
} }
// mobile first defaults
// Row
//
// Rows contain and clear the floats of your columns.
.row { .row {
.make-row(); .make-row();
} }
// Columns
//
// Common styles for small and large grid columns // Common styles for small and large grid columns
.make-grid-columns(); .make-grid-columns();
// Extra small grid // Extra small grid
// //
// Grid classes for extra small devices like smartphones. No offset, push, or // Columns, offsets, pushes, and pulls for extra small devices like
// pull classes are present here due to the size of the target. // smartphones.
//
// Note that `.col-xs-12` doesn't get floated on purpose--there's no need since
// it's full-width.
.make-grid-columns-float(xs); .make-grid-columns-float(xs);
.make-grid(@grid-columns, xs, width); .make-grid(@grid-columns, xs, width);
@ -35,15 +64,8 @@
// //
// Columns, offsets, pushes, and pulls for the small device range, from phones // Columns, offsets, pushes, and pulls for the small device range, from phones
// to tablets. // to tablets.
//
// Note that `.col-sm-12` doesn't get floated on purpose--there's no need since
// it's full-width.
@media (min-width: @screen-sm-min) { @media (min-width: @screen-sm-min) {
.container {
width: @container-sm;
}
.make-grid-columns-float(sm); .make-grid-columns-float(sm);
.make-grid(@grid-columns, sm, width); .make-grid(@grid-columns, sm, width);
.make-grid(@grid-columns, sm, pull); .make-grid(@grid-columns, sm, pull);
@ -55,15 +77,8 @@
// Medium grid // Medium grid
// //
// Columns, offsets, pushes, and pulls for the desktop device range. // Columns, offsets, pushes, and pulls for the desktop device range.
//
// Note that `.col-md-12` doesn't get floated on purpose--there's no need since
// it's full-width.
@media (min-width: @screen-md-min) { @media (min-width: @screen-md-min) {
.container {
width: @container-md;
}
.make-grid-columns-float(md); .make-grid-columns-float(md);
.make-grid(@grid-columns, md, width); .make-grid(@grid-columns, md, width);
.make-grid(@grid-columns, md, pull); .make-grid(@grid-columns, md, pull);
@ -75,19 +90,11 @@
// Large grid // Large grid
// //
// Columns, offsets, pushes, and pulls for the large desktop device range. // Columns, offsets, pushes, and pulls for the large desktop device range.
//
// Note that `.col-lg-12` doesn't get floated on purpose--there's no need since
// it's full-width.
@media (min-width: @screen-lg-min) { @media (min-width: @screen-lg-min) {
.container {
width: @container-lg;
}
.make-grid-columns-float(lg); .make-grid-columns-float(lg);
.make-grid(@grid-columns, lg, width); .make-grid(@grid-columns, lg, width);
.make-grid(@grid-columns, lg, pull); .make-grid(@grid-columns, lg, pull);
.make-grid(@grid-columns, lg, push); .make-grid(@grid-columns, lg, push);
.make-grid(@grid-columns, lg, offset); .make-grid(@grid-columns, lg, offset);
} }

View File

@ -10,13 +10,18 @@
border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table
// Undo padding and float of grid classes // Undo padding and float of grid classes
&.col { &[class*="col-"] {
float: none; float: none;
padding-left: 0; padding-left: 0;
padding-right: 0; padding-right: 0;
} }
.form-control { .form-control {
// IE9 fubars the placeholder attribute in text inputs and the arrows on
// select elements in input groups. To fix it, we float the input. Details:
// https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855
float: left;
width: 100%; width: 100%;
margin-bottom: 0; margin-bottom: 0;
} }
@ -90,8 +95,10 @@
.input-group .form-control:first-child, .input-group .form-control:first-child,
.input-group-addon:first-child, .input-group-addon:first-child,
.input-group-btn:first-child > .btn, .input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group > .btn,
.input-group-btn:first-child > .dropdown-toggle, .input-group-btn:first-child > .dropdown-toggle,
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) { .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
.border-right-radius(0); .border-right-radius(0);
} }
.input-group-addon:first-child { .input-group-addon:first-child {
@ -100,8 +107,10 @@
.input-group .form-control:last-child, .input-group .form-control:last-child,
.input-group-addon:last-child, .input-group-addon:last-child,
.input-group-btn:last-child > .btn, .input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group > .btn,
.input-group-btn:last-child > .dropdown-toggle, .input-group-btn:last-child > .dropdown-toggle,
.input-group-btn:first-child > .btn:not(:first-child) { .input-group-btn:first-child > .btn:not(:first-child),
.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
.border-left-radius(0); .border-left-radius(0);
} }
.input-group-addon:last-child { .input-group-addon:last-child {
@ -112,25 +121,37 @@
// ------------------------- // -------------------------
.input-group-btn { .input-group-btn {
position: relative; position: relative;
// Jankily prevent input button groups from wrapping with `white-space` and
// `font-size` in combination with `inline-block` on buttons.
font-size: 0;
white-space: nowrap; white-space: nowrap;
// Negative margin for spacing, position for bringing hovered/focused/actived
// element above the siblings.
> .btn {
position: relative;
+ .btn {
margin-left: -1px;
}
// Bring the "active" button to the front
&:hover,
&:focus,
&:active {
z-index: 2;
}
}
// Negative margin to only have a 1px border between the two // Negative margin to only have a 1px border between the two
&:first-child > .btn { &:first-child {
margin-right: -1px; > .btn,
> .btn-group {
margin-right: -1px;
}
} }
&:last-child > .btn { &:last-child {
margin-left: -1px; > .btn,
} > .btn-group {
} margin-left: -1px;
.input-group-btn > .btn { }
position: relative;
// Jankily prevent input button groups from wrapping
+ .btn {
margin-left: -4px;
}
// Bring the "active" button to the front
&:hover,
&:active {
z-index: 2;
} }
} }

View File

@ -6,24 +6,27 @@
.jumbotron { .jumbotron {
padding: @jumbotron-padding; padding: @jumbotron-padding;
margin-bottom: @jumbotron-padding; margin-bottom: @jumbotron-padding;
font-size: @jumbotron-font-size;
font-weight: 200;
line-height: (@line-height-base * 1.5);
color: @jumbotron-color; color: @jumbotron-color;
background-color: @jumbotron-bg; background-color: @jumbotron-bg;
h1 { h1,
line-height: 1; .h1 {
color: @jumbotron-heading-color; color: @jumbotron-heading-color;
} }
p { p {
line-height: 1.4; margin-bottom: (@jumbotron-padding / 2);
font-size: @jumbotron-font-size;
font-weight: 200;
} }
.container & { .container & {
border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container
} }
.container {
max-width: 100%;
}
@media screen and (min-width: @screen-sm-min) { @media screen and (min-width: @screen-sm-min) {
padding-top: (@jumbotron-padding * 1.6); padding-top: (@jumbotron-padding * 1.6);
padding-bottom: (@jumbotron-padding * 1.6); padding-bottom: (@jumbotron-padding * 1.6);
@ -33,7 +36,8 @@
padding-right: (@jumbotron-padding * 2); padding-right: (@jumbotron-padding * 2);
} }
h1 { h1,
.h1 {
font-size: (@font-size-base * 4.5); font-size: (@font-size-base * 4.5);
} }
} }

View File

@ -28,6 +28,12 @@
&:empty { &:empty {
display: none; display: none;
} }
// Quick fix for labels in buttons
.btn & {
position: relative;
top: -1px;
}
} }
// Colors // Colors

View File

@ -2,17 +2,21 @@
// List groups // List groups
// -------------------------------------------------- // --------------------------------------------------
// Base class // Base class
// //
// Easily usable on <ul>, <ol>, or <div>. // Easily usable on <ul>, <ol>, or <div>.
.list-group { .list-group {
// No need to set list-style: none; since .list-group-item is block level // No need to set list-style: none; since .list-group-item is block level
margin-bottom: 20px; margin-bottom: 20px;
padding-left: 0; // reset padding because ul and ol padding-left: 0; // reset padding because ul and ol
} }
// Individual list items // Individual list items
// ------------------------- //
// Use on `li`s or `div`s within the `.list-group` parent.
.list-group-item { .list-group-item {
position: relative; position: relative;
@ -41,7 +45,12 @@
} }
} }
// Linked list items // Linked list items
//
// Use anchor elements instead of `li`s or `div`s to create linked list items.
// Includes an extra `.active` modifier class for showing selected items.
a.list-group-item { a.list-group-item {
color: @list-group-link-color; color: @list-group-link-color;
@ -70,13 +79,26 @@ a.list-group-item {
color: inherit; color: inherit;
} }
.list-group-item-text { .list-group-item-text {
color: lighten(@list-group-active-bg, 40%); color: @list-group-active-text-color;
} }
} }
} }
// Contextual variants
//
// Add modifier classes to change text and background color on individual items.
// Organizationally, this must come after the `:hover` states.
.list-group-item-variant(success; @state-success-bg; @state-success-text);
.list-group-item-variant(info; @state-info-bg; @state-info-text);
.list-group-item-variant(warning; @state-warning-bg; @state-warning-text);
.list-group-item-variant(danger; @state-danger-bg; @state-danger-text);
// Custom content options // Custom content options
// ------------------------- //
// Extra classes for creating well-formatted content within `.list-group-item`s.
.list-group-item-heading { .list-group-item-heading {
margin-top: 0; margin-top: 0;

View File

@ -19,8 +19,8 @@
.clearfix() { .clearfix() {
&:before, &:before,
&:after { &:after {
content: " "; /* 1 */ content: " "; // 1
display: table; /* 2 */ display: table; // 2
} }
&:after { &:after {
clear: both; clear: both;
@ -30,7 +30,7 @@
// WebKit-style focus // WebKit-style focus
.tab-focus() { .tab-focus() {
// Default // Default
outline: thin dotted #333; outline: thin dotted;
// WebKit // WebKit
outline: 5px auto -webkit-focus-ring-color; outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px; outline-offset: -2px;
@ -55,7 +55,8 @@
// Placeholder text // Placeholder text
.placeholder(@color: @input-color-placeholder) { .placeholder(@color: @input-color-placeholder) {
&:-moz-placeholder { color: @color; } // Firefox 4-18 &:-moz-placeholder { color: @color; } // Firefox 4-18
&::-moz-placeholder { color: @color; } // Firefox 19+ &::-moz-placeholder { color: @color; // Firefox 19+
opacity: 1; } // See https://github.com/twbs/bootstrap/pull/11526
&:-ms-input-placeholder { color: @color; } // Internet Explorer 10+ &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+
&::-webkit-input-placeholder { color: @color; } // Safari and Chrome &::-webkit-input-placeholder { color: @color; } // Safari and Chrome
} }
@ -87,11 +88,7 @@
} }
// New mixin to use as of v3.0.1 // New mixin to use as of v3.0.1
.text-hide() { .text-hide() {
font: ~"0/0" a; .hide-text();
color: transparent;
text-shadow: none;
background-color: transparent;
border: 0;
} }
@ -118,6 +115,10 @@
} }
// Drop shadows // Drop shadows
//
// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's
// supported browsers that have box shadow capabilities now support the
// standard `box-shadow` property.
.box-shadow(@shadow) { .box-shadow(@shadow) {
-webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1 -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1
box-shadow: @shadow; box-shadow: @shadow;
@ -150,17 +151,17 @@
// Transformations // Transformations
.rotate(@degrees) { .rotate(@degrees) {
-webkit-transform: rotate(@degrees); -webkit-transform: rotate(@degrees);
-ms-transform: rotate(@degrees); // IE9+ -ms-transform: rotate(@degrees); // IE9 only
transform: rotate(@degrees); transform: rotate(@degrees);
} }
.scale(@ratio) { .scale(@ratio; @ratio-y...) {
-webkit-transform: scale(@ratio); -webkit-transform: scale(@ratio, @ratio-y);
-ms-transform: scale(@ratio); // IE9+ -ms-transform: scale(@ratio, @ratio-y); // IE9 only
transform: scale(@ratio); transform: scale(@ratio, @ratio-y);
} }
.translate(@x; @y) { .translate(@x; @y) {
-webkit-transform: translate(@x, @y); -webkit-transform: translate(@x, @y);
-ms-transform: translate(@x, @y); // IE9+ -ms-transform: translate(@x, @y); // IE9 only
transform: translate(@x, @y); transform: translate(@x, @y);
} }
.skew(@x; @y) { .skew(@x; @y) {
@ -175,12 +176,12 @@
.rotateX(@degrees) { .rotateX(@degrees) {
-webkit-transform: rotateX(@degrees); -webkit-transform: rotateX(@degrees);
-ms-transform: rotateX(@degrees); // IE9+ -ms-transform: rotateX(@degrees); // IE9 only
transform: rotateX(@degrees); transform: rotateX(@degrees);
} }
.rotateY(@degrees) { .rotateY(@degrees) {
-webkit-transform: rotateY(@degrees); -webkit-transform: rotateY(@degrees);
-ms-transform: rotateY(@degrees); // IE9+ -ms-transform: rotateY(@degrees); // IE9 only
transform: rotateY(@degrees); transform: rotateY(@degrees);
} }
.perspective(@perspective) { .perspective(@perspective) {
@ -196,6 +197,7 @@
.transform-origin(@origin) { .transform-origin(@origin) {
-webkit-transform-origin: @origin; -webkit-transform-origin: @origin;
-moz-transform-origin: @origin; -moz-transform-origin: @origin;
-ms-transform-origin: @origin; // IE9 only
transform-origin: @origin; transform-origin: @origin;
} }
@ -204,6 +206,30 @@
-webkit-animation: @animation; -webkit-animation: @animation;
animation: @animation; animation: @animation;
} }
.animation-name(@name) {
-webkit-animation-name: @name;
animation-name: @name;
}
.animation-duration(@duration) {
-webkit-animation-duration: @duration;
animation-duration: @duration;
}
.animation-timing-function(@timing-function) {
-webkit-animation-timing-function: @timing-function;
animation-timing-function: @timing-function;
}
.animation-delay(@delay) {
-webkit-animation-delay: @delay;
animation-delay: @delay;
}
.animation-iteration-count(@iteration-count) {
-webkit-animation-iteration-count: @iteration-count;
animation-iteration-count: @iteration-count;
}
.animation-direction(@direction) {
-webkit-animation-direction: @direction;
animation-direction: @direction;
}
// Backface visibility // Backface visibility
// Prevent browsers from flickering when using CSS 3D transforms. // Prevent browsers from flickering when using CSS 3D transforms.
@ -277,10 +303,8 @@
// Creates two color stops, start and end, by specifying a color and position for each color stop. // Creates two color stops, start and end, by specifying a color and position for each color stop.
// Color stops are not available in IE9 and below. // Color stops are not available in IE9 and below.
.horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) { .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
background-image: -webkit-gradient(linear, @start-percent top, @end-percent top, from(@start-color), to(@end-color)); // Safari 4+, Chrome 2+ background-image: -webkit-linear-gradient(left, color-stop(@start-color @start-percent), color-stop(@end-color @end-percent)); // Safari 5.1-6, Chrome 10+
background-image: -webkit-linear-gradient(left, color-stop(@start-color @start-percent), color-stop(@end-color @end-percent)); // Safari 5.1+, Chrome 10+ background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
background-image: -moz-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // FF 3.6+
background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10
background-repeat: repeat-x; background-repeat: repeat-x;
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down
} }
@ -290,47 +314,36 @@
// Creates two color stops, start and end, by specifying a color and position for each color stop. // Creates two color stops, start and end, by specifying a color and position for each color stop.
// Color stops are not available in IE9 and below. // Color stops are not available in IE9 and below.
.vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) { .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
background-image: -webkit-gradient(linear, left @start-percent, left @end-percent, from(@start-color), to(@end-color)); // Safari 4+, Chrome 2+ background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+
background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1+, Chrome 10+ background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
background-image: -moz-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // FF 3.6+
background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10
background-repeat: repeat-x; background-repeat: repeat-x;
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down
} }
.directional(@start-color: #555; @end-color: #333; @deg: 45deg) { .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {
background-repeat: repeat-x; background-repeat: repeat-x;
background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1+, Chrome 10+ background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+
background-image: -moz-linear-gradient(@deg, @start-color, @end-color); // FF 3.6+ background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10
} }
.horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) { .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
background-image: -webkit-gradient(left, linear, 0 0, 0 100%, from(@start-color), color-stop(@color-stop, @mid-color), to(@end-color));
background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color); background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
background-image: -moz-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color); background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);
background-repeat: no-repeat; background-repeat: no-repeat;
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
} }
.vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) { .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@start-color), color-stop(@color-stop, @mid-color), to(@end-color));
background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color); background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
background-image: -moz-linear-gradient(top, @start-color, @mid-color @color-stop, @end-color);
background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color); background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);
background-repeat: no-repeat; background-repeat: no-repeat;
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
} }
.radial(@inner-color: #555; @outer-color: #333) { .radial(@inner-color: #555; @outer-color: #333) {
background-image: -webkit-gradient(radial, center center, 0, center center, 460, from(@inner-color), to(@outer-color));
background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color); background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);
background-image: -moz-radial-gradient(circle, @inner-color, @outer-color);
background-image: radial-gradient(circle, @inner-color, @outer-color); background-image: radial-gradient(circle, @inner-color, @outer-color);
background-repeat: no-repeat; background-repeat: no-repeat;
} }
.striped(@color: rgba(255,255,255,.15); @angle: 45deg) { .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, @color), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, @color), color-stop(.75, @color), color-stop(.75, transparent), to(transparent));
background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent); background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
background-image: -moz-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent); background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
} }
} }
@ -369,7 +382,7 @@
// //
// Keep images from scaling beyond the width of their parents. // Keep images from scaling beyond the width of their parents.
.img-responsive(@display: block;) { .img-responsive(@display: block) {
display: @display; display: @display;
max-width: 100%; // Part 1: Set a maximum relative to the parent max-width: 100%; // Part 1: Set a maximum relative to the parent
height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
@ -391,7 +404,7 @@
// Panels // Panels
// ------------------------- // -------------------------
.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border;) { .panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {
border-color: @border; border-color: @border;
& > .panel-heading { & > .panel-heading {
@ -402,9 +415,6 @@
+ .panel-collapse .panel-body { + .panel-collapse .panel-body {
border-top-color: @border; border-top-color: @border;
} }
& > .dropdown .caret {
border-color: @heading-text-color transparent;
}
} }
& > .panel-footer { & > .panel-footer {
+ .panel-collapse .panel-body { + .panel-collapse .panel-body {
@ -430,7 +440,7 @@
// Tables // Tables
// ------------------------- // -------------------------
.table-row-variant(@state; @background; @border) { .table-row-variant(@state; @background) {
// Exact selectors below required to override `.table-striped` and prevent // Exact selectors below required to override `.table-striped` and prevent
// inheritance to nested tables. // inheritance to nested tables.
.table > thead > tr, .table > thead > tr,
@ -456,6 +466,34 @@
} }
} }
// List Groups
// -------------------------
.list-group-item-variant(@state; @background; @color) {
.list-group-item-@{state} {
color: @color;
background-color: @background;
a& {
color: @color;
.list-group-item-heading { color: inherit; }
&:hover,
&:focus {
color: @color;
background-color: darken(@background, 5%);
}
&.active,
&.active:hover,
&.active:focus {
color: #fff;
background-color: @color;
border-color: @color;
}
}
}
}
// Button variants // Button variants
// ------------------------- // -------------------------
// Easily pump out default styles, as well as :hover, :focus, :active, // Easily pump out default styles, as well as :hover, :focus, :active,
@ -491,6 +529,11 @@
border-color: @border; border-color: @border;
} }
} }
.badge {
color: @background;
background-color: @color;
}
} }
// Button sizes // Button sizes
@ -538,6 +581,24 @@
} }
} }
// Contextual backgrounds
// -------------------------
.bg-variant(@color) {
background-color: @color;
a&:hover {
background-color: darken(@color, 10%);
}
}
// Typography
// -------------------------
.text-emphasis-variant(@color) {
color: @color;
a&:hover {
color: darken(@color, 10%);
}
}
// Navbar vertical align // Navbar vertical align
// ------------------------- // -------------------------
// Vertically center elements in the navbar. // Vertically center elements in the navbar.
@ -561,9 +622,10 @@
// More easily include all the states for responsive-utilities.less. // More easily include all the states for responsive-utilities.less.
.responsive-visibility() { .responsive-visibility() {
display: block !important; display: block !important;
tr& { display: table-row !important; } table& { display: table; }
tr& { display: table-row !important; }
th&, th&,
td& { display: table-cell !important; } td& { display: table-cell !important; }
} }
.responsive-invisibility() { .responsive-invisibility() {
@ -583,14 +645,14 @@
margin-left: auto; margin-left: auto;
padding-left: (@grid-gutter-width / 2); padding-left: (@grid-gutter-width / 2);
padding-right: (@grid-gutter-width / 2); padding-right: (@grid-gutter-width / 2);
.clearfix(); &:extend(.clearfix all);
} }
// Creates a wrapper for a series of columns // Creates a wrapper for a series of columns
.make-row(@gutter: @grid-gutter-width) { .make-row(@gutter: @grid-gutter-width) {
margin-left: (@gutter / -2); margin-left: (@gutter / -2);
margin-right: (@gutter / -2); margin-right: (@gutter / -2);
.clearfix(); &:extend(.clearfix all);
} }
// Generate the extra small columns // Generate the extra small columns
@ -598,30 +660,39 @@
position: relative; position: relative;
float: left; float: left;
width: percentage((@columns / @grid-columns)); width: percentage((@columns / @grid-columns));
// Prevent columns from collapsing when empty
min-height: 1px; min-height: 1px;
// Inner gutter via padding
padding-left: (@gutter / 2); padding-left: (@gutter / 2);
padding-right: (@gutter / 2); padding-right: (@gutter / 2);
} }
.make-xs-column-offset(@columns) {
@media (min-width: @screen-xs-min) {
margin-left: percentage((@columns / @grid-columns));
}
}
.make-xs-column-push(@columns) {
@media (min-width: @screen-xs-min) {
left: percentage((@columns / @grid-columns));
}
}
.make-xs-column-pull(@columns) {
@media (min-width: @screen-xs-min) {
right: percentage((@columns / @grid-columns));
}
}
// Generate the small columns // Generate the small columns
.make-sm-column(@columns; @gutter: @grid-gutter-width) { .make-sm-column(@columns; @gutter: @grid-gutter-width) {
position: relative; position: relative;
// Prevent columns from collapsing when empty
min-height: 1px; min-height: 1px;
// Inner gutter via padding
padding-left: (@gutter / 2); padding-left: (@gutter / 2);
padding-right: (@gutter / 2); padding-right: (@gutter / 2);
// Calculate width based on number of columns available
@media (min-width: @screen-sm-min) { @media (min-width: @screen-sm-min) {
float: left; float: left;
width: percentage((@columns / @grid-columns)); width: percentage((@columns / @grid-columns));
} }
} }
// Generate the small column offsets
.make-sm-column-offset(@columns) { .make-sm-column-offset(@columns) {
@media (min-width: @screen-sm-min) { @media (min-width: @screen-sm-min) {
margin-left: percentage((@columns / @grid-columns)); margin-left: percentage((@columns / @grid-columns));
@ -638,30 +709,26 @@
} }
} }
// Generate the medium columns // Generate the medium columns
.make-md-column(@columns; @gutter: @grid-gutter-width) { .make-md-column(@columns; @gutter: @grid-gutter-width) {
position: relative; position: relative;
// Prevent columns from collapsing when empty
min-height: 1px; min-height: 1px;
// Inner gutter via padding
padding-left: (@gutter / 2); padding-left: (@gutter / 2);
padding-right: (@gutter / 2); padding-right: (@gutter / 2);
// Calculate width based on number of columns available
@media (min-width: @screen-md-min) { @media (min-width: @screen-md-min) {
float: left; float: left;
width: percentage((@columns / @grid-columns)); width: percentage((@columns / @grid-columns));
} }
} }
// Generate the medium column offsets
.make-md-column-offset(@columns) { .make-md-column-offset(@columns) {
@media (min-width: @screen-md-min) { @media (min-width: @screen-md-min) {
margin-left: percentage((@columns / @grid-columns)); margin-left: percentage((@columns / @grid-columns));
} }
} }
.make-md-column-push(@columns) { .make-md-column-push(@columns) {
@media (min-width: @screen-md) { @media (min-width: @screen-md-min) {
left: percentage((@columns / @grid-columns)); left: percentage((@columns / @grid-columns));
} }
} }
@ -671,23 +738,19 @@
} }
} }
// Generate the large columns // Generate the large columns
.make-lg-column(@columns; @gutter: @grid-gutter-width) { .make-lg-column(@columns; @gutter: @grid-gutter-width) {
position: relative; position: relative;
// Prevent columns from collapsing when empty
min-height: 1px; min-height: 1px;
// Inner gutter via padding
padding-left: (@gutter / 2); padding-left: (@gutter / 2);
padding-right: (@gutter / 2); padding-right: (@gutter / 2);
// Calculate width based on number of columns available
@media (min-width: @screen-lg-min) { @media (min-width: @screen-lg-min) {
float: left; float: left;
width: percentage((@columns / @grid-columns)); width: percentage((@columns / @grid-columns));
} }
} }
// Generate the large column offsets
.make-lg-column-offset(@columns) { .make-lg-column-offset(@columns) {
@media (min-width: @screen-lg-min) { @media (min-width: @screen-lg-min) {
margin-left: percentage((@columns / @grid-columns)); margin-left: percentage((@columns / @grid-columns));
@ -714,11 +777,11 @@
// Common styles for all sizes of grid columns, widths 1-12 // Common styles for all sizes of grid columns, widths 1-12
.col(@index) when (@index = 1) { // initial .col(@index) when (@index = 1) { // initial
@item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}"; @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
.col(@index + 1, @item); .col((@index + 1), @item);
} }
.col(@index, @list) when (@index =< @grid-columns) { // general; "=<" isn't a typo .col(@index, @list) when (@index =< @grid-columns) { // general; "=<" isn't a typo
@item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}"; @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
.col(@index + 1, ~"@{list}, @{item}"); .col((@index + 1), ~"@{list}, @{item}");
} }
.col(@index, @list) when (@index > @grid-columns) { // terminal .col(@index, @list) when (@index > @grid-columns) { // terminal
@{list} { @{list} {
@ -736,13 +799,13 @@
.make-grid-columns-float(@class) { .make-grid-columns-float(@class) {
.col(@index) when (@index = 1) { // initial .col(@index) when (@index = 1) { // initial
@item: ~".col-@{class}-@{index}"; @item: ~".col-@{class}-@{index}";
.col(@index + 1, @item); .col((@index + 1), @item);
} }
.col(@index, @list) when (@index < @grid-columns) { // general .col(@index, @list) when (@index =< @grid-columns) { // general
@item: ~".col-@{class}-@{index}"; @item: ~".col-@{class}-@{index}";
.col(@index + 1, ~"@{list}, @{item}"); .col((@index + 1), ~"@{list}, @{item}");
} }
.col(@index, @list) when (@index = @grid-columns) { // terminal .col(@index, @list) when (@index > @grid-columns) { // terminal
@{list} { @{list} {
float: left; float: left;
} }
@ -775,7 +838,7 @@
.make-grid(@index, @class, @type) when (@index >= 0) { .make-grid(@index, @class, @type) when (@index >= 0) {
.calc-grid(@index, @class, @type); .calc-grid(@index, @class, @type);
// next iteration // next iteration
.make-grid(@index - 1, @class, @type); .make-grid((@index - 1), @class, @type);
} }
@ -810,6 +873,10 @@
border-color: @border-color; border-color: @border-color;
background-color: @background-color; background-color: @background-color;
} }
// Optional feedback icon
.form-control-feedback {
color: @text-color;
}
} }
// Form control focus state // Form control focus state
@ -852,7 +919,8 @@
line-height: @input-height; line-height: @input-height;
} }
textarea& { textarea&,
select[multiple]& {
height: auto; height: auto;
} }
} }

View File

@ -22,7 +22,12 @@
right: 0; right: 0;
bottom: 0; bottom: 0;
left: 0; left: 0;
z-index: @zindex-modal-background; z-index: @zindex-modal;
-webkit-overflow-scrolling: touch;
// Prevent Chrome on Windows from adding a focus outline. For details, see
// https://github.com/twbs/bootstrap/pull/10951.
outline: 0;
// When fading in the modal, animate it to slide down // When fading in the modal, animate it to slide down
&.fade .modal-dialog { &.fade .modal-dialog {
@ -35,11 +40,8 @@
// Shell div to position the modal with bottom padding // Shell div to position the modal with bottom padding
.modal-dialog { .modal-dialog {
position: relative; position: relative;
margin-left: auto;
margin-right: auto;
width: auto; width: auto;
padding: 10px; margin: 10px;
z-index: (@zindex-modal-background + 10);
} }
// Actual modal // Actual modal
@ -62,11 +64,11 @@
right: 0; right: 0;
bottom: 0; bottom: 0;
left: 0; left: 0;
z-index: (@zindex-modal-background - 10); z-index: @zindex-modal-background;
background-color: @modal-backdrop-bg; background-color: @modal-backdrop-bg;
// Fade for backdrop // Fade for backdrop
&.fade { .opacity(0); } &.fade { .opacity(0); }
&.in { .opacity(.5); } &.in { .opacity(@modal-backdrop-opacity); }
} }
// Modal header // Modal header
@ -100,7 +102,7 @@
padding: (@modal-inner-padding - 1) @modal-inner-padding @modal-inner-padding; padding: (@modal-inner-padding - 1) @modal-inner-padding @modal-inner-padding;
text-align: right; // right align buttons text-align: right; // right align buttons
border-top: 1px solid @modal-footer-border-color; border-top: 1px solid @modal-footer-border-color;
.clearfix(); // clear it in case folks use .pull-* classes on buttons &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons
// Properly space out buttons // Properly space out buttons
.btn + .btn { .btn + .btn {
@ -118,15 +120,19 @@
} }
// Scale up the modal // Scale up the modal
@media screen and (min-width: @screen-sm-min) { @media (min-width: @screen-sm-min) {
// Automatically set modal's width for larger viewports
.modal-dialog { .modal-dialog {
width: 600px; width: @modal-md;
padding-top: 30px; margin: 30px auto;
padding-bottom: 30px;
} }
.modal-content { .modal-content {
.box-shadow(0 5px 15px rgba(0,0,0,.5)); .box-shadow(0 5px 15px rgba(0,0,0,.5));
} }
// Modal sizes
.modal-sm { width: @modal-sm; }
.modal-lg { width: @modal-lg; }
} }

View File

@ -15,7 +15,7 @@
border: 1px solid transparent; border: 1px solid transparent;
// Prevent floats from breaking the navbar // Prevent floats from breaking the navbar
.clearfix(); &:extend(.clearfix all);
@media (min-width: @grid-float-breakpoint) { @media (min-width: @grid-float-breakpoint) {
border-radius: @navbar-border-radius; border-radius: @navbar-border-radius;
@ -29,7 +29,7 @@
// styling of responsive aspects. // styling of responsive aspects.
.navbar-header { .navbar-header {
.clearfix(); &:extend(.clearfix all);
@media (min-width: @grid-float-breakpoint) { @media (min-width: @grid-float-breakpoint) {
float: left; float: left;
@ -48,13 +48,13 @@
// content for the user's viewport. // content for the user's viewport.
.navbar-collapse { .navbar-collapse {
max-height: 340px; max-height: @navbar-collapse-max-height;
overflow-x: visible; overflow-x: visible;
padding-right: @navbar-padding-horizontal; padding-right: @navbar-padding-horizontal;
padding-left: @navbar-padding-horizontal; padding-left: @navbar-padding-horizontal;
border-top: 1px solid transparent; border-top: 1px solid transparent;
box-shadow: inset 0 1px 0 rgba(255,255,255,.1); box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
.clearfix(); &:extend(.clearfix all);
-webkit-overflow-scrolling: touch; -webkit-overflow-scrolling: touch;
&.in { &.in {
@ -74,18 +74,16 @@
} }
&.in { &.in {
overflow-y: auto; overflow-y: visible;
} }
// Account for first and last children spacing // Undo the collapse side padding for navbars with containers to ensure
.navbar-nav.navbar-left:first-child { // alignment of right-aligned contents.
margin-left: -@navbar-padding-horizontal; .navbar-fixed-top &,
} .navbar-static-top &,
.navbar-nav.navbar-right:last-child { .navbar-fixed-bottom & {
margin-right: -@navbar-padding-horizontal; padding-left: 0;
} padding-right: 0;
.navbar-text:last-child {
margin-right: 0;
} }
} }
} }
@ -95,14 +93,17 @@
// //
// When a container is present, change the behavior of the header and collapse. // When a container is present, change the behavior of the header and collapse.
.container > .navbar-header, .container,
.container > .navbar-collapse { .container-fluid {
margin-right: -@navbar-padding-horizontal; > .navbar-header,
margin-left: -@navbar-padding-horizontal; > .navbar-collapse {
margin-right: -@navbar-padding-horizontal;
margin-left: -@navbar-padding-horizontal;
@media (min-width: @grid-float-breakpoint) { @media (min-width: @grid-float-breakpoint) {
margin-right: 0; margin-right: 0;
margin-left: 0; margin-left: 0;
}
} }
} }
@ -154,6 +155,7 @@
padding: @navbar-padding-vertical @navbar-padding-horizontal; padding: @navbar-padding-vertical @navbar-padding-horizontal;
font-size: @font-size-large; font-size: @font-size-large;
line-height: @line-height-computed; line-height: @line-height-computed;
height: @line-height-computed;
&:hover, &:hover,
&:focus { &:focus {
@ -161,7 +163,8 @@
} }
@media (min-width: @grid-float-breakpoint) { @media (min-width: @grid-float-breakpoint) {
.navbar > .container & { .navbar > .container &,
.navbar > .container-fluid & {
margin-left: -@navbar-padding-horizontal; margin-left: -@navbar-padding-horizontal;
} }
} }
@ -180,9 +183,16 @@
padding: 9px 10px; padding: 9px 10px;
.navbar-vertical-align(34px); .navbar-vertical-align(34px);
background-color: transparent; background-color: transparent;
background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
border: 1px solid transparent; border: 1px solid transparent;
border-radius: @border-radius-base; border-radius: @border-radius-base;
// We remove the `outline` here, but later compensate by attaching `:hover`
// styles to `:focus`.
&:focus {
outline: none;
}
// Bars // Bars
.icon-bar { .icon-bar {
display: block; display: block;
@ -202,7 +212,7 @@
// Navbar nav links // Navbar nav links
// //
// Builds on top of the `.nav` components with it's own modifier class to make // Builds on top of the `.nav` components with its own modifier class to make
// the nav the full height of the horizontal nav (above 768px). // the nav the full height of the horizontal nav (above 768px).
.navbar-nav { .navbar-nav {
@ -214,7 +224,7 @@
line-height: @line-height-computed; line-height: @line-height-computed;
} }
@media (max-width: @screen-xs-max) { @media (max-width: @grid-float-breakpoint-max) {
// Dropdowns get custom display when collapsed // Dropdowns get custom display when collapsed
.open .dropdown-menu { .open .dropdown-menu {
position: static; position: static;
@ -246,12 +256,15 @@
> li { > li {
float: left; float: left;
> a { > a {
padding-top: ((@navbar-height - @line-height-computed) / 2); padding-top: @navbar-padding-vertical;
padding-bottom: ((@navbar-height - @line-height-computed) / 2); padding-bottom: @navbar-padding-vertical;
} }
} }
}
&.navbar-right:last-child {
margin-right: -@navbar-padding-horizontal;
}
}
} }
@ -285,7 +298,7 @@
.form-inline(); .form-inline();
.form-group { .form-group {
@media (max-width: @screen-xs-max) { @media (max-width: @grid-float-breakpoint-max) {
margin-bottom: 5px; margin-bottom: 5px;
} }
} }
@ -302,6 +315,11 @@
padding-top: 0; padding-top: 0;
padding-bottom: 0; padding-bottom: 0;
.box-shadow(none); .box-shadow(none);
// Outdent the form if last child to line up with content down the page
&.navbar-right:last-child {
margin-right: -@navbar-padding-horizontal;
}
} }
} }
@ -318,13 +336,6 @@
.border-bottom-radius(0); .border-bottom-radius(0);
} }
// Right aligned menus need alt position
.navbar-nav.pull-right > li > .dropdown-menu,
.navbar-nav > li > .dropdown-menu.pull-right {
left: auto;
right: 0;
}
// Buttons in navbars // Buttons in navbars
// //
@ -332,6 +343,13 @@
.navbar-btn { .navbar-btn {
.navbar-vertical-align(@input-height-base); .navbar-vertical-align(@input-height-base);
&.btn-sm {
.navbar-vertical-align(@input-height-small);
}
&.btn-xs {
.navbar-vertical-align(22);
}
} }
@ -340,12 +358,17 @@
// Add a class to make any element properly align itself vertically within the navbars. // Add a class to make any element properly align itself vertically within the navbars.
.navbar-text { .navbar-text {
float: left;
.navbar-vertical-align(@line-height-computed); .navbar-vertical-align(@line-height-computed);
@media (min-width: @grid-float-breakpoint) { @media (min-width: @grid-float-breakpoint) {
float: left;
margin-left: @navbar-padding-horizontal; margin-left: @navbar-padding-horizontal;
margin-right: @navbar-padding-horizontal; margin-right: @navbar-padding-horizontal;
// Outdent the form if last child to line up with content down the page
&.navbar-right:last-child {
margin-right: 0;
}
} }
} }
@ -414,15 +437,8 @@
border-color: @navbar-default-border; border-color: @navbar-default-border;
} }
// Dropdown menu items and carets // Dropdown menu items
.navbar-nav { .navbar-nav {
// Caret should match text color on hover
> .dropdown > a:hover .caret,
> .dropdown > a:focus .caret {
border-top-color: @navbar-default-link-hover-color;
border-bottom-color: @navbar-default-link-hover-color;
}
// Remove background color from open dropdown // Remove background color from open dropdown
> .open > a { > .open > a {
&, &,
@ -430,19 +446,10 @@
&:focus { &:focus {
background-color: @navbar-default-link-active-bg; background-color: @navbar-default-link-active-bg;
color: @navbar-default-link-active-color; color: @navbar-default-link-active-color;
.caret {
border-top-color: @navbar-default-link-active-color;
border-bottom-color: @navbar-default-link-active-color;
}
} }
} }
> .dropdown > a .caret {
border-top-color: @navbar-default-link-color;
border-bottom-color: @navbar-default-link-color;
}
@media (max-width: @grid-float-breakpoint-max) {
@media (max-width: @screen-xs-max) {
// Dropdowns get custom display when collapsed // Dropdowns get custom display when collapsed
.open .dropdown-menu { .open .dropdown-menu {
> li > a { > li > a {
@ -561,31 +568,16 @@
color: @navbar-inverse-link-active-color; color: @navbar-inverse-link-active-color;
} }
} }
> .dropdown > a:hover .caret {
border-top-color: @navbar-inverse-link-hover-color;
border-bottom-color: @navbar-inverse-link-hover-color;
}
> .dropdown > a .caret {
border-top-color: @navbar-inverse-link-color;
border-bottom-color: @navbar-inverse-link-color;
}
> .open > a {
&,
&:hover,
&:focus {
.caret {
border-top-color: @navbar-inverse-link-active-color;
border-bottom-color: @navbar-inverse-link-active-color;
}
}
}
@media (max-width: @screen-xs-max) { @media (max-width: @grid-float-breakpoint-max) {
// Dropdowns get custom display // Dropdowns get custom display
.open .dropdown-menu { .open .dropdown-menu {
> .dropdown-header { > .dropdown-header {
border-color: @navbar-inverse-border; border-color: @navbar-inverse-border;
} }
.divider {
background-color: @navbar-inverse-border;
}
> li > a { > li > a {
color: @navbar-inverse-link-color; color: @navbar-inverse-link-color;
&:hover, &:hover,

View File

@ -10,7 +10,7 @@
margin-bottom: 0; margin-bottom: 0;
padding-left: 0; // Override default ul/ol padding-left: 0; // Override default ul/ol
list-style: none; list-style: none;
.clearfix(); &:extend(.clearfix all);
> li { > li {
position: relative; position: relative;
@ -48,11 +48,6 @@
&:focus { &:focus {
background-color: @nav-link-hover-bg; background-color: @nav-link-hover-bg;
border-color: @link-color; border-color: @link-color;
.caret {
border-top-color: @link-hover-color;
border-bottom-color: @link-hover-color;
}
} }
} }
@ -96,7 +91,7 @@
} }
} }
// Active state, and it's :hover to override normal :hover // Active state, and its :hover to override normal :hover
&.active > a { &.active > a {
&, &,
&:hover, &:hover,
@ -138,11 +133,6 @@
&:focus { &:focus {
color: @nav-pills-active-link-hover-color; color: @nav-pills-active-link-hover-color;
background-color: @nav-pills-active-link-hover-bg; background-color: @nav-pills-active-link-hover-bg;
.caret {
border-top-color: @nav-pills-active-link-hover-color;
border-bottom-color: @nav-pills-active-link-hover-color;
}
} }
} }
} }
@ -243,16 +233,6 @@
// Dropdowns // Dropdowns
// ------------------------- // -------------------------
// Make dropdown carets use link color in navs
.nav .caret {
border-top-color: @link-color;
border-bottom-color: @link-color;
}
.nav a:hover .caret {
border-top-color: @link-hover-color;
border-bottom-color: @link-hover-color;
}
// Specific dropdowns // Specific dropdowns
.nav-tabs .dropdown-menu { .nav-tabs .dropdown-menu {
// make dropdown border overlap tab border // make dropdown border overlap tab border

View File

@ -1,6 +1,25 @@
/*! normalize.css v2.1.3 | MIT License | git.io/normalize */ /*! normalize.css v3.0.0 | MIT License | git.io/normalize */
//
// 1. Set default font family to sans-serif.
// 2. Prevent iOS text size adjust after orientation change, without disabling
// user zoom.
//
html {
font-family: sans-serif; // 1
-ms-text-size-adjust: 100%; // 2
-webkit-text-size-adjust: 100%; // 2
}
//
// Remove default margin.
//
body {
margin: 0;
}
// ==========================================================================
// HTML5 display definitions // HTML5 display definitions
// ========================================================================== // ==========================================================================
@ -24,13 +43,16 @@ summary {
} }
// //
// Correct `inline-block` display not defined in IE 8/9. // 1. Correct `inline-block` display not defined in IE 8/9.
// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
// //
audio, audio,
canvas, canvas,
progress,
video { video {
display: inline-block; display: inline-block; // 1
vertical-align: baseline; // 2
} }
// //
@ -53,31 +75,6 @@ template {
display: none; display: none;
} }
// ==========================================================================
// Base
// ==========================================================================
//
// 1. Set default font family to sans-serif.
// 2. Prevent iOS text size adjust after orientation change, without disabling
// user zoom.
//
html {
font-family: sans-serif; // 1
-ms-text-size-adjust: 100%; // 2
-webkit-text-size-adjust: 100%; // 2
}
//
// Remove default margin.
//
body {
margin: 0;
}
// ==========================================================================
// Links // Links
// ========================================================================== // ==========================================================================
@ -89,14 +86,6 @@ a {
background: transparent; background: transparent;
} }
//
// Address `outline` inconsistency between Chrome and other browsers.
//
a:focus {
outline: thin dotted;
}
// //
// Improve readability when focused and also mouse hovered in all browsers. // Improve readability when focused and also mouse hovered in all browsers.
// //
@ -106,19 +95,8 @@ a:hover {
outline: 0; outline: 0;
} }
// Text-level semantics
// ========================================================================== // ==========================================================================
// Typography
// ==========================================================================
//
// Address variable `h1` font-size and margin within `section` and `article`
// contexts in Firefox 4+, Safari 5, and Chrome.
//
h1 {
font-size: 2em;
margin: 0.67em 0;
}
// //
// Address styling not present in IE 8/9, Safari 5, and Chrome. // Address styling not present in IE 8/9, Safari 5, and Chrome.
@ -146,13 +124,13 @@ dfn {
} }
// //
// Address differences between Firefox and other browsers. // Address variable `h1` font-size and margin within `section` and `article`
// contexts in Firefox 4+, Safari 5, and Chrome.
// //
hr { h1 {
-moz-box-sizing: content-box; font-size: 2em;
box-sizing: content-box; margin: 0.67em 0;
height: 0;
} }
// //
@ -164,34 +142,6 @@ mark {
color: #000; color: #000;
} }
//
// Correct font family set oddly in Safari 5 and Chrome.
//
code,
kbd,
pre,
samp {
font-family: monospace, serif;
font-size: 1em;
}
//
// Improve readability of pre-formatted text in all browsers.
//
pre {
white-space: pre-wrap;
}
//
// Set consistent quote types.
//
q {
quotes: "\201C" "\201D" "\2018" "\2019";
}
// //
// Address inconsistent and variable font size in all browsers. // Address inconsistent and variable font size in all browsers.
// //
@ -220,7 +170,6 @@ sub {
bottom: -0.25em; bottom: -0.25em;
} }
// ==========================================================================
// Embedded content // Embedded content
// ========================================================================== // ==========================================================================
@ -240,8 +189,7 @@ svg:not(:root) {
overflow: hidden; overflow: hidden;
} }
// ========================================================================== // Grouping content
// Figures
// ========================================================================== // ==========================================================================
// //
@ -249,63 +197,77 @@ svg:not(:root) {
// //
figure { figure {
margin: 0; margin: 1em 40px;
}
//
// Address differences between Firefox and other browsers.
//
hr {
-moz-box-sizing: content-box;
box-sizing: content-box;
height: 0;
}
//
// Contain overflow in all browsers.
//
pre {
overflow: auto;
}
//
// Address odd `em`-unit font size rendering in all browsers.
//
code,
kbd,
pre,
samp {
font-family: monospace, monospace;
font-size: 1em;
} }
// ==========================================================================
// Forms // Forms
// ========================================================================== // ==========================================================================
// //
// Define consistent border, margin, and padding. // Known limitation: by default, Chrome and Safari on OS X allow very limited
// styling of `select`, unless a `border` property is set.
// //
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
// //
// 1. Correct `color` not being inherited in IE 8/9. // 1. Correct color not being inherited.
// 2. Remove padding so people aren't caught out if they zero out fieldsets. // Known issue: affects color of disabled elements.
// // 2. Correct font properties not being inherited.
legend {
border: 0; // 1
padding: 0; // 2
}
//
// 1. Correct font family not being inherited in all browsers.
// 2. Correct font size not being inherited in all browsers.
// 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. // 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
// //
button, button,
input, input,
optgroup,
select, select,
textarea { textarea {
font-family: inherit; // 1 color: inherit; // 1
font-size: 100%; // 2 font: inherit; // 2
margin: 0; // 3 margin: 0; // 3
} }
// //
// Address Firefox 4+ setting `line-height` on `input` using `!important` in // Address `overflow` set to `hidden` in IE 8/9/10.
// the UA stylesheet.
// //
button, button {
input { overflow: visible;
line-height: normal;
} }
// //
// Address inconsistent `text-transform` inheritance for `button` and `select`. // Address inconsistent `text-transform` inheritance for `button` and `select`.
// All other form control elements do not inherit `text-transform` values. // All other form control elements do not inherit `text-transform` values.
// Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. // Correct `button` style inheritance in Firefox, IE 8+, and Opera
// Correct `select` style inheritance in Firefox 4+ and Opera. // Correct `select` style inheritance in Firefox.
// //
button, button,
@ -338,6 +300,28 @@ html input[disabled] {
cursor: default; cursor: default;
} }
//
// Remove inner padding and border in Firefox 4+.
//
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0;
}
//
// Address Firefox 4+ setting `line-height` on `input` using `!important` in
// the UA stylesheet.
//
input {
line-height: normal;
}
//
// It's recommended that you don't attempt to style these elements.
// Firefox's implementation doesn't respect box-sizing, padding, or width.
// //
// 1. Address box sizing set to `content-box` in IE 8/9/10. // 1. Address box sizing set to `content-box` in IE 8/9/10.
// 2. Remove excess padding in IE 8/9/10. // 2. Remove excess padding in IE 8/9/10.
@ -349,6 +333,17 @@ input[type="radio"] {
padding: 0; // 2 padding: 0; // 2
} }
//
// Fix the cursor style for Chrome's increment/decrement buttons. For certain
// `font-size` values of the `input`, it causes the cursor style of the
// decrement button to change from `default` to `text`.
//
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
height: auto;
}
// //
// 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. // 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
// 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome // 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
@ -363,8 +358,9 @@ input[type="search"] {
} }
// //
// Remove inner padding and search cancel button in Safari 5 and Chrome // Remove inner padding and search cancel button in Safari and Chrome on OS X.
// on OS X. // Safari (but not Chrome) clips the cancel button when the search input has
// padding (and `textfield` appearance).
// //
input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-cancel-button,
@ -373,26 +369,42 @@ input[type="search"]::-webkit-search-decoration {
} }
// //
// Remove inner padding and border in Firefox 4+. // Define consistent border, margin, and padding.
// //
button::-moz-focus-inner, fieldset {
input::-moz-focus-inner { border: 1px solid #c0c0c0;
border: 0; margin: 0 2px;
padding: 0; padding: 0.35em 0.625em 0.75em;
} }
// //
// 1. Remove default vertical scrollbar in IE 8/9. // 1. Correct `color` not being inherited in IE 8/9.
// 2. Improve readability and alignment in all browsers. // 2. Remove padding so people aren't caught out if they zero out fieldsets.
//
legend {
border: 0; // 1
padding: 0; // 2
}
//
// Remove default vertical scrollbar in IE 8/9.
// //
textarea { textarea {
overflow: auto; // 1 overflow: auto;
vertical-align: top; // 2 }
//
// Don't inherit the `font-weight` (applied by a rule above).
// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
//
optgroup {
font-weight: bold;
} }
// ==========================================================================
// Tables // Tables
// ========================================================================== // ==========================================================================
@ -404,3 +416,8 @@ table {
border-collapse: collapse; border-collapse: collapse;
border-spacing: 0; border-spacing: 0;
} }
td,
th {
padding: 0;
}

View File

@ -8,22 +8,22 @@
margin: @line-height-computed 0; margin: @line-height-computed 0;
list-style: none; list-style: none;
text-align: center; text-align: center;
.clearfix(); &:extend(.clearfix all);
li { li {
display: inline; display: inline;
> a, > a,
> span { > span {
display: inline-block; display: inline-block;
padding: 5px 14px; padding: 5px 14px;
background-color: @pagination-bg; background-color: @pager-bg;
border: 1px solid @pagination-border; border: 1px solid @pager-border;
border-radius: @pager-border-radius; border-radius: @pager-border-radius;
} }
> a:hover, > a:hover,
> a:focus { > a:focus {
text-decoration: none; text-decoration: none;
background-color: @pagination-hover-bg; background-color: @pager-hover-bg;
} }
} }
@ -47,7 +47,7 @@
> a:focus, > a:focus,
> span { > span {
color: @pager-disabled-color; color: @pager-disabled-color;
background-color: @pagination-bg; background-color: @pager-bg;
cursor: not-allowed; cursor: not-allowed;
} }
} }

View File

@ -16,6 +16,7 @@
padding: @padding-base-vertical @padding-base-horizontal; padding: @padding-base-vertical @padding-base-horizontal;
line-height: @line-height-base; line-height: @line-height-base;
text-decoration: none; text-decoration: none;
color: @pagination-color;
background-color: @pagination-bg; background-color: @pagination-bg;
border: 1px solid @pagination-border; border: 1px solid @pagination-border;
margin-left: -1px; margin-left: -1px;
@ -39,7 +40,9 @@
> li > span { > li > span {
&:hover, &:hover,
&:focus { &:focus {
color: @pagination-hover-color;
background-color: @pagination-hover-bg; background-color: @pagination-hover-bg;
border-color: @pagination-hover-border;
} }
} }
@ -51,7 +54,7 @@
z-index: 2; z-index: 2;
color: @pagination-active-color; color: @pagination-active-color;
background-color: @pagination-active-bg; background-color: @pagination-active-bg;
border-color: @pagination-active-bg; border-color: @pagination-active-border;
cursor: default; cursor: default;
} }
} }
@ -64,8 +67,8 @@
> a:hover, > a:hover,
> a:focus { > a:focus {
color: @pagination-disabled-color; color: @pagination-disabled-color;
background-color: @pagination-bg; background-color: @pagination-disabled-bg;
border-color: @pagination-border; border-color: @pagination-disabled-border;
cursor: not-allowed; cursor: not-allowed;
} }
} }

View File

@ -14,8 +14,8 @@
// Panel contents // Panel contents
.panel-body { .panel-body {
padding: 15px; padding: @panel-body-padding;
.clearfix(); &:extend(.clearfix all);
} }
@ -27,19 +27,28 @@
.panel { .panel {
> .list-group { > .list-group {
margin-bottom: 0; margin-bottom: 0;
.list-group-item { .list-group-item {
border-width: 1px 0; border-width: 1px 0;
border-radius: 0;
// Remove border radius for top one
&:first-child { &:first-child {
.border-top-radius(0); border-top: 0;
} }
// But keep it for the last one
&:last-child { &:last-child {
border-bottom: 0; border-bottom: 0;
} }
} }
// Add border top radius for first one
&:first-child {
.list-group-item:first-child {
.border-top-radius((@panel-border-radius - 1));
}
}
// Add border bottom radius for last one
&:last-child {
.list-group-item:last-child {
.border-bottom-radius((@panel-border-radius - 1));
}
}
} }
} }
// Collapse space between when there's no additional content. // Collapse space between when there's no additional content.
@ -57,13 +66,51 @@
.panel { .panel {
> .table, > .table,
> .table-responsive { > .table-responsive > .table {
margin-bottom: 0; margin-bottom: 0;
} }
// Add border top radius for first one
> .table:first-child,
> .table-responsive:first-child > .table:first-child {
> thead:first-child,
> tbody:first-child {
> tr:first-child {
td:first-child,
th:first-child {
border-top-left-radius: (@panel-border-radius - 1);
}
td:last-child,
th:last-child {
border-top-right-radius: (@panel-border-radius - 1);
}
}
}
}
// Add border bottom radius for last one
> .table:last-child,
> .table-responsive:last-child > .table:last-child {
> tbody:last-child,
> tfoot:last-child {
> tr:last-child {
td:first-child,
th:first-child {
border-bottom-left-radius: (@panel-border-radius - 1);
}
td:last-child,
th:last-child {
border-bottom-right-radius: (@panel-border-radius - 1);
}
}
}
}
> .panel-body + .table, > .panel-body + .table,
> .panel-body + .table-responsive { > .panel-body + .table-responsive {
border-top: 1px solid @table-border-color; border-top: 1px solid @table-border-color;
} }
> .table > tbody:first-child > tr:first-child th,
> .table > tbody:first-child > tr:first-child td {
border-top: 0;
}
> .table-bordered, > .table-bordered,
> .table-responsive > .table-bordered { > .table-responsive > .table-bordered {
border: 0; border: 0;
@ -79,7 +126,10 @@
> td:last-child { > td:last-child {
border-right: 0; border-right: 0;
} }
&:first-child > th,
&:first-child > td {
border-top: 0;
}
&:last-child > th, &:last-child > th,
&:last-child > td { &:last-child > td {
border-bottom: 0; border-bottom: 0;
@ -87,6 +137,10 @@
} }
} }
} }
> .table-responsive {
border: 0;
margin-bottom: 0;
}
} }
@ -94,18 +148,20 @@
.panel-heading { .panel-heading {
padding: 10px 15px; padding: 10px 15px;
border-bottom: 1px solid transparent; border-bottom: 1px solid transparent;
.border-top-radius(@panel-border-radius - 1); .border-top-radius((@panel-border-radius - 1));
> .dropdown .dropdown-toggle { > .dropdown .dropdown-toggle {
color: inherit; color: inherit;
} }
} }
// Within heading, strip any `h*` tag of it's default margins for spacing. // Within heading, strip any `h*` tag of its default margins for spacing.
.panel-title { .panel-title {
margin-top: 0; margin-top: 0;
margin-bottom: 0; margin-bottom: 0;
font-size: ceil((@font-size-base * 1.125)); font-size: ceil((@font-size-base * 1.125));
color: inherit;
> a { > a {
color: inherit; color: inherit;
} }
@ -116,7 +172,7 @@
padding: 10px 15px; padding: 10px 15px;
background-color: @panel-footer-bg; background-color: @panel-footer-bg;
border-top: 1px solid @panel-inner-border; border-top: 1px solid @panel-inner-border;
.border-bottom-radius(@panel-border-radius - 1); .border-bottom-radius((@panel-border-radius - 1));
} }
@ -126,6 +182,8 @@
// the help of our collapse JavaScript plugin. // the help of our collapse JavaScript plugin.
.panel-group { .panel-group {
margin-bottom: @line-height-computed;
// Tighten up margin so it's only between panels // Tighten up margin so it's only between panels
.panel { .panel {
margin-bottom: 0; margin-bottom: 0;
@ -161,12 +219,12 @@
.panel-success { .panel-success {
.panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border); .panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border);
} }
.panel-info {
.panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border);
}
.panel-warning { .panel-warning {
.panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border); .panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border);
} }
.panel-danger { .panel-danger {
.panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border); .panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border);
} }
.panel-info {
.panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border);
}

View File

@ -50,10 +50,6 @@
max-width: 100% !important; max-width: 100% !important;
} }
@page {
margin: 2cm .5cm;
}
p, p,
h2, h2,
h3 { h3 {

View File

@ -12,18 +12,6 @@
to { background-position: 0 0; } to { background-position: 0 0; }
} }
// Firefox
@-moz-keyframes progress-bar-stripes {
from { background-position: 40px 0; }
to { background-position: 0 0; }
}
// Opera
@-o-keyframes progress-bar-stripes {
from { background-position: 0 0; }
to { background-position: 40px 0; }
}
// Spec and IE10+ // Spec and IE10+
@keyframes progress-bar-stripes { @keyframes progress-bar-stripes {
from { background-position: 40px 0; } from { background-position: 40px 0; }

View File

@ -23,187 +23,71 @@
// Visibility utilities // Visibility utilities
.visible-xs { .visible-xs {
.responsive-invisibility(); .responsive-invisibility();
@media (max-width: @screen-xs-max) { @media (max-width: @screen-xs-max) {
.responsive-visibility(); .responsive-visibility();
} }
&.visible-sm {
@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
.responsive-visibility();
}
}
&.visible-md {
@media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
.responsive-visibility();
}
}
&.visible-lg {
@media (min-width: @screen-lg-min) {
.responsive-visibility();
}
}
} }
.visible-sm { .visible-sm {
.responsive-invisibility(); .responsive-invisibility();
&.visible-xs {
@media (max-width: @screen-xs-max) {
.responsive-visibility();
}
}
@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
.responsive-visibility(); .responsive-visibility();
} }
&.visible-md {
@media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
.responsive-visibility();
}
}
&.visible-lg {
@media (min-width: @screen-lg-min) {
.responsive-visibility();
}
}
} }
.visible-md { .visible-md {
.responsive-invisibility(); .responsive-invisibility();
&.visible-xs {
@media (max-width: @screen-xs-max) {
.responsive-visibility();
}
}
&.visible-sm {
@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
.responsive-visibility();
}
}
@media (min-width: @screen-md-min) and (max-width: @screen-md-max) { @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
.responsive-visibility(); .responsive-visibility();
} }
&.visible-lg {
@media (min-width: @screen-lg-min) {
.responsive-visibility();
}
}
} }
.visible-lg { .visible-lg {
.responsive-invisibility(); .responsive-invisibility();
&.visible-xs {
@media (max-width: @screen-xs-max) {
.responsive-visibility();
}
}
&.visible-sm {
@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
.responsive-visibility();
}
}
&.visible-md {
@media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
.responsive-visibility();
}
}
@media (min-width: @screen-lg-min) { @media (min-width: @screen-lg-min) {
.responsive-visibility(); .responsive-visibility();
} }
} }
.hidden-xs { .hidden-xs {
.responsive-visibility();
@media (max-width: @screen-xs-max) { @media (max-width: @screen-xs-max) {
.responsive-invisibility(); .responsive-invisibility();
} }
&.hidden-sm {
@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
.responsive-invisibility();
}
}
&.hidden-md {
@media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
.responsive-invisibility();
}
}
&.hidden-lg {
@media (min-width: @screen-lg-min) {
.responsive-invisibility();
}
}
} }
.hidden-sm { .hidden-sm {
.responsive-visibility();
&.hidden-xs {
@media (max-width: @screen-xs-max) {
.responsive-invisibility();
}
}
@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
.responsive-invisibility(); .responsive-invisibility();
} }
&.hidden-md {
@media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
.responsive-invisibility();
}
}
&.hidden-lg {
@media (min-width: @screen-lg-min) {
.responsive-invisibility();
}
}
} }
.hidden-md { .hidden-md {
.responsive-visibility();
&.hidden-xs {
@media (max-width: @screen-xs-max) {
.responsive-invisibility();
}
}
&.hidden-sm {
@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
.responsive-invisibility();
}
}
@media (min-width: @screen-md-min) and (max-width: @screen-md-max) { @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
.responsive-invisibility(); .responsive-invisibility();
} }
&.hidden-lg {
@media (min-width: @screen-lg-min) {
.responsive-invisibility();
}
}
} }
.hidden-lg { .hidden-lg {
.responsive-visibility();
&.hidden-xs {
@media (max-width: @screen-xs-max) {
.responsive-invisibility();
}
}
&.hidden-sm {
@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
.responsive-invisibility();
}
}
&.hidden-md {
@media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
.responsive-invisibility();
}
}
@media (min-width: @screen-lg-min) { @media (min-width: @screen-lg-min) {
.responsive-invisibility(); .responsive-invisibility();
} }
} }
// Print utilities // Print utilities
//
// Media queries are placed on the inside to be mixin-friendly.
.visible-print { .visible-print {
.responsive-invisibility(); .responsive-invisibility();
}
@media print { @media print {
.visible-print {
.responsive-visibility(); .responsive-visibility();
} }
.hidden-print { }
.hidden-print {
@media print {
.responsive-invisibility(); .responsive-invisibility();
} }
} }

View File

@ -4,8 +4,13 @@
// Reset the box-sizing // Reset the box-sizing
//
*, // Heads up! This reset may cause conflicts with some third-party widgets.
// For recommendations on resolving such conflicts, see
// http://getbootstrap.com/getting-started/#third-box-sizing
* {
.box-sizing(border-box);
}
*:before, *:before,
*:after { *:after {
.box-sizing(border-box); .box-sizing(border-box);
@ -56,6 +61,16 @@ a {
} }
// Figures
//
// We reset this here because previously Normalize had no `figure` margins. This
// ensures we don't break anyone's use of the element.
figure {
margin: 0;
}
// Images // Images
img { img {

View File

@ -104,10 +104,12 @@ th {
// //
// Default zebra-stripe styles (alternating gray and transparent backgrounds) // Default zebra-stripe styles (alternating gray and transparent backgrounds)
.table-striped > tbody > tr:nth-child(odd) { .table-striped {
> td, > tbody > tr:nth-child(odd) {
> th { > td,
background-color: @table-bg-accent; > th {
background-color: @table-bg-accent;
}
} }
} }
@ -116,11 +118,12 @@ th {
// //
// Placed here since it has to come after the potential zebra striping // Placed here since it has to come after the potential zebra striping
.table-hover > tbody > tr:hover { .table-hover {
> td, > tbody > tr:hover {
> th { > td,
> th {
background-color: @table-bg-hover; background-color: @table-bg-hover;
}
} }
} }
@ -130,6 +133,7 @@ th {
// Reset default table behavior // Reset default table behavior
table col[class*="col-"] { table col[class*="col-"] {
position: static; // Prevent border hiding in Firefox and IE9/10 (see https://github.com/twbs/bootstrap/issues/11623)
float: none; float: none;
display: table-column; display: table-column;
} }
@ -137,6 +141,7 @@ table {
td, td,
th { th {
&[class*="col-"] { &[class*="col-"] {
position: static; // Prevent border hiding in Firefox and IE9/10 (see https://github.com/twbs/bootstrap/issues/11623)
float: none; float: none;
display: table-cell; display: table-cell;
} }
@ -149,21 +154,12 @@ table {
// Exact selectors below required to override `.table-striped` and prevent // Exact selectors below required to override `.table-striped` and prevent
// inheritance to nested tables. // inheritance to nested tables.
.table > thead > tr,
.table > tbody > tr,
.table > tfoot > tr {
> td.active,
> th.active,
&.active > td,
&.active > th {
background-color: @table-bg-active;
}
}
// Generate the contextual variants // Generate the contextual variants
.table-row-variant(success; @state-success-bg; @state-success-border); .table-row-variant(active; @table-bg-active);
.table-row-variant(danger; @state-danger-bg; @state-danger-border); .table-row-variant(success; @state-success-bg);
.table-row-variant(warning; @state-warning-bg; @state-warning-border); .table-row-variant(info; @state-info-bg);
.table-row-variant(warning; @state-warning-bg);
.table-row-variant(danger; @state-danger-bg);
// Responsive tables // Responsive tables

View File

@ -3,8 +3,8 @@
// Load core variables and mixins // Load core variables and mixins
// -------------------------------------------------- // --------------------------------------------------
@import "variables"; @import "variables.less";
@import "mixins"; @import "mixins.less";
@ -63,9 +63,9 @@
.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; } .btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }
.btn-primary { .btn-styles(@btn-primary-bg); } .btn-primary { .btn-styles(@btn-primary-bg); }
.btn-success { .btn-styles(@btn-success-bg); } .btn-success { .btn-styles(@btn-success-bg); }
.btn-info { .btn-styles(@btn-info-bg); }
.btn-warning { .btn-styles(@btn-warning-bg); } .btn-warning { .btn-styles(@btn-warning-bg); }
.btn-danger { .btn-styles(@btn-danger-bg); } .btn-danger { .btn-styles(@btn-danger-bg); }
.btn-info { .btn-styles(@btn-info-bg); }

View File

@ -5,11 +5,17 @@
// Mixin and adjust the regular image class // Mixin and adjust the regular image class
.thumbnail { .thumbnail {
.img-thumbnail(); display: block;
display: block; // Override the inline-block from `.img-thumbnail` padding: @thumbnail-padding;
margin-bottom: @line-height-computed; margin-bottom: @line-height-computed;
line-height: @line-height-base;
background-color: @thumbnail-bg;
border: 1px solid @thumbnail-border;
border-radius: @thumbnail-border-radius;
.transition(all .2s ease-in-out);
> img { > img,
a > img {
.img-responsive(); .img-responsive();
margin-left: auto; margin-left: auto;
margin-right: auto; margin-right: auto;

View File

@ -13,7 +13,7 @@
line-height: 1.4; line-height: 1.4;
.opacity(0); .opacity(0);
&.in { .opacity(.9); } &.in { .opacity(@tooltip-opacity); }
&.top { margin-top: -3px; padding: @tooltip-arrow-width 0; } &.top { margin-top: -3px; padding: @tooltip-arrow-width 0; }
&.right { margin-left: 3px; padding: 0 @tooltip-arrow-width; } &.right { margin-left: 3px; padding: 0 @tooltip-arrow-width; }
&.bottom { margin-top: 3px; padding: @tooltip-arrow-width 0; } &.bottom { margin-top: 3px; padding: @tooltip-arrow-width 0; }

View File

@ -3,75 +3,6 @@
// -------------------------------------------------- // --------------------------------------------------
// Body text
// -------------------------
p {
margin: 0 0 (@line-height-computed / 2);
}
.lead {
margin-bottom: @line-height-computed;
font-size: floor(@font-size-base * 1.15);
font-weight: 200;
line-height: 1.4;
@media (min-width: @screen-sm-min) {
font-size: (@font-size-base * 1.5);
}
}
// Emphasis & misc
// -------------------------
// Ex: 14px base font * 85% = about 12px
small,
.small { font-size: 85%; }
// Undo browser default styling
cite { font-style: normal; }
// Contextual emphasis
.text-muted {
color: @text-muted;
}
.text-primary {
color: @brand-primary;
&:hover {
color: darken(@brand-primary, 10%);
}
}
.text-warning {
color: @state-warning-text;
&:hover {
color: darken(@state-warning-text, 10%);
}
}
.text-danger {
color: @state-danger-text;
&:hover {
color: darken(@state-danger-text, 10%);
}
}
.text-success {
color: @state-success-text;
&:hover {
color: darken(@state-success-text, 10%);
}
}
.text-info {
color: @state-info-text;
&:hover {
color: darken(@state-info-text, 10%);
}
}
// Alignment
.text-left { text-align: left; }
.text-right { text-align: right; }
.text-center { text-align: center; }
// Headings // Headings
// ------------------------- // -------------------------
@ -90,9 +21,9 @@ h1, h2, h3, h4, h5, h6,
} }
} }
h1, h1, .h1,
h2, h2, .h2,
h3 { h3, .h3 {
margin-top: @line-height-computed; margin-top: @line-height-computed;
margin-bottom: (@line-height-computed / 2); margin-bottom: (@line-height-computed / 2);
@ -101,9 +32,9 @@ h3 {
font-size: 65%; font-size: 65%;
} }
} }
h4, h4, .h4,
h5, h5, .h5,
h6 { h6, .h6 {
margin-top: (@line-height-computed / 2); margin-top: (@line-height-computed / 2);
margin-bottom: (@line-height-computed / 2); margin-bottom: (@line-height-computed / 2);
@ -121,6 +52,84 @@ h5, .h5 { font-size: @font-size-h5; }
h6, .h6 { font-size: @font-size-h6; } h6, .h6 { font-size: @font-size-h6; }
// Body text
// -------------------------
p {
margin: 0 0 (@line-height-computed / 2);
}
.lead {
margin-bottom: @line-height-computed;
font-size: floor((@font-size-base * 1.15));
font-weight: 200;
line-height: 1.4;
@media (min-width: @screen-sm-min) {
font-size: (@font-size-base * 1.5);
}
}
// Emphasis & misc
// -------------------------
// Ex: 14px base font * 85% = about 12px
small,
.small { font-size: 85%; }
// Undo browser default styling
cite { font-style: normal; }
// Alignment
.text-left { text-align: left; }
.text-right { text-align: right; }
.text-center { text-align: center; }
.text-justify { text-align: justify; }
// Contextual colors
.text-muted {
color: @text-muted;
}
.text-primary {
.text-emphasis-variant(@brand-primary);
}
.text-success {
.text-emphasis-variant(@state-success-text);
}
.text-info {
.text-emphasis-variant(@state-info-text);
}
.text-warning {
.text-emphasis-variant(@state-warning-text);
}
.text-danger {
.text-emphasis-variant(@state-danger-text);
}
// Contextual backgrounds
// For now we'll leave these alongside the text classes until v4 when we can
// safely shift things around (per SemVer rules).
.bg-primary {
// Given the contrast here, this is the only class to have its color inverted
// automatically.
color: #fff;
.bg-variant(@brand-primary);
}
.bg-success {
.bg-variant(@state-success-bg);
}
.bg-info {
.bg-variant(@state-info-bg);
}
.bg-warning {
.bg-variant(@state-warning-bg);
}
.bg-danger {
.bg-variant(@state-danger-bg);
}
// Page header // Page header
// ------------------------- // -------------------------
@ -131,7 +140,6 @@ h6, .h6 { font-size: @font-size-h6; }
} }
// Lists // Lists
// -------------------------------------------------- // --------------------------------------------------
@ -171,6 +179,7 @@ ol {
// Description Lists // Description Lists
dl { dl {
margin-top: 0; // Remove browser default
margin-bottom: @line-height-computed; margin-bottom: @line-height-computed;
} }
dt, dt,
@ -200,7 +209,7 @@ dd {
} }
dd { dd {
margin-left: @component-offset-horizontal; margin-left: @component-offset-horizontal;
.clearfix(); // Clear the floated `dt` if an empty `dd` is present &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present
} }
} }
} }
@ -215,7 +224,7 @@ abbr[data-original-title] {
cursor: help; cursor: help;
border-bottom: 1px dotted @abbr-border-color; border-bottom: 1px dotted @abbr-border-color;
} }
abbr.initialism { .initialism {
font-size: 90%; font-size: 90%;
text-transform: uppercase; text-transform: uppercase;
} }
@ -224,43 +233,51 @@ abbr.initialism {
blockquote { blockquote {
padding: (@line-height-computed / 2) @line-height-computed; padding: (@line-height-computed / 2) @line-height-computed;
margin: 0 0 @line-height-computed; margin: 0 0 @line-height-computed;
font-size: (@font-size-base * 1.25);
border-left: 5px solid @blockquote-border-color; border-left: 5px solid @blockquote-border-color;
p {
font-size: (@font-size-base * 1.25); p,
font-weight: 300; ul,
line-height: 1.25; ol {
} &:last-child {
p:last-child { margin-bottom: 0;
margin-bottom: 0;
}
small {
display: block;
line-height: @line-height-base;
color: @blockquote-small-color;
&:before {
content: '\2014 \00A0'; // EM DASH, NBSP
} }
} }
// Float right with text-align: right // Note: Deprecated small and .small as of v3.1.0
&.pull-right { // Context: https://github.com/twbs/bootstrap/issues/11660
padding-right: 15px; footer,
padding-left: 0; small,
border-right: 5px solid @blockquote-border-color; .small {
border-left: 0; display: block;
p, font-size: 80%; // back to default font-size
small, line-height: @line-height-base;
.small { color: @blockquote-small-color;
text-align: right;
&:before {
content: '\2014 \00A0'; // em dash, nbsp
} }
small, }
.small { }
&:before {
content: ''; // Opposite alignment of blockquote
} //
&:after { // Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.
content: '\00A0 \2014'; // NBSP, EM DASH .blockquote-reverse,
} blockquote.pull-right {
padding-right: 15px;
padding-left: 0;
border-right: 5px solid @blockquote-border-color;
border-left: 0;
text-align: right;
// Account for citation
footer,
small,
.small {
&:before { content: ''; }
&:after {
content: '\00A0 \2014'; // nbsp, em dash
} }
} }
} }

View File

@ -3,11 +3,9 @@
// -------------------------------------------------- // --------------------------------------------------
// Global values //== Colors
// -------------------------------------------------- //
//## Gray and brand colors for use across Bootstrap.
// Grays
// -------------------------
@gray-darker: lighten(#000, 13.5%); // #222 @gray-darker: lighten(#000, 13.5%); // #222
@gray-dark: lighten(#000, 20%); // #333 @gray-dark: lighten(#000, 20%); // #333
@ -15,104 +13,127 @@
@gray-light: lighten(#000, 60%); // #999 @gray-light: lighten(#000, 60%); // #999
@gray-lighter: lighten(#000, 93.5%); // #eee @gray-lighter: lighten(#000, 93.5%); // #eee
// Brand colors
// -------------------------
@brand-primary: #428bca; @brand-primary: #428bca;
@brand-success: #5cb85c; @brand-success: #5cb85c;
@brand-info: #5bc0de;
@brand-warning: #f0ad4e; @brand-warning: #f0ad4e;
@brand-danger: #d9534f; @brand-danger: #d9534f;
@brand-info: #5bc0de;
// Scaffolding
// -------------------------
//== Scaffolding
//
// ## Settings for some of the most global styles.
//** Background color for `<body>`.
@body-bg: #fff; @body-bg: #fff;
//** Global text color on `<body>`.
@text-color: @gray-dark; @text-color: @gray-dark;
// Links //** Global textual link color.
// -------------------------
@link-color: @brand-primary; @link-color: @brand-primary;
//** Link hover color set via `darken()` function.
@link-hover-color: darken(@link-color, 15%); @link-hover-color: darken(@link-color, 15%);
// Typography
// ------------------------- //== Typography
//
//## Font, line-height, and color for body text, headings, and more.
@font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif; @font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif;
@font-family-serif: Georgia, "Times New Roman", Times, serif; @font-family-serif: Georgia, "Times New Roman", Times, serif;
@font-family-monospace: Monaco, Menlo, Consolas, "Courier New", monospace; //** Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.
@font-family-monospace: Menlo, Monaco, Consolas, "Courier New", monospace;
@font-family-base: @font-family-sans-serif; @font-family-base: @font-family-sans-serif;
@font-size-base: 14px; @font-size-base: 14px;
@font-size-large: ceil(@font-size-base * 1.25); // ~18px @font-size-large: ceil((@font-size-base * 1.25)); // ~18px
@font-size-small: ceil(@font-size-base * 0.85); // ~12px @font-size-small: ceil((@font-size-base * 0.85)); // ~12px
@font-size-h1: floor(@font-size-base * 2.6); // ~36px @font-size-h1: floor((@font-size-base * 2.6)); // ~36px
@font-size-h2: floor(@font-size-base * 2.15); // ~30px @font-size-h2: floor((@font-size-base * 2.15)); // ~30px
@font-size-h3: ceil(@font-size-base * 1.7); // ~24px @font-size-h3: ceil((@font-size-base * 1.7)); // ~24px
@font-size-h4: ceil(@font-size-base * 1.25); // ~18px @font-size-h4: ceil((@font-size-base * 1.25)); // ~18px
@font-size-h5: @font-size-base; @font-size-h5: @font-size-base;
@font-size-h6: ceil(@font-size-base * 0.85); // ~12px @font-size-h6: ceil((@font-size-base * 0.85)); // ~12px
//** Unit-less `line-height` for use in components like buttons.
@line-height-base: 1.428571429; // 20/14 @line-height-base: 1.428571429; // 20/14
@line-height-computed: floor(@font-size-base * @line-height-base); // ~20px //** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
@line-height-computed: floor((@font-size-base * @line-height-base)); // ~20px
@headings-font-family: @font-family-base; //** By default, this inherits from the `<body>`.
@headings-font-family: inherit;
@headings-font-weight: 500; @headings-font-weight: 500;
@headings-line-height: 1.1; @headings-line-height: 1.1;
@headings-color: inherit; @headings-color: inherit;
// Iconography //-- Iconography
// ------------------------- //
//## Specify custom locations of the include Glyphicons icon font. Useful for those including Bootstrap via Bower.
@icon-font-path: "../fonts/"; @icon-font-path: "../fonts/";
@icon-font-name: "glyphicons-halflings-regular"; @icon-font-name: "glyphicons-halflings-regular";
@icon-font-svg-id: "glyphicons_halflingsregular";
//== Components
//
//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
@padding-base-vertical: 6px;
@padding-base-horizontal: 12px;
@padding-large-vertical: 10px;
@padding-large-horizontal: 16px;
@padding-small-vertical: 5px;
@padding-small-horizontal: 10px;
@padding-xs-vertical: 1px;
@padding-xs-horizontal: 5px;
@line-height-large: 1.33;
@line-height-small: 1.5;
@border-radius-base: 4px;
@border-radius-large: 6px;
@border-radius-small: 3px;
//** Global color for active items (e.g., navs or dropdowns).
@component-active-color: #fff;
//** Global background color for active items (e.g., navs or dropdowns).
@component-active-bg: @brand-primary;
//** Width of the `border` for generating carets that indicator dropdowns.
@caret-width-base: 4px;
//** Carets increase slightly in size for larger components.
@caret-width-large: 5px;
// Components //== Tables
// ------------------------- //
// Based on 14px font-size and 1.428 line-height (~20px to start) //## Customizes the `.table` component with basic values, each used across all table variations.
@padding-base-vertical: 6px; //** Padding for `<th>`s and `<td>`s.
@padding-base-horizontal: 12px; @table-cell-padding: 8px;
//** Padding for cells in `.table-condensed`.
@table-condensed-cell-padding: 5px;
@padding-large-vertical: 10px; //** Default background color used for all tables.
@padding-large-horizontal: 16px; @table-bg: transparent;
//** Background color used for `.table-striped`.
@table-bg-accent: #f9f9f9;
//** Background color used for `.table-hover`.
@table-bg-hover: #f5f5f5;
@table-bg-active: @table-bg-hover;
@padding-small-vertical: 5px; //** Border color for table and cell borders.
@padding-small-horizontal: 10px; @table-border-color: #ddd;
@line-height-large: 1.33;
@line-height-small: 1.5;
@border-radius-base: 4px;
@border-radius-large: 6px;
@border-radius-small: 3px;
@component-active-color: #fff;
@component-active-bg: @brand-primary;
@caret-width-base: 4px;
@caret-width-large: 5px;
// Tables
// -------------------------
@table-cell-padding: 8px;
@table-condensed-cell-padding: 5px;
@table-bg: transparent; // overall background-color
@table-bg-accent: #f9f9f9; // for striping
@table-bg-hover: #f5f5f5;
@table-bg-active: @table-bg-hover;
@table-border-color: #ddd; // table and cell border
// Buttons //== Buttons
// ------------------------- //
//## For each of Bootstrap's buttons, define text, background and border color.
@btn-font-weight: normal; @btn-font-weight: normal;
@ -128,6 +149,10 @@
@btn-success-bg: @brand-success; @btn-success-bg: @brand-success;
@btn-success-border: darken(@btn-success-bg, 5%); @btn-success-border: darken(@btn-success-bg, 5%);
@btn-info-color: #fff;
@btn-info-bg: @brand-info;
@btn-info-border: darken(@btn-info-bg, 5%);
@btn-warning-color: #fff; @btn-warning-color: #fff;
@btn-warning-bg: @brand-warning; @btn-warning-bg: @brand-warning;
@btn-warning-border: darken(@btn-warning-bg, 5%); @btn-warning-border: darken(@btn-warning-bg, 5%);
@ -136,67 +161,87 @@
@btn-danger-bg: @brand-danger; @btn-danger-bg: @brand-danger;
@btn-danger-border: darken(@btn-danger-bg, 5%); @btn-danger-border: darken(@btn-danger-bg, 5%);
@btn-info-color: #fff;
@btn-info-bg: @brand-info;
@btn-info-border: darken(@btn-info-bg, 5%);
@btn-link-disabled-color: @gray-light; @btn-link-disabled-color: @gray-light;
// Forms //== Forms
// ------------------------- //
//##
//** `<input>` background color
@input-bg: #fff; @input-bg: #fff;
//** `<input disabled>` background color
@input-bg-disabled: @gray-lighter; @input-bg-disabled: @gray-lighter;
//** Text color for `<input>`s
@input-color: @gray; @input-color: @gray;
//** `<input>` border color
@input-border: #ccc; @input-border: #ccc;
//** `<input>` border radius
@input-border-radius: @border-radius-base; @input-border-radius: @border-radius-base;
//** Border color for inputs on focus
@input-border-focus: #66afe9; @input-border-focus: #66afe9;
//** Placeholder text color
@input-color-placeholder: @gray-light; @input-color-placeholder: @gray-light;
//** Default `.form-control` height
@input-height-base: (@line-height-computed + (@padding-base-vertical * 2) + 2); @input-height-base: (@line-height-computed + (@padding-base-vertical * 2) + 2);
@input-height-large: (floor(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2); //** Large `.form-control` height
@input-height-large: (ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2);
//** Small `.form-control` height
@input-height-small: (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2); @input-height-small: (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2);
@legend-color: @gray-dark; @legend-color: @gray-dark;
@legend-border-color: #e5e5e5; @legend-border-color: #e5e5e5;
//** Background color for textual input addons
@input-group-addon-bg: @gray-lighter; @input-group-addon-bg: @gray-lighter;
//** Border color for textual input addons
@input-group-addon-border-color: @input-border; @input-group-addon-border-color: @input-border;
// Dropdowns //== Dropdowns
// ------------------------- //
//## Dropdown menu container and contents.
//** Background for the dropdown menu.
@dropdown-bg: #fff; @dropdown-bg: #fff;
//** Dropdown menu `border-color`.
@dropdown-border: rgba(0,0,0,.15); @dropdown-border: rgba(0,0,0,.15);
//** Dropdown menu `border-color` **for IE8**.
@dropdown-fallback-border: #ccc; @dropdown-fallback-border: #ccc;
//** Divider color for between dropdown items.
@dropdown-divider-bg: #e5e5e5; @dropdown-divider-bg: #e5e5e5;
//** Dropdown link text color.
@dropdown-link-color: @gray-dark; @dropdown-link-color: @gray-dark;
//** Hover color for dropdown links.
@dropdown-link-hover-color: darken(@gray-dark, 5%); @dropdown-link-hover-color: darken(@gray-dark, 5%);
//** Hover background for dropdown links.
@dropdown-link-hover-bg: #f5f5f5; @dropdown-link-hover-bg: #f5f5f5;
//** Active dropdown menu item text color.
@dropdown-link-active-color: @component-active-color; @dropdown-link-active-color: @component-active-color;
//** Active dropdown menu item background color.
@dropdown-link-active-bg: @component-active-bg; @dropdown-link-active-bg: @component-active-bg;
//** Disabled dropdown menu item background color.
@dropdown-link-disabled-color: @gray-light; @dropdown-link-disabled-color: @gray-light;
//** Text color for headers within dropdown menus.
@dropdown-header-color: @gray-light; @dropdown-header-color: @gray-light;
// Note: Deprecated @dropdown-caret-color as of v3.1.0
@dropdown-caret-color: #000; @dropdown-caret-color: #000;
// COMPONENT VARIABLES //-- Z-index master list
// -------------------------------------------------- //
// Warning: Avoid customizing these values. They're used for a bird's eye view
// of components dependent on the z-axis and are designed to all work together.
// Z-index master list //
// ------------------------- // Note: These variables are not generated into the Customizer.
// Used for a bird's eye view of components dependent on the z-axis
// Try to avoid customizing these :)
@zindex-navbar: 1000; @zindex-navbar: 1000;
@zindex-dropdown: 1000; @zindex-dropdown: 1000;
@ -206,8 +251,10 @@
@zindex-modal-background: 1040; @zindex-modal-background: 1040;
@zindex-modal: 1050; @zindex-modal: 1050;
// Media queries breakpoints
// -------------------------------------------------- //== Media queries breakpoints
//
//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
// Extra small screen / phone // Extra small screen / phone
// Note: Deprecated @screen-xs and @screen-phone as of v3.0.1 // Note: Deprecated @screen-xs and @screen-phone as of v3.0.1
@ -239,26 +286,32 @@
@screen-md-max: (@screen-lg-min - 1); @screen-md-max: (@screen-lg-min - 1);
// Grid system //== Grid system
// -------------------------------------------------- //
//## Define your custom responsive grid.
// Number of columns in the grid system //** Number of columns in the grid.
@grid-columns: 12; @grid-columns: 12;
// Padding, to be divided by two and applied to the left and right of all columns //** Padding between columns. Gets divided in half for the left and right.
@grid-gutter-width: 30px; @grid-gutter-width: 30px;
// Point at which the navbar stops collapsing // Navbar collapse
//** Point at which the navbar becomes uncollapsed.
@grid-float-breakpoint: @screen-sm-min; @grid-float-breakpoint: @screen-sm-min;
//** Point at which the navbar begins collapsing.
@grid-float-breakpoint-max: (@grid-float-breakpoint - 1);
// Navbar //== Navbar
// ------------------------- //
//##
// Basics of a navbar // Basics of a navbar
@navbar-height: 50px; @navbar-height: 50px;
@navbar-margin-bottom: @line-height-computed; @navbar-margin-bottom: @line-height-computed;
@navbar-border-radius: @border-radius-base; @navbar-border-radius: @border-radius-base;
@navbar-padding-horizontal: floor(@grid-gutter-width / 2); @navbar-padding-horizontal: floor((@grid-gutter-width / 2));
@navbar-padding-vertical: ((@navbar-height - @line-height-computed) / 2); @navbar-padding-vertical: ((@navbar-height - @line-height-computed) / 2);
@navbar-collapse-max-height: 340px;
@navbar-default-color: #777; @navbar-default-color: #777;
@navbar-default-bg: #f8f8f8; @navbar-default-bg: #f8f8f8;
@ -280,12 +333,11 @@
// Navbar toggle // Navbar toggle
@navbar-default-toggle-hover-bg: #ddd; @navbar-default-toggle-hover-bg: #ddd;
@navbar-default-toggle-icon-bar-bg: #ccc; @navbar-default-toggle-icon-bar-bg: #888;
@navbar-default-toggle-border-color: #ddd; @navbar-default-toggle-border-color: #ddd;
// Inverted navbar // Inverted navbar
//
// Reset inverted navbar basics // Reset inverted navbar basics
@navbar-inverse-color: @gray-light; @navbar-inverse-color: @gray-light;
@navbar-inverse-bg: #222; @navbar-inverse-bg: #222;
@ -311,9 +363,11 @@
@navbar-inverse-toggle-border-color: #333; @navbar-inverse-toggle-border-color: #333;
// Navs //== Navs
// ------------------------- //
//##
//=== Shared nav styles
@nav-link-padding: 10px 15px; @nav-link-padding: 10px 15px;
@nav-link-hover-bg: @gray-lighter; @nav-link-hover-bg: @gray-lighter;
@ -321,9 +375,8 @@
@nav-disabled-link-hover-color: @gray-light; @nav-disabled-link-hover-color: @gray-light;
@nav-open-link-hover-color: #fff; @nav-open-link-hover-color: #fff;
@nav-open-caret-border-color: #fff;
// Tabs //== Tabs
@nav-tabs-border-color: #ddd; @nav-tabs-border-color: #ddd;
@nav-tabs-link-hover-border-color: @gray-lighter; @nav-tabs-link-hover-border-color: @gray-lighter;
@ -335,122 +388,188 @@
@nav-tabs-justified-link-border-color: #ddd; @nav-tabs-justified-link-border-color: #ddd;
@nav-tabs-justified-active-link-border-color: @body-bg; @nav-tabs-justified-active-link-border-color: @body-bg;
// Pills //== Pills
@nav-pills-border-radius: @border-radius-base; @nav-pills-border-radius: @border-radius-base;
@nav-pills-active-link-hover-bg: @component-active-bg; @nav-pills-active-link-hover-bg: @component-active-bg;
@nav-pills-active-link-hover-color: @component-active-color; @nav-pills-active-link-hover-color: @component-active-color;
// Pagination //== Pagination
// ------------------------- //
//##
@pagination-color: @link-color;
@pagination-bg: #fff; @pagination-bg: #fff;
@pagination-border: #ddd; @pagination-border: #ddd;
@pagination-hover-color: @link-hover-color;
@pagination-hover-bg: @gray-lighter; @pagination-hover-bg: @gray-lighter;
@pagination-hover-border: #ddd;
@pagination-active-bg: @brand-primary;
@pagination-active-color: #fff; @pagination-active-color: #fff;
@pagination-active-bg: @brand-primary;
@pagination-active-border: @brand-primary;
@pagination-disabled-color: @gray-light; @pagination-disabled-color: @gray-light;
@pagination-disabled-bg: #fff;
@pagination-disabled-border: #ddd;
// Pager //== Pager
// ------------------------- //
//##
@pager-bg: @pagination-bg;
@pager-border: @pagination-border;
@pager-border-radius: 15px; @pager-border-radius: 15px;
@pager-disabled-color: @gray-light;
@pager-hover-bg: @pagination-hover-bg;
@pager-active-bg: @pagination-active-bg;
@pager-active-color: @pagination-active-color;
@pager-disabled-color: @pagination-disabled-color;
// Jumbotron //== Jumbotron
// ------------------------- //
//##
@jumbotron-padding: 30px; @jumbotron-padding: 30px;
@jumbotron-color: inherit; @jumbotron-color: inherit;
@jumbotron-bg: @gray-lighter; @jumbotron-bg: @gray-lighter;
@jumbotron-heading-color: inherit; @jumbotron-heading-color: inherit;
@jumbotron-font-size: ceil(@font-size-base * 1.5); @jumbotron-font-size: ceil((@font-size-base * 1.5));
// Form states and alerts //== Form states and alerts
// ------------------------- //
//## Define colors for form feedback states and, by default, alerts.
@state-success-text: #468847; @state-success-text: #3c763d;
@state-success-bg: #dff0d8; @state-success-bg: #dff0d8;
@state-success-border: darken(spin(@state-success-bg, -10), 5%); @state-success-border: darken(spin(@state-success-bg, -10), 5%);
@state-info-text: #3a87ad; @state-info-text: #31708f;
@state-info-bg: #d9edf7; @state-info-bg: #d9edf7;
@state-info-border: darken(spin(@state-info-bg, -10), 7%); @state-info-border: darken(spin(@state-info-bg, -10), 7%);
@state-warning-text: #c09853; @state-warning-text: #8a6d3b;
@state-warning-bg: #fcf8e3; @state-warning-bg: #fcf8e3;
@state-warning-border: darken(spin(@state-warning-bg, -10), 5%); @state-warning-border: darken(spin(@state-warning-bg, -10), 5%);
@state-danger-text: #b94a48; @state-danger-text: #a94442;
@state-danger-bg: #f2dede; @state-danger-bg: #f2dede;
@state-danger-border: darken(spin(@state-danger-bg, -10), 5%); @state-danger-border: darken(spin(@state-danger-bg, -10), 5%);
// Tooltips //== Tooltips
// ------------------------- //
@tooltip-max-width: 200px; //##
@tooltip-color: #fff;
@tooltip-bg: #000;
//** Tooltip max width
@tooltip-max-width: 200px;
//** Tooltip text color
@tooltip-color: #fff;
//** Tooltip background color
@tooltip-bg: #000;
@tooltip-opacity: .9;
//** Tooltip arrow width
@tooltip-arrow-width: 5px; @tooltip-arrow-width: 5px;
//** Tooltip arrow color
@tooltip-arrow-color: @tooltip-bg; @tooltip-arrow-color: @tooltip-bg;
// Popovers //== Popovers
// ------------------------- //
//##
//** Popover body background color
@popover-bg: #fff; @popover-bg: #fff;
//** Popover maximum width
@popover-max-width: 276px; @popover-max-width: 276px;
//** Popover border color
@popover-border-color: rgba(0,0,0,.2); @popover-border-color: rgba(0,0,0,.2);
//** Popover fallback border color
@popover-fallback-border-color: #ccc; @popover-fallback-border-color: #ccc;
//** Popover title background color
@popover-title-bg: darken(@popover-bg, 3%); @popover-title-bg: darken(@popover-bg, 3%);
//** Popover arrow width
@popover-arrow-width: 10px; @popover-arrow-width: 10px;
//** Popover arrow color
@popover-arrow-color: #fff; @popover-arrow-color: #fff;
//** Popover outer arrow width
@popover-arrow-outer-width: (@popover-arrow-width + 1); @popover-arrow-outer-width: (@popover-arrow-width + 1);
//** Popover outer arrow color
@popover-arrow-outer-color: rgba(0,0,0,.25); @popover-arrow-outer-color: rgba(0,0,0,.25);
//** Popover outer arrow fallback color
@popover-arrow-outer-fallback-color: #999; @popover-arrow-outer-fallback-color: #999;
// Labels //== Labels
// ------------------------- //
//##
//** Default label background color
@label-default-bg: @gray-light; @label-default-bg: @gray-light;
//** Primary label background color
@label-primary-bg: @brand-primary; @label-primary-bg: @brand-primary;
//** Success label background color
@label-success-bg: @brand-success; @label-success-bg: @brand-success;
//** Info label background color
@label-info-bg: @brand-info; @label-info-bg: @brand-info;
//** Warning label background color
@label-warning-bg: @brand-warning; @label-warning-bg: @brand-warning;
//** Danger label background color
@label-danger-bg: @brand-danger; @label-danger-bg: @brand-danger;
//** Default label text color
@label-color: #fff; @label-color: #fff;
//** Default text color of a linked label
@label-link-hover-color: #fff; @label-link-hover-color: #fff;
// Modals //== Modals
// ------------------------- //
//##
//** Padding applied to the modal body
@modal-inner-padding: 20px; @modal-inner-padding: 20px;
//** Padding applied to the modal title
@modal-title-padding: 15px; @modal-title-padding: 15px;
//** Modal title line-height
@modal-title-line-height: @line-height-base; @modal-title-line-height: @line-height-base;
//** Background color of modal content area
@modal-content-bg: #fff; @modal-content-bg: #fff;
//** Modal content border color
@modal-content-border-color: rgba(0,0,0,.2); @modal-content-border-color: rgba(0,0,0,.2);
//** Modal content border color **for IE8**
@modal-content-fallback-border-color: #999; @modal-content-fallback-border-color: #999;
//** Modal backdrop background color
@modal-backdrop-bg: #000; @modal-backdrop-bg: #000;
//** Modal backdrop opacity
@modal-backdrop-opacity: .5;
//** Modal header border color
@modal-header-border-color: #e5e5e5; @modal-header-border-color: #e5e5e5;
//** Modal footer border color
@modal-footer-border-color: @modal-header-border-color; @modal-footer-border-color: @modal-header-border-color;
@modal-lg: 900px;
@modal-md: 600px;
@modal-sm: 300px;
//== Alerts
//
//## Define alert colors, border radius, and padding.
// Alerts
// -------------------------
@alert-padding: 15px; @alert-padding: 15px;
@alert-border-radius: @border-radius-base; @alert-border-radius: @border-radius-base;
@alert-link-font-weight: bold; @alert-link-font-weight: bold;
@ -472,38 +591,62 @@
@alert-danger-border: @state-danger-border; @alert-danger-border: @state-danger-border;
// Progress bars //== Progress bars
// ------------------------- //
//##
//** Background color of the whole progress component
@progress-bg: #f5f5f5; @progress-bg: #f5f5f5;
//** Progress bar text color
@progress-bar-color: #fff; @progress-bar-color: #fff;
//** Default progress bar color
@progress-bar-bg: @brand-primary; @progress-bar-bg: @brand-primary;
//** Success progress bar color
@progress-bar-success-bg: @brand-success; @progress-bar-success-bg: @brand-success;
//** Warning progress bar color
@progress-bar-warning-bg: @brand-warning; @progress-bar-warning-bg: @brand-warning;
//** Danger progress bar color
@progress-bar-danger-bg: @brand-danger; @progress-bar-danger-bg: @brand-danger;
//** Info progress bar color
@progress-bar-info-bg: @brand-info; @progress-bar-info-bg: @brand-info;
// List group //== List group
// ------------------------- //
@list-group-bg: #fff; //##
@list-group-border: #ddd;
@list-group-border-radius: @border-radius-base;
@list-group-hover-bg: #f5f5f5; //** Background color on `.list-group-item`
@list-group-active-color: @component-active-color; @list-group-bg: #fff;
@list-group-active-bg: @component-active-bg; //** `.list-group-item` border color
@list-group-active-border: @list-group-active-bg; @list-group-border: #ddd;
//** List group border radius
@list-group-border-radius: @border-radius-base;
@list-group-link-color: #555; //** Background color of single list elements on hover
@list-group-link-heading-color: #333; @list-group-hover-bg: #f5f5f5;
//** Text color of active list elements
@list-group-active-color: @component-active-color;
//** Background color of active list elements
@list-group-active-bg: @component-active-bg;
//** Border color of active list elements
@list-group-active-border: @list-group-active-bg;
@list-group-active-text-color: lighten(@list-group-active-bg, 40%);
@list-group-link-color: #555;
@list-group-link-heading-color: #333;
// Panels //== Panels
// ------------------------- //
//##
@panel-bg: #fff; @panel-bg: #fff;
@panel-inner-border: #ddd; @panel-body-padding: 15px;
@panel-border-radius: @border-radius-base; @panel-border-radius: @border-radius-base;
//** Border color for elements within panels
@panel-inner-border: #ddd;
@panel-footer-bg: #f5f5f5; @panel-footer-bg: #f5f5f5;
@panel-default-text: @gray-dark; @panel-default-text: @gray-dark;
@ -518,6 +661,10 @@
@panel-success-border: @state-success-border; @panel-success-border: @state-success-border;
@panel-success-heading-bg: @state-success-bg; @panel-success-heading-bg: @state-success-bg;
@panel-info-text: @state-info-text;
@panel-info-border: @state-info-border;
@panel-info-heading-bg: @state-info-bg;
@panel-warning-text: @state-warning-text; @panel-warning-text: @state-warning-text;
@panel-warning-border: @state-warning-border; @panel-warning-border: @state-warning-border;
@panel-warning-heading-bg: @state-warning-bg; @panel-warning-heading-bg: @state-warning-bg;
@ -526,34 +673,46 @@
@panel-danger-border: @state-danger-border; @panel-danger-border: @state-danger-border;
@panel-danger-heading-bg: @state-danger-bg; @panel-danger-heading-bg: @state-danger-bg;
@panel-info-text: @state-info-text;
@panel-info-border: @state-info-border;
@panel-info-heading-bg: @state-info-bg;
//== Thumbnails
//
//##
// Thumbnails //** Padding around the thumbnail image
// -------------------------
@thumbnail-padding: 4px; @thumbnail-padding: 4px;
//** Thumbnail background color
@thumbnail-bg: @body-bg; @thumbnail-bg: @body-bg;
//** Thumbnail border color
@thumbnail-border: #ddd; @thumbnail-border: #ddd;
//** Thumbnail border radius
@thumbnail-border-radius: @border-radius-base; @thumbnail-border-radius: @border-radius-base;
//** Custom text color for thumbnail captions
@thumbnail-caption-color: @text-color; @thumbnail-caption-color: @text-color;
//** Padding around the thumbnail caption
@thumbnail-caption-padding: 9px; @thumbnail-caption-padding: 9px;
// Wells //== Wells
// ------------------------- //
//##
@well-bg: #f5f5f5; @well-bg: #f5f5f5;
@well-border: darken(@well-bg, 7%);
// Badges //== Badges
// ------------------------- //
//##
@badge-color: #fff; @badge-color: #fff;
//** Linked badge text color on hover
@badge-link-hover-color: #fff; @badge-link-hover-color: #fff;
@badge-bg: @gray-light; @badge-bg: @gray-light;
//** Badge text color in active nav link
@badge-active-color: @link-color; @badge-active-color: @link-color;
//** Badge background color in active nav link
@badge-active-bg: #fff; @badge-active-bg: #fff;
@badge-font-weight: bold; @badge-font-weight: bold;
@ -561,16 +720,25 @@
@badge-border-radius: 10px; @badge-border-radius: 10px;
// Breadcrumbs //== Breadcrumbs
// ------------------------- //
@breadcrumb-bg: #f5f5f5; //##
@breadcrumb-color: #ccc;
@breadcrumb-active-color: @gray-light; @breadcrumb-padding-vertical: 8px;
@breadcrumb-separator: "/"; @breadcrumb-padding-horizontal: 15px;
//** Breadcrumb background color
@breadcrumb-bg: #f5f5f5;
//** Breadcrumb text color
@breadcrumb-color: #ccc;
//** Text color of current page in the breadcrumb
@breadcrumb-active-color: @gray-light;
//** Textual separator for between breadcrumb elements
@breadcrumb-separator: "/";
// Carousel //== Carousel
// ------------------------ //
//##
@carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6); @carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6);
@ -585,53 +753,75 @@
@carousel-caption-color: #fff; @carousel-caption-color: #fff;
// Close //== Close
// ------------------------ //
//##
@close-font-weight: bold; @close-font-weight: bold;
@close-color: #000; @close-color: #000;
@close-text-shadow: 0 1px 0 #fff; @close-text-shadow: 0 1px 0 #fff;
// Code //== Code
// ------------------------ //
//##
@code-color: #c7254e; @code-color: #c7254e;
@code-bg: #f9f2f4; @code-bg: #f9f2f4;
@kbd-color: #fff;
@kbd-bg: #333;
@pre-bg: #f5f5f5; @pre-bg: #f5f5f5;
@pre-color: @gray-dark; @pre-color: @gray-dark;
@pre-border-color: #ccc; @pre-border-color: #ccc;
@pre-scrollable-max-height: 340px; @pre-scrollable-max-height: 340px;
// Type
// ------------------------ //== Type
//
//##
//** Text muted color
@text-muted: @gray-light; @text-muted: @gray-light;
//** Abbreviations and acronyms border color
@abbr-border-color: @gray-light; @abbr-border-color: @gray-light;
//** Headings small color
@headings-small-color: @gray-light; @headings-small-color: @gray-light;
//** Blockquote small color
@blockquote-small-color: @gray-light; @blockquote-small-color: @gray-light;
//** Blockquote border color
@blockquote-border-color: @gray-lighter; @blockquote-border-color: @gray-lighter;
//** Page header border color
@page-header-border-color: @gray-lighter; @page-header-border-color: @gray-lighter;
// Miscellaneous
// -------------------------
// Hr border color //== Miscellaneous
//
//##
//** Horizontal line color.
@hr-border: @gray-lighter; @hr-border: @gray-lighter;
// Horizontal forms & lists //** Horizontal offset for forms and lists.
@component-offset-horizontal: 180px; @component-offset-horizontal: 180px;
// Container sizes //== Container sizes
// -------------------------------------------------- //
//## Define the maximum width of `.container` for different screen sizes.
// Small screen / tablet // Small screen / tablet
@container-tablet: ((720px + @grid-gutter-width)); @container-tablet: ((720px + @grid-gutter-width));
//** For `@screen-sm-min` and up.
@container-sm: @container-tablet; @container-sm: @container-tablet;
// Medium screen / desktop // Medium screen / desktop
@container-desktop: ((940px + @grid-gutter-width)); @container-desktop: ((940px + @grid-gutter-width));
//** For `@screen-md-min` and up.
@container-md: @container-desktop; @container-md: @container-desktop;
// Large screen / wide desktop // Large screen / wide desktop
@container-large-desktop: ((1140px + @grid-gutter-width)); @container-large-desktop: ((1140px + @grid-gutter-width));
//** For `@screen-lg-min` and up.
@container-lg: @container-large-desktop; @container-lg: @container-large-desktop;

View File

@ -9,7 +9,7 @@
padding: 19px; padding: 19px;
margin-bottom: 20px; margin-bottom: 20px;
background-color: @well-bg; background-color: @well-bg;
border: 1px solid darken(@well-bg, 7%); border: 1px solid @well-border;
border-radius: @border-radius-base; border-radius: @border-radius-base;
.box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
blockquote { blockquote {

539
public/js/lib/bootstrap.js vendored Normal file → Executable file

File diff suppressed because it is too large Load Diff