Skip to content

Commit 0a8df79

Browse files
committed
refactor(material/button): switch flat-button to density tokens
1 parent 48a988a commit 0a8df79

File tree

3 files changed

+26
-6
lines changed

3 files changed

+26
-6
lines changed

src/material/button/_button-theme.scss

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,9 +207,13 @@
207207
@mixin density($theme) {
208208
$density-scale: theming.clamp-density(inspection.get-theme-density($theme), -3);
209209

210+
.mat-mdc-unelevated-button {
211+
$density-tokens: tokens-mdc-button-filled.get-density-tokens($theme);
212+
@include mdc-button-filled-theme.theme($density-tokens);
213+
}
214+
210215
.mat-mdc-button,
211216
.mat-mdc-raised-button,
212-
.mat-mdc-unelevated-button,
213217
.mat-mdc-outlined-button {
214218
// Use `mat-mdc-button-base` to increase the specificity over the button's structural styles.
215219
&.mat-mdc-button-base {

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

Lines changed: 17 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);
@@ -15,8 +17,6 @@ $prefix: (mdc, button-filled);
1517
@function get-unthemable-tokens() {
1618
@return (
1719
container-elevation: 0,
18-
container-height: 36px,
19-
container-shape: 4px,
2020
disabled-container-elevation: 0,
2121
focus-container-elevation: 0,
2222
hover-container-elevation: 0,
@@ -77,7 +77,21 @@ $prefix: (mdc, button-filled);
7777

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

8397
// 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
@@ -1,6 +1,7 @@
11
@use 'sass:list';
22
@use 'sass:map';
33

4+
@use '@material/button/button-filled-theme' as mdc-button-filled-theme;
45
@use '@material/card/elevated-card-theme' as mdc-elevated-card-theme;
56
@use '@material/card/outlined-card-theme' as mdc-outlined-card-theme;
67
@use '@material/checkbox/checkbox-theme' as mdc-checkbox-theme;
@@ -23,6 +24,7 @@
2324
@use '@material/textfield/outlined-text-field-theme' as mdc-outlined-text-field-theme;
2425
@use '@material/theme/validate' as mdc-validate;
2526

27+
@use '../m2/mdc/button-filled' as tokens-mdc-button-filled;
2628
@use '../m2/mdc/circular-progress' as tokens-mdc-circular-progress;
2729
@use '../m2/mdc/linear-progress' as tokens-mdc-linear-progress;
2830
@use '../m2/mdc/elevated-card' as tokens-mdc-elevated-card;
@@ -158,6 +160,6 @@
158160
);
159161
@include validate-slots(
160162
$component: 'm2.mdc.button-filled',
161-
$slots: tokens-mdc-extended-fab.get-token-slots(),
162-
$reference: mdc-extended-fab-theme.$extended-light-theme
163+
$slots: tokens-mdc-button-filled.get-token-slots(),
164+
$reference: mdc-button-filled-theme.$light-theme
163165
);

0 commit comments

Comments
 (0)