You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
186 lines
4.4 KiB
186 lines
4.4 KiB
@use 'sass:math'; |
|
@use 'sass:map'; |
|
|
|
@use 'mixins/mixins' as *; |
|
@use 'common/var' as *; |
|
|
|
@include b(input-number) { |
|
position: relative; |
|
display: inline-flex; |
|
width: map.get($input-number-width, 'default'); |
|
line-height: #{map.get($input-height, 'default') - 2}; |
|
vertical-align: middle; |
|
|
|
.#{$namespace}-input { |
|
&__wrapper { |
|
padding-left: #{map.get($input-height, 'default') + 10}; |
|
padding-right: #{map.get($input-height, 'default') + 10}; |
|
} |
|
|
|
&__inner { |
|
-webkit-appearance: none; |
|
-moz-appearance: textfield; |
|
text-align: center; |
|
line-height: 1; |
|
&::-webkit-inner-spin-button, |
|
&::-webkit-outer-spin-button { |
|
margin: 0; |
|
-webkit-appearance: none; |
|
} |
|
} |
|
} |
|
|
|
@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: getCssVar('fill-color', 'light'); |
|
color: getCssVar('text-color', 'regular'); |
|
cursor: pointer; |
|
font-size: 13px; |
|
user-select: none; |
|
|
|
&:hover { |
|
color: getCssVar('color-primary'); |
|
|
|
& ~ .#{$namespace}-input:not(.is-disabled) .#{$namespace}-input__wrapper { |
|
box-shadow: 0 0 0 1px |
|
var( |
|
#{getCssVarName('input', 'focus-border-color')}, |
|
map.get($input, 'focus-border-color') |
|
) |
|
inset; |
|
} |
|
} |
|
|
|
&.is-disabled { |
|
color: getCssVar('disabled-text-color'); |
|
cursor: not-allowed; |
|
} |
|
} |
|
|
|
@include e(increase) { |
|
right: 1px; |
|
border-radius: 0 getCssVar('border-radius-base') |
|
getCssVar('border-radius-base') 0; |
|
border-left: getCssVar('border'); |
|
} |
|
|
|
@include e(decrease) { |
|
left: 1px; |
|
border-radius: getCssVar('border-radius-base') 0 0 |
|
getCssVar('border-radius-base'); |
|
border-right: getCssVar('border'); |
|
} |
|
|
|
@include when(disabled) { |
|
@include e((increase, decrease)) { |
|
border-color: getCssVar('disabled-border-color'); |
|
color: getCssVar('disabled-border-color'); |
|
|
|
&:hover { |
|
color: getCssVar('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); |
|
} |
|
|
|
@include when(controls-right) { |
|
.#{$namespace}-input--#{$size} { |
|
.#{$namespace}-input__wrapper { |
|
padding-right: #{map.get($input-height, $size) + 7}; |
|
} |
|
} |
|
} |
|
|
|
.#{$namespace}-input--#{$size} { |
|
.#{$namespace}-input__wrapper { |
|
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__wrapper { |
|
padding-left: 15px; |
|
padding-right: 15px; |
|
} |
|
} |
|
|
|
@include when(controls-right) { |
|
.#{$namespace}-input__wrapper { |
|
padding-left: 15px; |
|
padding-right: #{map.get($input-height, 'default') + 10}; |
|
} |
|
|
|
@include e((increase, decrease)) { |
|
@include set-css-var-value( |
|
('input', 'number-controls-height'), |
|
math.div(map.get($input-height, 'default') - 2, 2) |
|
); |
|
|
|
height: getCssVar('input-number-controls-height'); |
|
line-height: getCssVar('input-number-controls-height'); |
|
|
|
[class*='#{$namespace}-icon'] { |
|
transform: scale(0.8); |
|
} |
|
} |
|
|
|
@include e(increase) { |
|
bottom: auto; |
|
left: auto; |
|
border-radius: 0 getCssVar('border-radius-base') 0 0; |
|
border-bottom: getCssVar('border'); |
|
} |
|
|
|
@include e(decrease) { |
|
right: 1px; |
|
top: auto; |
|
left: auto; |
|
border-right: none; |
|
border-left: getCssVar('border'); |
|
border-radius: 0 0 getCssVar('border-radius-base') 0; |
|
} |
|
|
|
@each $size in (large, small) { |
|
&[class*='#{$size}'] { |
|
[class*='increase'], |
|
[class*='decrease'] { |
|
@include set-css-var-value( |
|
('input', 'number-controls-height'), |
|
math.div(map.get($input-height, $size) - 2, 2) |
|
); |
|
} |
|
} |
|
} |
|
} |
|
}
|
|
|