Setup CI tests (#100)

* use @xarc/xrun to streamline tasks in an imperative manner

* add lint-staged/husky for git hook tasks

* run prettier across all files

* fixing tests

* add ci test workflow

* add a ci workflow

* remove precommit in favor of husky

* add .prettierrc.js

* reformat with prettier
This commit is contained in:
Vu Nguyen
2021-01-13 23:05:05 -06:00
committed by GitHub
parent 649c64cf1d
commit 9ef655ac3b
117 changed files with 9484 additions and 4342 deletions

View File

@@ -1,9 +1,9 @@
@import "bootstrap/bootstrap";
@import "font-awesome/font-awesome";
@import "bootswatch/paper/bootswatch";
@import "bootswatch/paper/variables";
@import "variables";
@import "partials/_animations";
@import 'bootstrap/bootstrap';
@import 'font-awesome/font-awesome';
@import 'bootswatch/paper/bootswatch';
@import 'bootswatch/paper/variables';
@import 'variables';
@import 'partials/_animations';
body {
min-width: 357px;
@@ -18,11 +18,11 @@ a.navbar-brand {
}
div.container {
margin-top: 20px;
margin-top: 20px;
}
canvas#icon {
display: none;
display: none;
}
div#status {

View File

@@ -2,7 +2,6 @@
// Alerts
// --------------------------------------------------
// Base styles
// -------------------------

View File

@@ -2,7 +2,6 @@
// Badges
// --------------------------------------------------
// Base class
.badge {
display: inline-block;

View File

@@ -1,56 +1,56 @@
/*!
* Bootstrap v3.3.6 (http://getbootstrap.com)
* Copyright 2011-2015 Twitter, Inc.
* Bootstrap v3.3.7 (http://getbootstrap.com)
* Copyright 2011-2016 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
// Core variables and mixins
@import "variables.less";
@import "mixins.less";
@import 'variables.less';
@import 'mixins.less';
// Reset and dependencies
@import "normalize.less";
@import "print.less";
@import "glyphicons.less";
@import 'normalize.less';
@import 'print.less';
@import 'glyphicons.less';
// Core CSS
@import "scaffolding.less";
@import "type.less";
@import "code.less";
@import "grid.less";
@import "tables.less";
@import "forms.less";
@import "buttons.less";
@import 'scaffolding.less';
@import 'type.less';
@import 'code.less';
@import 'grid.less';
@import 'tables.less';
@import 'forms.less';
@import 'buttons.less';
// Components
@import "component-animations.less";
@import "dropdowns.less";
@import "button-groups.less";
@import "input-groups.less";
@import "navs.less";
@import "navbar.less";
@import "breadcrumbs.less";
@import "pagination.less";
@import "pager.less";
@import "labels.less";
@import "badges.less";
@import "jumbotron.less";
@import "thumbnails.less";
@import "alerts.less";
@import "progress-bars.less";
@import "media.less";
@import "list-group.less";
@import "panels.less";
@import "responsive-embed.less";
@import "wells.less";
@import "close.less";
@import 'component-animations.less';
@import 'dropdowns.less';
@import 'button-groups.less';
@import 'input-groups.less';
@import 'navs.less';
@import 'navbar.less';
@import 'breadcrumbs.less';
@import 'pagination.less';
@import 'pager.less';
@import 'labels.less';
@import 'badges.less';
@import 'jumbotron.less';
@import 'thumbnails.less';
@import 'alerts.less';
@import 'progress-bars.less';
@import 'media.less';
@import 'list-group.less';
@import 'panels.less';
@import 'responsive-embed.less';
@import 'wells.less';
@import 'close.less';
// Components w/ JavaScript
@import "modals.less";
@import "tooltip.less";
@import "popovers.less";
@import "carousel.less";
@import 'modals.less';
@import 'tooltip.less';
@import 'popovers.less';
@import 'carousel.less';
// Utility classes
@import "utilities.less";
@import "responsive-utilities.less";
@import 'utilities.less';
@import 'responsive-utilities.less';

View File

@@ -2,7 +2,6 @@
// Breadcrumbs
// --------------------------------------------------
.breadcrumb {
padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;
margin-bottom: @line-height-computed;
@@ -14,7 +13,7 @@
display: inline-block;
+ 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;
color: @breadcrumb-color;
}

View File

@@ -59,7 +59,7 @@
.border-right-radius(0);
}
}
// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it
// Need .dropdown-toggle since :last-child doesn't apply, given that a .dropdown-menu is used immediately after it
.btn-group > .btn:last-child:not(:first-child),
.btn-group > .dropdown-toggle:not(:first-child) {
.border-left-radius(0);
@@ -88,15 +88,19 @@
outline: 0;
}
// Sizing
//
// Remix the default button sizing classes into new ones for easier manipulation.
.btn-group-xs > .btn { &:extend(.btn-xs); }
.btn-group-sm > .btn { &:extend(.btn-sm); }
.btn-group-lg > .btn { &:extend(.btn-lg); }
.btn-group-xs > .btn {
&:extend(.btn-xs);
}
.btn-group-sm > .btn {
&:extend(.btn-sm);
}
.btn-group-lg > .btn {
&:extend(.btn-lg);
}
// Split button dropdowns
// ----------------------
@@ -114,7 +118,7 @@
// The clickable button for toggling the menu
// Remove the gradient and set the same inset shadow as the :active state
.btn-group.open .dropdown-toggle {
.box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
.box-shadow(inset 0 3px 5px rgba(0,0,0,0.125));
// Show no shadow for `.btn-link` since it has no other button styles.
&.btn-link {
@@ -122,7 +126,6 @@
}
}
// Reposition the caret
.btn .caret {
margin-left: 0;
@@ -137,7 +140,6 @@
border-width: 0 @caret-width-large @caret-width-large;
}
// Vertical button groups
// ----------------------
@@ -194,7 +196,6 @@
.border-top-radius(0);
}
// Justified button groups
// ----------------------
@@ -218,7 +219,6 @@
}
}
// Checkbox and radio options
//
// In order to support the browser's form validation feedback, powered by the
@@ -231,13 +231,13 @@
// See https://github.com/twbs/bootstrap/pull/12794 and
// https://github.com/twbs/bootstrap/pull/14559 for more information.
[data-toggle="buttons"] {
[data-toggle='buttons'] {
> .btn,
> .btn-group > .btn {
input[type="radio"],
input[type="checkbox"] {
input[type='radio'],
input[type='checkbox'] {
position: absolute;
clip: rect(0,0,0,0);
clip: rect(0, 0, 0, 0);
pointer-events: none;
}
}

View File

@@ -2,7 +2,6 @@
// Buttons
// --------------------------------------------------
// Base styles
// --------------------------------------------------
@@ -40,14 +39,14 @@
&.active {
outline: 0;
background-image: none;
.box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
.box-shadow(inset 0 3px 5px rgba(0,0,0,0.125));
}
&.disabled,
&[disabled],
fieldset[disabled] & {
cursor: @cursor-disabled;
.opacity(.65);
.opacity(0.65);
.box-shadow(none);
}
@@ -59,7 +58,6 @@
}
}
// Alternate buttons
// --------------------------------------------------
@@ -86,7 +84,6 @@
.button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border);
}
// Link buttons
// -------------------------
@@ -126,7 +123,6 @@
}
}
// Button Sizes
// --------------------------------------------------
@@ -142,7 +138,6 @@
.button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);
}
// Block button
// --------------------------------------------------
@@ -157,9 +152,9 @@
}
// Specificity overrides
input[type="submit"],
input[type="reset"],
input[type="button"] {
input[type='submit'],
input[type='reset'],
input[type='button'] {
&.btn-block {
width: 100%;
}

View File

@@ -2,7 +2,6 @@
// Carousel
// --------------------------------------------------
// Wrapper for the slide container and indicators
.carousel {
position: relative;
@@ -16,7 +15,7 @@
> .item {
display: none;
position: relative;
.transition(.6s ease-in-out left);
.transition(0.6s ease-in-out left);
// Account for jankitude on images
> img,
@@ -84,7 +83,6 @@
> .active.right {
left: 100%;
}
}
// Left/right controls for nav
@@ -107,12 +105,12 @@
// Set gradients for backgrounds
&.left {
#gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001));
#gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001));;
}
&.right {
left: auto;
right: 0;
#gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5));
#gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5));;
}
// Hover/focus state
@@ -121,7 +119,7 @@
outline: 0;
color: @carousel-control-color;
text-decoration: none;
.opacity(.9);
.opacity(0.9);
}
// Toggles
@@ -147,21 +145,20 @@
}
.icon-prev,
.icon-next {
width: 20px;
width: 20px;
height: 20px;
line-height: 1;
font-family: serif;
}
.icon-prev {
&:before {
content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)
content: '\2039'; // SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)
}
}
.icon-next {
&:before {
content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)
content: '\203a'; // SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)
}
}
}
@@ -184,7 +181,7 @@
li {
display: inline-block;
width: 10px;
width: 10px;
height: 10px;
margin: 1px;
text-indent: -999px;
@@ -202,11 +199,11 @@
// For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we
// set alpha transparency for the best results possible.
background-color: #000 \9; // IE8
background-color: rgba(0,0,0,0); // IE9
background-color: rgba(0, 0, 0, 0); // IE9
}
.active {
margin: 0;
width: 12px;
width: 12px;
height: 12px;
background-color: @carousel-indicator-active-bg;
}
@@ -231,10 +228,8 @@
}
}
// Scale up controls for tablets and up
@media screen and (min-width: @screen-sm-min) {
// Scale up the controls a smidge
.carousel-control {
.glyphicon-chevron-left,

View File

@@ -2,7 +2,6 @@
// Close icons
// --------------------------------------------------
.close {
float: right;
font-size: (@font-size-base * 1.5);
@@ -10,14 +9,14 @@
line-height: 1;
color: @close-color;
text-shadow: @close-text-shadow;
.opacity(.2);
.opacity(0.2);
&:hover,
&:focus {
color: @close-color;
text-decoration: none;
cursor: pointer;
.opacity(.5);
.opacity(0.5);
}
// Additional properties for button version

View File

@@ -2,7 +2,6 @@
// Code (inline and block)
// --------------------------------------------------
// Inline and block code styles
code,
kbd,
@@ -27,7 +26,7 @@ kbd {
color: @kbd-color;
background-color: @kbd-bg;
border-radius: @border-radius-small;
box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
kbd {
padding: 0;

View File

@@ -9,7 +9,7 @@
.fade {
opacity: 0;
.transition(opacity .15s linear);
.transition(opacity 0.15s linear);
&.in {
opacity: 1;
}
@@ -18,16 +18,22 @@
.collapse {
display: none;
&.in { display: block; }
tr&.in { display: table-row; }
tbody&.in { display: table-row-group; }
&.in {
display: block;
}
tr&.in {
display: table-row;
}
tbody&.in {
display: table-row-group;
}
}
.collapsing {
position: relative;
height: 0;
overflow: hidden;
.transition-property(~"height, visibility");
.transition-duration(.35s);
.transition-property(~'height, visibility');
.transition-duration(0.35s);
.transition-timing-function(ease);
}

View File

@@ -2,7 +2,6 @@
// Dropdown menus
// --------------------------------------------------
// Dropdown arrow/caret
.caret {
display: inline-block;
@@ -10,10 +9,10 @@
height: 0;
margin-left: 2px;
vertical-align: middle;
border-top: @caret-width-base dashed;
border-top: @caret-width-base solid ~"\9"; // IE8
border-top: @caret-width-base dashed;
border-top: @caret-width-base solid ~'\9'; // IE8
border-right: @caret-width-base solid transparent;
border-left: @caret-width-base solid transparent;
border-left: @caret-width-base solid transparent;
}
// The dropdown wrapper (div)
@@ -45,7 +44,7 @@
border: 1px solid @dropdown-fallback-border; // IE8 fallback
border: 1px solid @dropdown-border;
border-radius: @border-radius-base;
.box-shadow(0 6px 12px rgba(0,0,0,.175));
.box-shadow(0 6px 12px rgba(0,0,0,0.175));
background-clip: padding-box;
// Aligns the dropdown menu to right
@@ -186,8 +185,8 @@
.caret {
border-top: 0;
border-bottom: @caret-width-base dashed;
border-bottom: @caret-width-base solid ~"\9"; // IE8
content: "";
border-bottom: @caret-width-base solid ~'\9'; // IE8
content: '';
}
// Different positioning for bottom up menu
.dropdown-menu {
@@ -197,7 +196,6 @@
}
}
// Component alignment
//
// Reiterate per navbar.less and the modified component alignment there.

View File

@@ -2,7 +2,6 @@
// Forms
// --------------------------------------------------
// Normalize non-controls
//
// Restyle and baseline non-control form elements.
@@ -36,7 +35,6 @@ label {
font-weight: bold;
}
// Normalize form controls
//
// While most of our form styles require extra classes, some basic normalization
@@ -44,24 +42,24 @@ label {
// address browser inconsistencies.
// Override content-box in Normalize (* isn't specific enough)
input[type="search"] {
input[type='search'] {
.box-sizing(border-box);
}
// Position radios and checkboxes better
input[type="radio"],
input[type="checkbox"] {
input[type='radio'],
input[type='checkbox'] {
margin: 4px 0 0;
margin-top: 1px \9; // IE8-9
line-height: normal;
}
input[type="file"] {
input[type='file'] {
display: block;
}
// Make range inputs behave like textual form controls
input[type="range"] {
input[type='range'] {
display: block;
width: 100%;
}
@@ -73,9 +71,9 @@ select[size] {
}
// Focus for file, radio, and checkbox
input[type="file"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus {
input[type='file']:focus,
input[type='radio']:focus,
input[type='checkbox']:focus {
.tab-focus();
}
@@ -88,7 +86,6 @@ output {
color: @input-color;
}
// Common form controls
//
// Shared size and type resets for form controls. Apply `.form-control` to any
@@ -123,8 +120,8 @@ output {
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-radius: @input-border-radius; // Note: This has no effect on <select>s in some browsers, due to the limited stylability of <select>s in CSS.
.box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
.transition(~"border-color ease-in-out .15s, box-shadow ease-in-out .15s");
.box-shadow(inset 0 1px 1px rgba(0,0,0,0.075));
.transition(~'border-color ease-in-out .15s, box-shadow ease-in-out .15s');
// Customize the `:focus` state to imitate native WebKit styles.
.form-control-focus();
@@ -161,7 +158,6 @@ output {
}
}
// Search inputs in iOS
//
// This overrides the extra rounded corners on search inputs in iOS so that our
@@ -169,11 +165,10 @@ output {
// be added to `.form-control` as it's not specific enough. For details, see
// https://github.com/twbs/bootstrap/issues/11586.
input[type="search"] {
input[type='search'] {
-webkit-appearance: none;
}
// Special styles for iOS temporal inputs
//
// In Mobile Safari, setting `display: block` on temporal inputs causes the
@@ -181,13 +176,13 @@ input[type="search"] {
// set a pixel line-height that matches the given height of the input, but only
// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848
//
// Note that as of 8.3, iOS doesn't support `datetime` or `week`.
// Note that as of 9.3, iOS doesn't support `week`.
@media screen and (-webkit-min-device-pixel-ratio: 0) {
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"] {
input[type='date'],
input[type='time'],
input[type='datetime-local'],
input[type='month'] {
&.form-control {
line-height: @input-height-base;
}
@@ -204,7 +199,6 @@ input[type="search"] {
}
}
// Form groups
//
// Designed to help with the organization and spacing of vertical forms. For
@@ -214,7 +208,6 @@ input[type="search"] {
margin-bottom: @form-group-margin-bottom;
}
// Checkboxes and radios
//
// Indent the labels to position radios/checkboxes as hanging controls.
@@ -234,10 +227,10 @@ input[type="search"] {
cursor: pointer;
}
}
.radio input[type="radio"],
.radio-inline input[type="radio"],
.checkbox input[type="checkbox"],
.checkbox-inline input[type="checkbox"] {
.radio input[type='radio'],
.radio-inline input[type='radio'],
.checkbox input[type='checkbox'],
.checkbox-inline input[type='checkbox'] {
position: absolute;
margin-left: -20px;
margin-top: 4px \9;
@@ -269,8 +262,8 @@ input[type="search"] {
// Some special care is needed because <label>s don't inherit their parent's `cursor`.
//
// Note: Neither radios nor checkboxes can be readonly.
input[type="radio"],
input[type="checkbox"] {
input[type='radio'],
input[type='checkbox'] {
&[disabled],
&.disabled,
fieldset[disabled] & {
@@ -296,7 +289,6 @@ input[type="checkbox"] {
}
}
// Static form control text
//
// Apply class to a `p` element to make any string of text align with labels in
@@ -317,7 +309,6 @@ input[type="checkbox"] {
}
}
// Form control sizing
//
// Build on `.form-control` with modifier classes to decrease or increase the
@@ -382,7 +373,6 @@ input[type="checkbox"] {
}
}
// Form control feedback states
//
// Apply contextual and semantic states to individual form controls.
@@ -437,7 +427,6 @@ input[type="checkbox"] {
// Reposition feedback icon if input has visible label above
.has-feedback label {
& ~ .form-control-feedback {
top: (@line-height-computed + 5); // Height of the `label` and its margin
}
@@ -446,7 +435,6 @@ input[type="checkbox"] {
}
}
// Help text
//
// Apply to any element you wish to create light text for placement immediately
@@ -459,7 +447,6 @@ input[type="checkbox"] {
color: lighten(@text-color, 25%); // lighten the text some for contrast
}
// Inline forms
//
// Make forms appear inline(-block) by adding the `.form-inline` class. Inline
@@ -472,7 +459,6 @@ input[type="checkbox"] {
// Heads up! This is mixin-ed into `.navbar-form` in navbars.less.
.form-inline {
// Kick in the inline
@media (min-width: @screen-sm-min) {
// Inline-block all the things for "inline"
@@ -528,8 +514,8 @@ input[type="checkbox"] {
padding-left: 0;
}
}
.radio input[type="radio"],
.checkbox input[type="checkbox"] {
.radio input[type='radio'],
.checkbox input[type='checkbox'] {
position: relative;
margin-left: 0;
}
@@ -541,14 +527,12 @@ input[type="checkbox"] {
}
}
// Horizontal forms
//
// Horizontal forms are built on grid classes and allow you to create forms with
// labels on the left and inputs on the right.
.form-horizontal {
// Consistent vertical alignment of radios and checkboxes
//
// Labels also get some reset styles, but that is scoped to a media query below.

File diff suppressed because it is too large Load Diff

View File

@@ -2,7 +2,6 @@
// Grid system
// --------------------------------------------------
// Container widths
//
// Set the container width, and override it for fixed navbars in media queries.
@@ -21,7 +20,6 @@
}
}
// Fluid container
//
// Utilizes the mixin meant for fixed width containers, but without any defined
@@ -31,7 +29,6 @@
.container-fixed();
}
// Row
//
// Rows contain and clear the floats of your columns.
@@ -40,14 +37,12 @@
.make-row();
}
// Columns
//
// Common styles for small and large grid columns
.make-grid-columns();
// Extra small grid
//
// Columns, offsets, pushes, and pulls for extra small devices like
@@ -55,7 +50,6 @@
.make-grid(xs);
// Small grid
//
// Columns, offsets, pushes, and pulls for the small device range, from phones
@@ -65,7 +59,6 @@
.make-grid(sm);
}
// Medium grid
//
// Columns, offsets, pushes, and pulls for the desktop device range.
@@ -74,7 +67,6 @@
.make-grid(md);
}
// Large grid
//
// Columns, offsets, pushes, and pulls for the large desktop device range.

View File

@@ -10,7 +10,7 @@
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
&[class*="col-"] {
&[class*='col-'] {
float: none;
padding-left: 0;
padding-right: 0;
@@ -29,7 +29,7 @@
width: 100%;
margin-bottom: 0;
&:focus {
z-index: 3;
}
@@ -52,7 +52,6 @@
.input-sm();
}
// Display as table-cell
// -------------------------
.input-group-addon,
@@ -98,8 +97,8 @@
}
// Nuke default margins from checkboxes and radios to vertically center within.
input[type="radio"],
input[type="checkbox"] {
input[type='radio'],
input[type='checkbox'] {
margin-top: 0;
}
}

View File

@@ -2,9 +2,8 @@
// Jumbotron
// --------------------------------------------------
.jumbotron {
padding-top: @jumbotron-padding;
padding-top: @jumbotron-padding;
padding-bottom: @jumbotron-padding;
margin-bottom: @jumbotron-padding;
color: @jumbotron-color;
@@ -28,7 +27,7 @@
.container &,
.container-fluid & {
border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container
padding-left: (@grid-gutter-width / 2);
padding-left: (@grid-gutter-width / 2);
padding-right: (@grid-gutter-width / 2);
}
@@ -37,12 +36,12 @@
}
@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);
.container &,
.container-fluid & {
padding-left: (@jumbotron-padding * 2);
padding-left: (@jumbotron-padding * 2);
padding-right: (@jumbotron-padding * 2);
}

View File

@@ -4,7 +4,7 @@
.label {
display: inline;
padding: .2em .6em .3em;
padding: 0.2em 0.6em 0.3em;
font-size: 75%;
font-weight: bold;
line-height: 1;
@@ -12,7 +12,7 @@
text-align: center;
white-space: nowrap;
vertical-align: baseline;
border-radius: .25em;
border-radius: 0.25em;
// Add hover effects, but only for links
a& {

View File

@@ -2,7 +2,6 @@
// List groups
// --------------------------------------------------
// Base class
//
// Easily usable on <ul>, <ol>, or <div>.
@@ -13,7 +12,6 @@
padding-left: 0; // reset padding because ul and ol
}
// Individual list items
//
// Use on `li`s or `div`s within the `.list-group` parent.
@@ -37,7 +35,6 @@
}
}
// Interactive list items
//
// Use anchor or button elements instead of `li`s or `div`s to create interactive items.
@@ -104,7 +101,6 @@ button.list-group-item {
}
}
// Contextual variants
//
// Add modifier classes to change text and background color on individual items.
@@ -115,7 +111,6 @@ button.list-group-item {
.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
//
// Extra classes for creating well-formatted content within `.list-group-item`s.

View File

@@ -2,39 +2,39 @@
// --------------------------------------------------
// Utilities
@import "mixins/hide-text.less";
@import "mixins/opacity.less";
@import "mixins/image.less";
@import "mixins/labels.less";
@import "mixins/reset-filter.less";
@import "mixins/resize.less";
@import "mixins/responsive-visibility.less";
@import "mixins/size.less";
@import "mixins/tab-focus.less";
@import "mixins/reset-text.less";
@import "mixins/text-emphasis.less";
@import "mixins/text-overflow.less";
@import "mixins/vendor-prefixes.less";
@import 'mixins/hide-text.less';
@import 'mixins/opacity.less';
@import 'mixins/image.less';
@import 'mixins/labels.less';
@import 'mixins/reset-filter.less';
@import 'mixins/resize.less';
@import 'mixins/responsive-visibility.less';
@import 'mixins/size.less';
@import 'mixins/tab-focus.less';
@import 'mixins/reset-text.less';
@import 'mixins/text-emphasis.less';
@import 'mixins/text-overflow.less';
@import 'mixins/vendor-prefixes.less';
// Components
@import "mixins/alerts.less";
@import "mixins/buttons.less";
@import "mixins/panels.less";
@import "mixins/pagination.less";
@import "mixins/list-group.less";
@import "mixins/nav-divider.less";
@import "mixins/forms.less";
@import "mixins/progress-bar.less";
@import "mixins/table-row.less";
@import 'mixins/alerts.less';
@import 'mixins/buttons.less';
@import 'mixins/panels.less';
@import 'mixins/pagination.less';
@import 'mixins/list-group.less';
@import 'mixins/nav-divider.less';
@import 'mixins/forms.less';
@import 'mixins/progress-bar.less';
@import 'mixins/table-row.less';
// Skins
@import "mixins/background-variant.less";
@import "mixins/border-radius.less";
@import "mixins/gradients.less";
@import 'mixins/background-variant.less';
@import 'mixins/border-radius.less';
@import 'mixins/gradients.less';
// Layout
@import "mixins/clearfix.less";
@import "mixins/center-block.less";
@import "mixins/nav-vertical-align.less";
@import "mixins/grid-framework.less";
@import "mixins/grid.less";
@import 'mixins/clearfix.less';
@import 'mixins/center-block.less';
@import 'mixins/nav-vertical-align.less';
@import 'mixins/grid-framework.less';
@import 'mixins/grid.less';

View File

@@ -2,17 +2,17 @@
.border-top-radius(@radius) {
border-top-right-radius: @radius;
border-top-left-radius: @radius;
border-top-left-radius: @radius;
}
.border-right-radius(@radius) {
border-bottom-right-radius: @radius;
border-top-right-radius: @radius;
border-top-right-radius: @radius;
}
.border-bottom-radius(@radius) {
border-bottom-right-radius: @radius;
border-bottom-left-radius: @radius;
border-bottom-left-radius: @radius;
}
.border-left-radius(@radius) {
border-bottom-left-radius: @radius;
border-top-left-radius: @radius;
border-top-left-radius: @radius;
}

View File

@@ -12,26 +12,26 @@
&.focus {
color: @color;
background-color: darken(@background, 10%);
border-color: darken(@border, 25%);
border-color: darken(@border, 25%);
}
&:hover {
color: @color;
background-color: darken(@background, 10%);
border-color: darken(@border, 12%);
border-color: darken(@border, 12%);
}
&:active,
&.active,
.open > .dropdown-toggle& {
color: @color;
background-color: darken(@background, 10%);
border-color: darken(@border, 12%);
border-color: darken(@border, 12%);
&:hover,
&:focus,
&.focus {
color: @color;
background-color: darken(@background, 17%);
border-color: darken(@border, 25%);
border-color: darken(@border, 25%);
}
}
&:active,
@@ -46,7 +46,7 @@
&:focus,
&.focus {
background-color: @background;
border-color: @border;
border-color: @border;
}
}

View File

@@ -13,7 +13,7 @@
.clearfix() {
&:before,
&:after {
content: " "; // 1
content: ' '; // 1
display: table; // 2
}
&:after {

View File

@@ -14,16 +14,16 @@
&.radio label,
&.checkbox label,
&.radio-inline label,
&.checkbox-inline label {
&.checkbox-inline label {
color: @text-color;
}
// Set the border and box shadow on specific inputs to match
.form-control {
border-color: @border-color;
.box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
.box-shadow(inset 0 1px 1px rgba(0,0,0,0.075)); // Redeclare so transitions work
&:focus {
border-color: darken(@border-color, 10%);
@shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);
@shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px lighten(@border-color, 20%);
.box-shadow(@shadow);
}
}
@@ -39,7 +39,6 @@
}
}
// Form control focus state
//
// Generate a customized focus state and for any input with the specified color,
@@ -53,11 +52,11 @@
// Example usage: change the default blue border and shadow to white for better
// contrast against a dark gray background.
.form-control-focus(@color: @input-border-focus) {
@color-rgba: rgba(red(@color), green(@color), blue(@color), .6);
@color-rgba: rgba(red(@color), green(@color), blue(@color), 0.6);
&:focus {
border-color: @color;
outline: 0;
.box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}");
.box-shadow(~'inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}');
}
}

View File

@@ -1,17 +1,34 @@
// Gradients
#gradient {
// Horizontal gradient, from left to right
//
// Creates two color stops, start and end, by specifying a color and position for each color stop.
// Color stops are not available in IE9 and below.
.horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+
background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12
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: -webkit-linear-gradient(
left,
@start-color @start-percent,
@end-color @end-percent
); // Safari 5.1-6, Chrome 10+
background-image: -o-linear-gradient(
left,
@start-color @start-percent,
@end-color @end-percent
); // Opera 12
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-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
}
// Vertical gradient, from top to bottom
@@ -19,41 +36,111 @@
// Creates two color stops, start and end, by specifying a color and position for each color stop.
// Color stops are not available in IE9 and below.
.vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+
background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12
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: -webkit-linear-gradient(
top,
@start-color @start-percent,
@end-color @end-percent
); // Safari 5.1-6, Chrome 10+
background-image: -o-linear-gradient(
top,
@start-color @start-percent,
@end-color @end-percent
); // Opera 12
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-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) {
background-repeat: repeat-x;
background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+
background-image: -webkit-linear-gradient(
@deg,
@start-color,
@end-color
); // Safari 5.1-6, Chrome 10+
background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12
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, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
}
.horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
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: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);
background-repeat: no-repeat;
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
filter: e(
%(
"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",
argb(@start-color),
argb(@end-color)
)
); // IE9 and down, gets no color-stop at all for proper fallback
}
.vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
background-image: -o-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;
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) {
background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);
background-image: radial-gradient(circle, @inner-color, @outer-color);
background-repeat: no-repeat;
}
.striped(@color: rgba(255,255,255,.15); @angle: 45deg) {
background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
background-image: -o-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);
.striped(@color: rgba(255,255,255,0.15); @angle: 45deg) {
background-image: -webkit-linear-gradient(
@angle,
@color 25%,
transparent 25%,
transparent 50%,
@color 50%,
@color 75%,
transparent 75%,
transparent
);
background-image: -o-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
);
}
}

View File

@@ -5,21 +5,24 @@
.make-grid-columns() {
// Common styles for all sizes of grid columns, widths 1-12
.col(@index) { // initial
@item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
.col(@index) {
// initial
@item: ~'.col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}';
.col((@index + 1), @item);
}
.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}";
.col((@index + 1), ~"@{list}, @{item}");
.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}';
.col((@index + 1), ~'@{list}, @{item}');
}
.col(@index, @list) when (@index > @grid-columns) { // terminal
.col(@index, @list) when (@index > @grid-columns) {
// terminal
@{list} {
position: relative;
// Prevent columns from collapsing when empty
min-height: 1px;
// Inner gutter via padding
padding-left: ceil((@grid-gutter-width / 2));
padding-left: ceil((@grid-gutter-width / 2));
padding-right: floor((@grid-gutter-width / 2));
}
}
@@ -27,15 +30,18 @@
}
.float-grid-columns(@class) {
.col(@index) { // initial
@item: ~".col-@{class}-@{index}";
.col(@index) {
// initial
@item: ~'.col-@{class}-@{index}';
.col((@index + 1), @item);
}
.col(@index, @list) when (@index =< @grid-columns) { // general
@item: ~".col-@{class}-@{index}";
.col((@index + 1), ~"@{list}, @{item}");
.col(@index, @list) when (@index =< @grid-columns) {
// general
@item: ~'.col-@{class}-@{index}';
.col((@index + 1), ~'@{list}, @{item}');
}
.col(@index, @list) when (@index > @grid-columns) { // terminal
.col(@index, @list) when (@index > @grid-columns) {
// terminal
@{list} {
float: left;
}

View File

@@ -6,14 +6,14 @@
.container-fixed(@gutter: @grid-gutter-width) {
margin-right: auto;
margin-left: auto;
padding-left: floor((@gutter / 2));
padding-left: floor((@gutter / 2));
padding-right: ceil((@gutter / 2));
&:extend(.clearfix all);
}
// Creates a wrapper for a series of columns
.make-row(@gutter: @grid-gutter-width) {
margin-left: ceil((@gutter / -2));
margin-left: ceil((@gutter / -2));
margin-right: floor((@gutter / -2));
&:extend(.clearfix all);
}
@@ -24,7 +24,7 @@
float: left;
width: percentage((@columns / @grid-columns));
min-height: 1px;
padding-left: (@gutter / 2);
padding-left: (@gutter / 2);
padding-right: (@gutter / 2);
}
.make-xs-column-offset(@columns) {
@@ -41,7 +41,7 @@
.make-sm-column(@columns; @gutter: @grid-gutter-width) {
position: relative;
min-height: 1px;
padding-left: (@gutter / 2);
padding-left: (@gutter / 2);
padding-right: (@gutter / 2);
@media (min-width: @screen-sm-min) {
@@ -69,7 +69,7 @@
.make-md-column(@columns; @gutter: @grid-gutter-width) {
position: relative;
min-height: 1px;
padding-left: (@gutter / 2);
padding-left: (@gutter / 2);
padding-right: (@gutter / 2);
@media (min-width: @screen-md-min) {
@@ -97,7 +97,7 @@
.make-lg-column(@columns; @gutter: @grid-gutter-width) {
position: relative;
min-height: 1px;
padding-left: (@gutter / 2);
padding-left: (@gutter / 2);
padding-right: (@gutter / 2);
@media (min-width: @screen-lg-min) {

View File

@@ -8,7 +8,7 @@
// Deprecated as of v3.0.1 (has been removed in v4)
.hide-text() {
font: ~"0/0" a;
font: ~'0/0' a;
color: transparent;
text-shadow: none;
background-color: transparent;

View File

@@ -2,7 +2,6 @@
// - Responsive image
// - Retina image
// Responsive image
//
// Keep images from scaling beyond the width of their parents.
@@ -12,22 +11,20 @@
height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
}
// Retina image
//
// Short retina mixin for setting background-image and -size. Note that the
// spelling of `min--moz-device-pixel-ratio` is intentional.
.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {
background-image: url("@{file-1x}");
background-image: url('@{file-1x}');
@media
only screen and (-webkit-min-device-pixel-ratio: 2),
only screen and ( min--moz-device-pixel-ratio: 2),
only screen and ( -o-min-device-pixel-ratio: 2/1),
only screen and ( min-device-pixel-ratio: 2),
only screen and ( min-resolution: 192dpi),
only screen and ( min-resolution: 2dppx) {
background-image: url("@{file-2x}");
@media only screen and (-webkit-min-device-pixel-ratio: 2),
only screen and (min--moz-device-pixel-ratio: 2),
only screen and (-o-min-device-pixel-ratio: 2/1),
only screen and (min-device-pixel-ratio: 2),
only screen and (min-resolution: 192dpi),
only screen and (min-resolution: 2dppx) {
background-image: url('@{file-2x}');
background-size: @width-1x @height-1x;
}
}

View File

@@ -4,5 +4,5 @@
opacity: @opacity;
// IE8 filter
@opacity-ie: (@opacity * 100);
filter: ~"alpha(opacity=@{opacity-ie})";
filter: ~'alpha(opacity=@{opacity-ie})';
}

View File

@@ -4,5 +4,5 @@
// the IE filter for IE9 and below.
.reset-filter() {
filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
filter: e(%('progid:DXImageTransform.Microsoft.gradient(enabled = false)'));
}

View File

@@ -4,10 +4,16 @@
// More easily include all the states for responsive-utilities.less.
.responsive-visibility() {
display: block !important;
table& { display: table !important; }
tr& { display: table-row !important; }
table& {
display: table !important;
}
tr& {
display: table-row !important;
}
th&,
td& { display: table-cell !important; }
td& {
display: table-cell !important;
}
}
.responsive-invisibility() {

View File

@@ -1,9 +1,9 @@
// WebKit-style focus
.tab-focus() {
// Default
outline: thin dotted;
// WebKit
// WebKit-specific. Other browsers will keep their default outline style.
// (Initially tried to also force default via `outline: initial`,
// but that seems to erroneously remove the outline in Firefox altogether.)
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}

View File

@@ -14,40 +14,39 @@
// - Transitions
// - User Select
// Animations
.animation(@animation) {
-webkit-animation: @animation;
-o-animation: @animation;
animation: @animation;
-o-animation: @animation;
animation: @animation;
}
.animation-name(@name) {
-webkit-animation-name: @name;
animation-name: @name;
animation-name: @name;
}
.animation-duration(@duration) {
-webkit-animation-duration: @duration;
animation-duration: @duration;
animation-duration: @duration;
}
.animation-timing-function(@timing-function) {
-webkit-animation-timing-function: @timing-function;
animation-timing-function: @timing-function;
animation-timing-function: @timing-function;
}
.animation-delay(@delay) {
-webkit-animation-delay: @delay;
animation-delay: @delay;
animation-delay: @delay;
}
.animation-iteration-count(@iteration-count) {
-webkit-animation-iteration-count: @iteration-count;
animation-iteration-count: @iteration-count;
animation-iteration-count: @iteration-count;
}
.animation-direction(@direction) {
-webkit-animation-direction: @direction;
animation-direction: @direction;
animation-direction: @direction;
}
.animation-fill-mode(@fill-mode) {
-webkit-animation-fill-mode: @fill-mode;
animation-fill-mode: @fill-mode;
animation-fill-mode: @fill-mode;
}
// Backface visibility
@@ -56,8 +55,8 @@
.backface-visibility(@visibility) {
-webkit-backface-visibility: @visibility;
-moz-backface-visibility: @visibility;
backface-visibility: @visibility;
-moz-backface-visibility: @visibility;
backface-visibility: @visibility;
}
// Drop shadows
@@ -67,34 +66,34 @@
.box-shadow(@shadow) {
-webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1
box-shadow: @shadow;
box-shadow: @shadow;
}
// Box sizing
.box-sizing(@boxmodel) {
-webkit-box-sizing: @boxmodel;
-moz-box-sizing: @boxmodel;
box-sizing: @boxmodel;
-moz-box-sizing: @boxmodel;
box-sizing: @boxmodel;
}
// CSS3 Content Columns
.content-columns(@column-count; @column-gap: @grid-gutter-width) {
-webkit-column-count: @column-count;
-moz-column-count: @column-count;
column-count: @column-count;
-moz-column-count: @column-count;
column-count: @column-count;
-webkit-column-gap: @column-gap;
-moz-column-gap: @column-gap;
column-gap: @column-gap;
-moz-column-gap: @column-gap;
column-gap: @column-gap;
}
// Optional hyphenation
.hyphens(@mode: auto) {
word-wrap: break-word;
-webkit-hyphens: @mode;
-moz-hyphens: @mode;
-ms-hyphens: @mode; // IE10+
-o-hyphens: @mode;
hyphens: @mode;
-moz-hyphens: @mode;
-ms-hyphens: @mode; // IE10+
-o-hyphens: @mode;
hyphens: @mode;
}
// Placeholder text
@@ -104,124 +103,126 @@
color: @color;
opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526
}
&:-ms-input-placeholder { color: @color; } // Internet Explorer 10+
&::-webkit-input-placeholder { color: @color; } // Safari and Chrome
&:-ms-input-placeholder {
color: @color;
} // Internet Explorer 10+
&::-webkit-input-placeholder {
color: @color;
} // Safari and Chrome
}
// Transformations
.scale(@ratio) {
-webkit-transform: scale(@ratio);
-ms-transform: scale(@ratio); // IE9 only
-o-transform: scale(@ratio);
transform: scale(@ratio);
-ms-transform: scale(@ratio); // IE9 only
-o-transform: scale(@ratio);
transform: scale(@ratio);
}
.scale(@ratioX; @ratioY) {
-webkit-transform: scale(@ratioX, @ratioY);
-ms-transform: scale(@ratioX, @ratioY); // IE9 only
-o-transform: scale(@ratioX, @ratioY);
transform: scale(@ratioX, @ratioY);
-ms-transform: scale(@ratioX, @ratioY); // IE9 only
-o-transform: scale(@ratioX, @ratioY);
transform: scale(@ratioX, @ratioY);
}
.scaleX(@ratio) {
-webkit-transform: scaleX(@ratio);
-ms-transform: scaleX(@ratio); // IE9 only
-o-transform: scaleX(@ratio);
transform: scaleX(@ratio);
-ms-transform: scaleX(@ratio); // IE9 only
-o-transform: scaleX(@ratio);
transform: scaleX(@ratio);
}
.scaleY(@ratio) {
-webkit-transform: scaleY(@ratio);
-ms-transform: scaleY(@ratio); // IE9 only
-o-transform: scaleY(@ratio);
transform: scaleY(@ratio);
-ms-transform: scaleY(@ratio); // IE9 only
-o-transform: scaleY(@ratio);
transform: scaleY(@ratio);
}
.skew(@x; @y) {
-webkit-transform: skewX(@x) skewY(@y);
-ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
-o-transform: skewX(@x) skewY(@y);
transform: skewX(@x) skewY(@y);
-ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
-o-transform: skewX(@x) skewY(@y);
transform: skewX(@x) skewY(@y);
}
.translate(@x; @y) {
-webkit-transform: translate(@x, @y);
-ms-transform: translate(@x, @y); // IE9 only
-o-transform: translate(@x, @y);
transform: translate(@x, @y);
-ms-transform: translate(@x, @y); // IE9 only
-o-transform: translate(@x, @y);
transform: translate(@x, @y);
}
.translate3d(@x; @y; @z) {
-webkit-transform: translate3d(@x, @y, @z);
transform: translate3d(@x, @y, @z);
transform: translate3d(@x, @y, @z);
}
.rotate(@degrees) {
-webkit-transform: rotate(@degrees);
-ms-transform: rotate(@degrees); // IE9 only
-o-transform: rotate(@degrees);
transform: rotate(@degrees);
-ms-transform: rotate(@degrees); // IE9 only
-o-transform: rotate(@degrees);
transform: rotate(@degrees);
}
.rotateX(@degrees) {
-webkit-transform: rotateX(@degrees);
-ms-transform: rotateX(@degrees); // IE9 only
-o-transform: rotateX(@degrees);
transform: rotateX(@degrees);
-ms-transform: rotateX(@degrees); // IE9 only
-o-transform: rotateX(@degrees);
transform: rotateX(@degrees);
}
.rotateY(@degrees) {
-webkit-transform: rotateY(@degrees);
-ms-transform: rotateY(@degrees); // IE9 only
-o-transform: rotateY(@degrees);
transform: rotateY(@degrees);
-ms-transform: rotateY(@degrees); // IE9 only
-o-transform: rotateY(@degrees);
transform: rotateY(@degrees);
}
.perspective(@perspective) {
-webkit-perspective: @perspective;
-moz-perspective: @perspective;
perspective: @perspective;
-moz-perspective: @perspective;
perspective: @perspective;
}
.perspective-origin(@perspective) {
-webkit-perspective-origin: @perspective;
-moz-perspective-origin: @perspective;
perspective-origin: @perspective;
-moz-perspective-origin: @perspective;
perspective-origin: @perspective;
}
.transform-origin(@origin) {
-webkit-transform-origin: @origin;
-moz-transform-origin: @origin;
-ms-transform-origin: @origin; // IE9 only
transform-origin: @origin;
-moz-transform-origin: @origin;
-ms-transform-origin: @origin; // IE9 only
transform-origin: @origin;
}
// Transitions
.transition(@transition) {
-webkit-transition: @transition;
-o-transition: @transition;
transition: @transition;
-o-transition: @transition;
transition: @transition;
}
.transition-property(@transition-property) {
-webkit-transition-property: @transition-property;
transition-property: @transition-property;
transition-property: @transition-property;
}
.transition-delay(@transition-delay) {
-webkit-transition-delay: @transition-delay;
transition-delay: @transition-delay;
transition-delay: @transition-delay;
}
.transition-duration(@transition-duration) {
-webkit-transition-duration: @transition-duration;
transition-duration: @transition-duration;
transition-duration: @transition-duration;
}
.transition-timing-function(@timing-function) {
-webkit-transition-timing-function: @timing-function;
transition-timing-function: @timing-function;
transition-timing-function: @timing-function;
}
.transition-transform(@transition) {
-webkit-transition: -webkit-transform @transition;
-moz-transition: -moz-transform @transition;
-o-transition: -o-transform @transition;
transition: transform @transition;
-moz-transition: -moz-transform @transition;
-o-transition: -o-transform @transition;
transition: transform @transition;
}
// User select
// For selecting text on the page
.user-select(@select) {
-webkit-user-select: @select;
-moz-user-select: @select;
-ms-user-select: @select; // IE10+
user-select: @select;
-moz-user-select: @select;
-ms-user-select: @select; // IE10+
user-select: @select;
}

View File

@@ -31,9 +31,11 @@
// When fading in the modal, animate it to slide down
&.fade .modal-dialog {
.translate(0, -25%);
.transition-transform(~"0.3s ease-out");
.transition-transform(~'0.3s ease-out');
}
&.in .modal-dialog {
.translate(0, 0);
}
&.in .modal-dialog { .translate(0, 0) }
}
.modal-open .modal {
overflow-x: hidden;
@@ -54,7 +56,7 @@
border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc)
border: 1px solid @modal-content-border-color;
border-radius: @border-radius-large;
.box-shadow(0 3px 9px rgba(0,0,0,.5));
.box-shadow(0 3px 9px rgba(0,0,0,0.5));
background-clip: padding-box;
// Remove focus outline from opened modal
outline: 0;
@@ -70,8 +72,12 @@
z-index: @zindex-modal-background;
background-color: @modal-backdrop-bg;
// Fade for backdrop
&.fade { .opacity(0); }
&.in { .opacity(@modal-backdrop-opacity); }
&.fade {
.opacity(0);
}
&.in {
.opacity(@modal-backdrop-opacity);
}
}
// Modal header
@@ -138,13 +144,17 @@
margin: 30px auto;
}
.modal-content {
.box-shadow(0 5px 15px rgba(0,0,0,.5));
.box-shadow(0 5px 15px rgba(0,0,0,0.5));
}
// Modal sizes
.modal-sm { width: @modal-sm; }
.modal-sm {
width: @modal-sm;
}
}
@media (min-width: @screen-md-min) {
.modal-lg { width: @modal-lg; }
.modal-lg {
width: @modal-lg;
}
}

View File

@@ -2,7 +2,6 @@
// Navbars
// --------------------------------------------------
// Wrapper and base class
//
// Provide a static navbar from which we expand to create full-width, fixed, and
@@ -22,7 +21,6 @@
}
}
// Navbar heading
//
// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy
@@ -36,7 +34,6 @@
}
}
// Navbar collapse (body)
//
// Group your navbar content into this for easy collapsing and expanding across
@@ -50,9 +47,9 @@
.navbar-collapse {
overflow-x: visible;
padding-right: @navbar-padding-horizontal;
padding-left: @navbar-padding-horizontal;
padding-left: @navbar-padding-horizontal;
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, 0.1);
&:extend(.clearfix all);
-webkit-overflow-scrolling: touch;
@@ -98,7 +95,6 @@
}
}
// Both navbar header and collapse
//
// When a container is present, change the behavior of the header and collapse.
@@ -108,16 +104,15 @@
> .navbar-header,
> .navbar-collapse {
margin-right: -@navbar-padding-horizontal;
margin-left: -@navbar-padding-horizontal;
margin-left: -@navbar-padding-horizontal;
@media (min-width: @grid-float-breakpoint) {
margin-right: 0;
margin-left: 0;
margin-left: 0;
}
}
}
//
// Navbar alignment options
//
@@ -157,7 +152,6 @@
border-width: 1px 0 0;
}
// Brand/project name
.navbar-brand {
@@ -184,7 +178,6 @@
}
}
// Navbar toggle
//
// Custom button for toggling the `.navbar-collapse`, powered by the collapse
@@ -223,7 +216,6 @@
}
}
// Navbar nav links
//
// Builds on top of the `.nav` components with its own modifier class to make
@@ -233,7 +225,7 @@
margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal;
> li > a {
padding-top: 10px;
padding-top: 10px;
padding-bottom: 10px;
line-height: @line-height-computed;
}
@@ -270,14 +262,13 @@
> li {
float: left;
> a {
padding-top: @navbar-padding-vertical;
padding-top: @navbar-padding-vertical;
padding-bottom: @navbar-padding-vertical;
}
}
}
}
// Navbar form
//
// Extension of the `.form-inline` with some extra flavor for optimum display in
@@ -289,7 +280,7 @@
padding: 10px @navbar-padding-horizontal;
border-top: 1px solid transparent;
border-bottom: 1px solid transparent;
@shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);
@shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
.box-shadow(@shadow);
// Mixin behavior for optimum display
@@ -320,7 +311,6 @@
}
}
// Dropdown menus
// Menu position and menu carets
@@ -335,7 +325,6 @@
.border-bottom-radius(0);
}
// Buttons in navbars
//
// Vertically center a button within a navbar (when *not* in a form).
@@ -351,7 +340,6 @@
}
}
// Text in navbars
//
// Add a class to make any element properly align itself vertically within the navbars.
@@ -366,7 +354,6 @@
}
}
// Component alignment
//
// Repurpose the pull utilities as their own navbar utilities to avoid specificity
@@ -376,7 +363,9 @@
// Declared after the navbar components to ensure more specificity on the margins.
@media (min-width: @grid-float-breakpoint) {
.navbar-left { .pull-left(); }
.navbar-left {
.pull-left();
}
.navbar-right {
.pull-right();
margin-right: -@navbar-padding-horizontal;
@@ -387,7 +376,6 @@
}
}
// Alternate navbars
// --------------------------------------------------
@@ -496,7 +484,6 @@
}
}
// Links in navbars
//
// Add a class to ensure links outside the navbar nav are colored correctly.

View File

@@ -2,7 +2,6 @@
// Navs
// --------------------------------------------------
// Base class
// --------------------------------------------------
@@ -68,7 +67,6 @@
}
}
// Tabs
// -------------------------
@@ -87,7 +85,8 @@
border: 1px solid transparent;
border-radius: @border-radius-base @border-radius-base 0 0;
&:hover {
border-color: @nav-tabs-link-hover-border-color @nav-tabs-link-hover-border-color @nav-tabs-border-color;
border-color: @nav-tabs-link-hover-border-color @nav-tabs-link-hover-border-color
@nav-tabs-border-color;
}
}
@@ -111,7 +110,6 @@
}
}
// Pills
// -------------------------
.nav-pills {
@@ -138,7 +136,6 @@
}
}
// Stacked pills
.nav-stacked {
> li {
@@ -150,7 +147,6 @@
}
}
// Nav variations
// --------------------------------------------------
@@ -215,7 +211,6 @@
}
}
// Tabbable tabs
// -------------------------
@@ -229,7 +224,6 @@
}
}
// Dropdowns
// -------------------------

View File

@@ -331,8 +331,8 @@ input {
// 2. Remove excess padding in IE 8/9/10.
//
input[type="checkbox"],
input[type="radio"] {
input[type='checkbox'],
input[type='radio'] {
box-sizing: border-box; // 1
padding: 0; // 2
}
@@ -343,8 +343,8 @@ input[type="radio"] {
// decrement button to change from `default` to `text`.
//
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
input[type='number']::-webkit-inner-spin-button,
input[type='number']::-webkit-outer-spin-button {
height: auto;
}
@@ -353,7 +353,7 @@ input[type="number"]::-webkit-outer-spin-button {
// 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
//
input[type="search"] {
input[type='search'] {
-webkit-appearance: textfield; // 1
box-sizing: content-box; //2
}
@@ -364,8 +364,8 @@ input[type="search"] {
// padding (and `textfield` appearance).
//
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
input[type='search']::-webkit-search-cancel-button,
input[type='search']::-webkit-search-decoration {
-webkit-appearance: none;
}

View File

@@ -2,7 +2,6 @@
// Pager pagination
// --------------------------------------------------
.pager {
padding-left: 0;
margin: @line-height-computed 0;

View File

@@ -2,14 +2,13 @@
// Panels
// --------------------------------------------------
// Base class
.panel {
margin-bottom: @line-height-computed;
background-color: @panel-bg;
border: 1px solid transparent;
border-radius: @panel-border-radius;
.box-shadow(0 1px 1px rgba(0,0,0,.05));
.box-shadow(0 1px 1px rgba(0,0,0,0.05));
}
// Panel contents
@@ -53,7 +52,6 @@
.border-bottom-radius((@panel-border-radius - 1));
}
// List groups in panels
//
// By default, space out list group content from panel headings to account for
@@ -213,8 +211,7 @@
}
}
// Collapsable panels (aka, accordion)
// Collapsible panels (aka, accordion)
//
// Wrap a series of panels in `.panel-group` to turn them into an accordion with
// the help of our collapse JavaScript plugin.
@@ -249,7 +246,6 @@
}
}
// Contextual variations
.panel-default {
.panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border);

View File

@@ -2,7 +2,6 @@
// Popovers
// --------------------------------------------------
.popover {
position: absolute;
top: 0;
@@ -21,13 +20,21 @@
border: 1px solid @popover-fallback-border-color;
border: 1px solid @popover-border-color;
border-radius: @border-radius-large;
.box-shadow(0 5px 10px rgba(0,0,0,.2));
.box-shadow(0 5px 10px rgba(0,0,0,0.2));
// Offset the popover to account for the popover arrow
&.top { margin-top: -@popover-arrow-width; }
&.right { margin-left: @popover-arrow-width; }
&.bottom { margin-top: @popover-arrow-width; }
&.left { margin-left: -@popover-arrow-width; }
&.top {
margin-top: -@popover-arrow-width;
}
&.right {
margin-left: @popover-arrow-width;
}
&.bottom {
margin-top: @popover-arrow-width;
}
&.left {
margin-left: -@popover-arrow-width;
}
}
.popover-title {
@@ -63,7 +70,7 @@
}
.popover > .arrow:after {
border-width: @popover-arrow-width;
content: "";
content: '';
}
.popover {
@@ -75,7 +82,7 @@
border-top-color: @popover-arrow-outer-color;
bottom: -@popover-arrow-outer-width;
&:after {
content: " ";
content: ' ';
bottom: 1px;
margin-left: -@popover-arrow-width;
border-bottom-width: 0;
@@ -90,7 +97,7 @@
border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback
border-right-color: @popover-arrow-outer-color;
&:after {
content: " ";
content: ' ';
left: 1px;
bottom: -@popover-arrow-width;
border-left-width: 0;
@@ -105,7 +112,7 @@
border-bottom-color: @popover-arrow-outer-color;
top: -@popover-arrow-outer-width;
&:after {
content: " ";
content: ' ';
top: 1px;
margin-left: -@popover-arrow-width;
border-top-width: 0;
@@ -121,7 +128,7 @@
border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback
border-left-color: @popover-arrow-outer-color;
&:after {
content: " ";
content: ' ';
right: 1px;
border-right-width: 0;
border-left-color: @popover-arrow-color;

View File

@@ -6,96 +6,96 @@
// ==========================================================================
@media print {
*,
*:before,
*:after {
background: transparent !important;
color: #000 !important; // Black prints faster: h5bp.com/s
box-shadow: none !important;
text-shadow: none !important;
}
*,
*:before,
*:after {
background: transparent !important;
color: #000 !important; // Black prints faster: h5bp.com/s
box-shadow: none !important;
text-shadow: none !important;
}
a,
a:visited {
text-decoration: underline;
}
a,
a:visited {
text-decoration: underline;
}
a[href]:after {
content: " (" attr(href) ")";
}
a[href]:after {
content: ' (' attr(href) ')';
}
abbr[title]:after {
content: " (" attr(title) ")";
}
abbr[title]:after {
content: ' (' attr(title) ')';
}
// Don't show links that are fragment identifiers,
// or use the `javascript:` pseudo protocol
a[href^="#"]:after,
a[href^="javascript:"]:after {
content: "";
}
// Don't show links that are fragment identifiers,
// or use the `javascript:` pseudo protocol
a[href^='#']:after,
a[href^='javascript:']:after {
content: '';
}
pre,
blockquote {
border: 1px solid #999;
page-break-inside: avoid;
}
pre,
blockquote {
border: 1px solid #999;
page-break-inside: avoid;
}
thead {
display: table-header-group; // h5bp.com/t
}
thead {
display: table-header-group; // h5bp.com/t
}
tr,
img {
page-break-inside: avoid;
}
tr,
img {
page-break-inside: avoid;
}
img {
max-width: 100% !important;
}
img {
max-width: 100% !important;
}
p,
h2,
h3 {
orphans: 3;
widows: 3;
}
p,
h2,
h3 {
orphans: 3;
widows: 3;
}
h2,
h3 {
page-break-after: avoid;
}
h2,
h3 {
page-break-after: avoid;
}
// Bootstrap specific changes start
// Bootstrap specific changes start
// Bootstrap components
.navbar {
display: none;
}
.btn,
.dropup > .btn {
> .caret {
border-top-color: #000 !important;
}
}
.label {
border: 1px solid #000;
// Bootstrap components
.navbar {
display: none;
}
.btn,
.dropup > .btn {
> .caret {
border-top-color: #000 !important;
}
}
.label {
border: 1px solid #000;
}
.table {
border-collapse: collapse !important;
.table {
border-collapse: collapse !important;
td,
th {
background-color: #fff !important;
}
td,
th {
background-color: #fff !important;
}
.table-bordered {
th,
td {
border: 1px solid #ddd !important;
}
}
.table-bordered {
th,
td {
border: 1px solid #ddd !important;
}
}
// Bootstrap specific changes end
// Bootstrap specific changes end
}

View File

@@ -2,23 +2,29 @@
// Progress bars
// --------------------------------------------------
// Bar animations
// -------------------------
// WebKit
@-webkit-keyframes progress-bar-stripes {
from { background-position: 40px 0; }
to { background-position: 0 0; }
from {
background-position: 40px 0;
}
to {
background-position: 0 0;
}
}
// Spec and IE10+
@keyframes progress-bar-stripes {
from { background-position: 40px 0; }
to { background-position: 0 0; }
from {
background-position: 40px 0;
}
to {
background-position: 0 0;
}
}
// Bar itself
// -------------------------
@@ -29,7 +35,7 @@
margin-bottom: @line-height-computed;
background-color: @progress-bg;
border-radius: @progress-border-radius;
.box-shadow(inset 0 1px 2px rgba(0,0,0,.1));
.box-shadow(inset 0 1px 2px rgba(0,0,0,0.1));
}
// Bar of progress
@@ -42,8 +48,8 @@
color: @progress-bar-color;
text-align: center;
background-color: @progress-bar-bg;
.box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
.transition(width .6s ease);
.box-shadow(inset 0 -1px 0 rgba(0,0,0,0.15));
.transition(width 0.6s ease);
}
// Striped bars
@@ -66,7 +72,6 @@
.animation(progress-bar-stripes 2s linear infinite);
}
// Variations
// -------------------------

View File

@@ -2,7 +2,6 @@
// Responsive: Utility classes
// --------------------------------------------------
// IE10 in Windows (Phone) 8
//
// Support for responsive views via media queries is kind of borked in IE10, for
@@ -22,7 +21,6 @@
width: device-width;
}
// Visibility utilities
// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0
.visible-xs,
@@ -152,7 +150,6 @@
}
}
// Print utilities
//
// Media queries are placed on the inside to be mixin-friendly.

View File

@@ -2,7 +2,6 @@
// Scaffolding
// --------------------------------------------------
// Reset the box-sizing
//
// Heads up! This reset may cause conflicts with some third-party widgets.
@@ -16,12 +15,11 @@
.box-sizing(border-box);
}
// Body reset
html {
font-size: 10px;
-webkit-tap-highlight-color: rgba(0,0,0,0);
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body {
@@ -42,7 +40,6 @@ textarea {
line-height: inherit;
}
// Links
a {
@@ -60,7 +57,6 @@ a {
}
}
// Figures
//
// We reset this here because previously Normalize had no `figure` margins. This
@@ -70,7 +66,6 @@ figure {
margin: 0;
}
// Images
img {
@@ -96,7 +91,7 @@ img {
background-color: @thumbnail-bg;
border: 1px solid @thumbnail-border;
border-radius: @thumbnail-border-radius;
.transition(all .2s ease-in-out);
.transition(all 0.2s ease-in-out);
// Keep them at most 100% wide
.img-responsive(inline-block);
@@ -107,20 +102,18 @@ img {
border-radius: 50%; // set radius in percents
}
// Horizontal rules
hr {
margin-top: @line-height-computed;
margin-top: @line-height-computed;
margin-bottom: @line-height-computed;
border: 0;
border-top: 1px solid @hr-border;
}
// Only display content to screen readers
//
// See: http://a11yproject.com/posts/how-to-hide-content/
// See: http://a11yproject.com/posts/how-to-hide-content
.sr-only {
position: absolute;
@@ -129,7 +122,7 @@ hr {
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0,0,0,0);
clip: rect(0, 0, 0, 0);
border: 0;
}
@@ -149,13 +142,12 @@ hr {
}
}
// iOS "clickable elements" fix for role="button"
//
// Fixes "clickability" issue (and more generally, the firing of events such as focus as well)
// for traditionally non-focusable elements with role="button"
// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
[role="button"] {
[role='button'] {
cursor: pointer;
}

View File

@@ -2,7 +2,6 @@
// Tables
// --------------------------------------------------
table {
background-color: @table-bg;
}
@@ -16,7 +15,6 @@ th {
text-align: left;
}
// Baseline styles
.table {
@@ -64,7 +62,6 @@ th {
}
}
// Condensed table w/ half padding
.table-condensed {
@@ -80,7 +77,6 @@ th {
}
}
// Bordered version
//
// Add borders all around the table and between all the columns.
@@ -105,7 +101,6 @@ th {
}
}
// Zebra-striping
//
// Default zebra-stripe styles (alternating gray and transparent backgrounds)
@@ -116,7 +111,6 @@ th {
}
}
// Hover effect
//
// Placed here since it has to come after the potential zebra striping
@@ -127,12 +121,11 @@ th {
}
}
// Table cell sizing
//
// Reset default table behavior
table col[class*="col-"] {
table col[class*='col-'] {
position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)
float: none;
display: table-column;
@@ -140,7 +133,7 @@ table col[class*="col-"] {
table {
td,
th {
&[class*="col-"] {
&[class*='col-'] {
position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)
float: none;
display: table-cell;
@@ -148,7 +141,6 @@ table {
}
}
// Table backgrounds
//
// Exact selectors below required to override `.table-striped` and prevent
@@ -161,7 +153,6 @@ table {
.table-row-variant(warning; @state-warning-bg);
.table-row-variant(danger; @state-danger-bg);
// Responsive tables
//
// Wrap your tables in `.table-responsive` and we'll make them mobile friendly
@@ -228,7 +219,6 @@ table {
}
}
}
}
}
}

View File

@@ -1,6 +1,6 @@
/*!
* Bootstrap v3.3.6 (http://getbootstrap.com)
* Copyright 2011-2015 Twitter, Inc.
* Bootstrap v3.3.7 (http://getbootstrap.com)
* Copyright 2011-2016 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
@@ -8,9 +8,8 @@
// Load core variables and mixins
// --------------------------------------------------
@import "variables.less";
@import "mixins.less";
@import 'variables.less';
@import 'mixins.less';
//
// Buttons
@@ -23,14 +22,14 @@
.btn-info,
.btn-warning,
.btn-danger {
text-shadow: 0 -1px 0 rgba(0,0,0,.2);
@shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
@shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
.box-shadow(@shadow);
// Reset the shadow
&:active,
&.active {
.box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
.box-shadow(inset 0 3px 5px rgba(0,0,0,0.125));
}
&.disabled,
@@ -46,13 +45,13 @@
// Mixin for generating new styles
.btn-styles(@btn-color: #555) {
#gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));
#gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));;
.reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620
background-repeat: repeat-x;
border-color: darken(@btn-color, 14%);
&:hover,
&:focus {
&:focus {
background-color: darken(@btn-color, 12%);
background-position: 0 -15px;
}
@@ -88,13 +87,26 @@
}
// Apply the mixin to the buttons
.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }
.btn-primary { .btn-styles(@btn-primary-bg); }
.btn-success { .btn-styles(@btn-success-bg); }
.btn-info { .btn-styles(@btn-info-bg); }
.btn-warning { .btn-styles(@btn-warning-bg); }
.btn-danger { .btn-styles(@btn-danger-bg); }
.btn-default {
.btn-styles(@btn-default-bg);
text-shadow: 0 1px 0 #fff;
border-color: #ccc;
}
.btn-primary {
.btn-styles(@btn-primary-bg);
}
.btn-success {
.btn-styles(@btn-success-bg);
}
.btn-info {
.btn-styles(@btn-info-bg);
}
.btn-warning {
.btn-styles(@btn-warning-bg);
}
.btn-danger {
.btn-styles(@btn-danger-bg);
}
//
// Images
@@ -102,64 +114,62 @@
.thumbnail,
.img-thumbnail {
.box-shadow(0 1px 2px rgba(0,0,0,.075));
.box-shadow(0 1px 2px rgba(0,0,0,0.075));
}
//
// Dropdowns
// --------------------------------------------------
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
#gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));
#gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));;
background-color: darken(@dropdown-link-hover-bg, 5%);
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
#gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));
#gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));;
background-color: darken(@dropdown-link-active-bg, 5%);
}
//
// Navbar
// --------------------------------------------------
// Default navbar
.navbar-default {
#gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);
#gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);;
.reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered
border-radius: @navbar-border-radius;
@shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);
@shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);
.box-shadow(@shadow);
.navbar-nav > .open > a,
.navbar-nav > .active > a {
#gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));
.box-shadow(inset 0 3px 9px rgba(0,0,0,.075));
#gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));;
.box-shadow(inset 0 3px 9px rgba(0,0,0,0.075));
}
}
.navbar-brand,
.navbar-nav > li > a {
text-shadow: 0 1px 0 rgba(255,255,255,.25);
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);
}
// Inverted navbar
.navbar-inverse {
#gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);
#gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);;
.reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257
border-radius: @navbar-border-radius;
.navbar-nav > .open > a,
.navbar-nav > .active > a {
#gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));
.box-shadow(inset 0 3px 9px rgba(0,0,0,.25));
#gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));;
.box-shadow(inset 0 3px 9px rgba(0,0,0,0.25));
}
.navbar-brand,
.navbar-nav > li > a {
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
}
@@ -177,35 +187,41 @@
&:hover,
&:focus {
color: #fff;
#gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));
#gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));;
}
}
}
//
// Alerts
// --------------------------------------------------
// Common styles
.alert {
text-shadow: 0 1px 0 rgba(255,255,255,.2);
@shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);
@shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
.box-shadow(@shadow);
}
// Mixin for generating new styles
.alert-styles(@color) {
#gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));
#gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));;
border-color: darken(@color, 15%);
}
// Apply the mixin to the alerts
.alert-success { .alert-styles(@alert-success-bg); }
.alert-info { .alert-styles(@alert-info-bg); }
.alert-warning { .alert-styles(@alert-warning-bg); }
.alert-danger { .alert-styles(@alert-danger-bg); }
.alert-success {
.alert-styles(@alert-success-bg);
}
.alert-info {
.alert-styles(@alert-info-bg);
}
.alert-warning {
.alert-styles(@alert-warning-bg);
}
.alert-danger {
.alert-styles(@alert-danger-bg);
}
//
// Progress bars
@@ -213,20 +229,30 @@
// Give the progress background some depth
.progress {
#gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)
#gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg);;
}
// Mixin for generating new styles
.progress-bar-styles(@color) {
#gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));
#gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));;
}
// Apply the mixin to the progress bars
.progress-bar { .progress-bar-styles(@progress-bar-bg); }
.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }
.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }
.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }
.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }
.progress-bar {
.progress-bar-styles(@progress-bar-bg);
}
.progress-bar-success {
.progress-bar-styles(@progress-bar-success-bg);
}
.progress-bar-info {
.progress-bar-styles(@progress-bar-info-bg);
}
.progress-bar-warning {
.progress-bar-styles(@progress-bar-warning-bg);
}
.progress-bar-danger {
.progress-bar-styles(@progress-bar-danger-bg);
}
// Reset the striped class because our mixins don't do multiple gradients and
// the above custom styles override the new `.progress-bar-striped` in v3.2.0.
@@ -234,20 +260,19 @@
#gradient > .striped();
}
//
// List groups
// --------------------------------------------------
.list-group {
border-radius: @border-radius-base;
.box-shadow(0 1px 2px rgba(0,0,0,.075));
.box-shadow(0 1px 2px rgba(0,0,0,0.075));
}
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);
#gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));
#gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));;
border-color: darken(@list-group-active-border, 7.5%);
.badge {
@@ -255,37 +280,47 @@
}
}
//
// Panels
// --------------------------------------------------
// Common styles
.panel {
.box-shadow(0 1px 2px rgba(0,0,0,.05));
.box-shadow(0 1px 2px rgba(0,0,0,0.05));
}
// Mixin for generating new styles
.panel-heading-styles(@color) {
#gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));
#gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));;
}
// Apply the mixin to the panel headings only
.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }
.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }
.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }
.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }
.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }
.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }
.panel-default > .panel-heading {
.panel-heading-styles(@panel-default-heading-bg);
}
.panel-primary > .panel-heading {
.panel-heading-styles(@panel-primary-heading-bg);
}
.panel-success > .panel-heading {
.panel-heading-styles(@panel-success-heading-bg);
}
.panel-info > .panel-heading {
.panel-heading-styles(@panel-info-heading-bg);
}
.panel-warning > .panel-heading {
.panel-heading-styles(@panel-warning-heading-bg);
}
.panel-danger > .panel-heading {
.panel-heading-styles(@panel-danger-heading-bg);
}
//
// Wells
// --------------------------------------------------
.well {
#gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);
#gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);;
border-color: darken(@well-bg, 10%);
@shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);
@shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);
.box-shadow(@shadow);
}

View File

@@ -2,7 +2,6 @@
// Thumbnails
// --------------------------------------------------
// Mixin and adjust the regular image class
.thumbnail {
display: block;
@@ -12,7 +11,7 @@
background-color: @thumbnail-bg;
border: 1px solid @thumbnail-border;
border-radius: @thumbnail-border-radius;
.transition(border .2s ease-in-out);
.transition(border 0.2s ease-in-out);
> img,
a > img {

View File

@@ -2,7 +2,6 @@
// Tooltips
// --------------------------------------------------
// Base class
.tooltip {
position: absolute;
@@ -15,11 +14,25 @@
.opacity(0);
&.in { .opacity(@tooltip-opacity); }
&.top { margin-top: -3px; padding: @tooltip-arrow-width 0; }
&.right { margin-left: 3px; padding: 0 @tooltip-arrow-width; }
&.bottom { margin-top: 3px; padding: @tooltip-arrow-width 0; }
&.left { margin-left: -3px; padding: 0 @tooltip-arrow-width; }
&.in {
.opacity(@tooltip-opacity);
}
&.top {
margin-top: -3px;
padding: @tooltip-arrow-width 0;
}
&.right {
margin-left: 3px;
padding: 0 @tooltip-arrow-width;
}
&.bottom {
margin-top: 3px;
padding: @tooltip-arrow-width 0;
}
&.left {
margin-left: -3px;
padding: 0 @tooltip-arrow-width;
}
}
// Wrapper for the tooltip content

View File

@@ -2,12 +2,21 @@
// Typography
// --------------------------------------------------
// Headings
// -------------------------
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
font-family: @headings-font-family;
font-weight: @headings-font-weight;
line-height: @headings-line-height;
@@ -21,9 +30,12 @@ h1, h2, h3, h4, h5, h6,
}
}
h1, .h1,
h2, .h2,
h3, .h3 {
h1,
.h1,
h2,
.h2,
h3,
.h3 {
margin-top: @line-height-computed;
margin-bottom: (@line-height-computed / 2);
@@ -32,9 +44,12 @@ h3, .h3 {
font-size: 65%;
}
}
h4, .h4,
h5, .h5,
h6, .h6 {
h4,
.h4,
h5,
.h5,
h6,
.h6 {
margin-top: (@line-height-computed / 2);
margin-bottom: (@line-height-computed / 2);
@@ -44,13 +59,30 @@ h6, .h6 {
}
}
h1, .h1 { font-size: @font-size-h1; }
h2, .h2 { font-size: @font-size-h2; }
h3, .h3 { font-size: @font-size-h3; }
h4, .h4 { font-size: @font-size-h4; }
h5, .h5 { font-size: @font-size-h5; }
h6, .h6 { font-size: @font-size-h6; }
h1,
.h1 {
font-size: @font-size-h1;
}
h2,
.h2 {
font-size: @font-size-h2;
}
h3,
.h3 {
font-size: @font-size-h3;
}
h4,
.h4 {
font-size: @font-size-h4;
}
h5,
.h5 {
font-size: @font-size-h5;
}
h6,
.h6 {
font-size: @font-size-h6;
}
// Body text
// -------------------------
@@ -70,7 +102,6 @@ p {
}
}
// Emphasis & misc
// -------------------------
@@ -83,20 +114,36 @@ small,
mark,
.mark {
background-color: @state-warning-bg;
padding: .2em;
padding: 0.2em;
}
// Alignment
.text-left { text-align: left; }
.text-right { text-align: right; }
.text-center { text-align: center; }
.text-justify { text-align: justify; }
.text-nowrap { white-space: nowrap; }
.text-left {
text-align: left;
}
.text-right {
text-align: right;
}
.text-center {
text-align: center;
}
.text-justify {
text-align: justify;
}
.text-nowrap {
white-space: nowrap;
}
// Transformation
.text-lowercase { text-transform: lowercase; }
.text-uppercase { text-transform: uppercase; }
.text-capitalize { text-transform: capitalize; }
.text-lowercase {
text-transform: lowercase;
}
.text-uppercase {
text-transform: uppercase;
}
.text-capitalize {
text-transform: capitalize;
}
// Contextual colors
.text-muted {
@@ -140,7 +187,6 @@ mark,
.bg-variant(@state-danger-bg);
}
// Page header
// -------------------------
@@ -150,7 +196,6 @@ mark,
border-bottom: 1px solid @page-header-border-color;
}
// Lists
// -------------------------
@@ -225,7 +270,6 @@ dd {
}
}
// Misc
// -------------------------
@@ -287,7 +331,9 @@ blockquote.pull-right {
footer,
small,
.small {
&:before { content: ''; }
&:before {
content: '';
}
&:after {
content: '\00A0 \2014'; // nbsp, em dash
}

View File

@@ -2,7 +2,6 @@
// Utility classes
// --------------------------------------------------
// Floats
// -------------------------
@@ -19,7 +18,6 @@
float: left !important;
}
// Toggling content
// -------------------------
@@ -37,7 +35,6 @@
.text-hide();
}
// Hide from screenreaders and browsers
//
// Credit: HTML5 Boilerplate
@@ -46,7 +43,6 @@
display: none !important;
}
// For Affix plugin
// -------------------------

File diff suppressed because it is too large Load Diff

View File

@@ -2,7 +2,6 @@
// Wells
// --------------------------------------------------
// Base class
.well {
min-height: 20px;
@@ -11,10 +10,10 @@
background-color: @well-bg;
border: 1px solid @well-border;
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,0.05));
blockquote {
border-color: #ddd;
border-color: rgba(0,0,0,.15);
border-color: rgba(0, 0, 0, 0.15);
}
}

View File

@@ -2,13 +2,13 @@
// Bootswatch
// -----------------------------------------------------
@import url("http://fonts.googleapis.com/css?family=Roboto:300,400,500,700");
@import url('http://fonts.googleapis.com/css?family=Roboto:300,400,500,700');
// Navbar =====================================================================
.navbar {
border: none;
.box-shadow(0 1px 2px rgba(0,0,0,.3));
.box-shadow(0 1px 2px rgba(0,0,0,0.3));
&-brand {
font-size: 24px;
@@ -19,7 +19,7 @@
color: #fff;
.placeholder(@navbar-inverse-link-color);
&[type=text] {
&[type='text'] {
.box-shadow(inset 0 -1px 0 @navbar-inverse-link-color);
&:focus {
@@ -49,9 +49,9 @@
&:active {
background-color: darken(@bg, 6%);
#gradient > .radial(darken(@bg, 6%) 10%, @bg 11%);
#gradient > .radial(darken(@bg, 6%) 10%, @bg 11%);;
background-size: 1000%;
.box-shadow(2px 2px 2px rgba(0,0,0,.3));
.box-shadow(2px 2px 2px rgba(0,0,0,0.3));
}
}
}
@@ -67,7 +67,7 @@
text-transform: uppercase;
border-right: none;
border-bottom: none;
.box-shadow(1px 1px 2px rgba(0,0,0,.3));
.box-shadow(1px 1px 2px rgba(0,0,0,0.3));
.transition(all 0.2s);
&-link {
@@ -107,7 +107,7 @@
body {
-webkit-font-smoothing: antialiased;
letter-spacing: .1px;
letter-spacing: 0.1px;
text-rendering: optimizeLegibility;
}
@@ -118,7 +118,7 @@ p {
input,
button {
-webkit-font-smoothing: antialiased;
letter-spacing: .1px;
letter-spacing: 0.1px;
text-rendering: optimizeLegibility;
}
@@ -137,14 +137,14 @@ label {
textarea,
textarea.form-control,
input.form-control,
input[type=text],
input[type=password],
input[type=email],
input[type=number],
[type=text].form-control,
[type=password].form-control,
[type=email].form-control,
[type=tel].form-control,
input[type='text'],
input[type='password'],
input[type='email'],
input[type='number'],
[type='text'].form-control,
[type='password'].form-control,
[type='email'].form-control,
[type='tel'].form-control,
[contenteditable].form-control {
padding: 0;
border: none;
@@ -223,15 +223,15 @@ select.form-control {
padding-left: 25px;
}
input[type="radio"],
input[type="checkbox"] {
input[type='radio'],
input[type='checkbox'] {
margin-left: -25px;
}
}
input[type="radio"],
.radio input[type="radio"],
.radio-inline input[type="radio"] {
input[type='radio'],
.radio input[type='radio'],
.radio-inline input[type='radio'] {
position: relative;
margin-top: 5px;
margin-right: 4px;
@@ -248,7 +248,7 @@ input[type="radio"],
&:before,
&:after {
content: "";
content: '';
display: block;
width: 18px;
height: 18px;
@@ -287,9 +287,9 @@ input[type="radio"],
}
}
input[type="checkbox"],
.checkbox input[type="checkbox"],
.checkbox-inline input[type="checkbox"] {
input[type='checkbox'],
.checkbox input[type='checkbox'],
.checkbox-inline input[type='checkbox'] {
position: relative;
vertical-align: -4px;
border: none;
@@ -302,7 +302,7 @@ input[type="checkbox"],
}
&:after {
content: "";
content: '';
display: block;
width: 18px;
height: 18px;
@@ -314,7 +314,7 @@ input[type="checkbox"],
}
&:checked:before {
content: "";
content: '';
position: absolute;
top: 0;
left: 6px;
@@ -343,27 +343,27 @@ input[type="checkbox"],
}
.has-warning {
input:not([type=checkbox]),
input:not([type='checkbox']),
.form-control,
input:not([type=checkbox]):focus,
input:not([type='checkbox']):focus,
.form-control:focus {
.box-shadow(inset 0 -2px 0 @brand-warning);
}
}
.has-error {
input:not([type=checkbox]),
input:not([type='checkbox']),
.form-control,
input:not([type=checkbox]):focus,
input:not([type='checkbox']):focus,
.form-control:focus {
.box-shadow(inset 0 -2px 0 @brand-danger);
}
}
.has-success {
input:not([type=checkbox]),
input:not([type='checkbox']),
.form-control,
input:not([type=checkbox]):focus,
input:not([type='checkbox']):focus,
.form-control:focus {
.box-shadow(inset 0 -2px 0 @brand-success);
}
@@ -405,7 +405,6 @@ input[type="checkbox"],
}
&.nav-justified {
& > li > a,
& > li > a:hover,
& > .active > a,
@@ -421,7 +420,7 @@ input[type="checkbox"],
.dropdown-menu {
border: none;
.box-shadow(0 1px 4px rgba(0,0,0,.3));
.box-shadow(0 1px 4px rgba(0,0,0,0.3));
}
// Indicators =================================================================
@@ -479,7 +478,7 @@ input[type="checkbox"],
&:last-child {
&:before {
display: block;
content: "";
content: '';
position: absolute;
width: 100%;
height: 100%;
@@ -523,7 +522,6 @@ input[type="checkbox"],
}
.list-group {
&-item {
padding: 15px;
}
@@ -541,7 +539,7 @@ input[type="checkbox"],
.panel {
border: none;
border-radius: 2px;
.box-shadow(0 1px 4px rgba(0,0,0,.3));
.box-shadow(0 1px 4px rgba(0,0,0,0.3));
&-heading {
border-bottom: none;
@@ -554,14 +552,18 @@ input[type="checkbox"],
.popover {
border: none;
.box-shadow(0 1px 4px rgba(0,0,0,.3));
.box-shadow(0 1px 4px rgba(0,0,0,0.3));
}
.carousel {
&-caption {
h1, h2, h3, h4, h5, h6 {
h1,
h2,
h3,
h4,
h5,
h6 {
color: inherit;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -3,32 +3,32 @@
.@{fa-css-prefix}-spin {
-webkit-animation: fa-spin 2s infinite linear;
animation: fa-spin 2s infinite linear;
animation: fa-spin 2s infinite linear;
}
.@{fa-css-prefix}-pulse {
-webkit-animation: fa-spin 1s infinite steps(8);
animation: fa-spin 1s infinite steps(8);
animation: fa-spin 1s infinite steps(8);
}
@-webkit-keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
transform: rotate(359deg);
}
}
@keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
transform: rotate(359deg);
}
}

View File

@@ -2,24 +2,40 @@
// -------------------------
.@{fa-css-prefix}-border {
padding: .2em .25em .15em;
border: solid .08em @fa-border-color;
border-radius: .1em;
padding: 0.2em 0.25em 0.15em;
border: solid 0.08em @fa-border-color;
border-radius: 0.1em;
}
.@{fa-css-prefix}-pull-left { float: left; }
.@{fa-css-prefix}-pull-right { float: right; }
.@{fa-css-prefix}-pull-left {
float: left;
}
.@{fa-css-prefix}-pull-right {
float: right;
}
.@{fa-css-prefix} {
&.@{fa-css-prefix}-pull-left { margin-right: .3em; }
&.@{fa-css-prefix}-pull-right { margin-left: .3em; }
&.@{fa-css-prefix}-pull-left {
margin-right: 0.3em;
}
&.@{fa-css-prefix}-pull-right {
margin-left: 0.3em;
}
}
/* Deprecated as of 4.4.0 */
.pull-right { float: right; }
.pull-left { float: left; }
.pull-right {
float: right;
}
.pull-left {
float: left;
}
.@{fa-css-prefix} {
&.pull-left { margin-right: .3em; }
&.pull-right { margin-left: .3em; }
&.pull-left {
margin-right: 0.3em;
}
&.pull-right {
margin-left: 0.3em;
}
}

View File

@@ -3,10 +3,9 @@
.@{fa-css-prefix} {
display: inline-block;
font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration
font: normal normal normal @fa-font-size-base / @fa-line-height-base FontAwesome; // shortening font declaration
font-size: inherit; // can't have font-size inherit on line above, so need to override
text-rendering: auto; // optimizelegibility throws things off #1094
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}

View File

@@ -3,16 +3,16 @@
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/
@import "variables.less";
@import "mixins.less";
@import "path.less";
@import "core.less";
@import "larger.less";
@import "fixed-width.less";
@import "list.less";
@import "bordered-pulled.less";
@import "animated.less";
@import "rotated-flipped.less";
@import "stacked.less";
@import "icons.less";
@import "screen-reader.less";
@import 'variables.less';
@import 'mixins.less';
@import 'path.less';
@import 'core.less';
@import 'larger.less';
@import 'fixed-width.less';
@import 'list.less';
@import 'bordered-pulled.less';
@import 'animated.less';
@import 'rotated-flipped.less';
@import 'stacked.less';
@import 'icons.less';
@import 'screen-reader.less';

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,15 @@
line-height: (3em / 4);
vertical-align: -15%;
}
.@{fa-css-prefix}-2x { font-size: 2em; }
.@{fa-css-prefix}-3x { font-size: 3em; }
.@{fa-css-prefix}-4x { font-size: 4em; }
.@{fa-css-prefix}-5x { font-size: 5em; }
.@{fa-css-prefix}-2x {
font-size: 2em;
}
.@{fa-css-prefix}-3x {
font-size: 3em;
}
.@{fa-css-prefix}-4x {
font-size: 4em;
}
.@{fa-css-prefix}-5x {
font-size: 5em;
}

View File

@@ -5,7 +5,9 @@
padding-left: 0;
margin-left: @fa-li-width;
list-style-type: none;
> li { position: relative; }
> li {
position: relative;
}
}
.@{fa-css-prefix}-li {
position: absolute;

View File

@@ -3,29 +3,27 @@
.fa-icon() {
display: inline-block;
font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration
font: normal normal normal @fa-font-size-base / @fa-line-height-base FontAwesome; // shortening font declaration
font-size: inherit; // can't have font-size inherit on line above, so need to override
text-rendering: auto; // optimizelegibility throws things off #1094
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.fa-icon-rotate(@degrees, @rotation) {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})";
-ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})';
-webkit-transform: rotate(@degrees);
-ms-transform: rotate(@degrees);
transform: rotate(@degrees);
-ms-transform: rotate(@degrees);
transform: rotate(@degrees);
}
.fa-icon-flip(@horiz, @vert, @rotation) {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)";
-ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)';
-webkit-transform: scale(@horiz, @vert);
-ms-transform: scale(@horiz, @vert);
transform: scale(@horiz, @vert);
-ms-transform: scale(@horiz, @vert);
transform: scale(@horiz, @vert);
}
// Only display content to screen readers. A la Bootstrap 4.
//
// See: http://a11yproject.com/posts/how-to-hide-content/
@@ -37,7 +35,7 @@
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0,0,0,0);
clip: rect(0, 0, 0, 0);
border: 0;
}

