1 | @import 'variables';
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 |
|
27 |
|
28 |
|
29 |
|
30 |
|
31 | $_umbra-color: rgba(black, 0.2);
|
32 | $_penumbra-color: rgba(black, 0.14);
|
33 | $_ambient-color: rgba(black, 0.12);
|
34 |
|
35 |
|
36 |
|
37 |
|
38 |
|
39 | $_umbra-elevation-map: (
|
40 | 0: '0px 0px 0px 0px #{$_umbra-color}',
|
41 | 1: '0px 2px 1px -1px #{$_umbra-color}',
|
42 | 2: '0px 3px 1px -2px #{$_umbra-color}',
|
43 | 3: '0px 3px 3px -2px #{$_umbra-color}',
|
44 | 4: '0px 2px 4px -1px #{$_umbra-color}',
|
45 | 5: '0px 3px 5px -1px #{$_umbra-color}',
|
46 | 6: '0px 3px 5px -1px #{$_umbra-color}',
|
47 | 7: '0px 4px 5px -2px #{$_umbra-color}',
|
48 | 8: '0px 5px 5px -3px #{$_umbra-color}',
|
49 | 9: '0px 5px 6px -3px #{$_umbra-color}',
|
50 | 10: '0px 6px 6px -3px #{$_umbra-color}',
|
51 | 11: '0px 6px 7px -4px #{$_umbra-color}',
|
52 | 12: '0px 7px 8px -4px #{$_umbra-color}',
|
53 | 13: '0px 7px 8px -4px #{$_umbra-color}',
|
54 | 14: '0px 7px 9px -4px #{$_umbra-color}',
|
55 | 15: '0px 8px 9px -5px #{$_umbra-color}',
|
56 | 16: '0px 8px 10px -5px #{$_umbra-color}',
|
57 | 17: '0px 8px 11px -5px #{$_umbra-color}',
|
58 | 18: '0px 9px 11px -5px #{$_umbra-color}',
|
59 | 19: '0px 9px 12px -6px #{$_umbra-color}',
|
60 | 20: '0px 10px 13px -6px #{$_umbra-color}',
|
61 | 21: '0px 10px 13px -6px #{$_umbra-color}',
|
62 | 22: '0px 10px 14px -6px #{$_umbra-color}',
|
63 | 23: '0px 11px 14px -7px #{$_umbra-color}',
|
64 | 24: '0px 11px 15px -7px #{$_umbra-color}'
|
65 | );
|
66 |
|
67 | $_penumbra-elevation-map: (
|
68 | 0: '0px 0px 0px 0px #{$_penumbra-color}',
|
69 | 1: '0px 1px 1px 0px #{$_penumbra-color}',
|
70 | 2: '0px 2px 2px 0px #{$_penumbra-color}',
|
71 | 3: '0px 3px 4px 0px #{$_penumbra-color}',
|
72 | 4: '0px 4px 5px 0px #{$_penumbra-color}',
|
73 | 5: '0px 5px 8px 0px #{$_penumbra-color}',
|
74 | 6: '0px 6px 10px 0px #{$_penumbra-color}',
|
75 | 7: '0px 7px 10px 1px #{$_penumbra-color}',
|
76 | 8: '0px 8px 10px 1px #{$_penumbra-color}',
|
77 | 9: '0px 9px 12px 1px #{$_penumbra-color}',
|
78 | 10: '0px 10px 14px 1px #{$_penumbra-color}',
|
79 | 11: '0px 11px 15px 1px #{$_penumbra-color}',
|
80 | 12: '0px 12px 17px 2px #{$_penumbra-color}',
|
81 | 13: '0px 13px 19px 2px #{$_penumbra-color}',
|
82 | 14: '0px 14px 21px 2px #{$_penumbra-color}',
|
83 | 15: '0px 15px 22px 2px #{$_penumbra-color}',
|
84 | 16: '0px 16px 24px 2px #{$_penumbra-color}',
|
85 | 17: '0px 17px 26px 2px #{$_penumbra-color}',
|
86 | 18: '0px 18px 28px 2px #{$_penumbra-color}',
|
87 | 19: '0px 19px 29px 2px #{$_penumbra-color}',
|
88 | 20: '0px 20px 31px 3px #{$_penumbra-color}',
|
89 | 21: '0px 21px 33px 3px #{$_penumbra-color}',
|
90 | 22: '0px 22px 35px 3px #{$_penumbra-color}',
|
91 | 23: '0px 23px 36px 3px #{$_penumbra-color}',
|
92 | 24: '0px 24px 38px 3px #{$_penumbra-color}'
|
93 | );
|
94 |
|
95 | $_ambient-elevation-map: (
|
96 | 0: '0px 0px 0px 0px #{$_ambient-color}',
|
97 | 1: '0px 1px 3px 0px #{$_ambient-color}',
|
98 | 2: '0px 1px 5px 0px #{$_ambient-color}',
|
99 | 3: '0px 1px 8px 0px #{$_ambient-color}',
|
100 | 4: '0px 1px 10px 0px #{$_ambient-color}',
|
101 | 5: '0px 1px 14px 0px #{$_ambient-color}',
|
102 | 6: '0px 1px 18px 0px #{$_ambient-color}',
|
103 | 7: '0px 2px 16px 1px #{$_ambient-color}',
|
104 | 8: '0px 3px 14px 2px #{$_ambient-color}',
|
105 | 9: '0px 3px 16px 2px #{$_ambient-color}',
|
106 | 10: '0px 4px 18px 3px #{$_ambient-color}',
|
107 | 11: '0px 4px 20px 3px #{$_ambient-color}',
|
108 | 12: '0px 5px 22px 4px #{$_ambient-color}',
|
109 | 13: '0px 5px 24px 4px #{$_ambient-color}',
|
110 | 14: '0px 5px 26px 4px #{$_ambient-color}',
|
111 | 15: '0px 6px 28px 5px #{$_ambient-color}',
|
112 | 16: '0px 6px 30px 5px #{$_ambient-color}',
|
113 | 17: '0px 6px 32px 5px #{$_ambient-color}',
|
114 | 18: '0px 7px 34px 6px #{$_ambient-color}',
|
115 | 19: '0px 7px 36px 6px #{$_ambient-color}',
|
116 | 20: '0px 8px 38px 7px #{$_ambient-color}',
|
117 | 21: '0px 8px 40px 7px #{$_ambient-color}',
|
118 | 22: '0px 8px 42px 7px #{$_ambient-color}',
|
119 | 23: '0px 9px 44px 8px #{$_ambient-color}',
|
120 | 24: '0px 9px 46px 8px #{$_ambient-color}'
|
121 | );
|
122 |
|
123 |
|
124 |
|
125 |
|
126 |
|
127 |
|
128 | $md-elevation-property: box-shadow !default;
|
129 |
|
130 |
|
131 | $md-elevation-transition-duration: 280ms !default;
|
132 |
|
133 |
|
134 | $md-elevation-transition-timing-function: $md-fast-out-slow-in-timing-function;
|
135 |
|
136 |
|
137 |
|
138 |
|
139 |
|
140 | @mixin md-elevation($zValue) {
|
141 | @if type-of($zValue) != number or not unitless($zValue) {
|
142 | @error '$zValue must be a unitless number';
|
143 | }
|
144 | @if $zValue < 0 or $zValue > 24 {
|
145 | @error '$zValue must be between 0 and 24';
|
146 | }
|
147 |
|
148 | #{$md-elevation-property}: #{map-get($_umbra-elevation-map, $zValue)},
|
149 | #{map-get($_penumbra-elevation-map, $zValue)},
|
150 | #{map-get($_ambient-elevation-map, $zValue)};
|
151 | }
|
152 |
|
153 |
|
154 |
|
155 |
|
156 |
|
157 |
|
158 |
|
159 |
|
160 |
|
161 |
|
162 |
|
163 | @function md-elevation-transition-property-value(
|
164 | $duration: $md-elevation-transition-duration,
|
165 | $easing: $md-elevation-transition-timing-function) {
|
166 | @return #{$md-elevation-property} #{$duration} #{$easing};
|
167 | }
|
168 |
|
169 |
|
170 |
|
171 |
|
172 |
|
173 |
|
174 |
|
175 |
|
176 | @mixin md-elevation-transition(
|
177 | $duration: $md-elevation-transition-duration,
|
178 | $easing: $md-elevation-transition-timing-function) {
|
179 | transition: md-elevation-transition-property-value($duration, $easing);
|
180 | will-change: $md-elevation-property;
|
181 | }
|