|
1 | 1 | @use '@material/checkbox/checkbox' as mdc-checkbox;
|
2 | 2 | @use '@material/checkbox/checkbox-theme' as mdc-checkbox-theme;
|
3 |
| -@use '@material/ripple/ripple-theme' as mdc-ripple-theme; |
4 | 3 | @use '@material/form-field' as mdc-form-field;
|
5 | 4 | @use '@material/theme/theme-color' as mdc-theme-color;
|
6 | 5 | @use '@material/theme/theme';
|
7 | 6 | @use 'sass:map';
|
| 7 | +@use 'sass:color'; |
8 | 8 | @use '../mdc-helpers/mdc-helpers';
|
9 | 9 | @use '../../material/core/typography/typography';
|
10 | 10 | @use '../../material/core/theming/theming';
|
|
13 | 13 |
|
14 | 14 | // Mixin that includes the checkbox theme styles with a given palette.
|
15 | 15 | // By default, the MDC checkbox always uses the `secondary` palette.
|
16 |
| -@mixin private-checkbox-styles-with-color($color) { |
17 |
| - @include mdc-checkbox-theme.theme-deprecated( |
18 |
| - ( |
19 |
| - density-scale: null, |
20 |
| - checkmark-color: mdc-theme-color.prop-value(on-#{$color}), |
21 |
| - container-checked-color: $color, |
22 |
| - container-checked-hover-color: null, |
23 |
| - container-disabled-color: rgba(mdc-theme-color.prop-value(on-surface), 0.38), |
24 |
| - outline-color: rgba(mdc-theme-color.prop-value(on-surface), 0.54), |
25 |
| - outline-hover-color: null, |
26 |
| - ripple-color: mdc-theme-color.prop-value(on-surface), |
27 |
| - ripple-opacity: mdc-ripple-theme.$dark-ink-opacities, |
28 |
| - ripple-checked-color: $color, |
29 |
| - ripple-checked-opacity: mdc-ripple-theme.$dark-ink-opacities, |
30 |
| - ) |
31 |
| - ); |
| 16 | +@mixin private-checkbox-styles-with-color($color, $mdcColor) { |
| 17 | + $on-surface: mdc-theme-color.prop-value(on-surface); |
| 18 | + $border-color: rgba($on-surface, color.opacity(mdc-checkbox-theme.$border-color)); |
| 19 | + $disabled-color: rgba($on-surface, color.opacity(mdc-checkbox-theme.$disabled-color)); |
| 20 | + |
| 21 | + @include mdc-checkbox-theme.theme(( |
| 22 | + selected-checkmark-color: mdc-theme-color.prop-value(on-#{$mdcColor}), |
| 23 | + |
| 24 | + selected-focus-icon-color: $color, |
| 25 | + selected-hover-icon-color: $color, |
| 26 | + selected-hover-state-layer-color: $color, |
| 27 | + selected-icon-color: $color, |
| 28 | + selected-pressed-icon-color: $color, |
| 29 | + unselected-focus-icon-color: $color, |
| 30 | + unselected-hover-icon-color: $color, |
| 31 | + |
| 32 | + selected-focus-state-layer-color: $on-surface, |
| 33 | + selected-pressed-state-layer-color: $on-surface, |
| 34 | + unselected-focus-state-layer-color: $on-surface, |
| 35 | + unselected-hover-state-layer-color: $on-surface, |
| 36 | + unselected-pressed-state-layer-color: $on-surface, |
| 37 | + |
| 38 | + disabled-selected-icon-color: $disabled-color, |
| 39 | + disabled-unselected-icon-color: $disabled-color, |
| 40 | + |
| 41 | + unselected-icon-color: $border-color, |
| 42 | + unselected-pressed-icon-color: $border-color, |
| 43 | + )); |
32 | 44 | }
|
33 | 45 |
|
34 | 46 | // Apply ripple colors to the MatRipple element and the MDC ripple element when the
|
|
55 | 67 | $accent: theming.get-color-from-palette(map.get($config, accent));
|
56 | 68 | $warn: theming.get-color-from-palette(map.get($config, warn));
|
57 | 69 |
|
58 |
| - // Save original values of MDC global variables. We need to save these so we can restore the |
59 |
| - // variables to their original values and prevent unintended side effects from using this mixin. |
60 |
| - $orig-border-color: mdc-checkbox-theme.$border-color; |
61 |
| - $orig-disabled-color: mdc-checkbox-theme.$disabled-color; |
62 |
| - |
63 | 70 | @include mdc-helpers.mat-using-mdc-theme($config) {
|
64 |
| - mdc-checkbox-theme.$border-color: rgba( |
65 |
| - mdc-theme-color.prop-value(on-surface), |
66 |
| - 0.54 |
67 |
| - ); |
68 |
| - mdc-checkbox-theme.$disabled-color: rgba( |
69 |
| - mdc-theme-color.prop-value(on-surface), |
70 |
| - 0.26 |
71 |
| - ); |
72 |
| - |
73 | 71 | .mat-mdc-checkbox {
|
74 |
| - @include private-checkbox-styles-with-color(primary); |
75 | 72 | @include mdc-form-field.core-styles($query: mdc-helpers.$mat-theme-styles-query);
|
76 | 73 | @include ripple-theme.theme((
|
77 | 74 | foreground: (
|
|
87 | 84 | // class for accent and warn style, and applying the appropriate overrides below. Since we
|
88 | 85 | // don't use MDC's ripple, we also need to set the color for our replacement ripple.
|
89 | 86 | &.mat-primary {
|
90 |
| - @include private-checkbox-styles-with-color(primary); |
| 87 | + @include private-checkbox-styles-with-color($primary, primary); |
91 | 88 | @include _selected-ripple-colors($primary, primary);
|
92 | 89 | }
|
93 | 90 |
|
94 | 91 | &.mat-accent {
|
95 |
| - @include private-checkbox-styles-with-color(secondary); |
| 92 | + @include private-checkbox-styles-with-color($accent, secondary); |
96 | 93 | @include _selected-ripple-colors($accent, secondary);
|
97 | 94 | }
|
98 | 95 |
|
99 | 96 | &.mat-warn {
|
100 |
| - @include private-checkbox-styles-with-color(error); |
| 97 | + @include private-checkbox-styles-with-color($warn, error); |
101 | 98 | @include _selected-ripple-colors($warn, error);
|
102 | 99 | }
|
103 | 100 | }
|
104 | 101 | }
|
105 |
| - |
106 |
| - // Restore original values of MDC global variables. |
107 |
| - mdc-checkbox-theme.$border-color: $orig-border-color; |
108 |
| - mdc-checkbox-theme.$disabled-color: $orig-disabled-color; |
109 | 102 | }
|
110 | 103 |
|
111 | 104 | @mixin typography($config-or-theme) {
|
|
0 commit comments