encre_css/plugins/sizing/
mod.rs1pub mod height;
3pub mod max_height;
4pub mod max_width;
5pub mod min_height;
6pub mod min_width;
7pub mod width;
8
9#[cfg(test)]
10mod tests {
11 use crate::{generate, utils::testing::base_config};
12
13 use pretty_assertions::assert_eq;
14
15 #[test]
16 fn height() {
17 assert_eq!(
18 generate(["h-px"], &base_config()),
19 ".h-px {
20 height: 1px;
21}"
22 );
23 assert_eq!(
24 generate(["h-2.5"], &base_config()),
25 r".h-2\.5 {
26 height: 0.625rem;
27}"
28 );
29 assert_eq!(
30 generate(["h-60"], &base_config()),
31 ".h-60 {
32 height: 15rem;
33}"
34 );
35 assert_eq!(
36 generate(["-h-60"], &base_config()),
37 ".-h-60 {
38 height: -15rem;
39}"
40 );
41 assert_eq!(
42 generate(["h-auto"], &base_config()),
43 ".h-auto {
44 height: auto;
45}"
46 );
47 assert_eq!(
48 generate(["h-1/3"], &base_config()),
49 r".h-1\/3 {
50 height: 33.333333%;
51}"
52 );
53 assert_eq!(
54 generate(["-h-2/3"], &base_config()),
55 r".-h-2\/3 {
56 height: -66.666667%;
57}"
58 );
59 assert_eq!(
60 generate(["h-full"], &base_config()),
61 ".h-full {
62 height: 100%;
63}"
64 );
65 assert_eq!(
66 generate(["h-screen"], &base_config()),
67 ".h-screen {
68 height: 100vh;
69}"
70 );
71 assert_eq!(
72 generate(["h-lvh"], &base_config()),
73 ".h-lvh {
74 height: 100lvh;
75}"
76 );
77 assert_eq!(
78 generate(["h-fit"], &base_config()),
79 ".h-fit {
80 height: fit-content;
81}"
82 );
83 assert_eq!(
84 generate(["h-[32.555rem]"], &base_config()),
85 r".h-\[32\.555rem\] {
86 height: 32.555rem;
87}"
88 );
89 assert_eq!(
90 generate(["h-[10%]"], &base_config()),
91 r".h-\[10\%\] {
92 height: 10%;
93}"
94 );
95 }
96
97 #[test]
98 fn max_height() {
99 assert_eq!(
100 generate(["max-h-px"], &base_config()),
101 ".max-h-px {
102 max-height: 1px;
103}"
104 );
105 assert_eq!(
106 generate(["max-h-2.5"], &base_config()),
107 r".max-h-2\.5 {
108 max-height: 0.625rem;
109}"
110 );
111 assert_eq!(
112 generate(["max-h-60"], &base_config()),
113 ".max-h-60 {
114 max-height: 15rem;
115}"
116 );
117 assert_eq!(
118 generate(["-max-h-60"], &base_config()),
119 ".-max-h-60 {
120 max-height: -15rem;
121}"
122 );
123 assert_eq!(
124 generate(["max-h-auto"], &base_config()),
125 ".max-h-auto {
126 max-height: auto;
127}"
128 );
129 assert_eq!(
130 generate(["max-h-none"], &base_config()),
131 ".max-h-none {
132 max-height: none;
133}"
134 );
135 assert_eq!(
136 generate(["max-h-1/3"], &base_config()),
137 r".max-h-1\/3 {
138 max-height: 33.333333%;
139}"
140 );
141 assert_eq!(
142 generate(["-max-h-2/3"], &base_config()),
143 r".-max-h-2\/3 {
144 max-height: -66.666667%;
145}"
146 );
147 assert_eq!(
148 generate(["max-h-full"], &base_config()),
149 ".max-h-full {
150 max-height: 100%;
151}"
152 );
153 assert_eq!(
154 generate(["max-h-screen"], &base_config()),
155 ".max-h-screen {
156 max-height: 100vh;
157}"
158 );
159 assert_eq!(
160 generate(["max-h-lvh"], &base_config()),
161 ".max-h-lvh {
162 max-height: 100lvh;
163}"
164 );
165 assert_eq!(
166 generate(["max-h-fit"], &base_config()),
167 ".max-h-fit {
168 max-height: fit-content;
169}"
170 );
171 assert_eq!(
172 generate(["max-h-[32.555rem]"], &base_config()),
173 r".max-h-\[32\.555rem\] {
174 max-height: 32.555rem;
175}"
176 );
177 assert_eq!(
178 generate(["max-h-[10%]"], &base_config()),
179 r".max-h-\[10\%\] {
180 max-height: 10%;
181}"
182 );
183 }
184
185 #[test]
186 fn max_width() {
187 assert_eq!(
188 generate(["max-w-6xl"], &base_config()),
189 ".max-w-6xl {
190 max-width: 72rem;
191}"
192 );
193 assert_eq!(
194 generate(["max-w-prose"], &base_config()),
195 ".max-w-prose {
196 max-width: 65ch;
197}"
198 );
199 assert_eq!(
200 generate(["max-w-screen-xl"], &base_config()),
201 ".max-w-screen-xl {
202 max-width: 1280px;
203}"
204 );
205 assert_eq!(
206 generate(["max-w-px"], &base_config()),
207 ".max-w-px {
208 max-width: 1px;
209}"
210 );
211 assert_eq!(
212 generate(["max-w-2.5"], &base_config()),
213 r".max-w-2\.5 {
214 max-width: 0.625rem;
215}"
216 );
217 assert_eq!(
218 generate(["max-w-60"], &base_config()),
219 ".max-w-60 {
220 max-width: 15rem;
221}"
222 );
223 assert_eq!(
224 generate(["-max-w-60"], &base_config()),
225 ".-max-w-60 {
226 max-width: -15rem;
227}"
228 );
229 assert_eq!(
230 generate(["max-w-none"], &base_config()),
231 ".max-w-none {
232 max-width: none;
233}"
234 );
235 assert_eq!(
236 generate(["max-w-1/3"], &base_config()),
237 r".max-w-1\/3 {
238 max-width: 33.333333%;
239}"
240 );
241 assert_eq!(
242 generate(["-max-w-2/3"], &base_config()),
243 r".-max-w-2\/3 {
244 max-width: -66.666667%;
245}"
246 );
247 assert_eq!(
248 generate(["max-w-full"], &base_config()),
249 ".max-w-full {
250 max-width: 100%;
251}"
252 );
253 assert_eq!(
254 generate(["max-w-screen"], &base_config()),
255 ".max-w-screen {
256 max-width: 100vw;
257}"
258 );
259 assert_eq!(
260 generate(["max-w-fit"], &base_config()),
261 ".max-w-fit {
262 max-width: fit-content;
263}"
264 );
265 assert_eq!(
266 generate(["max-w-[32.555rem]"], &base_config()),
267 r".max-w-\[32\.555rem\] {
268 max-width: 32.555rem;
269}"
270 );
271 assert_eq!(
272 generate(["max-w-[10%]"], &base_config()),
273 r".max-w-\[10\%\] {
274 max-width: 10%;
275}"
276 );
277 }
278
279 #[test]
280 fn min_height() {
281 assert_eq!(
282 generate(["min-h-px"], &base_config()),
283 ".min-h-px {
284 min-height: 1px;
285}"
286 );
287 assert_eq!(
288 generate(["min-h-2.5"], &base_config()),
289 r".min-h-2\.5 {
290 min-height: 0.625rem;
291}"
292 );
293 assert_eq!(
294 generate(["min-h-60"], &base_config()),
295 ".min-h-60 {
296 min-height: 15rem;
297}"
298 );
299 assert_eq!(
300 generate(["-min-h-60"], &base_config()),
301 ".-min-h-60 {
302 min-height: -15rem;
303}"
304 );
305 assert_eq!(
306 generate(["min-h-auto"], &base_config()),
307 ".min-h-auto {
308 min-height: auto;
309}"
310 );
311 assert_eq!(
312 generate(["min-h-1/3"], &base_config()),
313 r".min-h-1\/3 {
314 min-height: 33.333333%;
315}"
316 );
317 assert_eq!(
318 generate(["-min-h-2/3"], &base_config()),
319 r".-min-h-2\/3 {
320 min-height: -66.666667%;
321}"
322 );
323 assert_eq!(
324 generate(["min-h-full"], &base_config()),
325 ".min-h-full {
326 min-height: 100%;
327}"
328 );
329 assert_eq!(
330 generate(["min-h-screen"], &base_config()),
331 ".min-h-screen {
332 min-height: 100vh;
333}"
334 );
335 assert_eq!(
336 generate(["min-h-lvh"], &base_config()),
337 ".min-h-lvh {
338 min-height: 100lvh;
339}"
340 );
341 assert_eq!(
342 generate(["min-h-fit"], &base_config()),
343 ".min-h-fit {
344 min-height: fit-content;
345}"
346 );
347 assert_eq!(
348 generate(["min-h-[32.555rem]"], &base_config()),
349 r".min-h-\[32\.555rem\] {
350 min-height: 32.555rem;
351}"
352 );
353 assert_eq!(
354 generate(["min-h-[10%]"], &base_config()),
355 r".min-h-\[10\%\] {
356 min-height: 10%;
357}"
358 );
359 }
360
361 #[test]
362 fn min_width() {
363 assert_eq!(
364 generate(["min-w-px"], &base_config()),
365 ".min-w-px {
366 min-width: 1px;
367}"
368 );
369 assert_eq!(
370 generate(["min-w-2.5"], &base_config()),
371 r".min-w-2\.5 {
372 min-width: 0.625rem;
373}"
374 );
375 assert_eq!(
376 generate(["min-w-60"], &base_config()),
377 ".min-w-60 {
378 min-width: 15rem;
379}"
380 );
381 assert_eq!(
382 generate(["-min-w-60"], &base_config()),
383 ".-min-w-60 {
384 min-width: -15rem;
385}"
386 );
387 assert_eq!(
388 generate(["min-w-auto"], &base_config()),
389 ".min-w-auto {
390 min-width: auto;
391}"
392 );
393 assert_eq!(
394 generate(["min-w-1/3"], &base_config()),
395 r".min-w-1\/3 {
396 min-width: 33.333333%;
397}"
398 );
399 assert_eq!(
400 generate(["-min-w-2/3"], &base_config()),
401 r".-min-w-2\/3 {
402 min-width: -66.666667%;
403}"
404 );
405 assert_eq!(
406 generate(["min-w-full"], &base_config()),
407 ".min-w-full {
408 min-width: 100%;
409}"
410 );
411 assert_eq!(
412 generate(["min-w-screen"], &base_config()),
413 ".min-w-screen {
414 min-width: 100vw;
415}"
416 );
417 assert_eq!(
418 generate(["min-w-fit"], &base_config()),
419 ".min-w-fit {
420 min-width: fit-content;
421}"
422 );
423 assert_eq!(
424 generate(["min-w-[32.555rem]"], &base_config()),
425 r".min-w-\[32\.555rem\] {
426 min-width: 32.555rem;
427}"
428 );
429 assert_eq!(
430 generate(["min-w-[10%]"], &base_config()),
431 r".min-w-\[10\%\] {
432 min-width: 10%;
433}"
434 );
435 }
436
437 #[test]
438 fn width() {
439 assert_eq!(
440 generate(["w-px"], &base_config()),
441 ".w-px {
442 width: 1px;
443}"
444 );
445 assert_eq!(
446 generate(["w-2.5"], &base_config()),
447 r".w-2\.5 {
448 width: 0.625rem;
449}"
450 );
451 assert_eq!(
452 generate(["w-60"], &base_config()),
453 ".w-60 {
454 width: 15rem;
455}"
456 );
457 assert_eq!(
458 generate(["-w-60"], &base_config()),
459 ".-w-60 {
460 width: -15rem;
461}"
462 );
463 assert_eq!(
464 generate(["w-auto"], &base_config()),
465 ".w-auto {
466 width: auto;
467}"
468 );
469 assert_eq!(
470 generate(["w-1/3"], &base_config()),
471 r".w-1\/3 {
472 width: 33.333333%;
473}"
474 );
475 assert_eq!(
476 generate(["-w-2/3"], &base_config()),
477 r".-w-2\/3 {
478 width: -66.666667%;
479}"
480 );
481 assert_eq!(
482 generate(["w-full"], &base_config()),
483 ".w-full {
484 width: 100%;
485}"
486 );
487 assert_eq!(
488 generate(["w-screen"], &base_config()),
489 ".w-screen {
490 width: 100vw;
491}"
492 );
493 assert_eq!(
494 generate(["w-lvw"], &base_config()),
495 ".w-lvw {
496 width: 100lvw;
497}"
498 );
499 assert_eq!(
500 generate(["w-fit"], &base_config()),
501 ".w-fit {
502 width: fit-content;
503}"
504 );
505 assert_eq!(
506 generate(["w-[32.555rem]"], &base_config()),
507 r".w-\[32\.555rem\] {
508 width: 32.555rem;
509}"
510 );
511 assert_eq!(
512 generate(["w-[10%]"], &base_config()),
513 r".w-\[10\%\] {
514 width: 10%;
515}"
516 );
517 }
518}