$textfield-input-color: dynamic($color);
$textfield-focused-input-color: dynamic(null);
$textfield-invalid-input-color: dynamic(null);
$textfield-disabled-input-color: dynamic(null);
$textfield-input-border-width: dynamic(1px);
$textfield-focused-input-border-width: dynamic(null);
$textfield-invalid-input-border-width: dynamic(null);
$textfield-input-border-style: dynamic(solid);
$textfield-focused-input-border-style: dynamic(null);
$textfield-invalid-input-border-style: dynamic(null);
$textfield-input-border-color: dynamic($neutral-color);
$textfield-focused-input-border-color: dynamic(mix(#fff, #157fcc, 15%));
$textfield-invalid-input-border-color: dynamic($alert-color);
$textfield-disabled-input-border-color: dynamic(null);
$textfield-input-background-color: dynamic($background-color);
$textfield-focused-input-background-color: dynamic(null);
$textfield-invalid-input-background-color: dynamic(null);
$textfield-disabled-input-background-color: dynamic(null);
$textfield-input-padding: dynamic(px-to-em(3px 6px, 13px));
$textfield-input-padding-big: dynamic(px-to-em(3px 6px, 15px));
$textfield-input-font-weight: dynamic($font-weight-normal);
$textfield-input-font-size: dynamic(1rem);
$textfield-input-font-size-big: dynamic(null);
$textfield-input-line-height: dynamic(px-to-em(16px, 13px));
$textfield-input-line-height-big: dynamic(px-to-em(24px, 15px));
$textfield-input-font-family: dynamic($font-family);
$textfield-placeholder-color: dynamic($neutral-medium-dark-color);
@mixin textfield-ui(
$ui: null,
$xtype: textfield,
$background-color: null,
$focused-background-color: null,
$invalid-background-color: null,
$disabled-background-color: null,
$label-color: null,
$focused-label-color: null,
$invalid-label-color: null,
$disabled-label-color: null,
$label-background-color: null,
$focused-label-background-color: null,
$invalid-label-background-color: null,
$disabled-label-background-color: null,
$label-padding: null,
$label-padding-big: null,
$label-font-weight: null,
$label-font-size: null,
$label-font-size-big: null,
$label-line-height: null,
$label-line-height-big: null,
$label-font-family: null,
$disabled-opacity: null,
$required-indicator-font-weight: null,
$required-indicator-font-size: null,
$required-indicator-line-height: null,
$required-indicator-font-family: null,
$required-indicator-margin: null,
$required-indicator-margin-big: null,
$input-color: null,
$focused-input-color: null,
$invalid-input-color: null,
$disabled-input-color: null,
$input-border-width: null,
$focused-input-border-width: null,
$invalid-input-border-width: null,
$input-border-style: null,
$focused-input-border-style: null,
$invalid-input-border-style: null,
$input-border-color: null,
$focused-input-border-color: null,
$invalid-input-border-color: null,
$disabled-input-border-color: null,
$input-background-color: null,
$focused-input-background-color: null,
$invalid-input-background-color: null,
$disabled-input-background-color: null,
$input-padding: null,
$input-padding-big: null,
$input-font-weight: null,
$input-font-size: null,
$input-font-size-big: null,
$input-line-height: null,
$input-line-height-big: null,
$input-font-family: null,
$placeholder-color: null
) {
$ui-suffix: ui-suffix($ui);
.#{$prefix}#{$xtype}#{$ui-suffix} {
.#{$prefix}input {
@include font($input-font-weight, $input-font-size, $input-line-height, $input-font-family);
@include border($input-border-width, $input-border-style, $input-border-color);
background-color: $input-background-color;
}
.#{$prefix}input-el {
color: $input-color;
padding: $input-padding;
line-height: $input-line-height;
@if $enable-big {
.#{$prefix}big & {
padding: $input-padding-big;
font-size: $input-font-size-big;
line-height: $input-line-height-big;
}
}
&::-webkit-input-placeholder {
color: $placeholder-color;
}
&::-moz-placeholder {
color: $placeholder-color;
}
&:-ms-input-placeholder {
color: $placeholder-color;
}
}
&.#{$prefix}focused {
.#{$prefix}input {
@include border($focused-input-border-width, $focused-input-border-style, $focused-input-border-color);
background-color: $focused-input-background-color;
}
.#{$prefix}input-el {
color: $focused-input-color;
}
}
&.#{$prefix}invalid {
.#{$prefix}input {
@include border($invalid-input-border-width, $invalid-input-border-style, $invalid-input-border-color);
background-color: $invalid-input-background-color;
}
.#{$prefix}input-el {
color: $invalid-input-color;
}
}
&.#{$prefix}disabled {
.#{$prefix}input {
background-color: $disabled-input-background-color;
border-color: $disabled-input-border-color;
}
.#{$prefix}input-el {
color: $disabled-input-color;
}
}
$top-border-width: top($input-border-width) or top($textfield-input-border-width) or 0;
$bottom-border-width: bottom($input-border-width) or bottom($textfield-input-border-width) or 0;
$focused-top-border-width: top($focused-input-border-width) or top($textfield-focused-input-border-width) or $top-border-width;
$focused-bottom-border-width: bottom($focused-input-border-width) or bottom($textfield-focused-input-border-width) or $bottom-border-width;
$invalid-top-border-width: top($invalid-input-border-width) or top($textfield-invalid-input-border-width) or $top-border-width;
$invalid-bottom-border-width: bottom($invalid-input-border-width) or bottom($textfield-invalid-input-border-width) or $bottom-border-width;
$smallest-top-border: min($top-border-width, $focused-top-border-width, $invalid-top-border-width);
$smallest-bottom-border: min($bottom-border-width, $focused-bottom-border-width, $invalid-bottom-border-width);
.#{$prefix}input-el, .#{$prefix}before-el, .#{$prefix}after-el, {
@if $top-border-width != $smallest-top-border {
margin-top: -($smallest-top-border - $top-border-width);
}
@if $bottom-border-width != $smallest-bottom-border {
margin-bottom: $smallest-bottom-border - $bottom-border-width;
}
}
&.#{$prefix}focused {
.#{$prefix}input-el, .#{$prefix}before-el, .#{$prefix}after-el, {
@if $focused-top-border-width != $smallest-top-border {
margin-top: -($smallest-top-border - $focused-top-border-width);
}
@if $focused-bottom-border-width != $smallest-bottom-border {
margin-bottom: $smallest-bottom-border - $focused-bottom-border-width;
}
}
}
&.#{$prefix}invalid {
.#{$prefix}input-el, .#{$prefix}before-el, .#{$prefix}after-el, {
@if $invalid-top-border-width != $smallest-top-border {
margin-top: -($smallest-top-border - $invalid-top-border-width);
}
@if $invalid-bottom-border-width != $smallest-bottom-border {
margin-bottom: $smallest-bottom-border - $invalid-bottom-border-width;
}
}
}
}
}