Skip to content

Commit 5c82297

Browse files
authored
refactor(material/button): switch flat-button to density tokens (#27797)
1 parent 91e90a8 commit 5c82297

File tree

3 files changed

+29
-6
lines changed

3 files changed

+29
-6
lines changed

src/material/button/_button-theme.scss

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,8 +236,13 @@
236236
@include button-theme-private.touch-target-density($density-scale);
237237
}
238238

239+
.mat-mdc-unelevated-button {
240+
$density-tokens: tokens-mdc-button-filled.get-density-tokens($theme);
241+
@include mdc-button-filled-theme.theme($density-tokens);
242+
@include button-theme-private.touch-target-density($density-scale);
243+
}
244+
239245
.mat-mdc-button,
240-
.mat-mdc-unelevated-button,
241246
.mat-mdc-outlined-button {
242247
// Use `mat-mdc-button-base` to increase the specificity over the button's structural styles.
243248
&.mat-mdc-button-base {

src/material/core/tokens/m2/mdc/_button-filled.scss

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1+
@use 'sass:map';
12
@use '../../token-utils';
23
@use '../../../mdc-helpers/mdc-helpers';
34
@use '../../../style/sass-utils';
45
@use '../../../theming/inspection';
6+
@use '../../../theming/theming';
57

68
// The prefix used to generate the fully qualified name for tokens in this file.
79
$prefix: (mdc, button-filled);
@@ -14,15 +16,16 @@ $prefix: (mdc, button-filled);
1416
// our CSS.
1517
@function get-unthemable-tokens() {
1618
@return (
17-
container-elevation: 0,
18-
container-height: 36px,
1919
container-shape: 4px,
20+
container-elevation: 0,
2021
disabled-container-elevation: 0,
2122
focus-container-elevation: 0,
2223
hover-container-elevation: 0,
2324
keep-touch-target: false,
2425
pressed-container-elevation: 0,
2526

27+
focus-ring-color: null,
28+
focus-ring-offset: null,
2629
focus-state-layer-opacity: null,
2730
hover-state-layer-opacity: null,
2831
pressed-state-layer-opacity: null,
@@ -77,7 +80,20 @@ $prefix: (mdc, button-filled);
7780

7881
// Tokens that can be configured through Angular Material's density theming API.
7982
@function get-density-tokens($theme) {
80-
@return ();
83+
$scale: theming.clamp-density(inspection.get-theme-density($theme), -3);
84+
85+
@return (
86+
container-height:
87+
map.get(
88+
(
89+
0: 36px,
90+
-1: 32px,
91+
-2: 28px,
92+
-3: 24px,
93+
),
94+
$scale
95+
)
96+
);
8197
}
8298

8399
// Combines the tokens generated by the above functions into a single map with placeholder values.

src/material/core/tokens/tests/test-validate-tokens.scss

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
@use 'sass:map';
33

44
@use '@material/button/button-protected-theme' as mdc-button-protected-theme;
5+
@use '@material/button/button-filled-theme' as mdc-button-filled-theme;
56
@use '@material/card/elevated-card-theme' as mdc-elevated-card-theme;
67
@use '@material/card/outlined-card-theme' as mdc-outlined-card-theme;
78
@use '@material/checkbox/checkbox-theme' as mdc-checkbox-theme;
@@ -25,6 +26,7 @@
2526
@use '@material/theme/validate' as mdc-validate;
2627

2728
@use '../m2/mdc/button-protected' as tokens-mdc-button-protected;
29+
@use '../m2/mdc/button-filled' as tokens-mdc-button-filled;
2830
@use '../m2/mdc/circular-progress' as tokens-mdc-circular-progress;
2931
@use '../m2/mdc/linear-progress' as tokens-mdc-linear-progress;
3032
@use '../m2/mdc/elevated-card' as tokens-mdc-elevated-card;
@@ -160,8 +162,8 @@
160162
);
161163
@include validate-slots(
162164
$component: 'm2.mdc.button-filled',
163-
$slots: tokens-mdc-extended-fab.get-token-slots(),
164-
$reference: mdc-extended-fab-theme.$extended-light-theme
165+
$slots: tokens-mdc-button-filled.get-token-slots(),
166+
$reference: mdc-button-filled-theme.$light-theme
165167
);
166168
@include validate-slots(
167169
$component: 'm2.mdc.button-protected',

0 commit comments

Comments
 (0)