Files

111 lines
2.7 KiB
SCSS

@import "../../globals.md";
@import "./label";
@import "./text-input";
// Material Design Text Input
// --------------------------------------------------
$text-input-md-background-color: $list-md-background-color !default;
$text-input-md-label-color: #999 !default;
$text-input-md-highlight-color: map-get($colors-md, primary) !default;
$text-input-md-hightlight-color-valid: map-get($colors-md, secondary) !default;
$text-input-md-hightlight-color-invalid: map-get($colors-md, danger) !default;
// Default Input
// --------------------------------------------------
.item-input {
margin: $item-md-padding-top ($item-md-padding-right / 2) $item-md-padding-bottom ($item-md-padding-left / 2);
padding: 0;
background-color: $text-input-md-background-color;
}
ion-label {
margin: $item-md-padding-top ($item-md-padding-right / 2) $item-md-padding-bottom ($item-md-padding-left / 2);
color: $text-input-md-label-color;
}
// Inset Input
// --------------------------------------------------
.inset-input {
margin: ($item-md-padding-top / 2) $item-md-padding-right ($item-md-padding-bottom / 2) $item-md-padding-left;
padding: ($item-md-padding-top / 2) ($item-md-padding-right / 2) ($item-md-padding-bottom / 2) ($item-md-padding-left / 2);
}
// Highlighted Input
// --------------------------------------------------
ion-input:after {
position: absolute;
bottom: 0;
right: 0;
left: $item-md-padding-left;
border-bottom-width: 2px;
border-bottom-style: solid;
border-bottom-color: transparent;
content: '';
}
.input-focused:after {
border-bottom-color: $text-input-md-highlight-color;
}
ion-input.ng-valid.input-has-value:after {
border-bottom-color: $text-input-md-hightlight-color-valid;
}
ion-input.ng-invalid.ng-touched:after {
border-bottom-color: $text-input-md-hightlight-color-invalid;
}
// Stacked & Floating Inputs
// --------------------------------------------------
.stacked-label {
font-size: 1.2rem;
}
.floating-label {
transform-origin: left top;
transform: translate3d(0, 27px, 0);
transition: transform 150ms ease-in-out;
}
.stacked-label,
.floating-label {
margin-left: 0;
margin-bottom: 0;
}
.stacked-input,
.floating-input {
margin-left: 0;
margin-top: 8px;
margin-bottom: 8px;
}
.input-focused .stacked-label,
.input-focused .floating-label {
color: $text-input-md-highlight-color;
}
.input-focused .floating-label,
.input-has-value .floating-label {
transform: translate3d(0, 0, 0) scale(0.8);
}
// Generate Material Design label colors
// --------------------------------------------------
@each $color-name, $color-value in $colors-md {
ion-label[#{$color-name}] {
color: $color-value !important;
}
}