zmp-ui
Version:
Zalo Mini App framework
407 lines (322 loc) • 9.95 kB
text/less
@import "./variables.less";
@import "./mixins.less";
.@{input-prefix-cls} {
.input(false);
&-wrapper {
.flex(column, center, flex-start);
color: @light-input-text-color;
}
&-label {
font-size: @input-label-font-size;
line-height: @input-label-line-height;
white-space: nowrap;
overflow: hidden;
display: inline-block;
}
&-helper-text {
.flex(row, flex-start, flex-start);
font-size: @input-helper-text-font-size;
line-height: @input-helper-text-line-height;
color: @light-input-helper-text-color;
&-icon {
padding-right: 0;
margin-right: @input-helper-icon-padding-right;
margin-top: calc(calc(@input-helper-text-line-height - 16px) / 2);
}
&-content {
flex: 1;
display: inline-flex;
line-height: @input-helper-text-line-height;
}
&-has-error {
color: @light-input-error-text-color;
}
&-hidden {
display: none;
}
}
&-clear-btn {
.flex(row, center, center);
margin-right: @input-icon-space;
&-hidden {
display: none;
}
}
&-clear-icon {
color: @light-input-clear-icon-color;
}
&:not(:focus) {
~.@{input-prefix-cls}-suffix {
.@{input-prefix-cls}-clear-icon-display-mode-focus {
visibility: hidden;
}
}
}
&-status-success {
.flex(row, center, center);
padding-right: @input-padding;
&-icon {
color: @light-input-status-success-icon-color;
}
}
&-password-icon {
margin-right: @input-icon-space;
}
&-small {
.input-size(unset, @input-height-small);
}
&-medium {
.input-size(unset, @input-height-medium);
}
&-large {
.input-size(unset, @input-height-large);
}
&:hover,
&:focus,
&:focus-visible {
border-color: @light-input-hover-border-color;
&.@{input-prefix-cls}-status-error {
border-color: @light-input-status-error;
}
}
&-status-error {
border-color: @light-input-status-error;
}
&-disabled {
color: @light-input-disabled-color;
background-color: @light-input-disabled-background-color;
border: none;
}
&-affix-wrapper {
background-color: @light-input-background-color;
.flex(row, flex-start, center);
position: relative;
width: 100%;
border: @input-border-width solid @light-input-border-color;
border-radius: @input-border-radius;
margin: @input-margin 0px;
&-focused {
border-color: @light-input-hover-border-color;
}
.@{input-prefix-cls} {
border: none;
margin: 0;
}
.@{input-prefix-cls}-suffix {
.flex(row, center, center);
}
&-status-error {
border-color: @light-input-status-error;
}
&-disabled {
border: none;
color: @light-input-disabled-color;
background-color: @light-input-disabled-background-color;
.@{input-prefix-cls}-disabled {
background-color: transparent;
}
.@{input-prefix-cls}-suffix {
background-color: transparent;
}
}
&:hover,
&:focus,
&:focus-visible {
border-color: @light-input-hover-border-color;
&.@{input-prefix-cls}-affix-wrapper-status-error {
border-color: @light-input-status-error;
}
}
}
&-textarea {
resize: none;
padding: @input-padding;
font-family: inherit;
&::-webkit-resizer {
-webkit-appearance: none;
}
&-min-height {
min-height: @input-textarea-min-height;
}
&::-webkit-scrollbar {
display: none;
}
&-affix-wrapper {
align-items: flex-start;
padding: @input-padding 0;
.@{input-prefix-cls}-textarea {
padding-top: 0;
padding-bottom: 0;
}
}
~.@{input-prefix-cls}-suffix {
.@{input-prefix-cls}-show-count-suffix {
position: absolute;
bottom: @input-padding;
right: @input-padding;
}
}
&-has-show-count {
margin-bottom: 24px ;
}
}
&-otp {
position: relative;
box-sizing: border-box;
display: inline-flex;
justify-content: center;
align-items: center;
width: @input-otp-width;
height: @input-otp-height;
padding: @input-otp-padding;
font-weight: @input-otp-font-weight;
font-size: @input-otp-font-size;
line-height: @input-otp-line-height;
user-select: none;
&:hover,
&:focus,
&:focus-visible {
border-color: @light-input-border-color;
}
&-wrapper {
position: relative;
}
&-hidden-input {
position: absolute;
width: 100%;
opacity: 0;
height: 0;
}
&-list {
display: flex;
.@{input-prefix-cls}-otp:not(:last-child) {
margin-right: @input-otp-gap;
}
}
&-active {
border-color: @light-input-hover-border-color;
border-width: 2px;
&:hover,
&:focus,
&:focus-visible {
border-color: @light-input-hover-border-color;
}
}
&-cursor::after {
position: absolute;
content: "";
width: 1px;
background: @light-input-hover-border-color;
height: 32px;
animation: cursorAnimate 0.9s infinite;
}
&-dot {
width: 12px;
height: 12px;
border-radius: 50%;
background: @light-input-text-color;
}
}
}
.if-dark-theme( {
.@{input-prefix-cls} {
.input(true);
&-wrapper {
color: @dark-input-text-color;
}
&-affix-wrapper {
background-color: @dark-input-background-color;
.@{input-prefix-cls} {
border: none;
margin: 0;
}
&-focused {
border-color: @dark-input-hover-border-color;
}
&-status-error {
border-color: @dark-input-status-error;
}
&-disabled {
color: @dark-input-disabled-color;
background-color: @dark-input-disabled-background-color;
.@{input-prefix-cls}-disabled {
background-color: transparent;
}
.@{input-prefix-cls}-disabled {
background-color: transparent;
}
.@{input-prefix-cls}-suffix {
background-color: transparent;
}
}
}
&-suffix {
background-color: @dark-input-background-color;
}
&-helper-text {
color: @dark-input-helper-text-color;
&-has-error {
color: @dark-input-error-text-color;
}
}
&-clear-icon {
color: @dark-input-clear-icon-color;
}
&-status-success-icon {
color: @dark-input-status-success-icon-color;
}
&-status-error {
border-color: @dark-input-status-error;
}
&-disabled {
color: @dark-input-disabled-color;
background-color: @dark-input-disabled-background-color;
border: none;
}
&:hover,
&:focus,
&:focus-visible {
border-color: @dark-input-hover-border-color;
&.@{input-prefix-cls}-affix-wrapper-status-error {
border-color: @dark-input-status-error;
}
}
&:hover,
&:focus-visible {
~.@{input-prefix-cls}-suffix {
.@{input-prefix-cls}-status-success-icon {
color: @dark-input-status-success-icon-focus-visible-color;
}
}
}
&-otp {
width: @input-otp-width;
height: @input-otp-height;
padding: @input-otp-padding;
font-weight: @input-otp-font-weight;
font-size: @input-otp-font-size;
line-height: @input-otp-line-height;
&:hover,
&:focus,
&:focus-visible {
border-color: @dark-input-border-color;
}
&-active {
border-color: @dark-input-hover-border-color;
border-width: 2px;
&:hover,
&:focus,
&:focus-visible {
border-color: @dark-input-hover-border-color;
}
}
&-cursor::after {
background: @dark-input-hover-border-color;
}
&-dot {
background: @dark-input-text-color;
}
}
}
}
);