Files
dsProject/dsBase/WebRoot/html/cdn/theme-chalk/src/input-number.scss

170 lines
3.9 KiB
SCSS
Raw Normal View History

2025-08-14 15:45:08 +08:00
@use 'sass:math';
@use 'sass:map';
@use 'mixins/mixins' as *;
@use 'common/var' as *;
@include b(input-number) {
position: relative;
display: inline-block;
width: map.get($input-number-width, 'default');
line-height: #{map.get($input-height, 'default') - 2};
.#{$namespace}-input {
display: block;
&__inner {
-webkit-appearance: none;
-moz-appearance: textfield;
&::-webkit-inner-spin-button,
&::-webkit-outer-spin-button {
margin: 0;
-webkit-appearance: none;
}
padding-left: #{map.get($input-height, 'default') + 10};
padding-right: #{map.get($input-height, 'default') + 10};
text-align: center;
}
}
@include e((increase, decrease)) {
display: flex;
justify-content: center;
align-items: center;
height: auto;
position: absolute;
z-index: 1;
top: 1px;
bottom: 1px;
width: map.get($input-height, 'default');
background: var(--el-bg-color);
color: var(--el-text-color-regular);
cursor: pointer;
font-size: 13px;
user-select: none;
&:hover {
color: var(--el-color-primary);
& ~ .#{$namespace}-input:not(.is-disabled) .#{$namespace}-input__inner {
border-color: var(
--el-input-focus-border,
map.get($input, 'focus-border')
);
}
}
&.is-disabled {
color: var(--el-disabled-text-color);
cursor: not-allowed;
}
}
@include e(increase) {
right: 1px;
border-radius: 0 var(--el-border-radius-base) var(--el-border-radius-base) 0;
border-left: var(--el-border-base);
}
@include e(decrease) {
left: 1px;
border-radius: var(--el-border-radius-base) 0 0 var(--el-border-radius-base);
border-right: var(--el-border-base);
}
@include when(disabled) {
@include e((increase, decrease)) {
border-color: var(--el-disabled-border-color);
color: var(--el-disabled-border-color);
&:hover {
color: var(--el-disabled-border-color);
cursor: not-allowed;
}
}
}
@each $size in (large, small) {
@include m($size) {
width: map.get($input-number-width, $size);
line-height: #{map.get($input-height, $size) - 2};
@include e((increase, decrease)) {
width: map.get($input-height, $size);
font-size: map.get($input-font-size, $size);
}
.#{$namespace}-input__inner {
padding-left: #{map.get($input-height, $size) + 7};
padding-right: #{map.get($input-height, $size) + 7};
}
}
}
@include m(small) {
@include e((increase, decrease)) {
[class*='#{$namespace}-icon'] {
transform: scale(0.9);
}
}
}
@include when(without-controls) {
.#{$namespace}-input__inner {
padding-left: 15px;
padding-right: 15px;
}
}
@include when(controls-right) {
.#{$namespace}-input__inner {
padding-left: 15px;
padding-right: #{map.get($input-height, 'default') + 10};
}
@include e((increase, decrease)) {
--el-input-number-controls-height: #{math.div(
map.get($input-height, 'default') - 2,
2
)};
height: var(--el-input-number-controls-height);
line-height: var(--el-input-number-controls-height);
[class*='#{$namespace}-icon'] {
transform: scale(0.8);
}
}
@include e(increase) {
bottom: auto;
left: auto;
border-radius: 0 var(--el-border-radius-base) 0 0;
border-bottom: var(--el-border-base);
}
@include e(decrease) {
right: 1px;
top: auto;
left: auto;
border-right: none;
border-left: var(--el-border-base);
border-radius: 0 0 var(--el-border-radius-base) 0;
}
@each $size in (large, small) {
&[class*='#{$size}'] {
[class*='increase'],
[class*='decrease'] {
--el-input-number-controls-height: #{math.div(
map.get($input-height, $size) - 2,
2
)};
}
}
}
}
}