| 
11 | 11 |     }  | 
12 | 12 | 
 
  | 
13 | 13 |     .mat-slide-toggle-bar {  | 
14 |  | -      background-color: mat-color($palette, $thumb-checked-hue, 0.5);  | 
 | 14 | +      // Opacity is determined from the specs for the selection controls.  | 
 | 15 | +      // See: https://material.io/design/components/selection-controls.html#specs  | 
 | 16 | +      background-color: mat-color($palette, $thumb-checked-hue, 0.54);  | 
15 | 17 |     }  | 
16 |  | -  }  | 
17 |  | -}  | 
18 | 18 | 
 
  | 
19 |  | -// Applies the specified colors to the slide-toggle ripple elements.  | 
20 |  | -@mixin _mat-slide-toggle-ripple($palette, $ripple-unchecked-color, $ripple-checked-color) {  | 
21 |  | -  &:not(.mat-checked) .mat-ripple-element {  | 
22 |  | -    background-color: $ripple-unchecked-color;  | 
23 |  | -  }  | 
24 |  | -  .mat-ripple-element {  | 
25 |  | -    background-color: $ripple-checked-color;  | 
 | 19 | +    .mat-ripple-element {  | 
 | 20 | +      // Set no opacity for the ripples because the ripple opacity will be adjusted dynamically  | 
 | 21 | +      // based on the type of interaction with the slide-toggle (e.g. for hover, focus)  | 
 | 22 | +      background-color: mat-color($palette, $thumb-checked-hue);  | 
 | 23 | +    }  | 
26 | 24 |   }  | 
27 | 25 | }  | 
28 | 26 | 
 
  | 
 | 
34 | 32 |   $background: map-get($theme, background);  | 
35 | 33 |   $foreground: map-get($theme, foreground);  | 
36 | 34 | 
 
  | 
37 |  | -  // Color hues based on the specs, which prescribe different hues for dark and light themes  | 
38 |  | -  // https://material.google.com/components/selection-controls.html#selection-controls-switch  | 
39 |  | -  $thumb-normal-hue: if($is-dark, 400, 50);  | 
40 |  | -  $thumb-checked-hue: if($is-dark, 200, 500);  | 
 | 35 | +  // Color hues are based on the specs which briefly show the hues that are applied to a switch.  | 
 | 36 | +  // The 2018 specs no longer describe how dark switches should look like. Due to the lack of  | 
 | 37 | +  // information for dark themed switches, we keep the old behavior that is based on the previous  | 
 | 38 | +  // specifications. See: https://material.io/design/components/selection-controls.html#specs  | 
 | 39 | +  $thumb-unchecked-hue: if($is-dark, 400, 50);  | 
 | 40 | +  $thumb-checked-hue: if($is-dark, 200, default);  | 
41 | 41 |   $thumb-disabled-hue: if($is-dark, 800, 400);  | 
42 | 42 | 
 
  | 
43 |  | -  $bar-normal-color: mat-color($foreground, disabled);  | 
 | 43 | +  $bar-unchecked-color: mat-color($foreground, disabled);  | 
44 | 44 |   $bar-disabled-color: if($is-dark, rgba(white, 0.12), rgba(black, 0.1));  | 
45 | 45 | 
 
  | 
46 |  | -  // Ripple colors are based on the current palette and the state of the slide-toggle.  | 
47 |  | -  // See https://material.google.com/components/selection-controls.html#selection-controls-switch  | 
48 | 46 |   $ripple-unchecked-color: mat-color($foreground, base);  | 
49 |  | -  $ripple-primary-color: mat-color($primary, $thumb-checked-hue);  | 
50 |  | -  $ripple-accent-color: mat-color($accent, $thumb-checked-hue);  | 
51 |  | -  $ripple-warn-color: mat-color($warn, $thumb-checked-hue);  | 
52 | 47 | 
 
  | 
53 | 48 |   .mat-slide-toggle {  | 
54 | 49 |     @include _mat-slide-toggle-checked($accent, $thumb-checked-hue);  | 
55 |  | -    @include _mat-slide-toggle-ripple($accent, $ripple-unchecked-color, $ripple-accent-color);  | 
56 | 50 | 
 
  | 
57 | 51 |     &.mat-primary {  | 
58 | 52 |       @include _mat-slide-toggle-checked($primary, $thumb-checked-hue);  | 
59 |  | -      @include _mat-slide-toggle-ripple($accent, $ripple-unchecked-color, $ripple-primary-color);  | 
60 | 53 |     }  | 
61 | 54 | 
 
  | 
62 | 55 |     &.mat-warn {  | 
63 | 56 |       @include _mat-slide-toggle-checked($warn, $thumb-checked-hue);  | 
64 |  | -      @include _mat-slide-toggle-ripple($accent, $ripple-unchecked-color, $ripple-warn-color);  | 
65 | 57 |     }  | 
66 | 58 | 
 
  | 
 | 59 | +    &:not(.mat-checked) .mat-ripple-element {  | 
 | 60 | +      // Set no opacity for the ripples because the ripple opacity will be adjusted dynamically  | 
 | 61 | +      // based on the type of interaction with the slide-toggle (e.g. for hover, focus)  | 
 | 62 | +      background-color: $ripple-unchecked-color;  | 
 | 63 | +    }  | 
67 | 64 |   }  | 
68 | 65 | 
 
  | 
69 | 66 |   .mat-disabled {  | 
 | 
79 | 76 |   }  | 
80 | 77 | 
 
  | 
81 | 78 |   .mat-slide-toggle-thumb {  | 
82 |  | -    background-color: mat-color($mat-grey, $thumb-normal-hue);  | 
 | 79 | +    background-color: mat-color($mat-grey, $thumb-unchecked-hue);  | 
83 | 80 |   }  | 
84 | 81 | 
 
  | 
85 | 82 |   .mat-slide-toggle-bar {  | 
86 |  | -    background-color: $bar-normal-color;  | 
 | 83 | +    background-color: $bar-unchecked-color;  | 
87 | 84 |   }  | 
88 | 85 | }  | 
89 | 86 | 
 
  | 
 | 
0 commit comments