material-components_materia.../button/lib/_elevated-button.scss
Elizabeth Mitchell eedb7f5d3c chore: replace * selector with :host
PiperOrigin-RevId: 493992896
2022-12-08 14:15:19 -08:00

58 lines
1.6 KiB
SCSS

//
// Copyright 2021 Google LLC
// SPDX-License-Identifier: Apache-2.0
//
@use 'sass:map';
@use '../../sass/resolvers';
@use '../../sass/theme';
@use '../../sass/typography';
@use '../../tokens';
@use './elevation';
@use './shared';
$_custom-property-prefix: 'elevated-button';
@mixin theme($tokens) {
$tokens: theme.validate-theme(
tokens.md-comp-elevated-button-values(),
$tokens
);
$tokens: _resolve-tokens($tokens);
$tokens: theme.create-theme-vars($tokens, $_custom-property-prefix);
@include theme.emit-theme-vars($tokens);
}
@mixin styles() {
$tokens: tokens.md-comp-elevated-button-values();
// TODO(b/198759625): Remove once spacing tokens are formally added
$tokens: map.set($tokens, 'spacing-leading', 24px);
$tokens: map.set($tokens, 'spacing-trailing', 24px);
$tokens: map.set($tokens, 'with-icon-spacing-leading', 16px);
$tokens: map.set($tokens, 'with-icon-spacing-trailing', 24px);
$tokens: map.set($tokens, 'with-trailing-icon-spacing-leading', 24px);
$tokens: map.set($tokens, 'with-trailing-icon-spacing-trailing', 16px);
$tokens: _resolve-tokens($tokens);
$tokens: theme.create-theme-vars($tokens, $_custom-property-prefix);
:host {
@each $token, $value in $tokens {
--_#{$token}: #{$value};
}
}
}
@function _resolve-tokens($tokens) {
$tokens: shared.flatten-disabled-colors($tokens);
$tokens: shared.remove-unsupported-tokens($tokens);
$tokens: typography.resolve-theme(
$tokens,
map.get(resolvers.$material, 'typography'),
'label-text'
);
@return elevation.resolve-tokens($tokens);
}