|
4 | 4 | @use '@material/theme/theme-color' as mdc-theme-color; |
5 | 5 | @use '@material/theme/theme'; |
6 | 6 | @use 'sass:map'; |
| 7 | +@use 'sass:color'; |
7 | 8 | @use '../mdc-helpers/mdc-helpers'; |
8 | 9 | @use '../../material/core/typography/typography'; |
9 | 10 | @use '../../material/core/theming/theming'; |
|
12 | 13 |
|
13 | 14 | // Mixin that includes the checkbox theme styles with a given palette. |
14 | 15 | // By default, the MDC checkbox always uses the `secondary` palette. |
15 | | -@mixin private-checkbox-styles-with-color($color) { |
16 | | - @include mdc-checkbox-theme.theme-deprecated( |
17 | | - ( |
18 | | - checkmark-color: mdc-theme-color.prop-value(on-#{$color}), |
19 | | - container-checked-color: $color, |
20 | | - container-disabled-color: rgba(mdc-theme-color.prop-value(on-surface), 0.38), |
21 | | - outline-color: rgba(mdc-theme-color.prop-value(on-surface), 0.54), |
22 | | - ) |
23 | | - ); |
| 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 | + )); |
24 | 44 | } |
25 | 45 |
|
26 | 46 | // Apply ripple colors to the MatRipple element and the MDC ripple element when the |
|
47 | 67 | $accent: theming.get-color-from-palette(map.get($config, accent)); |
48 | 68 | $warn: theming.get-color-from-palette(map.get($config, warn)); |
49 | 69 |
|
50 | | - // Save original values of MDC global variables. We need to save these so we can restore the |
51 | | - // variables to their original values and prevent unintended side effects from using this mixin. |
52 | | - $orig-border-color: mdc-checkbox-theme.$border-color; |
53 | | - $orig-disabled-color: mdc-checkbox-theme.$disabled-color; |
54 | | - |
55 | 70 | @include mdc-helpers.mat-using-mdc-theme($config) { |
56 | | - mdc-checkbox-theme.$border-color: rgba( |
57 | | - mdc-theme-color.prop-value(on-surface), |
58 | | - 0.54 |
59 | | - ); |
60 | | - mdc-checkbox-theme.$disabled-color: rgba( |
61 | | - mdc-theme-color.prop-value(on-surface), |
62 | | - 0.26 |
63 | | - ); |
64 | | - |
65 | 71 | .mat-mdc-checkbox { |
66 | 72 | @include mdc-form-field.core-styles($query: mdc-helpers.$mat-theme-styles-query); |
67 | 73 | @include ripple-theme.color(( |
|
78 | 84 | // class for accent and warn style, and applying the appropriate overrides below. Since we |
79 | 85 | // don't use MDC's ripple, we also need to set the color for our replacement ripple. |
80 | 86 | &.mat-primary { |
81 | | - @include private-checkbox-styles-with-color(primary); |
| 87 | + @include private-checkbox-styles-with-color($primary, primary); |
82 | 88 | @include _selected-ripple-colors($primary, primary); |
83 | 89 | } |
84 | 90 |
|
85 | 91 | &.mat-accent { |
86 | | - @include private-checkbox-styles-with-color(secondary); |
| 92 | + @include private-checkbox-styles-with-color($accent, secondary); |
87 | 93 | @include _selected-ripple-colors($accent, secondary); |
88 | 94 | } |
89 | 95 |
|
90 | 96 | &.mat-warn { |
91 | | - @include private-checkbox-styles-with-color(error); |
| 97 | + @include private-checkbox-styles-with-color($warn, error); |
92 | 98 | @include _selected-ripple-colors($warn, error); |
93 | 99 | } |
94 | 100 | } |
95 | 101 | } |
96 | | - |
97 | | - // Restore original values of MDC global variables. |
98 | | - mdc-checkbox-theme.$border-color: $orig-border-color; |
99 | | - mdc-checkbox-theme.$disabled-color: $orig-disabled-color; |
100 | 102 | } |
101 | 103 |
|
102 | 104 | @mixin typography($config-or-theme) { |
|
0 commit comments