diff options
Diffstat (limited to 'test/_gradients.scss')
-rw-r--r-- | test/_gradients.scss | 392 |
1 files changed, 174 insertions, 218 deletions
diff --git a/test/_gradients.scss b/test/_gradients.scss index c11439c..db5fda7 100644 --- a/test/_gradients.scss +++ b/test/_gradients.scss | |||
@@ -5,264 +5,220 @@ | |||
5 | @use '../src/gradients'; | 5 | @use '../src/gradients'; |
6 | 6 | ||
7 | @include describe('gradients') { | 7 | @include describe('gradients') { |
8 | @include it('easing-gradient') { | 8 | @include it('easing-gradient') { |
9 | $gradient1: gradients.easing-gradient( | 9 | $gradient1: gradients.easing-gradient(linear, |
10 | linear, | 10 | to right, |
11 | to right, | 11 | #000, |
12 | #000, | 12 | ease-in-quad, |
13 | ease-in-quad, | 13 | transparent); |
14 | transparent | ||
15 | ); | ||
16 | 14 | ||
17 | $expected1: linear-gradient( | 15 | $expected1: linear-gradient(to right, |
18 | to right, | 16 | #000 0, |
19 | #000 0, | 17 | mix(transparent, #000, easing.ease-in-quad(.25) * 100%) 25%, |
20 | mix(transparent, #000, easing.ease-in-quad(0.25) * 100%) 25%, | 18 | mix(transparent, #000, easing.ease-in-quad(.5) * 100%) 50%, |
21 | mix(transparent, #000, easing.ease-in-quad(0.5) * 100%) 50%, | 19 | mix(transparent, #000, easing.ease-in-quad(.75) * 100%) 75%, |
22 | mix(transparent, #000, easing.ease-in-quad(0.75) * 100%) 75%, | 20 | transparent 100%); |
23 | transparent 100% | ||
24 | ); | ||
25 | 21 | ||
26 | @include assert-equal($gradient1, $expected1, 'Simple linear gradient'); | 22 | @include assert-equal($gradient1, $expected1, 'Simple linear gradient'); |
27 | 23 | ||
28 | // --------------------------------------------------------------------------- | 24 | // --------------------------------------------------------------------------- |
29 | 25 | ||
30 | $gradient2: gradients.easing-gradient( | 26 | $gradient2: gradients.easing-gradient(radial, |
31 | radial, | 27 | 1em 2em at 50% 60%, |
32 | 1em 2em at 50% 60%, | 28 | #000, |
33 | #000, | 29 | ease-out-cubic, |
34 | ease-out-cubic, | 30 | transparent); |
35 | transparent | ||
36 | ); | ||
37 | 31 | ||
38 | $expected2: radial-gradient( | 32 | $expected2: radial-gradient(1em 2em at 50% 60%, |
39 | 1em 2em at 50% 60%, | 33 | #000 0, |
40 | #000 0, | 34 | mix(transparent, #000, easing.ease-out-cubic(.25) * 100%) 25%, |
41 | mix(transparent, #000, easing.ease-out-cubic(0.25) * 100%) 25%, | 35 | mix(transparent, #000, easing.ease-out-cubic(.5) * 100%) 50%, |
42 | mix(transparent, #000, easing.ease-out-cubic(0.5) * 100%) 50%, | 36 | mix(transparent, #000, easing.ease-out-cubic(.75) * 100%) 75%, |
43 | mix(transparent, #000, easing.ease-out-cubic(0.75) * 100%) 75%, | 37 | transparent 100%); |
44 | transparent 100% | ||
45 | ); | ||
46 | 38 | ||
47 | @include assert-equal($gradient2, $expected2, 'Simple radial gradient'); | 39 | @include assert-equal($gradient2, $expected2, 'Simple radial gradient'); |
48 | 40 | ||
49 | // --------------------------------------------------------------------------- | 41 | // --------------------------------------------------------------------------- |
50 | 42 | ||
51 | $gradient3: gradients.easing-gradient( | 43 | $gradient3: gradients.easing-gradient(linear, |
52 | linear, | 44 | to right, |
53 | to right, | 45 | #000 2em, |
54 | #000 2em, | 46 | ease-in-quad, |
55 | ease-in-quad, | 47 | transparent 10em); |
56 | transparent 10em | ||
57 | ); | ||
58 | 48 | ||
59 | $expected3: linear-gradient( | 49 | $expected3: linear-gradient(to right, |
60 | to right, | 50 | #000 2em, |
61 | #000 2em, | 51 | mix(transparent, #000, easing.ease-in-quad(.25) * 100%) 4em, |
62 | mix(transparent, #000, easing.ease-in-quad(0.25) * 100%) 4em, | 52 | mix(transparent, #000, easing.ease-in-quad(.5) * 100%) 6em, |
63 | mix(transparent, #000, easing.ease-in-quad(0.5) * 100%) 6em, | 53 | mix(transparent, #000, easing.ease-in-quad(.75) * 100%) 8em, |
64 | mix(transparent, #000, easing.ease-in-quad(0.75) * 100%) 8em, | 54 | transparent 10em); |
65 | transparent 10em | ||
66 | ); | ||
67 | 55 | ||
68 | @include assert-equal($gradient3, $expected3, 'Linear gradient with positioned color stops'); | 56 | @include assert-equal($gradient3, $expected3, 'Linear gradient with positioned color stops'); |
69 | 57 | ||
70 | // --------------------------------------------------------------------------- | 58 | // --------------------------------------------------------------------------- |
71 | 59 | ||
72 | $gradient4: gradients.easing-gradient( | 60 | $gradient4: gradients.easing-gradient(linear, |
73 | linear, | 61 | to right, |
74 | to right, | 62 | #000 20%, |
75 | #000 20%, | 63 | ease-in-quad, |
76 | ease-in-quad, | 64 | transparent calc(20% + 10em)); |
77 | transparent calc(20% + 10em) | ||
78 | ); | ||
79 | 65 | ||
80 | $expected4: linear-gradient( | 66 | $expected4: linear-gradient(to right, |
81 | to right, | 67 | #000 20%, |
82 | #000 20%, | 68 | mix(transparent, #000, easing.ease-in-quad(.25) * 100%) calc(20% + (20% + 10em - 20%) * .25), |
83 | mix(transparent, #000, easing.ease-in-quad(0.25) * 100%) calc(20% + (20% + 10em - 20%) * 0.25), | 69 | mix(transparent, #000, easing.ease-in-quad(.5) * 100%) calc(20% + (20% + 10em - 20%) * .5), |
84 | mix(transparent, #000, easing.ease-in-quad(0.5) * 100%) calc(20% + (20% + 10em - 20%) * 0.5), | 70 | mix(transparent, #000, easing.ease-in-quad(.75) * 100%) calc(20% + (20% + 10em - 20%) * .75), |
85 | mix(transparent, #000, easing.ease-in-quad(0.75) * 100%) calc(20% + (20% + 10em - 20%) * 0.75), | 71 | transparent calc(20% + 10em)); |
86 | transparent calc(20% + 10em) | ||
87 | ); | ||
88 | 72 | ||
89 | @include assert-equal($gradient4, $expected4, 'More advanced linear gradient with positioned color stops'); | 73 | @include assert-equal($gradient4, $expected4, 'More advanced linear gradient with positioned color stops'); |
90 | 74 | ||
91 | // --------------------------------------------------------------------------- | 75 | // --------------------------------------------------------------------------- |
92 | 76 | ||
93 | $gradient5: gradients.easing-gradient( | 77 | $gradient5: gradients.easing-gradient(linear, |
94 | linear, | 78 | to right, |
95 | to right, | 79 | #000 2em, |
96 | #000 2em, | 80 | #f00 7em, |
97 | #f00 7em, | 81 | ease-in-quad, |
98 | ease-in-quad, | 82 | transparent 10em); |
99 | transparent 10em | ||
100 | ); | ||
101 | 83 | ||
102 | $expected5: linear-gradient( | 84 | $expected5: linear-gradient(to right, |
103 | to right, | 85 | #000 2em, |
104 | #000 2em, | 86 | #f00 7em, |
105 | #f00 7em, | 87 | mix(transparent, #f00, easing.ease-in-quad(.25) * 100%) 7em + 3em * .25, |
106 | mix(transparent, #f00, easing.ease-in-quad(0.25) * 100%) 7em + 3em * 0.25, | 88 | mix(transparent, #f00, easing.ease-in-quad(.5) * 100%) 7em + 3em * .5, |
107 | mix(transparent, #f00, easing.ease-in-quad(0.5) * 100%) 7em + 3em * 0.5, | 89 | mix(transparent, #f00, easing.ease-in-quad(.75) * 100%) 7em + 3em * .75, |
108 | mix(transparent, #f00, easing.ease-in-quad(0.75) * 100%) 7em + 3em * 0.75, | 90 | transparent 10em); |
109 | transparent 10em | ||
110 | ); | ||
111 | 91 | ||
112 | @include assert-equal($gradient5, $expected5, 'Linear gradient with 3 positioned color stops, 1 easing transitions'); | 92 | @include assert-equal($gradient5, $expected5, 'Linear gradient with 3 positioned color stops, 1 easing transitions'); |
113 | 93 | ||
114 | // --------------------------------------------------------------------------- | 94 | // --------------------------------------------------------------------------- |
115 | 95 | ||
116 | $gradient6: gradients.easing-gradient( | 96 | $gradient6: gradients.easing-gradient(linear, |
117 | linear, | 97 | to right, |
118 | to right, | 98 | #000 2em, |
119 | #000 2em, | 99 | ease-in-quad, |
120 | ease-in-quad, | 100 | #f00 7em, |
121 | #f00 7em, | 101 | ease-in-quad, |
122 | ease-in-quad, | 102 | transparent 10em); |
123 | transparent 10em | ||
124 | ); | ||
125 | 103 | ||
126 | $expected6: linear-gradient( | 104 | $expected6: linear-gradient(to right, |
127 | to right, | 105 | #000 2em, |
128 | #000 2em, | 106 | mix(#f00, #000, easing.ease-in-quad(.25) * 100%) 2em + 5em * .25, |
129 | mix(#f00, #000, easing.ease-in-quad(0.25) * 100%) 2em + 5em * 0.25, | 107 | mix(#f00, #000, easing.ease-in-quad(.5) * 100%) 2em + 5em * .5, |
130 | mix(#f00, #000, easing.ease-in-quad(0.5) * 100%) 2em + 5em * 0.5, | 108 | mix(#f00, #000, easing.ease-in-quad(.75) * 100%) 2em + 5em * .75, |
131 | mix(#f00, #000, easing.ease-in-quad(0.75) * 100%) 2em + 5em * 0.75, | 109 | #f00 7em, |
132 | #f00 7em, | 110 | mix(transparent, #f00, easing.ease-in-quad(.25) * 100%) 7em + 3em * .25, |
133 | mix(transparent, #f00, easing.ease-in-quad(0.25) * 100%) 7em + 3em * 0.25, | 111 | mix(transparent, #f00, easing.ease-in-quad(.5) * 100%) 7em + 3em * .5, |
134 | mix(transparent, #f00, easing.ease-in-quad(0.5) * 100%) 7em + 3em * 0.5, | 112 | mix(transparent, #f00, easing.ease-in-quad(.75) * 100%) 7em + 3em * .75, |
135 | mix(transparent, #f00, easing.ease-in-quad(0.75) * 100%) 7em + 3em * 0.75, | 113 | transparent 10em); |
136 | transparent 10em | ||
137 | ); | ||
138 | 114 | ||
139 | @include assert-equal($gradient6, $expected6, 'Linear gradient with 3 positioned color stops, 2 easing transitions'); | 115 | @include assert-equal($gradient6, $expected6, 'Linear gradient with 3 positioned color stops, 2 easing transitions'); |
140 | 116 | ||
141 | // --------------------------------------------------------------------------- | 117 | // --------------------------------------------------------------------------- |
142 | 118 | ||
143 | $gradient7: gradients.easing-gradient( | 119 | $gradient7: gradients.easing-gradient(linear, |
144 | linear, | 120 | to right, |
145 | to right, | 121 | #000 2em, |
146 | #000 2em, | 122 | ease-in-quad, |
147 | ease-in-quad, | 123 | #f00, |
148 | #f00, | 124 | ease-in-quad, |
149 | ease-in-quad, | 125 | transparent 10em); |
150 | transparent 10em | ||
151 | ); | ||
152 | 126 | ||
153 | $expected7: linear-gradient( | 127 | $expected7: linear-gradient(to right, |
154 | to right, | 128 | #000 2em, |
155 | #000 2em, | 129 | mix(#f00, #000, easing.ease-in-quad(.25) * 100%) 2em + 4em * .25, |
156 | mix(#f00, #000, easing.ease-in-quad(0.25) * 100%) 2em + 4em * 0.25, | 130 | mix(#f00, #000, easing.ease-in-quad(.5) * 100%) 2em + 4em * .5, |
157 | mix(#f00, #000, easing.ease-in-quad(0.5) * 100%) 2em + 4em * 0.5, | 131 | mix(#f00, #000, easing.ease-in-quad(.75) * 100%) 2em + 4em * .75, |
158 | mix(#f00, #000, easing.ease-in-quad(0.75) * 100%) 2em + 4em * 0.75, | 132 | #f00 6em, |
159 | #f00 6em, | 133 | mix(transparent, #f00, easing.ease-in-quad(.25) * 100%) 6em + 4em * .25, |
160 | mix(transparent, #f00, easing.ease-in-quad(0.25) * 100%) 6em + 4em * 0.25, | 134 | mix(transparent, #f00, easing.ease-in-quad(.5) * 100%) 6em + 4em * .5, |
161 | mix(transparent, #f00, easing.ease-in-quad(0.5) * 100%) 6em + 4em * 0.5, | 135 | mix(transparent, #f00, easing.ease-in-quad(.75) * 100%) 6em + 4em * .75, |
162 | mix(transparent, #f00, easing.ease-in-quad(0.75) * 100%) 6em + 4em * 0.75, | 136 | transparent 10em); |
163 | transparent 10em | ||
164 | ); | ||
165 | 137 | ||
166 | @include assert-equal($gradient7, $expected7, 'Linear gradient with 2 / 3 positioned color stops, 2 easing transitions'); | 138 | @include assert-equal($gradient7, $expected7, 'Linear gradient with 2 / 3 positioned color stops, 2 easing transitions'); |
167 | 139 | ||
168 | // --------------------------------------------------------------------------- | 140 | // --------------------------------------------------------------------------- |
169 | 141 | ||
170 | $gradient8: gradients.easing-gradient( | 142 | $gradient8: gradients.easing-gradient(linear, |
171 | linear, | 143 | to right, |
172 | to right, | 144 | #000, |
173 | #000, | 145 | ease-in-quad, |
174 | ease-in-quad, | 146 | #f00, |
175 | #f00, | 147 | ease-in-quad, |
176 | ease-in-quad, | 148 | transparent); |
177 | transparent | ||
178 | ); | ||
179 | 149 | ||
180 | $expected8: linear-gradient( | 150 | $expected8: linear-gradient(to right, |
181 | to right, | 151 | #000 0, |
182 | #000 0, | 152 | mix(#f00, #000, easing.ease-in-quad(.25) * 100%) 50% * .25, |
183 | mix(#f00, #000, easing.ease-in-quad(0.25) * 100%) 50% * 0.25, | 153 | mix(#f00, #000, easing.ease-in-quad(.5) * 100%) 50% * .5, |
184 | mix(#f00, #000, easing.ease-in-quad(0.5) * 100%) 50% * 0.5, | 154 | mix(#f00, #000, easing.ease-in-quad(.75) * 100%) 50% * .75, |
185 | mix(#f00, #000, easing.ease-in-quad(0.75) * 100%) 50% * 0.75, | 155 | #f00 50%, |
186 | #f00 50%, | 156 | mix(transparent, #f00, easing.ease-in-quad(.25) * 100%) 50% + 50% * .25, |
187 | mix(transparent, #f00, easing.ease-in-quad(0.25) * 100%) 50% + 50% * 0.25, | 157 | mix(transparent, #f00, easing.ease-in-quad(.5) * 100%) 50% + 50% * .5, |
188 | mix(transparent, #f00, easing.ease-in-quad(0.5) * 100%) 50% + 50% * 0.5, | 158 | mix(transparent, #f00, easing.ease-in-quad(.75) * 100%) 50% + 50% * .75, |
189 | mix(transparent, #f00, easing.ease-in-quad(0.75) * 100%) 50% + 50% * 0.75, | 159 | transparent 100%); |
190 | transparent 100% | ||
191 | ); | ||
192 | 160 | ||
193 | @include assert-equal($gradient8, $expected8, 'Linear gradient with 0 / 3 positioned color stops, 2 easing transitions'); | 161 | @include assert-equal($gradient8, $expected8, 'Linear gradient with 0 / 3 positioned color stops, 2 easing transitions'); |
194 | 162 | ||
195 | // --------------------------------------------------------------------------- | 163 | // --------------------------------------------------------------------------- |
196 | 164 | ||
197 | $gradient9: gradients.easing-gradient( | 165 | $gradient9: gradients.easing-gradient(linear, |
198 | linear, | 166 | to right, |
199 | to right, | 167 | #000, |
200 | #000, | 168 | ease-in-quad, |
201 | ease-in-quad, | 169 | #f00, |
202 | #f00, | 170 | ease-in-quad, |
203 | ease-in-quad, | 171 | transparent 20em); |
204 | transparent 20em | ||
205 | ); | ||
206 | 172 | ||
207 | $expected9: linear-gradient( | 173 | $expected9: linear-gradient(to right, |
208 | to right, | 174 | #000 0, |
209 | #000 0, | 175 | mix(#f00, #000, easing.ease-in-quad(.25) * 100%) 10em * .25, |
210 | mix(#f00, #000, easing.ease-in-quad(0.25) * 100%) 10em * 0.25, | 176 | mix(#f00, #000, easing.ease-in-quad(.5) * 100%) 10em * .5, |
211 | mix(#f00, #000, easing.ease-in-quad(0.5) * 100%) 10em * 0.5, | 177 | mix(#f00, #000, easing.ease-in-quad(.75) * 100%) 10em * .75, |
212 | mix(#f00, #000, easing.ease-in-quad(0.75) * 100%) 10em * 0.75, | 178 | #f00 10em, |
213 | #f00 10em, | 179 | mix(transparent, #f00, easing.ease-in-quad(.25) * 100%) 10em + 10em * .25, |
214 | mix(transparent, #f00, easing.ease-in-quad(0.25) * 100%) 10em + 10em * 0.25, | 180 | mix(transparent, #f00, easing.ease-in-quad(.5) * 100%) 10em + 10em * .5, |
215 | mix(transparent, #f00, easing.ease-in-quad(0.5) * 100%) 10em + 10em * 0.5, | 181 | mix(transparent, #f00, easing.ease-in-quad(.75) * 100%) 10em + 10em * .75, |
216 | mix(transparent, #f00, easing.ease-in-quad(0.75) * 100%) 10em + 10em * 0.75, | 182 | transparent 20em); |
217 | transparent 20em | ||
218 | ); | ||
219 | 183 | ||
220 | @include assert-equal($gradient9, $expected9, 'Linear gradient with 1 / 3 positioned color stops, 2 easing transitions'); | 184 | @include assert-equal($gradient9, $expected9, 'Linear gradient with 1 / 3 positioned color stops, 2 easing transitions'); |
221 | 185 | ||
222 | // --------------------------------------------------------------------------- | 186 | // --------------------------------------------------------------------------- |
223 | 187 | ||
224 | $gradient10: gradients.easing-gradient( | 188 | $gradient10: gradients.easing-gradient(linear, |
225 | linear, | 189 | to right, |
226 | to right, | 190 | #000, |
227 | #000, | 191 | cubic-bezier .47 0 .745 .715, |
228 | cubic-bezier 0.47 0 0.745 0.715, | 192 | transparent); |
229 | transparent | ||
230 | ); | ||
231 | 193 | ||
232 | $expected10: linear-gradient( | 194 | $expected10: linear-gradient(to right, |
233 | to right, | 195 | #000 0, |
234 | #000 0, | 196 | mix(transparent, #000, easing.cubic-bezier(.47, 0, .745, .715, .25) * 100%) 25%, |
235 | mix(transparent, #000, easing.cubic-bezier(0.47, 0, 0.745, 0.715, 0.25) * 100%) 25%, | 197 | mix(transparent, #000, easing.cubic-bezier(.47, 0, .745, .715, .5) * 100%) 50%, |
236 | mix(transparent, #000, easing.cubic-bezier(0.47, 0, 0.745, 0.715, 0.5) * 100%) 50%, | 198 | mix(transparent, #000, easing.cubic-bezier(.47, 0, .745, .715, .75) * 100%) 75%, |
237 | mix(transparent, #000, easing.cubic-bezier(0.47, 0, 0.745, 0.715, 0.75) * 100%) 75%, | 199 | transparent 100%); |
238 | transparent 100% | ||
239 | ); | ||
240 | 200 | ||
241 | @include assert-equal($gradient10, $expected10, 'Simple linear gradient with custom cubic-bezier easing'); | 201 | @include assert-equal($gradient10, $expected10, 'Simple linear gradient with custom cubic-bezier easing'); |
242 | 202 | ||
243 | // --------------------------------------------------------------------------- | 203 | // --------------------------------------------------------------------------- |
244 | 204 | ||
245 | $gradient11: gradients.easing-gradient( | 205 | $gradient11: gradients.easing-gradient(linear, |
246 | linear, | 206 | to right, |
247 | to right, | 207 | #000, |
248 | #000, | 208 | steps 4 jump-start, |
249 | steps 4 jump-start, | 209 | transparent); |
250 | transparent | ||
251 | ); | ||
252 | 210 | ||
253 | $expected11: linear-gradient( | 211 | $expected11: linear-gradient(to right, |
254 | to right, | 212 | #000 0, |
255 | #000 0, | 213 | mix(transparent, #000, .25 * 100%) 0, |
256 | mix(transparent, #000, 0.25 * 100%) 0, | 214 | mix(transparent, #000, .25 * 100%) 25%, |
257 | mix(transparent, #000, 0.25 * 100%) 25%, | 215 | mix(transparent, #000, .5 * 100%) 25%, |
258 | mix(transparent, #000, 0.5 * 100%) 25%, | 216 | mix(transparent, #000, .5 * 100%) 50%, |
259 | mix(transparent, #000, 0.5 * 100%) 50%, | 217 | mix(transparent, #000, .75 * 100%) 50%, |
260 | mix(transparent, #000, 0.75 * 100%) 50%, | 218 | mix(transparent, #000, .75 * 100%) 75%, |
261 | mix(transparent, #000, 0.75 * 100%) 75%, | 219 | transparent 75%, |
262 | transparent 75%, | 220 | transparent 100%); |
263 | transparent 100% | ||
264 | ); | ||
265 | 221 | ||
266 | @include assert-equal($gradient11, $expected11, 'Simple linear gradient with custom steps easing'); | 222 | @include assert-equal($gradient11, $expected11, 'Simple linear gradient with custom steps easing'); |
267 | } | 223 | } |
268 | } | 224 | } |