Initial commit: Backup der Webseiten
- zoesch.de - blitzkiste.net - gruene-hassberge (norbert.zoesch.de) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
.alert {
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
|
||||
// SASS conversion note: please mirror any content change in _mixins-shared.scss alert-variations-content
|
||||
.generic-variations(~".alert", ~"", @mdb-text-color-light, {
|
||||
background-color: @variation-color;
|
||||
color: @variation-color-text;
|
||||
|
||||
a, .alert-link {
|
||||
color: @variation-color-text;
|
||||
}
|
||||
});
|
||||
|
||||
&-info, &-danger, &-warning, &-success {
|
||||
color: @mdb-text-color-light;
|
||||
}
|
||||
|
||||
&-default {
|
||||
a, .alert-link {
|
||||
color: @mdb-text-color-primary;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,246 @@
|
||||
// specification: https://www.google.com/design/spec/components/buttons.html
|
||||
|
||||
.typo-button(@colorContrast: false) {
|
||||
font-size: @mdb-btn-font-size-base;
|
||||
font-weight: 500;
|
||||
text-transform: uppercase;
|
||||
//line-height: 1;
|
||||
letter-spacing: 0;
|
||||
|
||||
& when (@colorContrast) {
|
||||
opacity: 0.87;
|
||||
}
|
||||
}
|
||||
|
||||
// mdb default buttons are flat by default
|
||||
// synchronized with mdl 11/23/15
|
||||
.btn,
|
||||
.input-group-btn .btn {
|
||||
border: none;
|
||||
border-radius: @border-radius-base;
|
||||
position: relative;
|
||||
padding: 8px 30px;
|
||||
margin: 10px 1px;
|
||||
.typo-button();
|
||||
will-change: box-shadow, transform;
|
||||
transition: box-shadow 0.2s @mdb-animation-curve-fast-out-linear-in,
|
||||
background-color 0.2s @mdb-animation-curve-default,
|
||||
color 0.2s @mdb-animation-curve-default;
|
||||
outline: 0;
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
|
||||
&::-moz-focus-inner {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
//---
|
||||
// btn-flat
|
||||
background: transparent;
|
||||
&:not(.btn-raised) {
|
||||
.variations(~".btn", ~"", color, @mdb-text-color-primary);
|
||||
box-shadow: none;
|
||||
|
||||
&:not(.btn-link) {
|
||||
&:hover,
|
||||
&:focus {
|
||||
// spec: flat/light bg Hover: 20% #999999
|
||||
background-color: fade(#999999, 20%);
|
||||
|
||||
.theme-dark & {
|
||||
// spec: dark bg Hover: 15% #CCCCCC
|
||||
background-color: fade(#CCCCCC, 15%);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--
|
||||
// color variations
|
||||
&.btn-raised,
|
||||
&.btn-fab,
|
||||
.btn-group-raised & {
|
||||
.background-variations(~".btn", ~"", @mdb-btn-background-color);
|
||||
}
|
||||
|
||||
//---
|
||||
// btn-raised
|
||||
&.btn-raised,
|
||||
.btn-group-raised & {
|
||||
&:not(.btn-link) {
|
||||
.shadow-2dp();
|
||||
|
||||
// colors on hover, focus, active
|
||||
&:hover,
|
||||
&:focus,
|
||||
&.active,
|
||||
&:active {
|
||||
|
||||
outline: 0;
|
||||
|
||||
// FIXME: SPEC - this should be the 600 color, how can we get that programmatically if at all? Or are we limited to the color palette only?
|
||||
// SASS conversion note: please mirror any content change in _mixins-shared.scss button-variations-content
|
||||
.generic-variations(~".btn", ~"", @mdb-btn-background-color, {
|
||||
background-color: contrast(@variation-color, darken(@variation-color, 4%), lighten(@variation-color, 4%), @contrast-factor);
|
||||
});
|
||||
|
||||
// Spec:
|
||||
// - Raised Light/Light theme no hover.
|
||||
// - Raised Dark/Dark theme Hover color: 600
|
||||
.theme-dark & {
|
||||
}
|
||||
}
|
||||
|
||||
// shadow on active
|
||||
&.active,
|
||||
&:active {
|
||||
&,
|
||||
&:hover {
|
||||
.shadow-4dp();
|
||||
}
|
||||
}
|
||||
|
||||
// shadow on focus
|
||||
// Focus should take precedence over active, so specificity is needed
|
||||
&:focus {
|
||||
&,
|
||||
&.active,
|
||||
&:active {
|
||||
&,
|
||||
&:hover {
|
||||
.focus-shadow();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.btn-fab {
|
||||
// see above for color variations
|
||||
border-radius: 50%;
|
||||
font-size: @mdb-btn-fab-font-size;
|
||||
height: @mdb-btn-fab-size;
|
||||
margin: auto;
|
||||
min-width: @mdb-btn-fab-size;
|
||||
width: @mdb-btn-fab-size;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 1px 1.5px 0 rgba(0, 0, 0, 0.12), 0 1px 1px 0 rgba(0, 0, 0, 0.24);
|
||||
position: relative;
|
||||
line-height: normal;
|
||||
|
||||
.ripple-container {
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
&.btn-fab-mini,
|
||||
.btn-group-sm & {
|
||||
height: @mdb-btn-fab-size-mini;
|
||||
min-width: @mdb-btn-fab-size-mini;
|
||||
width: @mdb-btn-fab-size-mini;
|
||||
|
||||
&.material-icons {
|
||||
top: (@mdb-btn-icon-size-mini - @mdb-btn-fab-font-size) / 2;
|
||||
left: (@mdb-btn-icon-size-mini - @mdb-btn-fab-font-size) / 2;
|
||||
}
|
||||
}
|
||||
|
||||
i.material-icons {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-(@mdb-btn-fab-font-size / 2), -(@mdb-btn-fab-font-size / 2));
|
||||
line-height: @mdb-btn-fab-font-size;
|
||||
width: @mdb-btn-fab-font-size;
|
||||
}
|
||||
}
|
||||
|
||||
// Align icons inside buttons with text
|
||||
i.material-icons {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
// Size variations
|
||||
&.btn-lg,
|
||||
.btn-group-lg & {
|
||||
font-size: @mdb-btn-font-size-lg;
|
||||
}
|
||||
&.btn-sm,
|
||||
.btn-group-sm & {
|
||||
padding: 5px 20px;
|
||||
font-size: @mdb-btn-font-size-sm;
|
||||
}
|
||||
&.btn-xs,
|
||||
.btn-group-xs & {
|
||||
padding: 4px 15px;
|
||||
font-size: @mdb-btn-font-size-xs;
|
||||
}
|
||||
}
|
||||
|
||||
// Disabled buttons and button groups
|
||||
.btn,
|
||||
.input-group-btn .btn,
|
||||
.btn-group,
|
||||
.btn-group-vertical {
|
||||
// have to ratchet up the specificity to kill drop shadows on disabled raised buttons
|
||||
fieldset[disabled][disabled] &,
|
||||
&.disabled,
|
||||
&:disabled,
|
||||
&[disabled][disabled] {
|
||||
// spec: light theme: Disabled text: 26% #000000
|
||||
color: fade(#000000, 26%);
|
||||
.theme-dark & {
|
||||
// spec: dark theme: Disabled text: 30% #FFFFFF
|
||||
color: fade(#FFFFFF, 30%);
|
||||
}
|
||||
|
||||
// flat buttons lose transparency
|
||||
background: transparent;
|
||||
|
||||
// no box-shadow on raised - need specificity
|
||||
&.btn-raised,
|
||||
&.btn-group-raised {
|
||||
&,
|
||||
&.active,
|
||||
&:active,
|
||||
&:focus:not(:active) {
|
||||
box-shadow: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// btn-group variations
|
||||
.btn-group,
|
||||
.btn-group-vertical {
|
||||
|
||||
position: relative;
|
||||
//border-radius: 2px;
|
||||
margin: 10px 1px;
|
||||
|
||||
// spec: https://www.google.com/design/spec/components/buttons.html#buttons-toggle-buttons
|
||||
&.open {
|
||||
.dropdown-toggle {
|
||||
//box-shadow: none;
|
||||
}
|
||||
|
||||
& > .dropdown-toggle.btn {
|
||||
.variations(~".btn", ~"", background-color, @mdb-btn-background-color);
|
||||
}
|
||||
}
|
||||
|
||||
.dropdown-menu {
|
||||
border-radius: 0 0 @border-radius-base @border-radius-base;
|
||||
}
|
||||
|
||||
&.btn-group-raised {
|
||||
.shadow-2dp();
|
||||
}
|
||||
|
||||
& .btn + .btn,
|
||||
.btn,
|
||||
.btn:active,
|
||||
.btn-group {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
.card {
|
||||
|
||||
/***** Make height equal to width (http://stackoverflow.com/a/6615994) ****/
|
||||
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
.card-height-indicator {
|
||||
margin-top: 100%;
|
||||
}
|
||||
.card-content {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
/**************************************************************************/
|
||||
|
||||
|
||||
border-radius: @border-radius-base;
|
||||
color: @mdb-card-body-text;
|
||||
background: @mdb-card-body-background;
|
||||
|
||||
.shadow-z-2();
|
||||
|
||||
.card-image {
|
||||
height: 60%;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-top-left-radius: 2px;
|
||||
border-top-right-radius: 2px;
|
||||
pointer-events: none;
|
||||
}
|
||||
.card-image-headline {
|
||||
position: absolute;
|
||||
bottom: 16px;
|
||||
left: 18px;
|
||||
color: @mdb-card-image-headline;
|
||||
font-size: 2em;
|
||||
}
|
||||
}
|
||||
|
||||
.card-body {
|
||||
height: 30%;
|
||||
padding: 18px;
|
||||
}
|
||||
|
||||
.card-footer {
|
||||
height: 10%;
|
||||
padding: 18px;
|
||||
button, a {
|
||||
margin: 0 !important;
|
||||
position: relative;
|
||||
bottom: 25px;
|
||||
width: auto;
|
||||
&:first-child {
|
||||
left: -15px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,270 @@
|
||||
// http://www.google.com/design/spec/components/selection-controls.html#selection-controls-checkbox
|
||||
|
||||
.checkbox label,
|
||||
label.checkbox-inline {
|
||||
cursor: pointer;
|
||||
padding-left: 0; // Reset for Bootstrap rule
|
||||
color: @mdb-checkbox-label-color;
|
||||
.mdb-label-color-toggle-focus();
|
||||
}
|
||||
|
||||
.checkbox,
|
||||
label.checkbox-inline {
|
||||
// Hide native checkbox
|
||||
input[type=checkbox] {
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
z-index: -1;
|
||||
width: 0;
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
left: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.checkbox-material {
|
||||
vertical-align: middle;
|
||||
position: relative;
|
||||
top: 3px;
|
||||
&:before { // FIXME: document why this is necessary (doesn't seem to be on chrome)
|
||||
display: block;
|
||||
position: absolute;
|
||||
top:-5px;
|
||||
left: 0;
|
||||
content: "";
|
||||
background-color: rgba(0, 0, 0, .84);
|
||||
height: @mdb-checkbox-size;
|
||||
width: @mdb-checkbox-size;
|
||||
border-radius: 100%;
|
||||
z-index: 1;
|
||||
opacity: 0;
|
||||
margin: 0;
|
||||
transform: scale3d(2.3, 2.3, 1);
|
||||
}
|
||||
|
||||
.check {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
width: @mdb-checkbox-size;
|
||||
height: @mdb-checkbox-size;
|
||||
border: @mdb-checkbox-border-size solid @mdb-checkbox-border-color;
|
||||
border-radius: @border-radius-base;
|
||||
overflow: hidden;
|
||||
z-index: 1;
|
||||
}
|
||||
.check:before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
transform: rotate(45deg);
|
||||
display: block;
|
||||
margin-top: -4px;
|
||||
margin-left: 6px;
|
||||
width: 0;
|
||||
height: 0;
|
||||
box-shadow:
|
||||
0 0 0 0,
|
||||
0 0 0 0,
|
||||
0 0 0 0,
|
||||
0 0 0 0,
|
||||
0 0 0 0,
|
||||
0 0 0 0,
|
||||
0 0 0 0 inset;
|
||||
}
|
||||
}
|
||||
|
||||
input[type=checkbox] {
|
||||
|
||||
&:focus + .checkbox-material .check:after {
|
||||
opacity: 0.2;
|
||||
}
|
||||
|
||||
&:focus{
|
||||
|
||||
&:checked{
|
||||
& + .checkbox-material:before {
|
||||
animation: rippleOn 500ms;
|
||||
}
|
||||
& + .checkbox-material .check:before {
|
||||
animation: checkbox-on @mdb-checkbox-animation-check forwards;
|
||||
}
|
||||
& + .checkbox-material .check:after {
|
||||
animation: rippleOn @mdb-checkbox-animation-ripple forwards; // Ripple effect on check
|
||||
}
|
||||
}
|
||||
|
||||
&:not(:checked) {
|
||||
& + .checkbox-material:before {
|
||||
animation: rippleOff 500ms;
|
||||
}
|
||||
& + .checkbox-material .check:before {
|
||||
animation: checkbox-off @mdb-checkbox-animation-check forwards;
|
||||
}
|
||||
& + .checkbox-material .check:after {
|
||||
animation: rippleOff @mdb-checkbox-animation-ripple forwards; // Ripple effect on uncheck
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
&:checked {
|
||||
|
||||
// FIXME: once working - combine further to reduce code
|
||||
& + .checkbox-material .check {
|
||||
color: @mdb-checkbox-checked-color;
|
||||
border-color: @mdb-checkbox-checked-color;
|
||||
}
|
||||
|
||||
& + .checkbox-material .check:before {
|
||||
color: @mdb-checkbox-checked-color;
|
||||
box-shadow:
|
||||
0 0 0 10px,
|
||||
10px -10px 0 10px,
|
||||
32px 0 0 20px,
|
||||
0px 32px 0 20px,
|
||||
-5px 5px 0 10px,
|
||||
20px -12px 0 11px;
|
||||
}
|
||||
|
||||
& + .checkbox-material .check:after {
|
||||
//background-color: @brand-success; // FIXME: seems like tho wrong color, test and make sure it can be removed
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Style for disabled inputs
|
||||
fieldset[disabled] &,
|
||||
fieldset[disabled] & input[type=checkbox],
|
||||
input[type=checkbox][disabled]:not(:checked) ~ .checkbox-material .check:before,
|
||||
input[type=checkbox][disabled]:not(:checked) ~ .checkbox-material .check,
|
||||
input[type=checkbox][disabled] + .circle {
|
||||
opacity: 0.5;
|
||||
}
|
||||
input[type=checkbox][disabled] + .checkbox-material .check:after {
|
||||
background-color: @mdb-text-color-primary;
|
||||
transform: rotate(-45deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes checkbox-on {
|
||||
0% {
|
||||
box-shadow:
|
||||
0 0 0 10px,
|
||||
10px -10px 0 10px,
|
||||
32px 0 0 20px,
|
||||
0px 32px 0 20px,
|
||||
-5px 5px 0 10px,
|
||||
15px 2px 0 11px;
|
||||
}
|
||||
50% {
|
||||
box-shadow:
|
||||
0 0 0 10px,
|
||||
10px -10px 0 10px,
|
||||
32px 0 0 20px,
|
||||
0px 32px 0 20px,
|
||||
-5px 5px 0 10px,
|
||||
20px 2px 0 11px;
|
||||
}
|
||||
100% {
|
||||
box-shadow:
|
||||
0 0 0 10px,
|
||||
10px -10px 0 10px,
|
||||
32px 0 0 20px,
|
||||
0px 32px 0 20px,
|
||||
-5px 5px 0 10px,
|
||||
20px -12px 0 11px;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes checkbox-off {
|
||||
0% {
|
||||
box-shadow:
|
||||
0 0 0 10px,
|
||||
10px -10px 0 10px,
|
||||
32px 0 0 20px,
|
||||
0px 32px 0 20px,
|
||||
-5px 5px 0 10px,
|
||||
20px -12px 0 11px,
|
||||
0 0 0 0 inset;
|
||||
}
|
||||
25% {
|
||||
box-shadow:
|
||||
0 0 0 10px,
|
||||
10px -10px 0 10px,
|
||||
32px 0 0 20px,
|
||||
0px 32px 0 20px,
|
||||
-5px 5px 0 10px,
|
||||
20px -12px 0 11px,
|
||||
0 0 0 0 inset;
|
||||
}
|
||||
50% {
|
||||
transform: rotate(45deg);
|
||||
margin-top: -4px;
|
||||
margin-left: 6px;
|
||||
width: 0;
|
||||
height: 0;
|
||||
box-shadow:
|
||||
0 0 0 10px,
|
||||
10px -10px 0 10px,
|
||||
32px 0 0 20px,
|
||||
0px 32px 0 20px,
|
||||
-5px 5px 0 10px,
|
||||
15px 2px 0 11px,
|
||||
0 0 0 0 inset;
|
||||
}
|
||||
51% {
|
||||
transform: rotate(0deg);
|
||||
margin-top: -2px;
|
||||
margin-left: -2px;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
box-shadow:
|
||||
0 0 0 0,
|
||||
0 0 0 0,
|
||||
0 0 0 0,
|
||||
0 0 0 0,
|
||||
0 0 0 0,
|
||||
0 0 0 0,
|
||||
0px 0 0 10px inset;
|
||||
}
|
||||
100% {
|
||||
transform: rotate(0deg);
|
||||
margin-top: -2px;
|
||||
margin-left: -2px;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
box-shadow:
|
||||
0 0 0 0,
|
||||
0 0 0 0,
|
||||
0 0 0 0,
|
||||
0 0 0 0,
|
||||
0 0 0 0,
|
||||
0 0 0 0,
|
||||
0px 0 0 0 inset;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes rippleOn {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
50% {
|
||||
opacity: 0.2;
|
||||
}
|
||||
100% {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes rippleOff {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
50% {
|
||||
opacity: 0.2;
|
||||
}
|
||||
100% {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,362 @@
|
||||
/*
|
||||
|
||||
To get this list of colors inject jQuery at http://www.google.com/design/spec/style/color.html#color-color-palette
|
||||
|
||||
Then, run this script to get the list.
|
||||
|
||||
|
||||
(function() {
|
||||
var colors = {}, main = {};
|
||||
$(".color-group").each(function() {
|
||||
var color = $(this).find(".name").text().trim().toLowerCase().replace(" ", "-");
|
||||
colors[color] = {};
|
||||
|
||||
$(this).find(".color").not(".main-color").each(function() {
|
||||
var shade = $(this).find(".shade").text().trim(),
|
||||
hex = $(this).find(".hex").text().trim();
|
||||
|
||||
colors[color][shade] = hex;
|
||||
});
|
||||
main[color] = color + "-" + $(this).find(".main-color .shade").text().trim();
|
||||
|
||||
});
|
||||
var LESS = "";
|
||||
$.each(colors, function(name, shades) {
|
||||
LESS += "\n\n";
|
||||
$.each(shades, function(shade, hex) {
|
||||
LESS += "@" + name + "-" + shade + ": " + hex + ";\n";
|
||||
});
|
||||
if (main[name]) {
|
||||
LESS += "@" + name + ": " + main[name] + ";\n";
|
||||
}
|
||||
});
|
||||
console.log(LESS);
|
||||
})();
|
||||
|
||||
|
||||
*/
|
||||
@red-50: #ffebee;
|
||||
@red-100: #ffcdd2;
|
||||
@red-200: #ef9a9a;
|
||||
@red-300: #e57373;
|
||||
@red-400: #ef5350;
|
||||
@red-500: #f44336;
|
||||
@red-600: #e53935;
|
||||
@red-700: #d32f2f;
|
||||
@red-800: #c62828;
|
||||
@red-900: #b71c1c;
|
||||
@red-A100: #ff8a80;
|
||||
@red-A200: #ff5252;
|
||||
@red-A400: #ff1744;
|
||||
@red-A700: #d50000;
|
||||
@red: @red-500;
|
||||
|
||||
|
||||
@pink-50: #fce4ec;
|
||||
@pink-100: #f8bbd0;
|
||||
@pink-200: #f48fb1;
|
||||
@pink-300: #f06292;
|
||||
@pink-400: #ec407a;
|
||||
@pink-500: #e91e63;
|
||||
@pink-600: #d81b60;
|
||||
@pink-700: #c2185b;
|
||||
@pink-800: #ad1457;
|
||||
@pink-900: #880e4f;
|
||||
@pink-A100: #ff80ab;
|
||||
@pink-A200: #ff4081;
|
||||
@pink-A400: #f50057;
|
||||
@pink-A700: #c51162;
|
||||
@pink: @pink-500;
|
||||
|
||||
|
||||
@purple-50: #f3e5f5;
|
||||
@purple-100: #e1bee7;
|
||||
@purple-200: #ce93d8;
|
||||
@purple-300: #ba68c8;
|
||||
@purple-400: #ab47bc;
|
||||
@purple-500: #9c27b0;
|
||||
@purple-600: #8e24aa;
|
||||
@purple-700: #7b1fa2;
|
||||
@purple-800: #6a1b9a;
|
||||
@purple-900: #4a148c;
|
||||
@purple-A100: #ea80fc;
|
||||
@purple-A200: #e040fb;
|
||||
@purple-A400: #d500f9;
|
||||
@purple-A700: #aa00ff;
|
||||
@purple: @purple-500;
|
||||
|
||||
|
||||
@deep-purple-50: #ede7f6;
|
||||
@deep-purple-100: #d1c4e9;
|
||||
@deep-purple-200: #b39ddb;
|
||||
@deep-purple-300: #9575cd;
|
||||
@deep-purple-400: #7e57c2;
|
||||
@deep-purple-500: #673ab7;
|
||||
@deep-purple-600: #5e35b1;
|
||||
@deep-purple-700: #512da8;
|
||||
@deep-purple-800: #4527a0;
|
||||
@deep-purple-900: #311b92;
|
||||
@deep-purple-A100: #b388ff;
|
||||
@deep-purple-A200: #7c4dff;
|
||||
@deep-purple-A400: #651fff;
|
||||
@deep-purple-A700: #6200ea;
|
||||
@deep-purple: @deep-purple-500;
|
||||
|
||||
|
||||
@indigo-50: #e8eaf6;
|
||||
@indigo-100: #c5cae9;
|
||||
@indigo-200: #9fa8da;
|
||||
@indigo-300: #7986cb;
|
||||
@indigo-400: #5c6bc0;
|
||||
@indigo-500: #3f51b5;
|
||||
@indigo-600: #3949ab;
|
||||
@indigo-700: #303f9f;
|
||||
@indigo-800: #283593;
|
||||
@indigo-900: #1a237e;
|
||||
@indigo-A100: #8c9eff;
|
||||
@indigo-A200: #536dfe;
|
||||
@indigo-A400: #3d5afe;
|
||||
@indigo-A700: #304ffe;
|
||||
@indigo: @indigo-500;
|
||||
|
||||
|
||||
@blue-50: #e3f2fd;
|
||||
@blue-100: #bbdefb;
|
||||
@blue-200: #90caf9;
|
||||
@blue-300: #64b5f6;
|
||||
@blue-400: #42a5f5;
|
||||
@blue-500: #2196f3;
|
||||
@blue-600: #1e88e5;
|
||||
@blue-700: #1976d2;
|
||||
@blue-800: #1565c0;
|
||||
@blue-900: #0d47a1;
|
||||
@blue-A100: #82b1ff;
|
||||
@blue-A200: #448aff;
|
||||
@blue-A400: #2979ff;
|
||||
@blue-A700: #2962ff;
|
||||
@blue: @blue-500;
|
||||
|
||||
|
||||
@light-blue-50: #e1f5fe;
|
||||
@light-blue-100: #b3e5fc;
|
||||
@light-blue-200: #81d4fa;
|
||||
@light-blue-300: #4fc3f7;
|
||||
@light-blue-400: #29b6f6;
|
||||
@light-blue-500: #03a9f4;
|
||||
@light-blue-600: #039be5;
|
||||
@light-blue-700: #0288d1;
|
||||
@light-blue-800: #0277bd;
|
||||
@light-blue-900: #01579b;
|
||||
@light-blue-A100: #80d8ff;
|
||||
@light-blue-A200: #40c4ff;
|
||||
@light-blue-A400: #00b0ff;
|
||||
@light-blue-A700: #0091ea;
|
||||
@light-blue: @light-blue-500;
|
||||
|
||||
|
||||
@cyan-50: #e0f7fa;
|
||||
@cyan-100: #b2ebf2;
|
||||
@cyan-200: #80deea;
|
||||
@cyan-300: #4dd0e1;
|
||||
@cyan-400: #26c6da;
|
||||
@cyan-500: #00bcd4;
|
||||
@cyan-600: #00acc1;
|
||||
@cyan-700: #0097a7;
|
||||
@cyan-800: #00838f;
|
||||
@cyan-900: #006064;
|
||||
@cyan-A100: #84ffff;
|
||||
@cyan-A200: #18ffff;
|
||||
@cyan-A400: #00e5ff;
|
||||
@cyan-A700: #00b8d4;
|
||||
@cyan: @cyan-500;
|
||||
|
||||
|
||||
@teal-50: #e0f2f1;
|
||||
@teal-100: #b2dfdb;
|
||||
@teal-200: #80cbc4;
|
||||
@teal-300: #4db6ac;
|
||||
@teal-400: #26a69a;
|
||||
@teal-500: #009688;
|
||||
@teal-600: #00897b;
|
||||
@teal-700: #00796b;
|
||||
@teal-800: #00695c;
|
||||
@teal-900: #004d40;
|
||||
@teal-A100: #a7ffeb;
|
||||
@teal-A200: #64ffda;
|
||||
@teal-A400: #1de9b6;
|
||||
@teal-A700: #00bfa5;
|
||||
@teal: @teal-500;
|
||||
|
||||
|
||||
@green-50: #e8f5e9;
|
||||
@green-100: #c8e6c9;
|
||||
@green-200: #a5d6a7;
|
||||
@green-300: #81c784;
|
||||
@green-400: #66bb6a;
|
||||
@green-500: #4caf50;
|
||||
@green-600: #43a047;
|
||||
@green-700: #388e3c;
|
||||
@green-800: #2e7d32;
|
||||
@green-900: #1b5e20;
|
||||
@green-A100: #b9f6ca;
|
||||
@green-A200: #69f0ae;
|
||||
@green-A400: #00e676;
|
||||
@green-A700: #00c853;
|
||||
@green: @green-500;
|
||||
|
||||
|
||||
@light-green-50: #f1f8e9;
|
||||
@light-green-100: #dcedc8;
|
||||
@light-green-200: #c5e1a5;
|
||||
@light-green-300: #aed581;
|
||||
@light-green-400: #9ccc65;
|
||||
@light-green-500: #8bc34a;
|
||||
@light-green-600: #7cb342;
|
||||
@light-green-700: #689f38;
|
||||
@light-green-800: #558b2f;
|
||||
@light-green-900: #33691e;
|
||||
@light-green-A100: #ccff90;
|
||||
@light-green-A200: #b2ff59;
|
||||
@light-green-A400: #76ff03;
|
||||
@light-green-A700: #64dd17;
|
||||
@light-green: @light-green-500;
|
||||
|
||||
|
||||
@lime-50: #f9fbe7;
|
||||
@lime-100: #f0f4c3;
|
||||
@lime-200: #e6ee9c;
|
||||
@lime-300: #dce775;
|
||||
@lime-400: #d4e157;
|
||||
@lime-500: #cddc39;
|
||||
@lime-600: #c0ca33;
|
||||
@lime-700: #afb42b;
|
||||
@lime-800: #9e9d24;
|
||||
@lime-900: #827717;
|
||||
@lime-A100: #f4ff81;
|
||||
@lime-A200: #eeff41;
|
||||
@lime-A400: #c6ff00;
|
||||
@lime-A700: #aeea00;
|
||||
@lime: @lime-500;
|
||||
|
||||
|
||||
@yellow-50: #fffde7;
|
||||
@yellow-100: #fff9c4;
|
||||
@yellow-200: #fff59d;
|
||||
@yellow-300: #fff176;
|
||||
@yellow-400: #ffee58;
|
||||
@yellow-500: #ffeb3b;
|
||||
@yellow-600: #fdd835;
|
||||
@yellow-700: #fbc02d;
|
||||
@yellow-800: #f9a825;
|
||||
@yellow-900: #f57f17;
|
||||
@yellow-A100: #ffff8d;
|
||||
@yellow-A200: #ffff00;
|
||||
@yellow-A400: #ffea00;
|
||||
@yellow-A700: #ffd600;
|
||||
@yellow: @yellow-500;
|
||||
|
||||
|
||||
@amber-50: #fff8e1;
|
||||
@amber-100: #ffecb3;
|
||||
@amber-200: #ffe082;
|
||||
@amber-300: #ffd54f;
|
||||
@amber-400: #ffca28;
|
||||
@amber-500: #ffc107;
|
||||
@amber-600: #ffb300;
|
||||
@amber-700: #ffa000;
|
||||
@amber-800: #ff8f00;
|
||||
@amber-900: #ff6f00;
|
||||
@amber-A100: #ffe57f;
|
||||
@amber-A200: #ffd740;
|
||||
@amber-A400: #ffc400;
|
||||
@amber-A700: #ffab00;
|
||||
@amber: @amber-500;
|
||||
|
||||
|
||||
@orange-50: #fff3e0;
|
||||
@orange-100: #ffe0b2;
|
||||
@orange-200: #ffcc80;
|
||||
@orange-300: #ffb74d;
|
||||
@orange-400: #ffa726;
|
||||
@orange-500: #ff9800;
|
||||
@orange-600: #fb8c00;
|
||||
@orange-700: #f57c00;
|
||||
@orange-800: #ef6c00;
|
||||
@orange-900: #e65100;
|
||||
@orange-A100: #ffd180;
|
||||
@orange-A200: #ffab40;
|
||||
@orange-A400: #ff9100;
|
||||
@orange-A700: #ff6d00;
|
||||
@orange: @orange-500;
|
||||
|
||||
|
||||
@deep-orange-50: #fbe9e7;
|
||||
@deep-orange-100: #ffccbc;
|
||||
@deep-orange-200: #ffab91;
|
||||
@deep-orange-300: #ff8a65;
|
||||
@deep-orange-400: #ff7043;
|
||||
@deep-orange-500: #ff5722;
|
||||
@deep-orange-600: #f4511e;
|
||||
@deep-orange-700: #e64a19;
|
||||
@deep-orange-800: #d84315;
|
||||
@deep-orange-900: #bf360c;
|
||||
@deep-orange-A100: #ff9e80;
|
||||
@deep-orange-A200: #ff6e40;
|
||||
@deep-orange-A400: #ff3d00;
|
||||
@deep-orange-A700: #dd2c00;
|
||||
@deep-orange: @deep-orange-500;
|
||||
|
||||
|
||||
@brown-50: #efebe9;
|
||||
@brown-100: #d7ccc8;
|
||||
@brown-200: #bcaaa4;
|
||||
@brown-300: #a1887f;
|
||||
@brown-400: #8d6e63;
|
||||
@brown-500: #795548;
|
||||
@brown-600: #6d4c41;
|
||||
@brown-700: #5d4037;
|
||||
@brown-800: #4e342e;
|
||||
@brown-900: #3e2723;
|
||||
@brown-A100: #d7ccc8;
|
||||
@brown-A200: #bcaaa4;
|
||||
@brown-A400: #8d6e63;
|
||||
@brown-A700: #5d4037;
|
||||
@brown: @brown-500;
|
||||
|
||||
|
||||
@grey-50: #fafafa;
|
||||
@grey-100: #f5f5f5;
|
||||
@grey-200: #eeeeee;
|
||||
@grey-300: #e0e0e0;
|
||||
@grey-400: #bdbdbd;
|
||||
@grey-500: #9e9e9e; @rgb-grey-500: "158, 158, 158";
|
||||
@grey-600: #757575;
|
||||
@grey-700: #616161;
|
||||
@grey-800: #424242;
|
||||
@grey-900: #212121;
|
||||
@grey-A100: #f5f5f5;
|
||||
@grey-A200: #eeeeee;
|
||||
@grey-A400: #bdbdbd;
|
||||
@grey-A700: #616161;
|
||||
@grey: @grey-500;
|
||||
|
||||
|
||||
@blue-grey-50: #eceff1;
|
||||
@blue-grey-100: #cfd8dc;
|
||||
@blue-grey-200: #b0bec5;
|
||||
@blue-grey-300: #90a4ae;
|
||||
@blue-grey-400: #78909c;
|
||||
@blue-grey-500: #607d8b;
|
||||
@blue-grey-600: #546e7a;
|
||||
@blue-grey-700: #455a64;
|
||||
@blue-grey-800: #37474f;
|
||||
@blue-grey-900: #263238;
|
||||
@blue-grey-A100: #cfd8dc;
|
||||
@blue-grey-A200: #b0bec5;
|
||||
@blue-grey-A400: #78909c;
|
||||
@blue-grey-A700: #455a64;
|
||||
@blue-grey: @blue-grey-500;
|
||||
|
||||
|
||||
@black: #000000; @rgb-black: "0,0,0";
|
||||
@white: #ffffff; @rgb-white: "255,255,255";
|
||||
@@ -0,0 +1,93 @@
|
||||
body {
|
||||
background-color: @body-bg;
|
||||
&.inverse {
|
||||
background: #333333;
|
||||
&, .form-control {
|
||||
color: @mdb-text-color-light;
|
||||
}
|
||||
.modal,
|
||||
.panel-default,
|
||||
.card {
|
||||
&,
|
||||
.form-control {
|
||||
background-color: initial;
|
||||
color: initial;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
body, h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4 {
|
||||
font-family: @font-family-sans-serif;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
h5, h6{
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
a, a:hover, a:focus {
|
||||
color: @link-color;
|
||||
|
||||
& .material-icons {
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
|
||||
@import "_form.less";
|
||||
@import "_welljumbo.less";
|
||||
@import "_buttons.less";
|
||||
@import "_checkboxes.less";
|
||||
@import "_togglebutton.less";
|
||||
@import "_radios.less";
|
||||
@import "_inputs.less";
|
||||
|
||||
legend {
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
@import "_lists.less";
|
||||
@import "_navbar.less";
|
||||
|
||||
.dropdown-menu {
|
||||
border: 0;
|
||||
box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);
|
||||
.divider {
|
||||
background-color: rgba(0, 0, 0, .12);
|
||||
}
|
||||
li {
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
a:hover {
|
||||
background-color: transparent;
|
||||
color: @brand-primary;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@import "_alerts.less";
|
||||
@import "_progress.less";
|
||||
@import "_typography.less";
|
||||
@import "_tabs.less";
|
||||
@import "_popups.less";
|
||||
@import "_cards.less";
|
||||
@import "_dialogs.less";
|
||||
@import "_panels.less";
|
||||
@import "_dividers.less";
|
||||
|
||||
// Prevent highlight on mobile
|
||||
* {
|
||||
-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
&:focus {
|
||||
outline: 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@import "_themes.less";
|
||||
|
||||
// External plugins
|
||||
@import "_plugins.less";
|
||||
@@ -0,0 +1,52 @@
|
||||
//
|
||||
// Modals
|
||||
// Material Design element Dialogs
|
||||
// --------------------------------------------------
|
||||
.modal-content {
|
||||
.shadow-z-5();
|
||||
border-radius: @border-radius-base;
|
||||
border: none;
|
||||
// Modal header
|
||||
// Top section of the modal w/ title and dismiss
|
||||
.modal-header {
|
||||
border-bottom: none;
|
||||
padding-top: 24px;
|
||||
padding-right: 24px;
|
||||
padding-bottom: 0;
|
||||
padding-left: 24px;
|
||||
}
|
||||
// Modal body
|
||||
// Where all modal content resides (sibling of .modal-header and .modal-footer)
|
||||
.modal-body {
|
||||
padding-top: 24px;
|
||||
padding-right: 24px;
|
||||
padding-bottom: 16px;
|
||||
padding-left: 24px;
|
||||
}
|
||||
// Footer (for actions)
|
||||
.modal-footer {
|
||||
border-top: none;
|
||||
padding: 7px;
|
||||
button {
|
||||
margin: 0;
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
width: auto;
|
||||
&.pull-left {
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
position: relative;
|
||||
left: -5px;
|
||||
}
|
||||
}
|
||||
button+button {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
}
|
||||
.modal-body + .modal-footer {
|
||||
padding-top: 0;
|
||||
}
|
||||
}
|
||||
.modal-backdrop {
|
||||
background: rgba(0,0,0,0.3);
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
hr {
|
||||
&.on-dark {
|
||||
color: lighten(@black, 10%);
|
||||
}
|
||||
|
||||
&.on-light {
|
||||
color: lighten(@white, 10%);
|
||||
}
|
||||
|
||||
@media (-webkit-min-device-pixel-ratio: 0.75),
|
||||
(min--moz-device-pixel-ratio: 0.75),
|
||||
(-o-device-pixel-ratio: 3/4),
|
||||
(min-device-pixel-ratio: 0.75),
|
||||
(min-resolution: 0.75dppx),
|
||||
(min-resolution: 120dpi) {
|
||||
height:0.75px;
|
||||
}
|
||||
|
||||
@media (-webkit-min-device-pixel-ratio: 1),
|
||||
(min--moz-device-pixel-ratio: 1),
|
||||
(-o-device-pixel-ratio: 1),
|
||||
(min-device-pixel-ratio: 1),
|
||||
(min-resolution: 1dppx),
|
||||
(min-resolution: 160dpi) {
|
||||
height:1px;
|
||||
}
|
||||
@media (-webkit-min-device-pixel-ratio: 1.33),
|
||||
(min--moz-device-pixel-ratio: 1.33),
|
||||
(-o-device-pixel-ratio: 133/100),
|
||||
(min-device-pixel-ratio: 1.33),
|
||||
(min-resolution: 1.33dppx),
|
||||
(min-resolution: 213dpi) {
|
||||
height:1.333px;
|
||||
}
|
||||
@media (-webkit-min-device-pixel-ratio: 1.5),
|
||||
(min--moz-device-pixel-ratio: 1.5),
|
||||
(-o-device-pixel-ratio: 3/2),
|
||||
(min-device-pixel-ratio: 1.5),
|
||||
(min-resolution: 1.5dppx),
|
||||
(min-resolution: 240dpi) {
|
||||
height:1.5px;
|
||||
}
|
||||
|
||||
@media (-webkit-min-device-pixel-ratio: 2),
|
||||
(min--moz-device-pixel-ratio: 2),
|
||||
(-o-device-pixel-ratio: 2/1),
|
||||
(min-device-pixel-ratio: 2),
|
||||
(min-resolution: 2dppx),
|
||||
(min-resolution: 380dpi) {
|
||||
height:2px;
|
||||
}
|
||||
|
||||
@media (-webkit-min-device-pixel-ratio: 3),
|
||||
(min--moz-device-pixel-ratio: 3),
|
||||
(-o-device-pixel-ratio: 3/1),
|
||||
(min-device-pixel-ratio: 3),
|
||||
(min-resolution: 3dppx),
|
||||
(min-resolution: 480dpi) {
|
||||
height:3px;
|
||||
}
|
||||
|
||||
@media (-webkit-min-device-pixel-ratio: 4),
|
||||
(min--moz-device-pixel-ratio: 4),
|
||||
(-o-device-pixel-ratio: 4/1),
|
||||
(min-device-pixel-ratio: 3),
|
||||
(min-resolution: 4dppx),
|
||||
(min-resolution: 640dpi) {
|
||||
height:4px;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
.mdb-label-color-toggle-focus() {
|
||||
// override bootstrap focus and keep all the standard color (could be multiple radios in the form group)
|
||||
.form-group.is-focused & {
|
||||
color: @mdb-label-color;
|
||||
|
||||
// on focus just darken the specific labels, do not turn them to the brand-primary
|
||||
&:hover,
|
||||
&:focus {
|
||||
color: @mdb-label-color-toggle-focus;
|
||||
}
|
||||
|
||||
// correct the above focus color for disabled items
|
||||
fieldset[disabled] & {
|
||||
color: @mdb-label-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.form-horizontal {
|
||||
|
||||
// Consistent vertical alignment of radios and checkboxes
|
||||
.radio,
|
||||
.checkbox,
|
||||
.radio-inline,
|
||||
.checkbox-inline {
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
.radio {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
label {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
label.control-label {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
@import (optional) "../../bootstrap/less/variables.less";
|
||||
@import (optional) "../bower_components/bootstrap/less/variables.less";
|
||||
@@ -0,0 +1,4 @@
|
||||
// hack due to differences between sass and less variable loading
|
||||
// Less lazy loads, Sass doesn't. http://lesscss.org/features/#variables-feature-lazy-loading
|
||||
|
||||
// do nothing here for less.
|
||||
@@ -0,0 +1,221 @@
|
||||
//
|
||||
// Forms - sizing - material - mirrors bootstrap/forms.less with custom sizing
|
||||
//
|
||||
// LEAVE THIS IDENTICAL TO THE BOOTSTRAP FILE - DO NOT CUSTOMIZE HERE.
|
||||
//
|
||||
// NOTE: this is intentionally kept structurally _identical_ to the bootstrap/forms.less file to make it easier
|
||||
// to identify differences in sizing approaches to form inputs.
|
||||
// --------------------------------------------------
|
||||
|
||||
legend {
|
||||
margin-bottom: @mdb-input-line-height-computed;
|
||||
font-size: (@mdb-input-font-size-base * 1.5);
|
||||
}
|
||||
|
||||
// Adjust output element
|
||||
output {
|
||||
padding-top: (@mdb-input-padding-base-vertical + 1);
|
||||
font-size: @mdb-input-font-size-base;
|
||||
line-height: @mdb-input-line-height-base;
|
||||
}
|
||||
|
||||
.form-control {
|
||||
height: @mdb-input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
|
||||
padding: @mdb-input-padding-base-vertical @mdb-input-padding-base-horizontal;
|
||||
font-size: @mdb-input-font-size-base;
|
||||
line-height: @mdb-input-line-height-base;
|
||||
}
|
||||
|
||||
// Special styles for iOS temporal inputs
|
||||
//
|
||||
// In Mobile Safari, setting `display: block` on temporal inputs causes the
|
||||
// text within the input to become vertically misaligned. As a workaround, we
|
||||
// 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`.
|
||||
|
||||
@media screen and (-webkit-min-device-pixel-ratio: 0) {
|
||||
input[type="date"],
|
||||
input[type="time"],
|
||||
input[type="datetime-local"],
|
||||
input[type="month"] {
|
||||
&.form-control {
|
||||
line-height: @mdb-input-height-base;
|
||||
}
|
||||
|
||||
&.input-sm,
|
||||
.input-group-sm & {
|
||||
line-height: @mdb-input-height-small;
|
||||
}
|
||||
|
||||
&.input-lg,
|
||||
.input-group-lg & {
|
||||
line-height: @mdb-input-height-large;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.radio,
|
||||
.checkbox {
|
||||
|
||||
label {
|
||||
min-height: @mdb-input-line-height-computed; // Ensure the input doesn't jump when there is no text
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Static form control text
|
||||
//
|
||||
// Apply class to a `p` element to make any string of text align with labels in
|
||||
// a horizontal form layout.
|
||||
|
||||
.form-control-static {
|
||||
// Size it appropriately next to real form controls
|
||||
padding-top: (@mdb-input-padding-base-vertical + 1);
|
||||
padding-bottom: (@mdb-input-padding-base-vertical + 1);
|
||||
min-height: (@mdb-input-line-height-computed + @mdb-input-font-size-base);
|
||||
}
|
||||
|
||||
|
||||
// Form control sizing
|
||||
//
|
||||
// Relative text size, padding, and border-radii changes for form controls. For
|
||||
// horizontal sizing, wrap controls in the predefined grid classes. `<select>`
|
||||
// element gets special love because it's special, and that's a fact!
|
||||
|
||||
// mixin pulled from bootstrap and altered for less/sass compatibility with sass parent hack.
|
||||
// bootstrap-sass has this one, but we would have to then convert it back to less. chicken meet egg.
|
||||
.input-size(@parent, @mdb-input-height, @padding-vertical, @padding-horizontal, @font-size, @line-height, @border-radius) {
|
||||
|
||||
@{parent} {
|
||||
height: @mdb-input-height;
|
||||
padding: @padding-vertical @padding-horizontal;
|
||||
font-size: @font-size;
|
||||
line-height: @line-height;
|
||||
border-radius: @border-radius;
|
||||
}
|
||||
|
||||
select@{parent} {
|
||||
height: @mdb-input-height;
|
||||
line-height: @mdb-input-height;
|
||||
}
|
||||
|
||||
textarea@{parent},
|
||||
select[multiple]@{parent} {
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Form control sizing
|
||||
//
|
||||
// Build on `.form-control` with modifier classes to decrease or increase the
|
||||
// height and font-size of form controls.
|
||||
//
|
||||
// The `.form-group-* form-control` variations are sadly duplicated to avoid the
|
||||
// issue documented in https://github.com/twbs/bootstrap/issues/15074.
|
||||
.input-sm {
|
||||
.input-size(~".input-sm", @mdb-input-height-small, @mdb-input-padding-small-vertical, @mdb-input-padding-small-horizontal, @mdb-input-font-size-small, @mdb-input-line-height-small, @mdb-input-border-radius-small);
|
||||
}
|
||||
.form-group-sm {
|
||||
.form-control {
|
||||
height: @mdb-input-height-small;
|
||||
padding: @mdb-input-padding-small-vertical @mdb-input-padding-small-horizontal;
|
||||
font-size: @mdb-input-font-size-small;
|
||||
line-height: @mdb-input-line-height-small;
|
||||
}
|
||||
select.form-control {
|
||||
height: @mdb-input-height-small;
|
||||
line-height: @mdb-input-height-small;
|
||||
}
|
||||
textarea.form-control,
|
||||
select[multiple].form-control {
|
||||
height: auto;
|
||||
}
|
||||
.form-control-static {
|
||||
height: @mdb-input-height-small;
|
||||
min-height: (@mdb-input-line-height-computed + @mdb-input-font-size-small);
|
||||
padding: (@mdb-input-padding-small-vertical + 1) @mdb-input-padding-small-horizontal;
|
||||
font-size: @mdb-input-font-size-small;
|
||||
line-height: @mdb-input-line-height-small;
|
||||
}
|
||||
}
|
||||
|
||||
.input-lg {
|
||||
.input-size(~".input-lg", @mdb-input-height-large, @mdb-input-padding-large-vertical, @mdb-input-padding-large-horizontal, @mdb-input-font-size-large, @mdb-input-line-height-large, @mdb-input-border-radius-large);
|
||||
}
|
||||
.form-group-lg {
|
||||
.form-control {
|
||||
height: @mdb-input-height-large;
|
||||
padding: @mdb-input-padding-large-vertical @mdb-input-padding-large-horizontal;
|
||||
font-size: @mdb-input-font-size-large;
|
||||
line-height: @mdb-input-line-height-large;
|
||||
}
|
||||
select.form-control {
|
||||
height: @mdb-input-height-large;
|
||||
line-height: @mdb-input-height-large;
|
||||
}
|
||||
textarea.form-control,
|
||||
select[multiple].form-control {
|
||||
height: auto;
|
||||
}
|
||||
.form-control-static {
|
||||
height: @mdb-input-height-large;
|
||||
min-height: (@mdb-input-line-height-computed + @mdb-input-font-size-large);
|
||||
padding: (@mdb-input-padding-large-vertical + 1) @mdb-input-padding-large-horizontal;
|
||||
font-size: @mdb-input-font-size-large;
|
||||
line-height: @mdb-input-line-height-large;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.form-horizontal {
|
||||
|
||||
// Consistent vertical alignment of radios and checkboxes
|
||||
//
|
||||
// Labels also get some reset styles, but that is scoped to a media query below.
|
||||
.radio,
|
||||
.checkbox,
|
||||
.radio-inline,
|
||||
.checkbox-inline {
|
||||
padding-top: (@mdb-input-padding-base-vertical + 1); // Default padding plus a border
|
||||
}
|
||||
// Account for padding we're adding to ensure the alignment and of help text
|
||||
// and other content below items
|
||||
.radio,
|
||||
.checkbox {
|
||||
min-height: (@mdb-input-line-height-computed + (@mdb-input-padding-base-vertical + 1));
|
||||
}
|
||||
|
||||
// Reset spacing and right align labels, but scope to media queries so that
|
||||
// labels on narrow viewports stack the same as a default form example.
|
||||
@media (min-width: @screen-sm-min) {
|
||||
.control-label {
|
||||
padding-top: (@mdb-input-padding-base-vertical + 1); // Default padding plus a border
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Form group sizes
|
||||
//
|
||||
// Quick utility class for applying `.input-lg` and `.input-sm` styles to the
|
||||
// inputs and labels within a `.form-group`.
|
||||
.form-group-lg {
|
||||
@media (min-width: @screen-sm-min) {
|
||||
.control-label {
|
||||
padding-top: ((@mdb-input-padding-large-vertical * @mdb-input-line-height-large) + 1);
|
||||
font-size: @mdb-input-font-size-large;
|
||||
}
|
||||
}
|
||||
}
|
||||
.form-group-sm {
|
||||
@media (min-width: @screen-sm-min) {
|
||||
.control-label {
|
||||
padding-top: (@mdb-input-padding-small-vertical + 1);
|
||||
font-size: @mdb-input-font-size-small;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,350 @@
|
||||
@import '_inputs-size.less';
|
||||
|
||||
// label variations
|
||||
.label {
|
||||
border-radius: @border-radius-small;
|
||||
.variations(~".label", ~"", background-color, @grey);
|
||||
padding: .3em .6em; // Make top & bottom .label padding the same: https://github.com/twbs/bootstrap/pull/19631
|
||||
}
|
||||
|
||||
// must be broken out for reuse - webkit selector breaks firefox
|
||||
.label-static(@label-top, @static-font-size, @static-line-height) {
|
||||
label.control-label {
|
||||
top: @label-top;
|
||||
left: 0;
|
||||
// must repeat because the selector above is more specific than the general label sizing
|
||||
font-size: @static-font-size;
|
||||
line-height: @static-line-height;
|
||||
}
|
||||
}
|
||||
|
||||
.label-size-variant(@placeholder-font-size, @vertical-padding, @line-height, @static-font-size, @static-line-height, @help-block-font-size){
|
||||
.form-control {
|
||||
.material-placeholder({
|
||||
font-size: @placeholder-font-size;
|
||||
line-height: @line-height;
|
||||
color: @mdb-input-placeholder-color;
|
||||
font-weight: 400;
|
||||
});
|
||||
// margin-bottom must be specified to give help-block vertical space.
|
||||
// @see also form-group padding-bottom (and size variants) re: collapsible margins. These work together.
|
||||
margin-bottom: @vertical-padding;
|
||||
}
|
||||
|
||||
// generic labels used anywhere in the form (not control-label)
|
||||
.checkbox label,
|
||||
.radio label,
|
||||
label {
|
||||
font-size: @placeholder-font-size;
|
||||
line-height: @line-height;
|
||||
color: @mdb-input-placeholder-color;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
// smaller focused or static size
|
||||
label.control-label {
|
||||
font-size: @static-font-size;
|
||||
line-height: @static-line-height;
|
||||
font-weight: 400;
|
||||
margin: 16px 0 0 0; // std and lg
|
||||
}
|
||||
|
||||
.help-block {
|
||||
margin-top: 0; // allow the input margin to set-off the top of the help-block
|
||||
font-size: @help-block-font-size;
|
||||
}
|
||||
}
|
||||
|
||||
.form-group-validation-state(@name, @color) {
|
||||
|
||||
&.@{name} { // e.g. has-error
|
||||
.form-control {
|
||||
box-shadow: none;
|
||||
}
|
||||
&.is-focused .form-control {
|
||||
background-image: linear-gradient(@color, @color), linear-gradient(@mdb-input-underline-color, @mdb-input-underline-color);
|
||||
}
|
||||
label.control-label,
|
||||
.help-block {
|
||||
color: @color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.form-group-size-variant(@parent, @placeholder-font-size, @label-top-margin, @vertical-padding, @line-height, @label-as-placeholder-shim) {
|
||||
@static-font-size: ceil((@mdb-label-static-size-ratio * @placeholder-font-size));
|
||||
@static-line-height: (@mdb-label-static-size-ratio * @line-height);
|
||||
|
||||
@label-as-placeholder-top: -1 * (@vertical-padding + @label-as-placeholder-shim);
|
||||
@label-top: @label-as-placeholder-top - (@placeholder-font-size + @vertical-padding);
|
||||
|
||||
@help-block-font-size: ceil((@mdb-help-block-size-ratio * @placeholder-font-size));
|
||||
@help-block-line-height: (@mdb-help-block-size-ratio * @line-height);
|
||||
|
||||
// this is outside a form-group
|
||||
& when not (isstring(@parent)) {
|
||||
.label-size-variant(@placeholder-font-size, @vertical-padding, @line-height, @static-font-size, @static-line-height, @help-block-font-size);
|
||||
}
|
||||
|
||||
// this is inside a form-group, may be .form-group.form-group-sm or .form-group.form-group-lg
|
||||
& when (isstring(@parent)) {
|
||||
@{parent} {
|
||||
.label-size-variant(@placeholder-font-size, @vertical-padding, @line-height, @static-font-size, @static-line-height, @help-block-font-size);
|
||||
|
||||
// form-group padding-bottom
|
||||
// upon collapsing margins, the largest margin is honored which collapses the form-control margin-bottom,
|
||||
// so the form-control margin-bottom must also be expressed as form-group padding
|
||||
padding-bottom: @vertical-padding;
|
||||
|
||||
// form-group margin-top must be large enough for the label and the label's top padding since label is absolutely positioned
|
||||
margin: (@label-top-margin + @static-font-size) 0 0 0;
|
||||
|
||||
// larger labels as placeholders
|
||||
&.label-floating,
|
||||
&.label-placeholder {
|
||||
label.control-label {
|
||||
top: @label-as-placeholder-top; // place the floating label to look like a placeholder with input padding
|
||||
font-size: @placeholder-font-size;
|
||||
line-height: @line-height;
|
||||
}
|
||||
}
|
||||
|
||||
// static, focused, or autofill floating labels
|
||||
&.label-static,
|
||||
&.label-floating.is-focused,
|
||||
&.label-floating:not(.is-empty) {
|
||||
.label-static(@label-top, @static-font-size, @static-line-height);
|
||||
}
|
||||
// #559 Fix for webkit/chrome autofill - rule must be separate because it breaks firefox otherwise #731
|
||||
&.label-floating input.form-control:-webkit-autofill ~ label.control-label {
|
||||
.label-static(@label-top, @static-font-size, @static-line-height);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// -----
|
||||
// Inputs
|
||||
//
|
||||
// Reference http://www.google.com/design/spec/components/text-fields.html
|
||||
// MDL implementation: http://www.getmdl.io/components/index.html#textfields-section
|
||||
.form-control,
|
||||
.form-group .form-control {
|
||||
border: 0;
|
||||
background-image: linear-gradient(@brand-primary, @brand-primary), linear-gradient(@mdb-input-underline-color, @mdb-input-underline-color);
|
||||
background-size: 0 2px, 100% 1px;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center bottom, center calc(~"100% - 1px");
|
||||
background-color: rgba(0, 0, 0, 0);
|
||||
transition: background 0s ease-out;
|
||||
float: none;
|
||||
box-shadow: none;
|
||||
border-radius: 0;
|
||||
|
||||
// Placeholders and and labels-as-placeholders should look the same
|
||||
.material-placeholder({
|
||||
color: @mdb-input-placeholder-color;
|
||||
font-weight: 400;
|
||||
});
|
||||
|
||||
|
||||
//&:textarea { // appears to be an invalid selector
|
||||
// height: 40px;
|
||||
//}
|
||||
|
||||
&[readonly],
|
||||
&[disabled],
|
||||
fieldset[disabled] & {
|
||||
background-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
&[disabled],
|
||||
fieldset[disabled] & {
|
||||
background-image: none;
|
||||
border-bottom: 1px dotted @mdb-input-underline-color;
|
||||
}
|
||||
}
|
||||
|
||||
// -----
|
||||
// Labels with form-group signalled state
|
||||
//
|
||||
// Reference http://www.google.com/design/spec/components/text-fields.html
|
||||
// MDL implementation: http://www.getmdl.io/components/index.html#textfields-section
|
||||
//.variations(~" label.control-label", color, @mdb-input-placeholder-color); // default label color variations
|
||||
|
||||
.form-group {
|
||||
position: relative;
|
||||
|
||||
// -----
|
||||
// Labels with form-group signalled state
|
||||
//
|
||||
// Reference http://www.google.com/design/spec/components/text-fields.html
|
||||
// MDL implementation: http://www.getmdl.io/components/index.html#textfields-section
|
||||
&.label-static,
|
||||
&.label-placeholder,
|
||||
&.label-floating {
|
||||
label.control-label {
|
||||
position: absolute;
|
||||
pointer-events: none;
|
||||
transition: 0.3s ease all;
|
||||
}
|
||||
}
|
||||
|
||||
// hint to browser for optimization
|
||||
// TODO: evaluate effectiveness - looking for community feedback
|
||||
&.label-floating label.control-label {
|
||||
will-change: left, top, contents;
|
||||
}
|
||||
|
||||
// hide label-placeholders when the field is not empty
|
||||
&.label-placeholder:not(.is-empty){
|
||||
label.control-label{
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
// Help blocks - position: absolute approach - uses no vertical space, text wrapping - not so good.
|
||||
.help-block {
|
||||
position: absolute; // do not use position: absolute because width/wrapping isn't automatic and overflows occur
|
||||
display: none;
|
||||
}
|
||||
|
||||
// form-group is-focused display
|
||||
&.is-focused {
|
||||
.form-control {
|
||||
outline: none;
|
||||
background-image: linear-gradient(@brand-primary, @brand-primary), linear-gradient(@mdb-input-underline-color, @mdb-input-underline-color);
|
||||
background-size: 100% 2px, 100% 1px;
|
||||
box-shadow: none;
|
||||
transition-duration: 0.3s;
|
||||
|
||||
.material-input:after {
|
||||
background-color: @brand-primary;
|
||||
}
|
||||
}
|
||||
|
||||
//.variations(~".is-focused label.control-label", color, @brand-primary); // focused label color variations
|
||||
label,
|
||||
label.control-label {
|
||||
color: @brand-primary;
|
||||
}
|
||||
|
||||
//.variations(~".is-focused.label-placeholder label.control-label", color, @mdb-input-placeholder-color); // default label color variations
|
||||
&.label-placeholder {
|
||||
label,
|
||||
label.control-label {
|
||||
color: @mdb-input-placeholder-color;
|
||||
}
|
||||
}
|
||||
|
||||
.help-block {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.form-group-validation-state(has-warning, @brand-warning);
|
||||
.form-group-validation-state(has-error, @brand-danger);
|
||||
.form-group-validation-state(has-success, @brand-success);
|
||||
.form-group-validation-state(has-info, @brand-info);
|
||||
|
||||
textarea {
|
||||
resize: none;
|
||||
& ~ .form-control-highlight {
|
||||
margin-top: -11px;
|
||||
}
|
||||
}
|
||||
|
||||
select {
|
||||
appearance: none; // Fix for OS X
|
||||
|
||||
& ~ .material-input:after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// default floating size/location without a form-group (will skip form-group styles, and just render default sizing variation)
|
||||
.form-group-size-variant(null, @mdb-input-font-size-base, @mdb-label-top-margin-base, @mdb-input-padding-base-vertical, @mdb-input-line-height-base, @mdb-label-as-placeholder-shim-base);
|
||||
|
||||
// default floating size/location with a form-group (need margin etc from a default form-group)
|
||||
.form-group-size-variant(~".form-group", @mdb-input-font-size-base, @mdb-label-top-margin-base, @mdb-input-padding-base-vertical, @mdb-input-line-height-base, @mdb-label-as-placeholder-shim-base);
|
||||
|
||||
// sm floating size/location
|
||||
.form-group-size-variant(~".form-group.form-group-sm", @mdb-input-font-size-small, @mdb-label-top-margin-small, @mdb-input-padding-small-vertical, @mdb-input-line-height-small, @mdb-label-as-placeholder-shim-small);
|
||||
|
||||
// lg floating size/location
|
||||
.form-group-size-variant(~".form-group.form-group-lg", @mdb-input-font-size-large, @mdb-label-top-margin-large, @mdb-input-padding-large-vertical, @mdb-input-line-height-large, @mdb-label-as-placeholder-shim-large);
|
||||
|
||||
|
||||
select.form-control {
|
||||
|
||||
border: 0;
|
||||
box-shadow: none;
|
||||
border-radius: 0;
|
||||
|
||||
.form-group.is-focused & {
|
||||
box-shadow: none;
|
||||
border-color: @mdb-input-underline-color;
|
||||
}
|
||||
|
||||
&[multiple] {
|
||||
&,
|
||||
.form-group.is-focused & {
|
||||
height: 85px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.input-group-button-variation(@vertical-padding) {
|
||||
.input-group-btn {
|
||||
.btn {
|
||||
margin: 0 0 @vertical-padding 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ----------------
|
||||
// input group/addon related styles
|
||||
|
||||
// default margin - no form-group required
|
||||
.input-group-button-variation(@mdb-input-padding-base-vertical);
|
||||
|
||||
.form-group {
|
||||
//.form-control {
|
||||
// float: none;
|
||||
//}
|
||||
|
||||
// sm margin
|
||||
&.form-group-sm {
|
||||
.input-group-button-variation(@mdb-input-padding-small-vertical);
|
||||
}
|
||||
|
||||
// lg margin
|
||||
&.form-group-lg {
|
||||
.input-group-button-variation(@mdb-input-padding-large-vertical);
|
||||
}
|
||||
}
|
||||
|
||||
.input-group { // may be in or outside of form-group
|
||||
.input-group-btn {
|
||||
padding: 0 12px; // match addon spacing
|
||||
}
|
||||
|
||||
.input-group-addon {
|
||||
border: 0;
|
||||
background: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
// Input files - hide actual input - requires specific markup in the sample.
|
||||
.form-group input[type=file] {
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 100;
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
.list-group {
|
||||
border-radius: 0;
|
||||
.list-group-item {
|
||||
background-color: transparent;
|
||||
overflow: hidden;
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
padding: 0 16px;
|
||||
&.baseline {
|
||||
border-bottom: 1px solid #cecece;
|
||||
&:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
}
|
||||
.row-picture, .row-action-primary {
|
||||
//float: left; WARNING: float can't be used with display: inline-block. Certain properties shouldn't be used with certain display property values. (display-property-grouping) Browsers: All
|
||||
display: inline-block;
|
||||
padding-right: 16px;
|
||||
img, i, label {
|
||||
display: block;
|
||||
width: 56px;
|
||||
height: 56px;
|
||||
}
|
||||
img {
|
||||
background: rgba(0,0,0,0.1);
|
||||
padding: 1px;
|
||||
&.circle {
|
||||
border-radius: 100%;
|
||||
}
|
||||
}
|
||||
i {
|
||||
background: rgba(0,0,0,0.25);
|
||||
border-radius: 100%;
|
||||
text-align: center;
|
||||
line-height: 56px;
|
||||
font-size: 20px;
|
||||
color: white;
|
||||
}
|
||||
label {
|
||||
margin-left: 7px;
|
||||
margin-right: -7px;
|
||||
margin-top: 5px;
|
||||
margin-bottom: -5px;
|
||||
.checkbox-material {
|
||||
left: -10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.row-content {
|
||||
display: inline-block;
|
||||
width: ~"calc(100% - 92px)";
|
||||
min-height: 66px;
|
||||
.action-secondary {
|
||||
position: absolute;
|
||||
right: 16px;
|
||||
top: 16px;
|
||||
i {
|
||||
font-size: 20px;
|
||||
color: rgba(0,0,0,0.25);
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
.action-secondary ~ * {
|
||||
max-width: ~"calc(100% - 30px)";
|
||||
}
|
||||
.least-content {
|
||||
position: absolute;
|
||||
right: 16px;
|
||||
top: 0;
|
||||
color: rgba(0,0,0,0.54);
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
.list-group-item-heading {
|
||||
color: rgba(0, 0, 0, 0.77);
|
||||
font-size: 20px;
|
||||
line-height: 29px;
|
||||
}
|
||||
}
|
||||
.list-group-item.active {
|
||||
&:hover, &:focus {
|
||||
background: rgba(0,0,0,.15);
|
||||
outline: 10px solid rgba(0,0,0,.15);
|
||||
}
|
||||
.list-group-item-heading, .list-group-item-text {
|
||||
color: @mdb-text-color-primary;
|
||||
}
|
||||
|
||||
}
|
||||
.list-group-separator {
|
||||
clear: both;
|
||||
overflow: hidden;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
&:before {
|
||||
content: "";
|
||||
width: ~"calc(100% - 90px)";
|
||||
border-bottom: 1px solid rgba(0,0,0,0.1);
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
// Placeholder text
|
||||
.material-placeholder(@rules) {
|
||||
&::-moz-placeholder { @rules(); } // Firefox
|
||||
&:-ms-input-placeholder { @rules(); } // Internet Explorer 10+
|
||||
&::-webkit-input-placeholder { @rules(); } // Safari and Chrome
|
||||
}
|
||||
|
||||
|
||||
// usage: .variations(~" .check", color, transparent);
|
||||
.variations(@component, @selector-suffix, @property, @color-default) {
|
||||
.generic-variations(@component, @selector-suffix, @color-default, {
|
||||
@{property}: @variation-color;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
.background-variations(@component, @selector-suffix, @color-default) {
|
||||
.generic-variations(@component, @selector-suffix, @color-default, {
|
||||
background-color: @variation-color;
|
||||
& when (@variation-color = @mdb-btn-background-color) {
|
||||
color: @mdb-text-color-primary;
|
||||
}
|
||||
& when not (@variation-color = @mdb-btn-background-color) {
|
||||
color: @variation-color-text;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
.text-variations(@component, @selector-suffix, @color-default) {
|
||||
.generic-variations(@component, @selector-suffix, @color-default, {
|
||||
color: @variation-color;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
//
|
||||
// To use this mixin you should pass a function as final parameter to define
|
||||
// the style. In that definition you can use the following variables to define it.
|
||||
//
|
||||
// @component: ~".btn" - one of the bs components that have -default, -danger, etc.
|
||||
// @variation-color
|
||||
// @variation-color-text
|
||||
//
|
||||
.generic-variations(@component, @selector-suffix, @color-default, @func) {
|
||||
@contrast-factor: 40%;
|
||||
// bootstrap styles
|
||||
&@{selector-suffix},
|
||||
&@{component}-default@{selector-suffix} {
|
||||
@variation-color: @color-default;
|
||||
@variation-color-text: @mdb-text-color-light;
|
||||
@func();
|
||||
}
|
||||
&@{component}-inverse@{selector-suffix} {
|
||||
@variation-color: @mdb-brand-inverse;
|
||||
//@variation-color-text: contrast(@mdb-brand-inverse, @mdb-text-color-primary, @mdb-text-color-light, @contrast-factor);
|
||||
@variation-color-text: contrast(@mdb-brand-inverse, @mdb-text-color-primary-hex, @mdb-text-color-light-hex, @contrast-factor);
|
||||
@func();
|
||||
}
|
||||
&@{component}-primary@{selector-suffix} {
|
||||
@variation-color: @brand-primary;
|
||||
@variation-color-text: @mdb-text-color-light;
|
||||
@func();
|
||||
}
|
||||
&@{component}-success@{selector-suffix} {
|
||||
@variation-color: @brand-success;
|
||||
@variation-color-text: @mdb-text-color-light;
|
||||
@func();
|
||||
}
|
||||
&@{component}-info@{selector-suffix} {
|
||||
@variation-color: @brand-info;
|
||||
@variation-color-text: @mdb-text-color-light;
|
||||
@func();
|
||||
}
|
||||
&@{component}-warning@{selector-suffix} {
|
||||
@variation-color: @brand-warning;
|
||||
@variation-color-text: @mdb-text-color-light;
|
||||
@func();
|
||||
}
|
||||
&@{component}-danger@{selector-suffix} {
|
||||
@variation-color: @brand-danger;
|
||||
@variation-color-text: @mdb-text-color-light;
|
||||
@func();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,239 @@
|
||||
.navbar {
|
||||
background-color: @brand-primary;
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
|
||||
.navbar-brand {
|
||||
position: relative;
|
||||
height: 60px;
|
||||
line-height: 30px;
|
||||
color: inherit;
|
||||
&:hover,
|
||||
&:focus {
|
||||
color: inherit;
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-text {
|
||||
color: inherit;
|
||||
margin-top: 20px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.navbar-nav {
|
||||
> li > a {
|
||||
color: inherit;
|
||||
padding-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
color: inherit;
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
> .active > a {
|
||||
&,
|
||||
&:hover,
|
||||
&:focus {
|
||||
color: inherit;
|
||||
background-color: rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
}
|
||||
> .disabled > a {
|
||||
&,
|
||||
&:hover,
|
||||
&:focus {
|
||||
color: inherit;
|
||||
background-color: transparent;
|
||||
opacity: 0.9;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Darken the responsive nav toggle
|
||||
.navbar-toggle {
|
||||
border: 0;
|
||||
&:hover,
|
||||
&:focus {
|
||||
background-color: transparent;
|
||||
}
|
||||
.icon-bar {
|
||||
background-color: inherit;
|
||||
border: 1px solid;
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-default .navbar-toggle,
|
||||
.navbar-inverse .navbar-toggle {
|
||||
border-color: transparent;
|
||||
}
|
||||
|
||||
.navbar-collapse,
|
||||
.navbar-form {
|
||||
border-color: rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
// Dropdowns
|
||||
.navbar-nav {
|
||||
> .open > a {
|
||||
&,
|
||||
&:hover,
|
||||
&:focus {
|
||||
background-color: transparent;
|
||||
color: inherit;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: @grid-float-breakpoint-max) {
|
||||
.navbar-text {
|
||||
color: inherit;
|
||||
margin-top: 15px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
// Dropdowns get custom display
|
||||
.open .dropdown-menu {
|
||||
> .dropdown-header {
|
||||
border: 0;
|
||||
color: inherit;
|
||||
}
|
||||
.divider {
|
||||
border-bottom: 1px solid;
|
||||
opacity: 0.08;
|
||||
}
|
||||
> li > a {
|
||||
color: inherit;
|
||||
&:hover,
|
||||
&:focus {
|
||||
color: inherit;
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
> .active > a {
|
||||
&,
|
||||
&:hover,
|
||||
&:focus {
|
||||
color: inherit;
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
> .disabled > a {
|
||||
&,
|
||||
&:hover,
|
||||
&:focus {
|
||||
color: inherit;
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-link {
|
||||
color: inherit;
|
||||
&:hover {
|
||||
color: inherit;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-link {
|
||||
color: inherit;
|
||||
&:hover,
|
||||
&:focus {
|
||||
color: inherit;
|
||||
}
|
||||
&[disabled],
|
||||
fieldset[disabled] & {
|
||||
&:hover,
|
||||
&:focus {
|
||||
color: inherit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-form {
|
||||
margin-top: 16px;
|
||||
.form-group {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
.material-input:before,
|
||||
&.is-focused .material-input:after {
|
||||
background-color: inherit;
|
||||
}
|
||||
}
|
||||
|
||||
.form-group .form-control,
|
||||
.form-control {
|
||||
border-color: inherit;
|
||||
color: inherit;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
|
||||
// re-normalize inputs in a navbar the size of standard bootstrap since our normal inputs are larger by spec than bootstrap
|
||||
//---
|
||||
//height: @mdb-input-height-base;
|
||||
@bs-line-height-base: 1.428571429;
|
||||
@bs-line-height-computed: floor((@font-size-base * @bs-line-height-base)); // ~20px
|
||||
height: (@bs-line-height-computed + 8px);
|
||||
font-size: @font-size-base;
|
||||
line-height: @bs-line-height-base;
|
||||
//---
|
||||
}
|
||||
}
|
||||
|
||||
// SASS conversion note: please mirror any content change in _mixins-shared.scss navbar-variations-content
|
||||
.generic-variations(~".navbar", ~"", @brand-primary, {
|
||||
background-color: @variation-color;
|
||||
color: @variation-color-text;
|
||||
// deeply defined to override welljumbo class without !impotant need
|
||||
.navbar-form .form-group input.form-control,
|
||||
.navbar-form input.form-control {
|
||||
.material-placeholder({
|
||||
color: @variation-color-text;
|
||||
});
|
||||
}
|
||||
.dropdown-menu {
|
||||
border-radius: @border-radius-base;
|
||||
li > a {
|
||||
font-size: @mdb-dropdown-font-size;
|
||||
padding: 13px 16px;
|
||||
&:hover,
|
||||
&:focus {
|
||||
color: @variation-color;
|
||||
background-color: @grey-200;
|
||||
}
|
||||
}
|
||||
.active > a {
|
||||
&:hover,
|
||||
&:focus {
|
||||
color: @variation-color-text;
|
||||
}
|
||||
background-color: @variation-color;
|
||||
color: @variation-color-text;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
&-inverse {
|
||||
background-color: @indigo;
|
||||
}
|
||||
|
||||
@media (max-width: @screen-md-max) {
|
||||
|
||||
.navbar-brand {
|
||||
height: 50px;
|
||||
padding: 10px 15px;
|
||||
}
|
||||
.navbar-form {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.navbar-nav > li > a {
|
||||
padding-top: 15px;
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
.panel {
|
||||
border-radius: 2px;
|
||||
border: 0;
|
||||
|
||||
.variations(~".panel", ~" > .panel-heading", background-color, @grey-200);
|
||||
.shadow-z-1;
|
||||
}
|
||||
|
||||
|
||||
[class*="panel-"] > .panel-heading {
|
||||
color: @mdb-text-color-light;
|
||||
border: 0;
|
||||
}
|
||||
.panel-default, .panel:not([class*="panel-"]) {
|
||||
> .panel-heading {
|
||||
color: @mdb-text-color-primary;
|
||||
}
|
||||
}
|
||||
.panel-footer {
|
||||
background-color: @grey-200;
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
// External plugins
|
||||
@import "plugins/_plugin-snackbarjs.less";
|
||||
@import "plugins/_plugin-nouislider.less";
|
||||
@import "plugins/_plugin-selectize.less";
|
||||
@import "plugins/_plugin-dropdownjs.less";
|
||||
@@ -0,0 +1,18 @@
|
||||
.popover, .tooltip-inner {
|
||||
color: @mdb-popover-color;
|
||||
line-height: 1em;
|
||||
background: @mdb-popover-background;
|
||||
border: none;
|
||||
border-radius: @border-radius-base;
|
||||
.shadow-z-1();
|
||||
}
|
||||
|
||||
.tooltip, .tooltip.in {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.popover, .tooltip {
|
||||
.arrow, .tooltip-arrow {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
.progress {
|
||||
height: 4px;
|
||||
border-radius: 0;
|
||||
box-shadow: none;
|
||||
background: #c8c8c8;
|
||||
.progress-bar {
|
||||
box-shadow: none;
|
||||
.variations(~".progress-bar", ~"", background-color, @brand-primary);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,115 @@
|
||||
.radio-color(@color, @opacity){
|
||||
& ~ .check,
|
||||
& ~ .circle {
|
||||
opacity: @opacity;
|
||||
}
|
||||
|
||||
& ~ .check {
|
||||
background-color: @color;
|
||||
}
|
||||
|
||||
& ~ .circle {
|
||||
border-color: @color;
|
||||
}
|
||||
}
|
||||
|
||||
.radio label, label.radio-inline {
|
||||
cursor: pointer;
|
||||
padding-left: 45px;
|
||||
position: relative;
|
||||
color: @mdb-radio-label-color;
|
||||
.mdb-label-color-toggle-focus();
|
||||
}
|
||||
|
||||
.radio, label.radio-inline {
|
||||
span {
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: 10px;
|
||||
top: 2px;
|
||||
transition-duration: 0.2s;
|
||||
}
|
||||
.circle {
|
||||
border: 2px solid @mdb-radio-color-off;
|
||||
height: 15px;
|
||||
width: 15px;
|
||||
border-radius: 100%;
|
||||
}
|
||||
.check {
|
||||
height: 15px;
|
||||
width: 15px;
|
||||
border-radius: 100%;
|
||||
background-color: @mdb-radio-color-on;
|
||||
transform: scale3d(0, 0, 0);
|
||||
}
|
||||
.check:after {
|
||||
display: block;
|
||||
position: absolute;
|
||||
content: "";
|
||||
background-color: @mdb-text-color-primary;
|
||||
left: -18px;
|
||||
top: -18px;
|
||||
height: 50px;
|
||||
width: 50px;
|
||||
border-radius: 100%;
|
||||
z-index: 1;
|
||||
opacity: 0;
|
||||
margin: 0;
|
||||
transform: scale3d(1.5, 1.5, 1);
|
||||
}
|
||||
|
||||
input[type=radio]:focus:not(:checked) ~ .check:after {
|
||||
animation: rippleOff 500ms;
|
||||
}
|
||||
input[type=radio]:focus:checked ~ .check:after {
|
||||
animation: rippleOn 500ms;
|
||||
}
|
||||
|
||||
input[type=radio] {
|
||||
opacity: 0;
|
||||
height: 0;
|
||||
width: 0;
|
||||
overflow: hidden;
|
||||
|
||||
&:checked {
|
||||
.radio-color(@mdb-radio-color-on, 1);
|
||||
}
|
||||
&:checked ~ .check {
|
||||
transform: scale3d(0.55, 0.55, 1);
|
||||
}
|
||||
}
|
||||
|
||||
input[type=radio][disabled] {
|
||||
|
||||
// light theme spec: Disabled: #000000, Opacity 26%
|
||||
.radio-color(@black, 0.26);
|
||||
|
||||
// dark theme spec: Disabled: #FFFFFF, Opacity 30%
|
||||
.theme-dark & {
|
||||
.radio-color(@white, 0.30);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes rippleOn {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
50% {
|
||||
opacity: 0.2;
|
||||
}
|
||||
100% {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@keyframes rippleOff {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
50% {
|
||||
opacity: 0.2;
|
||||
}
|
||||
100% {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
.shadow-z-1() {
|
||||
box-shadow:
|
||||
0 1px 6px 0 rgba(0, 0, 0, 0.12),
|
||||
0 1px 6px 0 rgba(0, 0, 0, 0.12);
|
||||
}
|
||||
|
||||
.shadow-z-1-hover() {
|
||||
box-shadow:
|
||||
0 5px 11px 0 rgba(0, 0, 0, 0.18),
|
||||
0 4px 15px 0 rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
.shadow-z-2() {
|
||||
box-shadow:
|
||||
0 8px 17px 0 rgba(0, 0, 0, 0.2),
|
||||
0 6px 20px 0 rgba(0, 0, 0, 0.19);
|
||||
}
|
||||
|
||||
.shadow-z-3() {
|
||||
box-shadow:
|
||||
0 12px 15px 0 rgba(0, 0, 0, 0.24),
|
||||
0 17px 50px 0 rgba(0, 0, 0, 0.19);
|
||||
}
|
||||
|
||||
.shadow-z-4() {
|
||||
box-shadow:
|
||||
0 16px 28px 0 rgba(0, 0, 0, 0.22),
|
||||
0 25px 55px 0 rgba(0, 0, 0, 0.21);
|
||||
}
|
||||
|
||||
.shadow-z-5() {
|
||||
box-shadow:
|
||||
0 27px 24px 0 rgba(0, 0, 0, 0.2),
|
||||
0 40px 77px 0 rgba(0, 0, 0, 0.22);
|
||||
}
|
||||
|
||||
|
||||
/* Shadows (from mdl http://www.getmdl.io/) */
|
||||
|
||||
// Focus shadow mixin.
|
||||
.focus-shadow() {
|
||||
box-shadow: 0 0 8px rgba(0,0,0,.18),
|
||||
0 8px 16px rgba(0,0,0,.36);
|
||||
}
|
||||
|
||||
.shadow-2dp() {
|
||||
box-shadow: 0 2px 2px 0 rgba(0, 0, 0, @mdb-shadow-key-penumbra-opacity),
|
||||
0 3px 1px -2px rgba(0, 0, 0, @mdb-shadow-key-umbra-opacity),
|
||||
0 1px 5px 0 rgba(0, 0, 0, @mdb-shadow-ambient-shadow-opacity);
|
||||
}
|
||||
.shadow-3dp() {
|
||||
box-shadow: 0 3px 4px 0 rgba(0, 0, 0, @mdb-shadow-key-penumbra-opacity),
|
||||
0 3px 3px -2px rgba(0, 0, 0, @mdb-shadow-key-umbra-opacity),
|
||||
0 1px 8px 0 rgba(0, 0, 0, @mdb-shadow-ambient-shadow-opacity);
|
||||
}
|
||||
.shadow-4dp() {
|
||||
box-shadow: 0 4px 5px 0 rgba(0, 0, 0, @mdb-shadow-key-penumbra-opacity),
|
||||
0 1px 10px 0 rgba(0, 0, 0, @mdb-shadow-ambient-shadow-opacity),
|
||||
0 2px 4px -1px rgba(0, 0, 0, @mdb-shadow-key-umbra-opacity);
|
||||
}
|
||||
.shadow-6dp() {
|
||||
box-shadow: 0 6px 10px 0 rgba(0, 0, 0, @mdb-shadow-key-penumbra-opacity),
|
||||
0 1px 18px 0 rgba(0, 0, 0, @mdb-shadow-ambient-shadow-opacity),
|
||||
0 3px 5px -1px rgba(0, 0, 0, @mdb-shadow-key-umbra-opacity);
|
||||
}
|
||||
.shadow-8dp() {
|
||||
box-shadow: 0 8px 10px 1px rgba(0, 0, 0, @mdb-shadow-key-penumbra-opacity),
|
||||
0 3px 14px 2px rgba(0, 0, 0, @mdb-shadow-ambient-shadow-opacity),
|
||||
0 5px 5px -3px rgba(0, 0, 0, @mdb-shadow-key-umbra-opacity);
|
||||
}
|
||||
|
||||
.shadow-16dp() {
|
||||
box-shadow: 0 16px 24px 2px rgba(0, 0, 0, @mdb-shadow-key-penumbra-opacity),
|
||||
0 6px 30px 5px rgba(0, 0, 0, @mdb-shadow-ambient-shadow-opacity),
|
||||
0 8px 10px -5px rgba(0, 0, 0, @mdb-shadow-key-umbra-opacity);
|
||||
}
|
||||
|
||||
.shadow-24dp() {
|
||||
box-shadow: 0 9px 46px 8px rgba(0, 0, 0, @mdb-shadow-key-penumbra-opacity),
|
||||
0 11px 15px -7px rgba(0, 0, 0, @mdb-shadow-ambient-shadow-opacity),
|
||||
0 24px 38px 3px rgba(0, 0, 0, @mdb-shadow-key-umbra-opacity);
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
.nav-tabs {
|
||||
background: @brand-primary;
|
||||
> li {
|
||||
> a {
|
||||
color: #FFFFFF;
|
||||
border: 0;
|
||||
margin: 0;
|
||||
&:hover {
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
}
|
||||
}
|
||||
& > a, & > a:hover, & > a:focus {
|
||||
background-color: transparent !important;
|
||||
border: 0 !important;
|
||||
color: #FFFFFF !important;
|
||||
font-weight: 500;
|
||||
}
|
||||
&.disabled > a, &.disabled > a:hover {
|
||||
color: rgba(255,255,255,0.5);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
// by default, assume light-theme, no need for a marker class.
|
||||
|
||||
// this is mostly a marker class, add it to something like the body or container. Subordinates will look for this marker - see buttons
|
||||
.theme-dark {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
.togglebutton {
|
||||
vertical-align: middle;
|
||||
&, label, input, .toggle {
|
||||
user-select: none;
|
||||
}
|
||||
label {
|
||||
cursor: pointer;
|
||||
color: @mdb-toggle-label-color;
|
||||
.mdb-label-color-toggle-focus();
|
||||
|
||||
// Hide original checkbox
|
||||
input[type=checkbox] {
|
||||
opacity: 0;
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.toggle {
|
||||
text-align: left; // Issue #737 horizontal form
|
||||
}
|
||||
// Switch bg off and disabled
|
||||
.toggle,
|
||||
input[type=checkbox][disabled] + .toggle {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
width: 30px;
|
||||
height: 15px;
|
||||
background-color: rgba(80, 80, 80, 0.7);
|
||||
border-radius: 15px;
|
||||
margin-right: 15px;
|
||||
transition: background 0.3s ease;
|
||||
vertical-align: middle;
|
||||
}
|
||||
// Handle off
|
||||
.toggle:after {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background-color: #F1F1F1;
|
||||
border-radius: 20px;
|
||||
position: relative;
|
||||
box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4);
|
||||
left: -5px;
|
||||
top: -2px;
|
||||
transition: left 0.3s ease, background 0.3s ease, box-shadow 0.1s ease;
|
||||
}
|
||||
input[type=checkbox] {
|
||||
// Handle disabled
|
||||
&[disabled] {
|
||||
& + .toggle:after,
|
||||
&:checked + .toggle:after {
|
||||
background-color: #BDBDBD;
|
||||
}
|
||||
}
|
||||
|
||||
& + .toggle:active:after,
|
||||
&[disabled] + .toggle:active:after {
|
||||
box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
// Ripple off and disabled
|
||||
&:checked + .toggle:after {
|
||||
left: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
// set bg when checked
|
||||
input[type=checkbox]:checked {
|
||||
+ .toggle {
|
||||
background-color: fade(@brand-primary, 50%); // Switch bg on
|
||||
}
|
||||
|
||||
+ .toggle:after {
|
||||
background-color: @brand-primary; // Handle on
|
||||
}
|
||||
|
||||
+ .toggle:active:after {
|
||||
box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px fade(@brand-primary, 10%); // Ripple on
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
.text-warning {
|
||||
color: @brand-warning;
|
||||
}
|
||||
.text-primary {
|
||||
color: @brand-primary;
|
||||
}
|
||||
.text-danger {
|
||||
color: @brand-danger;
|
||||
}
|
||||
.text-success {
|
||||
color: @brand-success;
|
||||
}
|
||||
.text-info {
|
||||
color: @brand-info;
|
||||
}
|
||||
@@ -0,0 +1,172 @@
|
||||
@import "_colors.less";
|
||||
|
||||
// Typography elements
|
||||
@mdb-font-family: 'Roboto', 'Helvetica', 'Arial', sans-serif;
|
||||
@mdb-text-color-light: ~"rgba(@{rgb-white}, 0.84)";
|
||||
@mdb-text-color-light-hex: @white; // for contrast function in inverse
|
||||
@mdb-text-color-primary: ~"rgba(@{rgb-black}, 0.87)";
|
||||
@mdb-text-color-primary-hex: @black; // for contrast function in inverse
|
||||
@icon-color: rgba(0,0,0,0.5);
|
||||
|
||||
|
||||
@mdb-label-color: ~"rgba(@{rgb-black}, 0.26)";
|
||||
@mdb-label-color-toggle-focus: ~"rgba(@{rgb-black}, .54)";
|
||||
|
||||
|
||||
// import bs variables for less, last declared wins.
|
||||
@import "_import-bs-less.less";
|
||||
|
||||
//---
|
||||
// Converted bs variables
|
||||
|
||||
// Bootstrap brand color customization
|
||||
@brand-primary: @teal;
|
||||
@brand-success: @green;
|
||||
@brand-danger: @red;
|
||||
@brand-warning: @deep-orange;
|
||||
@brand-info: @light-blue;
|
||||
|
||||
@border-radius-base: 2px;
|
||||
@border-radius-small: 1px;
|
||||
|
||||
// Typography
|
||||
@font-family-sans-serif: 'Roboto', 'Helvetica', 'Arial', sans-serif;
|
||||
@headings-font-weight: 300;
|
||||
|
||||
@body-bg: #EEEEEE;
|
||||
//---
|
||||
|
||||
// import bs variables for sass, first declared wins.
|
||||
@import "_import-bs-sass.less";
|
||||
|
||||
// Bootstrap Material Design variables start with mdb-
|
||||
@mdb-brand-inverse: @indigo;
|
||||
|
||||
|
||||
/* ANIMATION */
|
||||
@mdb-animation-curve-fast-out-slow-in: cubic-bezier(0.4, 0, 0.2, 1);
|
||||
@mdb-animation-curve-linear-out-slow-in: cubic-bezier(0, 0, 0.2, 1);
|
||||
@mdb-animation-curve-fast-out-linear-in: cubic-bezier(0.4, 0, 1, 1);
|
||||
@mdb-animation-curve-default: @mdb-animation-curve-fast-out-slow-in;
|
||||
|
||||
|
||||
//---
|
||||
// FIXME: Similar but not quite the same as Bootstrap variables
|
||||
// FIXME: these need to either a) be converted to @mdb- or b) converted to bs variables
|
||||
@contrast-factor: 40%;
|
||||
//---
|
||||
|
||||
|
||||
|
||||
|
||||
// --------------------
|
||||
// inputs
|
||||
@mdb-input-placeholder-color: #BDBDBD;
|
||||
@mdb-input-underline-color: #D2D2D2;
|
||||
@mdb-label-static-size-ratio: 75 / 100;
|
||||
@mdb-help-block-size-ratio: 75 / 100;
|
||||
|
||||
@mdb-input-font-size-base: 16px;
|
||||
@mdb-input-font-size-large: ceil((@font-size-base * 1.25)); // ~20px
|
||||
@mdb-input-font-size-small: ceil((@font-size-base * 0.75)); // ~12px
|
||||
|
||||
// FIXME: with #733 customization of bootstrap, consider how these could be based on the original bs customized variables
|
||||
//** Unit-less `line-height` for use in components like buttons.
|
||||
@mdb-input-line-height-base: @line-height-base; //1.428571429; // 20/14
|
||||
//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
|
||||
@mdb-input-line-height-computed: floor((@mdb-input-font-size-base * @mdb-input-line-height-base)); // ~20px
|
||||
@mdb-input-line-height-large: 1.3333333; // extra decimals for Win 8.1 Chrome
|
||||
@mdb-input-line-height-small: 1.5;
|
||||
|
||||
//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
|
||||
@mdb-input-padding-base-vertical: 8px - 1px; // was 6.
|
||||
@mdb-input-padding-base-horizontal: 0; // was 12.
|
||||
@mdb-label-as-placeholder-shim-base: 0; // manual adjustment of label top when positioned as placeholder
|
||||
@mdb-label-top-margin-base: 16px;
|
||||
|
||||
@mdb-input-padding-large-vertical: 10px - 1px; // 10
|
||||
@mdb-input-padding-large-horizontal: 0; // 16
|
||||
@mdb-label-as-placeholder-shim-large: -4px; // manual adjustment of label top when positioned as placeholder
|
||||
@mdb-label-top-margin-large: 16px;
|
||||
|
||||
@mdb-input-padding-small-vertical: 4px - 1px; // 5
|
||||
@mdb-input-padding-small-horizontal: 0; // 10
|
||||
@mdb-label-as-placeholder-shim-small: 8px; // manual adjustment of label top when positioned as placeholder
|
||||
@mdb-label-top-margin-small: 12px;
|
||||
|
||||
@mdb-input-padding-xs-vertical: 2px; // 1
|
||||
@mdb-input-padding-xs-horizontal: 0; // 5
|
||||
|
||||
@mdb-input-border-radius-base: 0;
|
||||
@mdb-input-border-radius-large: 0;
|
||||
@mdb-input-border-radius-small: 0;
|
||||
|
||||
|
||||
//** Default `.form-control` height
|
||||
@mdb-input-height-base: (@mdb-input-line-height-computed + (@mdb-input-padding-base-vertical * 2) + 2);
|
||||
//** Large `.form-control` height
|
||||
@mdb-input-height-large: (ceil(@mdb-input-font-size-large * @mdb-input-line-height-large) + (@mdb-input-padding-large-vertical * 2) + 2);
|
||||
//** Small `.form-control` height
|
||||
@mdb-input-height-small: (floor(@mdb-input-font-size-small * @mdb-input-line-height-small) + (@mdb-input-padding-small-vertical * 2) + 2);
|
||||
|
||||
|
||||
|
||||
|
||||
// Card
|
||||
@mdb-card-body-text: @mdb-text-color-primary;
|
||||
@mdb-card-body-background: #fff;
|
||||
@mdb-card-image-headline: #fff;
|
||||
|
||||
@text-disabled: #a8a8a8;
|
||||
@background-disabled: #eaeaea;
|
||||
|
||||
// Checkboxes
|
||||
@mdb-checkbox-size: 20px;
|
||||
@mdb-checkbox-animation-ripple: 500ms;
|
||||
@mdb-checkbox-animation-check: 0.3s;
|
||||
@mdb-checkbox-checked-color: @brand-primary;
|
||||
|
||||
@mdb-checkbox-border-size: 2px;
|
||||
@mdb-checkbox-label-color: @mdb-label-color;
|
||||
@mdb-checkbox-border-color: @mdb-label-color-toggle-focus;
|
||||
|
||||
// Popovers and Popups
|
||||
@mdb-popover-background: rgba(101, 101, 101, 0.9);
|
||||
@mdb-popover-color: #ececec;
|
||||
|
||||
// Dropdown Menu
|
||||
@mdb-dropdown-font-size: 16px;
|
||||
|
||||
// Toggle
|
||||
@mdb-toggle-label-color: @mdb-label-color;
|
||||
|
||||
// Radio:
|
||||
@mdb-radio-label-color: @mdb-label-color;
|
||||
@mdb-radio-color-off: @mdb-label-color-toggle-focus;
|
||||
@mdb-radio-color-on: @brand-primary;
|
||||
|
||||
// Buttons:
|
||||
@mdb-btn-font-size-base: 14px;
|
||||
@mdb-btn-font-size-lg: 16px;
|
||||
@mdb-btn-font-size-sm: 12px;
|
||||
@mdb-btn-font-size-xs: 10px;
|
||||
|
||||
|
||||
@mdb-btn-background-color: @body-bg; //transparent;
|
||||
@mdb-btn-background-color-text: @mdb-text-color-primary;
|
||||
|
||||
|
||||
@mdl-btn-border-radus: 2px;
|
||||
//@mdb-btn-primary-color: ~"rgba(@{rgb-grey-500}, 0.20)";
|
||||
|
||||
@mdb-btn-fab-size: 56px;
|
||||
@mdb-btn-fab-size-mini: 40px;
|
||||
@mdb-btn-fab-font-size: 24px;
|
||||
|
||||
@mdb-btn-icon-size: 32px;
|
||||
@mdb-btn-icon-size-mini: 24px;
|
||||
|
||||
/* SHADOWS */
|
||||
@mdb-shadow-key-umbra-opacity: 0.2;
|
||||
@mdb-shadow-key-penumbra-opacity: 0.14;
|
||||
@mdb-shadow-ambient-shadow-opacity: 0.12;
|
||||
@@ -0,0 +1,26 @@
|
||||
body {
|
||||
.container,
|
||||
.container-fluid {
|
||||
|
||||
.well.well-sm {
|
||||
padding: 10px;
|
||||
}
|
||||
.well.well-lg {
|
||||
padding: 26px;
|
||||
}
|
||||
.well,
|
||||
.jumbotron {
|
||||
|
||||
background-color: #fff;
|
||||
padding: 19px;
|
||||
margin-bottom: 20px;
|
||||
.shadow-z-2();
|
||||
border-radius: @border-radius-base;
|
||||
border: 0;
|
||||
p {
|
||||
font-weight: 300;
|
||||
}
|
||||
.variations(~"", ~"", background-color, @white);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
@import "_variables.less";
|
||||
@import "_mixins.less";
|
||||
@import "_shadows.less";
|
||||
@import '_core.less';
|
||||
@@ -0,0 +1,15 @@
|
||||
.dropdownjs::after {
|
||||
right: 5px;
|
||||
top: 3px;
|
||||
font-size: 25px;
|
||||
position: absolute;
|
||||
|
||||
// bring in the material icon font and icon by code
|
||||
font-family: 'Material Icons';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
content: "\e5c5"; // found here: https://github.com/google/material-design-icons/search?utf8=%E2%9C%93&q=arrow_drop_down
|
||||
|
||||
pointer-events: none;
|
||||
color: #757575;
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
.noUi-target,
|
||||
.noUi-target * {
|
||||
-webkit-touch-callout: none;
|
||||
-ms-touch-action: none;
|
||||
user-select: none;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.noUi-base {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
}
|
||||
.noUi-origin {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
.noUi-handle {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.noUi-stacking .noUi-handle {
|
||||
z-index: 10;
|
||||
}
|
||||
//.noUi-stacking + .noUi-origin {
|
||||
// *z-index: -1;
|
||||
//} WARNING: Property with star prefix found. Checks for the star property hack (targets IE6/7) (star-property-hack) Browsers: All
|
||||
.noUi-state-tap .noUi-origin {
|
||||
transition: left 0.3s, top 0.3s;
|
||||
}
|
||||
.noUi-state-drag * {
|
||||
cursor: inherit !important;
|
||||
}
|
||||
.noUi-horizontal {
|
||||
height: 10px;
|
||||
}
|
||||
.noUi-handle {
|
||||
box-sizing: border-box;
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
left: -10px;
|
||||
top: -5px;
|
||||
cursor: ew-resize;
|
||||
border-radius: 100%;
|
||||
transition: all 0.2s ease-out;
|
||||
border: 1px solid;
|
||||
}
|
||||
.noUi-vertical .noUi-handle {
|
||||
margin-left: 5px;
|
||||
cursor: ns-resize;
|
||||
}
|
||||
.noUi-horizontal.noUi-extended {
|
||||
padding: 0 15px;
|
||||
}
|
||||
.noUi-horizontal.noUi-extended .noUi-origin {
|
||||
right: -15px;
|
||||
}
|
||||
.noUi-background {
|
||||
height: 2px;
|
||||
margin: 20px 0;
|
||||
}
|
||||
.noUi-origin {
|
||||
margin: 0;
|
||||
border-radius: 0;
|
||||
height: 2px;
|
||||
background: #c8c8c8;
|
||||
&[style^="left: 0"] .noUi-handle {
|
||||
background-color: #fff;
|
||||
border: 2px solid #c8c8c8;
|
||||
&.noUi-active {
|
||||
border-width: 1px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.noUi-target {
|
||||
border-radius: @border-radius-base;
|
||||
}
|
||||
.noUi-horizontal {
|
||||
height: 2px;
|
||||
margin: 15px 0;
|
||||
}
|
||||
.noUi-vertical {
|
||||
height: 100%;
|
||||
width: 2px;
|
||||
margin: 0 15px;
|
||||
display: inline-block;
|
||||
}
|
||||
.noUi-handle.noUi-active {
|
||||
transform: scale3d(2.5, 2.5, 1);
|
||||
}
|
||||
[disabled].noUi-slider{
|
||||
opacity: 0.5;
|
||||
}
|
||||
[disabled] .noUi-handle {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.slider {
|
||||
background: #c8c8c8;
|
||||
}
|
||||
|
||||
.slider {
|
||||
.variations(~".slider", ~".noUi-connect", background-color, @brand-primary);
|
||||
.variations(~".slider", ~" .noUi-connect", background-color, @brand-primary);
|
||||
.variations(~".slider", ~" .noUi-handle", background-color, @brand-primary);
|
||||
.variations(~".slider", ~" .noUi-handle", border-color, @brand-primary);
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
// Support for Selectize plugin
|
||||
// http://brianreavis.github.io/selectize.js/
|
||||
|
||||
.selectize-control.single, .selectize-control.multi {
|
||||
padding: 0;
|
||||
.selectize-input, .selectize-input.input-active {
|
||||
|
||||
cursor: text;
|
||||
background: transparent;
|
||||
box-shadow: none;
|
||||
border: 0;
|
||||
padding: 0;
|
||||
height: 100%;
|
||||
font-size: 14px;
|
||||
line-height: 30px;
|
||||
.has-items {
|
||||
padding: 0;
|
||||
}
|
||||
&:after {
|
||||
right: 5px;
|
||||
position: absolute;
|
||||
font-size: 25px;
|
||||
content: "\e5c5";
|
||||
font-family: 'Material Icons';
|
||||
speak: none;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
font-variant: normal;
|
||||
text-transform: none;
|
||||
line-height: 1;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
input {
|
||||
font-size: 14px;
|
||||
outline: 0;
|
||||
border: 0;
|
||||
background: transparent;
|
||||
}
|
||||
&.label-floating-fix input {
|
||||
opacity: 0;
|
||||
}
|
||||
> div, > .item {
|
||||
display: inline-block;
|
||||
margin: 0 8px 3px 0;
|
||||
padding: 0;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
&:after {
|
||||
content: ",";
|
||||
}
|
||||
&:last-of-type:after {
|
||||
content: "";
|
||||
}
|
||||
&.active {
|
||||
font-weight: bold;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
.selectize-dropdown {
|
||||
position: absolute;
|
||||
z-index: 1000;
|
||||
border: 0;
|
||||
width: 100% !important;
|
||||
left: 0 !important;
|
||||
height: auto;
|
||||
background-color: #FFF;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
|
||||
border-radius: @border-radius-base;
|
||||
padding: 0;
|
||||
margin-top: 3px;
|
||||
.active {
|
||||
background-color: inherit;
|
||||
}
|
||||
.highlight {
|
||||
background-color: #d5d8ff;
|
||||
}
|
||||
.selected, .selected.active {
|
||||
background-color: #EEEEEE;
|
||||
}
|
||||
[data-selectable], .optgroup-header {
|
||||
padding: 10px 20px;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
.dropdown-active ~ .selectize-dropdown {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
// Support for SnackbarJS plugin
|
||||
// https://github.com/FezVrasta/snackbarjs
|
||||
|
||||
.snackbar {
|
||||
// Style
|
||||
background-color: #323232;
|
||||
color: @mdb-text-color-light;
|
||||
font-size: 14px;
|
||||
border-radius: @border-radius-base;
|
||||
.shadow-z-1;
|
||||
|
||||
// Animation
|
||||
height: 0;
|
||||
transition: transform 0.2s ease-in-out, opacity 0.2s ease-in, height 0s linear 0.2s, padding 0s linear 0.2s, height 0s linear 0.2s;
|
||||
transform: translateY(200%);
|
||||
}
|
||||
|
||||
.snackbar.snackbar-opened {
|
||||
// Style
|
||||
padding: 14px 15px;
|
||||
margin-bottom: 20px;
|
||||
|
||||
// Animation
|
||||
height: auto;
|
||||
transition: transform 0.2s ease-in-out, opacity 0.2s ease-in, height 0s linear 0.2s, height 0s linear 0.2s;
|
||||
transform: none;
|
||||
}
|
||||
|
||||
// Variations
|
||||
.snackbar.toast {
|
||||
border-radius: 200px;
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
.withripple {
|
||||
position: relative;
|
||||
}
|
||||
.ripple-container {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 1;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
border-radius: inherit;
|
||||
pointer-events: none;
|
||||
}
|
||||
.ripple {
|
||||
position: absolute;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
margin-left: -10px;
|
||||
margin-top: -10px;
|
||||
border-radius: 100%;
|
||||
background-color: #000; // fallback color
|
||||
background-color: rgba(0,0,0,0.05);
|
||||
transform: scale(1);
|
||||
transform-origin: 50%;
|
||||
opacity: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
.ripple.ripple-on {
|
||||
transition: opacity 0.15s ease-in 0s, transform 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.1s;
|
||||
opacity: 0.1;
|
||||
}
|
||||
.ripple.ripple-out {
|
||||
transition: opacity 0.1s linear 0s !important;
|
||||
opacity: 0;
|
||||
}
|
||||
Reference in New Issue
Block a user