From 94eac0856f6ad7ac89c7b0e20346175d97af41d3 Mon Sep 17 00:00:00 2001 From: Federico Zivolo Date: Tue, 23 Sep 2014 09:56:56 +0200 Subject: [PATCH] fix for #27 --- css-compiled/material-wfont.css | 220 ++++++++++-- css-compiled/material.css | 613 +++++++++++++++++++++++++++----- less/radios.less | 63 +++- scripts/material.js | 2 +- 4 files changed, 773 insertions(+), 125 deletions(-) diff --git a/css-compiled/material-wfont.css b/css-compiled/material-wfont.css index 7d7dc3e8..0c8b4cd7 100644 --- a/css-compiled/material-wfont.css +++ b/css-compiled/material-wfont.css @@ -800,6 +800,15 @@ h6, 100% { opacity: 0; } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } } @-ms-keyframes rippleOn { 0% { @@ -811,6 +820,15 @@ h6, 100% { opacity: 0; } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } } @keyframes rippleOn { 0% { @@ -822,6 +840,15 @@ h6, 100% { opacity: 0; } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } } @-webkit-keyframes rippleOff { 0% { @@ -833,6 +860,15 @@ h6, 100% { opacity: 0; } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } } @-ms-keyframes rippleOn { 0% { @@ -844,6 +880,15 @@ h6, 100% { opacity: 0; } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } } @keyframes rippleOff { 0% { @@ -855,6 +900,15 @@ h6, 100% { opacity: 0; } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } } .form-horizontal .radio { margin-bottom: 10px; @@ -872,26 +926,6 @@ h6, -webkit-transition-duration: 0.2s; transition-duration: 0.2s; } -.radio label .ripple { - background-color: rgba(0, 0, 0, 0.84); - left: 0; - top: -8px; - height: 34px; - width: 34px; - border-radius: 100%; - -webkit-transform: scale(0); - transform: scale(0); - -webkit-transition: -webkit-transform .1s, opacity 0.2s 0.4s; - transition: transform .1s, opacity 0.2s 0.4s; - z-index: 1; - opacity: 0.2; - margin: 0; -} -.radio label .ripple.animate { - -webkit-transform: scale(1); - transform: scale(1); - opacity: 0; -} .radio label .circle { border: 2px solid rgba(0, 0, 0, 0.84); height: 15px; @@ -906,6 +940,32 @@ h6, -webkit-transform: scale(0); transform: scale(0); } +.radio label .check:after { + display: block; + position: absolute; + content: ""; + background-color: rgba(0, 0, 0, 0.84); + left: -18px; + top: -18px; + height: 50px; + width: 50px; + border-radius: 100%; + z-index: 1; + opacity: 0; + margin: 0; + -webkit-transform: scale(1.5); + transform: scale(1.5); +} +.radio label input[type=radio]:not(:checked) ~ .check:after { + -webkit-animation: rippleOff 500ms; + -ms-animation: rippleOff 500ms; + animation: rippleOff 500ms; +} +.radio label input[type=radio]:checked ~ .check:after { + -webkit-animation: rippleOn 500ms; + -ms-animation: rippleOn 500ms; + animation: rippleOn 500ms; +} .radio input[type=radio]:checked ~ .check, .radio-default input[type=radio]:checked ~ .check { background-color: rgba(0, 0, 0, 0.84); @@ -1063,6 +1123,126 @@ h6, .radio input[type=radio][disabled] ~ .check { background-color: rgba(0, 0, 0, 0.84); } +@-webkit-keyframes rippleOn { + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } +} +@-ms-keyframes rippleOn { + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } +} +@keyframes rippleOn { + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } +} +@-webkit-keyframes rippleOff { + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } +} +@-ms-keyframes rippleOn { + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } +} +@keyframes rippleOff { + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } +} fieldset[disabled] .form-control, .form-control-wrapper .form-control, .form-control, diff --git a/css-compiled/material.css b/css-compiled/material.css index 5bec3a31..1dade12e 100644 --- a/css-compiled/material.css +++ b/css-compiled/material.css @@ -13,6 +13,20 @@ 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%; @@ -80,8 +94,7 @@ h6, text-transform: uppercase; text-decoration: none; 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; } .btn:hover { @@ -179,8 +192,7 @@ h6, } .btn-raised { 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-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); @@ -267,8 +279,7 @@ h6, 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); - -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-vertical:active:not(.btn-link) { @@ -281,8 +292,7 @@ h6, .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); - -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-vertical.btn-group-raised:active:not(.btn-link) { @@ -419,8 +429,7 @@ h6, padding-top: 15px; } .checkbox { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); + transform: rotate(0deg); } .checkbox label { cursor: pointer; @@ -431,8 +440,7 @@ h6, display: block; position: absolute; left: 0px; - -webkit-transition-duration: 0.2s; - transition-duration: 0.2s; + transition-duration: 0.2s; } .checkbox label .check:after { display: block; @@ -455,6 +463,9 @@ h6, height: 20px; width: 20px; -webkit-transition-delay: 0.2s; + -moz-transition-delay: 0.2s; + -o-transition-delay: 0.2s; + -ms-transition-delay: 0.2s; transition-delay: 0.2s; } .checkbox .check, @@ -539,22 +550,30 @@ h6, border: solid 2px; border-color: #5a5a5a; -webkit-animation: uncheck 300ms ease-out forwards; + -moz-animation: uncheck 300ms ease-out forwards; -ms-animation: uncheck 300ms ease-out forwards; + -o-animation: uncheck 300ms ease-out forwards; animation: uncheck 300ms ease-out forwards; } .checkbox input[type=checkbox]:checked ~ .check:before { -webkit-animation: check 300ms ease-out forwards; + -moz-animation: check 300ms ease-out forwards; -ms-animation: check 300ms ease-out forwards; + -o-animation: check 300ms ease-out forwards; animation: check 300ms ease-out forwards; } .checkbox input[type=checkbox]:not(:checked) ~ .check:after { -webkit-animation: rippleOff 500ms; + -moz-animation: rippleOff 500ms; -ms-animation: rippleOff 500ms; + -o-animation: rippleOff 500ms; animation: rippleOff 500ms; } .checkbox input[type=checkbox]:checked ~ .check:after { -webkit-animation: rippleOn 500ms; + -moz-animation: rippleOn 500ms; -ms-animation: rippleOn 500ms; + -o-animation: rippleOn 500ms; animation: rippleOn 500ms; } .checkbox input[type=checkbox][disabled]:not(:checked) ~ .check:before { @@ -562,8 +581,7 @@ h6, } .checkbox input[type=checkbox][disabled] ~ .check:after { background-color: rgba(0, 0, 0, 0.84); - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); + transform: rotate(-45deg); } .checkbox input[type=checkbox]:checked ~ .check:after, .checkbox-default input[type=checkbox]:checked ~ .check:after { @@ -644,16 +662,14 @@ h6, border-color: #0f9d58; border-left-color: transparent; border-top-color: transparent; - -webkit-transform: rotate(45deg); - transform: rotate(45deg); + transform: rotate(45deg); } 50% { top: 14px; left: 17px; width: 4px; height: 4px; - -webkit-transform: rotate(45deg); - transform: rotate(45deg); + transform: rotate(45deg); border-color: #0f9d58; border-left-color: transparent; border-top-color: transparent; @@ -668,8 +684,7 @@ h6, left: 12px; width: 18px; height: 18px; - -webkit-transform: rotate(0deg); - transform: rotate(0deg); + transform: rotate(0deg); border-color: #5a5a5a; border-left-color: #5a5a5a; border-top-color: #5a5a5a; @@ -681,8 +696,7 @@ h6, left: 17px; width: 10px; height: 21px; - -webkit-transform: rotate(45deg); - transform: rotate(45deg); + transform: rotate(45deg); border-color: #0f9d58; border-left-color: transparent; border-top-color: transparent; @@ -696,8 +710,7 @@ h6, left: 17px; width: 4px; height: 4px; - -webkit-transform: rotate(45deg); - transform: rotate(45deg); + transform: rotate(45deg); border-color: #5a5a5a; border-left-color: #5a5a5a; border-top-color: #5a5a5a; @@ -707,8 +720,43 @@ h6, left: 12px; width: 18px; height: 18px; - -webkit-transform: rotate(0deg); - transform: rotate(0deg); + transform: rotate(0deg); + border-color: #5a5a5a; + border-left-color: #5a5a5a; + border-top-color: #5a5a5a; + } +} +@-moz-keyframes check { + 100% { + top: -3px; + left: 17px; + width: 10px; + height: 21px; + transform: rotate(45deg); + border-color: #0f9d58; + border-left-color: transparent; + border-top-color: transparent; + } + 51% { + border-left: transparent; + border-top-color: transparent; + } + 50% { + top: 14px; + left: 17px; + width: 4px; + height: 4px; + transform: rotate(45deg); + border-color: #5a5a5a; + border-left-color: #5a5a5a; + border-top-color: #5a5a5a; + } + 0% { + top: 1px; + left: 12px; + width: 18px; + height: 18px; + transform: rotate(0deg); border-color: #5a5a5a; border-left-color: #5a5a5a; border-top-color: #5a5a5a; @@ -750,14 +798,13 @@ h6, border-top-color: #5a5a5a; } } -@keyframes check { +@-o-keyframes check { 100% { top: -3px; left: 17px; width: 10px; height: 21px; - -webkit-transform: rotate(45deg); - transform: rotate(45deg); + transform: rotate(45deg); border-color: #0f9d58; border-left-color: transparent; border-top-color: transparent; @@ -771,8 +818,7 @@ h6, left: 17px; width: 4px; height: 4px; - -webkit-transform: rotate(45deg); - transform: rotate(45deg); + transform: rotate(45deg); border-color: #5a5a5a; border-left-color: #5a5a5a; border-top-color: #5a5a5a; @@ -782,8 +828,43 @@ h6, left: 12px; width: 18px; height: 18px; - -webkit-transform: rotate(0deg); - transform: rotate(0deg); + transform: rotate(0deg); + border-color: #5a5a5a; + border-left-color: #5a5a5a; + border-top-color: #5a5a5a; + } +} +@keyframes check { + 100% { + top: -3px; + left: 17px; + width: 10px; + height: 21px; + transform: rotate(45deg); + border-color: #0f9d58; + border-left-color: transparent; + border-top-color: transparent; + } + 51% { + border-left: transparent; + border-top-color: transparent; + } + 50% { + top: 14px; + left: 17px; + width: 4px; + height: 4px; + transform: rotate(45deg); + border-color: #5a5a5a; + border-left-color: #5a5a5a; + border-top-color: #5a5a5a; + } + 0% { + top: 1px; + left: 12px; + width: 18px; + height: 18px; + transform: rotate(0deg); border-color: #5a5a5a; border-left-color: #5a5a5a; border-top-color: #5a5a5a; @@ -799,6 +880,35 @@ h6, 100% { opacity: 0; } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } +} +@-moz-keyframes rippleOn { + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } } @-ms-keyframes rippleOn { 0% { @@ -810,6 +920,35 @@ h6, 100% { opacity: 0; } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } +} +@-o-keyframes rippleOn { + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } } @keyframes rippleOn { 0% { @@ -821,6 +960,15 @@ h6, 100% { opacity: 0; } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } } @-webkit-keyframes rippleOff { 0% { @@ -832,6 +980,35 @@ h6, 100% { opacity: 0; } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } +} +@-moz-keyframes rippleOff { + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } } @-ms-keyframes rippleOn { 0% { @@ -843,6 +1020,35 @@ h6, 100% { opacity: 0; } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } +} +@-o-keyframes rippleOff { + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } } @keyframes rippleOff { 0% { @@ -854,6 +1060,15 @@ h6, 100% { opacity: 0; } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } } .form-horizontal .radio { margin-bottom: 10px; @@ -868,28 +1083,7 @@ h6, position: absolute; left: 10px; top: 2px; - -webkit-transition-duration: 0.2s; - transition-duration: 0.2s; -} -.radio label .ripple { - background-color: rgba(0, 0, 0, 0.84); - left: 0; - top: -8px; - height: 34px; - width: 34px; - border-radius: 100%; - -webkit-transform: scale(0); - transform: scale(0); - -webkit-transition: -webkit-transform .1s, opacity 0.2s 0.4s; - transition: transform .1s, opacity 0.2s 0.4s; - z-index: 1; - opacity: 0.2; - margin: 0; -} -.radio label .ripple.animate { - -webkit-transform: scale(1); - transform: scale(1); - opacity: 0; + transition-duration: 0.2s; } .radio label .circle { border: 2px solid rgba(0, 0, 0, 0.84); @@ -902,8 +1096,36 @@ h6, width: 15px; border-radius: 100%; background-color: rgba(0, 0, 0, 0.84); - -webkit-transform: scale(0); - transform: scale(0); + transform: scale(0); +} +.radio label .check:after { + display: block; + position: absolute; + content: ""; + background-color: rgba(0, 0, 0, 0.84); + left: -18px; + top: -18px; + height: 50px; + width: 50px; + border-radius: 100%; + z-index: 1; + opacity: 0; + margin: 0; + transform: scale(1.5); +} +.radio label input[type=radio]:not(:checked) ~ .check:after { + -webkit-animation: rippleOff 500ms; + -moz-animation: rippleOff 500ms; + -ms-animation: rippleOff 500ms; + -o-animation: rippleOff 500ms; + animation: rippleOff 500ms; +} +.radio label input[type=radio]:checked ~ .check:after { + -webkit-animation: rippleOn 500ms; + -moz-animation: rippleOn 500ms; + -ms-animation: rippleOn 500ms; + -o-animation: rippleOn 500ms; + animation: rippleOn 500ms; } .radio input[type=radio]:checked ~ .check, .radio-default input[type=radio]:checked ~ .check { @@ -1053,8 +1275,7 @@ h6, display: none; } .radio input[type=radio]:checked ~ .check { - -webkit-transform: scale(0.55); - transform: scale(0.55); + transform: scale(0.55); } .radio input[type=radio][disabled] ~ .circle { border-color: rgba(0, 0, 0, 0.84); @@ -1062,6 +1283,206 @@ h6, .radio input[type=radio][disabled] ~ .check { background-color: rgba(0, 0, 0, 0.84); } +@-webkit-keyframes rippleOn { + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } +} +@-moz-keyframes rippleOn { + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } +} +@-ms-keyframes rippleOn { + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } +} +@-o-keyframes rippleOn { + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } +} +@keyframes rippleOn { + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } +} +@-webkit-keyframes rippleOff { + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } +} +@-moz-keyframes rippleOff { + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } +} +@-ms-keyframes rippleOn { + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } +} +@-o-keyframes rippleOff { + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } +} +@keyframes rippleOff { + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } +} fieldset[disabled] .form-control, .form-control-wrapper .form-control, .form-control, @@ -1124,8 +1545,7 @@ select[multiple].form-control.focus { pointer-events: none; left: 0px; top: 5px; - -webkit-transition: 0.2s ease all; - transition: 0.2s ease all; + transition: 0.2s ease all; opacity: 0; } .form-control-wrapper .form-control:not(.empty) ~ .floating-label { @@ -1158,17 +1578,13 @@ select[multiple].form-control.focus { height: 2px; background-color: #5264ae; bottom: -1px; - -webkit-transform: scaleX(0); - transform: scaleX(0); - -webkit-transition: -webkit-transform 0s; - transition: transform 0s; + transform: scaleX(0); + transition: transform 0s; } .form-control-wrapper .form-control:focus ~ .material-input:before, .form-control-wrapper .form-control.focus ~ .material-input:before { - -webkit-transform: scaleX(1); - transform: scaleX(1); - -webkit-transition: -webkit-transform 0.2s ease-out; - transition: transform 0.2s ease-out; + transform: scaleX(1); + transition: transform 0.2s ease-out; } .form-control-wrapper .material-input:after { content: ""; @@ -1180,8 +1596,7 @@ select[multiple].form-control.focus { left: 0; pointer-events: none; opacity: 0.9; - -webkit-transform-origin: left; - transform-origin: left; + transform-origin: left; } .form-control-wrapper .input-lg ~ .material-input:after { height: 26px; @@ -1617,12 +2032,24 @@ select.form-control.focus { @-webkit-keyframes input-highlight { 0% { left: 20%; - -webkit-transform: scaleX(20%); - transform: scaleX(20%); + transform: scaleX(20%); } 99% { - -webkit-transform: scaleX(0); - transform: scaleX(0); + transform: scaleX(0); + left: 0; + opacity: 1; + } + 100% { + opacity: 0; + } +} +@-moz-keyframes input-highlight { + 0% { + left: 20%; + transform: scaleX(20%); + } + 99% { + transform: scaleX(0); left: 0; opacity: 1; } @@ -1644,15 +2071,27 @@ select.form-control.focus { opacity: 0; } } +@-o-keyframes input-highlight { + 0% { + left: 20%; + transform: scaleX(20%); + } + 99% { + transform: scaleX(0); + left: 0; + opacity: 1; + } + 100% { + opacity: 0; + } +} @keyframes input-highlight { 0% { left: 20%; - -webkit-transform: scaleX(20%); - transform: scaleX(20%); + transform: scaleX(20%); } 99% { - -webkit-transform: scaleX(0); - transform: scaleX(0); + transform: scaleX(0); left: 0; opacity: 1; } @@ -2578,8 +3017,10 @@ fieldset[disabled] .navbar .btn-link:focus { border-radius: 2px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); height: 0; + -moz-transition: -moz-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-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; + -moz-transform: translateY(200%); -webkit-transform: translateY(200%); transform: translateY(200%); } @@ -2587,8 +3028,10 @@ fieldset[disabled] .navbar .btn-link:focus { padding: 14px 15px; margin-bottom: 20px; height: auto; + -moz-transition: -moz-transform 0.2s ease-in-out, opacity 0.2s ease-in, height 0 linear 0.2s; -webkit-transition: -webkit-transform 0.2s ease-in-out, opacity 0.2s ease-in, 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; + -moz-transform: none; -webkit-transform: none; transform: none; } @@ -2620,8 +3063,7 @@ fieldset[disabled] .navbar .btn-link:focus { .noUi-handle { position: relative; z-index: 1; - -moz-box-sizing: border-box; - box-sizing: border-box; + box-sizing: border-box; -webkit-box-sizing: border-box; } .noUi-stacking .noUi-handle { @@ -2641,8 +3083,7 @@ fieldset[disabled] .navbar .btn-link:focus { height: 10px; } .noUi-horizontal .noUi-handle { - -moz-box-sizing: border-box; - box-sizing: border-box; + box-sizing: border-box; width: 12px; height: 12px; left: -10px; @@ -2676,13 +3117,11 @@ fieldset[disabled] .navbar .btn-link:focus { .noUi-handle { border-radius: 100%; cursor: default; - -webkit-transition: all 0.2s ease-out; - transition: all 0.2s ease-out; + transition: all 0.2s ease-out; border: 1px solid; } .noUi-horizontal .noUi-handle:active { - -webkit-transform: scale(2.5); - transform: scale(2.5); + transform: scale(2.5); } [disabled].noUi-slider { opacity: 0.5; diff --git a/less/radios.less b/less/radios.less index bc8344ef..b25ad787 100644 --- a/less/radios.less +++ b/less/radios.less @@ -15,23 +15,6 @@ top: 2px; transition-duration: 0.2s; } - .ripple { - background-color: @lightbg-text; - 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; - opacity: 0.2; - margin: 0; - &.animate { - transform: scale(1); - opacity: 0; - } - } .circle { border: 2px solid @lightbg-text; height: 15px; @@ -45,6 +28,28 @@ background-color: @radio-default; transform: scale(0); } + .check:after { + display: block; + position: absolute; + content: ""; + background-color: @lightbg-text; + left: -18px; + top: -18px; + height: 50px; + width: 50px; + border-radius: 100%; + z-index: 1; + opacity: 0; + margin: 0; + transform: scale(1.5); + } + input[type=radio]:not(:checked) ~ .check:after { + .animation(rippleOff 500ms); + } + input[type=radio]:checked ~ .check:after { + .animation(rippleOn 500ms); + } + } .variations(~" input[type=radio]:checked ~ .check", background-color, @radio-default); .variations(~" input[type=radio]:checked ~ .circle", border-color, @radio-default); @@ -66,3 +71,27 @@ } } + +.ripple() { + 0% { + opacity: 0; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 0; + } +} + +@-webkit-keyframes rippleOn {.ripple()} +@-moz-keyframes rippleOn {.ripple()} +@-ms-keyframes rippleOn {.ripple()} +@-o-keyframes rippleOn {.ripple()} +@keyframes rippleOn {.ripple()} + +@-webkit-keyframes rippleOff {.ripple()} +@-moz-keyframes rippleOff {.ripple()} +@-ms-keyframes rippleOn {.ripple()} +@-o-keyframes rippleOff {.ripple()} +@keyframes rippleOff {.ripple()} diff --git a/scripts/material.js b/scripts/material.js index b9960515..2abb8072 100644 --- a/scripts/material.js +++ b/scripts/material.js @@ -8,7 +8,7 @@ $(function (){ $(".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() {