39 lines
1.1 KiB
SCSS
39 lines
1.1 KiB
SCSS
|
@use 'sass:math';
|
||
|
@use 'sass:map';
|
||
|
@use 'sass:meta';
|
||
|
@use '../../styles/settings';
|
||
|
@use '../../styles/tools';
|
||
|
@use './variables' as *;
|
||
|
|
||
|
@mixin button-sizes ($map: $button-sizes, $immediate: false) {
|
||
|
@each $sizeName, $multiplier in settings.$size-scales {
|
||
|
$size: map.get($map, 'font-size') + math.div(2 * $multiplier, 16);
|
||
|
$height: map.get($map, 'height') + (settings.$size-scale * $multiplier);
|
||
|
|
||
|
#{if($immediate, &, '')}.v-btn--size-#{$sizeName} {
|
||
|
--v-btn-size: #{$size};
|
||
|
--v-btn-height: #{$height};
|
||
|
font-size: var(--v-btn-size);
|
||
|
min-width: tools.roundEven($height * map.get($map, 'width-ratio'));
|
||
|
padding: 0 tools.roundEven(math.div($height, map.get($map, 'padding-ratio')));
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@mixin button-density ($properties, $densities) {
|
||
|
@each $density, $multiplier in $densities {
|
||
|
$value: calc(var(--v-btn-height) + #{$multiplier * settings.$spacer});
|
||
|
|
||
|
&.v-btn--density-#{$density} {
|
||
|
@if meta.type-of($properties) == "list" {
|
||
|
@each $property in $properties {
|
||
|
#{$property}: $value;
|
||
|
}
|
||
|
}
|
||
|
@else {
|
||
|
#{$properties}: $value;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|