winbox-ui-next
Version:
We Design Vue 2.0: A Vue.js 3 UI Library
146 lines (122 loc) • 3.45 kB
text/less
@import './token.less';
@import '../../input/style/token.less';
@input-prefix-cls: ~'@{prefix}-input';
@input-number-prefix-cls: ~'@{prefix}-input-number';
.@{input-number-prefix-cls} {
position: relative;
box-sizing: border-box;
//display: inline-block;
width: 100%;
border-radius: @input-number-border-radius;
.transition() {
transition: all @transition-duration-1 @transition-timing-function-linear;
}
&-step-button {
display: flex;
align-items: center;
justify-content: center;
box-sizing: border-box;
padding: 0;
color: @input-number-step-button-color;
background-color: @input-number-step-button-color-bg_default;
cursor: pointer;
user-select: none;
.transition();
&:hover {
background-color: @input-number-step-button-color-bg_default_hover;
border-color: $background-color;
}
&:active {
background-color: @input-number-step-button-color-bg_default_active;
border-color: $background-color;
}
&:disabled {
color: @input-number-step-button-color_disabled;
cursor: not-allowed;
&:hover,
&:active {
border-color: @input-number-step-button-color-border;
}
}
}
&-prefix,
&-suffix {
.transition();
}
// embed mode
&-mode-embed {
.@{input-number-prefix-cls}-step {
position: absolute;
top: 0;
right: 0;
bottom: 0;
width: 30px;
overflow: hidden;
border-radius: @input-number-step-layer-border-radius;
opacity: 0;
.transition();
.@{input-number-prefix-cls}-step-button {
width: 100%;
height: 50%;
margin: 0;
padding: 0;
font-size: 10px;
border: 1px solid @input-number-step-button-color-border; //自定义边框
outline: none;
&:last-child {
border-color: @input-number-step-button-color-border;
}
// &:hover {
// color: @input-number-step-button-hover-color;
// }
}
}
.@{input-prefix-cls}-suffix {
min-width: 10px;
}
&:not(.@{input-prefix-cls}-outer-disabled):hover
.@{input-number-prefix-cls}-step {
opacity: 1;
& ~ .@{input-prefix-cls}-suffix {
opacity: 0;
pointer-events: none;
}
}
// 修正 InputNumber 未激活 hover 时 StepButton 的 hover 背景色
&.@{input-prefix-cls}-wrapper:not(.@{input-prefix-cls}-focus) {
.@{input-number-prefix-cls}-step-button:not(.@{input-number-prefix-cls}-step-button-disabled):hover {
background-color: @input-number-step-button-color-bg_default_active;
}
}
&.@{input-prefix-cls}-disabled {
.@{input-number-prefix-cls}-step-button {
background-color: @input-number-step-button-color-bg_disabled;
&:active,
&:hover {
color: @input-number-step-button-color_disabled;
}
}
}
}
// button mode
&-mode-button {
.@{input-prefix-cls} {
text-align: center;
&-prepend,
&-append {
padding: 0;
border: none;
}
&-prepend .@{input-number-prefix-cls}-step-button {
border-right: 0;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
&-append .@{input-number-prefix-cls}-step-button {
border-left: 0;
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
}
}
}