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