|
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