131 lines
3.4 KiB
SCSS
131 lines
3.4 KiB
SCSS
//
|
|
// Material Forms
|
|
// --------------------------------------------------
|
|
|
|
.form-material {
|
|
position: relative;
|
|
padding-top: 26px;
|
|
|
|
// Labels
|
|
> label {
|
|
position: absolute;
|
|
top: 6px;
|
|
left: 0;
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
&.floating > label {
|
|
font-size: $font-size-md;
|
|
font-weight: 400;
|
|
cursor: text;
|
|
z-index: 2;
|
|
transition: all .2s ease-out;
|
|
transform: translateY(25px);
|
|
}
|
|
|
|
&.form-material-sm.floating > label {
|
|
font-size: $font-size-base;
|
|
transform: translateY(22px);
|
|
}
|
|
|
|
&.form-material-lg.floating > label {
|
|
font-size: $font-size-lg;
|
|
transform: translateY(27px);
|
|
}
|
|
|
|
> label,
|
|
& > .form-control:focus + label,
|
|
&.floating.open > label {
|
|
font-size: $font-size-base;
|
|
font-weight: 600;
|
|
cursor: default;
|
|
transform: translateY(0);
|
|
}
|
|
|
|
// :-webkit-autofill Use it separately because it causes issues with non webkit browsers when it is used along with the other selectors
|
|
&.floating > .form-control:-webkit-autofill + label {
|
|
font-size: $font-size-base;
|
|
font-weight: 600;
|
|
cursor: default;
|
|
transform: translateY(0);
|
|
}
|
|
|
|
&.floating > .form-control[disabled] + label,
|
|
&.floating > .form-control[readonly] + label,
|
|
fieldset[disabled] &.floating > label {
|
|
cursor: not-allowed;
|
|
}
|
|
|
|
// Form controls and input addons
|
|
> .form-control {
|
|
padding-left: 0;
|
|
padding-right: 0;
|
|
border-color: transparent;
|
|
border-radius: 0;
|
|
background-color: transparent;
|
|
box-shadow: 0 1px 0 $input-border-color;
|
|
transition: box-shadow .3s ease-out;
|
|
|
|
~ .input-group-append {
|
|
box-shadow: 0 1px 0 $input-border-color;
|
|
transition: box-shadow .3s ease-out;
|
|
}
|
|
|
|
&:focus {
|
|
background-color: transparent;
|
|
border-color: transparent;
|
|
box-shadow: 0 2px 0 $input-focus-border-color;
|
|
|
|
+ label {
|
|
color: $body-color;
|
|
}
|
|
|
|
~ .input-group-append {
|
|
box-shadow: 0 2px 0 $input-focus-border-color;
|
|
}
|
|
}
|
|
}
|
|
|
|
> select.form-control {
|
|
border-radius: 1px; // Fixes an Opera bug (border not transparent as set but black)
|
|
}
|
|
|
|
.form-control[disabled],
|
|
.form-control[readonly],
|
|
fieldset[disabled] .form-control {
|
|
background-color: $white;
|
|
border-bottom: 1px dashed #ccc;
|
|
box-shadow: none;
|
|
}
|
|
|
|
&.input-group .input-group-text {
|
|
border: none;
|
|
background-color: transparent;
|
|
}
|
|
|
|
// Form Focus Variations
|
|
&.form-material-primary > .form-control {
|
|
@include form-control-material-focus-variant($brand-primary);
|
|
}
|
|
|
|
&.form-material-success > .form-control {
|
|
@include form-control-material-focus-variant($brand-success);
|
|
}
|
|
|
|
&.form-material-info > .form-control {
|
|
@include form-control-material-focus-variant($brand-info);
|
|
}
|
|
|
|
&.form-material-warning > .form-control {
|
|
@include form-control-material-focus-variant($brand-warning);
|
|
}
|
|
|
|
&.form-material-danger > .form-control {
|
|
@include form-control-material-focus-variant($brand-danger);
|
|
}
|
|
}
|
|
|
|
// Form State Variations
|
|
@include form-validation-state-material("valid", $brand-success);
|
|
@include form-validation-state-material("invalid", $brand-danger);
|