@@ -43,25 +43,30 @@ $prefix: 'mat-elevation-z';
43
43
@else {
44
44
// Copied from @material/elevation/_elevation-theme.scss#_box-shadow
45
45
// TODO(mmalerba): Add support for graceful handling of CSS var color to MDC.
46
- $shadow-color :
47
- if (meta .type-of ($color ) == color and $opacity != null , rgba ($color , $opacity ), $color );
48
46
$umbra-z-value : map .get (mdc-elevation .$umbra-map , $zValue );
49
47
$penumbra-z-value : map .get (mdc-elevation .$penumbra-map , $zValue );
50
48
$ambient-z-value : map .get (mdc-elevation .$ambient-map , $zValue );
49
+
50
+ $color-opacity : if ($opacity != null , $opacity , 1 );
51
+ $umbra-color : _compute-color-opacity ($color , mdc-elevation .$umbra-opacity * $color-opacity );
52
+ $penumbra-color :
53
+ _compute-color-opacity ($color , mdc-elevation .$penumbra-opacity * $color-opacity );
54
+ $ambient-color : _compute-color-opacity ($color , mdc-elevation .$ambient-opacity * $color-opacity );
55
+
51
56
$box-shadow : (
52
- #{' #{$umbra-z-value } #{$shadow -color } ' } ,
53
- #{' #{$penumbra-z-value } #{$shadow -color } ' } ,
54
- #{$ambient-z-value } $shadow -color
57
+ #{' #{$umbra-z-value } #{$umbra -color } ' } ,
58
+ #{' #{$penumbra-z-value } #{$penumbra -color } ' } ,
59
+ #{$ambient-z-value } $ambient -color
55
60
);
56
61
@include mdc-elevation .shadow ($box-shadow );
57
62
}
58
63
}
59
64
60
65
// Applies the elevation to an element in a manner that allows
61
66
// consumers to override it via the Material elevation classes.
62
- @mixin overridable-elevation ($zValue , $color : $color ) {
67
+ @mixin overridable-elevation ($zValue , $color : $color , $opacity : null ) {
63
68
& :not ([class *= ' #{$prefix}' ]) {
64
- @include elevation ($zValue , $color );
69
+ @include elevation ($zValue , $color , $opacity );
65
70
}
66
71
}
67
72
@@ -89,3 +94,12 @@ $prefix: 'mat-elevation-z';
89
94
$easing : $transition-timing-function ) {
90
95
transition : private-transition-property-value ($duration , $easing );
91
96
}
97
+
98
+ @function _compute-color-opacity ($color , $opacity ) {
99
+ @if meta .type-of ($color ) == color and $opacity != null {
100
+ @return rgba ($color , $opacity );
101
+ }
102
+ @else {
103
+ @return $color ;
104
+ }
105
+ }
0 commit comments