View File

@@ -4,7 +4,8 @@
@font-face {
font-family: 'FontAwesome';
src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}');
src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'),
src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}')
format('embedded-opentype'),
url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'),
url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'),
url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'),

View File

@@ -1,12 +1,22 @@
// Rotated & Flipped Icons
// -------------------------
.@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); }
.@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); }
.@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); }
.@{fa-css-prefix}-rotate-90 {
.fa-icon-rotate(90deg, 1);
}
.@{fa-css-prefix}-rotate-180 {
.fa-icon-rotate(180deg, 2);
}
.@{fa-css-prefix}-rotate-270 {
.fa-icon-rotate(270deg, 3);
}
.@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }
.@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); }
.@{fa-css-prefix}-flip-horizontal {
.fa-icon-flip(-1, 1, 0);
}
.@{fa-css-prefix}-flip-vertical {
.fa-icon-flip(1, -1, 2);
}
// Hook for IE8-9
// -------------------------

View File

@@ -1,5 +1,9 @@
// Screen Readers
// -------------------------
.sr-only { .sr-only(); }
.sr-only-focusable { .sr-only-focusable(); }
.sr-only {
.sr-only();
}
.sr-only-focusable {
.sr-only-focusable();
}

View File

@@ -9,12 +9,19 @@
line-height: 2em;
vertical-align: middle;
}
.@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {
.@{fa-css-prefix}-stack-1x,
.@{fa-css-prefix}-stack-2x {
position: absolute;
left: 0;
width: 100%;
text-align: center;
}
.@{fa-css-prefix}-stack-1x { line-height: inherit; }
.@{fa-css-prefix}-stack-2x { font-size: 2em; }
.@{fa-css-prefix}-inverse { color: @fa-inverse; }
.@{fa-css-prefix}-stack-1x {
line-height: inherit;
}
.@{fa-css-prefix}-stack-2x {
font-size: 2em;
}
.@{fa-css-prefix}-inverse {
color: @fa-inverse;
}

File diff suppressed because it is too large Load Diff

View File

@@ -14,4 +14,4 @@
.alert-leave.alert-leave-active {
opacity: 0.01;
}
}