|
5 | 5 | @use '@material/button/button-outlined-theme' as mdc-button-outlined-theme;
|
6 | 6 | @use '@material/elevation/elevation-theme' as mdc-elevation-theme;
|
7 | 7 |
|
8 |
| -@use './button-theme-private'; |
| 8 | +@use './button-base'; |
9 | 9 | @use '../core/mdc-helpers/mdc-helpers';
|
10 | 10 | @use '../core/theming/theming';
|
11 | 11 | @use '../core/theming/inspection';
|
| 12 | +@use '../core/tokens/token-utils'; |
12 | 13 | @use '../core/typography/typography';
|
13 | 14 | @use '../core/tokens/m2/mdc/filled-button' as tokens-mdc-filled-button;
|
| 15 | +@use '../core/tokens/m2/mat/filled-button' as tokens-mat-filled-button; |
14 | 16 | @use '../core/tokens/m2/mdc/outlined-button' as tokens-mdc-outlined-button;
|
| 17 | +@use '../core/tokens/m2/mat/outlined-button' as tokens-mat-outlined-button; |
15 | 18 | @use '../core/tokens/m2/mdc/protected-button' as tokens-mdc-protected-button;
|
| 19 | +@use '../core/tokens/m2/mat/protected-button' as tokens-mat-protected-button; |
16 | 20 | @use '../core/tokens/m2/mdc/text-button' as tokens-mdc-text-button;
|
| 21 | +@use '../core/tokens/m2/mat/text-button' as tokens-mat-text-button; |
17 | 22 |
|
18 |
| -@function _on-color($theme, $palette) { |
19 |
| - $is-dark: inspection.get-theme-type($theme) == dark; |
20 |
| - @return if(mdc-helpers.variable-safe-contrast-tone($palette, $is-dark) == 'dark', #000, #fff); |
| 23 | + |
| 24 | +@mixin _text-button-variant($theme, $palette) { |
| 25 | + $mdc-tokens: if($palette, |
| 26 | + tokens-mdc-text-button.private-get-color-palette-color-tokens($theme, $palette), |
| 27 | + tokens-mdc-text-button.get-color-tokens($theme) |
| 28 | + ); |
| 29 | + |
| 30 | + $mat-tokens: if($palette, |
| 31 | + tokens-mat-text-button.private-get-color-palette-color-tokens($theme, $palette), |
| 32 | + tokens-mat-text-button.get-color-tokens($theme) |
| 33 | + ); |
| 34 | + |
| 35 | + @include mdc-button-text-theme.theme($mdc-tokens); |
| 36 | + @include token-utils.create-token-values(tokens-mat-text-button.$prefix, $mat-tokens); |
21 | 37 | }
|
22 | 38 |
|
23 |
| -@mixin base($theme) { |
24 |
| - // TODO(mmalerba): Move button base tokens here |
| 39 | +@mixin _filled-button-variant($theme, $palette) { |
| 40 | + $mdc-tokens: if($palette, |
| 41 | + tokens-mdc-filled-button.private-get-color-palette-color-tokens($theme, $palette), |
| 42 | + tokens-mdc-filled-button.get-color-tokens($theme) |
| 43 | + ); |
| 44 | + |
| 45 | + $mat-tokens: if($palette, |
| 46 | + tokens-mat-filled-button.private-get-color-palette-color-tokens($theme, $palette), |
| 47 | + tokens-mat-filled-button.get-color-tokens($theme) |
| 48 | + ); |
| 49 | + |
| 50 | + @include mdc-button-filled-theme.theme($mdc-tokens); |
| 51 | + @include token-utils.create-token-values(tokens-mat-filled-button.$prefix, $mat-tokens); |
25 | 52 | }
|
26 | 53 |
|
27 |
| -@mixin color($theme) { |
28 |
| - $surface: inspection.get-theme-color($theme, background, card); |
29 |
| - $primary: inspection.get-theme-color($theme, primary); |
30 |
| - $accent: inspection.get-theme-color($theme, accent); |
31 |
| - $error: inspection.get-theme-color($theme, warn); |
| 54 | +@mixin _protected-button-variant($theme, $palette) { |
| 55 | + $mdc-tokens: if($palette, |
| 56 | + tokens-mdc-protected-button.private-get-color-palette-color-tokens($theme, $palette), |
| 57 | + tokens-mdc-protected-button.get-color-tokens($theme) |
| 58 | + ); |
32 | 59 |
|
33 |
| - $on-surface: _on-color($theme, $surface); |
34 |
| - $on-primary: _on-color($theme, $primary); |
35 |
| - $on-accent: _on-color($theme, $accent); |
36 |
| - $on-error: _on-color($theme, $error); |
| 60 | + $mat-tokens: if($palette, |
| 61 | + tokens-mat-protected-button.private-get-color-palette-color-tokens($theme, $palette), |
| 62 | + tokens-mat-protected-button.get-color-tokens($theme) |
| 63 | + ); |
37 | 64 |
|
38 |
| - // TODO: remove these when tokenizing the ripples. |
39 |
| - @include mdc-helpers.using-mdc-theme($theme) { |
40 |
| - // Ripple colors |
41 |
| - .mat-mdc-button, .mat-mdc-outlined-button { |
42 |
| - @include button-theme-private.ripple-theme-styles($theme, false); |
43 |
| - } |
| 65 | + @include mdc-button-protected-theme.theme($mdc-tokens); |
| 66 | + @include token-utils.create-token-values(tokens-mat-protected-button.$prefix, $mat-tokens); |
| 67 | +} |
44 | 68 |
|
45 |
| - .mat-mdc-raised-button, .mat-mdc-unelevated-button { |
46 |
| - @include button-theme-private.ripple-theme-styles($theme, true); |
47 |
| - } |
48 |
| - } |
| 69 | +@mixin _outlined-button-variant($theme, $palette) { |
| 70 | + $mdc-tokens: if($palette, |
| 71 | + tokens-mdc-outlined-button.private-get-color-palette-color-tokens($theme, $palette), |
| 72 | + tokens-mdc-outlined-button.get-color-tokens($theme) |
| 73 | + ); |
49 | 74 |
|
| 75 | + $mat-tokens: if($palette, |
| 76 | + tokens-mat-outlined-button.private-get-color-palette-color-tokens($theme, $palette), |
| 77 | + tokens-mat-outlined-button.get-color-tokens($theme) |
| 78 | + ); |
| 79 | + |
| 80 | + @include mdc-button-outlined-theme.theme($mdc-tokens); |
| 81 | + @include token-utils.create-token-values(tokens-mat-outlined-button.$prefix, $mat-tokens); |
| 82 | +} |
| 83 | + |
| 84 | +@mixin base($theme) { |
| 85 | + // TODO(mmalerba): Move button base tokens here |
| 86 | +} |
| 87 | + |
| 88 | +@mixin color($theme) { |
50 | 89 | .mat-mdc-button {
|
51 |
| - @include mdc-button-text-theme.theme(tokens-mdc-text-button.get-color-tokens($theme)); |
| 90 | + @include _text-button-variant($theme, null); |
52 | 91 |
|
53 | 92 | &.mat-primary {
|
54 |
| - @include mdc-button-text-theme.theme( |
55 |
| - tokens-mdc-text-button.private-get-color-palette-color-tokens($theme, primary)); |
| 93 | + @include _text-button-variant($theme, primary); |
56 | 94 | }
|
57 | 95 |
|
58 | 96 | &.mat-accent {
|
59 |
| - @include mdc-button-text-theme.theme( |
60 |
| - tokens-mdc-text-button.private-get-color-palette-color-tokens($theme, accent)); |
| 97 | + @include _text-button-variant($theme, accent); |
61 | 98 | }
|
62 | 99 |
|
63 | 100 | &.mat-warn {
|
64 |
| - @include mdc-button-text-theme.theme( |
65 |
| - tokens-mdc-text-button.private-get-color-palette-color-tokens($theme, warn)); |
| 101 | + @include _text-button-variant($theme, warn); |
66 | 102 | }
|
67 | 103 | }
|
68 | 104 |
|
69 | 105 | .mat-mdc-unelevated-button {
|
70 |
| - $default-color-tokens: tokens-mdc-filled-button.get-color-tokens($theme, $surface, $on-surface); |
71 |
| - $primary-color-tokens: tokens-mdc-filled-button.get-color-tokens($theme, $primary, $on-primary); |
72 |
| - $accent-color-tokens: tokens-mdc-filled-button.get-color-tokens($theme, $accent, $on-accent); |
73 |
| - $warn-color-tokens: tokens-mdc-filled-button.get-color-tokens($theme, $error, $on-error); |
74 |
| - |
75 |
| - &.mat-unthemed { |
76 |
| - @include mdc-button-filled-theme.theme($default-color-tokens); |
77 |
| - } |
| 106 | + @include _filled-button-variant($theme, null); |
78 | 107 |
|
79 | 108 | &.mat-primary {
|
80 |
| - @include mdc-button-filled-theme.theme($primary-color-tokens); |
| 109 | + @include _filled-button-variant($theme, primary); |
81 | 110 | }
|
82 | 111 |
|
83 | 112 | &.mat-accent {
|
84 |
| - @include mdc-button-filled-theme.theme($accent-color-tokens); |
| 113 | + @include _filled-button-variant($theme, accent); |
85 | 114 | }
|
86 | 115 |
|
87 | 116 | &.mat-warn {
|
88 |
| - @include mdc-button-filled-theme.theme($warn-color-tokens); |
| 117 | + @include _filled-button-variant($theme, warn); |
89 | 118 | }
|
90 | 119 | }
|
91 | 120 |
|
92 | 121 | .mat-mdc-raised-button {
|
93 |
| - $default-color-tokens: tokens-mdc-protected-button.get-color-tokens( |
94 |
| - $theme, |
95 |
| - $surface, |
96 |
| - $on-surface |
97 |
| - ); |
98 |
| - $primary-color-tokens: tokens-mdc-protected-button.get-color-tokens( |
99 |
| - $theme, |
100 |
| - $primary, |
101 |
| - $on-primary |
102 |
| - ); |
103 |
| - $accent-color-tokens: tokens-mdc-protected-button.get-color-tokens($theme, $accent, $on-accent); |
104 |
| - $warn-color-tokens: tokens-mdc-protected-button.get-color-tokens($theme, $error, $on-error); |
105 |
| - |
106 |
| - &.mat-unthemed { |
107 |
| - @include mdc-button-protected-theme.theme($default-color-tokens); |
108 |
| - } |
| 122 | + @include _protected-button-variant($theme, null); |
109 | 123 |
|
110 | 124 | &.mat-primary {
|
111 |
| - @include mdc-button-protected-theme.theme($primary-color-tokens); |
| 125 | + @include _protected-button-variant($theme, primary); |
112 | 126 | }
|
113 | 127 |
|
114 | 128 | &.mat-accent {
|
115 |
| - @include mdc-button-protected-theme.theme($accent-color-tokens); |
| 129 | + @include _protected-button-variant($theme, accent); |
116 | 130 | }
|
117 | 131 |
|
118 | 132 | &.mat-warn {
|
119 |
| - @include mdc-button-protected-theme.theme($warn-color-tokens); |
| 133 | + @include _protected-button-variant($theme, warn); |
120 | 134 | }
|
121 | 135 |
|
122 | 136 | // TODO(wagnermaciel): Remove this workaround when b/301126527 is resolved
|
|
134 | 148 | }
|
135 | 149 |
|
136 | 150 | .mat-mdc-outlined-button {
|
137 |
| - $default-color-tokens: tokens-mdc-outlined-button.get-color-tokens( |
138 |
| - $theme, |
139 |
| - $on-surface, |
140 |
| - $on-surface |
141 |
| - ); |
142 |
| - $primary-color-tokens: tokens-mdc-outlined-button.get-color-tokens( |
143 |
| - $theme, |
144 |
| - $primary, |
145 |
| - $on-primary |
146 |
| - ); |
147 |
| - $accent-color-tokens: tokens-mdc-outlined-button.get-color-tokens($theme, $accent, $on-accent); |
148 |
| - $warn-color-tokens: tokens-mdc-outlined-button.get-color-tokens($theme, $error, $on-error); |
149 |
| - |
150 |
| - &.mat-unthemed { |
151 |
| - @include mdc-button-outlined-theme.theme($default-color-tokens); |
152 |
| - } |
| 151 | + @include _outlined-button-variant($theme, null); |
153 | 152 |
|
154 | 153 | &.mat-primary {
|
155 |
| - @include mdc-button-outlined-theme.theme($primary-color-tokens); |
| 154 | + @include _outlined-button-variant($theme, primary); |
156 | 155 | }
|
157 | 156 |
|
158 | 157 | &.mat-accent {
|
159 |
| - @include mdc-button-outlined-theme.theme($accent-color-tokens); |
| 158 | + @include _outlined-button-variant($theme, accent); |
160 | 159 | }
|
161 | 160 |
|
162 | 161 | &.mat-warn {
|
163 |
| - @include mdc-button-outlined-theme.theme($warn-color-tokens); |
| 162 | + @include _outlined-button-variant($theme, warn); |
164 | 163 | }
|
165 | 164 | }
|
166 | 165 | }
|
|
177 | 176 | .mat-mdc-button {
|
178 | 177 | $density-tokens: tokens-mdc-text-button.get-density-tokens($theme);
|
179 | 178 | @include mdc-button-text-theme.theme($density-tokens);
|
180 |
| - @include button-theme-private.touch-target-density($density-scale); |
| 179 | + @include button-base.mat-private-button-touch-target-density($density-scale); |
181 | 180 | }
|
182 | 181 |
|
183 | 182 | .mat-mdc-raised-button {
|
184 | 183 | $density-tokens: tokens-mdc-protected-button.get-density-tokens($theme);
|
185 | 184 | @include mdc-button-protected-theme.theme($density-tokens);
|
186 |
| - @include button-theme-private.touch-target-density($density-scale); |
| 185 | + @include button-base.mat-private-button-touch-target-density($density-scale); |
187 | 186 | }
|
188 | 187 |
|
189 | 188 | .mat-mdc-unelevated-button {
|
190 | 189 | $density-tokens: tokens-mdc-filled-button.get-density-tokens($theme);
|
191 | 190 | @include mdc-button-filled-theme.theme($density-tokens);
|
192 |
| - @include button-theme-private.touch-target-density($density-scale); |
| 191 | + @include button-base.mat-private-button-touch-target-density($density-scale); |
193 | 192 | }
|
194 | 193 |
|
195 | 194 | .mat-mdc-outlined-button {
|
196 | 195 | $density-tokens: tokens-mdc-outlined-button.get-density-tokens($theme);
|
197 | 196 | @include mdc-button-outlined-theme.theme($density-tokens);
|
198 |
| - @include button-theme-private.touch-target-density($density-scale); |
| 197 | + @include button-base.mat-private-button-touch-target-density($density-scale); |
199 | 198 | }
|
200 | 199 | }
|
201 | 200 |
|
|
0 commit comments