2015-12-15 01:42:22 +03:00
@mixin mdb-selection-color () {
2015-12-14 21:14:41 +03:00
. radio label ,
2015-12-15 01:42:22 +03:00
. radio-inline ,
2015-12-14 21:14:41 +03:00
. checkbox label ,
2015-12-15 01:42:22 +03:00
. checkbox-inline ,
2015-12-14 21:14:41 +03:00
. switch label {
// override bootstrap focus and keep all the standard color (could be multiple radios in the form group)
2015-12-15 01:42:22 +03:00
//color: $mdb-label-color;
2015-12-14 21:14:41 +03:00
2015-12-15 01:42:22 +03:00
& ,
2015-12-14 21:14:41 +03:00
. is-focused & {
// form-group focus could change multiple checkboxes/radios, disable that change by using the same color as non-form-group is-focused
color : $mdb-label-color ;
// on focus just darken the specific labels, do not turn them to the brand-primary
& : hover ,
& : focus {
color : $mdb-label-color-inner-focus ;
}
// correct the above focus color for disabled items
2015-12-15 20:21:16 +03:00
label : has ( input [ type = radio ][ disabled ]) , // css 4 which is unlikely to work for a while, but no other pure css way.
label : has ( input [ type = checkbox ][ disabled ]) , // css 4
2015-12-14 21:14:41 +03:00
fieldset [ disabled ] & {
2015-12-15 01:42:22 +03:00
& ,
& : hover ,
& : focus {
color : $mdb-label-color ;
}
2015-12-14 21:14:41 +03:00
}
}
}
2015-12-15 01:42:22 +03:00
// Style for disabled inputs OLD, use color approach with opacity built in, see radios
//fieldset[disabled] &,
//fieldset[disabled] & input[type=checkbox],
//input[type=checkbox][disabled]:not(:checked) ~ .checkbox-decorator .check::before,
//input[type=checkbox][disabled]:not(:checked) ~ .checkbox-decorator .check,
//input[type=checkbox][disabled] + .mdb-radio-outer-circle {
// opacity: 0.5;
//}
2015-12-14 21:14:41 +03:00
}
2015-12-14 23:19:17 +03:00
@mixin mdb-radio-color ( $color ) {
2015-12-15 01:42:22 +03:00
~ . mdb-radio-inner-circle {
2015-12-14 23:19:17 +03:00
background-color : $color ;
}
~ . mdb-radio-outer-circle {
border-color : $color ;
}
}
2015-12-12 00:13:33 +03:00
@mixin mdb-form-color ( $label-color , $label-color-focus , $border-color ) {
2015-12-10 21:22:29 +03:00
2015-12-14 20:04:02 +03:00
[ class ^ = ' mdb-label ' ] ,
[ class * = ' mdb-label ' ] {
2015-12-12 00:13:33 +03:00
color : $label-color ;
2015-12-11 00:49:02 +03:00
}
2015-12-10 22:23:01 +03:00
2015-12-12 00:13:33 +03:00
// override BS and keep the border-color normal/grey so that overlaid focus animation draws attention
2015-12-10 21:22:29 +03:00
. form-control {
2015-12-11 20:32:00 +03:00
border-color : $input-border-color ;
2015-12-10 21:22:29 +03:00
}
2015-12-12 00:13:33 +03:00
. is-focused , / / may or may not be a form-group or mdb-form-group
2015-12-11 20:32:00 +03:00
& . is-focused {
// on focus set borders and labels to the validation color
// Use the BS provided mixin for the bulk of the color
@include form-control-validation ( $label-color ) ;
2015-12-10 21:22:29 +03:00
2015-12-14 20:04:02 +03:00
[ class ^ = ' mdb-label ' ] ,
[ class * = ' mdb-label ' ] {
2015-12-11 20:32:00 +03:00
color : $label-color-focus ;
}
2015-12-10 21:22:29 +03:00
2015-12-14 20:04:02 +03:00
. mdb-label-placeholder {
color : $label-color ; // keep the placeholder color
}
2015-12-11 20:32:00 +03:00
// Set the border and box shadow on specific inputs to match
2015-12-10 21:22:29 +03:00
. form-control {
2015-12-11 20:32:00 +03:00
border-color : $border-color ;
2015-12-10 21:22:29 +03:00
}
2015-12-11 20:32:00 +03:00
// Set validation states also for addons
. input-group-addon {
border-color : $border-color ;
}
2015-12-10 21:22:29 +03:00
2015-12-11 20:32:00 +03:00
// underline animation color on focus
. mdb-form-control-decorator {
& : : before ,
& : : after {
2015-12-14 20:55:59 +03:00
//@include gradient-vertical($label-color-focus, $input-border-color); // seems to look better solid. other comments?
2015-12-14 17:59:54 +03:00
background-color : $label-color-focus ;
2015-12-10 21:22:29 +03:00
}
}
2015-12-11 20:32:00 +03:00
. mdb-help {
color : $mdb-label-color-inner-focus ;
}
2015-12-10 21:22:29 +03:00
}
}
2015-12-12 00:13:33 +03:00
// must be broken out for reuse - webkit selector breaks firefox
2015-12-14 19:30:59 +03:00
@mixin mdb-label-static ( $label-top , $static-font-size ) {
2015-12-12 00:13:33 +03:00
top : $label-top ;
left : 0 ;
2015-12-14 19:30:59 +03:00
// must repeat because the previous (more generic) selectors
font-size : $static-font-size ;
2015-12-12 00:13:33 +03:00
}
2015-12-14 20:55:59 +03:00
@mixin mdb-form-size-variant ( $font-size , $label-top-margin , $variant-padding-y , $variant-line-height , $form-group-context : null ) {
2015-12-12 00:13:33 +03:00
$static-font-size : ( $mdb-mdb-label-static-size-ratio * $font-size ) ;
2015-12-14 20:04:02 +03:00
$help-font-size : ( $mdb-help-size-ratio * $font-size ) ;
2015-12-10 21:22:29 +03:00
2015-12-14 20:16:07 +03:00
$label-static-top : $label-top-margin ;
$label-placeholder-top : $label-top-margin + $static-font-size + $variant-padding-y ;
2015-12-10 21:22:29 +03:00
2015-12-12 00:13:33 +03:00
@debug " font-size: #{ $font-size } static-font-size: #{ $static-font-size } help-font-size: #{ $help-font-size } form-group-context: #{ $form-group-context } " ;
2015-12-14 17:59:54 +03:00
//Label height: 72dp
//Padding above label text: 16dp
//Padding between label and input text: 8dp
//Padding below input text (including divider): 16dp
//Padding below text divider: 8dp
2015-12-14 20:16:07 +03:00
@if $form-group-context {
// Create a space at the top of the mdb-form-group for the label.
2015-12-14 20:55:59 +03:00
// The label is absolutely positioned, so we use top padding to make space. This padding extends over the label down to the top of the input (padding).
2015-12-14 20:16:07 +03:00
padding-top : ( $label-top-margin + $static-font-size ) ;
2015-12-14 20:55:59 +03:00
// note: bottom-margin of this is determined by $spacer. @see _spacer.scss
2015-12-14 20:16:07 +03:00
}
2015-12-14 19:30:59 +03:00
// Set all line-heights preferably to 1 so that we can space out everything manually without additional added space
// from the default line-height of 1.5
. form-control ,
label ,
input : : placeholder {
line-height : $variant-line-height ;
}
2015-12-14 17:59:54 +03:00
2015-12-15 20:21:16 +03:00
. radio label ,
label . radio-inline ,
. checkbox label ,
2015-12-16 03:18:32 +03:00
label . checkbox-inline ,
. switch label {
2015-12-15 20:21:16 +03:00
line-height : $line-height ; // keep the same line height for radios and checkboxes
}
2015-12-14 20:55:59 +03:00
// Note: this may be inside or outside a form-group, may be .mdb-form-group.mdb-form-group-sm or .mdb-form-group.mdb-form-group-lg
2015-12-12 00:13:33 +03:00
input : : placeholder {
font-size : $font-size ;
}
// generic labels used anywhere in the form
. checkbox label ,
. radio label ,
label {
font-size : $font-size ;
}
2015-12-14 20:04:02 +03:00
// floating/placeholder default (no focus)
2015-12-12 00:13:33 +03:00
. mdb-label-floating ,
. mdb-label-placeholder {
2015-12-14 19:30:59 +03:00
//@debug "top: #{$label-as-placeholder-top}";
2015-12-14 20:04:02 +03:00
top : $label-placeholder-top ; // place the floating label to look like a placeholder with input padding
2015-12-12 00:13:33 +03:00
}
// floating focused/filled will look like static
& . is-focused ,
. is-focused ,
& . is-filled ,
. is-filled {
. mdb-label-floating {
2015-12-14 20:04:02 +03:00
@include mdb-label-static ( $label-static-top , $static-font-size ) ;
2015-12-12 00:13:33 +03:00
}
}
// static
. mdb-label-static {
2015-12-14 20:04:02 +03:00
@include mdb-label-static ( $label-static-top , $static-font-size ) ;
2015-12-12 00:13:33 +03:00
}
// #559 Fix for webkit/chrome autofill - rule must be separate because it breaks firefox otherwise #731
//input:-webkit-autofill ~ .mdb-label-floating { FIXME: confirm that the autofill js generation of change event makes this unnecessary
// @include mdb-label-static($label-top, $static-font-size, $static-line-height);
//}
. mdb-help {
margin-top : 0 ; // allow the input margin to set-off the top of the help-block
font-size : $help-font-size ;
}
2015-12-10 21:22:29 +03:00
}