Vulture/VApp/node_modules/vuetify/lib/components/VBtn/_mixins.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;
}
}
}
}