From 2fc4809bf3e5ce8f3770232b604ad65de745c71b Mon Sep 17 00:00:00 2001 From: Federico Zivolo Date: Wed, 20 Aug 2014 12:53:26 +0200 Subject: [PATCH] Continued work, added support for material colors --- README.md | 17 +- alerts.less | 28 +- bootstrap.css | 820 ----------------------------- buttons.less | 62 +-- checkboxes.less | 26 +- index.html | 4 +- inputs.less | 12 + material.css | 1081 ++++++++++++++++++++++++++++++++++----- material.js | 22 +- material.less | 12 +- mixins.less | 78 +++ navbar.less | 26 +- progress.less | 13 +- radios.less | 32 +- ripple.less | 4 +- screenshots/palette.jpg | Bin 0 -> 28270 bytes tabs.less | 1 + variables.less | 120 +++-- 18 files changed, 1232 insertions(+), 1126 deletions(-) delete mode 100644 bootstrap.css create mode 100644 mixins.less create mode 100644 screenshots/palette.jpg diff --git a/README.md b/README.md index 27c43a11..bf8be498 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -Bootstrap Material Design +Material Design for Bootstrap ========================= -This Bootstrap theme is an easy way to use the new Material Design guide-lines by Google in your Bootstrap 3 based application. +This Bootstrap theme is an easy way to use the new Material Design guide-lines by Google in your Bootstrap 3 based application. Just include the theme right after the Bootstrap CSS and include the javascript at the end of your document, everything will be converted to Material Design (paper) style. This theme is in early developement and is not ready for production. @@ -31,6 +31,19 @@ Currently supported elements: Material Design for Bootstrap provides some additional stuff to get the best from Material Design. +### Variations: + +There are 17 additional color variations (in addition to the classic 4 variations) for buttons, inputs, checkboxes, radios, alerts, navbars, tabs, labels, paginations, progess bars and more. +They can be used adding to the desired element the class suffix `-material-color` replacing `color` with the desired one. + +Example: + + + +These colors are took from the Material Design color palette and are reported below: + +![palette](screenshots/palette.jpg) + ### Buttons: Add `.btn-flat` to a button to make it flat, without shadows. diff --git a/alerts.less b/alerts.less index b88b6b21..97b8347b 100644 --- a/alerts.less +++ b/alerts.less @@ -1,26 +1,18 @@ // main: material.less -.alert, .alert-success, .alert-info, .alert-warning, .alert-danger { +.alert { border: 0px; border-radius: 0; a, .alert-link { color: #FFFFFF; } -} - -.alert-success { - color: #FFFFFF; - background-color: @alert-success; -} -.alert-info { - color: #FFFFFF; - background-color: @alert-info; -} -.alert-warning { - color: #FFFFFF; - background-color: @alert-warning; -} -.alert-danger { - color: #FFFFFF; - background-color: @alert-danger; + .variations(~"", background-color, #FFFFFF); + &-info, &-danger, &-warning, &-success { + color: #FFFFFF; + } + &-default { + a, .alert-link { + color: #000000; + } + } } diff --git a/bootstrap.css b/bootstrap.css deleted file mode 100644 index 9671cbda..00000000 --- a/bootstrap.css +++ /dev/null @@ -1,820 +0,0 @@ -/* Generated by less 1.7.0 */ -@import url(http://fonts.googleapis.com/css?family=Roboto+Condensed:300italic,400italic,700italic,400,700,300|Roboto:400,100,100italic,300,300italic,400italic,500,500italic,700,700italic); -@-webkit-keyframes input-highlight { - 0% { - left: 20%; - width: 20%; - } - 99% { - width: 0; - left: 0; - opacity: 1; - } - 100% { - opacity: 0; - } -} -@-moz-keyframes input-highlight { - 0% { - left: 20%; - width: 20%; - } - 99% { - width: 0; - left: 0; - opacity: 1; - } - 100% { - opacity: 0; - } -} -@keyframes input-highlight { - 0% { - left: 20%; - width: 20%; - } - 99% { - width: 0; - left: 0; - opacity: 1; - } - 100% { - opacity: 0; - } -} -.shadow-z-1 { - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); -} -.shadow-z-2 { - box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); -} -.shadow-z-2-hover { - box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2), 0 3px 6px rgba(0, 0, 0, 0.28); -} -.shadow-z-3 { - box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23); -} -.shadow-z-4 { - box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22); -} -.shadow-z-5 { - box-shadow: 0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22); -} -body { - background-color: #EEEEEE; -} -body, -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - font-family: "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif; -} -.btn { - position: relative; - padding: 8px 30px; - border: 0; - margin: 10px 1px; - cursor: pointer; - border-radius: 4px; - text-transform: uppercase; - text-decoration: none; - transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1); - outline: none !important; -} -.btn:hover:not(.btn-link) { - box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2), 0 3px 6px rgba(0, 0, 0, 0.28); -} -.btn:active:not(.btn-link) { - box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23); -} -.btn-raised { - box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); - transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1); -} -.btn-raised:active:not(.btn-link) { - box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23); -} -.btn-default, -.btn-default:hover, -.btn-default:active, -.btn-default:focus { - background-color: transparent; - color: #000000; -} -.btn-default:hover { - background-color: #FFFFFF; -} -.btn-primary, -.btn-primary:hover, -.btn-primary:active, -.btn-primary:focus { - background-color: #4285f4; - color: #ffffff; -} -.btn-success, -.btn-success:hover, -.btn-success:active, -.btn-success:focus { - background-color: #0f9d58; - color: #ffffff; -} -.btn-info, -.btn-info:hover, -.btn-info:active, -.btn-info:focus { - background-color: #3498db; - color: #ffffff; -} -.btn-warning, -.btn-warning:hover, -.btn-warning:active, -.btn-warning:focus { - background-color: #ff5722; - color: #ffffff; -} -.btn-danger, -.btn-danger:hover, -.btn-danger:active, -.btn-danger:focus { - background-color: #db4437; - color: #ffffff; -} -.open > .dropdown-toggle.btn-default { - background-color: transparent; -} -.open > .dropdown-toggle.btn-primary { - background-color: #4285f4; -} -.open > .dropdown-toggle.btn-success { - background-color: #0f9d58; -} -.open > .dropdown-toggle.btn-info { - background-color: #3498db; -} -.open > .dropdown-toggle.btn-warning { - background-color: #ff5722; -} -.open > .dropdown-toggle.btn-danger { - background-color: #db4437; -} -.btn-flat { - box-shadow: none !important; -} -.btn-flat.btn-default:hover { - background: none; -} -.btn-group, -.btn-group-vertical { - position: relative; - border-radius: 4px; - margin: 10px 1px; - box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); - transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1); -} -.btn-group:active:not(.btn-link), -.btn-group-vertical:active:not(.btn-link) { - box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23); -} -.btn-group.open .dropdown-toggle, -.btn-group-vertical.open .dropdown-toggle { - box-shadow: none; -} -.btn-group.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); - transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1); -} -.btn-group.btn-group-raised:active:not(.btn-link), -.btn-group-vertical.btn-group-raised:active:not(.btn-link) { - box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23); -} -.btn-group .btn, -.btn-group-vertical .btn, -.btn-group .btn:active, -.btn-group-vertical .btn:active, -.btn-group .btn-group, -.btn-group-vertical .btn-group { - box-shadow: none !important; - margin: 0; -} -.btn-group .btn:active .caret, -.btn-group-vertical .btn:active .caret { - margin-left: -1px; -} -.btn-group-flat { - box-shadow: none !important; -} -.ripple-wrapper { - position: absolute; - top: 0; - left: 0; - z-index: 1; - width: 100%; - height: 100%; - overflow: hidden; - border-radius: 2px; -} -.ripple { - fill: black; - fill-opacity: 0.05; - stroke: none; - -webkit-transform: scale(1); - -ms-transform: scale(1); - transform: scale(1); - -webkit-transform-origin: 50%; - -ms-transform-origin: 50%; - transform-origin: 50%; - opacity: 0; -} -.ripple.ripple-on { - transition: opacity 0.15s ease-in 0s -webkit-transform 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.1s; - -webkit-transition: opacity 0.15s ease-in 0s, -webkit-transform 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.1s; - opacity: 1; -} -.ripple.ripple-out { - -webkit-transition: opacity 0.2s linear 0s !important; - transition: opacity 0.2s linear 0s !important; - opacity: 0; -} -.form-horizontal .checkbox { - padding-top: 15px; -} -.checkbox label { - cursor: pointer; - padding-left: 45px; - position: relative; -} -.checkbox label span { - display: block; - position: absolute; - left: 10px; - transition-duration: 0.2s; -} -.checkbox label .bubble { - background: rgba(137, 137, 137, 0.3); - left: 0; - top: -10px; - height: 40px; - width: 40px; - border-radius: 100%; - transform: scale(0); - transition: transform .1s, opacity 0.2s 0.4s; - z-index: 1; -} -.checkbox label .bubble.animate { - transform: scale(1); - opacity: 0; -} -.checkbox label .box { - border: 2px solid #5A5F5A; - height: 20px; - width: 20px; - transition-delay: 0.2s; -} -.checkbox label .check { - top: -4px; - left: 16px; - width: 12px; - height: 24px; - border: 2px solid #0F9D58; - border-top: none; - border-left: none; - opacity: 0; - z-index: 888; - transform: rotate(45deg); - transition-delay: 0.2s; -} -.checkbox input[type=checkbox] { - display: none; -} -.checkbox input[type=checkbox]:checked ~ .box { - opacity: 0; - transform: scale(0) rotate(-180deg); -} -.checkbox input[type=checkbox]:checked ~ .bubble { - background: rgba(15, 157, 88, 0.3); -} -.checkbox input[type=checkbox]:checked ~ .check { - opacity: 1; - transform: scale(1) rotate(45deg); -} -.form-horizontal .radio { - margin-bottom: 10px; -} -.radio label { - cursor: pointer; - padding-left: 45px; - position: relative; -} -.radio label span { - display: block; - position: absolute; - left: 10px; - top: 2px; - transition-duration: 0.2s; -} -.radio label .bubble { - background: rgba(137, 137, 137, 0.3); - left: 0; - top: -8px; - height: 34px; - width: 34px; - border-radius: 100%; - transform: scale(0); - transition: transform .1s, opacity 0.2s 0.4s; - z-index: 1; -} -.radio label .bubble.animate { - transform: scale(1); - opacity: 0; -} -.radio label .circle { - border: 2px solid #5A5F5A; - height: 15px; - width: 15px; - border-radius: 100%; -} -.radio label .check { - height: 15px; - width: 15px; - border-radius: 100%; - background-color: #5a5f5a; - transform: scale(0); -} -.radio.radio-default .check { - background-color: #5a5f5a; -} -.radio.radio-primary .check { - background-color: #4285f4; -} -.radio.radio-success .check { - background-color: #0f9d58; -} -.radio.radio-info { - background-color: #3498db; -} -.radio.radio-warning .check { - background-color: #ff5722; -} -.radio.radio-danger .check { - background-color: #db4437; -} -.radio input[type=radio] { - display: none; -} -.radio input[type=radio]:checked ~ .check { - transform: scale(1); -} -.radio input[type=radio]:checked ~ .circle { - transform: scale(1); - border: 1px; -} -.form-control-wrapper { - position: relative; - /* active state */ -} -.form-control-wrapper .form-control, -.form-control-wrapper .form-control:focus { - float: none; - border: 0; - box-shadow: none; - border-radius: 0; - background: transparent; - border-bottom: 1px solid #757575; -} -.form-control-wrapper .form-control:focus { - outline: none; -} -.form-control-wrapper .floating-label { - color: #7E7E7E; - font-size: 14px; - position: absolute; - pointer-events: none; - left: 12px; - top: 7px; - transition: 0.2s ease all; - opacity: 0; -} -.form-control-wrapper .form-control:focus ~ .floating-label { - top: -10px; - font-size: 10px; - color: #5264ae; -} -.form-control-wrapper .form-control:not(.empty) ~ .floating-label { - top: -10px; - font-size: 10px; - opacity: 1; -} -.form-control-wrapper .form-control:focus:invalid ~ .floating-label { - color: #db4437; -} -.form-control-wrapper .form-control:focus ~ .material-input:after { - background-color: #5264ae; -} -.form-control-wrapper .form-control:focus:invalid ~ .material-input:before, -.form-control-wrapper .form-control:focus:invalid ~ .material-input:after { - background-color: #db4437; -} -.form-control-wrapper .form-control.empty ~ .floating-label { - opacity: 1; -} -.form-control-wrapper .material-input:before { - position: absolute; - content: ""; - width: 100%; - left: 0; - height: 2px; - background-color: #5264ae; - bottom: -1px; - transform: scaleX(0); - transition: transform 0s; -} -.form-control-wrapper .form-control:focus ~ .material-input:before { - transform: scaleX(1); - transition: transform 0.2s ease-out; -} -.form-control-wrapper .material-input:after { - content: ""; - position: absolute; - height: 18px; - width: 100px; - margin-top: -1px; - top: 25%; - left: 0; - pointer-events: none; - opacity: 0.9; -} -.form-control-wrapper .input-lg ~ .material-input:after { - height: 26px; -} -.form-control-wrapper textarea { - resize: none; -} -.form-control-wrapper textarea ~ .form-control-highlight { - margin-top: -11px; -} -.form-control-wrapper .form-control:focus ~ .material-input:after { - -webkit-animation: input-highlight 0.3s ease; - animation: input-highlight 0.3s ease; - -webkit-animation-fill-mode: forwards; - animation-fill-mode: forwards; -} -.form-group.has-warning .material-input:before, -.form-group.has-warning input.form-control:focus ~ .material-input:after { - background: #ff5722; -} -.form-group.has-warning .control-label, -.form-group.has-warning input.form-control:focus ~ .floating-label { - color: #ff5722; -} -.form-group.has-error .material-input:before, -.form-group.has-error input.form-control:focus ~ .material-input:after { - background: #db4437; -} -.form-group.has-error .control-label, -.form-group.has-error input.form-control:focus ~ .floating-label { - color: #db4437; -} -.form-group.has-success .material-input:before, -.form-group.has-success input.form-control:focus ~ .material-input:after { - background: #0f9d58; -} -.form-group.has-success .control-label, -.form-group.has-success input.form-control:focus ~ .floating-label { - color: #0f9d58; -} -.form-group.has-info .material-input:before, -.form-group.has-info input.form-control:focus ~ .material-input:after { - background: #3498db; -} -.form-group.has-info .control-label, -.form-group.has-info input.form-control:focus ~ .floating-label { - color: #3498db; -} -.input-group .form-control-wrapper { - margin-right: 5px; - margin-left: 5px; - bottom: -10px; -} -.input-group .form-control-wrapper .form-control { - float: none; -} -.input-group .input-group-addon { - border: 0; -} -.input-group .input-group-btn .btn { - border-radius: 4px; -} -select.form-control { - border: 0; - box-shadow: none; - border-bottom: 1px solid #757575; - border-radius: 0; -} -select.form-control:focus { - box-shadow: none; - border-color: #757575; -} -.container .well, -.container .jumbotron { - background-color: #fff; - box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); - border-radius: 2px; -} -.container .well p, -.container .jumbotron p { - font-weight: 300; -} -.modal-content { - box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); - border-radius: 0; - border: 0; -} -.modal-content .modal-header { - border-bottom: 0; -} -.modal-content .modal-footer { - border-top: 0; -} -.modal-content .modal-footer .btn + .btn { - margin-bottom: 10px; -} -.list-group { - box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); - border-radius: 2px; -} -.list-group .list-group-item:last-child { - border-bottom-right-radius: 2px; - border-bottom-left-radius: 2px; -} -.list-group .list-group-item:first-child { - border-top-right-radius: 2px; - boborder-top-right-radius: 2px; -} -.navbar { - background-color: #4285f4; - border: 0; - border-radius: 0; -} -.navbar .navbar-brand { - position: relative; - height: 60px; - line-height: 30px; - color: #ffffff; -} -.navbar .navbar-brand:hover, -.navbar .navbar-brand:focus { - color: #ffffff; - background-color: transparent; -} -.navbar .navbar-text { - color: #ffffff; -} -.navbar .navbar-nav > li > a { - color: #ffffff; - padding-top: 20px; - padding-bottom: 20px; -} -.navbar .navbar-nav > li > a:hover, -.navbar .navbar-nav > li > a:focus { - color: #ffffff; - background-color: transparent; -} -.navbar .navbar-nav > .active > a, -.navbar .navbar-nav > .active > a:hover, -.navbar .navbar-nav > .active > a:focus { - color: #ffffff; - background-color: rgba(0, 0, 0, 0.05); -} -.navbar .navbar-nav > .disabled > a, -.navbar .navbar-nav > .disabled > a:hover, -.navbar .navbar-nav > .disabled > a:focus { - color: #e5e5e5; - background-color: transparent; -} -.navbar .navbar-toggle { - border-color: #ffffff; -} -.navbar .navbar-toggle:hover, -.navbar .navbar-toggle:focus { - background-color: transparent; -} -.navbar .navbar-toggle .icon-bar { - background-color: #ffffff; -} -.navbar .navbar-collapse, -.navbar .navbar-form { - border-color: #206ff2; -} -.navbar .navbar-nav > .open > a, -.navbar .navbar-nav > .open > a:hover, -.navbar .navbar-nav > .open > a:focus { - background-color: rgba(0, 0, 0, 0.05); - color: #ffffff; -} -@media (max-width: 767px) { - .navbar .navbar-nav .open .dropdown-menu > .dropdown-header { - border: 0; - color: #d4d4d4; - } - .navbar .navbar-nav .open .dropdown-menu .divider { - background-color: #ffffff; - } - .navbar .navbar-nav .open .dropdown-menu > li > a { - color: #ffffff; - } - .navbar .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar .navbar-nav .open .dropdown-menu > li > a:focus { - color: #ffffff; - background-color: transparent; - } - .navbar .navbar-nav .open .dropdown-menu > .active > a, - .navbar .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #ffffff; - background-color: rgba(0, 0, 0, 0.05); - } - .navbar .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #e5e5e5; - background-color: transparent; - } -} -.navbar .navbar-link { - color: #ffffff; -} -.navbar .navbar-link:hover { - color: #ffffff; -} -.navbar .btn-link { - color: #ffffff; -} -.navbar .btn-link:hover, -.navbar .btn-link:focus { - color: #ffffff; -} -.navbar .btn-link[disabled]:hover, -fieldset[disabled] .navbar .btn-link:hover, -.navbar .btn-link[disabled]:focus, -fieldset[disabled] .navbar .btn-link:focus { - color: #e5e5e5; -} -.navbar .navbar-form .form-control-wrapper .form-control { - border-color: #ffffff; - color: #ffffff; -} -.navbar .navbar-form .form-control-wrapper .material-input:before, -.navbar .navbar-form .form-control-wrapper input:focus ~ .material-input:after { - background-color: #ffffff; -} -.navbar .navbar-form ::-webkit-input-placeholder { - color: #ffffff; -} -.navbar .navbar-form :-moz-placeholder { - color: #ffffff; -} -.navbar .navbar-form ::-moz-placeholder { - color: #ffffff; -} -.navbar .navbar-form :-ms-input-placeholder { - color: #ffffff; -} -.navbar-primary { - background-color: #4285f4; -} -.navbar-primary .navbar-collapse, -.navbar-primary .navbar-form { - border-color: #206ff2; -} -.navbar-success { - background-color: #0f9d58; -} -.navbar-success .navbar-collapse, -.navbar-success .navbar-form { - border-color: #0c7c46; -} -.navbar-info { - background-color: #3498db; -} -.navbar-info .navbar-collapse, -.navbar-info .navbar-form { - border-color: #2386c8; -} -.navbar-warning { - background-color: #ff5722; -} -.navbar-warning .navbar-collapse, -.navbar-warning .navbar-form { - border-color: #fd3d00; -} -.navbar-danger { - background-color: #db4437; -} -.navbar-danger .navbar-collapse, -.navbar-danger .navbar-form { - border-color: #ca3124; -} -.navbar-inverse { - background-color: #5264ae; -} -.navbar-inverse .navbar-collapse, -.navbar-inverse .navbar-form { - border-color: #465696; -} -.dropdown-menu { - border: 0; - box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26); -} -.dropdown-menu .divider { - background-color: rgba(229, 229, 229, 0.12); -} -.dropdown-menu li { - overflow: hidden; - position: relative; -} -.dropdown-menu li a:hover { - background-color: transparent; -} -.alert, -.alert-success, -.alert-info, -.alert-warning, -.alert-danger { - border: 0px; - border-radius: 0; -} -.alert a, -.alert-success a, -.alert-info a, -.alert-warning a, -.alert-danger a, -.alert .alert-link, -.alert-success .alert-link, -.alert-info .alert-link, -.alert-warning .alert-link, -.alert-danger .alert-link { - color: #FFFFFF; -} -.alert-success { - color: #FFFFFF; - background-color: #0f9d58; -} -.alert-info { - color: #FFFFFF; - background-color: #3498db; -} -.alert-warning { - color: #FFFFFF; - background-color: #ff5722; -} -.alert-danger { - color: #FFFFFF; - background-color: #db4437; -} -.progress { - height: 4px; - border-radius: 0; - box-shadow: none; - background: #c8c8c8; -} -.progress .progress-bar { - box-shadow: none; -} -.progress .progress-bar, -.progress .progress-bar-info { - background-color: #3498db; -} -.progress .progress-bar-warning { - background-color: #ff5722; -} -.progress .progress-bar-danger { - background-color: #db4437; -} -.progress .progress-bar-success { - background-color: #0f9d58; -} -.text-warning { - color: #ff5722; -} -.text-primary { - color: #4285f4; -} -.text-danger { - color: #db4437; -} -.text-success { - color: #0f9d58; -} -.text-info { - color: #3498db; -} diff --git a/buttons.less b/buttons.less index eba643be..f22e3167 100644 --- a/buttons.less +++ b/buttons.less @@ -18,7 +18,11 @@ border-radius: 4px; text-transform: uppercase; text-decoration: none; + color: @darkbg-text; + &:hover { + color: @darkbg-text; + } &:hover:not(.btn-link) { .shadow-z-2-hover(); } @@ -27,57 +31,29 @@ .shadow-z-3(); } outline: none !important; + + .variations(~":not(.btn-link)", background-color, @btn-default); + } -.btn-raised { - .btn-shadow(); -} -.btn-default { - &, &:hover, &:active, &:focus { - background-color: @btn-default; - color: @btn-default-text; - } +// This is needed to style buttons which has not a variation suffix (they must stiled as btn-default) +.btn-link, .btn:not([class^="btn btn-"]), .btn-default { + color: @lightbg-text; &:hover { - background-color: #FFFFFF; + color: @lightbg-text; } } -.btn-primary { - &, &:hover, &:active, &:focus { - background-color: @btn-primary; - color: @btn-primary-text; - } -} -.btn-success { - &, &:hover, &:active, &:focus { - background-color: @btn-success; - color: @btn-success-text; - } -} -.btn-info { - &, &:hover, &:active, &:focus { - background-color: @btn-info; - color: @btn-info-text; - } -} -.btn-warning { - &, &:hover, &:active, &:focus { - background-color: @btn-warning; - color: @btn-warning-text; - } -} -.btn-danger { - &, &:hover, &:active, &:focus { - background-color: @btn-danger; - color: @btn-danger-text; +.btn:not([class^="btn btn-"]), .btn-default { + &:hover { + background-color: rgba(255,255,255,0.5); } } +.btn-raised { + .btn-shadow(); +} + .open > .dropdown-toggle.btn { - &-default { background-color: @btn-default; } - &-primary { background-color: @btn-primary; } - &-success { background-color: @btn-success; } - &-info { background-color: @btn-info; } - &-warning { background-color: @btn-warning; } - &-danger { background-color: @btn-danger; } + .variations(~"", background-color, @btn-default); } .btn-flat { box-shadow: none !important; diff --git a/checkboxes.less b/checkboxes.less index 6af35b38..3444b3c2 100644 --- a/checkboxes.less +++ b/checkboxes.less @@ -14,8 +14,8 @@ left: 10px; transition-duration: 0.2s; } - .bubble { - background: @input-unchecked; + .ripple { + background-color: @lightbg-text; left: 0; top: -10px; height: 40px; @@ -24,13 +24,15 @@ transform: scale(0); transition: transform .1s, opacity 0.2s 0.4s; z-index: 1; + opacity: 0.2; + margin: 0; &.animate { transform: scale(1); opacity: 0; } } .box { - border: 2px solid #5A5F5A; + border: 2px solid @lightbg-text; height: 20px; width: 20px; transition-delay: 0.2s; @@ -40,7 +42,7 @@ left: 16px; width: 12px; height: 24px; - border: 2px solid #0F9D58; + border: 2px solid; border-top: none; border-left: none; opacity: 0; @@ -48,18 +50,28 @@ transform: rotate(45deg); transition-delay: 0.2s; } + } + .variations(~" .check", color, @success); + input[type=checkbox][disabled]:checked ~ .check, + input[type=checkbox][disabled]:not(:checked) ~ .box { + opacity: 0.5; + } + input[type=checkbox][disabled] ~ .ripple { + opacity: 0.1; } input[type=checkbox] { display: none; } input[type=checkbox]:checked ~ .box { opacity: 0; transform: scale(0) rotate(-180deg); } - input[type=checkbox]:checked ~ .bubble { - background: @input-checked; - } + .variations(~" input[type=checkbox]:checked ~ .ripple", background-color, @success); input[type=checkbox]:checked ~ .check { opacity: 1; transform: scale(1) rotate(45deg); } + + input[type=checkbox][disabled] ~ .ripple { + background-color: @lightbg-text; + } } diff --git a/index.html b/index.html index bf0e1319..3e147934 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ Bootstrap Material - + @@ -1286,6 +1286,6 @@ })(); - + diff --git a/inputs.less b/inputs.less index 8de507e0..ac736522 100644 --- a/inputs.less +++ b/inputs.less @@ -93,6 +93,14 @@ -webkit-animation-fill-mode: forwards; animation-fill-mode: forwards; } + + select ~ .material-input:before { + bottom: 1px; + } + select ~ .material-input:after { + display: none; + } + } .form-group { @@ -128,6 +136,10 @@ color: @input-info; } } + .variations(~" .material-input:before", background-color, @lightbg-text); + .variations(~" input.form-control:focus ~ .material-input:after", background-color, @lightbg-text); + .variations(~" .control-label", color, @lightbg-text); + .variations(~" input.form-control:focus ~ .floating-label", color, @lightbg-text); } diff --git a/material.css b/material.css index f5bbb6e8..99dad051 100644 --- a/material.css +++ b/material.css @@ -63,6 +63,13 @@ body { background-color: #EEEEEE; } +body.inverse { + background: #333333; +} +body.inverse, +body.inverse .form-control { + color: #ffffff; +} body, h1, h2, @@ -87,15 +94,103 @@ h6, border-radius: 4px; text-transform: uppercase; text-decoration: none; + color: #ffffff; transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1); outline: none !important; } +.btn:hover { + color: #ffffff; +} .btn:hover:not(.btn-link) { box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2), 0 3px 6px rgba(0, 0, 0, 0.28); } .btn:active:not(.btn-link) { box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23); } +.btn:not(.btn-link), +.btn-default:not(.btn-link) { + background-color: transparent; +} +.btn-primary:not(.btn-link) { + background-color: #4285f4; +} +.btn-success:not(.btn-link) { + background-color: #0f9d58; +} +.btn-info:not(.btn-link) { + background-color: #3498db; +} +.btn-warning:not(.btn-link) { + background-color: #ff5722; +} +.btn-danger:not(.btn-link) { + background-color: #f44336; +} +.btn-material-red:not(.btn-link) { + background-color: #f44336; +} +.btn-material-pink:not(.btn-link) { + background-color: #e91e63; +} +.btn-material-purple:not(.btn-link) { + background-color: #9c27b0; +} +.btn-material-deeppurple:not(.btn-link) { + background-color: #673ab7; +} +.btn-material-indigo:not(.btn-link) { + background-color: #3f51b5; +} +.btn-material-lightblue:not(.btn-link) { + background-color: #03a9f4; +} +.btn-material-cyan:not(.btn-link) { + background-color: #00bcd4; +} +.btn-material-teal:not(.btn-link) { + background-color: #009688; +} +.btn-material-lightgreen:not(.btn-link) { + background-color: #8bc34a; +} +.btn-material-lime:not(.btn-link) { + background-color: #cddc39; +} +.btn-material-lightyellow:not(.btn-link) { + background-color: #ffeb3b; +} +.btn-material-orange:not(.btn-link) { + background-color: #ff9800; +} +.btn-material-deeporange:not(.btn-link) { + background-color: #ff5722; +} +.btn-material-grey:not(.btn-link) { + background-color: #9e9e9e; +} +.btn-material-bluegrey:not(.btn-link) { + background-color: #607d8b; +} +.btn-material-brown:not(.btn-link) { + background-color: #795548; +} +.btn-material-lightgrey:not(.btn-link) { + background-color: #ececec; +} +.btn-link, +.btn:not([class^="btn btn-"]), +.btn-default { + color: #4d4d4d; +} +.btn-link:hover, +.btn:not([class^="btn btn-"]):hover, +.btn-default:hover { + color: #4d4d4d; +} +.btn:not([class^="btn btn-"]):hover, +.btn-default:hover { + background-color: rgba(255, 255, 255, 0.5); +} .btn-raised { box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1); @@ -103,51 +198,7 @@ h6, .btn-raised:active:not(.btn-link) { box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23); } -.btn-default, -.btn-default:hover, -.btn-default:active, -.btn-default:focus { - background-color: transparent; - color: #000000; -} -.btn-default:hover { - background-color: #FFFFFF; -} -.btn-primary, -.btn-primary:hover, -.btn-primary:active, -.btn-primary:focus { - background-color: #4285f4; - color: #ffffff; -} -.btn-success, -.btn-success:hover, -.btn-success:active, -.btn-success:focus { - background-color: #0f9d58; - color: #ffffff; -} -.btn-info, -.btn-info:hover, -.btn-info:active, -.btn-info:focus { - background-color: #3498db; - color: #ffffff; -} -.btn-warning, -.btn-warning:hover, -.btn-warning:active, -.btn-warning:focus { - background-color: #ff5722; - color: #ffffff; -} -.btn-danger, -.btn-danger:hover, -.btn-danger:active, -.btn-danger:focus { - background-color: #db4437; - color: #ffffff; -} +.open > .dropdown-toggle.btn, .open > .dropdown-toggle.btn-default { background-color: transparent; } @@ -164,7 +215,58 @@ h6, background-color: #ff5722; } .open > .dropdown-toggle.btn-danger { - background-color: #db4437; + background-color: #f44336; +} +.open > .dropdown-toggle.btn-material-red { + background-color: #f44336; +} +.open > .dropdown-toggle.btn-material-pink { + background-color: #e91e63; +} +.open > .dropdown-toggle.btn-material-purple { + background-color: #9c27b0; +} +.open > .dropdown-toggle.btn-material-deeppurple { + background-color: #673ab7; +} +.open > .dropdown-toggle.btn-material-indigo { + background-color: #3f51b5; +} +.open > .dropdown-toggle.btn-material-lightblue { + background-color: #03a9f4; +} +.open > .dropdown-toggle.btn-material-cyan { + background-color: #00bcd4; +} +.open > .dropdown-toggle.btn-material-teal { + background-color: #009688; +} +.open > .dropdown-toggle.btn-material-lightgreen { + background-color: #8bc34a; +} +.open > .dropdown-toggle.btn-material-lime { + background-color: #cddc39; +} +.open > .dropdown-toggle.btn-material-lightyellow { + background-color: #ffeb3b; +} +.open > .dropdown-toggle.btn-material-orange { + background-color: #ff9800; +} +.open > .dropdown-toggle.btn-material-deeporange { + background-color: #ff5722; +} +.open > .dropdown-toggle.btn-material-grey { + background-color: #9e9e9e; +} +.open > .dropdown-toggle.btn-material-bluegrey { + background-color: #607d8b; +} +.open > .dropdown-toggle.btn-material-brown { + background-color: #795548; +} +.open > .dropdown-toggle.btn-material-lightgrey { + background-color: #ececec; } .btn-flat { box-shadow: none !important; @@ -224,9 +326,13 @@ h6, border-radius: 2px; } .ripple { - fill: black; - fill-opacity: 0.05; - stroke: none; + position: absolute; + width: 20px; + height: 20px; + margin-left: -10px; + margin-top: -10px; + border-radius: 100%; + background-color: rgba(0, 0, 0, 0.05); -webkit-transform: scale(1); -ms-transform: scale(1); transform: scale(1); @@ -236,13 +342,15 @@ h6, opacity: 0; } .ripple.ripple-on { - transition: opacity 0.15s ease-in 0s -webkit-transform 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.1s; -webkit-transition: opacity 0.15s ease-in 0s, -webkit-transform 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.1s; + -ms-transition: opacity 0.15s ease-in 0s, -ms-transform 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.1s; + -moz-transition: opacity 0.15s ease-in 0s, -moz-transform 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.1s; + transition: opacity 0.15s ease-in 0s, transform 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.1s; opacity: 1; } .ripple.ripple-out { - -webkit-transition: opacity 0.2s linear 0s !important; - transition: opacity 0.2s linear 0s !important; + -webkit-transition: opacity 1s linear 0s !important; + transition: opacity 0.8s linear 0s !important; opacity: 0; } .form-horizontal .checkbox { @@ -259,8 +367,8 @@ h6, left: 10px; transition-duration: 0.2s; } -.checkbox label .bubble { - background: rgba(137, 137, 137, 0.3); +.checkbox label .ripple { + background-color: #4d4d4d; left: 0; top: -10px; height: 40px; @@ -269,13 +377,15 @@ h6, transform: scale(0); transition: transform .1s, opacity 0.2s 0.4s; z-index: 1; + opacity: 0.2; + margin: 0; } -.checkbox label .bubble.animate { +.checkbox label .ripple.animate { transform: scale(1); opacity: 0; } .checkbox label .box { - border: 2px solid #5A5F5A; + border: 2px solid #4d4d4d; height: 20px; width: 20px; transition-delay: 0.2s; @@ -285,7 +395,7 @@ h6, left: 16px; width: 12px; height: 24px; - border: 2px solid #0F9D58; + border: 2px solid; border-top: none; border-left: none; opacity: 0; @@ -293,6 +403,83 @@ h6, transform: rotate(45deg); transition-delay: 0.2s; } +.checkbox .check, +.checkbox-default .check { + color: #0f9d58; +} +.checkbox-primary .check { + color: #4285f4; +} +.checkbox-success .check { + color: #0f9d58; +} +.checkbox-info .check { + color: #3498db; +} +.checkbox-warning .check { + color: #ff5722; +} +.checkbox-danger .check { + color: #f44336; +} +.checkbox-material-red .check { + color: #f44336; +} +.checkbox-material-pink .check { + color: #e91e63; +} +.checkbox-material-purple .check { + color: #9c27b0; +} +.checkbox-material-deeppurple .check { + color: #673ab7; +} +.checkbox-material-indigo .check { + color: #3f51b5; +} +.checkbox-material-lightblue .check { + color: #03a9f4; +} +.checkbox-material-cyan .check { + color: #00bcd4; +} +.checkbox-material-teal .check { + color: #009688; +} +.checkbox-material-lightgreen .check { + color: #8bc34a; +} +.checkbox-material-lime .check { + color: #cddc39; +} +.checkbox-material-lightyellow .check { + color: #ffeb3b; +} +.checkbox-material-orange .check { + color: #ff9800; +} +.checkbox-material-deeporange .check { + color: #ff5722; +} +.checkbox-material-grey .check { + color: #9e9e9e; +} +.checkbox-material-bluegrey .check { + color: #607d8b; +} +.checkbox-material-brown .check { + color: #795548; +} +.checkbox-material-lightgrey .check { + color: #ececec; +} +.checkbox input[type=checkbox][disabled]:checked ~ .check, +.checkbox input[type=checkbox][disabled]:not(:checked) ~ .box { + opacity: 0.5; +} +.checkbox input[type=checkbox][disabled] ~ .ripple { + opacity: 0.1; +} .checkbox input[type=checkbox] { display: none; } @@ -300,13 +487,83 @@ h6, opacity: 0; transform: scale(0) rotate(-180deg); } -.checkbox input[type=checkbox]:checked ~ .bubble { - background: rgba(15, 157, 88, 0.3); +.checkbox input[type=checkbox]:checked ~ .ripple, +.checkbox-default input[type=checkbox]:checked ~ .ripple { + background-color: #0f9d58; +} +.checkbox-primary input[type=checkbox]:checked ~ .ripple { + background-color: #4285f4; +} +.checkbox-success input[type=checkbox]:checked ~ .ripple { + background-color: #0f9d58; +} +.checkbox-info input[type=checkbox]:checked ~ .ripple { + background-color: #3498db; +} +.checkbox-warning input[type=checkbox]:checked ~ .ripple { + background-color: #ff5722; +} +.checkbox-danger input[type=checkbox]:checked ~ .ripple { + background-color: #f44336; +} +.checkbox-material-red input[type=checkbox]:checked ~ .ripple { + background-color: #f44336; +} +.checkbox-material-pink input[type=checkbox]:checked ~ .ripple { + background-color: #e91e63; +} +.checkbox-material-purple input[type=checkbox]:checked ~ .ripple { + background-color: #9c27b0; +} +.checkbox-material-deeppurple input[type=checkbox]:checked ~ .ripple { + background-color: #673ab7; +} +.checkbox-material-indigo input[type=checkbox]:checked ~ .ripple { + background-color: #3f51b5; +} +.checkbox-material-lightblue input[type=checkbox]:checked ~ .ripple { + background-color: #03a9f4; +} +.checkbox-material-cyan input[type=checkbox]:checked ~ .ripple { + background-color: #00bcd4; +} +.checkbox-material-teal input[type=checkbox]:checked ~ .ripple { + background-color: #009688; +} +.checkbox-material-lightgreen input[type=checkbox]:checked ~ .ripple { + background-color: #8bc34a; +} +.checkbox-material-lime input[type=checkbox]:checked ~ .ripple { + background-color: #cddc39; +} +.checkbox-material-lightyellow input[type=checkbox]:checked ~ .ripple { + background-color: #ffeb3b; +} +.checkbox-material-orange input[type=checkbox]:checked ~ .ripple { + background-color: #ff9800; +} +.checkbox-material-deeporange input[type=checkbox]:checked ~ .ripple { + background-color: #ff5722; +} +.checkbox-material-grey input[type=checkbox]:checked ~ .ripple { + background-color: #9e9e9e; +} +.checkbox-material-bluegrey input[type=checkbox]:checked ~ .ripple { + background-color: #607d8b; +} +.checkbox-material-brown input[type=checkbox]:checked ~ .ripple { + background-color: #795548; +} +.checkbox-material-lightgrey input[type=checkbox]:checked ~ .ripple { + background-color: #ececec; } .checkbox input[type=checkbox]:checked ~ .check { opacity: 1; transform: scale(1) rotate(45deg); } +.checkbox input[type=checkbox][disabled] ~ .ripple { + background-color: #4d4d4d; +} .form-horizontal .radio { margin-bottom: 10px; } @@ -322,8 +579,8 @@ h6, top: 2px; transition-duration: 0.2s; } -.radio label .bubble { - background: rgba(137, 137, 137, 0.3); +.radio label .ripple { + background-color: #4d4d4d; left: 0; top: -8px; height: 34px; @@ -332,13 +589,15 @@ h6, transform: scale(0); transition: transform .1s, opacity 0.2s 0.4s; z-index: 1; + opacity: 0.2; + margin: 0; } -.radio label .bubble.animate { +.radio label .ripple.animate { transform: scale(1); opacity: 0; } .radio label .circle { - border: 2px solid #5A5F5A; + border: 2px solid #4d4d4d; height: 15px; width: 15px; border-radius: 100%; @@ -347,36 +606,164 @@ h6, height: 15px; width: 15px; border-radius: 100%; - background-color: #5a5f5a; + background-color: #4d4d4d; transform: scale(0); } -.radio.radio-default .check { - background-color: #5a5f5a; +.radio input[type=radio]:checked ~ .check, +.radio-default input[type=radio]:checked ~ .check { + background-color: #4d4d4d; } -.radio.radio-primary .check { +.radio-primary input[type=radio]:checked ~ .check { background-color: #4285f4; } -.radio.radio-success .check { +.radio-success input[type=radio]:checked ~ .check { background-color: #0f9d58; } -.radio.radio-info { +.radio-info input[type=radio]:checked ~ .check { background-color: #3498db; } -.radio.radio-warning .check { +.radio-warning input[type=radio]:checked ~ .check { background-color: #ff5722; } -.radio.radio-danger .check { - background-color: #db4437; +.radio-danger input[type=radio]:checked ~ .check { + background-color: #f44336; +} +.radio-material-red input[type=radio]:checked ~ .check { + background-color: #f44336; +} +.radio-material-pink input[type=radio]:checked ~ .check { + background-color: #e91e63; +} +.radio-material-purple input[type=radio]:checked ~ .check { + background-color: #9c27b0; +} +.radio-material-deeppurple input[type=radio]:checked ~ .check { + background-color: #673ab7; +} +.radio-material-indigo input[type=radio]:checked ~ .check { + background-color: #3f51b5; +} +.radio-material-lightblue input[type=radio]:checked ~ .check { + background-color: #03a9f4; +} +.radio-material-cyan input[type=radio]:checked ~ .check { + background-color: #00bcd4; +} +.radio-material-teal input[type=radio]:checked ~ .check { + background-color: #009688; +} +.radio-material-lightgreen input[type=radio]:checked ~ .check { + background-color: #8bc34a; +} +.radio-material-lime input[type=radio]:checked ~ .check { + background-color: #cddc39; +} +.radio-material-lightyellow input[type=radio]:checked ~ .check { + background-color: #ffeb3b; +} +.radio-material-orange input[type=radio]:checked ~ .check { + background-color: #ff9800; +} +.radio-material-deeporange input[type=radio]:checked ~ .check { + background-color: #ff5722; +} +.radio-material-grey input[type=radio]:checked ~ .check { + background-color: #9e9e9e; +} +.radio-material-bluegrey input[type=radio]:checked ~ .check { + background-color: #607d8b; +} +.radio-material-brown input[type=radio]:checked ~ .check { + background-color: #795548; +} +.radio-material-lightgrey input[type=radio]:checked ~ .check { + background-color: #ececec; +} +.radio input[type=radio]:checked ~ .circle, +.radio-default input[type=radio]:checked ~ .circle { + border-color: #4d4d4d; +} +.radio-primary input[type=radio]:checked ~ .circle { + border-color: #4285f4; +} +.radio-success input[type=radio]:checked ~ .circle { + border-color: #0f9d58; +} +.radio-info input[type=radio]:checked ~ .circle { + border-color: #3498db; +} +.radio-warning input[type=radio]:checked ~ .circle { + border-color: #ff5722; +} +.radio-danger input[type=radio]:checked ~ .circle { + border-color: #f44336; +} +.radio-material-red input[type=radio]:checked ~ .circle { + border-color: #f44336; +} +.radio-material-pink input[type=radio]:checked ~ .circle { + border-color: #e91e63; +} +.radio-material-purple input[type=radio]:checked ~ .circle { + border-color: #9c27b0; +} +.radio-material-deeppurple input[type=radio]:checked ~ .circle { + border-color: #673ab7; +} +.radio-material-indigo input[type=radio]:checked ~ .circle { + border-color: #3f51b5; +} +.radio-material-lightblue input[type=radio]:checked ~ .circle { + border-color: #03a9f4; +} +.radio-material-cyan input[type=radio]:checked ~ .circle { + border-color: #00bcd4; +} +.radio-material-teal input[type=radio]:checked ~ .circle { + border-color: #009688; +} +.radio-material-lightgreen input[type=radio]:checked ~ .circle { + border-color: #8bc34a; +} +.radio-material-lime input[type=radio]:checked ~ .circle { + border-color: #cddc39; +} +.radio-material-lightyellow input[type=radio]:checked ~ .circle { + border-color: #ffeb3b; +} +.radio-material-orange input[type=radio]:checked ~ .circle { + border-color: #ff9800; +} +.radio-material-deeporange input[type=radio]:checked ~ .circle { + border-color: #ff5722; +} +.radio-material-grey input[type=radio]:checked ~ .circle { + border-color: #9e9e9e; +} +.radio-material-bluegrey input[type=radio]:checked ~ .circle { + border-color: #607d8b; +} +.radio-material-brown input[type=radio]:checked ~ .circle { + border-color: #795548; +} +.radio-material-lightgrey input[type=radio]:checked ~ .circle { + border-color: #ececec; +} +.radio input[type=radio][disabled] ~ .check, +.radio input[type=radio][disabled] ~ .circle { + opacity: 0.5; } .radio input[type=radio] { display: none; } .radio input[type=radio]:checked ~ .check { - transform: scale(1); + transform: scale(0.55); } -.radio input[type=radio]:checked ~ .circle { - transform: scale(1); - border: 1px; +.radio input[type=radio][disabled] ~ .circle { + border-color: #4d4d4d; +} +.radio input[type=radio][disabled] ~ .check { + background-color: #4d4d4d; } .form-control-wrapper { position: relative; @@ -415,14 +802,14 @@ h6, opacity: 1; } .form-control-wrapper .form-control:focus:invalid ~ .floating-label { - color: #db4437; + color: #f44336; } .form-control-wrapper .form-control:focus ~ .material-input:after { background-color: #5264ae; } .form-control-wrapper .form-control:focus:invalid ~ .material-input:before, .form-control-wrapper .form-control:focus:invalid ~ .material-input:after { - background-color: #db4437; + background-color: #f44336; } .form-control-wrapper .form-control.empty ~ .floating-label { opacity: 1; @@ -468,6 +855,12 @@ h6, -webkit-animation-fill-mode: forwards; animation-fill-mode: forwards; } +.form-control-wrapper select ~ .material-input:before { + bottom: 1px; +} +.form-control-wrapper select ~ .material-input:after { + display: none; +} .form-group.has-warning .material-input:before, .form-group.has-warning input.form-control:focus ~ .material-input:after { background: #ff5722; @@ -478,11 +871,11 @@ h6, } .form-group.has-error .material-input:before, .form-group.has-error input.form-control:focus ~ .material-input:after { - background: #db4437; + background: #f44336; } .form-group.has-error .control-label, .form-group.has-error input.form-control:focus ~ .floating-label { - color: #db4437; + color: #f44336; } .form-group.has-success .material-input:before, .form-group.has-success input.form-control:focus ~ .material-input:after { @@ -500,6 +893,286 @@ h6, .form-group.has-info input.form-control:focus ~ .floating-label { color: #3498db; } +.form-group .material-input:before, +.form-group-default .material-input:before { + background-color: #4d4d4d; +} +.form-group-primary .material-input:before { + background-color: #4285f4; +} +.form-group-success .material-input:before { + background-color: #0f9d58; +} +.form-group-info .material-input:before { + background-color: #3498db; +} +.form-group-warning .material-input:before { + background-color: #ff5722; +} +.form-group-danger .material-input:before { + background-color: #f44336; +} +.form-group-material-red .material-input:before { + background-color: #f44336; +} +.form-group-material-pink .material-input:before { + background-color: #e91e63; +} +.form-group-material-purple .material-input:before { + background-color: #9c27b0; +} +.form-group-material-deeppurple .material-input:before { + background-color: #673ab7; +} +.form-group-material-indigo .material-input:before { + background-color: #3f51b5; +} +.form-group-material-lightblue .material-input:before { + background-color: #03a9f4; +} +.form-group-material-cyan .material-input:before { + background-color: #00bcd4; +} +.form-group-material-teal .material-input:before { + background-color: #009688; +} +.form-group-material-lightgreen .material-input:before { + background-color: #8bc34a; +} +.form-group-material-lime .material-input:before { + background-color: #cddc39; +} +.form-group-material-lightyellow .material-input:before { + background-color: #ffeb3b; +} +.form-group-material-orange .material-input:before { + background-color: #ff9800; +} +.form-group-material-deeporange .material-input:before { + background-color: #ff5722; +} +.form-group-material-grey .material-input:before { + background-color: #9e9e9e; +} +.form-group-material-bluegrey .material-input:before { + background-color: #607d8b; +} +.form-group-material-brown .material-input:before { + background-color: #795548; +} +.form-group-material-lightgrey .material-input:before { + background-color: #ececec; +} +.form-group input.form-control:focus ~ .material-input:after, +.form-group-default input.form-control:focus ~ .material-input:after { + background-color: #4d4d4d; +} +.form-group-primary input.form-control:focus ~ .material-input:after { + background-color: #4285f4; +} +.form-group-success input.form-control:focus ~ .material-input:after { + background-color: #0f9d58; +} +.form-group-info input.form-control:focus ~ .material-input:after { + background-color: #3498db; +} +.form-group-warning input.form-control:focus ~ .material-input:after { + background-color: #ff5722; +} +.form-group-danger input.form-control:focus ~ .material-input:after { + background-color: #f44336; +} +.form-group-material-red input.form-control:focus ~ .material-input:after { + background-color: #f44336; +} +.form-group-material-pink input.form-control:focus ~ .material-input:after { + background-color: #e91e63; +} +.form-group-material-purple input.form-control:focus ~ .material-input:after { + background-color: #9c27b0; +} +.form-group-material-deeppurple input.form-control:focus ~ .material-input:after { + background-color: #673ab7; +} +.form-group-material-indigo input.form-control:focus ~ .material-input:after { + background-color: #3f51b5; +} +.form-group-material-lightblue input.form-control:focus ~ .material-input:after { + background-color: #03a9f4; +} +.form-group-material-cyan input.form-control:focus ~ .material-input:after { + background-color: #00bcd4; +} +.form-group-material-teal input.form-control:focus ~ .material-input:after { + background-color: #009688; +} +.form-group-material-lightgreen input.form-control:focus ~ .material-input:after { + background-color: #8bc34a; +} +.form-group-material-lime input.form-control:focus ~ .material-input:after { + background-color: #cddc39; +} +.form-group-material-lightyellow input.form-control:focus ~ .material-input:after { + background-color: #ffeb3b; +} +.form-group-material-orange input.form-control:focus ~ .material-input:after { + background-color: #ff9800; +} +.form-group-material-deeporange input.form-control:focus ~ .material-input:after { + background-color: #ff5722; +} +.form-group-material-grey input.form-control:focus ~ .material-input:after { + background-color: #9e9e9e; +} +.form-group-material-bluegrey input.form-control:focus ~ .material-input:after { + background-color: #607d8b; +} +.form-group-material-brown input.form-control:focus ~ .material-input:after { + background-color: #795548; +} +.form-group-material-lightgrey input.form-control:focus ~ .material-input:after { + background-color: #ececec; +} +.form-group .control-label, +.form-group-default .control-label { + color: #4d4d4d; +} +.form-group-primary .control-label { + color: #4285f4; +} +.form-group-success .control-label { + color: #0f9d58; +} +.form-group-info .control-label { + color: #3498db; +} +.form-group-warning .control-label { + color: #ff5722; +} +.form-group-danger .control-label { + color: #f44336; +} +.form-group-material-red .control-label { + color: #f44336; +} +.form-group-material-pink .control-label { + color: #e91e63; +} +.form-group-material-purple .control-label { + color: #9c27b0; +} +.form-group-material-deeppurple .control-label { + color: #673ab7; +} +.form-group-material-indigo .control-label { + color: #3f51b5; +} +.form-group-material-lightblue .control-label { + color: #03a9f4; +} +.form-group-material-cyan .control-label { + color: #00bcd4; +} +.form-group-material-teal .control-label { + color: #009688; +} +.form-group-material-lightgreen .control-label { + color: #8bc34a; +} +.form-group-material-lime .control-label { + color: #cddc39; +} +.form-group-material-lightyellow .control-label { + color: #ffeb3b; +} +.form-group-material-orange .control-label { + color: #ff9800; +} +.form-group-material-deeporange .control-label { + color: #ff5722; +} +.form-group-material-grey .control-label { + color: #9e9e9e; +} +.form-group-material-bluegrey .control-label { + color: #607d8b; +} +.form-group-material-brown .control-label { + color: #795548; +} +.form-group-material-lightgrey .control-label { + color: #ececec; +} +.form-group input.form-control:focus ~ .floating-label, +.form-group-default input.form-control:focus ~ .floating-label { + color: #4d4d4d; +} +.form-group-primary input.form-control:focus ~ .floating-label { + color: #4285f4; +} +.form-group-success input.form-control:focus ~ .floating-label { + color: #0f9d58; +} +.form-group-info input.form-control:focus ~ .floating-label { + color: #3498db; +} +.form-group-warning input.form-control:focus ~ .floating-label { + color: #ff5722; +} +.form-group-danger input.form-control:focus ~ .floating-label { + color: #f44336; +} +.form-group-material-red input.form-control:focus ~ .floating-label { + color: #f44336; +} +.form-group-material-pink input.form-control:focus ~ .floating-label { + color: #e91e63; +} +.form-group-material-purple input.form-control:focus ~ .floating-label { + color: #9c27b0; +} +.form-group-material-deeppurple input.form-control:focus ~ .floating-label { + color: #673ab7; +} +.form-group-material-indigo input.form-control:focus ~ .floating-label { + color: #3f51b5; +} +.form-group-material-lightblue input.form-control:focus ~ .floating-label { + color: #03a9f4; +} +.form-group-material-cyan input.form-control:focus ~ .floating-label { + color: #00bcd4; +} +.form-group-material-teal input.form-control:focus ~ .floating-label { + color: #009688; +} +.form-group-material-lightgreen input.form-control:focus ~ .floating-label { + color: #8bc34a; +} +.form-group-material-lime input.form-control:focus ~ .floating-label { + color: #cddc39; +} +.form-group-material-lightyellow input.form-control:focus ~ .floating-label { + color: #ffeb3b; +} +.form-group-material-orange input.form-control:focus ~ .floating-label { + color: #ff9800; +} +.form-group-material-deeporange input.form-control:focus ~ .floating-label { + color: #ff5722; +} +.form-group-material-grey input.form-control:focus ~ .floating-label { + color: #9e9e9e; +} +.form-group-material-bluegrey input.form-control:focus ~ .floating-label { + color: #607d8b; +} +.form-group-material-brown input.form-control:focus ~ .floating-label { + color: #795548; +} +.form-group-material-lightgrey input.form-control:focus ~ .floating-label { + color: #ececec; +} .input-group .form-control-wrapper { margin-right: 5px; margin-left: 5px; @@ -524,14 +1197,21 @@ select.form-control:focus { box-shadow: none; border-color: #757575; } +legend { + border-bottom: 0; +} .container .well, -.container .jumbotron { +.container-fluid .well, +.container .jumbotron, +.container-fluid .jumbotron { background-color: #fff; box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); border-radius: 2px; } .container .well p, -.container .jumbotron p { +.container-fluid .well p, +.container .jumbotron p, +.container-fluid .jumbotron p { font-weight: 300; } .modal-content { @@ -613,7 +1293,7 @@ select.form-control:focus { } .navbar .navbar-collapse, .navbar .navbar-form { - border-color: #206ff2; + border-color: rgba(0, 0, 0, 0.1); } .navbar .navbar-nav > .open > a, .navbar .navbar-nav > .open > a:hover, @@ -689,47 +1369,78 @@ fieldset[disabled] .navbar .btn-link:focus { .navbar .navbar-form :-ms-input-placeholder { color: #ffffff; } -.navbar-primary { +.navbar, +.navbar-default { background-color: #4285f4; } -.navbar-primary .navbar-collapse, -.navbar-primary .navbar-form { - border-color: #206ff2; +.navbar-primary { + background-color: #4285f4; } .navbar-success { background-color: #0f9d58; } -.navbar-success .navbar-collapse, -.navbar-success .navbar-form { - border-color: #0c7c46; -} .navbar-info { background-color: #3498db; } -.navbar-info .navbar-collapse, -.navbar-info .navbar-form { - border-color: #2386c8; -} .navbar-warning { background-color: #ff5722; } -.navbar-warning .navbar-collapse, -.navbar-warning .navbar-form { - border-color: #fd3d00; -} .navbar-danger { - background-color: #db4437; + background-color: #f44336; } -.navbar-danger .navbar-collapse, -.navbar-danger .navbar-form { - border-color: #ca3124; +.navbar-material-red { + background-color: #f44336; +} +.navbar-material-pink { + background-color: #e91e63; +} +.navbar-material-purple { + background-color: #9c27b0; +} +.navbar-material-deeppurple { + background-color: #673ab7; +} +.navbar-material-indigo { + background-color: #3f51b5; +} +.navbar-material-lightblue { + background-color: #03a9f4; +} +.navbar-material-cyan { + background-color: #00bcd4; +} +.navbar-material-teal { + background-color: #009688; +} +.navbar-material-lightgreen { + background-color: #8bc34a; +} +.navbar-material-lime { + background-color: #cddc39; +} +.navbar-material-lightyellow { + background-color: #ffeb3b; +} +.navbar-material-orange { + background-color: #ff9800; +} +.navbar-material-deeporange { + background-color: #ff5722; +} +.navbar-material-grey { + background-color: #9e9e9e; +} +.navbar-material-bluegrey { + background-color: #607d8b; +} +.navbar-material-brown { + background-color: #795548; +} +.navbar-material-lightgrey { + background-color: #ececec; } .navbar-inverse { - background-color: #5264ae; -} -.navbar-inverse .navbar-collapse, -.navbar-inverse .navbar-form { - border-color: #465696; + background-color: #3f51b5; } .dropdown-menu { border: 0; @@ -745,41 +1456,93 @@ fieldset[disabled] .navbar .btn-link:focus { .dropdown-menu li a:hover { background-color: transparent; } -.alert, -.alert-success, -.alert-info, -.alert-warning, -.alert-danger { +.alert { border: 0px; border-radius: 0; } .alert a, -.alert-success a, -.alert-info a, -.alert-warning a, -.alert-danger a, -.alert .alert-link, -.alert-success .alert-link, -.alert-info .alert-link, -.alert-warning .alert-link, -.alert-danger .alert-link { +.alert .alert-link { color: #FFFFFF; } +.alert, +.alert-default { + background-color: #ffffff; +} +.alert-primary { + background-color: #4285f4; +} .alert-success { - color: #FFFFFF; background-color: #0f9d58; } .alert-info { - color: #FFFFFF; background-color: #3498db; } .alert-warning { - color: #FFFFFF; background-color: #ff5722; } .alert-danger { + background-color: #f44336; +} +.alert-material-red { + background-color: #f44336; +} +.alert-material-pink { + background-color: #e91e63; +} +.alert-material-purple { + background-color: #9c27b0; +} +.alert-material-deeppurple { + background-color: #673ab7; +} +.alert-material-indigo { + background-color: #3f51b5; +} +.alert-material-lightblue { + background-color: #03a9f4; +} +.alert-material-cyan { + background-color: #00bcd4; +} +.alert-material-teal { + background-color: #009688; +} +.alert-material-lightgreen { + background-color: #8bc34a; +} +.alert-material-lime { + background-color: #cddc39; +} +.alert-material-lightyellow { + background-color: #ffeb3b; +} +.alert-material-orange { + background-color: #ff9800; +} +.alert-material-deeporange { + background-color: #ff5722; +} +.alert-material-grey { + background-color: #9e9e9e; +} +.alert-material-bluegrey { + background-color: #607d8b; +} +.alert-material-brown { + background-color: #795548; +} +.alert-material-lightgrey { + background-color: #ececec; +} +.alert-info, +.alert-danger, +.alert-warning, +.alert-success { color: #FFFFFF; - background-color: #db4437; +} +.alert-default a, +.alert-default .alert-link { + color: #000000; } .progress { height: 4px; @@ -791,6 +1554,15 @@ fieldset[disabled] .navbar .btn-link:focus { box-shadow: none; } .progress .progress-bar, +.progress .progress-bar-default { + background-color: #4285f4; +} +.progress .progress-bar-primary { + background-color: #4285f4; +} +.progress .progress-bar-success { + background-color: #0f9d58; +} .progress .progress-bar-info { background-color: #3498db; } @@ -798,10 +1570,58 @@ fieldset[disabled] .navbar .btn-link:focus { background-color: #ff5722; } .progress .progress-bar-danger { - background-color: #db4437; + background-color: #f44336; } -.progress .progress-bar-success { - background-color: #0f9d58; +.progress .progress-bar-material-red { + background-color: #f44336; +} +.progress .progress-bar-material-pink { + background-color: #e91e63; +} +.progress .progress-bar-material-purple { + background-color: #9c27b0; +} +.progress .progress-bar-material-deeppurple { + background-color: #673ab7; +} +.progress .progress-bar-material-indigo { + background-color: #3f51b5; +} +.progress .progress-bar-material-lightblue { + background-color: #03a9f4; +} +.progress .progress-bar-material-cyan { + background-color: #00bcd4; +} +.progress .progress-bar-material-teal { + background-color: #009688; +} +.progress .progress-bar-material-lightgreen { + background-color: #8bc34a; +} +.progress .progress-bar-material-lime { + background-color: #cddc39; +} +.progress .progress-bar-material-lightyellow { + background-color: #ffeb3b; +} +.progress .progress-bar-material-orange { + background-color: #ff9800; +} +.progress .progress-bar-material-deeporange { + background-color: #ff5722; +} +.progress .progress-bar-material-grey { + background-color: #9e9e9e; +} +.progress .progress-bar-material-bluegrey { + background-color: #607d8b; +} +.progress .progress-bar-material-brown { + background-color: #795548; +} +.progress .progress-bar-material-lightgrey { + background-color: #ececec; } .text-warning { color: #ff5722; @@ -810,7 +1630,7 @@ fieldset[disabled] .navbar .btn-link:focus { color: #4285f4; } .text-danger { - color: #db4437; + color: #f44336; } .text-success { color: #0f9d58; @@ -824,6 +1644,7 @@ fieldset[disabled] .navbar .btn-link:focus { .nav-tabs > li > a { color: #FFFFFF; border: 0; + margin: 0; } .nav-tabs > li > a:hover { background: transparent; diff --git a/material.js b/material.js index 19fa6eac..57b812d1 100644 --- a/material.js +++ b/material.js @@ -6,10 +6,10 @@ $(function (){ $(withRipple).append("
"); // Add fake-checkbox to material checkboxes - $(".checkbox label input").after(""); + $(".checkbox label input").after(""); // Add fake-radio to material radios - $(".radio label input").after(""); + $(".radio label input").after(""); // Add elements for material inputs $("input.form-control, textarea.form-control, select.form-control").each( function() { @@ -74,7 +74,7 @@ $(function (){ rippleOut($ripple, $rippleWrapper); } }) - .on("mouseup", withRipple, function() { + .on("mouseup mouseleave", withRipple, function() { var $self = $(this), $rippleWrapper = $self.find(".ripple-wrapper"), $ripple = $self.find(".ripple"); @@ -87,23 +87,23 @@ $(function (){ var rippleOut = function($ripple, $rippleWrapper) { $ripple.attr("class", "ripple ripple-on ripple-out"); - $rippleWrapper.fadeOut(200, function() { + $rippleWrapper.fadeOut(800, function() { $rippleWrapper.attr("class", "ripple-wrapper").attr("style", ""); $ripple.attr("class", "ripple").attr("style", ""); }); }; - // Material inputs engine (bubble effect) + // Material inputs engine (ripple effect) $(document).on("click", ".checkbox label, .radio label", function() { - var $bubble = $(this).find(".bubble"), + var $ripple = $(this).find(".ripple"), timestamp = "t" + new Date().getTime(); - $bubble.attr("class", "bubble"); - $bubble.addClass("animate").addClass(timestamp); + $ripple.attr("class", "ripple"); + $ripple.addClass("animate").addClass(timestamp); setTimeout(function() { - if ($bubble.hasClass(timestamp)) { - $bubble.removeClass("animate").removeClass(timestamp); + if ($ripple.hasClass(timestamp)) { + $ripple.removeClass("animate").removeClass(timestamp); } - }, 200); + }, 800); }); $(document).on("change", ".form-control", function() { diff --git a/material.less b/material.less index d0404c4a..9cc26ac1 100644 --- a/material.less +++ b/material.less @@ -5,11 +5,18 @@ @import url(http://fonts.googleapis.com/css?family=Roboto+Condensed:300italic,400italic,700italic,400,700,300|Roboto:400,100,100italic,300,300italic,400italic,500,500italic,700,700italic); @import "variables.less"; +@import "mixins.less"; @import "animations.less"; @import "shadows.less"; body { background-color: #EEEEEE; + &.inverse { + background: #333333; + &, .form-control { + color: @darkbg-text; + } + } } body, h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { @@ -31,8 +38,11 @@ body, h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { // Text inputs @import "inputs.less"; +legend { + border-bottom: 0; +} -.container { +.container, .container-fluid { .well, .jumbotron { background-color: #fff; .shadow-z-2(); diff --git a/mixins.less b/mixins.less new file mode 100644 index 00000000..73ccffd0 --- /dev/null +++ b/mixins.less @@ -0,0 +1,78 @@ +// main: material.less + +// usage: .variations(~" .check", color, transparent); +.variations(@extra, @property, @default) { + // Bootstrap shades + &@{extra}, &-default@{extra} { + @{property}: @default; + } + &-primary@{extra} { + @{property}: @primary; + } + &-success@{extra} { + @{property}: @success; + } + &-info@{extra} { + @{property}: @info; + } + &-warning@{extra} { + @{property}: @warning; + } + &-danger@{extra} { + @{property}: @danger; + } + // Material shades + &-material-red@{extra} { + @{property}: @red; + } + &-material-pink@{extra} { + @{property}: @pink; + } + &-material-purple@{extra} { + @{property}: @purple; + } + &-material-deeppurple@{extra} { + @{property}: @deeppurple; + } + &-material-indigo@{extra} { + @{property}: @indigo; + } + &-material-lightblue@{extra} { + @{property}: @lightblue; + } + &-material-cyan@{extra} { + @{property}: @cyan; + } + &-material-teal@{extra} { + @{property}: @teal; + } + &-material-lightgreen@{extra} { + @{property}: @lightgreen; + } + &-material-lime@{extra} { + @{property}: @lime; + } + &-material-lightyellow@{extra} { + @{property}: @lightyellow; + } + &-material-orange@{extra} { + @{property}: @orange; + } + &-material-deeporange@{extra} { + @{property}: @deeporange; + } + &-material-grey@{extra} { + @{property}: @grey; + } + &-material-bluegrey@{extra} { + @{property}: @bluegrey; + } + &-material-brown@{extra} { + @{property}: @brown; + } + &-material-lightgrey@{extra} { + @{property}: @lightgrey; + } +} + +@all-variations: ~"-default, -primary, -info, -success, -warning, -danger"; diff --git a/navbar.less b/navbar.less index 99c011e6..5ba81191 100644 --- a/navbar.less +++ b/navbar.less @@ -65,7 +65,7 @@ .navbar-collapse, .navbar-form { - border-color: darken(@navbar-default-bg, 7%); + border-color: rgba(0,0,0,0.1); } // Dropdowns @@ -154,27 +154,9 @@ ::-moz-placeholder { color: @navbar-border; }; :-ms-input-placeholder { color: @navbar-border; }; } -} -.navbar { - &-primary { - background-color: @navbar-default-bg; - .navbar-collapse, .navbar-form { border-color: darken(@navbar-default-bg, 7%); } - } - &-success { - background-color: @navbar-success-bg; - .navbar-collapse, .navbar-form { border-color: darken(@navbar-success-bg, 7%); } - } - &-info { background-color: @navbar-info-bg; - .navbar-collapse, .navbar-form { border-color: darken(@navbar-info-bg, 7%); } - } - &-warning { background-color: @navbar-warning-bg; - .navbar-collapse, .navbar-form { border-color: darken(@navbar-warning-bg, 7%); } - } - &-danger { background-color: @navbar-danger-bg; - .navbar-collapse, .navbar-form { border-color: darken(@navbar-danger-bg, 7%); } - } - &-inverse { background-color: @navbar-inverse-bg; - .navbar-collapse, .navbar-form { border-color: darken(@navbar-inverse-bg, 7%); } + .variations(~"", background-color, @primary); + &-inverse { + background-color: @indigo; } } diff --git a/progress.less b/progress.less index f6a87c12..d2f9e1c2 100644 --- a/progress.less +++ b/progress.less @@ -7,17 +7,6 @@ background: #c8c8c8; .progress-bar { box-shadow: none; - &, &-info { - background-color: @progress-info; - } - &-warning { - background-color: @progress-warning; - } - &-danger { - background-color: @progress-danger; - } - &-success { - background-color: @progress-success; - } + .variations(~"", background-color, @primary); } } diff --git a/radios.less b/radios.less index a0fbaab1..bc8344ef 100644 --- a/radios.less +++ b/radios.less @@ -15,8 +15,8 @@ top: 2px; transition-duration: 0.2s; } - .bubble { - background: @input-unchecked; + .ripple { + background-color: @lightbg-text; left: 0; top: -8px; height: 34px; @@ -25,13 +25,15 @@ transform: scale(0); transition: transform .1s, opacity 0.2s 0.4s; z-index: 1; + opacity: 0.2; + margin: 0; &.animate { transform: scale(1); opacity: 0; } } .circle { - border: 2px solid #5A5F5A; + border: 2px solid @lightbg-text; height: 15px; width: 15px; border-radius: 100%; @@ -44,21 +46,23 @@ transform: scale(0); } } - &.radio { - &-default .check { background-color: @radio-default; } - &-primary .check { background-color: @radio-primary; } - &-success .check { background-color: @radio-success; } - &-info { background-color: @radio-info; } - &-warning .check { background-color: @radio-warning; } - &-danger .check { background-color: @radio-danger; } + .variations(~" input[type=radio]:checked ~ .check", background-color, @radio-default); + .variations(~" input[type=radio]:checked ~ .circle", border-color, @radio-default); + + input[type=radio][disabled] ~ .check, + input[type=radio][disabled] ~ .circle { + opacity: 0.5; } + input[type=radio] { display: none; } input[type=radio]:checked ~ .check { - transform: scale(1); + transform: scale(0.55); } - input[type=radio]:checked ~ .circle { - transform: scale(1); - border: 1px; + input[type=radio][disabled] ~ .circle { + border-color: @lightbg-text; + } + input[type=radio][disabled] ~ .check { + background-color: @lightbg-text; } } diff --git a/ripple.less b/ripple.less index 623afb8f..77a9a909 100644 --- a/ripple.less +++ b/ripple.less @@ -34,7 +34,7 @@ opacity: 1; } .ripple.ripple-out { - -webkit-transition: opacity 0.2s linear 0s !important; - transition: opacity 0.2s linear 0s !important; + -webkit-transition: opacity 1s linear 0s !important; + transition: opacity 0.8s linear 0s !important; opacity: 0; } diff --git a/screenshots/palette.jpg b/screenshots/palette.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9b5c01f3b10ff7937746e2608d67a49d86e457f2 GIT binary patch literal 28270 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 ZX a { color: #FFFFFF; border: 0; + margin: 0; &:hover { background: transparent; border: 0; diff --git a/variables.less b/variables.less index 3cca9a4e..d438e676 100644 --- a/variables.less +++ b/variables.less @@ -1,65 +1,101 @@ // main: material.less + + +// Material colors palette +@red: #F44336; +@pink: #E91E63; +@purple: #9C27B0; +@deeppurple: #673AB7; +@indigo: #3F51B5; +@lightblue: #03A9F4; +@cyan: #00BCD4; +@teal: #009688; +@lightgreen: #8BC34A; +@lime: #CDDC39; +@lightyellow: #FFEB3B; +@orange: #FF9800; +@deeporange: #FF5722; +@grey: #9E9E9E; +@bluegrey: #607D8B; +@brown: #795548; +@lightgrey: #ECECEC; + +// Bootstrap shades +@primary: #4285F4; +@success: #0F9D58; +@info: #3498DB; +@warning: @deeporange; +@danger: @red; + +// Typography elements for Material +@darkbg-text: #FFFFFF; +@lightbg-text: #4D4D4D; +@icon-color: rgba(0,0,0,0.5); + + +// Bootstrap variables @btn-default: transparent; -@btn-default-text: #000000; +@btn-default-text: @lightbg-text; -@btn-primary: #4285F4; -@btn-primary-text: #FFFFFF; +@btn-primary: @primary; +@btn-primary-text: @darkbg-text; -@btn-success: #0F9D58; -@btn-success-text: #FFFFFF; +@btn-success: @success; +@btn-success-text: @darkbg-text; -@btn-info: #3498DB; -@btn-info-text: #FFFFFF; +@btn-info: @info; +@btn-info-text: @darkbg-text; -@btn-warning: #FF5722; -@btn-warning-text: #FFFFFF; +@btn-warning: @warning; +@btn-warning-text: @darkbg-text; -@btn-danger: #DB4437; -@btn-danger-text: #FFFFFF; +@btn-danger: @danger; +@btn-danger-text: @darkbg-text; @input-unchecked: rgba(137, 137, 137, 0.3); @input-checked: rgba(15, 157, 88, 0.3); -@radio-default: #5A5F5A; -@radio-primary: @btn-primary; -@radio-success: @btn-success; -@radio-info: @btn-info; -@radio-warning: @btn-warning; -@radio-danger: @btn-danger; +@radio-default: @lightbg-text; +@radio-primary: @primary; +@radio-success: @success; +@radio-info: @info; +@radio-warning: @warning; +@radio-danger: @danger; -@input-danger: @btn-danger; +@input-danger: @danger; @input-default: #5264AE; -@input-warning: @btn-warning; -@input-success: @btn-success; -@input-info: @btn-info; +@input-warning: @warning; +@input-success: @success; +@input-info: @info; -@navbar-danger-bg: @btn-danger; +@navbar-danger-bg: @danger; @navbar-inverse-bg: #5264AE; -@navbar-warning-bg: @btn-warning; -@navbar-success-bg: @btn-success; -@navbar-info-bg: @btn-info; -@navbar-default-bg: @btn-primary; -@navbar-color: #FFFFFF; -@navbar-link-color: #FFFFFF; -@navbar-link-hover-color: #FFFFFF; +@navbar-warning-bg: @warning; +@navbar-success-bg: @success; +@navbar-info-bg: @info; +@navbar-default-bg: @primary; +@navbar-color: @darkbg-text; +@navbar-link-color: @darkbg-text; +@navbar-link-hover-color: @darkbg-text; @navbar-link-hover-bg: transparent; -@navbar-link-active-color: #FFFFFF; +@navbar-link-active-color: @darkbg-text; @navbar-link-active-bg: rgba(0,0,0,0.05); @navbar-link-disabled-color: #E5E5E5; @navbar-link-disabled-bg: transparent; -@navbar-brand-color: #FFFFFF; -@navbar-toggle-border-color: #FFFFFF; +@navbar-brand-color: @darkbg-text; +@navbar-toggle-border-color: @darkbg-text; @navbar-toggle-hover-bg: transparent; -@navbar-toggle-icon-bar-bg: #FFFFFF; -@navbar-border: #FFFFFF; +@navbar-toggle-icon-bar-bg: @darkbg-text; +@navbar-border: @darkbg-text; -@alert-success: @btn-success; -@alert-info: @btn-info; -@alert-warning: @btn-warning; -@alert-danger: @btn-danger; +@alert-success: @success; +@alert-info: @info; +@alert-warning: @warning; +@alert-danger: @danger; + +@progress-success: @success; +@progress-info: @info; +@progress-warning: @warning; +@progress-danger: @danger; -@progress-success: @btn-success; -@progress-info: @btn-info; -@progress-warning: @btn-warning; -@progress-danger: @btn-danger;