Merge branch 'develop'

Conflicts:
	Gruntfile.js
	dist/js/material.min.js
	dist/js/ripples.min.js
	less/_buttons.less
	template/material/js/material.min.js
	template/material/js/ripples.min.js
This commit is contained in:
FezVrasta 2014-10-28 11:45:38 +01:00
commit f345dabacf
71 changed files with 1442 additions and 681 deletions

View File

@ -18,12 +18,12 @@ module.exports = function(grunt) {
} }
}, },
githooks: { /*githooks: {
all: { all: {
// Will run the jshint and test:unit tasks at every commit // Will run the jshint and test:unit tasks at every commit
"pre-commit": "less autoprefixer cssmin uglify copy newer:jshint jasmine:scripts" "pre-commit": "less autoprefixer cssmin uglify copy newer:jshint jasmine:scripts"
} }
}, }, */
sass: { sass: {
compilesass: { compilesass: {
@ -177,7 +177,7 @@ module.exports = function(grunt) {
}); });
grunt.registerTask("default", ["githooks", "less", "autoprefixer", "cssmin", "uglify", "copy"]); grunt.registerTask("default", ["less", "autoprefixer", "cssmin", "uglify", "copy"]);
grunt.registerTask("scss", ["sass", "autoprefixer", "cssmin", "uglify", "copy"]); grunt.registerTask("scss", ["sass", "autoprefixer", "cssmin", "uglify", "copy"]);

View File

@ -110,6 +110,40 @@ The syntax to add a Material icon is:
<i class="icon icon-material-favorite"></i> <i class="icon icon-material-favorite"></i>
# Material.js
Material.js is a jQuery plugin that add some magic to your markup and allows Material Design for Bootstrap to style some elements like inputs, checkboxes, radios etc.
### Functions:
This plugin exposes some functions, them are:
`$.material.inits` is a shortcut to run all the following commands.
`$.material.ripples()` will apply ripples.js to the default elements.
`$.material.input()` will enable the MD style to the text inputs, and other kind of inputs (number, email, file etc).
`$.material.checkbox():` will enable the MD style to the checkboxes (remember to follow the markup guidelines explained in the Inputs chapter.
`$.material.radio():` will enable the MD style to the checkboxes (remember to follow the markup guidelines explained in the Inputs chapter.
### Apply Material.js only to specific elements:
Every function expects an optional value that will be used as selector for the function, for example
`$.material.ripples("#selector, #foobar")` will apply Ripples.js only to `#selector` and `#foobar`.
The functions that allows an optional selector are `$.material.ripples`, `$.material.input`, `$.material.checkbox` and `$.material.radio`.
You can even override the default values using the `$.material.options` function, the default values are:
$.material.options = {
"withRipples": ".btn:not(.btn-link), .card-image, .navbar a:not(.withoutripple), .nav-tabs a:not(.withoutripple), .withripple",
"inputElements": "input.form-control, textarea.form-control, select.form-control",
"checkboxElements": ".checkbox > label > input[type=checkbox]",
"radioElements": ".radio > label > input[type=radio]"
}
### Arrive.js support
If you need to dynamically add elements to your DOM then you may need to include Arrive.js before Material.js, this will automatically apply Material.js to every new element added by you using JS.
# Plugins # Plugins
Material Design for Bootstrap comes with styling support for various external scripts: Material Design for Bootstrap comes with styling support for various external scripts:

View File

@ -1,6 +1,6 @@
{ {
"name": "Material Design for Bootstrap", "name": "Material Design for Bootstrap",
"version": "0.1.2", "version": "0.1.3",
"homepage": "http://fezvrasta.github.io/bootstrap-material-design", "homepage": "http://fezvrasta.github.io/bootstrap-material-design",
"authors": [ "authors": [
"Federico Zivolo <info@mywebexpression.com>" "Federico Zivolo <info@mywebexpression.com>"

View File

@ -1,4 +1,10 @@
@import url(//fonts.googleapis.com/css?family=Roboto+Condensed:300italic,400italic,700italic,400,700,300|Roboto:400,100,100italic,300,300italic,400italic,500,500italic,700,700italic); @font-face {
font-family: 'RobotoDraft';
font-style: normal;
font-weight: 100;
src: local('RobotoDraft Thin'), local('RobotoDraft-Thin'), url(https://fonts.gstatic.com/s/robotodraft/v2/hope9NW9iJ5hh8P5PM_EA2zZpt1Zv2lgqhgSPQ2HnUo.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
@font-face { @font-face {
font-family: "Material-Design-Icons"; font-family: "Material-Design-Icons";
src: url("../fonts/Material-Design-Icons.eot?-g7cqhn"); src: url("../fonts/Material-Design-Icons.eot?-g7cqhn");
@ -2662,76 +2668,146 @@ body .jumbotron-material-lightgrey,
background-color: #eaeaea !important; background-color: #eaeaea !important;
box-shadow: none; box-shadow: none;
} }
.btn:not(.btn-link), .btn:not(.btn-link):not(.btn-flat),
.btn-default:not(.btn-link) { .btn-default:not(.btn-link):not(.btn-flat) {
background-color: transparent; background-color: transparent;
} }
.btn-primary:not(.btn-link) { .btn-primary:not(.btn-link):not(.btn-flat) {
background-color: #4285f4; background-color: #4285f4;
} }
.btn-success:not(.btn-link) { .btn-success:not(.btn-link):not(.btn-flat) {
background-color: #0f9d58; background-color: #0f9d58;
} }
.btn-info:not(.btn-link) { .btn-info:not(.btn-link):not(.btn-flat) {
background-color: #03a9f4; background-color: #03a9f4;
} }
.btn-warning:not(.btn-link) { .btn-warning:not(.btn-link):not(.btn-flat) {
background-color: #ff5722; background-color: #ff5722;
} }
.btn-danger:not(.btn-link) { .btn-danger:not(.btn-link):not(.btn-flat) {
background-color: #f44336; background-color: #f44336;
} }
.btn-material-red:not(.btn-link) { .btn-material-red:not(.btn-link):not(.btn-flat) {
background-color: #f44336; background-color: #f44336;
} }
.btn-material-pink:not(.btn-link) { .btn-material-pink:not(.btn-link):not(.btn-flat) {
background-color: #e91e63; background-color: #e91e63;
} }
.btn-material-purple:not(.btn-link) { .btn-material-purple:not(.btn-link):not(.btn-flat) {
background-color: #9c27b0; background-color: #9c27b0;
} }
.btn-material-deeppurple:not(.btn-link) { .btn-material-deeppurple:not(.btn-link):not(.btn-flat) {
background-color: #673ab7; background-color: #673ab7;
} }
.btn-material-indigo:not(.btn-link) { .btn-material-indigo:not(.btn-link):not(.btn-flat) {
background-color: #3f51b5; background-color: #3f51b5;
} }
.btn-material-lightblue:not(.btn-link) { .btn-material-lightblue:not(.btn-link):not(.btn-flat) {
background-color: #03a9f4; background-color: #03a9f4;
} }
.btn-material-cyan:not(.btn-link) { .btn-material-cyan:not(.btn-link):not(.btn-flat) {
background-color: #00bcd4; background-color: #00bcd4;
} }
.btn-material-teal:not(.btn-link) { .btn-material-teal:not(.btn-link):not(.btn-flat) {
background-color: #009688; background-color: #009688;
} }
.btn-material-lightgreen:not(.btn-link) { .btn-material-lightgreen:not(.btn-link):not(.btn-flat) {
background-color: #8bc34a; background-color: #8bc34a;
} }
.btn-material-lime:not(.btn-link) { .btn-material-lime:not(.btn-link):not(.btn-flat) {
background-color: #cddc39; background-color: #cddc39;
} }
.btn-material-lightyellow:not(.btn-link) { .btn-material-lightyellow:not(.btn-link):not(.btn-flat) {
background-color: #ffeb3b; background-color: #ffeb3b;
} }
.btn-material-orange:not(.btn-link) { .btn-material-orange:not(.btn-link):not(.btn-flat) {
background-color: #ff9800; background-color: #ff9800;
} }
.btn-material-deeporange:not(.btn-link) { .btn-material-deeporange:not(.btn-link):not(.btn-flat) {
background-color: #ff5722; background-color: #ff5722;
} }
.btn-material-grey:not(.btn-link) { .btn-material-grey:not(.btn-link):not(.btn-flat) {
background-color: #9e9e9e; background-color: #9e9e9e;
} }
.btn-material-bluegrey:not(.btn-link) { .btn-material-bluegrey:not(.btn-link):not(.btn-flat) {
background-color: #607d8b; background-color: #607d8b;
} }
.btn-material-brown:not(.btn-link) { .btn-material-brown:not(.btn-link):not(.btn-flat) {
background-color: #795548; background-color: #795548;
} }
.btn-material-lightgrey:not(.btn-link) { .btn-material-lightgrey:not(.btn-link):not(.btn-flat) {
background-color: #ececec; background-color: #ececec;
} }
.btn.btn-flat:not(.btn-link),
.btn-default.btn-flat:not(.btn-link) {
color: rgba(0, 0, 0, 0.84);
}
.btn-primary.btn-flat:not(.btn-link) {
color: #4285f4;
}
.btn-success.btn-flat:not(.btn-link) {
color: #0f9d58;
}
.btn-info.btn-flat:not(.btn-link) {
color: #03a9f4;
}
.btn-warning.btn-flat:not(.btn-link) {
color: #ff5722;
}
.btn-danger.btn-flat:not(.btn-link) {
color: #f44336;
}
.btn-material-red.btn-flat:not(.btn-link) {
color: #f44336;
}
.btn-material-pink.btn-flat:not(.btn-link) {
color: #e91e63;
}
.btn-material-purple.btn-flat:not(.btn-link) {
color: #9c27b0;
}
.btn-material-deeppurple.btn-flat:not(.btn-link) {
color: #673ab7;
}
.btn-material-indigo.btn-flat:not(.btn-link) {
color: #3f51b5;
}
.btn-material-lightblue.btn-flat:not(.btn-link) {
color: #03a9f4;
}
.btn-material-cyan.btn-flat:not(.btn-link) {
color: #00bcd4;
}
.btn-material-teal.btn-flat:not(.btn-link) {
color: #009688;
}
.btn-material-lightgreen.btn-flat:not(.btn-link) {
color: #8bc34a;
}
.btn-material-lime.btn-flat:not(.btn-link) {
color: #cddc39;
}
.btn-material-lightyellow.btn-flat:not(.btn-link) {
color: #ffeb3b;
}
.btn-material-orange.btn-flat:not(.btn-link) {
color: #ff9800;
}
.btn-material-deeporange.btn-flat:not(.btn-link) {
color: #ff5722;
}
.btn-material-grey.btn-flat:not(.btn-link) {
color: #9e9e9e;
}
.btn-material-bluegrey.btn-flat:not(.btn-link) {
color: #607d8b;
}
.btn-material-brown.btn-flat:not(.btn-link) {
color: #795548;
}
.btn-material-lightgrey.btn-flat:not(.btn-link) {
color: #ececec;
}
.btn.btn-flat { .btn.btn-flat {
background: none; background: none;
box-shadow: none; box-shadow: none;
@ -2740,21 +2816,6 @@ body .jumbotron-material-lightgrey,
.btn.btn-flat:disabled { .btn.btn-flat:disabled {
color: #a8a8a8 !important; color: #a8a8a8 !important;
} }
.btn.btn-flat.btn-primary {
color: #4285f4;
}
.btn.btn-flat.btn-success {
color: #0f9d58;
}
.btn.btn-flat.btn-info {
color: #03a9f4;
}
.btn.btn-flat.btn-warning {
color: #ff5722;
}
.btn.btn-flat.btn-danger {
color: #f44336;
}
.btn.btn-raised { .btn.btn-raised {
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
-webkit-transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1); -webkit-transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1);
@ -2893,7 +2954,11 @@ body .jumbotron-material-lightgrey,
color: rgba(0, 0, 0, 0.84); color: rgba(0, 0, 0, 0.84);
} }
.btn:not([class^="btn btn-"]):hover, .btn:not([class^="btn btn-"]):hover,
.btn-default:hover { .btn-default:hover,
.btn-flat:not(.btn-link):hover,
.btn:not([class^="btn btn-"]).active,
.btn-default.active,
.btn-flat:not(.btn-link).active {
background-color: rgba(255, 255, 255, 0.5); background-color: rgba(255, 255, 255, 0.5);
} }
.open > .dropdown-toggle.btn, .open > .dropdown-toggle.btn,
@ -4951,74 +5016,103 @@ fieldset[disabled] .navbar .btn-link:focus {
.tooltip.bottom .tooltip-arrow { .tooltip.bottom .tooltip-arrow {
border-bottom-color: #323232; border-bottom-color: #323232;
} }
.icon, .mdi,
.icon-default { icon {
line-height: inherit;
vertical-align: bottom;
}
.mdi,
icon,
.mdi-default,
icon-default {
color: rgba(0, 0, 0, 0.84); color: rgba(0, 0, 0, 0.84);
} }
.icon-primary { .mdi-primary,
icon-primary {
color: #4285f4; color: #4285f4;
} }
.icon-success { .mdi-success,
icon-success {
color: #0f9d58; color: #0f9d58;
} }
.icon-info { .mdi-info,
icon-info {
color: #03a9f4; color: #03a9f4;
} }
.icon-warning { .mdi-warning,
icon-warning {
color: #ff5722; color: #ff5722;
} }
.icon-danger { .mdi-danger,
icon-danger {
color: #f44336; color: #f44336;
} }
.icon-material-red { .mdi-material-red,
icon-material-red {
color: #f44336; color: #f44336;
} }
.icon-material-pink { .mdi-material-pink,
icon-material-pink {
color: #e91e63; color: #e91e63;
} }
.icon-material-purple { .mdi-material-purple,
icon-material-purple {
color: #9c27b0; color: #9c27b0;
} }
.icon-material-deeppurple { .mdi-material-deeppurple,
icon-material-deeppurple {
color: #673ab7; color: #673ab7;
} }
.icon-material-indigo { .mdi-material-indigo,
icon-material-indigo {
color: #3f51b5; color: #3f51b5;
} }
.icon-material-lightblue { .mdi-material-lightblue,
icon-material-lightblue {
color: #03a9f4; color: #03a9f4;
} }
.icon-material-cyan { .mdi-material-cyan,
icon-material-cyan {
color: #00bcd4; color: #00bcd4;
} }
.icon-material-teal { .mdi-material-teal,
icon-material-teal {
color: #009688; color: #009688;
} }
.icon-material-lightgreen { .mdi-material-lightgreen,
icon-material-lightgreen {
color: #8bc34a; color: #8bc34a;
} }
.icon-material-lime { .mdi-material-lime,
icon-material-lime {
color: #cddc39; color: #cddc39;
} }
.icon-material-lightyellow { .mdi-material-lightyellow,
icon-material-lightyellow {
color: #ffeb3b; color: #ffeb3b;
} }
.icon-material-orange { .mdi-material-orange,
icon-material-orange {
color: #ff9800; color: #ff9800;
} }
.icon-material-deeporange { .mdi-material-deeporange,
icon-material-deeporange {
color: #ff5722; color: #ff5722;
} }
.icon-material-grey { .mdi-material-grey,
icon-material-grey {
color: #9e9e9e; color: #9e9e9e;
} }
.icon-material-bluegrey { .mdi-material-bluegrey,
icon-material-bluegrey {
color: #607d8b; color: #607d8b;
} }
.icon-material-brown { .mdi-material-brown,
icon-material-brown {
color: #795548; color: #795548;
} }
.icon-material-lightgrey { .mdi-material-lightgrey,
icon-material-lightgrey {
color: #ececec; color: #ececec;
} }
.card { .card {
@ -5080,7 +5174,6 @@ fieldset[disabled] .navbar .btn-link:focus {
} }
.modal-content { .modal-content {
box-shadow: 0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22); box-shadow: 0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22);
margin-top: 10em;
border-radius: 2px; border-radius: 2px;
border: none; border: none;
} }
@ -5091,7 +5184,6 @@ fieldset[disabled] .navbar .btn-link:focus {
} }
.modal-content .modal-body { .modal-content .modal-body {
padding: 24px; padding: 24px;
padding-bottom: 0;
} }
.modal-content .modal-footer { .modal-content .modal-footer {
border-top: none; border-top: none;
@ -5112,6 +5204,9 @@ fieldset[disabled] .navbar .btn-link:focus {
.modal-content .modal-footer button + button { .modal-content .modal-footer button + button {
margin-bottom: 16px; margin-bottom: 16px;
} }
.modal-content .modal-body + .modal-footer {
padding-top: 0;
}
.modal-backdrop { .modal-backdrop {
display: none; display: none;
} }
@ -5549,11 +5644,11 @@ fieldset[disabled] .navbar .btn-link:focus {
.selectize-control.multi .selectize-input:after, .selectize-control.multi .selectize-input:after,
.selectize-control.single .selectize-input.input-active:after, .selectize-control.single .selectize-input.input-active:after,
.selectize-control.multi .selectize-input.input-active:after { .selectize-control.multi .selectize-input.input-active:after {
content: "\e611";
right: 5px; right: 5px;
position: absolute; position: absolute;
font-size: 7px; font-size: 7px;
font-family: 'Material-Design'; content: "\e894";
font-family: "Material-Design-Icons";
speak: none; speak: none;
font-style: normal; font-style: normal;
font-weight: normal; font-weight: normal;

File diff suppressed because one or more lines are too long

373
dist/css/material.css vendored
View File

@ -2241,6 +2241,20 @@
.mdi-toggle-radio-button-on:before { .mdi-toggle-radio-button-on:before {
content: "\e8e4"; content: "\e8e4";
} }
@-webkit-keyframes input-highlight {
0% {
left: 20%;
width: 20%;
}
99% {
width: 0;
left: 0;
opacity: 1;
}
100% {
opacity: 0;
}
}
@keyframes input-highlight { @keyframes input-highlight {
0% { 0% {
left: 20%; left: 20%;
@ -2632,6 +2646,7 @@ body .jumbotron-material-lightgrey,
text-transform: uppercase; text-transform: uppercase;
text-decoration: none; text-decoration: none;
color: rgba(255, 255, 255, 0.84); color: rgba(255, 255, 255, 0.84);
-webkit-transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1);
transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1); transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1);
outline: none !important; outline: none !important;
} }
@ -2646,76 +2661,146 @@ body .jumbotron-material-lightgrey,
background-color: #eaeaea !important; background-color: #eaeaea !important;
box-shadow: none; box-shadow: none;
} }
.btn:not(.btn-link), .btn:not(.btn-link):not(.btn-flat),
.btn-default:not(.btn-link) { .btn-default:not(.btn-link):not(.btn-flat) {
background-color: transparent; background-color: transparent;
} }
.btn-primary:not(.btn-link) { .btn-primary:not(.btn-link):not(.btn-flat) {
background-color: #4285f4; background-color: #4285f4;
} }
.btn-success:not(.btn-link) { .btn-success:not(.btn-link):not(.btn-flat) {
background-color: #0f9d58; background-color: #0f9d58;
} }
.btn-info:not(.btn-link) { .btn-info:not(.btn-link):not(.btn-flat) {
background-color: #03a9f4; background-color: #03a9f4;
} }
.btn-warning:not(.btn-link) { .btn-warning:not(.btn-link):not(.btn-flat) {
background-color: #ff5722; background-color: #ff5722;
} }
.btn-danger:not(.btn-link) { .btn-danger:not(.btn-link):not(.btn-flat) {
background-color: #f44336; background-color: #f44336;
} }
.btn-material-red:not(.btn-link) { .btn-material-red:not(.btn-link):not(.btn-flat) {
background-color: #f44336; background-color: #f44336;
} }
.btn-material-pink:not(.btn-link) { .btn-material-pink:not(.btn-link):not(.btn-flat) {
background-color: #e91e63; background-color: #e91e63;
} }
.btn-material-purple:not(.btn-link) { .btn-material-purple:not(.btn-link):not(.btn-flat) {
background-color: #9c27b0; background-color: #9c27b0;
} }
.btn-material-deeppurple:not(.btn-link) { .btn-material-deeppurple:not(.btn-link):not(.btn-flat) {
background-color: #673ab7; background-color: #673ab7;
} }
.btn-material-indigo:not(.btn-link) { .btn-material-indigo:not(.btn-link):not(.btn-flat) {
background-color: #3f51b5; background-color: #3f51b5;
} }
.btn-material-lightblue:not(.btn-link) { .btn-material-lightblue:not(.btn-link):not(.btn-flat) {
background-color: #03a9f4; background-color: #03a9f4;
} }
.btn-material-cyan:not(.btn-link) { .btn-material-cyan:not(.btn-link):not(.btn-flat) {
background-color: #00bcd4; background-color: #00bcd4;
} }
.btn-material-teal:not(.btn-link) { .btn-material-teal:not(.btn-link):not(.btn-flat) {
background-color: #009688; background-color: #009688;
} }
.btn-material-lightgreen:not(.btn-link) { .btn-material-lightgreen:not(.btn-link):not(.btn-flat) {
background-color: #8bc34a; background-color: #8bc34a;
} }
.btn-material-lime:not(.btn-link) { .btn-material-lime:not(.btn-link):not(.btn-flat) {
background-color: #cddc39; background-color: #cddc39;
} }
.btn-material-lightyellow:not(.btn-link) { .btn-material-lightyellow:not(.btn-link):not(.btn-flat) {
background-color: #ffeb3b; background-color: #ffeb3b;
} }
.btn-material-orange:not(.btn-link) { .btn-material-orange:not(.btn-link):not(.btn-flat) {
background-color: #ff9800; background-color: #ff9800;
} }
.btn-material-deeporange:not(.btn-link) { .btn-material-deeporange:not(.btn-link):not(.btn-flat) {
background-color: #ff5722; background-color: #ff5722;
} }
.btn-material-grey:not(.btn-link) { .btn-material-grey:not(.btn-link):not(.btn-flat) {
background-color: #9e9e9e; background-color: #9e9e9e;
} }
.btn-material-bluegrey:not(.btn-link) { .btn-material-bluegrey:not(.btn-link):not(.btn-flat) {
background-color: #607d8b; background-color: #607d8b;
} }
.btn-material-brown:not(.btn-link) { .btn-material-brown:not(.btn-link):not(.btn-flat) {
background-color: #795548; background-color: #795548;
} }
.btn-material-lightgrey:not(.btn-link) { .btn-material-lightgrey:not(.btn-link):not(.btn-flat) {
background-color: #ececec; background-color: #ececec;
} }
.btn.btn-flat:not(.btn-link),
.btn-default.btn-flat:not(.btn-link) {
color: rgba(0, 0, 0, 0.84);
}
.btn-primary.btn-flat:not(.btn-link) {
color: #4285f4;
}
.btn-success.btn-flat:not(.btn-link) {
color: #0f9d58;
}
.btn-info.btn-flat:not(.btn-link) {
color: #03a9f4;
}
.btn-warning.btn-flat:not(.btn-link) {
color: #ff5722;
}
.btn-danger.btn-flat:not(.btn-link) {
color: #f44336;
}
.btn-material-red.btn-flat:not(.btn-link) {
color: #f44336;
}
.btn-material-pink.btn-flat:not(.btn-link) {
color: #e91e63;
}
.btn-material-purple.btn-flat:not(.btn-link) {
color: #9c27b0;
}
.btn-material-deeppurple.btn-flat:not(.btn-link) {
color: #673ab7;
}
.btn-material-indigo.btn-flat:not(.btn-link) {
color: #3f51b5;
}
.btn-material-lightblue.btn-flat:not(.btn-link) {
color: #03a9f4;
}
.btn-material-cyan.btn-flat:not(.btn-link) {
color: #00bcd4;
}
.btn-material-teal.btn-flat:not(.btn-link) {
color: #009688;
}
.btn-material-lightgreen.btn-flat:not(.btn-link) {
color: #8bc34a;
}
.btn-material-lime.btn-flat:not(.btn-link) {
color: #cddc39;
}
.btn-material-lightyellow.btn-flat:not(.btn-link) {
color: #ffeb3b;
}
.btn-material-orange.btn-flat:not(.btn-link) {
color: #ff9800;
}
.btn-material-deeporange.btn-flat:not(.btn-link) {
color: #ff5722;
}
.btn-material-grey.btn-flat:not(.btn-link) {
color: #9e9e9e;
}
.btn-material-bluegrey.btn-flat:not(.btn-link) {
color: #607d8b;
}
.btn-material-brown.btn-flat:not(.btn-link) {
color: #795548;
}
.btn-material-lightgrey.btn-flat:not(.btn-link) {
color: #ececec;
}
.btn.btn-flat { .btn.btn-flat {
background: none; background: none;
box-shadow: none; box-shadow: none;
@ -2724,23 +2809,9 @@ body .jumbotron-material-lightgrey,
.btn.btn-flat:disabled { .btn.btn-flat:disabled {
color: #a8a8a8 !important; color: #a8a8a8 !important;
} }
.btn.btn-flat.btn-primary {
color: #4285f4;
}
.btn.btn-flat.btn-success {
color: #0f9d58;
}
.btn.btn-flat.btn-info {
color: #03a9f4;
}
.btn.btn-flat.btn-warning {
color: #ff5722;
}
.btn.btn-flat.btn-danger {
color: #f44336;
}
.btn.btn-raised { .btn.btn-raised {
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
-webkit-transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1);
transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1); transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1);
} }
.btn.btn-raised:active:not(.btn-link) { .btn.btn-raised:active:not(.btn-link) {
@ -2876,7 +2947,11 @@ body .jumbotron-material-lightgrey,
color: rgba(0, 0, 0, 0.84); color: rgba(0, 0, 0, 0.84);
} }
.btn:not([class^="btn btn-"]):hover, .btn:not([class^="btn btn-"]):hover,
.btn-default:hover { .btn-default:hover,
.btn-flat:not(.btn-link):hover,
.btn:not([class^="btn btn-"]).active,
.btn-default.active,
.btn-flat:not(.btn-link).active {
background-color: rgba(255, 255, 255, 0.5); background-color: rgba(255, 255, 255, 0.5);
} }
.open > .dropdown-toggle.btn, .open > .dropdown-toggle.btn,
@ -2955,6 +3030,7 @@ body .jumbotron-material-lightgrey,
border-radius: 2px; border-radius: 2px;
margin: 10px 1px; margin: 10px 1px;
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
-webkit-transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1);
transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1); transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1);
} }
.btn-group:active:not(.btn-link), .btn-group:active:not(.btn-link),
@ -2968,6 +3044,7 @@ body .jumbotron-material-lightgrey,
.btn-group.btn-group-raised, .btn-group.btn-group-raised,
.btn-group-vertical.btn-group-raised { .btn-group-vertical.btn-group-raised {
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
-webkit-transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1);
transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1); transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1);
} }
.btn-group.btn-group-raised:active:not(.btn-link), .btn-group.btn-group-raised:active:not(.btn-link),
@ -3002,6 +3079,7 @@ body .jumbotron-material-lightgrey,
display: block; display: block;
position: absolute; position: absolute;
left: 0px; left: 0px;
-webkit-transition-duration: 0.2s;
transition-duration: 0.2s; transition-duration: 0.2s;
} }
.checkbox label .check { .checkbox label .check {
@ -3032,6 +3110,8 @@ body .jumbotron-material-lightgrey,
.checkbox label .check:before { .checkbox label .check:before {
position: absolute; position: absolute;
content: ""; content: "";
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg); transform: rotate(45deg);
display: block; display: block;
margin-top: -4px; margin-top: -4px;
@ -3045,6 +3125,7 @@ body .jumbotron-material-lightgrey,
0 0 0 0, 0 0 0 0,
0 0 0 0, 0 0 0 0,
0px 0px 0 0px inset; 0px 0px 0 0px inset;
-webkit-animation: checkbox-off 0.3s linear forwards;
animation: checkbox-off 0.3s linear forwards; animation: checkbox-off 0.3s linear forwards;
} }
.checkbox input[type=checkbox] { .checkbox input[type=checkbox] {
@ -3055,16 +3136,20 @@ body .jumbotron-material-lightgrey,
} }
.checkbox input[type=checkbox]:checked ~ .check:before { .checkbox input[type=checkbox]:checked ~ .check:before {
box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0px 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 20px -12px 0 11px; box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0px 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 20px -12px 0 11px;
-webkit-animation: checkbox-on 0.3s linear forwards;
animation: checkbox-on 0.3s linear forwards; animation: checkbox-on 0.3s linear forwards;
} }
.checkbox input[type=checkbox]:not(:checked) ~ .check:after { .checkbox input[type=checkbox]:not(:checked) ~ .check:after {
-webkit-animation: rippleOff 500ms linear forwards;
animation: rippleOff 500ms linear forwards; animation: rippleOff 500ms linear forwards;
} }
.checkbox input[type=checkbox]:checked ~ .check:after { .checkbox input[type=checkbox]:checked ~ .check:after {
-webkit-animation: rippleOn 500ms linear forwards;
animation: rippleOn 500ms linear forwards; animation: rippleOn 500ms linear forwards;
} }
.checkbox:not(:hover) input[type=checkbox] ~ .check:before, .checkbox:not(:hover) input[type=checkbox] ~ .check:before,
.checkbox:not(:hover) input[type=checkbox] ~ .check:after { .checkbox:not(:hover) input[type=checkbox] ~ .check:after {
-webkit-animation-duration: 1ms;
animation-duration: 1ms; animation-duration: 1ms;
} }
.checkbox input[type=checkbox][disabled]:not(:checked) ~ .check:before { .checkbox input[type=checkbox][disabled]:not(:checked) ~ .check:before {
@ -3072,6 +3157,8 @@ body .jumbotron-material-lightgrey,
} }
.checkbox input[type=checkbox][disabled] ~ .check:after { .checkbox input[type=checkbox][disabled] ~ .check:after {
background-color: rgba(0, 0, 0, 0.84); background-color: rgba(0, 0, 0, 0.84);
-webkit-transform: rotate(-45deg);
-ms-transform: rotate(-45deg);
transform: rotate(-45deg); transform: rotate(-45deg);
} }
.checkbox input[type=checkbox]:checked ~ .check:after, .checkbox input[type=checkbox]:checked ~ .check:after,
@ -3284,6 +3371,17 @@ body .jumbotron-material-lightgrey,
.checkbox-material-lightgrey input[type=checkbox]:checked ~ .check { .checkbox-material-lightgrey input[type=checkbox]:checked ~ .check {
color: #ececec; color: #ececec;
} }
@-webkit-keyframes checkbox-on {
0% {
box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0px 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 0px 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 0px 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 20px -12px 0 11px;
}
}
@keyframes checkbox-on { @keyframes checkbox-on {
0% { 0% {
box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0px 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 15px 2px 0 11px; box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0px 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 15px 2px 0 11px;
@ -3295,7 +3393,7 @@ body .jumbotron-material-lightgrey,
box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0px 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 20px -12px 0 11px; box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0px 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 20px -12px 0 11px;
} }
} }
@keyframes checkbox-off { @-webkit-keyframes checkbox-off {
0% { 0% {
box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0px 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 20px -12px 0 11px, 0 0 0 0 inset; box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0px 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 20px -12px 0 11px, 0 0 0 0 inset;
} }
@ -3303,6 +3401,7 @@ body .jumbotron-material-lightgrey,
box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0px 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 20px -12px 0 11px, 0 0 0 0 inset; box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0px 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 20px -12px 0 11px, 0 0 0 0 inset;
} }
50% { 50% {
-webkit-transform: rotate(45deg);
transform: rotate(45deg); transform: rotate(45deg);
margin-top: -4px; margin-top: -4px;
margin-left: 6px; margin-left: 6px;
@ -3311,6 +3410,7 @@ body .jumbotron-material-lightgrey,
box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0px 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 15px 2px 0 11px, 0 0 0 0 inset; box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0px 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 15px 2px 0 11px, 0 0 0 0 inset;
} }
51% { 51% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg); transform: rotate(0deg);
margin-top: -2px; margin-top: -2px;
margin-left: -2px; margin-left: -2px;
@ -3325,6 +3425,54 @@ body .jumbotron-material-lightgrey,
0px 0px 0 10px inset; 0px 0px 0 10px inset;
} }
100% { 100% {
-webkit-transform: rotate(0deg);
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 0px 0 0px inset;
}
}
@keyframes checkbox-off {
0% {
box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0px 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 0px 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 20px -12px 0 11px, 0 0 0 0 inset;
}
50% {
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
margin-top: -4px;
margin-left: 6px;
width: 0px;
height: 0px;
box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0px 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 15px 2px 0 11px, 0 0 0 0 inset;
}
51% {
-webkit-transform: rotate(0deg);
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 0px 0 10px inset;
}
100% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg); transform: rotate(0deg);
margin-top: -2px; margin-top: -2px;
margin-left: -2px; margin-left: -2px;
@ -3352,6 +3500,7 @@ body .jumbotron-material-lightgrey,
position: absolute; position: absolute;
left: 10px; left: 10px;
top: 2px; top: 2px;
-webkit-transition-duration: 0.2s;
transition-duration: 0.2s; transition-duration: 0.2s;
} }
.radio label .circle { .radio label .circle {
@ -3365,6 +3514,8 @@ body .jumbotron-material-lightgrey,
width: 15px; width: 15px;
border-radius: 100%; border-radius: 100%;
background-color: rgba(0, 0, 0, 0.84); background-color: rgba(0, 0, 0, 0.84);
-webkit-transform: scale(0);
-ms-transform: scale(0);
transform: scale(0); transform: scale(0);
} }
.radio label .check:after { .radio label .check:after {
@ -3380,12 +3531,16 @@ body .jumbotron-material-lightgrey,
z-index: 1; z-index: 1;
opacity: 0; opacity: 0;
margin: 0; margin: 0;
-webkit-transform: scale(1.5);
-ms-transform: scale(1.5);
transform: scale(1.5); transform: scale(1.5);
} }
.radio label input[type=radio]:not(:checked) ~ .check:after { .radio label input[type=radio]:not(:checked) ~ .check:after {
-webkit-animation: rippleOff 500ms;
animation: rippleOff 500ms; animation: rippleOff 500ms;
} }
.radio label input[type=radio]:checked ~ .check:after { .radio label input[type=radio]:checked ~ .check:after {
-webkit-animation: rippleOn 500ms;
animation: rippleOn 500ms; animation: rippleOn 500ms;
} }
.radio input[type=radio]:checked ~ .check, .radio input[type=radio]:checked ~ .check,
@ -3536,6 +3691,8 @@ body .jumbotron-material-lightgrey,
display: none; display: none;
} }
.radio input[type=radio]:checked ~ .check { .radio input[type=radio]:checked ~ .check {
-webkit-transform: scale(0.55);
-ms-transform: scale(0.55);
transform: scale(0.55); transform: scale(0.55);
} }
.radio input[type=radio][disabled] ~ .circle { .radio input[type=radio][disabled] ~ .circle {
@ -3544,6 +3701,17 @@ body .jumbotron-material-lightgrey,
.radio input[type=radio][disabled] ~ .check { .radio input[type=radio][disabled] ~ .check {
background-color: rgba(0, 0, 0, 0.84); background-color: rgba(0, 0, 0, 0.84);
} }
@-webkit-keyframes rippleOn {
0% {
opacity: 0;
}
50% {
opacity: 0.2;
}
100% {
opacity: 0;
}
}
@keyframes rippleOn { @keyframes rippleOn {
0% { 0% {
opacity: 0; opacity: 0;
@ -3555,6 +3723,17 @@ body .jumbotron-material-lightgrey,
opacity: 0; opacity: 0;
} }
} }
@-webkit-keyframes rippleOff {
0% {
opacity: 0;
}
50% {
opacity: 0.2;
}
100% {
opacity: 0;
}
}
@keyframes rippleOff { @keyframes rippleOff {
0% { 0% {
opacity: 0; opacity: 0;
@ -3628,6 +3807,7 @@ select[multiple].form-control.focus {
pointer-events: none; pointer-events: none;
left: 0px; left: 0px;
top: 5px; top: 5px;
-webkit-transition: 0.2s ease all;
transition: 0.2s ease all; transition: 0.2s ease all;
opacity: 0; opacity: 0;
} }
@ -3661,12 +3841,18 @@ select[multiple].form-control.focus {
height: 2px; height: 2px;
background-color: #5264ae; background-color: #5264ae;
bottom: -1px; bottom: -1px;
-webkit-transform: scaleX(0);
-ms-transform: scaleX(0);
transform: scaleX(0); transform: scaleX(0);
-webkit-transition: -webkit-transform 0s;
transition: transform 0s; transition: transform 0s;
} }
.form-control-wrapper .form-control:focus ~ .material-input:before, .form-control-wrapper .form-control:focus ~ .material-input:before,
.form-control-wrapper .form-control.focus ~ .material-input:before { .form-control-wrapper .form-control.focus ~ .material-input:before {
-webkit-transform: scaleX(1);
-ms-transform: scaleX(1);
transform: scaleX(1); transform: scaleX(1);
-webkit-transition: -webkit-transform 0.2s ease-out;
transition: transform 0.2s ease-out; transition: transform 0.2s ease-out;
} }
.form-control-wrapper .material-input:after { .form-control-wrapper .material-input:after {
@ -3679,6 +3865,8 @@ select[multiple].form-control.focus {
left: 0; left: 0;
pointer-events: none; pointer-events: none;
opacity: 0.9; opacity: 0.9;
-webkit-transform-origin: left;
-ms-transform-origin: left;
transform-origin: left; transform-origin: left;
} }
.form-control-wrapper .input-lg ~ .material-input:after { .form-control-wrapper .input-lg ~ .material-input:after {
@ -3692,7 +3880,9 @@ select[multiple].form-control.focus {
} }
.form-control-wrapper .form-control:focus ~ .material-input:after, .form-control-wrapper .form-control:focus ~ .material-input:after,
.form-control-wrapper .form-control.focus ~ .material-input:after { .form-control-wrapper .form-control.focus ~ .material-input:after {
-webkit-animation: input-highlight 0.3s ease;
animation: input-highlight 0.3s ease; animation: input-highlight 0.3s ease;
-webkit-animation-fill-mode: forwards;
animation-fill-mode: forwards; animation-fill-mode: forwards;
opacity: 0; opacity: 0;
} }
@ -4113,9 +4303,11 @@ select.form-control.focus {
@keyframes input-highlight { @keyframes input-highlight {
0% { 0% {
left: 20%; left: 20%;
-webkit-transform: scaleX(20%);
transform: scaleX(20%); transform: scaleX(20%);
} }
99% { 99% {
-webkit-transform: scaleX(0);
transform: scaleX(0); transform: scaleX(0);
left: 0; left: 0;
opacity: 1; opacity: 1;
@ -4817,74 +5009,103 @@ fieldset[disabled] .navbar .btn-link:focus {
.tooltip.bottom .tooltip-arrow { .tooltip.bottom .tooltip-arrow {
border-bottom-color: #323232; border-bottom-color: #323232;
} }
.icon, .mdi,
.icon-default { icon {
line-height: inherit;
vertical-align: bottom;
}
.mdi,
icon,
.mdi-default,
icon-default {
color: rgba(0, 0, 0, 0.84); color: rgba(0, 0, 0, 0.84);
} }
.icon-primary { .mdi-primary,
icon-primary {
color: #4285f4; color: #4285f4;
} }
.icon-success { .mdi-success,
icon-success {
color: #0f9d58; color: #0f9d58;
} }
.icon-info { .mdi-info,
icon-info {
color: #03a9f4; color: #03a9f4;
} }
.icon-warning { .mdi-warning,
icon-warning {
color: #ff5722; color: #ff5722;
} }
.icon-danger { .mdi-danger,
icon-danger {
color: #f44336; color: #f44336;
} }
.icon-material-red { .mdi-material-red,
icon-material-red {
color: #f44336; color: #f44336;
} }
.icon-material-pink { .mdi-material-pink,
icon-material-pink {
color: #e91e63; color: #e91e63;
} }
.icon-material-purple { .mdi-material-purple,
icon-material-purple {
color: #9c27b0; color: #9c27b0;
} }
.icon-material-deeppurple { .mdi-material-deeppurple,
icon-material-deeppurple {
color: #673ab7; color: #673ab7;
} }
.icon-material-indigo { .mdi-material-indigo,
icon-material-indigo {
color: #3f51b5; color: #3f51b5;
} }
.icon-material-lightblue { .mdi-material-lightblue,
icon-material-lightblue {
color: #03a9f4; color: #03a9f4;
} }
.icon-material-cyan { .mdi-material-cyan,
icon-material-cyan {
color: #00bcd4; color: #00bcd4;
} }
.icon-material-teal { .mdi-material-teal,
icon-material-teal {
color: #009688; color: #009688;
} }
.icon-material-lightgreen { .mdi-material-lightgreen,
icon-material-lightgreen {
color: #8bc34a; color: #8bc34a;
} }
.icon-material-lime { .mdi-material-lime,
icon-material-lime {
color: #cddc39; color: #cddc39;
} }
.icon-material-lightyellow { .mdi-material-lightyellow,
icon-material-lightyellow {
color: #ffeb3b; color: #ffeb3b;
} }
.icon-material-orange { .mdi-material-orange,
icon-material-orange {
color: #ff9800; color: #ff9800;
} }
.icon-material-deeporange { .mdi-material-deeporange,
icon-material-deeporange {
color: #ff5722; color: #ff5722;
} }
.icon-material-grey { .mdi-material-grey,
icon-material-grey {
color: #9e9e9e; color: #9e9e9e;
} }
.icon-material-bluegrey { .mdi-material-bluegrey,
icon-material-bluegrey {
color: #607d8b; color: #607d8b;
} }
.icon-material-brown { .mdi-material-brown,
icon-material-brown {
color: #795548; color: #795548;
} }
.icon-material-lightgrey { .mdi-material-lightgrey,
icon-material-lightgrey {
color: #ececec; color: #ececec;
} }
.card { .card {
@ -4946,7 +5167,6 @@ fieldset[disabled] .navbar .btn-link:focus {
} }
.modal-content { .modal-content {
box-shadow: 0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22); box-shadow: 0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22);
margin-top: 10em;
border-radius: 2px; border-radius: 2px;
border: none; border: none;
} }
@ -4957,7 +5177,6 @@ fieldset[disabled] .navbar .btn-link:focus {
} }
.modal-content .modal-body { .modal-content .modal-body {
padding: 24px; padding: 24px;
padding-bottom: 0;
} }
.modal-content .modal-footer { .modal-content .modal-footer {
border-top: none; border-top: none;
@ -4978,6 +5197,9 @@ fieldset[disabled] .navbar .btn-link:focus {
.modal-content .modal-footer button + button { .modal-content .modal-footer button + button {
margin-bottom: 16px; margin-bottom: 16px;
} }
.modal-content .modal-body + .modal-footer {
padding-top: 0;
}
.modal-backdrop { .modal-backdrop {
display: none; display: none;
} }
@ -4988,14 +5210,20 @@ fieldset[disabled] .navbar .btn-link:focus {
border-radius: 2px; border-radius: 2px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
height: 0; height: 0;
-webkit-transition: -webkit-transform 0.2s ease-in-out, opacity 0.2s ease-in, height 0 linear 0.2s, padding 0 linear 0.2s, height 0 linear 0.2s;
transition: transform 0.2s ease-in-out, opacity 0.2s ease-in, height 0 linear 0.2s, padding 0 linear 0.2s, height 0 linear 0.2s; transition: transform 0.2s ease-in-out, opacity 0.2s ease-in, height 0 linear 0.2s, padding 0 linear 0.2s, height 0 linear 0.2s;
-webkit-transform: translateY(200%);
-ms-transform: translateY(200%);
transform: translateY(200%); transform: translateY(200%);
} }
.snackbar.snackbar-opened { .snackbar.snackbar-opened {
padding: 14px 15px; padding: 14px 15px;
margin-bottom: 20px; margin-bottom: 20px;
height: auto; height: auto;
-webkit-transition: -webkit-transform 0.2s ease-in-out, opacity 0.2s ease-in, height 0 linear 0.2s, height 0 linear 0.2s;
transition: transform 0.2s ease-in-out, opacity 0.2s ease-in, height 0 linear 0.2s, height 0 linear 0.2s; transition: transform 0.2s ease-in-out, opacity 0.2s ease-in, height 0 linear 0.2s, height 0 linear 0.2s;
-webkit-transform: none;
-ms-transform: none;
transform: none; transform: none;
} }
.snackbar.toast { .snackbar.toast {
@ -5005,6 +5233,9 @@ fieldset[disabled] .navbar .btn-link:focus {
.noUi-target * { .noUi-target * {
-webkit-touch-callout: none; -webkit-touch-callout: none;
-ms-touch-action: none; -ms-touch-action: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none; user-select: none;
box-sizing: border-box; box-sizing: border-box;
} }
@ -5032,6 +5263,7 @@ fieldset[disabled] .navbar .btn-link:focus {
*z-index: -1; *z-index: -1;
} }
.noUi-state-tap .noUi-origin { .noUi-state-tap .noUi-origin {
-webkit-transition: left 0.3s, top 0.3s;
transition: left 0.3s, top 0.3s; transition: left 0.3s, top 0.3s;
} }
.noUi-state-drag * { .noUi-state-drag * {
@ -5076,6 +5308,7 @@ fieldset[disabled] .navbar .btn-link:focus {
.noUi-handle { .noUi-handle {
border-radius: 100%; border-radius: 100%;
cursor: default; cursor: default;
-webkit-transition: all 0.2s ease-out;
transition: all 0.2s ease-out; transition: all 0.2s ease-out;
border: 1px solid; border: 1px solid;
} }
@ -5084,6 +5317,8 @@ fieldset[disabled] .navbar .btn-link:focus {
margin: 15px 0; margin: 15px 0;
} }
.noUi-horizontal .noUi-handle.noUi-active { .noUi-horizontal .noUi-handle.noUi-active {
-webkit-transform: scale(2.5);
-ms-transform: scale(2.5);
transform: scale(2.5); transform: scale(2.5);
} }
[disabled].noUi-slider { [disabled].noUi-slider {
@ -5402,11 +5637,11 @@ fieldset[disabled] .navbar .btn-link:focus {
.selectize-control.multi .selectize-input:after, .selectize-control.multi .selectize-input:after,
.selectize-control.single .selectize-input.input-active:after, .selectize-control.single .selectize-input.input-active:after,
.selectize-control.multi .selectize-input.input-active:after { .selectize-control.multi .selectize-input.input-active:after {
content: "\e611";
right: 5px; right: 5px;
position: absolute; position: absolute;
font-size: 7px; font-size: 7px;
font-family: 'Material-Design'; content: "\e894";
font-family: "Material-Design-Icons";
speak: none; speak: none;
font-style: normal; font-style: normal;
font-weight: normal; font-weight: normal;

File diff suppressed because one or more lines are too long

193
dist/js/material.js vendored
View File

@ -1,70 +1,88 @@
/* globals ripples */ /* globals jQuery, ripples */
$(function (){ (function($) {
// Selector to select only not already processed elements
if (typeof ripples == "object") { $.expr[":"].notmdproc = function(obj){
ripples.init( ".btn:not(.btn-link)," + if ($(obj).data("mdproc")) {
".card-image," + return false;
".navbar a:not(.withoutripple)," +
".nav-tabs a:not(.withoutripple)," +
".withripple" );
}
var initInputs = function() {
// Add fake-checkbox to material checkboxes
$(".checkbox > label > input").not(".bs-material").addClass("bs-material").after("<span class=check></span>");
// Add fake-radio to material radios
$(".radio > label > input").not(".bs-material").addClass("bs-material").after("<span class=circle></span><span class=check></span>");
// Add elements for material inputs
$("input.form-control, textarea.form-control, select.form-control").not(".bs-material").each( function() {
if ($(this).is(".bs-material")) { return; }
$(this).wrap("<div class=form-control-wrapper></div>");
$(this).after("<span class=material-input></span>");
if ($(this).hasClass("floating-label")) {
var placeholder = $(this).attr("placeholder");
$(this).attr("placeholder", null).removeClass("floating-label");
$(this).after("<div class=floating-label>" + placeholder + "</div>");
}
if ($(this).is(":empty") || $(this).val() === null || $(this).val() == "undefined" || $(this).val() === "") {
$(this).addClass("empty");
}
if ($(this).parent().next().is("[type=file]")) {
$(this).parent().addClass("fileinput");
var $input = $(this).parent().next().detach();
$(this).after($input);
}
});
};
initInputs();
// Support for "arrive.js" to dynamically detect creation of elements
// include it before this script to take advantage of this feature
// https://github.com/uzairfarooq/arrive/
if (document.arrive) {
document.arrive("input, textarea, select", function() {
initInputs();
});
}
$(document).on("change", ".checkbox input", function() {
$(this).blur();
});
$(document).on("keyup change", ".form-control", function() {
var self = $(this);
setTimeout(function() {
if (self.val() === "") {
self.addClass("empty");
} else { } else {
self.removeClass("empty"); return true;
}
};
function _isChar(evt) {
if (typeof evt.which == "undefined") {
return true;
} else if (typeof evt.which == "number" && evt.which > 0) {
return !evt.ctrlKey && !evt.metaKey && !evt.altKey && evt.which != 8;
}
return false;
}
$.material = {
"options": {
"withRipples": [
".btn:not(.btn-link)",
".card-image",
".navbar a:not(.withoutripple)",
".dropdown-menu a",
".nav-tabs a:not(.withoutripple)",
".withripple"
].join(","),
"inputElements": "input.form-control, textarea.form-control, select.form-control",
"checkboxElements": ".checkbox > label > input[type=checkbox]",
"radioElements": ".radio > label > input[type=radio]"
},
"checkbox": function(selector) {
// Add fake-checkbox to material checkboxes
$((selector) ? selector : this.options.checkboxElements)
.filter(":notmdproc")
.data("mdproc", true)
.after("<span class=check></span>");
},
"radio": function(selector) {
// Add fake-radio to material radios
$((selector) ? selector : this.options.radioElements)
.filter(":notmdproc")
.data("mdproc", true)
.after("<span class=circle></span><span class=check></span>");
},
"input": function(selector) {
$((selector) ? selector : this.options.inputElements)
.filter(":notmdproc")
.data("mdproc", true)
.each( function() {
var $this = $(this);
$this.wrap("<div class=form-control-wrapper></div>");
$this.after("<span class=material-input></span>");
if ($this.hasClass("floating-label")) {
var placeholder = $this.attr("placeholder");
$this.attr("placeholder", null).removeClass("floating-label");
$this.after("<div class=floating-label>" + placeholder + "</div>");
}
if ($this.is(":empty") || $this.val() === null || $this.val() == "undefined" || $this.val() === "") {
$this.addClass("empty");
}
if ($this.parent().next().is("[type=file]")) {
$this.parent().addClass("fileinput");
var $input = $this.parent().next().detach();
$this.after($input);
} }
}, 1);
}); });
$(document) $(document)
.on("change", ".checkbox input", function() { $(this).blur(); })
.on("keydown", ".form-control", function(e) {
if(_isChar(e)) {
$(this).removeClass("empty");
}
})
.on("keyup change", ".form-control", function() {
var $this = $(this);
if($this.val() === "") {
$this.addClass("empty");
}
})
.on("focus", ".form-control-wrapper.fileinput", function() { .on("focus", ".form-control-wrapper.fileinput", function() {
$(this).find("input").addClass("focus"); $(this).find("input").addClass("focus");
}) })
@ -85,4 +103,55 @@ $(function (){
} }
$(this).prev().val(value); $(this).prev().val(value);
}); });
},
"ripples": function(selector) {
ripples.init((selector) ? selector : this.options.withRipples);
},
"init": function() {
this.ripples();
this.input();
this.checkbox();
this.radio();
if (document.arrive) {
document.arrive("input, textarea, select", function() {
$.material.init();
}); });
}
// Detect autofill
(function() {
// This part of code will detect autofill when the page is loading (username and password inputs for example)
var loading = setInterval(function() {
$("input").each(function() {
if ($(this).val() !== $(this).attr("value")) {
$(this).trigger("change");
}
});
}, 100);
// After 10 seconds we are quite sure all the needed inputs are autofilled then we can stop checking them
setTimeout(function() {
clearInterval(loading);
}, 10000);
// Now we just listen on inputs of the focused form (because user can select from the autofill dropdown only when the input has focus)
var focused;
$(document)
.on("focus", "input", function() {
var $inputs = $(this).parents("form").find("input");
focused = setInterval(function() {
$inputs.each(function() {
if ($(this).val() !== $(this).attr("value")) {
$(this).trigger("change");
}
});
}, 100);
})
.on("blur", "input", function() {
clearInterval(focused);
});
})();
}
};
})(jQuery);

View File

@ -1 +1 @@
$(function(){"object"==typeof ripples&&ripples.init(".btn:not(.btn-link),.card-image,.navbar a:not(.withoutripple),.nav-tabs a:not(.withoutripple),.withripple");var a=function(){$(".checkbox > label > input").not(".bs-material").addClass("bs-material").after("<span class=check></span>"),$(".radio > label > input").not(".bs-material").addClass("bs-material").after("<span class=circle></span><span class=check></span>"),$("input.form-control, textarea.form-control, select.form-control").not(".bs-material").each(function(){if(!$(this).is(".bs-material")){if($(this).wrap("<div class=form-control-wrapper></div>"),$(this).after("<span class=material-input></span>"),$(this).hasClass("floating-label")){var a=$(this).attr("placeholder");$(this).attr("placeholder",null).removeClass("floating-label"),$(this).after("<div class=floating-label>"+a+"</div>")}if(($(this).is(":empty")||null===$(this).val()||"undefined"==$(this).val()||""===$(this).val())&&$(this).addClass("empty"),$(this).parent().next().is("[type=file]")){$(this).parent().addClass("fileinput");var b=$(this).parent().next().detach();$(this).after(b)}}})};a(),document.arrive&&document.arrive("input, textarea, select",function(){a()}),$(document).on("change",".checkbox input",function(){$(this).blur()}),$(document).on("keyup change",".form-control",function(){var a=$(this);setTimeout(function(){""===a.val()?a.addClass("empty"):a.removeClass("empty")},1)}),$(document).on("focus",".form-control-wrapper.fileinput",function(){$(this).find("input").addClass("focus")}).on("blur",".form-control-wrapper.fileinput",function(){$(this).find("input").removeClass("focus")}).on("change",".form-control-wrapper.fileinput [type=file]",function(){var a="";$.each($(this)[0].files,function(b,c){console.log(c),a+=c.name+", "}),a=a.substring(0,a.length-2),a?$(this).prev().removeClass("empty"):$(this).prev().addClass("empty"),$(this).prev().val(a)})}); !function(a){function b(a){return"undefined"==typeof a.which?!0:"number"==typeof a.which&&a.which>0?!a.ctrlKey&&!a.metaKey&&!a.altKey&&8!=a.which:!1}a.expr[":"].notmdproc=function(b){return a(b).data("mdproc")?!1:!0},a.material={options:{withRipples:[".btn:not(.btn-link)",".card-image",".navbar a:not(.withoutripple)",".dropdown-menu a",".nav-tabs a:not(.withoutripple)",".withripple"].join(","),inputElements:"input.form-control, textarea.form-control, select.form-control",checkboxElements:".checkbox > label > input[type=checkbox]",radioElements:".radio > label > input[type=radio]"},checkbox:function(b){a(b?b:this.options.checkboxElements).filter(":notmdproc").data("mdproc",!0).after("<span class=check></span>")},radio:function(b){a(b?b:this.options.radioElements).filter(":notmdproc").data("mdproc",!0).after("<span class=circle></span><span class=check></span>")},input:function(c){a(c?c:this.options.inputElements).filter(":notmdproc").data("mdproc",!0).each(function(){var b=a(this);if(b.wrap("<div class=form-control-wrapper></div>"),b.after("<span class=material-input></span>"),b.hasClass("floating-label")){var c=b.attr("placeholder");b.attr("placeholder",null).removeClass("floating-label"),b.after("<div class=floating-label>"+c+"</div>")}if((b.is(":empty")||null===b.val()||"undefined"==b.val()||""===b.val())&&b.addClass("empty"),b.parent().next().is("[type=file]")){b.parent().addClass("fileinput");var d=b.parent().next().detach();b.after(d)}}),a(document).on("change",".checkbox input",function(){a(this).blur()}).on("keydown",".form-control",function(c){b(c)&&a(this).removeClass("empty")}).on("keyup change",".form-control",function(){var b=a(this);""===b.val()&&b.addClass("empty")}).on("focus",".form-control-wrapper.fileinput",function(){a(this).find("input").addClass("focus")}).on("blur",".form-control-wrapper.fileinput",function(){a(this).find("input").removeClass("focus")}).on("change",".form-control-wrapper.fileinput [type=file]",function(){var b="";a.each(a(this)[0].files,function(a,c){console.log(c),b+=c.name+", "}),b=b.substring(0,b.length-2),b?a(this).prev().removeClass("empty"):a(this).prev().addClass("empty"),a(this).prev().val(b)})},ripples:function(a){ripples.init(a?a:this.options.withRipples)},init:function(){this.ripples(),this.input(),this.checkbox(),this.radio(),document.arrive&&document.arrive("input, textarea, select",function(){a.material.init()}),function(){var b=setInterval(function(){a("input").each(function(){a(this).val()!==a(this).attr("value")&&a(this).trigger("change")})},100);setTimeout(function(){clearInterval(b)},1e4);var c;a(document).on("focus","input",function(){var b=a(this).parents("form").find("input");c=setInterval(function(){b.each(function(){a(this).val()!==a(this).attr("value")&&a(this).trigger("change")})},100)}).on("blur","input",function(){clearInterval(c)})}()}}}(jQuery);

2
dist/js/ripples.js vendored
View File

@ -46,7 +46,7 @@ window.ripples = {
mousePos = {x: e.clientX - elPos.left, y: ((window.ontouchstart) ? e.clientY - window.scrollY: e.clientY) - elPos.top}, mousePos = {x: e.clientX - elPos.left, y: ((window.ontouchstart) ? e.clientY - window.scrollY: e.clientY) - elPos.top},
scale = "scale(" + Math.round($rippleWrapper.offsetWidth / 5) + ")", scale = "scale(" + Math.round($rippleWrapper.offsetWidth / 5) + ")",
rippleEnd = new CustomEvent("rippleEnd", {detail: $ripple}), rippleEnd = new CustomEvent("rippleEnd", {detail: $ripple}),
_rippleOpacity = 0.1, _rippleOpacity = 0.3,
refreshElementStyle; refreshElementStyle;

View File

@ -1 +1 @@
window.ripples={init:function(a){"use strict";function b(a,b){var c=a.matches||a.matchesSelector||a.webkitMatchesSelector||a.mozMatchesSelector||a.msMatchesSelector||a.oMatchesSelector;return c.call(a,b)}var c=100,d=500,e=function(a,c,d){"string"==typeof a&&(a=[a]),a.forEach(function(a){document.addEventListener(a,function(a){var e="number"!=typeof a.detail?a.detail:a.target;b(e,c)&&d(a,e)})})},f=function(a,b,c){var e,f=b,g=f.parentNode,h=document.createElement("div"),j=g.getBoundingClientRect(),k={x:a.clientX-j.left,y:(window.ontouchstart?a.clientY-window.scrollY:a.clientY)-j.top},l="scale("+Math.round(f.offsetWidth/5)+")",m=new CustomEvent("rippleEnd",{detail:h}),n=.1;a.touches&&(k={x:a.touches[0].clientX-j.left,y:a.touches[0].clientY-j.top}),console.log(k),i=h,h.className="ripple",h.setAttribute("style","left:"+k.x+"px; top:"+k.y+"px;");var o=window.getComputedStyle(g).color;o=o.replace("rgb","rgba").replace(")",", "+n+")"),f.appendChild(h),e=window.getComputedStyle(h).opacity,h.dataset.animating=1,h.className="ripple ripple-on";var p=[h.getAttribute("style"),"background-color: "+o,"-ms-transform: "+l,"-moz-transform"+l,"-webkit-transform"+l,"transform: "+l];h.setAttribute("style",p.join(";")),setTimeout(function(){h.dataset.animating=0,document.dispatchEvent(m),c&&c()},d)},g=function(a){a.className="ripple ripple-on ripple-out",setTimeout(function(){a.remove()},c)},h=!1;e(["mousedown","touchstart"],"*",function(){h=!0}),e(["mouseup","touchend"],"*",function(){h=!1});var i,j=function(a,b){if(0===b.getElementsByClassName("ripple-wrapper").length){b.className+=" withripple";var c=document.createElement("div");c.className="ripple-wrapper",b.appendChild(c),null===window.ontouchstart&&f(a,c,function(){c.getElementsByClassName("ripple")[0].remove()})}};e(["mouseover","touchstart"],a,j),e(["mousedown","touchstart"],".ripple-wrapper",function(a,b){(0===a.which||1===a.which||2===a.which)&&f(a,b)}),e("rippleEnd",".ripple-wrapper .ripple",function(a,b){var c=b.parentNode.getElementsByClassName("ripple");(!h||c[0]==b&&c.length>1)&&g(b)}),e(["mouseup","touchend"],".ripple-wrapper",function(){var a=i;a&&1!=a.dataset.animating&&g(a)})}}; window.ripples={init:function(a){"use strict";function b(a,b){var c=a.matches||a.matchesSelector||a.webkitMatchesSelector||a.mozMatchesSelector||a.msMatchesSelector||a.oMatchesSelector;return c.call(a,b)}var c=100,d=500,e=function(a,c,d){"string"==typeof a&&(a=[a]),a.forEach(function(a){document.addEventListener(a,function(a){var e="number"!=typeof a.detail?a.detail:a.target;b(e,c)&&d(a,e)})})},f=function(a,b,c){var e,f=b,g=f.parentNode,h=document.createElement("div"),j=g.getBoundingClientRect(),k={x:a.clientX-j.left,y:(window.ontouchstart?a.clientY-window.scrollY:a.clientY)-j.top},l="scale("+Math.round(f.offsetWidth/5)+")",m=new CustomEvent("rippleEnd",{detail:h}),n=.3;a.touches&&(k={x:a.touches[0].clientX-j.left,y:a.touches[0].clientY-j.top}),console.log(k),i=h,h.className="ripple",h.setAttribute("style","left:"+k.x+"px; top:"+k.y+"px;");var o=window.getComputedStyle(g).color;o=o.replace("rgb","rgba").replace(")",", "+n+")"),f.appendChild(h),e=window.getComputedStyle(h).opacity,h.dataset.animating=1,h.className="ripple ripple-on";var p=[h.getAttribute("style"),"background-color: "+o,"-ms-transform: "+l,"-moz-transform"+l,"-webkit-transform"+l,"transform: "+l];h.setAttribute("style",p.join(";")),setTimeout(function(){h.dataset.animating=0,document.dispatchEvent(m),c&&c()},d)},g=function(a){a.className="ripple ripple-on ripple-out",setTimeout(function(){a.remove()},c)},h=!1;e(["mousedown","touchstart"],"*",function(){h=!0}),e(["mouseup","touchend"],"*",function(){h=!1});var i,j=function(a,b){if(0===b.getElementsByClassName("ripple-wrapper").length){b.className+=" withripple";var c=document.createElement("div");c.className="ripple-wrapper",b.appendChild(c),null===window.ontouchstart&&f(a,c,function(){c.getElementsByClassName("ripple")[0].remove()})}};e(["mouseover","touchstart"],a,j),e(["mousedown","touchstart"],".ripple-wrapper",function(a,b){(0===a.which||1===a.which||2===a.which)&&f(a,b)}),e("rippleEnd",".ripple-wrapper .ripple",function(a,b){var c=b.parentNode.getElementsByClassName("ripple");(!h||c[0]==b&&c.length>1)&&g(b)}),e(["mouseup","touchend"],".ripple-wrapper",function(){var a=i;a&&1!=a.dataset.animating&&g(a)})}};

View File

@ -2309,6 +2309,7 @@
<script src="//cdnjs.cloudflare.com/ajax/libs/noUiSlider/6.2.0/jquery.nouislider.min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/noUiSlider/6.2.0/jquery.nouislider.min.js"></script>
<script> <script>
$(function() { $(function() {
$.material.init();
$(".slider").noUiSlider({ $(".slider").noUiSlider({
start: 40, start: 40,
connect: "lower", connect: "lower",

View File

@ -26,7 +26,9 @@
transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1); transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1);
outline: none !important; outline: none !important;
.variations(~":not(.btn-link)", background-color, @btn-default); .variations(~":not(.btn-link):not(.btn-flat)", background-color, @btn-default);
.variations(~".btn-flat:not(.btn-link)", color, @lightbg-text);
&.btn-flat { &.btn-flat {
background: none; background: none;
@ -35,21 +37,6 @@
&:disabled { &:disabled {
color: @text-disabled !important; color: @text-disabled !important;
} }
&.btn-primary {
color: @primary;
}
&.btn-success {
color: @success;
}
&.btn-info {
color: @info;
}
&.btn-warning {
color: @warning;
}
&.btn-danger {
color: @danger;
}
} }
&.btn-raised { &.btn-raised {
@ -82,15 +69,15 @@
} }
} }
// This is needed to style buttons which has not a variation suffix (they must stiled as btn-default) // This is needed to style buttons which has not a variation suffix (they must be stiled as btn-default)
.btn-link, .btn:not([class^="btn btn-"]), .btn-default { .btn-link, .btn:not([class^="btn btn-"]), .btn-default {
color: @lightbg-text; color: @lightbg-text;
&:hover { &:hover {
color: @lightbg-text; color: @lightbg-text;
} }
} }
.btn:not([class^="btn btn-"]), .btn-default { .btn:not([class^="btn btn-"]), .btn-default, .btn-flat:not(.btn-link) {
&:hover { &:hover, &.active {
background-color: rgba(255,255,255,0.5); background-color: rgba(255,255,255,0.5);
} }
} }

View File

@ -1,6 +1,5 @@
.modal-content { .modal-content {
.shadow-z-5(); .shadow-z-5();
margin-top: 10em; //XXX TODO Need a better way to vertically position the dialog
border-radius: 2px; border-radius: 2px;
border: none; border: none;
.modal-header { .modal-header {
@ -10,7 +9,6 @@
} }
.modal-body { .modal-body {
padding: 24px; padding: 24px;
padding-bottom: 0;
} }
.modal-footer { .modal-footer {
border-top: none; border-top: none;
@ -31,6 +29,9 @@
margin-bottom: 16px; margin-bottom: 16px;
} }
} }
.modal-body + .modal-footer {
padding-top: 0;
}
} }
.modal-backdrop { .modal-backdrop {

View File

@ -1,5 +0,0 @@
// main: material.less
.icon {
.variations(~"", color, @lightbg-text);
}

5
less/_icons.less Normal file
View File

@ -0,0 +1,5 @@
.mdi, icon {
.variations(~"", color, @lightbg-text);
line-height: inherit;
vertical-align: bottom;
}

View File

@ -17,11 +17,11 @@
padding: 0; padding: 0;
} }
&:after { &:after {
content: "\e611";
right: 5px; right: 5px;
position: absolute; position: absolute;
font-size: 7px; font-size: 7px;
font-family: 'Material-Design'; content: "\e894";
font-family: "Material-Design-Icons";
speak: none; speak: none;
font-style: normal; font-style: normal;
font-weight: normal; font-weight: normal;

View File

@ -1,2 +1,8 @@
@import url(//fonts.googleapis.com/css?family=Roboto+Condensed:300italic,400italic,700italic,400,700,300|Roboto:400,100,100italic,300,300italic,400italic,500,500italic,700,700italic); @font-face {
font-family: 'RobotoDraft';
font-style: normal;
font-weight: 100;
src: local('RobotoDraft Thin'), local('RobotoDraft-Thin'), url(https://fonts.gstatic.com/s/robotodraft/v2/hope9NW9iJ5hh8P5PM_EA2zZpt1Zv2lgqhgSPQ2HnUo.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
@import "material.less"; @import "material.less";

View File

@ -1,11 +1,11 @@
// Material Theme 0.0.1 // Material Theme 0.0.1
// ----------------------------------------------------- // -----------------------------------------------------
@import "_variables.import.less"; @import "_variables.less";
@import "_mixins.import.less"; @import "_mixins.less";
@import "_icons-material-design.import.less"; @import "_icons-material-design.less";
@import "_animations.import.less"; @import "_animations.less";
@import "_shadows.import.less"; @import "_shadows.less";
body { body {
background-color: #EEEEEE; background-color: #EEEEEE;
@ -29,29 +29,29 @@ h5, h6{
} }
// Well and Jumbotrons // Well and Jumbotrons
@import "_welljumbo.import.less"; @import "_welljumbo.less";
// Buttons // Buttons
@import "_buttons.import.less"; @import "_buttons.less";
// Checkboxes // Checkboxes
@import "_checkboxes.import.less"; @import "_checkboxes.less";
// Radios // Radios
@import "_radios.import.less"; @import "_radios.less";
// Text inputs // Text inputs
@import "_inputs.import.less"; @import "_inputs.less";
legend { legend {
border-bottom: 0; border-bottom: 0;
} }
// Lists // Lists
@import "_lists.import.less"; @import "_lists.less";
// Navbar // Navbar
@import "_navbar.import.less"; @import "_navbar.less";
.dropdown-menu { .dropdown-menu {
border: 0; border: 0;
@ -71,10 +71,10 @@ legend {
} }
// Alerts // Alerts
@import "_alerts.import.less"; @import "_alerts.less";
// Progress bar // Progress bar
@import "_progress.import.less"; @import "_progress.less";
// Typography // Typography
.text-warning { .text-warning {
@ -93,17 +93,17 @@ legend {
color: @btn-info; color: @btn-info;
} }
@import "_tabs.import.less"; @import "_tabs.less";
@import "_popups.import.less"; @import "_popups.less";
@import "_icons.import.less"; @import "_icons.less";
@import "_cards.import.less"; @import "_cards.less";
@import "_dialogs.import.less"; @import "_dialogs.less";
// External plugins // External plugins
@import "_plugin-snackbarjs.import.less"; @import "_plugin-snackbarjs.less";
@import "_plugin-nouislider.import.less"; @import "_plugin-nouislider.less";
@import "_plugin-selectize.import.less"; @import "_plugin-selectize.less";

View File

@ -1,6 +1,6 @@
{ {
"name": "bootstrap-material", "name": "bootstrap-material",
"version": "0.1.2", "version": "0.1.3",
"description": "Material Design for Bootstrap", "description": "Material Design for Bootstrap",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {

View File

@ -1,2 +1,8 @@
@import url(//fonts.googleapis.com/css?family=Roboto+Condensed:300italic,400italic,700italic,400,700,300|Roboto:400,100,100italic,300,300italic,400italic,500,500italic,700,700italic); @font-face {
font-family: 'RobotoDraft';
font-style: normal;
font-weight: 100;
src: local('RobotoDraft Thin'), local('RobotoDraft-Thin'), url(https://fonts.gstatic.com/s/robotodraft/v2/hope9NW9iJ5hh8P5PM_EA2zZpt1Zv2lgqhgSPQ2HnUo.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
@import "material.scss"; @import "material.scss";

View File

@ -1,10 +1,10 @@
// Material Theme 0.0.1 // Material Theme 0.0.1
// ----------------------------------------------------- // -----------------------------------------------------
@import "_variables.import.scss"; @import "_variables.scss";
@import "_mixins.import.scss"; @import "_mixins.scss";
@import "_animations.import.scss"; @import "_animations.scss";
@import "_shadows.import.scss"; @import "_shadows.scss";
body { body {
background-color: #EEEEEE; background-color: #EEEEEE;
@ -21,19 +21,19 @@ body, h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
} }
// Well and Jumbotrons // Well and Jumbotrons
@import "_welljumbo.import.scss"; @import "_welljumbo.scss";
// Buttons // Buttons
@import "_buttons.import.scss"; @import "_buttons.scss";
// Checkboxes // Checkboxes
@import "_checkboxes.import.scss"; @import "_checkboxes.scss";
// Radios // Radios
@import "_radios.import.scss"; @import "_radios.scss";
// Text inputs // Text inputs
@import "_inputs.import.scss"; @import "_inputs.scss";
legend { legend {
border-bottom: 0; border-bottom: 0;
@ -55,10 +55,10 @@ legend {
} }
// Lists // Lists
@import "_lists.import.scss"; @import "_lists.scss";
// Navbar // Navbar
@import "_navbar.import.scss"; @import "_navbar.scss";
.dropdown-menu { .dropdown-menu {
border: 0; border: 0;
@ -76,13 +76,13 @@ legend {
} }
// Alerts // Alerts
@import "_alerts.import.scss"; @import "_alerts.scss";
// Progress bar // Progress bar
@import "_progress.import.scss"; @import "_progress.scss";
// Panels // Panels
@import "_cards.import.scss"; @import "_cards.scss";
// Typography // Typography
.text-warning { .text-warning {
@ -101,13 +101,13 @@ legend {
color: $btn-info; color: $btn-info;
} }
@import "_tabs.import.scss"; @import "_tabs.scss";
@import "_popups.import.scss"; @import "_popups.scss";
@import "_icons.import.scss"; @import "_icons.scss";
// External plugins // External plugins
@import "_plugin-snackbarjs.import.scss"; @import "_plugin-snackbarjs.scss";
@import "_plugin-nouislider.import.scss"; @import "_plugin-nouislider.scss";

View File

@ -1,70 +1,88 @@
/* globals ripples */ /* globals jQuery, ripples */
$(function (){ (function($) {
// Selector to select only not already processed elements
if (typeof ripples == "object") { $.expr[":"].notmdproc = function(obj){
ripples.init( ".btn:not(.btn-link)," + if ($(obj).data("mdproc")) {
".card-image," + return false;
".navbar a:not(.withoutripple)," +
".nav-tabs a:not(.withoutripple)," +
".withripple" );
}
var initInputs = function() {
// Add fake-checkbox to material checkboxes
$(".checkbox > label > input").not(".bs-material").addClass("bs-material").after("<span class=check></span>");
// Add fake-radio to material radios
$(".radio > label > input").not(".bs-material").addClass("bs-material").after("<span class=circle></span><span class=check></span>");
// Add elements for material inputs
$("input.form-control, textarea.form-control, select.form-control").not(".bs-material").each( function() {
if ($(this).is(".bs-material")) { return; }
$(this).wrap("<div class=form-control-wrapper></div>");
$(this).after("<span class=material-input></span>");
if ($(this).hasClass("floating-label")) {
var placeholder = $(this).attr("placeholder");
$(this).attr("placeholder", null).removeClass("floating-label");
$(this).after("<div class=floating-label>" + placeholder + "</div>");
}
if ($(this).is(":empty") || $(this).val() === null || $(this).val() == "undefined" || $(this).val() === "") {
$(this).addClass("empty");
}
if ($(this).parent().next().is("[type=file]")) {
$(this).parent().addClass("fileinput");
var $input = $(this).parent().next().detach();
$(this).after($input);
}
});
};
initInputs();
// Support for "arrive.js" to dynamically detect creation of elements
// include it before this script to take advantage of this feature
// https://github.com/uzairfarooq/arrive/
if (document.arrive) {
document.arrive("input, textarea, select", function() {
initInputs();
});
}
$(document).on("change", ".checkbox input", function() {
$(this).blur();
});
$(document).on("keyup change", ".form-control", function() {
var self = $(this);
setTimeout(function() {
if (self.val() === "") {
self.addClass("empty");
} else { } else {
self.removeClass("empty"); return true;
}
};
function _isChar(evt) {
if (typeof evt.which == "undefined") {
return true;
} else if (typeof evt.which == "number" && evt.which > 0) {
return !evt.ctrlKey && !evt.metaKey && !evt.altKey && evt.which != 8;
}
return false;
}
$.material = {
"options": {
"withRipples": [
".btn:not(.btn-link)",
".card-image",
".navbar a:not(.withoutripple)",
".dropdown-menu a",
".nav-tabs a:not(.withoutripple)",
".withripple"
].join(","),
"inputElements": "input.form-control, textarea.form-control, select.form-control",
"checkboxElements": ".checkbox > label > input[type=checkbox]",
"radioElements": ".radio > label > input[type=radio]"
},
"checkbox": function(selector) {
// Add fake-checkbox to material checkboxes
$((selector) ? selector : this.options.checkboxElements)
.filter(":notmdproc")
.data("mdproc", true)
.after("<span class=check></span>");
},
"radio": function(selector) {
// Add fake-radio to material radios
$((selector) ? selector : this.options.radioElements)
.filter(":notmdproc")
.data("mdproc", true)
.after("<span class=circle></span><span class=check></span>");
},
"input": function(selector) {
$((selector) ? selector : this.options.inputElements)
.filter(":notmdproc")
.data("mdproc", true)
.each( function() {
var $this = $(this);
$this.wrap("<div class=form-control-wrapper></div>");
$this.after("<span class=material-input></span>");
if ($this.hasClass("floating-label")) {
var placeholder = $this.attr("placeholder");
$this.attr("placeholder", null).removeClass("floating-label");
$this.after("<div class=floating-label>" + placeholder + "</div>");
}
if ($this.is(":empty") || $this.val() === null || $this.val() == "undefined" || $this.val() === "") {
$this.addClass("empty");
}
if ($this.parent().next().is("[type=file]")) {
$this.parent().addClass("fileinput");
var $input = $this.parent().next().detach();
$this.after($input);
} }
}, 1);
}); });
$(document) $(document)
.on("change", ".checkbox input", function() { $(this).blur(); })
.on("keydown", ".form-control", function(e) {
if(_isChar(e)) {
$(this).removeClass("empty");
}
})
.on("keyup change", ".form-control", function() {
var $this = $(this);
if($this.val() === "") {
$this.addClass("empty");
}
})
.on("focus", ".form-control-wrapper.fileinput", function() { .on("focus", ".form-control-wrapper.fileinput", function() {
$(this).find("input").addClass("focus"); $(this).find("input").addClass("focus");
}) })
@ -85,4 +103,55 @@ $(function (){
} }
$(this).prev().val(value); $(this).prev().val(value);
}); });
},
"ripples": function(selector) {
ripples.init((selector) ? selector : this.options.withRipples);
},
"init": function() {
this.ripples();
this.input();
this.checkbox();
this.radio();
if (document.arrive) {
document.arrive("input, textarea, select", function() {
$.material.init();
}); });
}
// Detect autofill
(function() {
// This part of code will detect autofill when the page is loading (username and password inputs for example)
var loading = setInterval(function() {
$("input").each(function() {
if ($(this).val() !== $(this).attr("value")) {
$(this).trigger("change");
}
});
}, 100);
// After 10 seconds we are quite sure all the needed inputs are autofilled then we can stop checking them
setTimeout(function() {
clearInterval(loading);
}, 10000);
// Now we just listen on inputs of the focused form (because user can select from the autofill dropdown only when the input has focus)
var focused;
$(document)
.on("focus", "input", function() {
var $inputs = $(this).parents("form").find("input");
focused = setInterval(function() {
$inputs.each(function() {
if ($(this).val() !== $(this).attr("value")) {
$(this).trigger("change");
}
});
}, 100);
})
.on("blur", "input", function() {
clearInterval(focused);
});
})();
}
};
})(jQuery);

View File

@ -46,7 +46,7 @@ window.ripples = {
mousePos = {x: e.clientX - elPos.left, y: ((window.ontouchstart) ? e.clientY - window.scrollY: e.clientY) - elPos.top}, mousePos = {x: e.clientX - elPos.left, y: ((window.ontouchstart) ? e.clientY - window.scrollY: e.clientY) - elPos.top},
scale = "scale(" + Math.round($rippleWrapper.offsetWidth / 5) + ")", scale = "scale(" + Math.round($rippleWrapper.offsetWidth / 5) + ")",
rippleEnd = new CustomEvent("rippleEnd", {detail: $ripple}), rippleEnd = new CustomEvent("rippleEnd", {detail: $ripple}),
_rippleOpacity = 0.1, _rippleOpacity = 0.3,
refreshElementStyle; refreshElementStyle;

View File

@ -36,6 +36,11 @@
<script src="material/js/ripples.min.js"></script> <script src="material/js/ripples.min.js"></script>
<script src="material/js/material.min.js"></script> <script src="material/js/material.min.js"></script>
<script>
$(document).ready(function() {
$.material.init();
});
</script>
</body> </body>

View File

@ -1,4 +1,10 @@
@import url(//fonts.googleapis.com/css?family=Roboto+Condensed:300italic,400italic,700italic,400,700,300|Roboto:400,100,100italic,300,300italic,400italic,500,500italic,700,700italic); @font-face {
font-family: 'RobotoDraft';
font-style: normal;
font-weight: 100;
src: local('RobotoDraft Thin'), local('RobotoDraft-Thin'), url(https://fonts.gstatic.com/s/robotodraft/v2/hope9NW9iJ5hh8P5PM_EA2zZpt1Zv2lgqhgSPQ2HnUo.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
@font-face { @font-face {
font-family: "Material-Design-Icons"; font-family: "Material-Design-Icons";
src: url("../fonts/Material-Design-Icons.eot?-g7cqhn"); src: url("../fonts/Material-Design-Icons.eot?-g7cqhn");
@ -2662,76 +2668,146 @@ body .jumbotron-material-lightgrey,
background-color: #eaeaea !important; background-color: #eaeaea !important;
box-shadow: none; box-shadow: none;
} }
.btn:not(.btn-link), .btn:not(.btn-link):not(.btn-flat),
.btn-default:not(.btn-link) { .btn-default:not(.btn-link):not(.btn-flat) {
background-color: transparent; background-color: transparent;
} }
.btn-primary:not(.btn-link) { .btn-primary:not(.btn-link):not(.btn-flat) {
background-color: #4285f4; background-color: #4285f4;
} }
.btn-success:not(.btn-link) { .btn-success:not(.btn-link):not(.btn-flat) {
background-color: #0f9d58; background-color: #0f9d58;
} }
.btn-info:not(.btn-link) { .btn-info:not(.btn-link):not(.btn-flat) {
background-color: #03a9f4; background-color: #03a9f4;
} }
.btn-warning:not(.btn-link) { .btn-warning:not(.btn-link):not(.btn-flat) {
background-color: #ff5722; background-color: #ff5722;
} }
.btn-danger:not(.btn-link) { .btn-danger:not(.btn-link):not(.btn-flat) {
background-color: #f44336; background-color: #f44336;
} }
.btn-material-red:not(.btn-link) { .btn-material-red:not(.btn-link):not(.btn-flat) {
background-color: #f44336; background-color: #f44336;
} }
.btn-material-pink:not(.btn-link) { .btn-material-pink:not(.btn-link):not(.btn-flat) {
background-color: #e91e63; background-color: #e91e63;
} }
.btn-material-purple:not(.btn-link) { .btn-material-purple:not(.btn-link):not(.btn-flat) {
background-color: #9c27b0; background-color: #9c27b0;
} }
.btn-material-deeppurple:not(.btn-link) { .btn-material-deeppurple:not(.btn-link):not(.btn-flat) {
background-color: #673ab7; background-color: #673ab7;
} }
.btn-material-indigo:not(.btn-link) { .btn-material-indigo:not(.btn-link):not(.btn-flat) {
background-color: #3f51b5; background-color: #3f51b5;
} }
.btn-material-lightblue:not(.btn-link) { .btn-material-lightblue:not(.btn-link):not(.btn-flat) {
background-color: #03a9f4; background-color: #03a9f4;
} }
.btn-material-cyan:not(.btn-link) { .btn-material-cyan:not(.btn-link):not(.btn-flat) {
background-color: #00bcd4; background-color: #00bcd4;
} }
.btn-material-teal:not(.btn-link) { .btn-material-teal:not(.btn-link):not(.btn-flat) {
background-color: #009688; background-color: #009688;
} }
.btn-material-lightgreen:not(.btn-link) { .btn-material-lightgreen:not(.btn-link):not(.btn-flat) {
background-color: #8bc34a; background-color: #8bc34a;
} }
.btn-material-lime:not(.btn-link) { .btn-material-lime:not(.btn-link):not(.btn-flat) {
background-color: #cddc39; background-color: #cddc39;
} }
.btn-material-lightyellow:not(.btn-link) { .btn-material-lightyellow:not(.btn-link):not(.btn-flat) {
background-color: #ffeb3b; background-color: #ffeb3b;
} }
.btn-material-orange:not(.btn-link) { .btn-material-orange:not(.btn-link):not(.btn-flat) {
background-color: #ff9800; background-color: #ff9800;
} }
.btn-material-deeporange:not(.btn-link) { .btn-material-deeporange:not(.btn-link):not(.btn-flat) {
background-color: #ff5722; background-color: #ff5722;
} }
.btn-material-grey:not(.btn-link) { .btn-material-grey:not(.btn-link):not(.btn-flat) {
background-color: #9e9e9e; background-color: #9e9e9e;
} }
.btn-material-bluegrey:not(.btn-link) { .btn-material-bluegrey:not(.btn-link):not(.btn-flat) {
background-color: #607d8b; background-color: #607d8b;
} }
.btn-material-brown:not(.btn-link) { .btn-material-brown:not(.btn-link):not(.btn-flat) {
background-color: #795548; background-color: #795548;
} }
.btn-material-lightgrey:not(.btn-link) { .btn-material-lightgrey:not(.btn-link):not(.btn-flat) {
background-color: #ececec; background-color: #ececec;
} }
.btn.btn-flat:not(.btn-link),
.btn-default.btn-flat:not(.btn-link) {
color: rgba(0, 0, 0, 0.84);
}
.btn-primary.btn-flat:not(.btn-link) {
color: #4285f4;
}
.btn-success.btn-flat:not(.btn-link) {
color: #0f9d58;
}
.btn-info.btn-flat:not(.btn-link) {
color: #03a9f4;
}
.btn-warning.btn-flat:not(.btn-link) {
color: #ff5722;
}
.btn-danger.btn-flat:not(.btn-link) {
color: #f44336;
}
.btn-material-red.btn-flat:not(.btn-link) {
color: #f44336;
}
.btn-material-pink.btn-flat:not(.btn-link) {
color: #e91e63;
}
.btn-material-purple.btn-flat:not(.btn-link) {
color: #9c27b0;
}
.btn-material-deeppurple.btn-flat:not(.btn-link) {
color: #673ab7;
}
.btn-material-indigo.btn-flat:not(.btn-link) {
color: #3f51b5;
}
.btn-material-lightblue.btn-flat:not(.btn-link) {
color: #03a9f4;
}
.btn-material-cyan.btn-flat:not(.btn-link) {
color: #00bcd4;
}
.btn-material-teal.btn-flat:not(.btn-link) {
color: #009688;
}
.btn-material-lightgreen.btn-flat:not(.btn-link) {
color: #8bc34a;
}
.btn-material-lime.btn-flat:not(.btn-link) {
color: #cddc39;
}
.btn-material-lightyellow.btn-flat:not(.btn-link) {
color: #ffeb3b;
}
.btn-material-orange.btn-flat:not(.btn-link) {
color: #ff9800;
}
.btn-material-deeporange.btn-flat:not(.btn-link) {
color: #ff5722;
}
.btn-material-grey.btn-flat:not(.btn-link) {
color: #9e9e9e;
}
.btn-material-bluegrey.btn-flat:not(.btn-link) {
color: #607d8b;
}
.btn-material-brown.btn-flat:not(.btn-link) {
color: #795548;
}
.btn-material-lightgrey.btn-flat:not(.btn-link) {
color: #ececec;
}
.btn.btn-flat { .btn.btn-flat {
background: none; background: none;
box-shadow: none; box-shadow: none;
@ -2740,21 +2816,6 @@ body .jumbotron-material-lightgrey,
.btn.btn-flat:disabled { .btn.btn-flat:disabled {
color: #a8a8a8 !important; color: #a8a8a8 !important;
} }
.btn.btn-flat.btn-primary {
color: #4285f4;
}
.btn.btn-flat.btn-success {
color: #0f9d58;
}
.btn.btn-flat.btn-info {
color: #03a9f4;
}
.btn.btn-flat.btn-warning {
color: #ff5722;
}
.btn.btn-flat.btn-danger {
color: #f44336;
}
.btn.btn-raised { .btn.btn-raised {
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
-webkit-transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1); -webkit-transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1);
@ -2893,7 +2954,11 @@ body .jumbotron-material-lightgrey,
color: rgba(0, 0, 0, 0.84); color: rgba(0, 0, 0, 0.84);
} }
.btn:not([class^="btn btn-"]):hover, .btn:not([class^="btn btn-"]):hover,
.btn-default:hover { .btn-default:hover,
.btn-flat:not(.btn-link):hover,
.btn:not([class^="btn btn-"]).active,
.btn-default.active,
.btn-flat:not(.btn-link).active {
background-color: rgba(255, 255, 255, 0.5); background-color: rgba(255, 255, 255, 0.5);
} }
.open > .dropdown-toggle.btn, .open > .dropdown-toggle.btn,
@ -4951,74 +5016,103 @@ fieldset[disabled] .navbar .btn-link:focus {
.tooltip.bottom .tooltip-arrow { .tooltip.bottom .tooltip-arrow {
border-bottom-color: #323232; border-bottom-color: #323232;
} }
.icon, .mdi,
.icon-default { icon {
line-height: inherit;
vertical-align: bottom;
}
.mdi,
icon,
.mdi-default,
icon-default {
color: rgba(0, 0, 0, 0.84); color: rgba(0, 0, 0, 0.84);
} }
.icon-primary { .mdi-primary,
icon-primary {
color: #4285f4; color: #4285f4;
} }
.icon-success { .mdi-success,
icon-success {
color: #0f9d58; color: #0f9d58;
} }
.icon-info { .mdi-info,
icon-info {
color: #03a9f4; color: #03a9f4;
} }
.icon-warning { .mdi-warning,
icon-warning {
color: #ff5722; color: #ff5722;
} }
.icon-danger { .mdi-danger,
icon-danger {
color: #f44336; color: #f44336;
} }
.icon-material-red { .mdi-material-red,
icon-material-red {
color: #f44336; color: #f44336;
} }
.icon-material-pink { .mdi-material-pink,
icon-material-pink {
color: #e91e63; color: #e91e63;
} }
.icon-material-purple { .mdi-material-purple,
icon-material-purple {
color: #9c27b0; color: #9c27b0;
} }
.icon-material-deeppurple { .mdi-material-deeppurple,
icon-material-deeppurple {
color: #673ab7; color: #673ab7;
} }
.icon-material-indigo { .mdi-material-indigo,
icon-material-indigo {
color: #3f51b5; color: #3f51b5;
} }
.icon-material-lightblue { .mdi-material-lightblue,
icon-material-lightblue {
color: #03a9f4; color: #03a9f4;
} }
.icon-material-cyan { .mdi-material-cyan,
icon-material-cyan {
color: #00bcd4; color: #00bcd4;
} }
.icon-material-teal { .mdi-material-teal,
icon-material-teal {
color: #009688; color: #009688;
} }
.icon-material-lightgreen { .mdi-material-lightgreen,
icon-material-lightgreen {
color: #8bc34a; color: #8bc34a;
} }
.icon-material-lime { .mdi-material-lime,
icon-material-lime {
color: #cddc39; color: #cddc39;
} }
.icon-material-lightyellow { .mdi-material-lightyellow,
icon-material-lightyellow {
color: #ffeb3b; color: #ffeb3b;
} }
.icon-material-orange { .mdi-material-orange,
icon-material-orange {
color: #ff9800; color: #ff9800;
} }
.icon-material-deeporange { .mdi-material-deeporange,
icon-material-deeporange {
color: #ff5722; color: #ff5722;
} }
.icon-material-grey { .mdi-material-grey,
icon-material-grey {
color: #9e9e9e; color: #9e9e9e;
} }
.icon-material-bluegrey { .mdi-material-bluegrey,
icon-material-bluegrey {
color: #607d8b; color: #607d8b;
} }
.icon-material-brown { .mdi-material-brown,
icon-material-brown {
color: #795548; color: #795548;
} }
.icon-material-lightgrey { .mdi-material-lightgrey,
icon-material-lightgrey {
color: #ececec; color: #ececec;
} }
.card { .card {
@ -5080,7 +5174,6 @@ fieldset[disabled] .navbar .btn-link:focus {
} }
.modal-content { .modal-content {
box-shadow: 0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22); box-shadow: 0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22);
margin-top: 10em;
border-radius: 2px; border-radius: 2px;
border: none; border: none;
} }
@ -5091,7 +5184,6 @@ fieldset[disabled] .navbar .btn-link:focus {
} }
.modal-content .modal-body { .modal-content .modal-body {
padding: 24px; padding: 24px;
padding-bottom: 0;
} }
.modal-content .modal-footer { .modal-content .modal-footer {
border-top: none; border-top: none;
@ -5112,6 +5204,9 @@ fieldset[disabled] .navbar .btn-link:focus {
.modal-content .modal-footer button + button { .modal-content .modal-footer button + button {
margin-bottom: 16px; margin-bottom: 16px;
} }
.modal-content .modal-body + .modal-footer {
padding-top: 0;
}
.modal-backdrop { .modal-backdrop {
display: none; display: none;
} }
@ -5549,11 +5644,11 @@ fieldset[disabled] .navbar .btn-link:focus {
.selectize-control.multi .selectize-input:after, .selectize-control.multi .selectize-input:after,
.selectize-control.single .selectize-input.input-active:after, .selectize-control.single .selectize-input.input-active:after,
.selectize-control.multi .selectize-input.input-active:after { .selectize-control.multi .selectize-input.input-active:after {
content: "\e611";
right: 5px; right: 5px;
position: absolute; position: absolute;
font-size: 7px; font-size: 7px;
font-family: 'Material-Design'; content: "\e894";
font-family: "Material-Design-Icons";
speak: none; speak: none;
font-style: normal; font-style: normal;
font-weight: normal; font-weight: normal;

File diff suppressed because one or more lines are too long

View File

@ -2661,76 +2661,146 @@ body .jumbotron-material-lightgrey,
background-color: #eaeaea !important; background-color: #eaeaea !important;
box-shadow: none; box-shadow: none;
} }
.btn:not(.btn-link), .btn:not(.btn-link):not(.btn-flat),
.btn-default:not(.btn-link) { .btn-default:not(.btn-link):not(.btn-flat) {
background-color: transparent; background-color: transparent;
} }
.btn-primary:not(.btn-link) { .btn-primary:not(.btn-link):not(.btn-flat) {
background-color: #4285f4; background-color: #4285f4;
} }
.btn-success:not(.btn-link) { .btn-success:not(.btn-link):not(.btn-flat) {
background-color: #0f9d58; background-color: #0f9d58;
} }
.btn-info:not(.btn-link) { .btn-info:not(.btn-link):not(.btn-flat) {
background-color: #03a9f4; background-color: #03a9f4;
} }
.btn-warning:not(.btn-link) { .btn-warning:not(.btn-link):not(.btn-flat) {
background-color: #ff5722; background-color: #ff5722;
} }
.btn-danger:not(.btn-link) { .btn-danger:not(.btn-link):not(.btn-flat) {
background-color: #f44336; background-color: #f44336;
} }
.btn-material-red:not(.btn-link) { .btn-material-red:not(.btn-link):not(.btn-flat) {
background-color: #f44336; background-color: #f44336;
} }
.btn-material-pink:not(.btn-link) { .btn-material-pink:not(.btn-link):not(.btn-flat) {
background-color: #e91e63; background-color: #e91e63;
} }
.btn-material-purple:not(.btn-link) { .btn-material-purple:not(.btn-link):not(.btn-flat) {
background-color: #9c27b0; background-color: #9c27b0;
} }
.btn-material-deeppurple:not(.btn-link) { .btn-material-deeppurple:not(.btn-link):not(.btn-flat) {
background-color: #673ab7; background-color: #673ab7;
} }
.btn-material-indigo:not(.btn-link) { .btn-material-indigo:not(.btn-link):not(.btn-flat) {
background-color: #3f51b5; background-color: #3f51b5;
} }
.btn-material-lightblue:not(.btn-link) { .btn-material-lightblue:not(.btn-link):not(.btn-flat) {
background-color: #03a9f4; background-color: #03a9f4;
} }
.btn-material-cyan:not(.btn-link) { .btn-material-cyan:not(.btn-link):not(.btn-flat) {
background-color: #00bcd4; background-color: #00bcd4;
} }
.btn-material-teal:not(.btn-link) { .btn-material-teal:not(.btn-link):not(.btn-flat) {
background-color: #009688; background-color: #009688;
} }
.btn-material-lightgreen:not(.btn-link) { .btn-material-lightgreen:not(.btn-link):not(.btn-flat) {
background-color: #8bc34a; background-color: #8bc34a;
} }
.btn-material-lime:not(.btn-link) { .btn-material-lime:not(.btn-link):not(.btn-flat) {
background-color: #cddc39; background-color: #cddc39;
} }
.btn-material-lightyellow:not(.btn-link) { .btn-material-lightyellow:not(.btn-link):not(.btn-flat) {
background-color: #ffeb3b; background-color: #ffeb3b;
} }
.btn-material-orange:not(.btn-link) { .btn-material-orange:not(.btn-link):not(.btn-flat) {
background-color: #ff9800; background-color: #ff9800;
} }
.btn-material-deeporange:not(.btn-link) { .btn-material-deeporange:not(.btn-link):not(.btn-flat) {
background-color: #ff5722; background-color: #ff5722;
} }
.btn-material-grey:not(.btn-link) { .btn-material-grey:not(.btn-link):not(.btn-flat) {
background-color: #9e9e9e; background-color: #9e9e9e;
} }
.btn-material-bluegrey:not(.btn-link) { .btn-material-bluegrey:not(.btn-link):not(.btn-flat) {
background-color: #607d8b; background-color: #607d8b;
} }
.btn-material-brown:not(.btn-link) { .btn-material-brown:not(.btn-link):not(.btn-flat) {
background-color: #795548; background-color: #795548;
} }
.btn-material-lightgrey:not(.btn-link) { .btn-material-lightgrey:not(.btn-link):not(.btn-flat) {
background-color: #ececec; background-color: #ececec;
} }
.btn.btn-flat:not(.btn-link),
.btn-default.btn-flat:not(.btn-link) {
color: rgba(0, 0, 0, 0.84);
}
.btn-primary.btn-flat:not(.btn-link) {
color: #4285f4;
}
.btn-success.btn-flat:not(.btn-link) {
color: #0f9d58;
}
.btn-info.btn-flat:not(.btn-link) {
color: #03a9f4;
}
.btn-warning.btn-flat:not(.btn-link) {
color: #ff5722;
}
.btn-danger.btn-flat:not(.btn-link) {
color: #f44336;
}
.btn-material-red.btn-flat:not(.btn-link) {
color: #f44336;
}
.btn-material-pink.btn-flat:not(.btn-link) {
color: #e91e63;
}
.btn-material-purple.btn-flat:not(.btn-link) {
color: #9c27b0;
}
.btn-material-deeppurple.btn-flat:not(.btn-link) {
color: #673ab7;
}
.btn-material-indigo.btn-flat:not(.btn-link) {
color: #3f51b5;
}
.btn-material-lightblue.btn-flat:not(.btn-link) {
color: #03a9f4;
}
.btn-material-cyan.btn-flat:not(.btn-link) {
color: #00bcd4;
}
.btn-material-teal.btn-flat:not(.btn-link) {
color: #009688;
}
.btn-material-lightgreen.btn-flat:not(.btn-link) {
color: #8bc34a;
}
.btn-material-lime.btn-flat:not(.btn-link) {
color: #cddc39;
}
.btn-material-lightyellow.btn-flat:not(.btn-link) {
color: #ffeb3b;
}
.btn-material-orange.btn-flat:not(.btn-link) {
color: #ff9800;
}
.btn-material-deeporange.btn-flat:not(.btn-link) {
color: #ff5722;
}
.btn-material-grey.btn-flat:not(.btn-link) {
color: #9e9e9e;
}
.btn-material-bluegrey.btn-flat:not(.btn-link) {
color: #607d8b;
}
.btn-material-brown.btn-flat:not(.btn-link) {
color: #795548;
}
.btn-material-lightgrey.btn-flat:not(.btn-link) {
color: #ececec;
}
.btn.btn-flat { .btn.btn-flat {
background: none; background: none;
box-shadow: none; box-shadow: none;
@ -2739,21 +2809,6 @@ body .jumbotron-material-lightgrey,
.btn.btn-flat:disabled { .btn.btn-flat:disabled {
color: #a8a8a8 !important; color: #a8a8a8 !important;
} }
.btn.btn-flat.btn-primary {
color: #4285f4;
}
.btn.btn-flat.btn-success {
color: #0f9d58;
}
.btn.btn-flat.btn-info {
color: #03a9f4;
}
.btn.btn-flat.btn-warning {
color: #ff5722;
}
.btn.btn-flat.btn-danger {
color: #f44336;
}
.btn.btn-raised { .btn.btn-raised {
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
-webkit-transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1); -webkit-transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1);
@ -2892,7 +2947,11 @@ body .jumbotron-material-lightgrey,
color: rgba(0, 0, 0, 0.84); color: rgba(0, 0, 0, 0.84);
} }
.btn:not([class^="btn btn-"]):hover, .btn:not([class^="btn btn-"]):hover,
.btn-default:hover { .btn-default:hover,
.btn-flat:not(.btn-link):hover,
.btn:not([class^="btn btn-"]).active,
.btn-default.active,
.btn-flat:not(.btn-link).active {
background-color: rgba(255, 255, 255, 0.5); background-color: rgba(255, 255, 255, 0.5);
} }
.open > .dropdown-toggle.btn, .open > .dropdown-toggle.btn,
@ -4950,74 +5009,103 @@ fieldset[disabled] .navbar .btn-link:focus {
.tooltip.bottom .tooltip-arrow { .tooltip.bottom .tooltip-arrow {
border-bottom-color: #323232; border-bottom-color: #323232;
} }
.icon, .mdi,
.icon-default { icon {
line-height: inherit;
vertical-align: bottom;
}
.mdi,
icon,
.mdi-default,
icon-default {
color: rgba(0, 0, 0, 0.84); color: rgba(0, 0, 0, 0.84);
} }
.icon-primary { .mdi-primary,
icon-primary {
color: #4285f4; color: #4285f4;
} }
.icon-success { .mdi-success,
icon-success {
color: #0f9d58; color: #0f9d58;
} }
.icon-info { .mdi-info,
icon-info {
color: #03a9f4; color: #03a9f4;
} }
.icon-warning { .mdi-warning,
icon-warning {
color: #ff5722; color: #ff5722;
} }
.icon-danger { .mdi-danger,
icon-danger {
color: #f44336; color: #f44336;
} }
.icon-material-red { .mdi-material-red,
icon-material-red {
color: #f44336; color: #f44336;
} }
.icon-material-pink { .mdi-material-pink,
icon-material-pink {
color: #e91e63; color: #e91e63;
} }
.icon-material-purple { .mdi-material-purple,
icon-material-purple {
color: #9c27b0; color: #9c27b0;
} }
.icon-material-deeppurple { .mdi-material-deeppurple,
icon-material-deeppurple {
color: #673ab7; color: #673ab7;
} }
.icon-material-indigo { .mdi-material-indigo,
icon-material-indigo {
color: #3f51b5; color: #3f51b5;
} }
.icon-material-lightblue { .mdi-material-lightblue,
icon-material-lightblue {
color: #03a9f4; color: #03a9f4;
} }
.icon-material-cyan { .mdi-material-cyan,
icon-material-cyan {
color: #00bcd4; color: #00bcd4;
} }
.icon-material-teal { .mdi-material-teal,
icon-material-teal {
color: #009688; color: #009688;
} }
.icon-material-lightgreen { .mdi-material-lightgreen,
icon-material-lightgreen {
color: #8bc34a; color: #8bc34a;
} }
.icon-material-lime { .mdi-material-lime,
icon-material-lime {
color: #cddc39; color: #cddc39;
} }
.icon-material-lightyellow { .mdi-material-lightyellow,
icon-material-lightyellow {
color: #ffeb3b; color: #ffeb3b;
} }
.icon-material-orange { .mdi-material-orange,
icon-material-orange {
color: #ff9800; color: #ff9800;
} }
.icon-material-deeporange { .mdi-material-deeporange,
icon-material-deeporange {
color: #ff5722; color: #ff5722;
} }
.icon-material-grey { .mdi-material-grey,
icon-material-grey {
color: #9e9e9e; color: #9e9e9e;
} }
.icon-material-bluegrey { .mdi-material-bluegrey,
icon-material-bluegrey {
color: #607d8b; color: #607d8b;
} }
.icon-material-brown { .mdi-material-brown,
icon-material-brown {
color: #795548; color: #795548;
} }
.icon-material-lightgrey { .mdi-material-lightgrey,
icon-material-lightgrey {
color: #ececec; color: #ececec;
} }
.card { .card {
@ -5079,7 +5167,6 @@ fieldset[disabled] .navbar .btn-link:focus {
} }
.modal-content { .modal-content {
box-shadow: 0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22); box-shadow: 0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22);
margin-top: 10em;
border-radius: 2px; border-radius: 2px;
border: none; border: none;
} }
@ -5090,7 +5177,6 @@ fieldset[disabled] .navbar .btn-link:focus {
} }
.modal-content .modal-body { .modal-content .modal-body {
padding: 24px; padding: 24px;
padding-bottom: 0;
} }
.modal-content .modal-footer { .modal-content .modal-footer {
border-top: none; border-top: none;
@ -5111,6 +5197,9 @@ fieldset[disabled] .navbar .btn-link:focus {
.modal-content .modal-footer button + button { .modal-content .modal-footer button + button {
margin-bottom: 16px; margin-bottom: 16px;
} }
.modal-content .modal-body + .modal-footer {
padding-top: 0;
}
.modal-backdrop { .modal-backdrop {
display: none; display: none;
} }
@ -5548,11 +5637,11 @@ fieldset[disabled] .navbar .btn-link:focus {
.selectize-control.multi .selectize-input:after, .selectize-control.multi .selectize-input:after,
.selectize-control.single .selectize-input.input-active:after, .selectize-control.single .selectize-input.input-active:after,
.selectize-control.multi .selectize-input.input-active:after { .selectize-control.multi .selectize-input.input-active:after {
content: "\e611";
right: 5px; right: 5px;
position: absolute; position: absolute;
font-size: 7px; font-size: 7px;
font-family: 'Material-Design'; content: "\e894";
font-family: "Material-Design-Icons";
speak: none; speak: none;
font-style: normal; font-style: normal;
font-weight: normal; font-weight: normal;

File diff suppressed because one or more lines are too long

View File

@ -1,70 +1,88 @@
/* globals ripples */ /* globals jQuery, ripples */
$(function (){ (function($) {
// Selector to select only not already processed elements
if (typeof ripples == "object") { $.expr[":"].notmdproc = function(obj){
ripples.init( ".btn:not(.btn-link)," + if ($(obj).data("mdproc")) {
".card-image," + return false;
".navbar a:not(.withoutripple)," +
".nav-tabs a:not(.withoutripple)," +
".withripple" );
}
var initInputs = function() {
// Add fake-checkbox to material checkboxes
$(".checkbox > label > input").not(".bs-material").addClass("bs-material").after("<span class=check></span>");
// Add fake-radio to material radios
$(".radio > label > input").not(".bs-material").addClass("bs-material").after("<span class=circle></span><span class=check></span>");
// Add elements for material inputs
$("input.form-control, textarea.form-control, select.form-control").not(".bs-material").each( function() {
if ($(this).is(".bs-material")) { return; }
$(this).wrap("<div class=form-control-wrapper></div>");
$(this).after("<span class=material-input></span>");
if ($(this).hasClass("floating-label")) {
var placeholder = $(this).attr("placeholder");
$(this).attr("placeholder", null).removeClass("floating-label");
$(this).after("<div class=floating-label>" + placeholder + "</div>");
}
if ($(this).is(":empty") || $(this).val() === null || $(this).val() == "undefined" || $(this).val() === "") {
$(this).addClass("empty");
}
if ($(this).parent().next().is("[type=file]")) {
$(this).parent().addClass("fileinput");
var $input = $(this).parent().next().detach();
$(this).after($input);
}
});
};
initInputs();
// Support for "arrive.js" to dynamically detect creation of elements
// include it before this script to take advantage of this feature
// https://github.com/uzairfarooq/arrive/
if (document.arrive) {
document.arrive("input, textarea, select", function() {
initInputs();
});
}
$(document).on("change", ".checkbox input", function() {
$(this).blur();
});
$(document).on("keyup change", ".form-control", function() {
var self = $(this);
setTimeout(function() {
if (self.val() === "") {
self.addClass("empty");
} else { } else {
self.removeClass("empty"); return true;
}
};
function _isChar(evt) {
if (typeof evt.which == "undefined") {
return true;
} else if (typeof evt.which == "number" && evt.which > 0) {
return !evt.ctrlKey && !evt.metaKey && !evt.altKey && evt.which != 8;
}
return false;
}
$.material = {
"options": {
"withRipples": [
".btn:not(.btn-link)",
".card-image",
".navbar a:not(.withoutripple)",
".dropdown-menu a",
".nav-tabs a:not(.withoutripple)",
".withripple"
].join(","),
"inputElements": "input.form-control, textarea.form-control, select.form-control",
"checkboxElements": ".checkbox > label > input[type=checkbox]",
"radioElements": ".radio > label > input[type=radio]"
},
"checkbox": function(selector) {
// Add fake-checkbox to material checkboxes
$((selector) ? selector : this.options.checkboxElements)
.filter(":notmdproc")
.data("mdproc", true)
.after("<span class=check></span>");
},
"radio": function(selector) {
// Add fake-radio to material radios
$((selector) ? selector : this.options.radioElements)
.filter(":notmdproc")
.data("mdproc", true)
.after("<span class=circle></span><span class=check></span>");
},
"input": function(selector) {
$((selector) ? selector : this.options.inputElements)
.filter(":notmdproc")
.data("mdproc", true)
.each( function() {
var $this = $(this);
$this.wrap("<div class=form-control-wrapper></div>");
$this.after("<span class=material-input></span>");
if ($this.hasClass("floating-label")) {
var placeholder = $this.attr("placeholder");
$this.attr("placeholder", null).removeClass("floating-label");
$this.after("<div class=floating-label>" + placeholder + "</div>");
}
if ($this.is(":empty") || $this.val() === null || $this.val() == "undefined" || $this.val() === "") {
$this.addClass("empty");
}
if ($this.parent().next().is("[type=file]")) {
$this.parent().addClass("fileinput");
var $input = $this.parent().next().detach();
$this.after($input);
} }
}, 1);
}); });
$(document) $(document)
.on("change", ".checkbox input", function() { $(this).blur(); })
.on("keydown", ".form-control", function(e) {
if(_isChar(e)) {
$(this).removeClass("empty");
}
})
.on("keyup change", ".form-control", function() {
var $this = $(this);
if($this.val() === "") {
$this.addClass("empty");
}
})
.on("focus", ".form-control-wrapper.fileinput", function() { .on("focus", ".form-control-wrapper.fileinput", function() {
$(this).find("input").addClass("focus"); $(this).find("input").addClass("focus");
}) })
@ -85,4 +103,55 @@ $(function (){
} }
$(this).prev().val(value); $(this).prev().val(value);
}); });
},
"ripples": function(selector) {
ripples.init((selector) ? selector : this.options.withRipples);
},
"init": function() {
this.ripples();
this.input();
this.checkbox();
this.radio();
if (document.arrive) {
document.arrive("input, textarea, select", function() {
$.material.init();
}); });
}
// Detect autofill
(function() {
// This part of code will detect autofill when the page is loading (username and password inputs for example)
var loading = setInterval(function() {
$("input").each(function() {
if ($(this).val() !== $(this).attr("value")) {
$(this).trigger("change");
}
});
}, 100);
// After 10 seconds we are quite sure all the needed inputs are autofilled then we can stop checking them
setTimeout(function() {
clearInterval(loading);
}, 10000);
// Now we just listen on inputs of the focused form (because user can select from the autofill dropdown only when the input has focus)
var focused;
$(document)
.on("focus", "input", function() {
var $inputs = $(this).parents("form").find("input");
focused = setInterval(function() {
$inputs.each(function() {
if ($(this).val() !== $(this).attr("value")) {
$(this).trigger("change");
}
});
}, 100);
})
.on("blur", "input", function() {
clearInterval(focused);
});
})();
}
};
})(jQuery);

View File

@ -1 +1 @@
$(function(){"object"==typeof ripples&&ripples.init(".btn:not(.btn-link),.card-image,.navbar a:not(.withoutripple),.nav-tabs a:not(.withoutripple),.withripple");var a=function(){$(".checkbox > label > input").not(".bs-material").addClass("bs-material").after("<span class=check></span>"),$(".radio > label > input").not(".bs-material").addClass("bs-material").after("<span class=circle></span><span class=check></span>"),$("input.form-control, textarea.form-control, select.form-control").not(".bs-material").each(function(){if(!$(this).is(".bs-material")){if($(this).wrap("<div class=form-control-wrapper></div>"),$(this).after("<span class=material-input></span>"),$(this).hasClass("floating-label")){var a=$(this).attr("placeholder");$(this).attr("placeholder",null).removeClass("floating-label"),$(this).after("<div class=floating-label>"+a+"</div>")}if(($(this).is(":empty")||null===$(this).val()||"undefined"==$(this).val()||""===$(this).val())&&$(this).addClass("empty"),$(this).parent().next().is("[type=file]")){$(this).parent().addClass("fileinput");var b=$(this).parent().next().detach();$(this).after(b)}}})};a(),document.arrive&&document.arrive("input, textarea, select",function(){a()}),$(document).on("change",".checkbox input",function(){$(this).blur()}),$(document).on("keyup change",".form-control",function(){var a=$(this);setTimeout(function(){""===a.val()?a.addClass("empty"):a.removeClass("empty")},1)}),$(document).on("focus",".form-control-wrapper.fileinput",function(){$(this).find("input").addClass("focus")}).on("blur",".form-control-wrapper.fileinput",function(){$(this).find("input").removeClass("focus")}).on("change",".form-control-wrapper.fileinput [type=file]",function(){var a="";$.each($(this)[0].files,function(b,c){console.log(c),a+=c.name+", "}),a=a.substring(0,a.length-2),a?$(this).prev().removeClass("empty"):$(this).prev().addClass("empty"),$(this).prev().val(a)})}); !function(a){function b(a){return"undefined"==typeof a.which?!0:"number"==typeof a.which&&a.which>0?!a.ctrlKey&&!a.metaKey&&!a.altKey&&8!=a.which:!1}a.expr[":"].notmdproc=function(b){return a(b).data("mdproc")?!1:!0},a.material={options:{withRipples:[".btn:not(.btn-link)",".card-image",".navbar a:not(.withoutripple)",".dropdown-menu a",".nav-tabs a:not(.withoutripple)",".withripple"].join(","),inputElements:"input.form-control, textarea.form-control, select.form-control",checkboxElements:".checkbox > label > input[type=checkbox]",radioElements:".radio > label > input[type=radio]"},checkbox:function(b){a(b?b:this.options.checkboxElements).filter(":notmdproc").data("mdproc",!0).after("<span class=check></span>")},radio:function(b){a(b?b:this.options.radioElements).filter(":notmdproc").data("mdproc",!0).after("<span class=circle></span><span class=check></span>")},input:function(c){a(c?c:this.options.inputElements).filter(":notmdproc").data("mdproc",!0).each(function(){var b=a(this);if(b.wrap("<div class=form-control-wrapper></div>"),b.after("<span class=material-input></span>"),b.hasClass("floating-label")){var c=b.attr("placeholder");b.attr("placeholder",null).removeClass("floating-label"),b.after("<div class=floating-label>"+c+"</div>")}if((b.is(":empty")||null===b.val()||"undefined"==b.val()||""===b.val())&&b.addClass("empty"),b.parent().next().is("[type=file]")){b.parent().addClass("fileinput");var d=b.parent().next().detach();b.after(d)}}),a(document).on("change",".checkbox input",function(){a(this).blur()}).on("keydown",".form-control",function(c){b(c)&&a(this).removeClass("empty")}).on("keyup change",".form-control",function(){var b=a(this);""===b.val()&&b.addClass("empty")}).on("focus",".form-control-wrapper.fileinput",function(){a(this).find("input").addClass("focus")}).on("blur",".form-control-wrapper.fileinput",function(){a(this).find("input").removeClass("focus")}).on("change",".form-control-wrapper.fileinput [type=file]",function(){var b="";a.each(a(this)[0].files,function(a,c){console.log(c),b+=c.name+", "}),b=b.substring(0,b.length-2),b?a(this).prev().removeClass("empty"):a(this).prev().addClass("empty"),a(this).prev().val(b)})},ripples:function(a){ripples.init(a?a:this.options.withRipples)},init:function(){this.ripples(),this.input(),this.checkbox(),this.radio(),document.arrive&&document.arrive("input, textarea, select",function(){a.material.init()}),function(){var b=setInterval(function(){a("input").each(function(){a(this).val()!==a(this).attr("value")&&a(this).trigger("change")})},100);setTimeout(function(){clearInterval(b)},1e4);var c;a(document).on("focus","input",function(){var b=a(this).parents("form").find("input");c=setInterval(function(){b.each(function(){a(this).val()!==a(this).attr("value")&&a(this).trigger("change")})},100)}).on("blur","input",function(){clearInterval(c)})}()}}}(jQuery);

View File

@ -46,7 +46,7 @@ window.ripples = {
mousePos = {x: e.clientX - elPos.left, y: ((window.ontouchstart) ? e.clientY - window.scrollY: e.clientY) - elPos.top}, mousePos = {x: e.clientX - elPos.left, y: ((window.ontouchstart) ? e.clientY - window.scrollY: e.clientY) - elPos.top},
scale = "scale(" + Math.round($rippleWrapper.offsetWidth / 5) + ")", scale = "scale(" + Math.round($rippleWrapper.offsetWidth / 5) + ")",
rippleEnd = new CustomEvent("rippleEnd", {detail: $ripple}), rippleEnd = new CustomEvent("rippleEnd", {detail: $ripple}),
_rippleOpacity = 0.1, _rippleOpacity = 0.3,
refreshElementStyle; refreshElementStyle;

View File

@ -1 +1 @@
window.ripples={init:function(a){"use strict";function b(a,b){var c=a.matches||a.matchesSelector||a.webkitMatchesSelector||a.mozMatchesSelector||a.msMatchesSelector||a.oMatchesSelector;return c.call(a,b)}var c=100,d=500,e=function(a,c,d){"string"==typeof a&&(a=[a]),a.forEach(function(a){document.addEventListener(a,function(a){var e="number"!=typeof a.detail?a.detail:a.target;b(e,c)&&d(a,e)})})},f=function(a,b,c){var e,f=b,g=f.parentNode,h=document.createElement("div"),j=g.getBoundingClientRect(),k={x:a.clientX-j.left,y:(window.ontouchstart?a.clientY-window.scrollY:a.clientY)-j.top},l="scale("+Math.round(f.offsetWidth/5)+")",m=new CustomEvent("rippleEnd",{detail:h}),n=.1;a.touches&&(k={x:a.touches[0].clientX-j.left,y:a.touches[0].clientY-j.top}),console.log(k),i=h,h.className="ripple",h.setAttribute("style","left:"+k.x+"px; top:"+k.y+"px;");var o=window.getComputedStyle(g).color;o=o.replace("rgb","rgba").replace(")",", "+n+")"),f.appendChild(h),e=window.getComputedStyle(h).opacity,h.dataset.animating=1,h.className="ripple ripple-on";var p=[h.getAttribute("style"),"background-color: "+o,"-ms-transform: "+l,"-moz-transform"+l,"-webkit-transform"+l,"transform: "+l];h.setAttribute("style",p.join(";")),setTimeout(function(){h.dataset.animating=0,document.dispatchEvent(m),c&&c()},d)},g=function(a){a.className="ripple ripple-on ripple-out",setTimeout(function(){a.remove()},c)},h=!1;e(["mousedown","touchstart"],"*",function(){h=!0}),e(["mouseup","touchend"],"*",function(){h=!1});var i,j=function(a,b){if(0===b.getElementsByClassName("ripple-wrapper").length){b.className+=" withripple";var c=document.createElement("div");c.className="ripple-wrapper",b.appendChild(c),null===window.ontouchstart&&f(a,c,function(){c.getElementsByClassName("ripple")[0].remove()})}};e(["mouseover","touchstart"],a,j),e(["mousedown","touchstart"],".ripple-wrapper",function(a,b){(0===a.which||1===a.which||2===a.which)&&f(a,b)}),e("rippleEnd",".ripple-wrapper .ripple",function(a,b){var c=b.parentNode.getElementsByClassName("ripple");(!h||c[0]==b&&c.length>1)&&g(b)}),e(["mouseup","touchend"],".ripple-wrapper",function(){var a=i;a&&1!=a.dataset.animating&&g(a)})}}; window.ripples={init:function(a){"use strict";function b(a,b){var c=a.matches||a.matchesSelector||a.webkitMatchesSelector||a.mozMatchesSelector||a.msMatchesSelector||a.oMatchesSelector;return c.call(a,b)}var c=100,d=500,e=function(a,c,d){"string"==typeof a&&(a=[a]),a.forEach(function(a){document.addEventListener(a,function(a){var e="number"!=typeof a.detail?a.detail:a.target;b(e,c)&&d(a,e)})})},f=function(a,b,c){var e,f=b,g=f.parentNode,h=document.createElement("div"),j=g.getBoundingClientRect(),k={x:a.clientX-j.left,y:(window.ontouchstart?a.clientY-window.scrollY:a.clientY)-j.top},l="scale("+Math.round(f.offsetWidth/5)+")",m=new CustomEvent("rippleEnd",{detail:h}),n=.3;a.touches&&(k={x:a.touches[0].clientX-j.left,y:a.touches[0].clientY-j.top}),console.log(k),i=h,h.className="ripple",h.setAttribute("style","left:"+k.x+"px; top:"+k.y+"px;");var o=window.getComputedStyle(g).color;o=o.replace("rgb","rgba").replace(")",", "+n+")"),f.appendChild(h),e=window.getComputedStyle(h).opacity,h.dataset.animating=1,h.className="ripple ripple-on";var p=[h.getAttribute("style"),"background-color: "+o,"-ms-transform: "+l,"-moz-transform"+l,"-webkit-transform"+l,"transform: "+l];h.setAttribute("style",p.join(";")),setTimeout(function(){h.dataset.animating=0,document.dispatchEvent(m),c&&c()},d)},g=function(a){a.className="ripple ripple-on ripple-out",setTimeout(function(){a.remove()},c)},h=!1;e(["mousedown","touchstart"],"*",function(){h=!0}),e(["mouseup","touchend"],"*",function(){h=!1});var i,j=function(a,b){if(0===b.getElementsByClassName("ripple-wrapper").length){b.className+=" withripple";var c=document.createElement("div");c.className="ripple-wrapper",b.appendChild(c),null===window.ontouchstart&&f(a,c,function(){c.getElementsByClassName("ripple")[0].remove()})}};e(["mouseover","touchstart"],a,j),e(["mousedown","touchstart"],".ripple-wrapper",function(a,b){(0===a.which||1===a.which||2===a.which)&&f(a,b)}),e("rippleEnd",".ripple-wrapper .ripple",function(a,b){var c=b.parentNode.getElementsByClassName("ripple");(!h||c[0]==b&&c.length>1)&&g(b)}),e(["mouseup","touchend"],".ripple-wrapper",function(){var a=i;a&&1!=a.dataset.animating&&g(a)})}};