|
| 1 | +@use 'sass:map'; |
| 2 | +@use 'sass:color'; |
| 3 | +@use '@material/checkbox/checkbox-theme' as mdc-checkbox-theme; |
| 4 | +@use '@material/theme/theme-color' as mdc-theme-color; |
| 5 | + |
| 6 | +// Configuration used to define the theme-related CSS variables. |
| 7 | +$private-checkbox-theme-config: map.merge(mdc-checkbox-theme.$light-theme, ( |
| 8 | + // Exclude all of the ripple-related styles. |
| 9 | + selected-focus-state-layer-color: null, |
| 10 | + selected-focus-state-layer-opacity: null, |
| 11 | + selected-hover-state-layer-color: null, |
| 12 | + selected-hover-state-layer-opacity: null, |
| 13 | + selected-pressed-state-layer-color: null, |
| 14 | + selected-pressed-state-layer-opacity: null, |
| 15 | + unselected-focus-state-layer-color: null, |
| 16 | + unselected-focus-state-layer-opacity: null, |
| 17 | + unselected-hover-state-layer-color: null, |
| 18 | + unselected-hover-state-layer-opacity: null, |
| 19 | + unselected-pressed-state-layer-color: null, |
| 20 | + unselected-pressed-state-layer-opacity: null, |
| 21 | +)); |
| 22 | + |
| 23 | +// Mixin that includes the checkbox theme styles with a given palette. |
| 24 | +// By default, the MDC checkbox always uses the `secondary` palette. |
| 25 | +@mixin private-checkbox-styles-with-color($color, $mdc-color) { |
| 26 | + $on-surface: mdc-theme-color.prop-value(on-surface); |
| 27 | + $border-color: rgba($on-surface, color.opacity(mdc-checkbox-theme.$border-color)); |
| 28 | + $disabled-color: rgba($on-surface, color.opacity(mdc-checkbox-theme.$disabled-color)); |
| 29 | + |
| 30 | + @include mdc-checkbox-theme.theme(( |
| 31 | + selected-checkmark-color: mdc-theme-color.prop-value(on-#{$mdc-color}), |
| 32 | + |
| 33 | + selected-focus-icon-color: $color, |
| 34 | + selected-hover-icon-color: $color, |
| 35 | + selected-icon-color: $color, |
| 36 | + selected-pressed-icon-color: $color, |
| 37 | + unselected-focus-icon-color: $color, |
| 38 | + unselected-hover-icon-color: $color, |
| 39 | + |
| 40 | + disabled-selected-icon-color: $disabled-color, |
| 41 | + disabled-unselected-icon-color: $disabled-color, |
| 42 | + |
| 43 | + unselected-icon-color: $border-color, |
| 44 | + unselected-pressed-icon-color: $border-color, |
| 45 | + )); |
| 46 | +} |
0 commit comments